{"_id":"ng-keyboard-shortcuts","_rev":"95-5589767a7eed2833af8f30c4e46f4506","name":"ng-keyboard-shortcuts","dist-tags":{"latest":"13.0.8","v7-lts":"7.1.17","v9-lts":"9.1.17"},"versions":{"1.0.0":{"name":"ng-keyboard-shortcuts","version":"1.0.0","description":"Library QuickStart package.json from the documentation, supplemented with testing support","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"tsc -p src/demo/","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","prestart":"npm run build-demo","start":"concurrently \"npm run build-demo:watch\" \"npm run serve\"","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/animations":"^4.1.2","@angular/common":"^4.3.6","@angular/compiler":"^4.3.6","@angular/core":"^4.3.6","@angular/forms":"^4.1.2","@angular/http":"^4.1.2","@angular/platform-browser":"^4.3.6","@angular/platform-browser-dynamic":"^4.3.6","@angular/platform-server":"^4.1.2","@angular/router":"^4.1.2","@angular/compiler-cli":"~4.1.3","@types/jasmine":"2.5.36","@types/node":"^6.0.46","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"_id":"ng-keyboard-shortcuts@1.0.0","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-KXGkVBEV+FK/KiN42PNfIYHGVEIv00a5fELuHvffge2hxVC1ODCTK/yVdhXN9xlR8FEt04+fR3ojAmBj2zMnoQ==","shasum":"3df87e556193703f667c399e2b090a75ad6ef067","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnaAbgdsfZSvERBrvlmII9f5yDhvmjE8HsHNvTcX9KhAIgKeB7lcftjEb5MWwHKAJqBnG2iUV2i7WvNYXTUCsi7D8="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.0.0.tgz_1504952106280_0.6459929922129959"},"directories":{}},"1.0.10":{"name":"ng-keyboard-shortcuts","version":"1.0.10","description":"N/A","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"tsc -p src/demo/","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","prestart":"npm run build-demo","start":"concurrently \"npm run build-demo:watch\" \"npm run serve\"","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/animations":"^4.1.2","@angular/common":"^4.3.6","@angular/compiler":"^4.3.6","@angular/core":"^4.3.6","@angular/forms":"^4.1.2","@angular/http":"^4.1.2","@angular/platform-browser":"^4.3.6","@angular/platform-browser-dynamic":"^4.3.6","@angular/platform-server":"^4.1.2","@angular/router":"^4.1.2","@angular/compiler-cli":"~4.1.3","@types/jasmine":"2.5.36","@types/node":"^6.0.46","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"_id":"ng-keyboard-shortcuts@1.0.10","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-b0tw6NKeRU7Uxpr3AJdD+JXKBKF2L7okSd68owzfv21UoQoQh5D831CK/FvdqKS1gcJ4Rq53r8CJG1XUUwFrnA==","shasum":"a76fd79c2739dae58487ae330dc77a5628e535f7","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.0.10.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHR4ItHk2upf1c8hj482OteZmcksy5eiLyQGOuxXxki9AiBtdtPEP1zs8TpiwrbOYQ/YwWt2FW5VTFz9YUQudTqJvg=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.0.10.tgz_1504952157762_0.06602288060821593"},"directories":{}},"1.0.11":{"name":"ng-keyboard-shortcuts","version":"1.0.11","description":"N/A","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"tsc -p src/demo/","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","prestart":"npm run build-demo","start":"concurrently \"npm run build-demo:watch\" \"npm run serve\"","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/animations":"^4.1.2","@angular/common":"^4.3.6","@angular/compiler":"^4.3.6","@angular/core":"^4.3.6","@angular/forms":"^4.1.2","@angular/http":"^4.1.2","@angular/platform-browser":"^4.3.6","@angular/platform-browser-dynamic":"^4.3.6","@angular/platform-server":"^4.1.2","@angular/router":"^4.1.2","@angular/compiler-cli":"~4.1.3","@types/jasmine":"2.5.36","@types/node":"^6.0.46","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"_id":"ng-keyboard-shortcuts@1.0.11","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-Y6W4VFeL/TXtigOrgJ6qZrvrIk74s1NajTWiWfJQamW9MmLyJV7Q2Ty40Y42vN5cbtYtbf1G8SlMdJOfpB1j6A==","shasum":"e9f064bb89164fcb6829b090afe4ea3ea908febd","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.0.11.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBiI7UAX55sLVEfVX/M/rWS81nAcU1BFbYDSJgY/dg5DAiEAsfXFIWg/dTk2ktqmj6Q/fTepOwh8hbmzAzr2b/ZYz3M="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.0.11.tgz_1504952702787_0.7614797386340797"},"directories":{}},"1.0.12":{"name":"ng-keyboard-shortcuts","version":"1.0.12","description":"N/A","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"tsc -p src/demo/","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","prestart":"npm run build-demo","start":"concurrently \"npm run build-demo:watch\" \"npm run serve\"","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/animations":"^4.1.2","@angular/common":"^4.3.6","@angular/compiler":"^4.3.6","@angular/core":"^4.3.6","@angular/forms":"^4.1.2","@angular/http":"^4.1.2","@angular/platform-browser":"^4.3.6","@angular/platform-browser-dynamic":"^4.3.6","@angular/platform-server":"^4.1.2","@angular/router":"^4.1.2","@angular/compiler-cli":"~4.1.3","@types/jasmine":"2.5.36","@types/node":"^6.0.46","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"_id":"ng-keyboard-shortcuts@1.0.12","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-BUyb9CEaMh2jDytNAVgMpg/caRLuknbQOZANJgo/EQC5R2dFbkES1+dNF5U4YHosHAAV3OliNfRDSi+TKCDK9w==","shasum":"d53dbee299f561945e42ff4bd1f2fa2fc8188c4e","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.0.12.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6VQWWr84aMY191MoapxfEAAxPNJnLnVGjpogUz3QU3wIhAJ//xQr0msvtARrPPrR4mtk6wk89cKGMYEoYm4SBExl7"}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.0.12.tgz_1504953099596_0.572407701285556"},"directories":{}},"1.0.13":{"name":"ng-keyboard-shortcuts","version":"1.0.13","description":"N/A","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"tsc -p src/demo/","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","prestart":"npm run build-demo","start":"concurrently \"npm run build-demo:watch\" \"npm run serve\"","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/animations":"^4.1.2","@angular/common":"^4.3.6","@angular/compiler":"^4.3.6","@angular/core":"^4.3.6","@angular/forms":"^4.1.2","@angular/http":"^4.1.2","@angular/platform-browser":"^4.3.6","@angular/platform-browser-dynamic":"^4.3.6","@angular/platform-server":"^4.1.2","@angular/router":"^4.1.2","@angular/compiler-cli":"~4.1.3","@types/jasmine":"2.5.36","@types/node":"^6.0.46","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"_id":"ng-keyboard-shortcuts@1.0.13","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-Ltay276ey/nQW2jXCNu2JW2owoS9ED02h+r7HWZKss36OHp8xcUYzGcdDgWKPReXS7ywUeOeBCCP77UK2tjzBA==","shasum":"d7fbaa91f870c3b05602b3aa2f9a286d354d5ddc","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.0.13.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDhRMHH6mA3XQhJ/ov+QoYnjnSWloJQC7y15NniQkx4UAiAIdeIQOacchFQjFo+WpOwxEDjwUjamJW+4FNT7bcQ6ZQ=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.0.13.tgz_1504953436585_0.39766983035951853"},"directories":{}},"1.0.14":{"name":"ng-keyboard-shortcuts","version":"1.0.14","description":"N/A","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"tsc -p src/demo/","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","prestart":"npm run build-demo","start":"concurrently \"npm run build-demo:watch\" \"npm run serve\"","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/animations":"^4.1.2","@angular/common":"^4.3.6","@angular/compiler":"^4.3.6","@angular/core":"^4.3.6","@angular/forms":"^4.1.2","@angular/http":"^4.1.2","@angular/platform-browser":"^4.3.6","@angular/platform-browser-dynamic":"^4.3.6","@angular/platform-server":"^4.1.2","@angular/router":"^4.1.2","@angular/compiler-cli":"~4.1.3","@types/jasmine":"2.5.36","@types/node":"^6.0.46","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"_id":"ng-keyboard-shortcuts@1.0.14","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-hnLtmJeRP3jCmHC1PILp59K1CD59ifbtsSQodJtD0BuL6bMKRJxnWBDemqhWHIE9TESkLYgYNfHBXfjDBM2X3w==","shasum":"854b64905deec52153821837e54a3fa2d48edcef","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.0.14.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGBb53OVHXurEVgviHuFZ+2c5ZqfMug7e14gS1t0I9uzAiEAyPOtCEyJNjlSk5psOlllr5NNYF1RmSIDXpuRCPLKR98="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.0.14.tgz_1504953609144_0.855269571300596"},"directories":{}},"1.0.15":{"name":"ng-keyboard-shortcuts","version":"1.0.15","description":"N/A","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"tsc -p src/demo/","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","prestart":"npm run build-demo","start":"concurrently \"npm run build-demo:watch\" \"npm run serve\"","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/animations":"^4.1.2","@angular/common":"^4.3.6","@angular/compiler":"^4.3.6","@angular/core":"^4.3.6","@angular/forms":"^4.1.2","@angular/http":"^4.1.2","@angular/platform-browser":"^4.3.6","@angular/platform-browser-dynamic":"^4.3.6","@angular/platform-server":"^4.1.2","@angular/router":"^4.1.2","@angular/compiler-cli":"~4.1.3","@types/jasmine":"2.5.36","@types/node":"^6.0.46","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"_id":"ng-keyboard-shortcuts@1.0.15","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-Xm85jqPUN3FzfeGtKlms4XvSXZTuEwdCAM0Hcdikwg/8H/PMrauhjmxh1SsjyGcYauD0kaMS9M0gahclOtSYQw==","shasum":"7a379276b0d67cad29585632406b3bd416c4374b","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.0.15.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWHAw/VNwZ6/2HLD5ej6qQUDDB8GGa1Vw9ocZeiS86hQIgCKkuOb370byIgIJ82JbSFBIHChLPcHhTzZs+cr9lXqU="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.0.15.tgz_1504954518504_0.025351089658215642"},"directories":{}},"1.0.16":{"name":"ng-keyboard-shortcuts","version":"1.0.16","description":"N/A","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"tsc -p src/demo/","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","prestart":"npm run build-demo","start":"concurrently \"npm run build-demo:watch\" \"npm run serve\"","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/animations":"^4.1.2","@angular/common":"^4.3.6","@angular/compiler":"^4.3.6","@angular/core":"^4.3.6","@angular/forms":"^4.1.2","@angular/http":"^4.1.2","@angular/platform-browser":"^4.3.6","@angular/platform-browser-dynamic":"^4.3.6","@angular/platform-server":"^4.1.2","@angular/router":"^4.1.2","@angular/compiler-cli":"~4.1.3","@types/jasmine":"2.5.36","@types/node":"^6.0.46","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"_id":"ng-keyboard-shortcuts@1.0.16","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-rcXM8ls6s9+k8DV4HXv/tq4Qwqctr7beoamzDLrb7gi4HZ+j9azbWOn106gjH1CxIdL1Gk1jUXjVihnhAX3Qjw==","shasum":"1a926c3f944786d8f5c617cc61e083e1b6283b9a","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.0.16.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIALouVNs6pYJJtgq2DAvDq/tXBawWcVuspGrLWF08PLIAiEAhGKQCpQL0Pr0Ei0Guuf4EPEeCHTIuOTX9PdgOSI5vgM="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.0.16.tgz_1504954801687_0.31294672819785774"},"directories":{}},"1.0.17":{"name":"ng-keyboard-shortcuts","version":"1.0.17","description":"N/A","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"tsc -p src/demo/","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","prestart":"npm run build-demo","start":"concurrently \"npm run build-demo:watch\" \"npm run serve\"","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/animations":"^4.1.2","@angular/common":"^4.3.6","@angular/compiler":"^4.3.6","@angular/core":"^4.3.6","@angular/forms":"^4.1.2","@angular/http":"^4.1.2","@angular/platform-browser":"^4.3.6","@angular/platform-browser-dynamic":"^4.3.6","@angular/platform-server":"^4.1.2","@angular/router":"^4.1.2","@angular/compiler-cli":"~4.1.3","@types/jasmine":"2.5.36","@types/node":"^6.0.46","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"_id":"ng-keyboard-shortcuts@1.0.17","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-2qtjgqW8yQJ36z62ZFYgNHXeCwtzPCCTmmGr3q8m3QqlwdVbnBV1k10kABYhAefmoFIjz/p1/oULo5QJDWR0sQ==","shasum":"6d7bf324c2ea2801f9fe61ba2a64c33c0e101817","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.0.17.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDzBb3YcRJjqDpHfmV92GOGHH5r/tuu/GVWGE56QBEY5AIhAM6fiv9134SPAqvKwRHHqMfV4LJHrGCb1+WtlXWdeXTY"}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.0.17.tgz_1504955640662_0.6277058778796345"},"directories":{}},"1.0.18":{"name":"ng-keyboard-shortcuts","version":"1.0.18","description":"N/A","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"tsc -p src/demo/","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","prestart":"npm run build-demo","start":"concurrently \"npm run build-demo:watch\" \"npm run serve\"","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/animations":"^4.1.2","@angular/common":"^4.3.6","@angular/compiler":"^4.3.6","@angular/core":"^4.3.6","@angular/forms":"^4.1.2","@angular/http":"^4.1.2","@angular/platform-browser":"^4.3.6","@angular/platform-browser-dynamic":"^4.3.6","@angular/platform-server":"^4.1.2","@angular/router":"^4.1.2","@angular/compiler-cli":"~4.1.3","@types/jasmine":"2.5.36","@types/node":"^6.0.46","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"_id":"ng-keyboard-shortcuts@1.0.18","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-1/PAzkiKGSnkOq/d5C75UfDCVQ38DNHOLCo273D/3lwU/SjKHtKU0kCGtYFHwfpkLXeMAnQWsulFud+mXUTIYQ==","shasum":"832437bd920f64a3b88a51307a42659d96c20695","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.0.18.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCHh4fZUlsaVveGSSDuGY4nwRHZ0XgcEslaTz3r+IN7AIgEI/vfrjyIxjsgmV4WmRcRnXH9H1q0bIQ5EgOh4RV5g4="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.0.18.tgz_1504956274873_0.553508137119934"},"directories":{}},"1.0.20":{"name":"ng-keyboard-shortcuts","version":"1.0.20","description":"N/A","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"tsc -p src/demo/","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","prestart":"npm run build-demo","start":"concurrently \"npm run build-demo:watch\" \"npm run serve\"","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/animations":"^4.1.2","@angular/common":"^4.3.6","@angular/compiler":"^4.3.6","@angular/core":"^4.3.6","@angular/forms":"^4.1.2","@angular/http":"^4.1.2","@angular/platform-browser":"^4.3.6","@angular/platform-browser-dynamic":"^4.3.6","@angular/platform-server":"^4.1.2","@angular/router":"^4.1.2","@angular/compiler-cli":"~4.1.3","@types/jasmine":"2.5.36","@types/node":"^6.0.46","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"_id":"ng-keyboard-shortcuts@1.0.20","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-oNIPMuqwXGhddBuVkQz3cj1yB7C2xhX3Jd6ILi7vKnFjGddo3qGIQBqQ5vvQeqRk25/XQR/uYtzMqAk1VjmPFA==","shasum":"8827a4a7d8bbc326a5bd4b0f177450b84bd00d1e","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.0.20.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBhuwRDn4m7vIqMP2LOyQAQWjL8wE05Bwh6UAxZss/n/AiA8m33QFzozzn+pjE08D3sb6ZkiSpC7FUMNnEF+DR+cDg=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.0.20.tgz_1504958212251_0.2862742792349309"},"directories":{}},"1.0.21":{"name":"ng-keyboard-shortcuts","version":"1.0.21","description":"N/A","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"tsc -p src/demo/","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","prestart":"npm run build-demo","start":"concurrently \"npm run build-demo:watch\" \"npm run serve\"","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/animations":"^4.1.2","@angular/common":"^4.3.6","@angular/compiler":"^4.3.6","@angular/core":"^4.3.6","@angular/forms":"^4.1.2","@angular/http":"^4.1.2","@angular/platform-browser":"^4.3.6","@angular/platform-browser-dynamic":"^4.3.6","@angular/platform-server":"^4.1.2","@angular/router":"^4.1.2","@angular/compiler-cli":"~4.1.3","@types/jasmine":"2.5.36","@types/node":"^6.0.46","@types/core-js":"^0.9.42","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"_id":"ng-keyboard-shortcuts@1.0.21","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-W6AmiU428Mcc/9dBYoe9yqTXHNaYvkNOsFFLzdruA/olX566MP8plyURjbDn80PnWo24dTVP3S61Shp2GNUvfg==","shasum":"c3bfed39e0647d143168d431595054dcc7b86e84","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.0.21.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID26GCXZdlIcc33pedLETYEiAucTGzY4vjtf2kVQbBsVAiB6l/SbdQe92u5g9DUhkI8nhizfMXboNp8j6USJwvSMJA=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.0.21.tgz_1504962604770_0.25603940268047154"},"directories":{}},"1.0.23":{"name":"ng-keyboard-shortcuts","version":"1.0.23","description":"N/A","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"tsc -p src/demo/","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","prestart":"npm run build-demo","start":"concurrently \"npm run build-demo:watch\" \"npm run serve\"","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/animations":"^4.1.2","@angular/common":"^4.3.6","@angular/compiler":"^4.3.6","@angular/core":"^4.3.6","@angular/forms":"^4.1.2","@angular/http":"^4.1.2","@angular/platform-browser":"^4.3.6","@angular/platform-browser-dynamic":"^4.3.6","@angular/platform-server":"^4.1.2","@angular/router":"^4.1.2","@angular/compiler-cli":"~4.1.3","@types/jasmine":"2.5.36","@types/node":"^6.0.46","@types/core-js":"^0.9.42","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"_id":"ng-keyboard-shortcuts@1.0.23","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-hZqYzhFSVnhNLkZRw/QCcnrWWzxT9YIity4YIhJvDbmFlr9BI1ggHkFILMw0eZ6uGMnpra2Ky94OxXwIWrbm4Q==","shasum":"a31703fba61a0f343a58c7cd0e73d3717949eb98","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.0.23.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFo4sxf642zHGIh1JoMq6yMoz+58aCzcPLHYYqZ1IOGYAiATAUePLIosOjY8fKysedYwk2YGbhi14D4Iumb5CIHpuA=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.0.23.tgz_1504963282899_0.20412322017364204"},"directories":{}},"1.1.0":{"name":"ng-keyboard-shortcuts","version":"1.1.0","description":"An angular module that exposes a service for creating keyboard shortcuts using a simple configuration object like Visual Studio Code key bindings","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"tsc -p src/demo/","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","prestart":"npm run build-demo","start":"concurrently \"npm run build-demo:watch\" \"npm run serve\"","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/animations":"^4.1.2","@angular/common":"^4.3.6","@angular/compiler":"^4.3.6","@angular/core":"^4.3.6","@angular/forms":"^4.1.2","@angular/http":"^4.1.2","@angular/platform-browser":"^4.3.6","@angular/platform-browser-dynamic":"^4.3.6","@angular/platform-server":"^4.1.2","@angular/router":"^4.1.2","@angular/compiler-cli":"~4.1.3","@types/jasmine":"2.5.36","@types/node":"^6.0.46","@types/core-js":"^0.9.42","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"_id":"ng-keyboard-shortcuts@1.1.0","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-ITE3ipSphNwF/C4S4+91YIaxDQAoHBXJckj+Hw9na3UHalALN+geGbLI4m5Jy3gAsELLfg+FWI+/10WgfKKeDA==","shasum":"f269dc4feb67592750f2775f33c2646daae5bd27","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgIAv0AJEcSmH72n+0FHddnxM1X5sSzv+ILxEOP/7LpQIhAOGKp1mfCCOe21waxgYDf8+VM8n9vmQEZ7a2HS4KTY/H"}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.1.0.tgz_1504967807646_0.8649105702061206"},"directories":{}},"1.1.1":{"name":"ng-keyboard-shortcuts","version":"1.1.1","description":"An angular module that exposes a service for creating keyboard shortcuts using a simple configuration object like Visual Studio Code key bindings","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"tsc -p src/demo/","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","prestart":"npm run build-demo","start":"concurrently \"npm run build-demo:watch\" \"npm run serve\"","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/animations":"^4.1.2","@angular/common":"^4.3.6","@angular/compiler":"^4.3.6","@angular/core":"^4.3.6","@angular/forms":"^4.1.2","@angular/http":"^4.1.2","@angular/platform-browser":"^4.3.6","@angular/platform-browser-dynamic":"^4.3.6","@angular/platform-server":"^4.1.2","@angular/router":"^4.1.2","@angular/compiler-cli":"~4.1.3","@types/jasmine":"2.5.36","@types/node":"^6.0.46","@types/core-js":"^0.9.42","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"_id":"ng-keyboard-shortcuts@1.1.1","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-VN+ms/qZZqbfWDkzTS7CsmMts06JziAH98eC+kr4VAjp7E+SqVzlYRdRL0GkNr1Q6CpsH0Ttj20JEqbXeLflVw==","shasum":"9c1c992f47cca374a68e5a18ae90c4e174b8b47d","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.1.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBhu0rHMO23EJT1ZKlFgZcaFajBkg10Hwefd3gXbP8voAiEAp05ISt/SJ/cyI1BUlADG0WiPRjZlKEmqf27/5vJSQ7g="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.1.1.tgz_1504968747996_0.8583770361728966"},"directories":{}},"1.1.2":{"name":"ng-keyboard-shortcuts","version":"1.1.2","description":"An angular module that exposes a service for creating keyboard shortcuts using a simple configuration object like Visual Studio Code key bindings","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"tsc -p src/demo/","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","prestart":"npm run build-demo","start":"concurrently \"npm run build-demo:watch\" \"npm run serve\"","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/animations":"^4.1.2","@angular/common":"^4.3.6","@angular/compiler":"^4.3.6","@angular/core":"^4.3.6","@angular/forms":"^4.1.2","@angular/http":"^4.1.2","@angular/platform-browser":"^4.3.6","@angular/platform-browser-dynamic":"^4.3.6","@angular/platform-server":"^4.1.2","@angular/router":"^4.1.2","@angular/compiler-cli":"~4.1.3","@types/jasmine":"2.5.36","@types/node":"^6.0.46","@types/core-js":"^0.9.42","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"_id":"ng-keyboard-shortcuts@1.1.2","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-VKPycalGcg/WHzvJxrqfGRyBlbE16aovITpCCfAV3oNZoXrzZ75nwhn2+aid9eMkCV+8OIiZ2+ZIOTnQV/JDRA==","shasum":"585ddf0c0c981d6d450404d0736ff8137cc19c1a","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.1.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvourDbqyaIquGCtZ9NDINoMkLLPVB77kolbM75ClvhQIgFeoeuLZqbDf44DhcciqWP/SGXcUCUN1rpzmkn403vAA="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.1.2.tgz_1504971185742_0.17380695696920156"},"directories":{}},"1.1.3":{"name":"ng-keyboard-shortcuts","version":"1.1.3","description":"An angular module that exposes a service for creating keyboard shortcuts using a simple configuration object like Visual Studio Code key bindings","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"tsc -p src/demo/","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","prestart":"npm run build-demo","start":"concurrently \"npm run build-demo:watch\" \"npm run serve\"","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/animations":"^4.1.2","@angular/common":"^4.3.6","@angular/compiler":"^4.3.6","@angular/core":"^4.3.6","@angular/forms":"^4.1.2","@angular/http":"^4.1.2","@angular/platform-browser":"^4.3.6","@angular/platform-browser-dynamic":"^4.3.6","@angular/platform-server":"^4.1.2","@angular/router":"^4.1.2","@angular/compiler-cli":"~4.1.3","@types/jasmine":"2.5.36","@types/node":"^6.0.46","@types/core-js":"^0.9.42","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"_id":"ng-keyboard-shortcuts@1.1.3","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-B0BOa1Xt5JcmUqvsKy3ki9pX2AR57nrJGGgyaCmB/db76Fq1aZOns7kPI5f6itC5VHhXWu1iVXZMyeb8RSRlDQ==","shasum":"e91a5a1aefc2558e7fa54d2606132ecd2f8b31bd","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.1.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBobWTtIiDHR+KDBdxKh6WQTHxWIyClOyGzDw4/LHtzSAiAD8clXd19fmmcDMlNhscC5svBvg8bAD02J2F8piBadFw=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.1.3.tgz_1504971704107_0.7752911497373134"},"directories":{}},"1.1.5":{"name":"ng-keyboard-shortcuts","version":"1.1.5","description":"An angular module that exposes a service for creating keyboard shortcuts using a simple configuration object like Visual Studio Code key bindings","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"ng build","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","ng":"ng","start":"npm run build && ng serve --delete-output-path=false --port 4800","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/cdk":"^2.0.0-beta.10","@angular/cli":"^1.4.1","@angular/compiler-cli":"~4.3.0","@angular/material":"^2.0.0-beta.10","@angular/platform-server":"^4.3.0","@types/core-js":"^0.9.42","@types/jasmine":"2.5.36","@types/node":"^6.0.46","@angular/animations":"^4.3.0","@angular/common":"^4.3.0","@angular/compiler":"^4.3.0","@angular/core":"^4.3.0","@angular/forms":"^4.3.0","@angular/http":"^4.3.0","@angular/platform-browser":"^4.3.0","@angular/platform-browser-dynamic":"^4.3.0","@angular/router":"^4.3.0","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"_id":"ng-keyboard-shortcuts@1.1.5","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-UuokKHhpfCb/rJhIynyStmES5Ajhgn+yURQihGVgiEc3HGO4NZDTxhoHESR8Vj4rza5t4L4h4rDvb+O4c9DT1A==","shasum":"a1fdface77641bc1240622899026d62c5376c7ce","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.1.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDrANgKpHnYiwTXrTJuEMZPBXttBHy7FIMMvm+aVxH4/AiAVrWAuCbXu8R8dUgjMeFJLNB4EqrBgVoiLO/b6tswtPQ=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.1.5.tgz_1504982670563_0.4637355739250779"},"directories":{}},"1.1.6":{"name":"ng-keyboard-shortcuts","version":"1.1.6","description":"An angular module that exposes a service for creating keyboard shortcuts using a simple configuration object like Visual Studio Code key bindings","main":"./bundles/ng-keyboard-shortcuts.umd.js","module":"./ng-keyboard-shortcuts.es5.js","es2015":"./ng-keyboard-shortcuts.js","typings":"./ng-keyboard-shortcuts.d.ts","author":"","license":"MIT","repository":{"type":"git","url":"git+https://github.com/omridevk/ng-keyboard-shortcuts.git"},"engines":{"node":">= 6.9.0","npm":">= 3.0.0"},"scripts":{"clean":"rimraf out-tsc dist/*","prebuild":"npm run clean","build":"node build.js","build-demo":"ng build","build-demo:watch":"tsc -p src/demo/ -w","serve":"lite-server -c=bs-config.json","ng":"ng","start":"npm run build && ng serve --delete-output-path=false --port 4800","build-test":"tsc -p src/lib/tsconfig.spec.json","build-test:watch":"tsc -p src/lib/tsconfig.spec.json -w","pretest":"npm run build-test","test":"concurrently \"npm run build-test:watch\" \"karma start karma.conf.js\"","coverage":"karma start karma-coverage.conf.js --single-run","pretest:once":"npm run build-test","test:once":"karma start karma.conf.js --single-run","preintegration":"npm run build && cd integration && npm run clean && npm install","integration":"npm run integration:aot && npm run integration:jit","integration:jit":"cd integration && npm run e2e","integration:aot":"cd integration && npm run e2e:aot","lint":"tslint ./src/**/*.ts -t verbose","release":"standard-version"},"peerDependencies":{"@angular/core":">=4.0.0 <5.0.0 || >=4.0.0-beta <5.0.0"},"devDependencies":{"@angular/cdk":"^2.0.0-beta.10","@angular/cli":"^1.4.1","@angular/compiler-cli":"~4.3.0","@angular/material":"^2.0.0-beta.10","@angular/platform-server":"^4.3.0","@types/core-js":"^0.9.42","@types/jasmine":"2.5.36","@types/node":"^6.0.46","@angular/animations":"^4.3.0","@angular/common":"^4.3.0","@angular/compiler":"^4.3.0","@angular/core":"^4.3.0","@angular/forms":"^4.3.0","@angular/http":"^4.3.0","@angular/platform-browser":"^4.3.0","@angular/platform-browser-dynamic":"^4.3.0","@angular/router":"^4.3.0","camelcase":"^4.0.0","concurrently":"3.4.0","core-js":"^2.4.1","glob":"^7.1.1","jasmine-core":"^2.5.2","karma":"^1.5.0","karma-chrome-launcher":"^2.0.0","karma-cli":"^1.0.1","karma-coverage":"^1.1.1","karma-html-reporter":"^0.2.7","karma-jasmine":"^1.1.0","karma-jasmine-html-reporter":"^0.2.2","karma-remap-coverage":"^0.1.4","lite-server":"^2.2.2","rimraf":"^2.6.1","rollup":"^0.42.0","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0","rollup-plugin-sourcemaps":"^0.4.1","rollup-plugin-uglify":"^2.0.1","rxjs":"^5.0.1","standard-version":"^4.0.0","systemjs":"^0.19.40","tslint":"^4.4.2","typescript":"~2.3.0","zone.js":"^0.8.4"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"homepage":"https://github.com/omridevk/ng-keyboard-shortcuts#readme","_id":"ng-keyboard-shortcuts@1.1.6","_npmVersion":"5.4.1","_nodeVersion":"8.2.1","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-H7lrGz2HfV7/CEsqNNxADxYiKe5XM0uiWFNa43ElA9ziwmtvZi/rRSXpPMyN1McWYECQPRzC3fyUJRZ5ibSLdA==","shasum":"a2ebb4767e418c36e831bd21ab1b26f4f0ec5351","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-1.1.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2AvwLL6kCmoDcCX6VMR8EVbKX4jsRDW9gjCcftGRC1QIhAL9yOBlHNQxhwjHJi0aysoJz9nPqXqXZYc8BWx1jiLH+"}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts-1.1.6.tgz_1504983671375_0.5785560943186283"},"directories":{}},"2.0.0":{"name":"ng-keyboard-shortcuts","version":"2.0.0","peerDependencies":{"@angular/common":"^6.0.0-rc.0 || ^6.0.0","rxjs":"^6.2.1","@angular/core":"^6.0.0-rc.0 || ^6.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@2.0.0","_npmVersion":"6.1.0","_nodeVersion":"10.4.0","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-5cWpi6ul96lsFlyMWkBuAksiTI4X4xeuts03O63na15z3+WF7A7zhPMSaDxforLBRNNndCqpzkxdU5bVaAXl2A==","shasum":"74ee02d716d99c010a7a59fd8ce76b508a304486","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-2.0.0.tgz","fileCount":32,"unpackedSize":327094,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbI9NZCRA9TVsSAnZWagAA7V0P/0BVio6QdVD8r0+5ScoY\nmXgRlm4+GTlarnS5qQeKQIvRPWVny5hdNgAHkmq+JauR1/e+FAFB0QogNnWL\nGCyaQOxDrsFkXzxYBZvrxFGQEUj2IT0n5lm8mf8D+3uAiaeYqfOuP1lNv0jQ\ncEEjANvuoEKYCQOG+6fKLi97WNJuU3+oMBXogfsZNqBSvaJ+0aGfKYbgRuB+\nF+Ux0pNI5uNaz46vkpwKJoMm1dVNhoP77uUY07ycocEdincu+fuEMq0Xi4ie\nC34njCuGr4BDifav5lGUSmQp9X1duxNeqOIcfKaq8fXXkc+W6bYIRlCY/94+\nt2cSy0O/qKkvUXoITk4PP3U4MRhZFkoej0BuetIfrRESI19W4jTTPA/nDTDR\nhGk4xFy1we4pnbGM+8mp18V3b9N64SNQChIlbX+Jv3Arqy0vP97IZM53a/L0\n6bTz3qyxHpSYQBls0/39kLI66d38kZA75gqw6qvRxJiA3/wEuRsXOSfRH2SW\n8D8ZJEwfEOyaOor1K7tMn0LMeAb8QBZzN9/3fHOVjcAUMOKI0Qlu9O66X6o8\nvqkOHmFfUzyxALVFYjnOk4/CkUyRzBMSplNfJD4HolA0ZzLnMGSGSdAEbREK\n923XS1fdGdpG6ltnmGbwJz6DkfZlAMtK727xZRGkBWLgpnMI8+70Np862t/d\nt7nC\r\n=OXX3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC97G7GXj85nf1/+P43wngLTXhZyVxj/i1VBW8t5vDD+QIgXozWP2XQSC4sMAoOVS3D+E+YqT6HqmT48YQek8hJasI="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_2.0.0_1529074520722_0.5358219957191284"},"_hasShrinkwrap":false},"2.0.1":{"name":"ng-keyboard-shortcuts","version":"2.0.1","peerDependencies":{"@angular/common":"^6.0.0-rc.0 || ^6.0.0","rxjs":"^6.2.1","@angular/core":"^6.0.0-rc.0 || ^6.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"description":"An angular module that exposes a service for creating keyboard shortcuts using a simple configuration object like Visual Studio Code key bindings.","_id":"ng-keyboard-shortcuts@2.0.1","_npmVersion":"6.1.0","_nodeVersion":"10.4.0","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-2l98hvaH9BOSJV+1h2dcQ+lVYxUmQpS3Jr+HcnWcLlaI+EOG18WgLscS1eJXKZ43az430J+In7DUR/TzJrz0DQ==","shasum":"df8ca1f361edc00f6b2ce4dd5bfdb9a05125f042","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-2.0.1.tgz","fileCount":33,"unpackedSize":332105,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbI9PSCRA9TVsSAnZWagAABDgQAJ9DcAHm62G4Hl3DTVFx\niPlcLez2vmOnM3Wc5dfYB0siBvftmiBsrcwZxtIn9qnP8hjJQlRc8zOJQFwP\nBndvKo1mLNCjfFm3fxvv+uXQVXikirKywvulvJuKiR3tTjtT+ffe7RcWePcv\nR4IiQFIBAJ48P7px6aaK7+N9ZZDK2zqrwRwvkI6PFXM7V1O/g4EjvhMqyvFi\nqAWAVjX2/CtMTiLn36VLwnSsrNBpIm04EHTQDsQN1hwzBj+DkYnXsVrAdQpf\nd9V63v2VPTFVLZzWUf/vzCcyNODbEgg1iQSpLbVXENGXksNTj9IU3IDt4ZtT\n7qT1/TfzT9wg6PGpbbsRo5e7MqvJSIyhWUQqczhLmS6MynspCeaAhkUi86to\nf668Zh215rUBCVGrVO10ELXQXLIFPMIbDrMpn3fCfAqglhNfb5Sqv4Ejaj0i\n2YsXabXhcjJ9orvIn0GOej9S+9YP/O88j9B0XoP8FTeRbT+V9OAFbuhPh0Qu\nBJfxuuYcvAOi6mjHMH22rPv+gU45xG2pLf0jhoBzaYYw/5aP5hVLzzsj9abq\nZxlO4HAOJ0l7ZQuQxuOKiCo5+FbZIS3mBKBTUgeklnFTGLP6pVge0Tx0uy7/\nSXylljuxpzbeqMJ78zyapjOIqmwRC4OobbDGEooI8csU+pHpDzlc1a8Mwz5q\nfF+P\r\n=SJxb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/vskK7iRH51OpNPY4hlryFxjPSu6ZOdl+OgW67dIN9AIhAL5HZyM/bSOkPAoywbuZUjm+o2Ju54MA4AbteAhQQQdq"}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_2.0.1_1529074641290_0.45851773147953834"},"_hasShrinkwrap":false},"2.0.2":{"name":"ng-keyboard-shortcuts","version":"2.0.2","peerDependencies":{"@angular/common":"^6.0.0-rc.0 || ^6.0.0","rxjs":"^6.2.1","@angular/core":"^6.0.0-rc.0 || ^6.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"description":"An angular module that exposes a service for creating keyboard shortcuts using a simple configuration object like Visual Studio Code key bindings.","_id":"ng-keyboard-shortcuts@2.0.2","_npmVersion":"6.1.0","_nodeVersion":"10.4.0","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-mbytjJ6EVYU2CJqCBI+YIB0KPpzfKXTLbuGmQR5D8LD7m9m/STfyIG0V+tuNQOmVyHQkm9YnJ00q0m/INkjkyQ==","shasum":"f6e03975cf0996aef0dcfb2d889c76e808532a44","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-2.0.2.tgz","fileCount":32,"unpackedSize":311938,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbJVXsCRA9TVsSAnZWagAA6r8P/0nvIAQYUq+RBcbhVHxR\nwDHNDUJFS7B9TDN+8H0IS/NsNnfTVuERuCCbhEPhafhaK+htNB8CBPWkPvys\nMHz1dCM5Apabz+giSR+217Xr9Uu2WUpfsV3sC1MPoDcFGTs/eTITCfhCJmuS\ntvGZhmMK/bEmlgxe1ABt6GooJKAbVS+4h+KC7R4zyOUmoS4yJYRIagsz9Nsv\n5DUfGw/ytcPjW0ZQXA2jaaLz0AWspwVPzgKHZfsWxxQ/DLILWQPtlT3BXNkz\npKwtBu1rLlzOo/sbflSwH6f7I1lwJIQag4wO0Ic3jzJ2FKe5gn6K7Bxdgu/Q\ncP5LJY12HB7zeyfWEAMqNDZfV1MuJCHDgr6nuQKVT3VpNwOC2TfCYlGPJARv\nr5zwU8v1R1lFsED2Hfswc9fOPZTF82PPzGJh+bAm0KhlpMtkou8YmdlEKT7D\n1bA2ZLLz2Mtrh7vQ8Ykxf33x4ddpkk9sy4tGntz4n64JLLPddy5xYDmUqts0\nV9cqBUXImMPKFrv3bSLTXovnGPwPRtzuOfigyM5ZvwXzJ/EyJI+W0Ixhygi4\nVQ8rh21kijwB3qNlYnWGpUMKIk1bZZwsKT7jHZHu6frXkSaMdiqd9KORDJjZ\ntin6rbxzZJpI6tFmclO4QPTmXN5hkA4yMn/RPl4TReVQmy79uS0S/gqMtfJi\nJJFr\r\n=X1UL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDR6TieMSmX4HeNsE/X6mRfxTIGTahmS5bhitgJN03RPgIgQnGr910OW1cLP6m1CnGhaUPkouu4Gx5c3fDhlsiE56k="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_2.0.2_1529173483502_0.27158624752796623"},"_hasShrinkwrap":false},"2.0.3":{"name":"ng-keyboard-shortcuts","version":"2.0.3","peerDependencies":{"@angular/common":"^6.0.0-rc.0 || ^6.0.0","rxjs":"^6.2.1","@angular/core":"^6.0.0-rc.0 || ^6.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"description":"An angular module that exposes a service for creating keyboard shortcuts using a simple configuration object like Visual Studio Code key bindings.","_id":"ng-keyboard-shortcuts@2.0.3","_npmVersion":"6.1.0","_nodeVersion":"10.4.0","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-W0WrqyKMJtMAPTU9rvcyzoYRa75KBCt9kGOKODcarGGgqKXcJiFhEqdv/jeZdrow1eY92iz7soi9n22UIADINg==","shasum":"18cd5d07cd91c5049365530436cdfcc960dbbf52","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-2.0.3.tgz","fileCount":32,"unpackedSize":312151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbJVcjCRA9TVsSAnZWagAAiwoP/ijbJ19NIwOr+a9bpina\ntk9TDEX/2IWbcUszZomNnwITt6LloXYLD/RtM/6aroaPfAxkfB4Yrzkp5b4q\n4IXNKyAgMFo15lxB/4DrgWLtv8mAL82Sa9tiSQKeNgjjWAh98IowKEm+NvQv\nJSvA1Bh6pFDD7RR1bzJA1L1O9HQV0n0iw0B2lpd9vAYR0kuIwdSV4DN8xfUY\nkXEX5SNDmtwGlLAE3Zyw83FLDX1ah660kPRNbST0/jwrtL2yDTQIiWRR6YRr\nC6iw67KfasUPkm6AAGdCfuNsCECemEmugbWsEKgooVAf8K7C7vFhqEcEpBqI\n35+8JHow6mnCBY43Ggv6ft76jsBXje9B4Ps4ra66BtDeCUfhAdklIv3otPhh\nwTxrvgjnknJWcxn5hy/gVpgHA1CZAcY963AwU5yavBuIcMMFRUZQ8reQO5hm\n9xSQMWTXAt/q9NOtBGn0Rsd6OWCF5mHDV1YMZm0L2txk/KxFHeeYqTHIvjgb\nwF584wra0skMNp5eJoOLoUOYxmboBkairItVo1D39ZHCweton/j/i/NyQTQM\nCgsR6HH2oTWyWrUzvhyJfgLAYrGmHT46XIVXUYhkPbmwMF/DWlw7jHkFr00S\nX38wcbkl2sBq/OcHPscpysdHPK+782//lesFEdoXNriEG5N2Q1Fyoz6FIp1F\nHRP/\r\n=F2/G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICt8pEvVK+SeLSCUpMehp0xpzOvlMgySw/YbD4hWIWRxAiB9q4NorGxp1UQag4bp1vuMrADlz3OR8HtRM8Q+AazrAA=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_2.0.3_1529173794926_0.6016700320369341"},"_hasShrinkwrap":false},"2.0.4":{"name":"ng-keyboard-shortcuts","version":"2.0.4","peerDependencies":{"@angular/common":"^6.0.0-rc.0 || ^6.0.0","rxjs":"^6.2.1","@angular/core":"^6.0.0-rc.0 || ^6.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"description":"An angular module that exposes a service for creating keyboard shortcuts using a simple configuration object like Visual Studio Code key bindings.","_id":"ng-keyboard-shortcuts@2.0.4","_npmVersion":"6.1.0","_nodeVersion":"10.4.0","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-oJQDJOJcKFzAN1KiWHZQdjL5OPGtRTeI2kkquvGZJcm8kd9CV/+PD2Zqd4rsbOr2PoEJ2ghVZqjQVB5HMBFdeQ==","shasum":"1ae27d96068ae52fbb21c813f0695ce914f0b7e7","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-2.0.4.tgz","fileCount":32,"unpackedSize":312180,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbJVfACRA9TVsSAnZWagAA57MP/3j50QgyYYyZsU7Q33Hq\noWtx1+e5dSTXeDK5aLEhln7k7hQbNY+MSWOZwbntYze0n7GocaJK8C35snDu\nry2KtVj/UwSR7uH/VzUlIOsaWFTVZc1vq+xPBRla3lFXbYg4HDIZtI7nuzDv\njd73aTClczJ+pZxvAiwZe00cjKL0bvv/DUOyxGWlA4LqhOzPeE/Bzbl9CT8L\nuhCtC5BHjnGjzyFDf7wMqQw+7P/ryncBq7guXT1msEK+bZzvcSHnK+BF2Yx+\nNfI7L6yuqDdPKO+cXTtOS3yaWlrE0ANG1osPyBY7w+1IcicVX+GribgeE7JE\nMvehfJ61GBpODYkpNBatSksOtSjda/1kpbZ5LJYa2dkMhqJ11zlFf0TYPcvy\nezdJF0f0hpACmwBBzOnFIwAC5mfvnA9X2gGWfC/x8SWEcV+xr5+As36Iw6cF\nBEAYwLZMV1H5Uyku73UBawWroDaruMDXTFG4FV/qGNCWC8aPzlL9LBySybnW\nGfVIKDw9gkJlqLjU3zwxpsqllXN4BVPGhApqPKdaDD8sRd/zKUk9cB1v46o6\nMejrJUG2hV/gIJeyTQwomBnGVbM565AUMJYtpSK39getX2uB6B2C6cqGnAcP\n+h7qs6IBSoaPjUN+EkEyXbjX8TBtSm+eUv6yWfV5RpL04Y3UP6ncfiZ+Gtsb\nFxhB\r\n=GUOg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBnhIGw3lgc2kmjeTb+k3fbNOaNsZ+qfoyH/4dAazzalAiBbLDGi3sXzQqqPshDV1WkLpj3OaUCQ6hs+X9PojkiDrw=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_2.0.4_1529173951897_0.7905791418441948"},"_hasShrinkwrap":false},"2.0.5":{"name":"ng-keyboard-shortcuts","version":"2.0.5","peerDependencies":{"@angular/common":"^6.0.0-rc.0 || ^6.0.0","rxjs":"^6.2.1","@angular/core":"^6.0.0-rc.0 || ^6.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"description":"An angular module that exposes a service for creating keyboard shortcuts using a simple configuration object like Visual Studio Code key bindings.","_id":"ng-keyboard-shortcuts@2.0.5","_npmVersion":"6.1.0","_nodeVersion":"10.4.0","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-zr8wkwzI5NcA7GIvBJC5xcXnhfKFSkYjoNhO7OJfLhwrBs/XiGV9ZCJUzeUMz6CvqfNGPv9d7s192RUk7rNo8w==","shasum":"4d7ad1a7a559de53b5508d0998ef1414ef8411f6","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-2.0.5.tgz","fileCount":32,"unpackedSize":312956,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbJWAXCRA9TVsSAnZWagAA4HIP/RioTUaccs6qC+UzHQUd\nIuCBNLibgy6+DRv3s2uxfWojUqYmHSXZg8/BPNg0lWQ3i61X39Mkdrblo6/n\n3yZa5aYP+J+idUNvC52VXQsHX8BjKTX6uq9gjzyEDADKmkJqLWbJe53CiDVO\nYpBMPFL4vrwzuzblZtGX3+WAqWhVHT7362C+vUVRRIAneRAGL8X/ViVw1paM\n9CgeyVEoLt7c2JlN/eJpe5BQ+e9o6uJGZgWKcK7CEzQQCkTnYIpoHS22Ezos\nPRnpOnJA03T6OT8alw/lbuJA9AhPor4RiXHNoDHl+GIwPxSQJ8Q/Uan5xq68\n+ZE1oPMG/Ma431sz0b37FUm1bBmAgQWs24Yp66mBuTKxNCNywUyS3HoeKzS3\nhvqCSJWrTWVcQjbhVYlgyoF3HnuHkdghyWXuvLpG+kPye2Hm1Vnq2Zp6kdEd\n+eXeAZueAeS3/90rI9WBnuvZ5dT9NYt0jNu/pDjno3ahoUvDn3+5PdnRpV23\nNMatMuTkC7ihOJgK2g/VK8L3fb/sLT/85nhbknu6hG/rdLyhMOTYS8BZ+xTB\nvC3vS/m/bqw4tuqZbeJoOQctdTrAvs4Hw+ovT0eOJJO54eXXxrz9UaGa3gn4\nGZv8WeliozWu8liqvmsLxxy4iIdG8/Hd9fdUHo44CB4soBGSjvqLkUgO/MHY\nUaTZ\r\n=DhVZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNewn0HUFiULX0mvDO/qFN6CgV6yTAbV1EHk+TPuEILAIgCZ6VqWTcPFEFVvVBFZlSYSzFswELUriu0/WUeFWq2RM="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_2.0.5_1529176086682_0.8083436874549488"},"_hasShrinkwrap":false},"6.1.0":{"name":"ng-keyboard-shortcuts","version":"6.1.0","peerDependencies":{"@angular/common":"^6.0.0-rc.0 || ^6.0.0","rxjs":"^6.2.1","@angular/core":"^6.0.0-rc.0 || ^6.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"description":"An angular module that exposes a service for creating keyboard shortcuts using a simple configuration object like Visual Studio Code key bindings.","_id":"ng-keyboard-shortcuts@6.1.0","_npmVersion":"6.2.0","_nodeVersion":"10.4.0","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-xSasUcKujDdQxyYfgbtPNzNNIGxpn18Sb9Mkhi0tFjoqEiaLX/BmTBDwd1I/eXx1pOTlfCEpYKzFnIGxOipuNw==","shasum":"d7b4ab6face141ebc287ca1d4a0677c99da3bfa9","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-6.1.0.tgz","fileCount":32,"unpackedSize":332373,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbbHbyCRA9TVsSAnZWagAAQvkP/2rgd6sUCENj8/afZjhZ\nuSgE8ELFBjBXYp5igbZPHYU+kMWmOe6FV2RkulOsU2+vCgOyJREwBehs5srG\nGCcU50EMZA2HRbsphVgCjsCwNkTD+326Z+oso7FQ0LNW28BT4YaB58eizpwV\ngT9WliXlvzi2DIDZbUjKQNutRJykJTsXEb9XeGZZy1L12QstpnpxkClgTFDc\nYUlFWcp9EdIQSbXL93pe5Wx5/CAY6Wzh2wC38/3nz2v7cer7lBElikCqxPOJ\n6ss6CHP6la9qvJPQ8eHPnCMRDeZ7vAYlyrNmTruyLlD75lBr2ILPj2pPegMb\npXKh0nEHUVnzfMHtXAuP7nJUgGspajaPJl6WygqSVcCHS8ccqo4sHh62wva6\n0yNgLqHO1vRPx5M/kZhNtUbLxwir9zKu/ypHEzjraJSCjWX4KqKhSEJSk0Ve\nQgUjAho3lLpDO9XIr3JZf60f8VHgMjXD6o2bldLn5qbs5dmWo3jE0KUo7QlN\nL8rtAmUZsbrbKCtwRbsZNrWYPQuaVeSOhG7FLykw7hehbnw/6ZHIHJog9tKv\npMCsMk84kNYv92r28FbpkM3oRI2LVYFkuinhSeqdLPJKsTeYrOakaCByCBd0\nIkM9KAy9AxlS3qC+rFKRiszlJ0611UmFQi2opoTQpdSTVDZOyy//wnZ0fD6G\nihI0\r\n=8Q97\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5Rj79Ku9xrqU9tf1KakZtzZgQ92Y+Hb1HjAMLTdLzPgIhAOCQOfYPOiJ9Kn5cdR8g0DIinRGEsEEyRNtNJOYYFvi3"}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_6.1.0_1533834993563_0.740579109388422"},"_hasShrinkwrap":false},"6.1.1":{"name":"ng-keyboard-shortcuts","version":"6.1.1","peerDependencies":{"@angular/common":"^6.0.0-rc.0 || ^6.0.0","rxjs":"^6.2.1","@angular/core":"^6.0.0-rc.0 || ^6.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"description":"An angular module that exposes a service for creating keyboard shortcuts using a simple configuration object like Visual Studio Code key bindings.","_id":"ng-keyboard-shortcuts@6.1.1","_npmVersion":"6.2.0","_nodeVersion":"10.4.0","_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"dist":{"integrity":"sha512-F+Kb94rshNGzTj4X4UX0cZ1j6+K6tNMZyJlQRnz4javzMvYGHI+gxiGEWy11uEfw47PzXjD/PUNhKEpG23SUaA==","shasum":"468e671280a9dd25ee38d5fcc8535b5c3b3dc538","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-6.1.1.tgz","fileCount":32,"unpackedSize":332751,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbbNCtCRA9TVsSAnZWagAA5K8P/1gm/6AAk7OrktjcVgnP\nhwU3Aw3XfnQzcqDHIZA00R6L6EuBWfHNV3Fok+KgeeAJGKRupEmkbdRV0ZI5\n5xM9OhR7ny8R4aL69JOe52Bf4QeY4XBoZj0+HTXERKEQ2zHoN1i9cKnPTzfp\nlTR6o1QwAT5Z/52iyvRkuoJJNtfOqZvqojV11SrTbpWkmonme+KhWaKJgNyH\nUrVIIojRj9jTXrCprD/mU1PZ1c7v5R7eoq3GCD8kWYd4ujGMBJGpYzDZphjW\n6B4zeYB6TjqT4bC8W5tCr3eb1lxvYyDp3MBaucRQN7XApL2SaOngi1eR+U1U\nLusbjbfOsIoeTXppH7JBb+kjL2wCFPeGvWRDjW+KzHLCbNlo5KCDfN83w6Xg\ncuByjDur4FGq+srJpt9qQefgQE6IyW/k2UR5rJ8skCikYdAbgAoUK2FYTOKK\nbA+9i8dDIaeoGlIrcZfVCS7W5yLO6Ki5QR09cOMtbk+D07z7ZHyHSFJlDcUG\naTtAX/eol1uVzqFAedcdl/dg3NDy5t4I4y4IX+JwYR6IQHKIhqdEc1Tuf7l0\noSIv+Ik4YJu+xmD2kmzpxNG3K1BiHZgP9KBGpTzdcEc/s8NAmt6Vff3vYAlW\nadlUC4sr3VXoa094b1/3IaMwDQdWb1SbJr1mDq3dKCsLjX1reMX+76KRMB8o\nkTP1\r\n=E8YX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD81yPkYc/xySUY4lnAVgo3hl9MRx1BMllLIISK0otBHwIgQ5wTZAk1QBPr3JEs9EPLzyEg+CIPNCNPmy/CG970fFU="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_6.1.1_1533857965178_0.5123247339618913"},"_hasShrinkwrap":false},"7.0.0":{"name":"ng-keyboard-shortcuts","version":"7.0.0","peerDependencies":{"@angular/common":"^7.0.0","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"description":"An angular module that exposes a service for creating keyboard shortcuts using a simple configuration object like Visual Studio Code key bindings.","_id":"ng-keyboard-shortcuts@7.0.0","_nodeVersion":"11.12.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-sVz7IpP8LS71MCb2EYsn1XVnzCYRciixh9ahWla3xmzFAqPQgWgm9Uq7rokXUsccUWPmONuafsEqZvaD1zcP6w==","shasum":"4ebbf0d24188127776c6cbb8fda6a788e5c115b2","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.0.0.tgz","fileCount":53,"unpackedSize":730304,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcn6GvCRA9TVsSAnZWagAALvYP/Asvlb4zHeaVduW0nf+l\nI9SQtXba6KTwGBUxteZrv32RVrzxbBC+i9uhtgfo8CNCqweXjDtKmR/qhCef\n8aA1mKbRe0SVU5ONue6PlspspuY88vUMbc9QZjdrFBq9dC+LC2xvx0WRSHPl\nISFp7rgtH/WkT/ReWr3cZv9veZXRs7V9DIxlloVCrMl5aZt/5dZcI8MgFMv4\nIHf5ovc0j46fNfq5aGJlnx51APaCb2V2Zcqw65D95kE4XQLZnGozHuSEOPhf\niaaAVXrnHQhhejNd3TcCyBcWjjNrROuDni20RupJayaWSmB6l9/Wp77Lx7Vf\nbN7CPSuMyAcm7MpLc6R0Tn57iVH6CwgtJauFyxQe+tfq28mT2e6sXc/h3m+Y\noKvdbxVHFAWrPSZcDgDQ/LEOUj+LxZDeqHg1ao7j4yK+uDa1yGJitzxWmOTi\nFywYACrDwLRqC7stW3Jyi2+w8bz/YQct46b7oRJTuscdF7FH8DhG7cv07uIp\ng76j3rSjaLHfmNefdzE4AGn4uZpDiV1StMzazd0rtF5v+YtDc4UoHqpHjfIj\nGpvroB7Inryk9TXciUL0+TJQvFWVeWhVNFmECE0jy+MKil2uSwbPUx5Tldku\nFRJntjJTSFQSyFsbh0mcxqr0B4WU9o814iULfE4Y3yDhKeqS5a4CLvxiVZ8D\n/cPb\r\n=rSL3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCBNcJmgty6CenVkZBUTM1nysVl8kOExbkYaXVNhLnE2QIhAKND1ypcq0Xgg3Pm4HR7K1wAjVwxYKjWCJQT6rI58gA1"}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.0.0_1553965487054_0.39237024496015427"},"_hasShrinkwrap":false},"7.0.1":{"name":"ng-keyboard-shortcuts","version":"7.0.1","peerDependencies":{"@angular/common":"^7.0.0","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"description":"An Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.","_id":"ng-keyboard-shortcuts@7.0.1","_nodeVersion":"11.12.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-fwQgT3pVkokwGr8In9cw/rZRc+AdIk/jVFBBIY3iDGkqdmh//vzMQdioQZWfzncz/WH5jnpSPBoSy+eDiWBMUw==","shasum":"63f6468cd88dd6442551350a6d613db75fca97f8","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.0.1.tgz","fileCount":53,"unpackedSize":734024,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcn6KVCRA9TVsSAnZWagAAmKMP+wa7Bpkpm57oyG4BoF1l\na4Rjv+wqkzd9os1NEcjUOEHvJ0th1MJn0w+0BfZdJlrcOPVj5WuhJp2bHCxd\nq9nbEFyZE9VEXz+Uxls3HRzjcbre8Vs2PdaeyYUNXqf2FlLfTZqhRwgFLZGU\nWg0hIR7g5Mw9ncIoBjuKJNvh5MhYiP1jYXw4BH/w17pEXTxKrzFBBV+5r80C\niJcs0GZVZsghnNpLrNLk72fHaxMgz8bYzdQIcIxf8lBiknz2X8B7bDGpVTt6\n7jOslfcSgacj/cSQC/F8rhB08V6R44LURnPmE5fBfpI+8Bb4xsBwDYhEd2Wx\nJwawkF/O7LGpSbOMD5o9owMQQgSxEkxtXdGPneHsdhY1Gdme/JUvoAUG0f4J\nWEQ0nGdVrCUzkG/nk1zsUXT0AlQOWR0G7r94spVvxG3XNLdjYK75qLwyp5RG\nAil2eNrg8SuYvmGylyhbpSKenHV2gmA4J5YNnXcQseK6YCp7MjmfDsMKnRtG\n6GubXpGZgS3c94Cs+KA4H5jS8lXbt88R38sOya2oXb0+pZ4TFN9gAvbvLU7K\nfx0nrEu27y2MBzsQ9I3Fs2AkJm0h40mFREmVNBH2lJESR+V7pq+1ibssk+b2\nrPljk0vgWlTV7BUYSmv0+kDCEBJC0+LjicXnzSUHKuVMcVcbUWu76971uGhN\nwYoj\r\n=u3/z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTvv6rlRU1Tcx7ilpM9aER3bzxCD9lyA2sa0C2KyeT2gIgXis65CkS46/NyfkGGK1RaGVQ+meqemnx4miBk2ksGlE="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.0.1_1553965716801_0.8725133059804884"},"_hasShrinkwrap":false},"7.0.2":{"name":"ng-keyboard-shortcuts","version":"7.0.2","peerDependencies":{"@angular/common":"^7.0.0","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"description":"An Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.","_id":"ng-keyboard-shortcuts@7.0.2","_nodeVersion":"11.12.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Ya1RDxujh3roudcVciGkh6i/H/bDIW+bBnV9Y/iMkl8rINOxIa7fTwr9AMmvx3b53c/bTLSFiLMO8/wT9WOgtg==","shasum":"3688337cd99af731d3f290273ae8b24df37fba96","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.0.2.tgz","fileCount":53,"unpackedSize":749864,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcn6oLCRA9TVsSAnZWagAADmUP/12cT46DgS/ZUYonG4z/\nZaMhiK8QoZojz3oQDSEcbwqWCrzV8VT2Fp8x4RLL7S7XsUfJIRE1gdgsFTW0\nWvnEB2MiK+TgpD0iDIGMAhNVuSWJ+7UGyrUEbDc9IVX/sHGt0O5NQ6YgNGWP\nCQzDfAirLzrQmwJMAKX+Pr4Y48yPdjCK/mzCHhJ3ckb5w8toleLWMnwtuI0a\nTvLmNtrUB8clbSJ6nsuLccu70Z/luUIjnK0eUIZqsYxHxXhNzHxmifVjh92a\nK2QOr5GIrOYH1PWceKH+9P6DIUdMHJ1g8ItL844OWi2SlXx9j+HclkQeWbZN\nXwWlxtZf6WvevpMMwaOqe7u6GPNP+Gef2NYYh6zDmubvDKhvsbTr2wAZ0CL7\nir2AVvGQZ57ojyT1PwzA2aN+3Yxbj4QCmrVa8RXD4pz9wqc4WLtRtZLudshs\nbNlBmRD30bmUcONgE5RTj+8FI0G43POctiovGCy/aymsxarjxv+haXT6wfqd\nxO94SmfOgurmm9/y48oG26V5sO4KVenlB8q1W/t6S9/Khpu7Mev/hExKMSsm\nFMQq2NbnYt70iDVhZWqO7M8RZ+154yqGOsF9VVHmQODYREr7nWwKos10PyyQ\nWp9tryimgry+d9Ft7dlnSnejlysIz/WF6DC7j57QGNB15P16LqWEHY+eOvfb\ng0Wt\r\n=xVa9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDsYND0lRkGHKiYKfSK0jldk5xOc7CKCpcrnIRehCwQhQIhAPRGZKB2iSwwMN84HHowX8oBvqWaea+YMRW2I0OkIpMK"}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.0.2_1553967627112_0.4288543230271977"},"_hasShrinkwrap":false},"7.0.3":{"name":"ng-keyboard-shortcuts","version":"7.0.3","peerDependencies":{"@angular/common":"^7.0.0","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"description":"An Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.","_id":"ng-keyboard-shortcuts@7.0.3","_nodeVersion":"11.12.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-aOc0NFtldsf/VxfMNJHVWD8X7hvlmFyYBqYdvSDKgYnJd0xOpdM5VhTPGMjbYmtl+RpZ8foX5Lwpxti0ijQJBg==","shasum":"4d7e58be9db16be4b584062118b945dcb7ad439c","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.0.3.tgz","fileCount":53,"unpackedSize":750059,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcn6xqCRA9TVsSAnZWagAAhfUP/Ri9orYLHVHBIjv6a4Er\n0N+9oxthY30lKTMQiq0PXEBwlYL6mP4f9Ru3AU3/iuAsoiG9vneC1KX8TB44\nSDswiHCVeTrquGwjxllwtE6/WFGjreXHU9UcFXh03CZsgljbCPdymBKP6vHb\nmdEd0lN6qxn+r2oCGgJ7SuoR5l6DRAcRL1m3qvhbJBMlitBOVTBCpHW6FYkr\nvHgbOqMO+aMa3qb9xqel1cVGN5O1SLYNWQGNrja6IlpvbVyFoI7XhDgayjlM\nF+KhEt9fM2X79Yizjeij1hdsu4vbUgU+nyRdDd3PFEPcz7E6vnp3AYxm2nG7\n91A5/kbtFF46wRBygDNwcRDtNAwEYBnME8gtFQL3+sq6R5fOGkEZHS1uc7gs\nBAIBUlkr58bPTOshwyI4/Z5weWwaLd/S+NKA8l3aSW5PPUBb4k5B844WZ5D2\nDQeAOHNf4IE33wHIqCdmExOP6m/aATedpNCbXRjlHFvlgVRmecJ4VYm+XR7B\nf/9HLW66U81NpbDvc6I0l0Gn2elVeC/15alFvS0C14kPZqxhftoYKYyYK87J\nUapipV1L8dx8qanHz5qRuBhiGrZ9doBsLyktBcU/PbhT+cXfPhCllvi7VlyZ\nYciCoXNNASmtwWe6EX5rR+fDfbKp2R5xkeRoqV9o0xs5tgmQonFQ8UJeikW2\nBGXN\r\n=+MbD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHQFmEyKs1oPvyxos8FOf5OkNaYLKsISPHDyh3F/nLihAiEA4eIqs9v8w2xX8/OXnbJymLZVMpb9iG7IewRDETjaJ0g="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.0.3_1553968233937_0.3991549712598532"},"_hasShrinkwrap":false},"7.0.4":{"name":"ng-keyboard-shortcuts","version":"7.0.4","peerDependencies":{"@angular/common":"^7.0.0","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"description":"An Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.","_id":"ng-keyboard-shortcuts@7.0.4","_nodeVersion":"11.12.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-woCSZQmiJj0Jburi242boKHRIJl8WHWKv7tZlaWq4EiCZDCusaXwZIq/ZNY9Al/qhB+c7Ai1jCwAW3l/Crohfg==","shasum":"039ec39772fbdebeaee0f86d4697ec2bdba7a679","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.0.4.tgz","fileCount":53,"unpackedSize":745403,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcn68KCRA9TVsSAnZWagAAkFkP/jxjQ7Ow/1e0+Zh79qE/\nuJrhvIk55PH07oABsRvV/ZRkGoXJQHZQ5Farqx49icmWlu/bFbiFKHeowbc2\nqnX24Fs2Y4t3aIVnZtiotSD6kotYwRKNEAyKUAuaLursMBJExa/DWOblVFua\nrVwCebVMPXG6XqajMjVcs6rSxGPs13XepR0m3aAcjN+rPQk5Q0RVHTY/LMnW\nC9YB6fNZuJTYMATS/ogjKgLEywCJen5oJ6IdZlOmDM41TFfbaI39dTFlIk13\nTBefE3jJFu0NdN81mK4jAFSyW8zgZ3MIvu+Jx3Ofa+ArGvW514oNum6c0kdV\nPifE8896oSWqhSULl1fwVT+OZOsTlPgoVAfRDgxscMgdfp5UjKzuRUF/ME0b\nRTATpD63N3V0ZjoKDtUw0AcH/mz1CC8XG/pamZchBu6bYS9Bv+ugLw365dKQ\n+Pf1e62fT67BHczmppI+bNNdHvsuP5F00z/ilyPLqmYU61efFR4ddG8rMdCB\nxGGYGrabZbBvtng0nvNABgP5nVX/Skyw8eXBY1TrVId4zcT5X8Axhi8k17G5\nzXq2gPHUxPbeLwQhBew6Oeq3oQFh0ah/dkBzM9f65VBKWUneQIzA2k/GmAPK\ne1CDAUUTl+aDF40f6i49exnBPFiVDVl77mGTNNiLGm/Uafms5iDdUKpY1bKe\ne3d+\r\n=4+8H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqtDI6nwIyK5SV8MEALVtcxD9wSEtilO9Rt1zoQcNzTwIhAKluEgEwF3/xrCGHb6fKpdxxhT1sXqFJ65r46yvozCZZ"}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.0.4_1553968905705_0.8526679696518285"},"_hasShrinkwrap":false},"7.0.5":{"name":"ng-keyboard-shortcuts","version":"7.0.5","peerDependencies":{"@angular/common":"^7.0.0","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"description":"An Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.","_id":"ng-keyboard-shortcuts@7.0.5","_nodeVersion":"11.12.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-aPWceQjJZt+rcjT25tOA+0rMWlxM4svyYmmDS2YvFHhJ437ztvNtkM3LW2kaZiOciVOCdo5L/hK77IU5tqN+bw==","shasum":"c69b6cc7e43b82618f1bfa4285196c3db7a41998","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.0.5.tgz","fileCount":53,"unpackedSize":745403,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcn7BoCRA9TVsSAnZWagAAUMEP+wWhGdwJtbAkuIh6nj2w\n8W0w01L6ciM487SaHmjXXNHr3oww6MCanD0B2GHw9/7i4McK+BoSJOex5tzW\nUA9UtlzbCkEoo/60sg6iTOUeOZkVnzL+orLEMPVyP9SbJ0ST9b2liSTo9+CQ\ndw7g/bVfPQXOweN7PTgjCT494bZfSoeNbam7wgD4W/mrdWHh+ZVhVQfq7LNE\nRBjgIKpgEp/DGMoO/wiEC+rAiV6Sq1t3r894ZsOIBK9wCcrfn5hfaB6pEjAh\nhnZkBkVzBN6teUB++DODAp3gUXjDBxgq9jRKlXSHISk1jFx15LOXWPALtfVs\nIEWB69FKtld1L3GXZslCeHRXqZijuB5VWjsZMcnb0Ow+mRO719TCewJAEum9\nniJyPd5Qh4geXRGcAdC3B7bO6BZv3eXr29y5xm2sZBkRlZVsFhWjFZVlg6Ro\nARMjYWKNJm75GolWkMtmbO8r/lB/5qotsRwruWsDxZE2VilU13l8b3ab7EeY\nq38Bp3dgPd6HSymAUgvT14ZX+m3Cpa7SOfQL3JUii7uaJAo1GD5WiYAOLt1/\nMwVpSU7PItgqs2hWgQSsT1io3xTblEUp+yKsmtWDjsBnu56AlkZp6u9s1GC6\nKxDWGF/6kg8R6gMR5tOYVeYzih5x1yIIfsEgDynJIKFQY1kRZu5OrGc5Qoyi\nOLjJ\r\n=26dz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA1neShc/xMDmxrUoh6RWBQZ9fjfb/e0K8h6jD3K4eg9AiA11sXD9k+e2dSL6kJh8fQx+/2R/pXfQ5Py+tj1ip961Q=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.0.5_1553969255509_0.07040980685977627"},"_hasShrinkwrap":false},"7.0.6":{"name":"ng-keyboard-shortcuts","version":"7.0.6","peerDependencies":{"@angular/common":"^7.0.0","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"description":"An Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.","_id":"ng-keyboard-shortcuts@7.0.6","_nodeVersion":"11.12.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-EvV7rtJ/eRpmvZdeE7BTEbbQNACS6xPecchvzwpIKyQXpwNuVMr37g7kIcEhUOI9LsH4YGZ10qRXiSJCyOr9iQ==","shasum":"197565fc181edb691f247e3a4fe433474ccf041d","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.0.6.tgz","fileCount":53,"unpackedSize":768705,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcn/McCRA9TVsSAnZWagAA10AP/2Vc2Lrkh2LL6sY5H5d5\np6n08Gi3EQ4Sor8vPfvoLFthgWbjmRH0CRnOC43tWAs532862rmWahsnxuyP\nnf/PqCgn4hF5oDbSlXYU/ktC3CgoFfsKwwWDuO8wemqmEYrMV9Zx70yYI1mc\nGSq4YRI+JBFBI8IbEH2oCjbz6DGFx2vHbZNHJurxMgkhssHvtcl6C48M9W9V\ny76JFDlDawLN2R/qtWd26GVk4lj5HbZO4DqnwwYm6JZeT/2D2XhI/FMYdX9/\ndH3U31GBp9AozBhGLHRSPVVajwzuALLHBzTHK9qtzbYmxqQdGVWkYb1DIg2M\nBaXVbAEU7XQ63JCf8liJl6l8+LdYN+rhIOCX9cTgJ9E7ZF294pdTsmePxfbF\n6PXTRlwFrxjHIP/B9Re+XuAXKYI33/ivL7XN/97pyM6CeXPEbuto/t31LU7r\nxkhn0eUPDTKuXNyVGmJNR32YJVWaFSdbNbjM+hGBTo/U+fJ7Tjrc3NtcxFyr\nl+WjTdoUCNSYmPaqu6Frehmb0cnr8kn52sVmu1au+66WKFNcJhSazQfbbnKs\nudyQQKgwtO3HUqMRHVYb11gE1DsB9fqtEIo8uGIMb/IF/IoGIvBFMhVGAG+c\nM8b9DlPNP2cAK6Z/+fZrIhbpNUD1qeCJ7v7Gnh9hxP672jSppXM3Hk5M/suN\numim\r\n=VqOx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDADqTdEk/H/G6oC2NSce0jxlvJua3DPY7nXWQsA5ZpAgIhAMbq6mkpAIp7LWGZJyuTQcsZDBk1CuljgPI2hKOIrO24"}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.0.6_1553986331447_0.8859540877924759"},"_hasShrinkwrap":false},"7.0.7":{"name":"ng-keyboard-shortcuts","version":"7.0.7","peerDependencies":{"@angular/common":"^7.0.0","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"description":"An Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.","_id":"ng-keyboard-shortcuts@7.0.7","_nodeVersion":"11.12.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-sbSoGt+qH5ZzAnXKjfvwhW6iGeXh4D+qf0OjfN5KhjnahNLyuvKEuuTuRLz6JPiT7tBU8bkRffPfGeDWFEoYUA==","shasum":"3f268b2637c51c2ed995b9284d49da09f6e9d1d1","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.0.7.tgz","fileCount":53,"unpackedSize":768705,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcn/PiCRA9TVsSAnZWagAATawP/1YHwoTh5Kdn14sYCgYP\nPlXbkFoW7gOSz/M0NJdtrYgdY8l01xNSs5QZqQOxZEwAiwQR8lVZM1RhAgmV\nL4rd3PwrwjfeXeZ6OhmSPqEawy1w6kFsSJGOlVdIHeMqf3VjlR5mVSwDuMoi\nPrqMQmiEErLnnT1ZKGa8TSjSvQHkJMoXOqa6+kApJL+2rS62DMHs7nzYL7Dh\nBNXIeqB6nb0OWZI0i5SbjhpfJuiW0AwqIrWwbraxfNdNQ0XB0OFXwLM/vvjv\nflmNpJbGw2PUpp9RA7aRvi/bLStMJht8WuyGGK+3uNOKcKGGANjduIlfsseM\nzClJi7T3GGyVIvt72PuBDe0zQezsCTBU24XkvOFS41oLnrui/815dF0JXywj\nxb7kJr7R5bHt8DDpTh1G8q7iW1AIcx8tOMwyeZg0+nsBXJRpn3zk0TX9nk0b\nvFGOueekVNFvdPh3p4udxIU678sO7/QA+3WwEQq4RqXn8jvo3vJTRe3MBToP\nPo1FX1bagjtc+xRllzbKu4ojIV3tk057CjPrXKSLOU5BeMrN6J2gniEwlsac\n/IlXx8iXLj7VR7NsIr7YTY5gg6cSWC6j5mFHw8G+SkoqTgA/S6haKGATHgdM\nkeQEf408xAV0E7FB3g2hrOOCF7B0NI5Fni/kTItIRu/+3mJAQiMKuscvha6/\nxJek\r\n=6O+U\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBpEX21z0vB6kBoksozrJM9H0C+tY9SbFAqFu9D77GQdAiBNQ/CL7Ymes7frn+TyQgtg6oIqy4LEv8Gf5NTVpZLRug=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.0.7_1553986530110_0.4616210772626783"},"_hasShrinkwrap":false},"7.0.8":{"name":"ng-keyboard-shortcuts","version":"7.0.8","peerDependencies":{"@angular/common":"^7.0.0","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"description":"An Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.","_id":"ng-keyboard-shortcuts@7.0.8","_nodeVersion":"11.12.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-+5n6xRoi5dWKpGuDEL6D60TkP4ST0PvvwLzTJSF+nKVdVSuz+YhFmyFprw8q9vfNOlQLu84OJochCQOSWtQvVA==","shasum":"51cd07bef81f6f929cd3e05957a3946c62e9d3d8","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.0.8.tgz","fileCount":53,"unpackedSize":768486,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcoIz/CRA9TVsSAnZWagAAt2EP/iK6sVHTA/fLugzLI45A\nioQRSOWeKMfbGOMHUpy2LMM1pE+7l9T5XmcFAAcTTNk4BTA3kh9Bw/dYk5SL\nDQU8u9v0vCU4Jg1tezy5gLvz0RV2zYqm9+Jp/h1fEJGQGsOPCsZRFP1U8IAM\n0EwZkusVIjuNIwiTZFDvEDuQy7YAcoDfByR/z/ssYFeq3HpGjoobevHTMsXc\npPglK8A9/lsWNIxmlGH8HosMhFHAQHaZUH0XK0bVVw0F+zJ+HJRaatsYQ/5n\nOaokG/bKsjC5VceHKFe+wHgh6/Vu+M0kTeAeQLn0cUPeZV0K1EJlvnu40MrW\nMvKeq51rcMAeSrfFtezIIVofBjMSNWrgsHx+s5N4edFTeLPr/pObGCCWK2BH\nqt8UbdVEV99b+PNR7/KXEDisqB3Ebq+zASEf3uiJRFQyI6plUi+my3e5X/u5\niPynyf8a430Pi00CVv5W2qoWkxg0SPJ93QHJZsPu7MLvwxDhtv4vy+ZFUOBf\nDMVoWai96cdM02gvLv1UuEheql53bGHNbTDUuizJmYqU2OWT7uLogM98iZX3\n1Cbu960M3eIsK0A//Cs4xbR3513A8f4k4RhiGu7abC7yWyM2Fp1UOAr/5EOP\nlIaOJmI9FJRrZ5BEPKfFUIyWV6JdOjRSitLKm2q7syHeci3a0v59G1USwILF\nLHGL\r\n=9pIN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAPBJRxmPD2yoPjBpWIm8EGhD1yhU79CLAWBs0qLa6sJAiAHItgu2d3jaDqiWrxjEIkitgdu38f21UdnMRggmSkBtA=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.0.8_1554025726693_0.09167559810711934"},"_hasShrinkwrap":false},"7.0.9":{"name":"ng-keyboard-shortcuts","version":"7.0.9","description":"Dead Simple Keyboard Shortcuts Management for Angular 2-7","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://github.com/omridevk/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/common":"^7.0.0","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@7.0.9","_nodeVersion":"11.12.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-t0ps2GHIwKGdjhN32Y3FBVdrTGtuMhgwOoDwGOpQVSvKvaoJ5TnVUxbY9Rm8lWHgxmFe6w4LStYnsqRQ+E6etg==","shasum":"a3594b35721a398261cb78af0d6c0c253b5c1db9","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.0.9.tgz","fileCount":53,"unpackedSize":768860,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcqhamCRA9TVsSAnZWagAAjLAQAI2CgTiNY5OFxGKAl+Kz\nrng8A5/XqdLkt28tbWeAjXuabOxokNOZmoNrj2ODlsIM5g2H2MCdIqt8Y+rb\nAkT9dsxNAM5BfTujboANoN5+1geVpu4JzxgLA2TqUgIGIf2fWTxPLIdASMrI\nnwm10gwdMM3OYgBqxEBx4DZT46/OWZ0O/q2v8ulkuOKp3dkbvMIsrp5j/cbn\n4yfczKkMaXPkv8iwGp1P2IoxNmRnEpUfv1ysYpspbppe6djkrAod1PJ7lnA4\nhz0KkuP4mFAAV+eDVS+bK222trSDPSBdmm3DsvLGd1emVqSlA134PgyY7fK1\nhE7EkAqym+jPrjwxuBY2wsGaZGepiIJy8pUYMiGC8XLFVkTtTXQ4Ukq2ttMv\nMTg9RMshx1HO2sJTQgos6ZMmVM0d/mVd91spoAQgNh17DqshG5a3FHUy/Tqn\nHUXcub/WFE2aECXqQ2Q04bWWN3WYZwpCOa+HLQoZlkBYfwgDnfnH0XLAI+OH\ndNaK9yZq65IJqycbCjXffcAdLcmdkZ+5Jmv3Whq6Ni1pWQBfG3FNhAELheNx\nPJXIeEuIS1oDg3Po2MhqThtrAj6HHBU2cc9r+tWm5VvooRyAAqUZEKIRkrhF\nWDoE1BMLa7AksLqxzVrRvJ3tlSOONellasc3uiwj/lLNhjiY/fCiK/oqFipJ\nL5C2\r\n=pqV8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFfe7YjEYOXzd+v6fUBUuu4PowXVtpl/anH0aftwCpUmAiBqbZzyb1Kjv1E+s44LN49gh6XTZFI7AuXs3aWvmti/HQ=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.0.9_1554650789560_0.5820164126025509"},"_hasShrinkwrap":false},"7.0.10":{"name":"ng-keyboard-shortcuts","version":"7.0.10","description":"Dead Simple Keyboard Shortcuts Management for Angular 2-7","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://github.com/omridevk/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/common":"^7.0.0","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@7.0.10","_nodeVersion":"11.12.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Zm2RigjSSRuFfyPjXBFMotVNubHmwex4NysLxJLfAUt0YFrzexEAKSt+vMrcJsERjbZUBoJkOvs5YwExkr8vkA==","shasum":"7517db2f10a12b9ac29fe45b03698e8ed812297c","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.0.10.tgz","fileCount":56,"unpackedSize":763445,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc6BubCRA9TVsSAnZWagAAIEEP/R65ckPIcUeCJwlZWOko\nwtuxEAt6bk+dUn3g307vRyjL5VS5wye3KM55YxLIQUn2IjnhJAbSZZYAq6GX\ncUki21WsmfiHQOk4HnhThjiVwizj5/J3KqRP/Y5Mbj/hi5VhyhSO7vd+EKtq\ncgXpHPQCKKJCx+hHk09pDfEldOeec6raZuu7E69W5O0pcfKfsNNt0k6m3FyU\nWb2OWCb3jORkTjIg5jEBLJDQkA1rhCsEKleOH3X7J0F8iKt1tb71ESYxTK7Q\nuSm0ExUR7zzK7nCmgkkEBNSjiId1C1nbmu9RJnohTru6OGwj1YSbTJj+ok/o\nDD2Sb1B1nV00MtfJBLoZ20fLSiXGfjzsFZ0ipDePaRZZcBvy1uffoW27qUAo\nkMSkWZriruw0Kvdpu2CTcXJXqnw5/90VHsd2sqQxhAxk9WqEVcJDG/BVyFg0\nUBsgzXv/p0MnOGE/P5XTV8XNlIle8+yzimb3gxsI9FMWSOZH9BuynnTH0vA/\nexsGAuSLM2chCcA5pd3Ka9OVPswF32iUOMTX7PMzJDeEiwj+2EC+pr76PAD2\n4EVcUvQnj4Kn4VwGVGP2hX+cZDvLW+ePnxOtprdsJ4ljCiN/m6ICzvMjtu+q\nGTA3I4VyxfqbNDF8oz6uo4Sna9rn4SaqzUomOPsLg6FJCh8vG8YzaZEKOgQ9\ni/4C\r\n=90J4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAQG9SlJ1JlgkJ579SldrxmGGbKWgn8FWcg2ZKRavQEUAiEAh2DoBoYmwX9cJx/dApKRcF71zV6AHtcc6+/ENC0cVxc="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.0.10_1558715291113_0.24190187196837698"},"_hasShrinkwrap":false},"7.0.11":{"name":"ng-keyboard-shortcuts","version":"7.0.11","description":"Dead Simple Keyboard Shortcuts Management for Angular 2-7","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://github.com/omridevk/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/common":"^7.0.0","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@7.0.11","_nodeVersion":"11.12.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-72cOK8Za6IUCrzbEHnJLWyfEFYm2vqr2VWu22NV46ri/YGVcvjzYvMA19iDqSOBnIWHWBGeAh7JJLjzLEslTtA==","shasum":"b87843ed8a353cdac762ebd4bf90cfa8dfe2e95e","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.0.11.tgz","fileCount":56,"unpackedSize":765245,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc6BwlCRA9TVsSAnZWagAAzsoP/2zj8QxBqbtck0mhFNk4\nnrZF7cYvpzUo1Oq82IWXkyQRd5m3Jg7Ta7JelnVQXqcLbgE+P2phmClBK6bb\nH8kIg0VvwmDRkFCDNg+aO3GtFn+hp6tQriYiAfdsGewNbTS3V5B1Jj0gEx9N\nOMNGwJ3fFbU15XuM3z7vllK3LaSqmJydyCobySnzBqmt38+ctg+1G24gDYJr\nXqiIaNYidOlsAVx28ue66NKp96Z1nq+iRZqIs9EA3QSEVYc7G8lul8kwdTo3\n03MbHpDPNVKOjy5fwYsyIpcW3IBiR/uHQom3zLpD7I6Cc9ZbbK/ymoPFs/ri\nKEnMNkGOUNTogDnS/6FARFA0QzFaLYOxoh9GcNE1pwzeaGSTlvOKVBlfqDoL\nK91R5btXeRR/qWsVqcVJuqhA+oM1Kw9NhLMz9Qen4f9fHHlcjhY6YordVJmM\nxsIdrfnX1gjQS3MoHu9B/t74TXaFhc8x23xQ++JS5fdDOYpEVJsOFvqAVpOW\n1my17WJGroFP3UKF83at7yYF0YS3pEK+2tOR/Mza49YKjSEhG2COVOAoYmhz\nNu9Kl/aZ9DYmMHK7hVMCs9bFueq21VAGdh37vYsxAkgiupIOYeHYH+CjvL+l\nK0EM5+7z6WOviOqG6JYlyR4lgfUroT53o2w1bKfDsJAiK0moeazXe2uHbbOe\nLwuj\r\n=Lsx6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDpWK01SKcqwwvz2v8d47e6kqnzndE1TppPL3mKuRxKGAIhANuit/2GoBTSYsBTu9r3XqCxvON0y1sdSnJIclDh2yNM"}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.0.11_1558715429134_0.8576532251213511"},"_hasShrinkwrap":false},"7.1.0":{"name":"ng-keyboard-shortcuts","version":"7.1.0","description":"Dead Simple Keyboard Shortcuts Management for Angular 2-7","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://github.com/omridevk/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/common":"^7.0.0","core-js":"^2.5.4","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@7.1.0","_nodeVersion":"11.12.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-sKLsAmPNKwVX18WXn/UhRtj7LWHNw8eCsLei2Tj3LvNsBNcNgGhlE/CeBbZUio72Z619Xk91iv34e3R9jjI+8w==","shasum":"5d5ccb8029c54d80b0a2a8e924141c3a6d466977","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.1.0.tgz","fileCount":56,"unpackedSize":944601,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7HBZCRA9TVsSAnZWagAAoJ4P/jRe1QwWpKVAwmkSqLAl\naI5J+3PbUtKeVisNgaeIH9vq3IPLK45yS1VhEmOl6ZnRuLjpD7xtztSQB8/B\nsMpJsRdGqrdFH9XYy+mR0MmXg7hJmT+mJjmoLG6j1mBdVECSCm1AqoL1KGMO\nrlxZX9bUR6zU3cQrhxy4xeu8YLvozLMI4xL6YTnnveAPTgkhSYjt3WzmxGgC\nZ49Bf3tTmaERcd+6rxjLQP5NwrOAthUoYPzRr0zWiJ1EA3k+i8fCKbPazgM6\nf/fHhTSl0rzR+TDDD7NRFcAJtC3m+EFYJ+vVXHOmRh20dbd5dndSgUD7vBWM\nBpu+BvKHAFGtAWI2+NaZ+FjMEjN4QF7yqas6D8+0fyd2txFBXpnHJHAb+4WD\n/bLEuyXy0FOLBEsD7y/qx3xv2TNnczTRi3Q6/6xciwaTlUo+czCDKCl+fsM0\nOQCrBdEt1XAuWTkHyipqs0qcMuAqPCDGOW5oiSRftsc45BNH9JW1rACq9g74\nZ2hRacAxeNclc0fCwmQVQ9JJ6+taj11gdrirFruB9JPPsN0oM2KVCByDlZJE\nprLxuACARoagOAEahDQ3Oo/XKAvLISVdtA5atjQm0coAVlaAPi0FgwHM3XZg\nRzrxkert4UQGoE03gUXVMcz4LJwd1YVgaGFdwobEH5jKflX7GPkjno9OmNp7\n1QVy\r\n=LOxh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDnDvDFrrKaFpCnpwDShdJNhngyd16w67PmieeP5d/vfAiBIUz6oK893M6K4qEtLTptGya8eQY8v0jy/QIr5htEMDw=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.1.0_1558999128670_0.40006351202331825"},"_hasShrinkwrap":false},"7.1.1":{"name":"ng-keyboard-shortcuts","version":"7.1.1","description":"Dead Simple Keyboard Shortcuts Management for Angular 2-7","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://github.com/omridevk/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/common":"^7.0.0","core-js":"^2.5.4","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@7.1.1","_nodeVersion":"11.12.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-y92YqVqvqF2pikBszQ7zxTteQk6Gyqu7465OITx/56wGWP7ya2b+PQd6JYJ3M1NVLiNGEB7aUpWOUVPM4NsHxg==","shasum":"6632027348f3dc241023d00ce1a27e1cde9e8bab","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.1.1.tgz","fileCount":56,"unpackedSize":945149,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7HMHCRA9TVsSAnZWagAAiiQP/3Ctj9W1O7R9zedgn2Mk\nrFEC+9MsDkGDsOgu4KTf+PcTHFd8uK/gMzNhoLARLRoWcp+tVl9NkMYfzOlq\nfPXOkEL6RkDegcMGkXIzKabsfcr/+4LufsZysRZrOCHapa5jTlTv7n9gXWdO\nAtIW0WydCq3dlcLy0mw6qm/Fp9l9vVDZC3a7hOYcJa+ya9vc1KQFc5zP7mpF\npq/fMe8CivhAJVqgzoV5OxjC7JNcza7DKDkD06eVJH8vml7AUV1UcDj1OsjS\nYRZGyTQRWyX2WWO4E9vbIyCr6OA/RiYEOBKw2n56Dp5ONNgBKKfZ78iHp5UA\npS7ObfkGljjWimT6hLfnHJXsFGP55E2FmFAD1Ummxunu1riYYCpZypg/7JX8\n2S2jojqqarc7Mo5iUmmuTy+4Pkm+Tj+Cj2rnnMC3HFY8oLlIqZuAaFeBxYoL\nauROfRV5gi3jfXmPpKHH2vqvXa7cYPBoPZCLwIXzYSi/el6KLphOORQDQrc4\n7YcbbPRv+/6xS346CrC3aiI8R5tpuIyShFK5gGePuOZKeJJeBIZyHjILGBwp\niG9Cxf+HkffZRtfU9ZcYZ7IqHYBSq+pMaUwrl5PVEUXr5sZ3IPfEVaM0ZnkF\nqeqMAdbX24hAIak2ct2sHPEb36VFf7U2ofa5mp1Npt7kxh7b62wzajtSDp8G\nE/7Z\r\n=L6+S\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHa2aoFJ5GSAbwT8X7l9ZGBRpprba9Bb+6S08syGpXoFAiEAyTCY96wrVcAI/o+b3dioeezrtU3utQ7glNdDeBHUw/0="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.1.1_1558999814295_0.5285617812995977"},"_hasShrinkwrap":false},"7.1.2":{"name":"ng-keyboard-shortcuts","version":"7.1.2","description":"Dead Simple Keyboard Shortcuts Management for Angular 2-7","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://github.com/omridevk/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/common":"^7.0.0","core-js":"^2.5.4","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@7.1.2","_nodeVersion":"11.12.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-3gR+D0nLjvHXPs+M5cllrM2yqtS8R/MtZuP5cS/VoiyhrklRqvO6HBfKVB37lTWRZvs4WG1f6RxYAJlFnh13WA==","shasum":"5ba6c576c81930fb2d8321c3e5424a0cd7485ba5","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.1.2.tgz","fileCount":56,"unpackedSize":943211,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7HhjCRA9TVsSAnZWagAAGvgP/ivLrkDHE+VtBY7A3ztd\nAlcYnC8vFc+95jheTltW72DE5RHskD1ByVBMGu4G4SbqeNH3BdRGC38bLFNg\nQWeAj0XmFN6K3yOAIR3DgKoos8RcLNlozxVhlfurVTnh8jRBqVLlO13In03P\nDrUq9CjK88I1zMQ83HmMHrqaRfTtH0CNGiDOTkFWmaD6YCrDjmIoqDvhj7bl\noS06gCCiL6NQv45OWgsGblWS8V+Xi7MN9RPpnzbqAisxXaZ1I+ZDt/94oAU5\nbBhLnwcjvUE2gEYbNNliaI7QAO9VRljEpW1ptIMMQGKCcUiOpvFuPyHZ/ZL6\nGqJ3D2gmwXxCKu/Gc7QlcCHnS59kuZ2nQciUmaPt5I9f4GVIZOHLLj8Ec0Ac\naBUUUg6sY96dV/Qsna5DssX5sU5S631mHA1mSsNjeoPlfOIyNe85TRxn/mHK\nf17OA6wmoRz0COhZzvM70mTRXvvfmVWzqAoYq3GSCmCgyJH907Trt7iU8H3m\nYprpSI8SoLjPkJXRm3Q8s2ig5iH7WF7FGv8H1tkdTvZ7AAzt3gYO8pZRPTV1\nVs1vrnAhUJxYvxif7cTGbEaznPD+v1+GE4w+w801DchMD4H4dl2sfMmqlVOk\n9FyXowzog0tmEOlmxbJUTTFiD4qeqQf6DS5/NpXdKB9blOc141uATjZ/SpuS\nRIKM\r\n=LPgj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAUBo12PkwV0lA9r2W69utZxzN/uw8SxYzrYvoOLbFycAiBqSoEX5+NH/KPHSgrx7SUoUpM0qMRcI+jNtEZJtY4xcA=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.1.2_1559001186185_0.33027436968443946"},"_hasShrinkwrap":false},"7.1.3":{"name":"ng-keyboard-shortcuts","version":"7.1.3","description":"Dead Simple Keyboard Shortcuts Management for Angular 2-7","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/common":"^7.0.0","core-js":"^2.5.4","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@7.1.3","_nodeVersion":"11.12.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-en6LgVVLfxvbolXxf5gULNk2fBn2FAtOO6AVgf/qLq4uSVJOjaAz6laekRri0CUQJxIxNeGxuchd5Str+AjXoQ==","shasum":"26d0143e2309731fa824e1f19b35050f8a654e72","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.1.3.tgz","fileCount":56,"unpackedSize":933945,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7UW2CRA9TVsSAnZWagAAPVAP/2xuuW36JNPeGPRAwEeK\n1S7St8DH7ZJhBy3T7Uq6/+XIFe7Z6IQMIhxIBmqtgd3wXLEycCYgUpbE2HMx\nPm6+9WKiFHBcI7Pa2R30zaEn5q5DcoHewJUbhPw0C9WJBArRdLKwL4D1PHLR\noTxQVNM+SX9hkBKsLRQjmlKsIRCf21HJWE/4vkrdAGeghTvqSU3Yegw14Pxk\nY+k2EvQAJZGNNvfA9PQebmZ2rIOhVXazKknBCgpMHGPU7FUk9uiAxa23TZEh\n7S2mg1z69tSotWfMTn7K5HceNMu71+s1ykExdJ7Rw6Lva2dUaW2JsDFOf2Ov\nGYlp0FdmLECqrAGzIhX3vlltR1+zXS8F1OgC1nPB6SgOxgWCrXDVYtp8+G68\nGnVP1gF+QgzfVt/Ag9YC7W52HacVgkS4a9eEY1DmA2ZkHSOIAL4Q5qFOoOM8\ntD2ggPFrW7o/f34JiUS2vZQ+GE7jjFQwWWrR7FnMwJeoDkb3mdOc1Duo/m0Q\nzz9GUdDSRpj6me7e1+OMH+IcfSIK9JmYfn/gEEfdHGhx85z8tGe9fyJbws1b\nedxQFWuSQWu7gOE4r5og6inQHLL2Ob7NSZlXxkLfh1UYHRE9lQCm8i+dxNek\nLyb9A46CJI4zr3LvJDdWwxkbxHc5LMbcDCJjW54Uj/LDpOtH84wzVErEywO1\nNIkZ\r\n=j8zq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF50NHGcduQqRpaDuks0JHtdcseXNzW8X76bpEjf/zDmAiEAoPHilaKBPdp2+bZ+zXAT/viaCewpEq7Jcavwk8H0JA4="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.1.3_1559053749495_0.044821313693548914"},"_hasShrinkwrap":false},"8.0.0":{"name":"ng-keyboard-shortcuts","version":"8.0.0","description":"Dead Simple Keyboard Shortcuts Management for Angular 2-7","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/common":"^7.0.0","core-js":"^2.5.4","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@8.0.0","_nodeVersion":"12.4.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-bsyfhNrQ9t8csdS+aytT3IuHuXBbUBCiuRKp7eAx3h16ZjqGoi4/mhnx/WwnNFRdQfOn1wZp1pkB34uMIyI3wA==","shasum":"691491b6a2c8c4689f15bee3a5ff3ffec1b887e1","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-8.0.0.tgz","fileCount":56,"unpackedSize":941740,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdDQWRCRA9TVsSAnZWagAAazcP/RpeEd4AsHo8fdaSZ4j5\n6avf8ZE9BjJf8KmivDZUI5YJ4zQUuxdGYbM/Nio9+/Dw5JRpStDwXBc7yU3G\nhA0U1+n66oWyYVRIhamrR8PYntKkSrMClAd4u36QqnDS/UH3b8cjavc2INMl\nRLM/T5g4x+3FlsDJOwILnCSbrKyZZhb8yDWrJag8ez3Jk5aSvVfSsg53/LJv\n6DpCZoPrGuC5txLGzndgAdN/VT/m3knnLMhJOGwQqLwxgUw11s+BF65mYvuJ\nzigyb77fUOPxz3rB3kpTEYBIG6UoIAKQXXvlBupqfQ5gq3JgzLxGRLn2qO03\n/Rt0L3OIZppRkYk/OrJZt4JHRDcrP6RvMP8jhi1u9IGCW0xr/HIG1o8GQOdH\ndAnkpLV3qZu7Ph+P+SYdzQh/28MHtJVAR7jyI1oOFmgMelsGgq869pGG3L/a\nhhyGjb5PD7OeIsH8HOgkzDzsIPuA4LY3Dn7ZSTXICiSalMJ61hShlVNs0AmJ\nZRFz0yL7wKUEduA6zWXi0ILIz5ZhsHr6/1jzv5/apIUL5RtYK1JD6iAdcQf8\n/IslNBB6s4sKAB/hkoj7aqfAjV01lOY9KTf4uBfKWZfIVkUy5TXxNXlf2fXo\ncNf0ZKb7higytrmzcHvj3x1KcQxzDg3b7jJ5jzwp85/nM/ROY9LD1DbvWSs8\n9lEg\r\n=TiqH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQiLgEcFUVqR0P+kipYGxsWsFFOyYEZPf1Z4MbewMA3gIgVWGVKniXLBoV4tLu1LvbGmkctzAI2z2oQxH/gWQ2OsU="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_8.0.0_1561134480730_0.7010430366938423"},"_hasShrinkwrap":false},"8.2.0":{"name":"ng-keyboard-shortcuts","version":"8.2.0","description":"Dead Simple Keyboard Shortcuts Management for Angular 2-7","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/common":"^7.0.0","core-js":"^2.5.4","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@8.2.0","_nodeVersion":"12.6.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-8CECAsk/OwAIWnHqfLrS7PPvSeEz8rdtauJ49V/HAGeXUuLYfUyx9dTw3Es1QNl8V9d2vLUlLppOE4LlMb6WtA==","shasum":"fd7389505eb32478cea07af33618f1f09e58f36e","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-8.2.0.tgz","fileCount":56,"unpackedSize":979776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/Q5FCRA9TVsSAnZWagAAzaYP+gMPdwO+uKNlPZwA35Tz\nI3+j1Ttj8623lhkwTMcPPW4orF5dz+2a+/F9yswaVvEyc7/HEgyPat0SVWIn\nIyVv58nMKzrNB9XF4WGRcAhztIuQywweI+kMpNpuzT51KlAQpheUUeFzQRHD\nMBpqfE31EQ1o9BiOXuvxTYJnZVksz1gN5/kMX1XVWMTnY7IvNXv1DrlDhsWV\nYOlomYfA1WkvqRwHDMwAkwVrlLyil52Gn2pJOvw3YZvDDkXXfloyDYjQIeeG\nKrqSPyOA6YVHnlbBmdOs5zyNLU73eJwm4slG3ulyU8m0PERTgIdm7P8gD87I\n4Fg2dUKW+yamNemimEpWxAJymrY1f8HN4LzFL1Q0uXlkNrYm47s5j9WfvbsN\nyNi2yBlN1170qlMgyDPaRFkrt5n8lBPUbrVWizwM4QUpBF/eNWiXzeEDUqYD\n2NUNOV076NfYYoDoP9CoNJif8tCZfDkJMTEa8mLpjie+/g9xpjJ0yPnvPkOW\nfazu5yRysB6uCX4LvXGm84W4yQq5H6ehFk3+c5oDs0Z9Glvuo6XhvCc3fq9/\nmVwRMRVYpWY1wk3wFaJK9Z51KqXZmb72FAFfgoBDPNWaxJipd9E96ubMYPCQ\nTsChcUKWYIRzpYJdYmKjvKXFnbZhChn9bLDctFPkCn0tmkkfr5DV1aLnylDV\nN8eu\r\n=sBM7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDcsR0pKpmqIguBBuCnzAXVhdCXPqJ17gsGKHd19Mu0sAiAVLqzgPe0VLsRooLqPQG3sMoKtgAK8eSxeBzmECeCNzg=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_8.2.0_1576865349273_0.4194764799116335"},"_hasShrinkwrap":false},"8.2.1":{"name":"ng-keyboard-shortcuts","version":"8.2.1","description":"Dead Simple Keyboard Shortcuts Management for Angular 2-7","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/common":"^7.0.0","core-js":"^2.5.4","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@8.2.1","_nodeVersion":"12.6.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-B2Xi3ptVLAbYTv93Ntv+mRFUvVow4FdgPtpie+S3Ftu2r6hwtiYBTgs6Mclm5STjLqRV0uxZccjJ4nzlihG+Mw==","shasum":"73de116af909cb0172a38d6bd543d52fac5af9a8","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-8.2.1.tgz","fileCount":56,"unpackedSize":995863,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/S9CCRA9TVsSAnZWagAAsUoP/1EOE+85A7fxDJ67V2oX\ntAKJg/761E7uhH0YBn/pUrRn9pyzoblfc8VP5u1NGHj7D3DOMnpFg9QUn37C\nhYiclu7rVg7ouR7IovNpz2cmLVbIdG4EGBKD74UGOsFQuOG1BKXfrH3ZVB09\n51ApVbUbItrf4WGFsBYoUF7P7Lp6GgCTY4mn61pdsNdOTCEUo+t/VRa3IH4E\n04LoovsJLYm/UDeErqcj1QfYSBp7i9ugF+eDvXp9IL4dMmHMry9RQQV73D4E\nkl4dnvgSZk7E8OXPMK2NWOfuch+op0VuAxFEMKk1LDdNdZU5C8BBI2MaylZs\nzFl2FkG5ae608KUqcyI3jqyIyqwxJSJbNL6dIHk7L8+vAgXC9k6HuHHKkg7d\nUatInGhiyf2mFZ9H9o8Wq4JWpg8X4WwyR5z4Ol8ySs4zgalH/PneF/8ea0p8\nKdX25MXIhDqPEui9KYXCDgyhJyWMdM/Xd6NRmiySlcqygrNUOAa3bsaLfRI+\nFkw0ydK0ZBUH7R9J2h1wGC0ZVMqn/D0FDC6R6eCPDG6EP1f7bdH06m4TBiOR\nLRhQEjTs/fxnAluR+3DRyXY3kht2OVUBytwgVgtMnG5eDSiUmGfer0GdQJbq\nrcAlcuf0GuNR+WxRsXnjOS9+h2FHu0QNhlZtu6iCVaS0DpaHEzVhWc6rTtqY\niDEb\r\n=SILa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDa2uo/Q+pvuM4hAThhniCPMFquR8VA6pyY8c21Xuc8AAiAlNvyrj8oCyvX90ic0Sic5b7LYjDekWS0VyjZU0Xtn5g=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_8.2.1_1576873794014_0.5116478242179148"},"_hasShrinkwrap":false},"8.2.2":{"name":"ng-keyboard-shortcuts","version":"8.2.2","description":"Dead Simple Keyboard Shortcuts Management for Angular 2-7","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/common":"^7.0.0","core-js":"^2.5.4","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@8.2.2","_nodeVersion":"12.6.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-eEeRq7tTQvFQcHRrdhhqVe/Q7YHDBtAL1aEBrzqwbViWeNaXagXZBG05LouOWs50jml4SL5fxYqrKU/Ln+CPDA==","shasum":"0c8a76491367aa2c8f582eb6e3071701f1b68b7a","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-8.2.2.tgz","fileCount":56,"unpackedSize":995909,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/TUICRA9TVsSAnZWagAAVt4P/RRarZvSTJReOhAFOqkC\nG0uId7zXJc6CDxoHVsC240mUvJcw18mFkyWuM8EBlTccQtc7XPSYzTqG7jqH\nKBfAZP88vATb2fcdec/MYua6oHGOJC/ZHetD7HUX+wQvqayute5q17irkJ6n\nxr+3w9YaYyhEVlKDBs7Uni/3SYG/Ww7sxA+G+caRFtTUsZ0FXNffZdHgKh8U\nU4v5LSagq3cB3LN05kLeUC+yytFZA7xoI9nhjCLVtXCNXYsVfTJPhNVjoVMu\nA4wICd7L56lAzInbtJCOmGPt49QybfKrZffGLnsfnsoaO4YN4CHxNZCKLsyX\nFPEUenj1ITiiB6dIp/YYaFsQrTp8hz0sQaE6jseG5pLSklR45TgsHFERSypF\nPktOH9P6gF53vfXEPrl3vsVbZ5JST8W/NUY4NVUSIs9tNvz41IurHUoFEc0o\n7SLTam401xI/jZtxynkp/q9mktAe3Uhygq7VqAOHTyitHfgNlOvlg5vDZYVT\nUcqEKY9rAIIe0VX7yjvddhC4rDSbya3ESx7kRCUxjc/qWl4C+in9ZmcyWJiA\nfNPx2qBRgOJVPBbRLdqEq608rssJ9MsiB6Ppox1gLZwd7YpJ8cYtO2L8L+os\nwmAkwwJ4C74/uOk9SeTQxWxJTXOI8B5jkr+J5xzMa4D6kkrp+0iJTYlYGOSa\n72A3\r\n=uYTn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDU3QW1cv3W0HrHBibT0SrMVtiyVaCt2T8+DdyNvyC+IwIgdCh2xhEDjtvkdBZyo6LamecpZAsGwQjcWI5ZBmX7/Yc="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_8.2.2_1576875271873_0.953826656368689"},"_hasShrinkwrap":false},"8.2.3":{"name":"ng-keyboard-shortcuts","version":"8.2.3","description":"Dead Simple Keyboard Shortcuts Management for Angular 2-7","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/common":"^7.0.0","core-js":"^2.5.4","rxjs":"^6.4.0","@angular/core":"^7.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@8.2.3","_nodeVersion":"12.6.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-bjHkHPJ6kYV8pb6n1mOrFE9547df6yuc0tZ3w4Q7nNfpM1JxA3D8DQNAlmzWo6hlnHJiBftuj8JFZ1LOvSONLg==","shasum":"b2e82b41b4f77dbd7d559fc15b0e775fb85dff15","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-8.2.3.tgz","fileCount":56,"unpackedSize":995126,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/VN2CRA9TVsSAnZWagAAIbQQAIVYptQ9WyYh1JbBbnlH\nLibEfuBFG93gzRN3Rq5WRGLrbhWTEZquDKhADs3ARhh32jesoRxj88tb14rZ\nyMCeopOddaaHxkBQXy8dYiL5+riPtrpPoAitiXTCXKa/yexAJSMVkg6yC0yP\nl+5+fAkQ05y9JNj4P+dItMlLy7PmMteFz7gutZ4JnH+EbhaQwoZDhq28Y/eV\nFJMLx7TX/LfqrBMsuZoUZq6bWliVIdQGi3mnFBvOwnnJtdX2BRpEdjZgKnsK\nDy+SnZA0/+5rYsyb0Ot0tMFHbKpgDm2Lt+AQl8bievRNMXCct9HvPBDbdxpi\nZOsYSe8d+KUeKVG09S5BgFIkAYsLYu7c9X4K9luirJ523IxBbNRY2hluI9Gh\nNaqf5Drp6kiyA3Lcr6lD5bmzKNSq6nPwxSjyCn+wWmJa6p5eqvplQLq77+DC\neJdgaFEwnt+ruiqk48E/iG3IKTt2oPXfuDTydxY0JB75Pv8y8rMVRzKGiWSG\n65E65+sKTyNLj3eCG7AC3cTEq4A2SBK3i0kvgFhXrw21Sei83u02PUplq+fS\nMLc7DBp+26Ms8KyKghjLw+f6ux5KPiCs1Hb2qIQ0auo7mIzhkfVDZ6EQo1Xo\n45rE1pFNcvqDpl8/Q8k4uQl3l6JRtGkNBkVYaSE9weD/jim2rWuesHFHwH4p\n7qMt\r\n=T7se\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3IhHZ1+bKpd+lCL8VacKQvhI+2qz197/+mQl5CErpCgIhAMArxXep2tWD0tXSy2X3CO05vdTpXisAIRg/2nzMoXDC"}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_8.2.3_1576883061730_0.7579455613234862"},"_hasShrinkwrap":false},"8.2.4":{"name":"ng-keyboard-shortcuts","version":"8.2.4","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@8.2.4","_nodeVersion":"12.6.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-InU/lXwUGhTtz+KvVycBikbFgHIjGMQGzdFL/7+nzj8souzy+/cb4I8BUUu/fcdeeg9MEOccR+nE60eNf8qO9Q==","shasum":"b009426f6ffc0f44a892420aae14b130e4333fb3","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-8.2.4.tgz","fileCount":56,"unpackedSize":995190,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeGGfICRA9TVsSAnZWagAApeoQAKH/6KlgJNHiuhHAewDf\nDFQugXqYlxL+RP9qnKcssl81ssbUKmsSAG90TA5JIkCe6g3ifYibxnSRK2YJ\nuV9SCppEQlSQksz5iKTLgyLgnVUlfOg3yKyt7svSPRyBToiwx65/3Y5RIq9B\npRr5jr1/ntnHrw0t0fx53ydDkifAIYnf7U5NPjEvSQstjDuSGeSB6GTNEUdD\nVYYBJOFCRzyJoJHDI50gAW57+UaCyLErmzZM1c6d6mL/1kq1dQ3W8kaVxll+\nIw3DTb4xl4HdR6F6/kBKaLJg3Yp1aZQKhOidKKZwqBaXHv0b+h6q1qZWCWQe\ngTM/JR30lj0GlEG+2llFlfwwjr+ZkvPz0vQFzsx9DpvbnqTyZFowFXseCUtY\nRTL/bdOWwYRqyx45NY6XbBHNNXaflb/EfJfQksTu7NYl24WL54Eg2us+toiS\nR7EKB6V6ne2Y0glndbLR5+Qzi2L5x6EdCTbr0/x1lCiomCDUTmLtKX8yL9rk\nUmtyrWVfRPIe4Au0RQUUSAQx8iB3bI41xzX1tnUKYz8igRGRqOkSyI8Um3MS\nq68wkrvsB2LyV2GKRD+HHUYBupi6i2cPbMEHsOxMTChkWZYETEo4LygIZSFp\nrpUnMJ88Iqtse5ZVStFzsCQBh0N49ww3Nv8QQ0i+qaG1/6DHJVtn3j9E9GJU\ndEb5\r\n=FKGF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIESp3dZt9lwJ4hIGHNnieS9RFDnLqWyQA3bHjjJZSWBMAiEA3Gj0cVO53PeKl98nNpfhg6Vm5zPp9sCjQxDnmPtsC/Y="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_8.2.4_1578657736373_0.3568281806485205"},"_hasShrinkwrap":false},"8.2.5":{"name":"ng-keyboard-shortcuts","version":"8.2.5","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@8.2.5","_nodeVersion":"12.6.0","_npmVersion":"6.13.6","dist":{"integrity":"sha512-9vo9YwC2hmgMttK7WwlSoO6+eXI35i+U171kPKJc08ywZBO6cFhKTT/6af3wQuOQoav89oB+t2+3Y6LRpqCJUg==","shasum":"da3feeca79ec8bae30a050614e17d6860245a28d","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-8.2.5.tgz","fileCount":56,"unpackedSize":998499,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeIH+eCRA9TVsSAnZWagAAi2AP/Azr9QUGmWrk8ubRaqbj\n2oNn9+D1KsaNWKHIVB9xMviAQaJdAJRWFhMNIIgaC3HxPkbHP4lRs2GSmkH1\nHlO/yTFlb4dDtVh7FaAMFZhB9sYyoaUTQVKXrFPLWndZ0cXTefpekCGRf6qX\nfC4d+8nq3c/fby1pOVsPZmheFMTYLLYBjssehLZkzI6kSOO3AejK4IURIDHY\nZ1Bxb9Sqd9Ppe8GQyGqJm+Bkd2D8gGrKvKmfe68ZzcrxgyrO+LeioGYa4nmh\nozSUNI/WZc0s4/yYE6lI5OHM4Sp1Z9ZQ83iW9QzC2uVqD8auxv1I1Da/SSPG\nHD3HUUHjmLX3j6CfGCiUaYQHHDTweW22GnJB+vMrDsEF+sFniyYc9EgDROcM\nqebEb7QNx2lKgGrwKQ9jwDO9lK038zjWtq6utHQ5IcKdsdwurq1+iD9iLuFr\njkUF/SweTGQogSoLA2fp4mUOHijTlmvze0xSRztleuDcOdDlpjkUWINWo1/B\ncdNMTMxaprrRWmiFJHnZpoIdbKSmCz8RYX1ASCDxg0tIOKStITQFNzszXAd5\nvpu442vZTTrOEInr3TpleCPvPIMQKOxSh0fguNzXPLfyvQ1BNHwLzHvtd5T6\ntbAoXL4O5sP3xnlwpiZQeToikxftgX5ukLpCjEOmWfN6tCDUzX7BsnupKozd\nQiso\r\n=FSom\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE+XN46aWH5AwKfhZN2yXupC9wlMLLRqW/Q8zD5xDENAAiEA01B9Y8raBK35mNoOPwl5biOcA6J/nREutp60lfzeJ/o="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_8.2.5_1579188126442_0.7456947187301268"},"_hasShrinkwrap":false},"8.2.6":{"name":"ng-keyboard-shortcuts","version":"8.2.6","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@8.2.6","_nodeVersion":"12.16.1","_npmVersion":"6.14.2","dist":{"integrity":"sha512-IgoKjN3fT6BHFq0SPe5fym10mKoiaWWSRWfoeN14iqvlX2UDp3dUd2gsuqGJcq1EKY1/q53AuypKVTZNroAWzQ==","shasum":"797a455e9efd12cffd2d4ea693c604d4d9bb54d9","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-8.2.6.tgz","fileCount":56,"unpackedSize":1000835,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJee9u1CRA9TVsSAnZWagAADSMQAJcMaDUj/iTdZrnWdnD4\n8tAa14rbyfBFUrHoiVTGmLpYI/vnBND7LcwNzusPrBb8YN/+iQV94zLjnrbc\n4g1US9NVv9W2uU5hgCFmlBodetwQvbSaH+BqrWHIuruwDpQP/fcJnAEtwA0C\nxnSEB/O7/LcHgwL9u2ob7ngtDwizg6dGVP8ioVy/GqCx33naSpKiZSXRzJxV\n3sXzAwjyuex8HaUyFxi3F0O0YuoOZA3wqQ5MDcWWQ2ClYEDjbYOylK31Eg32\nONGGncEZQrChOU7reao7DkADv4inHm3xykQC643Nx9jXjC0CYVU+kYU5sVDX\nD3utUK6rVRqKrdlNsCd1ywILxfsWH2dn4Klb2Dy+5YQVKdoUgu/zDbXe3aIG\nJnnPPLuR6o4Ui9+1V+m5XYciNs1dp8h72x+RFnqY48ENshLaMGImO0ApceCp\ngv3aFqmCb/p8+FeqU9xNxgyBM5eeMWFTwGEiK0mpYgp9krrSd67jzLoNGHmo\nvaeNZKaNvFJQANeoZBYiBabAw1pZRcRtEFO3hDG96+FCOfOR2rKUiCtTtK9V\nXcU4kJgk4TH92DxJlgx8rjjBoF3io2x4WYMR7PZ69hTbtQQrkjlZc5Ql0doe\n1Ut+KI+xuvuud7CLdelJXXs08KZjxYHNiIZ94iJBkgYTIdxfUqw4MexQAdGm\nHm/R\r\n=brZT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTxiId8wXnKvCczmHOHdD5ZJ4J/JFJynP1i4pGSpLaEAIgCm1hsCrapl4DVqPb5Ec4oWoG+AT99zaWBs50qrihrxM="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_8.2.6_1585175477395_0.40170493481755276"},"_hasShrinkwrap":false},"9.0.0":{"name":"ng-keyboard-shortcuts","version":"9.0.0","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@9.0.0","_nodeVersion":"12.16.1","_npmVersion":"6.14.2","dist":{"integrity":"sha512-zc5PLzRBIGqQlcdtIeTK02k/0l+A3DoQxQjq3eJVgwDSgdjmx2wkePoKn4VIXidbRhPYU55IpLrkjZLmtksPew==","shasum":"1e62b4ae60296f6f4a0c3a29cf0913bf8fc3ceb2","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-9.0.0.tgz","fileCount":56,"unpackedSize":1000863,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJee+5sCRA9TVsSAnZWagAAyyEP/3p7GDpm1vU7TsPNSsSZ\neMd96t/hvn4V1xkbfWFelwZcRB9EFKVib9CQ+8Rxd4UC7Lkw4L0ia2CHALgT\nhgiqgMlbqtzoa4MiSpUQndDiovsXgX8MOo6PSIdCePifkV8gtHHGooad3M3X\nXl6jTqrDVLtAtsizXWeEOUwoOSwtoigaOzaM+2CYOcKLR8CLnLc50isOYsCa\ncQagfdWtSfTalX7h0VCd7mQw/LC7fcZTM2bgV6MZZCyk/cPSja16F32EZOSf\nSw4HeZ84fTq4symPNynzlDhfqX/iVzilKdmAm+sjz8spjQ0W/lu3ox2vTTW3\nIxXIFxUFQH4sesIens4xSUFxu/r2GiymdGFlZZY5v2YewH/oNz3AiHaSa65J\na8HAclQiFJXWaGdR/hGXdvl0OFaDMUT5zGik88Dt7rjLJXG/Zo9erl3S8e0L\n2dDW4M51VLkxWApDJAupe1Oq2SXLQxJ8VHeJfAMFgjYOfdvHzVU9EVAPVsPE\nVkcULA7udwNlIyYKVdR6Hfp9EV6ZRwto7UjsHhaEYRTDT/gmrvpIqRcWT0Ix\n2h1QjX1u1zo3O1KXRpMirZrKDDH+lbbY8FudOtfXXVZadD7sR+jrfviFXE+q\nb+o+V/LP3VJSDvZJ16vjmdB1Y2I8LqqGc0IQIqepUaasfhoUqNpC7azV7Tak\nFqaf\r\n=C4QY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFpKtSbq6EvnrrbxAjnZXxBmIPr83UjZ1IuNTIPsV7kHAiEAow/W+7EUIBVH9TnRorjlpn/5yT1U9bxrktgP866Fuls="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_9.0.0_1585180267455_0.043688501727933815"},"_hasShrinkwrap":false},"9.0.1":{"name":"ng-keyboard-shortcuts","version":"9.0.1","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@9.0.1","_nodeVersion":"12.16.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-w/J1GHREI9XCrUj1y7a03aJNzKBWQSl5fkJIWMnqpI5y3iOI1RepC7jPO/wdgTTReceNIc7eBeQ00BmMCmzSsA==","shasum":"df9d76011731f40ef190c77a88ca94e360a7f88a","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-9.0.1.tgz","fileCount":56,"unpackedSize":1001551,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe08QkCRA9TVsSAnZWagAA3RYP/0b3qlLGoVS5mTIO1m+r\nDymqguMnajbQLv0T15XHqW6E3mj0HDlN7u4VnVFLYmf3AAYDersOhVp5AxQC\nIxXk5tBFbBtAm0104NRWBAjf2vSjVaVL2qQn2Et9uRgXTK2690qO4g2C2x45\nKF0GEoEOw3qinWPNP1QsJ2hy5en7hk6QrnyQxni3+kWfHV6tNe1ePUqyxAC6\nnCopF2kErB1nTlYQuNVXkylAPItUSPUX4VBDs2EV5YMkkJdW6onVg3e9w1S7\nQWXKzkLZ0BqdAnm/nx/UhRI7zqtM5ZCKMMY0cv0Vs0JSl1bL4N1SZhtQstEX\nRpvxbhuLADEgzUy94J+FIvrnmeXwfaWBYaoOdAZR4pNAA2ZpycE3hqroJXPm\nIWWgbBYWxe7qKKppBtryUqM3BgGTvF+iTWspLfN+csvylE4dgnJUnLEBf6bs\nhSddifSIsRXNh5MW5QMUBq/ASGzQ3WauzpWCaA9yX7Gi3EW5OGERhoxKRziN\nfdlHvobhyyH7+D02XZF/eS/vPzsKBwRmpd/VTEgIh+kzNgj0KtTFJ47VMPdB\nie7IjuHnvIPhrOgfAAqtEy6t7gXUNRJCt4jaMrHLwMdypLm5b1ozR1BJ2UKE\nT0uIvWChwMzl8q9n7zQyRSTPcQxNqKCkEybkIoFZ6uLujxRm0eZCIv7aJEc5\n9xIU\r\n=tjp0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHuCmGeqcpklNh7WVL5nLxdARHAoz7igzEIlJ1Ae+w+rAiB6buBMAumUhmDI+j9AcedU7MgGsjFZ3lKRcK5iAkzzvw=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_9.0.1_1590936612464_0.3793369846250354"},"_hasShrinkwrap":false},"7.1.4":{"name":"ng-keyboard-shortcuts","version":"7.1.4","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts/","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"description":"<p>       <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">         <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />       </a>       <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"n","_id":"ng-keyboard-shortcuts@7.1.4","_nodeVersion":"12.16.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-QSZZlnr6lr+AiWfD6LmqGqOrsb2JfmZyErSnXm4iv0FXheZ2O3fucc8WtOOD+WP09r6WPjlYPlTjOeT/H7rVKA==","shasum":"d2558ca7dc2041519a1484271653254701ba7c52","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.1.4.tgz","fileCount":59,"unpackedSize":1036085,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCk0YCRA9TVsSAnZWagAAYrIP/R12uCmIen4JmPT1+8A0\nPagj68Pa8hkDXbtUXYyCiZ7IJcV2bSAmnJhJUZxbzB6JBG8rZMWsvw+sYcXG\njdYJLCpA5+/q2KBoO+08fPRCPdujV2sPGgIdjhImUSCZMRQEerhvBbHC6w1F\nsgKhsetdLHIQ2EyotxBCkensypjIRcgI02e6ngD9XA5PETRQ2Lmh9nJzjQyD\n820jU2ue5RmCGxbNp3htZ5IWQF0rS6415tdOqWvwnFFXJkCqAA7OJnFUb088\n3pUMBCpnPwbK1/40cHoo81rxM4TUrJ53eW2WozBndSuBOfpz+afGv8o+uhRd\n25SQRLBFk3Z3X94LP6qih96XG7vxy28VMrjWmmKnzLLw9HtOUexTGGgD2iBU\nffJJcGaMs7vakrzkP7KpGp5xzihYcw/GXWpkPMrSBSxnw067+zThlfbWotil\ngnG3/v24qFAsCf2tKd7ZmJuMHErmE7d4X5W3JAq31CmUEZJgJUI3C2tJZuID\nrZ9lNwMKbJOhj+PAyL+Vo6KWv9j8XaM9NfbDY5qmeXFowVVB/c284B089Hiv\nLVuFzQ5lJu1LS5Qcw8dJzic1zd9lpqxEI2ZQ59yGVvM30Uj8jk4DqNwZ5sh/\niPYymUBRa1BYbhE5ybCspVVsnK2WdWFY7ahpQMezOJf8Jyqsi0o3llrxmfgF\nKzkZ\r\n=lJtg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE6+5jdA/mec+XAvhzYgx42LXHh4XNuXWlJsuk/kpcMfAiAqB5aS9gcxKUJ8Q40LRQ2rk4BRVAe78BcUt0sbMkRGqg=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.1.4_1594510616127_0.19391476595425972"},"_hasShrinkwrap":false},"7.1.5":{"name":"ng-keyboard-shortcuts","version":"7.1.5","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts/","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts-1)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcut](#ngKeyboardShortcut)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"Help\"></ng-keyboard-shortcut-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcut  \nDirective that can only be used for focusable elements, such as textarea, select, input, etc...  \n  \n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcut |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcut]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","readmeFilename":"README.md","description":"<p>       <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">         <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />       </a>       <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"n","_id":"ng-keyboard-shortcuts@7.1.5","_nodeVersion":"12.16.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-+PTyQcFDYPMjweBcoTzv+Q3hUiPYhEujbBqLZRFagV2LSv432poZNa1LfHWoqmecePBSs3RNmyzsUEEl8Mv8rQ==","shasum":"6f1190014cb12cbd734e426912b5a94c944f9cf1","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.1.5.tgz","fileCount":59,"unpackedSize":1036085,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCk43CRA9TVsSAnZWagAAK8UP/2FCCRvat+UFYp5vb0rZ\no1iSUQieczl3QVxQ3sZyJn9GSixwqVLt0wE/T09OMrpZFpR2aUHyzkW229Nv\nlh7ye2haiGiqJ9R1xOHmC2iKJUzSDdx3dErA1eIKY3vhCUeNkY7PE4cjvOiP\nK9PUOUVYhHGLp2FVWNJzWYi/HbDXjI3bCO2zu5XXAo1PiBZ+voLesJkADNVb\noJGzVw68087n67YziaeXhgL87dHCPmyHZKrRQ/EmTJcT4vEBqLhf0kubaQQr\n659P0biSiAMKj5rRbzon7MXcqJ5NKBi2Tf8QQJW4I7ZXddDMzY90NiKPNRdn\n0Yfam2FWNtEqVtrVTemjechSASXX610RLmComQINaLMkKsLSeeDXj69aM55g\n0dtCt1Z1NMoGjoaGQmLBqwzGhyQC/YsrDoCQlDPkQ4DS6s6ovAf4RQhSgIw6\nJ/mTXjQrWXRQ24/WxXZiyO6EzO3YsfV2Y9b5kLuPlN5bQwa1mr28NzC4s2sy\nhMFUybBvFUYFhhdihfM4dWjqa/MkgqHhFaI0oOCu2JRLjLQou34UHXu8nPfl\nKvX2S/I7FYWRMtkKHFMRby7HLeA+doijPPiAdaV0LoBIH5QSaU8KMxlZkVd4\nBRY/SfvI7E7H58GBhamYxdi5m7D5AiPbn+kqKLHKAeMW0mOj8E8ra0JmPSUP\nOqJ0\r\n=6XGN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAiPtBIZu/gdNLt+lAsg8/pHFCWPgSDfVquoOmIBKVNpAiEAsBgeFmXZKZ2PUemxjTeTL+GbxuKFv9wL4q+yzfFS0lI="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.1.5_1594510902577_0.7479633677266653"},"_hasShrinkwrap":false},"9.1.5":{"name":"ng-keyboard-shortcuts","version":"9.1.5","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@9.1.5","_nodeVersion":"12.16.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-RbCUiXx08suVbLT5NkFMtKSCHN5iz9H1b1eIx6Ugja8csFGcrHgMpaU+MwaL6dacx147Yjavm7eOCQ2EWuV4Mg==","shasum":"6172fcdfa54988c5108057ae604ddc6051ab0241","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-9.1.5.tgz","fileCount":59,"unpackedSize":1036003,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfClCcCRA9TVsSAnZWagAAs0YP/iCiftg+MQSxu+CBT2j0\nDCFbSz5cPVc7wl4NVc8WCgdwAd8tMHKZi1w3dkQ3ajJVfyUtFzCTGmNjIkKJ\nn3vn0fwy0yevtwSqeEkQ+qE6xmdShZyjep3qjmWwCSWZNYlhro9zlF+PlklT\nDTgJ3wkn0ef/wRDtaP6t5316z6Blu5UjCqJzY2gePp6a8SUdMvK9XHOkvyV/\nN/G3kYYsfGadlhXPgXQzkSgbJts+zo1os2370DZjZnm+ogvCxlWEkENwU13O\ng4WS47fxmwiuFzvTbPqONME751MuRQsLSAQsu2xbOd+3q43N1312leO/mq5/\njhlL/rADVLs5q0j6V4Y8aqfdvP19MjpsVzxi83hzRxxyc4wAk2aOonUJxC3v\nUsDBYU70THN11Sphy8frmAx8gZw6cyb6fQxgEGDca0+cPodat5NzksaQoCRT\nucqFqIuD3YylY5n4doq+kYO8j59sRJ7p3GC0+9JQlV5Mbb8R8De0mw3rQNcf\nrvdyqOsPoMfyxK3xGBWNMmCRb7/z1KebvWfX3SkSFoRnQKw5x2na5BXVCcEE\nxqIrHGZ/QJnk40vIZZTDb3vLGuS1dSeIigktbYkglWTygrJQVaECys775L5h\n0PaHmyFdO7EIVia2v9yQpYlk7jiqZGK1c9u370QFcFdN7WC8XZH0EP3ykD/o\nxt93\r\n=5jUn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFDV4Hx61v+z40wUpBLx+Gujh26q2EuhZ3+bPy1S/Py3AiAQbZ5wLaetf4ox9QuUiqGuzHGR9B/6IHX9+wqVNS8O7g=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_9.1.5_1594511515672_0.5003071980947249"},"_hasShrinkwrap":false},"9.1.6":{"name":"ng-keyboard-shortcuts","version":"9.1.6","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts-1)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcut](#ngKeyboardShortcut)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"Help\"></ng-keyboard-shortcut-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcut  \nDirective that can only be used for focusable elements, such as textarea, select, input, etc...  \n  \n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcut |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcut]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","readmeFilename":"README.md","_id":"ng-keyboard-shortcuts@9.1.6","_nodeVersion":"12.16.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-N2fJQdXdkCG29yr2BIlNgpdrO5gvYzo0jWIU5ND0X5lPwKy5juXDnECD1SIBSbQbMU+ZwWT3X4nCUluu6p6BkA==","shasum":"06033af1062dc1247283e883ec7fca2f2e97c102","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-9.1.6.tgz","fileCount":59,"unpackedSize":1035853,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfClhoCRA9TVsSAnZWagAAqhUQAJJ9DBAEnDTbDaZvMeyx\nNFibqyp61+ToYGJIvjbcxhaC14FdIeb6K47uLT7vWEAVxUjxESBfYUaiGkHa\nj3oMs42uhdsO7I65Vap63lbBa/0gsHden+EtGxc2BuvN4odlfg9kyVWpc5bp\nwLwrHnGkbjWi9Zu/EhAR8swmkRouMWk8/1D7jUv5cKyS8mSYFaU3hy/MMtkM\nvZjfznmFoEEuYadzr0k1nVlD83Rbus3g2rMGCgkB82xgAyly3caAjs9N5tKw\nMWM0lxwspKvSJ8KV3+ICt8m3583IUlQ3WbhNCduKeHXLg1zqxu77G6AM8jZa\nZphah5lT8MXYJsSe4zhs0LGIXLmfYt+BwBMvKaBAHMu+Fg8n5eiL2IaG0yD/\n3hGV7vYVHa1B0FN/xbXdlwRSDtOF//XPOEvpTRdyjkrfBuL2386TnpYBor8N\nlnEjBQu5TufLPV8479YmAwSKh7GZo6LtvvEmAsK1DqdAGuIDNQDu5daVdXRR\nh1TjhHc5ZdJ/XPb9/avu1qcir+EFR3jwRT8Y7q7u8m2Z8bkEsBedMH1p41zM\ndZbiVnghNCEjRGs/jYjkOFjP8RSMCmbYiUSCOYfVn3QCbu6f0lkk9CMARfMt\nh/oSvwln/ps5I6efuEf0hCYEhTBVEL8BWwSKPoaCDPCsyYlAc9ry1zpB1Co1\nfJP0\r\n=pbDe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbuYIsGR6uZ13Q2Z7uo/s2YrCwH1xa8JnpOzP7249h7QIgHzBwZ4YjUwgNPzh3VHKaMVT3fShm9uQpdvJ1YqJFLrM="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_9.1.6_1594513511663_0.7093306607525882"},"_hasShrinkwrap":false},"10.1.5":{"name":"ng-keyboard-shortcuts","version":"10.1.5","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0 || 10.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"dependencies":{"tslib":"^2.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm2015/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"_id":"ng-keyboard-shortcuts@10.1.5","_nodeVersion":"12.16.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-WpXor9hP2vE/30hBWLllqjw8DDRYWthXG/td1MA5gb7Co0ylQQSDkgfMXKs/7aInuLg92CELHg8Lcl78ysU2aA==","shasum":"64a52e19c38971e09740caf620db32d3a8aaec5b","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-10.1.5.tgz","fileCount":41,"unpackedSize":684075,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCl7NCRA9TVsSAnZWagAAx7cP/iNxjefn25Gm+xGPbzaS\nWUW/5DmMY0zfbpZVT77xIIGLm/Fg6EkAzraorR2Xu3DNqTKAy3uj6wX9dxEf\nQ572I5C2BWvP4WMkHu1Qp/omBQlR6GF8u6e9dFCz0JUGjcla1UtIR1YulYVr\n+fzYWStHNX1lAoyuenYhL4MimWRk0+IW7mQrah37N11EhWfQSCoDt6c404OC\n0OA0JCSPC/tVaoZaRKunA/WsBHRz9fmjwPb9iToyUQvHKRIMFIGcC3ubUw9E\nAf8euNSEynMbZV7QrCdWVyHQ/9dGuY0IZskKoacjVZCRxjeqjpjcr4GfHGbC\nKKOBvMMkOMgEO7hwEO/fS2tQ/Ozrf2jUeZO/9iFYYVwZdF7rKM0lPO1vYKww\nSWQ/F5nI/haZ6aOUH1VmquARVJFgwNddFXiuCeUTvaPzuFb2atqUGA2hde9j\nTvyPNNM8fs8Rh9Z0BpE0yej9MHCxWy0/ywtfM2qP+v6NdqmmTZmqp7fMDDLv\nK6f1WaFnuNYlc+Vpa7JJrBjqTCXa+OX4mECz7avq1qfSD2zKkxPsGh0tuH3x\n2VoWN3184nTOn6W+7W1wmwypR6WMcBr3At7o0ykoMVmy+lYLXqw/Y5nFE/O0\nhUwbZT4cAcoXLTiV5nOd6tTrEdBZqyGs+512HA6ROPrWDFaQVSLPWVWTehPB\nnJPG\r\n=WEhK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDErMI+sFxpf18krfk2KMlIx8ba5wmcAo9T1mMxEbotsAIhAKpy70BbjKJk3qij+xgj7vRvd3ECcVWTCPEWK7tgWFpA"}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_10.1.5_1594515148977_0.9402764180700516"},"_hasShrinkwrap":false},"10.1.6":{"name":"ng-keyboard-shortcuts","version":"10.1.6","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0 || 10.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"dependencies":{"tslib":"^2.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm2015/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"_id":"ng-keyboard-shortcuts@10.1.6","_nodeVersion":"12.16.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-CUX+nkyx2L8jyR1tLGl7Y/mldn5UgEQ/gmxOVWfuj84E+meClbIHd8EXt5fMKJOET3Wsexpl5J6rZX614VwlJw==","shasum":"56b529b2c82430ed28d9cf58425c6dd534ad9045","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-10.1.6.tgz","fileCount":41,"unpackedSize":686530,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCmOjCRA9TVsSAnZWagAABioP/AnP5ZtxtX+fVGttn/6l\n1VW4HWFlKNaZuuNX4bpMhDfV1qgFVxE2ft9l9wAcpoUXK3UBZwhSLln2Q2Ss\nW3b/w5zCFOWdJecS/23DJia9kXWdNrQ1t+dyFQY1On+Eeqht58nFVnEHcBVB\nffuQlyZ1kqbq8TtZQsxQL/qIHF82hr8bsN8xb4N5aOGBqjGpsKSfqi9MGM2+\nRwUooAutBnbDOML5EbBRMWyqlsJ8/fmQqF6KrL4hALvrCMAF9iCMqK5ndRxS\nFg23gBUSfE4qE6VZEjwqCpoHxj+meTfN88iyBLYSbqiik2Nm2IGe69tOQWVQ\nf3WzMGialkSFlNFeyncwK05y3Hvj+bQ4O+UxLBUFg9dgNyRbLNnqfhC5+jRo\nD2MGxfRQ7wr72Z/Wex6HZ4naOlercbOCozeWnzxQbqraUYW4Q2bkwgfozPcP\nRuT+3hKw/HMaJ3xVeC+pTaZjo2l7nBp0CvoMv4hWqB80bdGgLtEcRqZ9DRJm\n3DMfrBk7SQNA5fLlNyEFa57hAIg8lxoLEE73fmFR0rVsNtmNyYpZNmdudjU3\nCTO++cAauMouCEWgvn3kbu/KaYI8Pu72E4CiThbus191euxWGGnyxAOmCCw2\n6Yhx9rstf1AxOOQj6vdo0L1u/uKzcFH5K5V3iLGfPq3xUk3DGl4mLyUrxhMc\nCvU8\r\n=urcW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE7bkc7dNg7nTao47rk99ftpMy8VrR1fwi988chDP1PWAiEAwzWjJZryKlCsvxkuAA9YYpjV1j72yG7N+rYIg3Bc60A="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_10.1.6_1594516387144_0.2720545700882988"},"_hasShrinkwrap":false},"9.1.7":{"name":"ng-keyboard-shortcuts","version":"9.1.7","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"_id":"ng-keyboard-shortcuts@9.1.7","_nodeVersion":"12.16.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-PFfpocNl0j0H3r23lUjC3Yk76r3RiUvSVg9jpWeRvZbA58bUEBxHw/aKR7n6bgpnLZFF8OT20L3NuotDrLplxg==","shasum":"d182bbac18bdbae0f3a1b5503acf3c04f9ccd32b","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-9.1.7.tgz","fileCount":59,"unpackedSize":1040294,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCmVfCRA9TVsSAnZWagAAobEP/25OwNOpCABk6rEHggJo\ncjgTgyu9x1QZPL1Q4lz/958duyU/xJgH3JSL8wK1XrpLLx3i3f2d784Do1PS\nHP6X0sib/Wge72lImcTSuT38ieRK4v9Hpo1/CujJID/BimydsQbhU+orECdm\nKrZPS+i/GWXNxDXcxL9qMzM6ORMnK0jtfD/O4JzoU7bycymx8tT4VpnnE3RX\n4gzlQnkX6eNTr9EqGeykulfZHM8vL+uiNUPZlrXjlBS/BlZYgRX+Dr8Jb5zl\nbtqWu6Rru4bIf0PUojpLDXozqsDiKoUv/IebgmO5crMXpaRixLZ8B1JiKFvt\nlt6Eshgd3Fl1ZaUC221VfH7qz5HEin5LOEXfBnNwWbqgEqWi/zzVYaC+j8ix\n5vhVo5OGRKCvCzSPzFvZ05syZXureA5Ji0c4fcZrbNweNOpoG8YCFaBncG8Z\nieIGLe1wVEnpcFdgnhz/0ug1cZAF71XW5AkXRCndikdxgEIW2xj7XugdM+rc\nVDSlhCGNckjzz1aSs4PFz00XmxCzQMa+KGxFz4AgH6p6oRFlb6gpsFh0RIVF\nu7XvvA1lQqKYMbXKhG7ySxw99a9c1m7rGs5VR1ilP2HwMB4sRGyyiQ0LdI1g\nOFvLYQaXH2hqm1/CoxHM8hDs+9A41+4jRRxhzVp2DvBK8ZdYJSgvFbU12DlP\nb0iN\r\n=fKsv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFCjEN++872O7svImmCl96N/keav6mL+J1/L9v3cihKgIhAK8ywQ/JGMPNpYF318jQ2r4gnYyyiL9xmRZm/xXV4nvc"}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_9.1.7_1594516830586_0.8037176648188669"},"_hasShrinkwrap":false},"9.1.8":{"name":"ng-keyboard-shortcuts","version":"9.1.8","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcut](#ngKeyboardShortcut)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| keyDescription |  ```string``` | none | Description to show in the menu shortcut list for the toggle shortcut\n| keyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| closeKeyDescription |  ```string``` | none | Description to show in the menu shortcut list for closing the modal shortcut\n| closeKeyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"Help\"></ng-keyboard-shortcut-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcut  \nDirective that can only be used for focusable elements, such as textarea, select, input, etc...  \n  \n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcut |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcut]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","readmeFilename":"README.md","_id":"ng-keyboard-shortcuts@9.1.8","_nodeVersion":"12.16.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-VNxOpXi1PTIv7XNM4iDe99CrejgA60kqtT4dufgI3ayopO1mp8fFOAPbt3maGrF7dnDZPe6vwrMH2OC/tvaJ8A==","shasum":"7284d70f23ba5788b3499374057379c21fdce732","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-9.1.8.tgz","fileCount":59,"unpackedSize":1040294,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCmWuCRA9TVsSAnZWagAAm14QAIUmilBJJIcMlGkkrtPZ\n3Uy5TFU8jgObG+lCu0d6RJKYdeo9IVc0+f0yAQUb3Xi+isZhlgM/UH4VeNwP\n5E6CnWY86ZrdavWZR9+2RVj3tMU+0jJkc6Wq4hcPZV+o82+jm9GaXim6sjcA\nDESFf3rJ3M/++vAvsq77XguSYk+mDhS39a7PrE/wsqdpK6AUIsPKH/WTo/8q\nqQCFzATOZqP52ewKwqo7cda0iAmXzZATDusxD+mhLbgXVXbkqy07FI0wyEgp\nUD4+izSo+ieQYWz6i8/HytICOllNs3J930Q/ZeaU7DwZj5aQna5DfNKAx8Fg\nH2liuEP0oqlk6NdhWq8MVKvajXw3EwlAwPv44NV/MmDYh3o8uI1Syrxmso6G\nXusYFDTZC2iT0idK/tElV/vbAj+Qr4ugYI4KKeWoynkdjuEjq75vXmwdD5rh\n2XK2p122FettonbIOfVKo6kj5vkbhLeevACW4GCXqjlgvJ2Xzu0rVXjHbC35\na0K++P4+Hbhf24Jsoym3C3FO914Tz0wpRtDSDIhGVnb7bkB50he5qA+bO1ui\nlRluTO+ooSz0bO6j1F1UiNkDeESN/PVAphNkMDhbFClrZEeyL8EX87ZRWLCy\n+pzn55zEC3EFA4yPIoZD8UlmumH+tqACRpcd+3mhWQeAlFp+ATDK//2wStUO\nhcYw\r\n=4ZTc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkihkrl1Q4pU5As5TbOMt/1ln0/C8oJ+qT0YEBAko7PQIgCBSL79LmsixI1QCv3iM6pjoF07fP94yL+CfuRE+39pg="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_9.1.8_1594516909696_0.4424803072511849"},"_hasShrinkwrap":false},"7.1.8":{"name":"ng-keyboard-shortcuts","version":"7.1.8","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts/","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcut](#ngKeyboardShortcut)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| keyDescription |  ```string``` | none | Description to show in the menu shortcut list for the toggle shortcut\n| keyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| closeKeyDescription |  ```string``` | none | Description to show in the menu shortcut list for closing the modal shortcut\n| closeKeyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"Help\"></ng-keyboard-shortcut-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcut  \nDirective that can only be used for focusable elements, such as textarea, select, input, etc...  \n  \n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcut |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcut]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","readmeFilename":"README.md","_id":"ng-keyboard-shortcuts@7.1.8","_nodeVersion":"12.16.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-AOX5wxic7EOgqYT7cRoSiX+amHNiugKGUHCm1SZM5PEyY9iuGsZuHQOHhth1dIbH+K13MNfC7a2gb2R/IuVYIw==","shasum":"fc4b69e7ed28d48ef29c46aa090627d6c20b740d","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.1.8.tgz","fileCount":59,"unpackedSize":1040671,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCmefCRA9TVsSAnZWagAA8tsQAIDgHRFtfw5DqU9nuEuE\np/9/2Go3ryegeEl2P1xjsjm2UiHO29mSw4dlY1VKHnaa9v9Gv+gaqjv6C+R7\nQri+gSPV0D1VPZt6kcV79GUSTbXXp2MY3Mq5TzMKcF/lpNCWQMvxqeui66Zj\nIfph80swPg8tT1jD53/0exSvkC+UXd7fjz/Gb3ed9T3JhXyxz/AfG48zuTH1\nupY/Q+4PfyFa6vNFU2WQl5L7HLiJWZsfpJ76suLwFg5QFGGpS96uWuiJf2OS\n3kgjcWGmveMVC8VidZv3oogsAV1pPEJWTy90Es3SurN9mq8A9huUwb1W0rnx\nHQuEgH45tetlA+hAIud3xxHHtt6Y8okf3sRo8j3DCV2KE5y1b7ufI7T6YXEo\ney2iTh65yE6BjxhY74Qp01MBdGIrN4P31/hrD2+AairtFBUtkwUSE8KhBrYB\n5rENSg+qrrAN4PY8SV+pwRe2E2ura5RFhHuTOkVzoGX7KfKhScHnCSsPb7eT\nKaSxtnk2w19TfLEjlrxwVuJcmBwq/kGH/6fVoKUQmSBS78DlAHjZ+mfmqspO\nIYMfXrmMk6UkBYYlu6nmTB4uvmEyqSPhiqpuZRSPY57EvpNdjgfCRoizWV7s\nGv7D2LosvsfdspULR6vvorh5LpqptaSCzxpboBG3trHkBT3jVSzylC3oeSGn\nZGY7\r\n=tOgO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/UF2BQBfZhnaqMC8BrUfNndDoQcZB3KsH1bS/0h2DbgIgMZd2OH3R9oXV2nbEKWcouIFePBOaiP8gjimvvBDOm1o="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.1.8_1594517406728_0.5512257902290587"},"_hasShrinkwrap":false},"10.1.8":{"name":"ng-keyboard-shortcuts","version":"10.1.8","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0 || 10.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"dependencies":{"tslib":"^2.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm2015/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcut](#ngKeyboardShortcut)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| keyDescription |  ```string``` | none | Description to show in the menu shortcut list for the toggle shortcut\n| keyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| closeKeyDescription |  ```string``` | none | Description to show in the menu shortcut list for closing the modal shortcut\n| closeKeyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"Help\"></ng-keyboard-shortcut-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcut  \nDirective that can only be used for focusable elements, such as textarea, select, input, etc...  \n  \n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcut |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcut]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","readmeFilename":"README.md","_id":"ng-keyboard-shortcuts@10.1.8","_nodeVersion":"12.16.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-BTmjFtG9ImWw/nR6vy0NWUKReqpiO5re9BZ7F9MZgq0R7mopD6AH5lwbsvx/XBoXiZwTHKDU396xneQ/d8saQg==","shasum":"199e24635bfb7fc7234f12600f8662f05f80c0ae","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-10.1.8.tgz","fileCount":41,"unpackedSize":686530,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCmozCRA9TVsSAnZWagAAbyIP/0K9RSzOPe7QhmjhAq0Z\nvwR5jxvqgoVyOpRlhm8dZ/SKy1ec8qDONofKPmunI9ZaJykwu1US2aYCJznW\niJ7EHfgNwmQ9YQyJe3o+OzOKpSMmhyRgfXF8gUsP8V52ZbNjSwgUL9350OLf\ntxeeN3n7pBuHjT86sFkd0YrjcUgOcpOE4jN+WiqgacwBOEdxLtfbnQxkh6uF\n51rO99uEnZA7fhz4pJo/qkW24uWhv+y5vXQg42ATheX4AcdPlcX4OWFp83SG\nqN7G/AYNMFrt2J/K6kpDoL9xZSKUmZIdy0kEkJSH8vk7UegT8SomP9uFqlpQ\n8L6sUffknGoXkwlXxnf4DZ5nSMFVUpdtb4+YdVaC+iOyXrfNy5vkSFT2zPgr\nNoO55UKO7QozIeI+hCp8JNE+Pea8RtKseKHMTVZbZZUQabD8Mp0uQkA1PgP2\nxu5NMXkAl+mfXK0DMAM37LpMxLL4VoMYUmrJzjbnMIVF6a2GxuDD23ywkqFI\n8u0SQejveJAlX8lsSxZ9lkLj+en+BLxdxRCVpKF58sxFm4VD9jnhs/4n48uT\ngyDPnHRLjwWbArA7Ou4kNuKXPKFStDiAebal5JHymx05DOgN1gG6msLO/Q5o\n2BfVPMEGA5DQ/2szojRFI5tWsWT4kbWPOwdDVMauCYmb/YOlRtFcgvw+owZl\ndYa9\r\n=uFUv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDywoXLBbWF5pEa1oR21qQ+Hc/aBnWwjnIhj60pYYZrlAIgRz6Ow1GIWbUz+WnM2iCEjMSeW3AehjmfNo1cLXugDg0="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_10.1.8_1594518066929_0.9259549196299666"},"_hasShrinkwrap":false},"10.1.9":{"name":"ng-keyboard-shortcuts","version":"10.1.9","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0 || 10.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"dependencies":{"tslib":"^2.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm2015/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"_id":"ng-keyboard-shortcuts@10.1.9","_nodeVersion":"12.16.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-HHFotr8R0sr+lQavuyYHPBb6xIiCnxsJK8fljNQ/16sJTzt+hvuz1KDdGYf5NgrfJaTYYxzgJQwe5C6TQVnZaw==","shasum":"79015343a390381c865e0cec780fd503890953b4","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-10.1.9.tgz","fileCount":41,"unpackedSize":686530,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCmtkCRA9TVsSAnZWagAAv/kP/0RuKjr0w2Lpp1yctKZm\nL1vtJxVsDaHmeJYjHiuSM8+vn6CL5U3P4a4Snr/FepkDxYEwPg3GJW2mytqy\ndvHk0OVSGMPhaGJK3smvmqaVCuvCuqHBPJTyHF4f+VazCJRgCbaQSsWhi1Op\neKeUtnkUl10H5TfCA4t9k4Ednk349gr3RL9I6DU6jGIVlPVN6jANPCkrQBIz\nKB0ZjvxJ6Vzd3FUzccFgsmvhmbsjxytdfzaFZHMa1Iu+nj9jB7JU2V7LEcBe\nyppsBxw5xd2X6w6LSmPDs3iyJwRL9bUOsRCgPV/U+YsaFGVaTYhUBoPvjulJ\neBNSzv3f5LnR6bxA7sBuDexfb/gs1I6GbtlteFu1LgpCeou53HqYRfkQocTO\nszwuFTKe463zs44nphoUEgwrmOX4dFIp+qOY3T0o9SdsB0WeD0choS7DmyQR\nlN/eN/K6U0bNUGEpox8mGfgH5mNHIL47mK6/Zb1EjSNGg8mahbpi/BxtARHP\nygA1B+D/m+DiNSbuLTkaqethiC5uonDrPWPqZdTmgVihz9v1GbvNkrN1oD0n\nuoC728Fha2Vd3ksEo4ENt/UxHACZUiNghfGy8Z2tBbMOavjNolm+Kr+o751k\nvn2Go5PeMi1Io+P6cJfmM54JPBsve0VhULi0UOfGP3NuoDOGULAOuDH61uuT\nYnzF\r\n=QiHh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC57AUt7G3SZ2lti++aJar2nh2APS8MJbeiYw/uO0ihsAiAHmrdpqnoTIHwrUtN/YeXHl/aUZbAUWo7JwBcdu8yHrA=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_10.1.9_1594518372290_0.46629977027358605"},"_hasShrinkwrap":false},"7.1.9":{"name":"ng-keyboard-shortcuts","version":"7.1.9","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts/","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"ng-keyboard-shortcuts@7.1.9","_nodeVersion":"12.16.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-I003cOejRziaP2yAZq/QxoCqVzl9m9wglKda7iSrnEYQJV1MsOVQufE9vNDoTGrmrv0wh5nuAs+2H3EzUmLUGg==","shasum":"259799300b3703910787affb3feaa311c9e31203","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.1.9.tgz","fileCount":59,"unpackedSize":1040671,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCm1wCRA9TVsSAnZWagAAthcP/03oWYXq9YFRlqYRH28L\n6Jey0nrU5ReJmwuXhv0tT9le1fBPJYrZl0fS4WS5bCfw6NjdoM+vZH4MtmK+\nIyKNYp3l4EAWdMlOvtMmpf80/RxiNpshTJ1TCv96sH3QFBxxX0pkWuTn80cI\nWHRDf8HxGajDAcdUI/S8+47T5uSvR8MmcfApc9rKRsUNmJobNDr00Q1dy3Rf\nlQzqix/NzeyUbQez8+OhZFF9jyuQ/Rms3PrHrRX4NMKxyi7sLt5VlRz1iXd2\nYANGK206KHWbqiTo8Db+ZPThtGcjSu7FzgsmMaeq6IJk+cssYV9Rh14+HraQ\nOkVYjcHOXY/k7ueRttDIfTYV5tjWqfeASDq8S/YIYeehXxDT7F/lOAYiPFFt\ngD/kSdpFfmasDuzEgW9XVRHR3OsQxZLJNOrnc8Xpgri42Rq+t8t/Z8nMdJiX\nMJpzcraCQvE3p60rifq96/g3GREkU/zWLFNETvaUxdzY3JzS3NgSUu/9UcFj\n7ptcqSLCQEL2tEcQyRh4g7yPmLR6Vzpqr+OZjjiYbD5yPzPe+8Aw+6BUvgMy\nEhss1+DURgp0bl6m7767xxQpsab+CfwGKXi+9ikgJkPsgnbUVlySHWpuNCSV\nhaNA7QXdQVHSQ9E0ef0d3+78NiLo05xaKgrwuEDVkVKShgh+NaVmAVGQ0RKY\nFVVi\r\n=P2wQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChEGEqSqErxa8up8oCBDqJi9FzxiOCC6rmslrffHlojQIgNqao1tbwqdzs5+MrgPNyXKDbW5QRwH1s19J8jrwvTZ8="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.1.9_1594518896168_0.7316288842911556"},"_hasShrinkwrap":false},"7.1.10":{"name":"ng-keyboard-shortcuts","version":"7.1.10","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts/","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcut](#ngKeyboardShortcut)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| keyDescription |  ```string``` | none | Description to show in the menu shortcut list for the toggle shortcut\n| keyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| closeKeyDescription |  ```string``` | none | Description to show in the menu shortcut list for closing the modal shortcut\n| closeKeyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"Help\"></ng-keyboard-shortcut-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcut  \nDirective that can only be used for focusable elements, such as textarea, select, input, etc...  \n  \n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcut |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcut]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","readmeFilename":"README.md","_id":"ng-keyboard-shortcuts@7.1.10","_nodeVersion":"12.16.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-5AR79Mo26t60wKNXyuXA6FUaKwWesN3TpKhoLTQQ5h3MfP16XLSdUYd/K9R68t29ivUkLQh49hmfH8VAw3g4Hw==","shasum":"469bf7e564bc20af95402059a33506d607574f1a","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.1.10.tgz","fileCount":59,"unpackedSize":1040672,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCm5TCRA9TVsSAnZWagAAoNoP/2lNI9eJ9Yhp6r0AAvi2\n74UHrZOj7I9QbC1D3PlL1JEkQYHXn2ssxyFuuIJMXc12m7sTcOpyEdJcYn3D\nccEZ0siv0fPQZ+fAA66iQp5iJtMflFJRESEY+r2uSSdiZFdgZ6R9Rawcj1Xr\ne57sXxHoaFQd018LZHHt8co3//Kx64YKYXye55eODG8T4NNpaZZ0wAb2Ig7x\nkeWRF13bSLbxEK9QvCSDIA5CirlolXwjMSW/e4FI38Uf/NOiYyyeK6l7VyYr\nk9faAyc1avvdowKbWKF7gdhGw5timSY0LpOGISF6IbxU4/QGBg+WytA874oz\nsrX5RxEqdSM5zWmAB3VL7DgeU8NGi0L85UVGodtnTKpxJsNFCgSIEg7faqJw\nR1uuINxJjMzkR8OqcfziNjqyyYOCGNbjJcxIsYhA0q8YqaCjQuJL9ZE/2Axc\nS2xUUE9uQpzmPI8FotSWE//TztmzaZGKV3bh3qkJ/mxSEGzdQobsBv/+ziSk\nFTkfg3U95XykDWF3uIjdCln56P0EUdzCam59daLj490ngxywvbYS53frn6nt\nbn7QVodZQNeN6pAbuF6+17eCIvOJ4FYZBqqUJG6Lic/GSrbeC2oFhJdZtoVm\nCWfJqK/8iah3pTEg45oWVclAv0TI0TbqLb3od+0LVnbNe2CGMtSbrGVdbAT6\nEDFt\r\n=uSxL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF61CqIT1zDbYQn8lj3O4WXbLIHkH/YlrIebkJ3g+XcfAiBu/gPFUselE2bqsC9WWkP9q0p3AtS+6zBhbimo/IwGsw=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.1.10_1594519123331_0.5501293490916943"},"_hasShrinkwrap":false},"9.1.10":{"name":"ng-keyboard-shortcuts","version":"9.1.10","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcut](#ngKeyboardShortcut)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| keyDescription |  ```string``` | none | Description to show in the menu shortcut list for the toggle shortcut\n| keyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| closeKeyDescription |  ```string``` | none | Description to show in the menu shortcut list for closing the modal shortcut\n| closeKeyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"Help\"></ng-keyboard-shortcut-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcut  \nDirective that can only be used for focusable elements, such as textarea, select, input, etc...  \n  \n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcut |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcut]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","readmeFilename":"README.md","_id":"ng-keyboard-shortcuts@9.1.10","_nodeVersion":"12.16.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-CbebBa8MA3qp6nuYaNazPSugA0iFlKxiumNixTO5YlVq0aYJ3r9E8GkW9OoHv4YmRpFZfyTYi5aXb6vqwKCNsA==","shasum":"3fa81ef9b4869e02377ba7e2761e3dc8f0a0dab8","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-9.1.10.tgz","fileCount":59,"unpackedSize":1040295,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCm9/CRA9TVsSAnZWagAA8lIQAJ4gTZ2qybeFWEWzbN37\nIZy/wAORuM4qp0JNRrFIEznoyqgiGSeUtwBNajKVZKiFpqkQIIBSVg6fjrNo\nngyxPCWmonW/zjG5khpnZ+oAHED/IHGOM4EnazJY0vv8WRr3zldLuI/ieI3G\n0E2WaGLHuhDiAZg21HIzy1j9G7ZmXfINgmoiOjHn+AVY8DQOzKP1BjqMV+WY\nBA+afQXf5D6gzCpvTCw3lZVZcCTM1RfVRU37c4jnEoNIFPttogLc9TVDoTRA\nXUl+X9/+nO0cbeq3ZATQeOlSQederK2Lp0zHgN8hM0czxgVW0H7wV4PDajlU\nluOmTHXTyr0Q8d3snPC24k2/BmkN0k89Gc5y3D4W5mTXgW3gGASPLq5KDSyK\nLGXc+XYAYydk/wcsC9nd3bldsmUBbqWJTqfo51N0oMPSIKzJc06SWCQ6+BzD\nH9aKiBf0VVq5nPYZNtjfl7L4UNnAmI5cvfQZO6+IoEbPYmOmRQg8uw3Mcg+j\n3A2B0WC6WLbiV5woifCZAwgv9AkV/Q3ENsD+b2dvs6YOwXi3WqOjMNw74yV6\ntNPw2nVKYKlcEc2RbQmNaVyy0a+S8AyEzfgrhDtN+FafDN2cq1VLUy68f8oi\nfb3GoolbC6eahWPkb7acoXUI3NL5P2E93KeiykSJOYmvbP/mc8bzbXGh6h7W\nI3zd\r\n=eQfV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDY2Y+ZVmOQQPLc0+VOG7G9hb9ltVGHXduaGIGFRkR/cgIgd2F6ToIFmWnoM04WZzjhmDAz3Y9zp0Law5VYtQO1ivY="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_9.1.10_1594519423056_0.8270548739463752"},"_hasShrinkwrap":false},"10.1.10":{"name":"ng-keyboard-shortcuts","version":"10.1.10","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0 || 10.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"dependencies":{"tslib":"^2.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm2015/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"_id":"ng-keyboard-shortcuts@10.1.10","_nodeVersion":"12.16.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-fblDT2Vgh/KjIarYU/Yh55d4RBy7sRxyRFQzJBm3ZCGXQl0Rm5QirsFoM6snwXJhD7pSZSbxUTKAbDHwag6xAQ==","shasum":"ec30443ab0b5a13592535f48611b73d40bbbe73b","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-10.1.10.tgz","fileCount":41,"unpackedSize":686531,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCnAXCRA9TVsSAnZWagAAYRoP+wduUTXQsbfuBjQ+d2LC\nRhqQjXIofQIDz8GDsxukP+yDmBqFx1aRQlC8H1A+e1pIscpMnyIm/2UOjVaR\noiSX6rH8Y4+GEdTQ6VTvhfOVaq+BREIJgAK1McK3gMYhoF7iS6SvH2SsGnqT\ny3DiDkEbw++C30oTtGJ970ZJzrd7B+S40k2Bz+gFLxKDw5cADn+BFi41wUcn\nLKlu0lvPY+++w8vyI3ZNG5OqJXyqCfF8Z2t/ZhYjpctgbQzyj19flByZzkvO\nB9+3SWTr8SYAhHXDe+zAyRA3Ri9Xz8j/r5f4B+LEpaGdnDNISkgQq0Mdn7oi\nDwYKal8n7kQY8v9+FTs40o3fUYV4zE6B6NsyZ0nRDO1cceW4oQyXGWKJpvfL\nL+JwSPUVuqMAjn8bl1SzCYTXV1b9KUSn2WsuAx4LJXODFsTiE3Nv7IiY1k6E\nCV6O2kjT9Q6EiCIGmeP4vXNE0rH0lbMK6/qX8ofav2XVKZ3W+ZGaYeXlPGQz\nDaicWKzM0qfVNc79APnp0NCwxBeI5Ecl54D0h6sX3A/RwrOkPK3yzxD8TuMK\nouoSFrYXZNhei0qWfZqA4zwP2pIviSdsg282kj8gtng0C9NnY4bBzm3vJZip\nsiWjz3U8/aQHApgkwg5Mp16MP3FaZOGMh53jMAiU8rZ/N8D++pPVEZg28QrR\n5T83\r\n=oIzB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkoQZeCxOCdWpcxkIZlw5OtuMKknqNxvL17GM16TIP1wIgafns7cyWNdqjNUOiHDzt8LKeekJX8vwyO4R5VcQYWfY="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_10.1.10_1594519575241_0.17919920482138685"},"_hasShrinkwrap":false},"7.1.11":{"name":"ng-keyboard-shortcuts","version":"7.1.11","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts/","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0","@angular/common":"^7.0.0 || ^8.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcuts](#ngKeyboardShortcuts)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| keyDescription |  ```string``` | none | Description to show in the menu shortcut list for the toggle shortcut\n| keyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| closeKeyDescription |  ```string``` | none | Description to show in the menu shortcut list for closing the modal shortcut\n| closeKeyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"Help\"></ng-keyboard-shortcut-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcuts \nDirective that can only be used for focusable elements, such as textarea, select, input, etc...  \n  \n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcuts |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcuts]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","readmeFilename":"README.md","_id":"ng-keyboard-shortcuts@7.1.11","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"integrity":"sha512-8cmj3jCCFj0k3kRmKZCa+FqX6hFg7Aue/Re9LK2CF0bSbzFBc5W6SE7EmlseKkmz5bre4xybuWvO6X3nL0gTmA==","shasum":"ef3c0c1a2baeb58288760fd2f0f0e495a21153df","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.1.11.tgz","fileCount":59,"unpackedSize":1040656,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfF4MPCRA9TVsSAnZWagAA9QEP/17cEDId2CK4LPOZLzxR\nMgdZlKw61BobIWNvoq9YmRZdajVvk3QjfYsTrZm7RCC5N5/7nrmXKS1Gi/oE\nRy5yn24Wf2VMJuT9x9DIs94MIseYD2y2DbPmKgC4dg95/hssqdEfz0kP8WHz\n9B2hpe4Etp8vXe+xSbbSaeS8wvXVzAtMtfhUj5/e6ztjalunN8bwI8ynF3N9\njrNmGGliInuZZ5H1C94ibHmsmPoxcOQRep5OFP0ZFjpUysZqowNDdnoZHjM3\nrk6MOq7NDig1vvvUhpK062FxlGtJeBoCCXM7/Gr5qbTVsHaARJz84R9glMZ5\nA7dKWZbYQPXRVUnmAzBlegAMWOBmBCcvd2/2qYzpAB5JJG3hiqvTHVqBjtxR\n/+TXQt2XnZeJJIB5yJcJR4y5BEGxtBvVJKvkSdB+d+4Ufl1H5jnhHyWjAXte\nrW8tvhxCEokAmnS5Wb0V499toFDhltbbLt4Ii6/YRcRs1LmCGieXU6Etej2j\nHbU9N2oZ9/N3fQalqm9uKIDsIkRsxbx15Bp33Btpi2aM9snwgxpokgCmljhs\nAJeK1JLdm2jFsiKNEQH7ah+ITci/Sduz23qyxi65PvuwdXIRXSTTMAiHTpUc\nPaL1Mucwi6ILPfN16a0+7UOYWRstuGQjsHbnRADPtKnpIoT1rDegbzMUDKv9\nRBcd\r\n=QoEa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDWXZIxMQP0bX8D1WPddbJjscLbh7kWbkOKQ+Lz2uukmAiBetQnMuFvtfLcKjvGF2HPXr+DvtqknlhypmOysyoJoRw=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.1.11_1595376398396_0.39498807018028903"},"_hasShrinkwrap":false},"10.1.11":{"name":"ng-keyboard-shortcuts","version":"10.1.11","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0 || 10.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"dependencies":{"tslib":"^2.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm2015/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"_id":"ng-keyboard-shortcuts@10.1.11","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"integrity":"sha512-V2S06QGTj0159R7R+dyVmf13ta2C650vvhsid5zKm6Rv0umkT7GwvaETvE6k4tKeGsWwSviunhkV6UAw1ICFcg==","shasum":"8b7e3a651382dc946ca867473b806470815f698c","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-10.1.11.tgz","fileCount":41,"unpackedSize":686843,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfF4OxCRA9TVsSAnZWagAAEP0P/1TLDt8JLmLzR3skEUw3\n6CdjQNxGDiaIeMI64Zhjp2t0CjTgj3SoSvCFQF/JIkhVyL8kZMo1U9Q30yfI\nC1AB/C0p2HTCJzakyLmwXvgyiPOsk6P+G301AXIeLM15yxUVqn/E/Fe5Tf7e\nxAddifxiXstnb0QdNTiYMcfR+k7TeUZNkLSYfRGn9PBydS+kTOzcDIGhoaw/\nn0Z7OFOi128LXFNP1SFsn98KCQnljWZVlwUCfs1WzNrWiIfdfb1/WJvk6+h0\nAkX0EYdLVFAlSyVtxq82vCy5U8RlDxudCn6ZCRvrg/SVGI5pNjn+WCxdpuCa\n1REhnXbWVY4J/lAdE98K45yFkeDd9pX/HUMdUzVltsFr8ThuSYoXZ0V1/sEu\nNfNE8i3EbWBeXgzuznUJOKvzGlW8fN3Vv/Lg9y3dXnX/7eblJh+GOzfGvtLX\n/QUfnRg+SnUAc9MZOraAuCOGPGZkjOlflT3FWvW2cXG9Im6IRoi9I5NoXDoV\n26cLX5105StbI4lrW2HeSRS+lmX08qW+3dJ4E7Hn0V/fUODDZmbdalf5aCrW\nb3Af3jJyjY2YIf2zkHDJoo8zpJePOgaWZ7eeBFwDzjhw49KhrmrFgFOOnnpO\nsM07ixxl/AS8j94lOL625aIZ8czPBnhncqYfUU/E7CNo8z90S8lZ3UOn1/rP\nC5GE\r\n=FcO8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEEijCEqM5TfyW2XifzohREeaYjfXlsxX1oRG1xJg8anAiEAvreaK2PRT2uYBaALGhbfgQ37WaJTYjQWUrLQ2bc+Ulc="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_10.1.11_1595376561355_0.3457636061584024"},"_hasShrinkwrap":false},"9.1.11":{"name":"ng-keyboard-shortcuts","version":"9.1.11","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcuts](#ngKeyboardShortcuts)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| keyDescription |  ```string``` | none | Description to show in the menu shortcut list for the toggle shortcut\n| keyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| closeKeyDescription |  ```string``` | none | Description to show in the menu shortcut list for closing the modal shortcut\n| closeKeyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"Help\"></ng-keyboard-shortcut-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcuts \nDirective that can only be used for focusable elements, such as textarea, select, input, etc...  \n  \n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcuts |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcuts]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","readmeFilename":"README.md","_id":"ng-keyboard-shortcuts@9.1.11","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"integrity":"sha512-JovxigBXPt3pEQGwi3E73p5CkeBz0EGgabBg7AIFNd/8hdU7K9kGdBSozfw3m/yOFVUcbnllF/ZjI6I/n3DyDQ==","shasum":"95cd14db59f53415bb6a1cb2aeeed46e8fce9dc8","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-9.1.11.tgz","fileCount":59,"unpackedSize":1040299,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfF4UHCRA9TVsSAnZWagAAqqAP/26+Qkz5nL6isDcGNHJK\nFtgnrjMO2QfQ+3cw6yuFglIiBvohUZAX8t2L2hfOLKGO1ma0ktG8xhGSJ+q9\nxyBdyAL520Pe2gJ8Wt6/jvmBYUjCUfjQdKxRx2yxGq58zEQpLosD4c557aQP\nEafqy+vRht29Lm03D4NZtjX+DUYo/6Q31ut90tvxr4kjU6inhSjgSIZEotMa\nCJp+gS5pCbQrCDuibLWwfyLJaz7DhjjKU8K/KO/1Ort725Ghd/Rs0fIpfBAg\n9kHl6OGdgIu0YkswFzjW7sAE77quM2At8wFV9wus2uqOE/NgCyZVahNvJcBU\nmGPqCrwm+HsaGl5cj4fpJEvvfzfN86BrKTTHvA2LCtlQn5W8WL0x/KbshMOX\n/RFgI2g6YaETngEl2Qrh4sE28oZOZP7ha8o4KjKBESzGn7vGSmjwkSPN+iQL\n5qDQJx//L7bEEcTzcOK0Dejw3LBq7jnDm8SUpXS3ShhOHRCpSsky5UTWj0dv\nncCw8ITpMZ3DOXJHtkWQWmq4vRL97IKS2nXkBT12fdD+7But89m2Xv3u7VHy\nL7lYrZWmIwlXmG0PiXNt/kTwrBmxiYN57kXnRAUn3B5zCMHtR9G31CZU+lvQ\nTsoWZ6J13woJuWSUO2IXHqEJM9xvkhjfTgGvdJP1BXhMLOrA778fJqFadB4a\nSQtQ\r\n=4XxY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAGNEpv+/+wbBKpJA2rVHeUz/STCsF8J9SCxMftX4bM3AiEAuRQrpgoHS/4fFFkdtdi+B4HOcf2eJx0hYg9yC2MScvk="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_9.1.11_1595376903120_0.9116811918076486"},"_hasShrinkwrap":false},"9.1.12":{"name":"ng-keyboard-shortcuts","version":"9.1.12","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcuts](#ngKeyboardShortcuts)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| keyDescription |  ```string``` | none | Description to show in the menu shortcut list for the toggle shortcut\n| keyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| closeKeyDescription |  ```string``` | none | Description to show in the menu shortcut list for closing the modal shortcut\n| closeKeyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"'Help'\"></ng-keyboard-shortcut-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcuts \nDirective can only be used for focusable elements, such as textarea, select, input, etc...  \n##### Important: \nThe shortcut then will only be active while the element is in __focus__.\n  \n\n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcuts |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcuts]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","readmeFilename":"README.md","_id":"ng-keyboard-shortcuts@9.1.12","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"integrity":"sha512-ozbcdaGUQ1d6rakn7YD5ETp+BkvGpux8datRJhfIK3PgoYhyrT3Vm8JBAMtphFEq11T3PolPshqI1hy8Of2fxQ==","shasum":"f6d5d65205e7eac554205f2f591840d443bf67de","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-9.1.12.tgz","fileCount":59,"unpackedSize":1046805,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLd0zCRA9TVsSAnZWagAA6vUP/RQDTjS3oBBVd9vFKl/l\nxT8N6QdiLxhjQdnRIAy8TtSiwvBzjjH9XaRKt7ljj6tACzFhRmnONuX8FG5o\nqU+OYxY39wM7aAjnBPH7wFlNDm1hTlrnPRTull1GKEtKvFBGR3K/WbAbRN6M\n48CApoun4HNp0zea8wfBRgwjwPjkszf0FkMo/uc2nGlUkSL+liygTpr3IXyG\nnxxa8/VTww91irj5KcbfYWis2SyYDGMdAO28322fdq1n34popBoHhiUayZfr\nNuc/9JsYs52U/1O94wgXsS9yxZoee15Rc2rpyB0UMAnC7q0G8lHSL1g3mo09\nuPS63v6BtMUL461l3pqj2dCMjOIOx9qCbeEaP+83jM3WC+A/JjmrcyQMQor+\n+FbMkLFci0F3xrVqn5Ny+kBKB3QCH/dpKxFaZO1QWopGgK76Vqj7QyF7JlkX\n3K/5prDqJGrD5qbyWeb0LyJOT9szCC61zDUhaanqi9bI5WcC3yiqYtVTuWK5\njcMw5W92walgvKQgAjci6WjMs++RiiRxTaLBN3FhfmtVSkCC4LvQi3mJXjaW\n34pa1Uhvkjwwtjhi7PFDOrXeg1s8jHNAx8pn1UvLZnL+mpflFI+q/R0b3V70\nse5v4c01YyruG+RWCwZoKCjNbTDyr4OKz1CbtTa53oZB7b5z9t83sBuTvf7r\nOHmw\r\n=o0t7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIExSqsjBrj74cGlDGaRQF4PKFW2JMAwONr6UtYguFeX8AiBGLEhGgdct69Q1kwAkMwy+4GnSLuNVWWeMRjZwld5SGw=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_9.1.12_1596841266491_0.1325792113886599"},"_hasShrinkwrap":false},"10.1.12":{"name":"ng-keyboard-shortcuts","version":"10.1.12","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0 || 10.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"dependencies":{"tslib":"^2.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm2015/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"_id":"ng-keyboard-shortcuts@10.1.12","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"integrity":"sha512-lu7+pvxXJJB8vQ6dESgvOdWjgnnKGJrj9sYRsPtwkKxgfpGdJSNOTprDOrcZGr2ropvFIenf8oDw9uD8AjGxwA==","shasum":"db41408649308ee2eb03910dbfb432cbd7fb877a","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-10.1.12.tgz","fileCount":41,"unpackedSize":691342,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLeBUCRA9TVsSAnZWagAAU+gQAJAPpOg5bkj4ZnnMF7W0\nbz20xkNo7/io+8AgZWUhLdeqifi5d+PjgafORleJY11MSBhA1u3K/xPCqHBM\nOjQiOQPetIv4S8uF7MOfl9h6/2nPKP80Qowm3r8r70KT8sN9VnoWKgMmY5E2\n2cTmH7gGl4REYjpO81Og8FOFZEyhoUBmAJTn/wFKgjq0hAQRLo4GfGgmefha\n581GX3+KAH3LdSRVngnjpw8tc0Ux9gNX38uI2Dq5aRTcr9xqJiRfnQtHmiOH\nmOdrxUI3dRexhgzkabetMkyvRiyGTgeL73HTfwW37o65ZUhhLn0/KD0qH4Ig\nVCVg7+14qtM4gDFoUMdZMviA0eTpDBOn7p/UN66UHqKYPOau1B9ypliH+j6k\n3yg6E6JMZ9kmFM5IcIrFInoJ3pusZxeZ8RnBm2ANspIbNZszoT0mh3VTd3nA\nV7DjZyNhtvj6tXCPpWf5FTHriaUpZndz2eJdCP5zab7r38c1ic08nHZkFAfq\n/45ZwvjF6jHx01Bo9o7k7MuqYhC1+snWrypjkg+Y78dPM++6eYe9Cf9sdBbX\nA5r9jNx4JWuP4UCDCQZ1ur/YG4ozhBxa9O0FjnhwEAGVzIaGCQQDc427IPKc\nij5Q1TJlhN5XmbpF2n8mL0ihujSkTXuQm0DSmfxF8eEbhWZIijR4iTCpYLJa\n5vT0\r\n=kcfs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDe7VAt/QHK+wN9nV4lVj9+WZmuJZQjfCVAJyjXp4Z9mAIhAKB0ZaIZ2P5yQ3uzJUZ14/ZgOCbXCKVdsc2GQdUcQsoH"}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_10.1.12_1596842067872_0.27910430900095196"},"_hasShrinkwrap":false},"7.1.12":{"name":"ng-keyboard-shortcuts","version":"7.1.12","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts/","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0","@angular/common":"^7.0.0 || ^8.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcuts](#ngKeyboardShortcuts)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| keyDescription |  ```string``` | none | Description to show in the menu shortcut list for the toggle shortcut\n| keyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| closeKeyDescription |  ```string``` | none | Description to show in the menu shortcut list for closing the modal shortcut\n| closeKeyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"'Help'\"></ng-keyboard-shortcut-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcuts \nDirective can only be used for focusable elements, such as textarea, select, input, etc...  \n##### Important: \nThe shortcut then will only be active while the element is in __focus__.\n  \n\n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcuts |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcuts]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","readmeFilename":"README.md","_id":"ng-keyboard-shortcuts@7.1.12","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"integrity":"sha512-UFcLtS3Jo6AlTtYriDvF3Wae7NNE2Les7aL1JVJJskF8G1I1ubzfTSXnLlAWny6Aqs8eDDb5v8xmDLeORVwazA==","shasum":"78c39190fe48a120a74e5030815d8be3e2f6b208","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.1.12.tgz","fileCount":59,"unpackedSize":1048876,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLeJdCRA9TVsSAnZWagAARYwP/0+JNDkDlHNRXSIVMjoM\nZoseeE8HjcAFCDcxFolW2uqF5+j0tDlOWIVkBMNGcSptBkIWBtOIv/DxrI5R\ngCQ3NleSpf0r3pPwhnz9dpbez/0Clih/W1A7zDc3Rv/8AW4UORnybuYphHIV\nz/MyWf0qeqvvMj6Xg3tI1FknN4t/0hK2HS8uBlt7YyBIkZN+hV+KjsBU/dzu\nuKwuGztCJju1l51U0/UWyM3etM9yNROo0Aw5z6xzC1ji2gRe8asH83UlYchy\npGJ/hmGARwvT4SyuznLanUJDbeyuYzpCvPQLqyBlYwbscfa+CFTMhMU/Z6CY\n5t31IJyVuaDZWGKGHY9f54Jby5MoWIHYKZ9/ivUMIoVg5NoZ3VPPSP/+4RIn\nKswRSsnZnHG5HGvkYtbT3skqCNbkbrHIVyqQHmDNCAx7SFCfc6Da6+zVKRd3\nvmH1klgcL2cuXPLD2Nqpnh2KcKLKURNbyOtKkr+UHTtQuqU83wOVsnc7wnAi\n7aTP90WxycaWGILhgPvOFd+lTjcA63I4hvinW02qQKzbG7QrVpMzwA9m2Oc2\nRStDF4c4GmqiOys5RkP74bsJHiUphZWOL3Vl6sCJUliBDzoa7UkIF0u6zyHd\nIPvi/hN4JD88Rq1MKZZtcKnw6Hq6eR8tILgmlS23o4rosn4I9HKGQSFeUOXF\nJr8Z\r\n=xEU8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDbF0k2Mwd7G4DwIdWggnuJEq9LfM1ue0l//RlteJlYNAiBukTA+QjnrYTTXc6B+2zhgPpk/KAadycFAuxiwKAwY/g=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.1.12_1596842589141_0.9753519040019922"},"_hasShrinkwrap":false},"10.1.13":{"name":"ng-keyboard-shortcuts","version":"10.1.13","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0 || 10.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"dependencies":{"tslib":"^2.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm2015/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"_id":"ng-keyboard-shortcuts@10.1.13","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"integrity":"sha512-k1AUSiI/TAJGaEleNpz8TX1ysKMXXfo5L5Z4sOhTgjugot/kYjk/3bMAkiv7d6vh4JK1VXTtXyvnIzPw4Vmq6g==","shasum":"4b8998d9208102d8954c6c6ceb1d6c501dafe628","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-10.1.13.tgz","fileCount":41,"unpackedSize":694606,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMdBPCRA9TVsSAnZWagAAPYwP/j24zzEVaD6AkfzFbErv\naQG1dP0D5SLouAlES667MJMG1hW8STh0C4w3UMeLEDSgTRnJEJPGFUCir+3I\nVNI9oha2fp0Sl8qeSlWlDi8/HLvSnJPsz0jn/ZRYvHNRBYWJNfb/B7KLXeRR\n7l1GqyirQoVqYTnAbdqqVnfU/b2FTqcmQQE5TpJF9sc34I3AlTWfLCnAUfV9\nhSUcBWvx+F/mCsQmwrVFsy5/m9WDsEiAklgQhoSz62uqlI2nwH7Gk0ZTwYrl\nuiOmaQCB8Wg8Nlvm1ormxzzPrGFfpz6ORo0ExbY3WnowpufR4UmKlygiy5tJ\nbHvR8Mhm7gXyKevRPO67nPVO0I66PnjqoaETHbKLq9GwyOe3R1ayIbCIEI/4\nE9cO2NdGZUxPFlB7ueHRXH07Y7nxRWpbJOKGDn1Aq5ps68fj6KoHzKkFOyY3\nOQ8wnTyerLIa56tdyKR398P8HjviEGlccVrc9DhUAEkuirZtpeBbO/HxUAHo\nppIgiLmFEwTv0iUf3Lop1wj1EppoOagnkUEjUhs9LEl0yQeU18yNB00hYKHj\nzneuc2ynIczUV2lhWX56QR+FnG/2uE7Gd7ZT3qexEYmZQVb7IsD8ns03VBTS\ngcb/LplAoqRWgBIV9u13if9UM6IjbCNXdbmRsKZF/VGCPFyuBylrceO3BROS\nVfkc\r\n=2pRx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVzUwjEKPkBG8AV6zMK3U1A5Tpy6Z7iQqUeIjOBL+RqgIhAOdHra6zka2QmO5WujNMyaS835N4ffmj7hTxfgRBYsMp"}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_10.1.13_1597100111225_0.8558619441587842"},"_hasShrinkwrap":false},"7.1.13":{"name":"ng-keyboard-shortcuts","version":"7.1.13","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts/","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0","@angular/common":"^7.0.0 || ^8.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcuts](#ngKeyboardShortcuts)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| keyDescription |  ```string``` | none | Description to show in the menu shortcut list for the toggle shortcut\n| keyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| closeKeyDescription |  ```string``` | none | Description to show in the menu shortcut list for closing the modal shortcut\n| closeKeyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"'Help'\"></ng-keyboard-shortcut-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcuts \nDirective can only be used for focusable elements, such as textarea, select, input, etc...  \n##### Important: \nThe shortcut then will only be active while the element is in __focus__.\n  \n\n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcuts |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcuts]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","readmeFilename":"README.md","_id":"ng-keyboard-shortcuts@7.1.13","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"integrity":"sha512-j9ixD1CKq4vmWmB2KkQkFwnbg6PDrM5dh+JJn21b/RiR6fZNdl92Tz4LqgGvSUzyL2T9iAAjgCi3ZIn+RHpU9g==","shasum":"310a4d052cb26a05184679f882fc28108d4cfec8","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.1.13.tgz","fileCount":59,"unpackedSize":1054035,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMdHDCRA9TVsSAnZWagAA5FYP/2fjZYaJLOJKN6uI8xsm\ncn1Y+4Cp+hfag5V8yaXNtwqw1uZZPGeDZOafP2L81z2CJT9WHEhmZ202adKt\nXusK8kNqCx+/dGkMpLe7BG32Rl6BJI0h5d1iGj/DIQvruxpm2jAh1GMDEtMr\n0lFHaFqT9+xjv71xy31BrBLLw7Aw7XExlDZz7o4RmdXtZnpk9oxqaGhJlwgf\nYvZVKEt7RafozW2cted9/g+lMpzmM66V9ZvgcPnNdEFuQKGkFlgGVQLRaKWL\nryNsmAFHgGanweQK33UrzeZjXiCQXkw35vMXJKBtiQ6QQvunXcwThgR2goMG\n42XeiBXmoeZ9FmJ0bAW23mExV65B7D8tz5PpPVcbwvZ2kQUzyjFiyCWY4oyA\ncZQbVF4RhRjMQioyoDIqWrkYbF9tbHTLaUzsUtPW0lgX5SMpue1pPdrao5G6\nX7a5qxKhctOHcwg8YZcwx+uNMS5Ew8u3rv/3z/lq/GCpJCpaq26knVbJikQa\nPpeS68BNFEXp4qtzUX2ExgqgA3ScKzxNWFdvk2d7WvZrXyvy2xEnkY5IdFM2\npUpwrc+z3ll24WL1g/3RAgN1jRYn9kZP0Uanovg5qEgIY7YV4+eiL+QxHmI0\nOT4QkyTaqGBqNLh9OHnhMtWgGgwqrDBW5PSfvyRGSYyV9gVb+AQcUz6QCVrH\nwqw6\r\n=k38k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWkDcctxApsWQmEv7wiRMN4kH8EL5YQ+C0QUE39O0dUAIgYSqh1igyp+6ELz+BpriqS73KT+Xi7asyPersOBPJkx8="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.1.13_1597100482565_0.26021992135539285"},"_hasShrinkwrap":false},"9.1.13":{"name":"ng-keyboard-shortcuts","version":"9.1.13","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcuts](#ngKeyboardShortcuts)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| keyDescription |  ```string``` | none | Description to show in the menu shortcut list for the toggle shortcut\n| keyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| closeKeyDescription |  ```string``` | none | Description to show in the menu shortcut list for closing the modal shortcut\n| closeKeyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"'Help'\"></ng-keyboard-shortcut-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcuts \nDirective can only be used for focusable elements, such as textarea, select, input, etc...  \n##### Important: \nThe shortcut then will only be active while the element is in __focus__.\n  \n\n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcuts |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcuts]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","readmeFilename":"README.md","_id":"ng-keyboard-shortcuts@9.1.13","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"integrity":"sha512-+mj5U0u3uFNas3fA+j7Zvby7Sp3mlsoBKJJN5069Jd3mCpzDZEsDk/l8d4AplkDeReSyyG318u+Yt3vDT50cqA==","shasum":"90da59760c6f286ba99d8318ee99c4db6b852825","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-9.1.13.tgz","fileCount":59,"unpackedSize":1052326,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMdH/CRA9TVsSAnZWagAAtZYP/3nQDl+tAUpjMiZE0jzo\n7us9AEGcEsqRAPV4VNkqPetjY9OxgQudJy4SWphYRHKyKpEfQXNgrW1QMvzO\nqTl0zjWDj5960S4/xefKu3DHYEjyM300GPS9D5O7kc0Kcn2+SzjvoIE/VQRJ\nlmOCB7x/4nnAdBRAvjsJQkFFacoyEoHptJoCt1JaODgnWH++Nc3niIlaYNMV\nGdYNkQAUNRcRWt6ZFhzxdKzgLpSKxKxSdZZAIOirZZAo2Tzn/dKekqOHRYVG\ndgystdZcEDKshDSo3b1+Y3STP1el94G78ffoIYYiktW6PPs6lERPeV+QRu1t\nN2+m+EOWkhRjtMmHSQiMcO3/qr2xaHc19Ac6+Lv6Nnctc0nnDauDDPzpoOMo\nDQ1hx39k4L2aJ0SrjYRWdsFwkqSgPSyNUiIauzSVbAGkT0USA1n9o/zoz6u+\nMIujsaQSD318UuCFprCHCd+x6h7xgMseCrt1CnWcGH3h1l5KxjeCimmLrbcb\nEoDs7JRjbdbGkXZil+AbYDnbtxeg02G+y8fxSWlnpM3sttw5kMHP0Y7IVujX\nL2Ip9celLtPZ0sFsfJVZ4Pf9lcVO7b74hvJH2ZnDHGI2qC8TzZ344umGHQT8\nvGLoJzW33wD4fBeCOHX1EOuD0P6Reahlhl9xNbmdmphmwNg/C/PrwuNFzmSW\nVIl1\r\n=M5AS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCNiSU3T1hxZeyE6ahCcPYqF/VDpOsgtN1asiW5MqlF2AIhAIhlsFGHzQFsEP/KnXW/11kQo+9Fkpz/GOMV4BrLVsFG"}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_9.1.13_1597100543131_0.1442349402064298"},"_hasShrinkwrap":false},"9.1.14":{"name":"ng-keyboard-shortcuts","version":"9.1.14","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","license":"MIT","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcuts](#ngKeyboardShortcuts)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| keyDescription |  ```string``` | none | Description to show in the menu shortcut list for the toggle shortcut\n| keyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| closeKeyDescription |  ```string``` | none | Description to show in the menu shortcut list for closing the modal shortcut\n| closeKeyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"'Help'\"></ng-keyboard-shortcut-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcuts \nDirective can only be used for focusable elements, such as textarea, select, input, etc...  \n##### Important: \nThe shortcut then will only be active while the element is in __focus__.\n  \n\n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcuts |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcuts]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","readmeFilename":"README.md","_id":"ng-keyboard-shortcuts@9.1.14","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"integrity":"sha512-6yoM8KBOhV31mc8xsbiC303tsbjL1iARICo5puOnL83imV3zH4ej8I5pexUhOFrWkhP3a5O1xF4u7kSJUhrJNA==","shasum":"70e1077669cdafdebe0885e99329ed4dd5713ae4","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-9.1.14.tgz","fileCount":59,"unpackedSize":1077668,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOKhHCRA9TVsSAnZWagAAhIsP/ArPGo97aGnmZmmMnfjZ\nC6nPqJ9EfP1iwJdQOThSzaOqZQbwfu8XiA6R0Oxg6aQvHslJGOqbpkKEC1JY\nZ6fdC1lQKqi/pPBzLlyDHfygbWCEdQP1mCEyUMdmReLX2ystvUoq4Y7ApkDk\nyLPBgsB0nBiwXm393i8eSavACuc2OYgs0TzcPPqGFtpZhSix8sQs7+qi1MI3\nb2ndYIpctfIYiG2ej5n4dqEqu8AculACqO+RKcVbp557L4XyAV2F/G9tqeDe\nKq/T0moEzQzohahDdn+rwzrj5SzbRxLOIKQXC0qJEcs4NKDoRkeQS1G7FfGx\nw1U4eqXHwrKHlbSTtC04cotlF+KKKxSKxj5o0LxMAuoZu9Q1npO0jF1Wkr9b\nIPmGev9kweP/e5VUI85G5ZsQ42HCET4eurv2iWgIFyXam4FEpMsf4huF/rCZ\nv8NoBpfrhOlKg7SY3MgBua212o/od2BH3tUFRBHIxwfbn1BO6ZUE/CeqMAgo\n+nV98kRNwvy1oO+98fE3MVHLd+rszu57kr9u3F4xnP+wRgQ3P1jAjkfDlWjd\nn7cCr1ldzluFJ4S04hIpGufXUAmeCnnuQQcEI9WFQOS/zimmRieL7LzG40Jy\nvqGQU9gkl0k/Q/Ld6E8n9EISc2PqsPwbAuJxKPCo8LZ9Xc7r35MQKjDwNnmE\nI9G/\r\n=dHBU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEKAC7EZc/20tcFfO1z7TPQsKYvAO3+qAw9wPKlKBAuYAiEAlxn2m3RSFmh36BG74ThmqcemqPCACX5Y4HGApXgATik="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_9.1.14_1597548614895_0.09125613209039352"},"_hasShrinkwrap":false},"10.1.15":{"name":"ng-keyboard-shortcuts","version":"10.1.15","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","ng","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"dependencies":{"tslib":"^2.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm2015/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"_id":"ng-keyboard-shortcuts@10.1.15","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"integrity":"sha512-tHK6EF+YwJqx7drGMrr1DbcQYBAqT3wy3Wa7x8a/sw4/P/jmyQUZV8/uy4i7nfQKskfMsg57Vv9raE+XI/gtPQ==","shasum":"9928ff77add90b7f714ddf27f5acb8f469f1e218","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-10.1.15.tgz","fileCount":41,"unpackedSize":710027,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOKx+CRA9TVsSAnZWagAAom0P/1J4r1/lSvKGwDEbNTA4\nd0t+wdbeznrCN9+SuS7f4kEH9EeeGA24JNiy/u9nIrIjq8J6PPebCZg9aNaq\ncVJ3v/VR81NLWd1j2YPoq/oze0sW9DBeTDb97h2NnJ/B+ChLqZ2JG0RThS4i\nrIHt69gT7MVPZYcmbBkLcrj5KkquqlR+Hnezw+SnVtxisKYs0K9zzK2a1rRX\nBSowrlG9O0wO8he+AeQPKHjHyHg3aKoZTgvkqHKnzmHl5RXadq35putzBiKL\noc0ie/QoQvbF8qV8LlmMT//3g/popc+NsQcR3cQ3Ifc47k0F/itqEFjOC+k7\nTtb+wwkLThb8LXYsFgJKKjnsbL3A2zI7AgoqNezHop0Ve6fmBaCeMF9W65Od\nZPNg9OMGpY7Mo18d4rydIybji0l8ZEQhBHAQu2rO4QCB7ybdPWiZH8fY3WRq\nUu7hZnvWv2dSN2Cj/yZJQyH2B0n4Ht0l/aVSCcL2nWLPj1XAq9j++jOT8LvN\n+DtGuy+UOO7KKanw/mhoEkTutpX1gatqZBks/GQFwL5EFYLM6hTsfugEaerO\n8G9C72CrG2eH1vtAUoe6fJtSNX3RtJCzOw0I1SsltZnMsx/ULGn24Yz/5r9P\nqrEr/CQmAxl4bRNJqJBg8l/JOaicCnPj7ngjDIWa9xk4O/BqVoVRu3ueDURZ\nHVAM\r\n=v8/8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID89PfxfGIPsn78yvpjqv1zUoz/pCEM05vPCmfUUQpFXAiEA1odg/GaoYcUPbTQ9Pko4A6Y87xSYFKIcHF6IkqyF/bo="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_10.1.15_1597549693805_0.4701907695548808"},"_hasShrinkwrap":false},"9.1.15":{"name":"ng-keyboard-shortcuts","version":"9.1.15","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","license":"MIT","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcuts](#ngKeyboardShortcuts)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| keyDescription |  ```string``` | none | Description to show in the menu shortcut list for the toggle shortcut\n| keyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| closeKeyDescription |  ```string``` | none | Description to show in the menu shortcut list for closing the modal shortcut\n| closeKeyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"'Help'\"></ng-keyboard-shortcut-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcuts \nDirective can only be used for focusable elements, such as textarea, select, input, etc...  \n##### Important: \nThe shortcut then will only be active while the element is in __focus__.\n  \n\n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcuts |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcuts]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","readmeFilename":"README.md","_id":"ng-keyboard-shortcuts@9.1.15","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"integrity":"sha512-2ZmcoqwfiAcXUldn8zVkPaYNYsC2MPeFInJuoT/6zyagWbMKMEq1HnWAFaJxV1eQNk5exrfNXmH51XxlJj6CNQ==","shasum":"ed457c361da0b49e900bbfec768634b7a0498073","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-9.1.15.tgz","fileCount":59,"unpackedSize":1077108,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOK0gCRA9TVsSAnZWagAAczMP/1w3KTNw27PsvXnZCnuo\npkt1ZM6wKsqV8OUH8240uAgX3hc8roO84aS0LKCLqTEqbCFw/rJmB63sdJOH\nFjJr27qzHGCTzRGp0lo0Z41PtKtHmmvCcueKX9ds9IYWKoZbA2CXS+9hPbSx\nnqmRVZ7wJGSupLK9YvjJTVZPmDKr7naaXg6yBiSesKdQZc/lMCoATAbYJ6zD\nZpCYc/mZZLYwnjeEqx3AQeXuUNpt1qIS8NodgdKzQaLzmYvpvlhAl+Tf6uCe\nC3UV2zWdZAjOv19bXomLruIIsSEcEEbMPVdorOAUUnAz5WHQ6ckxErMngsCF\nEYTgF9XlKOzgaKmQldv4AqoQKimx/o02WrVQSZrHjnCsYUTEz0gRUK+F3oUB\nMQUZ6iA95eZJumninqIebxk+TIcWvu3E51T3NWI7AT4OtSK7TD+Bxi7HyQUt\nx0q1uS32Jszh+qCNeWq4n2N8bKP62Ml+sFK0XtqktWgmv2l78vFioU+sngzL\niFTKN9EAq94XlFCi/+IrmOs6MZxKMu181DHbVYAP1jOj8jVu+n9xYISJJ8zc\nrbD3DUBejHqNiXt+g2yjf3KPNl0kKYY0Uce+h9F/n2Mm8Odf/irWiu7OH672\n8GUyxIswcqeq64tqWBPhZJwSwz5BfLP1b0VLa4/g30glL91LbqmlpGDV8ijf\nGyBV\r\n=2OnA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAJyY235gYNvU9K2M2BPjcumQ2w8nukzGxkQGVzvZt+JAiAqD8F0lo8VL0KgL7b3XXg+6v0FtNHgobegdaSnESd5hg=="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_9.1.15_1597549855913_0.6204640618439652"},"_hasShrinkwrap":false},"7.1.14":{"name":"ng-keyboard-shortcuts","version":"7.1.14","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts/","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0","@angular/common":"^7.0.0 || ^8.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcuts](#ngKeyboardShortcuts)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| keyDescription |  ```string``` | none | Description to show in the menu shortcut list for the toggle shortcut\n| keyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| closeKeyDescription |  ```string``` | none | Description to show in the menu shortcut list for closing the modal shortcut\n| closeKeyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"'Help'\"></ng-keyboard-shortcut-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcuts \nDirective can only be used for focusable elements, such as textarea, select, input, etc...  \n##### Important: \nThe shortcut then will only be active while the element is in __focus__.\n  \n\n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcuts |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcuts]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","readmeFilename":"README.md","_id":"ng-keyboard-shortcuts@7.1.14","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"integrity":"sha512-qHo2oMRwqkKGcVN1yYABmBzyzR2gUQRzxSIcJKNMp4TT+dvevcwEdzObeJ726forkIXBZA1G+vgx33bc8Wa1LQ==","shasum":"45b8e0e117d283f07244ec968debe29a83b27d23","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.1.14.tgz","fileCount":59,"unpackedSize":1078478,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOK4ZCRA9TVsSAnZWagAAnwgQAI1HB2wHQ+o/K0bAIzk5\nbN0x0j5nYIRsmhHyQoJZfnDWon755HtP31cwuY+vVJkx+A2gcWaNe37zo3Y5\n76n7mNrnu+1DsCNv7MToOhcncau/C1EOhp13+sgJHEu9/FeeqoE9f/mq5YOz\nJGJIycfANdlG2kVoa/bR5OINOf6Y2u+Q/mC8JUKpzBTv8WLrOug5VAVAOl8y\n8OCkHzLR3sIxbM5PewycGf6jjh8PwW1pouU7iwZqPi4css8D0xPbnRmyFwcp\ngN8v+21MFUUMRQrESh9xaSqbGRxTTnybU8zS0jKabXH+b+mU2O87Ec5GZnne\nysUPVq/HUrPAUPByUw2wyJ/u/MgwkFRaDbA82yXpZGO5XyBjdUOU+s3BO7HJ\nHzyg8JpYBovc8xui+hVcbZ0qg9/stgBQJmH+b90ewc5fWs+Pv5A2P8awPrbG\nZqdz7dKNerwxbdX4lvG9tV6cAKBbX1IxYiaXAKqgU6a2YKndiIydz6c6+wAR\n3peJFVzgWXcDbQ0O6n1Mylwt57zM2npjDmBfioaxzYN0jGK9ibqIq9qQ6CNU\nm2C6TdWnuD9axcF2AiPEBY8dUVfnc0eowoEXDxhFg6udS/LA3n8hZTgGsAm6\nqsmqMcVUu+HQlZFfuqhP3W64xL4J4j198snA1myxDyZuryGOn0SoAMJTqL6T\nxwcU\r\n=jX0x\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUjGZhKsFxU81A/Pn055FEd3+awFes1E6QNc+xrIzk+QIgAJshzeCJeiluL0fMX038zTDuwlQLivlDVpwdRKEjfF0="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.1.14_1597550105265_0.6335200045232972"},"_hasShrinkwrap":false},"7.1.15":{"name":"ng-keyboard-shortcuts","version":"7.1.15","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts/","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0","@angular/common":"^7.0.0 || ^8.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcuts](#ngKeyboardShortcuts)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| keyDescription |  ```string``` | none | Description to show in the menu shortcut list for the toggle shortcut\n| keyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| closeKeyDescription |  ```string``` | none | Description to show in the menu shortcut list for closing the modal shortcut\n| closeKeyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"'Help'\"></ng-keyboard-shortcut-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcuts \nDirective can only be used for focusable elements, such as textarea, select, input, etc...  \n##### Important: \nThe shortcut then will only be active while the element is in __focus__.\n  \n\n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcuts |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcuts]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","readmeFilename":"README.md","_id":"ng-keyboard-shortcuts@7.1.15","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"integrity":"sha512-c5B/u8sAPwO1inTBc9FWGy/8y7/7x8iWgaPI8UM7l0vtUlyBHcwYU+Xso8Wya6Cf38r6f75aiyTHsWirpjJgBw==","shasum":"c763f2f0bd53c4beccc609ce7f644e2bd5faab95","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.1.15.tgz","fileCount":59,"unpackedSize":1078478,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOK5NCRA9TVsSAnZWagAAToUP/0q4VsAo4xDKT7L+FBSN\nGHAnhfMUt4UdHheEsM7bgeh3VxMtHao8kiL8eK3Yf2srSw9b4mtauJPIsZqu\nS9YU8CJuiBz8oJB4QqANnBlKo0PQZr9DaWhAsPhkFC31kd6h037KIXFcCuGh\ngSqPRgIf0kCbQSSUJaibmnzp2O++mUtN+/4aAGyDgc4pBRudAlw97Stfgv9K\nBpxcdBNLiF9OLJRuUO5mRNcCASeeMPkZlgmpwT65YXt6LnVE4Vz+mSueuckp\nbeK/TJNaOHbOvMANgFKj2ru1BcSrZ23VJ9uoCAXe9YAa7Tk7RHkadsr8sNPI\n9w17TysFXY4/+HR9X8cFglt5bMBRvfzAQFhpqUQ1EaNkH7rtn/QTn4hQ+08g\n0n8miFVAxdUqGANAadFvkcxM9EhgXHgylL8OOuiN50IVgBA3QPdCoveqt5vA\nFIw5gXh0U/j/mup9iJp3vXMxZnYUQTK2xrRuqF37goFCwfKEf4SJaqC0OB5r\n6T8DvSZwOlpoyXM87b4i9bGmIQL1xa0KbZqeEnlAKx03yyZCRr3bxy14pQga\nRUI/ZOY7+gLP+R81XIMneI89EVN3Y3YMonJtuXcba9CDxDyfIme5/D158MPB\nryn6dxuteXWsvskZX9rHbaYMKis1AZoXKixgiF5VVaFWnYYvLg0MgMIeZLWp\n05FH\r\n=E4Za\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICkBVEBeZYmVkvumdafaay1cKKsS5sgf453NN040tJ2rAiEAvUbnErfYAjuclkyVyFQ5X3S/Ym7nLFc4yHyWCm3Ha+s="}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.1.15_1597550156517_0.22126555659560676"},"_hasShrinkwrap":false},"10.1.16":{"name":"ng-keyboard-shortcuts","version":"10.1.16","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","ng","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"dependencies":{"tslib":"^2.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm2015/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"_id":"ng-keyboard-shortcuts@10.1.16","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"integrity":"sha512-GcxfQZ+zN/kjrysG+9OSmM/fvBig3jzt7C4ppvdMdlVmJsQav4DNWQFfKyb23AgUQVLtfpxpY2pna19pp+Ec5A==","shasum":"bf35cee2022d5f450b08310d08d400b099409d5a","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-10.1.16.tgz","fileCount":41,"unpackedSize":710027,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfRo2FCRA9TVsSAnZWagAAU+sQAJ2kfJu536jfT6lEB+Hd\nzQSkgKFDt8oybm9hUH6cpblRqKThycDPppt2y3mDOFrNizu3Y5YexzyWPEOZ\nXewEFYCB+kpTAuKCc+YKHh+/duraNcu8rIkAVqzSvXP6NZv+S3sfv76YbdNO\n3pJmK3Ut0ke/ZTFZjroyKjGK+si5ZM22PysgD6j+2PNnyLqySlCzBDK7SHic\nqiFKwF+HjDgjKMdRP4d1ZdqEkTGE5OOwfpMWquL2Yh4Ib89woR7a0jF/gdaa\nmHfUVvfr7d6ddR+cN1gxK1nsbR1OT9Vp7AH1vlPVj+iOut0Z9V72zuVGMxOZ\nTGEhM/Zy5fNNOkJOXzM/YYPuMTQurvTKWH2ARBZrIwfymrquwZxiGKuknK1u\nr/r6Wvq5G/u5zLGloF+GP5ZLnG3j/foi3a+M0qHRwOA/DN3LO1gAw6t/Stwe\n3sezyUUTlaW1j6bIVPDstxa0Df1YqbGRl3ZXqob62A4JKOp08jIBSySZJEQM\nLvTHhM/9lBfq8EyalZLHsgqfLUGouO7EVpfABHqFSeJ3sfyVQhaHxb1nNJMP\n5WR++aqj8NOfUMFi3GdoevJeMTIAIDzvWfkK9iKrmr4uc3IWkHFaSH9NCqXY\n2CsL69iqualNfQkPeJHn+okkYBkIUfIXqtRSliWUXM6NO43SUMERP5KaZ+0Z\nrz74\r\n=PyaG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCK8DJbhdMRACqh8T4smfu8SSdBMQPoBOXF4RMPlYdc1gIhAJ1ZNn1LVaefU25N5bFK5XNhRsuRuvTnZ1AGjCGLnIW1"}]},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_10.1.16_1598459269249_0.5460621273269903"},"_hasShrinkwrap":false},"7.1.17":{"name":"ng-keyboard-shortcuts","version":"7.1.17","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts/","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0","@angular/common":"^7.0.0 || ^8.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcuts](#ngKeyboardShortcuts)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| keyDescription |  ```string``` | none | Description to show in the menu shortcut list for the toggle shortcut\n| keyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| closeKeyDescription |  ```string``` | none | Description to show in the menu shortcut list for closing the modal shortcut\n| closeKeyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"'Help'\"></ng-keyboard-shortcuts-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcuts \nDirective can only be used for focusable elements, such as textarea, select, input, etc...  \n##### Important: \nThe shortcut then will only be active while the element is in __focus__.\n  \n\n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcuts |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcuts]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n","readmeFilename":"README.md","_id":"ng-keyboard-shortcuts@7.1.17","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"integrity":"sha512-j2qyJT7Vj5qo6z2L1FuFL9Xf//2xq4+fWXVtcC+ej0Fra2UNDJdnS/XToQgI9QosclorMnwdPbldCXEB1kxXkg==","shasum":"d0c6ff0b2b5cd36f95f6139cd2d0185ce4a8280b","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-7.1.17.tgz","fileCount":59,"unpackedSize":1079335,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfw6o7CRA9TVsSAnZWagAAjNwP+gMz748rkz39mDmaZuiQ\nJbP8mQDK1TSGVYTn5TqTPFhI3ZeS50dyDq4fIrQUOl9njHS2bLU/djit2X5U\nHKC6l4vrBu2OE1ntccEEnk1HGsFJ7MvK0eNkZHcT0pZXgtOcdFRoMEJ1Pxt4\nwQLLA4Q0DK0Hu+ZEKRNCajd0UlC8Vj4XA1mXudPVstjl8D/GHASQ0ipYVZwB\n3dy0I0JJT0sumq6y2ibd+wPYOLw2ZL2eZ+cxR6EXhB8KkfWePi7jhyaeeV8X\nuAj9V6roCxjGgLn+pxbsp54AOJ+cvQkj4HChFIkpPsFO9Y0RzLGTnfoY1xYy\n7061rmKNFUPx5AxsizYXP/lwLGV73+pko8/LiaUC4gfCro6FLNcJjsjdp6Nc\n9IgijpFc5FobdxwDyE8jCBdWnzTLY5sFaqky2cLQpZZkBZvfU/W9vI1/YWqv\nIws82h/XqMn4V8quFyO6E2R7i7CiBRIy7a5v0pL2xPOALPrkGsw71GczJ2u4\ncjTOYIrQHcsc0lychp6fZHhReqwIEUNzvCalSd+6ij7PGm35I6Cain8oXpX5\neJ4eU0UpKc9GBiDa/7zTy4tTOS6GOjpxs60WJDbedLqrs+C1fCKHvk4DWtbA\nCQA63E+3R6VFFkqKoh+6Sc75BRRsGIgyJ97uulW+KIihu0/jmBFqRJTEigbS\nDiFn\r\n=VGjT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID+sT0F9ZuoOFUCmFWK2foRJMifxIU/r4KmHaC6QhbM2AiAlXiHin/s5VQqk/yhXN7XHccWTNXvVRI7pA/Mrx0Vq/w=="}]},"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_7.1.17_1606658619291_0.2981554829504538"},"_hasShrinkwrap":false},"9.1.17":{"name":"ng-keyboard-shortcuts","version":"9.1.17","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","license":"MIT","keywords":["angular","keyboard","shortcuts","keyboard-shortcuts","rxjs"],"author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm5/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm5":"esm5/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm5":"fesm5/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n  \nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.  \n  \nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)  \n  \nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)  \n  \n#### important note  \nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.  \n  \nCompatible with Angular 5+  \n  \n  \n* [Install](#install)  \n* [Setup](#setup)  \n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)  \n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)  \n        * [Keyboardshortcuts](#ng-keyboard-shortcuts)  \n        * [HelpScreen](#ng-keyboard-shortcuts-help)  \n    * [Directive](#directive)  \n        * [ngKeyboardShortcuts](#ngKeyboardShortcuts)  \n    * [Service](#service)  \n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)  \n* [API](#api)  \n    * [Types](#types)  \n        * [AllowIn](#AllowIn)  \n        * [Shortcut](#Shortcut)  \n        * [ShortcutInput](#ShortcutInput)  \n        * [ShortcutEventOutput](#ShortcutEventOutput)  \n* [Building](#building)  \n* [Publishing](#publishing)  \n* [License](#License)  \n  \n  \n# Install:  \n  \n```npm install --save ng-keyboard-shortcuts```  \n  \n##### or yarn  \n  \n``` yarn add ng-keyboard-shortcuts```  \n  \n# Setup:  \n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n  \n  \n  \n# Usage:  \n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with. \nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:  \n### ng-keyboard-shortcuts  \nComponent that can be used across the app to bind to various shortcuts  \n  \n#### Inputs:  \n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n  \n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n  \n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help  \n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**  \n2. **Add BrowserAnimationsModule to your app.module imports**  \n  \nCan be used to show an help screen ( will be attached to body and be shown as a modal)  \n  \nShould be placed in the root of your app, preferably in app.component.html  \n  \n #### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| keyDescription |  ```string``` | none | Description to show in the menu shortcut list for the toggle shortcut\n| keyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| closeKeyDescription |  ```string``` | none | Description to show in the menu shortcut list for closing the modal shortcut\n| closeKeyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n  \n #### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:  \n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n  \n`app.component.ts`  \n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`  \n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"'Help'\"></ng-keyboard-shortcuts-help>  \n</div>  \n  \n```  \n  \n## Directive  \n### ngKeyboardShortcuts \nDirective can only be used for focusable elements, such as textarea, select, input, etc...  \n##### Important: \nThe shortcut then will only be active while the element is in __focus__.\n  \n\n#### Inputs  \n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcuts |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n  \n#### Example \n  \n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcuts]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service  \n## KeyboardShortcutsHelpService  \n  \nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.  \n  \n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n \n \n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n \n \n# API:  \n  \n## Types:  \n  \n### AllowIn  \n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut  \nUsed for Directive input  \n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n  \n### ShortcutInput  \nUsed for the component as input.  \n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n  \n### ShortcutEventOutput  \n  \n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n  \n  \n# Building  \n  \n```npm run build-lib```  \n  \n# Publishing  \n1. ```npm run build-lib```  \n2. ```npm publish dist/ng-keyboard-shortcuts```  \n  \n# License  \n  \nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n","readmeFilename":"README.md","_id":"ng-keyboard-shortcuts@9.1.17","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"integrity":"sha512-ydY2EM+wQKsLry3FIWoh9qc669L1OxXq+lliAqS5DPEMGr6TDMjQJte9pIltTnBZWcClTUS8KO0EWmBKcQ4kHQ==","shasum":"9c633c035e098116a5998faff567ea03c7a96a0c","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-9.1.17.tgz","fileCount":59,"unpackedSize":1077965,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfw6seCRA9TVsSAnZWagAAbN4QAKMlUgBiX8udsReeSgjN\nj73NWyZlhsrsbM3hMsGuur4gvSakoM3CkGg1FfQuOICseh/16zKW8Fc57Vsp\nkWXzZwbpSeGZoeSIzLmY63q3PcSkcOdLhPJ/LIF06YIfZ4nQHhqjgy3DHpDn\ngFR0NFdKkg9MhMrPnyvQaQFQU5cZkImPmlu3MRKcVI6vEwxBL4+TBWGl0AyR\nKLfY/rSpKSUpAV3x9WscEcMt9bNKSHsR708/DLMHMRKVjNU+KytiDtMIa3+R\nbSFxXKJT/FV4hUFln6rG1fWffVHYTisAMImXJ0IZUGBnHLBZU/Qp8D2TE/nC\napT0A5WouJ4jIAJBgyt2tG1osjL1P45CbI0F9va8ELmzo9pjI8Cw+LEn3W8t\nRYpsVGr/wIMG293jWldHtostBZTkqMicaF4qAlrrMbpM9nV3KsXZ+HJ23HNs\nJcRRltY+41b6mRJqshBOrgggSP2Yvm96PVMNkvSRoY4m/TgpIph7V3R6PSz4\n/QqDeqTd+Pw6eakb7/2X6BeHFYlun2jld2omCsFscuwfdcDq8V24Z0f2cxM9\nQbQwUwra/nbDFw0NJIb3jKaI+BLFYdQl/rgBKCo0PCxGhnXZ7hhPIWkkXiro\nqFi/dIQhJPw8jF/BqAYuzZ/+zRkZWtoussiL/PukBx0HRkrER5dIybUKQvlR\noR3c\r\n=n65e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCOy+giY2xiCfA4xw51NHJ9qVjhO+r+a+O8WH51dc90pwIgd6q6NzeCgrHzkT58QLqXaU6O08Xa7TruUfDA6szSeYE="}]},"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_9.1.17_1606658845710_0.07000135335691393"},"_hasShrinkwrap":false},"10.1.17":{"name":"ng-keyboard-shortcuts","version":"10.1.17","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","ng","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/core":"^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0","@angular/common":"^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0","rxjs":"^6.0.0","zone.js":"^0.9.1 || ^0.10.2","core-js":"^2.5.4"},"dependencies":{"tslib":"^2.0.0"},"main":"bundles/ng-keyboard-shortcuts.umd.js","module":"fesm2015/ng-keyboard-shortcuts.js","es2015":"fesm2015/ng-keyboard-shortcuts.js","esm2015":"esm2015/ng-keyboard-shortcuts.js","fesm2015":"fesm2015/ng-keyboard-shortcuts.js","typings":"ng-keyboard-shortcuts.d.ts","metadata":"ng-keyboard-shortcuts.metadata.json","sideEffects":false,"_id":"ng-keyboard-shortcuts@10.1.17","_nodeVersion":"12.16.1","_npmVersion":"6.14.7","dist":{"integrity":"sha512-uJ71+qMyt3kd6xsIv674uRgHPNcxkNxDMYhHLJor3eyi8kWJIRMok4UdIA4b7WtQ7+Pv3iWB6aO/HOzLRONZxw==","shasum":"e31b72632ccb75daca8aae0ddd8fbc63a51f6054","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-10.1.17.tgz","fileCount":41,"unpackedSize":710568,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfw6wjCRA9TVsSAnZWagAAzkEP/3uNM35uJBLSdkl8xohZ\n4gh7E5Cd5vcAIVdkTLi1FLGWgVHHgWuBJn8y1dQZCPx7qK/JBU4N/q4x3+cF\nYa+DJeAGYDeX3mxCu9mm9Vw4Lv9mzyDTQRekC9p5ylQqL/U1lHzaWiWFQRNE\nC/iRILKC+o98ENwDwvNYwibgwPQKpOSE3Z7nm/W6QbqHALaWS4OfEw5EoC7b\nCgiHSoC7+VGOvwsilRRQr8Y+MQPWWR+0RQlMb5mYJlo7i1tMNNuTRT52n+Of\n5aAZcfw2I2zz011ILvfyxfYivOfmwGDWmNbJ794j7KI5B40/34ovv3tO0CGt\nxHRd7AkO5w3G3vSkiw084lF8opUaUraerxll1wkg/67Fdwm0b1VpUbTCe/m0\nWScSB+9/vnOU/KYN42GKzGkvTpZX/p0efJMdCJVeY66MPchHG2ezRkSvgCl/\n7NFLnMHsq5DRGRcI/RLjhHwF29azSKSZKLi+gU3JxlMygv9yNnejGTphbsZR\nJxHNilUxSehkbYh5OdO9su5hiT8LeQYMb5qTq8cw/x+vDEkmkfp3gaUifFyG\ngsSIx3rAajL8yqI53/eOE6jogiAfZvc34srS54ln57W96SmQy0/YRfFeX8hV\nzKR6UJNYlQrIUXHBubs8iBJc2syWXhvBsJxxucST/RSBgvGhRYCanYC/6f+5\ndZwG\r\n=DEKP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBo52xcSTyjYvtONBruS2XhtocFB0M0sQeQmiRr5LWl/AiEAg+tnZBrfTVX22PnV/TgMBoElF/YSRWrJshdiTXr7jsA="}]},"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_10.1.17_1606659107329_0.6780408840524552"},"_hasShrinkwrap":false},"13.0.0":{"name":"ng-keyboard-shortcuts","version":"13.0.0","peerDependencies":{"@angular/common":">=9.0.0","@angular/core":">=9.0.0","rxjs":">=6.0.0","@angular/animations":"~13.3.0"},"dependencies":{"tslib":"^2.3.0"},"module":"fesm2015/ng-keyboard-shortcuts.mjs","es2020":"fesm2020/ng-keyboard-shortcuts.mjs","esm2020":"esm2020/ng-keyboard-shortcuts.mjs","fesm2020":"fesm2020/ng-keyboard-shortcuts.mjs","fesm2015":"fesm2015/ng-keyboard-shortcuts.mjs","typings":"ng-keyboard-shortcuts.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./ng-keyboard-shortcuts.d.ts","esm2020":"./esm2020/ng-keyboard-shortcuts.mjs","es2020":"./fesm2020/ng-keyboard-shortcuts.mjs","es2015":"./fesm2015/ng-keyboard-shortcuts.mjs","node":"./fesm2015/ng-keyboard-shortcuts.mjs","default":"./fesm2020/ng-keyboard-shortcuts.mjs"}},"sideEffects":false,"description":"This library was generated with [Nx](https://nx.dev).","_id":"ng-keyboard-shortcuts@13.0.0","_nodeVersion":"12.22.12","_npmVersion":"6.14.16","dist":{"integrity":"sha512-aOOe2AeicElXf/FoIVYAn4Sj4EsqChXt/k630QwtObxtAo3i+6o9K5pwIG1tw86pOQYvz80f4GrajtHyt6RpQg==","shasum":"d571ccbc53af2095c015cd0406839d3fc3c06254","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-13.0.0.tgz","fileCount":38,"unpackedSize":561836,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEevxVcUXQlXdfdYg/zPjSUaD+KzkigrEdNfhsXTQgLyAiAblrC4/d+6QJrSO3bXVKSdzTPL5UDL85l80KU1Z+tmyA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifRJUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoIJw/9FXODZEco5VJyr3o/NWSwHIa/MIIFLHEiqWkVbkYCAUfgoBEl\r\n6jLZaha5KSCWZk2rIEGqt5OEV5nezjrenBkdZ26Qs7TX6cAZZipLju8fJrW/\r\n/YVxaPWh/wUMh18tT/5rEjnp8K4txFGMXCuxGPBWspDvayuKEWb4TTZLzMF0\r\n+JKAc/bggCnV1+Ok2PF53nRluG1YpeOuwpjtBwAy5htIJa/9LWd1aMxTj1Pl\r\njUHdP3br2wZJfwdNllNv7hBfEMxALmmVIjeSHSMjr+rLmg0l5Jhv1A9O7dlg\r\nOZYVvLJvdLq0ADzrgldijt9N9IXux9Gln1nRCSfurNcREzMzXZRyFIEuuSGJ\r\nRvmEa9aG92GdwCqGxYvc2eOfP9oa4EfkXQwJ6n9ZMeXckUaUWF7T5bf0HMoi\r\nVVlV2cl3tQqqolzGyYwPWzRzDPQqv1EFJgRT1njY6oymTOt/MSrjqlwwz1r+\r\nRI7EtjSppEt+VIesIVGTDxb/ucmieZC1FVShHVptdwnhUPeerZoAIhgRKE14\r\n4KFZ9lF1psqyn2Qwl+ZKR7OPp8Vb2pefbeCOu6cKbj29APiWAa7E70NQTZgI\r\ncHDQPqqNEpbBDAQWheXlkOHxB/AZh+XdGvcAh0OOCQtXGR9RNmoxpOi1VOrd\r\nYJJFYTLzzRync8lNHMPPnBUXIXXp0yRuBEI=\r\n=XMF3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_13.0.0_1652363860708_0.11685724998089131"},"_hasShrinkwrap":false},"13.0.1":{"name":"ng-keyboard-shortcuts","version":"13.0.1","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","ng","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/common":">=9.0.0","@angular/core":">=9.0.0","rxjs":">=6.0.0","@angular/animations":"~13.3.0"},"dependencies":{"tslib":"^2.3.0"},"module":"fesm2015/ng-keyboard-shortcuts.mjs","es2020":"fesm2020/ng-keyboard-shortcuts.mjs","esm2020":"esm2020/ng-keyboard-shortcuts.mjs","fesm2020":"fesm2020/ng-keyboard-shortcuts.mjs","fesm2015":"fesm2015/ng-keyboard-shortcuts.mjs","typings":"ng-keyboard-shortcuts.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./ng-keyboard-shortcuts.d.ts","esm2020":"./esm2020/ng-keyboard-shortcuts.mjs","es2020":"./fesm2020/ng-keyboard-shortcuts.mjs","es2015":"./fesm2015/ng-keyboard-shortcuts.mjs","node":"./fesm2015/ng-keyboard-shortcuts.mjs","default":"./fesm2020/ng-keyboard-shortcuts.mjs"}},"sideEffects":false,"_id":"ng-keyboard-shortcuts@13.0.1","_nodeVersion":"12.22.12","_npmVersion":"6.14.16","dist":{"integrity":"sha512-fgpbJ7R3LWQgWIMQTdrgdFRLA1xb63ygZd2fDOhQU/xH2ZcPzmC3lNPFehaDTrF4wU7k9U5RnPuJIZ8pMvZJXw==","shasum":"02f14977d25bc87c69881035d3bd1a2ea7b37386","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-13.0.1.tgz","fileCount":38,"unpackedSize":578004,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDH2MO8r8uW+8eXsgz3QbSGMuzhHOExP9jMdpxOhVMgfgIgB2R7kZ2uRF4t2uPQj8B3vMPVol02e4ZVVgE/tbMnEc0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifUM+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmryghAAnGymu5PTmXJS7ObDIkooDHIiAaqybSgZhloVfuF/I4exP1H3\r\n4wGKgFafNsnblwqVt+dcCDhBD+OXg9suSIeXME4AEUt3RsM40gdCxYxanUmk\r\nmBSbhwEBeQNxZDXALjjcmPRSqLHJxgWXmzAt9Gvx2zH/9sNDH41oLXsFYf7m\r\nOjVgr1G4mSUU4gXwawKa9qQiZX9Aqg9XxmvES6oLiy6ouMxwo+kqkHFmxZzo\r\nqe2Xg1VNLLriXBOfAhB92I84aA3ELr6/j5Ilx5nw96/eUBWRvyPOmaWKV1TH\r\nSPKTk93ZXuKx6er3ufc2Vfm+7u6wJ7OB4cND4RrC7bAGaYRgNtUxMJ98/b29\r\nArzrE0HmTyxR5T4aQQDWGGb+ve9criLY0bd6pl2yffQZ8nix/2grcY+jv7EI\r\nOx8+E9Bf7APKcSkfMBoZMybAe8Blg3/socF/6FapfYRxZFrZ+Y9jgd+TNzB0\r\nUI/dMQkIAgQKk3w3gxZGIfWDDaQXxSRPSB/IuoWO0/n3qrfIQOPZODLRzYxU\r\n9ERdGMeRcPK6lH7wLSR+hAZTNYiU3JfJoPTwZxS58KvkweQWQ5RUEP4Bcq1l\r\n/AG1FIu+VzByfOU8bsTTwMeyv4Jnc1uVP4T4wVQiCfATEZ/0qFBwhlkx81nC\r\nZAK2048JzSD/AYLnRG65P4IEcKCyBi2m8Uw=\r\n=XD1s\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_13.0.1_1652376382319_0.7692084525911382"},"_hasShrinkwrap":false},"13.0.2":{"name":"ng-keyboard-shortcuts","version":"13.0.2","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","ng","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/common":">=9.0.0","@angular/core":">=9.0.0","rxjs":">=6.0.0","@angular/animations":"~13.3.0"},"dependencies":{"tslib":"^2.3.0"},"module":"fesm2015/ng-keyboard-shortcuts.mjs","es2020":"fesm2020/ng-keyboard-shortcuts.mjs","esm2020":"esm2020/ng-keyboard-shortcuts.mjs","fesm2020":"fesm2020/ng-keyboard-shortcuts.mjs","fesm2015":"fesm2015/ng-keyboard-shortcuts.mjs","typings":"ng-keyboard-shortcuts.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./ng-keyboard-shortcuts.d.ts","esm2020":"./esm2020/ng-keyboard-shortcuts.mjs","es2020":"./fesm2020/ng-keyboard-shortcuts.mjs","es2015":"./fesm2015/ng-keyboard-shortcuts.mjs","node":"./fesm2015/ng-keyboard-shortcuts.mjs","default":"./fesm2020/ng-keyboard-shortcuts.mjs"}},"sideEffects":false,"_id":"ng-keyboard-shortcuts@13.0.2","_nodeVersion":"12.22.12","_npmVersion":"6.14.16","dist":{"integrity":"sha512-JoIDMSccLGLJsmTOPOdylfuTvY/2zJBpsTMdLW2rCA99by0AdevKEyWAy31asBreDm5FrsFur7iwlnAIIb7b/Q==","shasum":"d7c61b07ed1f355c570e42bf5f89c285639b11ab","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-13.0.2.tgz","fileCount":38,"unpackedSize":578295,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDitpUZqYtq3wmmBy2bQ4O47sCbbWId2wrT8/LG/BF9WQIgLlcDL7Sa+1hWdqV3W8Jv+pB9K24Cyl0XG0PlLH2ck80="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifUcxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmokaRAApNnpjWzL3eCJauxWot+x/v6hIcfzO6Bh3f3KFX5f0+zRTcre\r\nnzp5DUYpGYhH8PcQSJCtzSNDWDipY2IMT84XTdhRI3FiSESAUkXwW0CVL1Ai\r\nX2uqu6C6SB0uy5lAkiHVrexCx9CyD7YeFq3Em+XpjUvKE++sujH50XXRxWtW\r\nEE9NV6crfFI1QDCHra3FT8pTRAOglL6vvX8DiYAS7/uBQG4WKA7tSLQ+CDYo\r\nvznB/niswU3Q2ovpGjBY42O7uDk4/G79IRfRL8CouHpMMfE2QX/V+ZYh4Ybc\r\n/x7y46hIKbUx4ZoQ32GD9KkI3EiXSBuG6XFapPU9YtK2I4hfMhpyEvxAJw/G\r\nrYuRGIvDWW/C8q/AXr3TwXRwOCcuE22h2VP2RgfQCK49t0+tpMkQ2gaxQ/7O\r\nzaQaY63yAM4iQgkp4ZhSMFsH7VLPTk+TPd9rKmhRGwLwiOx9tV8AGHxwt032\r\n7mNGxzRN44op184YKRYye7cwNEmN0AD7Ig4s9J7d80kZRoJFe04llgYkzAgf\r\nx9Zyo/VHrRjLlb4cse4abM5+oFNsl+W5iRklecPOPsZC3JKSy3c0+P0Tpb8+\r\nkvOY/UVCUJPmfjeLekgncD2BgFm0uDJf4GHnw3+c4nyleGfDGxIt2hx8anIA\r\ng3EOQ7GRtiSdWYxIZrOpAj1YiSs/X022cOg=\r\n=qttz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_13.0.2_1652377393653_0.31371263379764236"},"_hasShrinkwrap":false},"13.0.3":{"name":"ng-keyboard-shortcuts","version":"13.0.3","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","ng","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/common":">=9.0.0","@angular/core":">=9.0.0","rxjs":">=6.0.0","@angular/animations":"~13.3.0"},"dependencies":{"tslib":"^2.3.0"},"module":"fesm2015/ng-keyboard-shortcuts.mjs","es2020":"fesm2020/ng-keyboard-shortcuts.mjs","esm2020":"esm2020/ng-keyboard-shortcuts.mjs","fesm2020":"fesm2020/ng-keyboard-shortcuts.mjs","fesm2015":"fesm2015/ng-keyboard-shortcuts.mjs","typings":"ng-keyboard-shortcuts.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./ng-keyboard-shortcuts.d.ts","esm2020":"./esm2020/ng-keyboard-shortcuts.mjs","es2020":"./fesm2020/ng-keyboard-shortcuts.mjs","es2015":"./fesm2015/ng-keyboard-shortcuts.mjs","node":"./fesm2015/ng-keyboard-shortcuts.mjs","default":"./fesm2020/ng-keyboard-shortcuts.mjs"}},"sideEffects":false,"gitHead":"7a4792740494bd2e0ee422542920470ec576a47f","_id":"ng-keyboard-shortcuts@13.0.3","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-cGd9Irh6BpVDGffoCi4g8Z24O4lWgQLAHDaJ6FdL9SeaDJ//rVFL8qP+ZBd7S5hOg6IOeihUSLZNigVY2HuWsA==","shasum":"f887ec189315ff2a1a9f626dbafcc06cb4f06f43","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-13.0.3.tgz","fileCount":38,"unpackedSize":582982,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgfx1U61W5XSc2HLrWBGpn3mQZL4QyXNj2rkOhw2No7QIhAPdQZ36i/fpMXKjZHS6EEgYjEPiN6hmBd41H086a/e0/"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifjfMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp6ww//cUk4sxHDpG1p3Hvmp7XghmFIMEisn/gtjcJRMWR0uM9+ZHjY\r\nHrI+3aIONpl1uWqN+CL1JBd9seF5m6dVbP4HeNW0cFieohq/Xa1D5OQCa6xw\r\nwH8kFHk9Dk4kyU5BBKFP9fdb51xSz5XsDLfddC3bpbyUhBOB1v3EZJlljvR5\r\nG70pJEa2hmZhKbhQBJK5JOR6fZpFqZxNvKNTbkCOgvJpKkNe9ff3dlAF4T7X\r\niYbJOem8SXJTmNI5GfF01Hgedj6ZJMrunadgSo+n2O2hfa67PWi3sbo+pn2l\r\nhsiYEEQmui+SL2ZQvHLx1dtmFDjRooF6OAZprsQ9Ku7Gosc5VKUzxXD1Dj/1\r\nJXTM4Hf+q4eNgOrJZisd+PDhFAhk+OtIrchjZxtBaokF0i8LhB7LndgAjD84\r\nhFBegp1Bg2gf/xXKk02CV08GYJ8xppp3h8EmZtJmzRMkDNXBDsobKsv5CTwz\r\nnih5vNgvQ2a43CUus20qXqoh4GGwdvMZEXV53ft67vKWFI1SqYEx7fhtAgIB\r\n83g7OV6XNgDjUdQlejfV9bmR//2OooZxgPdcDi5UzwgRvEsTq2nrLhu68qsl\r\nIlEEz9+uHa88rCerBJWQtnUFSPIhFgAL3gy1GA+2D3mTeoyl1ogVlupcGVcm\r\ndi3rq5lq35g7WdQW/SxKYPUGVu6AiPHlZy8=\r\n=Itnf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_13.0.3_1652438988174_0.22595532980779098"},"_hasShrinkwrap":false},"13.0.4":{"name":"ng-keyboard-shortcuts","version":"13.0.4","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","ng","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/common":">=9.0.0","@angular/core":">=9.0.0","rxjs":">=6.0.0","@angular/animations":"~13.3.0"},"dependencies":{"tslib":"^2.3.0"},"module":"fesm2015/ng-keyboard-shortcuts.mjs","es2020":"fesm2020/ng-keyboard-shortcuts.mjs","esm2020":"esm2020/ng-keyboard-shortcuts.mjs","fesm2020":"fesm2020/ng-keyboard-shortcuts.mjs","fesm2015":"fesm2015/ng-keyboard-shortcuts.mjs","typings":"ng-keyboard-shortcuts.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./ng-keyboard-shortcuts.d.ts","esm2020":"./esm2020/ng-keyboard-shortcuts.mjs","es2020":"./fesm2020/ng-keyboard-shortcuts.mjs","es2015":"./fesm2015/ng-keyboard-shortcuts.mjs","node":"./fesm2015/ng-keyboard-shortcuts.mjs","default":"./fesm2020/ng-keyboard-shortcuts.mjs"}},"sideEffects":false,"gitHead":"7e64a3cb8a1eae1ab261a9d92b689384ba1bc6ef","_id":"ng-keyboard-shortcuts@13.0.4","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-FJiiSW09aaelM9oGpiez7OuCh6yNAeQCNwvUJe/IzKmcIm57IfrHhsbM9nkGQj+jqW+6X+kAjuTYfDW9RjeNlA==","shasum":"cacc747f11374987c66004e6c3776c471f050087","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-13.0.4.tgz","fileCount":38,"unpackedSize":581329,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICUmF4DbPiJyatAYAxaDApxpjXlt3hI9bCiaaMkZ509aAiEA683g6KvYUlHWL8TCKu1Jb1XRPp7NxnoGyLNIxyWGbBY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifmBQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrU+A//a9FRv/4zP/V1i/Hvp7qyVRZq8+52ISA9Z+4UAOpHpTyoRXau\r\neTVgN0XaHC4uHGvnfLYl252N2Vi1EF2Yrv98LRw7c7qKbluvgQ5OdneS4gnt\r\nhBKE3k+NKPuWfPrk4k1WODHDJYQ778PhhOZARJ1RadOiKenKDYDT53S8jwwo\r\nvLFB0F9soDTzdKByvUi6sXkx+I1Iu6FBPYM8VT6M0moCvV/ZI5RK3AbVBaU0\r\n4rJMQ+hhXkMZdzoA2imtK7nKEvpGLEc368xVc8HeOYkuc768eZdg6vCom4fm\r\nS3SxCyNT8mgcE4LLzjrN7aSc5z8r67rkOEaHlh7Pi4qs+LRqsW3jQIMZ8emB\r\nUaPhyMj3P1kjbHrScgZQr4IweXRThz8ZzHmWujaXszpodEbDdXJYe1B3T9j7\r\njMimwFRN5Qm1EV/P6a92oawPDgfjz++7cl9CvmEfIxqp2dWls+7OnABRpSoR\r\nOuwju2IDAFEfUlV2E9HtyzoFSZOgMijnoAzQXE43H5+nuyN7mvpu8r7YEbAD\r\navbEfATO/CQuMsElXpP5Ua1fleUtC8DkGNHh75P8bTSRxTcWDuseWNSi7nXR\r\nSs/AkI0TxBlY/RgsWiOdlUqkwhzA+1Oqh+vVoajzqjeTedZ8Bzt9UeEANDCF\r\nIHPTs0jl4E24p8Emvt/EKi45IBTzxHNcWfg=\r\n=iW7v\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_13.0.4_1652449360045_0.3397543105058849"},"_hasShrinkwrap":false},"13.0.5":{"name":"ng-keyboard-shortcuts","version":"13.0.5","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","ng","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/common":">=9.0.0","@angular/core":">=9.0.0","@angular/platform-browser":">=9.0.0","rxjs":">=6.0.0","@angular/animations":"~13.3.0"},"dependencies":{"tslib":"^2.3.0"},"module":"fesm2015/ng-keyboard-shortcuts.mjs","es2020":"fesm2020/ng-keyboard-shortcuts.mjs","esm2020":"esm2020/ng-keyboard-shortcuts.mjs","fesm2020":"fesm2020/ng-keyboard-shortcuts.mjs","fesm2015":"fesm2015/ng-keyboard-shortcuts.mjs","typings":"ng-keyboard-shortcuts.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./ng-keyboard-shortcuts.d.ts","esm2020":"./esm2020/ng-keyboard-shortcuts.mjs","es2020":"./fesm2020/ng-keyboard-shortcuts.mjs","es2015":"./fesm2015/ng-keyboard-shortcuts.mjs","node":"./fesm2015/ng-keyboard-shortcuts.mjs","default":"./fesm2020/ng-keyboard-shortcuts.mjs"}},"sideEffects":false,"gitHead":"4e39dc526b9633903f6361396fef49d996e189d0","_id":"ng-keyboard-shortcuts@13.0.5","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-s6pZtdGdsSc24MIP3iuEWGi4nvY1g2wUeOjoHTjvDB3bJC2BqxRG4hWhFukntyLJKeH11u0aT7IYxcLU7duF+g==","shasum":"194bc1f7a43ebfbed3b0b312e2dedd71bc7c2856","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-13.0.5.tgz","fileCount":39,"unpackedSize":597508,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUyrU7ztu+fOzutS8hff49vbtIDy9Tx0E9IwAKsmeTcwIhAK70qtdyv47b/iDhi6cRKiv2OR9en6UXnccKsL1Luwkm"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJignQHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq6/Q//QAvvfmM1wetQnW5dBoSbyAls8X9Yaxz77rnD4pDAOoRB9SBY\r\n+i4/aQ/GuNPfMkc8G6jYVNJFZNALDwqSB3SInf51pQfIf9nLQUQ6Awu2GyvH\r\nW8qnh+bWAKzuJIVTcYzFAS2bh3T+x54QiWwfrS5TRNuw39JYwSIpthZtVlNi\r\nLoTDKNZDA6DgI8TvEq/mxVZ8ZxDYk3yM23i1I4LBCXCouRXS1N5bR/mLlhat\r\nBRktTZluZvW9ZLNNl+udCw5AolcNr3oPtLt/jG5xtMIbIAHx6mMzVTqNX8HR\r\n42qQmvhoiZlQo29OCZElQ5vzJNHu5/TmXEnTNRgZysHNm5UZZNK/eY3lYfFr\r\nVG01lD5aMQBCg85a4hP82N13PJ/oOiawRPzV4lWh0XWr1Px6+ZfqLUyH8LLl\r\nFIrD3CDuSt6xn/mie9xbfabzpRK+AhspLqpiRTT4PsZNNbvGPXrH/v2Sf4ee\r\nCrCF2Y8VH4vbq/mynvpjU7XGwpgF/vU90WK5PiJWp4zwiLZ3uGjklFLQDMLb\r\nKrALnL6+PacBviTo/Q008tw5s/ecHw14nyEYuDQDcRYOhb7PRwpBgKTObqTF\r\n0GXN8adzRErVqtmvXcGdKYSCZY2v7cYCXjjkCzHre3L5HaCudpiJJQAqS6vn\r\nm3HhRM1YndmSQqaBuhLJrkVhB4vnAb65pdQ=\r\n=bhd9\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_13.0.5_1652716550927_0.12001674587664724"},"_hasShrinkwrap":false},"13.0.6":{"name":"ng-keyboard-shortcuts","version":"13.0.6","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","ng","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/common":">=9.0.0","@angular/core":">=9.0.0","@angular/platform-browser":">=9.0.0","rxjs":">=6.0.0","@angular/animations":"~13.3.0"},"dependencies":{"tslib":"^2.3.0"},"module":"fesm2015/ng-keyboard-shortcuts.mjs","es2020":"fesm2020/ng-keyboard-shortcuts.mjs","esm2020":"esm2020/ng-keyboard-shortcuts.mjs","fesm2020":"fesm2020/ng-keyboard-shortcuts.mjs","fesm2015":"fesm2015/ng-keyboard-shortcuts.mjs","typings":"ng-keyboard-shortcuts.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./ng-keyboard-shortcuts.d.ts","esm2020":"./esm2020/ng-keyboard-shortcuts.mjs","es2020":"./fesm2020/ng-keyboard-shortcuts.mjs","es2015":"./fesm2015/ng-keyboard-shortcuts.mjs","node":"./fesm2015/ng-keyboard-shortcuts.mjs","default":"./fesm2020/ng-keyboard-shortcuts.mjs"}},"sideEffects":false,"_id":"ng-keyboard-shortcuts@13.0.6","_nodeVersion":"12.22.12","_npmVersion":"6.14.16","dist":{"integrity":"sha512-nEoCKCYGUIXMvN0J8dnx6tEH4BzJyyWONlVaFe6pl5mAGAu7mjIKNaho12tVJ5FU+1Z5RBfu/FFZ/nZ7Jm0NaA==","shasum":"9db5f1376c97be24d1533123a40ec4c5c97c6417","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-13.0.6.tgz","fileCount":41,"unpackedSize":618638,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD61N1FBc/p+3jU4jOipMhVa1n6sqdg9h6MRfNQxKbLvgIgALr2zOzH9iCY4LldTelHLlBAb+NVthblDUkY2/9Y7go="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJig2PKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqd4w//bNTXmtQk6DjMP5ORKCIAY3r7pFQ/czF09zQs7NDDHwj02Z0R\r\n67zOQ6AJ5EDP5XRewDP+KRb4bpptVgxkZ1vjUTq3/7+B7fYko08zpogLMhVW\r\ngfwW9NqMCZpH+mj6NvSiQZUu1uxcpWNubrHJDxdBPJWaH9phUG26KZ6PhKif\r\nm3oalFSBYqSsOb0EEc9yJh5UqkUOrAeqCH0amMnRjqCUEXJrFizMVyS8BTC3\r\nTpxQ5nZtOXBNPXiODKt4Ma/a6SretCuDAx8yGYYrWfHkBRnIUeVdCSks+VBW\r\nxreTH30ePU/3glLVIj8ziSU7bvHfE1esU2Y4pmBWojDTu4lDk8pTBryqzQFk\r\nPZy0HjgC5k/YbhlTEUnGir/Dv72RGivbxCI3C9ho4MoADIp59mQB3SLwwCX1\r\nRJfq/O2+oo/XM3DjCXg0DdywS4QPfrmrbOt8nd67Yl2AHkjVFTemKa1xMH+5\r\nxOxESfJTe86PCogVAn6TFtKEuTJtFUrP6LMWMpocqPMhkpy2oE84YEYxFWaQ\r\nvu5lN5bTJMTWX2CeY9xhXs3on96kKyPGD0SsEDTvlvHJxpZPnxNEBJr0qMPU\r\nLdtoyLu+LLGM5W5Fpw/AYENlyNRdOtF0vBpnwTC2kcPq1rKP5zTj6J36GRwB\r\n8WQBE48ERzAlT8w4EBK/HreeAasmbJxT/fw=\r\n=1OM7\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_13.0.6_1652777930123_0.07525821956647172"},"_hasShrinkwrap":false},"13.0.7":{"name":"ng-keyboard-shortcuts","version":"13.0.7","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","ng","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/animations":">=9.0.0","@angular/common":">=9.0.0","@angular/compiler":">=9.0.0","@angular/core":">=9.0.0","@angular/platform-browser":">=9.0.0","rxjs":">=6.0.0"},"dependencies":{"tslib":"^2.3.0"},"module":"fesm2015/ng-keyboard-shortcuts.mjs","es2020":"fesm2020/ng-keyboard-shortcuts.mjs","esm2020":"esm2020/ng-keyboard-shortcuts.mjs","fesm2020":"fesm2020/ng-keyboard-shortcuts.mjs","fesm2015":"fesm2015/ng-keyboard-shortcuts.mjs","typings":"ng-keyboard-shortcuts.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./ng-keyboard-shortcuts.d.ts","esm2020":"./esm2020/ng-keyboard-shortcuts.mjs","es2020":"./fesm2020/ng-keyboard-shortcuts.mjs","es2015":"./fesm2015/ng-keyboard-shortcuts.mjs","node":"./fesm2015/ng-keyboard-shortcuts.mjs","default":"./fesm2020/ng-keyboard-shortcuts.mjs"}},"sideEffects":false,"gitHead":"0d15ed707c0991e921cc9468f2727148fa6d85f4","_id":"ng-keyboard-shortcuts@13.0.7","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-ikJWGt68sK37iqikEwHKKhhfLJqQgn6MHhwudvNcFh9/Fl3f08jbvzU5SEznLowCXHnLKoQVk2jE1UsU8lU2cw==","shasum":"88aadf39fb3b81849538d80a5284eff88722c1b2","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-13.0.7.tgz","fileCount":42,"unpackedSize":619138,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAUqCmaezQGsPPUvEQT4gU1HSLl/JBQ+I9drNVTj2UygIhANBEt4S03foBjJWrSbf1C0imPkEV2z6u6yA1R87B042u"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiztKkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqONw//ZIomp/RMKklooUhc+1JWiLOup56iDYR+nf9s0K6ArwyhH12l\r\np6Dl3yEhU5iEZUt9ui0IxAh3mQULeCYY5m4xxMwqoKRvoqSHZYOsIA+aqkes\r\n8oxFf7oqkojhR4gnrNYveLf0FfTxfHcUub5WmZcZDbr4NO23MPKuTVIIOkM2\r\nWptguJaxYtmFIp8l7Rm1Mak+295qCElB0vk29WlXvKBKG1Fd7GXNE28EXxca\r\nQ/BdSBY+/5Zbu4G8TbVRzTZ8ZBi8KTFXMu1dDpKmH3XnkHqpIrHS2FX82jmC\r\n4dS9AGaDwEPpPXZdlHP+Fj9sWB2q/7SoSALtGB4Qmq9Vu1lA4XW3NlwogeOC\r\naoheS16/M4WqG7H8tbY3LBuMpDA4I1bvb9n6F4cMoBCRbT1XhSwT797awklN\r\njeh6crjqRXbsIlapGVNn663Rh1vA2wTTpOtCGTpik77Aotz2Jsuev/GJ5FiT\r\nBf+FLySXrvcgMxWiYZK2sleK0ZEm6KF/voxsZxPdfyJ73+mk5LiDKXjX0kaJ\r\nJ1hA5l+rBQJiBuSp5SZc7bAC4xpD58UjA1ZOFgjOt+KZdQNG7jw7GsC0zU01\r\nBITy+5fDTDtuWYxL5y4C2ketEosT9DZOOvus+1f4P5kQ39unX2hUxRyC3IQi\r\nK+HiVGVdOvDk6e2AWPk8RFrsZko2s6jILEA=\r\n=cGi9\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_13.0.7_1657721508461_0.7102045722448158"},"_hasShrinkwrap":false},"13.0.8":{"name":"ng-keyboard-shortcuts","version":"13.0.8","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","keywords":["angular","keyboard","shortcuts","ng","keyboard-shortcuts","rxjs"],"license":"MIT","author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"peerDependencies":{"@angular/animations":">=9.0.0","@angular/common":">=9.0.0","@angular/compiler":">=9.0.0","@angular/core":">=9.0.0","@angular/platform-browser":">=9.0.0","rxjs":">=6.0.0"},"dependencies":{"tslib":"^2.3.0"},"module":"fesm2015/ng-keyboard-shortcuts.mjs","es2020":"fesm2020/ng-keyboard-shortcuts.mjs","esm2020":"esm2020/ng-keyboard-shortcuts.mjs","fesm2020":"fesm2020/ng-keyboard-shortcuts.mjs","fesm2015":"fesm2015/ng-keyboard-shortcuts.mjs","typings":"ng-keyboard-shortcuts.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./ng-keyboard-shortcuts.d.ts","esm2020":"./esm2020/ng-keyboard-shortcuts.mjs","es2020":"./fesm2020/ng-keyboard-shortcuts.mjs","es2015":"./fesm2015/ng-keyboard-shortcuts.mjs","node":"./fesm2015/ng-keyboard-shortcuts.mjs","default":"./fesm2020/ng-keyboard-shortcuts.mjs"}},"sideEffects":false,"gitHead":"de0a5df1310302a8d919677ca300b7e2a578a23c","_id":"ng-keyboard-shortcuts@13.0.8","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-xmEFgmxfp+ssoLRAbDn/QJYyi5CmNm8AfCZiwEk6XlZGl8DN7uRuticEP3J0Nxop+HeoS9YSpQzPrrYo9h9juQ==","shasum":"33c6afa04b3eced3c9c96f3d33225660a7efadab","tarball":"https://registry.npmjs.org/ng-keyboard-shortcuts/-/ng-keyboard-shortcuts-13.0.8.tgz","fileCount":42,"unpackedSize":620030,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCU8rHTXFlhKs/k3qwT2wX0u8gQPya00+9BlD8z2bALkgIgU8CEuJfzVwoABy6H5NxTzuOplFOaFfAJ1LbWVlOLw/w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi+7vfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrInQ/9Gb+CQcRrxpjkUJC+D98sICU1cZAU/Ul9MYCS4vqU1I60HILV\r\n6Sr1VjopVEdLybs9vT89lFkJAjCC1LI//xR4IJ/x++OCv5mAeJwhrY7O67vT\r\nQVqnAH5Bze8eP7npb31DRz84wdeIT/ktva71gUlUUGeeyAM65xu51Q0G+i/G\r\nZ44Gw+Z480x7LmuRpKnpcWhLdVyiepuLilXCUTRS130ZIvMrX4EfT91JoRUp\r\n2vZi5D+VwoFeF3VTz3qVo6qO82TlB6NUu+84VEI7jvo0PghwYHfLCTYvjdfO\r\nHRhXVb+2jVM4nYO71aQq+M0hqdlOm2i4HLFkS23w2Ce12g77H2fWQXsq/Yzt\r\n9dbVuTUi1Es1//2VHkA+R7abPQLklWZ1b3cF6NW8DuscACW2I4nlwmlC4x3O\r\nwm9Gokyy7zf4eyML+hP/fy4lsMX0DPKs8T3yFOTDolfUAKG5stXQ/llyvmwp\r\ncC/QdlBQA+HGtf9zrn2bxDF9bOI8MRhNz1V0xo3P+o/kKO6OBxRzFFP9vnXx\r\nQlbl0pm31m2jgOUieQX9+4wCkAEyEG6AqgfMDRe+Vozve6rTtoeExIcU8Kyu\r\ng+97TtpDy68XoWvY4sBEmsrxXea8lnKR9hjscL0HI8bZNbzstiTz/t06eUQb\r\nf2mABU/whL6aOZ9mPTxgtPfvssyo4froipg=\r\n=NHdP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omridevk","email":"omrikatz12@gmail.com"},"directories":{},"maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng-keyboard-shortcuts_13.0.8_1660664799582_0.49079646927976994"},"_hasShrinkwrap":false}},"readme":"# ng-keyboard-shortcuts\n<p>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm version\" target=\"_blank\">\n        <img src=\"https://badge.fury.io/js/ng-keyboard-shortcuts.svg\" />\n      </a>\n      <a href=\"https://badge.fury.io/js/ng-keyboard-shortcuts\" alt=\"npm downloads per month\" target=\"_blank\">\n        <img src=\"https://img.shields.io/npm/dw/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://bundlephobia.com/result?p=ng-keyboard-shortcuts\" alt=\"Bundle size\" target=\"_blank\" >\n        <img src=\"https://img.shields.io/bundlephobia/minzip/ng-keyboard-shortcuts\" />\n      </a>\n      <a href=\"https://gitter.im/ng-keyboard-shortcuts/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\" alt=\"Join the chat at our community\" target=\"_blank\">\n        <img src=\"https://badges.gitter.im/ng-keyboard-shortcuts/community.svg\" />\n      </a>\n       <a href=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" target=\"_blank\" alt=\"MIT License\">\n        <img src=\"https://img.shields.io/npm/l/ng-keyboard-shortcuts\" />\n      </a>\n</p>  \n\nAn Angular module that provides a declarative API using components/directive to manage Keyboard shortcuts in scalable way.\n\nThis documentation is for version **7.0.0+ (8,9) and any future versions**.  For older versions (**2.0.0/6.0.0**) please [click here](https://github.com/omridevk/ng-keyboard-shortcuts/tree/2.0.0)\n\nSee demo here:  \n[demo](https://codesandbox.io/s/yvyovny43v)\n\n#### important note\nWe recommend to update to version **7.0.0 and above** and use the new component API which has a better memory management than previous version.\n\nCompatible with Angular 5+\n\n\n* [Install](#install)\n* [Setup](#setup)\n* [Demo](https://codesandbox.io/s/yvyovny43v)\n* [Usage](#usage)\n    * [Combinations](#combinations)\n    * [Sequences](#sequences)\n    * [Components](#components)\n        * [Keyboardshortcuts](#ng-keyboard-shortcuts)\n        * [HelpScreen](#ng-keyboard-shortcuts-help)\n    * [Directive](#directive)\n        * [ngKeyboardShortcuts](#ngKeyboardShortcuts)\n    * [Service](#service)\n        * [KeyboardShortcutsHelpService](#KeyboardShortcutsHelpService)\n        * [KeyboardShortcutsSelectService](#KeyboardShortcutsSelectService)\n* [API](#api)\n    * [Types](#types)\n        * [AllowIn](#AllowIn)\n        * [Shortcut](#Shortcut)\n        * [ShortcutInput](#ShortcutInput)\n        * [ShortcutEventOutput](#ShortcutEventOutput)\n* [Building](#building)\n* [Publishing](#publishing)\n* [License](#License)\n\n\n# Install:\n##### NPM\n###### Angular latest\n```npm install --save ng-keyboard-shortcuts```\n###### Angular 8/9\n```npm install --save ng-keyboard-shortcuts@^9.0.0```\n###### Angular 7\n```npm install --save ng-keyboard-shortcuts@^7.0.0```\n\n##### Yarn\n\n###### Angular latest\n```yarn add ng-keyboard-shortcuts```\n###### Angular 8/9\n```npm add ng-keyboard-shortcuts@^9.0.0```\n###### Angular 7\n```yarn add ng-keyboard-shortcuts@^7.0.0```\n\n# Setup:\n```typescript  \nimport { KeyboardShortcutsModule }     from 'ng-keyboard-shortcuts';  \n  \n@NgModule({  \n    declarations: [  \n    ],  \n    imports: [  \n        BrowserModule,  \n        KeyboardShortcutsModule.forRoot()  \n    ],  \n    bootstrap: [AppComponent]  \n})  \nexport class AppModule {  \n}  \n```  \n\n\n\n# Usage:\n\n## Combinations\n\nkey combinations are used with meta keys like control, shift, command, etc... and are defined using plus(+) sign as a separator.\nthere can be multiple combinations for the same command, so either of the key combination will trigger the callback.\nSince combinations uses the plus sign as a seperator, if you want to bind to the actual + charachater,\nyou will need to use \"plus\" instead.\n\n#### Examples:\n\n```typescript\n   [\n       {\n            key: [\"cmd + a\"],\n            command: (output: ShortcutEventOutput) => console.log(\"command + a\", output),\n        },\n        {\n            key: \"ctrl + a\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + a\", output),\n            \n        },\n        {\n            key: \"ctrl + plus\",\n            preventDefault: true,\n            command: (output: ShortcutEventOutput) => console.log(\"control + plus key\", output),\n        }\n    ]\n```\n\n## Sequences\n\nSequences can be used to support gmail like actions where you click \"g\" then \"a\", or \"g\" then \"o\" to perform certain actions.\n\n##### __Important note__\nThe library can get very confused if you have a single key handler that uses the same key that a sequence starts with.\nThis is because it can't tell if you are starting the sequence or if you are pressing that key on its own.\n\nTo counter this, there is a __500ms__ delay(__only__ when single key is used in the beginning of another sequence, so it won't affect performance)\n. This gives the library time to wait for a more complete sequence, otherwise the single sequence will be triggered.\n\nfor example: binding both \"? a\" and \"?\", then clicking \"?\" will trigger the \"?\" callback, but only after 500ms delay.\nHowever, in all other cases there's no delay in execution of the callback (unless debounceTime is provided)\n\n\n#### Examples:\n\nThis library supports gmail style sequences:\n```typescript\n   [{\n        key: [\"g a\"],\n        command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n    }]\n```\nkonami code:\n```typescript\n    [{\n         key: [\"up up down down left right left right b a enter\"],\n         label: \"Sequences\",\n         description: \"Konami code!\",\n         command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n    }]\n```\n\nSequences can be used inside components or directives and are declared __without__ the plus(+) sign, for example:\n``` key: [\"a b c\"] ```\nwill require clicking, a, then b, then c.\n\n## Components:\n### ng-keyboard-shortcuts\nComponent that can be used across the app to bind to various shortcuts\n\n#### Inputs:\n| Name   |      Type      |  Default         | Description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| shortcuts |  ```ShortcutInput``` / ```ShortcutInput[]``` | [] | List of shortcut inputs types see [types](#ShortcutInput) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the component |  \n\n#### Methods:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n\n\n```typescript  \n  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push(  \n            {  \n                key: \"ctrl + t\",  \n                preventDefault: true,  \n                allowIn: [AllowIn.Textarea, AllowIn.Input],  \n                command: e => console.log(\"clicked \" , e.key)  \n            },\n           {\n                key: [\"? a\"],\n                label: \"Sequences\",\n                description: \"Sequence ? and a\",\n                command: (output: ShortcutEventOutput) => console.log(\"? a\", output),\n                preventDefault: true\n            },            \n            {\n                key: [\"up up down down left right left right b a enter\"],\n                label: \"Sequences\",\n                description: \"Konami code!\",\n                command: (output: ShortcutEventOutput) => console.log(\"Konami code!!!\", output),\n            },\n            {  \n                key: \"cmd + shift + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true,  \n                throttleTime: 250,  \n                target: this.input.nativeElement  \n            },  \n            {  \n                key: [\"cmd + =\", \"cmd + z\"],  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            },  \n            {  \n                key: \"cmd + f\",  \n                command: (output: ShortcutEventOutput) => console.log(output),  \n                preventDefault: true  \n            }  \n        );  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n### ng-keyboard-shortcuts-help\n1. **Make sure to install `@angular/animations` ( `npm install --save @angular/animations` or `yarn add @angular/animations`**\n2. **Add BrowserAnimationsModule to your app.module imports**\n\nCan be used to show an help screen ( will be attached to body and be shown as a modal)\n\nShould be placed in the root of your app, preferably in app.component.html\n\n#### Inputs\n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| key |  ```string``` | none | The key to show/hide the help modal\n| keyDescription |  ```string``` | none | Description to show in the menu shortcut list for the toggle shortcut\n| keyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| closeKey |  ```string``` | none | Close key to be used to close the modal\n| closeKeyDescription |  ```string``` | none | Description to show in the menu shortcut list for closing the modal shortcut\n| closeKeyLabel |  ```string``` | none | Label that can be used to group shortcuts together in the help menu\n| title |  ```string``` | \"Keyboard shortcuts\" | The title of the help screen\n| emptyMessage |  ```string``` | \"No shortcuts available\" | What message to show when no commands are registered when help modal is opened.\n| disableScrolling |  ```boolean``` | true | Whether to disable body scrolling when modal help screen is opened.\n\n#### Methods:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| hide | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |   \n| reveal | void| ```KeyboardShortcutsHelpComponent``` | Programmatically hide the modal |\n| visible | void| ```boolean``` | Check whether the modal is visible or not. |\n| toggle | void| ```KeyboardShortcutsHelpComponent``` | Programmatically toggle the modal visibility |\n\n#### Methods:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |  \n\n`app.component.ts`\n```typescript  \nimport { Component } from \"@angular/core\";  \n  \n@Component({  \n  selector: \"app-root\",  \n  template: \"./app.component.html\",  \n  styleUrls: [\"./app.component.css\"]  \n})  \nexport class AppComponent {  \n  title = \"Hello\";  \n}  \n  \n```  \n`app.component.html`\n```html  \n<div style=\"text-align:center\">  \n   <h1>  \n      Welcome to {{ title }}!  \n   </h1>  \n   <ng-keyboard-shortcuts-help [key]=\"'f1'\" [closeKey]=\"'escape'\" [title]=\"'Help'\"></ng-keyboard-shortcuts-help>  \n</div>  \n  \n```  \n\n## Directive\n### ngKeyboardShortcuts\nDirective can only be used for focusable elements, such as textarea, select, input, etc...\n##### Important:\nThe shortcut then will only be active while the element is in __focus__.\n\n\n#### Inputs\n| Name   |      Type      |  default         | description |  \n|----------|:-------------:|-----------------:  |:-------------:|  \n| ngKeyboardShortcuts |  ```Shortcut``` / ```Shortcut``` | [] | List of shortcuts see [types](#shortcut) |  \n| disabled |    `boolean`  |   `false`   | disable the shortcuts for the directive |  \n| disableScrolling | `boolean` | `true` | disable body scrolling while modal is open |  \n\n#### Example\n\n```typescript  \nimport { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";  \nimport { ShortcutInput, ShortcutEventOutput, KeyboardShortcutsComponent } from \"ng-keyboard-shortcuts\";  \n  \n@Component({  \n    selector: 'demo-component',  \n    template: \"<input [ngKeyboardShortcuts]=\"shortcuts\" />\"  \n})  \nexport class DemoComponent implements AfterViewInit {  \n  \n    shortcuts: ShortcutInput[] = [];  \n    @ViewChild('input') input: ElementRef;  \n  \n    ngAfterViewInit(): void {  \n        this.shortcuts.push({  \n            key: \"cmd + e\",  \n            label: \"test\",  \n            description: \"hello world\",  \n            command: () => console.log('directive cmd + e'),  \n            preventDefault: true  \n        });  \n  \n        this.keyboard.select(\"cmd + f\").subscribe(e => console.log(e));  \n    }  \n  \n    @ViewChild(KeyboardShortcutsComponent) private keyboard: KeyboardShortcutsComponent;  \n  \n}  \n```  \n# Service\n## KeyboardShortcutsHelpService\n\nSingleton service that can be used to render a custom help screen. (used to build the [Built in help component](#ng-keyboard-shortcuts-help))  \nProvides access to all registered shortcuts in the app using Observable that updates on shortcuts changes.  \nSince shortcuts can be added or removed during the lifecycle of the app, an observable data structure needed to be used.\n\n| properties   |  type   | description |  \n|----------|:---------:|:-------------:|  \n| shortcuts$ | ```Observable<{ key: string, label: string, description: string }[]>```| Array of registered shortcuts across the whole app |  \n\n\n## KeyboardShortcutsSelectService\n\nA singleton service that can be used globally to listen to any registered shortcut:\n| Name  | Input | Return  | Description |  \n|----------|:------|:------:|:-------------:|  \n| select | `string` - key to listen to events (example: `'cmd + e'`) | `Observable<ShortcutEventOutput>` |Listen to specific key events (**will only work for registered keys**) |\n\n\n# API:\n\n## Types:\n\n### AllowIn\n```typescript  \nexport enum AllowIn {  \n    Textarea = 'TEXTAREA',  \n    Input = 'INPUT',  \n    Select = \"SELECT\"  \n}  \n```  \n### Shortcut\nUsed for Directive input\n```typescript  \nexport interface Shortcut {  \n  \n    key: string | string[];  \n  \n    /**  \n     * callback to be called when shortcut is pressed.  \n     * @param event - the event out  \n     */  \n    command(event: ShortcutEventOutput): any;  \n  \n    /**  \n     * Description for the command can be used for rendering help menu.  \n     */  \n    description?: string;  \n  \n    /**  \n     * How much time to throttle in ms.  \n     */  \n    throttleTime?: number;  \n  \n    /**  \n     * Label, can be used for grouping commands.  \n     */  \n    label?: string;  \n  \n    /**  \n     * Prevent browser default, default: false  \n     */  \n    preventDefault?: boolean;  \n}  \n```  \n\n### ShortcutInput\nUsed for the component as input.\n```typescript  \nexport interface ShortcutInput extends Shortcut {  \n    /**  \n     * textarea, select and input are ignored by default, this is used to override  \n     * this behavior.  \n     * allow in node names, accepts: [\"TEXTAREA\", \"SELECT\", \"INPUT]  \n     */  \n    allowIn?: AllowIn[];  \n    /**  \n     * Only trigger the command when the target is in focus.  \n     */  \n    target?: HTMLElement;  \n}  \n```  \n\n### ShortcutEventOutput\n\n```typescript  \ntype = ShortcutEventOutput {  \n    event: KeyboardEvent;  \n    key: string | string[];  \n}  \n  \n```  \n\n\n# Building\n\n```npm run build-lib```\n\n# Publishing\n1. ```npm run build-lib```\n2. ```npm publish dist/ng-keyboard-shortcuts```\n\n# License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n","maintainers":[{"name":"omridevk","email":"omrikatz12@gmail.com"}],"time":{"modified":"2022-08-16T15:46:39.968Z","created":"2017-09-09T10:15:07.879Z","1.0.0":"2017-09-09T10:15:07.879Z","1.0.10":"2017-09-09T10:15:59.358Z","1.0.11":"2017-09-09T10:25:04.679Z","1.0.12":"2017-09-09T10:31:41.206Z","1.0.13":"2017-09-09T10:37:18.243Z","1.0.14":"2017-09-09T10:40:10.728Z","1.0.15":"2017-09-09T10:55:20.096Z","1.0.16":"2017-09-09T11:00:03.518Z","1.0.17":"2017-09-09T11:14:02.384Z","1.0.18":"2017-09-09T11:24:36.504Z","1.0.20":"2017-09-09T11:56:53.553Z","1.0.21":"2017-09-09T13:10:06.195Z","1.0.23":"2017-09-09T13:21:24.270Z","1.1.0":"2017-09-09T14:36:49.203Z","1.1.1":"2017-09-09T14:52:29.419Z","1.1.2":"2017-09-09T15:33:07.309Z","1.1.3":"2017-09-09T15:41:45.353Z","1.1.5":"2017-09-09T18:44:32.125Z","1.1.6":"2017-09-09T19:01:12.531Z","2.0.0":"2018-06-15T14:55:20.797Z","2.0.1":"2018-06-15T14:57:21.398Z","2.0.2":"2018-06-16T18:24:43.611Z","2.0.3":"2018-06-16T18:29:54.991Z","2.0.4":"2018-06-16T18:32:31.945Z","2.0.5":"2018-06-16T19:08:06.762Z","6.1.0":"2018-08-09T17:16:33.654Z","6.1.1":"2018-08-09T23:39:25.268Z","7.0.0":"2019-03-30T17:04:47.260Z","7.0.1":"2019-03-30T17:08:36.917Z","7.0.2":"2019-03-30T17:40:27.391Z","7.0.3":"2019-03-30T17:50:34.101Z","7.0.4":"2019-03-30T18:01:45.851Z","7.0.5":"2019-03-30T18:07:35.662Z","7.0.6":"2019-03-30T22:52:11.589Z","7.0.7":"2019-03-30T22:55:30.310Z","7.0.8":"2019-03-31T09:48:46.848Z","7.0.9":"2019-04-07T15:26:29.749Z","7.0.10":"2019-05-24T16:28:11.256Z","7.0.11":"2019-05-24T16:30:29.278Z","7.1.0":"2019-05-27T23:18:48.803Z","7.1.1":"2019-05-27T23:30:14.505Z","7.1.2":"2019-05-27T23:53:06.372Z","7.1.3":"2019-05-28T14:29:09.640Z","8.0.0":"2019-06-21T16:28:00.956Z","8.2.0":"2019-12-20T18:09:09.433Z","8.2.1":"2019-12-20T20:29:54.148Z","8.2.2":"2019-12-20T20:54:32.029Z","8.2.3":"2019-12-20T23:04:21.888Z","8.2.4":"2020-01-10T12:02:16.505Z","8.2.5":"2020-01-16T15:22:06.626Z","8.2.6":"2020-03-25T22:31:17.557Z","9.0.0":"2020-03-25T23:51:07.634Z","9.0.1":"2020-05-31T14:50:12.621Z","7.1.4":"2020-07-11T23:36:56.298Z","7.1.5":"2020-07-11T23:41:42.782Z","9.1.5":"2020-07-11T23:51:55.843Z","9.1.6":"2020-07-12T00:25:11.834Z","10.1.5":"2020-07-12T00:52:29.126Z","10.1.6":"2020-07-12T01:13:07.337Z","9.1.7":"2020-07-12T01:20:30.776Z","9.1.8":"2020-07-12T01:21:49.861Z","7.1.8":"2020-07-12T01:30:06.973Z","10.1.8":"2020-07-12T01:41:07.553Z","10.1.9":"2020-07-12T01:46:12.467Z","7.1.9":"2020-07-12T01:54:56.391Z","7.1.10":"2020-07-12T01:58:43.482Z","9.1.10":"2020-07-12T02:03:43.255Z","10.1.10":"2020-07-12T02:06:15.442Z","7.1.11":"2020-07-22T00:06:38.759Z","10.1.11":"2020-07-22T00:09:21.536Z","9.1.11":"2020-07-22T00:15:03.347Z","9.1.12":"2020-08-07T23:01:06.736Z","10.1.12":"2020-08-07T23:14:28.041Z","7.1.12":"2020-08-07T23:23:09.550Z","10.1.13":"2020-08-10T22:55:11.379Z","7.1.13":"2020-08-10T23:01:22.767Z","9.1.13":"2020-08-10T23:02:23.368Z","9.1.14":"2020-08-16T03:30:15.048Z","10.1.15":"2020-08-16T03:48:13.960Z","9.1.15":"2020-08-16T03:50:56.091Z","7.1.14":"2020-08-16T03:55:05.471Z","7.1.15":"2020-08-16T03:55:56.746Z","10.1.16":"2020-08-26T16:27:49.413Z","7.1.17":"2020-11-29T14:03:39.456Z","9.1.17":"2020-11-29T14:07:25.901Z","10.1.17":"2020-11-29T14:11:47.474Z","13.0.0":"2022-05-12T13:57:40.852Z","13.0.1":"2022-05-12T17:26:22.810Z","13.0.2":"2022-05-12T17:43:13.844Z","13.0.3":"2022-05-13T10:49:48.408Z","13.0.4":"2022-05-13T13:42:40.289Z","13.0.5":"2022-05-16T15:55:51.109Z","13.0.6":"2022-05-17T08:58:50.341Z","13.0.7":"2022-07-13T14:11:48.704Z","13.0.8":"2022-08-16T15:46:39.873Z"},"readmeFilename":"README.md","description":"Dead Simple Keyboard Shortcuts Management for Angular 2+","homepage":"https://omridevk.github.io/ng-keyboard-shortcuts","keywords":["angular","keyboard","shortcuts","ng","keyboard-shortcuts","rxjs"],"repository":{"type":"git","url":"github.com/omridevk/ng-keyboard-shortcuts"},"author":{"name":"Omri Katz","email":"omrikatz12@gmail.com","url":"https://github.com/omridevk"},"bugs":{"url":"https://github.com/omridevk/ng-keyboard-shortcuts/issues"},"license":"MIT"}