{"_id":"babel-plugin-jsx-event-modifiers","_rev":"197696","name":"babel-plugin-jsx-event-modifiers","description":"JSX Syntactic Sugar Plugin for Event Modifiers","dist-tags":{"latest":"2.0.5"},"maintainers":[{"name":"nickmessing","email":"dot.nick.dot.messing@gmail.com"}],"time":{"modified":"2021-06-03T12:30:05.000Z","created":"2017-05-02T07:59:29.451Z","2.0.5":"2017-08-27T21:38:58.534Z","2.0.3":"2017-08-24T22:46:11.887Z","2.0.2":"2017-08-21T03:20:34.387Z","2.0.1":"2017-08-20T11:20:45.438Z","2.0.0":"2017-08-20T11:13:57.415Z","1.0.3":"2017-08-18T09:45:52.527Z","1.0.2":"2017-05-02T07:59:29.451Z"},"users":{},"author":{"name":"Nicolai Moraru","email":"dot.nick.dot.messing@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/nickmessing/babel-plugin-jsx-event-modifiers.git"},"versions":{"2.0.5":{"name":"babel-plugin-jsx-event-modifiers","version":"2.0.5","description":"JSX Syntactic Sugar Plugin for Event Modifiers","main":"dist/bundle.js","repository":{"type":"git","url":"git+https://github.com/nickmessing/babel-plugin-jsx-event-modifiers.git"},"author":{"name":"Nicolai Moraru","email":"dot.nick.dot.messing@gmail.com"},"license":"MIT","files":["dist"],"devDependencies":{"ava":"^0.22.0","babel-core":"^6.26.0","babel-plugin-istanbul":"^4.1.4","babel-plugin-syntax-jsx":"^6.18.0","babel-preset-env":"^1.6.0","eslint":"^4.5.0","eslint-config-prettier":"^2.3.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","nyc":"^11.1.0","prettier":"^1.5.3","rollup":"^0.47.6","rollup-plugin-babel":"^3.0.2"},"scripts":{"lint":"eslint .","pretest":"NODE_ENV=test npm run build","test":"nyc --reporter=html --reporter=text ava","build":"rollup --config build.js","prepare":"npm run build"},"nyc":{"include":["src"]},"gitHead":"8ac01e76787eade6d7dc7a537c4cde0674ebeda8","bugs":{"url":"https://github.com/nickmessing/babel-plugin-jsx-event-modifiers/issues"},"homepage":"https://github.com/nickmessing/babel-plugin-jsx-event-modifiers#readme","_id":"babel-plugin-jsx-event-modifiers@2.0.5","_npmVersion":"5.3.0","_nodeVersion":"8.2.1","_npmUser":{"name":"nickmessing","email":"dot.nick.dot.messing@gmail.com"},"dist":{"shasum":"93e6ebb5d7553bb08f9fedbf7a0bee3af09a0472","size":8839,"noattachment":false,"key":"/babel-plugin-jsx-event-modifiers/-/babel-plugin-jsx-event-modifiers-2.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-jsx-event-modifiers/download/babel-plugin-jsx-event-modifiers-2.0.5.tgz"},"maintainers":[{"name":"nickmessing","email":"dot.nick.dot.messing@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-jsx-event-modifiers-2.0.5.tgz_1503869938404_0.4136798938270658"},"directories":{},"publish_time":1503869938534,"_hasShrinkwrap":false,"_cnpm_publish_time":1503869938534},"2.0.3":{"name":"babel-plugin-jsx-event-modifiers","version":"2.0.3","description":"JSX Syntactic Sugar Plugin for Event Modifiers","main":"dist/bundle.js","repository":{"type":"git","url":"git+https://github.com/nickmessing/babel-plugin-jsx-event-modifiers.git"},"author":{"name":"Nicolai Moraru","email":"dot.nick.dot.messing@gmail.com"},"license":"MIT","files":["dist"],"devDependencies":{"ava":"^0.22.0","babel-core":"^6.26.0","babel-plugin-istanbul":"^4.1.4","babel-plugin-syntax-jsx":"^6.18.0","babel-preset-env":"^1.6.0","eslint":"^4.5.0","eslint-config-prettier":"^2.3.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","nyc":"^11.1.0","prettier":"^1.5.3","rollup":"^0.47.6","rollup-plugin-babel":"^3.0.2"},"scripts":{"lint":"eslint .","pretest":"NODE_ENV=test npm run build","test":"nyc --reporter=html --reporter=text ava","build":"rollup --config build.js","prepare":"npm run build"},"nyc":{"include":["src"]},"gitHead":"830917f2fe20f174b4c057c70233198a6c90add9","bugs":{"url":"https://github.com/nickmessing/babel-plugin-jsx-event-modifiers/issues"},"homepage":"https://github.com/nickmessing/babel-plugin-jsx-event-modifiers#readme","_id":"babel-plugin-jsx-event-modifiers@2.0.3","_npmVersion":"5.3.0","_nodeVersion":"8.2.1","_npmUser":{"name":"nickmessing","email":"dot.nick.dot.messing@gmail.com"},"dist":{"shasum":"471cb56ed781a77aad56880048c7226566c1ed74","size":8715,"noattachment":false,"key":"/babel-plugin-jsx-event-modifiers/-/babel-plugin-jsx-event-modifiers-2.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-jsx-event-modifiers/download/babel-plugin-jsx-event-modifiers-2.0.3.tgz"},"maintainers":[{"name":"nickmessing","email":"dot.nick.dot.messing@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-jsx-event-modifiers-2.0.3.tgz_1503614771726_0.35748375323601067"},"directories":{},"publish_time":1503614771887,"_cnpm_publish_time":1503614771887,"_hasShrinkwrap":false},"2.0.2":{"name":"babel-plugin-jsx-event-modifiers","version":"2.0.2","description":"JSX Syntactic Sugar Plugin for Event Modifiers","main":"dist/bundle.js","repository":{"type":"git","url":"git+https://github.com/nickmessing/babel-plugin-jsx-event-modifiers.git"},"author":{"name":"Nicolai Moraru","email":"dot.nick.dot.messing@gmail.com"},"license":"MIT","files":["dist"],"devDependencies":{"ava":"^0.22.0","babel-core":"^6.26.0","babel-plugin-istanbul":"^4.1.4","babel-plugin-syntax-jsx":"^6.18.0","babel-preset-env":"^1.6.0","eslint":"^4.5.0","eslint-config-prettier":"^2.3.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","nyc":"^11.1.0","prettier":"^1.5.3","rollup":"^0.47.6","rollup-plugin-babel":"^3.0.2"},"scripts":{"lint":"eslint .","pretest":"NODE_ENV=test npm run build","test":"nyc --reporter=html --reporter=text ava","build":"rollup --config build.js","prepare":"npm run build"},"nyc":{"include":["src"]},"gitHead":"ed19dc1264140372871fb3fe7e4e02b5ce4c236d","bugs":{"url":"https://github.com/nickmessing/babel-plugin-jsx-event-modifiers/issues"},"homepage":"https://github.com/nickmessing/babel-plugin-jsx-event-modifiers#readme","_id":"babel-plugin-jsx-event-modifiers@2.0.2","_npmVersion":"5.3.0","_nodeVersion":"8.2.1","_npmUser":{"name":"nickmessing","email":"dot.nick.dot.messing@gmail.com"},"dist":{"shasum":"c2832ada05be8ab958c5871b569ea0c0bb49bbfa","size":8670,"noattachment":false,"key":"/babel-plugin-jsx-event-modifiers/-/babel-plugin-jsx-event-modifiers-2.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-jsx-event-modifiers/download/babel-plugin-jsx-event-modifiers-2.0.2.tgz"},"maintainers":[{"name":"nickmessing","email":"dot.nick.dot.messing@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-jsx-event-modifiers-2.0.2.tgz_1503285634321_0.6479342223610729"},"directories":{},"publish_time":1503285634387,"_hasShrinkwrap":false,"_cnpm_publish_time":1503285634387},"2.0.1":{"name":"babel-plugin-jsx-event-modifiers","version":"2.0.1","description":"JSX Syntactic Sugar Plugin for Event Modifiers","main":"dist/bundle.js","repository":{"type":"git","url":"git+https://github.com/nickmessing/babel-plugin-jsx-event-modifiers.git"},"author":{"name":"Nicolai Moraru","email":"dot.nick.dot.messing@gmail.com"},"license":"MIT","devDependencies":{"ava":"^0.22.0","babel-core":"^6.26.0","babel-plugin-istanbul":"^4.1.4","babel-plugin-syntax-jsx":"^6.18.0","babel-preset-env":"^1.6.0","eslint":"^4.5.0","eslint-config-prettier":"^2.3.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","nyc":"^11.1.0","prettier":"^1.5.3","rollup":"^0.47.6","rollup-plugin-babel":"^3.0.2"},"scripts":{"lint":"eslint .","pretest":"NODE_ENV=test npm run build","test":"nyc --reporter=html --reporter=text ava","build":"rollup --config build.js","prepare":"npm run build"},"nyc":{"include":["src"]},"gitHead":"33d682649cb018befcf2e029668f2c587adebdd3","bugs":{"url":"https://github.com/nickmessing/babel-plugin-jsx-event-modifiers/issues"},"homepage":"https://github.com/nickmessing/babel-plugin-jsx-event-modifiers#readme","_id":"babel-plugin-jsx-event-modifiers@2.0.1","_npmVersion":"5.3.0","_nodeVersion":"8.2.1","_npmUser":{"name":"nickmessing","email":"dot.nick.dot.messing@gmail.com"},"dist":{"shasum":"39d9eae1edc4b0898c22438f1c15b10ad3865827","size":13055,"noattachment":false,"key":"/babel-plugin-jsx-event-modifiers/-/babel-plugin-jsx-event-modifiers-2.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-jsx-event-modifiers/download/babel-plugin-jsx-event-modifiers-2.0.1.tgz"},"maintainers":[{"name":"nickmessing","email":"dot.nick.dot.messing@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-jsx-event-modifiers-2.0.1.tgz_1503228045300_0.7220260102767497"},"directories":{},"publish_time":1503228045438,"_hasShrinkwrap":false,"_cnpm_publish_time":1503228045438},"2.0.0":{"name":"babel-plugin-jsx-event-modifiers","version":"2.0.0","description":"JSX Syntactic Sugar Plugin for Event Modifiers","main":"dist/bundle.js","repository":{"type":"git","url":"git+https://github.com/nickmessing/babel-plugin-jsx-event-modifiers.git"},"author":{"name":"Nicolai Moraru","email":"dot.nick.dot.messing@gmail.com"},"license":"MIT","devDependencies":{"ava":"^0.22.0","babel-core":"^6.26.0","babel-plugin-istanbul":"^4.1.4","babel-plugin-syntax-jsx":"^6.18.0","babel-preset-env":"^1.6.0","eslint":"^4.5.0","eslint-config-prettier":"^2.3.0","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","nyc":"^11.1.0","prettier":"^1.5.3","rollup":"^0.47.6","rollup-plugin-babel":"^3.0.2"},"scripts":{"lint":"eslint .","pretest":"NODE_ENV=test npm run build","test":"nyc --reporter=html --reporter=text ava","build":"rollup --config build.js","prepublish":"npm run build"},"nyc":{"include":["src"]},"gitHead":"86d54da598edb8f68a844982d9586f34cf56dabc","bugs":{"url":"https://github.com/nickmessing/babel-plugin-jsx-event-modifiers/issues"},"homepage":"https://github.com/nickmessing/babel-plugin-jsx-event-modifiers#readme","_id":"babel-plugin-jsx-event-modifiers@2.0.0","_npmVersion":"5.3.0","_nodeVersion":"8.2.1","_npmUser":{"name":"nickmessing","email":"dot.nick.dot.messing@gmail.com"},"dist":{"shasum":"99e368dc3ce2a4bdeaab2982d26035662e44ff90","size":12953,"noattachment":false,"key":"/babel-plugin-jsx-event-modifiers/-/babel-plugin-jsx-event-modifiers-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-jsx-event-modifiers/download/babel-plugin-jsx-event-modifiers-2.0.0.tgz"},"maintainers":[{"name":"nickmessing","email":"dot.nick.dot.messing@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-jsx-event-modifiers-2.0.0.tgz_1503227637285_0.8342983189504594"},"directories":{},"publish_time":1503227637415,"_cnpm_publish_time":1503227637415,"_hasShrinkwrap":false},"1.0.3":{"name":"babel-plugin-jsx-event-modifiers","version":"1.0.3","description":"JSX Syntactic Sugar Plugin for Event Modifiers","main":"index.js","repository":{"type":"git","url":"git+https://github.com/nickmessing/babel-plugin-jsx-event-modifiers.git"},"author":{"name":"Nicolai Moraru","email":"dot.nick.dot.messing@gmail.com"},"license":"MIT","devDependencies":{"ava":"^0.18.2","babel-core":"^6.24.0","babel-plugin-syntax-jsx":"^6.18.0","eslint":"^3.18.0","eslint-config-standard":"^7.1.0","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^2.1.1"},"scripts":{"lint":"eslint .","test":"ava"},"gitHead":"c0c3f3e23a94074d4a677106b44406dbb54cef3c","bugs":{"url":"https://github.com/nickmessing/babel-plugin-jsx-event-modifiers/issues"},"homepage":"https://github.com/nickmessing/babel-plugin-jsx-event-modifiers#readme","_id":"babel-plugin-jsx-event-modifiers@1.0.3","_npmVersion":"5.3.0","_nodeVersion":"8.2.1","_npmUser":{"name":"nickmessing","email":"dot.nick.dot.messing@gmail.com"},"dist":{"shasum":"a5e75518840ed77846dcee35e1979a1a64f19dff","size":34042,"noattachment":false,"key":"/babel-plugin-jsx-event-modifiers/-/babel-plugin-jsx-event-modifiers-1.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-jsx-event-modifiers/download/babel-plugin-jsx-event-modifiers-1.0.3.tgz"},"maintainers":[{"name":"nickmessing","email":"dot.nick.dot.messing@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/babel-plugin-jsx-event-modifiers-1.0.3.tgz_1503049552392_0.6519085553009063"},"directories":{},"publish_time":1503049552527,"_hasShrinkwrap":false,"_cnpm_publish_time":1503049552527},"1.0.2":{"name":"babel-plugin-jsx-event-modifiers","version":"1.0.2","description":"JSX Syntactic Sugar Plugin for Event Modifiers","main":"index.js","repository":{"type":"git","url":"git+https://github.com/nickmessing/babel-plugin-jsx-event-modifiers.git"},"author":{"name":"Nicolai Moraru","email":"dot.nick.dot.messing@gmail.com"},"license":"MIT","devDependencies":{"ava":"^0.18.2","babel-core":"^6.24.0","babel-plugin-syntax-jsx":"^6.18.0","eslint":"^3.18.0","eslint-config-standard":"^7.1.0","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^2.1.1"},"scripts":{"lint":"eslint .","test":"ava"},"gitHead":"955e9fa21b4662a637558287959a6196370da8c1","bugs":{"url":"https://github.com/nickmessing/babel-plugin-jsx-event-modifiers/issues"},"homepage":"https://github.com/nickmessing/babel-plugin-jsx-event-modifiers#readme","_id":"babel-plugin-jsx-event-modifiers@1.0.2","_shasum":"287f774bd0dfda9abc125a0f01aeb51eaff49806","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.9.0","_npmUser":{"name":"nickmessing","email":"dot.nick.dot.messing@gmail.com"},"dist":{"shasum":"287f774bd0dfda9abc125a0f01aeb51eaff49806","size":33988,"noattachment":false,"key":"/babel-plugin-jsx-event-modifiers/-/babel-plugin-jsx-event-modifiers-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/babel-plugin-jsx-event-modifiers/download/babel-plugin-jsx-event-modifiers-1.0.2.tgz"},"maintainers":[{"name":"nickmessing","email":"dot.nick.dot.messing@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/babel-plugin-jsx-event-modifiers-1.0.2.tgz_1493711967641_0.34630129183642566"},"directories":{},"publish_time":1493711969451,"_hasShrinkwrap":false,"_cnpm_publish_time":1493711969451}},"readme":"## Event Modifiers for JSX\n\nThis babel plugin adds some syntactic sugar to JSX.\n\n### Usage:\n\n```bash\nnpm i babel-plugin-jsx-event-modifiers -D\n```\nor\n```bash\nyarn add babel-plugin-jsx-event-modifiers -D\n```\n\nThen add `jsx-event-modifiers` to your `.babelrc` file under `plugins`\n\nexample .babelrc:\n```json\n{\n  \"presets\": [\"es2015\"],\n  \"plugins\": [\"jsx-event-modifiers\", \"transform-vue-jsx\"]\n}\n```\n\n#### Event Modifiers\n\nExample:\n```js\nexport default {\n  render () {\n    return (\n      <input\n        onKeyup:up={this.methodForPressingUp}\n        onKeyup:down={this.methodForPressingDown}\n        onKeyup:bare-shift-enter={this.methodOnlyOnShiftEnter}\n        onKeyup:bare-alt-enter={this.methodOnlyOnAltEnter}\n      />\n    )\n  }\n}\n```\nwill be transpiled into:\n```js\nexport default {\n  render() {\n    return (\n      <input\n        {...{\n          on: {\n            keyup: [\n              $event => {\n                if (!('button' in $event) && this._k($event.keyCode, 'up', 38)) return null\n\n                this.methodForPressingUp($event)\n              },\n              $event => {\n                if (!('button' in $event) && this._k($event.keyCode, 'down', 40)) return null\n\n                this.methodForPressingDown($event)\n              },\n              $event => {\n                if (\n                  ($event.ctrlKey && $event.altKey && $event.metaKey) ||\n                  !$event.shiftKey ||\n                  (!('button' in $event) && this._k($event.keyCode, 'enter', 13))\n                )\n                  return null\n\n                this.methodOnlyOnShiftEnter($event)\n              },\n              $event => {\n                if (\n                  ($event.ctrlKey && $event.shiftKey && $event.metaKey) ||\n                  !$event.altKey ||\n                  (!('button' in $event) && this._k($event.keyCode, 'enter', 13))\n                )\n                  return null\n\n                this.methodOnlyOnAltEnter($event)\n              },\n            ],\n          },\n        }}\n      />\n    )\n  },\n}\n\n\n```\n\n#### We try to keep API and behaviour as close to [Vue Event Modifiers](https://vuejs.org/v2/guide/events.html#Event-Modifiers) as we can. The only difference today is support for [bare](https://github.com/vuejs/vue/pull/5977) modifier and syntax.\n\n##### Example:\n\nVue template:\n```html\n<input\n  @keyup.up=\"methodForPressingUp\"\n  @keyup.down=\"methodForPressingDown\"\n  @keyup.bare.shift.enter=\"methodOnlyOnShiftEnter\"\n  @keyup.bare.alt.enter=\"methodOnlyOnAltEnter\"\n  @keyup.120=\"onPressKey120('some', 'arguments')\"\n>\n```\nJSX:\n```js\n<input\n  onKeyup:up={this.methodForPressingUp}\n  onKeyup:down={this.methodForPressingDown}\n  onKeyup:bare-shift-enter={this.methodOnlyOnShiftEnter}\n  onKeyup:bare-alt-enter={this.methodOnlyOnAltEnter}\n  onKeyup:k120={() => this.onPressKey120('some', 'arguments')}\n/>\n```\n\n##### Notable differences:\n\n * Modifiers are prefixed by `:` and separated by `-` (in vue: prefixed by `.` and separated by `.`)\n * Key codes are prefixed by `k`\n * Call expression should be wrapped in arrow functions\n","_attachments":{},"homepage":"https://github.com/nickmessing/babel-plugin-jsx-event-modifiers#readme","bugs":{"url":"https://github.com/nickmessing/babel-plugin-jsx-event-modifiers/issues"},"license":"MIT"}