@revolist/revogrid 4.9.8 → 4.9.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs.js +1 -2
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/{key.utils-12715159.js → key.utils-4455349b.js} +1 -11
- package/dist/cjs/key.utils-4455349b.js.map +1 -0
- package/dist/cjs/revogr-attribution_6.cjs.entry.js +2 -2
- package/dist/cjs/revogr-attribution_6.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +1 -1
- package/dist/collection/components/overlay/keyboard.service.js +2 -2
- package/dist/collection/components/overlay/keyboard.service.js.map +1 -1
- package/dist/collection/utils/key.utils.js +0 -9
- package/dist/collection/utils/key.utils.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/{key.utils-b1f93f7e.js → key.utils-35bedfd7.js} +2 -11
- package/dist/esm/key.utils-35bedfd7.js.map +1 -0
- package/dist/esm/revogr-attribution_6.entry.js +2 -2
- package/dist/esm/revogr-attribution_6.entry.js.map +1 -1
- package/dist/esm/revogr-clipboard_3.entry.js +1 -1
- package/dist/revo-grid/index.esm.js +1 -1
- package/dist/revo-grid/key.utils-35bedfd7.js +5 -0
- package/dist/revo-grid/key.utils-35bedfd7.js.map +1 -0
- package/dist/revo-grid/revogr-attribution_6.entry.js +1 -1
- package/dist/revo-grid/revogr-attribution_6.entry.js.map +1 -1
- package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
- package/dist/types/utils/key.utils.d.ts +0 -1
- package/hydrate/index.js +1 -10
- package/hydrate/index.mjs +1 -10
- package/package.json +1 -1
- package/readme.md +12 -2
- package/standalone/index.js +1 -1
- package/standalone/revo-grid.js +1 -1
- package/standalone/revogr-edit.js +1 -1
- package/standalone/revogr-edit2.js +1 -10
- package/standalone/revogr-edit2.js.map +1 -1
- package/standalone/revogr-overlay-selection2.js +2 -2
- package/standalone/revogr-overlay-selection2.js.map +1 -1
- package/dist/cjs/key.utils-12715159.js.map +0 -1
- package/dist/esm/key.utils-b1f93f7e.js.map +0 -1
- package/dist/revo-grid/key.utils-b1f93f7e.js +0 -5
- package/dist/revo-grid/key.utils-b1f93f7e.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyboard.service.js","sourceRoot":"","sources":["../../../src/components/overlay/keyboard.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { getRange } from '@store';\nimport { codesLetter } from '../../utils/key.codes';\nimport {\n isAll,\n isClear,\n isCopy,\n isCut,\n isEnterKeyValue,\n isLetterKey,\n isPaste,\n isTab,\n} from '../../utils/key.utils';\nimport { timeout } from '../../utils';\nimport {\n EventData,\n getCoordinate,\n isAfterLast,\n isBeforeFirst,\n} from './selection.utils';\nimport { RESIZE_INTERVAL } from '../../utils/consts';\nimport { Cell, Nullable, RangeArea, SelectionStoreState } from '@type';\nimport { Observable } from '../../utils/store.utils';\n\ntype Config = {\n selectionStore: Observable<SelectionStoreState>;\n\n // Apply changes from edit.\n change(val?: any): void;\n // Cancels edit. Escape changes.\n cancel(): void;\n\n clearCell(): void;\n focus(focus: Cell, changes: Partial<Cell>, focusNextViewport?: number): boolean;\n\n getData(): any;\n internalPaste(): void;\n range(range: RangeArea | null): boolean;\n selectAll(): void;\n};\n\nconst DIRECTION_CODES: string[] = [\n codesLetter.TAB,\n codesLetter.ARROW_UP,\n codesLetter.ARROW_DOWN,\n codesLetter.ARROW_LEFT,\n codesLetter.ARROW_RIGHT,\n];\nexport class KeyboardService {\n constructor(private sv: Config) {}\n\n async keyDown(\n e: KeyboardEvent,\n canRange: boolean,\n isEditMode: boolean,\n { range, focus }: Nullable<Pick<EventData, 'range' | 'focus'>>,\n ) {\n // IF EDIT MODE\n if (isEditMode) {\n switch (e.code) {\n case codesLetter.ESCAPE:\n this.sv.cancel();\n break;\n case codesLetter.TAB:\n this.keyChangeSelection(e, canRange);\n break;\n }\n return;\n }\n\n // IF NOT EDIT MODE\n\n // pressed clear key\n if (range && isClear(e.code)) {\n this.sv.clearCell();\n return;\n }\n\n // below works with focus only\n if (!focus) {\n return;\n }\n\n // tab key means same as arrow right\n if (isTab(e.code)) {\n this.keyChangeSelection(e, canRange);\n return;\n }\n\n // pressed enter\n if (isEnterKeyValue(e.key)) {\n this.sv.change();\n return;\n }\n\n // copy operation\n if (isCopy(e)) {\n return;\n }\n\n // cut operation\n if (isCut(e)) {\n return;\n }\n\n // paste operation\n if (isPaste(e)) {\n this.sv.internalPaste();\n return;\n }\n\n // select all\n if (isAll(e)) {\n if (canRange) {\n this.selectAll(e);\n }\n return;\n }\n\n // pressed letter key\n if (isLetterKey(e.keyCode)) {\n this.sv.change(e.key);\n return;\n }\n\n // pressed arrow, change selection position\n if (await this.keyChangeSelection(e, canRange)) {\n return;\n }\n }\n\n private selectAll(e: KeyboardEvent) {\n const range = this.sv.selectionStore.get('range');\n const focus = this.sv.selectionStore.get('focus');\n // if no range or focus - do nothing\n if (!range || !focus) {\n return;\n }\n e.preventDefault();\n this.sv.selectAll();\n }\n\n async keyChangeSelection(e: KeyboardEvent, canRange: boolean) {\n const data = this.changeDirectionKey(e, canRange);\n if (!data) {\n return false;\n }\n\n // this interval needed for several cases\n // grid could be resized before next click\n // at this case to avoid screen jump we use this interval\n await timeout(RESIZE_INTERVAL + 30);\n\n const range = this.sv.selectionStore.get('range');\n const focus = this.sv.selectionStore.get('focus');\n return this.keyPositionChange(data.changes, range, focus, data.isMulti);\n }\n\n keyPositionChange(\n changes: Partial<Cell>,\n range: RangeArea | null,\n focus: Cell | null,\n isMulti = false,\n ) {\n if (!range || !focus) {\n return false;\n }\n const data = getCoordinate(range, focus, changes, isMulti);\n if (!data) {\n return false;\n }\n const eData: EventData = this.sv.getData();\n if (isMulti) {\n if (isAfterLast(data.end, eData.lastCell) || isBeforeFirst(data.start)) {\n return false;\n }\n const range = getRange(data.start, data.end);\n return this.sv.range(range);\n }\n return this.sv.focus(\n data.start,\n changes,\n isAfterLast(data.start, eData.lastCell)\n ? 1\n : isBeforeFirst(data.start)\n ? -1\n : 0,\n );\n }\n\n /** Monitor key direction changes */\n changeDirectionKey(\n e: KeyboardEvent,\n canRange: boolean,\n ): { changes: Partial<Cell>; isMulti?: boolean } | void {\n const isMulti = canRange && e.shiftKey;\n if (DIRECTION_CODES.includes(e.code)) {\n e.preventDefault();\n }\n\n if (e.shiftKey) {\n switch (e.code) {\n case codesLetter.TAB:\n return { changes: { x: -1 }, isMulti: false };\n }\n }\n \n switch (e.code) {\n case codesLetter.ARROW_UP:\n return { changes: { y: -1 }, isMulti };\n case codesLetter.ARROW_DOWN:\n return { changes: { y: 1 }, isMulti };\n case codesLetter.ARROW_LEFT:\n return { changes: { x: -1 }, isMulti };\n case codesLetter.TAB:\n case codesLetter.ARROW_RIGHT:\n return { changes: { x: 1 }, isMulti };\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"keyboard.service.js","sourceRoot":"","sources":["../../../src/components/overlay/keyboard.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { getRange } from '@store';\nimport { codesLetter } from '../../utils/key.codes';\nimport {\n isAll,\n isClear,\n isCopy,\n isCut,\n isEnterKeyValue,\n isPaste,\n isTab,\n} from '../../utils/key.utils';\nimport { timeout } from '../../utils';\nimport {\n EventData,\n getCoordinate,\n isAfterLast,\n isBeforeFirst,\n} from './selection.utils';\nimport { RESIZE_INTERVAL } from '../../utils/consts';\nimport { Cell, Nullable, RangeArea, SelectionStoreState } from '@type';\nimport { Observable } from '../../utils/store.utils';\n\ntype Config = {\n selectionStore: Observable<SelectionStoreState>;\n\n // Apply changes from edit.\n change(val?: any): void;\n // Cancels edit. Escape changes.\n cancel(): void;\n\n clearCell(): void;\n focus(focus: Cell, changes: Partial<Cell>, focusNextViewport?: number): boolean;\n\n getData(): any;\n internalPaste(): void;\n range(range: RangeArea | null): boolean;\n selectAll(): void;\n};\n\nconst DIRECTION_CODES: string[] = [\n codesLetter.TAB,\n codesLetter.ARROW_UP,\n codesLetter.ARROW_DOWN,\n codesLetter.ARROW_LEFT,\n codesLetter.ARROW_RIGHT,\n];\nexport class KeyboardService {\n constructor(private sv: Config) {}\n\n async keyDown(\n e: KeyboardEvent,\n canRange: boolean,\n isEditMode: boolean,\n { range, focus }: Nullable<Pick<EventData, 'range' | 'focus'>>,\n ) {\n // IF EDIT MODE\n if (isEditMode) {\n switch (e.code) {\n case codesLetter.ESCAPE:\n this.sv.cancel();\n break;\n case codesLetter.TAB:\n this.keyChangeSelection(e, canRange);\n break;\n }\n return;\n }\n\n // IF NOT EDIT MODE\n\n // pressed clear key\n if (range && isClear(e.code)) {\n this.sv.clearCell();\n return;\n }\n\n // below works with focus only\n if (!focus) {\n return;\n }\n\n // tab key means same as arrow right\n if (isTab(e.code)) {\n this.keyChangeSelection(e, canRange);\n return;\n }\n\n // pressed enter\n if (isEnterKeyValue(e.key)) {\n this.sv.change();\n return;\n }\n\n // copy operation\n if (isCopy(e)) {\n return;\n }\n\n // cut operation\n if (isCut(e)) {\n return;\n }\n\n // paste operation\n if (isPaste(e)) {\n this.sv.internalPaste();\n return;\n }\n\n // select all\n if (isAll(e)) {\n if (canRange) {\n this.selectAll(e);\n }\n return;\n }\n\n // pressed letter key\n if (e.key.length === 1) {\n this.sv.change(e.key);\n return;\n }\n\n // pressed arrow, change selection position\n if (await this.keyChangeSelection(e, canRange)) {\n return;\n }\n }\n\n private selectAll(e: KeyboardEvent) {\n const range = this.sv.selectionStore.get('range');\n const focus = this.sv.selectionStore.get('focus');\n // if no range or focus - do nothing\n if (!range || !focus) {\n return;\n }\n e.preventDefault();\n this.sv.selectAll();\n }\n\n async keyChangeSelection(e: KeyboardEvent, canRange: boolean) {\n const data = this.changeDirectionKey(e, canRange);\n if (!data) {\n return false;\n }\n\n // this interval needed for several cases\n // grid could be resized before next click\n // at this case to avoid screen jump we use this interval\n await timeout(RESIZE_INTERVAL + 30);\n\n const range = this.sv.selectionStore.get('range');\n const focus = this.sv.selectionStore.get('focus');\n return this.keyPositionChange(data.changes, range, focus, data.isMulti);\n }\n\n keyPositionChange(\n changes: Partial<Cell>,\n range: RangeArea | null,\n focus: Cell | null,\n isMulti = false,\n ) {\n if (!range || !focus) {\n return false;\n }\n const data = getCoordinate(range, focus, changes, isMulti);\n if (!data) {\n return false;\n }\n const eData: EventData = this.sv.getData();\n if (isMulti) {\n if (isAfterLast(data.end, eData.lastCell) || isBeforeFirst(data.start)) {\n return false;\n }\n const range = getRange(data.start, data.end);\n return this.sv.range(range);\n }\n return this.sv.focus(\n data.start,\n changes,\n isAfterLast(data.start, eData.lastCell)\n ? 1\n : isBeforeFirst(data.start)\n ? -1\n : 0,\n );\n }\n\n /** Monitor key direction changes */\n changeDirectionKey(\n e: KeyboardEvent,\n canRange: boolean,\n ): { changes: Partial<Cell>; isMulti?: boolean } | void {\n const isMulti = canRange && e.shiftKey;\n if (DIRECTION_CODES.includes(e.code)) {\n e.preventDefault();\n }\n\n if (e.shiftKey) {\n switch (e.code) {\n case codesLetter.TAB:\n return { changes: { x: -1 }, isMulti: false };\n }\n }\n \n switch (e.code) {\n case codesLetter.ARROW_UP:\n return { changes: { y: -1 }, isMulti };\n case codesLetter.ARROW_DOWN:\n return { changes: { y: 1 }, isMulti };\n case codesLetter.ARROW_LEFT:\n return { changes: { x: -1 }, isMulti };\n case codesLetter.TAB:\n case codesLetter.ARROW_RIGHT:\n return { changes: { x: 1 }, isMulti };\n }\n }\n}\n"]}
|
|
@@ -3,15 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import KeyCodesEnum, { codesLetter, keyValues } from "./key.codes";
|
|
5
5
|
import OsPlatform from "./platform";
|
|
6
|
-
export function isLetterKey(code) {
|
|
7
|
-
return (code === 32 || // space
|
|
8
|
-
(code >= 48 && code <= 57) ||
|
|
9
|
-
(code >= 96 && code <= 111) ||
|
|
10
|
-
(code >= 186 && code <= 192) ||
|
|
11
|
-
(code >= 219 && code <= 222) ||
|
|
12
|
-
code >= 226 ||
|
|
13
|
-
(code >= 65 && code <= 90)); // a-z
|
|
14
|
-
}
|
|
15
6
|
export function isMetaKey(code) {
|
|
16
7
|
const keys = [
|
|
17
8
|
KeyCodesEnum.ARROW_DOWN,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key.utils.js","sourceRoot":"","sources":["../../src/utils/key.utils.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,UAAU,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"key.utils.js","sourceRoot":"","sources":["../../src/utils/key.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import KeyCodesEnum, { codesLetter, keyValues } from './key.codes';\nimport OsPlatform from './platform';\n\n\nexport function isMetaKey(code: number): boolean {\n const keys: KeyCodesEnum[] = [\n KeyCodesEnum.ARROW_DOWN,\n KeyCodesEnum.ARROW_UP,\n KeyCodesEnum.ARROW_LEFT,\n KeyCodesEnum.ARROW_RIGHT,\n KeyCodesEnum.HOME,\n KeyCodesEnum.END,\n KeyCodesEnum.DELETE,\n KeyCodesEnum.BACKSPACE,\n KeyCodesEnum.F1,\n KeyCodesEnum.F2,\n KeyCodesEnum.F3,\n KeyCodesEnum.F4,\n KeyCodesEnum.F5,\n KeyCodesEnum.F6,\n KeyCodesEnum.F7,\n KeyCodesEnum.F8,\n KeyCodesEnum.F9,\n KeyCodesEnum.F10,\n KeyCodesEnum.F11,\n KeyCodesEnum.F12,\n KeyCodesEnum.TAB,\n KeyCodesEnum.PAGE_DOWN,\n KeyCodesEnum.PAGE_UP,\n KeyCodesEnum.ENTER,\n KeyCodesEnum.ESCAPE,\n KeyCodesEnum.SHIFT,\n KeyCodesEnum.CAPS_LOCK,\n KeyCodesEnum.ALT,\n ];\n\n return keys.indexOf(code) !== -1;\n}\n\n// navigator.platform\nexport function isCtrlKey(code: number, platform: string): boolean {\n if (platform.includes(OsPlatform.mac)) {\n return [\n KeyCodesEnum.COMMAND_LEFT,\n KeyCodesEnum.COMMAND_RIGHT,\n KeyCodesEnum.COMMAND_FIREFOX,\n ].includes(code);\n }\n\n return code === KeyCodesEnum.CONTROL;\n}\n\nexport function isCtrlMetaKey(code: KeyCodesEnum): boolean {\n return [\n KeyCodesEnum.CONTROL,\n KeyCodesEnum.COMMAND_LEFT,\n KeyCodesEnum.COMMAND_RIGHT,\n KeyCodesEnum.COMMAND_FIREFOX,\n ].includes(code);\n}\n\nexport function isClear(code: string): boolean {\n return codesLetter.BACKSPACE === code || codesLetter.DELETE === code;\n}\n\nexport function isTab(code: string): boolean {\n return codesLetter.TAB === code;\n}\nexport function isTabKeyValue(key: string): boolean {\n return keyValues.TAB === key;\n}\n\nexport function isEnterKeyValue(key: string): boolean {\n return keyValues.ENTER === key;\n}\n\nexport function isCut(event: KeyboardEvent): boolean {\n return (\n (event.ctrlKey && event.code === 'KeyX') || // Ctrl + X on Windows\n (event.metaKey && event.code === 'KeyX')\n ); // Cmd + X on Mac\n}\nexport function isCopy(event: KeyboardEvent): boolean {\n return (\n (event.ctrlKey && event.code === 'KeyC') || // Ctrl + C on Windows\n (event.metaKey && event.code === 'KeyC')\n ); // Cmd + C on Mac\n}\nexport function isPaste(event: KeyboardEvent): boolean {\n return (\n (event.ctrlKey && event.code === 'KeyV') || // Ctrl + V on Windows\n (event.metaKey && event.code === 'KeyV')\n ); // Cmd + V on Mac\n}\nexport function isAll(event: KeyboardEvent): boolean {\n return (\n (event.ctrlKey && event.code === 'KeyA') || // Ctrl + A on Windows\n (event.metaKey && event.code === 'KeyA')\n ); // Cmd + A on Mac\n}\n"]}
|
package/dist/esm/index.js
CHANGED
|
@@ -7,7 +7,7 @@ export { C as CELL_CLASS, K as CELL_HANDLER_CLASS, w as DATA_COL, x as DATA_ROW,
|
|
|
7
7
|
export { h } from './index-a61f225b.js';
|
|
8
8
|
export { S as SelectionStore, c as cropCellToMax, g as getRange, i as isHiddenStore, a as isRangeSingleCell, n as nextCell } from './selection.helpers-ac4368b0.js';
|
|
9
9
|
export { V as ViewportStore, a as addMissingItems, f as calculateRowHeaderSize, d as getFirstItem, b as getItems, e as getLastItem, g as getUpdatedItemsByPosition, i as isActiveRange, c as isActiveRangeOutsideLastItem, r as recombineByOffset, s as setItemSizes, u as updateMissingAndRange } from './row-header-utils-3a6f6adc.js';
|
|
10
|
-
export {
|
|
10
|
+
export { k as isAll, c as isClear, h as isCopy, a as isCtrlKey, b as isCtrlMetaKey, g as isCut, f as isEnterKeyValue, i as isMetaKey, j as isPaste, d as isTab, e as isTabKeyValue } from './key.utils-35bedfd7.js';
|
|
11
11
|
import './toNumber-8de324a7.js';
|
|
12
12
|
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -3,15 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { Y as OsPlatform, Z as KeyCodesEnum, Q as codesLetter, U as keyValues } from './index-c428acf6.js';
|
|
5
5
|
|
|
6
|
-
function isLetterKey(code) {
|
|
7
|
-
return (code === 32 || // space
|
|
8
|
-
(code >= 48 && code <= 57) ||
|
|
9
|
-
(code >= 96 && code <= 111) ||
|
|
10
|
-
(code >= 186 && code <= 192) ||
|
|
11
|
-
(code >= 219 && code <= 222) ||
|
|
12
|
-
code >= 226 ||
|
|
13
|
-
(code >= 65 && code <= 90)); // a-z
|
|
14
|
-
}
|
|
15
6
|
function isMetaKey(code) {
|
|
16
7
|
const keys = [
|
|
17
8
|
KeyCodesEnum.ARROW_DOWN,
|
|
@@ -93,6 +84,6 @@ function isAll(event) {
|
|
|
93
84
|
(event.metaKey && event.code === 'KeyA')); // Cmd + A on Mac
|
|
94
85
|
}
|
|
95
86
|
|
|
96
|
-
export {
|
|
87
|
+
export { isCtrlKey as a, isCtrlMetaKey as b, isClear as c, isTab as d, isTabKeyValue as e, isEnterKeyValue as f, isCut as g, isCopy as h, isMetaKey as i, isPaste as j, isAll as k };
|
|
97
88
|
|
|
98
|
-
//# sourceMappingURL=key.utils-
|
|
89
|
+
//# sourceMappingURL=key.utils-35bedfd7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"key.utils-35bedfd7.js","mappings":"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","names":[],"sources":["src/utils/key.utils.ts"],"sourcesContent":["import KeyCodesEnum, { codesLetter, keyValues } from './key.codes';\nimport OsPlatform from './platform';\n\n\nexport function isMetaKey(code: number): boolean {\n const keys: KeyCodesEnum[] = [\n KeyCodesEnum.ARROW_DOWN,\n KeyCodesEnum.ARROW_UP,\n KeyCodesEnum.ARROW_LEFT,\n KeyCodesEnum.ARROW_RIGHT,\n KeyCodesEnum.HOME,\n KeyCodesEnum.END,\n KeyCodesEnum.DELETE,\n KeyCodesEnum.BACKSPACE,\n KeyCodesEnum.F1,\n KeyCodesEnum.F2,\n KeyCodesEnum.F3,\n KeyCodesEnum.F4,\n KeyCodesEnum.F5,\n KeyCodesEnum.F6,\n KeyCodesEnum.F7,\n KeyCodesEnum.F8,\n KeyCodesEnum.F9,\n KeyCodesEnum.F10,\n KeyCodesEnum.F11,\n KeyCodesEnum.F12,\n KeyCodesEnum.TAB,\n KeyCodesEnum.PAGE_DOWN,\n KeyCodesEnum.PAGE_UP,\n KeyCodesEnum.ENTER,\n KeyCodesEnum.ESCAPE,\n KeyCodesEnum.SHIFT,\n KeyCodesEnum.CAPS_LOCK,\n KeyCodesEnum.ALT,\n ];\n\n return keys.indexOf(code) !== -1;\n}\n\n// navigator.platform\nexport function isCtrlKey(code: number, platform: string): boolean {\n if (platform.includes(OsPlatform.mac)) {\n return [\n KeyCodesEnum.COMMAND_LEFT,\n KeyCodesEnum.COMMAND_RIGHT,\n KeyCodesEnum.COMMAND_FIREFOX,\n ].includes(code);\n }\n\n return code === KeyCodesEnum.CONTROL;\n}\n\nexport function isCtrlMetaKey(code: KeyCodesEnum): boolean {\n return [\n KeyCodesEnum.CONTROL,\n KeyCodesEnum.COMMAND_LEFT,\n KeyCodesEnum.COMMAND_RIGHT,\n KeyCodesEnum.COMMAND_FIREFOX,\n ].includes(code);\n}\n\nexport function isClear(code: string): boolean {\n return codesLetter.BACKSPACE === code || codesLetter.DELETE === code;\n}\n\nexport function isTab(code: string): boolean {\n return codesLetter.TAB === code;\n}\nexport function isTabKeyValue(key: string): boolean {\n return keyValues.TAB === key;\n}\n\nexport function isEnterKeyValue(key: string): boolean {\n return keyValues.ENTER === key;\n}\n\nexport function isCut(event: KeyboardEvent): boolean {\n return (\n (event.ctrlKey && event.code === 'KeyX') || // Ctrl + X on Windows\n (event.metaKey && event.code === 'KeyX')\n ); // Cmd + X on Mac\n}\nexport function isCopy(event: KeyboardEvent): boolean {\n return (\n (event.ctrlKey && event.code === 'KeyC') || // Ctrl + C on Windows\n (event.metaKey && event.code === 'KeyC')\n ); // Cmd + C on Mac\n}\nexport function isPaste(event: KeyboardEvent): boolean {\n return (\n (event.ctrlKey && event.code === 'KeyV') || // Ctrl + V on Windows\n (event.metaKey && event.code === 'KeyV')\n ); // Cmd + V on Mac\n}\nexport function isAll(event: KeyboardEvent): boolean {\n return (\n (event.ctrlKey && event.code === 'KeyA') || // Ctrl + A on Windows\n (event.metaKey && event.code === 'KeyA')\n ); // Cmd + A on Mac\n}\n"],"version":3}
|
|
@@ -8,7 +8,7 @@ import { g as getPropertyFromEvent, v as verifyTouchTarget } from './events-cf08
|
|
|
8
8
|
import { m as ColumnService, H as HEADER_SLOT } from './column.service-6f1faf2d.js';
|
|
9
9
|
import { g as getRange, a as isRangeSingleCell } from './selection.helpers-ac4368b0.js';
|
|
10
10
|
import { i as isEditInput } from './edit.utils-c3f5c9f4.js';
|
|
11
|
-
import {
|
|
11
|
+
import { c as isClear, d as isTab, f as isEnterKeyValue, h as isCopy, g as isCut, j as isPaste, k as isAll } from './key.utils-35bedfd7.js';
|
|
12
12
|
import { d as debounce_1 } from './debounce-7781346d.js';
|
|
13
13
|
import { V as ViewportStore, f as calculateRowHeaderSize } from './row-header-utils-3a6f6adc.js';
|
|
14
14
|
import { L as LocalScrollTimer, a as LocalScrollService, g as getContentSize, t as throttle_1 } from './throttle-f9cda5b0.js';
|
|
@@ -296,7 +296,7 @@ class KeyboardService {
|
|
|
296
296
|
return;
|
|
297
297
|
}
|
|
298
298
|
// pressed letter key
|
|
299
|
-
if (
|
|
299
|
+
if (e.key.length === 1) {
|
|
300
300
|
this.sv.change(e.key);
|
|
301
301
|
return;
|
|
302
302
|
}
|