handsontable 14.2.0-next-75c8bcd-20240306 → 14.3.0-next-13fe676-20240409
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/calculator/renderAllColumns.js +1 -1
- package/3rdparty/walkontable/src/calculator/renderAllColumns.mjs +1 -1
- package/3rdparty/walkontable/src/calculator/renderAllRows.js +1 -1
- package/3rdparty/walkontable/src/calculator/renderAllRows.mjs +1 -1
- package/3rdparty/walkontable/src/calculator/viewportColumns.js +13 -18
- package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +13 -18
- package/3rdparty/walkontable/src/calculator/viewportRows.js +11 -16
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +11 -16
- package/3rdparty/walkontable/src/cell/coords.js +13 -18
- package/3rdparty/walkontable/src/cell/coords.mjs +13 -18
- package/3rdparty/walkontable/src/cell/range.d.ts +2 -1
- package/3rdparty/walkontable/src/cell/range.js +42 -30
- package/3rdparty/walkontable/src/cell/range.mjs +42 -30
- package/3rdparty/walkontable/src/core/_base.js +2 -2
- package/3rdparty/walkontable/src/core/_base.mjs +2 -2
- package/3rdparty/walkontable/src/core/clone.js +1 -1
- package/3rdparty/walkontable/src/core/clone.mjs +1 -1
- package/3rdparty/walkontable/src/event.js +72 -104
- package/3rdparty/walkontable/src/event.mjs +72 -104
- package/3rdparty/walkontable/src/filter/column.js +1 -1
- package/3rdparty/walkontable/src/filter/column.mjs +1 -1
- package/3rdparty/walkontable/src/filter/row.js +1 -1
- package/3rdparty/walkontable/src/filter/row.mjs +1 -1
- package/3rdparty/walkontable/src/index.js +1 -1
- package/3rdparty/walkontable/src/overlay/_base.js +1 -1
- package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/bottom.js +1 -1
- package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.js +15 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +16 -2
- package/3rdparty/walkontable/src/overlay/top.js +12 -1
- package/3rdparty/walkontable/src/overlay/top.mjs +13 -2
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +1 -1
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +1 -1
- package/3rdparty/walkontable/src/overlays.js +47 -5
- package/3rdparty/walkontable/src/overlays.mjs +47 -5
- package/3rdparty/walkontable/src/renderer/_base.js +1 -1
- package/3rdparty/walkontable/src/renderer/_base.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/cells.js +1 -1
- package/3rdparty/walkontable/src/renderer/cells.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +1 -1
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/rows.js +1 -1
- package/3rdparty/walkontable/src/renderer/rows.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/table.js +1 -1
- package/3rdparty/walkontable/src/renderer/table.mjs +1 -1
- package/3rdparty/walkontable/src/scroll.js +16 -18
- package/3rdparty/walkontable/src/scroll.mjs +16 -18
- package/3rdparty/walkontable/src/selection/manager.js +48 -69
- package/3rdparty/walkontable/src/selection/manager.mjs +48 -69
- package/3rdparty/walkontable/src/selection/scanner.js +33 -42
- package/3rdparty/walkontable/src/selection/scanner.mjs +33 -42
- package/3rdparty/walkontable/src/settings.js +1 -1
- package/3rdparty/walkontable/src/settings.mjs +1 -1
- package/3rdparty/walkontable/src/table.js +1 -1
- package/3rdparty/walkontable/src/table.mjs +1 -1
- package/3rdparty/walkontable/src/utils/column.js +1 -1
- package/3rdparty/walkontable/src/utils/column.mjs +1 -1
- package/3rdparty/walkontable/src/utils/columnStretching.js +28 -45
- package/3rdparty/walkontable/src/utils/columnStretching.mjs +28 -45
- package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
- package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
- package/3rdparty/walkontable/src/utils/orderView/view.js +2 -2
- package/3rdparty/walkontable/src/utils/orderView/view.mjs +2 -2
- package/3rdparty/walkontable/src/utils/orderView/viewSize.js +1 -1
- package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +1 -1
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +1 -1
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +1 -1
- package/3rdparty/walkontable/src/utils/row.js +1 -1
- package/3rdparty/walkontable/src/utils/row.mjs +1 -1
- package/CHANGELOG.md +20 -0
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core/viewportScroll/index.js +4 -1
- package/core/viewportScroll/index.mjs +4 -1
- package/core/viewportScroll/scrollStrategies/focusScroll.js +15 -0
- package/core/viewportScroll/scrollStrategies/focusScroll.mjs +11 -0
- package/core.d.ts +4 -3
- package/core.js +98 -43
- package/core.mjs +98 -43
- package/dataMap/dataMap.js +1 -1
- package/dataMap/dataMap.mjs +1 -1
- package/dataMap/dataSource.js +2 -2
- package/dataMap/dataSource.mjs +2 -2
- package/dataMap/metaManager/lazyFactoryMap.js +3 -5
- package/dataMap/metaManager/lazyFactoryMap.mjs +2 -4
- package/dataMap/metaManager/metaLayers/cellMeta.js +2 -2
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +2 -2
- package/dataMap/metaManager/metaLayers/columnMeta.js +1 -1
- package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
- package/dataMap/metaManager/metaLayers/globalMeta.js +1 -1
- package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
- package/dataMap/metaManager/metaLayers/tableMeta.js +1 -1
- package/dataMap/metaManager/metaLayers/tableMeta.mjs +1 -1
- package/dataMap/metaManager/metaSchema.js +272 -272
- package/dataMap/metaManager/metaSchema.mjs +272 -272
- package/dataMap/metaManager/mods/dynamicCellMeta.js +1 -1
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
- package/dataMap/metaManager/mods/extendMetaProperties.js +1 -1
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +1 -1
- package/dataMap/replaceData.js +1 -1
- package/dataMap/replaceData.mjs +1 -1
- package/dist/handsontable.css +4 -4
- package/dist/handsontable.full.css +4 -4
- package/dist/handsontable.full.js +9800 -10020
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +292 -292
- package/dist/handsontable.js +7470 -7056
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +25 -25
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/ar-AR.min.js +1 -1
- package/dist/languages/cs-CZ.min.js +1 -1
- package/dist/languages/de-CH.min.js +1 -1
- package/dist/languages/de-DE.min.js +1 -1
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/es-MX.min.js +1 -1
- package/dist/languages/fr-FR.min.js +1 -1
- package/dist/languages/hr-HR.min.js +1 -1
- package/dist/languages/it-IT.min.js +1 -1
- package/dist/languages/ja-JP.min.js +1 -1
- package/dist/languages/ko-KR.min.js +1 -1
- package/dist/languages/lv-LV.min.js +1 -1
- package/dist/languages/nb-NO.min.js +1 -1
- package/dist/languages/nl-NL.min.js +1 -1
- package/dist/languages/pl-PL.min.js +1 -1
- package/dist/languages/pt-BR.min.js +1 -1
- package/dist/languages/ru-RU.min.js +1 -1
- package/dist/languages/sr-SP.min.js +1 -1
- package/dist/languages/zh-CN.min.js +1 -1
- package/dist/languages/zh-TW.min.js +1 -1
- package/editorManager.js +26 -24
- package/editorManager.mjs +26 -24
- package/editors/autocompleteEditor/autocompleteEditor.js +7 -11
- package/editors/autocompleteEditor/autocompleteEditor.mjs +7 -11
- package/editors/baseEditor/baseEditor.js +1 -1
- package/editors/baseEditor/baseEditor.mjs +1 -1
- package/editors/dateEditor/dateEditor.js +35 -11
- package/editors/dateEditor/dateEditor.mjs +35 -11
- package/editors/selectEditor/selectEditor.js +20 -19
- package/editors/selectEditor/selectEditor.mjs +20 -19
- package/editors/textEditor/textEditor.js +1 -1
- package/editors/textEditor/textEditor.mjs +1 -1
- package/eventManager.js +2 -2
- package/eventManager.mjs +2 -2
- package/focusManager.js +64 -82
- package/focusManager.mjs +64 -82
- package/helpers/dom/element.js +23 -1
- package/helpers/dom/element.mjs +21 -1
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/helpers/object.js +2 -2
- package/helpers/object.mjs +2 -2
- package/i18n/languages/ar-AR.d.ts +5 -0
- package/i18n/languages/ar-AR.js +1 -1
- package/i18n/languages/cs-CZ.d.ts +5 -0
- package/i18n/languages/cs-CZ.js +1 -1
- package/i18n/languages/de-CH.js +1 -1
- package/i18n/languages/de-DE.js +1 -1
- package/i18n/languages/en-US.js +1 -1
- package/i18n/languages/es-MX.js +1 -1
- package/i18n/languages/fr-FR.js +1 -1
- package/i18n/languages/hr-HR.d.ts +5 -0
- package/i18n/languages/hr-HR.js +1 -1
- package/i18n/languages/it-IT.js +1 -1
- package/i18n/languages/ja-JP.js +1 -1
- package/i18n/languages/ko-KR.js +1 -1
- package/i18n/languages/lv-LV.js +1 -1
- package/i18n/languages/nb-NO.js +1 -1
- package/i18n/languages/nl-NL.js +1 -1
- package/i18n/languages/pl-PL.js +1 -1
- package/i18n/languages/pt-BR.js +1 -1
- package/i18n/languages/ru-RU.js +1 -1
- package/i18n/languages/sr-SP.d.ts +5 -0
- package/i18n/languages/sr-SP.js +1 -1
- package/i18n/languages/zh-CN.js +1 -1
- package/i18n/languages/zh-TW.js +1 -1
- package/i18n/registry.js +1 -1
- package/index.d.ts +10 -0
- package/index.js +1 -1
- package/package.json +14 -10
- package/pluginHooks.d.ts +4 -3
- package/pluginHooks.js +143 -82
- package/pluginHooks.mjs +143 -82
- package/plugins/autoColumnSize/autoColumnSize.js +50 -66
- package/plugins/autoColumnSize/autoColumnSize.mjs +50 -66
- package/plugins/autoRowSize/autoRowSize.js +29 -35
- package/plugins/autoRowSize/autoRowSize.mjs +29 -35
- package/plugins/autofill/autofill.js +31 -39
- package/plugins/autofill/autofill.mjs +31 -39
- package/plugins/base/base.js +13 -18
- package/plugins/base/base.mjs +13 -18
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +6 -6
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +6 -6
- package/plugins/collapsibleColumns/collapsibleColumns.js +60 -51
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +60 -51
- package/plugins/columnSorting/columnSorting.js +50 -46
- package/plugins/columnSorting/columnSorting.mjs +50 -46
- package/plugins/columnSorting/columnStatesManager.js +1 -1
- package/plugins/columnSorting/columnStatesManager.mjs +1 -1
- package/plugins/columnSummary/columnSummary.js +36 -40
- package/plugins/columnSummary/columnSummary.mjs +36 -40
- package/plugins/columnSummary/endpoints.js +1 -1
- package/plugins/columnSummary/endpoints.mjs +1 -1
- package/plugins/comments/commentEditor.js +1 -1
- package/plugins/comments/commentEditor.mjs +1 -1
- package/plugins/comments/comments.js +117 -159
- package/plugins/comments/comments.mjs +117 -159
- package/plugins/comments/contextMenuItem/addEditComment.js +1 -1
- package/plugins/comments/contextMenuItem/readOnlyComment.js +1 -1
- package/plugins/comments/contextMenuItem/removeComment.js +1 -1
- package/plugins/comments/displaySwitch.js +1 -1
- package/plugins/comments/displaySwitch.mjs +1 -1
- package/plugins/contextMenu/commandExecutor.js +1 -1
- package/plugins/contextMenu/commandExecutor.mjs +1 -1
- package/plugins/contextMenu/contextMenu.js +24 -30
- package/plugins/contextMenu/contextMenu.mjs +24 -30
- package/plugins/contextMenu/itemsFactory.js +2 -2
- package/plugins/contextMenu/itemsFactory.mjs +2 -2
- package/plugins/contextMenu/menu/cursor.js +1 -1
- package/plugins/contextMenu/menu/cursor.mjs +1 -1
- package/plugins/contextMenu/menu/defaultShortcutsList.js +26 -10
- package/plugins/contextMenu/menu/defaultShortcutsList.mjs +26 -10
- package/plugins/contextMenu/menu/menu.js +14 -22
- package/plugins/contextMenu/menu/menu.mjs +14 -22
- package/plugins/contextMenu/menu/positioner.js +41 -58
- package/plugins/contextMenu/menu/positioner.mjs +41 -58
- package/plugins/contextMenu/predefinedItems/alignment.js +1 -1
- package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
- package/plugins/contextMenu/predefinedItems/columnLeft.js +1 -1
- package/plugins/contextMenu/predefinedItems/columnRight.js +1 -1
- package/plugins/contextMenu/predefinedItems/index.js +1 -1
- package/plugins/contextMenu/predefinedItems/readOnly.js +1 -1
- package/plugins/contextMenu/predefinedItems/redo.js +1 -1
- package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
- package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
- package/plugins/contextMenu/predefinedItems/rowAbove.js +1 -1
- package/plugins/contextMenu/predefinedItems/rowBelow.js +1 -1
- package/plugins/contextMenu/predefinedItems/undo.js +1 -1
- package/plugins/copyPaste/contextMenuItem/cut.js +1 -1
- package/plugins/copyPaste/copyPaste.js +120 -161
- package/plugins/copyPaste/copyPaste.mjs +120 -161
- package/plugins/copyPaste/copyableRanges.js +43 -66
- package/plugins/copyPaste/copyableRanges.mjs +43 -66
- package/plugins/customBorders/contextMenuItem/bottom.js +1 -1
- package/plugins/customBorders/contextMenuItem/left.js +1 -1
- package/plugins/customBorders/contextMenuItem/noBorders.js +1 -1
- package/plugins/customBorders/contextMenuItem/right.js +1 -1
- package/plugins/customBorders/contextMenuItem/top.js +1 -1
- package/plugins/customBorders/customBorders.js +14 -16
- package/plugins/customBorders/customBorders.mjs +13 -15
- package/plugins/dragToScroll/dragToScroll.js +7 -7
- package/plugins/dragToScroll/dragToScroll.mjs +7 -7
- package/plugins/dropdownMenu/dropdownMenu.js +84 -110
- package/plugins/dropdownMenu/dropdownMenu.mjs +84 -110
- package/plugins/exportFile/dataProvider.js +2 -2
- package/plugins/exportFile/dataProvider.mjs +2 -2
- package/plugins/exportFile/exportFile.js +2 -2
- package/plugins/exportFile/exportFile.mjs +1 -1
- package/plugins/exportFile/types/_base.js +1 -1
- package/plugins/exportFile/types/_base.mjs +1 -1
- package/plugins/filters/component/_base.js +1 -1
- package/plugins/filters/component/_base.mjs +1 -1
- package/plugins/filters/component/actionBar.js +11 -11
- package/plugins/filters/component/actionBar.mjs +9 -9
- package/plugins/filters/component/condition.js +15 -17
- package/plugins/filters/component/condition.mjs +14 -16
- package/plugins/filters/component/operators.js +7 -7
- package/plugins/filters/component/operators.mjs +7 -7
- package/plugins/filters/component/value.js +26 -30
- package/plugins/filters/component/value.mjs +25 -29
- package/plugins/filters/condition/beginsWith.js +1 -1
- package/plugins/filters/condition/between.js +1 -1
- package/plugins/filters/condition/contains.js +1 -1
- package/plugins/filters/condition/date/after.js +1 -1
- package/plugins/filters/condition/date/before.js +1 -1
- package/plugins/filters/condition/date/today.js +1 -1
- package/plugins/filters/condition/date/tomorrow.js +1 -1
- package/plugins/filters/condition/date/yesterday.js +1 -1
- package/plugins/filters/condition/empty.js +1 -1
- package/plugins/filters/condition/endsWith.js +1 -1
- package/plugins/filters/condition/equal.js +1 -1
- package/plugins/filters/condition/greaterThan.js +1 -1
- package/plugins/filters/condition/greaterThanOrEqual.js +1 -1
- package/plugins/filters/condition/lessThan.js +1 -1
- package/plugins/filters/condition/lessThanOrEqual.js +1 -1
- package/plugins/filters/condition/none.js +1 -1
- package/plugins/filters/condition/notBetween.js +1 -1
- package/plugins/filters/condition/notContains.js +1 -1
- package/plugins/filters/condition/notEmpty.js +1 -1
- package/plugins/filters/condition/notEqual.js +1 -1
- package/plugins/filters/conditionCollection.js +1 -1
- package/plugins/filters/conditionCollection.mjs +1 -1
- package/plugins/filters/conditionUpdateObserver.js +23 -25
- package/plugins/filters/conditionUpdateObserver.mjs +23 -25
- package/plugins/filters/dataFilter.js +2 -2
- package/plugins/filters/dataFilter.mjs +2 -2
- package/plugins/filters/filters.js +84 -98
- package/plugins/filters/filters.mjs +83 -97
- package/plugins/filters/logicalOperations/conjunction.js +1 -1
- package/plugins/filters/logicalOperations/disjunction.js +1 -1
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +1 -1
- package/plugins/filters/ui/_base.js +2 -2
- package/plugins/filters/ui/_base.mjs +1 -1
- package/plugins/filters/ui/input.js +13 -19
- package/plugins/filters/ui/input.mjs +13 -19
- package/plugins/filters/ui/link.js +8 -13
- package/plugins/filters/ui/link.mjs +8 -13
- package/plugins/filters/ui/multipleSelect.js +86 -113
- package/plugins/filters/ui/multipleSelect.mjs +85 -112
- package/plugins/filters/ui/radioInput.js +12 -20
- package/plugins/filters/ui/radioInput.mjs +12 -20
- package/plugins/filters/ui/select.js +51 -73
- package/plugins/filters/ui/select.mjs +49 -71
- package/plugins/formulas/formulas.js +270 -328
- package/plugins/formulas/formulas.mjs +271 -329
- package/plugins/formulas/indexSyncer/axisSyncer.js +38 -61
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +38 -61
- package/plugins/formulas/indexSyncer/index.js +25 -48
- package/plugins/formulas/indexSyncer/index.mjs +25 -48
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -1
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -1
- package/plugins/hiddenColumns/hiddenColumns.js +68 -87
- package/plugins/hiddenColumns/hiddenColumns.mjs +68 -87
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -1
- package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -1
- package/plugins/hiddenRows/hiddenRows.js +67 -86
- package/plugins/hiddenRows/hiddenRows.mjs +67 -86
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +24 -32
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +25 -33
- package/plugins/manualColumnMove/manualColumnMove.js +133 -177
- package/plugins/manualColumnMove/manualColumnMove.mjs +133 -177
- package/plugins/manualColumnMove/ui/_base.js +1 -1
- package/plugins/manualColumnMove/ui/_base.mjs +1 -1
- package/plugins/manualColumnResize/manualColumnResize.js +169 -230
- package/plugins/manualColumnResize/manualColumnResize.mjs +169 -230
- package/plugins/manualRowMove/manualRowMove.js +106 -135
- package/plugins/manualRowMove/manualRowMove.mjs +106 -135
- package/plugins/manualRowMove/ui/_base.js +1 -1
- package/plugins/manualRowMove/ui/_base.mjs +1 -1
- package/plugins/manualRowResize/manualRowResize.js +150 -209
- package/plugins/manualRowResize/manualRowResize.mjs +150 -209
- package/plugins/mergeCells/calculations/autofill.js +1 -1
- package/plugins/mergeCells/calculations/autofill.mjs +1 -1
- package/plugins/mergeCells/calculations/selection.js +3 -72
- package/plugins/mergeCells/calculations/selection.mjs +3 -72
- package/plugins/mergeCells/cellCoords.js +1 -1
- package/plugins/mergeCells/cellCoords.mjs +1 -1
- package/plugins/mergeCells/cellsCollection.js +118 -2
- package/plugins/mergeCells/cellsCollection.mjs +118 -2
- package/plugins/mergeCells/contextMenuItem/toggleMerge.js +12 -2
- package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +11 -1
- package/plugins/mergeCells/focusOrder.js +305 -0
- package/plugins/mergeCells/focusOrder.mjs +300 -0
- package/plugins/mergeCells/mergeCells.js +500 -398
- package/plugins/mergeCells/mergeCells.mjs +500 -398
- package/plugins/multiColumnSorting/multiColumnSorting.js +9 -3
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +9 -3
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +2 -2
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +2 -2
- package/plugins/nestedHeaders/nestedHeaders.js +206 -254
- package/plugins/nestedHeaders/nestedHeaders.mjs +207 -255
- package/plugins/nestedHeaders/stateManager/headersTree.js +21 -32
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +21 -32
- package/plugins/nestedHeaders/stateManager/index.js +30 -41
- package/plugins/nestedHeaders/stateManager/index.mjs +30 -41
- package/plugins/nestedHeaders/stateManager/sourceSettings.js +19 -30
- package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +19 -30
- package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
- package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
- package/plugins/nestedRows/data/dataManager.js +2 -2
- package/plugins/nestedRows/data/dataManager.mjs +2 -2
- package/plugins/nestedRows/nestedRows.js +154 -185
- package/plugins/nestedRows/nestedRows.mjs +155 -186
- package/plugins/nestedRows/ui/_base.js +1 -1
- package/plugins/nestedRows/ui/_base.mjs +1 -1
- package/plugins/nestedRows/ui/contextMenu.js +13 -17
- package/plugins/nestedRows/ui/contextMenu.mjs +11 -15
- package/plugins/nestedRows/utils/rowMoveController.js +6 -6
- package/plugins/nestedRows/utils/rowMoveController.mjs +6 -6
- package/plugins/persistentState/persistentState.js +1 -1
- package/plugins/persistentState/persistentState.mjs +1 -1
- package/plugins/persistentState/storage.js +3 -3
- package/plugins/persistentState/storage.mjs +3 -3
- package/plugins/search/search.js +8 -8
- package/plugins/search/search.mjs +8 -8
- package/plugins/touchScroll/touchScroll.js +16 -20
- package/plugins/touchScroll/touchScroll.mjs +17 -21
- package/plugins/trimRows/trimRows.js +7 -7
- package/plugins/trimRows/trimRows.mjs +7 -7
- package/plugins/undoRedo/index.js +1 -1
- package/renderers/checkboxRenderer/checkboxRenderer.js +8 -5
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +8 -5
- package/selection/highlight/highlight.js +16 -18
- package/selection/highlight/highlight.mjs +15 -17
- package/selection/highlight/visualSelection.js +3 -1
- package/selection/highlight/visualSelection.mjs +3 -1
- package/selection/range.js +3 -5
- package/selection/range.mjs +2 -4
- package/selection/selection.js +227 -69
- package/selection/selection.mjs +225 -67
- package/selection/transformation.js +149 -118
- package/selection/transformation.mjs +149 -118
- package/shortcutContexts/commands/editor/closeAndSave.js +2 -2
- package/shortcutContexts/commands/editor/closeAndSave.mjs +2 -2
- package/shortcutContexts/commands/editor/open.js +18 -3
- package/shortcutContexts/commands/editor/open.mjs +18 -3
- package/shortcutContexts/commands/extendCellsSelection/down.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +1 -1
- 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 +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +9 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +9 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +10 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +10 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +3 -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/moveCellSelection/inlineEnd.js +6 -1
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +6 -1
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +6 -1
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +6 -1
- package/shortcutContexts/grid.js +9 -3
- package/shortcutContexts/grid.mjs +9 -3
- package/shortcuts/context.js +3 -2
- package/shortcuts/context.mjs +3 -2
- package/shortcuts/manager.js +2 -2
- package/shortcuts/manager.mjs +2 -2
- package/tableView.js +53 -79
- package/tableView.mjs +53 -79
- package/translations/changesObservable/observable.js +21 -38
- package/translations/changesObservable/observable.mjs +21 -38
- package/translations/changesObservable/observer.js +7 -12
- package/translations/changesObservable/observer.mjs +6 -11
- package/translations/indexMapper.js +1 -1
- package/translations/indexMapper.mjs +1 -1
- package/translations/mapCollections/aggregatedCollection.js +2 -2
- package/translations/mapCollections/aggregatedCollection.mjs +2 -2
- package/translations/mapCollections/mapCollection.js +1 -1
- package/translations/mapCollections/mapCollection.mjs +1 -1
- package/translations/maps/indexMap.js +2 -2
- package/translations/maps/indexMap.mjs +2 -2
- package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -1
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -1
- package/utils/dataStructures/linkedList.js +7 -2
- package/utils/dataStructures/linkedList.mjs +7 -2
- package/utils/dataStructures/tree.js +2 -2
- package/utils/dataStructures/tree.mjs +2 -2
- package/utils/ghostTable.js +1 -1
- package/utils/ghostTable.mjs +1 -1
- package/utils/interval.js +27 -45
- package/utils/interval.mjs +27 -45
- package/utils/samplesGenerator.js +1 -1
- package/utils/samplesGenerator.mjs +1 -1
@@ -2,12 +2,9 @@ import "core-js/modules/es.error.cause.js";
|
|
2
2
|
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
3
3
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
4
4
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
5
|
-
function _classPrivateFieldGet(
|
6
|
-
function
|
7
|
-
function
|
8
|
-
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
9
|
-
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
10
|
-
function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
|
5
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
6
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
7
|
+
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
11
8
|
import { mixin, createObjectPropListener } from "../helpers/object.mjs";
|
12
9
|
import localHooks from "./../mixins/localHooks.mjs";
|
13
10
|
/**
|
@@ -28,67 +25,29 @@ import localHooks from "./../mixins/localHooks.mjs";
|
|
28
25
|
var _range = /*#__PURE__*/new WeakMap();
|
29
26
|
var _options = /*#__PURE__*/new WeakMap();
|
30
27
|
var _offset = /*#__PURE__*/new WeakMap();
|
31
|
-
var
|
32
|
-
var _clampCoords = /*#__PURE__*/new WeakSet();
|
33
|
-
var _getTableSize = /*#__PURE__*/new WeakSet();
|
34
|
-
var _visualToZeroBasedCoords = /*#__PURE__*/new WeakSet();
|
35
|
-
var _zeroBasedToVisualCoords = /*#__PURE__*/new WeakSet();
|
28
|
+
var _Transformation_brand = /*#__PURE__*/new WeakSet();
|
36
29
|
class Transformation {
|
37
30
|
constructor(range, options) {
|
38
|
-
/**
|
39
|
-
* Translates the zero-based coordinates to visual ones.
|
40
|
-
*
|
41
|
-
* @param {CellCoords} zeroBasedCoords The coordinates to process.
|
42
|
-
* @returns {CellCoords}
|
43
|
-
*/
|
44
|
-
_classPrivateMethodInitSpec(this, _zeroBasedToVisualCoords);
|
45
|
-
/**
|
46
|
-
* Translates the visual coordinates to zero-based ones.
|
47
|
-
*
|
48
|
-
* @param {CellCoords} visualCoords The visual coords to process.
|
49
|
-
* @returns {CellCoords}
|
50
|
-
*/
|
51
|
-
_classPrivateMethodInitSpec(this, _visualToZeroBasedCoords);
|
52
|
-
/**
|
53
|
-
* Gets the table size in number of rows with headers as "height" and number of columns with
|
54
|
-
* headers as "width".
|
55
|
-
*
|
56
|
-
* @returns {{width: number, height: number}}
|
57
|
-
*/
|
58
|
-
_classPrivateMethodInitSpec(this, _getTableSize);
|
59
31
|
/**
|
60
32
|
* Clamps the coords to make sure they points to the cell (or header) in the table range.
|
61
33
|
*
|
62
34
|
* @param {CellCoords} zeroBasedCoords The coords object to clamp.
|
63
35
|
* @returns {{rowDir: 1|0|-1, colDir: 1|0|-1}}
|
64
36
|
*/
|
65
|
-
_classPrivateMethodInitSpec(this,
|
66
|
-
/**
|
67
|
-
* Sets the additional offset in table size that may occur when the `navigableHeaders` option
|
68
|
-
* is enabled.
|
69
|
-
*
|
70
|
-
* @param {{x: number, y: number}} offset Offset as x and y properties.
|
71
|
-
*/
|
72
|
-
_classPrivateMethodInitSpec(this, _setOffsetSize);
|
37
|
+
_classPrivateMethodInitSpec(this, _Transformation_brand);
|
73
38
|
/**
|
74
39
|
* Instance of the SelectionRange, holder for visual coordinates applied to the table.
|
75
40
|
*
|
76
41
|
* @type {SelectionRange}
|
77
42
|
*/
|
78
|
-
_classPrivateFieldInitSpec(this, _range,
|
79
|
-
writable: true,
|
80
|
-
value: void 0
|
81
|
-
});
|
43
|
+
_classPrivateFieldInitSpec(this, _range, void 0);
|
82
44
|
/**
|
83
45
|
* Additional options which define the state of the settings which can infer transformation and
|
84
46
|
* give the possibility to translate indexes.
|
85
47
|
*
|
86
48
|
* @type {object}
|
87
49
|
*/
|
88
|
-
_classPrivateFieldInitSpec(this, _options,
|
89
|
-
writable: true,
|
90
|
-
value: void 0
|
91
|
-
});
|
50
|
+
_classPrivateFieldInitSpec(this, _options, void 0);
|
92
51
|
/**
|
93
52
|
* Increases the table size by applying the offsets. The option is used by the `navigableHeaders`
|
94
53
|
* option.
|
@@ -96,14 +55,11 @@ class Transformation {
|
|
96
55
|
* @type {{ x: number, y: number }}
|
97
56
|
*/
|
98
57
|
_classPrivateFieldInitSpec(this, _offset, {
|
99
|
-
|
100
|
-
|
101
|
-
x: 0,
|
102
|
-
y: 0
|
103
|
-
}
|
58
|
+
x: 0,
|
59
|
+
y: 0
|
104
60
|
});
|
105
|
-
_classPrivateFieldSet(
|
106
|
-
_classPrivateFieldSet(
|
61
|
+
_classPrivateFieldSet(_range, this, range);
|
62
|
+
_classPrivateFieldSet(_options, this, options);
|
107
63
|
}
|
108
64
|
|
109
65
|
/**
|
@@ -117,13 +73,9 @@ class Transformation {
|
|
117
73
|
*/
|
118
74
|
transformStart(rowDelta, colDelta) {
|
119
75
|
let createMissingRecords = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
});
|
124
|
-
const delta = _classPrivateFieldGet(this, _options).createCellCoords(rowDelta, colDelta);
|
125
|
-
let visualCoords = _classPrivateFieldGet(this, _range).current().highlight;
|
126
|
-
const highlightRenderableCoords = _classPrivateFieldGet(this, _options).visualToRenderableCoords(visualCoords);
|
76
|
+
const delta = _classPrivateFieldGet(_options, this).createCellCoords(rowDelta, colDelta);
|
77
|
+
let visualCoords = _classPrivateFieldGet(_range, this).current().highlight;
|
78
|
+
const highlightRenderableCoords = _classPrivateFieldGet(_options, this).visualToRenderableCoords(visualCoords);
|
127
79
|
let rowTransformDir = 0;
|
128
80
|
let colTransformDir = 0;
|
129
81
|
this.runLocalHooks('beforeTransformStart', delta);
|
@@ -131,32 +83,32 @@ class Transformation {
|
|
131
83
|
const {
|
132
84
|
width,
|
133
85
|
height
|
134
|
-
} =
|
86
|
+
} = _assertClassBrand(_Transformation_brand, this, _getTableSize).call(this);
|
135
87
|
const {
|
136
88
|
row,
|
137
89
|
col
|
138
|
-
} =
|
139
|
-
const fixedRowsBottom = _classPrivateFieldGet(
|
140
|
-
const minSpareRows = _classPrivateFieldGet(
|
141
|
-
const minSpareCols = _classPrivateFieldGet(
|
142
|
-
const autoWrapRow = _classPrivateFieldGet(
|
143
|
-
const autoWrapCol = _classPrivateFieldGet(
|
144
|
-
const zeroBasedCoords = _classPrivateFieldGet(
|
90
|
+
} = _assertClassBrand(_Transformation_brand, this, _visualToZeroBasedCoords).call(this, visualCoords);
|
91
|
+
const fixedRowsBottom = _classPrivateFieldGet(_options, this).fixedRowsBottom();
|
92
|
+
const minSpareRows = _classPrivateFieldGet(_options, this).minSpareRows();
|
93
|
+
const minSpareCols = _classPrivateFieldGet(_options, this).minSpareCols();
|
94
|
+
const autoWrapRow = _classPrivateFieldGet(_options, this).autoWrapRow();
|
95
|
+
const autoWrapCol = _classPrivateFieldGet(_options, this).autoWrapCol();
|
96
|
+
const zeroBasedCoords = _classPrivateFieldGet(_options, this).createCellCoords(row + delta.row, col + delta.col);
|
145
97
|
if (zeroBasedCoords.row >= height) {
|
146
98
|
const isActionInterrupted = createObjectPropListener(createMissingRecords && minSpareRows > 0 && fixedRowsBottom === 0);
|
147
99
|
const nextColumn = zeroBasedCoords.col + 1;
|
148
|
-
const newCoords = _classPrivateFieldGet(
|
149
|
-
this.runLocalHooks('beforeColumnWrap', isActionInterrupted,
|
100
|
+
const newCoords = _classPrivateFieldGet(_options, this).createCellCoords(zeroBasedCoords.row - height, nextColumn >= width ? nextColumn - width : nextColumn);
|
101
|
+
this.runLocalHooks('beforeColumnWrap', isActionInterrupted, _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, newCoords), nextColumn >= width);
|
150
102
|
if (isActionInterrupted.value) {
|
151
|
-
this.runLocalHooks('insertRowRequire', _classPrivateFieldGet(
|
103
|
+
this.runLocalHooks('insertRowRequire', _classPrivateFieldGet(_options, this).countRenderableRows());
|
152
104
|
} else if (autoWrapCol) {
|
153
105
|
zeroBasedCoords.assign(newCoords);
|
154
106
|
}
|
155
107
|
} else if (zeroBasedCoords.row < 0) {
|
156
108
|
const isActionInterrupted = createObjectPropListener(autoWrapCol);
|
157
109
|
const previousColumn = zeroBasedCoords.col - 1;
|
158
|
-
const newCoords = _classPrivateFieldGet(
|
159
|
-
this.runLocalHooks('beforeColumnWrap', isActionInterrupted,
|
110
|
+
const newCoords = _classPrivateFieldGet(_options, this).createCellCoords(height + zeroBasedCoords.row, previousColumn < 0 ? width + previousColumn : previousColumn);
|
111
|
+
this.runLocalHooks('beforeColumnWrap', isActionInterrupted, _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, newCoords), previousColumn < 0);
|
160
112
|
if (autoWrapCol) {
|
161
113
|
zeroBasedCoords.assign(newCoords);
|
162
114
|
}
|
@@ -164,18 +116,18 @@ class Transformation {
|
|
164
116
|
if (zeroBasedCoords.col >= width) {
|
165
117
|
const isActionInterrupted = createObjectPropListener(createMissingRecords && minSpareCols > 0);
|
166
118
|
const nextRow = zeroBasedCoords.row + 1;
|
167
|
-
const newCoords = _classPrivateFieldGet(
|
168
|
-
this.runLocalHooks('beforeRowWrap', isActionInterrupted,
|
119
|
+
const newCoords = _classPrivateFieldGet(_options, this).createCellCoords(nextRow >= height ? nextRow - height : nextRow, zeroBasedCoords.col - width);
|
120
|
+
this.runLocalHooks('beforeRowWrap', isActionInterrupted, _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, newCoords), nextRow >= height);
|
169
121
|
if (isActionInterrupted.value) {
|
170
|
-
this.runLocalHooks('insertColRequire', _classPrivateFieldGet(
|
122
|
+
this.runLocalHooks('insertColRequire', _classPrivateFieldGet(_options, this).countRenderableColumns());
|
171
123
|
} else if (autoWrapRow) {
|
172
124
|
zeroBasedCoords.assign(newCoords);
|
173
125
|
}
|
174
126
|
} else if (zeroBasedCoords.col < 0) {
|
175
127
|
const isActionInterrupted = createObjectPropListener(autoWrapRow);
|
176
128
|
const previousRow = zeroBasedCoords.row - 1;
|
177
|
-
const newCoords = _classPrivateFieldGet(
|
178
|
-
this.runLocalHooks('beforeRowWrap', isActionInterrupted,
|
129
|
+
const newCoords = _classPrivateFieldGet(_options, this).createCellCoords(previousRow < 0 ? height + previousRow : previousRow, width + zeroBasedCoords.col);
|
130
|
+
this.runLocalHooks('beforeRowWrap', isActionInterrupted, _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, newCoords), previousRow < 0);
|
179
131
|
if (autoWrapRow) {
|
180
132
|
zeroBasedCoords.assign(newCoords);
|
181
133
|
}
|
@@ -183,10 +135,10 @@ class Transformation {
|
|
183
135
|
const {
|
184
136
|
rowDir,
|
185
137
|
colDir
|
186
|
-
} =
|
138
|
+
} = _assertClassBrand(_Transformation_brand, this, _clampCoords).call(this, zeroBasedCoords);
|
187
139
|
rowTransformDir = rowDir;
|
188
140
|
colTransformDir = colDir;
|
189
|
-
visualCoords =
|
141
|
+
visualCoords = _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, zeroBasedCoords);
|
190
142
|
}
|
191
143
|
this.runLocalHooks('afterTransformStart', visualCoords, rowTransformDir, colTransformDir);
|
192
144
|
return visualCoords;
|
@@ -200,30 +152,53 @@ class Transformation {
|
|
200
152
|
* @returns {CellCoords} Visual coordinates after transformation.
|
201
153
|
*/
|
202
154
|
transformEnd(rowDelta, colDelta) {
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
const
|
208
|
-
const cellRange = _classPrivateFieldGet(this, _range).current();
|
209
|
-
const highlightRenderableCoords = _classPrivateFieldGet(this, _options).visualToRenderableCoords(cellRange.highlight);
|
155
|
+
const delta = _classPrivateFieldGet(_options, this).createCellCoords(rowDelta, colDelta);
|
156
|
+
const cellRange = _classPrivateFieldGet(_range, this).current();
|
157
|
+
const highlightRenderableCoords = _classPrivateFieldGet(_options, this).visualToRenderableCoords(cellRange.highlight);
|
158
|
+
const toRow = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedRow).call(this, cellRange.to.row, cellRange.from.row);
|
159
|
+
const toColumn = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedColumn).call(this, cellRange.to.col, cellRange.from.col);
|
210
160
|
const visualCoords = cellRange.to.clone();
|
211
161
|
let rowTransformDir = 0;
|
212
162
|
let colTransformDir = 0;
|
213
163
|
this.runLocalHooks('beforeTransformEnd', delta);
|
214
|
-
if (highlightRenderableCoords.row !== null && highlightRenderableCoords.col !== null) {
|
164
|
+
if (highlightRenderableCoords.row !== null && highlightRenderableCoords.col !== null && toRow !== null && toColumn !== null) {
|
215
165
|
const {
|
216
|
-
row,
|
217
|
-
col
|
218
|
-
} =
|
219
|
-
const coords = _classPrivateFieldGet(
|
166
|
+
row: highlightRow,
|
167
|
+
col: highlightColumn
|
168
|
+
} = _assertClassBrand(_Transformation_brand, this, _visualToZeroBasedCoords).call(this, cellRange.highlight);
|
169
|
+
const coords = _classPrivateFieldGet(_options, this).createCellCoords(toRow + delta.row, toColumn + delta.col);
|
170
|
+
const topStartCorner = cellRange.getTopStartCorner();
|
171
|
+
const topEndCorner = cellRange.getTopEndCorner();
|
172
|
+
const bottomEndCorner = cellRange.getBottomEndCorner();
|
173
|
+
const restDelta = {
|
174
|
+
row: coords.row - highlightRow,
|
175
|
+
col: coords.col - highlightColumn
|
176
|
+
};
|
177
|
+
if (delta.col < 0) {
|
178
|
+
if (toColumn >= highlightColumn && coords.col < highlightColumn) {
|
179
|
+
coords.col = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedColumn).call(this, topStartCorner.col, topEndCorner.col) + restDelta.col;
|
180
|
+
}
|
181
|
+
} else if (delta.col > 0) {
|
182
|
+
if (toColumn <= highlightColumn && coords.col > highlightColumn) {
|
183
|
+
coords.col = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedColumn).call(this, topEndCorner.col, topStartCorner.col) + restDelta.col;
|
184
|
+
}
|
185
|
+
}
|
186
|
+
if (delta.row < 0) {
|
187
|
+
if (toRow >= highlightRow && coords.row < highlightRow) {
|
188
|
+
coords.row = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedRow).call(this, topStartCorner.row, bottomEndCorner.row) + restDelta.row;
|
189
|
+
}
|
190
|
+
} else if (delta.row > 0) {
|
191
|
+
if (toRow <= highlightRow && coords.row > highlightRow) {
|
192
|
+
coords.row = _assertClassBrand(_Transformation_brand, this, _findFirstNonHiddenZeroBasedRow).call(this, bottomEndCorner.row, topStartCorner.row) + restDelta.row;
|
193
|
+
}
|
194
|
+
}
|
220
195
|
const {
|
221
196
|
rowDir,
|
222
197
|
colDir
|
223
|
-
} =
|
198
|
+
} = _assertClassBrand(_Transformation_brand, this, _clampCoords).call(this, coords);
|
224
199
|
rowTransformDir = rowDir;
|
225
200
|
colTransformDir = colDir;
|
226
|
-
const newVisualCoords =
|
201
|
+
const newVisualCoords = _assertClassBrand(_Transformation_brand, this, _zeroBasedToVisualCoords).call(this, coords);
|
227
202
|
if (delta.row === 0 && delta.col !== 0) {
|
228
203
|
visualCoords.col = newVisualCoords.col;
|
229
204
|
} else if (delta.row !== 0 && delta.col === 0) {
|
@@ -236,22 +211,29 @@ class Transformation {
|
|
236
211
|
this.runLocalHooks('afterTransformEnd', visualCoords, rowTransformDir, colTransformDir);
|
237
212
|
return visualCoords;
|
238
213
|
}
|
214
|
+
|
215
|
+
/**
|
216
|
+
* Sets the additional offset in table size that may occur when the `navigableHeaders` option
|
217
|
+
* is enabled.
|
218
|
+
*
|
219
|
+
* @param {{x: number, y: number}} offset Offset as x and y properties.
|
220
|
+
*/
|
221
|
+
setOffsetSize(_ref) {
|
222
|
+
let {
|
223
|
+
x,
|
224
|
+
y
|
225
|
+
} = _ref;
|
226
|
+
_classPrivateFieldSet(_offset, this, {
|
227
|
+
x,
|
228
|
+
y
|
229
|
+
});
|
230
|
+
}
|
239
231
|
}
|
240
|
-
function
|
241
|
-
let {
|
242
|
-
x,
|
243
|
-
y
|
244
|
-
} = _ref;
|
245
|
-
_classPrivateFieldSet(this, _offset, {
|
246
|
-
x,
|
247
|
-
y
|
248
|
-
});
|
249
|
-
}
|
250
|
-
function _clampCoords2(zeroBasedCoords) {
|
232
|
+
function _clampCoords(zeroBasedCoords) {
|
251
233
|
const {
|
252
234
|
width,
|
253
235
|
height
|
254
|
-
} =
|
236
|
+
} = _assertClassBrand(_Transformation_brand, this, _getTableSize).call(this);
|
255
237
|
let rowDir = 0;
|
256
238
|
let colDir = 0;
|
257
239
|
if (zeroBasedCoords.row < 0) {
|
@@ -273,24 +255,73 @@ function _clampCoords2(zeroBasedCoords) {
|
|
273
255
|
colDir
|
274
256
|
};
|
275
257
|
}
|
276
|
-
|
258
|
+
/**
|
259
|
+
* Gets the table size in number of rows with headers as "height" and number of columns with
|
260
|
+
* headers as "width".
|
261
|
+
*
|
262
|
+
* @returns {{width: number, height: number}}
|
263
|
+
*/
|
264
|
+
function _getTableSize() {
|
277
265
|
return {
|
278
|
-
width: _classPrivateFieldGet(
|
279
|
-
height: _classPrivateFieldGet(
|
266
|
+
width: _classPrivateFieldGet(_offset, this).x + _classPrivateFieldGet(_options, this).countRenderableColumns(),
|
267
|
+
height: _classPrivateFieldGet(_offset, this).y + _classPrivateFieldGet(_options, this).countRenderableRows()
|
280
268
|
};
|
281
269
|
}
|
282
|
-
|
270
|
+
/**
|
271
|
+
* Finds the first non-hidden zero-based row in the table range.
|
272
|
+
*
|
273
|
+
* @param {number} visualRowFrom The visual row from which the search should start.
|
274
|
+
* @param {number} visualRowTo The visual row to which the search should end.
|
275
|
+
* @returns {number | null}
|
276
|
+
*/
|
277
|
+
function _findFirstNonHiddenZeroBasedRow(visualRowFrom, visualRowTo) {
|
278
|
+
const row = _classPrivateFieldGet(_options, this).findFirstNonHiddenRenderableRow(visualRowFrom, visualRowTo);
|
279
|
+
if (row === null) {
|
280
|
+
return null;
|
281
|
+
}
|
282
|
+
return _classPrivateFieldGet(_offset, this).y + row;
|
283
|
+
}
|
284
|
+
/**
|
285
|
+
* Finds the first non-hidden zero-based column in the table range.
|
286
|
+
*
|
287
|
+
* @param {number} visualColumnFrom The visual column from which the search should start.
|
288
|
+
* @param {number} visualColumnTo The visual column to which the search should end.
|
289
|
+
* @returns {number | null}
|
290
|
+
*/
|
291
|
+
function _findFirstNonHiddenZeroBasedColumn(visualColumnFrom, visualColumnTo) {
|
292
|
+
const column = _classPrivateFieldGet(_options, this).findFirstNonHiddenRenderableColumn(visualColumnFrom, visualColumnTo);
|
293
|
+
if (column === null) {
|
294
|
+
return null;
|
295
|
+
}
|
296
|
+
return _classPrivateFieldGet(_offset, this).x + column;
|
297
|
+
}
|
298
|
+
/**
|
299
|
+
* Translates the visual coordinates to zero-based ones.
|
300
|
+
*
|
301
|
+
* @param {CellCoords} visualCoords The visual coords to process.
|
302
|
+
* @returns {CellCoords}
|
303
|
+
*/
|
304
|
+
function _visualToZeroBasedCoords(visualCoords) {
|
283
305
|
const {
|
284
306
|
row,
|
285
307
|
col
|
286
|
-
} = _classPrivateFieldGet(
|
287
|
-
|
308
|
+
} = _classPrivateFieldGet(_options, this).visualToRenderableCoords(visualCoords);
|
309
|
+
if (row === null || col === null) {
|
310
|
+
throw new Error('Renderable coords are not visible.');
|
311
|
+
}
|
312
|
+
return _classPrivateFieldGet(_options, this).createCellCoords(_classPrivateFieldGet(_offset, this).y + row, _classPrivateFieldGet(_offset, this).x + col);
|
288
313
|
}
|
289
|
-
|
314
|
+
/**
|
315
|
+
* Translates the zero-based coordinates to visual ones.
|
316
|
+
*
|
317
|
+
* @param {CellCoords} zeroBasedCoords The coordinates to process.
|
318
|
+
* @returns {CellCoords}
|
319
|
+
*/
|
320
|
+
function _zeroBasedToVisualCoords(zeroBasedCoords) {
|
290
321
|
const coords = zeroBasedCoords.clone();
|
291
|
-
coords.col = zeroBasedCoords.col - _classPrivateFieldGet(
|
292
|
-
coords.row = zeroBasedCoords.row - _classPrivateFieldGet(
|
293
|
-
return _classPrivateFieldGet(
|
322
|
+
coords.col = zeroBasedCoords.col - _classPrivateFieldGet(_offset, this).x;
|
323
|
+
coords.row = zeroBasedCoords.row - _classPrivateFieldGet(_offset, this).y;
|
324
|
+
return _classPrivateFieldGet(_options, this).renderableToVisualCoords(coords);
|
294
325
|
}
|
295
326
|
mixin(Transformation, localHooks);
|
296
327
|
export default Transformation;
|
@@ -3,9 +3,9 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
const command = exports.command = {
|
5
5
|
name: 'editorCloseAndSave',
|
6
|
-
callback(hot, event
|
6
|
+
callback(hot, event) {
|
7
7
|
const editorManager = hot._getEditorManager();
|
8
8
|
editorManager.closeEditorAndSaveChanges(event.ctrlKey || event.metaKey);
|
9
|
-
editorManager.moveSelectionAfterEnter(
|
9
|
+
editorManager.moveSelectionAfterEnter(event);
|
10
10
|
}
|
11
11
|
};
|
@@ -1,8 +1,8 @@
|
|
1
1
|
export const command = {
|
2
2
|
name: 'editorCloseAndSave',
|
3
|
-
callback(hot, event
|
3
|
+
callback(hot, event) {
|
4
4
|
const editorManager = hot._getEditorManager();
|
5
5
|
editorManager.closeEditorAndSaveChanges(event.ctrlKey || event.metaKey);
|
6
|
-
editorManager.moveSelectionAfterEnter(
|
6
|
+
editorManager.moveSelectionAfterEnter(event);
|
7
7
|
}
|
8
8
|
};
|
@@ -6,20 +6,35 @@ const command = exports.command = {
|
|
6
6
|
name: 'editorOpen',
|
7
7
|
callback(hot, event, keys) {
|
8
8
|
const editorManager = hot._getEditorManager();
|
9
|
+
const selectedRange = hot.getSelectedRangeLast();
|
9
10
|
const {
|
10
11
|
highlight
|
11
|
-
} =
|
12
|
+
} = selectedRange;
|
13
|
+
|
14
|
+
// supports for navigating with enter key when multiple cells are selected
|
15
|
+
if (hot.selection.isMultiple() && !selectedRange.isHeader() && hot.countRenderedCols() > 0 && hot.countRenderedRows() > 0) {
|
16
|
+
const settings = hot.getSettings();
|
17
|
+
const enterMoves = typeof settings.enterMoves === 'function' ? settings.enterMoves(event) : settings.enterMoves;
|
18
|
+
if (keys.includes('shift')) {
|
19
|
+
hot.selection.transformFocus(-enterMoves.row, -enterMoves.col);
|
20
|
+
} else {
|
21
|
+
hot.selection.transformFocus(enterMoves.row, enterMoves.col);
|
22
|
+
}
|
23
|
+
return;
|
24
|
+
}
|
12
25
|
if (highlight.isHeader()) {
|
13
26
|
return;
|
14
27
|
}
|
28
|
+
|
29
|
+
// supports editor opening with enter key
|
15
30
|
if (hot.getSettings().enterBeginsEditing) {
|
16
31
|
if (editorManager.cellProperties.readOnly) {
|
17
|
-
editorManager.moveSelectionAfterEnter();
|
32
|
+
editorManager.moveSelectionAfterEnter(event);
|
18
33
|
} else {
|
19
34
|
editorManager.openEditor(null, event, true);
|
20
35
|
}
|
21
36
|
} else {
|
22
|
-
editorManager.moveSelectionAfterEnter(
|
37
|
+
editorManager.moveSelectionAfterEnter(event);
|
23
38
|
}
|
24
39
|
(0, _event.stopImmediatePropagation)(event); // required by HandsontableEditor
|
25
40
|
}
|
@@ -3,20 +3,35 @@ export const command = {
|
|
3
3
|
name: 'editorOpen',
|
4
4
|
callback(hot, event, keys) {
|
5
5
|
const editorManager = hot._getEditorManager();
|
6
|
+
const selectedRange = hot.getSelectedRangeLast();
|
6
7
|
const {
|
7
8
|
highlight
|
8
|
-
} =
|
9
|
+
} = selectedRange;
|
10
|
+
|
11
|
+
// supports for navigating with enter key when multiple cells are selected
|
12
|
+
if (hot.selection.isMultiple() && !selectedRange.isHeader() && hot.countRenderedCols() > 0 && hot.countRenderedRows() > 0) {
|
13
|
+
const settings = hot.getSettings();
|
14
|
+
const enterMoves = typeof settings.enterMoves === 'function' ? settings.enterMoves(event) : settings.enterMoves;
|
15
|
+
if (keys.includes('shift')) {
|
16
|
+
hot.selection.transformFocus(-enterMoves.row, -enterMoves.col);
|
17
|
+
} else {
|
18
|
+
hot.selection.transformFocus(enterMoves.row, enterMoves.col);
|
19
|
+
}
|
20
|
+
return;
|
21
|
+
}
|
9
22
|
if (highlight.isHeader()) {
|
10
23
|
return;
|
11
24
|
}
|
25
|
+
|
26
|
+
// supports editor opening with enter key
|
12
27
|
if (hot.getSettings().enterBeginsEditing) {
|
13
28
|
if (editorManager.cellProperties.readOnly) {
|
14
|
-
editorManager.moveSelectionAfterEnter();
|
29
|
+
editorManager.moveSelectionAfterEnter(event);
|
15
30
|
} else {
|
16
31
|
editorManager.openEditor(null, event, true);
|
17
32
|
}
|
18
33
|
} else {
|
19
|
-
editorManager.moveSelectionAfterEnter(
|
34
|
+
editorManager.moveSelectionAfterEnter(event);
|
20
35
|
}
|
21
36
|
stopImmediatePropagation(event); // required by HandsontableEditor
|
22
37
|
}
|
@@ -7,7 +7,7 @@ const command = exports.command = {
|
|
7
7
|
const {
|
8
8
|
highlight
|
9
9
|
} = hot.getSelectedRangeLast();
|
10
|
-
if (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByRowHeader()) {
|
10
|
+
if (!hot.selection.isSelectedByColumnHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByRowHeader())) {
|
11
11
|
hot.selection.transformEnd(1, 0);
|
12
12
|
}
|
13
13
|
}
|
@@ -4,7 +4,7 @@ export const command = {
|
|
4
4
|
const {
|
5
5
|
highlight
|
6
6
|
} = hot.getSelectedRangeLast();
|
7
|
-
if (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByRowHeader()) {
|
7
|
+
if (!hot.selection.isSelectedByColumnHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByRowHeader())) {
|
8
8
|
hot.selection.transformEnd(1, 0);
|
9
9
|
}
|
10
10
|
}
|
@@ -7,7 +7,7 @@ const command = exports.command = {
|
|
7
7
|
const {
|
8
8
|
highlight
|
9
9
|
} = hot.getSelectedRangeLast();
|
10
|
-
if (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader()) {
|
10
|
+
if (!hot.selection.isSelectedByRowHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader())) {
|
11
11
|
hot.selection.transformEnd(0, -1 * hot.getDirectionFactor());
|
12
12
|
}
|
13
13
|
}
|
@@ -4,7 +4,7 @@ export const command = {
|
|
4
4
|
const {
|
5
5
|
highlight
|
6
6
|
} = hot.getSelectedRangeLast();
|
7
|
-
if (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader()) {
|
7
|
+
if (!hot.selection.isSelectedByRowHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader())) {
|
8
8
|
hot.selection.transformEnd(0, -1 * hot.getDirectionFactor());
|
9
9
|
}
|
10
10
|
}
|
@@ -7,7 +7,7 @@ const command = exports.command = {
|
|
7
7
|
const {
|
8
8
|
highlight
|
9
9
|
} = hot.getSelectedRangeLast();
|
10
|
-
if (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader()) {
|
10
|
+
if (!hot.selection.isSelectedByRowHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader())) {
|
11
11
|
hot.selection.transformEnd(0, hot.getDirectionFactor());
|
12
12
|
}
|
13
13
|
}
|
@@ -4,7 +4,7 @@ export const command = {
|
|
4
4
|
const {
|
5
5
|
highlight
|
6
6
|
} = hot.getSelectedRangeLast();
|
7
|
-
if (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader()) {
|
7
|
+
if (!hot.selection.isSelectedByRowHeader() && !hot.selection.isSelectedByCorner() && (highlight.isCell() || highlight.isHeader() && hot.selection.isSelectedByColumnHeader())) {
|
8
8
|
hot.selection.transformEnd(0, hot.getDirectionFactor());
|
9
9
|
}
|
10
10
|
}
|
@@ -16,7 +16,9 @@ const command = exports.command = {
|
|
16
16
|
const isFocusHighlightedByHeader = highlight.isHeader() && hot.selection.isSelectedByRowHeader();
|
17
17
|
if (highlight.isCell() || isFocusHighlightedByHeader) {
|
18
18
|
const row = rowIndexMapper.getNearestNotHiddenIndex(hot.countRows() - 1, -1);
|
19
|
-
|
19
|
+
const newFrom = from.clone();
|
20
|
+
newFrom.row = highlight.row;
|
21
|
+
selection.setRangeStart(newFrom, undefined, false, highlight.clone());
|
20
22
|
|
21
23
|
// Restore the row highlight by header flag after setting up a new selection.
|
22
24
|
if (isFocusHighlightedByHeader) {
|
@@ -13,7 +13,9 @@ export const command = {
|
|
13
13
|
const isFocusHighlightedByHeader = highlight.isHeader() && hot.selection.isSelectedByRowHeader();
|
14
14
|
if (highlight.isCell() || isFocusHighlightedByHeader) {
|
15
15
|
const row = rowIndexMapper.getNearestNotHiddenIndex(hot.countRows() - 1, -1);
|
16
|
-
|
16
|
+
const newFrom = from.clone();
|
17
|
+
newFrom.row = highlight.row;
|
18
|
+
selection.setRangeStart(newFrom, undefined, false, highlight.clone());
|
17
19
|
|
18
20
|
// Restore the row highlight by header flag after setting up a new selection.
|
19
21
|
if (isFocusHighlightedByHeader) {
|
@@ -9,10 +9,16 @@ const command = exports.command = {
|
|
9
9
|
columnIndexMapper
|
10
10
|
} = hot;
|
11
11
|
const {
|
12
|
-
highlight
|
12
|
+
highlight,
|
13
|
+
from,
|
14
|
+
to
|
13
15
|
} = hot.getSelectedRangeLast();
|
14
|
-
if (highlight.isCell()) {
|
15
|
-
|
16
|
+
if (!hot.selection.isSelectedByRowHeader() && !hot.selection.isSelectedByCorner() && highlight.isCell()) {
|
17
|
+
const column = columnIndexMapper.getNearestNotHiddenIndex(hot.countCols() - 1, -1);
|
18
|
+
const newFrom = from.clone();
|
19
|
+
newFrom.col = highlight.col;
|
20
|
+
selection.setRangeStart(newFrom, undefined, false, highlight.clone());
|
21
|
+
selection.setRangeEnd(hot._createCellCoords(to.row, column));
|
16
22
|
}
|
17
23
|
}
|
18
24
|
};
|