handsontable 16.0.1 → 16.1.0-next-91b8a0f-20250905
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/3rdparty/walkontable/src/overlays.js +12 -2
- package/3rdparty/walkontable/src/overlays.mjs +12 -2
- package/3rdparty/walkontable/src/viewport.js +2 -6
- package/3rdparty/walkontable/src/viewport.mjs +2 -6
- package/CHANGELOG.md +37 -0
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/cellTypes/autocompleteType/accessors/index.js +7 -0
- package/cellTypes/autocompleteType/accessors/index.mjs +2 -0
- package/cellTypes/autocompleteType/accessors/valueGetter.js +14 -0
- package/cellTypes/autocompleteType/accessors/valueGetter.mjs +10 -0
- package/cellTypes/autocompleteType/accessors/valueSetter.js +25 -0
- package/cellTypes/autocompleteType/accessors/valueSetter.mjs +21 -0
- package/cellTypes/autocompleteType/autocompleteType.js +4 -1
- package/cellTypes/autocompleteType/autocompleteType.mjs +4 -1
- package/cellTypes/checkboxType/accessors/index.js +5 -0
- package/cellTypes/checkboxType/accessors/index.mjs +1 -0
- package/cellTypes/checkboxType/accessors/valueSetter.js +26 -0
- package/cellTypes/checkboxType/accessors/valueSetter.mjs +22 -0
- package/cellTypes/checkboxType/checkboxType.js +3 -1
- package/cellTypes/checkboxType/checkboxType.mjs +3 -1
- package/cellTypes/dropdownType/accessors/index.js +7 -0
- package/cellTypes/dropdownType/accessors/index.mjs +2 -0
- package/cellTypes/dropdownType/accessors/valueGetter.js +14 -0
- package/cellTypes/dropdownType/accessors/valueGetter.mjs +10 -0
- package/cellTypes/dropdownType/accessors/valueSetter.js +17 -0
- package/cellTypes/dropdownType/accessors/valueSetter.mjs +13 -0
- package/cellTypes/dropdownType/dropdownType.js +4 -1
- package/cellTypes/dropdownType/dropdownType.mjs +4 -1
- package/cellTypes/numericType/accessors/index.js +5 -0
- package/cellTypes/numericType/accessors/index.mjs +1 -0
- package/cellTypes/numericType/accessors/valueSetter.js +19 -0
- package/cellTypes/numericType/accessors/valueSetter.mjs +15 -0
- package/cellTypes/numericType/numericType.js +3 -1
- package/cellTypes/numericType/numericType.mjs +3 -1
- package/core/focusCatcher/index.js +37 -112
- package/core/focusCatcher/index.mjs +35 -110
- package/core/focusCatcher/utils.js +31 -0
- package/core/focusCatcher/utils.mjs +27 -0
- package/core/hooks/constants.js +242 -0
- package/core/hooks/constants.mjs +242 -0
- package/core/hooks/index.d.ts +22 -0
- package/core/viewportScroll/scrollStrategies/focusScroll.js +5 -1
- package/core/viewportScroll/scrollStrategies/focusScroll.mjs +5 -1
- package/core/viewportScroll/utils.js +1 -1
- package/core/viewportScroll/utils.mjs +1 -1
- package/core.d.ts +4 -0
- package/core.js +237 -139
- package/core.mjs +240 -142
- package/dataMap/dataMap.js +13 -3
- package/dataMap/dataMap.mjs +14 -4
- package/dataMap/dataSource.js +16 -0
- package/dataMap/dataSource.mjs +16 -0
- package/dataMap/metaManager/lazyFactoryMap.js +4 -3
- package/dataMap/metaManager/lazyFactoryMap.mjs +2 -1
- package/dataMap/metaManager/metaLayers/cellMeta.js +3 -2
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +3 -2
- package/dataMap/metaManager/metaSchema.js +289 -4
- package/dataMap/metaManager/metaSchema.mjs +289 -4
- package/dataMap/metaManager/utils.js +0 -11
- package/dataMap/metaManager/utils.mjs +0 -10
- package/dataMap/replaceData.js +1 -0
- package/dataMap/replaceData.mjs +1 -0
- package/dist/handsontable.css +281 -4
- package/dist/handsontable.full.css +281 -4
- package/dist/handsontable.full.js +7842 -2990
- package/dist/handsontable.full.min.css +4 -5
- package/dist/handsontable.full.min.js +167 -165
- package/dist/handsontable.js +9638 -4807
- package/dist/handsontable.min.css +4 -4
- package/dist/handsontable.min.js +52 -50
- package/dist/languages/all.js +231 -21
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/ar-AR.js +11 -1
- package/dist/languages/ar-AR.min.js +1 -1
- package/dist/languages/cs-CZ.js +11 -1
- package/dist/languages/cs-CZ.min.js +1 -1
- package/dist/languages/de-CH.js +11 -1
- package/dist/languages/de-CH.min.js +1 -1
- package/dist/languages/de-DE.js +11 -1
- package/dist/languages/de-DE.min.js +1 -1
- package/dist/languages/en-US.js +11 -1
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/es-MX.js +11 -1
- package/dist/languages/es-MX.min.js +1 -1
- package/dist/languages/fa-IR.js +11 -1
- package/dist/languages/fa-IR.min.js +1 -1
- package/dist/languages/fr-FR.js +11 -1
- package/dist/languages/fr-FR.min.js +1 -1
- package/dist/languages/hr-HR.js +11 -1
- package/dist/languages/hr-HR.min.js +1 -1
- package/dist/languages/it-IT.js +11 -1
- package/dist/languages/it-IT.min.js +1 -1
- package/dist/languages/ja-JP.js +11 -1
- package/dist/languages/ja-JP.min.js +1 -1
- package/dist/languages/ko-KR.js +11 -1
- package/dist/languages/ko-KR.min.js +1 -1
- package/dist/languages/lv-LV.js +11 -1
- package/dist/languages/lv-LV.min.js +1 -1
- package/dist/languages/nb-NO.js +11 -1
- package/dist/languages/nb-NO.min.js +1 -1
- package/dist/languages/nl-NL.js +11 -1
- package/dist/languages/nl-NL.min.js +1 -1
- package/dist/languages/pl-PL.js +11 -1
- package/dist/languages/pl-PL.min.js +1 -1
- package/dist/languages/pt-BR.js +11 -1
- package/dist/languages/pt-BR.min.js +1 -1
- package/dist/languages/ru-RU.js +11 -1
- package/dist/languages/ru-RU.min.js +1 -1
- package/dist/languages/sr-SP.js +11 -1
- package/dist/languages/sr-SP.min.js +1 -1
- package/dist/languages/zh-CN.js +11 -1
- package/dist/languages/zh-CN.min.js +1 -1
- package/dist/languages/zh-TW.js +11 -1
- package/dist/languages/zh-TW.min.js +1 -1
- package/editorManager.js +4 -4
- package/editorManager.mjs +4 -4
- package/editors/autocompleteEditor/autocompleteEditor.js +50 -112
- package/editors/autocompleteEditor/autocompleteEditor.mjs +51 -113
- package/editors/baseEditor/baseEditor.js +10 -6
- package/editors/baseEditor/baseEditor.mjs +10 -6
- package/editors/handsontableEditor/handsontableEditor.js +9 -9
- package/editors/handsontableEditor/handsontableEditor.mjs +9 -9
- package/editors/textEditor/textEditor.js +0 -7
- package/editors/textEditor/textEditor.mjs +0 -7
- package/focusManager.js +2 -2
- package/focusManager.mjs +2 -2
- package/helpers/a11y.js +15 -2
- package/helpers/a11y.mjs +10 -2
- package/helpers/console.js +12 -0
- package/helpers/console.mjs +11 -0
- package/helpers/dom/element.js +4 -4
- package/helpers/dom/element.mjs +4 -4
- package/helpers/mixed.js +65 -2
- package/helpers/mixed.mjs +63 -2
- package/helpers/number.js +28 -0
- package/helpers/number.mjs +26 -0
- package/helpers/object.js +35 -0
- package/helpers/object.mjs +34 -0
- package/helpers/string.js +19 -0
- package/helpers/string.mjs +18 -0
- package/helpers/templateLiteralTag.js +57 -1
- package/helpers/templateLiteralTag.mjs +56 -1
- package/i18n/constants.js +13 -1
- package/i18n/constants.mjs +13 -1
- package/i18n/languages/ar-AR.js +11 -1
- package/i18n/languages/ar-AR.mjs +11 -1
- package/i18n/languages/cs-CZ.js +11 -1
- package/i18n/languages/cs-CZ.mjs +11 -1
- package/i18n/languages/de-CH.js +11 -1
- package/i18n/languages/de-CH.mjs +11 -1
- package/i18n/languages/de-DE.js +11 -1
- package/i18n/languages/de-DE.mjs +11 -1
- package/i18n/languages/en-US.js +11 -1
- package/i18n/languages/en-US.mjs +11 -1
- package/i18n/languages/es-MX.js +11 -1
- package/i18n/languages/es-MX.mjs +11 -1
- package/i18n/languages/fa-IR.js +11 -1
- package/i18n/languages/fa-IR.mjs +11 -1
- package/i18n/languages/fr-FR.js +11 -1
- package/i18n/languages/fr-FR.mjs +11 -1
- package/i18n/languages/hr-HR.js +11 -1
- package/i18n/languages/hr-HR.mjs +11 -1
- package/i18n/languages/it-IT.js +11 -1
- package/i18n/languages/it-IT.mjs +11 -1
- package/i18n/languages/ja-JP.js +11 -1
- package/i18n/languages/ja-JP.mjs +11 -1
- package/i18n/languages/ko-KR.js +11 -1
- package/i18n/languages/ko-KR.mjs +11 -1
- package/i18n/languages/lv-LV.js +11 -1
- package/i18n/languages/lv-LV.mjs +11 -1
- package/i18n/languages/nb-NO.js +11 -1
- package/i18n/languages/nb-NO.mjs +11 -1
- package/i18n/languages/nl-NL.js +11 -1
- package/i18n/languages/nl-NL.mjs +11 -1
- package/i18n/languages/pl-PL.js +11 -1
- package/i18n/languages/pl-PL.mjs +11 -1
- package/i18n/languages/pt-BR.js +11 -1
- package/i18n/languages/pt-BR.mjs +11 -1
- package/i18n/languages/ru-RU.js +11 -1
- package/i18n/languages/ru-RU.mjs +11 -1
- package/i18n/languages/sr-SP.js +11 -1
- package/i18n/languages/sr-SP.mjs +11 -1
- package/i18n/languages/zh-CN.js +11 -1
- package/i18n/languages/zh-CN.mjs +11 -1
- package/i18n/languages/zh-TW.js +11 -1
- package/i18n/languages/zh-TW.mjs +11 -1
- package/i18n/phraseFormatters/index.js +3 -1
- package/i18n/phraseFormatters/index.mjs +3 -1
- package/i18n/registry.js +5 -6
- package/i18n/registry.mjs +5 -6
- package/index.d.ts +27 -0
- package/languages/all.js +231 -21
- package/languages/ar-AR.js +11 -1
- package/languages/ar-AR.mjs +11 -1
- package/languages/cs-CZ.js +11 -1
- package/languages/cs-CZ.mjs +11 -1
- package/languages/de-CH.js +11 -1
- package/languages/de-CH.mjs +11 -1
- package/languages/de-DE.js +11 -1
- package/languages/de-DE.mjs +11 -1
- package/languages/en-US.js +11 -1
- package/languages/en-US.mjs +11 -1
- package/languages/es-MX.js +11 -1
- package/languages/es-MX.mjs +11 -1
- package/languages/fa-IR.js +11 -1
- package/languages/fa-IR.mjs +11 -1
- package/languages/fr-FR.js +11 -1
- package/languages/fr-FR.mjs +11 -1
- package/languages/hr-HR.js +11 -1
- package/languages/hr-HR.mjs +11 -1
- package/languages/index.js +231 -21
- package/languages/it-IT.js +11 -1
- package/languages/it-IT.mjs +11 -1
- package/languages/ja-JP.js +11 -1
- package/languages/ja-JP.mjs +11 -1
- package/languages/ko-KR.js +11 -1
- package/languages/ko-KR.mjs +11 -1
- package/languages/lv-LV.js +11 -1
- package/languages/lv-LV.mjs +11 -1
- package/languages/nb-NO.js +11 -1
- package/languages/nb-NO.mjs +11 -1
- package/languages/nl-NL.js +11 -1
- package/languages/nl-NL.mjs +11 -1
- package/languages/pl-PL.js +11 -1
- package/languages/pl-PL.mjs +11 -1
- package/languages/pt-BR.js +11 -1
- package/languages/pt-BR.mjs +11 -1
- package/languages/ru-RU.js +11 -1
- package/languages/ru-RU.mjs +11 -1
- package/languages/sr-SP.js +11 -1
- package/languages/sr-SP.mjs +11 -1
- package/languages/zh-CN.js +11 -1
- package/languages/zh-CN.mjs +11 -1
- package/languages/zh-TW.js +11 -1
- package/languages/zh-TW.mjs +11 -1
- package/mixins/localHooks.js +16 -0
- package/mixins/localHooks.mjs +16 -0
- package/package.json +19 -1
- package/plugins/autoRowSize/autoRowSize.js +43 -6
- package/plugins/autoRowSize/autoRowSize.mjs +43 -6
- package/plugins/autofill/autofill.js +50 -3
- package/plugins/autofill/autofill.mjs +50 -3
- package/plugins/base/base.js +86 -15
- package/plugins/base/base.mjs +87 -16
- package/plugins/collapsibleColumns/collapsibleColumns.js +4 -4
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +4 -4
- package/plugins/columnSorting/columnSorting.js +3 -3
- package/plugins/columnSorting/columnSorting.mjs +3 -3
- package/plugins/comments/comments.js +52 -22
- package/plugins/comments/comments.mjs +52 -22
- package/plugins/comments/contextMenuItem/addEditComment.js +3 -3
- package/plugins/comments/contextMenuItem/addEditComment.mjs +3 -3
- package/plugins/comments/contextMenuItem/readOnlyComment.js +2 -2
- package/plugins/comments/contextMenuItem/readOnlyComment.mjs +2 -2
- package/plugins/comments/contextMenuItem/removeComment.js +2 -2
- package/plugins/comments/contextMenuItem/removeComment.mjs +2 -2
- package/plugins/contextMenu/contextMenu.js +4 -5
- package/plugins/contextMenu/contextMenu.mjs +4 -5
- package/plugins/contextMenu/menu/cursor.js +1 -1
- package/plugins/contextMenu/menu/cursor.mjs +1 -1
- package/plugins/contextMenu/menu/defaultShortcutsList.js +5 -5
- package/plugins/contextMenu/menu/defaultShortcutsList.mjs +5 -5
- package/plugins/contextMenu/menu/menu.js +3 -3
- package/plugins/contextMenu/menu/menu.mjs +3 -3
- package/plugins/contextMenu/menu/positioner.js +1 -1
- package/plugins/contextMenu/menu/positioner.mjs +1 -1
- package/plugins/contextMenu/predefinedItems/alignment.js +1 -1
- package/plugins/contextMenu/predefinedItems/alignment.mjs +1 -1
- package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +1 -1
- package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -3
- package/plugins/contextMenu/predefinedItems/columnRight.js +3 -3
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +3 -3
- package/plugins/contextMenu/predefinedItems/readOnly.js +1 -1
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +1 -1
- package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +1 -1
- package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +1 -1
- package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.js +3 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +3 -3
- package/plugins/copyPaste/contextMenuItem/copy.js +1 -1
- package/plugins/copyPaste/contextMenuItem/copy.mjs +1 -1
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +3 -3
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +3 -3
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +3 -3
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +3 -3
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +3 -3
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +3 -3
- package/plugins/copyPaste/contextMenuItem/cut.js +1 -1
- package/plugins/copyPaste/contextMenuItem/cut.mjs +1 -1
- package/plugins/copyPaste/copyPaste.js +75 -40
- package/plugins/copyPaste/copyPaste.mjs +76 -41
- package/plugins/customBorders/customBorders.js +1 -1
- package/plugins/customBorders/customBorders.mjs +1 -1
- package/plugins/dialog/dialog.d.ts +23 -0
- package/plugins/dialog/dialog.js +489 -0
- package/plugins/dialog/dialog.mjs +485 -0
- package/plugins/dialog/index.d.ts +1 -0
- package/plugins/dialog/index.js +7 -0
- package/plugins/dialog/index.mjs +1 -0
- package/plugins/dialog/ui.js +264 -0
- package/plugins/dialog/ui.mjs +259 -0
- package/plugins/dropdownMenu/dropdownMenu.js +5 -4
- package/plugins/dropdownMenu/dropdownMenu.mjs +5 -4
- package/plugins/filters/filters.js +2 -2
- package/plugins/filters/filters.mjs +2 -2
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +3 -3
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +3 -3
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +4 -4
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +4 -4
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +3 -3
- package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +3 -3
- package/plugins/hiddenRows/contextMenuItem/showRow.js +4 -4
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +4 -4
- package/plugins/index.d.ts +9 -0
- package/plugins/index.js +9 -0
- package/plugins/index.mjs +7 -1
- package/plugins/loading/content.js +36 -0
- package/plugins/loading/content.mjs +31 -0
- package/plugins/loading/index.d.ts +1 -0
- package/plugins/loading/index.js +7 -0
- package/plugins/loading/index.mjs +1 -0
- package/plugins/loading/loading.d.ts +19 -0
- package/plugins/loading/loading.js +290 -0
- package/plugins/loading/loading.mjs +285 -0
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
- package/plugins/manualColumnMove/manualColumnMove.js +3 -3
- package/plugins/manualColumnMove/manualColumnMove.mjs +3 -3
- package/plugins/manualColumnResize/manualColumnResize.js +3 -3
- package/plugins/manualColumnResize/manualColumnResize.mjs +3 -3
- package/plugins/manualRowMove/manualRowMove.js +4 -4
- package/plugins/manualRowMove/manualRowMove.mjs +4 -4
- package/plugins/manualRowResize/manualRowResize.js +5 -2
- package/plugins/manualRowResize/manualRowResize.mjs +5 -2
- package/plugins/mergeCells/contextMenuItem/toggleMerge.js +15 -15
- package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +15 -15
- package/plugins/mergeCells/focusOrder.js +75 -39
- package/plugins/mergeCells/focusOrder.mjs +75 -39
- package/plugins/mergeCells/mergeCells.js +26 -19
- package/plugins/mergeCells/mergeCells.mjs +26 -19
- package/plugins/mergeCells/renderer.js +14 -8
- package/plugins/mergeCells/renderer.mjs +14 -8
- package/plugins/multiColumnSorting/multiColumnSorting.js +3 -3
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +3 -3
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +3 -3
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +3 -3
- package/plugins/nestedHeaders/nestedHeaders.js +47 -41
- package/plugins/nestedHeaders/nestedHeaders.mjs +47 -41
- package/plugins/nestedRows/nestedRows.js +3 -3
- package/plugins/nestedRows/nestedRows.mjs +3 -3
- package/plugins/nestedRows/ui/collapsing.js +1 -2
- package/plugins/nestedRows/ui/collapsing.mjs +1 -2
- package/plugins/nestedRows/ui/contextMenu.js +4 -4
- package/plugins/nestedRows/ui/contextMenu.mjs +4 -4
- package/plugins/nestedRows/ui/headers.js +4 -1
- package/plugins/nestedRows/ui/headers.mjs +4 -1
- package/plugins/pagination/focusController.js +27 -0
- package/plugins/pagination/focusController.mjs +23 -0
- package/plugins/pagination/index.d.ts +1 -0
- package/plugins/pagination/index.js +7 -0
- package/plugins/pagination/index.mjs +1 -0
- package/plugins/pagination/pagination.d.ts +52 -0
- package/plugins/pagination/pagination.js +1034 -0
- package/plugins/pagination/pagination.mjs +1030 -0
- package/plugins/pagination/strategies/autoPageSize.js +96 -0
- package/plugins/pagination/strategies/autoPageSize.mjs +92 -0
- package/plugins/pagination/strategies/fixedPageSize.js +88 -0
- package/plugins/pagination/strategies/fixedPageSize.mjs +84 -0
- package/plugins/pagination/strategies/index.js +22 -0
- package/plugins/pagination/strategies/index.mjs +18 -0
- package/plugins/pagination/ui.js +449 -0
- package/plugins/pagination/ui.mjs +443 -0
- package/plugins/pagination/utils.js +28 -0
- package/plugins/pagination/utils.mjs +24 -0
- package/plugins/stretchColumns/calculator.js +4 -0
- package/plugins/stretchColumns/calculator.mjs +4 -0
- package/plugins/stretchColumns/stretchColumns.js +1 -1
- package/plugins/stretchColumns/stretchColumns.mjs +1 -1
- package/plugins/undoRedo/actions/dataChange.js +17 -15
- package/plugins/undoRedo/actions/dataChange.mjs +17 -15
- package/renderers/checkboxRenderer/checkboxRenderer.js +3 -3
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +3 -3
- package/selection/range.js +11 -0
- package/selection/range.mjs +11 -0
- package/selection/selection.js +163 -124
- package/selection/selection.mjs +163 -124
- package/selection/transformation/_base.js +448 -0
- package/selection/transformation/_base.mjs +443 -0
- package/selection/transformation/extender.js +55 -0
- package/selection/transformation/extender.mjs +51 -0
- package/selection/transformation/focus.js +77 -0
- package/selection/transformation/focus.mjs +73 -0
- package/selection/transformation/index.js +7 -0
- package/selection/transformation/index.mjs +2 -0
- package/selection/utils.js +2 -1
- package/selection/utils.mjs +2 -1
- package/settings.d.ts +10 -1
- package/shortcutContexts/commands/editor/fastOpen.js +1 -1
- package/shortcutContexts/commands/editor/fastOpen.mjs +1 -1
- package/shortcutContexts/commands/editor/open.js +10 -4
- package/shortcutContexts/commands/editor/open.mjs +10 -4
- package/shortcutContexts/commands/extendCellsSelection/down.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +2 -2
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +2 -2
- package/shortcutContexts/commands/extendCellsSelection/left.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/right.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/up.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +2 -2
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +2 -2
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +2 -2
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +2 -2
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +5 -2
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +5 -2
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +5 -2
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +5 -2
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +1 -1
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +1 -1
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +1 -1
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +1 -1
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +1 -1
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +1 -1
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +1 -1
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +1 -1
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +1 -1
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +1 -1
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +1 -1
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +1 -1
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +2 -2
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +2 -2
- package/shortcutContexts/commands/scrollToFocusedCell.js +1 -1
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +1 -1
- package/shortcutContexts/grid.js +3 -3
- package/shortcutContexts/grid.mjs +3 -3
- package/shortcuts/context.js +4 -1
- package/shortcuts/context.mjs +4 -1
- package/shortcuts/manager.js +17 -3
- package/shortcuts/manager.mjs +17 -3
- package/styles/handsontable.css +288 -22
- package/styles/handsontable.min.css +3 -3
- package/styles/ht-theme-classic.css +828 -0
- package/styles/ht-theme-classic.min.css +30 -0
- package/styles/ht-theme-horizon.css +122 -26
- package/styles/ht-theme-horizon.min.css +3 -3
- package/styles/ht-theme-main.css +124 -28
- package/styles/ht-theme-main.min.css +3 -3
- package/tableView.js +61 -25
- package/tableView.mjs +61 -25
- package/utils/a11yAnnouncer.js +70 -0
- package/utils/a11yAnnouncer.mjs +64 -0
- package/{core/focusCatcher → utils}/focusDetector.js +30 -12
- package/{core/focusCatcher → utils}/focusDetector.mjs +30 -12
- package/utils/samplesGenerator.js +17 -1
- package/utils/samplesGenerator.mjs +17 -1
- package/utils/stylesHandler.js +23 -8
- package/utils/stylesHandler.mjs +23 -8
- package/utils/valueAccessors.js +45 -0
- package/utils/valueAccessors.mjs +40 -0
- package/validators/autocompleteValidator/autocompleteValidator.js +2 -1
- package/validators/autocompleteValidator/autocompleteValidator.mjs +2 -1
- package/selection/transformation.js +0 -335
- package/selection/transformation.mjs +0 -331
@@ -1,3 +1,5 @@
|
|
1
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
2
|
+
import "core-js/modules/esnext.iterator.some.js";
|
1
3
|
export const command = {
|
2
4
|
name: 'moveCellSelectionInlineEnd',
|
3
5
|
callback(hot, event) {
|
@@ -5,10 +7,11 @@ export const command = {
|
|
5
7
|
selection
|
6
8
|
} = hot;
|
7
9
|
const settings = hot.getSettings();
|
8
|
-
const
|
10
|
+
const selectedRanges = hot.getSelectedRange();
|
11
|
+
const selectedRange = hot.getSelectedRangeActive();
|
9
12
|
const tabMoves = typeof settings.tabMoves === 'function' ? settings.tabMoves(event) : settings.tabMoves;
|
10
13
|
selection.markSource('keyboard');
|
11
|
-
if (selection.isMultiple() && !selectedRange.isHeader() && hot.countRenderedCols() > 0 && hot.countRenderedRows() > 0) {
|
14
|
+
if ((selectedRanges.some(range => selection.isMultiple(range)) || selectedRanges.length > 1) && !selectedRange.isHeader() && hot.countRenderedCols() > 0 && hot.countRenderedRows() > 0) {
|
12
15
|
selection.transformFocus(-tabMoves.row, -tabMoves.col);
|
13
16
|
} else {
|
14
17
|
selection.transformStart(-tabMoves.row, -tabMoves.col);
|
@@ -1,6 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
5
|
+
require("core-js/modules/esnext.iterator.some.js");
|
4
6
|
const command = exports.command = {
|
5
7
|
name: 'moveCellSelectionInlineStart',
|
6
8
|
callback(hot, event) {
|
@@ -8,10 +10,11 @@ const command = exports.command = {
|
|
8
10
|
selection
|
9
11
|
} = hot;
|
10
12
|
const settings = hot.getSettings();
|
11
|
-
const
|
13
|
+
const selectedRanges = hot.getSelectedRange();
|
14
|
+
const selectedRange = hot.getSelectedRangeActive();
|
12
15
|
const tabMoves = typeof settings.tabMoves === 'function' ? settings.tabMoves(event) : settings.tabMoves;
|
13
16
|
selection.markSource('keyboard');
|
14
|
-
if (selection.isMultiple() && !selectedRange.isHeader() && hot.countRenderedCols() > 0 && hot.countRenderedRows() > 0) {
|
17
|
+
if ((selectedRanges.some(range => selection.isMultiple(range)) || selectedRanges.length > 1) && !selectedRange.isHeader() && hot.countRenderedCols() > 0 && hot.countRenderedRows() > 0) {
|
15
18
|
selection.transformFocus(tabMoves.row, tabMoves.col);
|
16
19
|
} else {
|
17
20
|
selection.transformStart(tabMoves.row, tabMoves.col);
|
@@ -1,3 +1,5 @@
|
|
1
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
2
|
+
import "core-js/modules/esnext.iterator.some.js";
|
1
3
|
export const command = {
|
2
4
|
name: 'moveCellSelectionInlineStart',
|
3
5
|
callback(hot, event) {
|
@@ -5,10 +7,11 @@ export const command = {
|
|
5
7
|
selection
|
6
8
|
} = hot;
|
7
9
|
const settings = hot.getSettings();
|
8
|
-
const
|
10
|
+
const selectedRanges = hot.getSelectedRange();
|
11
|
+
const selectedRange = hot.getSelectedRangeActive();
|
9
12
|
const tabMoves = typeof settings.tabMoves === 'function' ? settings.tabMoves(event) : settings.tabMoves;
|
10
13
|
selection.markSource('keyboard');
|
11
|
-
if (selection.isMultiple() && !selectedRange.isHeader() && hot.countRenderedCols() > 0 && hot.countRenderedRows() > 0) {
|
14
|
+
if ((selectedRanges.some(range => selection.isMultiple(range)) || selectedRanges.length > 1) && !selectedRange.isHeader() && hot.countRenderedCols() > 0 && hot.countRenderedRows() > 0) {
|
12
15
|
selection.transformFocus(tabMoves.row, tabMoves.col);
|
13
16
|
} else {
|
14
17
|
selection.transformStart(tabMoves.row, tabMoves.col);
|
@@ -9,7 +9,7 @@ const command = exports.command = {
|
|
9
9
|
} = hot;
|
10
10
|
const {
|
11
11
|
col
|
12
|
-
} = hot.
|
12
|
+
} = hot.getSelectedRangeActive().highlight;
|
13
13
|
let row = hot.rowIndexMapper.getNearestNotHiddenIndex(hot.countRows() - 1, -1);
|
14
14
|
if (row === null) {
|
15
15
|
row = -1;
|
@@ -9,7 +9,7 @@ const command = exports.command = {
|
|
9
9
|
columnIndexMapper
|
10
10
|
} = hot;
|
11
11
|
selection.markSource('keyboard');
|
12
|
-
selection.setRangeStart(hot._createCellCoords(hot.
|
12
|
+
selection.setRangeStart(hot._createCellCoords(hot.getSelectedRangeActive().highlight.row, columnIndexMapper.getNearestNotHiddenIndex(hot.countCols() - 1, -1)));
|
13
13
|
selection.markEndSource();
|
14
14
|
}
|
15
15
|
};
|
@@ -6,7 +6,7 @@ export const command = {
|
|
6
6
|
columnIndexMapper
|
7
7
|
} = hot;
|
8
8
|
selection.markSource('keyboard');
|
9
|
-
selection.setRangeStart(hot._createCellCoords(hot.
|
9
|
+
selection.setRangeStart(hot._createCellCoords(hot.getSelectedRangeActive().highlight.row, columnIndexMapper.getNearestNotHiddenIndex(hot.countCols() - 1, -1)));
|
10
10
|
selection.markEndSource();
|
11
11
|
}
|
12
12
|
};
|
@@ -9,7 +9,7 @@ const command = exports.command = {
|
|
9
9
|
columnIndexMapper
|
10
10
|
} = hot;
|
11
11
|
const fixedColumns = parseInt(hot.getSettings().fixedColumnsStart, 10);
|
12
|
-
const row = hot.
|
12
|
+
const row = hot.getSelectedRangeActive().highlight.row;
|
13
13
|
const column = columnIndexMapper.getNearestNotHiddenIndex(fixedColumns, 1);
|
14
14
|
selection.markSource('keyboard');
|
15
15
|
selection.setRangeStart(hot._createCellCoords(row, column));
|
@@ -6,7 +6,7 @@ export const command = {
|
|
6
6
|
columnIndexMapper
|
7
7
|
} = hot;
|
8
8
|
const fixedColumns = parseInt(hot.getSettings().fixedColumnsStart, 10);
|
9
|
-
const row = hot.
|
9
|
+
const row = hot.getSelectedRangeActive().highlight.row;
|
10
10
|
const column = columnIndexMapper.getNearestNotHiddenIndex(fixedColumns, 1);
|
11
11
|
selection.markSource('keyboard');
|
12
12
|
selection.setRangeStart(hot._createCellCoords(row, column));
|
@@ -8,7 +8,7 @@ const command = exports.command = {
|
|
8
8
|
selection,
|
9
9
|
columnIndexMapper
|
10
10
|
} = hot;
|
11
|
-
const row = hot.
|
11
|
+
const row = hot.getSelectedRangeActive().highlight.row;
|
12
12
|
let column = columnIndexMapper.getNearestNotHiddenIndex(...(hot.isRtl() ? [hot.countCols() - 1, -1] : [0, 1]));
|
13
13
|
if (column === null) {
|
14
14
|
column = hot.isRtl() ? -1 : -hot.countRowHeaders();
|
@@ -5,7 +5,7 @@ export const command = {
|
|
5
5
|
selection,
|
6
6
|
columnIndexMapper
|
7
7
|
} = hot;
|
8
|
-
const row = hot.
|
8
|
+
const row = hot.getSelectedRangeActive().highlight.row;
|
9
9
|
let column = columnIndexMapper.getNearestNotHiddenIndex(...(hot.isRtl() ? [hot.countCols() - 1, -1] : [0, 1]));
|
10
10
|
if (column === null) {
|
11
11
|
column = hot.isRtl() ? -1 : -hot.countRowHeaders();
|
@@ -10,7 +10,7 @@ const command = exports.command = {
|
|
10
10
|
} = hot;
|
11
11
|
const {
|
12
12
|
row
|
13
|
-
} = hot.
|
13
|
+
} = hot.getSelectedRangeActive().highlight;
|
14
14
|
let column = columnIndexMapper.getNearestNotHiddenIndex(...(hot.isRtl() ? [0, 1] : [hot.countCols() - 1, -1]));
|
15
15
|
if (column === null) {
|
16
16
|
column = hot.isRtl() ? -hot.countRowHeaders() : -1;
|
@@ -7,7 +7,7 @@ export const command = {
|
|
7
7
|
} = hot;
|
8
8
|
const {
|
9
9
|
row
|
10
|
-
} = hot.
|
10
|
+
} = hot.getSelectedRangeActive().highlight;
|
11
11
|
let column = columnIndexMapper.getNearestNotHiddenIndex(...(hot.isRtl() ? [0, 1] : [hot.countCols() - 1, -1]));
|
12
12
|
if (column === null) {
|
13
13
|
column = hot.isRtl() ? -hot.countRowHeaders() : -1;
|
@@ -9,7 +9,7 @@ const command = exports.command = {
|
|
9
9
|
} = hot;
|
10
10
|
const {
|
11
11
|
col
|
12
|
-
} = hot.
|
12
|
+
} = hot.getSelectedRangeActive().highlight;
|
13
13
|
let row = hot.rowIndexMapper.getNearestNotHiddenIndex(0, 1);
|
14
14
|
if (row === null) {
|
15
15
|
row = -hot.countColHeaders();
|
@@ -13,7 +13,7 @@ const command = exports.command = {
|
|
13
13
|
const columnHeadersCount = navigableHeaders ? hot.countColHeaders() : 0;
|
14
14
|
const {
|
15
15
|
row
|
16
|
-
} = hot.
|
16
|
+
} = hot.getSelectedRangeActive().highlight;
|
17
17
|
let rowsStep = hot.countVisibleRows() + columnHeadersCount;
|
18
18
|
rowsStep = rowsStep === 0 ? -1 : -rowsStep;
|
19
19
|
|
@@ -29,7 +29,7 @@ const command = exports.command = {
|
|
29
29
|
selection.markSource('keyboard');
|
30
30
|
selection.transformStart(rowsStep, 0);
|
31
31
|
selection.markEndSource();
|
32
|
-
if (hot.
|
32
|
+
if (hot.getSelectedRangeActive().highlight.row < 0) {
|
33
33
|
hot.scrollViewportTo({
|
34
34
|
row: 0
|
35
35
|
});
|
@@ -10,7 +10,7 @@ export const command = {
|
|
10
10
|
const columnHeadersCount = navigableHeaders ? hot.countColHeaders() : 0;
|
11
11
|
const {
|
12
12
|
row
|
13
|
-
} = hot.
|
13
|
+
} = hot.getSelectedRangeActive().highlight;
|
14
14
|
let rowsStep = hot.countVisibleRows() + columnHeadersCount;
|
15
15
|
rowsStep = rowsStep === 0 ? -1 : -rowsStep;
|
16
16
|
|
@@ -26,7 +26,7 @@ export const command = {
|
|
26
26
|
selection.markSource('keyboard');
|
27
27
|
selection.transformStart(rowsStep, 0);
|
28
28
|
selection.markEndSource();
|
29
|
-
if (hot.
|
29
|
+
if (hot.getSelectedRangeActive().highlight.row < 0) {
|
30
30
|
hot.scrollViewportTo({
|
31
31
|
row: 0
|
32
32
|
});
|
@@ -6,7 +6,7 @@ const command = exports.command = {
|
|
6
6
|
callback(hot) {
|
7
7
|
const {
|
8
8
|
highlight
|
9
|
-
} = hot.
|
9
|
+
} = hot.getSelectedRangeActive();
|
10
10
|
const firstVisibleRow = hot.getFirstFullyVisibleRow() - 1;
|
11
11
|
const firstVisibleColumn = hot.getFirstFullyVisibleColumn() - 1;
|
12
12
|
const lastVisibleRow = hot.getLastFullyVisibleRow() + 1;
|
@@ -3,7 +3,7 @@ export const command = {
|
|
3
3
|
callback(hot) {
|
4
4
|
const {
|
5
5
|
highlight
|
6
|
-
} = hot.
|
6
|
+
} = hot.getSelectedRangeActive();
|
7
7
|
const firstVisibleRow = hot.getFirstFullyVisibleRow() - 1;
|
8
8
|
const firstVisibleColumn = hot.getFirstFullyVisibleColumn() - 1;
|
9
9
|
const lastVisibleRow = hot.getLastFullyVisibleRow() + 1;
|
package/shortcutContexts/grid.js
CHANGED
@@ -40,14 +40,14 @@ function shortcutsGridContext(hot) {
|
|
40
40
|
callback: () => commandsPool.selectAllCells(),
|
41
41
|
runOnlyIf: () => {
|
42
42
|
var _hot$getSelectedRange;
|
43
|
-
return !((_hot$getSelectedRange = hot.
|
43
|
+
return !((_hot$getSelectedRange = hot.getSelectedRangeActive()) !== null && _hot$getSelectedRange !== void 0 && _hot$getSelectedRange.highlight.isHeader());
|
44
44
|
}
|
45
45
|
}, {
|
46
46
|
keys: [['Control/Meta', 'A']],
|
47
47
|
callback: () => {},
|
48
48
|
runOnlyIf: () => {
|
49
49
|
var _hot$getSelectedRange2;
|
50
|
-
return (_hot$getSelectedRange2 = hot.
|
50
|
+
return (_hot$getSelectedRange2 = hot.getSelectedRangeActive()) === null || _hot$getSelectedRange2 === void 0 ? void 0 : _hot$getSelectedRange2.highlight.isHeader();
|
51
51
|
},
|
52
52
|
preventDefault: true
|
53
53
|
}, {
|
@@ -58,7 +58,7 @@ function shortcutsGridContext(hot) {
|
|
58
58
|
callback: () => commandsPool.populateSelectedCellsData(),
|
59
59
|
runOnlyIf: () => {
|
60
60
|
var _hot$getSelectedRange3, _hot$getSelectedRange4;
|
61
|
-
return !((_hot$getSelectedRange3 = hot.
|
61
|
+
return !((_hot$getSelectedRange3 = hot.getSelectedRangeActive()) !== null && _hot$getSelectedRange3 !== void 0 && _hot$getSelectedRange3.highlight.isHeader()) && ((_hot$getSelectedRange4 = hot.getSelectedRangeActive()) === null || _hot$getSelectedRange4 === void 0 ? void 0 : _hot$getSelectedRange4.getCellsCount()) > 1;
|
62
62
|
}
|
63
63
|
}, {
|
64
64
|
keys: [['Control', 'Space']],
|
@@ -36,14 +36,14 @@ export function shortcutsGridContext(hot) {
|
|
36
36
|
callback: () => commandsPool.selectAllCells(),
|
37
37
|
runOnlyIf: () => {
|
38
38
|
var _hot$getSelectedRange;
|
39
|
-
return !((_hot$getSelectedRange = hot.
|
39
|
+
return !((_hot$getSelectedRange = hot.getSelectedRangeActive()) !== null && _hot$getSelectedRange !== void 0 && _hot$getSelectedRange.highlight.isHeader());
|
40
40
|
}
|
41
41
|
}, {
|
42
42
|
keys: [['Control/Meta', 'A']],
|
43
43
|
callback: () => {},
|
44
44
|
runOnlyIf: () => {
|
45
45
|
var _hot$getSelectedRange2;
|
46
|
-
return (_hot$getSelectedRange2 = hot.
|
46
|
+
return (_hot$getSelectedRange2 = hot.getSelectedRangeActive()) === null || _hot$getSelectedRange2 === void 0 ? void 0 : _hot$getSelectedRange2.highlight.isHeader();
|
47
47
|
},
|
48
48
|
preventDefault: true
|
49
49
|
}, {
|
@@ -54,7 +54,7 @@ export function shortcutsGridContext(hot) {
|
|
54
54
|
callback: () => commandsPool.populateSelectedCellsData(),
|
55
55
|
runOnlyIf: () => {
|
56
56
|
var _hot$getSelectedRange3, _hot$getSelectedRange4;
|
57
|
-
return !((_hot$getSelectedRange3 = hot.
|
57
|
+
return !((_hot$getSelectedRange3 = hot.getSelectedRangeActive()) !== null && _hot$getSelectedRange3 !== void 0 && _hot$getSelectedRange3.highlight.isHeader()) && ((_hot$getSelectedRange4 = hot.getSelectedRangeActive()) === null || _hot$getSelectedRange4 === void 0 ? void 0 : _hot$getSelectedRange4.getCellsCount()) > 1;
|
58
58
|
}
|
59
59
|
}, {
|
60
60
|
keys: [['Control', 'Space']],
|
package/shortcuts/context.js
CHANGED
@@ -34,9 +34,11 @@ function isContextObject(objectToCheck) {
|
|
34
34
|
* @alias ShortcutContext
|
35
35
|
* @class ShortcutContext
|
36
36
|
* @param {string} name The name of the keyboard shortcut context
|
37
|
+
* @param {string} [scope='table'] The scope of the shortcut: `'table'` or `'global'`
|
37
38
|
* @returns {object}
|
38
39
|
*/
|
39
|
-
const createContext = name
|
40
|
+
const createContext = function (name) {
|
41
|
+
let scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'table';
|
40
42
|
const SHORTCUTS = (0, _uniqueMap.createUniqueMap)({
|
41
43
|
errorIdExists: keys => `The "${keys}" shortcut is already registered in the "${name}" context.`
|
42
44
|
});
|
@@ -212,6 +214,7 @@ const createContext = name => {
|
|
212
214
|
};
|
213
215
|
return {
|
214
216
|
__kindOf,
|
217
|
+
scope,
|
215
218
|
addShortcut,
|
216
219
|
addShortcuts,
|
217
220
|
getShortcuts,
|
package/shortcuts/context.mjs
CHANGED
@@ -30,9 +30,11 @@ export function isContextObject(objectToCheck) {
|
|
30
30
|
* @alias ShortcutContext
|
31
31
|
* @class ShortcutContext
|
32
32
|
* @param {string} name The name of the keyboard shortcut context
|
33
|
+
* @param {string} [scope='table'] The scope of the shortcut: `'table'` or `'global'`
|
33
34
|
* @returns {object}
|
34
35
|
*/
|
35
|
-
export const createContext = name
|
36
|
+
export const createContext = function (name) {
|
37
|
+
let scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'table';
|
36
38
|
const SHORTCUTS = createUniqueMap({
|
37
39
|
errorIdExists: keys => `The "${keys}" shortcut is already registered in the "${name}" context.`
|
38
40
|
});
|
@@ -208,6 +210,7 @@ export const createContext = name => {
|
|
208
210
|
};
|
209
211
|
return {
|
210
212
|
__kindOf,
|
213
|
+
scope,
|
211
214
|
addShortcut,
|
212
215
|
addShortcuts,
|
213
216
|
getShortcuts,
|
package/shortcuts/manager.js
CHANGED
@@ -50,10 +50,12 @@ const createShortcutManager = _ref => {
|
|
50
50
|
*
|
51
51
|
* @memberof ShortcutManager#
|
52
52
|
* @param {string} contextName The name of the new shortcut context
|
53
|
+
* @param {string} [scope='table'] The scope of the shortcut: `'table'` or `'global'`
|
53
54
|
* @returns {object}
|
54
55
|
*/
|
55
|
-
const addContext = contextName
|
56
|
-
|
56
|
+
const addContext = function (contextName) {
|
57
|
+
let scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'table';
|
58
|
+
const context = (0, _context.createContext)(contextName, scope);
|
57
59
|
CONTEXTS.addItem(contextName, context);
|
58
60
|
return context;
|
59
61
|
};
|
@@ -153,12 +155,24 @@ const createShortcutManager = _ref => {
|
|
153
155
|
return isExecutionCancelled;
|
154
156
|
};
|
155
157
|
|
158
|
+
/**
|
159
|
+
* Handle the event with the scope of the active context.
|
160
|
+
*
|
161
|
+
* @param {KeyboardEvent} event The keyboard event.
|
162
|
+
* @returns {boolean}
|
163
|
+
*/
|
164
|
+
const handleEventWithScope = event => {
|
165
|
+
const context = getActiveContextName();
|
166
|
+
const activeContext = (0, _context.isContextObject)(context) ? context : getContext(context);
|
167
|
+
return handleEvent(event, activeContext.scope);
|
168
|
+
};
|
169
|
+
|
156
170
|
/**
|
157
171
|
* Internal key recorder.
|
158
172
|
*
|
159
173
|
* @private
|
160
174
|
*/
|
161
|
-
const keyRecorder = (0, _recorder.useRecorder)(ownerWindow,
|
175
|
+
const keyRecorder = (0, _recorder.useRecorder)(ownerWindow, handleEventWithScope, beforeKeyDown, afterKeyDown, recorderCallback);
|
162
176
|
keyRecorder.mount();
|
163
177
|
return {
|
164
178
|
addContext,
|
package/shortcuts/manager.mjs
CHANGED
@@ -47,10 +47,12 @@ export const createShortcutManager = _ref => {
|
|
47
47
|
*
|
48
48
|
* @memberof ShortcutManager#
|
49
49
|
* @param {string} contextName The name of the new shortcut context
|
50
|
+
* @param {string} [scope='table'] The scope of the shortcut: `'table'` or `'global'`
|
50
51
|
* @returns {object}
|
51
52
|
*/
|
52
|
-
const addContext = contextName
|
53
|
-
|
53
|
+
const addContext = function (contextName) {
|
54
|
+
let scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'table';
|
55
|
+
const context = createContext(contextName, scope);
|
54
56
|
CONTEXTS.addItem(contextName, context);
|
55
57
|
return context;
|
56
58
|
};
|
@@ -150,12 +152,24 @@ export const createShortcutManager = _ref => {
|
|
150
152
|
return isExecutionCancelled;
|
151
153
|
};
|
152
154
|
|
155
|
+
/**
|
156
|
+
* Handle the event with the scope of the active context.
|
157
|
+
*
|
158
|
+
* @param {KeyboardEvent} event The keyboard event.
|
159
|
+
* @returns {boolean}
|
160
|
+
*/
|
161
|
+
const handleEventWithScope = event => {
|
162
|
+
const context = getActiveContextName();
|
163
|
+
const activeContext = isContextObject(context) ? context : getContext(context);
|
164
|
+
return handleEvent(event, activeContext.scope);
|
165
|
+
};
|
166
|
+
|
153
167
|
/**
|
154
168
|
* Internal key recorder.
|
155
169
|
*
|
156
170
|
* @private
|
157
171
|
*/
|
158
|
-
const keyRecorder = useRecorder(ownerWindow,
|
172
|
+
const keyRecorder = useRecorder(ownerWindow, handleEventWithScope, beforeKeyDown, afterKeyDown, recorderCallback);
|
159
173
|
keyRecorder.mount();
|
160
174
|
return {
|
161
175
|
addContext,
|