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
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The workspace-size and scroll-detection queries for `Viewport`, plus the mixin object that
|
|
3
|
+
* implements them.
|
|
4
|
+
*
|
|
5
|
+
* These methods answer "how big is the drawable area and will scrollbars appear" — the workspace and
|
|
6
|
+
* viewport dimensions, the row-header width / column-header height (with their lazy caches), the
|
|
7
|
+
* scrollbar-presence checks, and the window-scrollability checks. They are applied to `Viewport` with
|
|
8
|
+
* the same `mixin()` helper the range-query and sticky mixins use and reach the injected deps through
|
|
9
|
+
* the public `this.deps` getter (a mixin cannot see the class's `#deps` private field).
|
|
10
|
+
*
|
|
11
|
+
* On the single-pass gated path these read the per-draw `LayoutSnapshot` instead of forcing DOM
|
|
12
|
+
* layout; off that path they measure the DOM directly.
|
|
13
|
+
*/ "use strict";
|
|
14
|
+
Object.defineProperty(exports, "__esModule", {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
function _export(target, all) {
|
|
18
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
_export(exports, {
|
|
24
|
+
get measureWorkspaceHeight () {
|
|
25
|
+
return measureWorkspaceHeight;
|
|
26
|
+
},
|
|
27
|
+
get measureWorkspaceWidth () {
|
|
28
|
+
return measureWorkspaceWidth;
|
|
29
|
+
},
|
|
30
|
+
get workspaceSize () {
|
|
31
|
+
return workspaceSize;
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
/**
|
|
35
|
+
* Legacy (pre-single-pass) vertical-scroll check: measures the rendered DOM. Used when the
|
|
36
|
+
* `singlePassLayout` escape hatch is off (e.g. under `mergeCells`) so the answer matches the
|
|
37
|
+
* multi-pass measure-then-render behavior exactly. Kept as a free function so it does not route
|
|
38
|
+
* through `hasVerticalScroll` (which branches on the flag) and cannot recurse.
|
|
39
|
+
*
|
|
40
|
+
* @param {Viewport} viewport The viewport instance.
|
|
41
|
+
* @returns {boolean}
|
|
42
|
+
*/ function measureHasVerticalScroll(viewport) {
|
|
43
|
+
const { geometryReader } = viewport.deps;
|
|
44
|
+
if (viewport.isVerticallyScrollableByWindow()) {
|
|
45
|
+
const documentElement = viewport.deps.rootDocument.documentElement;
|
|
46
|
+
return geometryReader.scrollHeight(documentElement) > geometryReader.clientHeight(documentElement);
|
|
47
|
+
}
|
|
48
|
+
const { holder, hider } = viewport.wtTable;
|
|
49
|
+
const holderHeight = geometryReader.clientHeight(holder);
|
|
50
|
+
const hiderOffsetHeight = geometryReader.offsetHeight(hider);
|
|
51
|
+
if (holderHeight < hiderOffsetHeight) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
return hiderOffsetHeight > viewport.getWorkspaceHeight();
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Legacy (pre-single-pass) horizontal-scroll check: measures the rendered DOM. Escape-hatch twin of
|
|
58
|
+
* `measureHasVerticalScroll`.
|
|
59
|
+
*
|
|
60
|
+
* @param {Viewport} viewport The viewport instance.
|
|
61
|
+
* @returns {boolean}
|
|
62
|
+
*/ function measureHasHorizontalScroll(viewport) {
|
|
63
|
+
const { geometryReader } = viewport.deps;
|
|
64
|
+
if (viewport.isVerticallyScrollableByWindow()) {
|
|
65
|
+
const documentElement = viewport.deps.rootDocument.documentElement;
|
|
66
|
+
return geometryReader.scrollWidth(documentElement) > geometryReader.clientWidth(documentElement);
|
|
67
|
+
}
|
|
68
|
+
const { hider } = viewport.wtTable;
|
|
69
|
+
const hiderOffsetWidth = geometryReader.offsetWidth(hider);
|
|
70
|
+
const scrollbarWidth = measureHasVerticalScroll(viewport) ? geometryReader.getScrollbarWidth() : 0;
|
|
71
|
+
return hiderOffsetWidth > measureWorkspaceWidth(viewport) - scrollbarWidth;
|
|
72
|
+
}
|
|
73
|
+
function measureWorkspaceHeight(viewport) {
|
|
74
|
+
const { rootDocument: currentDocument, rootWindow, geometryReader } = viewport.deps;
|
|
75
|
+
const trimmingContainer = viewport.deps.getTopOverlay().trimmingContainer;
|
|
76
|
+
let height = 0;
|
|
77
|
+
if (trimmingContainer === rootWindow) {
|
|
78
|
+
height = geometryReader.clientHeight(currentDocument.documentElement);
|
|
79
|
+
} else {
|
|
80
|
+
const elemHeight = geometryReader.outerHeight(trimmingContainer);
|
|
81
|
+
// returns height without DIV scrollbar
|
|
82
|
+
if (elemHeight > 0 && geometryReader.clientHeight(trimmingContainer) > 0) {
|
|
83
|
+
height = geometryReader.clientHeight(trimmingContainer);
|
|
84
|
+
} else {
|
|
85
|
+
// Fall back to window height when the trimming container has zero client height
|
|
86
|
+
// (e.g. a parent with overflow set but no explicit height). Returning Infinity
|
|
87
|
+
// previously caused an unbounded viewport, expanding the parent to the browser's
|
|
88
|
+
// ~2^25 px CSS height limit. See issue #3119.
|
|
89
|
+
height = Math.max(geometryReader.clientHeight(currentDocument.documentElement), 1);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return height;
|
|
93
|
+
}
|
|
94
|
+
function measureWorkspaceWidth(viewport) {
|
|
95
|
+
const { rootDocument, rootWindow, geometryReader } = viewport.deps;
|
|
96
|
+
const trimmingContainer = viewport.deps.getInlineStartOverlay().trimmingContainer;
|
|
97
|
+
let width;
|
|
98
|
+
if (trimmingContainer === rootWindow) {
|
|
99
|
+
const totalColumns = viewport.wtSettings.getSetting('totalColumns');
|
|
100
|
+
width = geometryReader.offsetWidth(viewport.wtTable.holder);
|
|
101
|
+
if (viewport.getRowHeaderWidth() + viewport.sumColumnWidths(0, totalColumns) > width) {
|
|
102
|
+
width = geometryReader.clientWidth(rootDocument.documentElement);
|
|
103
|
+
}
|
|
104
|
+
} else {
|
|
105
|
+
width = geometryReader.clientWidth(trimmingContainer);
|
|
106
|
+
}
|
|
107
|
+
return width;
|
|
108
|
+
}
|
|
109
|
+
const workspaceSize = {
|
|
110
|
+
/**
|
|
111
|
+
* @this Viewport
|
|
112
|
+
* @returns {number}
|
|
113
|
+
*/ getWorkspaceHeight () {
|
|
114
|
+
// The workspace box is resolved once per draw into the layout snapshot (`gatherLayoutInput` →
|
|
115
|
+
// `measureWorkspaceHeight`). On the gated path (element mode + uniform + `singlePassLayout`)
|
|
116
|
+
// return that stored value so the per-draw re-measures collapse to the one read the snapshot
|
|
117
|
+
// already did (identical value — the trimming container does not resize mid-draw — so this only
|
|
118
|
+
// removes forced layouts). Off that path (window / non-uniform) measure the DOM directly.
|
|
119
|
+
if (this.usesLayoutSnapshotForCalculators()) {
|
|
120
|
+
return this.getLayout().workspaceHeight;
|
|
121
|
+
}
|
|
122
|
+
return measureWorkspaceHeight(this);
|
|
123
|
+
},
|
|
124
|
+
/**
|
|
125
|
+
* @this Viewport
|
|
126
|
+
* @returns {number}
|
|
127
|
+
*/ getViewportHeight () {
|
|
128
|
+
let containerHeight = this.getWorkspaceHeight();
|
|
129
|
+
const columnHeaderHeight = this.getColumnHeaderHeight();
|
|
130
|
+
if (columnHeaderHeight > 0) {
|
|
131
|
+
containerHeight -= columnHeaderHeight;
|
|
132
|
+
}
|
|
133
|
+
return containerHeight;
|
|
134
|
+
},
|
|
135
|
+
/**
|
|
136
|
+
* Gets the width of the table workspace (in pixels). The workspace size in the current
|
|
137
|
+
* implementation returns the width of the table holder element including scrollbar width when
|
|
138
|
+
* the table has defined size and the width of the window excluding scrollbar width when
|
|
139
|
+
* the table has no defined size (the window is a scrollable container).
|
|
140
|
+
*
|
|
141
|
+
* This is a bug, as the method should always return stable values, always without scrollbar width.
|
|
142
|
+
* Changing this behavior would break the column calculators, which would also need to be adjusted.
|
|
143
|
+
*
|
|
144
|
+
* @this Viewport
|
|
145
|
+
* @returns {number}
|
|
146
|
+
*/ getWorkspaceWidth () {
|
|
147
|
+
// Return the workspace width the snapshot already resolved this draw (same gate and
|
|
148
|
+
// identical-value rationale as `getWorkspaceHeight`). Off the gated path, measure the DOM.
|
|
149
|
+
if (this.usesLayoutSnapshotForCalculators()) {
|
|
150
|
+
return this.getLayout().workspaceWidth;
|
|
151
|
+
}
|
|
152
|
+
return measureWorkspaceWidth(this);
|
|
153
|
+
},
|
|
154
|
+
/**
|
|
155
|
+
* @this Viewport
|
|
156
|
+
* @returns {number}
|
|
157
|
+
*/ getViewportWidth () {
|
|
158
|
+
const containerWidth = this.getWorkspaceWidth();
|
|
159
|
+
const rowHeaderWidth = this.getRowHeaderWidth();
|
|
160
|
+
if (rowHeaderWidth > 0) {
|
|
161
|
+
return containerWidth - rowHeaderWidth;
|
|
162
|
+
}
|
|
163
|
+
return containerWidth;
|
|
164
|
+
},
|
|
165
|
+
/**
|
|
166
|
+
* Checks if viewport has vertical scroll.
|
|
167
|
+
*
|
|
168
|
+
* @this Viewport
|
|
169
|
+
* @returns {boolean}
|
|
170
|
+
*/ hasVerticalScroll () {
|
|
171
|
+
// Measure the rendered DOM (legacy V18 path) when either:
|
|
172
|
+
// - single-pass layout is off (escape hatch, e.g. mergeCells), or
|
|
173
|
+
// - the table scrolls with the window: the document's scroll depends on other page content, so
|
|
174
|
+
// predicting it from this table's content totals is unreliable. Single-pass prediction is
|
|
175
|
+
// scoped to element mode, where content-vs-box is deterministic (and validated by test:walkontable).
|
|
176
|
+
if (!this.wtSettings.getSetting('singlePassLayout') || this.isVerticallyScrollableByWindow()) {
|
|
177
|
+
return measureHasVerticalScroll(this);
|
|
178
|
+
}
|
|
179
|
+
// Predict scrollbar presence from numbers in the layout snapshot, so it is correct before the DOM
|
|
180
|
+
// is written — instead of measuring the rendered `hider` (which is only right on a second pass).
|
|
181
|
+
return this.getLayout().hasVerticalScroll;
|
|
182
|
+
},
|
|
183
|
+
/**
|
|
184
|
+
* Checks if viewport has horizontal scroll.
|
|
185
|
+
*
|
|
186
|
+
* @this Viewport
|
|
187
|
+
* @returns {boolean}
|
|
188
|
+
*/ hasHorizontalScroll () {
|
|
189
|
+
// Measure the DOM (legacy) when single-pass is off (escape hatch) or the table scrolls with the
|
|
190
|
+
// window (document scroll is externally influenced); predict only in element mode. See
|
|
191
|
+
// `hasVerticalScroll` for the rationale.
|
|
192
|
+
if (!this.wtSettings.getSetting('singlePassLayout') || this.isVerticallyScrollableByWindow()) {
|
|
193
|
+
return measureHasHorizontalScroll(this);
|
|
194
|
+
}
|
|
195
|
+
// Predicted from the layout snapshot, correct pre-render.
|
|
196
|
+
return this.getLayout().hasHorizontalScroll;
|
|
197
|
+
},
|
|
198
|
+
/**
|
|
199
|
+
* Checks if the table uses the window as a viewport and if there is a vertical scrollbar.
|
|
200
|
+
*
|
|
201
|
+
* @this Viewport
|
|
202
|
+
* @returns {boolean}
|
|
203
|
+
*/ isVerticallyScrollableByWindow () {
|
|
204
|
+
return this.deps.getTopOverlay().trimmingContainer === this.deps.rootWindow;
|
|
205
|
+
},
|
|
206
|
+
/**
|
|
207
|
+
* Checks if the table uses the window as a viewport and if there is a horizontal scrollbar.
|
|
208
|
+
*
|
|
209
|
+
* @this Viewport
|
|
210
|
+
* @returns {boolean}
|
|
211
|
+
*/ isHorizontallyScrollableByWindow () {
|
|
212
|
+
return this.deps.getInlineStartOverlay().trimmingContainer === this.deps.rootWindow;
|
|
213
|
+
},
|
|
214
|
+
/**
|
|
215
|
+
* Sums the column widths live (no cache). Stretched widths (`stretchH`) are derived from the
|
|
216
|
+
* workspace width, which itself depends on this sum — the live walk resolves that cycle fresh
|
|
217
|
+
* on every call, while the column-width prefix-sum cache would freeze pre-stretch values.
|
|
218
|
+
*
|
|
219
|
+
* @this Viewport
|
|
220
|
+
* @param {number} from The visual column index from the width sum is start calculated.
|
|
221
|
+
* @param {number} length The length of the column to traverse.
|
|
222
|
+
* @returns {number}
|
|
223
|
+
*/ sumColumnWidths (from, length) {
|
|
224
|
+
let sum = 0;
|
|
225
|
+
let column = from;
|
|
226
|
+
while(column < length){
|
|
227
|
+
sum += this.wtTable.getColumnWidth(column);
|
|
228
|
+
column += 1;
|
|
229
|
+
}
|
|
230
|
+
return sum;
|
|
231
|
+
},
|
|
232
|
+
/**
|
|
233
|
+
* @this Viewport
|
|
234
|
+
* @returns {{ left: number, top: number }}
|
|
235
|
+
*/ getWorkspaceOffset () {
|
|
236
|
+
return this.deps.geometryReader.offset(this.wtTable.holder);
|
|
237
|
+
},
|
|
238
|
+
/**
|
|
239
|
+
* @this Viewport
|
|
240
|
+
* @returns {number}
|
|
241
|
+
*/ getColumnHeaderHeight () {
|
|
242
|
+
const columnHeaders = this.wtSettings.getSetting('columnHeaders');
|
|
243
|
+
if (!columnHeaders.length) {
|
|
244
|
+
this.columnHeaderHeight = 0;
|
|
245
|
+
} else if (isNaN(this.columnHeaderHeight)) {
|
|
246
|
+
this.columnHeaderHeight = this.wtTable.THEAD ? this.deps.geometryReader.outerHeight(this.wtTable.THEAD) : 0;
|
|
247
|
+
}
|
|
248
|
+
return this.columnHeaderHeight;
|
|
249
|
+
},
|
|
250
|
+
/**
|
|
251
|
+
* @this Viewport
|
|
252
|
+
* @returns {number}
|
|
253
|
+
*/ getRowHeaderWidth () {
|
|
254
|
+
const rowHeadersWidthSetting = this.wtSettings.getSetting('rowHeaderWidth');
|
|
255
|
+
const rowHeaders = this.wtSettings.getSetting('rowHeaders');
|
|
256
|
+
if (rowHeadersWidthSetting) {
|
|
257
|
+
this.rowHeaderWidth = 0;
|
|
258
|
+
for(let i = 0, len = rowHeaders.length; i < len; i++){
|
|
259
|
+
const w = Array.isArray(rowHeadersWidthSetting) ? rowHeadersWidthSetting[i] : rowHeadersWidthSetting;
|
|
260
|
+
this.rowHeaderWidth += w ?? NaN;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
if (isNaN(this.rowHeaderWidth)) {
|
|
264
|
+
if (rowHeaders.length) {
|
|
265
|
+
let TH = this.wtTable.TABLE.querySelector('TH');
|
|
266
|
+
this.rowHeaderWidth = 0;
|
|
267
|
+
for(let i = 0, len = rowHeaders.length; i < len; i++){
|
|
268
|
+
if (TH) {
|
|
269
|
+
this.rowHeaderWidth += this.deps.geometryReader.outerWidth(TH);
|
|
270
|
+
TH = TH.nextSibling;
|
|
271
|
+
} else {
|
|
272
|
+
// yes this is a cheat but it worked like that before, just taking assumption from CSS instead of measuring.
|
|
273
|
+
// TODO: proper fix
|
|
274
|
+
this.rowHeaderWidth += 50;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
} else {
|
|
278
|
+
this.rowHeaderWidth = 0;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
this.rowHeaderWidth = this.wtSettings.getSetting('onModifyRowHeaderWidth', this.rowHeaderWidth) || this.rowHeaderWidth;
|
|
282
|
+
return this.rowHeaderWidth;
|
|
283
|
+
}
|
|
284
|
+
};
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The workspace-size and scroll-detection queries for `Viewport`, plus the mixin object that
|
|
3
|
+
* implements them.
|
|
4
|
+
*
|
|
5
|
+
* These methods answer "how big is the drawable area and will scrollbars appear" — the workspace and
|
|
6
|
+
* viewport dimensions, the row-header width / column-header height (with their lazy caches), the
|
|
7
|
+
* scrollbar-presence checks, and the window-scrollability checks. They are applied to `Viewport` with
|
|
8
|
+
* the same `mixin()` helper the range-query and sticky mixins use and reach the injected deps through
|
|
9
|
+
* the public `this.deps` getter (a mixin cannot see the class's `#deps` private field).
|
|
10
|
+
*
|
|
11
|
+
* On the single-pass gated path these read the per-draw `LayoutSnapshot` instead of forcing DOM
|
|
12
|
+
* layout; off that path they measure the DOM directly.
|
|
13
|
+
*/ /**
|
|
14
|
+
* Legacy (pre-single-pass) vertical-scroll check: measures the rendered DOM. Used when the
|
|
15
|
+
* `singlePassLayout` escape hatch is off (e.g. under `mergeCells`) so the answer matches the
|
|
16
|
+
* multi-pass measure-then-render behavior exactly. Kept as a free function so it does not route
|
|
17
|
+
* through `hasVerticalScroll` (which branches on the flag) and cannot recurse.
|
|
18
|
+
*
|
|
19
|
+
* @param {Viewport} viewport The viewport instance.
|
|
20
|
+
* @returns {boolean}
|
|
21
|
+
*/ function measureHasVerticalScroll(viewport) {
|
|
22
|
+
const { geometryReader } = viewport.deps;
|
|
23
|
+
if (viewport.isVerticallyScrollableByWindow()) {
|
|
24
|
+
const documentElement = viewport.deps.rootDocument.documentElement;
|
|
25
|
+
return geometryReader.scrollHeight(documentElement) > geometryReader.clientHeight(documentElement);
|
|
26
|
+
}
|
|
27
|
+
const { holder, hider } = viewport.wtTable;
|
|
28
|
+
const holderHeight = geometryReader.clientHeight(holder);
|
|
29
|
+
const hiderOffsetHeight = geometryReader.offsetHeight(hider);
|
|
30
|
+
if (holderHeight < hiderOffsetHeight) {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
return hiderOffsetHeight > viewport.getWorkspaceHeight();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Legacy (pre-single-pass) horizontal-scroll check: measures the rendered DOM. Escape-hatch twin of
|
|
37
|
+
* `measureHasVerticalScroll`.
|
|
38
|
+
*
|
|
39
|
+
* @param {Viewport} viewport The viewport instance.
|
|
40
|
+
* @returns {boolean}
|
|
41
|
+
*/ function measureHasHorizontalScroll(viewport) {
|
|
42
|
+
const { geometryReader } = viewport.deps;
|
|
43
|
+
if (viewport.isVerticallyScrollableByWindow()) {
|
|
44
|
+
const documentElement = viewport.deps.rootDocument.documentElement;
|
|
45
|
+
return geometryReader.scrollWidth(documentElement) > geometryReader.clientWidth(documentElement);
|
|
46
|
+
}
|
|
47
|
+
const { hider } = viewport.wtTable;
|
|
48
|
+
const hiderOffsetWidth = geometryReader.offsetWidth(hider);
|
|
49
|
+
const scrollbarWidth = measureHasVerticalScroll(viewport) ? geometryReader.getScrollbarWidth() : 0;
|
|
50
|
+
return hiderOffsetWidth > measureWorkspaceWidth(viewport) - scrollbarWidth;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Measures the workspace height off the live DOM (the trimming container, with the `#3119`
|
|
54
|
+
* zero-height→window fallback). Kept as a free function so the public `getWorkspaceHeight` can return
|
|
55
|
+
* the layout snapshot on the single-pass path while `gatherLayoutInput` (which BUILDS the snapshot)
|
|
56
|
+
* and the legacy measure path route here directly, avoiding recursion through `getLayout()`.
|
|
57
|
+
*
|
|
58
|
+
* @param {Viewport} viewport The viewport instance.
|
|
59
|
+
* @returns {number}
|
|
60
|
+
*/ export function measureWorkspaceHeight(viewport) {
|
|
61
|
+
const { rootDocument: currentDocument, rootWindow, geometryReader } = viewport.deps;
|
|
62
|
+
const trimmingContainer = viewport.deps.getTopOverlay().trimmingContainer;
|
|
63
|
+
let height = 0;
|
|
64
|
+
if (trimmingContainer === rootWindow) {
|
|
65
|
+
height = geometryReader.clientHeight(currentDocument.documentElement);
|
|
66
|
+
} else {
|
|
67
|
+
const elemHeight = geometryReader.outerHeight(trimmingContainer);
|
|
68
|
+
// returns height without DIV scrollbar
|
|
69
|
+
if (elemHeight > 0 && geometryReader.clientHeight(trimmingContainer) > 0) {
|
|
70
|
+
height = geometryReader.clientHeight(trimmingContainer);
|
|
71
|
+
} else {
|
|
72
|
+
// Fall back to window height when the trimming container has zero client height
|
|
73
|
+
// (e.g. a parent with overflow set but no explicit height). Returning Infinity
|
|
74
|
+
// previously caused an unbounded viewport, expanding the parent to the browser's
|
|
75
|
+
// ~2^25 px CSS height limit. See issue #3119.
|
|
76
|
+
height = Math.max(geometryReader.clientHeight(currentDocument.documentElement), 1);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return height;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Measures the workspace width off the live DOM. Free-function twin of `measureWorkspaceHeight` (see
|
|
83
|
+
* its note on why the raw measure is split out from the public `getWorkspaceWidth`).
|
|
84
|
+
*
|
|
85
|
+
* @param {Viewport} viewport The viewport instance.
|
|
86
|
+
* @returns {number}
|
|
87
|
+
*/ export function measureWorkspaceWidth(viewport) {
|
|
88
|
+
const { rootDocument, rootWindow, geometryReader } = viewport.deps;
|
|
89
|
+
const trimmingContainer = viewport.deps.getInlineStartOverlay().trimmingContainer;
|
|
90
|
+
let width;
|
|
91
|
+
if (trimmingContainer === rootWindow) {
|
|
92
|
+
const totalColumns = viewport.wtSettings.getSetting('totalColumns');
|
|
93
|
+
width = geometryReader.offsetWidth(viewport.wtTable.holder);
|
|
94
|
+
if (viewport.getRowHeaderWidth() + viewport.sumColumnWidths(0, totalColumns) > width) {
|
|
95
|
+
width = geometryReader.clientWidth(rootDocument.documentElement);
|
|
96
|
+
}
|
|
97
|
+
} else {
|
|
98
|
+
width = geometryReader.clientWidth(trimmingContainer);
|
|
99
|
+
}
|
|
100
|
+
return width;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* The workspace-size mixin. Implements `WorkspaceSize` by measuring the trimming container and the
|
|
104
|
+
* rendered table through the geometry reader.
|
|
105
|
+
*
|
|
106
|
+
* @type {WorkspaceSize}
|
|
107
|
+
*/ export const workspaceSize = {
|
|
108
|
+
/**
|
|
109
|
+
* @this Viewport
|
|
110
|
+
* @returns {number}
|
|
111
|
+
*/ getWorkspaceHeight () {
|
|
112
|
+
// The workspace box is resolved once per draw into the layout snapshot (`gatherLayoutInput` →
|
|
113
|
+
// `measureWorkspaceHeight`). On the gated path (element mode + uniform + `singlePassLayout`)
|
|
114
|
+
// return that stored value so the per-draw re-measures collapse to the one read the snapshot
|
|
115
|
+
// already did (identical value — the trimming container does not resize mid-draw — so this only
|
|
116
|
+
// removes forced layouts). Off that path (window / non-uniform) measure the DOM directly.
|
|
117
|
+
if (this.usesLayoutSnapshotForCalculators()) {
|
|
118
|
+
return this.getLayout().workspaceHeight;
|
|
119
|
+
}
|
|
120
|
+
return measureWorkspaceHeight(this);
|
|
121
|
+
},
|
|
122
|
+
/**
|
|
123
|
+
* @this Viewport
|
|
124
|
+
* @returns {number}
|
|
125
|
+
*/ getViewportHeight () {
|
|
126
|
+
let containerHeight = this.getWorkspaceHeight();
|
|
127
|
+
const columnHeaderHeight = this.getColumnHeaderHeight();
|
|
128
|
+
if (columnHeaderHeight > 0) {
|
|
129
|
+
containerHeight -= columnHeaderHeight;
|
|
130
|
+
}
|
|
131
|
+
return containerHeight;
|
|
132
|
+
},
|
|
133
|
+
/**
|
|
134
|
+
* Gets the width of the table workspace (in pixels). The workspace size in the current
|
|
135
|
+
* implementation returns the width of the table holder element including scrollbar width when
|
|
136
|
+
* the table has defined size and the width of the window excluding scrollbar width when
|
|
137
|
+
* the table has no defined size (the window is a scrollable container).
|
|
138
|
+
*
|
|
139
|
+
* This is a bug, as the method should always return stable values, always without scrollbar width.
|
|
140
|
+
* Changing this behavior would break the column calculators, which would also need to be adjusted.
|
|
141
|
+
*
|
|
142
|
+
* @this Viewport
|
|
143
|
+
* @returns {number}
|
|
144
|
+
*/ getWorkspaceWidth () {
|
|
145
|
+
// Return the workspace width the snapshot already resolved this draw (same gate and
|
|
146
|
+
// identical-value rationale as `getWorkspaceHeight`). Off the gated path, measure the DOM.
|
|
147
|
+
if (this.usesLayoutSnapshotForCalculators()) {
|
|
148
|
+
return this.getLayout().workspaceWidth;
|
|
149
|
+
}
|
|
150
|
+
return measureWorkspaceWidth(this);
|
|
151
|
+
},
|
|
152
|
+
/**
|
|
153
|
+
* @this Viewport
|
|
154
|
+
* @returns {number}
|
|
155
|
+
*/ getViewportWidth () {
|
|
156
|
+
const containerWidth = this.getWorkspaceWidth();
|
|
157
|
+
const rowHeaderWidth = this.getRowHeaderWidth();
|
|
158
|
+
if (rowHeaderWidth > 0) {
|
|
159
|
+
return containerWidth - rowHeaderWidth;
|
|
160
|
+
}
|
|
161
|
+
return containerWidth;
|
|
162
|
+
},
|
|
163
|
+
/**
|
|
164
|
+
* Checks if viewport has vertical scroll.
|
|
165
|
+
*
|
|
166
|
+
* @this Viewport
|
|
167
|
+
* @returns {boolean}
|
|
168
|
+
*/ hasVerticalScroll () {
|
|
169
|
+
// Measure the rendered DOM (legacy V18 path) when either:
|
|
170
|
+
// - single-pass layout is off (escape hatch, e.g. mergeCells), or
|
|
171
|
+
// - the table scrolls with the window: the document's scroll depends on other page content, so
|
|
172
|
+
// predicting it from this table's content totals is unreliable. Single-pass prediction is
|
|
173
|
+
// scoped to element mode, where content-vs-box is deterministic (and validated by test:walkontable).
|
|
174
|
+
if (!this.wtSettings.getSetting('singlePassLayout') || this.isVerticallyScrollableByWindow()) {
|
|
175
|
+
return measureHasVerticalScroll(this);
|
|
176
|
+
}
|
|
177
|
+
// Predict scrollbar presence from numbers in the layout snapshot, so it is correct before the DOM
|
|
178
|
+
// is written — instead of measuring the rendered `hider` (which is only right on a second pass).
|
|
179
|
+
return this.getLayout().hasVerticalScroll;
|
|
180
|
+
},
|
|
181
|
+
/**
|
|
182
|
+
* Checks if viewport has horizontal scroll.
|
|
183
|
+
*
|
|
184
|
+
* @this Viewport
|
|
185
|
+
* @returns {boolean}
|
|
186
|
+
*/ hasHorizontalScroll () {
|
|
187
|
+
// Measure the DOM (legacy) when single-pass is off (escape hatch) or the table scrolls with the
|
|
188
|
+
// window (document scroll is externally influenced); predict only in element mode. See
|
|
189
|
+
// `hasVerticalScroll` for the rationale.
|
|
190
|
+
if (!this.wtSettings.getSetting('singlePassLayout') || this.isVerticallyScrollableByWindow()) {
|
|
191
|
+
return measureHasHorizontalScroll(this);
|
|
192
|
+
}
|
|
193
|
+
// Predicted from the layout snapshot, correct pre-render.
|
|
194
|
+
return this.getLayout().hasHorizontalScroll;
|
|
195
|
+
},
|
|
196
|
+
/**
|
|
197
|
+
* Checks if the table uses the window as a viewport and if there is a vertical scrollbar.
|
|
198
|
+
*
|
|
199
|
+
* @this Viewport
|
|
200
|
+
* @returns {boolean}
|
|
201
|
+
*/ isVerticallyScrollableByWindow () {
|
|
202
|
+
return this.deps.getTopOverlay().trimmingContainer === this.deps.rootWindow;
|
|
203
|
+
},
|
|
204
|
+
/**
|
|
205
|
+
* Checks if the table uses the window as a viewport and if there is a horizontal scrollbar.
|
|
206
|
+
*
|
|
207
|
+
* @this Viewport
|
|
208
|
+
* @returns {boolean}
|
|
209
|
+
*/ isHorizontallyScrollableByWindow () {
|
|
210
|
+
return this.deps.getInlineStartOverlay().trimmingContainer === this.deps.rootWindow;
|
|
211
|
+
},
|
|
212
|
+
/**
|
|
213
|
+
* Sums the column widths live (no cache). Stretched widths (`stretchH`) are derived from the
|
|
214
|
+
* workspace width, which itself depends on this sum — the live walk resolves that cycle fresh
|
|
215
|
+
* on every call, while the column-width prefix-sum cache would freeze pre-stretch values.
|
|
216
|
+
*
|
|
217
|
+
* @this Viewport
|
|
218
|
+
* @param {number} from The visual column index from the width sum is start calculated.
|
|
219
|
+
* @param {number} length The length of the column to traverse.
|
|
220
|
+
* @returns {number}
|
|
221
|
+
*/ sumColumnWidths (from, length) {
|
|
222
|
+
let sum = 0;
|
|
223
|
+
let column = from;
|
|
224
|
+
while(column < length){
|
|
225
|
+
sum += this.wtTable.getColumnWidth(column);
|
|
226
|
+
column += 1;
|
|
227
|
+
}
|
|
228
|
+
return sum;
|
|
229
|
+
},
|
|
230
|
+
/**
|
|
231
|
+
* @this Viewport
|
|
232
|
+
* @returns {{ left: number, top: number }}
|
|
233
|
+
*/ getWorkspaceOffset () {
|
|
234
|
+
return this.deps.geometryReader.offset(this.wtTable.holder);
|
|
235
|
+
},
|
|
236
|
+
/**
|
|
237
|
+
* @this Viewport
|
|
238
|
+
* @returns {number}
|
|
239
|
+
*/ getColumnHeaderHeight () {
|
|
240
|
+
const columnHeaders = this.wtSettings.getSetting('columnHeaders');
|
|
241
|
+
if (!columnHeaders.length) {
|
|
242
|
+
this.columnHeaderHeight = 0;
|
|
243
|
+
} else if (isNaN(this.columnHeaderHeight)) {
|
|
244
|
+
this.columnHeaderHeight = this.wtTable.THEAD ? this.deps.geometryReader.outerHeight(this.wtTable.THEAD) : 0;
|
|
245
|
+
}
|
|
246
|
+
return this.columnHeaderHeight;
|
|
247
|
+
},
|
|
248
|
+
/**
|
|
249
|
+
* @this Viewport
|
|
250
|
+
* @returns {number}
|
|
251
|
+
*/ getRowHeaderWidth () {
|
|
252
|
+
const rowHeadersWidthSetting = this.wtSettings.getSetting('rowHeaderWidth');
|
|
253
|
+
const rowHeaders = this.wtSettings.getSetting('rowHeaders');
|
|
254
|
+
if (rowHeadersWidthSetting) {
|
|
255
|
+
this.rowHeaderWidth = 0;
|
|
256
|
+
for(let i = 0, len = rowHeaders.length; i < len; i++){
|
|
257
|
+
const w = Array.isArray(rowHeadersWidthSetting) ? rowHeadersWidthSetting[i] : rowHeadersWidthSetting;
|
|
258
|
+
this.rowHeaderWidth += w ?? NaN;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
if (isNaN(this.rowHeaderWidth)) {
|
|
262
|
+
if (rowHeaders.length) {
|
|
263
|
+
let TH = this.wtTable.TABLE.querySelector('TH');
|
|
264
|
+
this.rowHeaderWidth = 0;
|
|
265
|
+
for(let i = 0, len = rowHeaders.length; i < len; i++){
|
|
266
|
+
if (TH) {
|
|
267
|
+
this.rowHeaderWidth += this.deps.geometryReader.outerWidth(TH);
|
|
268
|
+
TH = TH.nextSibling;
|
|
269
|
+
} else {
|
|
270
|
+
// yes this is a cheat but it worked like that before, just taking assumption from CSS instead of measuring.
|
|
271
|
+
// TODO: proper fix
|
|
272
|
+
this.rowHeaderWidth += 50;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
} else {
|
|
276
|
+
this.rowHeaderWidth = 0;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
this.rowHeaderWidth = this.wtSettings.getSetting('onModifyRowHeaderWidth', this.rowHeaderWidth) || this.rowHeaderWidth;
|
|
280
|
+
return this.rowHeaderWidth;
|
|
281
|
+
}
|
|
282
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './wire.js';
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composition root for the Walkontable rendering engine.
|
|
3
|
+
*
|
|
4
|
+
* `buildContext()` assembles the single `EngineContext` — the stable references (settings, DOM
|
|
5
|
+
* window, geometry-read port) plus every late-bound and cyclic dependency, each defined ONCE as a
|
|
6
|
+
* lazy thunk. Modules never receive this object directly; their narrow dependency sets are assembled
|
|
7
|
+
* from it at their construction sites (today inline in `core/_base.ts` and `core/core.ts`; later via
|
|
8
|
+
* per-slice `createXxxDeps(ctx)` factories). Centralizing the thunks here removes the duplication
|
|
9
|
+
* where `getWtTable`/`getWtViewport`/`getTopOverlay`/`isDrawn` were re-declared in `ScrollDeps`,
|
|
10
|
+
* `ViewportDeps`, and `TableDeps` separately.
|
|
11
|
+
*
|
|
12
|
+
* Behavior note: the thunks resolve `wtTable`/`wtViewport`/`wtOverlays` at call time, exactly when
|
|
13
|
+
* the former DAO getters resolved them — so construction order and freshness are unchanged. Per the
|
|
14
|
+
* refactor rules, the context exposes the STABLE owners (`getWtViewport()`), never the volatile
|
|
15
|
+
* per-draw calculators; the row/column range-query mixins read the current calculator off the owner.
|
|
16
|
+
*/
|
|
17
|
+
import type { WalkontableInstance } from './types';
|
|
18
|
+
import type { default as Settings } from './settings';
|
|
19
|
+
import type { default as Table } from './table/baseTable';
|
|
20
|
+
import type { default as Viewport } from './viewport/viewport';
|
|
21
|
+
import type { default as Overlays } from './overlay/overlays';
|
|
22
|
+
import type { SelectionManager } from './selection/manager';
|
|
23
|
+
import type { Overlay } from './overlay/regions/_base';
|
|
24
|
+
import type { GeometryReader } from './domMeasure/geometryReader';
|
|
25
|
+
import type { RowSizeSource, ColumnSizeSource } from './axisSizing/axisSizeSource';
|
|
26
|
+
import type { default as EventManager } from '../../../eventManager';
|
|
27
|
+
/**
|
|
28
|
+
* The engine composition context — the single source of truth for the engine's stable references and
|
|
29
|
+
* its late-bound dependency thunks. Consumed only by the composition root and the per-module
|
|
30
|
+
* dependency assembly; it is not passed to modules as-is.
|
|
31
|
+
*/
|
|
32
|
+
export interface EngineContext {
|
|
33
|
+
wot: WalkontableInstance;
|
|
34
|
+
wtSettings: Settings;
|
|
35
|
+
rootDocument: Document;
|
|
36
|
+
rootWindow: Window;
|
|
37
|
+
rootTable: HTMLTableElement;
|
|
38
|
+
geometryReader: GeometryReader;
|
|
39
|
+
rowSizeSource: RowSizeSource;
|
|
40
|
+
columnSizeSource: ColumnSizeSource;
|
|
41
|
+
/**
|
|
42
|
+
* Creates a fresh `EventManager` bound to the instance. Each module gets its own manager (matching
|
|
43
|
+
* the previous `this.eventManager` getter), so the factory calls this once and stores the result —
|
|
44
|
+
* it must not store the function and call it repeatedly.
|
|
45
|
+
*/
|
|
46
|
+
makeEventManager: () => EventManager;
|
|
47
|
+
/**
|
|
48
|
+
* Resolves the facade for this instance. Per-instance (master and each clone differ), so it is a
|
|
49
|
+
* thunk resolved at call time, never computed once and shared.
|
|
50
|
+
*/
|
|
51
|
+
getFacade: () => Function;
|
|
52
|
+
isDrawn: () => boolean;
|
|
53
|
+
setDrawn: (value: boolean) => void;
|
|
54
|
+
getWtTable: () => Table;
|
|
55
|
+
getWtViewport: () => Viewport;
|
|
56
|
+
getWtOverlays: () => Overlays;
|
|
57
|
+
getWtEvent: () => WalkontableInstance['wtEvent'];
|
|
58
|
+
getSelectionManager: () => SelectionManager;
|
|
59
|
+
getCloneSource: () => WalkontableInstance;
|
|
60
|
+
getParentTableOffset: () => {
|
|
61
|
+
top: number;
|
|
62
|
+
left: number;
|
|
63
|
+
} | number;
|
|
64
|
+
getColumnHeaders: () => Function[];
|
|
65
|
+
getRowHeaders: () => Function[];
|
|
66
|
+
getTopOverlay: () => Overlay;
|
|
67
|
+
getInlineStartOverlay: () => Overlay;
|
|
68
|
+
getBottomOverlay: () => Overlay;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Builds the engine composition context for a Walkontable instance (master or clone).
|
|
72
|
+
*
|
|
73
|
+
* Stable references (settings, window, geometry reader) are read once, up front. Everything the
|
|
74
|
+
* engine creates later — the table, viewport, overlays, selection manager, and (for clones) the
|
|
75
|
+
* clone source — is exposed as a thunk resolved at call time, so it stays fresh and the construction
|
|
76
|
+
* order is unchanged.
|
|
77
|
+
*
|
|
78
|
+
* @param {WalkontableInstance} wot The Walkontable instance the context belongs to.
|
|
79
|
+
* @returns {EngineContext}
|
|
80
|
+
*/
|
|
81
|
+
export declare function buildContext(wot: WalkontableInstance): EngineContext;
|