{"_id":"@ashmcconnell/emulate-tab","_rev":"2-24c1420cb2053c8d2d44cd64420093bd","name":"@ashmcconnell/emulate-tab","dist-tags":{"latest":"1.2.0"},"versions":{"1.2.0":{"name":"@ashmcconnell/emulate-tab","version":"1.2.0","description":"emulate tab key without selector or dependencies","scripts":{"test":"node test.js","build":"tsc","prebuild:all":"rm -rf dist; rm -rf tmp","build:all":"node build.js","postbuild:all":"npm run pack","pack":"node pack.js"},"repository":{"type":"git","url":"git+https://github.com/e-hein/emulate-tab.git"},"keywords":["emulate","simulate","browser","user","tab","font-end","keyboard","javascript","focus","tabindex","web"],"author":{"name":"Emanuel Hein"},"license":"MIT","bugs":{"url":"https://github.com/e-hein/emulate-tab/issues"},"homepage":"https://emulate-tab.net-root.de/","devDependencies":{"chalk":"^4.1.0","rollup":"^2.18.0","shelljs":"^0.8.4","typescript":"^3.9.5","uglify-js":"^3.10.0"},"main":"dist/emulate-tab.js","types":"dist/emulate-tab.d.ts","gitHead":"b32695f8b53f79668f1d9e216707702afc7e7da1","_id":"@ashmcconnell/emulate-tab@1.2.0","_nodeVersion":"16.5.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-lnH/RCj4QQtgOZfmCs/EOYCOu1PuKIQbOliAnkenDmWSo5d04LxVHs0SYA55UG2m7iNLD4JVw/xSY2O750wswQ==","shasum":"7c94a74c27d1668f71de7727651d9b5e812abb21","tarball":"https://registry.npmjs.org/@ashmcconnell/emulate-tab/-/emulate-tab-1.2.0.tgz","fileCount":10,"unpackedSize":64222,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh119WCRA9TVsSAnZWagAAZd4P/0KdFyvul5bYdmvDtNmY\n6BCA6XQ514O90QTUUiTuT9wJPAuKEusJ7dQXCiYk5rbRyiTG2qntTGUbxnxb\nAR9rxdKEN/xVDHpTH4mLOJKQ2pU0vIGdngJUoQuVnbcuyLNN+ET5j54ISu1i\np4IkzShB3FOMkVNABfgwcu5AXKTxcK+0qsKj3dehgQEgY3XKxqBUauFF0VET\nhm4kYJ6WFAD9gt+5uy/sKPRLWssIlw13xXnG+q51hh+Y/7qp4Iu3UY/a3k1X\nNE/fsTQhIy7w18RXiBaWSqNXd6XnCxoTlT+NV/A2e2F/0HI5EuH5A270Xwbk\ne5k9JhEA9xn09wV1PyPrbbP8MHqE/k5uxOheq556n1Avp7Nf6x/RUIdxOS2j\nCpCeJcEHmEyLleNcfJHiO/pVnZstL2rROI1u8lBceTXMc0NY/0h7o0dJySO8\nH9vrFHnyUip+P55YSbZKyYrzjuJBXFW83J30z8s63W6Xjok2AiIfnhJ18I4q\nwTrfaPqFyEo1Ul0wJpZVTNz2TdBuuZBfX9SpESWMHAzPmaSb9VkVo9fVPHW3\ntqJHqPjdgR0IblN5CGLTP9XprpCrm1xEyT0QtyLiF5ZzD/KkvEZojKT17sbJ\nXq2vEMAViV6PJH5P4dYHu8mIixZ+d3Gvwvt8gf4WDu3KVL1lk10UHJTXtb+c\njDuL\r\n=y4qU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICWrt7ouzC//H7R94DEfL+vt8pmzmVkscYzxfd2cq4q2AiBIYkZy4elhuCpAWyfdbl8YVZV7iyeGd/PrYq9JLXckrw=="}]},"_npmUser":{"name":"ashmcconnell","email":"ashley@siroccoracing.com"},"directories":{},"maintainers":[{"name":"ashmcconnell","email":"ashley@siroccoracing.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/emulate-tab_1.2.0_1633009819220_0.14596880746336338"},"_hasShrinkwrap":false}},"time":{"created":"2021-09-30T13:50:19.174Z","1.2.0":"2021-09-30T13:50:19.390Z","modified":"2022-04-04T15:45:48.759Z"},"maintainers":[{"name":"ashmcconnell","email":"ashley@siroccoracing.com"}],"description":"emulate tab key without selector or dependencies","homepage":"https://emulate-tab.net-root.de/","keywords":["emulate","simulate","browser","user","tab","font-end","keyboard","javascript","focus","tabindex","web"],"repository":{"type":"git","url":"git+https://github.com/e-hein/emulate-tab.git"},"author":{"name":"Emanuel Hein"},"bugs":{"url":"https://github.com/e-hein/emulate-tab/issues"},"license":"MIT","readme":"[![npm (tag)](https://img.shields.io/npm/v/emulate-tab/latest)](https://www.npmjs.com/package/emulate-tab)\n[![Travis (.org)](https://img.shields.io/travis/e-hein/emulate-tab?label=travis)](https://travis-ci.org/e-hein/emulate-tab)\n\nemulate tab\n===========\nTries to emulate a tab key press of a real user.\n\nEver triggered the tab-key-event by javascript? Tab is usually handled by browser and will not get handle if you trigger the event by javascript. This is for security resons to prevent a script to tab e.g. into the browser's menu or into another frame or dev-tools ...  \nThis script has an heuristic to find the next element to stop. It will trigger the keypress-Event and blur event on the active element and the focus-Event on the next element.\n\nInteractive demo: https://emulate-tab.net-root.de\n\nInstallation\n------------\n```npm i emulate-tab```  \nor download unpackaged javascript files from our [releases](https://github.com/e-hein/emulate-tab/releases)\n\nUsage\n-----\n#### typescript\n```ts\nimport { emulateTab } from 'emulate-tab';\n\nemulateTab();\nemulateTab.backwards();\n```\n[-> complete angular material example project](test/in-angular-material/src/app/app.component.ts)\n\n#### javascript\n```html\n<script src=\"emulate-tab.min.js\">\n<script>\n  emulateTab();\n  emulateTab.backwards();\n</script>\n```\n[-> complete plain html example project](test/in-plain-html-js/www/sample-form.html)\n\nDependencies\n------------\nnone.\n\nBrowser compatibility:\n----------------------\nAutomated tests for current Chrome and Firefox: \n[![Travis (.org)](https://img.shields.io/travis/e-hein/emulate-tab?label=travis)](https://travis-ci.org/e-hein/emulate-tab)\n\nLicense:\n--------\n[MIT License](LICENSE)","readmeFilename":"README.md"}