123456789101112131415161718192021222324252627282930313233 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.keydownBehavior = void 0;
- var _utils = require("../../utils");
- /**
- * This file should contain behavior for arrow keys as described here:
- * https://w3c.github.io/uievents-code/#key-arrowpad-section
- */
- const keydownBehavior = [{
- // TODO: implement for contentEditable
- matches: (keyDef, element) => (keyDef.key === 'ArrowLeft' || keyDef.key === 'ArrowRight') && (0, _utils.isElementType)(element, ['input', 'textarea']),
- handle: (keyDef, element) => {
- var _ref;
- const {
- selectionStart,
- selectionEnd
- } = (0, _utils.getSelectionRange)(element);
- const direction = keyDef.key === 'ArrowLeft' ? -1 : 1;
- const newPos = (_ref = selectionStart === selectionEnd ? (selectionStart != null ? selectionStart :
- /* istanbul ignore next */
- 0) + direction : direction < 0 ? selectionStart : selectionEnd) != null ? _ref :
- /* istanbul ignore next */
- 0;
- (0, _utils.setSelectionRange)(element, newPos, newPos);
- }
- }];
- exports.keydownBehavior = keydownBehavior;
|