UNPKG

winbox-ui-next

Version:

We Design Vue 2.0: A Vue.js 3 UI Library

60 lines (59 loc) 1.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports[Symbol.toStringTag] = "Module"; var is = require("./is.js"); const KEYBOARD_KEY = { ENTER: "Enter", ESC: "Escape", BACKSPACE: "Backspace", TAB: "Tab", SPACE: " ", ARROW_UP: "ArrowUp", ARROW_DOWN: "ArrowDown", ARROW_LEFT: "ArrowLeft", ARROW_RIGHT: "ArrowRight" }; const CODE = { ENTER: "Enter", ESC: "Escape", BACKSPACE: "Backspace", TAB: "Tab", SPACE: "Space", ARROW_UP: "ArrowUp", ARROW_DOWN: "ArrowDown", ARROW_LEFT: "ArrowLeft", ARROW_RIGHT: "ArrowRight" }; const stringifyCodeKey = (k) => { return JSON.stringify({ code: k.code, ctrl: Boolean(k.ctrl), shift: Boolean(k.shift), alt: Boolean(k.alt), meta: Boolean(k.meta) }); }; const getKeyDownHandler = (codeKeyMap) => { const map = {}; codeKeyMap.forEach((callback, codeKey) => { const _codeKey = is.isString(codeKey) ? { code: codeKey } : codeKey; map[stringifyCodeKey(_codeKey)] = callback; }); return (event) => { const key = stringifyCodeKey({ code: event.code || event.key, ctrl: event.ctrlKey, shift: event.shiftKey, alt: event.altKey, meta: event.metaKey }); const callback = map[key]; if (callback) { event.stopPropagation(); callback(event); } }; }; exports.CODE = CODE; exports.KEYBOARD_KEY = KEYBOARD_KEY; exports.getKeyDownHandler = getKeyDownHandler;