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
|
@@ -101,11 +101,77 @@ var /**
|
|
|
101
101
|
*
|
|
102
102
|
* @type {number}
|
|
103
103
|
*/ _tableBorderWidth = /*#__PURE__*/ new WeakMap(), /**
|
|
104
|
+
* Provides the current anchor rectangle for scroll-follow repositioning, or `null`
|
|
105
|
+
* when the anchor is no longer rendered. Set through `setPosition()`.
|
|
106
|
+
*
|
|
107
|
+
* @type {Function|null}
|
|
108
|
+
*/ _anchorRectProvider = /*#__PURE__*/ new WeakMap(), /**
|
|
109
|
+
* Position baseline captured when the menu is positioned: the offset between the
|
|
110
|
+
* menu's document coordinates and its anchor (or the grid root when no anchor
|
|
111
|
+
* provider is available). Used to keep the menu attached while outside elements scroll.
|
|
112
|
+
*
|
|
113
|
+
* @type {object|null}
|
|
114
|
+
*/ _scrollFollowBaseline = /*#__PURE__*/ new WeakMap(), /**
|
|
115
|
+
* When `true`, `afterOnCellMouseOver` ignores the hover instead of opening/closing a
|
|
116
|
+
* sub-menu. Armed for a couple of animation frames right after `#followAnchor` moves
|
|
117
|
+
* the menu: repositioning a menu item out from under a stationary mouse cursor makes
|
|
118
|
+
* the browser recompute `:hover` and fire `mouseout`/`mouseover` on the next frame(s)
|
|
119
|
+
* with NO real pointer movement involved — left unguarded, that spurious hover would
|
|
120
|
+
* toggle sub-menus as if the user had moved the mouse (#12719).
|
|
121
|
+
*
|
|
122
|
+
* @type {boolean}
|
|
123
|
+
*/ _suppressHoverSubMenuToggle = /*#__PURE__*/ new WeakMap(), /**
|
|
124
|
+
* The identifier of the latest pending animation frame request that lifts
|
|
125
|
+
* `#suppressHoverSubMenuToggle`, so a new repositioning can cancel and re-arm the
|
|
126
|
+
* window instead of having it cut short by an earlier one (continuous scrolling
|
|
127
|
+
* repositions the menu on every scroll event).
|
|
128
|
+
*
|
|
129
|
+
* @type {number|null}
|
|
130
|
+
*/ _suppressHoverSubMenuToggleFrameId = /*#__PURE__*/ new WeakMap(), /**
|
|
131
|
+
* Detach functions for the document `scroll` listeners active while the menu is open.
|
|
132
|
+
* Scroll listeners are registered in `open()` (not in the constructor) so that they
|
|
133
|
+
* fire in menu OPEN order: a menu whose anchor lives inside another menu's container
|
|
134
|
+
* (a sub-menu, or the filters condition select menu inside the dropdown menu) always
|
|
135
|
+
* opens after that menu, so its `#followAnchor` runs after the anchor has been moved.
|
|
136
|
+
* Construction order gives no such guarantee — e.g. `updateSettings` recreates the
|
|
137
|
+
* dropdown menu while the condition select menu is long-lived (#13168).
|
|
138
|
+
*
|
|
139
|
+
* @type {Function[]}
|
|
140
|
+
*/ _detachScrollListeners = /*#__PURE__*/ new WeakMap(), /**
|
|
141
|
+
* Registers the document `scroll` listeners (capture phase, all parent frames) that
|
|
142
|
+
* keep the menu attached to its anchor. Called from `open()` — see
|
|
143
|
+
* `#detachScrollListeners` for why the registration is open-scoped.
|
|
144
|
+
*/ _registerScrollListeners = /*#__PURE__*/ new WeakSet(), /**
|
|
145
|
+
* Removes the document `scroll` listeners registered by `#registerScrollListeners()`.
|
|
146
|
+
*/ _clearScrollListeners = /*#__PURE__*/ new WeakSet(), /**
|
|
104
147
|
* Returns the source data at the provided row index typed as `T`.
|
|
105
148
|
*
|
|
106
149
|
* @param {number} row Row index.
|
|
107
150
|
* @returns {T | null} The source data entry or `null` when the row is not available.
|
|
108
|
-
*/ _getSourceDataAtRow = /*#__PURE__*/ new WeakSet()
|
|
151
|
+
*/ _getSourceDataAtRow = /*#__PURE__*/ new WeakSet(), /**
|
|
152
|
+
* Captures the offset between the menu's measured document position and its anchor's
|
|
153
|
+
* (or the grid root element's, when no anchor provider is set). Both sides are
|
|
154
|
+
* MEASURED rects — never `style.left/top`, which are not document coordinates when
|
|
155
|
+
* the menu lives in a custom `uiContainer` with its own containing block. The offset
|
|
156
|
+
* stays constant while outside elements scroll; repositioning restores it.
|
|
157
|
+
*/ _captureScrollFollowBaseline = /*#__PURE__*/ new WeakSet(), /**
|
|
158
|
+
* Repositions the menu to restore its captured offset to the anchor. The correction
|
|
159
|
+
* is computed from MEASURED rects (desired document position minus actual document
|
|
160
|
+
* position) and applied as an increment to the current inline `left`/`top` styles,
|
|
161
|
+
* which keeps the math correct in any containing block (default body portal or a
|
|
162
|
+
* custom `uiContainer`) and makes scrolls the menu already follows natively a no-op.
|
|
163
|
+
* Closes the menu when the anchor provider reports the anchor as no longer rendered,
|
|
164
|
+
* or — when no provider is available — when the scroll happened inside the grid root
|
|
165
|
+
* element (an anchor-less menu cannot track content movement within the grid).
|
|
166
|
+
*
|
|
167
|
+
* @param {HTMLElement} scrolledElement The element whose scroll triggered the update.
|
|
168
|
+
*/ _followAnchor = /*#__PURE__*/ new WeakSet(), /**
|
|
169
|
+
* Arms `#suppressHoverSubMenuToggle` for two animation frames. The browser recomputes
|
|
170
|
+
* `:hover` (and dispatches the resulting `mouseout`/`mouseover`) on a frame AFTER the
|
|
171
|
+
* layout-affecting style change that just moved menu content out from under the
|
|
172
|
+
* pointer, not synchronously with it — one frame is not reliably enough to outlast it.
|
|
173
|
+
* Re-arming cancels a still-pending lift so continuous scrolling keeps the window open.
|
|
174
|
+
*/ _armHoverSuppression = /*#__PURE__*/ new WeakSet();
|
|
109
175
|
class Menu {
|
|
110
176
|
/**
|
|
111
177
|
* Getter for the table border width.
|
|
@@ -213,6 +279,10 @@ class Menu {
|
|
|
213
279
|
} else if (filteredItems.length === 0) {
|
|
214
280
|
return;
|
|
215
281
|
}
|
|
282
|
+
// Registered per-open (and after the empty-items early return, which would leak
|
|
283
|
+
// them) so that scroll listeners fire in menu open order — a menu anchored inside
|
|
284
|
+
// another menu then always repositions AFTER its anchor was moved.
|
|
285
|
+
_class_private_method_get(this, _registerScrollListeners, registerScrollListeners).call(this);
|
|
216
286
|
filteredItems = (0, _utils.filterSeparators)(filteredItems);
|
|
217
287
|
let shouldAutoCloseMenu = false;
|
|
218
288
|
const settings = {
|
|
@@ -251,9 +321,23 @@ class Menu {
|
|
|
251
321
|
},
|
|
252
322
|
beforeRefreshDimensions: ()=>false,
|
|
253
323
|
beforeOnCellMouseOver: (event, coords)=>{
|
|
324
|
+
// See the matching guard in `afterOnCellMouseOver` below — keeps the keyboard
|
|
325
|
+
// (PageUp/PageDown) page-cursor base row from silently drifting to whatever row
|
|
326
|
+
// the spurious hover lands on.
|
|
327
|
+
if (_class_private_field_get(this, _suppressHoverSubMenuToggle)) {
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
254
330
|
_class_private_field_get(this, _navigator1).setPageCursorAt(coords.row);
|
|
255
331
|
},
|
|
256
332
|
afterOnCellMouseOver: (event, coords)=>{
|
|
333
|
+
// Dropped, not deferred: a genuine hover that lands on a new row while this
|
|
334
|
+
// window is armed gets no submenu toggle at all — the user has to cross another
|
|
335
|
+
// row boundary (a fresh `mouseover`) for the hover to register. Rare in practice
|
|
336
|
+
// (the window is 2 frames) and preferable to replaying a possibly-stale coords.row
|
|
337
|
+
// once the window closes.
|
|
338
|
+
if (_class_private_field_get(this, _suppressHoverSubMenuToggle)) {
|
|
339
|
+
return;
|
|
340
|
+
}
|
|
257
341
|
if (this.isAllSubMenusClosed()) {
|
|
258
342
|
delayedOpenSubMenu(coords.row);
|
|
259
343
|
} else {
|
|
@@ -336,6 +420,14 @@ class Menu {
|
|
|
336
420
|
this.container.style.display = 'none';
|
|
337
421
|
this.hotMenu.destroy();
|
|
338
422
|
this.hotMenu = null;
|
|
423
|
+
_class_private_field_set(this, _anchorRectProvider, null);
|
|
424
|
+
_class_private_field_set(this, _scrollFollowBaseline, null);
|
|
425
|
+
_class_private_method_get(this, _clearScrollListeners, clearScrollListeners).call(this);
|
|
426
|
+
if (_class_private_field_get(this, _suppressHoverSubMenuToggleFrameId) !== null) {
|
|
427
|
+
this.hot.rootWindow.cancelAnimationFrame(_class_private_field_get(this, _suppressHoverSubMenuToggleFrameId));
|
|
428
|
+
_class_private_field_set(this, _suppressHoverSubMenuToggleFrameId, null);
|
|
429
|
+
}
|
|
430
|
+
_class_private_field_set(this, _suppressHoverSubMenuToggle, false);
|
|
339
431
|
this.hot.getSettings().outsideClickDeselects = this.origOutsideClickDeselects;
|
|
340
432
|
this.runLocalHooks('afterClose');
|
|
341
433
|
if (this.isSubMenu()) {
|
|
@@ -378,7 +470,7 @@ class Menu {
|
|
|
378
470
|
});
|
|
379
471
|
subMenu.setMenuItems(dataItem.submenu.items);
|
|
380
472
|
subMenu.open();
|
|
381
|
-
subMenu.setPosition(cell.getBoundingClientRect());
|
|
473
|
+
subMenu.setPosition(cell.getBoundingClientRect(), ()=>cell.isConnected ? cell.getBoundingClientRect() : null);
|
|
382
474
|
this.hotSubMenus[dataItem.key] = subMenu;
|
|
383
475
|
// Update the accessibility tags on the cell being the base for the submenu.
|
|
384
476
|
if (this.hot.getSettings().ariaTags) {
|
|
@@ -496,11 +588,15 @@ class Menu {
|
|
|
496
588
|
* Set menu position based on dom event or based on literal object.
|
|
497
589
|
*
|
|
498
590
|
* @param {Event|object} coords Event or literal Object with coordinates.
|
|
499
|
-
|
|
591
|
+
* @param {Function} [anchorRectProvider] Returns the current anchor rectangle for
|
|
592
|
+
* scroll-follow repositioning, or `null` when the anchor is no longer rendered.
|
|
593
|
+
*/ setPosition(coords, anchorRectProvider) {
|
|
500
594
|
if (this.isSubMenu()) {
|
|
501
595
|
this.positioner.setParentElement(this.parentMenu.container);
|
|
502
596
|
}
|
|
503
597
|
this.positioner.setElement(this.container).updatePosition(coords);
|
|
598
|
+
_class_private_field_set(this, _anchorRectProvider, anchorRectProvider ?? null);
|
|
599
|
+
_class_private_method_get(this, _captureScrollFollowBaseline, captureScrollFollowBaseline).call(this);
|
|
504
600
|
}
|
|
505
601
|
/**
|
|
506
602
|
* Updates the dimensions of the menu based on its content.
|
|
@@ -580,6 +676,27 @@ class Menu {
|
|
|
580
676
|
}
|
|
581
677
|
}
|
|
582
678
|
/**
|
|
679
|
+
* Document's scroll listener (capture phase). When an element outside of the menu
|
|
680
|
+
* is scrolled, repositions the menu so it stays visually attached to its anchor
|
|
681
|
+
* (column header, cell, or parent menu item) — the menu is rendered in a portal
|
|
682
|
+
* positioned in document coordinates, so it would otherwise stay stranded (#12719).
|
|
683
|
+
* Closes the menu when the anchor is scrolled out of the rendered viewport.
|
|
684
|
+
* Ignored: page/document scroll (document coordinates already track it), scrolls
|
|
685
|
+
* within the menu, and scrolls of elements that contain the menu (custom
|
|
686
|
+
* `uiContainer` — the menu moves natively with its container).
|
|
687
|
+
*
|
|
688
|
+
* @private
|
|
689
|
+
* @param {Event} event The scroll event object.
|
|
690
|
+
*/ onDocumentScroll(event) {
|
|
691
|
+
if (!this.isOpened() || _class_private_field_get(this, _scrollFollowBaseline) === null) {
|
|
692
|
+
return;
|
|
693
|
+
}
|
|
694
|
+
if (!(0, _element.isHTMLElement)(event.target) || (0, _element.isChildOf)(event.target, '.htMenu')) {
|
|
695
|
+
return;
|
|
696
|
+
}
|
|
697
|
+
_class_private_method_get(this, _followAnchor, followAnchor).call(this, event.target);
|
|
698
|
+
}
|
|
699
|
+
/**
|
|
583
700
|
* Document's contextmenu listener.
|
|
584
701
|
*
|
|
585
702
|
* @private
|
|
@@ -596,7 +713,12 @@ class Menu {
|
|
|
596
713
|
* @param {Core} hotInstance Handsontable instance.
|
|
597
714
|
* @param {MenuOptions} [options] Menu options.
|
|
598
715
|
*/ constructor(hotInstance, options){
|
|
716
|
+
_class_private_method_init(this, _registerScrollListeners);
|
|
717
|
+
_class_private_method_init(this, _clearScrollListeners);
|
|
599
718
|
_class_private_method_init(this, _getSourceDataAtRow);
|
|
719
|
+
_class_private_method_init(this, _captureScrollFollowBaseline);
|
|
720
|
+
_class_private_method_init(this, _followAnchor);
|
|
721
|
+
_class_private_method_init(this, _armHoverSuppression);
|
|
600
722
|
_class_private_field_init(this, _navigator1, {
|
|
601
723
|
writable: true,
|
|
602
724
|
value: void 0
|
|
@@ -609,6 +731,26 @@ class Menu {
|
|
|
609
731
|
writable: true,
|
|
610
732
|
value: void 0
|
|
611
733
|
});
|
|
734
|
+
_class_private_field_init(this, _anchorRectProvider, {
|
|
735
|
+
writable: true,
|
|
736
|
+
value: void 0
|
|
737
|
+
});
|
|
738
|
+
_class_private_field_init(this, _scrollFollowBaseline, {
|
|
739
|
+
writable: true,
|
|
740
|
+
value: void 0
|
|
741
|
+
});
|
|
742
|
+
_class_private_field_init(this, _suppressHoverSubMenuToggle, {
|
|
743
|
+
writable: true,
|
|
744
|
+
value: void 0
|
|
745
|
+
});
|
|
746
|
+
_class_private_field_init(this, _suppressHoverSubMenuToggleFrameId, {
|
|
747
|
+
writable: true,
|
|
748
|
+
value: void 0
|
|
749
|
+
});
|
|
750
|
+
_class_private_field_init(this, _detachScrollListeners, {
|
|
751
|
+
writable: true,
|
|
752
|
+
value: void 0
|
|
753
|
+
});
|
|
612
754
|
/**
|
|
613
755
|
* The instance of the Handsontable that is used as a menu.
|
|
614
756
|
*
|
|
@@ -629,6 +771,11 @@ class Menu {
|
|
|
629
771
|
*/ this.origOutsideClickDeselects = undefined;
|
|
630
772
|
_class_private_field_set(this, _navigator1, null);
|
|
631
773
|
_class_private_field_set(this, _shortcutsCtrl, null);
|
|
774
|
+
_class_private_field_set(this, _anchorRectProvider, null);
|
|
775
|
+
_class_private_field_set(this, _scrollFollowBaseline, null);
|
|
776
|
+
_class_private_field_set(this, _suppressHoverSubMenuToggle, false);
|
|
777
|
+
_class_private_field_set(this, _suppressHoverSubMenuToggleFrameId, null);
|
|
778
|
+
_class_private_field_set(this, _detachScrollListeners, []);
|
|
632
779
|
this.hot = hotInstance;
|
|
633
780
|
this.options = {
|
|
634
781
|
parent: null,
|
|
@@ -660,8 +807,69 @@ class Menu {
|
|
|
660
807
|
});
|
|
661
808
|
}
|
|
662
809
|
}
|
|
810
|
+
function registerScrollListeners() {
|
|
811
|
+
_class_private_method_get(this, _clearScrollListeners, clearScrollListeners).call(this);
|
|
812
|
+
let frame = this.hot.rootWindow;
|
|
813
|
+
while(frame){
|
|
814
|
+
_class_private_field_get(this, _detachScrollListeners).push(this.eventManager.addEventListener(frame.document, 'scroll', (event)=>this.onDocumentScroll(event), {
|
|
815
|
+
capture: true,
|
|
816
|
+
passive: true
|
|
817
|
+
}));
|
|
818
|
+
frame = (0, _element.getParentWindow)(frame);
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
function clearScrollListeners() {
|
|
822
|
+
_class_private_field_get(this, _detachScrollListeners).forEach((detach)=>detach());
|
|
823
|
+
_class_private_field_get(this, _detachScrollListeners).length = 0;
|
|
824
|
+
}
|
|
663
825
|
function getSourceDataAtRow(row) {
|
|
664
826
|
const data = this.hotMenu?.getSourceDataAtRow(row);
|
|
665
827
|
return data ? data : null;
|
|
666
828
|
}
|
|
829
|
+
function captureScrollFollowBaseline() {
|
|
830
|
+
var _this, _this1, _ref;
|
|
831
|
+
const menuRect = this.container.getBoundingClientRect();
|
|
832
|
+
const anchorRect = ((_this = _class_private_field_get(_ref = _this1 = this, _anchorRectProvider)) === null || _this === void 0 ? void 0 : _this.call(_this1)) ?? this.hot.rootElement.getBoundingClientRect();
|
|
833
|
+
_class_private_field_set(this, _scrollFollowBaseline, {
|
|
834
|
+
offsetLeft: menuRect.left - anchorRect.left,
|
|
835
|
+
offsetTop: menuRect.top - anchorRect.top
|
|
836
|
+
});
|
|
837
|
+
}
|
|
838
|
+
function followAnchor(scrolledElement) {
|
|
839
|
+
let anchorRect;
|
|
840
|
+
if (_class_private_field_get(this, _anchorRectProvider)) {
|
|
841
|
+
anchorRect = _class_private_field_get(this, _anchorRectProvider).call(this);
|
|
842
|
+
} else if (scrolledElement === this.hot.rootElement || (0, _element.isChildOf)(scrolledElement, this.hot.rootElement)) {
|
|
843
|
+
this.close(true);
|
|
844
|
+
return;
|
|
845
|
+
} else {
|
|
846
|
+
anchorRect = this.hot.rootElement.getBoundingClientRect();
|
|
847
|
+
}
|
|
848
|
+
if (anchorRect === null) {
|
|
849
|
+
this.close(true);
|
|
850
|
+
return;
|
|
851
|
+
}
|
|
852
|
+
const { offsetLeft, offsetTop } = _class_private_field_get(this, _scrollFollowBaseline);
|
|
853
|
+
const menuRect = this.container.getBoundingClientRect();
|
|
854
|
+
const correctionLeft = anchorRect.left + offsetLeft - menuRect.left;
|
|
855
|
+
const correctionTop = anchorRect.top + offsetTop - menuRect.top;
|
|
856
|
+
if (correctionLeft === 0 && correctionTop === 0) {
|
|
857
|
+
return;
|
|
858
|
+
}
|
|
859
|
+
this.container.style.left = `${(Number.parseFloat(this.container.style.left) || 0) + correctionLeft}px`;
|
|
860
|
+
this.container.style.top = `${(Number.parseFloat(this.container.style.top) || 0) + correctionTop}px`;
|
|
861
|
+
_class_private_method_get(this, _armHoverSuppression, armHoverSuppression).call(this);
|
|
862
|
+
}
|
|
863
|
+
function armHoverSuppression() {
|
|
864
|
+
_class_private_field_set(this, _suppressHoverSubMenuToggle, true);
|
|
865
|
+
if (_class_private_field_get(this, _suppressHoverSubMenuToggleFrameId) !== null) {
|
|
866
|
+
this.hot.rootWindow.cancelAnimationFrame(_class_private_field_get(this, _suppressHoverSubMenuToggleFrameId));
|
|
867
|
+
}
|
|
868
|
+
_class_private_field_set(this, _suppressHoverSubMenuToggleFrameId, this.hot.rootWindow.requestAnimationFrame(()=>{
|
|
869
|
+
_class_private_field_set(this, _suppressHoverSubMenuToggleFrameId, this.hot.rootWindow.requestAnimationFrame(()=>{
|
|
870
|
+
_class_private_field_set(this, _suppressHoverSubMenuToggle, false);
|
|
871
|
+
_class_private_field_set(this, _suppressHoverSubMenuToggleFrameId, null);
|
|
872
|
+
}));
|
|
873
|
+
}));
|
|
874
|
+
}
|
|
667
875
|
(0, _object.mixin)(Menu, _localHooks.default);
|
|
@@ -56,7 +56,7 @@ import { filterSeparators, hasSubMenu, isItemHidden, normalizeSelection, isItemS
|
|
|
56
56
|
import EventManager from '../../../eventManager.mjs';
|
|
57
57
|
import { arrayEach, arrayFilter, arrayReduce } from '../../../helpers/array.mjs';
|
|
58
58
|
import { isWindowsOS, isMobileBrowser, isIpadOS } from '../../../helpers/browser.mjs';
|
|
59
|
-
import { addClass, eventTargetEl, isChildOf, getParentWindow, hasClass, setAttribute, outerHeight, removeClass } from '../../../helpers/dom/element.mjs';
|
|
59
|
+
import { addClass, eventTargetEl, isChildOf, isHTMLElement, getParentWindow, hasClass, setAttribute, outerHeight, removeClass } from '../../../helpers/dom/element.mjs';
|
|
60
60
|
import { isRightClick } from '../../../helpers/dom/event.mjs';
|
|
61
61
|
import { debounce } from '../../../helpers/function.mjs';
|
|
62
62
|
import { isDefined } from '../../../helpers/mixed.mjs';
|
|
@@ -86,11 +86,77 @@ var /**
|
|
|
86
86
|
*
|
|
87
87
|
* @type {number}
|
|
88
88
|
*/ _tableBorderWidth = /*#__PURE__*/ new WeakMap(), /**
|
|
89
|
+
* Provides the current anchor rectangle for scroll-follow repositioning, or `null`
|
|
90
|
+
* when the anchor is no longer rendered. Set through `setPosition()`.
|
|
91
|
+
*
|
|
92
|
+
* @type {Function|null}
|
|
93
|
+
*/ _anchorRectProvider = /*#__PURE__*/ new WeakMap(), /**
|
|
94
|
+
* Position baseline captured when the menu is positioned: the offset between the
|
|
95
|
+
* menu's document coordinates and its anchor (or the grid root when no anchor
|
|
96
|
+
* provider is available). Used to keep the menu attached while outside elements scroll.
|
|
97
|
+
*
|
|
98
|
+
* @type {object|null}
|
|
99
|
+
*/ _scrollFollowBaseline = /*#__PURE__*/ new WeakMap(), /**
|
|
100
|
+
* When `true`, `afterOnCellMouseOver` ignores the hover instead of opening/closing a
|
|
101
|
+
* sub-menu. Armed for a couple of animation frames right after `#followAnchor` moves
|
|
102
|
+
* the menu: repositioning a menu item out from under a stationary mouse cursor makes
|
|
103
|
+
* the browser recompute `:hover` and fire `mouseout`/`mouseover` on the next frame(s)
|
|
104
|
+
* with NO real pointer movement involved — left unguarded, that spurious hover would
|
|
105
|
+
* toggle sub-menus as if the user had moved the mouse (#12719).
|
|
106
|
+
*
|
|
107
|
+
* @type {boolean}
|
|
108
|
+
*/ _suppressHoverSubMenuToggle = /*#__PURE__*/ new WeakMap(), /**
|
|
109
|
+
* The identifier of the latest pending animation frame request that lifts
|
|
110
|
+
* `#suppressHoverSubMenuToggle`, so a new repositioning can cancel and re-arm the
|
|
111
|
+
* window instead of having it cut short by an earlier one (continuous scrolling
|
|
112
|
+
* repositions the menu on every scroll event).
|
|
113
|
+
*
|
|
114
|
+
* @type {number|null}
|
|
115
|
+
*/ _suppressHoverSubMenuToggleFrameId = /*#__PURE__*/ new WeakMap(), /**
|
|
116
|
+
* Detach functions for the document `scroll` listeners active while the menu is open.
|
|
117
|
+
* Scroll listeners are registered in `open()` (not in the constructor) so that they
|
|
118
|
+
* fire in menu OPEN order: a menu whose anchor lives inside another menu's container
|
|
119
|
+
* (a sub-menu, or the filters condition select menu inside the dropdown menu) always
|
|
120
|
+
* opens after that menu, so its `#followAnchor` runs after the anchor has been moved.
|
|
121
|
+
* Construction order gives no such guarantee — e.g. `updateSettings` recreates the
|
|
122
|
+
* dropdown menu while the condition select menu is long-lived (#13168).
|
|
123
|
+
*
|
|
124
|
+
* @type {Function[]}
|
|
125
|
+
*/ _detachScrollListeners = /*#__PURE__*/ new WeakMap(), /**
|
|
126
|
+
* Registers the document `scroll` listeners (capture phase, all parent frames) that
|
|
127
|
+
* keep the menu attached to its anchor. Called from `open()` — see
|
|
128
|
+
* `#detachScrollListeners` for why the registration is open-scoped.
|
|
129
|
+
*/ _registerScrollListeners = /*#__PURE__*/ new WeakSet(), /**
|
|
130
|
+
* Removes the document `scroll` listeners registered by `#registerScrollListeners()`.
|
|
131
|
+
*/ _clearScrollListeners = /*#__PURE__*/ new WeakSet(), /**
|
|
89
132
|
* Returns the source data at the provided row index typed as `T`.
|
|
90
133
|
*
|
|
91
134
|
* @param {number} row Row index.
|
|
92
135
|
* @returns {T | null} The source data entry or `null` when the row is not available.
|
|
93
|
-
*/ _getSourceDataAtRow = /*#__PURE__*/ new WeakSet()
|
|
136
|
+
*/ _getSourceDataAtRow = /*#__PURE__*/ new WeakSet(), /**
|
|
137
|
+
* Captures the offset between the menu's measured document position and its anchor's
|
|
138
|
+
* (or the grid root element's, when no anchor provider is set). Both sides are
|
|
139
|
+
* MEASURED rects — never `style.left/top`, which are not document coordinates when
|
|
140
|
+
* the menu lives in a custom `uiContainer` with its own containing block. The offset
|
|
141
|
+
* stays constant while outside elements scroll; repositioning restores it.
|
|
142
|
+
*/ _captureScrollFollowBaseline = /*#__PURE__*/ new WeakSet(), /**
|
|
143
|
+
* Repositions the menu to restore its captured offset to the anchor. The correction
|
|
144
|
+
* is computed from MEASURED rects (desired document position minus actual document
|
|
145
|
+
* position) and applied as an increment to the current inline `left`/`top` styles,
|
|
146
|
+
* which keeps the math correct in any containing block (default body portal or a
|
|
147
|
+
* custom `uiContainer`) and makes scrolls the menu already follows natively a no-op.
|
|
148
|
+
* Closes the menu when the anchor provider reports the anchor as no longer rendered,
|
|
149
|
+
* or — when no provider is available — when the scroll happened inside the grid root
|
|
150
|
+
* element (an anchor-less menu cannot track content movement within the grid).
|
|
151
|
+
*
|
|
152
|
+
* @param {HTMLElement} scrolledElement The element whose scroll triggered the update.
|
|
153
|
+
*/ _followAnchor = /*#__PURE__*/ new WeakSet(), /**
|
|
154
|
+
* Arms `#suppressHoverSubMenuToggle` for two animation frames. The browser recomputes
|
|
155
|
+
* `:hover` (and dispatches the resulting `mouseout`/`mouseover`) on a frame AFTER the
|
|
156
|
+
* layout-affecting style change that just moved menu content out from under the
|
|
157
|
+
* pointer, not synchronously with it — one frame is not reliably enough to outlast it.
|
|
158
|
+
* Re-arming cancels a still-pending lift so continuous scrolling keeps the window open.
|
|
159
|
+
*/ _armHoverSuppression = /*#__PURE__*/ new WeakSet();
|
|
94
160
|
/**
|
|
95
161
|
* @typedef MenuOptions
|
|
96
162
|
* @property {Menu} [parent=null] Instance of {@link Menu}.
|
|
@@ -210,6 +276,10 @@ var /**
|
|
|
210
276
|
} else if (filteredItems.length === 0) {
|
|
211
277
|
return;
|
|
212
278
|
}
|
|
279
|
+
// Registered per-open (and after the empty-items early return, which would leak
|
|
280
|
+
// them) so that scroll listeners fire in menu open order — a menu anchored inside
|
|
281
|
+
// another menu then always repositions AFTER its anchor was moved.
|
|
282
|
+
_class_private_method_get(this, _registerScrollListeners, registerScrollListeners).call(this);
|
|
213
283
|
filteredItems = filterSeparators(filteredItems);
|
|
214
284
|
let shouldAutoCloseMenu = false;
|
|
215
285
|
const settings = {
|
|
@@ -248,9 +318,23 @@ var /**
|
|
|
248
318
|
},
|
|
249
319
|
beforeRefreshDimensions: ()=>false,
|
|
250
320
|
beforeOnCellMouseOver: (event, coords)=>{
|
|
321
|
+
// See the matching guard in `afterOnCellMouseOver` below — keeps the keyboard
|
|
322
|
+
// (PageUp/PageDown) page-cursor base row from silently drifting to whatever row
|
|
323
|
+
// the spurious hover lands on.
|
|
324
|
+
if (_class_private_field_get(this, _suppressHoverSubMenuToggle)) {
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
251
327
|
_class_private_field_get(this, _navigator).setPageCursorAt(coords.row);
|
|
252
328
|
},
|
|
253
329
|
afterOnCellMouseOver: (event, coords)=>{
|
|
330
|
+
// Dropped, not deferred: a genuine hover that lands on a new row while this
|
|
331
|
+
// window is armed gets no submenu toggle at all — the user has to cross another
|
|
332
|
+
// row boundary (a fresh `mouseover`) for the hover to register. Rare in practice
|
|
333
|
+
// (the window is 2 frames) and preferable to replaying a possibly-stale coords.row
|
|
334
|
+
// once the window closes.
|
|
335
|
+
if (_class_private_field_get(this, _suppressHoverSubMenuToggle)) {
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
254
338
|
if (this.isAllSubMenusClosed()) {
|
|
255
339
|
delayedOpenSubMenu(coords.row);
|
|
256
340
|
} else {
|
|
@@ -333,6 +417,14 @@ var /**
|
|
|
333
417
|
this.container.style.display = 'none';
|
|
334
418
|
this.hotMenu.destroy();
|
|
335
419
|
this.hotMenu = null;
|
|
420
|
+
_class_private_field_set(this, _anchorRectProvider, null);
|
|
421
|
+
_class_private_field_set(this, _scrollFollowBaseline, null);
|
|
422
|
+
_class_private_method_get(this, _clearScrollListeners, clearScrollListeners).call(this);
|
|
423
|
+
if (_class_private_field_get(this, _suppressHoverSubMenuToggleFrameId) !== null) {
|
|
424
|
+
this.hot.rootWindow.cancelAnimationFrame(_class_private_field_get(this, _suppressHoverSubMenuToggleFrameId));
|
|
425
|
+
_class_private_field_set(this, _suppressHoverSubMenuToggleFrameId, null);
|
|
426
|
+
}
|
|
427
|
+
_class_private_field_set(this, _suppressHoverSubMenuToggle, false);
|
|
336
428
|
this.hot.getSettings().outsideClickDeselects = this.origOutsideClickDeselects;
|
|
337
429
|
this.runLocalHooks('afterClose');
|
|
338
430
|
if (this.isSubMenu()) {
|
|
@@ -375,7 +467,7 @@ var /**
|
|
|
375
467
|
});
|
|
376
468
|
subMenu.setMenuItems(dataItem.submenu.items);
|
|
377
469
|
subMenu.open();
|
|
378
|
-
subMenu.setPosition(cell.getBoundingClientRect());
|
|
470
|
+
subMenu.setPosition(cell.getBoundingClientRect(), ()=>cell.isConnected ? cell.getBoundingClientRect() : null);
|
|
379
471
|
this.hotSubMenus[dataItem.key] = subMenu;
|
|
380
472
|
// Update the accessibility tags on the cell being the base for the submenu.
|
|
381
473
|
if (this.hot.getSettings().ariaTags) {
|
|
@@ -493,11 +585,15 @@ var /**
|
|
|
493
585
|
* Set menu position based on dom event or based on literal object.
|
|
494
586
|
*
|
|
495
587
|
* @param {Event|object} coords Event or literal Object with coordinates.
|
|
496
|
-
|
|
588
|
+
* @param {Function} [anchorRectProvider] Returns the current anchor rectangle for
|
|
589
|
+
* scroll-follow repositioning, or `null` when the anchor is no longer rendered.
|
|
590
|
+
*/ setPosition(coords, anchorRectProvider) {
|
|
497
591
|
if (this.isSubMenu()) {
|
|
498
592
|
this.positioner.setParentElement(this.parentMenu.container);
|
|
499
593
|
}
|
|
500
594
|
this.positioner.setElement(this.container).updatePosition(coords);
|
|
595
|
+
_class_private_field_set(this, _anchorRectProvider, anchorRectProvider ?? null);
|
|
596
|
+
_class_private_method_get(this, _captureScrollFollowBaseline, captureScrollFollowBaseline).call(this);
|
|
501
597
|
}
|
|
502
598
|
/**
|
|
503
599
|
* Updates the dimensions of the menu based on its content.
|
|
@@ -577,6 +673,27 @@ var /**
|
|
|
577
673
|
}
|
|
578
674
|
}
|
|
579
675
|
/**
|
|
676
|
+
* Document's scroll listener (capture phase). When an element outside of the menu
|
|
677
|
+
* is scrolled, repositions the menu so it stays visually attached to its anchor
|
|
678
|
+
* (column header, cell, or parent menu item) — the menu is rendered in a portal
|
|
679
|
+
* positioned in document coordinates, so it would otherwise stay stranded (#12719).
|
|
680
|
+
* Closes the menu when the anchor is scrolled out of the rendered viewport.
|
|
681
|
+
* Ignored: page/document scroll (document coordinates already track it), scrolls
|
|
682
|
+
* within the menu, and scrolls of elements that contain the menu (custom
|
|
683
|
+
* `uiContainer` — the menu moves natively with its container).
|
|
684
|
+
*
|
|
685
|
+
* @private
|
|
686
|
+
* @param {Event} event The scroll event object.
|
|
687
|
+
*/ onDocumentScroll(event) {
|
|
688
|
+
if (!this.isOpened() || _class_private_field_get(this, _scrollFollowBaseline) === null) {
|
|
689
|
+
return;
|
|
690
|
+
}
|
|
691
|
+
if (!isHTMLElement(event.target) || isChildOf(event.target, '.htMenu')) {
|
|
692
|
+
return;
|
|
693
|
+
}
|
|
694
|
+
_class_private_method_get(this, _followAnchor, followAnchor).call(this, event.target);
|
|
695
|
+
}
|
|
696
|
+
/**
|
|
580
697
|
* Document's contextmenu listener.
|
|
581
698
|
*
|
|
582
699
|
* @private
|
|
@@ -593,7 +710,12 @@ var /**
|
|
|
593
710
|
* @param {Core} hotInstance Handsontable instance.
|
|
594
711
|
* @param {MenuOptions} [options] Menu options.
|
|
595
712
|
*/ constructor(hotInstance, options){
|
|
713
|
+
_class_private_method_init(this, _registerScrollListeners);
|
|
714
|
+
_class_private_method_init(this, _clearScrollListeners);
|
|
596
715
|
_class_private_method_init(this, _getSourceDataAtRow);
|
|
716
|
+
_class_private_method_init(this, _captureScrollFollowBaseline);
|
|
717
|
+
_class_private_method_init(this, _followAnchor);
|
|
718
|
+
_class_private_method_init(this, _armHoverSuppression);
|
|
597
719
|
_class_private_field_init(this, _navigator, {
|
|
598
720
|
writable: true,
|
|
599
721
|
value: void 0
|
|
@@ -606,6 +728,26 @@ var /**
|
|
|
606
728
|
writable: true,
|
|
607
729
|
value: void 0
|
|
608
730
|
});
|
|
731
|
+
_class_private_field_init(this, _anchorRectProvider, {
|
|
732
|
+
writable: true,
|
|
733
|
+
value: void 0
|
|
734
|
+
});
|
|
735
|
+
_class_private_field_init(this, _scrollFollowBaseline, {
|
|
736
|
+
writable: true,
|
|
737
|
+
value: void 0
|
|
738
|
+
});
|
|
739
|
+
_class_private_field_init(this, _suppressHoverSubMenuToggle, {
|
|
740
|
+
writable: true,
|
|
741
|
+
value: void 0
|
|
742
|
+
});
|
|
743
|
+
_class_private_field_init(this, _suppressHoverSubMenuToggleFrameId, {
|
|
744
|
+
writable: true,
|
|
745
|
+
value: void 0
|
|
746
|
+
});
|
|
747
|
+
_class_private_field_init(this, _detachScrollListeners, {
|
|
748
|
+
writable: true,
|
|
749
|
+
value: void 0
|
|
750
|
+
});
|
|
609
751
|
/**
|
|
610
752
|
* The instance of the Handsontable that is used as a menu.
|
|
611
753
|
*
|
|
@@ -626,6 +768,11 @@ var /**
|
|
|
626
768
|
*/ this.origOutsideClickDeselects = undefined;
|
|
627
769
|
_class_private_field_set(this, _navigator, null);
|
|
628
770
|
_class_private_field_set(this, _shortcutsCtrl, null);
|
|
771
|
+
_class_private_field_set(this, _anchorRectProvider, null);
|
|
772
|
+
_class_private_field_set(this, _scrollFollowBaseline, null);
|
|
773
|
+
_class_private_field_set(this, _suppressHoverSubMenuToggle, false);
|
|
774
|
+
_class_private_field_set(this, _suppressHoverSubMenuToggleFrameId, null);
|
|
775
|
+
_class_private_field_set(this, _detachScrollListeners, []);
|
|
629
776
|
this.hot = hotInstance;
|
|
630
777
|
this.options = {
|
|
631
778
|
parent: null,
|
|
@@ -657,8 +804,69 @@ var /**
|
|
|
657
804
|
});
|
|
658
805
|
}
|
|
659
806
|
}
|
|
807
|
+
function registerScrollListeners() {
|
|
808
|
+
_class_private_method_get(this, _clearScrollListeners, clearScrollListeners).call(this);
|
|
809
|
+
let frame = this.hot.rootWindow;
|
|
810
|
+
while(frame){
|
|
811
|
+
_class_private_field_get(this, _detachScrollListeners).push(this.eventManager.addEventListener(frame.document, 'scroll', (event)=>this.onDocumentScroll(event), {
|
|
812
|
+
capture: true,
|
|
813
|
+
passive: true
|
|
814
|
+
}));
|
|
815
|
+
frame = getParentWindow(frame);
|
|
816
|
+
}
|
|
817
|
+
}
|
|
818
|
+
function clearScrollListeners() {
|
|
819
|
+
_class_private_field_get(this, _detachScrollListeners).forEach((detach)=>detach());
|
|
820
|
+
_class_private_field_get(this, _detachScrollListeners).length = 0;
|
|
821
|
+
}
|
|
660
822
|
function getSourceDataAtRow(row) {
|
|
661
823
|
const data = this.hotMenu?.getSourceDataAtRow(row);
|
|
662
824
|
return data ? data : null;
|
|
663
825
|
}
|
|
826
|
+
function captureScrollFollowBaseline() {
|
|
827
|
+
var _this, _this1, _ref;
|
|
828
|
+
const menuRect = this.container.getBoundingClientRect();
|
|
829
|
+
const anchorRect = ((_this = _class_private_field_get(_ref = _this1 = this, _anchorRectProvider)) === null || _this === void 0 ? void 0 : _this.call(_this1)) ?? this.hot.rootElement.getBoundingClientRect();
|
|
830
|
+
_class_private_field_set(this, _scrollFollowBaseline, {
|
|
831
|
+
offsetLeft: menuRect.left - anchorRect.left,
|
|
832
|
+
offsetTop: menuRect.top - anchorRect.top
|
|
833
|
+
});
|
|
834
|
+
}
|
|
835
|
+
function followAnchor(scrolledElement) {
|
|
836
|
+
let anchorRect;
|
|
837
|
+
if (_class_private_field_get(this, _anchorRectProvider)) {
|
|
838
|
+
anchorRect = _class_private_field_get(this, _anchorRectProvider).call(this);
|
|
839
|
+
} else if (scrolledElement === this.hot.rootElement || isChildOf(scrolledElement, this.hot.rootElement)) {
|
|
840
|
+
this.close(true);
|
|
841
|
+
return;
|
|
842
|
+
} else {
|
|
843
|
+
anchorRect = this.hot.rootElement.getBoundingClientRect();
|
|
844
|
+
}
|
|
845
|
+
if (anchorRect === null) {
|
|
846
|
+
this.close(true);
|
|
847
|
+
return;
|
|
848
|
+
}
|
|
849
|
+
const { offsetLeft, offsetTop } = _class_private_field_get(this, _scrollFollowBaseline);
|
|
850
|
+
const menuRect = this.container.getBoundingClientRect();
|
|
851
|
+
const correctionLeft = anchorRect.left + offsetLeft - menuRect.left;
|
|
852
|
+
const correctionTop = anchorRect.top + offsetTop - menuRect.top;
|
|
853
|
+
if (correctionLeft === 0 && correctionTop === 0) {
|
|
854
|
+
return;
|
|
855
|
+
}
|
|
856
|
+
this.container.style.left = `${(Number.parseFloat(this.container.style.left) || 0) + correctionLeft}px`;
|
|
857
|
+
this.container.style.top = `${(Number.parseFloat(this.container.style.top) || 0) + correctionTop}px`;
|
|
858
|
+
_class_private_method_get(this, _armHoverSuppression, armHoverSuppression).call(this);
|
|
859
|
+
}
|
|
860
|
+
function armHoverSuppression() {
|
|
861
|
+
_class_private_field_set(this, _suppressHoverSubMenuToggle, true);
|
|
862
|
+
if (_class_private_field_get(this, _suppressHoverSubMenuToggleFrameId) !== null) {
|
|
863
|
+
this.hot.rootWindow.cancelAnimationFrame(_class_private_field_get(this, _suppressHoverSubMenuToggleFrameId));
|
|
864
|
+
}
|
|
865
|
+
_class_private_field_set(this, _suppressHoverSubMenuToggleFrameId, this.hot.rootWindow.requestAnimationFrame(()=>{
|
|
866
|
+
_class_private_field_set(this, _suppressHoverSubMenuToggleFrameId, this.hot.rootWindow.requestAnimationFrame(()=>{
|
|
867
|
+
_class_private_field_set(this, _suppressHoverSubMenuToggle, false);
|
|
868
|
+
_class_private_field_set(this, _suppressHoverSubMenuToggleFrameId, null);
|
|
869
|
+
}));
|
|
870
|
+
}));
|
|
871
|
+
}
|
|
664
872
|
mixin(Menu, localHooks);
|
|
@@ -11,6 +11,7 @@ Object.defineProperty(exports, "createMenuItemRenderer", {
|
|
|
11
11
|
const _utils = require("./utils");
|
|
12
12
|
const _element = require("../../../helpers/dom/element");
|
|
13
13
|
const _a11y = require("../../../helpers/a11y");
|
|
14
|
+
const _sanitizer = require("../../../utils/sanitizer");
|
|
14
15
|
function createMenuItemRenderer(mainTableHot) {
|
|
15
16
|
/**
|
|
16
17
|
* Menu item renderer.
|
|
@@ -62,9 +63,8 @@ function createMenuItemRenderer(mainTableHot) {
|
|
|
62
63
|
(0, _element.addClass)(TD, 'htCustomMenuRenderer');
|
|
63
64
|
TD.appendChild(item.renderer(menuHot, wrapper, row, col, prop, itemValue));
|
|
64
65
|
} else {
|
|
65
|
-
const sanitizer = mainTableHot.getSettings().sanitizer;
|
|
66
66
|
const itemStr = String(itemValue);
|
|
67
|
-
(0, _element.fastInnerHTML)(wrapper, itemStr,
|
|
67
|
+
(0, _element.fastInnerHTML)(wrapper, itemStr, (0, _sanitizer.getSanitizer)(mainTableHot), 'contextMenu', mainTableHot.rootElement);
|
|
68
68
|
}
|
|
69
69
|
if ((0, _utils.isItemDisabled)(item, mainTableHot)) {
|
|
70
70
|
(0, _element.addClass)(TD, 'htDisabled');
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { isItemSubMenu, isItemDisabled, isItemSelectionDisabled, isItemSeparator, isItemCheckable } from './utils.mjs';
|
|
2
2
|
import { addClass, empty, fastInnerHTML, setAttribute } from '../../../helpers/dom/element.mjs';
|
|
3
3
|
import { A11Y_MENU_ITEM_CHECKBOX, A11Y_DISABLED, A11Y_EXPANDED, A11Y_LABEL, A11Y_MENU_ITEM, A11Y_TABINDEX, A11Y_CHECKED } from '../../../helpers/a11y.mjs';
|
|
4
|
+
import { getSanitizer } from '../../../utils/sanitizer.mjs';
|
|
4
5
|
/**
|
|
5
6
|
* Creates the menu renderer function.
|
|
6
7
|
*
|
|
@@ -58,9 +59,8 @@ import { A11Y_MENU_ITEM_CHECKBOX, A11Y_DISABLED, A11Y_EXPANDED, A11Y_LABEL, A11Y
|
|
|
58
59
|
addClass(TD, 'htCustomMenuRenderer');
|
|
59
60
|
TD.appendChild(item.renderer(menuHot, wrapper, row, col, prop, itemValue));
|
|
60
61
|
} else {
|
|
61
|
-
const sanitizer = mainTableHot.getSettings().sanitizer;
|
|
62
62
|
const itemStr = String(itemValue);
|
|
63
|
-
fastInnerHTML(wrapper, itemStr,
|
|
63
|
+
fastInnerHTML(wrapper, itemStr, getSanitizer(mainTableHot), 'contextMenu', mainTableHot.rootElement);
|
|
64
64
|
}
|
|
65
65
|
if (isItemDisabled(item, mainTableHot)) {
|
|
66
66
|
addClass(TD, 'htDisabled');
|