UNPKG

@workday/canvas-kit-react

Version:

The parent module that contains all Workday Canvas Kit React components

83 lines (82 loc) 2.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.keyboardEventToCursorEvents = exports.orientationKeyMap = void 0; exports.orientationKeyMap = { horizontal: { ArrowLeft: 'goToPrevious', Left: 'goToPrevious', ArrowRight: 'goToNext', Right: 'goToNext', Home: 'goToFirst', End: 'goToLast', PageDown: 'goToNextPage', PageUp: 'goToPreviousPage', }, vertical: { ArrowUp: 'goToPrevious', Up: 'goToPrevious', ArrowDown: 'goToNext', Down: 'goToNext', Home: 'goToFirst', End: 'goToLast', PageDown: 'goToNextPage', PageUp: 'goToPreviousPage', }, }; const rightToLeftMap = { ArrowLeft: 'ArrowRight', Left: 'Right', ArrowRight: 'ArrowLeft', Right: 'Left', ArrowUp: 'ArrowUp', ArrowDown: 'ArrowDown', Home: 'Home', End: 'End', PageDown: 'PageDown', PageUp: 'PageUp', }; const gridKeyMap = { ...exports.orientationKeyMap.horizontal, Home: 'goToFirstOfRow', End: 'goToLastOfRow', ArrowUp: 'goToPreviousRow', Up: 'goToPreviousRow', ArrowDown: 'goToNextRow', Down: 'goToNextRow', }; const ctrlKeyMap = { Home: 'goToFirst', End: 'goToLast', }; const hasOwnKey = (obj, key) => obj.hasOwnProperty(key); function keyboardEventToCursorEvents(event, model, isRTL) { var _a, _b, _c, _d; // Test ctrl key first if (event.ctrlKey) { for (const key in ctrlKeyMap) { if (hasOwnKey(ctrlKeyMap, key)) { if (event.key === key) { (_b = (_a = model.events)[ctrlKeyMap[key]]) === null || _b === void 0 ? void 0 : _b.call(_a); return true; } } } } // Try regular keys const map = model.state.columnCount > 0 ? gridKeyMap : exports.orientationKeyMap[model.state.orientation]; for (const key in map) { if (hasOwnKey(map, key)) { if (isRTL ? event.key === rightToLeftMap[key] : event.key === key) { const eventName = model.state.columnCount > 0 ? gridKeyMap[key] : exports.orientationKeyMap[model.state.orientation][key]; if (model.events[eventName]) { (_d = (_c = model.events)[eventName]) === null || _d === void 0 ? void 0 : _d.call(_c); return true; } } } } return false; } exports.keyboardEventToCursorEvents = keyboardEventToCursorEvents;