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
|
@@ -4,15 +4,12 @@ function _check_private_redeclaration(obj, privateCollection) {
|
|
|
4
4
|
}
|
|
5
5
|
}
|
|
6
6
|
function _class_apply_descriptor_get(receiver, descriptor) {
|
|
7
|
-
if (descriptor.get)
|
|
8
|
-
return descriptor.get.call(receiver);
|
|
9
|
-
}
|
|
7
|
+
if (descriptor.get) return descriptor.get.call(receiver);
|
|
10
8
|
return descriptor.value;
|
|
11
9
|
}
|
|
12
10
|
function _class_apply_descriptor_set(receiver, descriptor, value) {
|
|
13
|
-
if (descriptor.set)
|
|
14
|
-
|
|
15
|
-
} else {
|
|
11
|
+
if (descriptor.set) descriptor.set.call(receiver, value);
|
|
12
|
+
else {
|
|
16
13
|
if (!descriptor.writable) {
|
|
17
14
|
throw new TypeError("attempted to set read only private field");
|
|
18
15
|
}
|
|
@@ -20,9 +17,7 @@ function _class_apply_descriptor_set(receiver, descriptor, value) {
|
|
|
20
17
|
}
|
|
21
18
|
}
|
|
22
19
|
function _class_extract_field_descriptor(receiver, privateMap, action) {
|
|
23
|
-
if (!privateMap.has(receiver))
|
|
24
|
-
throw new TypeError("attempted to " + action + " private field on non-instance");
|
|
25
|
-
}
|
|
20
|
+
if (!privateMap.has(receiver)) throw new TypeError("attempted to " + action + " private field on non-instance");
|
|
26
21
|
return privateMap.get(receiver);
|
|
27
22
|
}
|
|
28
23
|
function _class_private_field_get(receiver, privateMap) {
|
|
@@ -38,18 +33,25 @@ function _class_private_field_set(receiver, privateMap, value) {
|
|
|
38
33
|
_class_apply_descriptor_set(receiver, descriptor, value);
|
|
39
34
|
return value;
|
|
40
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
|
+
}
|
|
41
44
|
import { addClass, eventTargetEl, hasClass, isBottomMostColumnHeader, removeClass, setAttribute } from '../../helpers/dom/element.mjs';
|
|
42
45
|
import { isUndefined, isDefined } from '../../helpers/mixed.mjs';
|
|
43
46
|
import { isObject, isPlainObject } from '../../helpers/object.mjs';
|
|
44
47
|
import { isFunction } from '../../helpers/function.mjs';
|
|
45
48
|
import { arrayMap } from '../../helpers/array.mjs';
|
|
46
49
|
import { BasePlugin } from '../base/index.mjs';
|
|
47
|
-
import { IndexesSequence, PhysicalIndexToValueMap as IndexToValueMap } from '../../translations/index.mjs';
|
|
48
50
|
import { Hooks } from '../../core/hooks/index.mjs';
|
|
49
51
|
import { ColumnStatesManager } from './columnStatesManager.mjs';
|
|
50
52
|
import { EDITOR_EDIT_GROUP as SHORTCUTS_GROUP_EDITOR } from '../../shortcuts/contexts/index.mjs';
|
|
51
53
|
import { HEADER_SPAN_CLASS, getNextSortOrder, areValidSortStates, getHeaderSpanElement, isFirstLevelColumnHeader, wasHeaderClickedProperly, warnAboutPluginsConflict } from './utils.mjs';
|
|
52
|
-
import { getClassesToRemove, getClassesToAdd } from './domHelpers.mjs';
|
|
54
|
+
import { HEADER_ACTION_CLASS, HEADER_CLASS_ASC_SORT, HEADER_CLASS_DESC_SORT, getClassesToRemove, getClassesToAdd } from './domHelpers.mjs';
|
|
53
55
|
import { rootComparator } from './rootComparator.mjs';
|
|
54
56
|
import { registerRootComparator, sort } from './sortService/index.mjs';
|
|
55
57
|
import { A11Y_SORT } from '../../helpers/a11y.mjs';
|
|
@@ -58,6 +60,12 @@ export const PLUGIN_PRIORITY = 50;
|
|
|
58
60
|
export const APPEND_COLUMN_CONFIG_STRATEGY = 'append';
|
|
59
61
|
export const REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
|
|
60
62
|
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
|
63
|
+
/**
|
|
64
|
+
* Marks the header container of a column that is showing a sort indicator. The indicator is
|
|
65
|
+
* positioned against that container, so the room it needs is reserved there rather than as padding
|
|
66
|
+
* on the label - padding on the label would enlarge the area that sorts on click, which is exactly
|
|
67
|
+
* what it must not do. A class rather than a `:has()` selector, which is banned in this package.
|
|
68
|
+
*/ const CONTAINER_WITH_INDICATOR_CLASS = 'has-sort-indicator';
|
|
61
69
|
registerRootComparator(PLUGIN_KEY, rootComparator);
|
|
62
70
|
Hooks.getSingleton().register('beforeColumnSort');
|
|
63
71
|
Hooks.getSingleton().register('afterColumnSort');
|
|
@@ -67,6 +75,8 @@ Hooks.getSingleton().register('afterColumnSort');
|
|
|
67
75
|
* the other should remain disabled even if it's set to `true`.
|
|
68
76
|
*/ const pluginConflictsState = new WeakMap();
|
|
69
77
|
var /**
|
|
78
|
+
* Sort queued by a header press, applied on mouse up unless the press became a column drag.
|
|
79
|
+
*/ _pendingHeaderSort = /*#__PURE__*/ new WeakMap(), /**
|
|
70
80
|
* Sort by predefined plugin configuration.
|
|
71
81
|
*/ _loadOrSortBySettings = /*#__PURE__*/ new WeakMap(), /**
|
|
72
82
|
* Callback for the `onAfterGetColHeader` hook. Adds column sorting CSS classes.
|
|
@@ -74,6 +84,15 @@ var /**
|
|
|
74
84
|
* @param {number} column Visual column index.
|
|
75
85
|
* @param {Element} TH TH HTML element.
|
|
76
86
|
*/ _onAfterGetColHeader = /*#__PURE__*/ new WeakMap(), /**
|
|
87
|
+
* Reserves room for the sort indicator on the header container, matching the state the label
|
|
88
|
+
* was just given.
|
|
89
|
+
*
|
|
90
|
+
* Called from the header render paths, not from `updateHeaderClasses`, so it runs after any
|
|
91
|
+
* subclass override has finished adding its classes. `TableView` rebuilds the container's class
|
|
92
|
+
* list on every render, so this has to run per render.
|
|
93
|
+
*
|
|
94
|
+
* @param {HTMLElement} headerSpanElement The header label element.
|
|
95
|
+
*/ _syncIndicatorReserve = /*#__PURE__*/ new WeakSet(), /**
|
|
77
96
|
* Callback for the `afterLoadData` hook.
|
|
78
97
|
*
|
|
79
98
|
* @param {boolean} initialLoad Flag that determines whether the data has been loaded during the initialization.
|
|
@@ -85,7 +104,17 @@ var /**
|
|
|
85
104
|
* @param {HTMLElement} TD The cell element.
|
|
86
105
|
* @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
|
|
87
106
|
* a boolean value that allows or disallows changing the selection for that particular area.
|
|
88
|
-
*/ _onBeforeOnCellMouseDown = /*#__PURE__*/ new WeakMap()
|
|
107
|
+
*/ _onBeforeOnCellMouseDown = /*#__PURE__*/ new WeakMap(), /**
|
|
108
|
+
* Resolves a header press on release: sorts, unless ManualColumnMove turned the press into a
|
|
109
|
+
* drag.
|
|
110
|
+
*
|
|
111
|
+
* Safe to call more than once for the same gesture - the queued press is taken first, so
|
|
112
|
+
* whichever release signal arrives first wins and the rest are no-ops.
|
|
113
|
+
*/ _resolvePendingSort = /*#__PURE__*/ new WeakMap(), /**
|
|
114
|
+
* Marks a queued press as spent once ManualColumnMove has moved the column.
|
|
115
|
+
*/ _onAfterColumnMove = /*#__PURE__*/ new WeakMap(), /**
|
|
116
|
+
* Whether ManualColumnMove is mid-drag. False when that plugin is absent or disabled.
|
|
117
|
+
*/ _isColumnBeingDragged = /*#__PURE__*/ new WeakSet();
|
|
89
118
|
// DIFF - MultiColumnSorting & ColumnSorting: changed configuration documentation.
|
|
90
119
|
/**
|
|
91
120
|
* @plugin ColumnSorting
|
|
@@ -121,7 +150,7 @@ var /**
|
|
|
121
150
|
* }
|
|
122
151
|
*
|
|
123
152
|
* // as an object passed to the `column` property, allows specifying a custom options for the desired column.
|
|
124
|
-
* //
|
|
153
|
+
* // see the `columns` option documentation: @/api/options.md#columns
|
|
125
154
|
* columns: [{
|
|
126
155
|
* columnSorting: {
|
|
127
156
|
* indicator: false, // disable indicator for the first column,
|
|
@@ -169,17 +198,24 @@ var /**
|
|
|
169
198
|
}
|
|
170
199
|
pluginConflictsState.set(this.hot, this.pluginKey);
|
|
171
200
|
this.columnStatesManager = new ColumnStatesManager(this.hot, `${this.pluginKey}.sortingStates`);
|
|
172
|
-
this.columnMetaCache =
|
|
201
|
+
this.columnMetaCache = this.hot.columnIndexMapper.createAndRegisterIndexMap(`${this.pluginKey}.columnMeta`, 'physicalIndexToValue', (physicalIndex)=>{
|
|
173
202
|
let visualIndex = this.hot.toVisualColumn(physicalIndex);
|
|
174
203
|
if (visualIndex === null) {
|
|
175
204
|
visualIndex = physicalIndex;
|
|
176
205
|
}
|
|
177
206
|
return this.getMergedPluginSettings(visualIndex);
|
|
178
207
|
});
|
|
179
|
-
this.hot.columnIndexMapper.registerMap(`${this.pluginKey}.columnMeta`, this.columnMetaCache);
|
|
180
208
|
this.addHook('afterGetColHeader', _class_private_field_get(this, _onAfterGetColHeader));
|
|
181
209
|
this.addHook('beforeOnCellMouseDown', _class_private_field_get(this, _onBeforeOnCellMouseDown));
|
|
182
210
|
this.addHook('afterOnCellMouseDown', (event, target)=>this.onAfterOnCellMouseDown(event, target));
|
|
211
|
+
// Primary release signal. On touch devices Walkontable calls its `onMouseUp` directly from
|
|
212
|
+
// `touchend` instead of dispatching a DOM `mouseup`, so a document listener alone would never
|
|
213
|
+
// fire and tapping a header would stop sorting.
|
|
214
|
+
this.addHook('afterOnCellMouseUp', _class_private_field_get(this, _resolvePendingSort));
|
|
215
|
+
// Fallback for a release that lands outside any cell - that is the drag case, and the queued
|
|
216
|
+
// sort still has to be cleared rather than left pending for the next release.
|
|
217
|
+
this.eventManager.addEventListener(this.hot.rootDocument.documentElement, 'mouseup', ()=>_class_private_field_get(this, _resolvePendingSort).call(this));
|
|
218
|
+
this.addHook('afterColumnMove', _class_private_field_get(this, _onAfterColumnMove));
|
|
183
219
|
this.addHook('afterInit', _class_private_field_get(this, _loadOrSortBySettings));
|
|
184
220
|
this.addHook('afterLoadData', _class_private_field_get(this, _onAfterLoadData));
|
|
185
221
|
this.addHook('afterDataProviderFetch', _class_private_field_get(this, _onAfterDataProviderFetch), -1);
|
|
@@ -199,6 +235,7 @@ var /**
|
|
|
199
235
|
return;
|
|
200
236
|
}
|
|
201
237
|
this.updateHeaderClasses(headerSpanElement);
|
|
238
|
+
_class_private_method_get(this, _syncIndicatorReserve, syncIndicatorReserve).call(this, headerSpanElement);
|
|
202
239
|
};
|
|
203
240
|
pluginConflictsState.delete(this.hot);
|
|
204
241
|
// Changing header width and removing indicator.
|
|
@@ -217,6 +254,7 @@ var /**
|
|
|
217
254
|
this.columnStatesManager?.destroy();
|
|
218
255
|
this.columnMetaCache = null;
|
|
219
256
|
this.columnStatesManager = null;
|
|
257
|
+
_class_private_field_set(this, _pendingHeaderSort, null);
|
|
220
258
|
this.unregisterShortcuts();
|
|
221
259
|
super.disablePlugin();
|
|
222
260
|
}
|
|
@@ -285,7 +323,7 @@ var /**
|
|
|
285
323
|
return;
|
|
286
324
|
}
|
|
287
325
|
if (currentSortConfig.length === 0 && this.indexesSequenceCache === null) {
|
|
288
|
-
this.indexesSequenceCache = this.hot.rowIndexMapper.
|
|
326
|
+
this.indexesSequenceCache = this.hot.rowIndexMapper.createAndRegisterIndexMap(this.pluginKey, 'indexesSequence');
|
|
289
327
|
this.indexesSequenceCache.setValues(this.hot.rowIndexMapper.getIndexesSequence());
|
|
290
328
|
}
|
|
291
329
|
if (sortPossible) {
|
|
@@ -474,7 +512,7 @@ var /**
|
|
|
474
512
|
*/ getMergedPluginSettings(column) {
|
|
475
513
|
const pluginMainSettings = this.hot.getSettings()[this.pluginKey];
|
|
476
514
|
const storedColumnProperties = this.columnStatesManager?.getAllColumnsProperties() ?? {};
|
|
477
|
-
const cellMeta = this.hot.
|
|
515
|
+
const cellMeta = this.hot.getCellMetaTransient(0, column);
|
|
478
516
|
const columnMeta = Object.getPrototypeOf(cellMeta);
|
|
479
517
|
if (Array.isArray(columnMeta.columns)) {
|
|
480
518
|
return Object.assign(storedColumnProperties, pluginMainSettings, this.getPluginColumnConfig(columnMeta.columns[column]));
|
|
@@ -493,7 +531,7 @@ var /**
|
|
|
493
531
|
*/ // TODO: Workaround. Inheriting of non-primitive cell meta values doesn't work. Instead of getting properties from column meta we call this function.
|
|
494
532
|
// TODO: Remove test named: "should not break the dataset when inserted new row" (#5431).
|
|
495
533
|
getFirstCellSettings(column) {
|
|
496
|
-
const cellMeta = this.hot.
|
|
534
|
+
const cellMeta = this.hot.getCellMetaTransient(0, column);
|
|
497
535
|
const cellMetaCopy = Object.create(cellMeta);
|
|
498
536
|
cellMetaCopy[this.pluginKey] = this.columnMetaCache?.getValueAtIndex(this.hot.toPhysicalColumn(column));
|
|
499
537
|
return cellMetaCopy;
|
|
@@ -619,6 +657,11 @@ var /**
|
|
|
619
657
|
/**
|
|
620
658
|
* Callback for the `onAfterOnCellMouseDown` hook.
|
|
621
659
|
*
|
|
660
|
+
* Queues the sort rather than running it. The header is also the surface ManualColumnMove
|
|
661
|
+
* drags a column by, so which action the user meant is only known once the button is
|
|
662
|
+
* released: a press that stays put is a click to sort, a press that travels is a drag.
|
|
663
|
+
* Selection changes stay here so the header still reacts the moment it is pressed.
|
|
664
|
+
*
|
|
622
665
|
* @private
|
|
623
666
|
* @param {Event} event Event which are provided by hook.
|
|
624
667
|
* @param {CellCoords} coords Visual coords of the selected cell.
|
|
@@ -626,33 +669,56 @@ var /**
|
|
|
626
669
|
if (wasHeaderClickedProperly(coords.row, coords.col, event) === false) {
|
|
627
670
|
return;
|
|
628
671
|
}
|
|
629
|
-
if (this.wasClickableHeaderClicked(event, coords.col)) {
|
|
630
|
-
|
|
631
|
-
this.hot.deselectCell();
|
|
632
|
-
this.hot.selectColumns(coords.col);
|
|
633
|
-
}
|
|
634
|
-
const activeEditor = this.hot.getActiveEditor();
|
|
635
|
-
const nextConfig = this.getColumnNextConfig(coords.col);
|
|
636
|
-
if (activeEditor?.isOpened() && this.hot.getCellValidator(activeEditor.row, activeEditor.col)) {
|
|
637
|
-
// Postpone sorting until the cell's value is validated and saved.
|
|
638
|
-
this.hot.addHookOnce('postAfterValidate', ()=>{
|
|
639
|
-
this.sort(nextConfig);
|
|
640
|
-
});
|
|
641
|
-
} else {
|
|
642
|
-
this.sort(nextConfig);
|
|
643
|
-
}
|
|
672
|
+
if (this.wasClickableHeaderClicked(event, coords.col) === false) {
|
|
673
|
+
return;
|
|
644
674
|
}
|
|
675
|
+
const isCtrlPressed = this.hot.getShortcutManager().isCtrlPressed();
|
|
676
|
+
if (isCtrlPressed) {
|
|
677
|
+
this.hot.deselectCell();
|
|
678
|
+
this.hot.selectColumns(coords.col);
|
|
679
|
+
}
|
|
680
|
+
const activeEditor = this.hot.getActiveEditor();
|
|
681
|
+
const awaitsValidation = !!(activeEditor?.isOpened() && this.hot.getCellValidator(activeEditor.row, activeEditor.col));
|
|
682
|
+
_class_private_field_set(this, _pendingHeaderSort, {
|
|
683
|
+
column: coords.col,
|
|
684
|
+
isCtrlPressed,
|
|
685
|
+
// Subscribed on press, not on release: selecting the column closes the editor and its
|
|
686
|
+
// validation runs in a microtask, so it is already over before mouse up. Reading
|
|
687
|
+
// `awaitsValidation` on release is wrong too - by then the new selection has opened an
|
|
688
|
+
// editor on the highlighted cell.
|
|
689
|
+
validation: awaitsValidation ? new Promise((resolve)=>{
|
|
690
|
+
this.hot.addHookOnce('postAfterValidate', ()=>resolve());
|
|
691
|
+
}) : null,
|
|
692
|
+
consumedByMove: false
|
|
693
|
+
});
|
|
694
|
+
}
|
|
695
|
+
/**
|
|
696
|
+
* Applies the sort queued by a header press.
|
|
697
|
+
*
|
|
698
|
+
* Kept separate from the press handler so `MultiColumnSorting` can choose a different sort
|
|
699
|
+
* configuration for the same gesture without repeating the click-versus-drag handling.
|
|
700
|
+
*
|
|
701
|
+
* @private
|
|
702
|
+
* @param {object} press The press that queued this sort.
|
|
703
|
+
*/ applyHeaderClickSort(press) {
|
|
704
|
+
this.sort(this.getColumnNextConfig(press.column));
|
|
645
705
|
}
|
|
646
706
|
/**
|
|
647
707
|
* Destroys the plugin instance.
|
|
648
708
|
*/ destroy() {
|
|
709
|
+
// `BasePlugin.destroy` nulls enumerable own properties, which cannot reach a `#private`
|
|
710
|
+
// field, so drop the queued press here.
|
|
711
|
+
_class_private_field_set(this, _pendingHeaderSort, null);
|
|
649
712
|
// TODO: Probably not supported yet by ESLint: https://github.com/eslint/eslint/issues/11045
|
|
650
713
|
// eslint-disable-next-line no-unused-expressions
|
|
651
714
|
this.columnStatesManager?.destroy();
|
|
652
715
|
super.destroy();
|
|
653
716
|
}
|
|
654
717
|
constructor(...args){
|
|
655
|
-
super(...args), _class_private_field_init(this,
|
|
718
|
+
super(...args), _class_private_method_init(this, _syncIndicatorReserve), _class_private_method_init(this, _isColumnBeingDragged), _class_private_field_init(this, _pendingHeaderSort, {
|
|
719
|
+
writable: true,
|
|
720
|
+
value: void 0
|
|
721
|
+
}), _class_private_field_init(this, _loadOrSortBySettings, {
|
|
656
722
|
writable: true,
|
|
657
723
|
value: void 0
|
|
658
724
|
}), _class_private_field_init(this, _onAfterGetColHeader, {
|
|
@@ -672,6 +738,12 @@ var /**
|
|
|
672
738
|
}), _class_private_field_init(this, _onBeforeOnCellMouseDown, {
|
|
673
739
|
writable: true,
|
|
674
740
|
value: void 0
|
|
741
|
+
}), _class_private_field_init(this, _resolvePendingSort, {
|
|
742
|
+
writable: true,
|
|
743
|
+
value: void 0
|
|
744
|
+
}), _class_private_field_init(this, _onAfterColumnMove, {
|
|
745
|
+
writable: true,
|
|
746
|
+
value: void 0
|
|
675
747
|
}), /**
|
|
676
748
|
* Instance of column state manager.
|
|
677
749
|
*
|
|
@@ -682,7 +754,7 @@ var /**
|
|
|
682
754
|
*
|
|
683
755
|
* @private
|
|
684
756
|
* @type {null|PhysicalIndexToValueMap}
|
|
685
|
-
*/ this.columnMetaCache = null, /**
|
|
757
|
+
*/ this.columnMetaCache = null, _class_private_field_set(this, _pendingHeaderSort, null), /**
|
|
686
758
|
* Main settings key designed for the plugin.
|
|
687
759
|
*
|
|
688
760
|
* @private
|
|
@@ -705,6 +777,7 @@ var /**
|
|
|
705
777
|
const showSortIndicator = pluginSettingsForColumn.indicator;
|
|
706
778
|
const headerActionEnabled = pluginSettingsForColumn.headerAction;
|
|
707
779
|
this.updateHeaderClasses(headerSpanElement, this.columnStatesManager ?? undefined, column, showSortIndicator, headerActionEnabled);
|
|
780
|
+
_class_private_method_get(this, _syncIndicatorReserve, syncIndicatorReserve).call(this, headerSpanElement);
|
|
708
781
|
if (this.hot.getSettings().ariaTags) {
|
|
709
782
|
const currentSortState = this.columnStatesManager?.getSortOrderOfColumn(column);
|
|
710
783
|
setAttribute(TH, ...A11Y_SORT(currentSortState ? `${currentSortState}ending` : 'none'));
|
|
@@ -719,12 +792,59 @@ var /**
|
|
|
719
792
|
}), _class_private_field_set(this, _onAfterDataProviderFetch, (result)=>{
|
|
720
793
|
this.setSortConfig(result?.columnSortConfig ?? []);
|
|
721
794
|
}), _class_private_field_set(this, _onBeforeOnCellMouseDown, (event, coords, TD, controller)=>{
|
|
795
|
+
// Drop any press whose release never arrived - e.g. the window lost focus while the button
|
|
796
|
+
// was held. Without this a stale press would resolve on the next unrelated release and sort
|
|
797
|
+
// a column out of nowhere.
|
|
798
|
+
_class_private_field_set(this, _pendingHeaderSort, null);
|
|
722
799
|
if (wasHeaderClickedProperly(coords.row, coords.col, event) === false) {
|
|
723
800
|
return;
|
|
724
801
|
}
|
|
725
802
|
if (this.wasClickableHeaderClicked(event, coords.col) && this.hot.getShortcutManager().isCtrlPressed()) {
|
|
726
803
|
controller.column = true;
|
|
727
804
|
}
|
|
805
|
+
}), _class_private_field_set(this, _resolvePendingSort, ()=>{
|
|
806
|
+
const pending = _class_private_field_get(this, _pendingHeaderSort);
|
|
807
|
+
if (pending === null) {
|
|
808
|
+
return;
|
|
809
|
+
}
|
|
810
|
+
_class_private_field_set(this, _pendingHeaderSort, null);
|
|
811
|
+
// Two signals, because both plugins handle the same `mouseup` and the listener order is not
|
|
812
|
+
// fixed - re-enabling `columnSorting` after `manualColumnMove` appends this plugin's listener
|
|
813
|
+
// last. Running first, the drag is still in progress; running second, the move has already
|
|
814
|
+
// fired. Either one cancels the sort.
|
|
815
|
+
if (pending.consumedByMove || _class_private_method_get(this, _isColumnBeingDragged, isColumnBeingDragged).call(this)) {
|
|
816
|
+
return;
|
|
817
|
+
}
|
|
818
|
+
// A cell that was mid-edit must finish validating before the rows move under it. Waited on
|
|
819
|
+
// here, not in `applyHeaderClickSort`, so subclasses that override that seam still get it.
|
|
820
|
+
if (pending.validation === null) {
|
|
821
|
+
this.applyHeaderClickSort(pending);
|
|
822
|
+
return;
|
|
823
|
+
}
|
|
824
|
+
void pending.validation.then(()=>this.applyHeaderClickSort(pending));
|
|
825
|
+
}), _class_private_field_set(this, _onAfterColumnMove, ()=>{
|
|
826
|
+
if (_class_private_field_get(this, _pendingHeaderSort) !== null) {
|
|
827
|
+
_class_private_field_get(this, _pendingHeaderSort).consumedByMove = true;
|
|
828
|
+
}
|
|
728
829
|
});
|
|
729
830
|
}
|
|
730
831
|
}
|
|
832
|
+
function syncIndicatorReserve(headerSpanElement) {
|
|
833
|
+
const container = headerSpanElement.parentElement;
|
|
834
|
+
if (container === null) {
|
|
835
|
+
return;
|
|
836
|
+
}
|
|
837
|
+
// `sortAction` is required: the CSS that pulls the indicator out of the flex row is keyed on
|
|
838
|
+
// it. With `headerAction: false` the label shows an indicator but keeps its full width, so
|
|
839
|
+
// reserving would just push it inwards.
|
|
840
|
+
const showsIndicator = hasClass(headerSpanElement, HEADER_ACTION_CLASS) && (hasClass(headerSpanElement, HEADER_CLASS_ASC_SORT) || hasClass(headerSpanElement, HEADER_CLASS_DESC_SORT));
|
|
841
|
+
if (showsIndicator) {
|
|
842
|
+
addClass(container, CONTAINER_WITH_INDICATOR_CLASS);
|
|
843
|
+
} else {
|
|
844
|
+
removeClass(container, CONTAINER_WITH_INDICATOR_CLASS);
|
|
845
|
+
}
|
|
846
|
+
}
|
|
847
|
+
function isColumnBeingDragged() {
|
|
848
|
+
const manualColumnMove = this.hot.getPlugin('manualColumnMove');
|
|
849
|
+
return manualColumnMove?.isDragging() === true;
|
|
850
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { HotInstance } from '../../core/types';
|
|
2
|
-
import { LinkedPhysicalIndexToValueMap as IndexToValueMap } from '../../translations';
|
|
2
|
+
import type { LinkedPhysicalIndexToValueMap as IndexToValueMap } from '../../translations';
|
|
3
3
|
/**
|
|
4
4
|
* Store and manages states of sorted columns.
|
|
5
5
|
*
|
|
@@ -9,7 +9,6 @@ Object.defineProperty(exports, "ColumnStatesManager", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
const _object = require("../../helpers/object");
|
|
12
|
-
const _translations = require("../../translations");
|
|
13
12
|
const inheritedColumnProperties = [
|
|
14
13
|
'sortEmptyCells',
|
|
15
14
|
'indicator',
|
|
@@ -145,11 +144,6 @@ class ColumnStatesManager {
|
|
|
145
144
|
* Initializes the column states manager with the Handsontable instance and registers the sorting states index map under the given map name.
|
|
146
145
|
*/ constructor(hot, mapName){
|
|
147
146
|
/**
|
|
148
|
-
* Index map storing sorting states for every column. ColumnStatesManager write and read to/from this element.
|
|
149
|
-
*
|
|
150
|
-
* @type {LinkedPhysicalIndexToValueMap}
|
|
151
|
-
*/ this.sortingStates = new _translations.LinkedPhysicalIndexToValueMap();
|
|
152
|
-
/**
|
|
153
147
|
* Determines whether we should sort empty cells.
|
|
154
148
|
*
|
|
155
149
|
* @type {boolean}
|
|
@@ -166,6 +160,6 @@ class ColumnStatesManager {
|
|
|
166
160
|
*/ this.headerAction = HEADER_ACTION_DEFAULT;
|
|
167
161
|
this.hot = hot;
|
|
168
162
|
this.mapName = mapName;
|
|
169
|
-
this.hot.columnIndexMapper.
|
|
163
|
+
this.sortingStates = this.hot.columnIndexMapper.createAndRegisterIndexMap(mapName, 'linkedPhysicalIndexToValue');
|
|
170
164
|
}
|
|
171
165
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { isObject, objectEach } from '../../helpers/object.mjs';
|
|
2
|
-
import { LinkedPhysicalIndexToValueMap as IndexToValueMap } from '../../translations/index.mjs';
|
|
3
2
|
const inheritedColumnProperties = [
|
|
4
3
|
'sortEmptyCells',
|
|
5
4
|
'indicator',
|
|
@@ -140,11 +139,6 @@ const HEADER_ACTION_DEFAULT = true;
|
|
|
140
139
|
* Initializes the column states manager with the Handsontable instance and registers the sorting states index map under the given map name.
|
|
141
140
|
*/ constructor(hot, mapName){
|
|
142
141
|
/**
|
|
143
|
-
* Index map storing sorting states for every column. ColumnStatesManager write and read to/from this element.
|
|
144
|
-
*
|
|
145
|
-
* @type {LinkedPhysicalIndexToValueMap}
|
|
146
|
-
*/ this.sortingStates = new IndexToValueMap();
|
|
147
|
-
/**
|
|
148
142
|
* Determines whether we should sort empty cells.
|
|
149
143
|
*
|
|
150
144
|
* @type {boolean}
|
|
@@ -161,6 +155,6 @@ const HEADER_ACTION_DEFAULT = true;
|
|
|
161
155
|
*/ this.headerAction = HEADER_ACTION_DEFAULT;
|
|
162
156
|
this.hot = hot;
|
|
163
157
|
this.mapName = mapName;
|
|
164
|
-
this.hot.columnIndexMapper.
|
|
158
|
+
this.sortingStates = this.hot.columnIndexMapper.createAndRegisterIndexMap(mapName, 'linkedPhysicalIndexToValue');
|
|
165
159
|
}
|
|
166
160
|
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { ColumnStatesManager } from './columnStatesManager';
|
|
2
|
+
export declare const HEADER_CLASS_ASC_SORT = "ascending";
|
|
3
|
+
export declare const HEADER_CLASS_DESC_SORT = "descending";
|
|
4
|
+
export declare const HEADER_ACTION_CLASS = "sortAction";
|
|
2
5
|
/**
|
|
3
6
|
* Get CSS classes which should be added to particular column header.
|
|
4
7
|
*
|
|
@@ -9,6 +9,15 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
+
get HEADER_ACTION_CLASS () {
|
|
13
|
+
return HEADER_ACTION_CLASS;
|
|
14
|
+
},
|
|
15
|
+
get HEADER_CLASS_ASC_SORT () {
|
|
16
|
+
return HEADER_CLASS_ASC_SORT;
|
|
17
|
+
},
|
|
18
|
+
get HEADER_CLASS_DESC_SORT () {
|
|
19
|
+
return HEADER_CLASS_DESC_SORT;
|
|
20
|
+
},
|
|
12
21
|
get getClassesToAdd () {
|
|
13
22
|
return getClassesToAdd;
|
|
14
23
|
},
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ASC_SORT_STATE, DESC_SORT_STATE } from './utils.mjs';
|
|
2
|
-
const HEADER_CLASS_ASC_SORT = 'ascending';
|
|
3
|
-
const HEADER_CLASS_DESC_SORT = 'descending';
|
|
2
|
+
export const HEADER_CLASS_ASC_SORT = 'ascending';
|
|
3
|
+
export const HEADER_CLASS_DESC_SORT = 'descending';
|
|
4
4
|
const HEADER_CLASS_INDICATOR_DISABLED = 'indicatorDisabled';
|
|
5
5
|
const HEADER_SORT_CLASS = 'columnSorting';
|
|
6
|
-
const HEADER_ACTION_CLASS = 'sortAction';
|
|
6
|
+
export const HEADER_ACTION_CLASS = 'sortAction';
|
|
7
7
|
const orderToCssClass = new Map([
|
|
8
8
|
[
|
|
9
9
|
ASC_SORT_STATE,
|
|
@@ -9,23 +9,28 @@ Object.defineProperty(exports, "rootComparator", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
const _sortService = require("./sortService");
|
|
12
|
+
/**
|
|
13
|
+
* Creates the compare function for a single sorted column. Resolved once per sort run — the
|
|
14
|
+
* factory result is reused for every comparison, so any per-run caching inside the returned
|
|
15
|
+
* compare function (e.g. normalized-value memoization) stays effective.
|
|
16
|
+
*
|
|
17
|
+
* @param {unknown} sortingOrder Sort order (`asc` for ascending, `desc` for descending).
|
|
18
|
+
* @param {unknown} columnMeta Column meta object.
|
|
19
|
+
* @returns {Function} The compare function.
|
|
20
|
+
*/ function createColumnCompareFunction(sortingOrder, columnMeta) {
|
|
21
|
+
const typedMeta = columnMeta;
|
|
22
|
+
const pluginSettings = typedMeta.columnSorting;
|
|
23
|
+
const compareFunctionFactory = pluginSettings?.compareFunctionFactory ? pluginSettings.compareFunctionFactory : (0, _sortService.getCompareFunctionFactory)(typedMeta.type ?? '');
|
|
24
|
+
return compareFunctionFactory(sortingOrder, columnMeta, pluginSettings);
|
|
25
|
+
}
|
|
12
26
|
function rootComparator(sortingOrders, columnMetas) {
|
|
27
|
+
// The compare function is created once per sort run, not once per comparison. Re-invoking the
|
|
28
|
+
// factory inside the comparator would allocate a fresh closure ~n*log(n) times and defeat the
|
|
29
|
+
// per-run value caches the built-in compare functions rely on.
|
|
30
|
+
const compareFunction = createColumnCompareFunction(sortingOrders[0], columnMetas[0]);
|
|
13
31
|
return function(rowIndexWithValues, nextRowIndexWithValues) {
|
|
14
|
-
// We sort array of arrays. Single array is in form [rowIndex, ...values]
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
const [, ...nextValues] = nextRowIndexWithValues;
|
|
18
|
-
return function getCompareResult(column) {
|
|
19
|
-
const sortingOrder = sortingOrders[column];
|
|
20
|
-
const columnMeta = columnMetas[column];
|
|
21
|
-
const value = values[column];
|
|
22
|
-
const nextValue = nextValues[column];
|
|
23
|
-
const typedMeta = columnMeta;
|
|
24
|
-
const pluginSettings = typedMeta.columnSorting;
|
|
25
|
-
const compareFunctionFactory = pluginSettings?.compareFunctionFactory ? pluginSettings.compareFunctionFactory : (0, _sortService.getCompareFunctionFactory)(typedMeta.type ?? '');
|
|
26
|
-
const compareResult = compareFunctionFactory(sortingOrder, columnMeta, pluginSettings)(value, nextValue);
|
|
27
|
-
// DIFF - MultiColumnSorting & ColumnSorting: removed iteration through next sorted columns.
|
|
28
|
-
return compareResult;
|
|
29
|
-
}(0);
|
|
32
|
+
// We sort array of arrays. Single array is in form [rowIndex, ...values],
|
|
33
|
+
// so the value of the only sorted column is stored at index 1.
|
|
34
|
+
return compareFunction(rowIndexWithValues[1], nextRowIndexWithValues[1]);
|
|
30
35
|
};
|
|
31
36
|
}
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import { getCompareFunctionFactory } from './sortService/index.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Creates the compare function for a single sorted column. Resolved once per sort run — the
|
|
4
|
+
* factory result is reused for every comparison, so any per-run caching inside the returned
|
|
5
|
+
* compare function (e.g. normalized-value memoization) stays effective.
|
|
6
|
+
*
|
|
7
|
+
* @param {unknown} sortingOrder Sort order (`asc` for ascending, `desc` for descending).
|
|
8
|
+
* @param {unknown} columnMeta Column meta object.
|
|
9
|
+
* @returns {Function} The compare function.
|
|
10
|
+
*/ function createColumnCompareFunction(sortingOrder, columnMeta) {
|
|
11
|
+
const typedMeta = columnMeta;
|
|
12
|
+
const pluginSettings = typedMeta.columnSorting;
|
|
13
|
+
const compareFunctionFactory = pluginSettings?.compareFunctionFactory ? pluginSettings.compareFunctionFactory : getCompareFunctionFactory(typedMeta.type ?? '');
|
|
14
|
+
return compareFunctionFactory(sortingOrder, columnMeta, pluginSettings);
|
|
15
|
+
}
|
|
2
16
|
/**
|
|
3
17
|
* Sort comparator handled by conventional sort algorithm.
|
|
4
18
|
*
|
|
@@ -6,22 +20,13 @@ import { getCompareFunctionFactory } from './sortService/index.mjs';
|
|
|
6
20
|
* @param {Array} columnMetas Column meta objects.
|
|
7
21
|
* @returns {Function}
|
|
8
22
|
*/ export function rootComparator(sortingOrders, columnMetas) {
|
|
23
|
+
// The compare function is created once per sort run, not once per comparison. Re-invoking the
|
|
24
|
+
// factory inside the comparator would allocate a fresh closure ~n*log(n) times and defeat the
|
|
25
|
+
// per-run value caches the built-in compare functions rely on.
|
|
26
|
+
const compareFunction = createColumnCompareFunction(sortingOrders[0], columnMetas[0]);
|
|
9
27
|
return function(rowIndexWithValues, nextRowIndexWithValues) {
|
|
10
|
-
// We sort array of arrays. Single array is in form [rowIndex, ...values]
|
|
11
|
-
//
|
|
12
|
-
|
|
13
|
-
const [, ...nextValues] = nextRowIndexWithValues;
|
|
14
|
-
return function getCompareResult(column) {
|
|
15
|
-
const sortingOrder = sortingOrders[column];
|
|
16
|
-
const columnMeta = columnMetas[column];
|
|
17
|
-
const value = values[column];
|
|
18
|
-
const nextValue = nextValues[column];
|
|
19
|
-
const typedMeta = columnMeta;
|
|
20
|
-
const pluginSettings = typedMeta.columnSorting;
|
|
21
|
-
const compareFunctionFactory = pluginSettings?.compareFunctionFactory ? pluginSettings.compareFunctionFactory : getCompareFunctionFactory(typedMeta.type ?? '');
|
|
22
|
-
const compareResult = compareFunctionFactory(sortingOrder, columnMeta, pluginSettings)(value, nextValue);
|
|
23
|
-
// DIFF - MultiColumnSorting & ColumnSorting: removed iteration through next sorted columns.
|
|
24
|
-
return compareResult;
|
|
25
|
-
}(0);
|
|
28
|
+
// We sort array of arrays. Single array is in form [rowIndex, ...values],
|
|
29
|
+
// so the value of the only sorted column is stored at index 1.
|
|
30
|
+
return compareFunction(rowIndexWithValues[1], nextRowIndexWithValues[1]);
|
|
26
31
|
};
|
|
27
32
|
}
|
|
@@ -43,12 +43,11 @@ const _mixed = require("../../../helpers/mixed");
|
|
|
43
43
|
* @param {boolean} isValueFromTemplate Whether the first value is from the template.
|
|
44
44
|
* @param {boolean} isNextValueFromTemplate Whether the second value is from the template.
|
|
45
45
|
* @param {string} sortOrder Sort order (`asc` for ascending, `desc` for descending).
|
|
46
|
-
* @param {
|
|
47
|
-
* @param {object} columnPluginSettings Plugin settings for the column.
|
|
46
|
+
* @param {Function} compareDefaultValues Compare function used for two non-template values.
|
|
48
47
|
* @param {unknown} value The first value.
|
|
49
48
|
* @param {unknown} nextValue The second value.
|
|
50
49
|
* @returns {number | null} The comparison result or null if both values are from template.
|
|
51
|
-
*/ function compareBadValues(isValueFromTemplate, isNextValueFromTemplate, sortOrder,
|
|
50
|
+
*/ function compareBadValues(isValueFromTemplate, isNextValueFromTemplate, sortOrder, compareDefaultValues, value, nextValue) {
|
|
52
51
|
// 1st value === #BAD_VALUE#
|
|
53
52
|
if (isValueFromTemplate === false && isNextValueFromTemplate) {
|
|
54
53
|
return sortOrder === 'asc' ? _sortService.FIRST_BEFORE_SECOND : _sortService.FIRST_AFTER_SECOND;
|
|
@@ -60,7 +59,7 @@ const _mixed = require("../../../helpers/mixed");
|
|
|
60
59
|
// 1st value === #BAD_VALUE# && 2nd value === #BAD_VALUE#
|
|
61
60
|
if (isValueFromTemplate === false && isNextValueFromTemplate === false) {
|
|
62
61
|
// Sorting by values (not just by visual representation).
|
|
63
|
-
return (
|
|
62
|
+
return compareDefaultValues(value, nextValue);
|
|
64
63
|
}
|
|
65
64
|
return null;
|
|
66
65
|
}
|
|
@@ -68,6 +67,9 @@ function compareFunctionFactory(sortOrder, columnMeta, columnPluginSettings) {
|
|
|
68
67
|
const checkedTemplate = columnMeta.checkedTemplate;
|
|
69
68
|
const uncheckedTemplate = columnMeta.uncheckedTemplate;
|
|
70
69
|
const { sortEmptyCells } = columnPluginSettings;
|
|
70
|
+
// Created once per sort run so the default comparator's per-run caches stay effective when
|
|
71
|
+
// non-template ("bad") values fall back to value-based sorting.
|
|
72
|
+
const compareDefaultValues = (0, _default.compareFunctionFactory)(sortOrder, columnMeta, columnPluginSettings);
|
|
71
73
|
return function(value, nextValue) {
|
|
72
74
|
const isEmptyValue = (0, _mixed.isEmpty)(value);
|
|
73
75
|
const isEmptyNextValue = (0, _mixed.isEmpty)(nextValue);
|
|
@@ -84,7 +86,7 @@ function compareFunctionFactory(sortOrder, columnMeta, columnPluginSettings) {
|
|
|
84
86
|
return _sortService.FIRST_BEFORE_SECOND;
|
|
85
87
|
}
|
|
86
88
|
}
|
|
87
|
-
const badValueResult = compareBadValues(isValueFromTemplate, isNextValueFromTemplate, sortOrder,
|
|
89
|
+
const badValueResult = compareBadValues(isValueFromTemplate, isNextValueFromTemplate, sortOrder, compareDefaultValues, value, nextValue);
|
|
88
90
|
if (badValueResult !== null) {
|
|
89
91
|
return badValueResult;
|
|
90
92
|
}
|
|
@@ -25,12 +25,11 @@ import { isEmpty } from '../../../helpers/mixed.mjs';
|
|
|
25
25
|
* @param {boolean} isValueFromTemplate Whether the first value is from the template.
|
|
26
26
|
* @param {boolean} isNextValueFromTemplate Whether the second value is from the template.
|
|
27
27
|
* @param {string} sortOrder Sort order (`asc` for ascending, `desc` for descending).
|
|
28
|
-
* @param {
|
|
29
|
-
* @param {object} columnPluginSettings Plugin settings for the column.
|
|
28
|
+
* @param {Function} compareDefaultValues Compare function used for two non-template values.
|
|
30
29
|
* @param {unknown} value The first value.
|
|
31
30
|
* @param {unknown} nextValue The second value.
|
|
32
31
|
* @returns {number | null} The comparison result or null if both values are from template.
|
|
33
|
-
*/ function compareBadValues(isValueFromTemplate, isNextValueFromTemplate, sortOrder,
|
|
32
|
+
*/ function compareBadValues(isValueFromTemplate, isNextValueFromTemplate, sortOrder, compareDefaultValues, value, nextValue) {
|
|
34
33
|
// 1st value === #BAD_VALUE#
|
|
35
34
|
if (isValueFromTemplate === false && isNextValueFromTemplate) {
|
|
36
35
|
return sortOrder === 'asc' ? FIRST_BEFORE_SECOND : FIRST_AFTER_SECOND;
|
|
@@ -42,7 +41,7 @@ import { isEmpty } from '../../../helpers/mixed.mjs';
|
|
|
42
41
|
// 1st value === #BAD_VALUE# && 2nd value === #BAD_VALUE#
|
|
43
42
|
if (isValueFromTemplate === false && isNextValueFromTemplate === false) {
|
|
44
43
|
// Sorting by values (not just by visual representation).
|
|
45
|
-
return
|
|
44
|
+
return compareDefaultValues(value, nextValue);
|
|
46
45
|
}
|
|
47
46
|
return null;
|
|
48
47
|
}
|
|
@@ -57,6 +56,9 @@ import { isEmpty } from '../../../helpers/mixed.mjs';
|
|
|
57
56
|
const checkedTemplate = columnMeta.checkedTemplate;
|
|
58
57
|
const uncheckedTemplate = columnMeta.uncheckedTemplate;
|
|
59
58
|
const { sortEmptyCells } = columnPluginSettings;
|
|
59
|
+
// Created once per sort run so the default comparator's per-run caches stay effective when
|
|
60
|
+
// non-template ("bad") values fall back to value-based sorting.
|
|
61
|
+
const compareDefaultValues = defaultCompareFunctionFactory(sortOrder, columnMeta, columnPluginSettings);
|
|
60
62
|
return function(value, nextValue) {
|
|
61
63
|
const isEmptyValue = isEmpty(value);
|
|
62
64
|
const isEmptyNextValue = isEmpty(nextValue);
|
|
@@ -73,7 +75,7 @@ import { isEmpty } from '../../../helpers/mixed.mjs';
|
|
|
73
75
|
return FIRST_BEFORE_SECOND;
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
|
-
const badValueResult = compareBadValues(isValueFromTemplate, isNextValueFromTemplate, sortOrder,
|
|
78
|
+
const badValueResult = compareBadValues(isValueFromTemplate, isNextValueFromTemplate, sortOrder, compareDefaultValues, value, nextValue);
|
|
77
79
|
if (badValueResult !== null) {
|
|
78
80
|
return badValueResult;
|
|
79
81
|
}
|