handsontable 14.4.0-next-1ffa7bc-20240606 → 14.5.0-next-ede811d-20240717
Sign up to get free protection for your applications and to get access to all the features.
- 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 +3 -3
- package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +3 -3
- package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +3 -3
- package/3rdparty/walkontable/src/cell/coords.js +3 -3
- package/3rdparty/walkontable/src/cell/coords.mjs +3 -3
- package/3rdparty/walkontable/src/cell/range.js +4 -4
- package/3rdparty/walkontable/src/cell/range.mjs +3 -3
- package/3rdparty/walkontable/src/core/_base.js +2 -2
- package/3rdparty/walkontable/src/core/_base.mjs +1 -1
- package/3rdparty/walkontable/src/core/clone.js +2 -2
- package/3rdparty/walkontable/src/core/clone.mjs +1 -1
- package/3rdparty/walkontable/src/core/core.js +17 -1
- package/3rdparty/walkontable/src/core/core.mjs +16 -0
- package/3rdparty/walkontable/src/event.js +2 -2
- package/3rdparty/walkontable/src/event.mjs +2 -2
- package/3rdparty/walkontable/src/facade/core.js +4 -1
- package/3rdparty/walkontable/src/facade/core.mjs +3 -0
- 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 +2 -2
- package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/bottom.js +2 -2
- package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.js +1 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.js +1 -1
- package/3rdparty/walkontable/src/overlay/top.js +2 -2
- package/3rdparty/walkontable/src/overlay/top.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +2 -2
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +1 -1
- package/3rdparty/walkontable/src/overlays.js +36 -4
- package/3rdparty/walkontable/src/overlays.mjs +36 -4
- package/3rdparty/walkontable/src/renderer/_base.js +2 -2
- package/3rdparty/walkontable/src/renderer/_base.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/cells.js +2 -2
- package/3rdparty/walkontable/src/renderer/cells.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/colGroup.js +1 -1
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +1 -1
- package/3rdparty/walkontable/src/renderer/index.js +12 -1
- package/3rdparty/walkontable/src/renderer/index.mjs +11 -0
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +2 -2
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/rows.js +2 -2
- package/3rdparty/walkontable/src/renderer/rows.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/table.js +17 -2
- package/3rdparty/walkontable/src/renderer/table.mjs +17 -2
- package/3rdparty/walkontable/src/scroll.js +3 -3
- package/3rdparty/walkontable/src/scroll.mjs +3 -3
- package/3rdparty/walkontable/src/selection/index.js +1 -1
- package/3rdparty/walkontable/src/selection/manager.js +4 -4
- package/3rdparty/walkontable/src/selection/manager.mjs +3 -3
- package/3rdparty/walkontable/src/selection/scanner.js +3 -3
- package/3rdparty/walkontable/src/selection/scanner.mjs +3 -3
- package/3rdparty/walkontable/src/selection/selection.js +1 -1
- package/3rdparty/walkontable/src/settings.js +6 -2
- package/3rdparty/walkontable/src/settings.mjs +6 -2
- package/3rdparty/walkontable/src/table/bottom.js +1 -1
- package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +1 -1
- package/3rdparty/walkontable/src/table/inlineStart.js +1 -1
- package/3rdparty/walkontable/src/table/master.js +1 -1
- package/3rdparty/walkontable/src/table/top.js +1 -1
- package/3rdparty/walkontable/src/table/topInlineStartCorner.js +1 -1
- package/3rdparty/walkontable/src/table.js +3 -3
- package/3rdparty/walkontable/src/table.mjs +2 -2
- 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 +3 -3
- package/3rdparty/walkontable/src/utils/columnStretching.mjs +3 -3
- package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
- package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
- package/3rdparty/walkontable/src/utils/orderView/index.js +1 -1
- package/3rdparty/walkontable/src/utils/orderView/sharedView.js +1 -1
- package/3rdparty/walkontable/src/utils/orderView/view.js +2 -2
- package/3rdparty/walkontable/src/utils/orderView/view.mjs +1 -1
- 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 +2 -2
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +1 -1
- package/3rdparty/walkontable/src/utils/row.js +17 -1
- package/3rdparty/walkontable/src/utils/row.mjs +17 -1
- package/CHANGELOG.md +27 -1
- package/base.js +3 -3
- package/base.mjs +2 -2
- package/cellTypes/registry.js +1 -1
- package/common.d.ts +3 -0
- package/core.d.ts +2 -0
- package/core.js +36 -31
- package/core.mjs +35 -30
- package/dataMap/dataMap.js +1 -1
- package/dataMap/dataMap.mjs +1 -1
- package/dataMap/dataSource.js +1 -1
- package/dataMap/dataSource.mjs +1 -1
- package/dataMap/index.js +1 -1
- package/dataMap/metaManager/index.js +1 -1
- package/dataMap/metaManager/lazyFactoryMap.js +1 -1
- package/dataMap/metaManager/lazyFactoryMap.mjs +1 -1
- package/dataMap/metaManager/metaLayers/cellMeta.js +2 -2
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -1
- package/dataMap/metaManager/metaLayers/columnMeta.js +2 -2
- package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
- package/dataMap/metaManager/metaLayers/globalMeta.js +2 -2
- 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 +25 -0
- package/dataMap/metaManager/metaSchema.mjs +25 -0
- package/dataMap/metaManager/mods/dynamicCellMeta.js +2 -2
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
- package/dataMap/metaManager/mods/extendMetaProperties.js +3 -3
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +3 -3
- package/dataMap/replaceData.js +1 -1
- package/dist/handsontable.css +134 -88
- package/dist/handsontable.full.css +134 -88
- package/dist/handsontable.full.js +2191 -1503
- package/dist/handsontable.full.min.css +7 -7
- package/dist/handsontable.full.min.js +86 -86
- package/dist/handsontable.js +2180 -1440
- package/dist/handsontable.min.css +6 -6
- package/dist/handsontable.min.js +23 -23
- package/dist/languages/all.js +3 -3
- package/dist/languages/ar-AR.js +3 -3
- package/dist/languages/cs-CZ.js +3 -3
- package/dist/languages/de-CH.js +3 -3
- package/dist/languages/de-DE.js +3 -3
- package/dist/languages/en-US.js +3 -3
- package/dist/languages/es-MX.js +3 -3
- package/dist/languages/fr-FR.js +3 -3
- package/dist/languages/hr-HR.js +3 -3
- package/dist/languages/it-IT.js +3 -3
- package/dist/languages/ja-JP.js +3 -3
- package/dist/languages/ko-KR.js +3 -3
- package/dist/languages/lv-LV.js +3 -3
- package/dist/languages/nb-NO.js +3 -3
- package/dist/languages/nl-NL.js +3 -3
- package/dist/languages/pl-PL.js +3 -3
- package/dist/languages/pt-BR.js +3 -3
- package/dist/languages/ru-RU.js +3 -3
- package/dist/languages/sr-SP.js +3 -3
- package/dist/languages/zh-CN.js +3 -3
- package/dist/languages/zh-TW.js +3 -3
- package/editorManager.js +4 -4
- package/editorManager.mjs +3 -3
- package/editors/autocompleteEditor/autocompleteEditor.js +3 -3
- package/editors/autocompleteEditor/autocompleteEditor.mjs +3 -3
- package/editors/baseEditor/baseEditor.js +2 -2
- package/editors/baseEditor/baseEditor.mjs +1 -1
- package/editors/dateEditor/dateEditor.js +2 -2
- package/editors/dateEditor/dateEditor.mjs +1 -1
- package/editors/dropdownEditor/dropdownEditor.js +1 -1
- package/editors/registry.js +1 -1
- package/editors/textEditor/textEditor.js +2 -2
- package/editors/textEditor/textEditor.mjs +1 -1
- package/eventManager.js +1 -1
- package/eventManager.mjs +1 -1
- package/focusManager.js +3 -3
- package/focusManager.mjs +3 -3
- package/helpers/dom/event.d.ts +1 -0
- package/helpers/dom/event.js +11 -0
- package/helpers/dom/event.mjs +10 -0
- package/helpers/mixed.js +3 -3
- package/helpers/mixed.mjs +2 -2
- package/helpers/string.js +1 -1
- package/i18n/languages/index.js +1 -1
- package/i18n/phraseFormatters/index.js +1 -1
- package/i18n/registry.js +1 -1
- package/index.js +1 -1
- package/languages/all.js +3 -3
- package/languages/ar-AR.js +3 -3
- package/languages/cs-CZ.js +3 -3
- package/languages/de-CH.js +3 -3
- package/languages/de-DE.js +3 -3
- package/languages/en-US.js +3 -3
- package/languages/es-MX.js +3 -3
- package/languages/fr-FR.js +3 -3
- package/languages/hr-HR.js +3 -3
- package/languages/index.js +3 -3
- package/languages/it-IT.js +3 -3
- package/languages/ja-JP.js +3 -3
- package/languages/ko-KR.js +3 -3
- package/languages/lv-LV.js +3 -3
- package/languages/nb-NO.js +3 -3
- package/languages/nl-NL.js +3 -3
- package/languages/pl-PL.js +3 -3
- package/languages/pt-BR.js +3 -3
- package/languages/ru-RU.js +3 -3
- package/languages/sr-SP.js +3 -3
- package/languages/zh-CN.js +3 -3
- package/languages/zh-TW.js +3 -3
- package/package.json +1 -5
- package/pluginHooks.d.ts +3 -1
- package/pluginHooks.js +12 -1
- package/pluginHooks.mjs +12 -1
- package/plugins/autoColumnSize/autoColumnSize.d.ts +1 -1
- package/plugins/autoColumnSize/autoColumnSize.js +123 -123
- package/plugins/autoColumnSize/autoColumnSize.mjs +122 -122
- package/plugins/autoRowSize/autoRowSize.d.ts +2 -1
- package/plugins/autoRowSize/autoRowSize.js +162 -100
- package/plugins/autoRowSize/autoRowSize.mjs +161 -99
- package/plugins/autofill/autofill.js +4 -4
- package/plugins/autofill/autofill.mjs +3 -3
- package/plugins/base/base.js +5 -5
- package/plugins/base/base.mjs +4 -4
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +4 -4
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -3
- package/plugins/collapsibleColumns/collapsibleColumns.js +4 -4
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +4 -4
- package/plugins/columnSorting/columnSorting.js +6 -5
- package/plugins/columnSorting/columnSorting.mjs +5 -4
- package/plugins/columnSorting/columnStatesManager.js +1 -1
- package/plugins/columnSorting/columnStatesManager.mjs +1 -1
- package/plugins/columnSorting/sortService/registry.js +1 -1
- package/plugins/columnSorting/utils.js +1 -1
- package/plugins/columnSummary/columnSummary.d.ts +1 -1
- package/plugins/columnSummary/columnSummary.js +4 -4
- package/plugins/columnSummary/columnSummary.mjs +3 -3
- package/plugins/columnSummary/endpoints.js +1 -1
- package/plugins/columnSummary/endpoints.mjs +1 -1
- package/plugins/comments/commentEditor.js +74 -39
- package/plugins/comments/commentEditor.mjs +73 -39
- package/plugins/comments/comments.js +25 -44
- package/plugins/comments/comments.mjs +25 -44
- package/plugins/comments/displaySwitch.js +2 -2
- package/plugins/comments/displaySwitch.mjs +1 -1
- package/plugins/comments/editorResizeObserver.js +100 -0
- package/plugins/comments/editorResizeObserver.mjs +95 -0
- package/plugins/contextMenu/commandExecutor.js +1 -1
- package/plugins/contextMenu/commandExecutor.mjs +1 -1
- package/plugins/contextMenu/contextMenu.js +4 -4
- package/plugins/contextMenu/contextMenu.mjs +3 -3
- package/plugins/contextMenu/itemsFactory.js +1 -1
- package/plugins/contextMenu/itemsFactory.mjs +1 -1
- package/plugins/contextMenu/menu/cursor.js +1 -1
- package/plugins/contextMenu/menu/cursor.mjs +1 -1
- package/plugins/contextMenu/menu/menu.js +5 -4
- package/plugins/contextMenu/menu/menu.mjs +4 -3
- package/plugins/contextMenu/menu/positioner.js +2 -2
- package/plugins/contextMenu/menu/positioner.mjs +2 -2
- package/plugins/copyPaste/copyPaste.js +5 -5
- package/plugins/copyPaste/copyPaste.mjs +4 -4
- package/plugins/copyPaste/copyableRanges.js +3 -3
- package/plugins/copyPaste/copyableRanges.mjs +3 -3
- package/plugins/copyPaste/pasteEvent.js +1 -1
- package/plugins/customBorders/contextMenuItem/index.js +1 -1
- package/plugins/customBorders/customBorders.js +3 -3
- package/plugins/customBorders/customBorders.mjs +3 -3
- package/plugins/dragToScroll/dragToScroll.js +4 -4
- package/plugins/dragToScroll/dragToScroll.mjs +4 -4
- package/plugins/dropdownMenu/dropdownMenu.js +5 -5
- package/plugins/dropdownMenu/dropdownMenu.mjs +4 -4
- package/plugins/exportFile/dataProvider.js +1 -1
- package/plugins/exportFile/dataProvider.mjs +1 -1
- package/plugins/exportFile/exportFile.js +1 -1
- package/plugins/exportFile/typeFactory.js +1 -1
- package/plugins/exportFile/types/_base.js +1 -1
- package/plugins/exportFile/types/_base.mjs +1 -1
- package/plugins/exportFile/types/csv.js +1 -1
- package/plugins/filters/component/_base.js +2 -2
- package/plugins/filters/component/_base.mjs +1 -1
- package/plugins/filters/component/actionBar.js +3 -3
- package/plugins/filters/component/actionBar.mjs +3 -3
- package/plugins/filters/component/condition.js +3 -3
- package/plugins/filters/component/condition.mjs +3 -3
- package/plugins/filters/component/operators.js +3 -3
- package/plugins/filters/component/operators.mjs +3 -3
- package/plugins/filters/component/value.js +3 -3
- package/plugins/filters/component/value.mjs +3 -3
- 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/conditionCollection.js +2 -2
- package/plugins/filters/conditionCollection.mjs +1 -1
- package/plugins/filters/conditionUpdateObserver.js +4 -4
- package/plugins/filters/conditionUpdateObserver.mjs +3 -3
- package/plugins/filters/dataFilter.js +1 -1
- package/plugins/filters/dataFilter.mjs +1 -1
- package/plugins/filters/filters.js +5 -5
- package/plugins/filters/filters.mjs +4 -4
- package/plugins/filters/ui/_base.js +2 -2
- package/plugins/filters/ui/_base.mjs +1 -1
- package/plugins/filters/ui/input.js +3 -3
- package/plugins/filters/ui/input.mjs +3 -3
- package/plugins/filters/ui/link.js +2 -2
- package/plugins/filters/ui/link.mjs +2 -2
- package/plugins/filters/ui/multipleSelect.js +3 -3
- package/plugins/filters/ui/multipleSelect.mjs +3 -3
- package/plugins/filters/ui/radioInput.js +2 -2
- package/plugins/filters/ui/radioInput.mjs +2 -2
- package/plugins/filters/ui/select.js +3 -3
- package/plugins/filters/ui/select.mjs +3 -3
- package/plugins/formulas/engine/register.js +1 -1
- package/plugins/formulas/formulas.js +7 -7
- package/plugins/formulas/formulas.mjs +6 -6
- package/plugins/formulas/indexSyncer/axisSyncer.js +2 -2
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +2 -2
- package/plugins/formulas/indexSyncer/index.js +3 -3
- package/plugins/formulas/indexSyncer/index.mjs +2 -2
- package/plugins/formulas/utils.js +1 -1
- package/plugins/hiddenColumns/hiddenColumns.js +4 -4
- package/plugins/hiddenColumns/hiddenColumns.mjs +3 -3
- package/plugins/hiddenRows/hiddenRows.js +4 -4
- package/plugins/hiddenRows/hiddenRows.mjs +3 -3
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +4 -4
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +3 -3
- package/plugins/manualColumnMove/manualColumnMove.js +4 -4
- package/plugins/manualColumnMove/manualColumnMove.mjs +3 -3
- package/plugins/manualColumnMove/ui/_base.js +1 -1
- package/plugins/manualColumnMove/ui/_base.mjs +1 -1
- package/plugins/manualColumnMove/ui/backlight.js +1 -1
- package/plugins/manualColumnMove/ui/guideline.js +1 -1
- package/plugins/manualColumnResize/manualColumnResize.js +3 -3
- package/plugins/manualColumnResize/manualColumnResize.mjs +3 -3
- package/plugins/manualRowMove/manualRowMove.js +4 -4
- package/plugins/manualRowMove/manualRowMove.mjs +3 -3
- package/plugins/manualRowMove/ui/_base.js +1 -1
- package/plugins/manualRowMove/ui/_base.mjs +1 -1
- package/plugins/manualRowMove/ui/backlight.js +1 -1
- package/plugins/manualRowMove/ui/guideline.js +1 -1
- package/plugins/manualRowResize/manualRowResize.js +3 -3
- package/plugins/manualRowResize/manualRowResize.mjs +3 -3
- package/plugins/mergeCells/calculations/autofill.js +2 -2
- package/plugins/mergeCells/calculations/autofill.mjs +2 -2
- package/plugins/mergeCells/calculations/selection.js +1 -1
- package/plugins/mergeCells/calculations/selection.mjs +1 -1
- package/plugins/mergeCells/cellCoords.js +81 -24
- package/plugins/mergeCells/cellCoords.mjs +81 -24
- package/plugins/mergeCells/cellsCollection.js +167 -91
- package/plugins/mergeCells/cellsCollection.mjs +166 -90
- package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -1
- package/plugins/mergeCells/focusOrder.js +4 -4
- package/plugins/mergeCells/focusOrder.mjs +3 -3
- package/plugins/mergeCells/mergeCells.js +171 -122
- package/plugins/mergeCells/mergeCells.mjs +171 -122
- package/plugins/mergeCells/renderer.js +74 -0
- package/plugins/mergeCells/renderer.mjs +70 -0
- package/plugins/multiColumnSorting/multiColumnSorting.js +2 -1
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -1
- package/plugins/multiColumnSorting/utils.js +1 -1
- package/plugins/multiColumnSorting/utils.mjs +1 -1
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +1 -1
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +1 -1
- package/plugins/nestedHeaders/nestedHeaders.d.ts +1 -0
- package/plugins/nestedHeaders/nestedHeaders.js +20 -9
- package/plugins/nestedHeaders/nestedHeaders.mjs +20 -9
- package/plugins/nestedHeaders/stateManager/headersTree.js +3 -3
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +2 -2
- package/plugins/nestedHeaders/stateManager/index.js +3 -3
- package/plugins/nestedHeaders/stateManager/index.mjs +2 -2
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -1
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +5 -1
- package/plugins/nestedHeaders/stateManager/sourceSettings.js +2 -2
- package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +2 -2
- package/plugins/nestedHeaders/stateManager/utils.js +6 -2
- package/plugins/nestedHeaders/stateManager/utils.mjs +6 -2
- package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
- package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
- package/plugins/nestedRows/data/dataManager.js +1 -1
- package/plugins/nestedRows/data/dataManager.mjs +1 -1
- package/plugins/nestedRows/nestedRows.js +5 -5
- package/plugins/nestedRows/nestedRows.mjs +4 -4
- package/plugins/nestedRows/ui/_base.js +1 -1
- package/plugins/nestedRows/ui/_base.mjs +1 -1
- package/plugins/nestedRows/ui/collapsing.js +1 -1
- package/plugins/nestedRows/ui/contextMenu.js +4 -4
- package/plugins/nestedRows/ui/contextMenu.mjs +3 -3
- package/plugins/nestedRows/ui/headers.js +1 -1
- package/plugins/nestedRows/utils/rowMoveController.js +1 -1
- package/plugins/nestedRows/utils/rowMoveController.mjs +1 -1
- package/plugins/persistentState/persistentState.js +2 -2
- package/plugins/persistentState/persistentState.mjs +1 -1
- package/plugins/persistentState/storage.js +1 -1
- package/plugins/persistentState/storage.mjs +1 -1
- package/plugins/search/search.js +3 -3
- package/plugins/search/search.mjs +3 -3
- package/plugins/touchScroll/touchScroll.js +3 -3
- package/plugins/touchScroll/touchScroll.mjs +3 -3
- package/plugins/trimRows/trimRows.js +3 -3
- package/plugins/trimRows/trimRows.mjs +3 -3
- package/plugins/undoRedo/undoRedo.js +38 -1
- package/plugins/undoRedo/undoRedo.mjs +37 -0
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -1
- package/renderers/checkboxRenderer/checkboxRenderer.js +1 -1
- package/renderers/numericRenderer/numericRenderer.js +1 -1
- package/renderers/registry.js +1 -1
- package/selection/highlight/highlight.js +3 -3
- package/selection/highlight/highlight.mjs +3 -3
- package/selection/highlight/types/activeHeader.js +1 -1
- package/selection/highlight/types/area.js +1 -1
- package/selection/highlight/types/areaLayered.js +1 -1
- package/selection/highlight/types/column.js +1 -1
- package/selection/highlight/types/customSelection.js +1 -1
- package/selection/highlight/types/fill.js +1 -1
- package/selection/highlight/types/focus.js +1 -1
- package/selection/highlight/types/header.js +1 -1
- package/selection/highlight/types/row.js +1 -1
- package/selection/highlight/visualSelection.js +1 -1
- package/selection/highlight/visualSelection.mjs +1 -1
- package/selection/index.js +1 -1
- package/selection/range.js +1 -1
- package/selection/range.mjs +1 -1
- package/selection/selection.js +8 -4
- package/selection/selection.mjs +7 -3
- package/selection/transformation.js +14 -4
- package/selection/transformation.mjs +13 -3
- package/settings.d.ts +1 -0
- package/shortcuts/utils.js +18 -27
- package/shortcuts/utils.mjs +18 -27
- package/tableView.js +126 -28
- package/tableView.mjs +125 -27
- package/translations/changesObservable/observable.js +2 -2
- package/translations/changesObservable/observable.mjs +2 -2
- package/translations/changesObservable/observer.js +3 -3
- package/translations/changesObservable/observer.mjs +2 -2
- package/translations/indexMapper.js +2 -2
- package/translations/indexMapper.mjs +1 -1
- package/translations/mapCollections/aggregatedCollection.js +1 -1
- package/translations/mapCollections/aggregatedCollection.mjs +1 -1
- package/translations/mapCollections/mapCollection.js +2 -2
- package/translations/mapCollections/mapCollection.mjs +1 -1
- package/translations/maps/indexMap.js +2 -2
- package/translations/maps/indexMap.mjs +1 -1
- package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -1
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -1
- package/utils/dataStructures/linkedList.js +1 -1
- package/utils/dataStructures/linkedList.mjs +1 -1
- package/utils/dataStructures/tree.js +1 -1
- package/utils/dataStructures/tree.mjs +1 -1
- package/utils/ghostTable.js +1 -1
- package/utils/ghostTable.mjs +1 -1
- package/utils/interval.js +4 -4
- package/utils/interval.mjs +4 -4
- package/utils/samplesGenerator.js +1 -1
- package/utils/samplesGenerator.mjs +1 -1
- package/validators/dateValidator/dateValidator.js +1 -1
- package/validators/registry.js +1 -1
- package/validators/timeValidator/timeValidator.js +1 -1
- package/plugins/mergeCells/utils.js +0 -28
- package/plugins/mergeCells/utils.mjs +0 -24
@@ -1,23 +1,15 @@
|
|
1
1
|
import "core-js/modules/es.error.cause.js";
|
2
2
|
import "core-js/modules/es.array.push.js";
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
import "core-js/modules/esnext.set.is-superset-of.v2.js";
|
8
|
-
import "core-js/modules/esnext.set.symmetric-difference.v2.js";
|
9
|
-
import "core-js/modules/esnext.set.union.v2.js";
|
10
|
-
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
11
|
-
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
12
|
-
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
13
|
-
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; }
|
3
|
+
function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
|
4
|
+
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
5
|
+
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
6
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
14
7
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
15
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); }
|
16
|
-
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
17
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; }
|
18
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"); }
|
19
12
|
import { BasePlugin } from "../base/index.mjs";
|
20
|
-
import { arrayEach, arrayFilter, arrayReduce, arrayMap } from "../../helpers/array.mjs";
|
21
13
|
import { cancelAnimationFrame, requestAnimationFrame } from "../../helpers/feature.mjs";
|
22
14
|
import GhostTable from "../../utils/ghostTable.mjs";
|
23
15
|
import Hooks from "../../pluginHooks.mjs";
|
@@ -27,7 +19,6 @@ import SamplesGenerator from "../../utils/samplesGenerator.mjs";
|
|
27
19
|
import { isPercentValue } from "../../helpers/string.mjs";
|
28
20
|
import { ViewportColumnsCalculator } from "../../3rdparty/walkontable/src/index.mjs";
|
29
21
|
import { PhysicalIndexToValueMap as IndexToValueMap } from "../../translations/index.mjs";
|
30
|
-
import { isDefined } from "../../helpers/mixed.mjs";
|
31
22
|
Hooks.getSingleton().register('modifyAutoColumnSizeSeed');
|
32
23
|
export const PLUGIN_KEY = 'autoColumnSize';
|
33
24
|
export const PLUGIN_PRIORITY = 10;
|
@@ -131,6 +122,7 @@ const COLUMN_SIZE_MAP_NAME = 'autoColumnSize';
|
|
131
122
|
*/
|
132
123
|
/* eslint-enable jsdoc/require-description-complete-sentence */
|
133
124
|
var _cachedColumnHeaders = /*#__PURE__*/new WeakMap();
|
125
|
+
var _visualColumnsToRefresh = /*#__PURE__*/new WeakMap();
|
134
126
|
var _AutoColumnSize_brand = /*#__PURE__*/new WeakSet();
|
135
127
|
export class AutoColumnSize extends BasePlugin {
|
136
128
|
static get PLUGIN_KEY() {
|
@@ -159,7 +151,9 @@ export class AutoColumnSize extends BasePlugin {
|
|
159
151
|
constructor(hotInstance) {
|
160
152
|
super(hotInstance);
|
161
153
|
/**
|
162
|
-
*
|
154
|
+
* Calculates specific columns width (overwrite cache values).
|
155
|
+
*
|
156
|
+
* @param {number[]} visualColumns List of visual columns to calculate.
|
163
157
|
*/
|
164
158
|
_classPrivateMethodInitSpec(this, _AutoColumnSize_brand);
|
165
159
|
_defineProperty(this, "ghostTable", new GhostTable(this.hot));
|
@@ -190,13 +184,6 @@ export class AutoColumnSize extends BasePlugin {
|
|
190
184
|
bundleSeed
|
191
185
|
};
|
192
186
|
}));
|
193
|
-
/**
|
194
|
-
* `true` only if the first calculation was performed.
|
195
|
-
*
|
196
|
-
* @private
|
197
|
-
* @type {boolean}
|
198
|
-
*/
|
199
|
-
_defineProperty(this, "firstCalculation", true);
|
200
187
|
/**
|
201
188
|
* `true` if the size calculation is in progress.
|
202
189
|
*
|
@@ -223,6 +210,12 @@ export class AutoColumnSize extends BasePlugin {
|
|
223
210
|
* @type {Array}
|
224
211
|
*/
|
225
212
|
_classPrivateFieldInitSpec(this, _cachedColumnHeaders, []);
|
213
|
+
/**
|
214
|
+
* An array of column indexes whose width will be recalculated.
|
215
|
+
*
|
216
|
+
* @type {number[]}
|
217
|
+
*/
|
218
|
+
_classPrivateFieldInitSpec(this, _visualColumnsToRefresh, []);
|
226
219
|
this.hot.columnIndexMapper.registerMap(COLUMN_SIZE_MAP_NAME, this.columnWidthsMap);
|
227
220
|
|
228
221
|
// Leave the listener active to allow auto-sizing the columns when the plugin is disabled.
|
@@ -259,11 +252,21 @@ export class AutoColumnSize extends BasePlugin {
|
|
259
252
|
}
|
260
253
|
return _assertClassBrand(_AutoColumnSize_brand, _this, _onAfterLoadData).call(_this, ...args);
|
261
254
|
});
|
262
|
-
this.addHook('beforeChangeRender',
|
263
|
-
|
264
|
-
|
255
|
+
this.addHook('beforeChangeRender', function () {
|
256
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
257
|
+
args[_key2] = arguments[_key2];
|
258
|
+
}
|
259
|
+
return _assertClassBrand(_AutoColumnSize_brand, _this, _onBeforeChange).call(_this, ...args);
|
260
|
+
});
|
261
|
+
this.addHook('afterFormulasValuesUpdate', function () {
|
262
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
263
|
+
args[_key3] = arguments[_key3];
|
264
|
+
}
|
265
|
+
return _assertClassBrand(_AutoColumnSize_brand, _this, _onAfterFormulasValuesUpdate).call(_this, ...args);
|
266
|
+
});
|
267
|
+
this.addHook('beforeRender', () => _assertClassBrand(_AutoColumnSize_brand, this, _onBeforeRender).call(this));
|
265
268
|
this.addHook('modifyColWidth', (width, col) => this.getColumnWidth(col, width));
|
266
|
-
this.addHook('
|
269
|
+
this.addHook('init', () => _assertClassBrand(_AutoColumnSize_brand, this, _onInit).call(this));
|
267
270
|
super.enablePlugin();
|
268
271
|
}
|
269
272
|
|
@@ -271,11 +274,7 @@ export class AutoColumnSize extends BasePlugin {
|
|
271
274
|
* Updates the plugin's state. This method is executed when {@link Core#updateSettings} is invoked.
|
272
275
|
*/
|
273
276
|
updatePlugin() {
|
274
|
-
|
275
|
-
if (changedColumns.length) {
|
276
|
-
this.clearCache(changedColumns);
|
277
|
-
this.calculateVisibleColumnsWidth();
|
278
|
-
}
|
277
|
+
_classPrivateFieldSet(_visualColumnsToRefresh, this, this.findColumnsWhereHeaderWasChanged());
|
279
278
|
super.updatePlugin();
|
280
279
|
}
|
281
280
|
|
@@ -291,25 +290,23 @@ export class AutoColumnSize extends BasePlugin {
|
|
291
290
|
}
|
292
291
|
|
293
292
|
/**
|
294
|
-
* Calculates visible columns
|
293
|
+
* Calculates widths for visible columns in the viewport only.
|
295
294
|
*/
|
296
295
|
calculateVisibleColumnsWidth() {
|
297
|
-
const rowsCount = this.hot.countRows();
|
298
|
-
|
299
296
|
// Keep last column widths unchanged for situation when all rows was deleted or trimmed (pro #6)
|
300
|
-
if (!
|
297
|
+
if (!this.hot.countRows()) {
|
301
298
|
return;
|
302
299
|
}
|
303
|
-
const force = this.hot.renderCall;
|
304
300
|
const firstVisibleColumn = this.getFirstVisibleColumn();
|
305
301
|
const lastVisibleColumn = this.getLastVisibleColumn();
|
306
302
|
if (firstVisibleColumn === -1 || lastVisibleColumn === -1) {
|
307
303
|
return;
|
308
304
|
}
|
305
|
+
const overwriteCache = this.hot.renderCall;
|
309
306
|
this.calculateColumnsWidth({
|
310
307
|
from: firstVisibleColumn,
|
311
308
|
to: lastVisibleColumn
|
312
|
-
}, undefined,
|
309
|
+
}, undefined, overwriteCache);
|
313
310
|
}
|
314
311
|
|
315
312
|
/**
|
@@ -317,7 +314,7 @@ export class AutoColumnSize extends BasePlugin {
|
|
317
314
|
*
|
318
315
|
* @param {number|object} colRange Visual column index or an object with `from` and `to` visual indexes as a range.
|
319
316
|
* @param {number|object} rowRange Visual row index or an object with `from` and `to` visual indexes as a range.
|
320
|
-
* @param {boolean} [
|
317
|
+
* @param {boolean} [overwriteCache=false] If `true` the calculation will be processed regardless of whether the width exists in the cache.
|
321
318
|
*/
|
322
319
|
calculateColumnsWidth() {
|
323
320
|
let colRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
@@ -328,8 +325,7 @@ export class AutoColumnSize extends BasePlugin {
|
|
328
325
|
from: 0,
|
329
326
|
to: this.hot.countRows() - 1
|
330
327
|
};
|
331
|
-
let
|
332
|
-
// eslint-disable-line max-len
|
328
|
+
let overwriteCache = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
333
329
|
const columnsRange = typeof colRange === 'number' ? {
|
334
330
|
from: colRange,
|
335
331
|
to: colRange
|
@@ -343,12 +339,9 @@ export class AutoColumnSize extends BasePlugin {
|
|
343
339
|
if (physicalColumn === null) {
|
344
340
|
physicalColumn = visualColumn;
|
345
341
|
}
|
346
|
-
if (
|
342
|
+
if (overwriteCache || this.columnWidthsMap.getValueAtIndex(physicalColumn) === null && !this.hot._getColWidthFromSettings(physicalColumn)) {
|
347
343
|
const samples = this.samplesGenerator.generateColumnSamples(visualColumn, rowsRange);
|
348
|
-
|
349
|
-
let [column, sample] = _ref;
|
350
|
-
return this.ghostTable.addColumn(column, sample);
|
351
|
-
});
|
344
|
+
samples.forEach((sample, column) => this.ghostTable.addColumn(column, sample));
|
352
345
|
}
|
353
346
|
});
|
354
347
|
if (this.ghostTable.columns.length) {
|
@@ -368,12 +361,14 @@ export class AutoColumnSize extends BasePlugin {
|
|
368
361
|
* To retrieve width for specified column use {@link AutoColumnSize#getColumnWidth} method.
|
369
362
|
*
|
370
363
|
* @param {object|number} rowRange Row index or an object with `from` and `to` properties which define row range.
|
364
|
+
* @param {boolean} [overwriteCache] If `true` the calculation will be processed regardless of whether the width exists in the cache.
|
371
365
|
*/
|
372
366
|
calculateAllColumnsWidth() {
|
373
367
|
let rowRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
374
368
|
from: 0,
|
375
369
|
to: this.hot.countRows() - 1
|
376
370
|
};
|
371
|
+
let overwriteCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
377
372
|
let current = 0;
|
378
373
|
const length = this.hot.countCols() - 1;
|
379
374
|
let timer = null;
|
@@ -388,7 +383,7 @@ export class AutoColumnSize extends BasePlugin {
|
|
388
383
|
this.calculateColumnsWidth({
|
389
384
|
from: current,
|
390
385
|
to: Math.min(current + AutoColumnSize.CALCULATION_STEP, length)
|
391
|
-
}, rowRange);
|
386
|
+
}, rowRange, overwriteCache);
|
392
387
|
current = current + AutoColumnSize.CALCULATION_STEP + 1;
|
393
388
|
if (current < length) {
|
394
389
|
timer = requestAnimationFrame(loop);
|
@@ -403,12 +398,11 @@ export class AutoColumnSize extends BasePlugin {
|
|
403
398
|
const syncLimit = this.getSyncCalculationLimit();
|
404
399
|
|
405
400
|
// sync
|
406
|
-
if (
|
401
|
+
if (syncLimit >= 0) {
|
407
402
|
this.calculateColumnsWidth({
|
408
403
|
from: 0,
|
409
404
|
to: syncLimit
|
410
|
-
}, rowRange);
|
411
|
-
this.firstCalculation = false;
|
405
|
+
}, rowRange, overwriteCache);
|
412
406
|
current = syncLimit + 1;
|
413
407
|
}
|
414
408
|
// async
|
@@ -418,7 +412,6 @@ export class AutoColumnSize extends BasePlugin {
|
|
418
412
|
this.inProgress = false;
|
419
413
|
}
|
420
414
|
}
|
421
|
-
|
422
415
|
/**
|
423
416
|
* Sets the sampling options.
|
424
417
|
*
|
@@ -440,9 +433,11 @@ export class AutoColumnSize extends BasePlugin {
|
|
440
433
|
* Recalculates all columns width (overwrite cache values).
|
441
434
|
*/
|
442
435
|
recalculateAllColumnsWidth() {
|
443
|
-
if (this.hot.view
|
444
|
-
this.
|
445
|
-
|
436
|
+
if (this.hot.view.isVisible()) {
|
437
|
+
this.calculateAllColumnsWidth({
|
438
|
+
from: 0,
|
439
|
+
to: this.hot.countRows() - 1
|
440
|
+
}, true);
|
446
441
|
}
|
447
442
|
}
|
448
443
|
|
@@ -477,8 +472,7 @@ export class AutoColumnSize extends BasePlugin {
|
|
477
472
|
* @param {boolean} [keepMinimum=true] If `true` then returned value won't be smaller then 50 (default column width).
|
478
473
|
* @returns {number}
|
479
474
|
*/
|
480
|
-
getColumnWidth(column) {
|
481
|
-
let defaultWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
|
475
|
+
getColumnWidth(column, defaultWidth) {
|
482
476
|
let keepMinimum = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
483
477
|
let width = defaultWidth;
|
484
478
|
if (width === undefined) {
|
@@ -496,23 +490,8 @@ export class AutoColumnSize extends BasePlugin {
|
|
496
490
|
* @returns {number} Returns visual column index, -1 if table is not rendered or if there are no columns to base the the calculations on.
|
497
491
|
*/
|
498
492
|
getFirstVisibleColumn() {
|
499
|
-
|
500
|
-
|
501
|
-
// Fist fully visible column is stored as renderable index.
|
502
|
-
const firstFullyVisibleColumn = wot.wtTable.getFirstVisibleColumn();
|
503
|
-
if (firstFullyVisibleColumn !== -1) {
|
504
|
-
return this.hot.columnIndexMapper.getVisualFromRenderableIndex(firstFullyVisibleColumn);
|
505
|
-
}
|
506
|
-
}
|
507
|
-
if (wot.wtViewport.columnsRenderCalculator) {
|
508
|
-
const firstRenderedColumn = wot.wtTable.getFirstRenderedColumn();
|
509
|
-
|
510
|
-
// There are no rendered column.
|
511
|
-
if (firstRenderedColumn !== -1) {
|
512
|
-
return this.hot.columnIndexMapper.getVisualFromRenderableIndex(firstRenderedColumn);
|
513
|
-
}
|
514
|
-
}
|
515
|
-
return -1;
|
493
|
+
var _this$hot$view$getFir;
|
494
|
+
return (_this$hot$view$getFir = this.hot.view.getFirstRenderedVisibleColumn()) !== null && _this$hot$view$getFir !== void 0 ? _this$hot$view$getFir : -1;
|
516
495
|
}
|
517
496
|
|
518
497
|
/**
|
@@ -521,38 +500,22 @@ export class AutoColumnSize extends BasePlugin {
|
|
521
500
|
* @returns {number} Returns visual column index or -1 if table is not rendered.
|
522
501
|
*/
|
523
502
|
getLastVisibleColumn() {
|
524
|
-
|
525
|
-
|
526
|
-
// Last fully visible column is stored as renderable index.
|
527
|
-
const lastFullyVisibleColumn = wot.wtTable.getLastVisibleColumn();
|
528
|
-
if (lastFullyVisibleColumn !== -1) {
|
529
|
-
return this.hot.columnIndexMapper.getVisualFromRenderableIndex(lastFullyVisibleColumn);
|
530
|
-
}
|
531
|
-
}
|
532
|
-
if (wot.wtViewport.columnsRenderCalculator) {
|
533
|
-
// Last fully visible column is stored as renderable index.
|
534
|
-
const lastRenderedColumn = wot.wtTable.getLastRenderedColumn();
|
535
|
-
|
536
|
-
// There are no rendered columns.
|
537
|
-
if (lastRenderedColumn !== -1) {
|
538
|
-
return this.hot.columnIndexMapper.getVisualFromRenderableIndex(lastRenderedColumn);
|
539
|
-
}
|
540
|
-
}
|
541
|
-
return -1;
|
503
|
+
var _this$hot$view$getLas;
|
504
|
+
return (_this$hot$view$getLas = this.hot.view.getLastRenderedVisibleColumn()) !== null && _this$hot$view$getLas !== void 0 ? _this$hot$view$getLas : -1;
|
542
505
|
}
|
543
506
|
|
544
507
|
/**
|
545
508
|
* Collects all columns which titles has been changed in comparison to the previous state.
|
546
509
|
*
|
547
510
|
* @private
|
548
|
-
* @returns {Array} It returns an array of
|
511
|
+
* @returns {Array} It returns an array of visual column indexes.
|
549
512
|
*/
|
550
513
|
findColumnsWhereHeaderWasChanged() {
|
551
514
|
const columnHeaders = this.hot.getColHeader();
|
552
|
-
const changedColumns =
|
515
|
+
const changedColumns = columnHeaders.reduce((acc, columnTitle, physicalColumn) => {
|
553
516
|
const cachedColumnsLength = _classPrivateFieldGet(_cachedColumnHeaders, this).length;
|
554
517
|
if (cachedColumnsLength - 1 < physicalColumn || _classPrivateFieldGet(_cachedColumnHeaders, this)[physicalColumn] !== columnTitle) {
|
555
|
-
acc.push(physicalColumn);
|
518
|
+
acc.push(this.hot.toVisualColumn(physicalColumn));
|
556
519
|
}
|
557
520
|
if (cachedColumnsLength - 1 < physicalColumn) {
|
558
521
|
_classPrivateFieldGet(_cachedColumnHeaders, this).push(columnTitle);
|
@@ -568,13 +531,12 @@ export class AutoColumnSize extends BasePlugin {
|
|
568
531
|
* Clears cache of calculated column widths. If you want to clear only selected columns pass an array with their indexes.
|
569
532
|
* Otherwise whole cache will be cleared.
|
570
533
|
*
|
571
|
-
* @param {number[]} [
|
534
|
+
* @param {number[]} [physicalColumns] List of physical column indexes to clear.
|
572
535
|
*/
|
573
|
-
clearCache() {
|
574
|
-
|
575
|
-
if (columns.length) {
|
536
|
+
clearCache(physicalColumns) {
|
537
|
+
if (Array.isArray(physicalColumns)) {
|
576
538
|
this.hot.batchExecution(() => {
|
577
|
-
|
539
|
+
physicalColumns.forEach(physicalIndex => {
|
578
540
|
this.columnWidthsMap.setValueAtIndex(physicalIndex, null);
|
579
541
|
});
|
580
542
|
}, true);
|
@@ -589,8 +551,13 @@ export class AutoColumnSize extends BasePlugin {
|
|
589
551
|
* @returns {boolean}
|
590
552
|
*/
|
591
553
|
isNeedRecalculate() {
|
592
|
-
return !!
|
554
|
+
return !!this.columnWidthsMap.getValues().slice(0, this.measuredColumns).filter(item => item === null).length;
|
593
555
|
}
|
556
|
+
|
557
|
+
/**
|
558
|
+
* On before view render listener.
|
559
|
+
*/
|
560
|
+
|
594
561
|
/**
|
595
562
|
* Destroys the plugin instance.
|
596
563
|
*/
|
@@ -599,25 +566,47 @@ export class AutoColumnSize extends BasePlugin {
|
|
599
566
|
super.destroy();
|
600
567
|
}
|
601
568
|
}
|
602
|
-
function
|
569
|
+
function _calculateSpecificColumnsWidth(visualColumns) {
|
570
|
+
const rowsRange = {
|
571
|
+
from: 0,
|
572
|
+
to: this.hot.countRows() - 1
|
573
|
+
};
|
574
|
+
visualColumns.forEach(visualColumn => {
|
575
|
+
const physicalColumn = this.hot.toPhysicalColumn(visualColumn);
|
576
|
+
if (physicalColumn === null) {
|
577
|
+
return;
|
578
|
+
}
|
579
|
+
if (!this.hot._getColWidthFromSettings(physicalColumn)) {
|
580
|
+
const samples = this.samplesGenerator.generateColumnSamples(visualColumn, rowsRange);
|
581
|
+
samples.forEach((sample, column) => this.ghostTable.addColumn(column, sample));
|
582
|
+
}
|
583
|
+
});
|
584
|
+
if (this.ghostTable.columns.length) {
|
585
|
+
this.hot.batchExecution(() => {
|
586
|
+
this.ghostTable.getWidths((visualColumn, width) => {
|
587
|
+
const physicalColumn = this.hot.toPhysicalColumn(visualColumn);
|
588
|
+
this.columnWidthsMap.setValueAtIndex(physicalColumn, width);
|
589
|
+
});
|
590
|
+
}, true);
|
591
|
+
this.ghostTable.clean();
|
592
|
+
}
|
593
|
+
}
|
594
|
+
function _onBeforeRender() {
|
603
595
|
this.calculateVisibleColumnsWidth();
|
604
|
-
if (
|
605
|
-
this.
|
596
|
+
if (!this.inProgress) {
|
597
|
+
_assertClassBrand(_AutoColumnSize_brand, this, _calculateSpecificColumnsWidth).call(this, _classPrivateFieldGet(_visualColumnsToRefresh, this));
|
598
|
+
_classPrivateFieldSet(_visualColumnsToRefresh, this, []);
|
606
599
|
}
|
607
600
|
}
|
608
601
|
/**
|
609
602
|
* On after load data listener.
|
603
|
+
*
|
604
|
+
* @param {Array} sourceData Source data.
|
605
|
+
* @param {boolean} isFirstLoad `true` if this is the first load.
|
610
606
|
*/
|
611
|
-
function _onAfterLoadData() {
|
612
|
-
if (
|
607
|
+
function _onAfterLoadData(sourceData, isFirstLoad) {
|
608
|
+
if (!isFirstLoad) {
|
613
609
|
this.recalculateAllColumnsWidth();
|
614
|
-
} else {
|
615
|
-
// first load - initialization
|
616
|
-
setTimeout(() => {
|
617
|
-
if (this.hot) {
|
618
|
-
this.recalculateAllColumnsWidth();
|
619
|
-
}
|
620
|
-
}, 0);
|
621
610
|
}
|
622
611
|
}
|
623
612
|
/**
|
@@ -626,11 +615,15 @@ function _onAfterLoadData() {
|
|
626
615
|
* @param {Array} changes An array of modified data.
|
627
616
|
*/
|
628
617
|
function _onBeforeChange(changes) {
|
629
|
-
const changedColumns =
|
630
|
-
let [, columnProperty] =
|
631
|
-
|
632
|
-
|
633
|
-
|
618
|
+
const changedColumns = changes.reduce((acc, _ref) => {
|
619
|
+
let [, columnProperty] = _ref;
|
620
|
+
const visualColumn = this.hot.propToCol(columnProperty);
|
621
|
+
if (Number.isInteger(visualColumn) && acc.indexOf(visualColumn) === -1) {
|
622
|
+
acc.push(visualColumn);
|
623
|
+
}
|
624
|
+
return acc;
|
625
|
+
}, []);
|
626
|
+
_classPrivateFieldGet(_visualColumnsToRefresh, this).push(...changedColumns);
|
634
627
|
}
|
635
628
|
/**
|
636
629
|
* On before column resize listener.
|
@@ -651,8 +644,9 @@ function _onBeforeColumnResize(size, column, isDblClick) {
|
|
651
644
|
/**
|
652
645
|
* On after Handsontable init fill plugin with all necessary values.
|
653
646
|
*/
|
654
|
-
function
|
647
|
+
function _onInit() {
|
655
648
|
_classPrivateFieldSet(_cachedColumnHeaders, this, this.hot.getColHeader());
|
649
|
+
this.recalculateAllColumnsWidth();
|
656
650
|
}
|
657
651
|
/**
|
658
652
|
* After formulas values updated listener.
|
@@ -660,10 +654,16 @@ function _onAfterInit() {
|
|
660
654
|
* @param {Array} changes An array of modified data.
|
661
655
|
*/
|
662
656
|
function _onAfterFormulasValuesUpdate(changes) {
|
663
|
-
const
|
657
|
+
const changedColumns = changes.reduce((acc, change) => {
|
664
658
|
var _change$address;
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
659
|
+
const physicalColumn = (_change$address = change.address) === null || _change$address === void 0 ? void 0 : _change$address.col;
|
660
|
+
if (Number.isInteger(physicalColumn)) {
|
661
|
+
const visualColumn = this.hot.toVisualColumn(physicalColumn);
|
662
|
+
if (acc.indexOf(visualColumn) === -1) {
|
663
|
+
acc.push(visualColumn);
|
664
|
+
}
|
665
|
+
}
|
666
|
+
return acc;
|
667
|
+
}, []);
|
668
|
+
_classPrivateFieldGet(_visualColumnsToRefresh, this).push(...changedColumns);
|
669
669
|
}
|
@@ -15,6 +15,7 @@ export class AutoRowSize extends BasePlugin {
|
|
15
15
|
measuredRows: number;
|
16
16
|
|
17
17
|
isEnabled(): boolean;
|
18
|
+
calculateVisibleRowsHeight(): void;
|
18
19
|
calculateRowsHeight(rowRange?: number | { from: number, to: number }, colRange?: number | { from: number, to: number }, force?: boolean): void;
|
19
20
|
calculateAllRowsHeight(colRange?: number | { from: number, to: number }): void;
|
20
21
|
recalculateAllRowsHeight(): void;
|
@@ -23,7 +24,7 @@ export class AutoRowSize extends BasePlugin {
|
|
23
24
|
getColumnHeaderHeight(): number;
|
24
25
|
getFirstVisibleRow(): number;
|
25
26
|
getLastVisibleRow(): number;
|
26
|
-
clearCache(): void;
|
27
|
+
clearCache(physicalRows?: number[]): void;
|
27
28
|
clearCacheByRange(range: number | { from: number, to: number }): void;
|
28
29
|
isNeedRecalculate(): boolean;
|
29
30
|
}
|