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
@@ -3,15 +3,7 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
require("core-js/modules/es.error.cause.js");
|
5
5
|
require("core-js/modules/es.array.push.js");
|
6
|
-
require("core-js/modules/esnext.set.difference.v2.js");
|
7
|
-
require("core-js/modules/esnext.set.intersection.v2.js");
|
8
|
-
require("core-js/modules/esnext.set.is-disjoint-from.v2.js");
|
9
|
-
require("core-js/modules/esnext.set.is-subset-of.v2.js");
|
10
|
-
require("core-js/modules/esnext.set.is-superset-of.v2.js");
|
11
|
-
require("core-js/modules/esnext.set.symmetric-difference.v2.js");
|
12
|
-
require("core-js/modules/esnext.set.union.v2.js");
|
13
6
|
var _base = require("../base");
|
14
|
-
var _array = require("../../helpers/array");
|
15
7
|
var _feature = require("../../helpers/feature");
|
16
8
|
var _ghostTable = _interopRequireDefault(require("../../utils/ghostTable"));
|
17
9
|
var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
|
@@ -21,16 +13,15 @@ var _samplesGenerator = _interopRequireDefault(require("../../utils/samplesGener
|
|
21
13
|
var _string = require("../../helpers/string");
|
22
14
|
var _src = require("../../3rdparty/walkontable/src");
|
23
15
|
var _translations = require("../../translations");
|
24
|
-
|
25
|
-
function
|
26
|
-
function
|
27
|
-
function
|
28
|
-
function
|
29
|
-
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; }
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
17
|
+
function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
|
18
|
+
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
19
|
+
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
20
|
+
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; }
|
30
21
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
31
22
|
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); }
|
32
|
-
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
33
23
|
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
24
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
34
25
|
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"); }
|
35
26
|
_pluginHooks.default.getSingleton().register('modifyAutoColumnSizeSeed');
|
36
27
|
const PLUGIN_KEY = exports.PLUGIN_KEY = 'autoColumnSize';
|
@@ -135,6 +126,7 @@ const COLUMN_SIZE_MAP_NAME = 'autoColumnSize';
|
|
135
126
|
*/
|
136
127
|
/* eslint-enable jsdoc/require-description-complete-sentence */
|
137
128
|
var _cachedColumnHeaders = /*#__PURE__*/new WeakMap();
|
129
|
+
var _visualColumnsToRefresh = /*#__PURE__*/new WeakMap();
|
138
130
|
var _AutoColumnSize_brand = /*#__PURE__*/new WeakSet();
|
139
131
|
class AutoColumnSize extends _base.BasePlugin {
|
140
132
|
static get PLUGIN_KEY() {
|
@@ -163,7 +155,9 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
163
155
|
constructor(hotInstance) {
|
164
156
|
super(hotInstance);
|
165
157
|
/**
|
166
|
-
*
|
158
|
+
* Calculates specific columns width (overwrite cache values).
|
159
|
+
*
|
160
|
+
* @param {number[]} visualColumns List of visual columns to calculate.
|
167
161
|
*/
|
168
162
|
_classPrivateMethodInitSpec(this, _AutoColumnSize_brand);
|
169
163
|
_defineProperty(this, "ghostTable", new _ghostTable.default(this.hot));
|
@@ -194,13 +188,6 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
194
188
|
bundleSeed
|
195
189
|
};
|
196
190
|
}));
|
197
|
-
/**
|
198
|
-
* `true` only if the first calculation was performed.
|
199
|
-
*
|
200
|
-
* @private
|
201
|
-
* @type {boolean}
|
202
|
-
*/
|
203
|
-
_defineProperty(this, "firstCalculation", true);
|
204
191
|
/**
|
205
192
|
* `true` if the size calculation is in progress.
|
206
193
|
*
|
@@ -227,6 +214,12 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
227
214
|
* @type {Array}
|
228
215
|
*/
|
229
216
|
_classPrivateFieldInitSpec(this, _cachedColumnHeaders, []);
|
217
|
+
/**
|
218
|
+
* An array of column indexes whose width will be recalculated.
|
219
|
+
*
|
220
|
+
* @type {number[]}
|
221
|
+
*/
|
222
|
+
_classPrivateFieldInitSpec(this, _visualColumnsToRefresh, []);
|
230
223
|
this.hot.columnIndexMapper.registerMap(COLUMN_SIZE_MAP_NAME, this.columnWidthsMap);
|
231
224
|
|
232
225
|
// Leave the listener active to allow auto-sizing the columns when the plugin is disabled.
|
@@ -263,11 +256,21 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
263
256
|
}
|
264
257
|
return _assertClassBrand(_AutoColumnSize_brand, _this, _onAfterLoadData).call(_this, ...args);
|
265
258
|
});
|
266
|
-
this.addHook('beforeChangeRender',
|
267
|
-
|
268
|
-
|
259
|
+
this.addHook('beforeChangeRender', function () {
|
260
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
261
|
+
args[_key2] = arguments[_key2];
|
262
|
+
}
|
263
|
+
return _assertClassBrand(_AutoColumnSize_brand, _this, _onBeforeChange).call(_this, ...args);
|
264
|
+
});
|
265
|
+
this.addHook('afterFormulasValuesUpdate', function () {
|
266
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
267
|
+
args[_key3] = arguments[_key3];
|
268
|
+
}
|
269
|
+
return _assertClassBrand(_AutoColumnSize_brand, _this, _onAfterFormulasValuesUpdate).call(_this, ...args);
|
270
|
+
});
|
271
|
+
this.addHook('beforeRender', () => _assertClassBrand(_AutoColumnSize_brand, this, _onBeforeRender).call(this));
|
269
272
|
this.addHook('modifyColWidth', (width, col) => this.getColumnWidth(col, width));
|
270
|
-
this.addHook('
|
273
|
+
this.addHook('init', () => _assertClassBrand(_AutoColumnSize_brand, this, _onInit).call(this));
|
271
274
|
super.enablePlugin();
|
272
275
|
}
|
273
276
|
|
@@ -275,11 +278,7 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
275
278
|
* Updates the plugin's state. This method is executed when {@link Core#updateSettings} is invoked.
|
276
279
|
*/
|
277
280
|
updatePlugin() {
|
278
|
-
|
279
|
-
if (changedColumns.length) {
|
280
|
-
this.clearCache(changedColumns);
|
281
|
-
this.calculateVisibleColumnsWidth();
|
282
|
-
}
|
281
|
+
_classPrivateFieldSet(_visualColumnsToRefresh, this, this.findColumnsWhereHeaderWasChanged());
|
283
282
|
super.updatePlugin();
|
284
283
|
}
|
285
284
|
|
@@ -295,25 +294,23 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
295
294
|
}
|
296
295
|
|
297
296
|
/**
|
298
|
-
* Calculates visible columns
|
297
|
+
* Calculates widths for visible columns in the viewport only.
|
299
298
|
*/
|
300
299
|
calculateVisibleColumnsWidth() {
|
301
|
-
const rowsCount = this.hot.countRows();
|
302
|
-
|
303
300
|
// Keep last column widths unchanged for situation when all rows was deleted or trimmed (pro #6)
|
304
|
-
if (!
|
301
|
+
if (!this.hot.countRows()) {
|
305
302
|
return;
|
306
303
|
}
|
307
|
-
const force = this.hot.renderCall;
|
308
304
|
const firstVisibleColumn = this.getFirstVisibleColumn();
|
309
305
|
const lastVisibleColumn = this.getLastVisibleColumn();
|
310
306
|
if (firstVisibleColumn === -1 || lastVisibleColumn === -1) {
|
311
307
|
return;
|
312
308
|
}
|
309
|
+
const overwriteCache = this.hot.renderCall;
|
313
310
|
this.calculateColumnsWidth({
|
314
311
|
from: firstVisibleColumn,
|
315
312
|
to: lastVisibleColumn
|
316
|
-
}, undefined,
|
313
|
+
}, undefined, overwriteCache);
|
317
314
|
}
|
318
315
|
|
319
316
|
/**
|
@@ -321,7 +318,7 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
321
318
|
*
|
322
319
|
* @param {number|object} colRange Visual column index or an object with `from` and `to` visual indexes as a range.
|
323
320
|
* @param {number|object} rowRange Visual row index or an object with `from` and `to` visual indexes as a range.
|
324
|
-
* @param {boolean} [
|
321
|
+
* @param {boolean} [overwriteCache=false] If `true` the calculation will be processed regardless of whether the width exists in the cache.
|
325
322
|
*/
|
326
323
|
calculateColumnsWidth() {
|
327
324
|
let colRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
@@ -332,8 +329,7 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
332
329
|
from: 0,
|
333
330
|
to: this.hot.countRows() - 1
|
334
331
|
};
|
335
|
-
let
|
336
|
-
// eslint-disable-line max-len
|
332
|
+
let overwriteCache = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
337
333
|
const columnsRange = typeof colRange === 'number' ? {
|
338
334
|
from: colRange,
|
339
335
|
to: colRange
|
@@ -347,12 +343,9 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
347
343
|
if (physicalColumn === null) {
|
348
344
|
physicalColumn = visualColumn;
|
349
345
|
}
|
350
|
-
if (
|
346
|
+
if (overwriteCache || this.columnWidthsMap.getValueAtIndex(physicalColumn) === null && !this.hot._getColWidthFromSettings(physicalColumn)) {
|
351
347
|
const samples = this.samplesGenerator.generateColumnSamples(visualColumn, rowsRange);
|
352
|
-
(
|
353
|
-
let [column, sample] = _ref;
|
354
|
-
return this.ghostTable.addColumn(column, sample);
|
355
|
-
});
|
348
|
+
samples.forEach((sample, column) => this.ghostTable.addColumn(column, sample));
|
356
349
|
}
|
357
350
|
});
|
358
351
|
if (this.ghostTable.columns.length) {
|
@@ -372,12 +365,14 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
372
365
|
* To retrieve width for specified column use {@link AutoColumnSize#getColumnWidth} method.
|
373
366
|
*
|
374
367
|
* @param {object|number} rowRange Row index or an object with `from` and `to` properties which define row range.
|
368
|
+
* @param {boolean} [overwriteCache] If `true` the calculation will be processed regardless of whether the width exists in the cache.
|
375
369
|
*/
|
376
370
|
calculateAllColumnsWidth() {
|
377
371
|
let rowRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
378
372
|
from: 0,
|
379
373
|
to: this.hot.countRows() - 1
|
380
374
|
};
|
375
|
+
let overwriteCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
381
376
|
let current = 0;
|
382
377
|
const length = this.hot.countCols() - 1;
|
383
378
|
let timer = null;
|
@@ -392,7 +387,7 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
392
387
|
this.calculateColumnsWidth({
|
393
388
|
from: current,
|
394
389
|
to: Math.min(current + AutoColumnSize.CALCULATION_STEP, length)
|
395
|
-
}, rowRange);
|
390
|
+
}, rowRange, overwriteCache);
|
396
391
|
current = current + AutoColumnSize.CALCULATION_STEP + 1;
|
397
392
|
if (current < length) {
|
398
393
|
timer = (0, _feature.requestAnimationFrame)(loop);
|
@@ -407,12 +402,11 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
407
402
|
const syncLimit = this.getSyncCalculationLimit();
|
408
403
|
|
409
404
|
// sync
|
410
|
-
if (
|
405
|
+
if (syncLimit >= 0) {
|
411
406
|
this.calculateColumnsWidth({
|
412
407
|
from: 0,
|
413
408
|
to: syncLimit
|
414
|
-
}, rowRange);
|
415
|
-
this.firstCalculation = false;
|
409
|
+
}, rowRange, overwriteCache);
|
416
410
|
current = syncLimit + 1;
|
417
411
|
}
|
418
412
|
// async
|
@@ -422,7 +416,6 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
422
416
|
this.inProgress = false;
|
423
417
|
}
|
424
418
|
}
|
425
|
-
|
426
419
|
/**
|
427
420
|
* Sets the sampling options.
|
428
421
|
*
|
@@ -444,9 +437,11 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
444
437
|
* Recalculates all columns width (overwrite cache values).
|
445
438
|
*/
|
446
439
|
recalculateAllColumnsWidth() {
|
447
|
-
if (this.hot.view
|
448
|
-
this.
|
449
|
-
|
440
|
+
if (this.hot.view.isVisible()) {
|
441
|
+
this.calculateAllColumnsWidth({
|
442
|
+
from: 0,
|
443
|
+
to: this.hot.countRows() - 1
|
444
|
+
}, true);
|
450
445
|
}
|
451
446
|
}
|
452
447
|
|
@@ -481,8 +476,7 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
481
476
|
* @param {boolean} [keepMinimum=true] If `true` then returned value won't be smaller then 50 (default column width).
|
482
477
|
* @returns {number}
|
483
478
|
*/
|
484
|
-
getColumnWidth(column) {
|
485
|
-
let defaultWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
|
479
|
+
getColumnWidth(column, defaultWidth) {
|
486
480
|
let keepMinimum = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
487
481
|
let width = defaultWidth;
|
488
482
|
if (width === undefined) {
|
@@ -500,23 +494,8 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
500
494
|
* @returns {number} Returns visual column index, -1 if table is not rendered or if there are no columns to base the the calculations on.
|
501
495
|
*/
|
502
496
|
getFirstVisibleColumn() {
|
503
|
-
|
504
|
-
|
505
|
-
// Fist fully visible column is stored as renderable index.
|
506
|
-
const firstFullyVisibleColumn = wot.wtTable.getFirstVisibleColumn();
|
507
|
-
if (firstFullyVisibleColumn !== -1) {
|
508
|
-
return this.hot.columnIndexMapper.getVisualFromRenderableIndex(firstFullyVisibleColumn);
|
509
|
-
}
|
510
|
-
}
|
511
|
-
if (wot.wtViewport.columnsRenderCalculator) {
|
512
|
-
const firstRenderedColumn = wot.wtTable.getFirstRenderedColumn();
|
513
|
-
|
514
|
-
// There are no rendered column.
|
515
|
-
if (firstRenderedColumn !== -1) {
|
516
|
-
return this.hot.columnIndexMapper.getVisualFromRenderableIndex(firstRenderedColumn);
|
517
|
-
}
|
518
|
-
}
|
519
|
-
return -1;
|
497
|
+
var _this$hot$view$getFir;
|
498
|
+
return (_this$hot$view$getFir = this.hot.view.getFirstRenderedVisibleColumn()) !== null && _this$hot$view$getFir !== void 0 ? _this$hot$view$getFir : -1;
|
520
499
|
}
|
521
500
|
|
522
501
|
/**
|
@@ -525,38 +504,22 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
525
504
|
* @returns {number} Returns visual column index or -1 if table is not rendered.
|
526
505
|
*/
|
527
506
|
getLastVisibleColumn() {
|
528
|
-
|
529
|
-
|
530
|
-
// Last fully visible column is stored as renderable index.
|
531
|
-
const lastFullyVisibleColumn = wot.wtTable.getLastVisibleColumn();
|
532
|
-
if (lastFullyVisibleColumn !== -1) {
|
533
|
-
return this.hot.columnIndexMapper.getVisualFromRenderableIndex(lastFullyVisibleColumn);
|
534
|
-
}
|
535
|
-
}
|
536
|
-
if (wot.wtViewport.columnsRenderCalculator) {
|
537
|
-
// Last fully visible column is stored as renderable index.
|
538
|
-
const lastRenderedColumn = wot.wtTable.getLastRenderedColumn();
|
539
|
-
|
540
|
-
// There are no rendered columns.
|
541
|
-
if (lastRenderedColumn !== -1) {
|
542
|
-
return this.hot.columnIndexMapper.getVisualFromRenderableIndex(lastRenderedColumn);
|
543
|
-
}
|
544
|
-
}
|
545
|
-
return -1;
|
507
|
+
var _this$hot$view$getLas;
|
508
|
+
return (_this$hot$view$getLas = this.hot.view.getLastRenderedVisibleColumn()) !== null && _this$hot$view$getLas !== void 0 ? _this$hot$view$getLas : -1;
|
546
509
|
}
|
547
510
|
|
548
511
|
/**
|
549
512
|
* Collects all columns which titles has been changed in comparison to the previous state.
|
550
513
|
*
|
551
514
|
* @private
|
552
|
-
* @returns {Array} It returns an array of
|
515
|
+
* @returns {Array} It returns an array of visual column indexes.
|
553
516
|
*/
|
554
517
|
findColumnsWhereHeaderWasChanged() {
|
555
518
|
const columnHeaders = this.hot.getColHeader();
|
556
|
-
const changedColumns =
|
519
|
+
const changedColumns = columnHeaders.reduce((acc, columnTitle, physicalColumn) => {
|
557
520
|
const cachedColumnsLength = _classPrivateFieldGet(_cachedColumnHeaders, this).length;
|
558
521
|
if (cachedColumnsLength - 1 < physicalColumn || _classPrivateFieldGet(_cachedColumnHeaders, this)[physicalColumn] !== columnTitle) {
|
559
|
-
acc.push(physicalColumn);
|
522
|
+
acc.push(this.hot.toVisualColumn(physicalColumn));
|
560
523
|
}
|
561
524
|
if (cachedColumnsLength - 1 < physicalColumn) {
|
562
525
|
_classPrivateFieldGet(_cachedColumnHeaders, this).push(columnTitle);
|
@@ -572,13 +535,12 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
572
535
|
* Clears cache of calculated column widths. If you want to clear only selected columns pass an array with their indexes.
|
573
536
|
* Otherwise whole cache will be cleared.
|
574
537
|
*
|
575
|
-
* @param {number[]} [
|
538
|
+
* @param {number[]} [physicalColumns] List of physical column indexes to clear.
|
576
539
|
*/
|
577
|
-
clearCache() {
|
578
|
-
|
579
|
-
if (columns.length) {
|
540
|
+
clearCache(physicalColumns) {
|
541
|
+
if (Array.isArray(physicalColumns)) {
|
580
542
|
this.hot.batchExecution(() => {
|
581
|
-
|
543
|
+
physicalColumns.forEach(physicalIndex => {
|
582
544
|
this.columnWidthsMap.setValueAtIndex(physicalIndex, null);
|
583
545
|
});
|
584
546
|
}, true);
|
@@ -593,8 +555,13 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
593
555
|
* @returns {boolean}
|
594
556
|
*/
|
595
557
|
isNeedRecalculate() {
|
596
|
-
return !!
|
558
|
+
return !!this.columnWidthsMap.getValues().slice(0, this.measuredColumns).filter(item => item === null).length;
|
597
559
|
}
|
560
|
+
|
561
|
+
/**
|
562
|
+
* On before view render listener.
|
563
|
+
*/
|
564
|
+
|
598
565
|
/**
|
599
566
|
* Destroys the plugin instance.
|
600
567
|
*/
|
@@ -604,25 +571,47 @@ class AutoColumnSize extends _base.BasePlugin {
|
|
604
571
|
}
|
605
572
|
}
|
606
573
|
exports.AutoColumnSize = AutoColumnSize;
|
607
|
-
function
|
574
|
+
function _calculateSpecificColumnsWidth(visualColumns) {
|
575
|
+
const rowsRange = {
|
576
|
+
from: 0,
|
577
|
+
to: this.hot.countRows() - 1
|
578
|
+
};
|
579
|
+
visualColumns.forEach(visualColumn => {
|
580
|
+
const physicalColumn = this.hot.toPhysicalColumn(visualColumn);
|
581
|
+
if (physicalColumn === null) {
|
582
|
+
return;
|
583
|
+
}
|
584
|
+
if (!this.hot._getColWidthFromSettings(physicalColumn)) {
|
585
|
+
const samples = this.samplesGenerator.generateColumnSamples(visualColumn, rowsRange);
|
586
|
+
samples.forEach((sample, column) => this.ghostTable.addColumn(column, sample));
|
587
|
+
}
|
588
|
+
});
|
589
|
+
if (this.ghostTable.columns.length) {
|
590
|
+
this.hot.batchExecution(() => {
|
591
|
+
this.ghostTable.getWidths((visualColumn, width) => {
|
592
|
+
const physicalColumn = this.hot.toPhysicalColumn(visualColumn);
|
593
|
+
this.columnWidthsMap.setValueAtIndex(physicalColumn, width);
|
594
|
+
});
|
595
|
+
}, true);
|
596
|
+
this.ghostTable.clean();
|
597
|
+
}
|
598
|
+
}
|
599
|
+
function _onBeforeRender() {
|
608
600
|
this.calculateVisibleColumnsWidth();
|
609
|
-
if (
|
610
|
-
this.
|
601
|
+
if (!this.inProgress) {
|
602
|
+
_assertClassBrand(_AutoColumnSize_brand, this, _calculateSpecificColumnsWidth).call(this, _classPrivateFieldGet(_visualColumnsToRefresh, this));
|
603
|
+
_classPrivateFieldSet(_visualColumnsToRefresh, this, []);
|
611
604
|
}
|
612
605
|
}
|
613
606
|
/**
|
614
607
|
* On after load data listener.
|
608
|
+
*
|
609
|
+
* @param {Array} sourceData Source data.
|
610
|
+
* @param {boolean} isFirstLoad `true` if this is the first load.
|
615
611
|
*/
|
616
|
-
function _onAfterLoadData() {
|
617
|
-
if (
|
612
|
+
function _onAfterLoadData(sourceData, isFirstLoad) {
|
613
|
+
if (!isFirstLoad) {
|
618
614
|
this.recalculateAllColumnsWidth();
|
619
|
-
} else {
|
620
|
-
// first load - initialization
|
621
|
-
setTimeout(() => {
|
622
|
-
if (this.hot) {
|
623
|
-
this.recalculateAllColumnsWidth();
|
624
|
-
}
|
625
|
-
}, 0);
|
626
615
|
}
|
627
616
|
}
|
628
617
|
/**
|
@@ -631,11 +620,15 @@ function _onAfterLoadData() {
|
|
631
620
|
* @param {Array} changes An array of modified data.
|
632
621
|
*/
|
633
622
|
function _onBeforeChange(changes) {
|
634
|
-
const changedColumns = (
|
635
|
-
let [, columnProperty] =
|
636
|
-
|
637
|
-
|
638
|
-
|
623
|
+
const changedColumns = changes.reduce((acc, _ref) => {
|
624
|
+
let [, columnProperty] = _ref;
|
625
|
+
const visualColumn = this.hot.propToCol(columnProperty);
|
626
|
+
if (Number.isInteger(visualColumn) && acc.indexOf(visualColumn) === -1) {
|
627
|
+
acc.push(visualColumn);
|
628
|
+
}
|
629
|
+
return acc;
|
630
|
+
}, []);
|
631
|
+
_classPrivateFieldGet(_visualColumnsToRefresh, this).push(...changedColumns);
|
639
632
|
}
|
640
633
|
/**
|
641
634
|
* On before column resize listener.
|
@@ -656,8 +649,9 @@ function _onBeforeColumnResize(size, column, isDblClick) {
|
|
656
649
|
/**
|
657
650
|
* On after Handsontable init fill plugin with all necessary values.
|
658
651
|
*/
|
659
|
-
function
|
652
|
+
function _onInit() {
|
660
653
|
_classPrivateFieldSet(_cachedColumnHeaders, this, this.hot.getColHeader());
|
654
|
+
this.recalculateAllColumnsWidth();
|
661
655
|
}
|
662
656
|
/**
|
663
657
|
* After formulas values updated listener.
|
@@ -665,10 +659,16 @@ function _onAfterInit() {
|
|
665
659
|
* @param {Array} changes An array of modified data.
|
666
660
|
*/
|
667
661
|
function _onAfterFormulasValuesUpdate(changes) {
|
668
|
-
const
|
662
|
+
const changedColumns = changes.reduce((acc, change) => {
|
669
663
|
var _change$address;
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
664
|
+
const physicalColumn = (_change$address = change.address) === null || _change$address === void 0 ? void 0 : _change$address.col;
|
665
|
+
if (Number.isInteger(physicalColumn)) {
|
666
|
+
const visualColumn = this.hot.toVisualColumn(physicalColumn);
|
667
|
+
if (acc.indexOf(visualColumn) === -1) {
|
668
|
+
acc.push(visualColumn);
|
669
|
+
}
|
670
|
+
}
|
671
|
+
return acc;
|
672
|
+
}, []);
|
673
|
+
_classPrivateFieldGet(_visualColumnsToRefresh, this).push(...changedColumns);
|
674
674
|
}
|