angular2
Version:
Angular 2 - a web framework for modern web apps
1 lines • 7.68 kB
Source Map (JSON)
{"version":3,"sources":["key_events.js"],"names":[],"mappings":"AAAA;AAAA,KAAK,iBAAiB,AAAC,CAAC,MAAK,QAAQ;iBAArC,EAAC,GAAE,YAAqB;AAAE,4BAAwB;IAAE,AAA9B,CAAC;AAAvB,WAAS,CAAT,EAAC,KAAI,CAAO,KAAG,AAAS,CAAC;CAAgC,CAAC;;;;;EAAlD,IAAE,EAAV,EAAC,+CAAoB,CAAA,OAAM,AAAC,gCAAkB,CACtC,CAAA,gDAAqB,yDAA2B,CAAA,gDAAqB,GAAK,EAAC,OAAM,+CAAmB,CAAC,AAD/D,CACgE;SAD9G,EAAC,wCAAoB,CAAA,OAAM,AAAC,4BAAkB,CACtC,CAAA,yCAAqB,kDAA2B,CAAA,yCAAqB,GAAK,EAAC,OAAM,wCAAmB,CAAC,AAD/D,CACgE;AAAtG,YAAQ;AAAG,UAAM;AAAG,gBAAY;AAAG,gBAAY;AAAG,gBAAY;AAAG,gBAAY;SADrF,EAAC,8CAAoB,CAAA,OAAM,AAAC,kCAAkB,CACtC,CAAA,+CAAqB,wDAA2B,CAAA,+CAAqB,GAAK,EAAC,OAAM,8CAAmB,CAAC,AAD/D,CACgE;AACtG,mBAAe;AAAG,cAAU;EAC5B,mBAAiB,EAHzB,EAAC,uBAAoB,CAAA,OAAM,AAAC,mBAAkB,CACtC,CAAA,wBAAqB,iCAA2B,CAAA,wBAAqB,GAAK,EAAC,OAAM,uBAAmB,CAAC,AAD/D,CACgE;AAI9G,AAAI,EAAA,CAAA,YAAW,EAAI,EAAC,KAAI,CAAG,UAAQ,CAAG,OAAK,CAAG,QAAM,CAAC,CAAC;AACtD,AAAI,EAAA,CAAA,kBAAiB,EAAI;AACvB,MAAI,GAAG,SAAC,KAAI;SAAM,CAAA,KAAI,OAAO;EAAA,CAAA;AAC7B,UAAQ,GAAG,SAAC,KAAI;SAAM,CAAA,KAAI,QAAQ;EAAA,CAAA;AAClC,OAAK,GAAG,SAAC,KAAI;SAAM,CAAA,KAAI,QAAQ;EAAA,CAAA;AAC/B,QAAM,GAAG,SAAC,KAAI;SAAM,CAAA,KAAI,SAAS;EAAA,CAAA;AACnC,CAAA;AAXA,AAAI,EAAA,kBAaG,SAAM,gBAAc,CACb,AAAD,CAAG;AACZ,AAfJ,gBAAc,iBAAiB,AAAC,kBAAkB,KAAK,MAAmB,CAe/D;AACT,AAhBsC,CAAA;AAAxC,AAAI,EAAA,mCAAoC,CAAA;AAAxC,AAAC,eAAc,YAAY,CAAC,AAAC;AAkB3B,SAAO,CAAP,UAAS,SAAQ,AAAQ,CAAY;AACnC,SAAO,CAAA,SAAQ,AAAC,CAAC,+BAA6B,AAAC,CAAC,SAAQ,CAAC,CAAC,CAAC;EAC7D;AAEA,iBAAe,CAAf,UAAiB,OAAM,CAAG,CAAA,SAAQ,AAAQ,CAAG,CAAA,OAAM,AAAU,CACzD,CAAA,mBAAkB,AAAS;AAC7B,AAAI,MAAA,CAAA,WAAU,EAAI,CAAA,+BAA6B,AAAC,CAAC,SAAQ,CAAC,CAAC;AAE3D,AAAI,MAAA,CAAA,cAAa,EAAI,CAAA,8BAA4B,AAAC,CAAC,OAAM,CAAG,oBAAkB,CAC5E,CAAA,gBAAe,IAAI,AAAC,CAAC,WAAU,CAAG,UAAQ,CAAC,CAAG,QAAM,CAAG,CAAA,IAAG,QAAQ,QAAQ,AAAC,EAAC,CAAC,CAAC;AAEhF,OAAG,QAAQ,QAAQ,AAAC,EAAC,kBAAkB,AAAC,EAAC,SAAC,AAAD,CAAM;AAC7C,QAAE,GAAG,AAAC,CAAC,OAAM,CAAG,CAAA,gBAAe,IAAI,AAAC,CAAC,WAAU,CAAG,eAAa,CAAC,CAAG,eAAa,CAAC,CAAC;IACpF,EAAC,CAAC;EACJ;;AAEO,eAAa,CAApB,UAAsB,SAAQ,AAAQ;AACpC,YAAQ,EAAI,CAAA,SAAQ,YAAY,AAAC,EAAC,CAAC;AACnC,AAAI,MAAA,CAAA,KAAI,EAAI,CAAA,SAAQ,MAAM,AAAC,CAAC,GAAE,CAAC,CAAC;AAChC,AAAI,MAAA,CAAA,YAAW,EAAI,CAAA,WAAU,SAAS,AAAC,CAAC,KAAI,CAAG,EAAA,CAAC,CAAC;AACjD,OAAI,CAAC,KAAI,OAAO,IAAM,EAAA,CAAC,GAAK,EAAC,CAAC,aAAY,OAAO,AAAC,CAAC,YAAW,CAAG,UAAQ,CAAC,CAAA,EAAK,CAAA,aAAY,OAAO,AAAC,CAAC,YAAW,CAAG,QAAM,CAAC,CAAC,CAAG;AAC3H,WAAO,KAAG,CAAC;IACb;AAAA,AACI,MAAA,CAAA,GAAE,EAAI,CAAA,WAAU,WAAW,AAAC,CAAC,KAAI,CAAC,CAAC;AAEvC,AAAI,MAAA,CAAA,OAAM,EAAI,GAAC,CAAC;AAChB,cAAU,QAAQ,AAAC,CAAC,YAAW,GAAG,SAAC,YAAW,CAAM;AAClD,SAAI,WAAU,SAAS,AAAC,CAAC,KAAI,CAAG,aAAW,CAAC,CAAG;AAC7C,kBAAU,OAAO,AAAC,CAAC,KAAI,CAAG,aAAW,CAAC,CAAC;AACvC,cAAM,GAAK,CAAA,YAAW,EAAI,IAAE,CAAC;MAC/B;AAAA,IACF,EAAC,CAAC;AACF,UAAM,GAAK,IAAE,CAAC;AAEd,OAAI,KAAI,OAAO,GAAK,EAAA,CAAA,EAAK,CAAA,GAAE,OAAO,IAAM,EAAA,CAAG;AAEzC,WAAO,KAAG,CAAC;IACb;AAAA,AAEA,SAAO;AACL,mBAAa,CAAG,aAAW;AAC3B,cAAQ,CAAG,QAAM;AAAA,IACnB,CAAC;EACH;AAEO,gBAAc,CAArB,UAAuB,KAAI;AACzB,AAAI,MAAA,CAAA,OAAM,EAAI,GAAC,CAAC;AAChB,AAAI,MAAA,CAAA,GAAE,EAAI,CAAA,GAAE,YAAY,AAAC,CAAC,KAAI,CAAC,CAAC;AAChC,MAAE,EAAI,CAAA,GAAE,YAAY,AAAC,EAAC,CAAC;AACvB,OAAI,aAAY,OAAO,AAAC,CAAC,GAAE,CAAG,IAAE,CAAC,CAAG;AAClC,QAAE,EAAI,QAAM,CAAC;IACf,KAAO,KAAI,aAAY,OAAO,AAAC,CAAC,GAAE,CAAG,IAAE,CAAC,CAAG;AACzC,QAAE,EAAI,MAAI,CAAC;IACb;AAAA,AACA,cAAU,QAAQ,AAAC,CAAC,YAAW,GAAG,SAAC,YAAW,CAAM;AAClD,SAAI,YAAW,GAAK,IAAE,CAAG;AACvB,AAAI,UAAA,CAAA,cAAa,EAAI,CAAA,gBAAe,IAAI,AAAC,CAAC,kBAAiB,CAAG,aAAW,CAAC,CAAC;AAC3E,WAAI,cAAa,AAAC,CAAC,KAAI,CAAC,CAAG;AACzB,gBAAM,GAAK,CAAA,YAAW,EAAI,IAAE,CAAC;QAC/B;AAAA,MACF;AAAA,IACF,EAAC,CAAC;AACF,UAAM,GAAK,IAAE,CAAC;AACd,SAAO,QAAM,CAAC;EAChB;AAEO,cAAY,CAAnB,UAAqB,OAAM,CAAG,CAAA,mBAAkB,CAAG,CAAA,OAAM,CAAG,CAAA,OAAM,CAAG,CAAA,IAAG;AACtE,WAAO,SAAC,KAAI;AACR,AAAI,QAAA,CAAA,cAAa,EAAI,CAAA,mBAAkB,GAAK,CAAA,KAAI,OAAO,IAAM,QAAM,CAAC;AACpE,SAAI,cAAa,GAAK,CAAA,gCAA8B,AAAC,CAAC,KAAI,CAAC,CAAA,GAAM,QAAM,CAAG;AACxE,WAAG,IAAI,AAAC,EAAC,SAAC,AAAD;eAAM,CAAA,OAAM,AAAC,CAAC,KAAI,CAAC;QAAA,EAAC,CAAC;MAChC;AAAA,IACF,EAAC;EACL;CA9EmC,mBAAiB,CAZE;AADxD,KAAK,eAAe,AAAC,kDACb,EAAC,GAAE,CAAG,UAAS,AAAD,CAAG;AAAC,YAD1B,eAAc,KAAO,UAC4B;EAAC,CAAC,CAAC,CAAC;AADrD,KAAK,eAAe,AAAC,0DACb,EAAC,GAAE,CAAG,UAAS,AAAD,CAAG;AAAC,gBAD1B,eAAc,KAAO,WAsBmC,QAAO,IAtB/D,eAAc,KAAO,WAC4B;EAAC,CAAC,CAAC,CAAC;AADrD,KAAK,eAAe,AAAC,8CACb,EAAC,GAAE,CAAG,UAAS,AAAD,CAAG;AAAC,YAD1B,eAAc,KAAO,UAC4B;EAAC,CAAC,CAAC,CAAC;AA4FrD","file":"angular2/src/render/dom/events/key_events.js","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"]}