handsontable 18.0.0 → 18.1.0-rc7
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/axisSizing/axisSizeSource.d.mts +1 -0
- package/3rdparty/walkontable/src/axisSizing/axisSizeSource.d.ts +55 -0
- package/3rdparty/walkontable/src/axisSizing/axisSizeSource.js +15 -0
- package/3rdparty/walkontable/src/axisSizing/axisSizeSource.mjs +14 -0
- package/3rdparty/walkontable/src/axisSizing/boxModel.d.mts +1 -0
- package/3rdparty/walkontable/src/axisSizing/boxModel.d.ts +32 -0
- package/3rdparty/walkontable/src/axisSizing/boxModel.js +45 -0
- package/3rdparty/walkontable/src/axisSizing/boxModel.mjs +33 -0
- package/3rdparty/walkontable/src/axisSizing/columnUtils.d.mts +2 -0
- package/3rdparty/walkontable/src/{utils/column.d.ts → axisSizing/columnUtils.d.ts} +12 -10
- package/3rdparty/walkontable/src/axisSizing/columnUtils.js +147 -0
- package/3rdparty/walkontable/src/axisSizing/columnUtils.mjs +142 -0
- package/3rdparty/walkontable/src/axisSizing/defaultSizeSource.d.mts +1 -0
- package/3rdparty/walkontable/src/axisSizing/defaultSizeSource.d.ts +58 -0
- package/3rdparty/walkontable/src/axisSizing/defaultSizeSource.js +129 -0
- package/3rdparty/walkontable/src/axisSizing/defaultSizeSource.mjs +119 -0
- package/3rdparty/walkontable/src/axisSizing/oversizedRows.d.mts +1 -0
- package/3rdparty/walkontable/src/axisSizing/oversizedRows.d.ts +162 -0
- package/3rdparty/walkontable/src/axisSizing/oversizedRows.js +424 -0
- package/3rdparty/walkontable/src/axisSizing/oversizedRows.mjs +522 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/index.d.ts +130 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/index.js +256 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/index.mjs +262 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/prefixSumStrategy.d.mts +1 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/prefixSumStrategy.d.ts +51 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/prefixSumStrategy.js +121 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/prefixSumStrategy.mjs +117 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/sparseStrategy.d.mts +1 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/sparseStrategy.d.ts +53 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/sparseStrategy.js +206 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/sparseStrategy.mjs +203 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/strategy.d.mts +1 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/strategy.d.ts +53 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/strategy.js +40 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/strategy.mjs +41 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/uniformStrategy.d.mts +1 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/uniformStrategy.d.ts +47 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/uniformStrategy.js +121 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/uniformStrategy.mjs +115 -0
- package/3rdparty/walkontable/src/axisSizing/rowUtils.d.mts +2 -0
- package/3rdparty/walkontable/src/{utils/row.d.ts → axisSizing/rowUtils.d.ts} +11 -9
- package/3rdparty/walkontable/src/axisSizing/rowUtils.js +111 -0
- package/3rdparty/walkontable/src/axisSizing/rowUtils.mjs +106 -0
- package/3rdparty/walkontable/src/axisSizing/sizeGetters.d.mts +2 -0
- package/3rdparty/walkontable/src/axisSizing/sizeGetters.d.ts +84 -0
- package/3rdparty/walkontable/src/axisSizing/sizeGetters.js +102 -0
- package/3rdparty/walkontable/src/axisSizing/sizeGetters.mjs +92 -0
- package/3rdparty/walkontable/src/calculator/axisCalculation.d.ts +1 -1
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.d.ts +10 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +10 -1
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +10 -1
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.d.ts +9 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +9 -1
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +9 -1
- package/3rdparty/walkontable/src/calculator/viewportColumns.d.ts +1 -1
- package/3rdparty/walkontable/src/calculator/viewportRows.d.ts +1 -1
- package/3rdparty/walkontable/src/cell/range.d.ts +10 -0
- package/3rdparty/walkontable/src/cell/range.js +14 -3
- package/3rdparty/walkontable/src/cell/range.mjs +11 -0
- package/3rdparty/walkontable/src/core/_base.d.ts +21 -21
- package/3rdparty/walkontable/src/core/_base.js +58 -147
- package/3rdparty/walkontable/src/core/_base.mjs +17 -147
- package/3rdparty/walkontable/src/core/clone.d.ts +4 -14
- package/3rdparty/walkontable/src/core/clone.js +51 -5
- package/3rdparty/walkontable/src/core/clone.mjs +10 -5
- package/3rdparty/walkontable/src/core/core.d.ts +1 -5
- package/3rdparty/walkontable/src/core/core.js +52 -47
- package/3rdparty/walkontable/src/core/core.mjs +12 -48
- package/3rdparty/walkontable/src/domMeasure/geometryReader.d.mts +1 -0
- package/3rdparty/walkontable/src/domMeasure/geometryReader.d.ts +172 -0
- package/3rdparty/walkontable/src/domMeasure/geometryReader.js +19 -0
- package/3rdparty/walkontable/src/domMeasure/geometryReader.mjs +16 -0
- package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.d.mts +1 -0
- package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.d.ts +134 -0
- package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.js +200 -0
- package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.mjs +198 -0
- package/3rdparty/walkontable/src/event.d.ts +25 -12
- package/3rdparty/walkontable/src/event.js +91 -224
- package/3rdparty/walkontable/src/event.mjs +90 -224
- package/3rdparty/walkontable/src/facade/core.d.ts +6 -6
- package/3rdparty/walkontable/src/index.d.ts +1 -1
- package/3rdparty/walkontable/src/index.js +2 -2
- package/3rdparty/walkontable/src/index.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/index.d.ts +6 -6
- package/3rdparty/walkontable/src/overlay/index.js +11 -11
- package/3rdparty/walkontable/src/overlay/index.mjs +6 -6
- package/3rdparty/walkontable/src/overlay/overlays.d.ts +375 -0
- package/3rdparty/walkontable/src/overlay/overlays.js +612 -0
- package/3rdparty/walkontable/src/overlay/overlays.mjs +601 -0
- package/3rdparty/walkontable/src/overlay/{_base.d.ts → regions/_base.d.ts} +65 -16
- package/3rdparty/walkontable/src/overlay/{_base.js → regions/_base.js} +160 -50
- package/3rdparty/walkontable/src/overlay/{_base.mjs → regions/_base.mjs} +163 -47
- package/3rdparty/walkontable/src/overlay/regions/bottomInlineStartCornerOverlay.d.mts +1 -0
- package/3rdparty/walkontable/src/overlay/{bottomInlineStartCorner.d.ts → regions/bottomInlineStartCornerOverlay.d.ts} +5 -10
- package/3rdparty/walkontable/src/overlay/{bottomInlineStartCorner.js → regions/bottomInlineStartCornerOverlay.js} +18 -20
- package/3rdparty/walkontable/src/overlay/{bottomInlineStartCorner.mjs → regions/bottomInlineStartCornerOverlay.mjs} +18 -20
- package/3rdparty/walkontable/src/overlay/regions/bottomOverlay.d.mts +1 -0
- package/3rdparty/walkontable/src/overlay/{bottom.d.ts → regions/bottomOverlay.d.ts} +16 -11
- package/3rdparty/walkontable/src/overlay/{bottom.js → regions/bottomOverlay.js} +113 -66
- package/3rdparty/walkontable/src/overlay/{bottom.mjs → regions/bottomOverlay.mjs} +113 -66
- package/3rdparty/walkontable/src/overlay/regions/inlineStartOverlay.d.mts +1 -0
- package/3rdparty/walkontable/src/overlay/{inlineStart.d.ts → regions/inlineStartOverlay.d.ts} +17 -11
- package/3rdparty/walkontable/src/overlay/{inlineStart.js → regions/inlineStartOverlay.js} +122 -67
- package/3rdparty/walkontable/src/overlay/{inlineStart.mjs → regions/inlineStartOverlay.mjs} +122 -67
- package/3rdparty/walkontable/src/overlay/regions/topInlineStartCornerOverlay.d.mts +1 -0
- package/3rdparty/walkontable/src/overlay/{topInlineStartCorner.d.ts → regions/topInlineStartCornerOverlay.d.ts} +5 -10
- package/3rdparty/walkontable/src/overlay/{topInlineStartCorner.js → regions/topInlineStartCornerOverlay.js} +13 -16
- package/3rdparty/walkontable/src/overlay/{topInlineStartCorner.mjs → regions/topInlineStartCornerOverlay.mjs} +13 -16
- package/3rdparty/walkontable/src/overlay/regions/topOverlay.d.mts +1 -0
- package/3rdparty/walkontable/src/overlay/{top.d.ts → regions/topOverlay.d.ts} +32 -11
- package/3rdparty/walkontable/src/overlay/{top.js → regions/topOverlay.js} +163 -77
- package/3rdparty/walkontable/src/overlay/{top.mjs → regions/topOverlay.mjs} +163 -77
- package/3rdparty/walkontable/src/overlay/resizeMonitor.d.mts +1 -0
- package/3rdparty/walkontable/src/overlay/resizeMonitor.d.ts +49 -0
- package/3rdparty/walkontable/src/overlay/resizeMonitor.js +154 -0
- package/3rdparty/walkontable/src/overlay/resizeMonitor.mjs +153 -0
- package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.d.mts +1 -0
- package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.d.ts +62 -0
- package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.js +290 -0
- package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.mjs +295 -0
- package/3rdparty/walkontable/src/overlay/scroll/scrollSync.d.mts +1 -0
- package/3rdparty/walkontable/src/overlay/scroll/scrollSync.d.ts +176 -0
- package/3rdparty/walkontable/src/overlay/scroll/scrollSync.js +549 -0
- package/3rdparty/walkontable/src/overlay/scroll/scrollSync.mjs +557 -0
- package/3rdparty/walkontable/src/overlay/spreaderSize.d.mts +1 -0
- package/3rdparty/walkontable/src/overlay/spreaderSize.d.ts +67 -0
- package/3rdparty/walkontable/src/overlay/spreaderSize.js +178 -0
- package/3rdparty/walkontable/src/overlay/spreaderSize.mjs +179 -0
- package/3rdparty/walkontable/src/{stickyScrollStrategy.d.ts → overlay/strategies/stickyScrollStrategy.d.ts} +33 -21
- package/3rdparty/walkontable/src/{stickyScrollStrategy.js → overlay/strategies/stickyScrollStrategy.js} +60 -41
- package/3rdparty/walkontable/src/{stickyScrollStrategy.mjs → overlay/strategies/stickyScrollStrategy.mjs} +58 -38
- package/3rdparty/walkontable/src/ports.d.mts +1 -0
- package/3rdparty/walkontable/src/ports.d.ts +54 -0
- package/3rdparty/walkontable/src/ports.js +23 -0
- package/3rdparty/walkontable/src/ports.mjs +24 -0
- package/3rdparty/walkontable/src/{renderer → render}/_base.d.ts +1 -1
- package/3rdparty/walkontable/src/{renderer → render}/cells.js +1 -1
- package/3rdparty/walkontable/src/{renderer → render}/cells.mjs +1 -1
- package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.d.ts +1 -0
- package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.js +43 -1
- package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.mjs +44 -2
- package/3rdparty/walkontable/src/render/index.d.mts +1 -0
- package/3rdparty/walkontable/src/{renderer → render}/index.d.ts +11 -3
- package/3rdparty/walkontable/src/{renderer → render}/index.js +13 -3
- package/3rdparty/walkontable/src/{renderer → render}/index.mjs +11 -1
- package/3rdparty/walkontable/src/{renderer → render}/rows.js +1 -1
- package/3rdparty/walkontable/src/{renderer → render}/rows.mjs +1 -1
- package/3rdparty/walkontable/src/render/tableRenderer.d.mts +1 -0
- package/3rdparty/walkontable/src/{renderer/table.d.ts → render/tableRenderer.d.ts} +12 -2
- package/3rdparty/walkontable/src/render/tableRenderer.js +382 -0
- package/3rdparty/walkontable/src/{renderer/table.mjs → render/tableRenderer.mjs} +159 -6
- package/3rdparty/walkontable/src/{scroll.d.ts → scroll/scroll.d.ts} +27 -10
- package/3rdparty/walkontable/src/{scroll.js → scroll/scroll.js} +108 -32
- package/3rdparty/walkontable/src/{scroll.mjs → scroll/scroll.mjs} +106 -29
- package/3rdparty/walkontable/src/selection/border/border.d.ts +313 -5
- package/3rdparty/walkontable/src/selection/border/border.js +861 -51
- package/3rdparty/walkontable/src/selection/border/border.mjs +863 -53
- package/3rdparty/walkontable/src/selection/border/types.d.ts +30 -0
- package/3rdparty/walkontable/src/selection/manager.js +237 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +238 -1
- package/3rdparty/walkontable/src/settings/accessor.d.mts +2 -0
- package/3rdparty/walkontable/src/settings/accessor.d.ts +74 -0
- package/3rdparty/walkontable/src/settings/accessor.js +78 -0
- package/3rdparty/walkontable/src/settings/accessor.mjs +71 -0
- package/3rdparty/walkontable/src/settings/defaults.d.mts +1 -0
- package/3rdparty/walkontable/src/{settings.d.ts → settings/defaults.d.ts} +16 -77
- package/3rdparty/walkontable/src/settings/defaults.js +146 -0
- package/3rdparty/walkontable/src/settings/defaults.mjs +225 -0
- package/3rdparty/walkontable/src/settings/index.d.mts +1 -0
- package/3rdparty/walkontable/src/settings/index.d.ts +6 -0
- package/3rdparty/walkontable/src/settings/index.js +20 -0
- package/3rdparty/walkontable/src/settings/index.mjs +5 -0
- package/3rdparty/walkontable/src/table/baseTable.d.mts +2 -0
- package/3rdparty/walkontable/src/table/baseTable.d.ts +284 -0
- package/3rdparty/walkontable/src/table/baseTable.js +295 -0
- package/3rdparty/walkontable/src/table/baseTable.mjs +283 -0
- package/3rdparty/walkontable/src/table/cellAccess.d.mts +1 -0
- package/3rdparty/walkontable/src/table/cellAccess.d.ts +101 -0
- package/3rdparty/walkontable/src/table/cellAccess.js +238 -0
- package/3rdparty/walkontable/src/table/cellAccess.mjs +229 -0
- package/3rdparty/walkontable/src/table/domScaffold.d.mts +1 -0
- package/3rdparty/walkontable/src/table/domScaffold.d.ts +37 -0
- package/3rdparty/walkontable/src/table/domScaffold.js +145 -0
- package/3rdparty/walkontable/src/table/domScaffold.mjs +136 -0
- package/3rdparty/walkontable/src/table/drawCycle.d.mts +1 -0
- package/3rdparty/walkontable/src/table/drawCycle.d.ts +16 -0
- package/3rdparty/walkontable/src/table/drawCycle.js +405 -0
- package/3rdparty/walkontable/src/table/drawCycle.mjs +403 -0
- package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.d.mts +1 -0
- package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.d.ts +38 -0
- package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.js +15 -0
- package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.mjs +14 -0
- package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.d.ts +1 -1
- package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.js +1 -1
- package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.mjs +1 -1
- package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.d.ts +1 -1
- package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.d.ts +1 -1
- package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.js +1 -1
- package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.mjs +1 -1
- package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.d.mts +2 -0
- package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.d.ts +226 -0
- package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.js +251 -0
- package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.mjs +241 -0
- package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.d.mts +1 -0
- package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.d.ts +14 -0
- package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.js +196 -0
- package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.mjs +179 -0
- package/3rdparty/walkontable/src/table/regions/bottomInlineStartCornerTable.d.mts +2 -0
- package/3rdparty/walkontable/src/table/regions/bottomInlineStartCornerTable.d.ts +16 -0
- package/3rdparty/walkontable/src/table/{bottomInlineStartCorner.js → regions/bottomInlineStartCornerTable.js} +9 -12
- package/3rdparty/walkontable/src/table/regions/bottomInlineStartCornerTable.mjs +21 -0
- package/3rdparty/walkontable/src/table/regions/bottomTable.d.mts +2 -0
- package/3rdparty/walkontable/src/table/regions/bottomTable.d.ts +15 -0
- package/3rdparty/walkontable/src/table/regions/bottomTable.js +35 -0
- package/3rdparty/walkontable/src/table/regions/bottomTable.mjs +20 -0
- package/3rdparty/walkontable/src/table/regions/inlineStartTable.d.mts +2 -0
- package/3rdparty/walkontable/src/table/regions/inlineStartTable.d.ts +12 -0
- package/3rdparty/walkontable/src/table/regions/inlineStartTable.js +32 -0
- package/3rdparty/walkontable/src/table/regions/inlineStartTable.mjs +17 -0
- package/3rdparty/walkontable/src/table/regions/masterTable.d.mts +2 -0
- package/3rdparty/walkontable/src/table/{master.d.ts → regions/masterTable.d.ts} +4 -13
- package/3rdparty/walkontable/src/table/{master.js → regions/masterTable.js} +23 -48
- package/3rdparty/walkontable/src/table/{master.mjs → regions/masterTable.mjs} +22 -47
- package/3rdparty/walkontable/src/table/regions/topInlineStartCornerTable.d.mts +2 -0
- package/3rdparty/walkontable/src/table/regions/topInlineStartCornerTable.d.ts +16 -0
- package/3rdparty/walkontable/src/table/{topInlineStartCorner.js → regions/topInlineStartCornerTable.js} +9 -12
- package/3rdparty/walkontable/src/table/regions/topInlineStartCornerTable.mjs +21 -0
- package/3rdparty/walkontable/src/table/regions/topTable.d.mts +2 -0
- package/3rdparty/walkontable/src/table/regions/topTable.d.ts +15 -0
- package/3rdparty/walkontable/src/table/regions/topTable.js +35 -0
- package/3rdparty/walkontable/src/table/regions/topTable.mjs +20 -0
- package/3rdparty/walkontable/src/types.d.ts +7 -69
- package/3rdparty/walkontable/src/types.mjs +2 -1
- package/3rdparty/walkontable/src/utils/pointerToCoords.d.mts +1 -0
- package/3rdparty/walkontable/src/utils/{cellCoords.d.ts → pointerToCoords.d.ts} +24 -0
- package/3rdparty/walkontable/src/utils/pointerToCoords.js +181 -0
- package/3rdparty/walkontable/src/utils/pointerToCoords.mjs +186 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.d.mts +1 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.d.ts +40 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.js +139 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.mjs +131 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.d.mts +1 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.d.ts +133 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.js +18 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.mjs +18 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.d.mts +1 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.d.ts +17 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.js +104 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.mjs +99 -0
- package/3rdparty/walkontable/src/viewport/calculatorFactory.d.mts +1 -0
- package/3rdparty/walkontable/src/viewport/calculatorFactory.d.ts +84 -0
- package/3rdparty/walkontable/src/viewport/calculatorFactory.js +588 -0
- package/3rdparty/walkontable/src/viewport/calculatorFactory.mjs +601 -0
- package/3rdparty/walkontable/src/viewport/viewport.d.ts +267 -0
- package/3rdparty/walkontable/src/viewport/viewport.js +368 -0
- package/3rdparty/walkontable/src/viewport/viewport.mjs +360 -0
- package/3rdparty/walkontable/src/viewport/workspaceSize.d.mts +1 -0
- package/3rdparty/walkontable/src/viewport/workspaceSize.d.ts +59 -0
- package/3rdparty/walkontable/src/viewport/workspaceSize.js +284 -0
- package/3rdparty/walkontable/src/viewport/workspaceSize.mjs +282 -0
- package/3rdparty/walkontable/src/wire.d.mts +1 -0
- package/3rdparty/walkontable/src/wire.d.ts +81 -0
- package/3rdparty/walkontable/src/wire.js +56 -0
- package/3rdparty/walkontable/src/wire.mjs +56 -0
- package/CHANGELOG.md +114 -1
- package/LICENSE.txt +1 -1
- package/README.md +2 -2
- package/base.d.ts +13 -4
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/cellTypes/checkboxType/accessors/valueSetter.d.ts +1 -1
- package/cellTypes/checkboxType/accessors/valueSetter.js +3 -1
- package/cellTypes/checkboxType/accessors/valueSetter.mjs +3 -1
- package/cellTypes/index.d.ts +3 -2
- package/cellTypes/index.js +9 -0
- package/cellTypes/index.mjs +5 -2
- package/cellTypes/intlDatetimeType/index.d.mts +1 -0
- package/cellTypes/intlDatetimeType/index.d.ts +1 -0
- package/cellTypes/intlDatetimeType/index.js +19 -0
- package/cellTypes/intlDatetimeType/index.mjs +1 -0
- package/cellTypes/intlDatetimeType/intlDatetimeType.d.mts +1 -0
- package/cellTypes/intlDatetimeType/intlDatetimeType.d.ts +16 -0
- package/cellTypes/intlDatetimeType/intlDatetimeType.js +31 -0
- package/cellTypes/intlDatetimeType/intlDatetimeType.mjs +15 -0
- package/cellTypes/multiSelectType/index.d.ts +1 -1
- package/cellTypes/multiSelectType/index.js +3 -0
- package/cellTypes/multiSelectType/index.mjs +1 -1
- package/cellTypes/multiSelectType/multiSelectType.d.ts +1 -0
- package/cellTypes/multiSelectType/multiSelectType.js +4 -0
- package/cellTypes/multiSelectType/multiSelectType.mjs +1 -0
- package/cellTypes/numericType/accessors/valueSetter.js +30 -2
- package/cellTypes/numericType/accessors/valueSetter.mjs +31 -3
- package/core/hooks/bucket.d.ts +40 -6
- package/core/hooks/bucket.js +108 -72
- package/core/hooks/bucket.mjs +113 -72
- package/core/hooks/constants.js +254 -16
- package/core/hooks/constants.mjs +254 -16
- package/core/hooks/index.js +27 -22
- package/core/hooks/index.mjs +27 -22
- package/core/layout/constants.d.ts +11 -0
- package/core/layout/constants.js +6 -0
- package/core/layout/constants.mjs +12 -0
- package/core/layout/domSlot.d.ts +3 -1
- package/core/layout/domSlot.js +16 -2
- package/core/layout/domSlot.mjs +16 -2
- package/core/layout/index.d.ts +2 -2
- package/core/layout/index.js +6 -0
- package/core/layout/index.mjs +2 -2
- package/core/layout/layoutManager.d.ts +13 -0
- package/core/layout/layoutManager.js +21 -4
- package/core/layout/layoutManager.mjs +22 -2
- package/core/settings.d.ts +102 -6
- package/core/types.d.ts +15 -1
- package/core/types.mjs +9 -0
- package/core.js +534 -88
- package/core.mjs +537 -91
- package/dataMap/dataMap.d.ts +3 -13
- package/dataMap/dataMap.js +100 -41
- package/dataMap/dataMap.mjs +101 -42
- package/dataMap/dataSource.js +4 -1
- package/dataMap/dataSource.mjs +4 -1
- package/dataMap/metaManager/index.d.ts +62 -8
- package/dataMap/metaManager/index.js +66 -0
- package/dataMap/metaManager/index.mjs +66 -0
- package/dataMap/metaManager/lazyFactoryMap.d.ts +68 -43
- package/dataMap/metaManager/lazyFactoryMap.js +497 -110
- package/dataMap/metaManager/lazyFactoryMap.mjs +511 -111
- package/dataMap/metaManager/metaLayers/cellMeta.d.ts +55 -8
- package/dataMap/metaManager/metaLayers/cellMeta.js +108 -8
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +108 -8
- package/dataMap/metaManager/metaLayers/columnMeta.d.ts +2 -1
- package/dataMap/metaManager/metaLayers/columnMeta.js +1 -0
- package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -0
- package/dataMap/metaManager/metaSchema.js +759 -39
- package/dataMap/metaManager/metaSchema.mjs +759 -39
- package/dataMap/metaManager/mods/dynamicCellMeta.d.ts +24 -10
- package/dataMap/metaManager/mods/dynamicCellMeta.js +252 -28
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +253 -29
- package/dataMap/sourceDataValidator.d.ts +13 -21
- package/dataMap/sourceDataValidator.js +39 -29
- package/dataMap/sourceDataValidator.mjs +50 -33
- package/dist/handsontable.full.js +30027 -11261
- package/dist/handsontable.full.min.js +168 -112
- package/dist/handsontable.js +32468 -13762
- package/dist/handsontable.min.js +172 -116
- package/dist/languages/all.js +2 -1
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/fa-IR.js +2 -1
- package/dist/languages/fa-IR.min.js +1 -1
- package/dist/themes/classic.js +9 -3
- package/dist/themes/classic.min.js +4 -4
- package/dist/themes/horizon.js +9 -3
- package/dist/themes/horizon.min.js +4 -4
- package/dist/themes/main.js +9 -3
- package/dist/themes/main.min.js +4 -4
- package/dist/themes/static/variables/colors/ant.js +3 -3
- package/dist/themes/static/variables/colors/ant.min.js +3 -3
- package/dist/themes/static/variables/colors/classic.js +3 -3
- package/dist/themes/static/variables/colors/classic.min.js +3 -3
- package/dist/themes/static/variables/colors/horizon.js +3 -3
- package/dist/themes/static/variables/colors/horizon.min.js +3 -3
- package/dist/themes/static/variables/colors/main.js +3 -3
- package/dist/themes/static/variables/colors/main.min.js +3 -3
- package/dist/themes/static/variables/colors/material.js +3 -3
- package/dist/themes/static/variables/colors/material.min.js +3 -3
- package/dist/themes/static/variables/colors/shadcn.js +3 -3
- package/dist/themes/static/variables/colors/shadcn.min.js +3 -3
- package/dist/themes/static/variables/density.js +3 -3
- package/dist/themes/static/variables/density.min.js +3 -3
- package/dist/themes/static/variables/helpers/iconsMap.js +4 -9
- package/dist/themes/static/variables/helpers/iconsMap.min.js +4 -9
- package/dist/themes/static/variables/icons/horizon.js +3 -3
- package/dist/themes/static/variables/icons/horizon.min.js +3 -3
- package/dist/themes/static/variables/icons/main.js +3 -3
- package/dist/themes/static/variables/icons/main.min.js +3 -3
- package/dist/themes/static/variables/sizing.js +3 -3
- package/dist/themes/static/variables/sizing.min.js +3 -3
- package/dist/themes/static/variables/tokens/classic.js +9 -3
- package/dist/themes/static/variables/tokens/classic.min.js +4 -4
- package/dist/themes/static/variables/tokens/horizon.js +9 -3
- package/dist/themes/static/variables/tokens/horizon.min.js +4 -4
- package/dist/themes/static/variables/tokens/main.js +9 -3
- package/dist/themes/static/variables/tokens/main.min.js +4 -4
- package/editorManager.js +152 -3
- package/editorManager.mjs +152 -3
- package/editors/autocompleteEditor/autocompleteEditor.js +58 -11
- package/editors/autocompleteEditor/autocompleteEditor.mjs +59 -12
- package/editors/baseEditor/baseEditor.d.ts +15 -3
- package/editors/baseEditor/baseEditor.js +5 -3
- package/editors/baseEditor/baseEditor.mjs +15 -3
- package/editors/factory.js +5 -2
- package/editors/factory.mjs +5 -2
- package/editors/index.d.ts +3 -2
- package/editors/index.js +8 -0
- package/editors/index.mjs +3 -1
- package/editors/intlDatetimeEditor/index.d.mts +1 -0
- package/editors/intlDatetimeEditor/index.d.ts +1 -0
- package/editors/intlDatetimeEditor/index.js +19 -0
- package/editors/intlDatetimeEditor/index.mjs +1 -0
- package/editors/intlDatetimeEditor/intlDatetimeEditor.d.mts +1 -0
- package/editors/intlDatetimeEditor/intlDatetimeEditor.d.ts +42 -0
- package/editors/intlDatetimeEditor/intlDatetimeEditor.js +108 -0
- package/editors/intlDatetimeEditor/intlDatetimeEditor.mjs +93 -0
- package/editors/multiSelectEditor/multiSelectEditor.js +11 -9
- package/editors/multiSelectEditor/multiSelectEditor.mjs +12 -10
- package/editors/selectEditor/selectEditor.js +2 -1
- package/editors/selectEditor/selectEditor.mjs +2 -1
- package/editors/textEditor/textEditor.js +1 -1
- package/editors/textEditor/textEditor.mjs +2 -2
- package/eventManager.d.ts +3 -3
- package/focusManager/grid.d.ts +28 -0
- package/focusManager/grid.js +85 -2
- package/focusManager/grid.mjs +81 -3
- package/focusManager/scopeManager.js +1 -1
- package/focusManager/scopeManager.mjs +2 -2
- package/handsontable-non-commercial-license.pdf +0 -0
- package/helpers/array.d.ts +25 -0
- package/helpers/array.js +41 -4
- package/helpers/array.mjs +56 -4
- package/helpers/console.d.ts +25 -3
- package/helpers/console.js +40 -7
- package/helpers/console.mjs +52 -7
- package/helpers/dateTime.d.ts +14 -0
- package/helpers/dateTime.js +74 -2
- package/helpers/dateTime.mjs +73 -2
- package/helpers/dom/cellCoords.js +156 -13
- package/helpers/dom/cellCoords.mjs +156 -13
- package/helpers/dom/element.d.ts +47 -8
- package/helpers/dom/element.js +104 -18
- package/helpers/dom/element.mjs +132 -23
- package/helpers/dom/event.d.ts +58 -0
- package/helpers/dom/event.js +39 -0
- package/helpers/dom/event.mjs +63 -0
- package/helpers/errors.d.ts +5 -0
- package/helpers/errors.js +10 -6
- package/helpers/errors.mjs +10 -6
- package/helpers/feature.d.ts +19 -0
- package/helpers/feature.js +21 -0
- package/helpers/feature.mjs +30 -0
- package/helpers/function.d.ts +1 -1
- package/helpers/function.js +4 -1
- package/helpers/function.mjs +4 -1
- package/helpers/mixed.d.ts +103 -0
- package/helpers/mixed.js +373 -4
- package/helpers/mixed.mjs +413 -4
- package/helpers/moves.js +2 -1
- package/helpers/moves.mjs +2 -1
- package/helpers/number.d.ts +22 -0
- package/helpers/number.js +49 -0
- package/helpers/number.mjs +66 -0
- package/helpers/string.d.ts +14 -10
- package/helpers/string.js +17 -9
- package/helpers/string.mjs +27 -17
- package/helpers/templateString.d.mts +1 -0
- package/helpers/templateString.d.ts +13 -0
- package/helpers/templateString.js +29 -0
- package/helpers/templateString.mjs +19 -0
- package/helpers/uiButton.d.mts +1 -0
- package/helpers/uiButton.d.ts +21 -0
- package/helpers/uiButton.js +37 -0
- package/helpers/uiButton.mjs +31 -0
- package/i18n/languages/fa-IR.d.ts +1 -0
- package/i18n/languages/fa-IR.js +1 -0
- package/i18n/languages/fa-IR.mjs +1 -0
- package/index.d.ts +3 -3
- package/languages/all.js +2 -1
- package/languages/fa-IR.js +2 -1
- package/languages/fa-IR.mjs +1 -0
- package/languages/index.js +2 -1
- package/package.json +61 -1
- package/plugins/autoColumnSize/autoColumnSize.d.ts +24 -1
- package/plugins/autoColumnSize/autoColumnSize.js +501 -82
- package/plugins/autoColumnSize/autoColumnSize.mjs +508 -83
- package/plugins/autoRowSize/autoRowSize.d.ts +40 -5
- package/plugins/autoRowSize/autoRowSize.js +68 -24
- package/plugins/autoRowSize/autoRowSize.mjs +98 -29
- package/plugins/autofill/autofill.js +30 -12
- package/plugins/autofill/autofill.mjs +30 -12
- package/plugins/base/base.d.ts +10 -0
- package/plugins/collapsibleColumns/collapsibleColumns.d.ts +4 -0
- package/plugins/collapsibleColumns/collapsibleColumns.js +89 -8
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +93 -8
- package/plugins/columnSorting/columnSorting.d.ts +31 -2
- package/plugins/columnSorting/columnSorting.js +151 -24
- package/plugins/columnSorting/columnSorting.mjs +153 -26
- package/plugins/columnSorting/columnStatesManager.d.ts +1 -1
- package/plugins/columnSorting/columnStatesManager.js +1 -7
- package/plugins/columnSorting/columnStatesManager.mjs +1 -7
- package/plugins/columnSorting/domHelpers.d.ts +3 -0
- package/plugins/columnSorting/domHelpers.js +9 -0
- package/plugins/columnSorting/domHelpers.mjs +3 -3
- package/plugins/columnSorting/rootComparator.js +21 -16
- package/plugins/columnSorting/rootComparator.mjs +21 -16
- package/plugins/columnSorting/sortFunction/checkbox.js +7 -5
- package/plugins/columnSorting/sortFunction/checkbox.mjs +7 -5
- package/plugins/columnSorting/sortFunction/default.js +15 -4
- package/plugins/columnSorting/sortFunction/default.mjs +15 -4
- package/plugins/columnSorting/sortFunction/intlDatetime.d.mts +1 -0
- package/plugins/columnSorting/sortFunction/intlDatetime.d.ts +10 -0
- package/plugins/columnSorting/sortFunction/intlDatetime.js +23 -0
- package/plugins/columnSorting/sortFunction/intlDatetime.mjs +12 -0
- package/plugins/columnSorting/sortService/registry.js +2 -0
- package/plugins/columnSorting/sortService/registry.mjs +2 -0
- package/plugins/columnSorting/utils.d.ts +8 -0
- package/plugins/columnSorting/utils.js +37 -45
- package/plugins/columnSorting/utils.mjs +42 -47
- package/plugins/columnSummary/columnSummary.js +9 -5
- package/plugins/columnSummary/columnSummary.mjs +9 -5
- package/plugins/columnSummary/endpoints.d.ts +69 -2
- package/plugins/columnSummary/endpoints.js +181 -29
- package/plugins/columnSummary/endpoints.mjs +181 -29
- package/plugins/comments/commentEditor.js +1 -1
- package/plugins/comments/commentEditor.mjs +2 -2
- package/plugins/contextMenu/contextMenu.d.ts +12 -1
- package/plugins/contextMenu/contextMenu.js +30 -6
- package/plugins/contextMenu/contextMenu.mjs +30 -6
- package/plugins/contextMenu/index.d.ts +1 -1
- package/plugins/contextMenu/menu/menu.d.ts +22 -1
- package/plugins/contextMenu/menu/menu.js +211 -3
- package/plugins/contextMenu/menu/menu.mjs +212 -4
- package/plugins/contextMenu/menu/menuItemRenderer.js +2 -2
- package/plugins/contextMenu/menu/menuItemRenderer.mjs +2 -2
- package/plugins/contextMenu/predefinedItems/alignment.js +14 -14
- package/plugins/contextMenu/predefinedItems/alignment.mjs +14 -14
- package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +1 -1
- package/plugins/contextMenu/predefinedItems/readOnly.js +3 -3
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +3 -3
- package/plugins/contextMenu/utils.js +1 -1
- package/plugins/contextMenu/utils.mjs +1 -1
- package/plugins/copyPaste/copyPaste.js +70 -16
- package/plugins/copyPaste/copyPaste.mjs +71 -17
- package/plugins/copyPaste/copyableRanges.js +6 -2
- package/plugins/copyPaste/copyableRanges.mjs +6 -2
- package/plugins/copyPaste/pasteEvent.d.ts +1 -1
- package/plugins/customBorders/customBorders.d.ts +21 -40
- package/plugins/customBorders/customBorders.js +1080 -201
- package/plugins/customBorders/customBorders.mjs +1082 -203
- package/plugins/customBorders/utils.d.ts +71 -0
- package/plugins/customBorders/utils.js +63 -0
- package/plugins/customBorders/utils.mjs +101 -0
- package/plugins/dataProvider/dataProvider.d.ts +2 -1
- package/plugins/dataProvider/dataProvider.js +22 -7
- package/plugins/dataProvider/dataProvider.mjs +22 -7
- package/plugins/dataProvider/query/crud.js +1 -1
- package/plugins/dataProvider/query/crud.mjs +1 -1
- package/plugins/dialog/dialog.js +14 -9
- package/plugins/dialog/dialog.mjs +14 -9
- package/plugins/dialog/templates/confirm.d.ts +1 -1
- package/plugins/dialog/templates/confirm.js +2 -1
- package/plugins/dialog/templates/confirm.mjs +2 -1
- package/plugins/dialog/ui.d.ts +5 -3
- package/plugins/dialog/ui.js +12 -4
- package/plugins/dialog/ui.mjs +12 -4
- package/plugins/dragToScroll/dragToScroll.d.ts +2 -2
- package/plugins/dragToScroll/dragToScroll.js +150 -14
- package/plugins/dragToScroll/dragToScroll.mjs +151 -15
- package/plugins/dropdownMenu/dropdownMenu.d.ts +5 -1
- package/plugins/dropdownMenu/dropdownMenu.js +45 -3
- package/plugins/dropdownMenu/dropdownMenu.mjs +46 -4
- package/plugins/dropdownMenu/index.d.ts +1 -0
- package/plugins/emptyDataState/emptyDataState.js +4 -6
- package/plugins/emptyDataState/emptyDataState.mjs +4 -6
- package/plugins/emptyDataState/ui.js +2 -1
- package/plugins/emptyDataState/ui.mjs +2 -1
- package/plugins/exportFile/dataProvider.js +7 -9
- package/plugins/exportFile/dataProvider.mjs +7 -9
- package/plugins/exportFile/exportFile.d.ts +10 -3
- package/plugins/exportFile/types/_base.js +4 -10
- package/plugins/exportFile/types/_base.mjs +4 -10
- package/plugins/exportFile/types/xlsx/cell-style.js +4 -2
- package/plugins/exportFile/types/xlsx/cell-style.mjs +4 -2
- package/plugins/exportFile/types/xlsx/date-utils.d.ts +15 -0
- package/plugins/exportFile/types/xlsx/date-utils.js +31 -0
- package/plugins/exportFile/types/xlsx/date-utils.mjs +36 -0
- package/plugins/exportFile/types/xlsx.js +13 -9
- package/plugins/exportFile/types/xlsx.mjs +14 -10
- package/plugins/exportFile/utils.d.ts +9 -1
- package/plugins/exportFile/utils.js +27 -4
- package/plugins/exportFile/utils.mjs +40 -2
- package/plugins/filters/component/_base.d.ts +1 -2
- package/plugins/filters/component/_base.js +1 -2
- package/plugins/filters/component/_base.mjs +1 -2
- package/plugins/filters/component/condition.d.ts +1 -0
- package/plugins/filters/component/condition.js +2 -0
- package/plugins/filters/component/condition.mjs +2 -0
- package/plugins/filters/component/value.d.ts +5 -6
- package/plugins/filters/component/value.js +53 -34
- package/plugins/filters/component/value.mjs +54 -35
- package/plugins/filters/condition/date/after.js +2 -1
- package/plugins/filters/condition/date/after.mjs +2 -1
- package/plugins/filters/condition/date/afterOrEqual.js +2 -1
- package/plugins/filters/condition/date/afterOrEqual.mjs +2 -1
- package/plugins/filters/condition/date/before.js +2 -1
- package/plugins/filters/condition/date/before.mjs +2 -1
- package/plugins/filters/condition/date/beforeOrEqual.js +2 -1
- package/plugins/filters/condition/date/beforeOrEqual.mjs +2 -1
- package/plugins/filters/condition/equal.d.ts +7 -0
- package/plugins/filters/condition/equal.js +4 -0
- package/plugins/filters/condition/equal.mjs +10 -0
- package/plugins/filters/condition/intlDatetime/after.d.mts +1 -0
- package/plugins/filters/condition/intlDatetime/after.d.ts +18 -0
- package/plugins/filters/condition/intlDatetime/after.js +77 -0
- package/plugins/filters/condition/intlDatetime/after.mjs +22 -0
- package/plugins/filters/condition/intlDatetime/afterOrEqual.d.mts +1 -0
- package/plugins/filters/condition/intlDatetime/afterOrEqual.d.ts +18 -0
- package/plugins/filters/condition/intlDatetime/afterOrEqual.js +77 -0
- package/plugins/filters/condition/intlDatetime/afterOrEqual.mjs +22 -0
- package/plugins/filters/condition/intlDatetime/before.d.mts +1 -0
- package/plugins/filters/condition/intlDatetime/before.d.ts +18 -0
- package/plugins/filters/condition/intlDatetime/before.js +77 -0
- package/plugins/filters/condition/intlDatetime/before.mjs +22 -0
- package/plugins/filters/condition/intlDatetime/beforeOrEqual.d.mts +1 -0
- package/plugins/filters/condition/intlDatetime/beforeOrEqual.d.ts +18 -0
- package/plugins/filters/condition/intlDatetime/beforeOrEqual.js +77 -0
- package/plugins/filters/condition/intlDatetime/beforeOrEqual.mjs +22 -0
- package/plugins/filters/condition/intlDatetime/between.d.mts +1 -0
- package/plugins/filters/condition/intlDatetime/between.d.ts +18 -0
- package/plugins/filters/condition/intlDatetime/between.js +78 -0
- package/plugins/filters/condition/intlDatetime/between.mjs +23 -0
- package/plugins/filters/condition/intlDatetime/today.d.mts +1 -0
- package/plugins/filters/condition/intlDatetime/today.d.ts +17 -0
- package/plugins/filters/condition/intlDatetime/today.js +76 -0
- package/plugins/filters/condition/intlDatetime/today.mjs +20 -0
- package/plugins/filters/condition/intlDatetime/tomorrow.d.mts +1 -0
- package/plugins/filters/condition/intlDatetime/tomorrow.d.ts +17 -0
- package/plugins/filters/condition/intlDatetime/tomorrow.js +77 -0
- package/plugins/filters/condition/intlDatetime/tomorrow.mjs +21 -0
- package/plugins/filters/condition/intlDatetime/yesterday.d.mts +1 -0
- package/plugins/filters/condition/intlDatetime/yesterday.d.ts +17 -0
- package/plugins/filters/condition/intlDatetime/yesterday.js +77 -0
- package/plugins/filters/condition/intlDatetime/yesterday.mjs +21 -0
- package/plugins/filters/conditionCollection.js +4 -7
- package/plugins/filters/conditionCollection.mjs +4 -7
- package/plugins/filters/conditionUpdateObserver.d.ts +2 -2
- package/plugins/filters/conditionUpdateObserver.js +148 -49
- package/plugins/filters/conditionUpdateObserver.mjs +148 -49
- package/plugins/filters/constants.d.ts +1 -0
- package/plugins/filters/constants.js +31 -0
- package/plugins/filters/constants.mjs +28 -0
- package/plugins/filters/dataFilter.d.ts +4 -12
- package/plugins/filters/dataFilter.js +7 -19
- package/plugins/filters/dataFilter.mjs +8 -20
- package/plugins/filters/filters.d.ts +33 -9
- package/plugins/filters/filters.js +91 -31
- package/plugins/filters/filters.mjs +92 -32
- package/plugins/filters/sortComparators.d.ts +9 -2
- package/plugins/filters/sortComparators.js +34 -1
- package/plugins/filters/sortComparators.mjs +38 -3
- package/plugins/filters/ui/input.d.ts +4 -0
- package/plugins/filters/ui/input.js +18 -6
- package/plugins/filters/ui/input.mjs +18 -6
- package/plugins/filters/ui/multipleSelect.js +27 -4
- package/plugins/filters/ui/multipleSelect.mjs +27 -4
- package/plugins/filters/ui/select.js +1 -1
- package/plugins/filters/ui/select.mjs +1 -1
- package/plugins/formulas/engine/register.d.ts +5 -4
- package/plugins/formulas/engine/register.js +5 -2
- package/plugins/formulas/engine/register.mjs +9 -5
- package/plugins/formulas/engine/settings.d.ts +2 -6
- package/plugins/formulas/engine/settings.js +29 -4
- package/plugins/formulas/engine/settings.mjs +29 -4
- package/plugins/formulas/engine/types.d.ts +12 -2
- package/plugins/formulas/formulas.d.ts +39 -0
- package/plugins/formulas/formulas.js +789 -47
- package/plugins/formulas/formulas.mjs +793 -49
- package/plugins/formulas/hyperlinkUrl.d.mts +1 -0
- package/plugins/formulas/hyperlinkUrl.d.ts +12 -0
- package/plugins/formulas/hyperlinkUrl.js +32 -0
- package/plugins/formulas/hyperlinkUrl.mjs +32 -0
- package/plugins/formulas/indexSyncer/axisSyncer.d.ts +1 -0
- package/plugins/formulas/indexSyncer/axisSyncer.js +72 -15
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +72 -15
- package/plugins/formulas/utils.d.ts +9 -0
- package/plugins/formulas/utils.js +21 -0
- package/plugins/formulas/utils.mjs +25 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +6 -1
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +6 -1
- package/plugins/hiddenColumns/hiddenColumns.js +6 -3
- package/plugins/hiddenColumns/hiddenColumns.mjs +6 -3
- package/plugins/hiddenRows/contextMenuItem/showRow.js +6 -1
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +6 -1
- package/plugins/hiddenRows/hiddenRows.js +6 -3
- package/plugins/hiddenRows/hiddenRows.mjs +6 -3
- package/plugins/index.d.ts +5 -1
- package/plugins/index.js +10 -0
- package/plugins/index.mjs +5 -1
- package/plugins/loading/content.d.ts +5 -3
- package/plugins/loading/content.js +3 -2
- package/plugins/loading/content.mjs +8 -5
- package/plugins/loading/loading.d.ts +5 -2
- package/plugins/loading/loading.mjs +5 -2
- package/plugins/manualColumnMove/manualColumnMove.d.ts +10 -0
- package/plugins/manualColumnMove/manualColumnMove.js +122 -20
- package/plugins/manualColumnMove/manualColumnMove.mjs +123 -21
- package/plugins/manualColumnResize/manualColumnResize.d.ts +20 -7
- package/plugins/manualColumnResize/manualColumnResize.js +33 -13
- package/plugins/manualColumnResize/manualColumnResize.mjs +34 -14
- package/plugins/manualRowResize/manualRowResize.d.ts +21 -8
- package/plugins/manualRowResize/manualRowResize.js +34 -14
- package/plugins/manualRowResize/manualRowResize.mjs +35 -15
- package/plugins/mergeCells/cellCoords.d.ts +8 -0
- package/plugins/mergeCells/cellCoords.js +11 -0
- package/plugins/mergeCells/cellCoords.mjs +11 -0
- package/plugins/mergeCells/cellsCollection.d.ts +46 -2
- package/plugins/mergeCells/cellsCollection.js +189 -68
- package/plugins/mergeCells/cellsCollection.mjs +189 -68
- package/plugins/mergeCells/focusOrder.d.ts +26 -20
- package/plugins/mergeCells/focusOrder.js +358 -177
- package/plugins/mergeCells/focusOrder.mjs +363 -172
- package/plugins/mergeCells/mergeCells.d.ts +13 -8
- package/plugins/mergeCells/mergeCells.js +322 -64
- package/plugins/mergeCells/mergeCells.mjs +322 -64
- package/plugins/moveCells/helpers.d.mts +1 -0
- package/plugins/moveCells/helpers.d.ts +21 -0
- package/plugins/moveCells/helpers.js +20 -0
- package/plugins/moveCells/helpers.mjs +15 -0
- package/plugins/moveCells/index.d.mts +1 -0
- package/plugins/moveCells/index.d.ts +1 -0
- package/plugins/moveCells/index.js +22 -0
- package/plugins/moveCells/index.mjs +1 -0
- package/plugins/moveCells/moveCells.d.mts +1 -0
- package/plugins/moveCells/moveCells.d.ts +80 -0
- package/plugins/moveCells/moveCells.js +602 -0
- package/plugins/moveCells/moveCells.mjs +587 -0
- package/plugins/multiColumnSorting/multiColumnSorting.d.ts +8 -8
- package/plugins/multiColumnSorting/multiColumnSorting.js +11 -16
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +11 -16
- package/plugins/multiColumnSorting/rootComparator.js +26 -19
- package/plugins/multiColumnSorting/rootComparator.mjs +26 -19
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.d.ts +19 -4
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +273 -58
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +273 -58
- package/plugins/nestedHeaders/nestedHeaders.d.ts +10 -1
- package/plugins/nestedHeaders/nestedHeaders.js +222 -23
- package/plugins/nestedHeaders/nestedHeaders.mjs +222 -23
- package/plugins/nestedHeaders/stateManager/columnArrangement.d.mts +1 -0
- package/plugins/nestedHeaders/stateManager/columnArrangement.d.ts +37 -0
- package/plugins/nestedHeaders/stateManager/columnArrangement.js +35 -0
- package/plugins/nestedHeaders/stateManager/columnArrangement.mjs +30 -0
- package/plugins/nestedHeaders/stateManager/deriveSettings.d.mts +1 -0
- package/plugins/nestedHeaders/stateManager/deriveSettings.d.ts +57 -0
- package/plugins/nestedHeaders/stateManager/deriveSettings.js +115 -0
- package/plugins/nestedHeaders/stateManager/deriveSettings.mjs +135 -0
- package/plugins/nestedHeaders/stateManager/headersTree.d.ts +14 -1
- package/plugins/nestedHeaders/stateManager/index.d.ts +76 -13
- package/plugins/nestedHeaders/stateManager/index.js +381 -38
- package/plugins/nestedHeaders/stateManager/index.mjs +382 -39
- package/plugins/nestedHeaders/stateManager/matrixGenerator.js +3 -2
- package/plugins/nestedHeaders/stateManager/matrixGenerator.mjs +3 -2
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -1
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +5 -1
- package/plugins/nestedHeaders/stateManager/sourceSettings.d.ts +23 -6
- package/plugins/nestedHeaders/stateManager/sourceSettings.js +20 -4
- package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +20 -4
- package/plugins/nestedHeaders/stateManager/utils.d.ts +17 -1
- package/plugins/nestedHeaders/stateManager/utils.js +6 -1
- package/plugins/nestedHeaders/stateManager/utils.mjs +6 -1
- package/plugins/nestedHeaders/utils/ghostTable.js +21 -8
- package/plugins/nestedHeaders/utils/ghostTable.mjs +21 -8
- package/plugins/nestedRows/data/dataManager.d.ts +4 -1
- package/plugins/nestedRows/data/dataManager.js +10 -4
- package/plugins/nestedRows/data/dataManager.mjs +10 -4
- package/plugins/nestedRows/nestedRows.d.ts +127 -1
- package/plugins/nestedRows/nestedRows.js +330 -8
- package/plugins/nestedRows/nestedRows.mjs +330 -8
- package/plugins/nestedRows/ui/collapsing.d.ts +58 -0
- package/plugins/nestedRows/ui/collapsing.js +236 -40
- package/plugins/nestedRows/ui/collapsing.mjs +236 -40
- package/plugins/notification/notification.d.ts +2 -1
- package/plugins/notification/notification.js +6 -3
- package/plugins/notification/notification.mjs +6 -3
- package/plugins/notification/ui.d.ts +8 -5
- package/plugins/notification/ui.js +18 -6
- package/plugins/notification/ui.mjs +18 -6
- package/plugins/pagination/pagination.js +2 -2
- package/plugins/pagination/pagination.mjs +2 -2
- package/plugins/search/search.js +23 -2
- package/plugins/search/search.mjs +23 -2
- package/plugins/selectionHandles/helpers.d.mts +1 -0
- package/plugins/selectionHandles/helpers.d.ts +17 -0
- package/plugins/selectionHandles/helpers.js +16 -0
- package/plugins/selectionHandles/helpers.mjs +11 -0
- package/plugins/selectionHandles/index.d.mts +1 -0
- package/plugins/selectionHandles/index.d.ts +1 -0
- package/plugins/selectionHandles/index.js +22 -0
- package/plugins/selectionHandles/index.mjs +1 -0
- package/plugins/selectionHandles/selectionHandles.d.mts +1 -0
- package/plugins/selectionHandles/selectionHandles.d.ts +52 -0
- package/plugins/selectionHandles/selectionHandles.js +342 -0
- package/plugins/selectionHandles/selectionHandles.mjs +323 -0
- package/plugins/trimRows/trimRows.d.ts +1 -1
- package/plugins/trimRows/trimRows.js +6 -2
- package/plugins/trimRows/trimRows.mjs +6 -2
- package/plugins/types.d.ts +4 -0
- package/plugins/undoRedo/actions/cellAlignment.js +1 -1
- package/plugins/undoRedo/actions/cellAlignment.mjs +1 -1
- package/plugins/undoRedo/actions/createColumn.js +4 -1
- package/plugins/undoRedo/actions/createColumn.mjs +4 -1
- package/plugins/undoRedo/actions/createRow.js +4 -1
- package/plugins/undoRedo/actions/createRow.mjs +4 -1
- package/plugins/undoRedo/actions/fixedCounts.d.mts +1 -0
- package/plugins/undoRedo/actions/fixedCounts.d.ts +36 -0
- package/plugins/undoRedo/actions/fixedCounts.js +63 -0
- package/plugins/undoRedo/actions/fixedCounts.mjs +62 -0
- package/plugins/undoRedo/actions/index.js +2 -0
- package/plugins/undoRedo/actions/index.mjs +2 -0
- package/plugins/undoRedo/actions/moveCells.d.mts +1 -0
- package/plugins/undoRedo/actions/moveCells.d.ts +104 -0
- package/plugins/undoRedo/actions/moveCells.js +225 -0
- package/plugins/undoRedo/actions/moveCells.mjs +227 -0
- package/plugins/undoRedo/actions/removeColumn.d.ts +18 -2
- package/plugins/undoRedo/actions/removeColumn.js +11 -4
- package/plugins/undoRedo/actions/removeColumn.mjs +12 -5
- package/plugins/undoRedo/actions/removeRow.js +2 -57
- package/plugins/undoRedo/actions/removeRow.mjs +2 -57
- package/plugins/undoRedo/undoRedo.d.ts +26 -0
- package/plugins/undoRedo/undoRedo.js +36 -2
- package/plugins/undoRedo/undoRedo.mjs +36 -2
- package/plugins/undoRedo/utils.d.ts +29 -0
- package/plugins/undoRedo/utils.js +55 -3
- package/plugins/undoRedo/utils.mjs +59 -0
- package/renderSizeProbe.d.mts +1 -0
- package/renderSizeProbe.d.ts +60 -0
- package/renderSizeProbe.js +163 -0
- package/renderSizeProbe.mjs +176 -0
- package/renderers/checkboxRenderer/checkboxRenderer.js +9 -4
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
- package/renderers/index.d.ts +3 -2
- package/renderers/index.js +8 -0
- package/renderers/index.mjs +3 -1
- package/renderers/intlDatetimeRenderer/index.d.mts +1 -0
- package/renderers/intlDatetimeRenderer/index.d.ts +1 -0
- package/renderers/intlDatetimeRenderer/index.js +22 -0
- package/renderers/intlDatetimeRenderer/index.mjs +1 -0
- package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.d.mts +1 -0
- package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.d.ts +26 -0
- package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.js +82 -0
- package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.mjs +67 -0
- package/renderers/multiSelectRenderer/multiSelectRenderer.js +2 -3
- package/renderers/multiSelectRenderer/multiSelectRenderer.mjs +2 -3
- package/renderers/multiSelectRenderer/utils/utils.d.ts +1 -1
- package/renderers/multiSelectRenderer/utils/utils.js +11 -8
- package/renderers/multiSelectRenderer/utils/utils.mjs +11 -8
- package/renderers/passwordRenderer/passwordRenderer.js +6 -1
- package/renderers/passwordRenderer/passwordRenderer.mjs +6 -1
- package/renderers/renderCell.d.mts +1 -0
- package/renderers/renderCell.d.ts +37 -0
- package/renderers/renderCell.js +43 -0
- package/renderers/renderCell.mjs +48 -0
- package/selection/highlight/types/areaLayered.d.ts +3 -1
- package/selection/highlight/types/areaLayered.js +4 -2
- package/selection/highlight/types/areaLayered.mjs +6 -2
- package/selection/highlight/types/focus.d.ts +3 -1
- package/selection/highlight/types/focus.js +3 -2
- package/selection/highlight/types/focus.mjs +5 -2
- package/selection/mouseEventHandler.js +29 -26
- package/selection/mouseEventHandler.mjs +29 -26
- package/selection/moveCells.d.mts +1 -0
- package/selection/moveCells.d.ts +15 -0
- package/selection/moveCells.js +13 -0
- package/selection/moveCells.mjs +9 -0
- package/selection/selection.d.ts +56 -2
- package/selection/selection.js +149 -5
- package/selection/selection.mjs +149 -5
- package/selection/types.d.ts +3 -0
- package/settings.d.ts +24 -3
- package/shortcuts/context.d.ts +4 -0
- package/shortcuts/context.js +16 -8
- package/shortcuts/context.mjs +20 -8
- package/shortcuts/contexts/commands/populateSelectedCellsData.js +1 -1
- package/shortcuts/contexts/commands/populateSelectedCellsData.mjs +1 -1
- package/styles/handsontable.css +504 -158
- package/styles/handsontable.min.css +4 -4
- package/styles/handsontableStyles.d.mts +2 -0
- package/styles/handsontableStyles.d.ts +2 -0
- package/styles/handsontableStyles.js +1 -1
- package/styles/handsontableStyles.mjs +1 -1
- package/styles/ht-icons-horizon.css +1 -10
- package/styles/ht-icons-horizon.min.css +4 -4
- package/styles/ht-icons-main.css +1 -10
- package/styles/ht-icons-main.min.css +4 -4
- package/styles/ht-theme-classic-no-icons.css +6 -0
- package/styles/ht-theme-classic-no-icons.min.css +4 -4
- package/styles/ht-theme-classic.css +7 -10
- package/styles/ht-theme-classic.min.css +4 -4
- package/styles/ht-theme-horizon-no-icons.css +6 -0
- package/styles/ht-theme-horizon-no-icons.min.css +4 -4
- package/styles/ht-theme-horizon.css +7 -10
- package/styles/ht-theme-horizon.min.css +4 -4
- package/styles/ht-theme-main-no-icons.css +6 -0
- package/styles/ht-theme-main-no-icons.min.css +4 -4
- package/styles/ht-theme-main.css +7 -10
- package/styles/ht-theme-main.min.css +4 -4
- package/tableView.d.ts +17 -4
- package/tableView.js +208 -42
- package/tableView.mjs +209 -43
- package/themes/engine/index.d.ts +2 -1
- package/themes/engine/index.js +3 -0
- package/themes/engine/index.mjs +1 -1
- package/themes/engine/manager.d.ts +75 -3
- package/themes/engine/manager.js +242 -6
- package/themes/engine/manager.mjs +249 -6
- package/themes/engine/utils/cssVariables.d.ts +18 -1
- package/themes/engine/utils/cssVariables.js +27 -11
- package/themes/engine/utils/cssVariables.mjs +28 -11
- package/themes/engine/utils/validation.js +7 -0
- package/themes/engine/utils/validation.mjs +7 -0
- package/themes/static/variables/helpers/iconsMap.js +1 -6
- package/themes/static/variables/helpers/iconsMap.mjs +1 -6
- package/themes/static/variables/tokens/classic.js +6 -0
- package/themes/static/variables/tokens/classic.mjs +6 -0
- package/themes/static/variables/tokens/horizon.js +6 -0
- package/themes/static/variables/tokens/horizon.mjs +6 -0
- package/themes/static/variables/tokens/main.js +6 -0
- package/themes/static/variables/tokens/main.mjs +6 -0
- package/themes/types.d.ts +1 -1
- package/translations/indexMapper.d.ts +14 -9
- package/translations/indexMapper.js +104 -43
- package/translations/indexMapper.mjs +104 -43
- package/translations/mapCollections/aggregatedCollection.js +20 -35
- package/translations/mapCollections/aggregatedCollection.mjs +20 -35
- package/translations/mapCollections/mapCollection.d.ts +10 -4
- package/translations/mapCollections/mapCollection.js +2 -2
- package/translations/mapCollections/mapCollection.mjs +2 -2
- package/translations/maps/booleanMap.d.mts +1 -0
- package/translations/maps/booleanMap.d.ts +86 -0
- package/translations/maps/booleanMap.js +300 -0
- package/translations/maps/booleanMap.mjs +308 -0
- package/translations/maps/hidingMap.d.ts +5 -2
- package/translations/maps/hidingMap.js +8 -3
- package/translations/maps/hidingMap.mjs +8 -3
- package/translations/maps/index.d.ts +5 -2
- package/translations/maps/index.js +7 -3
- package/translations/maps/index.mjs +10 -2
- package/translations/maps/indexMap.d.ts +26 -2
- package/translations/maps/indexMap.js +78 -6
- package/translations/maps/indexMap.mjs +78 -6
- package/translations/maps/indexesSequence.d.ts +53 -2
- package/translations/maps/indexesSequence.js +225 -3
- package/translations/maps/indexesSequence.mjs +233 -3
- package/translations/maps/trimmingMap.d.ts +5 -2
- package/translations/maps/trimmingMap.js +8 -3
- package/translations/maps/trimmingMap.mjs +8 -3
- package/translations/maps/utils/actionsOnIndexes.js +20 -1
- package/translations/maps/utils/actionsOnIndexes.mjs +20 -1
- package/translations/maps/utils/indexesSequence.js +12 -3
- package/translations/maps/utils/indexesSequence.mjs +12 -3
- package/translations/maps/utils/physicallyIndexed.js +12 -1
- package/translations/maps/utils/physicallyIndexed.mjs +12 -1
- package/utils/entitlementLicenseKey/classify.d.mts +1 -0
- package/utils/entitlementLicenseKey/classify.d.ts +34 -0
- package/utils/entitlementLicenseKey/classify.js +97 -0
- package/utils/entitlementLicenseKey/classify.mjs +96 -0
- package/utils/entitlementLicenseKey/constants.d.mts +1 -0
- package/utils/entitlementLicenseKey/constants.d.ts +69 -0
- package/utils/entitlementLicenseKey/constants.js +54 -0
- package/utils/entitlementLicenseKey/constants.mjs +66 -0
- package/utils/entitlementLicenseKey/detectFormat.d.mts +1 -0
- package/utils/entitlementLicenseKey/detectFormat.d.ts +23 -0
- package/utils/entitlementLicenseKey/detectFormat.js +60 -0
- package/utils/entitlementLicenseKey/detectFormat.mjs +60 -0
- package/utils/entitlementLicenseKey/encoding.d.mts +1 -0
- package/utils/entitlementLicenseKey/encoding.d.ts +58 -0
- package/utils/entitlementLicenseKey/encoding.js +161 -0
- package/utils/entitlementLicenseKey/encoding.mjs +172 -0
- package/utils/entitlementLicenseKey/extractKeyData.d.mts +1 -0
- package/utils/entitlementLicenseKey/extractKeyData.d.ts +47 -0
- package/utils/entitlementLicenseKey/extractKeyData.js +213 -0
- package/utils/entitlementLicenseKey/extractKeyData.mjs +232 -0
- package/utils/entitlementLicenseKey/grants.d.mts +1 -0
- package/utils/entitlementLicenseKey/grants.d.ts +54 -0
- package/utils/entitlementLicenseKey/grants.js +68 -0
- package/utils/entitlementLicenseKey/grants.mjs +84 -0
- package/utils/entitlementLicenseKey/index.d.mts +1 -0
- package/utils/entitlementLicenseKey/index.d.ts +8 -0
- package/utils/entitlementLicenseKey/index.js +53 -0
- package/utils/entitlementLicenseKey/index.mjs +6 -0
- package/utils/entitlementLicenseKey/sha512.d.mts +1 -0
- package/utils/entitlementLicenseKey/sha512.d.ts +11 -0
- package/utils/entitlementLicenseKey/sha512.js +328 -0
- package/utils/entitlementLicenseKey/sha512.mjs +327 -0
- package/utils/entitlementLicenseKey/types.d.mts +1 -0
- package/utils/entitlementLicenseKey/types.d.ts +84 -0
- package/utils/entitlementLicenseKey/types.js +8 -0
- package/utils/entitlementLicenseKey/types.mjs +10 -0
- package/utils/ghostTable.d.ts +1 -0
- package/utils/ghostTable.js +60 -11
- package/utils/ghostTable.mjs +60 -11
- package/utils/licenseBranding/badge.d.mts +1 -0
- package/utils/licenseBranding/badge.d.ts +21 -0
- package/utils/licenseBranding/badge.js +237 -0
- package/utils/licenseBranding/badge.mjs +244 -0
- package/utils/licenseBranding/content.d.mts +1 -0
- package/utils/licenseBranding/content.d.ts +54 -0
- package/utils/licenseBranding/content.js +93 -0
- package/utils/licenseBranding/content.mjs +79 -0
- package/utils/licenseBranding/index.d.mts +1 -0
- package/utils/licenseBranding/index.d.ts +14 -0
- package/utils/licenseBranding/index.js +55 -0
- package/utils/licenseBranding/index.mjs +56 -0
- package/utils/licenseBranding/lockScreen.d.mts +1 -0
- package/utils/licenseBranding/lockScreen.d.ts +23 -0
- package/utils/licenseBranding/lockScreen.js +150 -0
- package/utils/licenseBranding/lockScreen.mjs +159 -0
- package/utils/licenseNotification.d.ts +19 -0
- package/utils/licenseNotification.js +56 -29
- package/utils/licenseNotification.mjs +61 -29
- package/utils/movableMeta.d.mts +1 -0
- package/utils/movableMeta.d.ts +40 -0
- package/utils/movableMeta.js +47 -0
- package/utils/movableMeta.mjs +46 -0
- package/utils/parseTable.js +16 -7
- package/utils/parseTable.mjs +16 -7
- package/utils/samplesGenerator.d.ts +41 -14
- package/utils/samplesGenerator.js +114 -42
- package/utils/samplesGenerator.mjs +114 -42
- package/utils/sanitizer.d.mts +1 -0
- package/utils/sanitizer.d.ts +47 -0
- package/utils/sanitizer.js +43 -0
- package/utils/sanitizer.mjs +55 -0
- package/utils/stylesHandler.d.ts +13 -0
- package/utils/stylesHandler.js +55 -2
- package/utils/stylesHandler.mjs +55 -2
- package/validators/autocompleteValidator/autocompleteValidator.js +3 -0
- package/validators/autocompleteValidator/autocompleteValidator.mjs +3 -0
- package/validators/index.d.ts +3 -2
- package/validators/index.js +8 -0
- package/validators/index.mjs +3 -1
- package/validators/intlDatetimeValidator/index.d.mts +1 -0
- package/validators/intlDatetimeValidator/index.d.ts +1 -0
- package/validators/intlDatetimeValidator/index.js +25 -0
- package/validators/intlDatetimeValidator/index.mjs +1 -0
- package/validators/intlDatetimeValidator/intlDatetimeValidator.d.mts +1 -0
- package/validators/intlDatetimeValidator/intlDatetimeValidator.d.ts +28 -0
- package/validators/intlDatetimeValidator/intlDatetimeValidator.js +49 -0
- package/validators/intlDatetimeValidator/intlDatetimeValidator.mjs +37 -0
- package/3rdparty/walkontable/src/overlay/bottom.d.mts +0 -1
- package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.d.mts +0 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.d.mts +0 -1
- package/3rdparty/walkontable/src/overlay/top.d.mts +0 -1
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.d.mts +0 -1
- package/3rdparty/walkontable/src/overlays.d.ts +0 -329
- package/3rdparty/walkontable/src/overlays.js +0 -870
- package/3rdparty/walkontable/src/overlays.mjs +0 -860
- package/3rdparty/walkontable/src/renderer/table.d.mts +0 -1
- package/3rdparty/walkontable/src/renderer/table.js +0 -229
- package/3rdparty/walkontable/src/settings.d.mts +0 -2
- package/3rdparty/walkontable/src/settings.js +0 -196
- package/3rdparty/walkontable/src/settings.mjs +0 -263
- package/3rdparty/walkontable/src/table/bottom.d.mts +0 -2
- package/3rdparty/walkontable/src/table/bottom.d.ts +0 -19
- package/3rdparty/walkontable/src/table/bottom.js +0 -38
- package/3rdparty/walkontable/src/table/bottom.mjs +0 -23
- package/3rdparty/walkontable/src/table/bottomInlineStartCorner.d.mts +0 -2
- package/3rdparty/walkontable/src/table/bottomInlineStartCorner.d.ts +0 -20
- package/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs +0 -24
- package/3rdparty/walkontable/src/table/inlineStart.d.mts +0 -2
- package/3rdparty/walkontable/src/table/inlineStart.d.ts +0 -16
- package/3rdparty/walkontable/src/table/inlineStart.js +0 -35
- package/3rdparty/walkontable/src/table/inlineStart.mjs +0 -20
- package/3rdparty/walkontable/src/table/master.d.mts +0 -2
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.d.mts +0 -2
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.d.ts +0 -75
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -122
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -112
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.d.mts +0 -2
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.d.ts +0 -75
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -122
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -112
- package/3rdparty/walkontable/src/table/top.d.mts +0 -2
- package/3rdparty/walkontable/src/table/top.d.ts +0 -19
- package/3rdparty/walkontable/src/table/top.js +0 -38
- package/3rdparty/walkontable/src/table/top.mjs +0 -23
- package/3rdparty/walkontable/src/table/topInlineStartCorner.d.mts +0 -2
- package/3rdparty/walkontable/src/table/topInlineStartCorner.d.ts +0 -20
- package/3rdparty/walkontable/src/table/topInlineStartCorner.mjs +0 -24
- package/3rdparty/walkontable/src/table.d.mts +0 -2
- package/3rdparty/walkontable/src/table.d.ts +0 -741
- package/3rdparty/walkontable/src/table.js +0 -1120
- package/3rdparty/walkontable/src/table.mjs +0 -1105
- package/3rdparty/walkontable/src/utils/cellCoords.d.mts +0 -1
- package/3rdparty/walkontable/src/utils/cellCoords.js +0 -54
- package/3rdparty/walkontable/src/utils/cellCoords.mjs +0 -54
- package/3rdparty/walkontable/src/utils/column.d.mts +0 -2
- package/3rdparty/walkontable/src/utils/column.js +0 -75
- package/3rdparty/walkontable/src/utils/column.mjs +0 -70
- package/3rdparty/walkontable/src/utils/positionCache.d.mts +0 -1
- package/3rdparty/walkontable/src/utils/positionCache.d.ts +0 -91
- package/3rdparty/walkontable/src/utils/positionCache.js +0 -193
- package/3rdparty/walkontable/src/utils/positionCache.mjs +0 -194
- package/3rdparty/walkontable/src/utils/row.d.mts +0 -2
- package/3rdparty/walkontable/src/utils/row.js +0 -46
- package/3rdparty/walkontable/src/utils/row.mjs +0 -41
- package/3rdparty/walkontable/src/viewport.d.ts +0 -254
- package/3rdparty/walkontable/src/viewport.js +0 -533
- package/3rdparty/walkontable/src/viewport.mjs +0 -523
- /package/3rdparty/walkontable/src/{renderer → axisSizing/positionCache}/index.d.mts +0 -0
- /package/3rdparty/walkontable/src/{overlays.d.mts → overlay/overlays.d.mts} +0 -0
- /package/3rdparty/walkontable/src/overlay/{_base.d.mts → regions/_base.d.mts} +0 -0
- /package/3rdparty/walkontable/src/{stickyScrollStrategy.d.mts → overlay/strategies/stickyScrollStrategy.d.mts} +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/_base.d.mts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/_base.js +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/_base.mjs +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/cells.d.mts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/cells.d.ts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/colGroup.d.mts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/colGroup.d.ts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/colGroup.js +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/colGroup.mjs +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.d.mts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.d.ts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.js +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.mjs +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.d.mts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.d.mts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.d.ts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.js +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.mjs +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/rows.d.mts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/rows.d.ts +0 -0
- /package/3rdparty/walkontable/src/{scroll.d.mts → scroll/scroll.d.mts} +0 -0
- /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.d.mts +0 -0
- /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.d.mts +0 -0
- /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.js +0 -0
- /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.mjs +0 -0
- /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.d.mts +0 -0
- /package/3rdparty/walkontable/src/{viewport.d.mts → viewport/viewport.d.mts} +0 -0
|
@@ -2,7 +2,7 @@ import type { HotInstance } from '../../core/types';
|
|
|
2
2
|
import { BasePlugin } from '../base';
|
|
3
3
|
import GhostTable from '../../utils/ghostTable';
|
|
4
4
|
import SamplesGenerator from '../../utils/samplesGenerator';
|
|
5
|
-
import { PhysicalIndexToValueMap as IndexToValueMap } from '../../translations';
|
|
5
|
+
import type { PhysicalIndexToValueMap as IndexToValueMap } from '../../translations';
|
|
6
6
|
export declare const PLUGIN_KEY = "autoRowSize";
|
|
7
7
|
export declare const PLUGIN_PRIORITY = 40;
|
|
8
8
|
/**
|
|
@@ -30,19 +30,44 @@ export declare const PLUGIN_PRIORITY = 40;
|
|
|
30
30
|
*
|
|
31
31
|
* // as a string (percent)
|
|
32
32
|
* autoRowSize: {syncLimit: '40%'},
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* To speed up the calculations, the plugin samples a subset of rows rather than measuring every row. By default, it
|
|
36
|
+
* skips rows whose value it has already sampled, on the assumption that identical values render at the same height.
|
|
33
37
|
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
38
|
+
* Sampling accepts additional options:
|
|
39
|
+
* - *samplingRatio* - Defines how many samples for the same length will be used to calculate. Default is `3`.
|
|
40
|
+
*
|
|
41
|
+
* ```js
|
|
42
|
+
* autoRowSize: {
|
|
43
|
+
* samplingRatio: 10,
|
|
44
|
+
* }
|
|
36
45
|
* ```
|
|
37
46
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
47
|
+
* Set the `allowSampleDuplicates` option to `true` to sample duplicate values as well:
|
|
48
|
+
*
|
|
49
|
+
* ```js
|
|
50
|
+
* autoRowSize: {allowSampleDuplicates: true},
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* Enable this option when rows with the same value can still render at different heights - for example, with multiline
|
|
54
|
+
* text, or with custom renderers that vary a row's height based on its position or other data. Without it, the plugin
|
|
55
|
+
* may sample only one of those rows and apply its height to the rest, leading to incorrect row heights.
|
|
56
|
+
*
|
|
57
|
+
* The tradeoff is performance: allowing duplicates increases the number of rows measured, which lengthens the
|
|
58
|
+
* calculation and can block the UI for longer on large data sets.
|
|
40
59
|
*
|
|
41
60
|
* ::: tip
|
|
42
61
|
* Note: Updating some of the table's settings can cause the row heights to change (e.g. `wordWrap`, `textEllipsis`, renderers etc.).
|
|
43
62
|
* In those cases, to ensure that the row heights are properly recalculated, you need to call the {@link AutoRowSize#recalculateAllRowsHeight} method after calling {@link Core#updateSettings}.
|
|
44
63
|
* :::
|
|
45
64
|
*
|
|
65
|
+
* ::: tip
|
|
66
|
+
* If you use custom renderers, multiline text, or custom styles that produce non-standard row heights, and you call
|
|
67
|
+
* {@link Core#scrollViewportTo}, you must enable `AutoRowSize`. Without it, `scrollViewportTo()` calculates scroll
|
|
68
|
+
* positions based on the default row height and may scroll to an incorrect position.
|
|
69
|
+
* :::
|
|
70
|
+
*
|
|
46
71
|
* To configure this plugin see {@link Options#autoRowSize}.
|
|
47
72
|
*
|
|
48
73
|
* @example
|
|
@@ -288,12 +313,22 @@ export declare class AutoRowSize extends BasePlugin {
|
|
|
288
313
|
/**
|
|
289
314
|
* Get the first visible row.
|
|
290
315
|
*
|
|
316
|
+
* When the {@link MergeCells} plugin is enabled with its default `virtualized: false` setting, a merged
|
|
317
|
+
* cell that crosses the viewport edge extends the rendered row range. In that case this method can
|
|
318
|
+
* return a row index outside the strictly visible viewport. To read the actual visible viewport, use
|
|
319
|
+
* {@link Core#getFirstFullyVisibleRow} or {@link Core#getFirstPartiallyVisibleRow}.
|
|
320
|
+
*
|
|
291
321
|
* @returns {number} Returns row index, -1 if table is not rendered or if there are no rows to base the the calculations on.
|
|
292
322
|
*/
|
|
293
323
|
getFirstVisibleRow(): number;
|
|
294
324
|
/**
|
|
295
325
|
* Gets the last visible row.
|
|
296
326
|
*
|
|
327
|
+
* When the {@link MergeCells} plugin is enabled with its default `virtualized: false` setting, a merged
|
|
328
|
+
* cell that crosses the viewport edge extends the rendered row range. In that case this method can
|
|
329
|
+
* return a row index outside the strictly visible viewport. To read the actual visible viewport, use
|
|
330
|
+
* {@link Core#getLastFullyVisibleRow} or {@link Core#getLastPartiallyVisibleRow}.
|
|
331
|
+
*
|
|
297
332
|
* @returns {number} Returns row index or -1 if table is not rendered.
|
|
298
333
|
*/
|
|
299
334
|
getLastVisibleRow(): number;
|
|
@@ -26,7 +26,7 @@ const _object = require("../../helpers/object");
|
|
|
26
26
|
const _number = require("../../helpers/number");
|
|
27
27
|
const _samplesGenerator = /*#__PURE__*/ _interop_require_default(require("../../utils/samplesGenerator"));
|
|
28
28
|
const _string = require("../../helpers/string");
|
|
29
|
-
const
|
|
29
|
+
const _renderCell = require("../../renderers/renderCell");
|
|
30
30
|
const _element = require("../../helpers/dom/element");
|
|
31
31
|
function _check_private_redeclaration(obj, privateCollection) {
|
|
32
32
|
if (privateCollection.has(obj)) {
|
|
@@ -101,6 +101,13 @@ var /**
|
|
|
101
101
|
*
|
|
102
102
|
* @type {boolean}
|
|
103
103
|
*/ _isInitialized = /*#__PURE__*/ new WeakMap(), /**
|
|
104
|
+
* `true` when a full row-height recalculation is already scheduled for the current
|
|
105
|
+
* column-resize gesture. Resizing several selected columns fires `beforeColumnResize` once
|
|
106
|
+
* per column in one synchronous loop — the flag coalesces those calls into a single
|
|
107
|
+
* recalculation that runs after every new width has been applied.
|
|
108
|
+
*
|
|
109
|
+
* @type {boolean}
|
|
110
|
+
*/ _columnResizeRecalcScheduled = /*#__PURE__*/ new WeakMap(), /**
|
|
104
111
|
* Calculates specific rows height (overwrite cache values).
|
|
105
112
|
*
|
|
106
113
|
* @param {number[]} visualRows List of visual rows to calculate.
|
|
@@ -116,6 +123,11 @@ var /**
|
|
|
116
123
|
* Recalculates heights for currently visible rows and processes any rows queued by data
|
|
117
124
|
* changes before the next render.
|
|
118
125
|
*/ _onBeforeRender = /*#__PURE__*/ new WeakMap(), /**
|
|
126
|
+
* Schedules a single full row-height recalculation per column-resize gesture. The hook fires
|
|
127
|
+
* once per selected column, so the recalculation is deferred until the gesture's synchronous
|
|
128
|
+
* loop (and the render that applies the new widths) has finished — the heights are then
|
|
129
|
+
* measured once, against the final column widths.
|
|
130
|
+
*/ _onBeforeColumnResize = /*#__PURE__*/ new WeakMap(), /**
|
|
119
131
|
* Recalculates the row height from content on a double-click and returns it as the new
|
|
120
132
|
* size; returns the user-dragged size otherwise.
|
|
121
133
|
*/ _onBeforeRowResize = /*#__PURE__*/ new WeakMap(), /**
|
|
@@ -187,7 +199,7 @@ class AutoRowSize extends _base.BasePlugin {
|
|
|
187
199
|
}
|
|
188
200
|
this.addHook('afterLoadData', _class_private_field_get(this, _onAfterLoadData));
|
|
189
201
|
this.addHook('beforeChangeRender', _class_private_field_get(this, _onBeforeChange));
|
|
190
|
-
this.addHook('beforeColumnResize', (
|
|
202
|
+
this.addHook('beforeColumnResize', _class_private_field_get(this, _onBeforeColumnResize));
|
|
191
203
|
this.addHook('afterFormulasValuesUpdate', _class_private_field_get(this, _onAfterFormulasValuesUpdate));
|
|
192
204
|
this.addHook('beforeViewRender', _class_private_field_get(this, _onBeforeViewRender));
|
|
193
205
|
this.addHook('beforeRender', _class_private_field_get(this, _onBeforeRender));
|
|
@@ -255,7 +267,11 @@ class AutoRowSize extends _base.BasePlugin {
|
|
|
255
267
|
from: colRange,
|
|
256
268
|
to: colRange
|
|
257
269
|
} : colRange;
|
|
258
|
-
|
|
270
|
+
// The cached header height is reused unless the caller explicitly overwrites the cache
|
|
271
|
+
// (full renders triggered by data or settings changes do). Without this guard, every
|
|
272
|
+
// render — including selection-driven ones — would re-sample the header row across all
|
|
273
|
+
// columns and force a ghost-table reflow even when every height is already cached.
|
|
274
|
+
if ((overwriteCache || this.headerHeight === null) && this.hot.getColHeader(0) !== null) {
|
|
259
275
|
const samples = this.samplesGenerator.generateRowSamples(-1, columnsRange);
|
|
260
276
|
this.ghostTable.addColumnHeadersRow(samples.get(-1));
|
|
261
277
|
}
|
|
@@ -302,7 +318,7 @@ class AutoRowSize extends _base.BasePlugin {
|
|
|
302
318
|
const loop = ()=>{
|
|
303
319
|
// When hot was destroyed after calculating finished cancel frame
|
|
304
320
|
if (!this.hot) {
|
|
305
|
-
(0, _feature.
|
|
321
|
+
(0, _feature.cancelIdleTask)(timer);
|
|
306
322
|
this.inProgress = false;
|
|
307
323
|
return;
|
|
308
324
|
}
|
|
@@ -312,9 +328,9 @@ class AutoRowSize extends _base.BasePlugin {
|
|
|
312
328
|
}, colRange, overwriteCache);
|
|
313
329
|
current = current + AutoRowSize.CALCULATION_STEP + 1;
|
|
314
330
|
if (current < length) {
|
|
315
|
-
timer = (0, _feature.
|
|
331
|
+
timer = (0, _feature.requestIdleTask)(loop);
|
|
316
332
|
} else {
|
|
317
|
-
(0, _feature.
|
|
333
|
+
(0, _feature.cancelIdleTask)(timer);
|
|
318
334
|
this.inProgress = false;
|
|
319
335
|
// @TODO Should call once per render cycle, currently fired separately in different plugins
|
|
320
336
|
this.hot.view.adjustElementsSize();
|
|
@@ -409,6 +425,11 @@ class AutoRowSize extends _base.BasePlugin {
|
|
|
409
425
|
/**
|
|
410
426
|
* Get the first visible row.
|
|
411
427
|
*
|
|
428
|
+
* When the {@link MergeCells} plugin is enabled with its default `virtualized: false` setting, a merged
|
|
429
|
+
* cell that crosses the viewport edge extends the rendered row range. In that case this method can
|
|
430
|
+
* return a row index outside the strictly visible viewport. To read the actual visible viewport, use
|
|
431
|
+
* {@link Core#getFirstFullyVisibleRow} or {@link Core#getFirstPartiallyVisibleRow}.
|
|
432
|
+
*
|
|
412
433
|
* @returns {number} Returns row index, -1 if table is not rendered or if there are no rows to base the the calculations on.
|
|
413
434
|
*/ getFirstVisibleRow() {
|
|
414
435
|
return this.hot.getFirstRenderedVisibleRow() ?? -1;
|
|
@@ -416,6 +437,11 @@ class AutoRowSize extends _base.BasePlugin {
|
|
|
416
437
|
/**
|
|
417
438
|
* Gets the last visible row.
|
|
418
439
|
*
|
|
440
|
+
* When the {@link MergeCells} plugin is enabled with its default `virtualized: false` setting, a merged
|
|
441
|
+
* cell that crosses the viewport edge extends the rendered row range. In that case this method can
|
|
442
|
+
* return a row index outside the strictly visible viewport. To read the actual visible viewport, use
|
|
443
|
+
* {@link Core#getLastFullyVisibleRow} or {@link Core#getLastPartiallyVisibleRow}.
|
|
444
|
+
*
|
|
419
445
|
* @returns {number} Returns row index or -1 if table is not rendered.
|
|
420
446
|
*/ getLastVisibleRow() {
|
|
421
447
|
return this.hot.getLastRenderedVisibleRow() ?? -1;
|
|
@@ -477,12 +503,18 @@ class AutoRowSize extends _base.BasePlugin {
|
|
|
477
503
|
}), _class_private_field_init(this, _isInitialized, {
|
|
478
504
|
writable: true,
|
|
479
505
|
value: void 0
|
|
506
|
+
}), _class_private_field_init(this, _columnResizeRecalcScheduled, {
|
|
507
|
+
writable: true,
|
|
508
|
+
value: void 0
|
|
480
509
|
}), _class_private_field_init(this, _onBeforeViewRender, {
|
|
481
510
|
writable: true,
|
|
482
511
|
value: void 0
|
|
483
512
|
}), _class_private_field_init(this, _onBeforeRender, {
|
|
484
513
|
writable: true,
|
|
485
514
|
value: void 0
|
|
515
|
+
}), _class_private_field_init(this, _onBeforeColumnResize, {
|
|
516
|
+
writable: true,
|
|
517
|
+
value: void 0
|
|
486
518
|
}), _class_private_field_init(this, _onBeforeRowResize, {
|
|
487
519
|
writable: true,
|
|
488
520
|
value: void 0
|
|
@@ -520,7 +552,10 @@ class AutoRowSize extends _base.BasePlugin {
|
|
|
520
552
|
}
|
|
521
553
|
let cellMeta;
|
|
522
554
|
if (row >= 0 && column >= 0) {
|
|
523
|
-
|
|
555
|
+
// The transient read resolves the full dynamic meta (hooks + `cells`, so `hidden` from
|
|
556
|
+
// merged cells works) without storing anything - this sampler sweeps every row, and the
|
|
557
|
+
// eager `getCellMeta` would permanently materialize one meta per visited cell.
|
|
558
|
+
cellMeta = this.hot.getCellMetaTransient(row, column);
|
|
524
559
|
if (cellMeta.hidden) {
|
|
525
560
|
// do not generate samples for cells that are covered by merged cell (null values)
|
|
526
561
|
return false;
|
|
@@ -529,8 +564,10 @@ class AutoRowSize extends _base.BasePlugin {
|
|
|
529
564
|
let cellValue;
|
|
530
565
|
if (row >= 0) {
|
|
531
566
|
cellValue = this.hot.getDataAtCell(row, column);
|
|
532
|
-
if (
|
|
533
|
-
|
|
567
|
+
if (cellMeta) {
|
|
568
|
+
// Format through the same precedence as the render path (cell-level `valueFormatter`, then
|
|
569
|
+
// the renderer's own static), so the measured string matches what the renderer produces.
|
|
570
|
+
cellValue = (0, _renderCell.formatCellValue)(cellValue, cellMeta, this.hot.getCellRenderer(cellMeta));
|
|
534
571
|
}
|
|
535
572
|
} else if (row === -1) {
|
|
536
573
|
cellValue = this.hot.getColHeader(column);
|
|
@@ -546,12 +583,7 @@ class AutoRowSize extends _base.BasePlugin {
|
|
|
546
583
|
* Number of already measured rows (we already know their sizes).
|
|
547
584
|
*
|
|
548
585
|
* @type {number}
|
|
549
|
-
*/ this.measuredRows = 0,
|
|
550
|
-
* PhysicalIndexToValueMap to keep and track heights for physical row indexes.
|
|
551
|
-
*
|
|
552
|
-
* @private
|
|
553
|
-
* @type {PhysicalIndexToValueMap}
|
|
554
|
-
*/ this.rowHeightsMap = new _translations.PhysicalIndexToValueMap(), _class_private_field_set(this, _visualRowsToRefresh, []), _class_private_field_set(this, _disposeMapObserver, null), _class_private_field_set(this, _isInitialized, false), _class_private_field_set(this, _onBeforeViewRender, ()=>{
|
|
586
|
+
*/ this.measuredRows = 0, _class_private_field_set(this, _visualRowsToRefresh, []), _class_private_field_set(this, _disposeMapObserver, null), _class_private_field_set(this, _isInitialized, false), _class_private_field_set(this, _columnResizeRecalcScheduled, false), _class_private_field_set(this, _onBeforeViewRender, ()=>{
|
|
555
587
|
_class_private_method_get(this, _toggleFirstDatasetColumnRenderedClassName, toggleFirstDatasetColumnRenderedClassName).call(this);
|
|
556
588
|
}), _class_private_field_set(this, _onBeforeRender, ()=>{
|
|
557
589
|
this.calculateVisibleRowsHeight();
|
|
@@ -559,6 +591,15 @@ class AutoRowSize extends _base.BasePlugin {
|
|
|
559
591
|
_class_private_method_get(this, _calculateSpecificRowsHeight, calculateSpecificRowsHeight).call(this, _class_private_field_get(this, _visualRowsToRefresh));
|
|
560
592
|
_class_private_field_set(this, _visualRowsToRefresh, []);
|
|
561
593
|
}
|
|
594
|
+
}), _class_private_field_set(this, _onBeforeColumnResize, ()=>{
|
|
595
|
+
if (_class_private_field_get(this, _columnResizeRecalcScheduled)) {
|
|
596
|
+
return;
|
|
597
|
+
}
|
|
598
|
+
_class_private_field_set(this, _columnResizeRecalcScheduled, true);
|
|
599
|
+
this.hot._registerTimeout(()=>{
|
|
600
|
+
_class_private_field_set(this, _columnResizeRecalcScheduled, false);
|
|
601
|
+
this.recalculateAllRowsHeight();
|
|
602
|
+
}, 0);
|
|
562
603
|
}), _class_private_field_set(this, _onBeforeRowResize, (size, row, isDblClick)=>{
|
|
563
604
|
let newSize = size;
|
|
564
605
|
if (isDblClick) {
|
|
@@ -571,14 +612,13 @@ class AutoRowSize extends _base.BasePlugin {
|
|
|
571
612
|
this.recalculateAllRowsHeight();
|
|
572
613
|
}
|
|
573
614
|
}), _class_private_field_set(this, _onBeforeChange, (changes)=>{
|
|
574
|
-
const changedRows =
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
}
|
|
581
|
-
_class_private_field_get(this, _visualRowsToRefresh).push(...changedRows);
|
|
615
|
+
const changedRows = new Set();
|
|
616
|
+
changes.forEach(([row])=>{
|
|
617
|
+
changedRows.add(Number(row));
|
|
618
|
+
});
|
|
619
|
+
changedRows.forEach((rowIndex)=>{
|
|
620
|
+
_class_private_field_get(this, _visualRowsToRefresh).push(rowIndex);
|
|
621
|
+
});
|
|
582
622
|
}), _class_private_field_set(this, _onInit, ()=>{
|
|
583
623
|
this.recalculateAllRowsHeight();
|
|
584
624
|
_class_private_field_set(this, _isInitialized, true);
|
|
@@ -604,7 +644,11 @@ class AutoRowSize extends _base.BasePlugin {
|
|
|
604
644
|
}, []);
|
|
605
645
|
_class_private_field_get(this, _visualRowsToRefresh).push(...changedRows);
|
|
606
646
|
});
|
|
607
|
-
|
|
647
|
+
// The map holds numbers only, so re-writing an unchanged height is a no-op that must not
|
|
648
|
+
// invalidate the row-height position cache.
|
|
649
|
+
this.rowHeightsMap = this.hot.rowIndexMapper.createAndRegisterIndexMap(ROW_WIDTHS_MAP_NAME, 'physicalIndexToValue', null, {
|
|
650
|
+
skipUnchangedWrites: true
|
|
651
|
+
});
|
|
608
652
|
// Leave the listener active to allow auto-sizing the rows when the plugin is disabled.
|
|
609
653
|
// This is necessary for height recalculation for resize handler doubleclick (ManualRowResize).
|
|
610
654
|
this.addHook('beforeRowResize', _class_private_field_get(this, _onBeforeRowResize));
|
|
@@ -49,13 +49,13 @@ function _class_private_method_init(obj, privateSet) {
|
|
|
49
49
|
privateSet.add(obj);
|
|
50
50
|
}
|
|
51
51
|
import { BasePlugin } from '../base/index.mjs';
|
|
52
|
-
import {
|
|
52
|
+
import { cancelIdleTask, requestIdleTask } from '../../helpers/feature.mjs';
|
|
53
53
|
import GhostTable from '../../utils/ghostTable.mjs';
|
|
54
54
|
import { isObject } from '../../helpers/object.mjs';
|
|
55
55
|
import { valueAccordingPercent, rangeEach } from '../../helpers/number.mjs';
|
|
56
56
|
import SamplesGenerator from '../../utils/samplesGenerator.mjs';
|
|
57
57
|
import { isPercentValue } from '../../helpers/string.mjs';
|
|
58
|
-
import {
|
|
58
|
+
import { formatCellValue } from '../../renderers/renderCell.mjs';
|
|
59
59
|
import { addClass, removeClass } from '../../helpers/dom/element.mjs';
|
|
60
60
|
export const PLUGIN_KEY = 'autoRowSize';
|
|
61
61
|
export const PLUGIN_PRIORITY = 40;
|
|
@@ -75,6 +75,13 @@ var /**
|
|
|
75
75
|
*
|
|
76
76
|
* @type {boolean}
|
|
77
77
|
*/ _isInitialized = /*#__PURE__*/ new WeakMap(), /**
|
|
78
|
+
* `true` when a full row-height recalculation is already scheduled for the current
|
|
79
|
+
* column-resize gesture. Resizing several selected columns fires `beforeColumnResize` once
|
|
80
|
+
* per column in one synchronous loop — the flag coalesces those calls into a single
|
|
81
|
+
* recalculation that runs after every new width has been applied.
|
|
82
|
+
*
|
|
83
|
+
* @type {boolean}
|
|
84
|
+
*/ _columnResizeRecalcScheduled = /*#__PURE__*/ new WeakMap(), /**
|
|
78
85
|
* Calculates specific rows height (overwrite cache values).
|
|
79
86
|
*
|
|
80
87
|
* @param {number[]} visualRows List of visual rows to calculate.
|
|
@@ -90,6 +97,11 @@ var /**
|
|
|
90
97
|
* Recalculates heights for currently visible rows and processes any rows queued by data
|
|
91
98
|
* changes before the next render.
|
|
92
99
|
*/ _onBeforeRender = /*#__PURE__*/ new WeakMap(), /**
|
|
100
|
+
* Schedules a single full row-height recalculation per column-resize gesture. The hook fires
|
|
101
|
+
* once per selected column, so the recalculation is deferred until the gesture's synchronous
|
|
102
|
+
* loop (and the render that applies the new widths) has finished — the heights are then
|
|
103
|
+
* measured once, against the final column widths.
|
|
104
|
+
*/ _onBeforeColumnResize = /*#__PURE__*/ new WeakMap(), /**
|
|
93
105
|
* Recalculates the row height from content on a double-click and returns it as the new
|
|
94
106
|
* size; returns the user-dragged size otherwise.
|
|
95
107
|
*/ _onBeforeRowResize = /*#__PURE__*/ new WeakMap(), /**
|
|
@@ -129,19 +141,44 @@ var /**
|
|
|
129
141
|
*
|
|
130
142
|
* // as a string (percent)
|
|
131
143
|
* autoRowSize: {syncLimit: '40%'},
|
|
144
|
+
* ```
|
|
145
|
+
*
|
|
146
|
+
* To speed up the calculations, the plugin samples a subset of rows rather than measuring every row. By default, it
|
|
147
|
+
* skips rows whose value it has already sampled, on the assumption that identical values render at the same height.
|
|
148
|
+
*
|
|
149
|
+
* Sampling accepts additional options:
|
|
150
|
+
* - *samplingRatio* - Defines how many samples for the same length will be used to calculate. Default is `3`.
|
|
132
151
|
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
152
|
+
* ```js
|
|
153
|
+
* autoRowSize: {
|
|
154
|
+
* samplingRatio: 10,
|
|
155
|
+
* }
|
|
135
156
|
* ```
|
|
136
157
|
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
158
|
+
* Set the `allowSampleDuplicates` option to `true` to sample duplicate values as well:
|
|
159
|
+
*
|
|
160
|
+
* ```js
|
|
161
|
+
* autoRowSize: {allowSampleDuplicates: true},
|
|
162
|
+
* ```
|
|
163
|
+
*
|
|
164
|
+
* Enable this option when rows with the same value can still render at different heights - for example, with multiline
|
|
165
|
+
* text, or with custom renderers that vary a row's height based on its position or other data. Without it, the plugin
|
|
166
|
+
* may sample only one of those rows and apply its height to the rest, leading to incorrect row heights.
|
|
167
|
+
*
|
|
168
|
+
* The tradeoff is performance: allowing duplicates increases the number of rows measured, which lengthens the
|
|
169
|
+
* calculation and can block the UI for longer on large data sets.
|
|
139
170
|
*
|
|
140
171
|
* ::: tip
|
|
141
172
|
* Note: Updating some of the table's settings can cause the row heights to change (e.g. `wordWrap`, `textEllipsis`, renderers etc.).
|
|
142
173
|
* In those cases, to ensure that the row heights are properly recalculated, you need to call the {@link AutoRowSize#recalculateAllRowsHeight} method after calling {@link Core#updateSettings}.
|
|
143
174
|
* :::
|
|
144
175
|
*
|
|
176
|
+
* ::: tip
|
|
177
|
+
* If you use custom renderers, multiline text, or custom styles that produce non-standard row heights, and you call
|
|
178
|
+
* {@link Core#scrollViewportTo}, you must enable `AutoRowSize`. Without it, `scrollViewportTo()` calculates scroll
|
|
179
|
+
* positions based on the default row height and may scroll to an incorrect position.
|
|
180
|
+
* :::
|
|
181
|
+
*
|
|
145
182
|
* To configure this plugin see {@link Options#autoRowSize}.
|
|
146
183
|
*
|
|
147
184
|
* @example
|
|
@@ -291,7 +328,7 @@ var /**
|
|
|
291
328
|
}
|
|
292
329
|
this.addHook('afterLoadData', _class_private_field_get(this, _onAfterLoadData));
|
|
293
330
|
this.addHook('beforeChangeRender', _class_private_field_get(this, _onBeforeChange));
|
|
294
|
-
this.addHook('beforeColumnResize', (
|
|
331
|
+
this.addHook('beforeColumnResize', _class_private_field_get(this, _onBeforeColumnResize));
|
|
295
332
|
this.addHook('afterFormulasValuesUpdate', _class_private_field_get(this, _onAfterFormulasValuesUpdate));
|
|
296
333
|
this.addHook('beforeViewRender', _class_private_field_get(this, _onBeforeViewRender));
|
|
297
334
|
this.addHook('beforeRender', _class_private_field_get(this, _onBeforeRender));
|
|
@@ -359,7 +396,11 @@ var /**
|
|
|
359
396
|
from: colRange,
|
|
360
397
|
to: colRange
|
|
361
398
|
} : colRange;
|
|
362
|
-
|
|
399
|
+
// The cached header height is reused unless the caller explicitly overwrites the cache
|
|
400
|
+
// (full renders triggered by data or settings changes do). Without this guard, every
|
|
401
|
+
// render — including selection-driven ones — would re-sample the header row across all
|
|
402
|
+
// columns and force a ghost-table reflow even when every height is already cached.
|
|
403
|
+
if ((overwriteCache || this.headerHeight === null) && this.hot.getColHeader(0) !== null) {
|
|
363
404
|
const samples = this.samplesGenerator.generateRowSamples(-1, columnsRange);
|
|
364
405
|
this.ghostTable.addColumnHeadersRow(samples.get(-1));
|
|
365
406
|
}
|
|
@@ -406,7 +447,7 @@ var /**
|
|
|
406
447
|
const loop = ()=>{
|
|
407
448
|
// When hot was destroyed after calculating finished cancel frame
|
|
408
449
|
if (!this.hot) {
|
|
409
|
-
|
|
450
|
+
cancelIdleTask(timer);
|
|
410
451
|
this.inProgress = false;
|
|
411
452
|
return;
|
|
412
453
|
}
|
|
@@ -416,9 +457,9 @@ var /**
|
|
|
416
457
|
}, colRange, overwriteCache);
|
|
417
458
|
current = current + AutoRowSize.CALCULATION_STEP + 1;
|
|
418
459
|
if (current < length) {
|
|
419
|
-
timer =
|
|
460
|
+
timer = requestIdleTask(loop);
|
|
420
461
|
} else {
|
|
421
|
-
|
|
462
|
+
cancelIdleTask(timer);
|
|
422
463
|
this.inProgress = false;
|
|
423
464
|
// @TODO Should call once per render cycle, currently fired separately in different plugins
|
|
424
465
|
this.hot.view.adjustElementsSize();
|
|
@@ -513,6 +554,11 @@ var /**
|
|
|
513
554
|
/**
|
|
514
555
|
* Get the first visible row.
|
|
515
556
|
*
|
|
557
|
+
* When the {@link MergeCells} plugin is enabled with its default `virtualized: false` setting, a merged
|
|
558
|
+
* cell that crosses the viewport edge extends the rendered row range. In that case this method can
|
|
559
|
+
* return a row index outside the strictly visible viewport. To read the actual visible viewport, use
|
|
560
|
+
* {@link Core#getFirstFullyVisibleRow} or {@link Core#getFirstPartiallyVisibleRow}.
|
|
561
|
+
*
|
|
516
562
|
* @returns {number} Returns row index, -1 if table is not rendered or if there are no rows to base the the calculations on.
|
|
517
563
|
*/ getFirstVisibleRow() {
|
|
518
564
|
return this.hot.getFirstRenderedVisibleRow() ?? -1;
|
|
@@ -520,6 +566,11 @@ var /**
|
|
|
520
566
|
/**
|
|
521
567
|
* Gets the last visible row.
|
|
522
568
|
*
|
|
569
|
+
* When the {@link MergeCells} plugin is enabled with its default `virtualized: false` setting, a merged
|
|
570
|
+
* cell that crosses the viewport edge extends the rendered row range. In that case this method can
|
|
571
|
+
* return a row index outside the strictly visible viewport. To read the actual visible viewport, use
|
|
572
|
+
* {@link Core#getLastFullyVisibleRow} or {@link Core#getLastPartiallyVisibleRow}.
|
|
573
|
+
*
|
|
523
574
|
* @returns {number} Returns row index or -1 if table is not rendered.
|
|
524
575
|
*/ getLastVisibleRow() {
|
|
525
576
|
return this.hot.getLastRenderedVisibleRow() ?? -1;
|
|
@@ -581,12 +632,18 @@ var /**
|
|
|
581
632
|
}), _class_private_field_init(this, _isInitialized, {
|
|
582
633
|
writable: true,
|
|
583
634
|
value: void 0
|
|
635
|
+
}), _class_private_field_init(this, _columnResizeRecalcScheduled, {
|
|
636
|
+
writable: true,
|
|
637
|
+
value: void 0
|
|
584
638
|
}), _class_private_field_init(this, _onBeforeViewRender, {
|
|
585
639
|
writable: true,
|
|
586
640
|
value: void 0
|
|
587
641
|
}), _class_private_field_init(this, _onBeforeRender, {
|
|
588
642
|
writable: true,
|
|
589
643
|
value: void 0
|
|
644
|
+
}), _class_private_field_init(this, _onBeforeColumnResize, {
|
|
645
|
+
writable: true,
|
|
646
|
+
value: void 0
|
|
590
647
|
}), _class_private_field_init(this, _onBeforeRowResize, {
|
|
591
648
|
writable: true,
|
|
592
649
|
value: void 0
|
|
@@ -624,7 +681,10 @@ var /**
|
|
|
624
681
|
}
|
|
625
682
|
let cellMeta;
|
|
626
683
|
if (row >= 0 && column >= 0) {
|
|
627
|
-
|
|
684
|
+
// The transient read resolves the full dynamic meta (hooks + `cells`, so `hidden` from
|
|
685
|
+
// merged cells works) without storing anything - this sampler sweeps every row, and the
|
|
686
|
+
// eager `getCellMeta` would permanently materialize one meta per visited cell.
|
|
687
|
+
cellMeta = this.hot.getCellMetaTransient(row, column);
|
|
628
688
|
if (cellMeta.hidden) {
|
|
629
689
|
// do not generate samples for cells that are covered by merged cell (null values)
|
|
630
690
|
return false;
|
|
@@ -633,8 +693,10 @@ var /**
|
|
|
633
693
|
let cellValue;
|
|
634
694
|
if (row >= 0) {
|
|
635
695
|
cellValue = this.hot.getDataAtCell(row, column);
|
|
636
|
-
if (
|
|
637
|
-
|
|
696
|
+
if (cellMeta) {
|
|
697
|
+
// Format through the same precedence as the render path (cell-level `valueFormatter`, then
|
|
698
|
+
// the renderer's own static), so the measured string matches what the renderer produces.
|
|
699
|
+
cellValue = formatCellValue(cellValue, cellMeta, this.hot.getCellRenderer(cellMeta));
|
|
638
700
|
}
|
|
639
701
|
} else if (row === -1) {
|
|
640
702
|
cellValue = this.hot.getColHeader(column);
|
|
@@ -650,12 +712,7 @@ var /**
|
|
|
650
712
|
* Number of already measured rows (we already know their sizes).
|
|
651
713
|
*
|
|
652
714
|
* @type {number}
|
|
653
|
-
*/ this.measuredRows = 0,
|
|
654
|
-
* PhysicalIndexToValueMap to keep and track heights for physical row indexes.
|
|
655
|
-
*
|
|
656
|
-
* @private
|
|
657
|
-
* @type {PhysicalIndexToValueMap}
|
|
658
|
-
*/ this.rowHeightsMap = new IndexToValueMap(), _class_private_field_set(this, _visualRowsToRefresh, []), _class_private_field_set(this, _disposeMapObserver, null), _class_private_field_set(this, _isInitialized, false), _class_private_field_set(this, _onBeforeViewRender, ()=>{
|
|
715
|
+
*/ this.measuredRows = 0, _class_private_field_set(this, _visualRowsToRefresh, []), _class_private_field_set(this, _disposeMapObserver, null), _class_private_field_set(this, _isInitialized, false), _class_private_field_set(this, _columnResizeRecalcScheduled, false), _class_private_field_set(this, _onBeforeViewRender, ()=>{
|
|
659
716
|
_class_private_method_get(this, _toggleFirstDatasetColumnRenderedClassName, toggleFirstDatasetColumnRenderedClassName).call(this);
|
|
660
717
|
}), _class_private_field_set(this, _onBeforeRender, ()=>{
|
|
661
718
|
this.calculateVisibleRowsHeight();
|
|
@@ -663,6 +720,15 @@ var /**
|
|
|
663
720
|
_class_private_method_get(this, _calculateSpecificRowsHeight, calculateSpecificRowsHeight).call(this, _class_private_field_get(this, _visualRowsToRefresh));
|
|
664
721
|
_class_private_field_set(this, _visualRowsToRefresh, []);
|
|
665
722
|
}
|
|
723
|
+
}), _class_private_field_set(this, _onBeforeColumnResize, ()=>{
|
|
724
|
+
if (_class_private_field_get(this, _columnResizeRecalcScheduled)) {
|
|
725
|
+
return;
|
|
726
|
+
}
|
|
727
|
+
_class_private_field_set(this, _columnResizeRecalcScheduled, true);
|
|
728
|
+
this.hot._registerTimeout(()=>{
|
|
729
|
+
_class_private_field_set(this, _columnResizeRecalcScheduled, false);
|
|
730
|
+
this.recalculateAllRowsHeight();
|
|
731
|
+
}, 0);
|
|
666
732
|
}), _class_private_field_set(this, _onBeforeRowResize, (size, row, isDblClick)=>{
|
|
667
733
|
let newSize = size;
|
|
668
734
|
if (isDblClick) {
|
|
@@ -675,14 +741,13 @@ var /**
|
|
|
675
741
|
this.recalculateAllRowsHeight();
|
|
676
742
|
}
|
|
677
743
|
}), _class_private_field_set(this, _onBeforeChange, (changes)=>{
|
|
678
|
-
const changedRows =
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
}
|
|
685
|
-
_class_private_field_get(this, _visualRowsToRefresh).push(...changedRows);
|
|
744
|
+
const changedRows = new Set();
|
|
745
|
+
changes.forEach(([row])=>{
|
|
746
|
+
changedRows.add(Number(row));
|
|
747
|
+
});
|
|
748
|
+
changedRows.forEach((rowIndex)=>{
|
|
749
|
+
_class_private_field_get(this, _visualRowsToRefresh).push(rowIndex);
|
|
750
|
+
});
|
|
686
751
|
}), _class_private_field_set(this, _onInit, ()=>{
|
|
687
752
|
this.recalculateAllRowsHeight();
|
|
688
753
|
_class_private_field_set(this, _isInitialized, true);
|
|
@@ -708,7 +773,11 @@ var /**
|
|
|
708
773
|
}, []);
|
|
709
774
|
_class_private_field_get(this, _visualRowsToRefresh).push(...changedRows);
|
|
710
775
|
});
|
|
711
|
-
|
|
776
|
+
// The map holds numbers only, so re-writing an unchanged height is a no-op that must not
|
|
777
|
+
// invalidate the row-height position cache.
|
|
778
|
+
this.rowHeightsMap = this.hot.rowIndexMapper.createAndRegisterIndexMap(ROW_WIDTHS_MAP_NAME, 'physicalIndexToValue', null, {
|
|
779
|
+
skipUnchangedWrites: true
|
|
780
|
+
});
|
|
712
781
|
// Leave the listener active to allow auto-sizing the rows when the plugin is disabled.
|
|
713
782
|
// This is necessary for height recalculation for resize handler doubleclick (ManualRowResize).
|
|
714
783
|
this.addHook('beforeRowResize', _class_private_field_get(this, _onBeforeRowResize));
|
|
@@ -91,9 +91,11 @@ var /**
|
|
|
91
91
|
*
|
|
92
92
|
* @type {string|null}
|
|
93
93
|
*/ _currentDragDirection = /*#__PURE__*/ new WeakMap(), /**
|
|
94
|
-
* Last mouse client position.
|
|
94
|
+
* Last mouse client position. Stays `null` until the first `mousemove` of a drag, so a scroll
|
|
95
|
+
* that happens after pressing the fill handle but before any drag move is not replayed with a
|
|
96
|
+
* stale or default position.
|
|
95
97
|
*
|
|
96
|
-
* @type {{ clientX: number, clientY: number }}
|
|
98
|
+
* @type {{ clientX: number, clientY: number } | null}
|
|
97
99
|
*/ _lastMouseClientPosition = /*#__PURE__*/ new WeakMap(), /**
|
|
98
100
|
* Adjusts fill data for reverse drag directions ('up' or 'left') by reordering rows or columns.
|
|
99
101
|
*
|
|
@@ -138,6 +140,10 @@ var /**
|
|
|
138
140
|
* On mouse move listener.
|
|
139
141
|
*
|
|
140
142
|
* @param {MouseEvent} event `mousemove` event properties.
|
|
143
|
+
* @param {boolean} [countDragStep=true] Whether a move onto a new cell should be counted as a
|
|
144
|
+
* drag step. Only genuine pointer moves count; a scroll replay (see `#onAfterScroll`) redraws
|
|
145
|
+
* the border without counting, otherwise a scroll that shifts the cell under a resting pointer
|
|
146
|
+
* would register a drag that never happened.
|
|
141
147
|
*/ _onMouseMove = /*#__PURE__*/ new WeakSet(), /**
|
|
142
148
|
* Refreshes the autofill borders using the last mouse client position after scroll.
|
|
143
149
|
*/ _onAfterScroll = /*#__PURE__*/ new WeakMap();
|
|
@@ -253,15 +259,19 @@ class Autofill extends _base.BasePlugin {
|
|
|
253
259
|
]);
|
|
254
260
|
const copyableRows = [];
|
|
255
261
|
const copyableColumns = [];
|
|
262
|
+
const seenRows = new Set();
|
|
263
|
+
const seenColumns = new Set();
|
|
256
264
|
const data = [];
|
|
257
265
|
(0, _array.arrayEach)(copyableRanges, (range)=>{
|
|
258
266
|
for(let visualRow = range.startRow; visualRow <= range.endRow; visualRow += 1){
|
|
259
|
-
if (
|
|
267
|
+
if (!seenRows.has(visualRow)) {
|
|
268
|
+
seenRows.add(visualRow);
|
|
260
269
|
copyableRows.push(visualRow);
|
|
261
270
|
}
|
|
262
271
|
}
|
|
263
272
|
for(let visualColumn = range.startCol; visualColumn <= range.endCol; visualColumn += 1){
|
|
264
|
-
if (
|
|
273
|
+
if (!seenColumns.has(visualColumn)) {
|
|
274
|
+
seenColumns.add(visualColumn);
|
|
265
275
|
copyableColumns.push(visualColumn);
|
|
266
276
|
}
|
|
267
277
|
}
|
|
@@ -619,10 +629,7 @@ class Autofill extends _base.BasePlugin {
|
|
|
619
629
|
*
|
|
620
630
|
* @private
|
|
621
631
|
* @type {boolean}
|
|
622
|
-
*/ this.autoInsertRow = false, _class_private_field_set(this, _currentDragDirection, null), _class_private_field_set(this, _lastMouseClientPosition, {
|
|
623
|
-
clientX: 0,
|
|
624
|
-
clientY: 0
|
|
625
|
-
}), _class_private_field_set(this, _onCellCornerDblClick, ()=>{
|
|
632
|
+
*/ this.autoInsertRow = false, _class_private_field_set(this, _currentDragDirection, null), _class_private_field_set(this, _lastMouseClientPosition, null), _class_private_field_set(this, _onCellCornerDblClick, ()=>{
|
|
626
633
|
const selectionApplied = this.selectAdjacent();
|
|
627
634
|
if (selectionApplied) {
|
|
628
635
|
this.fillIn();
|
|
@@ -631,9 +638,10 @@ class Autofill extends _base.BasePlugin {
|
|
|
631
638
|
this.handleDraggedCells = 1;
|
|
632
639
|
this.mouseDownOnCellCorner = true;
|
|
633
640
|
_class_private_field_set(this, _currentDragDirection, null);
|
|
641
|
+
_class_private_field_set(this, _lastMouseClientPosition, null);
|
|
634
642
|
}), _class_private_field_set(this, _onAfterScroll, ()=>{
|
|
635
|
-
if (this.mouseDownOnCellCorner) {
|
|
636
|
-
_class_private_method_get(this, _onMouseMove, onMouseMove).call(this, _class_private_field_get(this, _lastMouseClientPosition));
|
|
643
|
+
if (this.mouseDownOnCellCorner && _class_private_field_get(this, _lastMouseClientPosition)) {
|
|
644
|
+
_class_private_method_get(this, _onMouseMove, onMouseMove).call(this, _class_private_field_get(this, _lastMouseClientPosition), false);
|
|
637
645
|
}
|
|
638
646
|
});
|
|
639
647
|
}
|
|
@@ -675,7 +683,9 @@ function extendFillDataWithSourceData(fillData, selectionSourceData, startOfDrag
|
|
|
675
683
|
fullFillData.push([]);
|
|
676
684
|
for(let columnIndex = Math.min(startOfDragCoords.col, endOfDragCoords.col); columnIndex <= Math.max(startOfDragCoords.col, endOfDragCoords.col); columnIndex += 1){
|
|
677
685
|
const targetCellSourceData = this.hot.getSourceDataAtCell(rowIndex, columnIndex);
|
|
678
|
-
|
|
686
|
+
// The transient read keeps a large drag-fill or fill-down from permanently materializing
|
|
687
|
+
// one meta object per filled cell - the loop only reads `source`/`_complexDataFormat`.
|
|
688
|
+
const cellMeta = this.hot.getCellMetaTransient(rowIndex, columnIndex);
|
|
679
689
|
const cellSource = cellMeta.source;
|
|
680
690
|
const cellSourceFirstItem = Array.isArray(cellSource) ? cellSource[0] : undefined;
|
|
681
691
|
const isComplexDataFormatCell = cellMeta._complexDataFormat || (0, _object.isObject)(cellSourceFirstItem) || Array.isArray(cellSourceFirstItem);
|
|
@@ -713,14 +723,22 @@ function onMouseUp() {
|
|
|
713
723
|
_class_private_field_set(this, _currentDragDirection, null);
|
|
714
724
|
}
|
|
715
725
|
}
|
|
716
|
-
function onMouseMove(event) {
|
|
726
|
+
function onMouseMove(event, countDragStep = true) {
|
|
717
727
|
if (this.mouseDownOnCellCorner) {
|
|
718
728
|
const { clientX, clientY } = event;
|
|
719
729
|
const cellCoords = (0, _cellCoords.getCellCoordsFromMousePosition)(this.hot, clientX, clientY);
|
|
730
|
+
const selectedRange = this.hot.getSelectedRangeLast();
|
|
720
731
|
_class_private_field_set(this, _lastMouseClientPosition, {
|
|
721
732
|
clientX,
|
|
722
733
|
clientY
|
|
723
734
|
});
|
|
735
|
+
// The `beforeOnCellMouseOver`-based counting doesn't fire when the pointer leaves
|
|
736
|
+
// the table element (e.g. dragging the last column's fill handle at a slight angle,
|
|
737
|
+
// past the table's edge), so count the drag here as well. Otherwise the fill made
|
|
738
|
+
// with such a drag would never be committed on mouseup.
|
|
739
|
+
if (countDragStep && this.handleDraggedCells > 0 && selectedRange && !selectedRange.includes(cellCoords)) {
|
|
740
|
+
this.handleDraggedCells += 1;
|
|
741
|
+
}
|
|
724
742
|
this.redrawBorders(cellCoords);
|
|
725
743
|
}
|
|
726
744
|
const mouseWasDraggedOutside = this.getIfMouseWasDraggedOutside(event);
|