handsontable 18.0.0 → 18.1.0-rc7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/3rdparty/walkontable/src/axisSizing/axisSizeSource.d.mts +1 -0
- package/3rdparty/walkontable/src/axisSizing/axisSizeSource.d.ts +55 -0
- package/3rdparty/walkontable/src/axisSizing/axisSizeSource.js +15 -0
- package/3rdparty/walkontable/src/axisSizing/axisSizeSource.mjs +14 -0
- package/3rdparty/walkontable/src/axisSizing/boxModel.d.mts +1 -0
- package/3rdparty/walkontable/src/axisSizing/boxModel.d.ts +32 -0
- package/3rdparty/walkontable/src/axisSizing/boxModel.js +45 -0
- package/3rdparty/walkontable/src/axisSizing/boxModel.mjs +33 -0
- package/3rdparty/walkontable/src/axisSizing/columnUtils.d.mts +2 -0
- package/3rdparty/walkontable/src/{utils/column.d.ts → axisSizing/columnUtils.d.ts} +12 -10
- package/3rdparty/walkontable/src/axisSizing/columnUtils.js +147 -0
- package/3rdparty/walkontable/src/axisSizing/columnUtils.mjs +142 -0
- package/3rdparty/walkontable/src/axisSizing/defaultSizeSource.d.mts +1 -0
- package/3rdparty/walkontable/src/axisSizing/defaultSizeSource.d.ts +58 -0
- package/3rdparty/walkontable/src/axisSizing/defaultSizeSource.js +129 -0
- package/3rdparty/walkontable/src/axisSizing/defaultSizeSource.mjs +119 -0
- package/3rdparty/walkontable/src/axisSizing/oversizedRows.d.mts +1 -0
- package/3rdparty/walkontable/src/axisSizing/oversizedRows.d.ts +162 -0
- package/3rdparty/walkontable/src/axisSizing/oversizedRows.js +424 -0
- package/3rdparty/walkontable/src/axisSizing/oversizedRows.mjs +522 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/index.d.ts +130 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/index.js +256 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/index.mjs +262 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/prefixSumStrategy.d.mts +1 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/prefixSumStrategy.d.ts +51 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/prefixSumStrategy.js +121 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/prefixSumStrategy.mjs +117 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/sparseStrategy.d.mts +1 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/sparseStrategy.d.ts +53 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/sparseStrategy.js +206 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/sparseStrategy.mjs +203 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/strategy.d.mts +1 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/strategy.d.ts +53 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/strategy.js +40 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/strategy.mjs +41 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/uniformStrategy.d.mts +1 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/uniformStrategy.d.ts +47 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/uniformStrategy.js +121 -0
- package/3rdparty/walkontable/src/axisSizing/positionCache/uniformStrategy.mjs +115 -0
- package/3rdparty/walkontable/src/axisSizing/rowUtils.d.mts +2 -0
- package/3rdparty/walkontable/src/{utils/row.d.ts → axisSizing/rowUtils.d.ts} +11 -9
- package/3rdparty/walkontable/src/axisSizing/rowUtils.js +111 -0
- package/3rdparty/walkontable/src/axisSizing/rowUtils.mjs +106 -0
- package/3rdparty/walkontable/src/axisSizing/sizeGetters.d.mts +2 -0
- package/3rdparty/walkontable/src/axisSizing/sizeGetters.d.ts +84 -0
- package/3rdparty/walkontable/src/axisSizing/sizeGetters.js +102 -0
- package/3rdparty/walkontable/src/axisSizing/sizeGetters.mjs +92 -0
- package/3rdparty/walkontable/src/calculator/axisCalculation.d.ts +1 -1
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.d.ts +10 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +10 -1
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +10 -1
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.d.ts +9 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +9 -1
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +9 -1
- package/3rdparty/walkontable/src/calculator/viewportColumns.d.ts +1 -1
- package/3rdparty/walkontable/src/calculator/viewportRows.d.ts +1 -1
- package/3rdparty/walkontable/src/cell/range.d.ts +10 -0
- package/3rdparty/walkontable/src/cell/range.js +14 -3
- package/3rdparty/walkontable/src/cell/range.mjs +11 -0
- package/3rdparty/walkontable/src/core/_base.d.ts +21 -21
- package/3rdparty/walkontable/src/core/_base.js +58 -147
- package/3rdparty/walkontable/src/core/_base.mjs +17 -147
- package/3rdparty/walkontable/src/core/clone.d.ts +4 -14
- package/3rdparty/walkontable/src/core/clone.js +51 -5
- package/3rdparty/walkontable/src/core/clone.mjs +10 -5
- package/3rdparty/walkontable/src/core/core.d.ts +1 -5
- package/3rdparty/walkontable/src/core/core.js +52 -47
- package/3rdparty/walkontable/src/core/core.mjs +12 -48
- package/3rdparty/walkontable/src/domMeasure/geometryReader.d.mts +1 -0
- package/3rdparty/walkontable/src/domMeasure/geometryReader.d.ts +172 -0
- package/3rdparty/walkontable/src/domMeasure/geometryReader.js +19 -0
- package/3rdparty/walkontable/src/domMeasure/geometryReader.mjs +16 -0
- package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.d.mts +1 -0
- package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.d.ts +134 -0
- package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.js +200 -0
- package/3rdparty/walkontable/src/domMeasure/liveGeometryReader.mjs +198 -0
- package/3rdparty/walkontable/src/event.d.ts +25 -12
- package/3rdparty/walkontable/src/event.js +91 -224
- package/3rdparty/walkontable/src/event.mjs +90 -224
- package/3rdparty/walkontable/src/facade/core.d.ts +6 -6
- package/3rdparty/walkontable/src/index.d.ts +1 -1
- package/3rdparty/walkontable/src/index.js +2 -2
- package/3rdparty/walkontable/src/index.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/index.d.ts +6 -6
- package/3rdparty/walkontable/src/overlay/index.js +11 -11
- package/3rdparty/walkontable/src/overlay/index.mjs +6 -6
- package/3rdparty/walkontable/src/overlay/overlays.d.ts +375 -0
- package/3rdparty/walkontable/src/overlay/overlays.js +612 -0
- package/3rdparty/walkontable/src/overlay/overlays.mjs +601 -0
- package/3rdparty/walkontable/src/overlay/{_base.d.ts → regions/_base.d.ts} +65 -16
- package/3rdparty/walkontable/src/overlay/{_base.js → regions/_base.js} +160 -50
- package/3rdparty/walkontable/src/overlay/{_base.mjs → regions/_base.mjs} +163 -47
- package/3rdparty/walkontable/src/overlay/regions/bottomInlineStartCornerOverlay.d.mts +1 -0
- package/3rdparty/walkontable/src/overlay/{bottomInlineStartCorner.d.ts → regions/bottomInlineStartCornerOverlay.d.ts} +5 -10
- package/3rdparty/walkontable/src/overlay/{bottomInlineStartCorner.js → regions/bottomInlineStartCornerOverlay.js} +18 -20
- package/3rdparty/walkontable/src/overlay/{bottomInlineStartCorner.mjs → regions/bottomInlineStartCornerOverlay.mjs} +18 -20
- package/3rdparty/walkontable/src/overlay/regions/bottomOverlay.d.mts +1 -0
- package/3rdparty/walkontable/src/overlay/{bottom.d.ts → regions/bottomOverlay.d.ts} +16 -11
- package/3rdparty/walkontable/src/overlay/{bottom.js → regions/bottomOverlay.js} +113 -66
- package/3rdparty/walkontable/src/overlay/{bottom.mjs → regions/bottomOverlay.mjs} +113 -66
- package/3rdparty/walkontable/src/overlay/regions/inlineStartOverlay.d.mts +1 -0
- package/3rdparty/walkontable/src/overlay/{inlineStart.d.ts → regions/inlineStartOverlay.d.ts} +17 -11
- package/3rdparty/walkontable/src/overlay/{inlineStart.js → regions/inlineStartOverlay.js} +122 -67
- package/3rdparty/walkontable/src/overlay/{inlineStart.mjs → regions/inlineStartOverlay.mjs} +122 -67
- package/3rdparty/walkontable/src/overlay/regions/topInlineStartCornerOverlay.d.mts +1 -0
- package/3rdparty/walkontable/src/overlay/{topInlineStartCorner.d.ts → regions/topInlineStartCornerOverlay.d.ts} +5 -10
- package/3rdparty/walkontable/src/overlay/{topInlineStartCorner.js → regions/topInlineStartCornerOverlay.js} +13 -16
- package/3rdparty/walkontable/src/overlay/{topInlineStartCorner.mjs → regions/topInlineStartCornerOverlay.mjs} +13 -16
- package/3rdparty/walkontable/src/overlay/regions/topOverlay.d.mts +1 -0
- package/3rdparty/walkontable/src/overlay/{top.d.ts → regions/topOverlay.d.ts} +32 -11
- package/3rdparty/walkontable/src/overlay/{top.js → regions/topOverlay.js} +163 -77
- package/3rdparty/walkontable/src/overlay/{top.mjs → regions/topOverlay.mjs} +163 -77
- package/3rdparty/walkontable/src/overlay/resizeMonitor.d.mts +1 -0
- package/3rdparty/walkontable/src/overlay/resizeMonitor.d.ts +49 -0
- package/3rdparty/walkontable/src/overlay/resizeMonitor.js +154 -0
- package/3rdparty/walkontable/src/overlay/resizeMonitor.mjs +153 -0
- package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.d.mts +1 -0
- package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.d.ts +62 -0
- package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.js +290 -0
- package/3rdparty/walkontable/src/overlay/scroll/nativeScrollInput.mjs +295 -0
- package/3rdparty/walkontable/src/overlay/scroll/scrollSync.d.mts +1 -0
- package/3rdparty/walkontable/src/overlay/scroll/scrollSync.d.ts +176 -0
- package/3rdparty/walkontable/src/overlay/scroll/scrollSync.js +549 -0
- package/3rdparty/walkontable/src/overlay/scroll/scrollSync.mjs +557 -0
- package/3rdparty/walkontable/src/overlay/spreaderSize.d.mts +1 -0
- package/3rdparty/walkontable/src/overlay/spreaderSize.d.ts +67 -0
- package/3rdparty/walkontable/src/overlay/spreaderSize.js +178 -0
- package/3rdparty/walkontable/src/overlay/spreaderSize.mjs +179 -0
- package/3rdparty/walkontable/src/{stickyScrollStrategy.d.ts → overlay/strategies/stickyScrollStrategy.d.ts} +33 -21
- package/3rdparty/walkontable/src/{stickyScrollStrategy.js → overlay/strategies/stickyScrollStrategy.js} +60 -41
- package/3rdparty/walkontable/src/{stickyScrollStrategy.mjs → overlay/strategies/stickyScrollStrategy.mjs} +58 -38
- package/3rdparty/walkontable/src/ports.d.mts +1 -0
- package/3rdparty/walkontable/src/ports.d.ts +54 -0
- package/3rdparty/walkontable/src/ports.js +23 -0
- package/3rdparty/walkontable/src/ports.mjs +24 -0
- package/3rdparty/walkontable/src/{renderer → render}/_base.d.ts +1 -1
- package/3rdparty/walkontable/src/{renderer → render}/cells.js +1 -1
- package/3rdparty/walkontable/src/{renderer → render}/cells.mjs +1 -1
- package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.d.ts +1 -0
- package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.js +43 -1
- package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.mjs +44 -2
- package/3rdparty/walkontable/src/render/index.d.mts +1 -0
- package/3rdparty/walkontable/src/{renderer → render}/index.d.ts +11 -3
- package/3rdparty/walkontable/src/{renderer → render}/index.js +13 -3
- package/3rdparty/walkontable/src/{renderer → render}/index.mjs +11 -1
- package/3rdparty/walkontable/src/{renderer → render}/rows.js +1 -1
- package/3rdparty/walkontable/src/{renderer → render}/rows.mjs +1 -1
- package/3rdparty/walkontable/src/render/tableRenderer.d.mts +1 -0
- package/3rdparty/walkontable/src/{renderer/table.d.ts → render/tableRenderer.d.ts} +12 -2
- package/3rdparty/walkontable/src/render/tableRenderer.js +382 -0
- package/3rdparty/walkontable/src/{renderer/table.mjs → render/tableRenderer.mjs} +159 -6
- package/3rdparty/walkontable/src/{scroll.d.ts → scroll/scroll.d.ts} +27 -10
- package/3rdparty/walkontable/src/{scroll.js → scroll/scroll.js} +108 -32
- package/3rdparty/walkontable/src/{scroll.mjs → scroll/scroll.mjs} +106 -29
- package/3rdparty/walkontable/src/selection/border/border.d.ts +313 -5
- package/3rdparty/walkontable/src/selection/border/border.js +861 -51
- package/3rdparty/walkontable/src/selection/border/border.mjs +863 -53
- package/3rdparty/walkontable/src/selection/border/types.d.ts +30 -0
- package/3rdparty/walkontable/src/selection/manager.js +237 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +238 -1
- package/3rdparty/walkontable/src/settings/accessor.d.mts +2 -0
- package/3rdparty/walkontable/src/settings/accessor.d.ts +74 -0
- package/3rdparty/walkontable/src/settings/accessor.js +78 -0
- package/3rdparty/walkontable/src/settings/accessor.mjs +71 -0
- package/3rdparty/walkontable/src/settings/defaults.d.mts +1 -0
- package/3rdparty/walkontable/src/{settings.d.ts → settings/defaults.d.ts} +16 -77
- package/3rdparty/walkontable/src/settings/defaults.js +146 -0
- package/3rdparty/walkontable/src/settings/defaults.mjs +225 -0
- package/3rdparty/walkontable/src/settings/index.d.mts +1 -0
- package/3rdparty/walkontable/src/settings/index.d.ts +6 -0
- package/3rdparty/walkontable/src/settings/index.js +20 -0
- package/3rdparty/walkontable/src/settings/index.mjs +5 -0
- package/3rdparty/walkontable/src/table/baseTable.d.mts +2 -0
- package/3rdparty/walkontable/src/table/baseTable.d.ts +284 -0
- package/3rdparty/walkontable/src/table/baseTable.js +295 -0
- package/3rdparty/walkontable/src/table/baseTable.mjs +283 -0
- package/3rdparty/walkontable/src/table/cellAccess.d.mts +1 -0
- package/3rdparty/walkontable/src/table/cellAccess.d.ts +101 -0
- package/3rdparty/walkontable/src/table/cellAccess.js +238 -0
- package/3rdparty/walkontable/src/table/cellAccess.mjs +229 -0
- package/3rdparty/walkontable/src/table/domScaffold.d.mts +1 -0
- package/3rdparty/walkontable/src/table/domScaffold.d.ts +37 -0
- package/3rdparty/walkontable/src/table/domScaffold.js +145 -0
- package/3rdparty/walkontable/src/table/domScaffold.mjs +136 -0
- package/3rdparty/walkontable/src/table/drawCycle.d.mts +1 -0
- package/3rdparty/walkontable/src/table/drawCycle.d.ts +16 -0
- package/3rdparty/walkontable/src/table/drawCycle.js +405 -0
- package/3rdparty/walkontable/src/table/drawCycle.mjs +403 -0
- package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.d.mts +1 -0
- package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.d.ts +38 -0
- package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.js +15 -0
- package/3rdparty/walkontable/src/table/rangeQuery/renderedRange.mjs +14 -0
- package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.d.ts +1 -1
- package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.js +1 -1
- package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.mjs +1 -1
- package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.d.ts +1 -1
- package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.d.ts +1 -1
- package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.js +1 -1
- package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.mjs +1 -1
- package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.d.mts +2 -0
- package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.d.ts +226 -0
- package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.js +251 -0
- package/3rdparty/walkontable/src/table/rangeQuery/viewportPredicates.mjs +241 -0
- package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.d.mts +1 -0
- package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.d.ts +14 -0
- package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.js +196 -0
- package/3rdparty/walkontable/src/table/rangeQuery/virtualRange.mjs +179 -0
- package/3rdparty/walkontable/src/table/regions/bottomInlineStartCornerTable.d.mts +2 -0
- package/3rdparty/walkontable/src/table/regions/bottomInlineStartCornerTable.d.ts +16 -0
- package/3rdparty/walkontable/src/table/{bottomInlineStartCorner.js → regions/bottomInlineStartCornerTable.js} +9 -12
- package/3rdparty/walkontable/src/table/regions/bottomInlineStartCornerTable.mjs +21 -0
- package/3rdparty/walkontable/src/table/regions/bottomTable.d.mts +2 -0
- package/3rdparty/walkontable/src/table/regions/bottomTable.d.ts +15 -0
- package/3rdparty/walkontable/src/table/regions/bottomTable.js +35 -0
- package/3rdparty/walkontable/src/table/regions/bottomTable.mjs +20 -0
- package/3rdparty/walkontable/src/table/regions/inlineStartTable.d.mts +2 -0
- package/3rdparty/walkontable/src/table/regions/inlineStartTable.d.ts +12 -0
- package/3rdparty/walkontable/src/table/regions/inlineStartTable.js +32 -0
- package/3rdparty/walkontable/src/table/regions/inlineStartTable.mjs +17 -0
- package/3rdparty/walkontable/src/table/regions/masterTable.d.mts +2 -0
- package/3rdparty/walkontable/src/table/{master.d.ts → regions/masterTable.d.ts} +4 -13
- package/3rdparty/walkontable/src/table/{master.js → regions/masterTable.js} +23 -48
- package/3rdparty/walkontable/src/table/{master.mjs → regions/masterTable.mjs} +22 -47
- package/3rdparty/walkontable/src/table/regions/topInlineStartCornerTable.d.mts +2 -0
- package/3rdparty/walkontable/src/table/regions/topInlineStartCornerTable.d.ts +16 -0
- package/3rdparty/walkontable/src/table/{topInlineStartCorner.js → regions/topInlineStartCornerTable.js} +9 -12
- package/3rdparty/walkontable/src/table/regions/topInlineStartCornerTable.mjs +21 -0
- package/3rdparty/walkontable/src/table/regions/topTable.d.mts +2 -0
- package/3rdparty/walkontable/src/table/regions/topTable.d.ts +15 -0
- package/3rdparty/walkontable/src/table/regions/topTable.js +35 -0
- package/3rdparty/walkontable/src/table/regions/topTable.mjs +20 -0
- package/3rdparty/walkontable/src/types.d.ts +7 -69
- package/3rdparty/walkontable/src/types.mjs +2 -1
- package/3rdparty/walkontable/src/utils/pointerToCoords.d.mts +1 -0
- package/3rdparty/walkontable/src/utils/{cellCoords.d.ts → pointerToCoords.d.ts} +24 -0
- package/3rdparty/walkontable/src/utils/pointerToCoords.js +181 -0
- package/3rdparty/walkontable/src/utils/pointerToCoords.mjs +186 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.d.mts +1 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.d.ts +40 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.js +139 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/gatherLayoutInput.mjs +131 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.d.mts +1 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.d.ts +133 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.js +18 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/layoutSnapshot.mjs +18 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.d.mts +1 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.d.ts +17 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.js +104 -0
- package/3rdparty/walkontable/src/viewport/boxLayout/resolveLayout.mjs +99 -0
- package/3rdparty/walkontable/src/viewport/calculatorFactory.d.mts +1 -0
- package/3rdparty/walkontable/src/viewport/calculatorFactory.d.ts +84 -0
- package/3rdparty/walkontable/src/viewport/calculatorFactory.js +588 -0
- package/3rdparty/walkontable/src/viewport/calculatorFactory.mjs +601 -0
- package/3rdparty/walkontable/src/viewport/viewport.d.ts +267 -0
- package/3rdparty/walkontable/src/viewport/viewport.js +368 -0
- package/3rdparty/walkontable/src/viewport/viewport.mjs +360 -0
- package/3rdparty/walkontable/src/viewport/workspaceSize.d.mts +1 -0
- package/3rdparty/walkontable/src/viewport/workspaceSize.d.ts +59 -0
- package/3rdparty/walkontable/src/viewport/workspaceSize.js +284 -0
- package/3rdparty/walkontable/src/viewport/workspaceSize.mjs +282 -0
- package/3rdparty/walkontable/src/wire.d.mts +1 -0
- package/3rdparty/walkontable/src/wire.d.ts +81 -0
- package/3rdparty/walkontable/src/wire.js +56 -0
- package/3rdparty/walkontable/src/wire.mjs +56 -0
- package/CHANGELOG.md +114 -1
- package/LICENSE.txt +1 -1
- package/README.md +2 -2
- package/base.d.ts +13 -4
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/cellTypes/checkboxType/accessors/valueSetter.d.ts +1 -1
- package/cellTypes/checkboxType/accessors/valueSetter.js +3 -1
- package/cellTypes/checkboxType/accessors/valueSetter.mjs +3 -1
- package/cellTypes/index.d.ts +3 -2
- package/cellTypes/index.js +9 -0
- package/cellTypes/index.mjs +5 -2
- package/cellTypes/intlDatetimeType/index.d.mts +1 -0
- package/cellTypes/intlDatetimeType/index.d.ts +1 -0
- package/cellTypes/intlDatetimeType/index.js +19 -0
- package/cellTypes/intlDatetimeType/index.mjs +1 -0
- package/cellTypes/intlDatetimeType/intlDatetimeType.d.mts +1 -0
- package/cellTypes/intlDatetimeType/intlDatetimeType.d.ts +16 -0
- package/cellTypes/intlDatetimeType/intlDatetimeType.js +31 -0
- package/cellTypes/intlDatetimeType/intlDatetimeType.mjs +15 -0
- package/cellTypes/multiSelectType/index.d.ts +1 -1
- package/cellTypes/multiSelectType/index.js +3 -0
- package/cellTypes/multiSelectType/index.mjs +1 -1
- package/cellTypes/multiSelectType/multiSelectType.d.ts +1 -0
- package/cellTypes/multiSelectType/multiSelectType.js +4 -0
- package/cellTypes/multiSelectType/multiSelectType.mjs +1 -0
- package/cellTypes/numericType/accessors/valueSetter.js +30 -2
- package/cellTypes/numericType/accessors/valueSetter.mjs +31 -3
- package/core/hooks/bucket.d.ts +40 -6
- package/core/hooks/bucket.js +108 -72
- package/core/hooks/bucket.mjs +113 -72
- package/core/hooks/constants.js +254 -16
- package/core/hooks/constants.mjs +254 -16
- package/core/hooks/index.js +27 -22
- package/core/hooks/index.mjs +27 -22
- package/core/layout/constants.d.ts +11 -0
- package/core/layout/constants.js +6 -0
- package/core/layout/constants.mjs +12 -0
- package/core/layout/domSlot.d.ts +3 -1
- package/core/layout/domSlot.js +16 -2
- package/core/layout/domSlot.mjs +16 -2
- package/core/layout/index.d.ts +2 -2
- package/core/layout/index.js +6 -0
- package/core/layout/index.mjs +2 -2
- package/core/layout/layoutManager.d.ts +13 -0
- package/core/layout/layoutManager.js +21 -4
- package/core/layout/layoutManager.mjs +22 -2
- package/core/settings.d.ts +102 -6
- package/core/types.d.ts +15 -1
- package/core/types.mjs +9 -0
- package/core.js +534 -88
- package/core.mjs +537 -91
- package/dataMap/dataMap.d.ts +3 -13
- package/dataMap/dataMap.js +100 -41
- package/dataMap/dataMap.mjs +101 -42
- package/dataMap/dataSource.js +4 -1
- package/dataMap/dataSource.mjs +4 -1
- package/dataMap/metaManager/index.d.ts +62 -8
- package/dataMap/metaManager/index.js +66 -0
- package/dataMap/metaManager/index.mjs +66 -0
- package/dataMap/metaManager/lazyFactoryMap.d.ts +68 -43
- package/dataMap/metaManager/lazyFactoryMap.js +497 -110
- package/dataMap/metaManager/lazyFactoryMap.mjs +511 -111
- package/dataMap/metaManager/metaLayers/cellMeta.d.ts +55 -8
- package/dataMap/metaManager/metaLayers/cellMeta.js +108 -8
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +108 -8
- package/dataMap/metaManager/metaLayers/columnMeta.d.ts +2 -1
- package/dataMap/metaManager/metaLayers/columnMeta.js +1 -0
- package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -0
- package/dataMap/metaManager/metaSchema.js +759 -39
- package/dataMap/metaManager/metaSchema.mjs +759 -39
- package/dataMap/metaManager/mods/dynamicCellMeta.d.ts +24 -10
- package/dataMap/metaManager/mods/dynamicCellMeta.js +252 -28
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +253 -29
- package/dataMap/sourceDataValidator.d.ts +13 -21
- package/dataMap/sourceDataValidator.js +39 -29
- package/dataMap/sourceDataValidator.mjs +50 -33
- package/dist/handsontable.full.js +30027 -11261
- package/dist/handsontable.full.min.js +168 -112
- package/dist/handsontable.js +32468 -13762
- package/dist/handsontable.min.js +172 -116
- package/dist/languages/all.js +2 -1
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/fa-IR.js +2 -1
- package/dist/languages/fa-IR.min.js +1 -1
- package/dist/themes/classic.js +9 -3
- package/dist/themes/classic.min.js +4 -4
- package/dist/themes/horizon.js +9 -3
- package/dist/themes/horizon.min.js +4 -4
- package/dist/themes/main.js +9 -3
- package/dist/themes/main.min.js +4 -4
- package/dist/themes/static/variables/colors/ant.js +3 -3
- package/dist/themes/static/variables/colors/ant.min.js +3 -3
- package/dist/themes/static/variables/colors/classic.js +3 -3
- package/dist/themes/static/variables/colors/classic.min.js +3 -3
- package/dist/themes/static/variables/colors/horizon.js +3 -3
- package/dist/themes/static/variables/colors/horizon.min.js +3 -3
- package/dist/themes/static/variables/colors/main.js +3 -3
- package/dist/themes/static/variables/colors/main.min.js +3 -3
- package/dist/themes/static/variables/colors/material.js +3 -3
- package/dist/themes/static/variables/colors/material.min.js +3 -3
- package/dist/themes/static/variables/colors/shadcn.js +3 -3
- package/dist/themes/static/variables/colors/shadcn.min.js +3 -3
- package/dist/themes/static/variables/density.js +3 -3
- package/dist/themes/static/variables/density.min.js +3 -3
- package/dist/themes/static/variables/helpers/iconsMap.js +4 -9
- package/dist/themes/static/variables/helpers/iconsMap.min.js +4 -9
- package/dist/themes/static/variables/icons/horizon.js +3 -3
- package/dist/themes/static/variables/icons/horizon.min.js +3 -3
- package/dist/themes/static/variables/icons/main.js +3 -3
- package/dist/themes/static/variables/icons/main.min.js +3 -3
- package/dist/themes/static/variables/sizing.js +3 -3
- package/dist/themes/static/variables/sizing.min.js +3 -3
- package/dist/themes/static/variables/tokens/classic.js +9 -3
- package/dist/themes/static/variables/tokens/classic.min.js +4 -4
- package/dist/themes/static/variables/tokens/horizon.js +9 -3
- package/dist/themes/static/variables/tokens/horizon.min.js +4 -4
- package/dist/themes/static/variables/tokens/main.js +9 -3
- package/dist/themes/static/variables/tokens/main.min.js +4 -4
- package/editorManager.js +152 -3
- package/editorManager.mjs +152 -3
- package/editors/autocompleteEditor/autocompleteEditor.js +58 -11
- package/editors/autocompleteEditor/autocompleteEditor.mjs +59 -12
- package/editors/baseEditor/baseEditor.d.ts +15 -3
- package/editors/baseEditor/baseEditor.js +5 -3
- package/editors/baseEditor/baseEditor.mjs +15 -3
- package/editors/factory.js +5 -2
- package/editors/factory.mjs +5 -2
- package/editors/index.d.ts +3 -2
- package/editors/index.js +8 -0
- package/editors/index.mjs +3 -1
- package/editors/intlDatetimeEditor/index.d.mts +1 -0
- package/editors/intlDatetimeEditor/index.d.ts +1 -0
- package/editors/intlDatetimeEditor/index.js +19 -0
- package/editors/intlDatetimeEditor/index.mjs +1 -0
- package/editors/intlDatetimeEditor/intlDatetimeEditor.d.mts +1 -0
- package/editors/intlDatetimeEditor/intlDatetimeEditor.d.ts +42 -0
- package/editors/intlDatetimeEditor/intlDatetimeEditor.js +108 -0
- package/editors/intlDatetimeEditor/intlDatetimeEditor.mjs +93 -0
- package/editors/multiSelectEditor/multiSelectEditor.js +11 -9
- package/editors/multiSelectEditor/multiSelectEditor.mjs +12 -10
- package/editors/selectEditor/selectEditor.js +2 -1
- package/editors/selectEditor/selectEditor.mjs +2 -1
- package/editors/textEditor/textEditor.js +1 -1
- package/editors/textEditor/textEditor.mjs +2 -2
- package/eventManager.d.ts +3 -3
- package/focusManager/grid.d.ts +28 -0
- package/focusManager/grid.js +85 -2
- package/focusManager/grid.mjs +81 -3
- package/focusManager/scopeManager.js +1 -1
- package/focusManager/scopeManager.mjs +2 -2
- package/handsontable-non-commercial-license.pdf +0 -0
- package/helpers/array.d.ts +25 -0
- package/helpers/array.js +41 -4
- package/helpers/array.mjs +56 -4
- package/helpers/console.d.ts +25 -3
- package/helpers/console.js +40 -7
- package/helpers/console.mjs +52 -7
- package/helpers/dateTime.d.ts +14 -0
- package/helpers/dateTime.js +74 -2
- package/helpers/dateTime.mjs +73 -2
- package/helpers/dom/cellCoords.js +156 -13
- package/helpers/dom/cellCoords.mjs +156 -13
- package/helpers/dom/element.d.ts +47 -8
- package/helpers/dom/element.js +104 -18
- package/helpers/dom/element.mjs +132 -23
- package/helpers/dom/event.d.ts +58 -0
- package/helpers/dom/event.js +39 -0
- package/helpers/dom/event.mjs +63 -0
- package/helpers/errors.d.ts +5 -0
- package/helpers/errors.js +10 -6
- package/helpers/errors.mjs +10 -6
- package/helpers/feature.d.ts +19 -0
- package/helpers/feature.js +21 -0
- package/helpers/feature.mjs +30 -0
- package/helpers/function.d.ts +1 -1
- package/helpers/function.js +4 -1
- package/helpers/function.mjs +4 -1
- package/helpers/mixed.d.ts +103 -0
- package/helpers/mixed.js +373 -4
- package/helpers/mixed.mjs +413 -4
- package/helpers/moves.js +2 -1
- package/helpers/moves.mjs +2 -1
- package/helpers/number.d.ts +22 -0
- package/helpers/number.js +49 -0
- package/helpers/number.mjs +66 -0
- package/helpers/string.d.ts +14 -10
- package/helpers/string.js +17 -9
- package/helpers/string.mjs +27 -17
- package/helpers/templateString.d.mts +1 -0
- package/helpers/templateString.d.ts +13 -0
- package/helpers/templateString.js +29 -0
- package/helpers/templateString.mjs +19 -0
- package/helpers/uiButton.d.mts +1 -0
- package/helpers/uiButton.d.ts +21 -0
- package/helpers/uiButton.js +37 -0
- package/helpers/uiButton.mjs +31 -0
- package/i18n/languages/fa-IR.d.ts +1 -0
- package/i18n/languages/fa-IR.js +1 -0
- package/i18n/languages/fa-IR.mjs +1 -0
- package/index.d.ts +3 -3
- package/languages/all.js +2 -1
- package/languages/fa-IR.js +2 -1
- package/languages/fa-IR.mjs +1 -0
- package/languages/index.js +2 -1
- package/package.json +61 -1
- package/plugins/autoColumnSize/autoColumnSize.d.ts +24 -1
- package/plugins/autoColumnSize/autoColumnSize.js +501 -82
- package/plugins/autoColumnSize/autoColumnSize.mjs +508 -83
- package/plugins/autoRowSize/autoRowSize.d.ts +40 -5
- package/plugins/autoRowSize/autoRowSize.js +68 -24
- package/plugins/autoRowSize/autoRowSize.mjs +98 -29
- package/plugins/autofill/autofill.js +30 -12
- package/plugins/autofill/autofill.mjs +30 -12
- package/plugins/base/base.d.ts +10 -0
- package/plugins/collapsibleColumns/collapsibleColumns.d.ts +4 -0
- package/plugins/collapsibleColumns/collapsibleColumns.js +89 -8
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +93 -8
- package/plugins/columnSorting/columnSorting.d.ts +31 -2
- package/plugins/columnSorting/columnSorting.js +151 -24
- package/plugins/columnSorting/columnSorting.mjs +153 -26
- package/plugins/columnSorting/columnStatesManager.d.ts +1 -1
- package/plugins/columnSorting/columnStatesManager.js +1 -7
- package/plugins/columnSorting/columnStatesManager.mjs +1 -7
- package/plugins/columnSorting/domHelpers.d.ts +3 -0
- package/plugins/columnSorting/domHelpers.js +9 -0
- package/plugins/columnSorting/domHelpers.mjs +3 -3
- package/plugins/columnSorting/rootComparator.js +21 -16
- package/plugins/columnSorting/rootComparator.mjs +21 -16
- package/plugins/columnSorting/sortFunction/checkbox.js +7 -5
- package/plugins/columnSorting/sortFunction/checkbox.mjs +7 -5
- package/plugins/columnSorting/sortFunction/default.js +15 -4
- package/plugins/columnSorting/sortFunction/default.mjs +15 -4
- package/plugins/columnSorting/sortFunction/intlDatetime.d.mts +1 -0
- package/plugins/columnSorting/sortFunction/intlDatetime.d.ts +10 -0
- package/plugins/columnSorting/sortFunction/intlDatetime.js +23 -0
- package/plugins/columnSorting/sortFunction/intlDatetime.mjs +12 -0
- package/plugins/columnSorting/sortService/registry.js +2 -0
- package/plugins/columnSorting/sortService/registry.mjs +2 -0
- package/plugins/columnSorting/utils.d.ts +8 -0
- package/plugins/columnSorting/utils.js +37 -45
- package/plugins/columnSorting/utils.mjs +42 -47
- package/plugins/columnSummary/columnSummary.js +9 -5
- package/plugins/columnSummary/columnSummary.mjs +9 -5
- package/plugins/columnSummary/endpoints.d.ts +69 -2
- package/plugins/columnSummary/endpoints.js +181 -29
- package/plugins/columnSummary/endpoints.mjs +181 -29
- package/plugins/comments/commentEditor.js +1 -1
- package/plugins/comments/commentEditor.mjs +2 -2
- package/plugins/contextMenu/contextMenu.d.ts +12 -1
- package/plugins/contextMenu/contextMenu.js +30 -6
- package/plugins/contextMenu/contextMenu.mjs +30 -6
- package/plugins/contextMenu/index.d.ts +1 -1
- package/plugins/contextMenu/menu/menu.d.ts +22 -1
- package/plugins/contextMenu/menu/menu.js +211 -3
- package/plugins/contextMenu/menu/menu.mjs +212 -4
- package/plugins/contextMenu/menu/menuItemRenderer.js +2 -2
- package/plugins/contextMenu/menu/menuItemRenderer.mjs +2 -2
- package/plugins/contextMenu/predefinedItems/alignment.js +14 -14
- package/plugins/contextMenu/predefinedItems/alignment.mjs +14 -14
- package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +1 -1
- package/plugins/contextMenu/predefinedItems/readOnly.js +3 -3
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +3 -3
- package/plugins/contextMenu/utils.js +1 -1
- package/plugins/contextMenu/utils.mjs +1 -1
- package/plugins/copyPaste/copyPaste.js +70 -16
- package/plugins/copyPaste/copyPaste.mjs +71 -17
- package/plugins/copyPaste/copyableRanges.js +6 -2
- package/plugins/copyPaste/copyableRanges.mjs +6 -2
- package/plugins/copyPaste/pasteEvent.d.ts +1 -1
- package/plugins/customBorders/customBorders.d.ts +21 -40
- package/plugins/customBorders/customBorders.js +1080 -201
- package/plugins/customBorders/customBorders.mjs +1082 -203
- package/plugins/customBorders/utils.d.ts +71 -0
- package/plugins/customBorders/utils.js +63 -0
- package/plugins/customBorders/utils.mjs +101 -0
- package/plugins/dataProvider/dataProvider.d.ts +2 -1
- package/plugins/dataProvider/dataProvider.js +22 -7
- package/plugins/dataProvider/dataProvider.mjs +22 -7
- package/plugins/dataProvider/query/crud.js +1 -1
- package/plugins/dataProvider/query/crud.mjs +1 -1
- package/plugins/dialog/dialog.js +14 -9
- package/plugins/dialog/dialog.mjs +14 -9
- package/plugins/dialog/templates/confirm.d.ts +1 -1
- package/plugins/dialog/templates/confirm.js +2 -1
- package/plugins/dialog/templates/confirm.mjs +2 -1
- package/plugins/dialog/ui.d.ts +5 -3
- package/plugins/dialog/ui.js +12 -4
- package/plugins/dialog/ui.mjs +12 -4
- package/plugins/dragToScroll/dragToScroll.d.ts +2 -2
- package/plugins/dragToScroll/dragToScroll.js +150 -14
- package/plugins/dragToScroll/dragToScroll.mjs +151 -15
- package/plugins/dropdownMenu/dropdownMenu.d.ts +5 -1
- package/plugins/dropdownMenu/dropdownMenu.js +45 -3
- package/plugins/dropdownMenu/dropdownMenu.mjs +46 -4
- package/plugins/dropdownMenu/index.d.ts +1 -0
- package/plugins/emptyDataState/emptyDataState.js +4 -6
- package/plugins/emptyDataState/emptyDataState.mjs +4 -6
- package/plugins/emptyDataState/ui.js +2 -1
- package/plugins/emptyDataState/ui.mjs +2 -1
- package/plugins/exportFile/dataProvider.js +7 -9
- package/plugins/exportFile/dataProvider.mjs +7 -9
- package/plugins/exportFile/exportFile.d.ts +10 -3
- package/plugins/exportFile/types/_base.js +4 -10
- package/plugins/exportFile/types/_base.mjs +4 -10
- package/plugins/exportFile/types/xlsx/cell-style.js +4 -2
- package/plugins/exportFile/types/xlsx/cell-style.mjs +4 -2
- package/plugins/exportFile/types/xlsx/date-utils.d.ts +15 -0
- package/plugins/exportFile/types/xlsx/date-utils.js +31 -0
- package/plugins/exportFile/types/xlsx/date-utils.mjs +36 -0
- package/plugins/exportFile/types/xlsx.js +13 -9
- package/plugins/exportFile/types/xlsx.mjs +14 -10
- package/plugins/exportFile/utils.d.ts +9 -1
- package/plugins/exportFile/utils.js +27 -4
- package/plugins/exportFile/utils.mjs +40 -2
- package/plugins/filters/component/_base.d.ts +1 -2
- package/plugins/filters/component/_base.js +1 -2
- package/plugins/filters/component/_base.mjs +1 -2
- package/plugins/filters/component/condition.d.ts +1 -0
- package/plugins/filters/component/condition.js +2 -0
- package/plugins/filters/component/condition.mjs +2 -0
- package/plugins/filters/component/value.d.ts +5 -6
- package/plugins/filters/component/value.js +53 -34
- package/plugins/filters/component/value.mjs +54 -35
- package/plugins/filters/condition/date/after.js +2 -1
- package/plugins/filters/condition/date/after.mjs +2 -1
- package/plugins/filters/condition/date/afterOrEqual.js +2 -1
- package/plugins/filters/condition/date/afterOrEqual.mjs +2 -1
- package/plugins/filters/condition/date/before.js +2 -1
- package/plugins/filters/condition/date/before.mjs +2 -1
- package/plugins/filters/condition/date/beforeOrEqual.js +2 -1
- package/plugins/filters/condition/date/beforeOrEqual.mjs +2 -1
- package/plugins/filters/condition/equal.d.ts +7 -0
- package/plugins/filters/condition/equal.js +4 -0
- package/plugins/filters/condition/equal.mjs +10 -0
- package/plugins/filters/condition/intlDatetime/after.d.mts +1 -0
- package/plugins/filters/condition/intlDatetime/after.d.ts +18 -0
- package/plugins/filters/condition/intlDatetime/after.js +77 -0
- package/plugins/filters/condition/intlDatetime/after.mjs +22 -0
- package/plugins/filters/condition/intlDatetime/afterOrEqual.d.mts +1 -0
- package/plugins/filters/condition/intlDatetime/afterOrEqual.d.ts +18 -0
- package/plugins/filters/condition/intlDatetime/afterOrEqual.js +77 -0
- package/plugins/filters/condition/intlDatetime/afterOrEqual.mjs +22 -0
- package/plugins/filters/condition/intlDatetime/before.d.mts +1 -0
- package/plugins/filters/condition/intlDatetime/before.d.ts +18 -0
- package/plugins/filters/condition/intlDatetime/before.js +77 -0
- package/plugins/filters/condition/intlDatetime/before.mjs +22 -0
- package/plugins/filters/condition/intlDatetime/beforeOrEqual.d.mts +1 -0
- package/plugins/filters/condition/intlDatetime/beforeOrEqual.d.ts +18 -0
- package/plugins/filters/condition/intlDatetime/beforeOrEqual.js +77 -0
- package/plugins/filters/condition/intlDatetime/beforeOrEqual.mjs +22 -0
- package/plugins/filters/condition/intlDatetime/between.d.mts +1 -0
- package/plugins/filters/condition/intlDatetime/between.d.ts +18 -0
- package/plugins/filters/condition/intlDatetime/between.js +78 -0
- package/plugins/filters/condition/intlDatetime/between.mjs +23 -0
- package/plugins/filters/condition/intlDatetime/today.d.mts +1 -0
- package/plugins/filters/condition/intlDatetime/today.d.ts +17 -0
- package/plugins/filters/condition/intlDatetime/today.js +76 -0
- package/plugins/filters/condition/intlDatetime/today.mjs +20 -0
- package/plugins/filters/condition/intlDatetime/tomorrow.d.mts +1 -0
- package/plugins/filters/condition/intlDatetime/tomorrow.d.ts +17 -0
- package/plugins/filters/condition/intlDatetime/tomorrow.js +77 -0
- package/plugins/filters/condition/intlDatetime/tomorrow.mjs +21 -0
- package/plugins/filters/condition/intlDatetime/yesterday.d.mts +1 -0
- package/plugins/filters/condition/intlDatetime/yesterday.d.ts +17 -0
- package/plugins/filters/condition/intlDatetime/yesterday.js +77 -0
- package/plugins/filters/condition/intlDatetime/yesterday.mjs +21 -0
- package/plugins/filters/conditionCollection.js +4 -7
- package/plugins/filters/conditionCollection.mjs +4 -7
- package/plugins/filters/conditionUpdateObserver.d.ts +2 -2
- package/plugins/filters/conditionUpdateObserver.js +148 -49
- package/plugins/filters/conditionUpdateObserver.mjs +148 -49
- package/plugins/filters/constants.d.ts +1 -0
- package/plugins/filters/constants.js +31 -0
- package/plugins/filters/constants.mjs +28 -0
- package/plugins/filters/dataFilter.d.ts +4 -12
- package/plugins/filters/dataFilter.js +7 -19
- package/plugins/filters/dataFilter.mjs +8 -20
- package/plugins/filters/filters.d.ts +33 -9
- package/plugins/filters/filters.js +91 -31
- package/plugins/filters/filters.mjs +92 -32
- package/plugins/filters/sortComparators.d.ts +9 -2
- package/plugins/filters/sortComparators.js +34 -1
- package/plugins/filters/sortComparators.mjs +38 -3
- package/plugins/filters/ui/input.d.ts +4 -0
- package/plugins/filters/ui/input.js +18 -6
- package/plugins/filters/ui/input.mjs +18 -6
- package/plugins/filters/ui/multipleSelect.js +27 -4
- package/plugins/filters/ui/multipleSelect.mjs +27 -4
- package/plugins/filters/ui/select.js +1 -1
- package/plugins/filters/ui/select.mjs +1 -1
- package/plugins/formulas/engine/register.d.ts +5 -4
- package/plugins/formulas/engine/register.js +5 -2
- package/plugins/formulas/engine/register.mjs +9 -5
- package/plugins/formulas/engine/settings.d.ts +2 -6
- package/plugins/formulas/engine/settings.js +29 -4
- package/plugins/formulas/engine/settings.mjs +29 -4
- package/plugins/formulas/engine/types.d.ts +12 -2
- package/plugins/formulas/formulas.d.ts +39 -0
- package/plugins/formulas/formulas.js +789 -47
- package/plugins/formulas/formulas.mjs +793 -49
- package/plugins/formulas/hyperlinkUrl.d.mts +1 -0
- package/plugins/formulas/hyperlinkUrl.d.ts +12 -0
- package/plugins/formulas/hyperlinkUrl.js +32 -0
- package/plugins/formulas/hyperlinkUrl.mjs +32 -0
- package/plugins/formulas/indexSyncer/axisSyncer.d.ts +1 -0
- package/plugins/formulas/indexSyncer/axisSyncer.js +72 -15
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +72 -15
- package/plugins/formulas/utils.d.ts +9 -0
- package/plugins/formulas/utils.js +21 -0
- package/plugins/formulas/utils.mjs +25 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +6 -1
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +6 -1
- package/plugins/hiddenColumns/hiddenColumns.js +6 -3
- package/plugins/hiddenColumns/hiddenColumns.mjs +6 -3
- package/plugins/hiddenRows/contextMenuItem/showRow.js +6 -1
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +6 -1
- package/plugins/hiddenRows/hiddenRows.js +6 -3
- package/plugins/hiddenRows/hiddenRows.mjs +6 -3
- package/plugins/index.d.ts +5 -1
- package/plugins/index.js +10 -0
- package/plugins/index.mjs +5 -1
- package/plugins/loading/content.d.ts +5 -3
- package/plugins/loading/content.js +3 -2
- package/plugins/loading/content.mjs +8 -5
- package/plugins/loading/loading.d.ts +5 -2
- package/plugins/loading/loading.mjs +5 -2
- package/plugins/manualColumnMove/manualColumnMove.d.ts +10 -0
- package/plugins/manualColumnMove/manualColumnMove.js +122 -20
- package/plugins/manualColumnMove/manualColumnMove.mjs +123 -21
- package/plugins/manualColumnResize/manualColumnResize.d.ts +20 -7
- package/plugins/manualColumnResize/manualColumnResize.js +33 -13
- package/plugins/manualColumnResize/manualColumnResize.mjs +34 -14
- package/plugins/manualRowResize/manualRowResize.d.ts +21 -8
- package/plugins/manualRowResize/manualRowResize.js +34 -14
- package/plugins/manualRowResize/manualRowResize.mjs +35 -15
- package/plugins/mergeCells/cellCoords.d.ts +8 -0
- package/plugins/mergeCells/cellCoords.js +11 -0
- package/plugins/mergeCells/cellCoords.mjs +11 -0
- package/plugins/mergeCells/cellsCollection.d.ts +46 -2
- package/plugins/mergeCells/cellsCollection.js +189 -68
- package/plugins/mergeCells/cellsCollection.mjs +189 -68
- package/plugins/mergeCells/focusOrder.d.ts +26 -20
- package/plugins/mergeCells/focusOrder.js +358 -177
- package/plugins/mergeCells/focusOrder.mjs +363 -172
- package/plugins/mergeCells/mergeCells.d.ts +13 -8
- package/plugins/mergeCells/mergeCells.js +322 -64
- package/plugins/mergeCells/mergeCells.mjs +322 -64
- package/plugins/moveCells/helpers.d.mts +1 -0
- package/plugins/moveCells/helpers.d.ts +21 -0
- package/plugins/moveCells/helpers.js +20 -0
- package/plugins/moveCells/helpers.mjs +15 -0
- package/plugins/moveCells/index.d.mts +1 -0
- package/plugins/moveCells/index.d.ts +1 -0
- package/plugins/moveCells/index.js +22 -0
- package/plugins/moveCells/index.mjs +1 -0
- package/plugins/moveCells/moveCells.d.mts +1 -0
- package/plugins/moveCells/moveCells.d.ts +80 -0
- package/plugins/moveCells/moveCells.js +602 -0
- package/plugins/moveCells/moveCells.mjs +587 -0
- package/plugins/multiColumnSorting/multiColumnSorting.d.ts +8 -8
- package/plugins/multiColumnSorting/multiColumnSorting.js +11 -16
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +11 -16
- package/plugins/multiColumnSorting/rootComparator.js +26 -19
- package/plugins/multiColumnSorting/rootComparator.mjs +26 -19
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.d.ts +19 -4
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +273 -58
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +273 -58
- package/plugins/nestedHeaders/nestedHeaders.d.ts +10 -1
- package/plugins/nestedHeaders/nestedHeaders.js +222 -23
- package/plugins/nestedHeaders/nestedHeaders.mjs +222 -23
- package/plugins/nestedHeaders/stateManager/columnArrangement.d.mts +1 -0
- package/plugins/nestedHeaders/stateManager/columnArrangement.d.ts +37 -0
- package/plugins/nestedHeaders/stateManager/columnArrangement.js +35 -0
- package/plugins/nestedHeaders/stateManager/columnArrangement.mjs +30 -0
- package/plugins/nestedHeaders/stateManager/deriveSettings.d.mts +1 -0
- package/plugins/nestedHeaders/stateManager/deriveSettings.d.ts +57 -0
- package/plugins/nestedHeaders/stateManager/deriveSettings.js +115 -0
- package/plugins/nestedHeaders/stateManager/deriveSettings.mjs +135 -0
- package/plugins/nestedHeaders/stateManager/headersTree.d.ts +14 -1
- package/plugins/nestedHeaders/stateManager/index.d.ts +76 -13
- package/plugins/nestedHeaders/stateManager/index.js +381 -38
- package/plugins/nestedHeaders/stateManager/index.mjs +382 -39
- package/plugins/nestedHeaders/stateManager/matrixGenerator.js +3 -2
- package/plugins/nestedHeaders/stateManager/matrixGenerator.mjs +3 -2
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -1
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +5 -1
- package/plugins/nestedHeaders/stateManager/sourceSettings.d.ts +23 -6
- package/plugins/nestedHeaders/stateManager/sourceSettings.js +20 -4
- package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +20 -4
- package/plugins/nestedHeaders/stateManager/utils.d.ts +17 -1
- package/plugins/nestedHeaders/stateManager/utils.js +6 -1
- package/plugins/nestedHeaders/stateManager/utils.mjs +6 -1
- package/plugins/nestedHeaders/utils/ghostTable.js +21 -8
- package/plugins/nestedHeaders/utils/ghostTable.mjs +21 -8
- package/plugins/nestedRows/data/dataManager.d.ts +4 -1
- package/plugins/nestedRows/data/dataManager.js +10 -4
- package/plugins/nestedRows/data/dataManager.mjs +10 -4
- package/plugins/nestedRows/nestedRows.d.ts +127 -1
- package/plugins/nestedRows/nestedRows.js +330 -8
- package/plugins/nestedRows/nestedRows.mjs +330 -8
- package/plugins/nestedRows/ui/collapsing.d.ts +58 -0
- package/plugins/nestedRows/ui/collapsing.js +236 -40
- package/plugins/nestedRows/ui/collapsing.mjs +236 -40
- package/plugins/notification/notification.d.ts +2 -1
- package/plugins/notification/notification.js +6 -3
- package/plugins/notification/notification.mjs +6 -3
- package/plugins/notification/ui.d.ts +8 -5
- package/plugins/notification/ui.js +18 -6
- package/plugins/notification/ui.mjs +18 -6
- package/plugins/pagination/pagination.js +2 -2
- package/plugins/pagination/pagination.mjs +2 -2
- package/plugins/search/search.js +23 -2
- package/plugins/search/search.mjs +23 -2
- package/plugins/selectionHandles/helpers.d.mts +1 -0
- package/plugins/selectionHandles/helpers.d.ts +17 -0
- package/plugins/selectionHandles/helpers.js +16 -0
- package/plugins/selectionHandles/helpers.mjs +11 -0
- package/plugins/selectionHandles/index.d.mts +1 -0
- package/plugins/selectionHandles/index.d.ts +1 -0
- package/plugins/selectionHandles/index.js +22 -0
- package/plugins/selectionHandles/index.mjs +1 -0
- package/plugins/selectionHandles/selectionHandles.d.mts +1 -0
- package/plugins/selectionHandles/selectionHandles.d.ts +52 -0
- package/plugins/selectionHandles/selectionHandles.js +342 -0
- package/plugins/selectionHandles/selectionHandles.mjs +323 -0
- package/plugins/trimRows/trimRows.d.ts +1 -1
- package/plugins/trimRows/trimRows.js +6 -2
- package/plugins/trimRows/trimRows.mjs +6 -2
- package/plugins/types.d.ts +4 -0
- package/plugins/undoRedo/actions/cellAlignment.js +1 -1
- package/plugins/undoRedo/actions/cellAlignment.mjs +1 -1
- package/plugins/undoRedo/actions/createColumn.js +4 -1
- package/plugins/undoRedo/actions/createColumn.mjs +4 -1
- package/plugins/undoRedo/actions/createRow.js +4 -1
- package/plugins/undoRedo/actions/createRow.mjs +4 -1
- package/plugins/undoRedo/actions/fixedCounts.d.mts +1 -0
- package/plugins/undoRedo/actions/fixedCounts.d.ts +36 -0
- package/plugins/undoRedo/actions/fixedCounts.js +63 -0
- package/plugins/undoRedo/actions/fixedCounts.mjs +62 -0
- package/plugins/undoRedo/actions/index.js +2 -0
- package/plugins/undoRedo/actions/index.mjs +2 -0
- package/plugins/undoRedo/actions/moveCells.d.mts +1 -0
- package/plugins/undoRedo/actions/moveCells.d.ts +104 -0
- package/plugins/undoRedo/actions/moveCells.js +225 -0
- package/plugins/undoRedo/actions/moveCells.mjs +227 -0
- package/plugins/undoRedo/actions/removeColumn.d.ts +18 -2
- package/plugins/undoRedo/actions/removeColumn.js +11 -4
- package/plugins/undoRedo/actions/removeColumn.mjs +12 -5
- package/plugins/undoRedo/actions/removeRow.js +2 -57
- package/plugins/undoRedo/actions/removeRow.mjs +2 -57
- package/plugins/undoRedo/undoRedo.d.ts +26 -0
- package/plugins/undoRedo/undoRedo.js +36 -2
- package/plugins/undoRedo/undoRedo.mjs +36 -2
- package/plugins/undoRedo/utils.d.ts +29 -0
- package/plugins/undoRedo/utils.js +55 -3
- package/plugins/undoRedo/utils.mjs +59 -0
- package/renderSizeProbe.d.mts +1 -0
- package/renderSizeProbe.d.ts +60 -0
- package/renderSizeProbe.js +163 -0
- package/renderSizeProbe.mjs +176 -0
- package/renderers/checkboxRenderer/checkboxRenderer.js +9 -4
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
- package/renderers/index.d.ts +3 -2
- package/renderers/index.js +8 -0
- package/renderers/index.mjs +3 -1
- package/renderers/intlDatetimeRenderer/index.d.mts +1 -0
- package/renderers/intlDatetimeRenderer/index.d.ts +1 -0
- package/renderers/intlDatetimeRenderer/index.js +22 -0
- package/renderers/intlDatetimeRenderer/index.mjs +1 -0
- package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.d.mts +1 -0
- package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.d.ts +26 -0
- package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.js +82 -0
- package/renderers/intlDatetimeRenderer/intlDatetimeRenderer.mjs +67 -0
- package/renderers/multiSelectRenderer/multiSelectRenderer.js +2 -3
- package/renderers/multiSelectRenderer/multiSelectRenderer.mjs +2 -3
- package/renderers/multiSelectRenderer/utils/utils.d.ts +1 -1
- package/renderers/multiSelectRenderer/utils/utils.js +11 -8
- package/renderers/multiSelectRenderer/utils/utils.mjs +11 -8
- package/renderers/passwordRenderer/passwordRenderer.js +6 -1
- package/renderers/passwordRenderer/passwordRenderer.mjs +6 -1
- package/renderers/renderCell.d.mts +1 -0
- package/renderers/renderCell.d.ts +37 -0
- package/renderers/renderCell.js +43 -0
- package/renderers/renderCell.mjs +48 -0
- package/selection/highlight/types/areaLayered.d.ts +3 -1
- package/selection/highlight/types/areaLayered.js +4 -2
- package/selection/highlight/types/areaLayered.mjs +6 -2
- package/selection/highlight/types/focus.d.ts +3 -1
- package/selection/highlight/types/focus.js +3 -2
- package/selection/highlight/types/focus.mjs +5 -2
- package/selection/mouseEventHandler.js +29 -26
- package/selection/mouseEventHandler.mjs +29 -26
- package/selection/moveCells.d.mts +1 -0
- package/selection/moveCells.d.ts +15 -0
- package/selection/moveCells.js +13 -0
- package/selection/moveCells.mjs +9 -0
- package/selection/selection.d.ts +56 -2
- package/selection/selection.js +149 -5
- package/selection/selection.mjs +149 -5
- package/selection/types.d.ts +3 -0
- package/settings.d.ts +24 -3
- package/shortcuts/context.d.ts +4 -0
- package/shortcuts/context.js +16 -8
- package/shortcuts/context.mjs +20 -8
- package/shortcuts/contexts/commands/populateSelectedCellsData.js +1 -1
- package/shortcuts/contexts/commands/populateSelectedCellsData.mjs +1 -1
- package/styles/handsontable.css +504 -158
- package/styles/handsontable.min.css +4 -4
- package/styles/handsontableStyles.d.mts +2 -0
- package/styles/handsontableStyles.d.ts +2 -0
- package/styles/handsontableStyles.js +1 -1
- package/styles/handsontableStyles.mjs +1 -1
- package/styles/ht-icons-horizon.css +1 -10
- package/styles/ht-icons-horizon.min.css +4 -4
- package/styles/ht-icons-main.css +1 -10
- package/styles/ht-icons-main.min.css +4 -4
- package/styles/ht-theme-classic-no-icons.css +6 -0
- package/styles/ht-theme-classic-no-icons.min.css +4 -4
- package/styles/ht-theme-classic.css +7 -10
- package/styles/ht-theme-classic.min.css +4 -4
- package/styles/ht-theme-horizon-no-icons.css +6 -0
- package/styles/ht-theme-horizon-no-icons.min.css +4 -4
- package/styles/ht-theme-horizon.css +7 -10
- package/styles/ht-theme-horizon.min.css +4 -4
- package/styles/ht-theme-main-no-icons.css +6 -0
- package/styles/ht-theme-main-no-icons.min.css +4 -4
- package/styles/ht-theme-main.css +7 -10
- package/styles/ht-theme-main.min.css +4 -4
- package/tableView.d.ts +17 -4
- package/tableView.js +208 -42
- package/tableView.mjs +209 -43
- package/themes/engine/index.d.ts +2 -1
- package/themes/engine/index.js +3 -0
- package/themes/engine/index.mjs +1 -1
- package/themes/engine/manager.d.ts +75 -3
- package/themes/engine/manager.js +242 -6
- package/themes/engine/manager.mjs +249 -6
- package/themes/engine/utils/cssVariables.d.ts +18 -1
- package/themes/engine/utils/cssVariables.js +27 -11
- package/themes/engine/utils/cssVariables.mjs +28 -11
- package/themes/engine/utils/validation.js +7 -0
- package/themes/engine/utils/validation.mjs +7 -0
- package/themes/static/variables/helpers/iconsMap.js +1 -6
- package/themes/static/variables/helpers/iconsMap.mjs +1 -6
- package/themes/static/variables/tokens/classic.js +6 -0
- package/themes/static/variables/tokens/classic.mjs +6 -0
- package/themes/static/variables/tokens/horizon.js +6 -0
- package/themes/static/variables/tokens/horizon.mjs +6 -0
- package/themes/static/variables/tokens/main.js +6 -0
- package/themes/static/variables/tokens/main.mjs +6 -0
- package/themes/types.d.ts +1 -1
- package/translations/indexMapper.d.ts +14 -9
- package/translations/indexMapper.js +104 -43
- package/translations/indexMapper.mjs +104 -43
- package/translations/mapCollections/aggregatedCollection.js +20 -35
- package/translations/mapCollections/aggregatedCollection.mjs +20 -35
- package/translations/mapCollections/mapCollection.d.ts +10 -4
- package/translations/mapCollections/mapCollection.js +2 -2
- package/translations/mapCollections/mapCollection.mjs +2 -2
- package/translations/maps/booleanMap.d.mts +1 -0
- package/translations/maps/booleanMap.d.ts +86 -0
- package/translations/maps/booleanMap.js +300 -0
- package/translations/maps/booleanMap.mjs +308 -0
- package/translations/maps/hidingMap.d.ts +5 -2
- package/translations/maps/hidingMap.js +8 -3
- package/translations/maps/hidingMap.mjs +8 -3
- package/translations/maps/index.d.ts +5 -2
- package/translations/maps/index.js +7 -3
- package/translations/maps/index.mjs +10 -2
- package/translations/maps/indexMap.d.ts +26 -2
- package/translations/maps/indexMap.js +78 -6
- package/translations/maps/indexMap.mjs +78 -6
- package/translations/maps/indexesSequence.d.ts +53 -2
- package/translations/maps/indexesSequence.js +225 -3
- package/translations/maps/indexesSequence.mjs +233 -3
- package/translations/maps/trimmingMap.d.ts +5 -2
- package/translations/maps/trimmingMap.js +8 -3
- package/translations/maps/trimmingMap.mjs +8 -3
- package/translations/maps/utils/actionsOnIndexes.js +20 -1
- package/translations/maps/utils/actionsOnIndexes.mjs +20 -1
- package/translations/maps/utils/indexesSequence.js +12 -3
- package/translations/maps/utils/indexesSequence.mjs +12 -3
- package/translations/maps/utils/physicallyIndexed.js +12 -1
- package/translations/maps/utils/physicallyIndexed.mjs +12 -1
- package/utils/entitlementLicenseKey/classify.d.mts +1 -0
- package/utils/entitlementLicenseKey/classify.d.ts +34 -0
- package/utils/entitlementLicenseKey/classify.js +97 -0
- package/utils/entitlementLicenseKey/classify.mjs +96 -0
- package/utils/entitlementLicenseKey/constants.d.mts +1 -0
- package/utils/entitlementLicenseKey/constants.d.ts +69 -0
- package/utils/entitlementLicenseKey/constants.js +54 -0
- package/utils/entitlementLicenseKey/constants.mjs +66 -0
- package/utils/entitlementLicenseKey/detectFormat.d.mts +1 -0
- package/utils/entitlementLicenseKey/detectFormat.d.ts +23 -0
- package/utils/entitlementLicenseKey/detectFormat.js +60 -0
- package/utils/entitlementLicenseKey/detectFormat.mjs +60 -0
- package/utils/entitlementLicenseKey/encoding.d.mts +1 -0
- package/utils/entitlementLicenseKey/encoding.d.ts +58 -0
- package/utils/entitlementLicenseKey/encoding.js +161 -0
- package/utils/entitlementLicenseKey/encoding.mjs +172 -0
- package/utils/entitlementLicenseKey/extractKeyData.d.mts +1 -0
- package/utils/entitlementLicenseKey/extractKeyData.d.ts +47 -0
- package/utils/entitlementLicenseKey/extractKeyData.js +213 -0
- package/utils/entitlementLicenseKey/extractKeyData.mjs +232 -0
- package/utils/entitlementLicenseKey/grants.d.mts +1 -0
- package/utils/entitlementLicenseKey/grants.d.ts +54 -0
- package/utils/entitlementLicenseKey/grants.js +68 -0
- package/utils/entitlementLicenseKey/grants.mjs +84 -0
- package/utils/entitlementLicenseKey/index.d.mts +1 -0
- package/utils/entitlementLicenseKey/index.d.ts +8 -0
- package/utils/entitlementLicenseKey/index.js +53 -0
- package/utils/entitlementLicenseKey/index.mjs +6 -0
- package/utils/entitlementLicenseKey/sha512.d.mts +1 -0
- package/utils/entitlementLicenseKey/sha512.d.ts +11 -0
- package/utils/entitlementLicenseKey/sha512.js +328 -0
- package/utils/entitlementLicenseKey/sha512.mjs +327 -0
- package/utils/entitlementLicenseKey/types.d.mts +1 -0
- package/utils/entitlementLicenseKey/types.d.ts +84 -0
- package/utils/entitlementLicenseKey/types.js +8 -0
- package/utils/entitlementLicenseKey/types.mjs +10 -0
- package/utils/ghostTable.d.ts +1 -0
- package/utils/ghostTable.js +60 -11
- package/utils/ghostTable.mjs +60 -11
- package/utils/licenseBranding/badge.d.mts +1 -0
- package/utils/licenseBranding/badge.d.ts +21 -0
- package/utils/licenseBranding/badge.js +237 -0
- package/utils/licenseBranding/badge.mjs +244 -0
- package/utils/licenseBranding/content.d.mts +1 -0
- package/utils/licenseBranding/content.d.ts +54 -0
- package/utils/licenseBranding/content.js +93 -0
- package/utils/licenseBranding/content.mjs +79 -0
- package/utils/licenseBranding/index.d.mts +1 -0
- package/utils/licenseBranding/index.d.ts +14 -0
- package/utils/licenseBranding/index.js +55 -0
- package/utils/licenseBranding/index.mjs +56 -0
- package/utils/licenseBranding/lockScreen.d.mts +1 -0
- package/utils/licenseBranding/lockScreen.d.ts +23 -0
- package/utils/licenseBranding/lockScreen.js +150 -0
- package/utils/licenseBranding/lockScreen.mjs +159 -0
- package/utils/licenseNotification.d.ts +19 -0
- package/utils/licenseNotification.js +56 -29
- package/utils/licenseNotification.mjs +61 -29
- package/utils/movableMeta.d.mts +1 -0
- package/utils/movableMeta.d.ts +40 -0
- package/utils/movableMeta.js +47 -0
- package/utils/movableMeta.mjs +46 -0
- package/utils/parseTable.js +16 -7
- package/utils/parseTable.mjs +16 -7
- package/utils/samplesGenerator.d.ts +41 -14
- package/utils/samplesGenerator.js +114 -42
- package/utils/samplesGenerator.mjs +114 -42
- package/utils/sanitizer.d.mts +1 -0
- package/utils/sanitizer.d.ts +47 -0
- package/utils/sanitizer.js +43 -0
- package/utils/sanitizer.mjs +55 -0
- package/utils/stylesHandler.d.ts +13 -0
- package/utils/stylesHandler.js +55 -2
- package/utils/stylesHandler.mjs +55 -2
- package/validators/autocompleteValidator/autocompleteValidator.js +3 -0
- package/validators/autocompleteValidator/autocompleteValidator.mjs +3 -0
- package/validators/index.d.ts +3 -2
- package/validators/index.js +8 -0
- package/validators/index.mjs +3 -1
- package/validators/intlDatetimeValidator/index.d.mts +1 -0
- package/validators/intlDatetimeValidator/index.d.ts +1 -0
- package/validators/intlDatetimeValidator/index.js +25 -0
- package/validators/intlDatetimeValidator/index.mjs +1 -0
- package/validators/intlDatetimeValidator/intlDatetimeValidator.d.mts +1 -0
- package/validators/intlDatetimeValidator/intlDatetimeValidator.d.ts +28 -0
- package/validators/intlDatetimeValidator/intlDatetimeValidator.js +49 -0
- package/validators/intlDatetimeValidator/intlDatetimeValidator.mjs +37 -0
- package/3rdparty/walkontable/src/overlay/bottom.d.mts +0 -1
- package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.d.mts +0 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.d.mts +0 -1
- package/3rdparty/walkontable/src/overlay/top.d.mts +0 -1
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.d.mts +0 -1
- package/3rdparty/walkontable/src/overlays.d.ts +0 -329
- package/3rdparty/walkontable/src/overlays.js +0 -870
- package/3rdparty/walkontable/src/overlays.mjs +0 -860
- package/3rdparty/walkontable/src/renderer/table.d.mts +0 -1
- package/3rdparty/walkontable/src/renderer/table.js +0 -229
- package/3rdparty/walkontable/src/settings.d.mts +0 -2
- package/3rdparty/walkontable/src/settings.js +0 -196
- package/3rdparty/walkontable/src/settings.mjs +0 -263
- package/3rdparty/walkontable/src/table/bottom.d.mts +0 -2
- package/3rdparty/walkontable/src/table/bottom.d.ts +0 -19
- package/3rdparty/walkontable/src/table/bottom.js +0 -38
- package/3rdparty/walkontable/src/table/bottom.mjs +0 -23
- package/3rdparty/walkontable/src/table/bottomInlineStartCorner.d.mts +0 -2
- package/3rdparty/walkontable/src/table/bottomInlineStartCorner.d.ts +0 -20
- package/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs +0 -24
- package/3rdparty/walkontable/src/table/inlineStart.d.mts +0 -2
- package/3rdparty/walkontable/src/table/inlineStart.d.ts +0 -16
- package/3rdparty/walkontable/src/table/inlineStart.js +0 -35
- package/3rdparty/walkontable/src/table/inlineStart.mjs +0 -20
- package/3rdparty/walkontable/src/table/master.d.mts +0 -2
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.d.mts +0 -2
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.d.ts +0 -75
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -122
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -112
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.d.mts +0 -2
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.d.ts +0 -75
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -122
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -112
- package/3rdparty/walkontable/src/table/top.d.mts +0 -2
- package/3rdparty/walkontable/src/table/top.d.ts +0 -19
- package/3rdparty/walkontable/src/table/top.js +0 -38
- package/3rdparty/walkontable/src/table/top.mjs +0 -23
- package/3rdparty/walkontable/src/table/topInlineStartCorner.d.mts +0 -2
- package/3rdparty/walkontable/src/table/topInlineStartCorner.d.ts +0 -20
- package/3rdparty/walkontable/src/table/topInlineStartCorner.mjs +0 -24
- package/3rdparty/walkontable/src/table.d.mts +0 -2
- package/3rdparty/walkontable/src/table.d.ts +0 -741
- package/3rdparty/walkontable/src/table.js +0 -1120
- package/3rdparty/walkontable/src/table.mjs +0 -1105
- package/3rdparty/walkontable/src/utils/cellCoords.d.mts +0 -1
- package/3rdparty/walkontable/src/utils/cellCoords.js +0 -54
- package/3rdparty/walkontable/src/utils/cellCoords.mjs +0 -54
- package/3rdparty/walkontable/src/utils/column.d.mts +0 -2
- package/3rdparty/walkontable/src/utils/column.js +0 -75
- package/3rdparty/walkontable/src/utils/column.mjs +0 -70
- package/3rdparty/walkontable/src/utils/positionCache.d.mts +0 -1
- package/3rdparty/walkontable/src/utils/positionCache.d.ts +0 -91
- package/3rdparty/walkontable/src/utils/positionCache.js +0 -193
- package/3rdparty/walkontable/src/utils/positionCache.mjs +0 -194
- package/3rdparty/walkontable/src/utils/row.d.mts +0 -2
- package/3rdparty/walkontable/src/utils/row.js +0 -46
- package/3rdparty/walkontable/src/utils/row.mjs +0 -41
- package/3rdparty/walkontable/src/viewport.d.ts +0 -254
- package/3rdparty/walkontable/src/viewport.js +0 -533
- package/3rdparty/walkontable/src/viewport.mjs +0 -523
- /package/3rdparty/walkontable/src/{renderer → axisSizing/positionCache}/index.d.mts +0 -0
- /package/3rdparty/walkontable/src/{overlays.d.mts → overlay/overlays.d.mts} +0 -0
- /package/3rdparty/walkontable/src/overlay/{_base.d.mts → regions/_base.d.mts} +0 -0
- /package/3rdparty/walkontable/src/{stickyScrollStrategy.d.mts → overlay/strategies/stickyScrollStrategy.d.mts} +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/_base.d.mts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/_base.js +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/_base.mjs +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/cells.d.mts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/cells.d.ts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/colGroup.d.mts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/colGroup.d.ts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/colGroup.js +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/colGroup.mjs +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.d.mts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.d.ts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.js +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/columnHeaderRows.mjs +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/columnHeaders.d.mts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.d.mts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.d.ts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.js +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/rowHeaders.mjs +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/rows.d.mts +0 -0
- /package/3rdparty/walkontable/src/{renderer → render}/rows.d.ts +0 -0
- /package/3rdparty/walkontable/src/{scroll.d.mts → scroll/scroll.d.mts} +0 -0
- /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyColumnsStart.d.mts +0 -0
- /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.d.mts +0 -0
- /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.js +0 -0
- /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsBottom.mjs +0 -0
- /package/3rdparty/walkontable/src/table/{mixin → rangeQuery}/stickyRowsTop.d.mts +0 -0
- /package/3rdparty/walkontable/src/{viewport.d.mts → viewport/viewport.d.mts} +0 -0
|
@@ -31,7 +31,6 @@ const _object = require("../../helpers/object");
|
|
|
31
31
|
const _function = require("../../helpers/function");
|
|
32
32
|
const _array = require("../../helpers/array");
|
|
33
33
|
const _base = require("../base");
|
|
34
|
-
const _translations = require("../../translations");
|
|
35
34
|
const _hooks = require("../../core/hooks");
|
|
36
35
|
const _columnStatesManager = require("./columnStatesManager");
|
|
37
36
|
const _contexts = require("../../shortcuts/contexts");
|
|
@@ -80,11 +79,27 @@ function _class_private_field_set(receiver, privateMap, value) {
|
|
|
80
79
|
_class_apply_descriptor_set(receiver, descriptor, value);
|
|
81
80
|
return value;
|
|
82
81
|
}
|
|
82
|
+
function _class_private_method_get(receiver, privateSet, fn) {
|
|
83
|
+
if (!privateSet.has(receiver)) {
|
|
84
|
+
throw new TypeError("attempted to get private field on non-instance");
|
|
85
|
+
}
|
|
86
|
+
return fn;
|
|
87
|
+
}
|
|
88
|
+
function _class_private_method_init(obj, privateSet) {
|
|
89
|
+
_check_private_redeclaration(obj, privateSet);
|
|
90
|
+
privateSet.add(obj);
|
|
91
|
+
}
|
|
83
92
|
const PLUGIN_KEY = 'columnSorting';
|
|
84
93
|
const PLUGIN_PRIORITY = 50;
|
|
85
94
|
const APPEND_COLUMN_CONFIG_STRATEGY = 'append';
|
|
86
95
|
const REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
|
|
87
96
|
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
|
97
|
+
/**
|
|
98
|
+
* Marks the header container of a column that is showing a sort indicator. The indicator is
|
|
99
|
+
* positioned against that container, so the room it needs is reserved there rather than as padding
|
|
100
|
+
* on the label - padding on the label would enlarge the area that sorts on click, which is exactly
|
|
101
|
+
* what it must not do. A class rather than a `:has()` selector, which is banned in this package.
|
|
102
|
+
*/ const CONTAINER_WITH_INDICATOR_CLASS = 'has-sort-indicator';
|
|
88
103
|
(0, _sortService.registerRootComparator)(PLUGIN_KEY, _rootComparator.rootComparator);
|
|
89
104
|
_hooks.Hooks.getSingleton().register('beforeColumnSort');
|
|
90
105
|
_hooks.Hooks.getSingleton().register('afterColumnSort');
|
|
@@ -94,6 +109,8 @@ _hooks.Hooks.getSingleton().register('afterColumnSort');
|
|
|
94
109
|
* the other should remain disabled even if it's set to `true`.
|
|
95
110
|
*/ const pluginConflictsState = new WeakMap();
|
|
96
111
|
var /**
|
|
112
|
+
* Sort queued by a header press, applied on mouse up unless the press became a column drag.
|
|
113
|
+
*/ _pendingHeaderSort = /*#__PURE__*/ new WeakMap(), /**
|
|
97
114
|
* Sort by predefined plugin configuration.
|
|
98
115
|
*/ _loadOrSortBySettings = /*#__PURE__*/ new WeakMap(), /**
|
|
99
116
|
* Callback for the `onAfterGetColHeader` hook. Adds column sorting CSS classes.
|
|
@@ -101,6 +118,15 @@ var /**
|
|
|
101
118
|
* @param {number} column Visual column index.
|
|
102
119
|
* @param {Element} TH TH HTML element.
|
|
103
120
|
*/ _onAfterGetColHeader = /*#__PURE__*/ new WeakMap(), /**
|
|
121
|
+
* Reserves room for the sort indicator on the header container, matching the state the label
|
|
122
|
+
* was just given.
|
|
123
|
+
*
|
|
124
|
+
* Called from the header render paths, not from `updateHeaderClasses`, so it runs after any
|
|
125
|
+
* subclass override has finished adding its classes. `TableView` rebuilds the container's class
|
|
126
|
+
* list on every render, so this has to run per render.
|
|
127
|
+
*
|
|
128
|
+
* @param {HTMLElement} headerSpanElement The header label element.
|
|
129
|
+
*/ _syncIndicatorReserve = /*#__PURE__*/ new WeakSet(), /**
|
|
104
130
|
* Callback for the `afterLoadData` hook.
|
|
105
131
|
*
|
|
106
132
|
* @param {boolean} initialLoad Flag that determines whether the data has been loaded during the initialization.
|
|
@@ -112,7 +138,17 @@ var /**
|
|
|
112
138
|
* @param {HTMLElement} TD The cell element.
|
|
113
139
|
* @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
|
|
114
140
|
* a boolean value that allows or disallows changing the selection for that particular area.
|
|
115
|
-
*/ _onBeforeOnCellMouseDown = /*#__PURE__*/ new WeakMap()
|
|
141
|
+
*/ _onBeforeOnCellMouseDown = /*#__PURE__*/ new WeakMap(), /**
|
|
142
|
+
* Resolves a header press on release: sorts, unless ManualColumnMove turned the press into a
|
|
143
|
+
* drag.
|
|
144
|
+
*
|
|
145
|
+
* Safe to call more than once for the same gesture - the queued press is taken first, so
|
|
146
|
+
* whichever release signal arrives first wins and the rest are no-ops.
|
|
147
|
+
*/ _resolvePendingSort = /*#__PURE__*/ new WeakMap(), /**
|
|
148
|
+
* Marks a queued press as spent once ManualColumnMove has moved the column.
|
|
149
|
+
*/ _onAfterColumnMove = /*#__PURE__*/ new WeakMap(), /**
|
|
150
|
+
* Whether ManualColumnMove is mid-drag. False when that plugin is absent or disabled.
|
|
151
|
+
*/ _isColumnBeingDragged = /*#__PURE__*/ new WeakSet();
|
|
116
152
|
class ColumnSorting extends _base.BasePlugin {
|
|
117
153
|
/**
|
|
118
154
|
* Returns the plugin key used to identify this plugin in Handsontable settings.
|
|
@@ -147,17 +183,24 @@ class ColumnSorting extends _base.BasePlugin {
|
|
|
147
183
|
}
|
|
148
184
|
pluginConflictsState.set(this.hot, this.pluginKey);
|
|
149
185
|
this.columnStatesManager = new _columnStatesManager.ColumnStatesManager(this.hot, `${this.pluginKey}.sortingStates`);
|
|
150
|
-
this.columnMetaCache =
|
|
186
|
+
this.columnMetaCache = this.hot.columnIndexMapper.createAndRegisterIndexMap(`${this.pluginKey}.columnMeta`, 'physicalIndexToValue', (physicalIndex)=>{
|
|
151
187
|
let visualIndex = this.hot.toVisualColumn(physicalIndex);
|
|
152
188
|
if (visualIndex === null) {
|
|
153
189
|
visualIndex = physicalIndex;
|
|
154
190
|
}
|
|
155
191
|
return this.getMergedPluginSettings(visualIndex);
|
|
156
192
|
});
|
|
157
|
-
this.hot.columnIndexMapper.registerMap(`${this.pluginKey}.columnMeta`, this.columnMetaCache);
|
|
158
193
|
this.addHook('afterGetColHeader', _class_private_field_get(this, _onAfterGetColHeader));
|
|
159
194
|
this.addHook('beforeOnCellMouseDown', _class_private_field_get(this, _onBeforeOnCellMouseDown));
|
|
160
195
|
this.addHook('afterOnCellMouseDown', (event, target)=>this.onAfterOnCellMouseDown(event, target));
|
|
196
|
+
// Primary release signal. On touch devices Walkontable calls its `onMouseUp` directly from
|
|
197
|
+
// `touchend` instead of dispatching a DOM `mouseup`, so a document listener alone would never
|
|
198
|
+
// fire and tapping a header would stop sorting.
|
|
199
|
+
this.addHook('afterOnCellMouseUp', _class_private_field_get(this, _resolvePendingSort));
|
|
200
|
+
// Fallback for a release that lands outside any cell - that is the drag case, and the queued
|
|
201
|
+
// sort still has to be cleared rather than left pending for the next release.
|
|
202
|
+
this.eventManager.addEventListener(this.hot.rootDocument.documentElement, 'mouseup', ()=>_class_private_field_get(this, _resolvePendingSort).call(this));
|
|
203
|
+
this.addHook('afterColumnMove', _class_private_field_get(this, _onAfterColumnMove));
|
|
161
204
|
this.addHook('afterInit', _class_private_field_get(this, _loadOrSortBySettings));
|
|
162
205
|
this.addHook('afterLoadData', _class_private_field_get(this, _onAfterLoadData));
|
|
163
206
|
this.addHook('afterDataProviderFetch', _class_private_field_get(this, _onAfterDataProviderFetch), -1);
|
|
@@ -177,6 +220,7 @@ class ColumnSorting extends _base.BasePlugin {
|
|
|
177
220
|
return;
|
|
178
221
|
}
|
|
179
222
|
this.updateHeaderClasses(headerSpanElement);
|
|
223
|
+
_class_private_method_get(this, _syncIndicatorReserve, syncIndicatorReserve).call(this, headerSpanElement);
|
|
180
224
|
};
|
|
181
225
|
pluginConflictsState.delete(this.hot);
|
|
182
226
|
// Changing header width and removing indicator.
|
|
@@ -195,6 +239,7 @@ class ColumnSorting extends _base.BasePlugin {
|
|
|
195
239
|
this.columnStatesManager?.destroy();
|
|
196
240
|
this.columnMetaCache = null;
|
|
197
241
|
this.columnStatesManager = null;
|
|
242
|
+
_class_private_field_set(this, _pendingHeaderSort, null);
|
|
198
243
|
this.unregisterShortcuts();
|
|
199
244
|
super.disablePlugin();
|
|
200
245
|
}
|
|
@@ -263,7 +308,7 @@ class ColumnSorting extends _base.BasePlugin {
|
|
|
263
308
|
return;
|
|
264
309
|
}
|
|
265
310
|
if (currentSortConfig.length === 0 && this.indexesSequenceCache === null) {
|
|
266
|
-
this.indexesSequenceCache = this.hot.rowIndexMapper.
|
|
311
|
+
this.indexesSequenceCache = this.hot.rowIndexMapper.createAndRegisterIndexMap(this.pluginKey, 'indexesSequence');
|
|
267
312
|
this.indexesSequenceCache.setValues(this.hot.rowIndexMapper.getIndexesSequence());
|
|
268
313
|
}
|
|
269
314
|
if (sortPossible) {
|
|
@@ -452,7 +497,7 @@ class ColumnSorting extends _base.BasePlugin {
|
|
|
452
497
|
*/ getMergedPluginSettings(column) {
|
|
453
498
|
const pluginMainSettings = this.hot.getSettings()[this.pluginKey];
|
|
454
499
|
const storedColumnProperties = this.columnStatesManager?.getAllColumnsProperties() ?? {};
|
|
455
|
-
const cellMeta = this.hot.
|
|
500
|
+
const cellMeta = this.hot.getCellMetaTransient(0, column);
|
|
456
501
|
const columnMeta = Object.getPrototypeOf(cellMeta);
|
|
457
502
|
if (Array.isArray(columnMeta.columns)) {
|
|
458
503
|
return Object.assign(storedColumnProperties, pluginMainSettings, this.getPluginColumnConfig(columnMeta.columns[column]));
|
|
@@ -471,7 +516,7 @@ class ColumnSorting extends _base.BasePlugin {
|
|
|
471
516
|
*/ // TODO: Workaround. Inheriting of non-primitive cell meta values doesn't work. Instead of getting properties from column meta we call this function.
|
|
472
517
|
// TODO: Remove test named: "should not break the dataset when inserted new row" (#5431).
|
|
473
518
|
getFirstCellSettings(column) {
|
|
474
|
-
const cellMeta = this.hot.
|
|
519
|
+
const cellMeta = this.hot.getCellMetaTransient(0, column);
|
|
475
520
|
const cellMetaCopy = Object.create(cellMeta);
|
|
476
521
|
cellMetaCopy[this.pluginKey] = this.columnMetaCache?.getValueAtIndex(this.hot.toPhysicalColumn(column));
|
|
477
522
|
return cellMetaCopy;
|
|
@@ -597,6 +642,11 @@ class ColumnSorting extends _base.BasePlugin {
|
|
|
597
642
|
/**
|
|
598
643
|
* Callback for the `onAfterOnCellMouseDown` hook.
|
|
599
644
|
*
|
|
645
|
+
* Queues the sort rather than running it. The header is also the surface ManualColumnMove
|
|
646
|
+
* drags a column by, so which action the user meant is only known once the button is
|
|
647
|
+
* released: a press that stays put is a click to sort, a press that travels is a drag.
|
|
648
|
+
* Selection changes stay here so the header still reacts the moment it is pressed.
|
|
649
|
+
*
|
|
600
650
|
* @private
|
|
601
651
|
* @param {Event} event Event which are provided by hook.
|
|
602
652
|
* @param {CellCoords} coords Visual coords of the selected cell.
|
|
@@ -604,33 +654,56 @@ class ColumnSorting extends _base.BasePlugin {
|
|
|
604
654
|
if ((0, _utils.wasHeaderClickedProperly)(coords.row, coords.col, event) === false) {
|
|
605
655
|
return;
|
|
606
656
|
}
|
|
607
|
-
if (this.wasClickableHeaderClicked(event, coords.col)) {
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
if (activeEditor?.isOpened() && this.hot.getCellValidator(activeEditor.row, activeEditor.col)) {
|
|
615
|
-
// Postpone sorting until the cell's value is validated and saved.
|
|
616
|
-
this.hot.addHookOnce('postAfterValidate', ()=>{
|
|
617
|
-
this.sort(nextConfig);
|
|
618
|
-
});
|
|
619
|
-
} else {
|
|
620
|
-
this.sort(nextConfig);
|
|
621
|
-
}
|
|
657
|
+
if (this.wasClickableHeaderClicked(event, coords.col) === false) {
|
|
658
|
+
return;
|
|
659
|
+
}
|
|
660
|
+
const isCtrlPressed = this.hot.getShortcutManager().isCtrlPressed();
|
|
661
|
+
if (isCtrlPressed) {
|
|
662
|
+
this.hot.deselectCell();
|
|
663
|
+
this.hot.selectColumns(coords.col);
|
|
622
664
|
}
|
|
665
|
+
const activeEditor = this.hot.getActiveEditor();
|
|
666
|
+
const awaitsValidation = !!(activeEditor?.isOpened() && this.hot.getCellValidator(activeEditor.row, activeEditor.col));
|
|
667
|
+
_class_private_field_set(this, _pendingHeaderSort, {
|
|
668
|
+
column: coords.col,
|
|
669
|
+
isCtrlPressed,
|
|
670
|
+
// Subscribed on press, not on release: selecting the column closes the editor and its
|
|
671
|
+
// validation runs in a microtask, so it is already over before mouse up. Reading
|
|
672
|
+
// `awaitsValidation` on release is wrong too - by then the new selection has opened an
|
|
673
|
+
// editor on the highlighted cell.
|
|
674
|
+
validation: awaitsValidation ? new Promise((resolve)=>{
|
|
675
|
+
this.hot.addHookOnce('postAfterValidate', ()=>resolve());
|
|
676
|
+
}) : null,
|
|
677
|
+
consumedByMove: false
|
|
678
|
+
});
|
|
679
|
+
}
|
|
680
|
+
/**
|
|
681
|
+
* Applies the sort queued by a header press.
|
|
682
|
+
*
|
|
683
|
+
* Kept separate from the press handler so `MultiColumnSorting` can choose a different sort
|
|
684
|
+
* configuration for the same gesture without repeating the click-versus-drag handling.
|
|
685
|
+
*
|
|
686
|
+
* @private
|
|
687
|
+
* @param {object} press The press that queued this sort.
|
|
688
|
+
*/ applyHeaderClickSort(press) {
|
|
689
|
+
this.sort(this.getColumnNextConfig(press.column));
|
|
623
690
|
}
|
|
624
691
|
/**
|
|
625
692
|
* Destroys the plugin instance.
|
|
626
693
|
*/ destroy() {
|
|
694
|
+
// `BasePlugin.destroy` nulls enumerable own properties, which cannot reach a `#private`
|
|
695
|
+
// field, so drop the queued press here.
|
|
696
|
+
_class_private_field_set(this, _pendingHeaderSort, null);
|
|
627
697
|
// TODO: Probably not supported yet by ESLint: https://github.com/eslint/eslint/issues/11045
|
|
628
698
|
// eslint-disable-next-line no-unused-expressions
|
|
629
699
|
this.columnStatesManager?.destroy();
|
|
630
700
|
super.destroy();
|
|
631
701
|
}
|
|
632
702
|
constructor(...args){
|
|
633
|
-
super(...args), _class_private_field_init(this,
|
|
703
|
+
super(...args), _class_private_method_init(this, _syncIndicatorReserve), _class_private_method_init(this, _isColumnBeingDragged), _class_private_field_init(this, _pendingHeaderSort, {
|
|
704
|
+
writable: true,
|
|
705
|
+
value: void 0
|
|
706
|
+
}), _class_private_field_init(this, _loadOrSortBySettings, {
|
|
634
707
|
writable: true,
|
|
635
708
|
value: void 0
|
|
636
709
|
}), _class_private_field_init(this, _onAfterGetColHeader, {
|
|
@@ -650,6 +723,12 @@ class ColumnSorting extends _base.BasePlugin {
|
|
|
650
723
|
}), _class_private_field_init(this, _onBeforeOnCellMouseDown, {
|
|
651
724
|
writable: true,
|
|
652
725
|
value: void 0
|
|
726
|
+
}), _class_private_field_init(this, _resolvePendingSort, {
|
|
727
|
+
writable: true,
|
|
728
|
+
value: void 0
|
|
729
|
+
}), _class_private_field_init(this, _onAfterColumnMove, {
|
|
730
|
+
writable: true,
|
|
731
|
+
value: void 0
|
|
653
732
|
}), /**
|
|
654
733
|
* Instance of column state manager.
|
|
655
734
|
*
|
|
@@ -660,7 +739,7 @@ class ColumnSorting extends _base.BasePlugin {
|
|
|
660
739
|
*
|
|
661
740
|
* @private
|
|
662
741
|
* @type {null|PhysicalIndexToValueMap}
|
|
663
|
-
*/ this.columnMetaCache = null, /**
|
|
742
|
+
*/ this.columnMetaCache = null, _class_private_field_set(this, _pendingHeaderSort, null), /**
|
|
664
743
|
* Main settings key designed for the plugin.
|
|
665
744
|
*
|
|
666
745
|
* @private
|
|
@@ -683,6 +762,7 @@ class ColumnSorting extends _base.BasePlugin {
|
|
|
683
762
|
const showSortIndicator = pluginSettingsForColumn.indicator;
|
|
684
763
|
const headerActionEnabled = pluginSettingsForColumn.headerAction;
|
|
685
764
|
this.updateHeaderClasses(headerSpanElement, this.columnStatesManager ?? undefined, column, showSortIndicator, headerActionEnabled);
|
|
765
|
+
_class_private_method_get(this, _syncIndicatorReserve, syncIndicatorReserve).call(this, headerSpanElement);
|
|
686
766
|
if (this.hot.getSettings().ariaTags) {
|
|
687
767
|
const currentSortState = this.columnStatesManager?.getSortOrderOfColumn(column);
|
|
688
768
|
(0, _element.setAttribute)(TH, ...(0, _a11y.A11Y_SORT)(currentSortState ? `${currentSortState}ending` : 'none'));
|
|
@@ -697,12 +777,59 @@ class ColumnSorting extends _base.BasePlugin {
|
|
|
697
777
|
}), _class_private_field_set(this, _onAfterDataProviderFetch, (result)=>{
|
|
698
778
|
this.setSortConfig(result?.columnSortConfig ?? []);
|
|
699
779
|
}), _class_private_field_set(this, _onBeforeOnCellMouseDown, (event, coords, TD, controller)=>{
|
|
780
|
+
// Drop any press whose release never arrived - e.g. the window lost focus while the button
|
|
781
|
+
// was held. Without this a stale press would resolve on the next unrelated release and sort
|
|
782
|
+
// a column out of nowhere.
|
|
783
|
+
_class_private_field_set(this, _pendingHeaderSort, null);
|
|
700
784
|
if ((0, _utils.wasHeaderClickedProperly)(coords.row, coords.col, event) === false) {
|
|
701
785
|
return;
|
|
702
786
|
}
|
|
703
787
|
if (this.wasClickableHeaderClicked(event, coords.col) && this.hot.getShortcutManager().isCtrlPressed()) {
|
|
704
788
|
controller.column = true;
|
|
705
789
|
}
|
|
790
|
+
}), _class_private_field_set(this, _resolvePendingSort, ()=>{
|
|
791
|
+
const pending = _class_private_field_get(this, _pendingHeaderSort);
|
|
792
|
+
if (pending === null) {
|
|
793
|
+
return;
|
|
794
|
+
}
|
|
795
|
+
_class_private_field_set(this, _pendingHeaderSort, null);
|
|
796
|
+
// Two signals, because both plugins handle the same `mouseup` and the listener order is not
|
|
797
|
+
// fixed - re-enabling `columnSorting` after `manualColumnMove` appends this plugin's listener
|
|
798
|
+
// last. Running first, the drag is still in progress; running second, the move has already
|
|
799
|
+
// fired. Either one cancels the sort.
|
|
800
|
+
if (pending.consumedByMove || _class_private_method_get(this, _isColumnBeingDragged, isColumnBeingDragged).call(this)) {
|
|
801
|
+
return;
|
|
802
|
+
}
|
|
803
|
+
// A cell that was mid-edit must finish validating before the rows move under it. Waited on
|
|
804
|
+
// here, not in `applyHeaderClickSort`, so subclasses that override that seam still get it.
|
|
805
|
+
if (pending.validation === null) {
|
|
806
|
+
this.applyHeaderClickSort(pending);
|
|
807
|
+
return;
|
|
808
|
+
}
|
|
809
|
+
void pending.validation.then(()=>this.applyHeaderClickSort(pending));
|
|
810
|
+
}), _class_private_field_set(this, _onAfterColumnMove, ()=>{
|
|
811
|
+
if (_class_private_field_get(this, _pendingHeaderSort) !== null) {
|
|
812
|
+
_class_private_field_get(this, _pendingHeaderSort).consumedByMove = true;
|
|
813
|
+
}
|
|
706
814
|
});
|
|
707
815
|
}
|
|
708
816
|
}
|
|
817
|
+
function syncIndicatorReserve(headerSpanElement) {
|
|
818
|
+
const container = headerSpanElement.parentElement;
|
|
819
|
+
if (container === null) {
|
|
820
|
+
return;
|
|
821
|
+
}
|
|
822
|
+
// `sortAction` is required: the CSS that pulls the indicator out of the flex row is keyed on
|
|
823
|
+
// it. With `headerAction: false` the label shows an indicator but keeps its full width, so
|
|
824
|
+
// reserving would just push it inwards.
|
|
825
|
+
const showsIndicator = (0, _element.hasClass)(headerSpanElement, _domHelpers.HEADER_ACTION_CLASS) && ((0, _element.hasClass)(headerSpanElement, _domHelpers.HEADER_CLASS_ASC_SORT) || (0, _element.hasClass)(headerSpanElement, _domHelpers.HEADER_CLASS_DESC_SORT));
|
|
826
|
+
if (showsIndicator) {
|
|
827
|
+
(0, _element.addClass)(container, CONTAINER_WITH_INDICATOR_CLASS);
|
|
828
|
+
} else {
|
|
829
|
+
(0, _element.removeClass)(container, CONTAINER_WITH_INDICATOR_CLASS);
|
|
830
|
+
}
|
|
831
|
+
}
|
|
832
|
+
function isColumnBeingDragged() {
|
|
833
|
+
const manualColumnMove = this.hot.getPlugin('manualColumnMove');
|
|
834
|
+
return manualColumnMove?.isDragging() === true;
|
|
835
|
+
}
|
|
@@ -38,18 +38,27 @@ function _class_private_field_set(receiver, privateMap, value) {
|
|
|
38
38
|
_class_apply_descriptor_set(receiver, descriptor, value);
|
|
39
39
|
return value;
|
|
40
40
|
}
|
|
41
|
+
function _class_private_method_get(receiver, privateSet, fn) {
|
|
42
|
+
if (!privateSet.has(receiver)) {
|
|
43
|
+
throw new TypeError("attempted to get private field on non-instance");
|
|
44
|
+
}
|
|
45
|
+
return fn;
|
|
46
|
+
}
|
|
47
|
+
function _class_private_method_init(obj, privateSet) {
|
|
48
|
+
_check_private_redeclaration(obj, privateSet);
|
|
49
|
+
privateSet.add(obj);
|
|
50
|
+
}
|
|
41
51
|
import { addClass, eventTargetEl, hasClass, isBottomMostColumnHeader, removeClass, setAttribute } from '../../helpers/dom/element.mjs';
|
|
42
52
|
import { isUndefined, isDefined } from '../../helpers/mixed.mjs';
|
|
43
53
|
import { isObject, isPlainObject } from '../../helpers/object.mjs';
|
|
44
54
|
import { isFunction } from '../../helpers/function.mjs';
|
|
45
55
|
import { arrayMap } from '../../helpers/array.mjs';
|
|
46
56
|
import { BasePlugin } from '../base/index.mjs';
|
|
47
|
-
import { IndexesSequence, PhysicalIndexToValueMap as IndexToValueMap } from '../../translations/index.mjs';
|
|
48
57
|
import { Hooks } from '../../core/hooks/index.mjs';
|
|
49
58
|
import { ColumnStatesManager } from './columnStatesManager.mjs';
|
|
50
59
|
import { EDITOR_EDIT_GROUP as SHORTCUTS_GROUP_EDITOR } from '../../shortcuts/contexts/index.mjs';
|
|
51
60
|
import { HEADER_SPAN_CLASS, getNextSortOrder, areValidSortStates, getHeaderSpanElement, isFirstLevelColumnHeader, wasHeaderClickedProperly, warnAboutPluginsConflict } from './utils.mjs';
|
|
52
|
-
import { getClassesToRemove, getClassesToAdd } from './domHelpers.mjs';
|
|
61
|
+
import { HEADER_ACTION_CLASS, HEADER_CLASS_ASC_SORT, HEADER_CLASS_DESC_SORT, getClassesToRemove, getClassesToAdd } from './domHelpers.mjs';
|
|
53
62
|
import { rootComparator } from './rootComparator.mjs';
|
|
54
63
|
import { registerRootComparator, sort } from './sortService/index.mjs';
|
|
55
64
|
import { A11Y_SORT } from '../../helpers/a11y.mjs';
|
|
@@ -58,6 +67,12 @@ export const PLUGIN_PRIORITY = 50;
|
|
|
58
67
|
export const APPEND_COLUMN_CONFIG_STRATEGY = 'append';
|
|
59
68
|
export const REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
|
|
60
69
|
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
|
70
|
+
/**
|
|
71
|
+
* Marks the header container of a column that is showing a sort indicator. The indicator is
|
|
72
|
+
* positioned against that container, so the room it needs is reserved there rather than as padding
|
|
73
|
+
* on the label - padding on the label would enlarge the area that sorts on click, which is exactly
|
|
74
|
+
* what it must not do. A class rather than a `:has()` selector, which is banned in this package.
|
|
75
|
+
*/ const CONTAINER_WITH_INDICATOR_CLASS = 'has-sort-indicator';
|
|
61
76
|
registerRootComparator(PLUGIN_KEY, rootComparator);
|
|
62
77
|
Hooks.getSingleton().register('beforeColumnSort');
|
|
63
78
|
Hooks.getSingleton().register('afterColumnSort');
|
|
@@ -67,6 +82,8 @@ Hooks.getSingleton().register('afterColumnSort');
|
|
|
67
82
|
* the other should remain disabled even if it's set to `true`.
|
|
68
83
|
*/ const pluginConflictsState = new WeakMap();
|
|
69
84
|
var /**
|
|
85
|
+
* Sort queued by a header press, applied on mouse up unless the press became a column drag.
|
|
86
|
+
*/ _pendingHeaderSort = /*#__PURE__*/ new WeakMap(), /**
|
|
70
87
|
* Sort by predefined plugin configuration.
|
|
71
88
|
*/ _loadOrSortBySettings = /*#__PURE__*/ new WeakMap(), /**
|
|
72
89
|
* Callback for the `onAfterGetColHeader` hook. Adds column sorting CSS classes.
|
|
@@ -74,6 +91,15 @@ var /**
|
|
|
74
91
|
* @param {number} column Visual column index.
|
|
75
92
|
* @param {Element} TH TH HTML element.
|
|
76
93
|
*/ _onAfterGetColHeader = /*#__PURE__*/ new WeakMap(), /**
|
|
94
|
+
* Reserves room for the sort indicator on the header container, matching the state the label
|
|
95
|
+
* was just given.
|
|
96
|
+
*
|
|
97
|
+
* Called from the header render paths, not from `updateHeaderClasses`, so it runs after any
|
|
98
|
+
* subclass override has finished adding its classes. `TableView` rebuilds the container's class
|
|
99
|
+
* list on every render, so this has to run per render.
|
|
100
|
+
*
|
|
101
|
+
* @param {HTMLElement} headerSpanElement The header label element.
|
|
102
|
+
*/ _syncIndicatorReserve = /*#__PURE__*/ new WeakSet(), /**
|
|
77
103
|
* Callback for the `afterLoadData` hook.
|
|
78
104
|
*
|
|
79
105
|
* @param {boolean} initialLoad Flag that determines whether the data has been loaded during the initialization.
|
|
@@ -85,7 +111,17 @@ var /**
|
|
|
85
111
|
* @param {HTMLElement} TD The cell element.
|
|
86
112
|
* @param {object} controller An object with properties `row`, `column` and `cell`. Each property contains
|
|
87
113
|
* a boolean value that allows or disallows changing the selection for that particular area.
|
|
88
|
-
*/ _onBeforeOnCellMouseDown = /*#__PURE__*/ new WeakMap()
|
|
114
|
+
*/ _onBeforeOnCellMouseDown = /*#__PURE__*/ new WeakMap(), /**
|
|
115
|
+
* Resolves a header press on release: sorts, unless ManualColumnMove turned the press into a
|
|
116
|
+
* drag.
|
|
117
|
+
*
|
|
118
|
+
* Safe to call more than once for the same gesture - the queued press is taken first, so
|
|
119
|
+
* whichever release signal arrives first wins and the rest are no-ops.
|
|
120
|
+
*/ _resolvePendingSort = /*#__PURE__*/ new WeakMap(), /**
|
|
121
|
+
* Marks a queued press as spent once ManualColumnMove has moved the column.
|
|
122
|
+
*/ _onAfterColumnMove = /*#__PURE__*/ new WeakMap(), /**
|
|
123
|
+
* Whether ManualColumnMove is mid-drag. False when that plugin is absent or disabled.
|
|
124
|
+
*/ _isColumnBeingDragged = /*#__PURE__*/ new WeakSet();
|
|
89
125
|
// DIFF - MultiColumnSorting & ColumnSorting: changed configuration documentation.
|
|
90
126
|
/**
|
|
91
127
|
* @plugin ColumnSorting
|
|
@@ -121,7 +157,7 @@ var /**
|
|
|
121
157
|
* }
|
|
122
158
|
*
|
|
123
159
|
* // as an object passed to the `column` property, allows specifying a custom options for the desired column.
|
|
124
|
-
* //
|
|
160
|
+
* // see the `columns` option documentation: @/api/options.md#columns
|
|
125
161
|
* columns: [{
|
|
126
162
|
* columnSorting: {
|
|
127
163
|
* indicator: false, // disable indicator for the first column,
|
|
@@ -169,17 +205,24 @@ var /**
|
|
|
169
205
|
}
|
|
170
206
|
pluginConflictsState.set(this.hot, this.pluginKey);
|
|
171
207
|
this.columnStatesManager = new ColumnStatesManager(this.hot, `${this.pluginKey}.sortingStates`);
|
|
172
|
-
this.columnMetaCache =
|
|
208
|
+
this.columnMetaCache = this.hot.columnIndexMapper.createAndRegisterIndexMap(`${this.pluginKey}.columnMeta`, 'physicalIndexToValue', (physicalIndex)=>{
|
|
173
209
|
let visualIndex = this.hot.toVisualColumn(physicalIndex);
|
|
174
210
|
if (visualIndex === null) {
|
|
175
211
|
visualIndex = physicalIndex;
|
|
176
212
|
}
|
|
177
213
|
return this.getMergedPluginSettings(visualIndex);
|
|
178
214
|
});
|
|
179
|
-
this.hot.columnIndexMapper.registerMap(`${this.pluginKey}.columnMeta`, this.columnMetaCache);
|
|
180
215
|
this.addHook('afterGetColHeader', _class_private_field_get(this, _onAfterGetColHeader));
|
|
181
216
|
this.addHook('beforeOnCellMouseDown', _class_private_field_get(this, _onBeforeOnCellMouseDown));
|
|
182
217
|
this.addHook('afterOnCellMouseDown', (event, target)=>this.onAfterOnCellMouseDown(event, target));
|
|
218
|
+
// Primary release signal. On touch devices Walkontable calls its `onMouseUp` directly from
|
|
219
|
+
// `touchend` instead of dispatching a DOM `mouseup`, so a document listener alone would never
|
|
220
|
+
// fire and tapping a header would stop sorting.
|
|
221
|
+
this.addHook('afterOnCellMouseUp', _class_private_field_get(this, _resolvePendingSort));
|
|
222
|
+
// Fallback for a release that lands outside any cell - that is the drag case, and the queued
|
|
223
|
+
// sort still has to be cleared rather than left pending for the next release.
|
|
224
|
+
this.eventManager.addEventListener(this.hot.rootDocument.documentElement, 'mouseup', ()=>_class_private_field_get(this, _resolvePendingSort).call(this));
|
|
225
|
+
this.addHook('afterColumnMove', _class_private_field_get(this, _onAfterColumnMove));
|
|
183
226
|
this.addHook('afterInit', _class_private_field_get(this, _loadOrSortBySettings));
|
|
184
227
|
this.addHook('afterLoadData', _class_private_field_get(this, _onAfterLoadData));
|
|
185
228
|
this.addHook('afterDataProviderFetch', _class_private_field_get(this, _onAfterDataProviderFetch), -1);
|
|
@@ -199,6 +242,7 @@ var /**
|
|
|
199
242
|
return;
|
|
200
243
|
}
|
|
201
244
|
this.updateHeaderClasses(headerSpanElement);
|
|
245
|
+
_class_private_method_get(this, _syncIndicatorReserve, syncIndicatorReserve).call(this, headerSpanElement);
|
|
202
246
|
};
|
|
203
247
|
pluginConflictsState.delete(this.hot);
|
|
204
248
|
// Changing header width and removing indicator.
|
|
@@ -217,6 +261,7 @@ var /**
|
|
|
217
261
|
this.columnStatesManager?.destroy();
|
|
218
262
|
this.columnMetaCache = null;
|
|
219
263
|
this.columnStatesManager = null;
|
|
264
|
+
_class_private_field_set(this, _pendingHeaderSort, null);
|
|
220
265
|
this.unregisterShortcuts();
|
|
221
266
|
super.disablePlugin();
|
|
222
267
|
}
|
|
@@ -285,7 +330,7 @@ var /**
|
|
|
285
330
|
return;
|
|
286
331
|
}
|
|
287
332
|
if (currentSortConfig.length === 0 && this.indexesSequenceCache === null) {
|
|
288
|
-
this.indexesSequenceCache = this.hot.rowIndexMapper.
|
|
333
|
+
this.indexesSequenceCache = this.hot.rowIndexMapper.createAndRegisterIndexMap(this.pluginKey, 'indexesSequence');
|
|
289
334
|
this.indexesSequenceCache.setValues(this.hot.rowIndexMapper.getIndexesSequence());
|
|
290
335
|
}
|
|
291
336
|
if (sortPossible) {
|
|
@@ -474,7 +519,7 @@ var /**
|
|
|
474
519
|
*/ getMergedPluginSettings(column) {
|
|
475
520
|
const pluginMainSettings = this.hot.getSettings()[this.pluginKey];
|
|
476
521
|
const storedColumnProperties = this.columnStatesManager?.getAllColumnsProperties() ?? {};
|
|
477
|
-
const cellMeta = this.hot.
|
|
522
|
+
const cellMeta = this.hot.getCellMetaTransient(0, column);
|
|
478
523
|
const columnMeta = Object.getPrototypeOf(cellMeta);
|
|
479
524
|
if (Array.isArray(columnMeta.columns)) {
|
|
480
525
|
return Object.assign(storedColumnProperties, pluginMainSettings, this.getPluginColumnConfig(columnMeta.columns[column]));
|
|
@@ -493,7 +538,7 @@ var /**
|
|
|
493
538
|
*/ // TODO: Workaround. Inheriting of non-primitive cell meta values doesn't work. Instead of getting properties from column meta we call this function.
|
|
494
539
|
// TODO: Remove test named: "should not break the dataset when inserted new row" (#5431).
|
|
495
540
|
getFirstCellSettings(column) {
|
|
496
|
-
const cellMeta = this.hot.
|
|
541
|
+
const cellMeta = this.hot.getCellMetaTransient(0, column);
|
|
497
542
|
const cellMetaCopy = Object.create(cellMeta);
|
|
498
543
|
cellMetaCopy[this.pluginKey] = this.columnMetaCache?.getValueAtIndex(this.hot.toPhysicalColumn(column));
|
|
499
544
|
return cellMetaCopy;
|
|
@@ -619,6 +664,11 @@ var /**
|
|
|
619
664
|
/**
|
|
620
665
|
* Callback for the `onAfterOnCellMouseDown` hook.
|
|
621
666
|
*
|
|
667
|
+
* Queues the sort rather than running it. The header is also the surface ManualColumnMove
|
|
668
|
+
* drags a column by, so which action the user meant is only known once the button is
|
|
669
|
+
* released: a press that stays put is a click to sort, a press that travels is a drag.
|
|
670
|
+
* Selection changes stay here so the header still reacts the moment it is pressed.
|
|
671
|
+
*
|
|
622
672
|
* @private
|
|
623
673
|
* @param {Event} event Event which are provided by hook.
|
|
624
674
|
* @param {CellCoords} coords Visual coords of the selected cell.
|
|
@@ -626,33 +676,56 @@ var /**
|
|
|
626
676
|
if (wasHeaderClickedProperly(coords.row, coords.col, event) === false) {
|
|
627
677
|
return;
|
|
628
678
|
}
|
|
629
|
-
if (this.wasClickableHeaderClicked(event, coords.col)) {
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
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
|
-
}
|
|
679
|
+
if (this.wasClickableHeaderClicked(event, coords.col) === false) {
|
|
680
|
+
return;
|
|
681
|
+
}
|
|
682
|
+
const isCtrlPressed = this.hot.getShortcutManager().isCtrlPressed();
|
|
683
|
+
if (isCtrlPressed) {
|
|
684
|
+
this.hot.deselectCell();
|
|
685
|
+
this.hot.selectColumns(coords.col);
|
|
644
686
|
}
|
|
687
|
+
const activeEditor = this.hot.getActiveEditor();
|
|
688
|
+
const awaitsValidation = !!(activeEditor?.isOpened() && this.hot.getCellValidator(activeEditor.row, activeEditor.col));
|
|
689
|
+
_class_private_field_set(this, _pendingHeaderSort, {
|
|
690
|
+
column: coords.col,
|
|
691
|
+
isCtrlPressed,
|
|
692
|
+
// Subscribed on press, not on release: selecting the column closes the editor and its
|
|
693
|
+
// validation runs in a microtask, so it is already over before mouse up. Reading
|
|
694
|
+
// `awaitsValidation` on release is wrong too - by then the new selection has opened an
|
|
695
|
+
// editor on the highlighted cell.
|
|
696
|
+
validation: awaitsValidation ? new Promise((resolve)=>{
|
|
697
|
+
this.hot.addHookOnce('postAfterValidate', ()=>resolve());
|
|
698
|
+
}) : null,
|
|
699
|
+
consumedByMove: false
|
|
700
|
+
});
|
|
701
|
+
}
|
|
702
|
+
/**
|
|
703
|
+
* Applies the sort queued by a header press.
|
|
704
|
+
*
|
|
705
|
+
* Kept separate from the press handler so `MultiColumnSorting` can choose a different sort
|
|
706
|
+
* configuration for the same gesture without repeating the click-versus-drag handling.
|
|
707
|
+
*
|
|
708
|
+
* @private
|
|
709
|
+
* @param {object} press The press that queued this sort.
|
|
710
|
+
*/ applyHeaderClickSort(press) {
|
|
711
|
+
this.sort(this.getColumnNextConfig(press.column));
|
|
645
712
|
}
|
|
646
713
|
/**
|
|
647
714
|
* Destroys the plugin instance.
|
|
648
715
|
*/ destroy() {
|
|
716
|
+
// `BasePlugin.destroy` nulls enumerable own properties, which cannot reach a `#private`
|
|
717
|
+
// field, so drop the queued press here.
|
|
718
|
+
_class_private_field_set(this, _pendingHeaderSort, null);
|
|
649
719
|
// TODO: Probably not supported yet by ESLint: https://github.com/eslint/eslint/issues/11045
|
|
650
720
|
// eslint-disable-next-line no-unused-expressions
|
|
651
721
|
this.columnStatesManager?.destroy();
|
|
652
722
|
super.destroy();
|
|
653
723
|
}
|
|
654
724
|
constructor(...args){
|
|
655
|
-
super(...args), _class_private_field_init(this,
|
|
725
|
+
super(...args), _class_private_method_init(this, _syncIndicatorReserve), _class_private_method_init(this, _isColumnBeingDragged), _class_private_field_init(this, _pendingHeaderSort, {
|
|
726
|
+
writable: true,
|
|
727
|
+
value: void 0
|
|
728
|
+
}), _class_private_field_init(this, _loadOrSortBySettings, {
|
|
656
729
|
writable: true,
|
|
657
730
|
value: void 0
|
|
658
731
|
}), _class_private_field_init(this, _onAfterGetColHeader, {
|
|
@@ -672,6 +745,12 @@ var /**
|
|
|
672
745
|
}), _class_private_field_init(this, _onBeforeOnCellMouseDown, {
|
|
673
746
|
writable: true,
|
|
674
747
|
value: void 0
|
|
748
|
+
}), _class_private_field_init(this, _resolvePendingSort, {
|
|
749
|
+
writable: true,
|
|
750
|
+
value: void 0
|
|
751
|
+
}), _class_private_field_init(this, _onAfterColumnMove, {
|
|
752
|
+
writable: true,
|
|
753
|
+
value: void 0
|
|
675
754
|
}), /**
|
|
676
755
|
* Instance of column state manager.
|
|
677
756
|
*
|
|
@@ -682,7 +761,7 @@ var /**
|
|
|
682
761
|
*
|
|
683
762
|
* @private
|
|
684
763
|
* @type {null|PhysicalIndexToValueMap}
|
|
685
|
-
*/ this.columnMetaCache = null, /**
|
|
764
|
+
*/ this.columnMetaCache = null, _class_private_field_set(this, _pendingHeaderSort, null), /**
|
|
686
765
|
* Main settings key designed for the plugin.
|
|
687
766
|
*
|
|
688
767
|
* @private
|
|
@@ -705,6 +784,7 @@ var /**
|
|
|
705
784
|
const showSortIndicator = pluginSettingsForColumn.indicator;
|
|
706
785
|
const headerActionEnabled = pluginSettingsForColumn.headerAction;
|
|
707
786
|
this.updateHeaderClasses(headerSpanElement, this.columnStatesManager ?? undefined, column, showSortIndicator, headerActionEnabled);
|
|
787
|
+
_class_private_method_get(this, _syncIndicatorReserve, syncIndicatorReserve).call(this, headerSpanElement);
|
|
708
788
|
if (this.hot.getSettings().ariaTags) {
|
|
709
789
|
const currentSortState = this.columnStatesManager?.getSortOrderOfColumn(column);
|
|
710
790
|
setAttribute(TH, ...A11Y_SORT(currentSortState ? `${currentSortState}ending` : 'none'));
|
|
@@ -719,12 +799,59 @@ var /**
|
|
|
719
799
|
}), _class_private_field_set(this, _onAfterDataProviderFetch, (result)=>{
|
|
720
800
|
this.setSortConfig(result?.columnSortConfig ?? []);
|
|
721
801
|
}), _class_private_field_set(this, _onBeforeOnCellMouseDown, (event, coords, TD, controller)=>{
|
|
802
|
+
// Drop any press whose release never arrived - e.g. the window lost focus while the button
|
|
803
|
+
// was held. Without this a stale press would resolve on the next unrelated release and sort
|
|
804
|
+
// a column out of nowhere.
|
|
805
|
+
_class_private_field_set(this, _pendingHeaderSort, null);
|
|
722
806
|
if (wasHeaderClickedProperly(coords.row, coords.col, event) === false) {
|
|
723
807
|
return;
|
|
724
808
|
}
|
|
725
809
|
if (this.wasClickableHeaderClicked(event, coords.col) && this.hot.getShortcutManager().isCtrlPressed()) {
|
|
726
810
|
controller.column = true;
|
|
727
811
|
}
|
|
812
|
+
}), _class_private_field_set(this, _resolvePendingSort, ()=>{
|
|
813
|
+
const pending = _class_private_field_get(this, _pendingHeaderSort);
|
|
814
|
+
if (pending === null) {
|
|
815
|
+
return;
|
|
816
|
+
}
|
|
817
|
+
_class_private_field_set(this, _pendingHeaderSort, null);
|
|
818
|
+
// Two signals, because both plugins handle the same `mouseup` and the listener order is not
|
|
819
|
+
// fixed - re-enabling `columnSorting` after `manualColumnMove` appends this plugin's listener
|
|
820
|
+
// last. Running first, the drag is still in progress; running second, the move has already
|
|
821
|
+
// fired. Either one cancels the sort.
|
|
822
|
+
if (pending.consumedByMove || _class_private_method_get(this, _isColumnBeingDragged, isColumnBeingDragged).call(this)) {
|
|
823
|
+
return;
|
|
824
|
+
}
|
|
825
|
+
// A cell that was mid-edit must finish validating before the rows move under it. Waited on
|
|
826
|
+
// here, not in `applyHeaderClickSort`, so subclasses that override that seam still get it.
|
|
827
|
+
if (pending.validation === null) {
|
|
828
|
+
this.applyHeaderClickSort(pending);
|
|
829
|
+
return;
|
|
830
|
+
}
|
|
831
|
+
void pending.validation.then(()=>this.applyHeaderClickSort(pending));
|
|
832
|
+
}), _class_private_field_set(this, _onAfterColumnMove, ()=>{
|
|
833
|
+
if (_class_private_field_get(this, _pendingHeaderSort) !== null) {
|
|
834
|
+
_class_private_field_get(this, _pendingHeaderSort).consumedByMove = true;
|
|
835
|
+
}
|
|
728
836
|
});
|
|
729
837
|
}
|
|
730
838
|
}
|
|
839
|
+
function syncIndicatorReserve(headerSpanElement) {
|
|
840
|
+
const container = headerSpanElement.parentElement;
|
|
841
|
+
if (container === null) {
|
|
842
|
+
return;
|
|
843
|
+
}
|
|
844
|
+
// `sortAction` is required: the CSS that pulls the indicator out of the flex row is keyed on
|
|
845
|
+
// it. With `headerAction: false` the label shows an indicator but keeps its full width, so
|
|
846
|
+
// reserving would just push it inwards.
|
|
847
|
+
const showsIndicator = hasClass(headerSpanElement, HEADER_ACTION_CLASS) && (hasClass(headerSpanElement, HEADER_CLASS_ASC_SORT) || hasClass(headerSpanElement, HEADER_CLASS_DESC_SORT));
|
|
848
|
+
if (showsIndicator) {
|
|
849
|
+
addClass(container, CONTAINER_WITH_INDICATOR_CLASS);
|
|
850
|
+
} else {
|
|
851
|
+
removeClass(container, CONTAINER_WITH_INDICATOR_CLASS);
|
|
852
|
+
}
|
|
853
|
+
}
|
|
854
|
+
function isColumnBeingDragged() {
|
|
855
|
+
const manualColumnMove = this.hot.getPlugin('manualColumnMove');
|
|
856
|
+
return manualColumnMove?.isDragging() === true;
|
|
857
|
+
}
|
|
@@ -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
|
*
|