123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.keydownBehavior = void 0;
- var _utils = require("../../utils");
- var _shared = require("../shared");
- /**
- * This file should contain behavior for arrow keys as described here:
- * https://w3c.github.io/uievents-code/#key-controlpad-section
- */
- const keydownBehavior = [{
- matches: (keyDef, element) => (keyDef.key === 'Home' || keyDef.key === 'End') && ((0, _utils.isElementType)(element, ['input', 'textarea']) || (0, _utils.isContentEditable)(element)),
- handle: (keyDef, element) => {
- // This could probably been improved by collapsing a selection range
- if (keyDef.key === 'Home') {
- (0, _utils.setSelectionRange)(element, 0, 0);
- } else {
- var _getValue$length, _getValue;
- const newPos = (_getValue$length = (_getValue = (0, _utils.getValue)(element)) == null ? void 0 : _getValue.length) != null ? _getValue$length :
- /* istanbul ignore next */
- 0;
- (0, _utils.setSelectionRange)(element, newPos, newPos);
- }
- }
- }, {
- matches: (keyDef, element) => (keyDef.key === 'PageUp' || keyDef.key === 'PageDown') && (0, _utils.isElementType)(element, ['input']),
- handle: (keyDef, element) => {
- // This could probably been improved by collapsing a selection range
- if (keyDef.key === 'PageUp') {
- (0, _utils.setSelectionRange)(element, 0, 0);
- } else {
- var _getValue$length2, _getValue2;
- const newPos = (_getValue$length2 = (_getValue2 = (0, _utils.getValue)(element)) == null ? void 0 : _getValue2.length) != null ? _getValue$length2 :
- /* istanbul ignore next */
- 0;
- (0, _utils.setSelectionRange)(element, newPos, newPos);
- }
- }
- }, {
- matches: (keyDef, element) => keyDef.key === 'Delete' && (0, _utils.isEditable)(element) && !(0, _utils.isCursorAtEnd)(element),
- handle: (keDef, element, options, state) => {
- const {
- newValue,
- newSelectionStart
- } = (0, _utils.calculateNewValue)('', element, state.carryValue, undefined, 'forward');
- (0, _shared.fireInputEvent)(element, {
- newValue,
- newSelectionStart,
- eventOverrides: {
- inputType: 'deleteContentForward'
- }
- });
- (0, _shared.carryValue)(element, state, newValue);
- }
- }];
- exports.keydownBehavior = keydownBehavior;
|