handsontable 14.4.0 → 14.5.0-next-7541a88-20240725
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.js +126 -0
- package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.mjs +122 -0
- package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.js +119 -0
- package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.mjs +115 -0
- package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.js +125 -0
- package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.mjs +121 -0
- package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.js +118 -0
- package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.mjs +114 -0
- package/3rdparty/walkontable/src/calculator/{renderAllColumns.js → calculationType/renderedAllColumns.js} +33 -10
- package/3rdparty/walkontable/src/calculator/{renderAllColumns.mjs → calculationType/renderedAllColumns.mjs} +32 -9
- package/3rdparty/walkontable/src/calculator/{renderAllRows.js → calculationType/renderedAllRows.js} +33 -10
- package/3rdparty/walkontable/src/calculator/{renderAllRows.mjs → calculationType/renderedAllRows.mjs} +32 -9
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +37 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +33 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +37 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +33 -0
- package/3rdparty/walkontable/src/calculator/index.js +18 -17
- package/3rdparty/walkontable/src/calculator/index.mjs +11 -6
- package/3rdparty/walkontable/src/calculator/viewportBase.js +92 -0
- package/3rdparty/walkontable/src/calculator/viewportBase.mjs +88 -0
- package/3rdparty/walkontable/src/calculator/viewportColumns.js +52 -146
- package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +52 -146
- package/3rdparty/walkontable/src/calculator/viewportRows.js +60 -142
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +60 -142
- 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 +3 -1
- package/3rdparty/walkontable/src/index.mjs +2 -2
- 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 +8 -14
- package/3rdparty/walkontable/src/table.mjs +7 -13
- package/3rdparty/walkontable/src/utils/column.js +3 -2
- package/3rdparty/walkontable/src/utils/column.mjs +3 -2
- package/3rdparty/walkontable/src/utils/columnStretching.js +13 -22
- package/3rdparty/walkontable/src/utils/columnStretching.mjs +13 -22
- 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/3rdparty/walkontable/src/viewport.js +35 -46
- package/3rdparty/walkontable/src/viewport.mjs +36 -47
- 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 +37 -32
- package/core.mjs +37 -32
- 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 +4084 -2863
- package/dist/handsontable.full.min.css +7 -7
- package/dist/handsontable.full.min.js +153 -153
- package/dist/handsontable.js +4074 -2801
- package/dist/handsontable.min.css +6 -6
- package/dist/handsontable.min.js +33 -33
- 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 +124 -124
- package/plugins/autoColumnSize/autoColumnSize.mjs +124 -124
- 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 +4 -4
- package/plugins/manualRowResize/manualRowResize.mjs +5 -5
- 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/3rdparty/walkontable/src/calculator/constants.js +0 -26
- package/3rdparty/walkontable/src/calculator/constants.mjs +0 -23
- package/plugins/mergeCells/utils.js +0 -28
- package/plugins/mergeCells/utils.mjs +0 -24
@@ -31,6 +31,8 @@ class Viewport {
|
|
31
31
|
this.rowHeaderWidth = NaN;
|
32
32
|
this.rowsVisibleCalculator = null;
|
33
33
|
this.columnsVisibleCalculator = null;
|
34
|
+
this.rowsCalculatorTypes = new Map([['rendered', () => this.wtSettings.getSetting('renderAllRows') ? new _calculator.RenderedAllRowsCalculationType() : new _calculator.RenderedRowsCalculationType()], ['fullyVisible', () => new _calculator.FullyVisibleRowsCalculationType()], ['partiallyVisible', () => new _calculator.PartiallyVisibleRowsCalculationType()]]);
|
35
|
+
this.columnsCalculatorTypes = new Map([['rendered', () => this.wtSettings.getSetting('renderAllColumns') ? new _calculator.RenderedAllColumnsCalculationType() : new _calculator.RenderedColumnsCalculationType()], ['fullyVisible', () => new _calculator.FullyVisibleColumnsCalculationType()], ['partiallyVisible', () => new _calculator.PartiallyVisibleColumnsCalculationType()]]);
|
34
36
|
this.eventManager = eventManager;
|
35
37
|
this.eventManager.addEventListener(this.domBindings.rootWindow, 'resize', () => {
|
36
38
|
this.clientHeight = this.getWorkspaceHeight();
|
@@ -241,25 +243,20 @@ class Viewport {
|
|
241
243
|
}
|
242
244
|
|
243
245
|
/**
|
244
|
-
* Creates:
|
245
|
-
*
|
246
|
-
*
|
246
|
+
* Creates rows calculators. The type of the calculations can be chosen from the list:
|
247
|
+
* - 'rendered' Calculates rows that should be rendered within the current table's viewport;
|
248
|
+
* - 'fullyVisible' Calculates rows that are fully visible (used mostly for scrolling purposes);
|
249
|
+
* - 'partiallyVisible' Calculates rows that are partially visible (used mostly for scrolling purposes).
|
247
250
|
*
|
248
|
-
* @param {
|
249
|
-
* calculation calculator is created.
|
251
|
+
* @param {'rendered' | 'fullyVisible' | 'partiallyVisible'} calculatorTypes The list of the calculation types.
|
250
252
|
* @returns {ViewportRowsCalculator}
|
251
253
|
*/
|
252
254
|
createRowsCalculator() {
|
253
|
-
let
|
255
|
+
let calculatorTypes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['rendered', 'fullyVisible', 'partiallyVisible'];
|
254
256
|
const {
|
255
257
|
wtSettings,
|
256
258
|
wtTable
|
257
259
|
} = this;
|
258
|
-
if (wtSettings.getSetting('renderAllRows') && calculationType === _calculator.RENDER_TYPE) {
|
259
|
-
return new _calculator.RenderAllRowsCalculator({
|
260
|
-
totalRows: wtSettings.getSetting('totalRows')
|
261
|
-
});
|
262
|
-
}
|
263
260
|
let height = this.getViewportHeight();
|
264
261
|
let scrollbarHeight;
|
265
262
|
let fixedRowsHeight;
|
@@ -283,36 +280,31 @@ class Viewport {
|
|
283
280
|
scrollbarHeight = (0, _element.getScrollbarWidth)(this.domBindings.rootDocument);
|
284
281
|
}
|
285
282
|
return new _calculator.ViewportRowsCalculator({
|
283
|
+
calculationTypes: calculatorTypes.map(type => [type, this.rowsCalculatorTypes.get(type)()]),
|
286
284
|
viewportHeight: height,
|
287
285
|
scrollOffset: pos,
|
288
286
|
totalRows: wtSettings.getSetting('totalRows'),
|
289
287
|
rowHeightFn: sourceRow => wtTable.getRowHeight(sourceRow),
|
290
288
|
overrideFn: wtSettings.getSettingPure('viewportRowCalculatorOverride'),
|
291
|
-
calculationType,
|
292
289
|
horizontalScrollbarHeight: scrollbarHeight
|
293
290
|
});
|
294
291
|
}
|
295
292
|
|
296
293
|
/**
|
297
|
-
* Creates:
|
298
|
-
*
|
299
|
-
*
|
294
|
+
* Creates columns calculators. The type of the calculations can be chosen from the list:
|
295
|
+
* - 'rendered' Calculates columns that should be rendered within the current table's viewport;
|
296
|
+
* - 'fullyVisible' Calculates columns that are fully visible (used mostly for scrolling purposes);
|
297
|
+
* - 'partiallyVisible' Calculates columns that are partially visible (used mostly for scrolling purposes).
|
300
298
|
*
|
301
|
-
* @param {
|
302
|
-
* calculation calculator is created.
|
299
|
+
* @param {'rendered' | 'fullyVisible' | 'partiallyVisible'} calculatorTypes The list of the calculation types.
|
303
300
|
* @returns {ViewportColumnsCalculator}
|
304
301
|
*/
|
305
302
|
createColumnsCalculator() {
|
306
|
-
let
|
303
|
+
let calculatorTypes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['rendered', 'fullyVisible', 'partiallyVisible'];
|
307
304
|
const {
|
308
305
|
wtSettings,
|
309
306
|
wtTable
|
310
307
|
} = this;
|
311
|
-
if (wtSettings.getSetting('renderAllColumns') && calculationType === _calculator.RENDER_TYPE) {
|
312
|
-
return new _calculator.RenderAllColumnsCalculator({
|
313
|
-
totalColumns: wtSettings.getSetting('totalColumns')
|
314
|
-
});
|
315
|
-
}
|
316
308
|
let width = this.getViewportWidth();
|
317
309
|
let pos = Math.abs(this.dataAccessObject.inlineStartScrollPosition) - this.dataAccessObject.inlineStartParentOffset;
|
318
310
|
this.columnHeaderHeight = NaN;
|
@@ -326,12 +318,12 @@ class Viewport {
|
|
326
318
|
width -= (0, _element.getScrollbarWidth)(this.domBindings.rootDocument);
|
327
319
|
}
|
328
320
|
return new _calculator.ViewportColumnsCalculator({
|
321
|
+
calculationTypes: calculatorTypes.map(type => [type, this.columnsCalculatorTypes.get(type)()]),
|
329
322
|
viewportWidth: width,
|
330
323
|
scrollOffset: pos,
|
331
324
|
totalColumns: wtSettings.getSetting('totalColumns'),
|
332
325
|
columnWidthFn: sourceCol => wtTable.getColumnWidth(sourceCol),
|
333
326
|
overrideFn: wtSettings.getSettingPure('viewportColumnCalculatorOverride'),
|
334
|
-
calculationType,
|
335
327
|
inlineStartOffset: this.dataAccessObject.inlineStartParentOffset
|
336
328
|
});
|
337
329
|
}
|
@@ -344,46 +336,43 @@ class Viewport {
|
|
344
336
|
* If `false` or `undefined`, will perform a full redraw.
|
345
337
|
* @returns {boolean} The fastDraw value, possibly modified.
|
346
338
|
*/
|
347
|
-
|
339
|
+
createCalculators() {
|
348
340
|
let fastDraw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
349
341
|
const {
|
350
342
|
wtSettings
|
351
343
|
} = this;
|
344
|
+
const rowsCalculator = this.createRowsCalculator();
|
345
|
+
const columnsCalculator = this.createColumnsCalculator();
|
352
346
|
if (fastDraw && !wtSettings.getSetting('renderAllRows')) {
|
353
|
-
const proposedRowsVisibleCalculator =
|
347
|
+
const proposedRowsVisibleCalculator = rowsCalculator.getResultsFor('fullyVisible');
|
354
348
|
fastDraw = this.areAllProposedVisibleRowsAlreadyRendered(proposedRowsVisibleCalculator);
|
355
349
|
}
|
356
350
|
if (fastDraw && !wtSettings.getSetting('renderAllColumns')) {
|
357
|
-
const proposedColumnsVisibleCalculator =
|
351
|
+
const proposedColumnsVisibleCalculator = columnsCalculator.getResultsFor('fullyVisible');
|
358
352
|
fastDraw = this.areAllProposedVisibleColumnsAlreadyRendered(proposedColumnsVisibleCalculator);
|
359
353
|
}
|
360
354
|
if (!fastDraw) {
|
361
|
-
this.rowsRenderCalculator =
|
362
|
-
this.columnsRenderCalculator =
|
355
|
+
this.rowsRenderCalculator = rowsCalculator.getResultsFor('rendered');
|
356
|
+
this.columnsRenderCalculator = columnsCalculator.getResultsFor('rendered');
|
363
357
|
}
|
364
|
-
|
365
|
-
|
366
|
-
this.
|
367
|
-
this.
|
358
|
+
this.rowsVisibleCalculator = rowsCalculator.getResultsFor('fullyVisible');
|
359
|
+
this.columnsVisibleCalculator = columnsCalculator.getResultsFor('fullyVisible');
|
360
|
+
this.rowsPartiallyVisibleCalculator = rowsCalculator.getResultsFor('partiallyVisible');
|
361
|
+
this.columnsPartiallyVisibleCalculator = columnsCalculator.getResultsFor('partiallyVisible');
|
368
362
|
return fastDraw;
|
369
363
|
}
|
370
364
|
|
371
365
|
/**
|
372
|
-
* Creates
|
373
|
-
* the actually fully visible rows and columns).
|
366
|
+
* Creates rows and columns calculators (after draw, to determine what are
|
367
|
+
* the actually fully visible and partially visible rows and columns).
|
374
368
|
*/
|
375
369
|
createVisibleCalculators() {
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
* the actually partially visible rows and columns).
|
383
|
-
*/
|
384
|
-
createPartiallyVisibleCalculators() {
|
385
|
-
this.rowsPartiallyVisibleCalculator = this.createRowsCalculator(_calculator.PARTIALLY_VISIBLE_TYPE);
|
386
|
-
this.columnsPartiallyVisibleCalculator = this.createColumnsCalculator(_calculator.PARTIALLY_VISIBLE_TYPE);
|
370
|
+
const rowsCalculator = this.createRowsCalculator(['fullyVisible', 'partiallyVisible']);
|
371
|
+
const columnsCalculator = this.createColumnsCalculator(['fullyVisible', 'partiallyVisible']);
|
372
|
+
this.rowsVisibleCalculator = rowsCalculator.getResultsFor('fullyVisible');
|
373
|
+
this.columnsVisibleCalculator = columnsCalculator.getResultsFor('fullyVisible');
|
374
|
+
this.rowsPartiallyVisibleCalculator = rowsCalculator.getResultsFor('partiallyVisible');
|
375
|
+
this.columnsPartiallyVisibleCalculator = columnsCalculator.getResultsFor('partiallyVisible');
|
387
376
|
}
|
388
377
|
|
389
378
|
/**
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { getScrollbarWidth, getStyle, offset, outerHeight, outerWidth } from "../../../helpers/dom/element.mjs";
|
2
2
|
import { objectEach } from "../../../helpers/object.mjs";
|
3
|
-
import {
|
3
|
+
import { FullyVisibleColumnsCalculationType, FullyVisibleRowsCalculationType, PartiallyVisibleColumnsCalculationType, PartiallyVisibleRowsCalculationType, RenderedAllColumnsCalculationType, RenderedAllRowsCalculationType, RenderedColumnsCalculationType, RenderedRowsCalculationType, ViewportColumnsCalculator, ViewportRowsCalculator } from "./calculator/index.mjs";
|
4
4
|
/**
|
5
5
|
* @class Viewport
|
6
6
|
*/
|
@@ -28,6 +28,8 @@ class Viewport {
|
|
28
28
|
this.rowHeaderWidth = NaN;
|
29
29
|
this.rowsVisibleCalculator = null;
|
30
30
|
this.columnsVisibleCalculator = null;
|
31
|
+
this.rowsCalculatorTypes = new Map([['rendered', () => this.wtSettings.getSetting('renderAllRows') ? new RenderedAllRowsCalculationType() : new RenderedRowsCalculationType()], ['fullyVisible', () => new FullyVisibleRowsCalculationType()], ['partiallyVisible', () => new PartiallyVisibleRowsCalculationType()]]);
|
32
|
+
this.columnsCalculatorTypes = new Map([['rendered', () => this.wtSettings.getSetting('renderAllColumns') ? new RenderedAllColumnsCalculationType() : new RenderedColumnsCalculationType()], ['fullyVisible', () => new FullyVisibleColumnsCalculationType()], ['partiallyVisible', () => new PartiallyVisibleColumnsCalculationType()]]);
|
31
33
|
this.eventManager = eventManager;
|
32
34
|
this.eventManager.addEventListener(this.domBindings.rootWindow, 'resize', () => {
|
33
35
|
this.clientHeight = this.getWorkspaceHeight();
|
@@ -238,25 +240,20 @@ class Viewport {
|
|
238
240
|
}
|
239
241
|
|
240
242
|
/**
|
241
|
-
* Creates:
|
242
|
-
*
|
243
|
-
*
|
243
|
+
* Creates rows calculators. The type of the calculations can be chosen from the list:
|
244
|
+
* - 'rendered' Calculates rows that should be rendered within the current table's viewport;
|
245
|
+
* - 'fullyVisible' Calculates rows that are fully visible (used mostly for scrolling purposes);
|
246
|
+
* - 'partiallyVisible' Calculates rows that are partially visible (used mostly for scrolling purposes).
|
244
247
|
*
|
245
|
-
* @param {
|
246
|
-
* calculation calculator is created.
|
248
|
+
* @param {'rendered' | 'fullyVisible' | 'partiallyVisible'} calculatorTypes The list of the calculation types.
|
247
249
|
* @returns {ViewportRowsCalculator}
|
248
250
|
*/
|
249
251
|
createRowsCalculator() {
|
250
|
-
let
|
252
|
+
let calculatorTypes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['rendered', 'fullyVisible', 'partiallyVisible'];
|
251
253
|
const {
|
252
254
|
wtSettings,
|
253
255
|
wtTable
|
254
256
|
} = this;
|
255
|
-
if (wtSettings.getSetting('renderAllRows') && calculationType === RENDER_TYPE) {
|
256
|
-
return new RenderAllRowsCalculator({
|
257
|
-
totalRows: wtSettings.getSetting('totalRows')
|
258
|
-
});
|
259
|
-
}
|
260
257
|
let height = this.getViewportHeight();
|
261
258
|
let scrollbarHeight;
|
262
259
|
let fixedRowsHeight;
|
@@ -280,36 +277,31 @@ class Viewport {
|
|
280
277
|
scrollbarHeight = getScrollbarWidth(this.domBindings.rootDocument);
|
281
278
|
}
|
282
279
|
return new ViewportRowsCalculator({
|
280
|
+
calculationTypes: calculatorTypes.map(type => [type, this.rowsCalculatorTypes.get(type)()]),
|
283
281
|
viewportHeight: height,
|
284
282
|
scrollOffset: pos,
|
285
283
|
totalRows: wtSettings.getSetting('totalRows'),
|
286
284
|
rowHeightFn: sourceRow => wtTable.getRowHeight(sourceRow),
|
287
285
|
overrideFn: wtSettings.getSettingPure('viewportRowCalculatorOverride'),
|
288
|
-
calculationType,
|
289
286
|
horizontalScrollbarHeight: scrollbarHeight
|
290
287
|
});
|
291
288
|
}
|
292
289
|
|
293
290
|
/**
|
294
|
-
* Creates:
|
295
|
-
*
|
296
|
-
*
|
291
|
+
* Creates columns calculators. The type of the calculations can be chosen from the list:
|
292
|
+
* - 'rendered' Calculates columns that should be rendered within the current table's viewport;
|
293
|
+
* - 'fullyVisible' Calculates columns that are fully visible (used mostly for scrolling purposes);
|
294
|
+
* - 'partiallyVisible' Calculates columns that are partially visible (used mostly for scrolling purposes).
|
297
295
|
*
|
298
|
-
* @param {
|
299
|
-
* calculation calculator is created.
|
296
|
+
* @param {'rendered' | 'fullyVisible' | 'partiallyVisible'} calculatorTypes The list of the calculation types.
|
300
297
|
* @returns {ViewportColumnsCalculator}
|
301
298
|
*/
|
302
299
|
createColumnsCalculator() {
|
303
|
-
let
|
300
|
+
let calculatorTypes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['rendered', 'fullyVisible', 'partiallyVisible'];
|
304
301
|
const {
|
305
302
|
wtSettings,
|
306
303
|
wtTable
|
307
304
|
} = this;
|
308
|
-
if (wtSettings.getSetting('renderAllColumns') && calculationType === RENDER_TYPE) {
|
309
|
-
return new RenderAllColumnsCalculator({
|
310
|
-
totalColumns: wtSettings.getSetting('totalColumns')
|
311
|
-
});
|
312
|
-
}
|
313
305
|
let width = this.getViewportWidth();
|
314
306
|
let pos = Math.abs(this.dataAccessObject.inlineStartScrollPosition) - this.dataAccessObject.inlineStartParentOffset;
|
315
307
|
this.columnHeaderHeight = NaN;
|
@@ -323,12 +315,12 @@ class Viewport {
|
|
323
315
|
width -= getScrollbarWidth(this.domBindings.rootDocument);
|
324
316
|
}
|
325
317
|
return new ViewportColumnsCalculator({
|
318
|
+
calculationTypes: calculatorTypes.map(type => [type, this.columnsCalculatorTypes.get(type)()]),
|
326
319
|
viewportWidth: width,
|
327
320
|
scrollOffset: pos,
|
328
321
|
totalColumns: wtSettings.getSetting('totalColumns'),
|
329
322
|
columnWidthFn: sourceCol => wtTable.getColumnWidth(sourceCol),
|
330
323
|
overrideFn: wtSettings.getSettingPure('viewportColumnCalculatorOverride'),
|
331
|
-
calculationType,
|
332
324
|
inlineStartOffset: this.dataAccessObject.inlineStartParentOffset
|
333
325
|
});
|
334
326
|
}
|
@@ -341,46 +333,43 @@ class Viewport {
|
|
341
333
|
* If `false` or `undefined`, will perform a full redraw.
|
342
334
|
* @returns {boolean} The fastDraw value, possibly modified.
|
343
335
|
*/
|
344
|
-
|
336
|
+
createCalculators() {
|
345
337
|
let fastDraw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
346
338
|
const {
|
347
339
|
wtSettings
|
348
340
|
} = this;
|
341
|
+
const rowsCalculator = this.createRowsCalculator();
|
342
|
+
const columnsCalculator = this.createColumnsCalculator();
|
349
343
|
if (fastDraw && !wtSettings.getSetting('renderAllRows')) {
|
350
|
-
const proposedRowsVisibleCalculator =
|
344
|
+
const proposedRowsVisibleCalculator = rowsCalculator.getResultsFor('fullyVisible');
|
351
345
|
fastDraw = this.areAllProposedVisibleRowsAlreadyRendered(proposedRowsVisibleCalculator);
|
352
346
|
}
|
353
347
|
if (fastDraw && !wtSettings.getSetting('renderAllColumns')) {
|
354
|
-
const proposedColumnsVisibleCalculator =
|
348
|
+
const proposedColumnsVisibleCalculator = columnsCalculator.getResultsFor('fullyVisible');
|
355
349
|
fastDraw = this.areAllProposedVisibleColumnsAlreadyRendered(proposedColumnsVisibleCalculator);
|
356
350
|
}
|
357
351
|
if (!fastDraw) {
|
358
|
-
this.rowsRenderCalculator =
|
359
|
-
this.columnsRenderCalculator =
|
352
|
+
this.rowsRenderCalculator = rowsCalculator.getResultsFor('rendered');
|
353
|
+
this.columnsRenderCalculator = columnsCalculator.getResultsFor('rendered');
|
360
354
|
}
|
361
|
-
|
362
|
-
|
363
|
-
this.
|
364
|
-
this.
|
355
|
+
this.rowsVisibleCalculator = rowsCalculator.getResultsFor('fullyVisible');
|
356
|
+
this.columnsVisibleCalculator = columnsCalculator.getResultsFor('fullyVisible');
|
357
|
+
this.rowsPartiallyVisibleCalculator = rowsCalculator.getResultsFor('partiallyVisible');
|
358
|
+
this.columnsPartiallyVisibleCalculator = columnsCalculator.getResultsFor('partiallyVisible');
|
365
359
|
return fastDraw;
|
366
360
|
}
|
367
361
|
|
368
362
|
/**
|
369
|
-
* Creates
|
370
|
-
* the actually fully visible rows and columns).
|
363
|
+
* Creates rows and columns calculators (after draw, to determine what are
|
364
|
+
* the actually fully visible and partially visible rows and columns).
|
371
365
|
*/
|
372
366
|
createVisibleCalculators() {
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
* the actually partially visible rows and columns).
|
380
|
-
*/
|
381
|
-
createPartiallyVisibleCalculators() {
|
382
|
-
this.rowsPartiallyVisibleCalculator = this.createRowsCalculator(PARTIALLY_VISIBLE_TYPE);
|
383
|
-
this.columnsPartiallyVisibleCalculator = this.createColumnsCalculator(PARTIALLY_VISIBLE_TYPE);
|
367
|
+
const rowsCalculator = this.createRowsCalculator(['fullyVisible', 'partiallyVisible']);
|
368
|
+
const columnsCalculator = this.createColumnsCalculator(['fullyVisible', 'partiallyVisible']);
|
369
|
+
this.rowsVisibleCalculator = rowsCalculator.getResultsFor('fullyVisible');
|
370
|
+
this.columnsVisibleCalculator = columnsCalculator.getResultsFor('fullyVisible');
|
371
|
+
this.rowsPartiallyVisibleCalculator = rowsCalculator.getResultsFor('partiallyVisible');
|
372
|
+
this.columnsPartiallyVisibleCalculator = columnsCalculator.getResultsFor('partiallyVisible');
|
384
373
|
}
|
385
374
|
|
386
375
|
/**
|
package/CHANGELOG.md
CHANGED
@@ -9,6 +9,32 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
9
9
|
|
10
10
|
<!-- UNVERSIONED -->
|
11
11
|
|
12
|
+
## [14.5.0] - 2024-07-24
|
13
|
+
|
14
|
+
### Added
|
15
|
+
- Added support for other keyboard layouts than QWERTY (e.g. AZERTY etc.). [#11027](https://github.com/handsontable/handsontable/pull/11027)
|
16
|
+
- Added missing "this" typing for ColumnSummary plugin. [#11036](https://github.com/handsontable/handsontable/pull/11036)
|
17
|
+
- Implemented the Undo/Redo logic for the ColumnSorting/ManualColumnSorting plugins and made some adjustments for it to work properly. [#11037](https://github.com/handsontable/handsontable/pull/11037)
|
18
|
+
- Implement the `headerClassName` option, which allows adding custom css classes to the column headers. [#11076](https://github.com/handsontable/handsontable/pull/11076)
|
19
|
+
|
20
|
+
### Changed
|
21
|
+
- Improved the precision of calculating the height and width of columns and rows. [#11049](https://github.com/handsontable/handsontable/pull/11049)
|
22
|
+
|
23
|
+
### Fixed
|
24
|
+
- fix Context.getShortcuts type [#10910](https://github.com/handsontable/handsontable/pull/10910)
|
25
|
+
- Improved performance of the cells merging. [#10995](https://github.com/handsontable/handsontable/pull/10995)
|
26
|
+
- Fixed a problem where clicking and dragging on cells on a window-controlled scrolled instances would end up in unpredictable results. [#10996](https://github.com/handsontable/handsontable/pull/10996)
|
27
|
+
- Fixed a bug that prevented column sorting of the checkbox cell types. [#11004](https://github.com/handsontable/handsontable/pull/11004)
|
28
|
+
- Fixed merged cells misalignment in overlays [#11007](https://github.com/handsontable/handsontable/pull/11007)
|
29
|
+
- Fixed selection expanding for merged cells. [#11010](https://github.com/handsontable/handsontable/pull/11010)
|
30
|
+
- Fixed a problem where the table could go into an endless resize loop when one of the instance's parents were using `dvh` values for sizing and the table was not given any size itself. [#11021](https://github.com/handsontable/handsontable/pull/11021)
|
31
|
+
- Fixed a bug where the `afterSetCellMeta` was unnecessarily triggered after clicking on the comments textarea element. [#11033](https://github.com/handsontable/handsontable/pull/11033)
|
32
|
+
- Fixed invalid cells states after data population that was canceled in the `beforeChange` hook. [#11035](https://github.com/handsontable/handsontable/pull/11035)
|
33
|
+
- Fixed a problem with the Formulas plugin using wrong indexes when performing autofill. [#11038](https://github.com/handsontable/handsontable/pull/11038)
|
34
|
+
- Fixed a problem, where disabling `navigableHeaders` broke keyboard navigation in the first row, if the option was previously enabled and used. [#11043](https://github.com/handsontable/handsontable/pull/11043)
|
35
|
+
- Fixed a problem where the Dropdown Menu would not close after tapping on the table cells on mobile browsers. [#11044](https://github.com/handsontable/handsontable/pull/11044)
|
36
|
+
- Fixed the header selection with `nestedHeaders` enabled not working on mobile devices. [#11051](https://github.com/handsontable/handsontable/pull/11051)
|
37
|
+
|
12
38
|
## [14.4.0] - 2024-06-11
|
13
39
|
|
14
40
|
### Added
|
@@ -48,7 +74,7 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
48
74
|
|
49
75
|
For more information on Handsontable 14.4.0, see:
|
50
76
|
|
51
|
-
- [Blog post (14.4.0)](https://handsontable.com/blog/handsontable-14.4.0-
|
77
|
+
- [Blog post (14.4.0)](https://handsontable.com/blog/handsontable-14.4.0-improved-stability)
|
52
78
|
- [Documentation (14.4)](https://handsontable.com/docs/14.4)
|
53
79
|
- [Release notes (14.4.0)](https://handsontable.com/docs/release-notes/#_14-4-0)
|
54
80
|
|
package/base.js
CHANGED
@@ -12,7 +12,7 @@ var _baseEditor = require("./editors/baseEditor");
|
|
12
12
|
var _src = require("./3rdparty/walkontable/src");
|
13
13
|
exports.CellCoords = _src.CellCoords;
|
14
14
|
exports.CellRange = _src.CellRange;
|
15
|
-
function _interopRequireDefault(
|
15
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
16
16
|
// FIXME: Bug in eslint-plugin-import: https://github.com/benmosher/eslint-plugin-import/issues/1883
|
17
17
|
/* eslint-disable import/named */
|
18
18
|
|
@@ -45,8 +45,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
|
|
45
45
|
Handsontable.CellCoords = _src.CellCoords;
|
46
46
|
Handsontable.CellRange = _src.CellRange;
|
47
47
|
Handsontable.packageName = 'handsontable';
|
48
|
-
Handsontable.buildDate = "
|
49
|
-
Handsontable.version = "14.
|
48
|
+
Handsontable.buildDate = "25/07/2024 07:59:38";
|
49
|
+
Handsontable.version = "14.5.0-next-7541a88-20240725";
|
50
50
|
Handsontable.languages = {
|
51
51
|
dictionaryKeys: _registry.dictionaryKeys,
|
52
52
|
getLanguageDictionary: _registry.getLanguageDictionary,
|
package/base.mjs
CHANGED
@@ -35,8 +35,8 @@ Handsontable.hooks = Hooks.getSingleton();
|
|
35
35
|
Handsontable.CellCoords = CellCoords;
|
36
36
|
Handsontable.CellRange = CellRange;
|
37
37
|
Handsontable.packageName = 'handsontable';
|
38
|
-
Handsontable.buildDate = "
|
39
|
-
Handsontable.version = "14.
|
38
|
+
Handsontable.buildDate = "25/07/2024 07:59:43";
|
39
|
+
Handsontable.version = "14.5.0-next-7541a88-20240725";
|
40
40
|
Handsontable.languages = {
|
41
41
|
dictionaryKeys,
|
42
42
|
getLanguageDictionary,
|
package/cellTypes/registry.js
CHANGED
@@ -8,7 +8,7 @@ var _staticRegister = _interopRequireDefault(require("../utils/staticRegister"))
|
|
8
8
|
var _registry = require("../editors/registry");
|
9
9
|
var _registry2 = require("../renderers/registry");
|
10
10
|
var _registry3 = require("../validators/registry");
|
11
|
-
function _interopRequireDefault(
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
12
12
|
const {
|
13
13
|
register,
|
14
14
|
getItem,
|
package/common.d.ts
CHANGED
@@ -72,3 +72,6 @@ export interface ColumnDataGetterSetterFunction {
|
|
72
72
|
(row: RowObject | CellValue[]): CellValue;
|
73
73
|
(row: RowObject | CellValue[], value: CellValue): void;
|
74
74
|
}
|
75
|
+
|
76
|
+
export type OverlayType = 'inline_start' | 'top' | 'top_inline_start_corner' | 'bottom' |
|
77
|
+
'bottom_inline_start_corner' | 'master';
|
package/core.d.ts
CHANGED
@@ -9,6 +9,7 @@ import {
|
|
9
9
|
GridSettings,
|
10
10
|
CellMeta,
|
11
11
|
CellProperties,
|
12
|
+
ColumnSettings,
|
12
13
|
} from './settings';
|
13
14
|
import CellCoords from './3rdparty/walkontable/src/cell/coords';
|
14
15
|
import CellRange from './3rdparty/walkontable/src/cell/range';
|
@@ -67,6 +68,7 @@ export default class Core {
|
|
67
68
|
getCellValidator(row: number, column: number): BaseValidator | RegExp | undefined;
|
68
69
|
getColHeader(): Array<number | string>;
|
69
70
|
getColHeader(column: number, headerLevel?: number): number | string;
|
71
|
+
getColumnMeta(column: number): ColumnSettings;
|
70
72
|
getColWidth(column: number): number;
|
71
73
|
getCoords(element: Element | null): CellCoords;
|
72
74
|
getCopyableData(row: number, column: number): string;
|
package/core.js
CHANGED
@@ -43,7 +43,7 @@ var _index3 = require("./core/index");
|
|
43
43
|
var _uniqueMap = require("./utils/dataStructures/uniqueMap");
|
44
44
|
var _shortcuts = require("./shortcuts");
|
45
45
|
var _shortcutContexts = require("./shortcutContexts");
|
46
|
-
function _interopRequireDefault(
|
46
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
47
47
|
let activeGuid = null;
|
48
48
|
|
49
49
|
/**
|
@@ -1109,16 +1109,17 @@ function Core(rootElement, userSettings) {
|
|
1109
1109
|
*/
|
1110
1110
|
function validateChanges(changes, source, callback) {
|
1111
1111
|
if (!changes.length) {
|
1112
|
+
callback();
|
1112
1113
|
return;
|
1113
1114
|
}
|
1114
1115
|
const activeEditor = instance.getActiveEditor();
|
1115
1116
|
const waitingForValidator = new ValidatorsQueue();
|
1116
1117
|
let shouldBeCanceled = true;
|
1117
|
-
waitingForValidator.onQueueEmpty =
|
1118
|
+
waitingForValidator.onQueueEmpty = () => {
|
1118
1119
|
if (activeEditor && shouldBeCanceled) {
|
1119
1120
|
activeEditor.cancelChanges();
|
1120
1121
|
}
|
1121
|
-
callback(
|
1122
|
+
callback(); // called when async validators are resolved and beforeChange was not async
|
1122
1123
|
};
|
1123
1124
|
for (let i = changes.length - 1; i >= 0; i--) {
|
1124
1125
|
const [row, prop,, newValue] = changes[i];
|
@@ -1150,11 +1151,6 @@ function Core(rootElement, userSettings) {
|
|
1150
1151
|
shouldBeCanceled = false;
|
1151
1152
|
changes.splice(index, 1); // cancel the change
|
1152
1153
|
cellPropertiesReference.valid = true; // we cancelled the change, so cell value is still valid
|
1153
|
-
|
1154
|
-
const cell = instance.getCell(cellPropertiesReference.visualRow, cellPropertiesReference.visualCol);
|
1155
|
-
if (cell !== null) {
|
1156
|
-
(0, _element.removeClass)(cell, tableMeta.invalidCellClassName);
|
1157
|
-
}
|
1158
1154
|
}
|
1159
1155
|
waitingForValidator.removeValidatorFormQueue();
|
1160
1156
|
};
|
@@ -1174,11 +1170,7 @@ function Core(rootElement, userSettings) {
|
|
1174
1170
|
* @fires Hooks#afterChange
|
1175
1171
|
*/
|
1176
1172
|
function applyChanges(changes, source) {
|
1177
|
-
let i = changes.length - 1;
|
1178
|
-
if (i < 0) {
|
1179
|
-
return;
|
1180
|
-
}
|
1181
|
-
for (; i >= 0; i--) {
|
1173
|
+
for (let i = changes.length - 1; i >= 0; i--) {
|
1182
1174
|
let skipThisChange = false;
|
1183
1175
|
if (changes[i] === null) {
|
1184
1176
|
changes.splice(i, 1);
|
@@ -1221,17 +1213,23 @@ function Core(rootElement, userSettings) {
|
|
1221
1213
|
}
|
1222
1214
|
datamap.set(changes[i][0], changes[i][1], changes[i][3]);
|
1223
1215
|
}
|
1224
|
-
|
1225
|
-
|
1226
|
-
|
1227
|
-
|
1228
|
-
|
1229
|
-
|
1230
|
-
|
1231
|
-
|
1232
|
-
|
1233
|
-
|
1234
|
-
|
1216
|
+
const hasChanges = changes.length > 0;
|
1217
|
+
instance.forceFullRender = true; // used when data was changed or when all cells need to be re-rendered
|
1218
|
+
|
1219
|
+
if (hasChanges) {
|
1220
|
+
grid.adjustRowsAndCols();
|
1221
|
+
instance.runHooks('beforeChangeRender', changes, source);
|
1222
|
+
editorManager.closeEditor();
|
1223
|
+
instance.view.render();
|
1224
|
+
editorManager.prepareEditor();
|
1225
|
+
instance.view.adjustElementsSize();
|
1226
|
+
instance.runHooks('afterChange', changes, source || 'edit');
|
1227
|
+
const activeEditor = instance.getActiveEditor();
|
1228
|
+
if (activeEditor && (0, _mixed.isDefined)(activeEditor.refreshValue)) {
|
1229
|
+
activeEditor.refreshValue();
|
1230
|
+
}
|
1231
|
+
} else {
|
1232
|
+
instance.view.render();
|
1235
1233
|
}
|
1236
1234
|
}
|
1237
1235
|
|
@@ -1791,7 +1789,7 @@ function Core(rootElement, userSettings) {
|
|
1791
1789
|
this.render = function () {
|
1792
1790
|
if (this.view) {
|
1793
1791
|
this.renderCall = true;
|
1794
|
-
this.forceFullRender = true; // used when data was changed
|
1792
|
+
this.forceFullRender = true; // used when data was changed or when all cells need to be re-rendered
|
1795
1793
|
|
1796
1794
|
if (!this.isRenderSuspended()) {
|
1797
1795
|
instance.view.render();
|
@@ -3067,6 +3065,19 @@ function Core(rootElement, userSettings) {
|
|
3067
3065
|
});
|
3068
3066
|
};
|
3069
3067
|
|
3068
|
+
/**
|
3069
|
+
* Returns the meta information for the provided column.
|
3070
|
+
*
|
3071
|
+
* @since 14.5.0
|
3072
|
+
* @memberof Core#
|
3073
|
+
* @function getColumnMeta
|
3074
|
+
* @param {number} column Visual column index.
|
3075
|
+
* @returns {object}
|
3076
|
+
*/
|
3077
|
+
this.getColumnMeta = function (column) {
|
3078
|
+
return metaManager.getColumnMeta(this.toPhysicalColumn(column));
|
3079
|
+
};
|
3080
|
+
|
3070
3081
|
/**
|
3071
3082
|
* Returns an array of cell meta objects for specified physical row index.
|
3072
3083
|
*
|
@@ -3490,7 +3501,7 @@ function Core(rootElement, userSettings) {
|
|
3490
3501
|
let width = instance._getColWidthFromSettings(column);
|
3491
3502
|
width = instance.runHooks('modifyColWidth', width, column);
|
3492
3503
|
if (width === undefined) {
|
3493
|
-
width = _src.
|
3504
|
+
width = _src.DEFAULT_COLUMN_WIDTH;
|
3494
3505
|
}
|
3495
3506
|
return width;
|
3496
3507
|
};
|
@@ -3505,12 +3516,6 @@ function Core(rootElement, userSettings) {
|
|
3505
3516
|
* @returns {number}
|
3506
3517
|
*/
|
3507
3518
|
this._getRowHeightFromSettings = function (row) {
|
3508
|
-
// let cellProperties = instance.getCellMeta(row, 0);
|
3509
|
-
// let height = cellProperties.height;
|
3510
|
-
//
|
3511
|
-
// if (height === undefined || height === tableMeta.height) {
|
3512
|
-
// height = cellProperties.rowHeights;
|
3513
|
-
// }
|
3514
3519
|
let height = tableMeta.rowHeights;
|
3515
3520
|
if (height !== undefined && height !== null) {
|
3516
3521
|
switch (typeof height) {
|