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
|
@@ -14,6 +14,8 @@ export interface BorderInstanceSettings {
|
|
|
14
14
|
width?: number;
|
|
15
15
|
color?: string;
|
|
16
16
|
cornerVisible?: boolean | ((...args: unknown[]) => boolean);
|
|
17
|
+
adjustHandlesVisible?: boolean | ((...args: unknown[]) => boolean);
|
|
18
|
+
moveEnabled?: boolean | ((...args: unknown[]) => boolean);
|
|
17
19
|
style?: string;
|
|
18
20
|
[key: string]: unknown;
|
|
19
21
|
};
|
|
@@ -48,3 +50,31 @@ export interface SelectionHandles {
|
|
|
48
50
|
};
|
|
49
51
|
[key: string]: unknown;
|
|
50
52
|
}
|
|
53
|
+
export interface AdjustHandles {
|
|
54
|
+
top: HTMLDivElement;
|
|
55
|
+
bottom: HTMLDivElement;
|
|
56
|
+
start: HTMLDivElement;
|
|
57
|
+
end: HTMLDivElement;
|
|
58
|
+
styles: {
|
|
59
|
+
top: CSSStyleDeclaration;
|
|
60
|
+
bottom: CSSStyleDeclaration;
|
|
61
|
+
start: CSSStyleDeclaration;
|
|
62
|
+
end: CSSStyleDeclaration;
|
|
63
|
+
[key: string]: CSSStyleDeclaration;
|
|
64
|
+
};
|
|
65
|
+
[key: string]: unknown;
|
|
66
|
+
}
|
|
67
|
+
export interface MoveZone {
|
|
68
|
+
top: HTMLDivElement;
|
|
69
|
+
bottom: HTMLDivElement;
|
|
70
|
+
start: HTMLDivElement;
|
|
71
|
+
end: HTMLDivElement;
|
|
72
|
+
styles: {
|
|
73
|
+
top: CSSStyleDeclaration;
|
|
74
|
+
bottom: CSSStyleDeclaration;
|
|
75
|
+
start: CSSStyleDeclaration;
|
|
76
|
+
end: CSSStyleDeclaration;
|
|
77
|
+
[key: string]: CSSStyleDeclaration;
|
|
78
|
+
};
|
|
79
|
+
[key: string]: unknown;
|
|
80
|
+
}
|
|
@@ -11,6 +11,7 @@ Object.defineProperty(exports, "SelectionManager", {
|
|
|
11
11
|
const _element = require("../../../../helpers/dom/element");
|
|
12
12
|
const _scanner = require("./scanner");
|
|
13
13
|
const _border = /*#__PURE__*/ _interop_require_default(require("./border/border"));
|
|
14
|
+
const _constants = require("./constants");
|
|
14
15
|
function _check_private_redeclaration(obj, privateCollection) {
|
|
15
16
|
if (privateCollection.has(obj)) {
|
|
16
17
|
throw new TypeError("Cannot initialize the same private elements twice on an object");
|
|
@@ -93,6 +94,76 @@ var /**
|
|
|
93
94
|
*
|
|
94
95
|
* @type {Map}
|
|
95
96
|
*/ _selectionBorders = /*#__PURE__*/ new WeakMap(), /**
|
|
97
|
+
* Checks whether a custom-border selection falls entirely outside the active overlay's rendered
|
|
98
|
+
* cell range, so its border does not need to be drawn (and its DOM does not need to exist) here.
|
|
99
|
+
* Mirrors the range test `Border#appear` performs before it early-outs, so culling produces the
|
|
100
|
+
* same visual result while avoiding the cost of materializing off-screen border DOM.
|
|
101
|
+
*
|
|
102
|
+
* @param {Selection} selection The custom-border selection instance.
|
|
103
|
+
* @returns {boolean}
|
|
104
|
+
*/ _isCustomSelectionOffscreen = /*#__PURE__*/ new WeakSet(), /**
|
|
105
|
+
* Tags the neighbours of a single active-header cell: the TH directly BEFORE an active header gets
|
|
106
|
+
* `<className>-prev` (the theme colors its inline-end border, giving the active header its
|
|
107
|
+
* inline-start accent), and every TH of the TBODY row directly ABOVE an active row header gets
|
|
108
|
+
* `<className>-prev-row` (the theme colors its bottom border, giving the active row header its top
|
|
109
|
+
* accent). Selecting on these stamped classes replaces the former
|
|
110
|
+
* `th:has(+ th.ht__active_highlight)` and `tr:has(+ tr > th.ht__active_highlight) th` theme rules:
|
|
111
|
+
* with the class name inside a `:has()` argument, every toggle of it (the selection pass re-applies
|
|
112
|
+
* it on each draw, and it moves between the recycled header nodes while scrolling) forced a style
|
|
113
|
+
* invalidation scaled to the whole host page. The row tag lands on TH elements (not the TR) so the
|
|
114
|
+
* per-band header render and `#resetCells` fully own its cleanup. Called once per scanned
|
|
115
|
+
* active-header element, from the class-applying pass in `render`.
|
|
116
|
+
*
|
|
117
|
+
* @param {HTMLElement} element A scanned active-header element.
|
|
118
|
+
* @param {string} activeHeaderClassName The active header class name (the neighbour classes derive from it).
|
|
119
|
+
* @param {Map} classNamesMap The render cycle's element→classNames map (applied and cleaned up later).
|
|
120
|
+
*/ _markActiveHeaderNeighbor = /*#__PURE__*/ new WeakSet(), /**
|
|
121
|
+
* Tags every TH of the TBODY row directly above the given active row-header cell — the row-axis
|
|
122
|
+
* half of {@link SelectionManager#markActiveHeaderNeighbor}.
|
|
123
|
+
*
|
|
124
|
+
* @param {HTMLElement} element The active row-header cell.
|
|
125
|
+
* @param {string} activeHeaderClassName The active header class name (the neighbour class derives from it).
|
|
126
|
+
* @param {Map} classNamesMap The render cycle's element→classNames map (applied and cleaned up later).
|
|
127
|
+
*/ _markPreviousRowHeaders = /*#__PURE__*/ new WeakSet(), /**
|
|
128
|
+
* Adds a seam class to a header element in the render cycle's class map, creating the per-element
|
|
129
|
+
* entry on first use. Shared by the frozen column/row seam taggers.
|
|
130
|
+
*
|
|
131
|
+
* @param {Map} classNamesMap The render cycle's element→classNames map (applied and cleaned up later).
|
|
132
|
+
* @param {HTMLElement} th The header element to tag.
|
|
133
|
+
* @param {string} seamClassName The seam class to add.
|
|
134
|
+
*/ _tagSeamClass = /*#__PURE__*/ new WeakSet(), /**
|
|
135
|
+
* Tags the last frozen column header with a seam class when the first non-frozen column is the
|
|
136
|
+
* active header. That header's inline-start edge lands on the frozen-pane seam, which is drawn by
|
|
137
|
+
* the frozen overlay (a separate table) and is therefore out of reach of the neighbour `:has()`
|
|
138
|
+
* rule that gives every other active header its inline-start accent. The class lets the theme color
|
|
139
|
+
* that seam to match. No-op unless `fixedColumnsStart` is used and this is the frozen overlay.
|
|
140
|
+
*
|
|
141
|
+
* @param {number[]} corners The active-header selection corners `[fromRow, fromColumn, toRow, toColumn]`.
|
|
142
|
+
* @param {string} activeHeaderClassName The active header class name (the seam class derives from it).
|
|
143
|
+
* @param {Map} classNamesMap The render cycle's element→classNames map (applied and cleaned up later).
|
|
144
|
+
*/ _markFrozenColumnSeamHeader = /*#__PURE__*/ new WeakSet(), /**
|
|
145
|
+
* Row-axis mirror of {@link SelectionManager#markFrozenColumnSeamHeader} for the top freeze:
|
|
146
|
+
* tags the last top-frozen row header with a seam class when the first non-frozen row is the
|
|
147
|
+
* active header. That row's top edge lands on the top freeze line, which is drawn by the top
|
|
148
|
+
* overlay (a separate table) and is therefore out of reach of the `:has(+ tr ...)` rule that gives
|
|
149
|
+
* every other active row header its top accent. The class lets the theme color the seam's bottom
|
|
150
|
+
* border to match. No-op unless `fixedRowsTop` is used and this is the top overlay.
|
|
151
|
+
*
|
|
152
|
+
* @param {number[]} corners The active-header selection corners `[fromRow, fromColumn, toRow, toColumn]`.
|
|
153
|
+
* @param {string} activeHeaderClassName The active header class name (the seam class derives from it).
|
|
154
|
+
* @param {Map} classNamesMap The render cycle's element→classNames map (applied and cleaned up later).
|
|
155
|
+
*/ _markFrozenTopRowSeamHeader = /*#__PURE__*/ new WeakSet(), /**
|
|
156
|
+
* Row-axis mirror of {@link SelectionManager#markFrozenColumnSeamHeader} for the bottom freeze:
|
|
157
|
+
* tags the first bottom-frozen row header with a seam class when the last non-frozen row is the
|
|
158
|
+
* active header. That row's bottom edge lands on the bottom freeze line, which is drawn by the
|
|
159
|
+
* bottom overlay (a separate table) and is therefore out of reach of the `:has(+ tr ...)` rule that
|
|
160
|
+
* gives every other active row header its top accent. The class lets the theme color the seam's top
|
|
161
|
+
* border to match. No-op unless `fixedRowsBottom` is used and this is the bottom overlay.
|
|
162
|
+
*
|
|
163
|
+
* @param {number[]} corners The active-header selection corners `[fromRow, fromColumn, toRow, toColumn]`.
|
|
164
|
+
* @param {string} activeHeaderClassName The active header class name (the seam class derives from it).
|
|
165
|
+
* @param {Map} classNamesMap The render cycle's element→classNames map (applied and cleaned up later).
|
|
166
|
+
*/ _markFrozenBottomRowSeamHeader = /*#__PURE__*/ new WeakSet(), /**
|
|
96
167
|
* Resets the elements to their initial state (remove the CSS classes that are added in the
|
|
97
168
|
* previous render cycle).
|
|
98
169
|
*/ _resetCells = /*#__PURE__*/ new WeakSet();
|
|
@@ -201,6 +272,16 @@ class SelectionManager {
|
|
|
201
272
|
_class_private_field_get(this, _destroyListeners).add(selection);
|
|
202
273
|
selection.addLocalHook('destroy', ()=>this.destroyBorders(selection));
|
|
203
274
|
}
|
|
275
|
+
// Virtualize custom borders. A per-cell custom-border selection outside this overlay's rendered
|
|
276
|
+
// range draws nothing anyway - `appear()` early-outs once `getCell()` reports the cell as not
|
|
277
|
+
// rendered. Skipping it here (without calling `getBorderInstance`) means its Border DOM is never
|
|
278
|
+
// created while off-screen, which is what lets grids with very many bordered cells scale: only
|
|
279
|
+
// the visible borders get DOM and layout work, mirroring cell virtualization. The visual result
|
|
280
|
+
// is identical to letting `appear()` early-out, just without the O(all-borders) DOM.
|
|
281
|
+
if (selectionType === _constants.CUSTOM_SELECTION_TYPE && _class_private_method_get(this, _isCustomSelectionOffscreen, isCustomSelectionOffscreen).call(this, selection)) {
|
|
282
|
+
_class_private_field_get(this, _selectionBorders).get(selection)?.get(_class_private_field_get(this, _activeOverlaysWot))?.disappear();
|
|
283
|
+
continue; // eslint-disable-line no-continue
|
|
284
|
+
}
|
|
204
285
|
const borderInstance = this.getBorderInstance(selection);
|
|
205
286
|
if (selection.isEmpty()) {
|
|
206
287
|
borderInstance?.disappear();
|
|
@@ -208,6 +289,7 @@ class SelectionManager {
|
|
|
208
289
|
}
|
|
209
290
|
if (className) {
|
|
210
291
|
const elements = _class_private_field_get(this, _scanner1).setActiveSelection(selection).scan();
|
|
292
|
+
const isActiveHeader = selectionType === _constants.ACTIVE_HEADER_TYPE;
|
|
211
293
|
elements.forEach((element)=>{
|
|
212
294
|
if (classNamesMap.has(element)) {
|
|
213
295
|
const classNamesLayers = classNamesMap.get(element);
|
|
@@ -233,9 +315,19 @@ class SelectionManager {
|
|
|
233
315
|
headerAttributesMap.get(element).push(...attrs);
|
|
234
316
|
}
|
|
235
317
|
}
|
|
318
|
+
// Tag the active-header neighbour classes in this same pass, so the scanned element set is
|
|
319
|
+
// walked once. Order into `classNamesMap` does not matter — it is applied after the loop.
|
|
320
|
+
if (isActiveHeader) {
|
|
321
|
+
_class_private_method_get(this, _markActiveHeaderNeighbor, markActiveHeaderNeighbor).call(this, element, className, classNamesMap);
|
|
322
|
+
}
|
|
236
323
|
});
|
|
237
324
|
}
|
|
238
325
|
const corners = selection.getCorners();
|
|
326
|
+
if (selectionType === _constants.ACTIVE_HEADER_TYPE && className) {
|
|
327
|
+
_class_private_method_get(this, _markFrozenColumnSeamHeader, markFrozenColumnSeamHeader).call(this, corners, className, classNamesMap);
|
|
328
|
+
_class_private_method_get(this, _markFrozenTopRowSeamHeader, markFrozenTopRowSeamHeader).call(this, corners, className, classNamesMap);
|
|
329
|
+
_class_private_method_get(this, _markFrozenBottomRowSeamHeader, markFrozenBottomRowSeamHeader).call(this, corners, className, classNamesMap);
|
|
330
|
+
}
|
|
239
331
|
_class_private_field_get(this, _activeOverlaysWot).getSetting('onBeforeDrawBorders', corners, selectionType);
|
|
240
332
|
borderInstance?.appear(corners);
|
|
241
333
|
}
|
|
@@ -270,6 +362,13 @@ class SelectionManager {
|
|
|
270
362
|
*
|
|
271
363
|
* @param {SelectionsContainer | null} selections The Highlight instance that holds Selection instances.
|
|
272
364
|
*/ constructor(selections){
|
|
365
|
+
_class_private_method_init(this, _isCustomSelectionOffscreen);
|
|
366
|
+
_class_private_method_init(this, _markActiveHeaderNeighbor);
|
|
367
|
+
_class_private_method_init(this, _markPreviousRowHeaders);
|
|
368
|
+
_class_private_method_init(this, _tagSeamClass);
|
|
369
|
+
_class_private_method_init(this, _markFrozenColumnSeamHeader);
|
|
370
|
+
_class_private_method_init(this, _markFrozenTopRowSeamHeader);
|
|
371
|
+
_class_private_method_init(this, _markFrozenBottomRowSeamHeader);
|
|
273
372
|
_class_private_method_init(this, _resetCells);
|
|
274
373
|
_class_private_field_init(this, _activeOverlaysWot, {
|
|
275
374
|
writable: true,
|
|
@@ -303,6 +402,144 @@ class SelectionManager {
|
|
|
303
402
|
_class_private_field_set(this, _selections, selections);
|
|
304
403
|
}
|
|
305
404
|
}
|
|
405
|
+
function isCustomSelectionOffscreen(selection) {
|
|
406
|
+
// A hidden/trimmed cell has a `null` cellRange (nothing to draw); treat it as off-screen and
|
|
407
|
+
// avoid `getCorners()`, which dereferences the range.
|
|
408
|
+
if (selection.isEmpty()) {
|
|
409
|
+
return true;
|
|
410
|
+
}
|
|
411
|
+
const { wtTable } = _class_private_field_get(this, _activeOverlaysWot);
|
|
412
|
+
const [fromRow, fromColumn, toRow, toColumn] = selection.getCorners();
|
|
413
|
+
const firstRow = wtTable.getFirstRenderedRow();
|
|
414
|
+
const lastRow = wtTable.getLastRenderedRow();
|
|
415
|
+
const firstColumn = wtTable.getFirstRenderedColumn();
|
|
416
|
+
const lastColumn = wtTable.getLastRenderedColumn();
|
|
417
|
+
// Nothing (or only headers) rendered in this overlay - the border cannot be visible here.
|
|
418
|
+
if (firstRow < 0 && lastRow < 0 || firstColumn < 0 && lastColumn < 0) {
|
|
419
|
+
return true;
|
|
420
|
+
}
|
|
421
|
+
return toRow < firstRow || fromRow > lastRow || toColumn < firstColumn || fromColumn > lastColumn;
|
|
422
|
+
}
|
|
423
|
+
function markActiveHeaderNeighbor(element, activeHeaderClassName, classNamesMap) {
|
|
424
|
+
if (element.nodeName !== 'TH') {
|
|
425
|
+
return;
|
|
426
|
+
}
|
|
427
|
+
const previousHeader = element.previousElementSibling;
|
|
428
|
+
if (previousHeader !== null && previousHeader.nodeName === 'TH') {
|
|
429
|
+
_class_private_method_get(this, _tagSeamClass, tagSeamClass).call(this, classNamesMap, previousHeader, `${activeHeaderClassName}-prev`);
|
|
430
|
+
}
|
|
431
|
+
_class_private_method_get(this, _markPreviousRowHeaders, markPreviousRowHeaders).call(this, element, activeHeaderClassName, classNamesMap);
|
|
432
|
+
}
|
|
433
|
+
function markPreviousRowHeaders(element, activeHeaderClassName, classNamesMap) {
|
|
434
|
+
const row = element.parentElement;
|
|
435
|
+
if (row === null || row.nodeName !== 'TR' || row.parentElement === null || row.parentElement.nodeName !== 'TBODY') {
|
|
436
|
+
return;
|
|
437
|
+
}
|
|
438
|
+
const previousRow = row.previousElementSibling;
|
|
439
|
+
if (previousRow === null || previousRow.nodeName !== 'TR') {
|
|
440
|
+
return;
|
|
441
|
+
}
|
|
442
|
+
for(let i = 0; i < previousRow.children.length; i++){
|
|
443
|
+
const cell = previousRow.children[i];
|
|
444
|
+
if (cell.nodeName !== 'TH') {
|
|
445
|
+
break;
|
|
446
|
+
}
|
|
447
|
+
_class_private_method_get(this, _tagSeamClass, tagSeamClass).call(this, classNamesMap, cell, `${activeHeaderClassName}-prev-row`);
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
function tagSeamClass(classNamesMap, th, seamClassName) {
|
|
451
|
+
if (classNamesMap.has(th)) {
|
|
452
|
+
classNamesMap.get(th).set(seamClassName, 1);
|
|
453
|
+
} else {
|
|
454
|
+
classNamesMap.set(th, new Map([
|
|
455
|
+
[
|
|
456
|
+
seamClassName,
|
|
457
|
+
1
|
|
458
|
+
]
|
|
459
|
+
]));
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
function markFrozenColumnSeamHeader(corners, activeHeaderClassName, classNamesMap) {
|
|
463
|
+
const wot = _class_private_field_get(this, _activeOverlaysWot);
|
|
464
|
+
const fixedColumnsStart = wot.getSetting('fixedColumnsStart');
|
|
465
|
+
if (fixedColumnsStart <= 0) {
|
|
466
|
+
return;
|
|
467
|
+
}
|
|
468
|
+
const { wtTable } = wot;
|
|
469
|
+
// Only the overlay that renders the frozen columns (and nothing past them) owns the seam line.
|
|
470
|
+
if (wtTable.getLastRenderedColumn() !== fixedColumnsStart - 1) {
|
|
471
|
+
return;
|
|
472
|
+
}
|
|
473
|
+
// The selection's inline-start column must sit exactly on the freeze line.
|
|
474
|
+
if (Math.min(corners[1], corners[3]) !== fixedColumnsStart) {
|
|
475
|
+
return;
|
|
476
|
+
}
|
|
477
|
+
const seamClassName = `${activeHeaderClassName}-seam`;
|
|
478
|
+
const headerLevels = wtTable.getColumnHeadersCount();
|
|
479
|
+
for(let level = 0; level < headerLevels; level++){
|
|
480
|
+
const th = wtTable.getColumnHeader(fixedColumnsStart - 1, level);
|
|
481
|
+
if ((0, _element.isHTMLElement)(th)) {
|
|
482
|
+
_class_private_method_get(this, _tagSeamClass, tagSeamClass).call(this, classNamesMap, th, seamClassName);
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
function markFrozenTopRowSeamHeader(corners, activeHeaderClassName, classNamesMap) {
|
|
487
|
+
const wot = _class_private_field_get(this, _activeOverlaysWot);
|
|
488
|
+
const fixedRowsTop = wot.getSetting('fixedRowsTop');
|
|
489
|
+
if (fixedRowsTop <= 0) {
|
|
490
|
+
return;
|
|
491
|
+
}
|
|
492
|
+
const { wtTable } = wot;
|
|
493
|
+
const lastFrozenRow = fixedRowsTop - 1;
|
|
494
|
+
// Only the overlay that renders the top-frozen rows (ending exactly on the freeze line) owns the
|
|
495
|
+
// seam line.
|
|
496
|
+
if (wtTable.getLastRenderedRow() !== lastFrozenRow) {
|
|
497
|
+
return;
|
|
498
|
+
}
|
|
499
|
+
// The selection's top row must sit exactly on the first non-frozen row.
|
|
500
|
+
if (Math.min(corners[0], corners[2]) !== fixedRowsTop) {
|
|
501
|
+
return;
|
|
502
|
+
}
|
|
503
|
+
const seamClassName = `${activeHeaderClassName}-row-seam-top`;
|
|
504
|
+
const headerLevels = wtTable.getRowHeadersCount();
|
|
505
|
+
for(let level = 0; level < headerLevels; level++){
|
|
506
|
+
const th = wtTable.getRowHeader(lastFrozenRow, level);
|
|
507
|
+
// Overlays without row headers (e.g. the plain `top` overlay) return a TD here; only tag actual
|
|
508
|
+
// row-header cells.
|
|
509
|
+
if ((0, _element.isHTMLElement)(th) && th.nodeName === 'TH') {
|
|
510
|
+
_class_private_method_get(this, _tagSeamClass, tagSeamClass).call(this, classNamesMap, th, seamClassName);
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
function markFrozenBottomRowSeamHeader(corners, activeHeaderClassName, classNamesMap) {
|
|
515
|
+
const wot = _class_private_field_get(this, _activeOverlaysWot);
|
|
516
|
+
const fixedRowsBottom = wot.getSetting('fixedRowsBottom');
|
|
517
|
+
if (fixedRowsBottom <= 0) {
|
|
518
|
+
return;
|
|
519
|
+
}
|
|
520
|
+
const { wtTable } = wot;
|
|
521
|
+
const totalRows = wot.getSetting('totalRows');
|
|
522
|
+
const firstFrozenRow = totalRows - fixedRowsBottom;
|
|
523
|
+
// Only the overlay that renders the bottom-frozen rows (starting exactly on the freeze line) owns
|
|
524
|
+
// the seam line.
|
|
525
|
+
if (wtTable.getFirstRenderedRow() !== firstFrozenRow) {
|
|
526
|
+
return;
|
|
527
|
+
}
|
|
528
|
+
// The selection's bottom row must sit exactly on the last non-frozen row.
|
|
529
|
+
if (Math.max(corners[0], corners[2]) !== firstFrozenRow - 1) {
|
|
530
|
+
return;
|
|
531
|
+
}
|
|
532
|
+
const seamClassName = `${activeHeaderClassName}-row-seam-bottom`;
|
|
533
|
+
const headerLevels = wtTable.getRowHeadersCount();
|
|
534
|
+
for(let level = 0; level < headerLevels; level++){
|
|
535
|
+
const th = wtTable.getRowHeader(firstFrozenRow, level);
|
|
536
|
+
// Overlays without row headers (e.g. the plain `bottom` overlay) return a TD here; only tag
|
|
537
|
+
// actual row-header cells.
|
|
538
|
+
if ((0, _element.isHTMLElement)(th) && th.nodeName === 'TH') {
|
|
539
|
+
_class_private_method_get(this, _tagSeamClass, tagSeamClass).call(this, classNamesMap, th, seamClassName);
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
}
|
|
306
543
|
function resetCells() {
|
|
307
544
|
const appliedOverlaysClasses = _class_private_field_get(this, _appliedClasses).get(_class_private_field_get(this, _activeOverlaysWot));
|
|
308
545
|
if (!appliedOverlaysClasses) {
|
|
@@ -48,9 +48,10 @@ function _class_private_method_init(obj, privateSet) {
|
|
|
48
48
|
_check_private_redeclaration(obj, privateSet);
|
|
49
49
|
privateSet.add(obj);
|
|
50
50
|
}
|
|
51
|
-
import { removeClass, addClass, setAttribute, removeAttribute } from '../../../../helpers/dom/element.mjs';
|
|
51
|
+
import { removeClass, addClass, setAttribute, removeAttribute, isHTMLElement } from '../../../../helpers/dom/element.mjs';
|
|
52
52
|
import { SelectionScanner } from './scanner.mjs';
|
|
53
53
|
import Border from './border/border.mjs';
|
|
54
|
+
import { ACTIVE_HEADER_TYPE, CUSTOM_SELECTION_TYPE } from './constants.mjs';
|
|
54
55
|
var /**
|
|
55
56
|
* The overlay's Walkontable instance that are currently processed.
|
|
56
57
|
*
|
|
@@ -78,6 +79,76 @@ var /**
|
|
|
78
79
|
*
|
|
79
80
|
* @type {Map}
|
|
80
81
|
*/ _selectionBorders = /*#__PURE__*/ new WeakMap(), /**
|
|
82
|
+
* Checks whether a custom-border selection falls entirely outside the active overlay's rendered
|
|
83
|
+
* cell range, so its border does not need to be drawn (and its DOM does not need to exist) here.
|
|
84
|
+
* Mirrors the range test `Border#appear` performs before it early-outs, so culling produces the
|
|
85
|
+
* same visual result while avoiding the cost of materializing off-screen border DOM.
|
|
86
|
+
*
|
|
87
|
+
* @param {Selection} selection The custom-border selection instance.
|
|
88
|
+
* @returns {boolean}
|
|
89
|
+
*/ _isCustomSelectionOffscreen = /*#__PURE__*/ new WeakSet(), /**
|
|
90
|
+
* Tags the neighbours of a single active-header cell: the TH directly BEFORE an active header gets
|
|
91
|
+
* `<className>-prev` (the theme colors its inline-end border, giving the active header its
|
|
92
|
+
* inline-start accent), and every TH of the TBODY row directly ABOVE an active row header gets
|
|
93
|
+
* `<className>-prev-row` (the theme colors its bottom border, giving the active row header its top
|
|
94
|
+
* accent). Selecting on these stamped classes replaces the former
|
|
95
|
+
* `th:has(+ th.ht__active_highlight)` and `tr:has(+ tr > th.ht__active_highlight) th` theme rules:
|
|
96
|
+
* with the class name inside a `:has()` argument, every toggle of it (the selection pass re-applies
|
|
97
|
+
* it on each draw, and it moves between the recycled header nodes while scrolling) forced a style
|
|
98
|
+
* invalidation scaled to the whole host page. The row tag lands on TH elements (not the TR) so the
|
|
99
|
+
* per-band header render and `#resetCells` fully own its cleanup. Called once per scanned
|
|
100
|
+
* active-header element, from the class-applying pass in `render`.
|
|
101
|
+
*
|
|
102
|
+
* @param {HTMLElement} element A scanned active-header element.
|
|
103
|
+
* @param {string} activeHeaderClassName The active header class name (the neighbour classes derive from it).
|
|
104
|
+
* @param {Map} classNamesMap The render cycle's element→classNames map (applied and cleaned up later).
|
|
105
|
+
*/ _markActiveHeaderNeighbor = /*#__PURE__*/ new WeakSet(), /**
|
|
106
|
+
* Tags every TH of the TBODY row directly above the given active row-header cell — the row-axis
|
|
107
|
+
* half of {@link SelectionManager#markActiveHeaderNeighbor}.
|
|
108
|
+
*
|
|
109
|
+
* @param {HTMLElement} element The active row-header cell.
|
|
110
|
+
* @param {string} activeHeaderClassName The active header class name (the neighbour class derives from it).
|
|
111
|
+
* @param {Map} classNamesMap The render cycle's element→classNames map (applied and cleaned up later).
|
|
112
|
+
*/ _markPreviousRowHeaders = /*#__PURE__*/ new WeakSet(), /**
|
|
113
|
+
* Adds a seam class to a header element in the render cycle's class map, creating the per-element
|
|
114
|
+
* entry on first use. Shared by the frozen column/row seam taggers.
|
|
115
|
+
*
|
|
116
|
+
* @param {Map} classNamesMap The render cycle's element→classNames map (applied and cleaned up later).
|
|
117
|
+
* @param {HTMLElement} th The header element to tag.
|
|
118
|
+
* @param {string} seamClassName The seam class to add.
|
|
119
|
+
*/ _tagSeamClass = /*#__PURE__*/ new WeakSet(), /**
|
|
120
|
+
* Tags the last frozen column header with a seam class when the first non-frozen column is the
|
|
121
|
+
* active header. That header's inline-start edge lands on the frozen-pane seam, which is drawn by
|
|
122
|
+
* the frozen overlay (a separate table) and is therefore out of reach of the neighbour `:has()`
|
|
123
|
+
* rule that gives every other active header its inline-start accent. The class lets the theme color
|
|
124
|
+
* that seam to match. No-op unless `fixedColumnsStart` is used and this is the frozen overlay.
|
|
125
|
+
*
|
|
126
|
+
* @param {number[]} corners The active-header selection corners `[fromRow, fromColumn, toRow, toColumn]`.
|
|
127
|
+
* @param {string} activeHeaderClassName The active header class name (the seam class derives from it).
|
|
128
|
+
* @param {Map} classNamesMap The render cycle's element→classNames map (applied and cleaned up later).
|
|
129
|
+
*/ _markFrozenColumnSeamHeader = /*#__PURE__*/ new WeakSet(), /**
|
|
130
|
+
* Row-axis mirror of {@link SelectionManager#markFrozenColumnSeamHeader} for the top freeze:
|
|
131
|
+
* tags the last top-frozen row header with a seam class when the first non-frozen row is the
|
|
132
|
+
* active header. That row's top edge lands on the top freeze line, which is drawn by the top
|
|
133
|
+
* overlay (a separate table) and is therefore out of reach of the `:has(+ tr ...)` rule that gives
|
|
134
|
+
* every other active row header its top accent. The class lets the theme color the seam's bottom
|
|
135
|
+
* border to match. No-op unless `fixedRowsTop` is used and this is the top overlay.
|
|
136
|
+
*
|
|
137
|
+
* @param {number[]} corners The active-header selection corners `[fromRow, fromColumn, toRow, toColumn]`.
|
|
138
|
+
* @param {string} activeHeaderClassName The active header class name (the seam class derives from it).
|
|
139
|
+
* @param {Map} classNamesMap The render cycle's element→classNames map (applied and cleaned up later).
|
|
140
|
+
*/ _markFrozenTopRowSeamHeader = /*#__PURE__*/ new WeakSet(), /**
|
|
141
|
+
* Row-axis mirror of {@link SelectionManager#markFrozenColumnSeamHeader} for the bottom freeze:
|
|
142
|
+
* tags the first bottom-frozen row header with a seam class when the last non-frozen row is the
|
|
143
|
+
* active header. That row's bottom edge lands on the bottom freeze line, which is drawn by the
|
|
144
|
+
* bottom overlay (a separate table) and is therefore out of reach of the `:has(+ tr ...)` rule that
|
|
145
|
+
* gives every other active row header its top accent. The class lets the theme color the seam's top
|
|
146
|
+
* border to match. No-op unless `fixedRowsBottom` is used and this is the bottom overlay.
|
|
147
|
+
*
|
|
148
|
+
* @param {number[]} corners The active-header selection corners `[fromRow, fromColumn, toRow, toColumn]`.
|
|
149
|
+
* @param {string} activeHeaderClassName The active header class name (the seam class derives from it).
|
|
150
|
+
* @param {Map} classNamesMap The render cycle's element→classNames map (applied and cleaned up later).
|
|
151
|
+
*/ _markFrozenBottomRowSeamHeader = /*#__PURE__*/ new WeakSet(), /**
|
|
81
152
|
* Resets the elements to their initial state (remove the CSS classes that are added in the
|
|
82
153
|
* previous render cycle).
|
|
83
154
|
*/ _resetCells = /*#__PURE__*/ new WeakSet();
|
|
@@ -192,6 +263,16 @@ var /**
|
|
|
192
263
|
_class_private_field_get(this, _destroyListeners).add(selection);
|
|
193
264
|
selection.addLocalHook('destroy', ()=>this.destroyBorders(selection));
|
|
194
265
|
}
|
|
266
|
+
// Virtualize custom borders. A per-cell custom-border selection outside this overlay's rendered
|
|
267
|
+
// range draws nothing anyway - `appear()` early-outs once `getCell()` reports the cell as not
|
|
268
|
+
// rendered. Skipping it here (without calling `getBorderInstance`) means its Border DOM is never
|
|
269
|
+
// created while off-screen, which is what lets grids with very many bordered cells scale: only
|
|
270
|
+
// the visible borders get DOM and layout work, mirroring cell virtualization. The visual result
|
|
271
|
+
// is identical to letting `appear()` early-out, just without the O(all-borders) DOM.
|
|
272
|
+
if (selectionType === CUSTOM_SELECTION_TYPE && _class_private_method_get(this, _isCustomSelectionOffscreen, isCustomSelectionOffscreen).call(this, selection)) {
|
|
273
|
+
_class_private_field_get(this, _selectionBorders).get(selection)?.get(_class_private_field_get(this, _activeOverlaysWot))?.disappear();
|
|
274
|
+
continue; // eslint-disable-line no-continue
|
|
275
|
+
}
|
|
195
276
|
const borderInstance = this.getBorderInstance(selection);
|
|
196
277
|
if (selection.isEmpty()) {
|
|
197
278
|
borderInstance?.disappear();
|
|
@@ -199,6 +280,7 @@ var /**
|
|
|
199
280
|
}
|
|
200
281
|
if (className) {
|
|
201
282
|
const elements = _class_private_field_get(this, _scanner).setActiveSelection(selection).scan();
|
|
283
|
+
const isActiveHeader = selectionType === ACTIVE_HEADER_TYPE;
|
|
202
284
|
elements.forEach((element)=>{
|
|
203
285
|
if (classNamesMap.has(element)) {
|
|
204
286
|
const classNamesLayers = classNamesMap.get(element);
|
|
@@ -224,9 +306,19 @@ var /**
|
|
|
224
306
|
headerAttributesMap.get(element).push(...attrs);
|
|
225
307
|
}
|
|
226
308
|
}
|
|
309
|
+
// Tag the active-header neighbour classes in this same pass, so the scanned element set is
|
|
310
|
+
// walked once. Order into `classNamesMap` does not matter — it is applied after the loop.
|
|
311
|
+
if (isActiveHeader) {
|
|
312
|
+
_class_private_method_get(this, _markActiveHeaderNeighbor, markActiveHeaderNeighbor).call(this, element, className, classNamesMap);
|
|
313
|
+
}
|
|
227
314
|
});
|
|
228
315
|
}
|
|
229
316
|
const corners = selection.getCorners();
|
|
317
|
+
if (selectionType === ACTIVE_HEADER_TYPE && className) {
|
|
318
|
+
_class_private_method_get(this, _markFrozenColumnSeamHeader, markFrozenColumnSeamHeader).call(this, corners, className, classNamesMap);
|
|
319
|
+
_class_private_method_get(this, _markFrozenTopRowSeamHeader, markFrozenTopRowSeamHeader).call(this, corners, className, classNamesMap);
|
|
320
|
+
_class_private_method_get(this, _markFrozenBottomRowSeamHeader, markFrozenBottomRowSeamHeader).call(this, corners, className, classNamesMap);
|
|
321
|
+
}
|
|
230
322
|
_class_private_field_get(this, _activeOverlaysWot).getSetting('onBeforeDrawBorders', corners, selectionType);
|
|
231
323
|
borderInstance?.appear(corners);
|
|
232
324
|
}
|
|
@@ -261,6 +353,13 @@ var /**
|
|
|
261
353
|
*
|
|
262
354
|
* @param {SelectionsContainer | null} selections The Highlight instance that holds Selection instances.
|
|
263
355
|
*/ constructor(selections){
|
|
356
|
+
_class_private_method_init(this, _isCustomSelectionOffscreen);
|
|
357
|
+
_class_private_method_init(this, _markActiveHeaderNeighbor);
|
|
358
|
+
_class_private_method_init(this, _markPreviousRowHeaders);
|
|
359
|
+
_class_private_method_init(this, _tagSeamClass);
|
|
360
|
+
_class_private_method_init(this, _markFrozenColumnSeamHeader);
|
|
361
|
+
_class_private_method_init(this, _markFrozenTopRowSeamHeader);
|
|
362
|
+
_class_private_method_init(this, _markFrozenBottomRowSeamHeader);
|
|
264
363
|
_class_private_method_init(this, _resetCells);
|
|
265
364
|
_class_private_field_init(this, _activeOverlaysWot, {
|
|
266
365
|
writable: true,
|
|
@@ -294,6 +393,144 @@ var /**
|
|
|
294
393
|
_class_private_field_set(this, _selections, selections);
|
|
295
394
|
}
|
|
296
395
|
}
|
|
396
|
+
function isCustomSelectionOffscreen(selection) {
|
|
397
|
+
// A hidden/trimmed cell has a `null` cellRange (nothing to draw); treat it as off-screen and
|
|
398
|
+
// avoid `getCorners()`, which dereferences the range.
|
|
399
|
+
if (selection.isEmpty()) {
|
|
400
|
+
return true;
|
|
401
|
+
}
|
|
402
|
+
const { wtTable } = _class_private_field_get(this, _activeOverlaysWot);
|
|
403
|
+
const [fromRow, fromColumn, toRow, toColumn] = selection.getCorners();
|
|
404
|
+
const firstRow = wtTable.getFirstRenderedRow();
|
|
405
|
+
const lastRow = wtTable.getLastRenderedRow();
|
|
406
|
+
const firstColumn = wtTable.getFirstRenderedColumn();
|
|
407
|
+
const lastColumn = wtTable.getLastRenderedColumn();
|
|
408
|
+
// Nothing (or only headers) rendered in this overlay - the border cannot be visible here.
|
|
409
|
+
if (firstRow < 0 && lastRow < 0 || firstColumn < 0 && lastColumn < 0) {
|
|
410
|
+
return true;
|
|
411
|
+
}
|
|
412
|
+
return toRow < firstRow || fromRow > lastRow || toColumn < firstColumn || fromColumn > lastColumn;
|
|
413
|
+
}
|
|
414
|
+
function markActiveHeaderNeighbor(element, activeHeaderClassName, classNamesMap) {
|
|
415
|
+
if (element.nodeName !== 'TH') {
|
|
416
|
+
return;
|
|
417
|
+
}
|
|
418
|
+
const previousHeader = element.previousElementSibling;
|
|
419
|
+
if (previousHeader !== null && previousHeader.nodeName === 'TH') {
|
|
420
|
+
_class_private_method_get(this, _tagSeamClass, tagSeamClass).call(this, classNamesMap, previousHeader, `${activeHeaderClassName}-prev`);
|
|
421
|
+
}
|
|
422
|
+
_class_private_method_get(this, _markPreviousRowHeaders, markPreviousRowHeaders).call(this, element, activeHeaderClassName, classNamesMap);
|
|
423
|
+
}
|
|
424
|
+
function markPreviousRowHeaders(element, activeHeaderClassName, classNamesMap) {
|
|
425
|
+
const row = element.parentElement;
|
|
426
|
+
if (row === null || row.nodeName !== 'TR' || row.parentElement === null || row.parentElement.nodeName !== 'TBODY') {
|
|
427
|
+
return;
|
|
428
|
+
}
|
|
429
|
+
const previousRow = row.previousElementSibling;
|
|
430
|
+
if (previousRow === null || previousRow.nodeName !== 'TR') {
|
|
431
|
+
return;
|
|
432
|
+
}
|
|
433
|
+
for(let i = 0; i < previousRow.children.length; i++){
|
|
434
|
+
const cell = previousRow.children[i];
|
|
435
|
+
if (cell.nodeName !== 'TH') {
|
|
436
|
+
break;
|
|
437
|
+
}
|
|
438
|
+
_class_private_method_get(this, _tagSeamClass, tagSeamClass).call(this, classNamesMap, cell, `${activeHeaderClassName}-prev-row`);
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
function tagSeamClass(classNamesMap, th, seamClassName) {
|
|
442
|
+
if (classNamesMap.has(th)) {
|
|
443
|
+
classNamesMap.get(th).set(seamClassName, 1);
|
|
444
|
+
} else {
|
|
445
|
+
classNamesMap.set(th, new Map([
|
|
446
|
+
[
|
|
447
|
+
seamClassName,
|
|
448
|
+
1
|
|
449
|
+
]
|
|
450
|
+
]));
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
function markFrozenColumnSeamHeader(corners, activeHeaderClassName, classNamesMap) {
|
|
454
|
+
const wot = _class_private_field_get(this, _activeOverlaysWot);
|
|
455
|
+
const fixedColumnsStart = wot.getSetting('fixedColumnsStart');
|
|
456
|
+
if (fixedColumnsStart <= 0) {
|
|
457
|
+
return;
|
|
458
|
+
}
|
|
459
|
+
const { wtTable } = wot;
|
|
460
|
+
// Only the overlay that renders the frozen columns (and nothing past them) owns the seam line.
|
|
461
|
+
if (wtTable.getLastRenderedColumn() !== fixedColumnsStart - 1) {
|
|
462
|
+
return;
|
|
463
|
+
}
|
|
464
|
+
// The selection's inline-start column must sit exactly on the freeze line.
|
|
465
|
+
if (Math.min(corners[1], corners[3]) !== fixedColumnsStart) {
|
|
466
|
+
return;
|
|
467
|
+
}
|
|
468
|
+
const seamClassName = `${activeHeaderClassName}-seam`;
|
|
469
|
+
const headerLevels = wtTable.getColumnHeadersCount();
|
|
470
|
+
for(let level = 0; level < headerLevels; level++){
|
|
471
|
+
const th = wtTable.getColumnHeader(fixedColumnsStart - 1, level);
|
|
472
|
+
if (isHTMLElement(th)) {
|
|
473
|
+
_class_private_method_get(this, _tagSeamClass, tagSeamClass).call(this, classNamesMap, th, seamClassName);
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
function markFrozenTopRowSeamHeader(corners, activeHeaderClassName, classNamesMap) {
|
|
478
|
+
const wot = _class_private_field_get(this, _activeOverlaysWot);
|
|
479
|
+
const fixedRowsTop = wot.getSetting('fixedRowsTop');
|
|
480
|
+
if (fixedRowsTop <= 0) {
|
|
481
|
+
return;
|
|
482
|
+
}
|
|
483
|
+
const { wtTable } = wot;
|
|
484
|
+
const lastFrozenRow = fixedRowsTop - 1;
|
|
485
|
+
// Only the overlay that renders the top-frozen rows (ending exactly on the freeze line) owns the
|
|
486
|
+
// seam line.
|
|
487
|
+
if (wtTable.getLastRenderedRow() !== lastFrozenRow) {
|
|
488
|
+
return;
|
|
489
|
+
}
|
|
490
|
+
// The selection's top row must sit exactly on the first non-frozen row.
|
|
491
|
+
if (Math.min(corners[0], corners[2]) !== fixedRowsTop) {
|
|
492
|
+
return;
|
|
493
|
+
}
|
|
494
|
+
const seamClassName = `${activeHeaderClassName}-row-seam-top`;
|
|
495
|
+
const headerLevels = wtTable.getRowHeadersCount();
|
|
496
|
+
for(let level = 0; level < headerLevels; level++){
|
|
497
|
+
const th = wtTable.getRowHeader(lastFrozenRow, level);
|
|
498
|
+
// Overlays without row headers (e.g. the plain `top` overlay) return a TD here; only tag actual
|
|
499
|
+
// row-header cells.
|
|
500
|
+
if (isHTMLElement(th) && th.nodeName === 'TH') {
|
|
501
|
+
_class_private_method_get(this, _tagSeamClass, tagSeamClass).call(this, classNamesMap, th, seamClassName);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
function markFrozenBottomRowSeamHeader(corners, activeHeaderClassName, classNamesMap) {
|
|
506
|
+
const wot = _class_private_field_get(this, _activeOverlaysWot);
|
|
507
|
+
const fixedRowsBottom = wot.getSetting('fixedRowsBottom');
|
|
508
|
+
if (fixedRowsBottom <= 0) {
|
|
509
|
+
return;
|
|
510
|
+
}
|
|
511
|
+
const { wtTable } = wot;
|
|
512
|
+
const totalRows = wot.getSetting('totalRows');
|
|
513
|
+
const firstFrozenRow = totalRows - fixedRowsBottom;
|
|
514
|
+
// Only the overlay that renders the bottom-frozen rows (starting exactly on the freeze line) owns
|
|
515
|
+
// the seam line.
|
|
516
|
+
if (wtTable.getFirstRenderedRow() !== firstFrozenRow) {
|
|
517
|
+
return;
|
|
518
|
+
}
|
|
519
|
+
// The selection's bottom row must sit exactly on the last non-frozen row.
|
|
520
|
+
if (Math.max(corners[0], corners[2]) !== firstFrozenRow - 1) {
|
|
521
|
+
return;
|
|
522
|
+
}
|
|
523
|
+
const seamClassName = `${activeHeaderClassName}-row-seam-bottom`;
|
|
524
|
+
const headerLevels = wtTable.getRowHeadersCount();
|
|
525
|
+
for(let level = 0; level < headerLevels; level++){
|
|
526
|
+
const th = wtTable.getRowHeader(firstFrozenRow, level);
|
|
527
|
+
// Overlays without row headers (e.g. the plain `bottom` overlay) return a TD here; only tag
|
|
528
|
+
// actual row-header cells.
|
|
529
|
+
if (isHTMLElement(th) && th.nodeName === 'TH') {
|
|
530
|
+
_class_private_method_get(this, _tagSeamClass, tagSeamClass).call(this, classNamesMap, th, seamClassName);
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
}
|
|
297
534
|
function resetCells() {
|
|
298
535
|
const appliedOverlaysClasses = _class_private_field_get(this, _appliedClasses).get(_class_private_field_get(this, _activeOverlaysWot));
|
|
299
536
|
if (!appliedOverlaysClasses) {
|