handsontable 18.0.0 → 18.1.0-rc1
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 +142 -0
- package/3rdparty/walkontable/src/axisSizing/columnUtils.mjs +137 -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 +124 -0
- package/3rdparty/walkontable/src/axisSizing/defaultSizeSource.mjs +114 -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 +251 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/index.mjs +257 -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 +116 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/prefixSumStrategy.mjs +112 -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 +199 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/sparseStrategy.mjs +196 -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 +116 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/uniformStrategy.mjs +110 -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 +106 -0
- package/3rdparty/walkontable/src/axisSizing/rowUtils.mjs +101 -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/coords.js +4 -9
- package/3rdparty/walkontable/src/cell/coords.mjs +4 -9
- package/3rdparty/walkontable/src/cell/range.d.ts +10 -0
- package/3rdparty/walkontable/src/cell/range.js +19 -15
- package/3rdparty/walkontable/src/cell/range.mjs +16 -12
- package/3rdparty/walkontable/src/core/_base.d.ts +21 -21
- package/3rdparty/walkontable/src/core/_base.js +47 -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 +40 -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 +41 -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 +195 -0
- package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.mjs +193 -0
- package/3rdparty/walkontable/src/event.d.ts +25 -12
- package/3rdparty/walkontable/src/event.js +96 -236
- package/3rdparty/walkontable/src/event.mjs +95 -236
- 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 +10 -21
- 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 +605 -0
- package/3rdparty/walkontable/src/overlay/overlays.mjs +594 -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} +155 -50
- package/3rdparty/walkontable/src/overlay/{_base.mjs → regions/_base.mjs} +158 -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} +111 -66
- package/3rdparty/walkontable/src/overlay/{bottom.mjs → regions/bottomOverlay.mjs} +111 -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} +120 -67
- package/3rdparty/walkontable/src/overlay/{inlineStart.mjs → regions/inlineStartOverlay.mjs} +120 -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} +161 -77
- package/3rdparty/walkontable/src/overlay/{top.mjs → regions/topOverlay.mjs} +161 -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 +149 -0
- package/3rdparty/walkontable/src/overlay/resizeMonitor.mjs +148 -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 +283 -0
- package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.mjs +288 -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 +542 -0
- package/3rdparty/walkontable/src/overlay/scroll/scrollSync.mjs +550 -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 +173 -0
- package/3rdparty/walkontable/src/overlay/spreaderSize.mjs +174 -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} +65 -53
- package/3rdparty/walkontable/src/{stickyScrollStrategy.mjs → overlay/strategies/stickyScrollStrategy.mjs} +63 -50
- 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 +41 -1
- package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.mjs +42 -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 +375 -0
- package/3rdparty/walkontable/src/{renderer/table.mjs → render/tableRenderer.mjs} +152 -6
- package/3rdparty/walkontable/src/{scroll.d.ts → scroll/scroll.d.ts} +27 -10
- package/3rdparty/walkontable/src/{scroll.js → scroll/scroll.js} +104 -35
- package/3rdparty/walkontable/src/{scroll.mjs → scroll/scroll.mjs} +102 -32
- 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 +242 -12
- package/3rdparty/walkontable/src/selection/manager.mjs +243 -13
- package/3rdparty/walkontable/src/selection/scanner.js +5 -12
- package/3rdparty/walkontable/src/selection/scanner.mjs +5 -12
- 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 +290 -0
- package/3rdparty/walkontable/src/table/baseTable.mjs +278 -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} +27 -57
- package/3rdparty/walkontable/src/table/{master.mjs → regions/masterTable.mjs} +26 -56
- 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 +363 -0
- package/3rdparty/walkontable/src/viewport/viewport.mjs +355 -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/LICENSE.txt +1 -1
- package/README.md +2 -2
- package/base.d.ts +10 -2
- 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/coordsMapper/rangeToRenderableMapper.js +5 -12
- package/core/coordsMapper/rangeToRenderableMapper.mjs +5 -12
- package/core/hooks/bucket.d.ts +40 -6
- package/core/hooks/bucket.js +113 -84
- package/core/hooks/bucket.mjs +118 -84
- package/core/hooks/constants.js +254 -16
- package/core/hooks/constants.mjs +254 -16
- package/core/hooks/index.js +28 -25
- package/core/hooks/index.mjs +28 -25
- 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 +21 -14
- package/core/layout/domSlot.mjs +21 -14
- 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 +25 -13
- package/core/layout/layoutManager.mjs +26 -11
- package/core/settings.d.ts +59 -6
- package/core/types.d.ts +15 -1
- package/core/types.mjs +9 -0
- package/core.js +481 -85
- package/core.mjs +483 -87
- package/dataMap/dataMap.d.ts +3 -13
- package/dataMap/dataMap.js +101 -44
- package/dataMap/dataMap.mjs +102 -45
- 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 +490 -110
- package/dataMap/metaManager/lazyFactoryMap.mjs +504 -111
- package/dataMap/metaManager/metaLayers/cellMeta.d.ts +55 -8
- package/dataMap/metaManager/metaLayers/cellMeta.js +112 -17
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +112 -17
- 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 +712 -31
- package/dataMap/metaManager/metaSchema.mjs +712 -31
- package/dataMap/metaManager/mods/dynamicCellMeta.d.ts +24 -10
- package/dataMap/metaManager/mods/dynamicCellMeta.js +245 -28
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +246 -29
- package/dataMap/metaManager/mods/extendMetaProperties.js +4 -9
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +4 -9
- package/dataMap/sourceDataValidator.d.ts +13 -21
- package/dataMap/sourceDataValidator.js +39 -29
- package/dataMap/sourceDataValidator.mjs +50 -33
- package/dist/handsontable.full.js +34553 -9903
- package/dist/handsontable.full.min.js +168 -112
- package/dist/handsontable.js +31541 -13409
- 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 +1 -3
- package/editorManager.mjs +1 -3
- package/editors/autocompleteEditor/autocompleteEditor.js +48 -22
- package/editors/autocompleteEditor/autocompleteEditor.mjs +48 -22
- package/editors/baseEditor/baseEditor.d.ts +15 -3
- package/editors/baseEditor/baseEditor.js +6 -6
- package/editors/baseEditor/baseEditor.mjs +16 -6
- 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/controllers/dropdownController.js +5 -12
- package/editors/multiSelectEditor/controllers/dropdownController.mjs +5 -12
- package/editors/multiSelectEditor/controllers/inputController.js +1 -3
- package/editors/multiSelectEditor/controllers/inputController.mjs +1 -3
- package/editors/multiSelectEditor/multiSelectEditor.js +16 -21
- package/editors/multiSelectEditor/multiSelectEditor.mjs +17 -22
- package/editors/passwordEditor/passwordEditor.js +5 -12
- package/editors/passwordEditor/passwordEditor.mjs +5 -12
- package/editors/registry.js +4 -9
- package/editors/registry.mjs +4 -9
- 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 +84 -14
- package/focusManager/grid.mjs +80 -15
- 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/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 +27 -3
- package/helpers/dom/element.js +92 -16
- package/helpers/dom/element.mjs +107 -17
- 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/i18n/languages/ar-AR.js +8 -19
- package/i18n/languages/cs-CZ.js +8 -19
- package/i18n/languages/de-CH.js +8 -19
- package/i18n/languages/de-DE.js +8 -19
- package/i18n/languages/en-US.js +8 -19
- package/i18n/languages/es-MX.js +8 -19
- package/i18n/languages/fa-IR.d.ts +1 -0
- package/i18n/languages/fa-IR.js +9 -19
- package/i18n/languages/fa-IR.mjs +1 -0
- package/i18n/languages/fr-FR.js +8 -19
- package/i18n/languages/hr-HR.js +8 -19
- package/i18n/languages/it-IT.js +8 -19
- package/i18n/languages/ja-JP.js +8 -19
- package/i18n/languages/ko-KR.js +8 -19
- package/i18n/languages/lv-LV.js +8 -19
- package/i18n/languages/nb-NO.js +8 -19
- package/i18n/languages/nl-NL.js +8 -19
- package/i18n/languages/pl-PL.js +8 -19
- package/i18n/languages/pt-BR.js +8 -19
- package/i18n/languages/ru-RU.js +8 -19
- package/i18n/languages/sr-SP.js +8 -19
- package/i18n/languages/zh-CN.js +8 -19
- package/i18n/languages/zh-TW.js +8 -19
- package/i18n/registry.js +8 -19
- package/index.d.ts +2 -2
- package/index.js +8 -19
- 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 +506 -94
- package/plugins/autoColumnSize/autoColumnSize.mjs +513 -95
- package/plugins/autoRowSize/autoRowSize.d.ts +40 -5
- package/plugins/autoRowSize/autoRowSize.js +73 -36
- package/plugins/autoRowSize/autoRowSize.mjs +103 -41
- package/plugins/autofill/autofill.js +35 -24
- package/plugins/autofill/autofill.mjs +35 -24
- package/plugins/base/base.d.ts +10 -0
- package/plugins/base/base.js +5 -12
- package/plugins/base/base.mjs +5 -12
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +4 -9
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +4 -9
- package/plugins/collapsibleColumns/collapsibleColumns.d.ts +4 -0
- package/plugins/collapsibleColumns/collapsibleColumns.js +94 -20
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +98 -20
- package/plugins/columnSorting/columnSorting.d.ts +31 -2
- package/plugins/columnSorting/columnSorting.js +153 -33
- package/plugins/columnSorting/columnSorting.mjs +155 -35
- 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 +13 -14
- package/plugins/columnSummary/columnSummary.mjs +13 -14
- package/plugins/columnSummary/endpoints.d.ts +69 -2
- package/plugins/columnSummary/endpoints.js +176 -29
- package/plugins/columnSummary/endpoints.mjs +176 -29
- package/plugins/comments/commentEditor.js +5 -10
- package/plugins/comments/commentEditor.mjs +6 -11
- package/plugins/comments/comments.js +5 -12
- package/plugins/comments/comments.mjs +5 -12
- package/plugins/comments/contextMenuItem/addEditComment.js +8 -19
- package/plugins/comments/contextMenuItem/readOnlyComment.js +8 -19
- package/plugins/comments/contextMenuItem/removeComment.js +8 -19
- package/plugins/comments/editorResizeObserver.js +5 -12
- package/plugins/comments/editorResizeObserver.mjs +5 -12
- package/plugins/contextMenu/contextMenu.d.ts +12 -1
- package/plugins/contextMenu/contextMenu.js +34 -15
- package/plugins/contextMenu/contextMenu.mjs +34 -15
- package/plugins/contextMenu/index.d.ts +1 -1
- package/plugins/contextMenu/menu/menu.d.ts +22 -1
- package/plugins/contextMenu/menu/menu.js +216 -15
- package/plugins/contextMenu/menu/menu.mjs +217 -16
- package/plugins/contextMenu/menu/positioner.js +4 -9
- package/plugins/contextMenu/menu/positioner.mjs +4 -9
- package/plugins/contextMenu/predefinedItems/alignment.js +22 -33
- package/plugins/contextMenu/predefinedItems/alignment.mjs +14 -14
- package/plugins/contextMenu/predefinedItems/clearColumn.js +9 -20
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +1 -1
- package/plugins/contextMenu/predefinedItems/columnLeft.js +8 -19
- package/plugins/contextMenu/predefinedItems/columnRight.js +8 -19
- package/plugins/contextMenu/predefinedItems/index.js +8 -19
- package/plugins/contextMenu/predefinedItems/readOnly.js +11 -22
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +3 -3
- package/plugins/contextMenu/predefinedItems/redo.js +8 -19
- package/plugins/contextMenu/predefinedItems/removeColumn.js +8 -19
- package/plugins/contextMenu/predefinedItems/removeRow.js +8 -19
- package/plugins/contextMenu/predefinedItems/rowAbove.js +8 -19
- package/plugins/contextMenu/predefinedItems/rowBelow.js +8 -19
- package/plugins/contextMenu/predefinedItems/undo.js +8 -19
- package/plugins/contextMenu/utils.js +1 -1
- package/plugins/contextMenu/utils.mjs +1 -1
- package/plugins/copyPaste/contextMenuItem/cut.js +8 -19
- package/plugins/copyPaste/copyPaste.js +62 -20
- package/plugins/copyPaste/copyPaste.mjs +63 -21
- package/plugins/copyPaste/copyableRanges.js +11 -14
- package/plugins/copyPaste/copyableRanges.mjs +11 -14
- package/plugins/copyPaste/pasteEvent.d.ts +1 -1
- package/plugins/customBorders/contextMenuItem/bottom.js +8 -19
- package/plugins/customBorders/contextMenuItem/left.js +8 -19
- package/plugins/customBorders/contextMenuItem/noBorders.js +8 -19
- package/plugins/customBorders/contextMenuItem/right.js +8 -19
- package/plugins/customBorders/contextMenuItem/top.js +8 -19
- package/plugins/customBorders/customBorders.d.ts +21 -40
- package/plugins/customBorders/customBorders.js +1084 -223
- package/plugins/customBorders/customBorders.mjs +1078 -206
- 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.js +35 -38
- package/plugins/dataProvider/dataProvider.mjs +27 -19
- package/plugins/dataProvider/query/crud.js +1 -1
- package/plugins/dataProvider/query/crud.mjs +1 -1
- package/plugins/dialog/dialog.js +15 -33
- package/plugins/dialog/dialog.mjs +7 -14
- package/plugins/dialog/ui.js +5 -12
- package/plugins/dialog/ui.mjs +5 -12
- package/plugins/dragToScroll/autoScroller.js +4 -9
- package/plugins/dragToScroll/autoScroller.mjs +4 -9
- package/plugins/dragToScroll/dragToScroll.d.ts +2 -2
- package/plugins/dragToScroll/dragToScroll.js +155 -26
- package/plugins/dragToScroll/dragToScroll.mjs +156 -27
- package/plugins/dragToScroll/scrollTimer.js +4 -9
- package/plugins/dragToScroll/scrollTimer.mjs +4 -9
- package/plugins/dropdownMenu/dropdownMenu.d.ts +5 -1
- package/plugins/dropdownMenu/dropdownMenu.js +50 -15
- package/plugins/dropdownMenu/dropdownMenu.mjs +51 -16
- package/plugins/dropdownMenu/index.d.ts +1 -0
- package/plugins/emptyDataState/emptyDataState.js +15 -33
- package/plugins/emptyDataState/emptyDataState.mjs +7 -14
- package/plugins/emptyDataState/ui.js +4 -9
- package/plugins/emptyDataState/ui.mjs +4 -9
- package/plugins/exportFile/dataProvider.js +5 -1
- package/plugins/exportFile/dataProvider.mjs +5 -1
- package/plugins/exportFile/exportFile.js +13 -31
- package/plugins/exportFile/exportFile.mjs +5 -12
- package/plugins/exportFile/types/csv.js +1 -3
- package/plugins/exportFile/types/csv.mjs +1 -3
- 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 +10 -3
- package/plugins/exportFile/types/xlsx.mjs +11 -4
- 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/actionBar.js +9 -22
- package/plugins/filters/component/actionBar.mjs +1 -3
- package/plugins/filters/component/condition.d.ts +1 -0
- package/plugins/filters/component/condition.js +11 -22
- package/plugins/filters/component/condition.mjs +3 -3
- package/plugins/filters/component/operators.js +1 -3
- package/plugins/filters/component/operators.mjs +1 -3
- package/plugins/filters/component/value.d.ts +5 -6
- package/plugins/filters/component/value.js +62 -56
- package/plugins/filters/component/value.mjs +55 -38
- package/plugins/filters/condition/beginsWith.js +8 -19
- package/plugins/filters/condition/between.js +8 -19
- package/plugins/filters/condition/contains.js +8 -19
- package/plugins/filters/condition/date/after.js +10 -20
- package/plugins/filters/condition/date/after.mjs +2 -1
- package/plugins/filters/condition/date/afterOrEqual.js +10 -20
- package/plugins/filters/condition/date/afterOrEqual.mjs +2 -1
- package/plugins/filters/condition/date/before.js +10 -20
- package/plugins/filters/condition/date/before.mjs +2 -1
- package/plugins/filters/condition/date/beforeOrEqual.js +10 -20
- package/plugins/filters/condition/date/beforeOrEqual.mjs +2 -1
- package/plugins/filters/condition/date/today.js +8 -19
- package/plugins/filters/condition/date/tomorrow.js +8 -19
- package/plugins/filters/condition/date/yesterday.js +8 -19
- package/plugins/filters/condition/empty.js +8 -19
- package/plugins/filters/condition/endsWith.js +8 -19
- package/plugins/filters/condition/equal.d.ts +7 -0
- package/plugins/filters/condition/equal.js +12 -19
- package/plugins/filters/condition/equal.mjs +10 -0
- package/plugins/filters/condition/greaterThan.js +8 -19
- package/plugins/filters/condition/greaterThanOrEqual.js +8 -19
- package/plugins/filters/condition/intlDate/after.js +8 -19
- package/plugins/filters/condition/intlDate/afterOrEqual.js +8 -19
- package/plugins/filters/condition/intlDate/before.js +8 -19
- package/plugins/filters/condition/intlDate/beforeOrEqual.js +8 -19
- package/plugins/filters/condition/intlDate/between.js +8 -19
- package/plugins/filters/condition/intlDate/today.js +8 -19
- package/plugins/filters/condition/intlDate/tomorrow.js +8 -19
- package/plugins/filters/condition/intlDate/yesterday.js +8 -19
- 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 +66 -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 +66 -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 +66 -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 +66 -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 +67 -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 +65 -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 +66 -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 +66 -0
- package/plugins/filters/condition/intlDatetime/yesterday.mjs +21 -0
- package/plugins/filters/condition/intlTime/after.js +8 -19
- package/plugins/filters/condition/intlTime/afterOrEqual.js +8 -19
- package/plugins/filters/condition/intlTime/before.js +8 -19
- package/plugins/filters/condition/intlTime/beforeOrEqual.js +8 -19
- package/plugins/filters/condition/intlTime/between.js +8 -19
- package/plugins/filters/condition/lessThan.js +8 -19
- package/plugins/filters/condition/lessThanOrEqual.js +8 -19
- package/plugins/filters/condition/none.js +8 -19
- package/plugins/filters/condition/notBetween.js +8 -19
- package/plugins/filters/condition/notContains.js +8 -19
- package/plugins/filters/condition/notEmpty.js +8 -19
- package/plugins/filters/condition/notEqual.js +8 -19
- 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 +144 -52
- package/plugins/filters/conditionUpdateObserver.mjs +144 -52
- 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 +104 -62
- package/plugins/filters/filters.mjs +97 -44
- package/plugins/filters/logicalOperations/conjunction.js +8 -19
- package/plugins/filters/logicalOperations/disjunction.js +8 -19
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +8 -19
- 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/_base.js +8 -19
- package/plugins/filters/ui/input.d.ts +4 -0
- package/plugins/filters/ui/input.js +23 -18
- package/plugins/filters/ui/input.mjs +23 -18
- package/plugins/filters/ui/link.js +4 -9
- package/plugins/filters/ui/link.mjs +4 -9
- package/plugins/filters/ui/multipleSelect.js +40 -35
- package/plugins/filters/ui/multipleSelect.mjs +32 -16
- package/plugins/filters/ui/radioInput.js +4 -9
- package/plugins/filters/ui/radioInput.mjs +4 -9
- package/plugins/filters/ui/select.js +14 -32
- package/plugins/filters/ui/select.mjs +6 -13
- 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 +748 -55
- package/plugins/formulas/formulas.mjs +752 -57
- 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 +77 -27
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +77 -27
- package/plugins/formulas/indexSyncer/index.js +4 -9
- package/plugins/formulas/indexSyncer/index.mjs +4 -9
- 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/hideColumn.js +8 -19
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +14 -20
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +6 -1
- package/plugins/hiddenColumns/hiddenColumns.js +11 -15
- package/plugins/hiddenColumns/hiddenColumns.mjs +11 -15
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +8 -19
- package/plugins/hiddenRows/contextMenuItem/showRow.js +14 -20
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +6 -1
- package/plugins/hiddenRows/hiddenRows.js +11 -15
- package/plugins/hiddenRows/hiddenRows.mjs +11 -15
- package/plugins/index.d.ts +5 -1
- package/plugins/index.js +10 -0
- package/plugins/index.mjs +5 -1
- package/plugins/loading/loading.js +13 -31
- package/plugins/loading/loading.mjs +5 -12
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +8 -19
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +8 -19
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +5 -12
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +5 -12
- package/plugins/manualColumnMove/manualColumnMove.d.ts +10 -0
- package/plugins/manualColumnMove/manualColumnMove.js +128 -33
- package/plugins/manualColumnMove/manualColumnMove.mjs +129 -34
- package/plugins/manualColumnResize/manualColumnResize.d.ts +12 -1
- package/plugins/manualColumnResize/manualColumnResize.js +28 -17
- package/plugins/manualColumnResize/manualColumnResize.mjs +28 -17
- package/plugins/manualRowMove/manualRowMove.js +5 -12
- package/plugins/manualRowMove/manualRowMove.mjs +5 -12
- package/plugins/manualRowResize/manualRowResize.d.ts +13 -2
- package/plugins/manualRowResize/manualRowResize.js +29 -18
- package/plugins/manualRowResize/manualRowResize.mjs +29 -18
- package/plugins/mergeCells/cellCoords.d.ts +8 -0
- package/plugins/mergeCells/cellCoords.js +15 -9
- package/plugins/mergeCells/cellCoords.mjs +15 -9
- package/plugins/mergeCells/cellsCollection.d.ts +46 -2
- package/plugins/mergeCells/cellsCollection.js +190 -71
- package/plugins/mergeCells/cellsCollection.mjs +190 -71
- package/plugins/mergeCells/contextMenuItem/toggleMerge.js +8 -19
- package/plugins/mergeCells/focusOrder.d.ts +26 -20
- package/plugins/mergeCells/focusOrder.js +363 -189
- package/plugins/mergeCells/focusOrder.mjs +368 -184
- package/plugins/mergeCells/mergeCells.d.ts +13 -8
- package/plugins/mergeCells/mergeCells.js +327 -76
- package/plugins/mergeCells/mergeCells.mjs +327 -76
- 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 +595 -0
- package/plugins/moveCells/moveCells.mjs +580 -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 +266 -58
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +266 -58
- package/plugins/nestedHeaders/nestedHeaders.d.ts +10 -1
- package/plugins/nestedHeaders/nestedHeaders.js +227 -35
- package/plugins/nestedHeaders/nestedHeaders.mjs +227 -35
- 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/headersTree.js +4 -9
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +4 -9
- package/plugins/nestedHeaders/stateManager/index.d.ts +76 -13
- package/plugins/nestedHeaders/stateManager/index.js +386 -50
- package/plugins/nestedHeaders/stateManager/index.mjs +387 -51
- 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 +24 -13
- package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +24 -13
- 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 +1 -3
- package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -3
- 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 +332 -17
- package/plugins/nestedRows/nestedRows.mjs +332 -17
- package/plugins/nestedRows/ui/collapsing.d.ts +58 -0
- package/plugins/nestedRows/ui/collapsing.js +234 -40
- package/plugins/nestedRows/ui/collapsing.mjs +234 -40
- package/plugins/nestedRows/ui/contextMenu.js +12 -28
- package/plugins/nestedRows/ui/contextMenu.mjs +4 -9
- package/plugins/notification/notification.js +13 -31
- package/plugins/notification/notification.mjs +5 -12
- package/plugins/notification/ui.js +4 -9
- package/plugins/notification/ui.mjs +4 -9
- package/plugins/pagination/pagination.js +7 -14
- package/plugins/pagination/pagination.mjs +7 -14
- package/plugins/pagination/ui.js +13 -31
- package/plugins/pagination/ui.mjs +5 -12
- package/plugins/search/search.js +27 -11
- package/plugins/search/search.mjs +27 -11
- 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 +335 -0
- package/plugins/selectionHandles/selectionHandles.mjs +316 -0
- package/plugins/stretchColumns/calculator.js +5 -12
- package/plugins/stretchColumns/calculator.mjs +5 -12
- package/plugins/stretchColumns/strategies/last.js +4 -9
- package/plugins/stretchColumns/strategies/last.mjs +4 -9
- package/plugins/stretchColumns/stretchColumns.js +4 -9
- package/plugins/stretchColumns/stretchColumns.mjs +4 -9
- package/plugins/touchScroll/touchScroll.js +4 -9
- package/plugins/touchScroll/touchScroll.mjs +4 -9
- package/plugins/trimRows/trimRows.d.ts +1 -1
- package/plugins/trimRows/trimRows.js +10 -11
- package/plugins/trimRows/trimRows.mjs +10 -11
- 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 +40 -11
- package/plugins/undoRedo/undoRedo.mjs +40 -11
- 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 +161 -0
- package/renderSizeProbe.mjs +174 -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/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/highlight.js +1 -3
- package/selection/highlight/highlight.mjs +1 -3
- 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 +162 -36
- package/selection/selection.mjs +154 -17
- package/selection/transformation/_base.js +5 -12
- package/selection/transformation/_base.mjs +5 -12
- 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.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 +211 -53
- package/tableView.mjs +212 -54
- package/themes/engine/builder.js +5 -12
- package/themes/engine/builder.mjs +5 -12
- 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 +247 -18
- package/themes/engine/manager.mjs +254 -18
- 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/changesObservable/observable.js +4 -9
- package/translations/changesObservable/observable.mjs +4 -9
- package/translations/changesObservable/observer.js +4 -9
- package/translations/changesObservable/observer.mjs +4 -9
- package/translations/indexMapper.d.ts +14 -9
- package/translations/indexMapper.js +109 -49
- package/translations/indexMapper.mjs +109 -49
- 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 +293 -0
- package/translations/maps/booleanMap.mjs +301 -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 +73 -6
- package/translations/maps/indexMap.mjs +73 -6
- package/translations/maps/indexesSequence.d.ts +53 -2
- package/translations/maps/indexesSequence.js +218 -3
- package/translations/maps/indexesSequence.mjs +226 -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 +58 -11
- package/utils/ghostTable.mjs +58 -11
- package/utils/interval.js +5 -12
- package/utils/interval.mjs +5 -12
- 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 +1 -1
- package/utils/parseTable.mjs +1 -1
- package/utils/samplesGenerator.d.ts +41 -14
- package/utils/samplesGenerator.js +112 -42
- package/utils/samplesGenerator.mjs +112 -42
- package/utils/stylesHandler.d.ts +13 -0
- package/utils/stylesHandler.js +60 -14
- package/utils/stylesHandler.mjs +60 -14
- 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
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { default as MetaManagerInstance } from '..';
|
|
2
|
+
import type { HotInstance } from '../../../core/types';
|
|
3
|
+
import type { CellProperties } from '../../../settings';
|
|
2
4
|
/**
|
|
3
5
|
* @class DynamicCellMetaMod
|
|
4
6
|
*
|
|
@@ -15,12 +17,7 @@ import type { default as MetaManagerInstance } from '..';
|
|
|
15
17
|
* the logic is triggered only once per one Handsontable slow render cycle.
|
|
16
18
|
*/
|
|
17
19
|
type MetaManagerWithHot = MetaManagerInstance & {
|
|
18
|
-
hot:
|
|
19
|
-
colToProp: (column: number) => string | number;
|
|
20
|
-
runHooks: (...args: unknown[]) => unknown;
|
|
21
|
-
[key: string]: unknown;
|
|
22
|
-
};
|
|
23
|
-
addLocalHook: (hookName: string, callback: (...args: unknown[]) => void) => void;
|
|
20
|
+
hot: HotInstance;
|
|
24
21
|
updateCellMeta: (...args: unknown[]) => void;
|
|
25
22
|
[key: string]: unknown;
|
|
26
23
|
};
|
|
@@ -29,16 +26,22 @@ type MetaManagerWithHot = MetaManagerInstance & {
|
|
|
29
26
|
* memoizing results per render cycle to avoid redundant work.
|
|
30
27
|
*/
|
|
31
28
|
export declare class DynamicCellMetaMod {
|
|
29
|
+
#private;
|
|
32
30
|
/**
|
|
33
31
|
* @type {MetaManager}
|
|
34
32
|
*/
|
|
35
33
|
metaManager: MetaManagerWithHot;
|
|
36
34
|
/**
|
|
37
|
-
*
|
|
35
|
+
* Per-render-cycle memo of cells already extended by `extendCellMeta`, keyed by physical row to a
|
|
36
|
+
* set of physical columns.
|
|
37
|
+
*
|
|
38
|
+
* @type {Map<number, Set<number>>}
|
|
38
39
|
*/
|
|
39
|
-
metaSyncMemo: Map<
|
|
40
|
+
metaSyncMemo: Map<number, Set<number>>;
|
|
40
41
|
/**
|
|
41
|
-
* Initializes the modifier, registers the `afterGetCellMeta` local hook,
|
|
42
|
+
* Initializes the modifier, registers the `afterGetCellMeta` local hook, subscribes to `beforeRender`
|
|
43
|
+
* to clear the memo on full renders, and subscribes to `afterScrollVertically` and `afterViewRender`
|
|
44
|
+
* to evict render-derived cell meta for rows that left the viewport.
|
|
42
45
|
*/
|
|
43
46
|
constructor(metaManager: MetaManagerWithHot);
|
|
44
47
|
/**
|
|
@@ -52,6 +55,17 @@ export declare class DynamicCellMetaMod {
|
|
|
52
55
|
*
|
|
53
56
|
* @param {object} cellMeta The cell meta object.
|
|
54
57
|
*/
|
|
55
|
-
extendCellMeta(cellMeta:
|
|
58
|
+
extendCellMeta(cellMeta: CellProperties): void;
|
|
59
|
+
/**
|
|
60
|
+
* Extends a transient (not stored) cell meta object by the same user-specific properties as
|
|
61
|
+
* `extendCellMeta`, with two deliberate differences. The `cells`/`type` settings are applied
|
|
62
|
+
* directly on the transient object - never through `updateCellMeta`, which would permanently
|
|
63
|
+
* materialize the cell. And `metaSyncMemo` is neither read nor written: the memo must reflect only
|
|
64
|
+
* STORED meta objects, or a stored cell created later would skip its extension (a rendering bug),
|
|
65
|
+
* and memo growth would defeat the point of a retention-free scan.
|
|
66
|
+
*
|
|
67
|
+
* @param {object} cellMeta The transient cell meta object.
|
|
68
|
+
*/
|
|
69
|
+
extendTransientCellMeta(cellMeta: Record<string, unknown>): void;
|
|
56
70
|
}
|
|
57
71
|
export {};
|
|
@@ -11,6 +11,105 @@ Object.defineProperty(exports, "DynamicCellMetaMod", {
|
|
|
11
11
|
const _hooks = require("../../../core/hooks");
|
|
12
12
|
const _object = require("../../../helpers/object");
|
|
13
13
|
const _function = require("../../../helpers/function");
|
|
14
|
+
const _utils = require("../utils");
|
|
15
|
+
function _check_private_redeclaration(obj, privateCollection) {
|
|
16
|
+
if (privateCollection.has(obj)) {
|
|
17
|
+
throw new TypeError("Cannot initialize the same private elements twice on an object");
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function _class_apply_descriptor_get(receiver, descriptor) {
|
|
21
|
+
if (descriptor.get) return descriptor.get.call(receiver);
|
|
22
|
+
return descriptor.value;
|
|
23
|
+
}
|
|
24
|
+
function _class_apply_descriptor_set(receiver, descriptor, value) {
|
|
25
|
+
if (descriptor.set) descriptor.set.call(receiver, value);
|
|
26
|
+
else {
|
|
27
|
+
if (!descriptor.writable) {
|
|
28
|
+
throw new TypeError("attempted to set read only private field");
|
|
29
|
+
}
|
|
30
|
+
descriptor.value = value;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function _class_extract_field_descriptor(receiver, privateMap, action) {
|
|
34
|
+
if (!privateMap.has(receiver)) throw new TypeError("attempted to " + action + " private field on non-instance");
|
|
35
|
+
return privateMap.get(receiver);
|
|
36
|
+
}
|
|
37
|
+
function _class_private_field_get(receiver, privateMap) {
|
|
38
|
+
var descriptor = _class_extract_field_descriptor(receiver, privateMap, "get");
|
|
39
|
+
return _class_apply_descriptor_get(receiver, descriptor);
|
|
40
|
+
}
|
|
41
|
+
function _class_private_field_init(obj, privateMap, value) {
|
|
42
|
+
_check_private_redeclaration(obj, privateMap);
|
|
43
|
+
privateMap.set(obj, value);
|
|
44
|
+
}
|
|
45
|
+
function _class_private_field_set(receiver, privateMap, value) {
|
|
46
|
+
var descriptor = _class_extract_field_descriptor(receiver, privateMap, "set");
|
|
47
|
+
_class_apply_descriptor_set(receiver, descriptor, value);
|
|
48
|
+
return value;
|
|
49
|
+
}
|
|
50
|
+
function _class_private_method_get(receiver, privateSet, fn) {
|
|
51
|
+
if (!privateSet.has(receiver)) throw new TypeError("attempted to get private field on non-instance");
|
|
52
|
+
return fn;
|
|
53
|
+
}
|
|
54
|
+
function _class_private_method_init(obj, privateSet) {
|
|
55
|
+
_check_private_redeclaration(obj, privateSet);
|
|
56
|
+
privateSet.add(obj);
|
|
57
|
+
}
|
|
58
|
+
var /**
|
|
59
|
+
* The lowest visual row index of the meta "keep band" tracked by the previous eviction pass - the
|
|
60
|
+
* viewport plus a one-viewport hysteresis margin. The next pass evicts the visual rows that fall
|
|
61
|
+
* between this band and the new one (the rows that just scrolled out), so the work is proportional
|
|
62
|
+
* to the scroll distance, not the number of materialized rows.
|
|
63
|
+
*
|
|
64
|
+
* @type {number}
|
|
65
|
+
*/ _keepBandStart = /*#__PURE__*/ new WeakMap(), /**
|
|
66
|
+
* The highest visual row index of the meta "keep band". See `#keepBandStart`.
|
|
67
|
+
*
|
|
68
|
+
* @type {number}
|
|
69
|
+
*/ _keepBandEnd = /*#__PURE__*/ new WeakMap(), /**
|
|
70
|
+
* Whether a keep band has been recorded yet. A separate flag (rather than a sentinel value) is
|
|
71
|
+
* required because a valid `#keepBandStart` is often negative near the top of the grid (the
|
|
72
|
+
* viewport start minus the hysteresis margin), so no numeric sentinel is safe.
|
|
73
|
+
*
|
|
74
|
+
* @type {boolean}
|
|
75
|
+
*/ _keepBandInitialized = /*#__PURE__*/ new WeakMap(), /**
|
|
76
|
+
* Runs the dynamic-extension sequence on a cell meta object: resolves `prop`, fires
|
|
77
|
+
* `beforeGetCellMeta`, evaluates the `cells` function and the `type` value it (or the hook)
|
|
78
|
+
* produced, hands the resulting settings to the caller-provided applier, and fires
|
|
79
|
+
* `afterGetCellMeta`. The applier is the only step that differs between the stored path
|
|
80
|
+
* (persist through `updateCellMeta`) and the transient path (extend the throwaway object).
|
|
81
|
+
*
|
|
82
|
+
* @param {object} cellMeta The cell meta object to extend.
|
|
83
|
+
* @param {Function} applyCellSettings Receives the resolved `cells`/`type` settings object.
|
|
84
|
+
*/ _runMetaExtension = /*#__PURE__*/ new WeakSet(), /**
|
|
85
|
+
* Evicts render-derived cell meta for rows that scrolled out of the viewport, bounding meta
|
|
86
|
+
* retention to roughly the visible rows plus a one-viewport hysteresis margin on each side ("keep
|
|
87
|
+
* band"). Only the visual rows that fall between the previous keep band and the new one are visited
|
|
88
|
+
* (the rows that just left), so the cost is proportional to the scroll distance, NOT to the number
|
|
89
|
+
* of materialized rows - a grid with many `setCellMeta`/`cell`-option rows pays nothing extra here.
|
|
90
|
+
* The band is tracked in visual space and never reset, so a full render that does not move the
|
|
91
|
+
* viewport produces an empty diff (no work). Row-axis only - the vertical axis is the large one;
|
|
92
|
+
* horizontal scrolling does not evict.
|
|
93
|
+
*/ _evictMetaOutsideViewport = /*#__PURE__*/ new WeakSet(), /**
|
|
94
|
+
* Evicts render-derived cell meta for an inclusive range of visual rows. Each visual row is
|
|
95
|
+
* translated to its physical index (cell meta is keyed physically) reading the mapping fresh, so a
|
|
96
|
+
* sort or move that happened since the band was recorded resolves correctly. Only the active
|
|
97
|
+
* editor's row is skipped - the selection highlight (focus) cell, where the prepared or active
|
|
98
|
+
* editor holds the cell meta object by reference (see `BaseEditor#cellProperties`). The remaining
|
|
99
|
+
* rows of a wide selection (whole column, multi-row) must stay evictable, or they would pin their
|
|
100
|
+
* cell meta and defeat the viewport bound.
|
|
101
|
+
*
|
|
102
|
+
* @param {number} fromVisualRow The first visual row index in the range (inclusive).
|
|
103
|
+
* @param {number} toVisualRow The last visual row index in the range (inclusive).
|
|
104
|
+
*/ _evictVisualRowRange = /*#__PURE__*/ new WeakSet(), /**
|
|
105
|
+
* Evicts the render-derived cell meta of a single physical row and prunes the matching
|
|
106
|
+
* `metaSyncMemo` entries for ONLY the columns that were actually evicted. A re-minted cell then
|
|
107
|
+
* re-runs its dynamic extension, while persisted/invalid cells kept on the same row retain their
|
|
108
|
+
* memo - so they are not needlessly re-extended (which could let a `cells()` result overwrite a
|
|
109
|
+
* `setCellMeta` value). The whole memo row is dropped once empty, keeping the memo bounded.
|
|
110
|
+
*
|
|
111
|
+
* @param {number} physicalRow The physical row index to evict.
|
|
112
|
+
*/ _evictRowAndPruneMemo = /*#__PURE__*/ new WeakSet();
|
|
14
113
|
class DynamicCellMetaMod {
|
|
15
114
|
/**
|
|
16
115
|
* Extends the cell meta object by user-specific properties.
|
|
@@ -28,47 +127,165 @@ class DynamicCellMetaMod {
|
|
|
28
127
|
if (this.metaSyncMemo.get(physicalRow)?.has(physicalColumn)) {
|
|
29
128
|
return;
|
|
30
129
|
}
|
|
31
|
-
|
|
32
|
-
const visualCol = cellMeta.visualCol;
|
|
33
|
-
const hot = this.metaManager.hot;
|
|
34
|
-
const prop = hot.colToProp(visualCol);
|
|
35
|
-
cellMeta.prop = prop;
|
|
36
|
-
hot.runHooks('beforeGetCellMeta', visualRow, visualCol, cellMeta);
|
|
37
|
-
// extend a `type` value, added or changed in the `beforeGetCellMeta` hook
|
|
38
|
-
const cellType = (0, _object.hasOwnProperty)(cellMeta, 'type') ? cellMeta.type : null;
|
|
39
|
-
let cellSettings = (0, _function.isFunction)(cellMeta.cells) ? cellMeta.cells(physicalRow, physicalColumn, prop) : null;
|
|
40
|
-
if (cellType) {
|
|
41
|
-
if (cellSettings) {
|
|
42
|
-
cellSettings.type = cellSettings.type ?? cellType;
|
|
43
|
-
} else {
|
|
44
|
-
cellSettings = {
|
|
45
|
-
type: cellType
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
if (cellSettings) {
|
|
130
|
+
_class_private_method_get(this, _runMetaExtension, runMetaExtension).call(this, cellMeta, (cellSettings)=>{
|
|
50
131
|
this.metaManager.updateCellMeta(physicalRow, physicalColumn, cellSettings);
|
|
132
|
+
});
|
|
133
|
+
let memoRow = this.metaSyncMemo.get(physicalRow);
|
|
134
|
+
if (memoRow === undefined) {
|
|
135
|
+
memoRow = new Set();
|
|
136
|
+
this.metaSyncMemo.set(physicalRow, memoRow);
|
|
51
137
|
}
|
|
52
|
-
|
|
53
|
-
if (!this.metaSyncMemo.has(physicalRow)) {
|
|
54
|
-
this.metaSyncMemo.set(physicalRow, new Set());
|
|
55
|
-
}
|
|
56
|
-
this.metaSyncMemo.get(physicalRow).add(physicalColumn);
|
|
138
|
+
memoRow.add(physicalColumn);
|
|
57
139
|
}
|
|
58
140
|
/**
|
|
59
|
-
*
|
|
141
|
+
* Extends a transient (not stored) cell meta object by the same user-specific properties as
|
|
142
|
+
* `extendCellMeta`, with two deliberate differences. The `cells`/`type` settings are applied
|
|
143
|
+
* directly on the transient object - never through `updateCellMeta`, which would permanently
|
|
144
|
+
* materialize the cell. And `metaSyncMemo` is neither read nor written: the memo must reflect only
|
|
145
|
+
* STORED meta objects, or a stored cell created later would skip its extension (a rendering bug),
|
|
146
|
+
* and memo growth would defeat the point of a retention-free scan.
|
|
147
|
+
*
|
|
148
|
+
* @param {object} cellMeta The transient cell meta object.
|
|
149
|
+
*/ extendTransientCellMeta(cellMeta) {
|
|
150
|
+
_class_private_method_get(this, _runMetaExtension, runMetaExtension).call(this, cellMeta, (cellSettings)=>{
|
|
151
|
+
(0, _object.extend)(cellMeta, cellSettings);
|
|
152
|
+
(0, _utils.extendByMetaType)(cellMeta, cellSettings);
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Initializes the modifier, registers the `afterGetCellMeta` local hook, subscribes to `beforeRender`
|
|
157
|
+
* to clear the memo on full renders, and subscribes to `afterScrollVertically` and `afterViewRender`
|
|
158
|
+
* to evict render-derived cell meta for rows that left the viewport.
|
|
60
159
|
*/ constructor(metaManager){
|
|
160
|
+
_class_private_method_init(this, _runMetaExtension);
|
|
161
|
+
_class_private_method_init(this, _evictMetaOutsideViewport);
|
|
162
|
+
_class_private_method_init(this, _evictVisualRowRange);
|
|
163
|
+
_class_private_method_init(this, _evictRowAndPruneMemo);
|
|
164
|
+
_class_private_field_init(this, _keepBandStart, {
|
|
165
|
+
writable: true,
|
|
166
|
+
value: void 0
|
|
167
|
+
});
|
|
168
|
+
_class_private_field_init(this, _keepBandEnd, {
|
|
169
|
+
writable: true,
|
|
170
|
+
value: void 0
|
|
171
|
+
});
|
|
172
|
+
_class_private_field_init(this, _keepBandInitialized, {
|
|
173
|
+
writable: true,
|
|
174
|
+
value: void 0
|
|
175
|
+
});
|
|
61
176
|
/**
|
|
62
|
-
*
|
|
177
|
+
* Per-render-cycle memo of cells already extended by `extendCellMeta`, keyed by physical row to a
|
|
178
|
+
* set of physical columns.
|
|
179
|
+
*
|
|
180
|
+
* @type {Map<number, Set<number>>}
|
|
63
181
|
*/ this.metaSyncMemo = new Map();
|
|
182
|
+
_class_private_field_set(this, _keepBandStart, 0);
|
|
183
|
+
_class_private_field_set(this, _keepBandEnd, 0);
|
|
184
|
+
_class_private_field_set(this, _keepBandInitialized, false);
|
|
64
185
|
this.metaManager = metaManager;
|
|
65
|
-
metaManager.addLocalHook('afterGetCellMeta', (
|
|
66
|
-
this.extendCellMeta(
|
|
186
|
+
metaManager.addLocalHook('afterGetCellMeta', (cellMeta)=>{
|
|
187
|
+
this.extendCellMeta(cellMeta);
|
|
67
188
|
});
|
|
189
|
+
metaManager.addLocalHook('extendTransientCellMeta', (cellMeta)=>{
|
|
190
|
+
this.extendTransientCellMeta(cellMeta);
|
|
191
|
+
});
|
|
192
|
+
// These hooks are registered through `Hooks.getSingleton().add(..., hot)` rather than
|
|
193
|
+
// `hot.addHook(...)` on purpose: this modifier is constructed from the `MetaManager`
|
|
194
|
+
// constructor, which runs early in `Core` setup - before `hot.addHook` is defined. The
|
|
195
|
+
// singleton form binds the callback to the `hot` instance and is cleaned up on `hot.destroy()`
|
|
196
|
+
// exactly like `hot.addHook` would be, so this is equivalent once the instance is ready.
|
|
68
197
|
_hooks.Hooks.getSingleton().add('beforeRender', (forceFullRender)=>{
|
|
69
198
|
if (forceFullRender) {
|
|
70
199
|
this.metaSyncMemo.clear();
|
|
71
200
|
}
|
|
72
201
|
}, this.metaManager.hot);
|
|
202
|
+
const evict = ()=>_class_private_method_get(this, _evictMetaOutsideViewport, evictMetaOutsideViewport).call(this);
|
|
203
|
+
// Scrolling materializes cell meta for newly visible rows; evict the rows that left the viewport.
|
|
204
|
+
_hooks.Hooks.getSingleton().add('afterScrollVertically', evict, this.metaManager.hot);
|
|
205
|
+
// A full render (for example after a sort or filter) can leave behind meta for rows that are no
|
|
206
|
+
// longer in view; run the same pass so retention stays bounded regardless of what triggered it.
|
|
207
|
+
_hooks.Hooks.getSingleton().add('afterViewRender', evict, this.metaManager.hot);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
function runMetaExtension(cellMeta, applyCellSettings) {
|
|
211
|
+
const physicalRow = cellMeta.row;
|
|
212
|
+
const physicalColumn = cellMeta.col;
|
|
213
|
+
const visualRow = cellMeta.visualRow;
|
|
214
|
+
const visualCol = cellMeta.visualCol;
|
|
215
|
+
const hot = this.metaManager.hot;
|
|
216
|
+
const prop = hot.colToProp(visualCol);
|
|
217
|
+
cellMeta.prop = prop;
|
|
218
|
+
hot.runHooks('beforeGetCellMeta', visualRow, visualCol, cellMeta);
|
|
219
|
+
// extend a `type` value, added or changed in the `beforeGetCellMeta` hook
|
|
220
|
+
const cellType = (0, _object.hasOwnProperty)(cellMeta, 'type') ? cellMeta.type : null;
|
|
221
|
+
let cellSettings = (0, _function.isFunction)(cellMeta.cells) ? cellMeta.cells(physicalRow, physicalColumn, prop) : null;
|
|
222
|
+
if (cellType) {
|
|
223
|
+
if (cellSettings) {
|
|
224
|
+
cellSettings.type = cellSettings.type ?? cellType;
|
|
225
|
+
} else {
|
|
226
|
+
cellSettings = {
|
|
227
|
+
type: cellType
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
if (cellSettings) {
|
|
232
|
+
applyCellSettings(cellSettings);
|
|
233
|
+
}
|
|
234
|
+
hot.runHooks('afterGetCellMeta', visualRow, visualCol, cellMeta);
|
|
235
|
+
}
|
|
236
|
+
function evictMetaOutsideViewport() {
|
|
237
|
+
const hot = this.metaManager.hot;
|
|
238
|
+
const firstVisibleRow = hot.getFirstRenderedVisibleRow();
|
|
239
|
+
const lastVisibleRow = hot.getLastRenderedVisibleRow();
|
|
240
|
+
// The render-range getters are typed `number` but return `null` when the viewport is not yet
|
|
241
|
+
// calculated; `Number.isInteger` rejects that case without a type-level null comparison.
|
|
242
|
+
if (!Number.isInteger(firstVisibleRow) || !Number.isInteger(lastVisibleRow) || lastVisibleRow < firstVisibleRow) {
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
const viewportSize = lastVisibleRow - firstVisibleRow + 1;
|
|
246
|
+
const keepStart = firstVisibleRow - viewportSize;
|
|
247
|
+
const keepEnd = lastVisibleRow + viewportSize;
|
|
248
|
+
const previousStart = _class_private_field_get(this, _keepBandStart);
|
|
249
|
+
const previousEnd = _class_private_field_get(this, _keepBandEnd);
|
|
250
|
+
if (_class_private_field_get(this, _keepBandInitialized)) {
|
|
251
|
+
// Previously-kept rows now above the band (visual index below the new keep-band start).
|
|
252
|
+
_class_private_method_get(this, _evictVisualRowRange, evictVisualRowRange).call(this, previousStart, Math.min(previousEnd, keepStart - 1));
|
|
253
|
+
// Previously-kept rows now below the band (visual index above the new keep-band end).
|
|
254
|
+
_class_private_method_get(this, _evictVisualRowRange, evictVisualRowRange).call(this, Math.max(previousStart, keepEnd + 1), previousEnd);
|
|
255
|
+
}
|
|
256
|
+
_class_private_field_set(this, _keepBandStart, keepStart);
|
|
257
|
+
_class_private_field_set(this, _keepBandEnd, keepEnd);
|
|
258
|
+
_class_private_field_set(this, _keepBandInitialized, true);
|
|
259
|
+
}
|
|
260
|
+
function evictVisualRowRange(fromVisualRow, toVisualRow) {
|
|
261
|
+
if (fromVisualRow > toVisualRow) {
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
const hot = this.metaManager.hot;
|
|
265
|
+
const selectedRange = hot.getSelectedRangeLast();
|
|
266
|
+
const activeEditorRow = selectedRange ? selectedRange.highlight.row : null;
|
|
267
|
+
for(let visualRow = fromVisualRow; visualRow <= toVisualRow; visualRow++){
|
|
268
|
+
const physicalRow = hot.toPhysicalRow(visualRow);
|
|
269
|
+
// `toPhysicalRow` is typed `number` but returns `null` for an out-of-range visual row (for
|
|
270
|
+
// example after trimming); `Number.isInteger` filters that without a type-level null compare.
|
|
271
|
+
if (visualRow !== activeEditorRow && Number.isInteger(physicalRow)) {
|
|
272
|
+
_class_private_method_get(this, _evictRowAndPruneMemo, evictRowAndPruneMemo).call(this, physicalRow);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
function evictRowAndPruneMemo(physicalRow) {
|
|
277
|
+
const evictedColumns = this.metaManager.cellMeta.evictRow(physicalRow);
|
|
278
|
+
if (evictedColumns.length === 0) {
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
const memoRow = this.metaSyncMemo.get(physicalRow);
|
|
282
|
+
if (memoRow === undefined) {
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
for(let i = 0; i < evictedColumns.length; i++){
|
|
286
|
+
memoRow.delete(evictedColumns[i]);
|
|
287
|
+
}
|
|
288
|
+
if (memoRow.size === 0) {
|
|
289
|
+
this.metaSyncMemo.delete(physicalRow);
|
|
73
290
|
}
|
|
74
291
|
}
|
|
@@ -1,6 +1,105 @@
|
|
|
1
|
+
function _check_private_redeclaration(obj, privateCollection) {
|
|
2
|
+
if (privateCollection.has(obj)) {
|
|
3
|
+
throw new TypeError("Cannot initialize the same private elements twice on an object");
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
function _class_apply_descriptor_get(receiver, descriptor) {
|
|
7
|
+
if (descriptor.get) return descriptor.get.call(receiver);
|
|
8
|
+
return descriptor.value;
|
|
9
|
+
}
|
|
10
|
+
function _class_apply_descriptor_set(receiver, descriptor, value) {
|
|
11
|
+
if (descriptor.set) descriptor.set.call(receiver, value);
|
|
12
|
+
else {
|
|
13
|
+
if (!descriptor.writable) {
|
|
14
|
+
throw new TypeError("attempted to set read only private field");
|
|
15
|
+
}
|
|
16
|
+
descriptor.value = value;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function _class_extract_field_descriptor(receiver, privateMap, action) {
|
|
20
|
+
if (!privateMap.has(receiver)) throw new TypeError("attempted to " + action + " private field on non-instance");
|
|
21
|
+
return privateMap.get(receiver);
|
|
22
|
+
}
|
|
23
|
+
function _class_private_field_get(receiver, privateMap) {
|
|
24
|
+
var descriptor = _class_extract_field_descriptor(receiver, privateMap, "get");
|
|
25
|
+
return _class_apply_descriptor_get(receiver, descriptor);
|
|
26
|
+
}
|
|
27
|
+
function _class_private_field_init(obj, privateMap, value) {
|
|
28
|
+
_check_private_redeclaration(obj, privateMap);
|
|
29
|
+
privateMap.set(obj, value);
|
|
30
|
+
}
|
|
31
|
+
function _class_private_field_set(receiver, privateMap, value) {
|
|
32
|
+
var descriptor = _class_extract_field_descriptor(receiver, privateMap, "set");
|
|
33
|
+
_class_apply_descriptor_set(receiver, descriptor, value);
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
function _class_private_method_get(receiver, privateSet, fn) {
|
|
37
|
+
if (!privateSet.has(receiver)) throw new TypeError("attempted to get private field on non-instance");
|
|
38
|
+
return fn;
|
|
39
|
+
}
|
|
40
|
+
function _class_private_method_init(obj, privateSet) {
|
|
41
|
+
_check_private_redeclaration(obj, privateSet);
|
|
42
|
+
privateSet.add(obj);
|
|
43
|
+
}
|
|
1
44
|
import { Hooks } from '../../../core/hooks/index.mjs';
|
|
2
|
-
import { hasOwnProperty } from '../../../helpers/object.mjs';
|
|
45
|
+
import { hasOwnProperty, extend } from '../../../helpers/object.mjs';
|
|
3
46
|
import { isFunction } from '../../../helpers/function.mjs';
|
|
47
|
+
import { extendByMetaType } from '../utils.mjs';
|
|
48
|
+
var /**
|
|
49
|
+
* The lowest visual row index of the meta "keep band" tracked by the previous eviction pass - the
|
|
50
|
+
* viewport plus a one-viewport hysteresis margin. The next pass evicts the visual rows that fall
|
|
51
|
+
* between this band and the new one (the rows that just scrolled out), so the work is proportional
|
|
52
|
+
* to the scroll distance, not the number of materialized rows.
|
|
53
|
+
*
|
|
54
|
+
* @type {number}
|
|
55
|
+
*/ _keepBandStart = /*#__PURE__*/ new WeakMap(), /**
|
|
56
|
+
* The highest visual row index of the meta "keep band". See `#keepBandStart`.
|
|
57
|
+
*
|
|
58
|
+
* @type {number}
|
|
59
|
+
*/ _keepBandEnd = /*#__PURE__*/ new WeakMap(), /**
|
|
60
|
+
* Whether a keep band has been recorded yet. A separate flag (rather than a sentinel value) is
|
|
61
|
+
* required because a valid `#keepBandStart` is often negative near the top of the grid (the
|
|
62
|
+
* viewport start minus the hysteresis margin), so no numeric sentinel is safe.
|
|
63
|
+
*
|
|
64
|
+
* @type {boolean}
|
|
65
|
+
*/ _keepBandInitialized = /*#__PURE__*/ new WeakMap(), /**
|
|
66
|
+
* Runs the dynamic-extension sequence on a cell meta object: resolves `prop`, fires
|
|
67
|
+
* `beforeGetCellMeta`, evaluates the `cells` function and the `type` value it (or the hook)
|
|
68
|
+
* produced, hands the resulting settings to the caller-provided applier, and fires
|
|
69
|
+
* `afterGetCellMeta`. The applier is the only step that differs between the stored path
|
|
70
|
+
* (persist through `updateCellMeta`) and the transient path (extend the throwaway object).
|
|
71
|
+
*
|
|
72
|
+
* @param {object} cellMeta The cell meta object to extend.
|
|
73
|
+
* @param {Function} applyCellSettings Receives the resolved `cells`/`type` settings object.
|
|
74
|
+
*/ _runMetaExtension = /*#__PURE__*/ new WeakSet(), /**
|
|
75
|
+
* Evicts render-derived cell meta for rows that scrolled out of the viewport, bounding meta
|
|
76
|
+
* retention to roughly the visible rows plus a one-viewport hysteresis margin on each side ("keep
|
|
77
|
+
* band"). Only the visual rows that fall between the previous keep band and the new one are visited
|
|
78
|
+
* (the rows that just left), so the cost is proportional to the scroll distance, NOT to the number
|
|
79
|
+
* of materialized rows - a grid with many `setCellMeta`/`cell`-option rows pays nothing extra here.
|
|
80
|
+
* The band is tracked in visual space and never reset, so a full render that does not move the
|
|
81
|
+
* viewport produces an empty diff (no work). Row-axis only - the vertical axis is the large one;
|
|
82
|
+
* horizontal scrolling does not evict.
|
|
83
|
+
*/ _evictMetaOutsideViewport = /*#__PURE__*/ new WeakSet(), /**
|
|
84
|
+
* Evicts render-derived cell meta for an inclusive range of visual rows. Each visual row is
|
|
85
|
+
* translated to its physical index (cell meta is keyed physically) reading the mapping fresh, so a
|
|
86
|
+
* sort or move that happened since the band was recorded resolves correctly. Only the active
|
|
87
|
+
* editor's row is skipped - the selection highlight (focus) cell, where the prepared or active
|
|
88
|
+
* editor holds the cell meta object by reference (see `BaseEditor#cellProperties`). The remaining
|
|
89
|
+
* rows of a wide selection (whole column, multi-row) must stay evictable, or they would pin their
|
|
90
|
+
* cell meta and defeat the viewport bound.
|
|
91
|
+
*
|
|
92
|
+
* @param {number} fromVisualRow The first visual row index in the range (inclusive).
|
|
93
|
+
* @param {number} toVisualRow The last visual row index in the range (inclusive).
|
|
94
|
+
*/ _evictVisualRowRange = /*#__PURE__*/ new WeakSet(), /**
|
|
95
|
+
* Evicts the render-derived cell meta of a single physical row and prunes the matching
|
|
96
|
+
* `metaSyncMemo` entries for ONLY the columns that were actually evicted. A re-minted cell then
|
|
97
|
+
* re-runs its dynamic extension, while persisted/invalid cells kept on the same row retain their
|
|
98
|
+
* memo - so they are not needlessly re-extended (which could let a `cells()` result overwrite a
|
|
99
|
+
* `setCellMeta` value). The whole memo row is dropped once empty, keeping the memo bounded.
|
|
100
|
+
*
|
|
101
|
+
* @param {number} physicalRow The physical row index to evict.
|
|
102
|
+
*/ _evictRowAndPruneMemo = /*#__PURE__*/ new WeakSet();
|
|
4
103
|
/**
|
|
5
104
|
* Modifier that extends cell meta objects dynamically through Handsontable hooks and the `cells` option,
|
|
6
105
|
* memoizing results per render cycle to avoid redundant work.
|
|
@@ -21,47 +120,165 @@ import { isFunction } from '../../../helpers/function.mjs';
|
|
|
21
120
|
if (this.metaSyncMemo.get(physicalRow)?.has(physicalColumn)) {
|
|
22
121
|
return;
|
|
23
122
|
}
|
|
24
|
-
|
|
25
|
-
const visualCol = cellMeta.visualCol;
|
|
26
|
-
const hot = this.metaManager.hot;
|
|
27
|
-
const prop = hot.colToProp(visualCol);
|
|
28
|
-
cellMeta.prop = prop;
|
|
29
|
-
hot.runHooks('beforeGetCellMeta', visualRow, visualCol, cellMeta);
|
|
30
|
-
// extend a `type` value, added or changed in the `beforeGetCellMeta` hook
|
|
31
|
-
const cellType = hasOwnProperty(cellMeta, 'type') ? cellMeta.type : null;
|
|
32
|
-
let cellSettings = isFunction(cellMeta.cells) ? cellMeta.cells(physicalRow, physicalColumn, prop) : null;
|
|
33
|
-
if (cellType) {
|
|
34
|
-
if (cellSettings) {
|
|
35
|
-
cellSettings.type = cellSettings.type ?? cellType;
|
|
36
|
-
} else {
|
|
37
|
-
cellSettings = {
|
|
38
|
-
type: cellType
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
if (cellSettings) {
|
|
123
|
+
_class_private_method_get(this, _runMetaExtension, runMetaExtension).call(this, cellMeta, (cellSettings)=>{
|
|
43
124
|
this.metaManager.updateCellMeta(physicalRow, physicalColumn, cellSettings);
|
|
125
|
+
});
|
|
126
|
+
let memoRow = this.metaSyncMemo.get(physicalRow);
|
|
127
|
+
if (memoRow === undefined) {
|
|
128
|
+
memoRow = new Set();
|
|
129
|
+
this.metaSyncMemo.set(physicalRow, memoRow);
|
|
44
130
|
}
|
|
45
|
-
|
|
46
|
-
if (!this.metaSyncMemo.has(physicalRow)) {
|
|
47
|
-
this.metaSyncMemo.set(physicalRow, new Set());
|
|
48
|
-
}
|
|
49
|
-
this.metaSyncMemo.get(physicalRow).add(physicalColumn);
|
|
131
|
+
memoRow.add(physicalColumn);
|
|
50
132
|
}
|
|
51
133
|
/**
|
|
52
|
-
*
|
|
134
|
+
* Extends a transient (not stored) cell meta object by the same user-specific properties as
|
|
135
|
+
* `extendCellMeta`, with two deliberate differences. The `cells`/`type` settings are applied
|
|
136
|
+
* directly on the transient object - never through `updateCellMeta`, which would permanently
|
|
137
|
+
* materialize the cell. And `metaSyncMemo` is neither read nor written: the memo must reflect only
|
|
138
|
+
* STORED meta objects, or a stored cell created later would skip its extension (a rendering bug),
|
|
139
|
+
* and memo growth would defeat the point of a retention-free scan.
|
|
140
|
+
*
|
|
141
|
+
* @param {object} cellMeta The transient cell meta object.
|
|
142
|
+
*/ extendTransientCellMeta(cellMeta) {
|
|
143
|
+
_class_private_method_get(this, _runMetaExtension, runMetaExtension).call(this, cellMeta, (cellSettings)=>{
|
|
144
|
+
extend(cellMeta, cellSettings);
|
|
145
|
+
extendByMetaType(cellMeta, cellSettings);
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Initializes the modifier, registers the `afterGetCellMeta` local hook, subscribes to `beforeRender`
|
|
150
|
+
* to clear the memo on full renders, and subscribes to `afterScrollVertically` and `afterViewRender`
|
|
151
|
+
* to evict render-derived cell meta for rows that left the viewport.
|
|
53
152
|
*/ constructor(metaManager){
|
|
153
|
+
_class_private_method_init(this, _runMetaExtension);
|
|
154
|
+
_class_private_method_init(this, _evictMetaOutsideViewport);
|
|
155
|
+
_class_private_method_init(this, _evictVisualRowRange);
|
|
156
|
+
_class_private_method_init(this, _evictRowAndPruneMemo);
|
|
157
|
+
_class_private_field_init(this, _keepBandStart, {
|
|
158
|
+
writable: true,
|
|
159
|
+
value: void 0
|
|
160
|
+
});
|
|
161
|
+
_class_private_field_init(this, _keepBandEnd, {
|
|
162
|
+
writable: true,
|
|
163
|
+
value: void 0
|
|
164
|
+
});
|
|
165
|
+
_class_private_field_init(this, _keepBandInitialized, {
|
|
166
|
+
writable: true,
|
|
167
|
+
value: void 0
|
|
168
|
+
});
|
|
54
169
|
/**
|
|
55
|
-
*
|
|
170
|
+
* Per-render-cycle memo of cells already extended by `extendCellMeta`, keyed by physical row to a
|
|
171
|
+
* set of physical columns.
|
|
172
|
+
*
|
|
173
|
+
* @type {Map<number, Set<number>>}
|
|
56
174
|
*/ this.metaSyncMemo = new Map();
|
|
175
|
+
_class_private_field_set(this, _keepBandStart, 0);
|
|
176
|
+
_class_private_field_set(this, _keepBandEnd, 0);
|
|
177
|
+
_class_private_field_set(this, _keepBandInitialized, false);
|
|
57
178
|
this.metaManager = metaManager;
|
|
58
|
-
metaManager.addLocalHook('afterGetCellMeta', (
|
|
59
|
-
this.extendCellMeta(
|
|
179
|
+
metaManager.addLocalHook('afterGetCellMeta', (cellMeta)=>{
|
|
180
|
+
this.extendCellMeta(cellMeta);
|
|
60
181
|
});
|
|
182
|
+
metaManager.addLocalHook('extendTransientCellMeta', (cellMeta)=>{
|
|
183
|
+
this.extendTransientCellMeta(cellMeta);
|
|
184
|
+
});
|
|
185
|
+
// These hooks are registered through `Hooks.getSingleton().add(..., hot)` rather than
|
|
186
|
+
// `hot.addHook(...)` on purpose: this modifier is constructed from the `MetaManager`
|
|
187
|
+
// constructor, which runs early in `Core` setup - before `hot.addHook` is defined. The
|
|
188
|
+
// singleton form binds the callback to the `hot` instance and is cleaned up on `hot.destroy()`
|
|
189
|
+
// exactly like `hot.addHook` would be, so this is equivalent once the instance is ready.
|
|
61
190
|
Hooks.getSingleton().add('beforeRender', (forceFullRender)=>{
|
|
62
191
|
if (forceFullRender) {
|
|
63
192
|
this.metaSyncMemo.clear();
|
|
64
193
|
}
|
|
65
194
|
}, this.metaManager.hot);
|
|
195
|
+
const evict = ()=>_class_private_method_get(this, _evictMetaOutsideViewport, evictMetaOutsideViewport).call(this);
|
|
196
|
+
// Scrolling materializes cell meta for newly visible rows; evict the rows that left the viewport.
|
|
197
|
+
Hooks.getSingleton().add('afterScrollVertically', evict, this.metaManager.hot);
|
|
198
|
+
// A full render (for example after a sort or filter) can leave behind meta for rows that are no
|
|
199
|
+
// longer in view; run the same pass so retention stays bounded regardless of what triggered it.
|
|
200
|
+
Hooks.getSingleton().add('afterViewRender', evict, this.metaManager.hot);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
function runMetaExtension(cellMeta, applyCellSettings) {
|
|
204
|
+
const physicalRow = cellMeta.row;
|
|
205
|
+
const physicalColumn = cellMeta.col;
|
|
206
|
+
const visualRow = cellMeta.visualRow;
|
|
207
|
+
const visualCol = cellMeta.visualCol;
|
|
208
|
+
const hot = this.metaManager.hot;
|
|
209
|
+
const prop = hot.colToProp(visualCol);
|
|
210
|
+
cellMeta.prop = prop;
|
|
211
|
+
hot.runHooks('beforeGetCellMeta', visualRow, visualCol, cellMeta);
|
|
212
|
+
// extend a `type` value, added or changed in the `beforeGetCellMeta` hook
|
|
213
|
+
const cellType = hasOwnProperty(cellMeta, 'type') ? cellMeta.type : null;
|
|
214
|
+
let cellSettings = isFunction(cellMeta.cells) ? cellMeta.cells(physicalRow, physicalColumn, prop) : null;
|
|
215
|
+
if (cellType) {
|
|
216
|
+
if (cellSettings) {
|
|
217
|
+
cellSettings.type = cellSettings.type ?? cellType;
|
|
218
|
+
} else {
|
|
219
|
+
cellSettings = {
|
|
220
|
+
type: cellType
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
if (cellSettings) {
|
|
225
|
+
applyCellSettings(cellSettings);
|
|
226
|
+
}
|
|
227
|
+
hot.runHooks('afterGetCellMeta', visualRow, visualCol, cellMeta);
|
|
228
|
+
}
|
|
229
|
+
function evictMetaOutsideViewport() {
|
|
230
|
+
const hot = this.metaManager.hot;
|
|
231
|
+
const firstVisibleRow = hot.getFirstRenderedVisibleRow();
|
|
232
|
+
const lastVisibleRow = hot.getLastRenderedVisibleRow();
|
|
233
|
+
// The render-range getters are typed `number` but return `null` when the viewport is not yet
|
|
234
|
+
// calculated; `Number.isInteger` rejects that case without a type-level null comparison.
|
|
235
|
+
if (!Number.isInteger(firstVisibleRow) || !Number.isInteger(lastVisibleRow) || lastVisibleRow < firstVisibleRow) {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
const viewportSize = lastVisibleRow - firstVisibleRow + 1;
|
|
239
|
+
const keepStart = firstVisibleRow - viewportSize;
|
|
240
|
+
const keepEnd = lastVisibleRow + viewportSize;
|
|
241
|
+
const previousStart = _class_private_field_get(this, _keepBandStart);
|
|
242
|
+
const previousEnd = _class_private_field_get(this, _keepBandEnd);
|
|
243
|
+
if (_class_private_field_get(this, _keepBandInitialized)) {
|
|
244
|
+
// Previously-kept rows now above the band (visual index below the new keep-band start).
|
|
245
|
+
_class_private_method_get(this, _evictVisualRowRange, evictVisualRowRange).call(this, previousStart, Math.min(previousEnd, keepStart - 1));
|
|
246
|
+
// Previously-kept rows now below the band (visual index above the new keep-band end).
|
|
247
|
+
_class_private_method_get(this, _evictVisualRowRange, evictVisualRowRange).call(this, Math.max(previousStart, keepEnd + 1), previousEnd);
|
|
248
|
+
}
|
|
249
|
+
_class_private_field_set(this, _keepBandStart, keepStart);
|
|
250
|
+
_class_private_field_set(this, _keepBandEnd, keepEnd);
|
|
251
|
+
_class_private_field_set(this, _keepBandInitialized, true);
|
|
252
|
+
}
|
|
253
|
+
function evictVisualRowRange(fromVisualRow, toVisualRow) {
|
|
254
|
+
if (fromVisualRow > toVisualRow) {
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
const hot = this.metaManager.hot;
|
|
258
|
+
const selectedRange = hot.getSelectedRangeLast();
|
|
259
|
+
const activeEditorRow = selectedRange ? selectedRange.highlight.row : null;
|
|
260
|
+
for(let visualRow = fromVisualRow; visualRow <= toVisualRow; visualRow++){
|
|
261
|
+
const physicalRow = hot.toPhysicalRow(visualRow);
|
|
262
|
+
// `toPhysicalRow` is typed `number` but returns `null` for an out-of-range visual row (for
|
|
263
|
+
// example after trimming); `Number.isInteger` filters that without a type-level null compare.
|
|
264
|
+
if (visualRow !== activeEditorRow && Number.isInteger(physicalRow)) {
|
|
265
|
+
_class_private_method_get(this, _evictRowAndPruneMemo, evictRowAndPruneMemo).call(this, physicalRow);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
function evictRowAndPruneMemo(physicalRow) {
|
|
270
|
+
const evictedColumns = this.metaManager.cellMeta.evictRow(physicalRow);
|
|
271
|
+
if (evictedColumns.length === 0) {
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
const memoRow = this.metaSyncMemo.get(physicalRow);
|
|
275
|
+
if (memoRow === undefined) {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
for(let i = 0; i < evictedColumns.length; i++){
|
|
279
|
+
memoRow.delete(evictedColumns[i]);
|
|
280
|
+
}
|
|
281
|
+
if (memoRow.size === 0) {
|
|
282
|
+
this.metaSyncMemo.delete(physicalRow);
|
|
66
283
|
}
|
|
67
284
|
}
|