@workday/canvas-kit-react
Version:
The parent module that contains all Workday Canvas Kit React components
83 lines (82 loc) • 2.58 kB
JavaScript
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;
;