handsontable 14.4.0 → 14.5.0-next-7541a88-20240725
Sign up to get free protection for your applications and to get access to all the features.
- 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) {
|