| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- (function () {
- 'use strict';
- angular.module('ariaNg').factory('ariaNgKeyboardService', ['$window', function ($window) {
- var platform = '';
- if ($window.navigator && $window.navigator.userAgentData && $window.navigator.userAgentData.platform) {
- platform = $window.navigator.userAgentData.platform;
- } else if ($window.navigator && $window.navigator.platform) {
- platform = $window.navigator.platform;
- }
- var isMacLike = /(Mac|iPhone|iPod|iPad)/i.test(platform);
- var isModifierKeyPressed = function (event) {
- if (isMacLike) {
- return event.metaKey;
- } else {
- return event.ctrlKey;
- }
- };
- var getKeyCode = function (event) {
- return event.keyCode || event.which || event.charCode;
- };
- return {
- isMacKeyboardLike: function () {
- return isMacLike;
- },
- isCtrlAPressed: function (event) {
- return (isModifierKeyPressed(event) && (event.code === 'KeyA' || getKeyCode(event) === 65)); // Ctrl+A / Command+A
- },
- isCtrlFPressed: function (event) {
- return (isModifierKeyPressed(event) && (event.code === 'KeyF' || getKeyCode(event) === 70)); // Ctrl+F / Command+F
- },
- isCtrlNPressed: function (event) {
- return (isModifierKeyPressed(event) && (event.code === 'KeyN' || getKeyCode(event) === 78)); // Ctrl+N / Command+N
- },
- isCtrlEnterPressed: function (event) {
- return (isModifierKeyPressed(event) && (event.code === 'Enter' || getKeyCode(event) === 13)); // Ctrl+Enter / Command+Return
- },
- isBackspacePressed: function (event) {
- return (event.code === 'Backspace' || getKeyCode(event) === 8); // Backspace
- },
- isDeletePressed: function (event) {
- return (event.code === 'Delete' || getKeyCode(event) === 46); // Delete
- }
- };
- }]);
- }());
|