handsontable 14.2.0 → 14.3.0-next-3fa6b18-20240410
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 +9814 -10020
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +292 -292
- package/dist/handsontable.js +7484 -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 +49 -11
- package/editors/dateEditor/dateEditor.mjs +49 -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,9 +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 _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
4
4
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
5
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i :
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
6
6
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
7
|
-
function
|
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"); }
|
8
8
|
import { BasePlugin } from "../base/index.mjs";
|
9
9
|
import LooseBindsMap from "./maps/looseBindsMap.mjs";
|
10
10
|
import StrictBindsMap from "./maps/strictBindsMap.mjs";
|
@@ -45,7 +45,7 @@ const bindTypeToMapStrategy = new Map([['loose', LooseBindsMap], ['strict', Stri
|
|
45
45
|
* ```
|
46
46
|
* :::
|
47
47
|
*/
|
48
|
-
var
|
48
|
+
var _BindRowsWithHeaders_brand = /*#__PURE__*/new WeakSet();
|
49
49
|
export class BindRowsWithHeaders extends BasePlugin {
|
50
50
|
constructor() {
|
51
51
|
super(...arguments);
|
@@ -55,7 +55,7 @@ export class BindRowsWithHeaders extends BasePlugin {
|
|
55
55
|
* @param {number} row Row index.
|
56
56
|
* @returns {number}
|
57
57
|
*/
|
58
|
-
_classPrivateMethodInitSpec(this,
|
58
|
+
_classPrivateMethodInitSpec(this, _BindRowsWithHeaders_brand);
|
59
59
|
/**
|
60
60
|
* Plugin indexes cache.
|
61
61
|
*
|
@@ -93,7 +93,7 @@ export class BindRowsWithHeaders extends BasePlugin {
|
|
93
93
|
}
|
94
94
|
const MapStrategy = bindTypeToMapStrategy.get(bindType);
|
95
95
|
this.headerIndexes = this.hot.rowIndexMapper.registerMap('bindRowsWithHeaders', new MapStrategy());
|
96
|
-
this.addHook('modifyRowHeader', row =>
|
96
|
+
this.addHook('modifyRowHeader', row => _assertClassBrand(_BindRowsWithHeaders_brand, this, _onModifyRowHeader).call(this, row));
|
97
97
|
super.enablePlugin();
|
98
98
|
}
|
99
99
|
|
@@ -111,6 +111,6 @@ export class BindRowsWithHeaders extends BasePlugin {
|
|
111
111
|
super.destroy();
|
112
112
|
}
|
113
113
|
}
|
114
|
-
function
|
114
|
+
function _onModifyRowHeader(row) {
|
115
115
|
return this.headerIndexes.getValueAtIndex(this.hot.toPhysicalRow(row));
|
116
116
|
}
|
@@ -9,19 +9,17 @@ var _number = require("../../helpers/number");
|
|
9
9
|
var _console = require("../../helpers/console");
|
10
10
|
var _element = require("../../helpers/dom/element");
|
11
11
|
var _event = require("../../helpers/dom/event");
|
12
|
+
var _shortcutContexts = require("../../shortcutContexts");
|
12
13
|
var _a11y = require("../../helpers/a11y");
|
13
14
|
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
14
15
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
15
16
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
16
17
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
17
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i :
|
18
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
18
19
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
19
|
-
function _classPrivateFieldGet(
|
20
|
-
function
|
21
|
-
function
|
22
|
-
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
23
|
-
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
24
|
-
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; } }
|
20
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
21
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
22
|
+
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"); }
|
25
23
|
const PLUGIN_KEY = exports.PLUGIN_KEY = 'collapsibleColumns';
|
26
24
|
const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 290;
|
27
25
|
const SETTING_KEYS = ['nestedHeaders'];
|
@@ -109,32 +107,10 @@ const actionDictionary = new Map([['collapse', {
|
|
109
107
|
* :::
|
110
108
|
*/
|
111
109
|
var _collapsedColumnsMap = /*#__PURE__*/new WeakMap();
|
112
|
-
var
|
113
|
-
var _onBeforeOnCellMouseDown = /*#__PURE__*/new WeakSet();
|
114
|
-
var _onInit = /*#__PURE__*/new WeakSet();
|
115
|
-
var _onAfterLoadData = /*#__PURE__*/new WeakSet();
|
110
|
+
var _CollapsibleColumns_brand = /*#__PURE__*/new WeakSet();
|
116
111
|
class CollapsibleColumns extends _base.BasePlugin {
|
117
112
|
constructor() {
|
118
113
|
super(...arguments);
|
119
|
-
/**
|
120
|
-
* Updates the plugin state after new dataset load.
|
121
|
-
*
|
122
|
-
* @param {Array[]} sourceData Array of arrays or array of objects containing data.
|
123
|
-
* @param {boolean} initialLoad Flag that determines whether the data has been loaded
|
124
|
-
* during the initialization.
|
125
|
-
*/
|
126
|
-
_classPrivateMethodInitSpec(this, _onAfterLoadData);
|
127
|
-
/**
|
128
|
-
* Updates the plugin state after HoT initialization.
|
129
|
-
*/
|
130
|
-
_classPrivateMethodInitSpec(this, _onInit);
|
131
|
-
/**
|
132
|
-
* Indicator mouse event callback.
|
133
|
-
*
|
134
|
-
* @param {object} event Mouse event.
|
135
|
-
* @param {object} coords Event coordinates.
|
136
|
-
*/
|
137
|
-
_classPrivateMethodInitSpec(this, _onBeforeOnCellMouseDown);
|
138
114
|
/**
|
139
115
|
* Adds the indicator to the headers.
|
140
116
|
*
|
@@ -143,7 +119,7 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
143
119
|
* @param {number} headerLevel The index of header level counting from the top (positive
|
144
120
|
* values counting from 0 to N).
|
145
121
|
*/
|
146
|
-
_classPrivateMethodInitSpec(this,
|
122
|
+
_classPrivateMethodInitSpec(this, _CollapsibleColumns_brand);
|
147
123
|
/**
|
148
124
|
* Cached reference to the NestedHeaders plugin.
|
149
125
|
*
|
@@ -164,10 +140,7 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
164
140
|
* @private
|
165
141
|
* @type {HidingMap|null}
|
166
142
|
*/
|
167
|
-
_classPrivateFieldInitSpec(this, _collapsedColumnsMap,
|
168
|
-
writable: true,
|
169
|
-
value: null
|
170
|
-
});
|
143
|
+
_classPrivateFieldInitSpec(this, _collapsedColumnsMap, null);
|
171
144
|
}
|
172
145
|
static get PLUGIN_KEY() {
|
173
146
|
return PLUGIN_KEY;
|
@@ -205,23 +178,23 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
205
178
|
if (!nestedHeaders) {
|
206
179
|
(0, _console.warn)('You need to configure the Nested Headers plugin in order to use collapsible headers.');
|
207
180
|
}
|
208
|
-
_classPrivateFieldSet(
|
181
|
+
_classPrivateFieldSet(_collapsedColumnsMap, this, this.hot.columnIndexMapper.createAndRegisterIndexMap(this.pluginName, 'hiding'));
|
209
182
|
this.nestedHeadersPlugin = this.hot.getPlugin('nestedHeaders');
|
210
183
|
this.headerStateManager = this.nestedHeadersPlugin.getStateManager();
|
211
|
-
this.addHook('init', () =>
|
184
|
+
this.addHook('init', () => _assertClassBrand(_CollapsibleColumns_brand, this, _onInit).call(this));
|
212
185
|
this.addHook('afterLoadData', function () {
|
213
186
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
214
187
|
args[_key] = arguments[_key];
|
215
188
|
}
|
216
|
-
return
|
189
|
+
return _assertClassBrand(_CollapsibleColumns_brand, _this, _onAfterLoadData).call(_this, ...args);
|
217
190
|
});
|
218
191
|
this.addHook('afterGetColHeader', function () {
|
219
192
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
220
193
|
args[_key2] = arguments[_key2];
|
221
194
|
}
|
222
|
-
return
|
195
|
+
return _assertClassBrand(_CollapsibleColumns_brand, _this, _onAfterGetColHeader).call(_this, ...args);
|
223
196
|
});
|
224
|
-
this.addHook('beforeOnCellMouseDown', (event, coords, TD) =>
|
197
|
+
this.addHook('beforeOnCellMouseDown', (event, coords, TD) => _assertClassBrand(_CollapsibleColumns_brand, this, _onBeforeOnCellMouseDown).call(this, event, coords, TD));
|
225
198
|
this.registerShortcuts();
|
226
199
|
super.enablePlugin();
|
227
200
|
// @TODO: Workaround for broken plugin initialization abstraction (#6806).
|
@@ -268,7 +241,7 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
268
241
|
*/
|
269
242
|
disablePlugin() {
|
270
243
|
this.hot.columnIndexMapper.unregisterMap(this.pluginName);
|
271
|
-
_classPrivateFieldSet(
|
244
|
+
_classPrivateFieldSet(_collapsedColumnsMap, this, null);
|
272
245
|
this.nestedHeadersPlugin = null;
|
273
246
|
this.unregisterShortcuts();
|
274
247
|
this.clearButtons();
|
@@ -308,12 +281,17 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
308
281
|
col: columnIndex
|
309
282
|
});
|
310
283
|
}
|
284
|
+
|
285
|
+
// prevent default Enter behavior (move to the next row within a selection range)
|
286
|
+
return false;
|
311
287
|
},
|
312
288
|
runOnlyIf: () => {
|
313
|
-
var _this$hot$getSelected;
|
314
|
-
return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
|
289
|
+
var _this$hot$getSelected, _this$hot$getSelected2;
|
290
|
+
return ((_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.isSingle()) && ((_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight.isHeader());
|
315
291
|
},
|
316
|
-
group: SHORTCUTS_GROUP
|
292
|
+
group: SHORTCUTS_GROUP,
|
293
|
+
relativeToGroup: _shortcutContexts.EDITOR_EDIT_GROUP,
|
294
|
+
position: 'before'
|
317
295
|
});
|
318
296
|
}
|
319
297
|
|
@@ -497,10 +475,25 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
497
475
|
}
|
498
476
|
this.hot.batchExecution(() => {
|
499
477
|
(0, _array.arrayEach)(affectedColumnsIndexes, visualColumn => {
|
500
|
-
_classPrivateFieldGet(
|
478
|
+
_classPrivateFieldGet(_collapsedColumnsMap, this).setValueAtIndex(this.hot.toPhysicalColumn(visualColumn), actionTranslator.hideColumn);
|
501
479
|
});
|
502
480
|
}, true);
|
503
481
|
const isActionPerformed = this.getCollapsedColumns().length !== currentCollapsedColumns.length;
|
482
|
+
const selectionRange = this.hot.getSelectedRangeLast();
|
483
|
+
if (action === 'collapse' && isActionPerformed && selectionRange) {
|
484
|
+
const {
|
485
|
+
row,
|
486
|
+
col
|
487
|
+
} = selectionRange.highlight;
|
488
|
+
const isHidden = this.hot.rowIndexMapper.isHidden(row) || this.hot.columnIndexMapper.isHidden(col);
|
489
|
+
if (isHidden && affectedColumnsIndexes.includes(col)) {
|
490
|
+
const nextRow = row >= 0 ? this.hot.rowIndexMapper.getNearestNotHiddenIndex(row, 1, true) : row;
|
491
|
+
const nextColumn = col >= 0 ? this.hot.columnIndexMapper.getNearestNotHiddenIndex(col, 1, true) : col;
|
492
|
+
if (nextRow !== null && nextColumn !== null) {
|
493
|
+
this.hot.selectCell(nextRow, nextColumn);
|
494
|
+
}
|
495
|
+
}
|
496
|
+
}
|
504
497
|
this.hot.runHooks(actionTranslator.afterHook, currentCollapsedColumns, destinationCollapsedColumns, isActionPossible, isActionPerformed);
|
505
498
|
this.hot.render();
|
506
499
|
this.hot.view.adjustElementsSize(true);
|
@@ -513,18 +506,18 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
513
506
|
* @returns {number[]}
|
514
507
|
*/
|
515
508
|
getCollapsedColumns() {
|
516
|
-
return _classPrivateFieldGet(
|
509
|
+
return _classPrivateFieldGet(_collapsedColumnsMap, this).getHiddenIndexes();
|
517
510
|
}
|
518
511
|
/**
|
519
512
|
* Destroys the plugin instance.
|
520
513
|
*/
|
521
514
|
destroy() {
|
522
|
-
_classPrivateFieldSet(
|
515
|
+
_classPrivateFieldSet(_collapsedColumnsMap, this, null);
|
523
516
|
super.destroy();
|
524
517
|
}
|
525
518
|
}
|
526
519
|
exports.CollapsibleColumns = CollapsibleColumns;
|
527
|
-
function
|
520
|
+
function _onAfterGetColHeader(column, TH, headerLevel) {
|
528
521
|
var _this$headerStateMana3;
|
529
522
|
const {
|
530
523
|
collapsible,
|
@@ -567,7 +560,13 @@ function _onAfterGetColHeader2(column, TH, headerLevel) {
|
|
567
560
|
(_collapsibleElement = collapsibleElement) === null || _collapsibleElement === void 0 || _collapsibleElement.remove();
|
568
561
|
}
|
569
562
|
}
|
570
|
-
|
563
|
+
/**
|
564
|
+
* Indicator mouse event callback.
|
565
|
+
*
|
566
|
+
* @param {object} event Mouse event.
|
567
|
+
* @param {object} coords Event coordinates.
|
568
|
+
*/
|
569
|
+
function _onBeforeOnCellMouseDown(event, coords) {
|
571
570
|
if ((0, _element.hasClass)(event.target, COLLAPSIBLE_ELEMENT_CLASS)) {
|
572
571
|
if ((0, _element.hasClass)(event.target, 'expanded')) {
|
573
572
|
this.eventManager.fireEvent(event.target, 'mouseup');
|
@@ -579,11 +578,21 @@ function _onBeforeOnCellMouseDown2(event, coords) {
|
|
579
578
|
(0, _event.stopImmediatePropagation)(event);
|
580
579
|
}
|
581
580
|
}
|
582
|
-
|
581
|
+
/**
|
582
|
+
* Updates the plugin state after HoT initialization.
|
583
|
+
*/
|
584
|
+
function _onInit() {
|
583
585
|
// @TODO: Workaround for broken plugin initialization abstraction (#6806).
|
584
586
|
this.updatePlugin();
|
585
587
|
}
|
586
|
-
|
588
|
+
/**
|
589
|
+
* Updates the plugin state after new dataset load.
|
590
|
+
*
|
591
|
+
* @param {Array[]} sourceData Array of arrays or array of objects containing data.
|
592
|
+
* @param {boolean} initialLoad Flag that determines whether the data has been loaded
|
593
|
+
* during the initialization.
|
594
|
+
*/
|
595
|
+
function _onAfterLoadData(sourceData, initialLoad) {
|
587
596
|
if (!initialLoad) {
|
588
597
|
this.updatePlugin();
|
589
598
|
}
|
@@ -4,20 +4,18 @@ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclarati
|
|
4
4
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
5
5
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
6
6
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
7
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i :
|
7
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
8
8
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
9
|
-
function _classPrivateFieldGet(
|
10
|
-
function
|
11
|
-
function
|
12
|
-
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
13
|
-
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
14
|
-
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; } }
|
9
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
10
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
11
|
+
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"); }
|
15
12
|
import { BasePlugin } from "../base/index.mjs";
|
16
13
|
import { arrayEach, arrayFilter, arrayUnique } from "../../helpers/array.mjs";
|
17
14
|
import { rangeEach } from "../../helpers/number.mjs";
|
18
15
|
import { warn } from "../../helpers/console.mjs";
|
19
16
|
import { addClass, hasClass, removeClass, fastInnerText, removeAttribute, setAttribute } from "../../helpers/dom/element.mjs";
|
20
17
|
import { stopImmediatePropagation } from "../../helpers/dom/event.mjs";
|
18
|
+
import { EDITOR_EDIT_GROUP as SHORTCUTS_GROUP_EDITOR } from "../../shortcutContexts/index.mjs";
|
21
19
|
import { A11Y_EXPANDED, A11Y_HIDDEN } from "../../helpers/a11y.mjs";
|
22
20
|
export const PLUGIN_KEY = 'collapsibleColumns';
|
23
21
|
export const PLUGIN_PRIORITY = 290;
|
@@ -106,32 +104,10 @@ const actionDictionary = new Map([['collapse', {
|
|
106
104
|
* :::
|
107
105
|
*/
|
108
106
|
var _collapsedColumnsMap = /*#__PURE__*/new WeakMap();
|
109
|
-
var
|
110
|
-
var _onBeforeOnCellMouseDown = /*#__PURE__*/new WeakSet();
|
111
|
-
var _onInit = /*#__PURE__*/new WeakSet();
|
112
|
-
var _onAfterLoadData = /*#__PURE__*/new WeakSet();
|
107
|
+
var _CollapsibleColumns_brand = /*#__PURE__*/new WeakSet();
|
113
108
|
export class CollapsibleColumns extends BasePlugin {
|
114
109
|
constructor() {
|
115
110
|
super(...arguments);
|
116
|
-
/**
|
117
|
-
* Updates the plugin state after new dataset load.
|
118
|
-
*
|
119
|
-
* @param {Array[]} sourceData Array of arrays or array of objects containing data.
|
120
|
-
* @param {boolean} initialLoad Flag that determines whether the data has been loaded
|
121
|
-
* during the initialization.
|
122
|
-
*/
|
123
|
-
_classPrivateMethodInitSpec(this, _onAfterLoadData);
|
124
|
-
/**
|
125
|
-
* Updates the plugin state after HoT initialization.
|
126
|
-
*/
|
127
|
-
_classPrivateMethodInitSpec(this, _onInit);
|
128
|
-
/**
|
129
|
-
* Indicator mouse event callback.
|
130
|
-
*
|
131
|
-
* @param {object} event Mouse event.
|
132
|
-
* @param {object} coords Event coordinates.
|
133
|
-
*/
|
134
|
-
_classPrivateMethodInitSpec(this, _onBeforeOnCellMouseDown);
|
135
111
|
/**
|
136
112
|
* Adds the indicator to the headers.
|
137
113
|
*
|
@@ -140,7 +116,7 @@ export class CollapsibleColumns extends BasePlugin {
|
|
140
116
|
* @param {number} headerLevel The index of header level counting from the top (positive
|
141
117
|
* values counting from 0 to N).
|
142
118
|
*/
|
143
|
-
_classPrivateMethodInitSpec(this,
|
119
|
+
_classPrivateMethodInitSpec(this, _CollapsibleColumns_brand);
|
144
120
|
/**
|
145
121
|
* Cached reference to the NestedHeaders plugin.
|
146
122
|
*
|
@@ -161,10 +137,7 @@ export class CollapsibleColumns extends BasePlugin {
|
|
161
137
|
* @private
|
162
138
|
* @type {HidingMap|null}
|
163
139
|
*/
|
164
|
-
_classPrivateFieldInitSpec(this, _collapsedColumnsMap,
|
165
|
-
writable: true,
|
166
|
-
value: null
|
167
|
-
});
|
140
|
+
_classPrivateFieldInitSpec(this, _collapsedColumnsMap, null);
|
168
141
|
}
|
169
142
|
static get PLUGIN_KEY() {
|
170
143
|
return PLUGIN_KEY;
|
@@ -202,23 +175,23 @@ export class CollapsibleColumns extends BasePlugin {
|
|
202
175
|
if (!nestedHeaders) {
|
203
176
|
warn('You need to configure the Nested Headers plugin in order to use collapsible headers.');
|
204
177
|
}
|
205
|
-
_classPrivateFieldSet(
|
178
|
+
_classPrivateFieldSet(_collapsedColumnsMap, this, this.hot.columnIndexMapper.createAndRegisterIndexMap(this.pluginName, 'hiding'));
|
206
179
|
this.nestedHeadersPlugin = this.hot.getPlugin('nestedHeaders');
|
207
180
|
this.headerStateManager = this.nestedHeadersPlugin.getStateManager();
|
208
|
-
this.addHook('init', () =>
|
181
|
+
this.addHook('init', () => _assertClassBrand(_CollapsibleColumns_brand, this, _onInit).call(this));
|
209
182
|
this.addHook('afterLoadData', function () {
|
210
183
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
211
184
|
args[_key] = arguments[_key];
|
212
185
|
}
|
213
|
-
return
|
186
|
+
return _assertClassBrand(_CollapsibleColumns_brand, _this, _onAfterLoadData).call(_this, ...args);
|
214
187
|
});
|
215
188
|
this.addHook('afterGetColHeader', function () {
|
216
189
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
217
190
|
args[_key2] = arguments[_key2];
|
218
191
|
}
|
219
|
-
return
|
192
|
+
return _assertClassBrand(_CollapsibleColumns_brand, _this, _onAfterGetColHeader).call(_this, ...args);
|
220
193
|
});
|
221
|
-
this.addHook('beforeOnCellMouseDown', (event, coords, TD) =>
|
194
|
+
this.addHook('beforeOnCellMouseDown', (event, coords, TD) => _assertClassBrand(_CollapsibleColumns_brand, this, _onBeforeOnCellMouseDown).call(this, event, coords, TD));
|
222
195
|
this.registerShortcuts();
|
223
196
|
super.enablePlugin();
|
224
197
|
// @TODO: Workaround for broken plugin initialization abstraction (#6806).
|
@@ -265,7 +238,7 @@ export class CollapsibleColumns extends BasePlugin {
|
|
265
238
|
*/
|
266
239
|
disablePlugin() {
|
267
240
|
this.hot.columnIndexMapper.unregisterMap(this.pluginName);
|
268
|
-
_classPrivateFieldSet(
|
241
|
+
_classPrivateFieldSet(_collapsedColumnsMap, this, null);
|
269
242
|
this.nestedHeadersPlugin = null;
|
270
243
|
this.unregisterShortcuts();
|
271
244
|
this.clearButtons();
|
@@ -305,12 +278,17 @@ export class CollapsibleColumns extends BasePlugin {
|
|
305
278
|
col: columnIndex
|
306
279
|
});
|
307
280
|
}
|
281
|
+
|
282
|
+
// prevent default Enter behavior (move to the next row within a selection range)
|
283
|
+
return false;
|
308
284
|
},
|
309
285
|
runOnlyIf: () => {
|
310
|
-
var _this$hot$getSelected;
|
311
|
-
return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
|
286
|
+
var _this$hot$getSelected, _this$hot$getSelected2;
|
287
|
+
return ((_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.isSingle()) && ((_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight.isHeader());
|
312
288
|
},
|
313
|
-
group: SHORTCUTS_GROUP
|
289
|
+
group: SHORTCUTS_GROUP,
|
290
|
+
relativeToGroup: SHORTCUTS_GROUP_EDITOR,
|
291
|
+
position: 'before'
|
314
292
|
});
|
315
293
|
}
|
316
294
|
|
@@ -494,10 +472,25 @@ export class CollapsibleColumns extends BasePlugin {
|
|
494
472
|
}
|
495
473
|
this.hot.batchExecution(() => {
|
496
474
|
arrayEach(affectedColumnsIndexes, visualColumn => {
|
497
|
-
_classPrivateFieldGet(
|
475
|
+
_classPrivateFieldGet(_collapsedColumnsMap, this).setValueAtIndex(this.hot.toPhysicalColumn(visualColumn), actionTranslator.hideColumn);
|
498
476
|
});
|
499
477
|
}, true);
|
500
478
|
const isActionPerformed = this.getCollapsedColumns().length !== currentCollapsedColumns.length;
|
479
|
+
const selectionRange = this.hot.getSelectedRangeLast();
|
480
|
+
if (action === 'collapse' && isActionPerformed && selectionRange) {
|
481
|
+
const {
|
482
|
+
row,
|
483
|
+
col
|
484
|
+
} = selectionRange.highlight;
|
485
|
+
const isHidden = this.hot.rowIndexMapper.isHidden(row) || this.hot.columnIndexMapper.isHidden(col);
|
486
|
+
if (isHidden && affectedColumnsIndexes.includes(col)) {
|
487
|
+
const nextRow = row >= 0 ? this.hot.rowIndexMapper.getNearestNotHiddenIndex(row, 1, true) : row;
|
488
|
+
const nextColumn = col >= 0 ? this.hot.columnIndexMapper.getNearestNotHiddenIndex(col, 1, true) : col;
|
489
|
+
if (nextRow !== null && nextColumn !== null) {
|
490
|
+
this.hot.selectCell(nextRow, nextColumn);
|
491
|
+
}
|
492
|
+
}
|
493
|
+
}
|
501
494
|
this.hot.runHooks(actionTranslator.afterHook, currentCollapsedColumns, destinationCollapsedColumns, isActionPossible, isActionPerformed);
|
502
495
|
this.hot.render();
|
503
496
|
this.hot.view.adjustElementsSize(true);
|
@@ -510,17 +503,17 @@ export class CollapsibleColumns extends BasePlugin {
|
|
510
503
|
* @returns {number[]}
|
511
504
|
*/
|
512
505
|
getCollapsedColumns() {
|
513
|
-
return _classPrivateFieldGet(
|
506
|
+
return _classPrivateFieldGet(_collapsedColumnsMap, this).getHiddenIndexes();
|
514
507
|
}
|
515
508
|
/**
|
516
509
|
* Destroys the plugin instance.
|
517
510
|
*/
|
518
511
|
destroy() {
|
519
|
-
_classPrivateFieldSet(
|
512
|
+
_classPrivateFieldSet(_collapsedColumnsMap, this, null);
|
520
513
|
super.destroy();
|
521
514
|
}
|
522
515
|
}
|
523
|
-
function
|
516
|
+
function _onAfterGetColHeader(column, TH, headerLevel) {
|
524
517
|
var _this$headerStateMana3;
|
525
518
|
const {
|
526
519
|
collapsible,
|
@@ -563,7 +556,13 @@ function _onAfterGetColHeader2(column, TH, headerLevel) {
|
|
563
556
|
(_collapsibleElement = collapsibleElement) === null || _collapsibleElement === void 0 || _collapsibleElement.remove();
|
564
557
|
}
|
565
558
|
}
|
566
|
-
|
559
|
+
/**
|
560
|
+
* Indicator mouse event callback.
|
561
|
+
*
|
562
|
+
* @param {object} event Mouse event.
|
563
|
+
* @param {object} coords Event coordinates.
|
564
|
+
*/
|
565
|
+
function _onBeforeOnCellMouseDown(event, coords) {
|
567
566
|
if (hasClass(event.target, COLLAPSIBLE_ELEMENT_CLASS)) {
|
568
567
|
if (hasClass(event.target, 'expanded')) {
|
569
568
|
this.eventManager.fireEvent(event.target, 'mouseup');
|
@@ -575,11 +574,21 @@ function _onBeforeOnCellMouseDown2(event, coords) {
|
|
575
574
|
stopImmediatePropagation(event);
|
576
575
|
}
|
577
576
|
}
|
578
|
-
|
577
|
+
/**
|
578
|
+
* Updates the plugin state after HoT initialization.
|
579
|
+
*/
|
580
|
+
function _onInit() {
|
579
581
|
// @TODO: Workaround for broken plugin initialization abstraction (#6806).
|
580
582
|
this.updatePlugin();
|
581
583
|
}
|
582
|
-
|
584
|
+
/**
|
585
|
+
* Updates the plugin state after new dataset load.
|
586
|
+
*
|
587
|
+
* @param {Array[]} sourceData Array of arrays or array of objects containing data.
|
588
|
+
* @param {boolean} initialLoad Flag that determines whether the data has been loaded
|
589
|
+
* during the initialization.
|
590
|
+
*/
|
591
|
+
function _onAfterLoadData(sourceData, initialLoad) {
|
583
592
|
if (!initialLoad) {
|
584
593
|
this.updatePlugin();
|
585
594
|
}
|