UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 7.44 kB
{"version":3,"sources":["key_events.js"],"names":[],"mappings":"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","file":"angular2/src/render/dom/events/key_events.es6","sourcesContent":["import {DOM} from 'angular2/src/dom/dom_adapter';\nimport {isPresent, isBlank, StringWrapper, RegExpWrapper, BaseException, NumberWrapper} from 'angular2/src/facade/lang';\nimport {StringMapWrapper, ListWrapper} from 'angular2/src/facade/collection';\nimport {EventManagerPlugin} from './event_manager';\n\nvar modifierKeys = ['alt', 'control', 'meta', 'shift'];\nvar modifierKeyGetters = {\n 'alt': (event) => event.altKey,\n 'control': (event) => event.ctrlKey,\n 'meta': (event) => event.metaKey,\n 'shift': (event) => event.shiftKey\n}\n\nexport class KeyEventsPlugin extends EventManagerPlugin {\n constructor() {\n super();\n }\n\n supports(eventName: string): boolean {\n return isPresent(KeyEventsPlugin.parseEventName(eventName));\n }\n\n addEventListener(element, eventName: string, handler: Function,\n shouldSupportBubble: boolean) {\n var parsedEvent = KeyEventsPlugin.parseEventName(eventName);\n\n var outsideHandler = KeyEventsPlugin.eventCallback(element, shouldSupportBubble,\n StringMapWrapper.get(parsedEvent, 'fullKey'), handler, this.manager.getZone());\n\n this.manager.getZone().runOutsideAngular(() => {\n DOM.on(element, StringMapWrapper.get(parsedEvent, 'domEventName'), outsideHandler);\n });\n }\n\n static parseEventName(eventName: string) /* {'domEventName': string, 'fullKey': string} */ {\n eventName = eventName.toLowerCase();\n var parts = eventName.split('.');\n var domEventName = ListWrapper.removeAt(parts, 0);\n if ((parts.length === 0) || !(StringWrapper.equals(domEventName, 'keydown') || StringWrapper.equals(domEventName, 'keyup'))) {\n return null;\n }\n var key = ListWrapper.removeLast(parts);\n\n var fullKey = '';\n ListWrapper.forEach(modifierKeys, (modifierName) => {\n if (ListWrapper.contains(parts, modifierName)) {\n ListWrapper.remove(parts, modifierName);\n fullKey += modifierName + '.';\n }\n });\n fullKey += key;\n\n if (parts.length != 0 || key.length === 0) {\n // returning null instead of throwing to let another plugin process the event\n return null;\n }\n\n return {\n 'domEventName': domEventName,\n 'fullKey': fullKey\n };\n }\n\n static getEventFullKey(event): string {\n var fullKey = '';\n var key = DOM.getEventKey(event);\n key = key.toLowerCase();\n if (StringWrapper.equals(key, ' ')) {\n key = 'space'; // for readability\n } else if (StringWrapper.equals(key, '.')) {\n key = 'dot'; // because '.' is used as a separator in event names\n }\n ListWrapper.forEach(modifierKeys, (modifierName) => {\n if (modifierName != key) {\n var modifierGetter = StringMapWrapper.get(modifierKeyGetters, modifierName);\n if (modifierGetter(event)) {\n fullKey += modifierName + '.';\n }\n }\n });\n fullKey += key;\n return fullKey;\n }\n\n static eventCallback(element, shouldSupportBubble, fullKey, handler, zone) {\n return (event) => {\n var correctElement = shouldSupportBubble || event.target === element;\n if (correctElement && KeyEventsPlugin.getEventFullKey(event) === fullKey) {\n zone.run(() => handler(event));\n }\n };\n }\n}\n"]}