123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.navigationKey = navigationKey;
- var _dom = require("@testing-library/dom");
- var _utils = require("../utils");
- const keys = {
- Home: {
- keyCode: 36
- },
- End: {
- keyCode: 35
- },
- ArrowLeft: {
- keyCode: 37
- },
- ArrowRight: {
- keyCode: 39
- }
- };
- function getSelectionRange(currentElement, key) {
- const {
- selectionStart,
- selectionEnd
- } = currentElement();
- if (key === 'Home') {
- return {
- selectionStart: 0,
- selectionEnd: 0
- };
- }
- if (key === 'End') {
- return {
- selectionStart: selectionEnd + 1,
- selectionEnd: selectionEnd + 1
- };
- }
- const cursorChange = Number(key in keys) * (key === 'ArrowLeft' ? -1 : 1);
- return {
- selectionStart: selectionStart + cursorChange,
- selectionEnd: selectionEnd + cursorChange
- };
- }
- function navigationKey(key) {
- const event = {
- key,
- keyCode: keys[key].keyCode,
- which: keys[key].keyCode
- };
- return ({
- currentElement,
- eventOverrides
- }) => {
- _dom.fireEvent.keyDown(currentElement(), { ...event,
- ...eventOverrides
- });
- const range = getSelectionRange(currentElement, key);
- (0, _utils.setSelectionRangeIfNecessary)(currentElement(), range.selectionStart, range.selectionEnd);
- _dom.fireEvent.keyUp(currentElement(), { ...event,
- ...eventOverrides
- });
- };
- }
|