| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- /**
- * @license
- * Copyright 2020 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * KEY provides normalized string values for keys.
- */
- export var KEY = {
- UNKNOWN: 'Unknown',
- BACKSPACE: 'Backspace',
- ENTER: 'Enter',
- SPACEBAR: 'Spacebar',
- PAGE_UP: 'PageUp',
- PAGE_DOWN: 'PageDown',
- END: 'End',
- HOME: 'Home',
- ARROW_LEFT: 'ArrowLeft',
- ARROW_UP: 'ArrowUp',
- ARROW_RIGHT: 'ArrowRight',
- ARROW_DOWN: 'ArrowDown',
- DELETE: 'Delete',
- ESCAPE: 'Escape',
- TAB: 'Tab',
- };
- var normalizedKeys = new Set();
- // IE11 has no support for new Map with iterable so we need to initialize this
- // by hand.
- normalizedKeys.add(KEY.BACKSPACE);
- normalizedKeys.add(KEY.ENTER);
- normalizedKeys.add(KEY.SPACEBAR);
- normalizedKeys.add(KEY.PAGE_UP);
- normalizedKeys.add(KEY.PAGE_DOWN);
- normalizedKeys.add(KEY.END);
- normalizedKeys.add(KEY.HOME);
- normalizedKeys.add(KEY.ARROW_LEFT);
- normalizedKeys.add(KEY.ARROW_UP);
- normalizedKeys.add(KEY.ARROW_RIGHT);
- normalizedKeys.add(KEY.ARROW_DOWN);
- normalizedKeys.add(KEY.DELETE);
- normalizedKeys.add(KEY.ESCAPE);
- normalizedKeys.add(KEY.TAB);
- var KEY_CODE = {
- BACKSPACE: 8,
- ENTER: 13,
- SPACEBAR: 32,
- PAGE_UP: 33,
- PAGE_DOWN: 34,
- END: 35,
- HOME: 36,
- ARROW_LEFT: 37,
- ARROW_UP: 38,
- ARROW_RIGHT: 39,
- ARROW_DOWN: 40,
- DELETE: 46,
- ESCAPE: 27,
- TAB: 9,
- };
- var mappedKeyCodes = new Map();
- // IE11 has no support for new Map with iterable so we need to initialize this
- // by hand.
- mappedKeyCodes.set(KEY_CODE.BACKSPACE, KEY.BACKSPACE);
- mappedKeyCodes.set(KEY_CODE.ENTER, KEY.ENTER);
- mappedKeyCodes.set(KEY_CODE.SPACEBAR, KEY.SPACEBAR);
- mappedKeyCodes.set(KEY_CODE.PAGE_UP, KEY.PAGE_UP);
- mappedKeyCodes.set(KEY_CODE.PAGE_DOWN, KEY.PAGE_DOWN);
- mappedKeyCodes.set(KEY_CODE.END, KEY.END);
- mappedKeyCodes.set(KEY_CODE.HOME, KEY.HOME);
- mappedKeyCodes.set(KEY_CODE.ARROW_LEFT, KEY.ARROW_LEFT);
- mappedKeyCodes.set(KEY_CODE.ARROW_UP, KEY.ARROW_UP);
- mappedKeyCodes.set(KEY_CODE.ARROW_RIGHT, KEY.ARROW_RIGHT);
- mappedKeyCodes.set(KEY_CODE.ARROW_DOWN, KEY.ARROW_DOWN);
- mappedKeyCodes.set(KEY_CODE.DELETE, KEY.DELETE);
- mappedKeyCodes.set(KEY_CODE.ESCAPE, KEY.ESCAPE);
- mappedKeyCodes.set(KEY_CODE.TAB, KEY.TAB);
- var navigationKeys = new Set();
- // IE11 has no support for new Set with iterable so we need to initialize this
- // by hand.
- navigationKeys.add(KEY.PAGE_UP);
- navigationKeys.add(KEY.PAGE_DOWN);
- navigationKeys.add(KEY.END);
- navigationKeys.add(KEY.HOME);
- navigationKeys.add(KEY.ARROW_LEFT);
- navigationKeys.add(KEY.ARROW_UP);
- navigationKeys.add(KEY.ARROW_RIGHT);
- navigationKeys.add(KEY.ARROW_DOWN);
- /**
- * normalizeKey returns the normalized string for a navigational action.
- */
- export function normalizeKey(evt) {
- var key = evt.key;
- // If the event already has a normalized key, return it
- if (normalizedKeys.has(key)) {
- return key;
- }
- // tslint:disable-next-line:deprecation
- var mappedKey = mappedKeyCodes.get(evt.keyCode);
- if (mappedKey) {
- return mappedKey;
- }
- return KEY.UNKNOWN;
- }
- /**
- * isNavigationEvent returns whether the event is a navigation event
- */
- export function isNavigationEvent(evt) {
- return navigationKeys.has(normalizeKey(evt));
- }
- //# sourceMappingURL=keyboard.js.map
|