handsontable 0.0.0-next-a1e4b4f-20230628 → 0.0.0-next-e697250-20230707
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
- package/3rdparty/walkontable/src/cell/coords.js +50 -28
- package/3rdparty/walkontable/src/cell/coords.mjs +50 -28
- package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
- package/3rdparty/walkontable/src/cell/range.js +69 -36
- package/3rdparty/walkontable/src/cell/range.mjs +68 -35
- package/3rdparty/walkontable/src/event.js +3 -5
- package/3rdparty/walkontable/src/event.mjs +3 -5
- package/3rdparty/walkontable/src/overlay/_base.js +6 -7
- package/3rdparty/walkontable/src/overlay/_base.mjs +6 -7
- package/3rdparty/walkontable/src/overlay/bottom.js +6 -7
- package/3rdparty/walkontable/src/overlay/bottom.mjs +6 -7
- package/3rdparty/walkontable/src/overlay/top.js +6 -7
- package/3rdparty/walkontable/src/overlay/top.mjs +6 -7
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +10 -12
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +10 -12
- package/3rdparty/walkontable/src/overlays.js +55 -64
- package/3rdparty/walkontable/src/overlays.mjs +55 -64
- package/3rdparty/walkontable/src/renderer/table.js +0 -2
- package/3rdparty/walkontable/src/renderer/table.mjs +0 -2
- package/3rdparty/walkontable/src/scroll.js +20 -23
- package/3rdparty/walkontable/src/scroll.mjs +20 -23
- package/3rdparty/walkontable/src/selection/border/border.js +1 -0
- package/3rdparty/walkontable/src/selection/border/border.mjs +1 -0
- package/3rdparty/walkontable/src/selection/manager.js +40 -45
- package/3rdparty/walkontable/src/selection/manager.mjs +33 -38
- package/3rdparty/walkontable/src/selection/scanner.js +5 -4
- package/3rdparty/walkontable/src/selection/scanner.mjs +1 -0
- package/3rdparty/walkontable/src/settings.js +13 -15
- package/3rdparty/walkontable/src/settings.mjs +13 -15
- package/3rdparty/walkontable/src/table.js +23 -26
- package/3rdparty/walkontable/src/table.mjs +23 -26
- package/CHANGELOG.md +56 -0
- package/base.js +2 -4
- package/base.mjs +2 -2
- package/common.d.ts +1 -1
- package/core.d.ts +7 -9
- package/core.js +241 -439
- package/core.mjs +245 -443
- package/dataMap/dataMap.js +1 -0
- package/dataMap/dataMap.mjs +1 -0
- package/dataMap/dataSource.js +5 -5
- package/dataMap/dataSource.mjs +5 -5
- package/dataMap/metaManager/lazyFactoryMap.js +1 -0
- package/dataMap/metaManager/lazyFactoryMap.mjs +1 -0
- package/dataMap/metaManager/metaLayers/cellMeta.js +1 -0
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -0
- package/dataMap/metaManager/metaSchema.js +33 -24
- package/dataMap/metaManager/metaSchema.mjs +33 -24
- package/dist/handsontable.css +25 -3
- package/dist/handsontable.full.css +25 -3
- package/dist/handsontable.full.js +14539 -11358
- package/dist/handsontable.full.min.css +5 -5
- package/dist/handsontable.full.min.js +137 -125
- package/dist/handsontable.js +31414 -28455
- package/dist/handsontable.min.css +5 -5
- package/dist/handsontable.min.js +11 -3
- package/dist/languages/all.js +133 -0
- package/dist/languages/ar-AR.js +7 -0
- package/dist/languages/cs-CZ.js +7 -0
- package/dist/languages/de-CH.js +7 -0
- package/dist/languages/de-DE.js +7 -0
- package/dist/languages/en-US.js +7 -0
- package/dist/languages/es-MX.js +7 -0
- package/dist/languages/fr-FR.js +7 -0
- package/dist/languages/it-IT.js +7 -0
- package/dist/languages/ja-JP.js +7 -0
- package/dist/languages/ko-KR.js +7 -0
- package/dist/languages/lv-LV.js +7 -0
- package/dist/languages/nb-NO.js +7 -0
- package/dist/languages/nl-NL.js +7 -0
- package/dist/languages/pl-PL.js +7 -0
- package/dist/languages/pt-BR.js +7 -0
- package/dist/languages/ru-RU.js +7 -0
- package/dist/languages/sr-SP.js +7 -0
- package/dist/languages/zh-CN.js +7 -0
- package/dist/languages/zh-TW.js +7 -0
- package/editorManager.js +19 -89
- package/editorManager.mjs +24 -93
- package/editors/baseEditor/baseEditor.js +1 -0
- package/editors/baseEditor/baseEditor.mjs +1 -0
- package/editors/textEditor/textEditor.js +14 -20
- package/editors/textEditor/textEditor.mjs +16 -22
- package/helpers/dom/element.js +0 -11
- package/helpers/dom/element.mjs +0 -10
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/helpers/number.d.ts +1 -0
- package/helpers/number.js +18 -0
- package/helpers/number.mjs +17 -0
- package/helpers/object.js +2 -0
- package/helpers/object.mjs +2 -0
- package/i18n/languages/ar-AR.js +7 -1
- package/i18n/languages/cs-CZ.js +7 -1
- package/i18n/languages/de-CH.js +7 -1
- package/i18n/languages/de-DE.js +7 -1
- package/i18n/languages/en-US.js +7 -1
- package/i18n/languages/es-MX.js +7 -1
- package/i18n/languages/fr-FR.js +7 -1
- package/i18n/languages/it-IT.js +7 -1
- package/i18n/languages/ja-JP.js +7 -1
- package/i18n/languages/ko-KR.js +7 -1
- package/i18n/languages/lv-LV.js +7 -1
- package/i18n/languages/nb-NO.js +7 -1
- package/i18n/languages/nl-NL.js +7 -1
- package/i18n/languages/pl-PL.js +7 -1
- package/i18n/languages/pt-BR.js +7 -1
- package/i18n/languages/ru-RU.js +7 -1
- package/i18n/languages/sr-SP.js +7 -1
- package/i18n/languages/zh-CN.js +7 -1
- package/i18n/languages/zh-TW.js +7 -1
- package/languages/all.js +133 -0
- package/languages/ar-AR.js +7 -0
- package/languages/cs-CZ.js +7 -0
- package/languages/de-CH.js +7 -0
- package/languages/de-DE.js +7 -0
- package/languages/en-US.js +7 -0
- package/languages/es-MX.js +7 -0
- package/languages/fr-FR.js +7 -0
- package/languages/index.js +133 -0
- package/languages/it-IT.js +7 -0
- package/languages/ja-JP.js +7 -0
- package/languages/ko-KR.js +7 -0
- package/languages/lv-LV.js +7 -0
- package/languages/nb-NO.js +7 -0
- package/languages/nl-NL.js +7 -0
- package/languages/pl-PL.js +7 -0
- package/languages/pt-BR.js +7 -0
- package/languages/ru-RU.js +7 -0
- package/languages/sr-SP.js +7 -0
- package/languages/zh-CN.js +7 -0
- package/languages/zh-TW.js +7 -0
- package/package.json +3 -2
- package/pluginHooks.d.ts +8 -2
- package/pluginHooks.js +116 -18
- package/pluginHooks.mjs +115 -15
- package/plugins/autoColumnSize/autoColumnSize.js +1 -0
- package/plugins/autoColumnSize/autoColumnSize.mjs +1 -0
- package/plugins/autoRowSize/autoRowSize.js +3 -2
- package/plugins/autoRowSize/autoRowSize.mjs +3 -2
- package/plugins/autofill/autofill.js +2 -2
- package/plugins/autofill/autofill.mjs +3 -3
- package/plugins/autofill/utils.js +1 -39
- package/plugins/autofill/utils.mjs +0 -37
- package/plugins/base/base.js +1 -0
- package/plugins/base/base.mjs +1 -0
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +1 -0
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +1 -0
- package/plugins/collapsibleColumns/collapsibleColumns.js +82 -24
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +82 -24
- package/plugins/columnSorting/columnSorting.js +51 -8
- package/plugins/columnSorting/columnSorting.mjs +50 -9
- package/plugins/columnSorting/columnStatesManager.js +1 -0
- package/plugins/columnSorting/columnStatesManager.mjs +1 -0
- package/plugins/columnSorting/index.js +4 -2
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/columnSorting/rootComparator.js +1 -0
- package/plugins/columnSorting/rootComparator.mjs +1 -0
- package/plugins/comments/commentEditor.js +1 -0
- package/plugins/comments/commentEditor.mjs +1 -0
- package/plugins/comments/comments.js +289 -224
- package/plugins/comments/comments.mjs +297 -234
- package/plugins/comments/contextMenuItem/addEditComment.js +51 -0
- package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.js +63 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.mjs +55 -0
- package/plugins/comments/contextMenuItem/removeComment.js +48 -0
- package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +81 -29
- package/plugins/contextMenu/contextMenu.mjs +82 -30
- package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
- package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/removeColumn.js +8 -5
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +6 -3
- package/plugins/contextMenu/predefinedItems/removeRow.js +8 -5
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +6 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
- package/plugins/contextMenu/utils.js +25 -16
- package/plugins/contextMenu/utils.mjs +24 -15
- package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
- package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
- package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
- package/plugins/copyPaste/copyPaste.js +100 -14
- package/plugins/copyPaste/copyPaste.mjs +100 -14
- package/plugins/copyPaste/copyableRanges.js +25 -31
- package/plugins/copyPaste/copyableRanges.mjs +18 -24
- package/plugins/copyPaste/focusableElement.js +219 -0
- package/plugins/copyPaste/focusableElement.mjs +213 -0
- package/plugins/customBorders/customBorders.d.ts +2 -0
- package/plugins/customBorders/customBorders.js +19 -50
- package/plugins/customBorders/customBorders.mjs +19 -50
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +94 -30
- package/plugins/dropdownMenu/dropdownMenu.mjs +94 -30
- package/plugins/exportFile/dataProvider.js +1 -0
- package/plugins/exportFile/dataProvider.mjs +1 -0
- package/plugins/filters/component/value.js +1 -0
- package/plugins/filters/component/value.mjs +1 -0
- package/plugins/filters/condition/beginsWith.js +1 -0
- package/plugins/filters/condition/beginsWith.mjs +1 -0
- package/plugins/filters/condition/between.js +1 -0
- package/plugins/filters/condition/between.mjs +1 -0
- package/plugins/filters/condition/byValue.js +1 -0
- package/plugins/filters/condition/byValue.mjs +1 -0
- package/plugins/filters/condition/contains.js +1 -0
- package/plugins/filters/condition/contains.mjs +1 -0
- package/plugins/filters/condition/date/after.js +1 -0
- package/plugins/filters/condition/date/after.mjs +1 -0
- package/plugins/filters/condition/date/before.js +1 -0
- package/plugins/filters/condition/date/before.mjs +1 -0
- package/plugins/filters/condition/endsWith.js +1 -0
- package/plugins/filters/condition/endsWith.mjs +1 -0
- package/plugins/filters/condition/equal.js +1 -0
- package/plugins/filters/condition/equal.mjs +1 -0
- package/plugins/filters/condition/greaterThan.js +1 -0
- package/plugins/filters/condition/greaterThan.mjs +1 -0
- package/plugins/filters/condition/greaterThanOrEqual.js +1 -0
- package/plugins/filters/condition/greaterThanOrEqual.mjs +1 -0
- package/plugins/filters/condition/lessThan.js +1 -0
- package/plugins/filters/condition/lessThan.mjs +1 -0
- package/plugins/filters/condition/lessThanOrEqual.js +1 -0
- package/plugins/filters/condition/lessThanOrEqual.mjs +1 -0
- package/plugins/filters/conditionCollection.js +1 -0
- package/plugins/filters/conditionCollection.mjs +1 -0
- package/plugins/filters/filters.js +68 -42
- package/plugins/filters/filters.mjs +67 -41
- package/plugins/filters/ui/multipleSelect.js +1 -0
- package/plugins/filters/ui/multipleSelect.mjs +1 -0
- package/plugins/formulas/formulas.js +191 -168
- package/plugins/formulas/formulas.mjs +191 -168
- package/plugins/formulas/indexSyncer/axisSyncer.js +379 -0
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +374 -0
- package/plugins/formulas/indexSyncer/index.js +225 -0
- package/plugins/formulas/indexSyncer/index.mjs +219 -0
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -0
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +1 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +1 -0
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -0
- package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +1 -0
- package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -0
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +1 -0
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -0
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -0
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -0
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -0
- package/plugins/manualColumnResize/manualColumnResize.js +36 -5
- package/plugins/manualColumnResize/manualColumnResize.mjs +36 -5
- package/plugins/manualRowMove/manualRowMove.js +31 -12
- package/plugins/manualRowMove/manualRowMove.mjs +32 -13
- package/plugins/manualRowResize/manualRowResize.js +40 -9
- package/plugins/manualRowResize/manualRowResize.mjs +40 -9
- package/plugins/mergeCells/calculations/autofill.js +1 -0
- package/plugins/mergeCells/calculations/autofill.mjs +1 -0
- package/plugins/mergeCells/cellsCollection.js +1 -0
- package/plugins/mergeCells/cellsCollection.mjs +1 -0
- package/plugins/mergeCells/mergeCells.js +6 -2
- package/plugins/mergeCells/mergeCells.mjs +6 -2
- package/plugins/multiColumnSorting/multiColumnSorting.js +42 -3
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +42 -3
- package/plugins/multiColumnSorting/rootComparator.js +1 -0
- package/plugins/multiColumnSorting/rootComparator.mjs +1 -0
- package/plugins/nestedHeaders/nestedHeaders.js +129 -6
- package/plugins/nestedHeaders/nestedHeaders.mjs +129 -6
- package/plugins/nestedHeaders/stateManager/headersTree.js +24 -26
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +21 -23
- package/plugins/nestedHeaders/stateManager/index.js +40 -3
- package/plugins/nestedHeaders/stateManager/index.mjs +37 -0
- package/plugins/nestedHeaders/stateManager/matrixGenerator.js +1 -0
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +2 -1
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +1 -0
- package/plugins/nestedHeaders/utils/ghostTable.js +30 -35
- package/plugins/nestedHeaders/utils/ghostTable.mjs +30 -35
- package/plugins/nestedRows/data/dataManager.js +1 -0
- package/plugins/nestedRows/data/dataManager.mjs +1 -0
- package/plugins/nestedRows/nestedRows.js +53 -7
- package/plugins/nestedRows/nestedRows.mjs +53 -7
- package/plugins/nestedRows/ui/collapsing.js +1 -0
- package/plugins/nestedRows/ui/collapsing.mjs +1 -0
- package/plugins/nestedRows/utils/rowMoveController.js +1 -0
- package/plugins/nestedRows/utils/rowMoveController.mjs +1 -0
- package/plugins/persistentState/storage.js +1 -0
- package/plugins/persistentState/storage.mjs +1 -0
- package/plugins/registry.js +4 -1
- package/plugins/registry.mjs +1 -0
- package/plugins/undoRedo/undoRedo.js +1 -1
- package/plugins/undoRedo/undoRedo.mjs +1 -1
- package/renderers/baseRenderer/baseRenderer.js +0 -3
- package/renderers/baseRenderer/baseRenderer.mjs +0 -3
- package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
- package/selection/highlight/highlight.js +120 -98
- package/selection/highlight/highlight.mjs +118 -96
- package/selection/highlight/visualSelection.js +30 -17
- package/selection/highlight/visualSelection.mjs +30 -17
- package/selection/mouseEventHandler.js +1 -1
- package/selection/mouseEventHandler.mjs +1 -1
- package/selection/range.js +8 -8
- package/selection/range.mjs +8 -8
- package/selection/selection.js +246 -153
- package/selection/selection.mjs +247 -154
- package/selection/transformation.js +233 -96
- package/selection/transformation.mjs +230 -93
- package/selection/utils.js +12 -35
- package/selection/utils.mjs +13 -35
- package/settings.d.ts +2 -1
- package/shortcutContexts/commands/editor/closeAndSave.js +15 -0
- package/shortcutContexts/commands/editor/closeAndSave.mjs +10 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +13 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
- package/shortcutContexts/commands/editor/fastOpen.js +16 -0
- package/shortcutContexts/commands/editor/fastOpen.mjs +11 -0
- package/shortcutContexts/commands/editor/index.js +16 -0
- package/shortcutContexts/commands/editor/index.mjs +12 -0
- package/shortcutContexts/commands/editor/open.js +29 -0
- package/shortcutContexts/commands/editor/open.mjs +24 -0
- package/shortcutContexts/commands/emptySelectedCells.js +12 -0
- package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
- package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +21 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +16 -0
- package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
- package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
- package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +14 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +22 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +12 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +12 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +40 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +35 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +40 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +35 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +22 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +17 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +14 -0
- package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +10 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +21 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +16 -0
- package/shortcutContexts/commands/index.js +53 -0
- package/shortcutContexts/commands/index.mjs +49 -0
- package/shortcutContexts/commands/moveCellSelection/down.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/down.mjs +7 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +29 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
- package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/left.js +11 -0
- package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/right.js +11 -0
- package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +11 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +12 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +11 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +36 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +36 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +11 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +18 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/up.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/up.mjs +7 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +29 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +24 -0
- package/shortcutContexts/commands/populateSelectedCellsData.js +35 -0
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +30 -0
- package/shortcutContexts/commands/scrollToFocusedCell.js +38 -0
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +33 -0
- package/shortcutContexts/commands/selectAll.js +11 -0
- package/shortcutContexts/commands/selectAll.mjs +6 -0
- package/shortcutContexts/constants.js +19 -0
- package/shortcutContexts/constants.mjs +12 -0
- package/shortcutContexts/editor.js +29 -0
- package/shortcutContexts/editor.mjs +25 -0
- package/shortcutContexts/grid.js +252 -0
- package/shortcutContexts/grid.mjs +248 -0
- package/shortcutContexts/index.js +29 -0
- package/shortcutContexts/index.mjs +15 -0
- package/shortcuts/context.js +1 -0
- package/shortcuts/context.mjs +1 -0
- package/shortcuts/manager.js +2 -0
- package/shortcuts/manager.mjs +2 -0
- package/shortcuts/recorder.js +2 -2
- package/shortcuts/recorder.mjs +2 -2
- package/shortcuts/utils.js +21 -5
- package/shortcuts/utils.mjs +20 -4
- package/tableView.js +112 -82
- package/tableView.mjs +112 -82
- package/translations/changesObservable/observable.js +41 -46
- package/translations/changesObservable/observable.mjs +36 -41
- package/translations/changesObservable/observer.js +1 -1
- package/translations/indexMapper.d.ts +0 -2
- package/translations/indexMapper.js +38 -64
- package/translations/indexMapper.mjs +39 -64
- package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
- package/translations/maps/utils/indexesSequence.js +1 -0
- package/translations/maps/utils/indexesSequence.mjs +1 -0
- package/translations/maps/utils/physicallyIndexed.js +1 -0
- package/translations/maps/utils/physicallyIndexed.mjs +1 -0
- package/utils/dataStructures/priorityMap.js +1 -0
- package/utils/dataStructures/priorityMap.mjs +1 -0
- package/utils/dataStructures/tree.js +16 -18
- package/utils/dataStructures/tree.mjs +16 -18
- package/utils/dataStructures/uniqueMap.js +1 -0
- package/utils/dataStructures/uniqueMap.mjs +1 -0
- package/utils/dataStructures/uniqueSet.js +1 -0
- package/utils/dataStructures/uniqueSet.mjs +1 -0
- package/utils/ghostTable.js +1 -0
- package/utils/ghostTable.mjs +1 -0
- package/utils/parseTable.js +5 -1
- package/utils/parseTable.mjs +5 -1
- package/utils/staticRegister.js +1 -0
- package/utils/staticRegister.mjs +1 -0
- package/focusManager.d.ts +0 -12
- package/focusManager.js +0 -275
- package/focusManager.mjs +0 -270
package/editorManager.js
CHANGED
@@ -2,13 +2,12 @@
|
|
2
2
|
|
3
3
|
require("core-js/modules/es.symbol.iterator.js");
|
4
4
|
require("core-js/modules/es.array.slice.js");
|
5
|
+
require("core-js/modules/es.regexp.to-string.js");
|
5
6
|
require("core-js/modules/es.function.name.js");
|
6
7
|
require("core-js/modules/es.array.from.js");
|
7
8
|
require("core-js/modules/es.regexp.exec.js");
|
8
9
|
exports.__esModule = true;
|
9
|
-
exports.default = exports.SHORTCUTS_GROUP_NAVIGATION =
|
10
|
-
require("core-js/modules/es.array.includes.js");
|
11
|
-
require("core-js/modules/es.string.includes.js");
|
10
|
+
exports.default = exports.SHORTCUTS_GROUP_NAVIGATION = void 0;
|
12
11
|
require("core-js/modules/es.symbol.to-primitive.js");
|
13
12
|
require("core-js/modules/es.date.to-primitive.js");
|
14
13
|
require("core-js/modules/es.symbol.js");
|
@@ -20,8 +19,8 @@ require("core-js/modules/es.string.iterator.js");
|
|
20
19
|
require("core-js/modules/es.weak-map.js");
|
21
20
|
require("core-js/modules/web.dom-collections.iterator.js");
|
22
21
|
var _unicode = require("./helpers/unicode");
|
23
|
-
var _event = require("./helpers/dom/event");
|
24
22
|
var _element = require("./helpers/dom/element");
|
23
|
+
var _event = require("./helpers/dom/event");
|
25
24
|
var _registry = require("./editors/registry");
|
26
25
|
var _eventManager = _interopRequireDefault(require("./eventManager"));
|
27
26
|
var _mixed = require("./helpers/mixed");
|
@@ -40,8 +39,6 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _ty
|
|
40
39
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
41
40
|
var SHORTCUTS_GROUP_NAVIGATION = 'editorManager.navigation';
|
42
41
|
exports.SHORTCUTS_GROUP_NAVIGATION = SHORTCUTS_GROUP_NAVIGATION;
|
43
|
-
var SHORTCUTS_GROUP_EDITOR = 'editorManager.handlingEditor';
|
44
|
-
exports.SHORTCUTS_GROUP_EDITOR = SHORTCUTS_GROUP_EDITOR;
|
45
42
|
var EditorManager = /*#__PURE__*/function () {
|
46
43
|
/**
|
47
44
|
* @param {Core} instance The Handsontable instance.
|
@@ -106,9 +103,6 @@ var EditorManager = /*#__PURE__*/function () {
|
|
106
103
|
* @type {object}
|
107
104
|
*/
|
108
105
|
this.cellProperties = void 0;
|
109
|
-
var shortcutManager = this.instance.getShortcutManager();
|
110
|
-
shortcutManager.addContext('editor');
|
111
|
-
this.registerShortcuts();
|
112
106
|
this.instance.addHook('afterDocumentKeyDown', function (event) {
|
113
107
|
return _this.onAfterDocumentKeyDown(event);
|
114
108
|
});
|
@@ -125,66 +119,10 @@ var EditorManager = /*#__PURE__*/function () {
|
|
125
119
|
}
|
126
120
|
|
127
121
|
/**
|
128
|
-
*
|
129
|
-
*
|
130
|
-
* @private
|
122
|
+
* Lock the editor from being prepared and closed. Locking the editor prevents its closing and
|
123
|
+
* reinitialized after selecting the new cell. This feature is necessary for a mobile editor.
|
131
124
|
*/
|
132
125
|
_createClass(EditorManager, [{
|
133
|
-
key: "registerShortcuts",
|
134
|
-
value: function registerShortcuts() {
|
135
|
-
var _this2 = this;
|
136
|
-
var shortcutManager = this.instance.getShortcutManager();
|
137
|
-
var gridContext = shortcutManager.getContext('grid');
|
138
|
-
var editorContext = shortcutManager.getContext('editor');
|
139
|
-
var config = {
|
140
|
-
group: SHORTCUTS_GROUP_EDITOR
|
141
|
-
};
|
142
|
-
editorContext.addShortcuts([{
|
143
|
-
keys: [['Enter'], ['Enter', 'Shift'], ['Enter', 'Control/Meta'], ['Enter', 'Control/Meta', 'Shift']],
|
144
|
-
callback: function callback(event, keys) {
|
145
|
-
_this2.closeEditorAndSaveChanges(shortcutManager.isCtrlPressed());
|
146
|
-
_this2.moveSelectionAfterEnter(keys.includes('shift'));
|
147
|
-
}
|
148
|
-
}, {
|
149
|
-
keys: [['Escape'], ['Escape', 'Control/Meta']],
|
150
|
-
callback: function callback() {
|
151
|
-
_this2.closeEditorAndRestoreOriginalValue(shortcutManager.isCtrlPressed());
|
152
|
-
_this2.activeEditor.focus();
|
153
|
-
}
|
154
|
-
}], config);
|
155
|
-
gridContext.addShortcuts([{
|
156
|
-
keys: [['F2']],
|
157
|
-
callback: function callback(event) {
|
158
|
-
_this2.openEditor(null, event, true);
|
159
|
-
}
|
160
|
-
}, {
|
161
|
-
keys: [['Backspace'], ['Delete']],
|
162
|
-
callback: function callback() {
|
163
|
-
_this2.instance.emptySelectedCells();
|
164
|
-
_this2.prepareEditor();
|
165
|
-
}
|
166
|
-
}, {
|
167
|
-
keys: [['Enter'], ['Enter', 'Shift']],
|
168
|
-
callback: function callback(event, keys) {
|
169
|
-
if (_this2.instance.getSettings().enterBeginsEditing) {
|
170
|
-
if (_this2.cellProperties.readOnly) {
|
171
|
-
_this2.moveSelectionAfterEnter();
|
172
|
-
} else {
|
173
|
-
_this2.openEditor(null, event, true);
|
174
|
-
}
|
175
|
-
} else {
|
176
|
-
_this2.moveSelectionAfterEnter(keys.includes('shift'));
|
177
|
-
}
|
178
|
-
(0, _event.stopImmediatePropagation)(event); // required by HandsontableEditor
|
179
|
-
}
|
180
|
-
}], config);
|
181
|
-
}
|
182
|
-
|
183
|
-
/**
|
184
|
-
* Lock the editor from being prepared and closed. Locking the editor prevents its closing and
|
185
|
-
* reinitialized after selecting the new cell. This feature is necessary for a mobile editor.
|
186
|
-
*/
|
187
|
-
}, {
|
188
126
|
key: "lockEditor",
|
189
127
|
value: function lockEditor() {
|
190
128
|
this.lock = true;
|
@@ -231,14 +169,14 @@ var EditorManager = /*#__PURE__*/function () {
|
|
231
169
|
}, {
|
232
170
|
key: "prepareEditor",
|
233
171
|
value: function prepareEditor() {
|
234
|
-
var
|
172
|
+
var _this2 = this;
|
235
173
|
if (this.lock) {
|
236
174
|
return;
|
237
175
|
}
|
238
176
|
if (this.activeEditor && this.activeEditor.isWaiting()) {
|
239
177
|
this.closeEditor(false, false, function (dataSaved) {
|
240
178
|
if (dataSaved) {
|
241
|
-
|
179
|
+
_this2.prepareEditor();
|
242
180
|
}
|
243
181
|
});
|
244
182
|
return;
|
@@ -317,13 +255,7 @@ var EditorManager = /*#__PURE__*/function () {
|
|
317
255
|
return;
|
318
256
|
}
|
319
257
|
if (!this.activeEditor) {
|
320
|
-
|
321
|
-
row = _this$instance$getSel2.row,
|
322
|
-
col = _this$instance$getSel2.col;
|
323
|
-
var renderableRowIndex = this.instance.rowIndexMapper.getRenderableFromVisualIndex(row);
|
324
|
-
var renderableColumnIndex = this.instance.columnIndexMapper.getRenderableFromVisualIndex(col);
|
325
|
-
this.instance.view.scrollViewport(this.instance._createCellCoords(renderableRowIndex, renderableColumnIndex));
|
326
|
-
this.instance.view.render();
|
258
|
+
this.instance.scrollToFocusedCell();
|
327
259
|
this.prepareEditor();
|
328
260
|
}
|
329
261
|
if (this.activeEditor) {
|
@@ -398,9 +330,9 @@ var EditorManager = /*#__PURE__*/function () {
|
|
398
330
|
key: "isCellEditable",
|
399
331
|
value: function isCellEditable() {
|
400
332
|
var editorClass = this.instance.getCellEditor(this.cellProperties);
|
401
|
-
var _this$instance$
|
402
|
-
row = _this$instance$
|
403
|
-
col = _this$instance$
|
333
|
+
var _this$instance$getSel2 = this.instance.getSelectedRangeLast().highlight,
|
334
|
+
row = _this$instance$getSel2.row,
|
335
|
+
col = _this$instance$getSel2.col;
|
404
336
|
var _this$instance = this.instance,
|
405
337
|
rowIndexMapper = _this$instance.rowIndexMapper,
|
406
338
|
columnIndexMapper = _this$instance.columnIndexMapper;
|
@@ -439,14 +371,12 @@ var EditorManager = /*#__PURE__*/function () {
|
|
439
371
|
}, {
|
440
372
|
key: "onAfterDocumentKeyDown",
|
441
373
|
value: function onAfterDocumentKeyDown(event) {
|
442
|
-
var
|
443
|
-
|
374
|
+
var _this3 = this;
|
375
|
+
var selection = this.instance.getSelectedRangeLast();
|
376
|
+
if (!this.instance.isListening() || !selection || selection.highlight.isHeader() || (0, _event.isImmediatePropagationStopped)(event)) {
|
444
377
|
return;
|
445
378
|
}
|
446
379
|
var keyCode = event.keyCode;
|
447
|
-
if (!this.selection.isSelected()) {
|
448
|
-
return;
|
449
|
-
}
|
450
380
|
|
451
381
|
// catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
|
452
382
|
var isCtrlPressed = (event.ctrlKey || event.metaKey) && !event.altKey;
|
@@ -456,29 +386,29 @@ var EditorManager = /*#__PURE__*/function () {
|
|
456
386
|
var editorContext = shortcutManager.getContext('editor');
|
457
387
|
var runOnlySelectedConfig = {
|
458
388
|
runOnlyIf: function runOnlyIf() {
|
459
|
-
return (0, _mixed.isDefined)(
|
389
|
+
return (0, _mixed.isDefined)(_this3.instance.getSelected());
|
460
390
|
},
|
461
391
|
group: SHORTCUTS_GROUP_NAVIGATION
|
462
392
|
};
|
463
393
|
editorContext.addShortcuts([{
|
464
394
|
keys: [['ArrowUp']],
|
465
395
|
callback: function callback() {
|
466
|
-
|
396
|
+
_this3.instance.selection.transformStart(-1, 0);
|
467
397
|
}
|
468
398
|
}, {
|
469
399
|
keys: [['ArrowDown']],
|
470
400
|
callback: function callback() {
|
471
|
-
|
401
|
+
_this3.instance.selection.transformStart(1, 0);
|
472
402
|
}
|
473
403
|
}, {
|
474
404
|
keys: [['ArrowLeft']],
|
475
405
|
callback: function callback() {
|
476
|
-
|
406
|
+
_this3.instance.selection.transformStart(0, -1 * _this3.instance.getDirectionFactor());
|
477
407
|
}
|
478
408
|
}, {
|
479
409
|
keys: [['ArrowRight']],
|
480
410
|
callback: function callback() {
|
481
|
-
|
411
|
+
_this3.instance.selection.transformStart(0, _this3.instance.getDirectionFactor());
|
482
412
|
}
|
483
413
|
}], runOnlySelectedConfig);
|
484
414
|
this.openEditor('', event);
|
package/editorManager.mjs
CHANGED
@@ -1,12 +1,4 @@
|
|
1
1
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
2
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
3
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
4
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
5
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
6
|
-
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
7
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
8
|
-
import "core-js/modules/es.array.includes.js";
|
9
|
-
import "core-js/modules/es.string.includes.js";
|
10
2
|
import "core-js/modules/es.array.iterator.js";
|
11
3
|
import "core-js/modules/es.object.to-string.js";
|
12
4
|
import "core-js/modules/es.string.iterator.js";
|
@@ -19,22 +11,28 @@ import "core-js/modules/es.symbol.description.js";
|
|
19
11
|
import "core-js/modules/es.number.constructor.js";
|
20
12
|
import "core-js/modules/es.symbol.iterator.js";
|
21
13
|
import "core-js/modules/es.array.slice.js";
|
14
|
+
import "core-js/modules/es.regexp.to-string.js";
|
22
15
|
import "core-js/modules/es.function.name.js";
|
23
16
|
import "core-js/modules/es.array.from.js";
|
24
17
|
import "core-js/modules/es.regexp.exec.js";
|
18
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
19
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
20
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
21
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
22
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
23
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
25
24
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
26
25
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
27
26
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
28
27
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
29
28
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
30
29
|
import { isFunctionKey, isCtrlMetaKey } from "./helpers/unicode.mjs";
|
31
|
-
import { stopImmediatePropagation } from "./helpers/dom/event.mjs";
|
32
30
|
import { isOutsideInput } from "./helpers/dom/element.mjs";
|
31
|
+
import { isImmediatePropagationStopped } from "./helpers/dom/event.mjs";
|
33
32
|
import { getEditorInstance } from "./editors/registry.mjs";
|
34
33
|
import EventManager from "./eventManager.mjs";
|
35
34
|
import { isDefined } from "./helpers/mixed.mjs";
|
36
35
|
export var SHORTCUTS_GROUP_NAVIGATION = 'editorManager.navigation';
|
37
|
-
export var SHORTCUTS_GROUP_EDITOR = 'editorManager.handlingEditor';
|
38
36
|
var EditorManager = /*#__PURE__*/function () {
|
39
37
|
/**
|
40
38
|
* @param {Core} instance The Handsontable instance.
|
@@ -99,9 +97,6 @@ var EditorManager = /*#__PURE__*/function () {
|
|
99
97
|
* @type {object}
|
100
98
|
*/
|
101
99
|
this.cellProperties = void 0;
|
102
|
-
var shortcutManager = this.instance.getShortcutManager();
|
103
|
-
shortcutManager.addContext('editor');
|
104
|
-
this.registerShortcuts();
|
105
100
|
this.instance.addHook('afterDocumentKeyDown', function (event) {
|
106
101
|
return _this.onAfterDocumentKeyDown(event);
|
107
102
|
});
|
@@ -118,66 +113,10 @@ var EditorManager = /*#__PURE__*/function () {
|
|
118
113
|
}
|
119
114
|
|
120
115
|
/**
|
121
|
-
*
|
122
|
-
*
|
123
|
-
* @private
|
116
|
+
* Lock the editor from being prepared and closed. Locking the editor prevents its closing and
|
117
|
+
* reinitialized after selecting the new cell. This feature is necessary for a mobile editor.
|
124
118
|
*/
|
125
119
|
_createClass(EditorManager, [{
|
126
|
-
key: "registerShortcuts",
|
127
|
-
value: function registerShortcuts() {
|
128
|
-
var _this2 = this;
|
129
|
-
var shortcutManager = this.instance.getShortcutManager();
|
130
|
-
var gridContext = shortcutManager.getContext('grid');
|
131
|
-
var editorContext = shortcutManager.getContext('editor');
|
132
|
-
var config = {
|
133
|
-
group: SHORTCUTS_GROUP_EDITOR
|
134
|
-
};
|
135
|
-
editorContext.addShortcuts([{
|
136
|
-
keys: [['Enter'], ['Enter', 'Shift'], ['Enter', 'Control/Meta'], ['Enter', 'Control/Meta', 'Shift']],
|
137
|
-
callback: function callback(event, keys) {
|
138
|
-
_this2.closeEditorAndSaveChanges(shortcutManager.isCtrlPressed());
|
139
|
-
_this2.moveSelectionAfterEnter(keys.includes('shift'));
|
140
|
-
}
|
141
|
-
}, {
|
142
|
-
keys: [['Escape'], ['Escape', 'Control/Meta']],
|
143
|
-
callback: function callback() {
|
144
|
-
_this2.closeEditorAndRestoreOriginalValue(shortcutManager.isCtrlPressed());
|
145
|
-
_this2.activeEditor.focus();
|
146
|
-
}
|
147
|
-
}], config);
|
148
|
-
gridContext.addShortcuts([{
|
149
|
-
keys: [['F2']],
|
150
|
-
callback: function callback(event) {
|
151
|
-
_this2.openEditor(null, event, true);
|
152
|
-
}
|
153
|
-
}, {
|
154
|
-
keys: [['Backspace'], ['Delete']],
|
155
|
-
callback: function callback() {
|
156
|
-
_this2.instance.emptySelectedCells();
|
157
|
-
_this2.prepareEditor();
|
158
|
-
}
|
159
|
-
}, {
|
160
|
-
keys: [['Enter'], ['Enter', 'Shift']],
|
161
|
-
callback: function callback(event, keys) {
|
162
|
-
if (_this2.instance.getSettings().enterBeginsEditing) {
|
163
|
-
if (_this2.cellProperties.readOnly) {
|
164
|
-
_this2.moveSelectionAfterEnter();
|
165
|
-
} else {
|
166
|
-
_this2.openEditor(null, event, true);
|
167
|
-
}
|
168
|
-
} else {
|
169
|
-
_this2.moveSelectionAfterEnter(keys.includes('shift'));
|
170
|
-
}
|
171
|
-
stopImmediatePropagation(event); // required by HandsontableEditor
|
172
|
-
}
|
173
|
-
}], config);
|
174
|
-
}
|
175
|
-
|
176
|
-
/**
|
177
|
-
* Lock the editor from being prepared and closed. Locking the editor prevents its closing and
|
178
|
-
* reinitialized after selecting the new cell. This feature is necessary for a mobile editor.
|
179
|
-
*/
|
180
|
-
}, {
|
181
120
|
key: "lockEditor",
|
182
121
|
value: function lockEditor() {
|
183
122
|
this.lock = true;
|
@@ -224,14 +163,14 @@ var EditorManager = /*#__PURE__*/function () {
|
|
224
163
|
}, {
|
225
164
|
key: "prepareEditor",
|
226
165
|
value: function prepareEditor() {
|
227
|
-
var
|
166
|
+
var _this2 = this;
|
228
167
|
if (this.lock) {
|
229
168
|
return;
|
230
169
|
}
|
231
170
|
if (this.activeEditor && this.activeEditor.isWaiting()) {
|
232
171
|
this.closeEditor(false, false, function (dataSaved) {
|
233
172
|
if (dataSaved) {
|
234
|
-
|
173
|
+
_this2.prepareEditor();
|
235
174
|
}
|
236
175
|
});
|
237
176
|
return;
|
@@ -310,13 +249,7 @@ var EditorManager = /*#__PURE__*/function () {
|
|
310
249
|
return;
|
311
250
|
}
|
312
251
|
if (!this.activeEditor) {
|
313
|
-
|
314
|
-
row = _this$instance$getSel2.row,
|
315
|
-
col = _this$instance$getSel2.col;
|
316
|
-
var renderableRowIndex = this.instance.rowIndexMapper.getRenderableFromVisualIndex(row);
|
317
|
-
var renderableColumnIndex = this.instance.columnIndexMapper.getRenderableFromVisualIndex(col);
|
318
|
-
this.instance.view.scrollViewport(this.instance._createCellCoords(renderableRowIndex, renderableColumnIndex));
|
319
|
-
this.instance.view.render();
|
252
|
+
this.instance.scrollToFocusedCell();
|
320
253
|
this.prepareEditor();
|
321
254
|
}
|
322
255
|
if (this.activeEditor) {
|
@@ -391,9 +324,9 @@ var EditorManager = /*#__PURE__*/function () {
|
|
391
324
|
key: "isCellEditable",
|
392
325
|
value: function isCellEditable() {
|
393
326
|
var editorClass = this.instance.getCellEditor(this.cellProperties);
|
394
|
-
var _this$instance$
|
395
|
-
row = _this$instance$
|
396
|
-
col = _this$instance$
|
327
|
+
var _this$instance$getSel2 = this.instance.getSelectedRangeLast().highlight,
|
328
|
+
row = _this$instance$getSel2.row,
|
329
|
+
col = _this$instance$getSel2.col;
|
397
330
|
var _this$instance = this.instance,
|
398
331
|
rowIndexMapper = _this$instance.rowIndexMapper,
|
399
332
|
columnIndexMapper = _this$instance.columnIndexMapper;
|
@@ -432,14 +365,12 @@ var EditorManager = /*#__PURE__*/function () {
|
|
432
365
|
}, {
|
433
366
|
key: "onAfterDocumentKeyDown",
|
434
367
|
value: function onAfterDocumentKeyDown(event) {
|
435
|
-
var
|
436
|
-
|
368
|
+
var _this3 = this;
|
369
|
+
var selection = this.instance.getSelectedRangeLast();
|
370
|
+
if (!this.instance.isListening() || !selection || selection.highlight.isHeader() || isImmediatePropagationStopped(event)) {
|
437
371
|
return;
|
438
372
|
}
|
439
373
|
var keyCode = event.keyCode;
|
440
|
-
if (!this.selection.isSelected()) {
|
441
|
-
return;
|
442
|
-
}
|
443
374
|
|
444
375
|
// catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
|
445
376
|
var isCtrlPressed = (event.ctrlKey || event.metaKey) && !event.altKey;
|
@@ -449,29 +380,29 @@ var EditorManager = /*#__PURE__*/function () {
|
|
449
380
|
var editorContext = shortcutManager.getContext('editor');
|
450
381
|
var runOnlySelectedConfig = {
|
451
382
|
runOnlyIf: function runOnlyIf() {
|
452
|
-
return isDefined(
|
383
|
+
return isDefined(_this3.instance.getSelected());
|
453
384
|
},
|
454
385
|
group: SHORTCUTS_GROUP_NAVIGATION
|
455
386
|
};
|
456
387
|
editorContext.addShortcuts([{
|
457
388
|
keys: [['ArrowUp']],
|
458
389
|
callback: function callback() {
|
459
|
-
|
390
|
+
_this3.instance.selection.transformStart(-1, 0);
|
460
391
|
}
|
461
392
|
}, {
|
462
393
|
keys: [['ArrowDown']],
|
463
394
|
callback: function callback() {
|
464
|
-
|
395
|
+
_this3.instance.selection.transformStart(1, 0);
|
465
396
|
}
|
466
397
|
}, {
|
467
398
|
keys: [['ArrowLeft']],
|
468
399
|
callback: function callback() {
|
469
|
-
|
400
|
+
_this3.instance.selection.transformStart(0, -1 * _this3.instance.getDirectionFactor());
|
470
401
|
}
|
471
402
|
}, {
|
472
403
|
keys: [['ArrowRight']],
|
473
404
|
callback: function callback() {
|
474
|
-
|
405
|
+
_this3.instance.selection.transformStart(0, _this3.instance.getDirectionFactor());
|
475
406
|
}
|
476
407
|
}], runOnlySelectedConfig);
|
477
408
|
this.openEditor('', event);
|
@@ -14,6 +14,7 @@ require("core-js/modules/es.array.iterator.js");
|
|
14
14
|
require("core-js/modules/es.string.iterator.js");
|
15
15
|
require("core-js/modules/web.dom-collections.iterator.js");
|
16
16
|
require("core-js/modules/es.array.slice.js");
|
17
|
+
require("core-js/modules/es.regexp.to-string.js");
|
17
18
|
require("core-js/modules/es.array.from.js");
|
18
19
|
require("core-js/modules/es.regexp.exec.js");
|
19
20
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
@@ -35,6 +35,7 @@ import "core-js/modules/es.array.iterator.js";
|
|
35
35
|
import "core-js/modules/es.string.iterator.js";
|
36
36
|
import "core-js/modules/web.dom-collections.iterator.js";
|
37
37
|
import "core-js/modules/es.array.slice.js";
|
38
|
+
import "core-js/modules/es.regexp.to-string.js";
|
38
39
|
import "core-js/modules/es.array.from.js";
|
39
40
|
import "core-js/modules/es.regexp.exec.js";
|
40
41
|
import { isDefined, stringify } from "../../helpers/mixed.mjs";
|
@@ -15,6 +15,7 @@ require("core-js/modules/es.array.iterator.js");
|
|
15
15
|
require("core-js/modules/es.string.iterator.js");
|
16
16
|
require("core-js/modules/web.dom-collections.iterator.js");
|
17
17
|
require("core-js/modules/es.array.slice.js");
|
18
|
+
require("core-js/modules/es.regexp.to-string.js");
|
18
19
|
require("core-js/modules/es.function.name.js");
|
19
20
|
require("core-js/modules/es.array.from.js");
|
20
21
|
require("core-js/modules/es.regexp.exec.js");
|
@@ -178,7 +179,7 @@ var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
178
179
|
key: "close",
|
179
180
|
value: function close() {
|
180
181
|
this.autoResize.unObserve();
|
181
|
-
if (
|
182
|
+
if (this.hot.rootDocument.activeElement === this.TEXTAREA) {
|
182
183
|
this.hot.listen(); // don't refocus the table if user focused some cell outside of HT on purpose
|
183
184
|
}
|
184
185
|
|
@@ -218,7 +219,7 @@ var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
218
219
|
// @TODO: The fragmentSelection functionality is conflicted with IME. For this feature
|
219
220
|
// refocus has to be disabled (to make IME working).
|
220
221
|
var restoreFocus = !fragmentSelection;
|
221
|
-
if (
|
222
|
+
if (restoreFocus && !(0, _browser.isMobileBrowser)()) {
|
222
223
|
this.focus();
|
223
224
|
}
|
224
225
|
}
|
@@ -262,7 +263,6 @@ var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
262
263
|
var rootDocument = this.hot.rootDocument;
|
263
264
|
this.TEXTAREA = rootDocument.createElement('TEXTAREA');
|
264
265
|
this.TEXTAREA.setAttribute('data-hot-input', ''); // Makes the element recognizable by Hot as its own component's element.
|
265
|
-
this.TEXTAREA.setAttribute('aria-hidden', 'true');
|
266
266
|
this.TEXTAREA.tabIndex = -1;
|
267
267
|
(0, _element.addClass)(this.TEXTAREA, 'handsontableInput');
|
268
268
|
this.textareaStyle = this.TEXTAREA.style;
|
@@ -411,6 +411,12 @@ var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
411
411
|
key: "bindEvents",
|
412
412
|
value: function bindEvents() {
|
413
413
|
var _this3 = this;
|
414
|
+
this.eventManager.addEventListener(this.TEXTAREA, 'cut', function (event) {
|
415
|
+
return event.stopPropagation();
|
416
|
+
});
|
417
|
+
this.eventManager.addEventListener(this.TEXTAREA, 'paste', function (event) {
|
418
|
+
return event.stopPropagation();
|
419
|
+
});
|
414
420
|
if ((0, _browser.isIOS)()) {
|
415
421
|
// on iOS after click "Done" the edit isn't hidden by default, so we need to handle it manually.
|
416
422
|
this.eventManager.addEventListener(this.TEXTAREA, 'focusout', function () {
|
@@ -425,15 +431,11 @@ var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
425
431
|
});
|
426
432
|
this.addHook('afterColumnResize', function () {
|
427
433
|
_this3.refreshDimensions();
|
428
|
-
|
429
|
-
_this3.focus();
|
430
|
-
}
|
434
|
+
_this3.focus();
|
431
435
|
});
|
432
436
|
this.addHook('afterRowResize', function () {
|
433
437
|
_this3.refreshDimensions();
|
434
|
-
|
435
|
-
_this3.focus();
|
436
|
-
}
|
438
|
+
_this3.focus();
|
437
439
|
});
|
438
440
|
}
|
439
441
|
|
@@ -506,9 +508,7 @@ var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
506
508
|
// We trigger a data population for multiple selection.
|
507
509
|
// catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
|
508
510
|
!event.altKey;
|
509
|
-
}
|
510
|
-
relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
|
511
|
-
position: 'before'
|
511
|
+
}
|
512
512
|
}, {
|
513
513
|
keys: [['Meta', 'Enter']],
|
514
514
|
callback: function callback() {
|
@@ -518,19 +518,13 @@ var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
518
518
|
|
519
519
|
runOnlyIf: function runOnlyIf() {
|
520
520
|
return !_this4.hot.selection.isMultiple();
|
521
|
-
}
|
522
|
-
// We trigger a data population for multiple selection.
|
523
|
-
relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
|
524
|
-
position: 'before'
|
521
|
+
} // We trigger a data population for multiple selection.
|
525
522
|
}, {
|
526
523
|
keys: [['Alt', 'Enter']],
|
527
524
|
callback: function callback() {
|
528
525
|
insertNewLine();
|
529
526
|
return false; // Will block closing editor.
|
530
|
-
}
|
531
|
-
|
532
|
-
relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
|
533
|
-
position: 'before'
|
527
|
+
}
|
534
528
|
}, {
|
535
529
|
// TODO: Duplicated part of code (callback to shortcut)
|
536
530
|
keys: [['PageUp']],
|
@@ -16,6 +16,7 @@ import "core-js/modules/es.array.iterator.js";
|
|
16
16
|
import "core-js/modules/es.string.iterator.js";
|
17
17
|
import "core-js/modules/web.dom-collections.iterator.js";
|
18
18
|
import "core-js/modules/es.array.slice.js";
|
19
|
+
import "core-js/modules/es.regexp.to-string.js";
|
19
20
|
import "core-js/modules/es.function.name.js";
|
20
21
|
import "core-js/modules/es.array.from.js";
|
21
22
|
import "core-js/modules/es.regexp.exec.js";
|
@@ -42,12 +43,12 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
|
|
42
43
|
import { BaseEditor, EDITOR_STATE } from "../baseEditor/index.mjs";
|
43
44
|
import EventManager from "../../eventManager.mjs";
|
44
45
|
import { isMobileBrowser, isIE, isEdge, isIOS } from "../../helpers/browser.mjs";
|
45
|
-
import { addClass, getComputedStyle,
|
46
|
+
import { addClass, getComputedStyle, setCaretPosition, hasClass, removeClass } from "../../helpers/dom/element.mjs";
|
46
47
|
import { rangeEach } from "../../helpers/number.mjs";
|
47
48
|
import { KEY_CODES } from "../../helpers/unicode.mjs";
|
48
49
|
import { autoResize } from "../../3rdparty/autoResize/index.mjs";
|
49
50
|
import { isDefined } from "../../helpers/mixed.mjs";
|
50
|
-
import { SHORTCUTS_GROUP_NAVIGATION
|
51
|
+
import { SHORTCUTS_GROUP_NAVIGATION } from "../../editorManager.mjs";
|
51
52
|
import { SHORTCUTS_GROUP_EDITOR } from "../baseEditor/baseEditor.mjs";
|
52
53
|
import { updateCaretPosition } from "./caretPositioner.mjs";
|
53
54
|
var EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';
|
@@ -172,7 +173,7 @@ export var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
172
173
|
key: "close",
|
173
174
|
value: function close() {
|
174
175
|
this.autoResize.unObserve();
|
175
|
-
if (
|
176
|
+
if (this.hot.rootDocument.activeElement === this.TEXTAREA) {
|
176
177
|
this.hot.listen(); // don't refocus the table if user focused some cell outside of HT on purpose
|
177
178
|
}
|
178
179
|
|
@@ -212,7 +213,7 @@ export var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
212
213
|
// @TODO: The fragmentSelection functionality is conflicted with IME. For this feature
|
213
214
|
// refocus has to be disabled (to make IME working).
|
214
215
|
var restoreFocus = !fragmentSelection;
|
215
|
-
if (
|
216
|
+
if (restoreFocus && !isMobileBrowser()) {
|
216
217
|
this.focus();
|
217
218
|
}
|
218
219
|
}
|
@@ -256,7 +257,6 @@ export var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
256
257
|
var rootDocument = this.hot.rootDocument;
|
257
258
|
this.TEXTAREA = rootDocument.createElement('TEXTAREA');
|
258
259
|
this.TEXTAREA.setAttribute('data-hot-input', ''); // Makes the element recognizable by Hot as its own component's element.
|
259
|
-
this.TEXTAREA.setAttribute('aria-hidden', 'true');
|
260
260
|
this.TEXTAREA.tabIndex = -1;
|
261
261
|
addClass(this.TEXTAREA, 'handsontableInput');
|
262
262
|
this.textareaStyle = this.TEXTAREA.style;
|
@@ -405,6 +405,12 @@ export var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
405
405
|
key: "bindEvents",
|
406
406
|
value: function bindEvents() {
|
407
407
|
var _this3 = this;
|
408
|
+
this.eventManager.addEventListener(this.TEXTAREA, 'cut', function (event) {
|
409
|
+
return event.stopPropagation();
|
410
|
+
});
|
411
|
+
this.eventManager.addEventListener(this.TEXTAREA, 'paste', function (event) {
|
412
|
+
return event.stopPropagation();
|
413
|
+
});
|
408
414
|
if (isIOS()) {
|
409
415
|
// on iOS after click "Done" the edit isn't hidden by default, so we need to handle it manually.
|
410
416
|
this.eventManager.addEventListener(this.TEXTAREA, 'focusout', function () {
|
@@ -419,15 +425,11 @@ export var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
419
425
|
});
|
420
426
|
this.addHook('afterColumnResize', function () {
|
421
427
|
_this3.refreshDimensions();
|
422
|
-
|
423
|
-
_this3.focus();
|
424
|
-
}
|
428
|
+
_this3.focus();
|
425
429
|
});
|
426
430
|
this.addHook('afterRowResize', function () {
|
427
431
|
_this3.refreshDimensions();
|
428
|
-
|
429
|
-
_this3.focus();
|
430
|
-
}
|
432
|
+
_this3.focus();
|
431
433
|
});
|
432
434
|
}
|
433
435
|
|
@@ -500,9 +502,7 @@ export var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
500
502
|
// We trigger a data population for multiple selection.
|
501
503
|
// catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
|
502
504
|
!event.altKey;
|
503
|
-
}
|
504
|
-
relativeToGroup: EDITOR_MANAGER_GROUP,
|
505
|
-
position: 'before'
|
505
|
+
}
|
506
506
|
}, {
|
507
507
|
keys: [['Meta', 'Enter']],
|
508
508
|
callback: function callback() {
|
@@ -512,19 +512,13 @@ export var TextEditor = /*#__PURE__*/function (_BaseEditor) {
|
|
512
512
|
|
513
513
|
runOnlyIf: function runOnlyIf() {
|
514
514
|
return !_this4.hot.selection.isMultiple();
|
515
|
-
}
|
516
|
-
// We trigger a data population for multiple selection.
|
517
|
-
relativeToGroup: EDITOR_MANAGER_GROUP,
|
518
|
-
position: 'before'
|
515
|
+
} // We trigger a data population for multiple selection.
|
519
516
|
}, {
|
520
517
|
keys: [['Alt', 'Enter']],
|
521
518
|
callback: function callback() {
|
522
519
|
insertNewLine();
|
523
520
|
return false; // Will block closing editor.
|
524
|
-
}
|
525
|
-
|
526
|
-
relativeToGroup: EDITOR_MANAGER_GROUP,
|
527
|
-
position: 'before'
|
521
|
+
}
|
528
522
|
}, {
|
529
523
|
// TODO: Duplicated part of code (callback to shortcut)
|
530
524
|
keys: [['PageUp']],
|