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
package/themes/engine/manager.js
CHANGED
|
@@ -14,11 +14,17 @@ _export(exports, {
|
|
|
14
14
|
},
|
|
15
15
|
get createThemeManager () {
|
|
16
16
|
return createThemeManager;
|
|
17
|
+
},
|
|
18
|
+
get isThemeOverrideEmpty () {
|
|
19
|
+
return isThemeOverrideEmpty;
|
|
17
20
|
}
|
|
18
21
|
});
|
|
19
22
|
const _iconsMap = require("../static/variables/helpers/iconsMap");
|
|
20
23
|
const _errors = require("../../helpers/errors");
|
|
24
|
+
const _console = require("../../helpers/console");
|
|
25
|
+
const _element = require("../../helpers/dom/element");
|
|
21
26
|
const _cssVariables = require("./utils/cssVariables");
|
|
27
|
+
const _validation = require("./utils/validation");
|
|
22
28
|
function _check_private_redeclaration(obj, privateCollection) {
|
|
23
29
|
if (privateCollection.has(obj)) {
|
|
24
30
|
throw new TypeError("Cannot initialize the same private elements twice on an object");
|
|
@@ -75,13 +81,86 @@ function _class_private_method_init(obj, privateSet) {
|
|
|
75
81
|
* @type {string}
|
|
76
82
|
*/ const THEME_PREFIX = 'ht-theme-';
|
|
77
83
|
const THEME_STYLE_ATTRIBUTE = 'data-hot-theme-style';
|
|
84
|
+
/**
|
|
85
|
+
* Prefix of the class that scopes the per-instance override rules to a single grid.
|
|
86
|
+
*
|
|
87
|
+
* It deliberately does not start with `ht-theme-`, because `Core#onThemeChange` strips every
|
|
88
|
+
* `ht-theme-*` class from the wrapper and portal elements when the theme changes.
|
|
89
|
+
*
|
|
90
|
+
* @type {string}
|
|
91
|
+
*/ const THEME_SCOPE_PREFIX = 'ht-scope-';
|
|
92
|
+
function isThemeOverrideEmpty(value) {
|
|
93
|
+
return value === undefined || value === null || value === false || value === '';
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Resolves a color scheme to the value accepted by the CSS `color-scheme` property.
|
|
97
|
+
*
|
|
98
|
+
* @param {string} colorScheme The color scheme ('light', 'dark', or 'auto').
|
|
99
|
+
* @returns {string} The CSS `color-scheme` value.
|
|
100
|
+
*/ function toCssColorScheme(colorScheme) {
|
|
101
|
+
return colorScheme === 'auto' ? 'light dark' : colorScheme;
|
|
102
|
+
}
|
|
78
103
|
var /**
|
|
79
104
|
* Unsubscribes from the theme object's change notifications.
|
|
80
105
|
*
|
|
81
106
|
* @type {Function|null}
|
|
82
107
|
*/ _unsubscribeTheme = /*#__PURE__*/ new WeakMap(), /**
|
|
108
|
+
* Per-instance color scheme and density overrides applied on top of the theme configuration.
|
|
109
|
+
*
|
|
110
|
+
* @type {object}
|
|
111
|
+
*/ _overrides = /*#__PURE__*/ new WeakMap(), /**
|
|
112
|
+
* The `<theme>:<density>` pair the "no density sizes" notice was last logged for, so re-injecting
|
|
113
|
+
* the styles does not repeat it.
|
|
114
|
+
*
|
|
115
|
+
* @type {string|null}
|
|
116
|
+
*/ _missingDensityWarningKey = /*#__PURE__*/ new WeakMap(), /**
|
|
117
|
+
* Resolves one override value coming from the grid settings.
|
|
118
|
+
*
|
|
119
|
+
* This is a settings boundary, so it never throws. An empty value clears the override, and an
|
|
120
|
+
* unsupported one is reported and ignored — throwing here would abort `updateSettings()` half way
|
|
121
|
+
* through and leave the bad value stored in the grid meta, breaking every later theme change.
|
|
122
|
+
*
|
|
123
|
+
* @param {*} value The raw value from the settings.
|
|
124
|
+
* @param {string} optionName The option name, used in the warning.
|
|
125
|
+
* @param {Function} validate The validator for the option, which throws on an unsupported value.
|
|
126
|
+
* @param {*} currentValue The value currently applied, kept when the new one is unsupported.
|
|
127
|
+
* @returns {*} The resolved value, or `undefined` when the override is cleared.
|
|
128
|
+
*/ _resolveOverrideValue = /*#__PURE__*/ new WeakSet(), /**
|
|
129
|
+
* Validates and stores the per-instance overrides.
|
|
130
|
+
*
|
|
131
|
+
* @param {object} overrides The color scheme and density overrides. An empty value clears the
|
|
132
|
+
* given override and falls back to the theme configuration.
|
|
133
|
+
* @returns {boolean} `true` when the effective overrides changed.
|
|
134
|
+
*/ _setOverrides = /*#__PURE__*/ new WeakSet(), /**
|
|
135
|
+
* Builds the CSS variables that pin every light/dark value of the theme to one scheme.
|
|
136
|
+
*
|
|
137
|
+
* Setting the `color-scheme` property is not enough on its own. The shipped minified theme
|
|
138
|
+
* stylesheets do not use the CSS `light-dark()` function — it is newer than the browsers
|
|
139
|
+
* Handsontable supports, so the minifier rewrites it into a pair of variables switched by theme
|
|
140
|
+
* class name. Those declarations out-specify the ones the engine generates, so a grid that only
|
|
141
|
+
* flipped `color-scheme` would keep the light colors. Emitting the resolved values instead works
|
|
142
|
+
* in every supported browser and with every stylesheet.
|
|
143
|
+
*
|
|
144
|
+
* @param {string} scheme The scheme to resolve to ('light' or 'dark').
|
|
145
|
+
* @returns {string} The CSS variable declarations.
|
|
146
|
+
*/ _buildResolvedColorVariables = /*#__PURE__*/ new WeakSet(), /**
|
|
147
|
+
* Builds the CSS rules that apply the per-instance overrides.
|
|
148
|
+
*
|
|
149
|
+
* The selector doubles the theme class with the instance scope class, giving specificity (0,2,0).
|
|
150
|
+
* That beats both the `:where()` block above (0,0,0) and the static `ht-theme-*.css` declarations
|
|
151
|
+
* (0,1,0), so the override wins no matter which stylesheet the page loaded.
|
|
152
|
+
*
|
|
153
|
+
* @returns {string} The CSS text, or an empty string when no override is active.
|
|
154
|
+
*/ _buildOverrideStyles = /*#__PURE__*/ new WeakSet(), /**
|
|
83
155
|
* Injects theme styles into the DOM.
|
|
84
|
-
*/ _injectThemeStyles = /*#__PURE__*/ new WeakSet()
|
|
156
|
+
*/ _injectThemeStyles = /*#__PURE__*/ new WeakSet(), /**
|
|
157
|
+
* Adds the instance scope class to the wrapper and portal elements.
|
|
158
|
+
*
|
|
159
|
+
* Both are stamped because menus, dropdowns, and dialogs render inside the portal element — a
|
|
160
|
+
* wrapper-only scope would leave them on the theme defaults while the grid follows the overrides.
|
|
161
|
+
*/ _stampScopeClass = /*#__PURE__*/ new WeakSet(), /**
|
|
162
|
+
* Removes the instance scope class from the wrapper and portal elements.
|
|
163
|
+
*/ _unstampScopeClass = /*#__PURE__*/ new WeakSet();
|
|
85
164
|
class ThemeManager {
|
|
86
165
|
/**
|
|
87
166
|
* Gets the theme class name.
|
|
@@ -91,6 +170,44 @@ class ThemeManager {
|
|
|
91
170
|
return this.themeClassName;
|
|
92
171
|
}
|
|
93
172
|
/**
|
|
173
|
+
* Gets the per-instance color scheme and density overrides.
|
|
174
|
+
*
|
|
175
|
+
* @returns {object} A copy of the currently applied overrides.
|
|
176
|
+
*/ getOverrides() {
|
|
177
|
+
return {
|
|
178
|
+
..._class_private_field_get(this, _overrides)
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Gets the color scheme this grid renders with, taking the per-instance override into account.
|
|
183
|
+
*
|
|
184
|
+
* @returns {string|undefined} The color scheme ('light', 'dark', or 'auto').
|
|
185
|
+
*/ getColorScheme() {
|
|
186
|
+
return _class_private_field_get(this, _overrides).colorScheme ?? this.themeConfig?.colorScheme;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Gets the density type this grid renders with, taking the per-instance override into account.
|
|
190
|
+
*
|
|
191
|
+
* @returns {string|undefined} The density type ('default', 'compact', or 'comfortable').
|
|
192
|
+
*/ getDensityType() {
|
|
193
|
+
return _class_private_field_get(this, _overrides).density ?? this.themeConfig?.density?.type;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Applies per-instance color scheme and density overrides and re-injects the theme styles.
|
|
197
|
+
*
|
|
198
|
+
* The shared theme object is never mutated, so other grids using the same theme keep their look.
|
|
199
|
+
*
|
|
200
|
+
* @param {object} overrides The color scheme and density overrides. An `undefined` value clears
|
|
201
|
+
* the given override and falls back to the theme configuration.
|
|
202
|
+
* @returns {boolean} `true` when the effective overrides changed and the styles were re-injected.
|
|
203
|
+
*/ setOverrides(overrides) {
|
|
204
|
+
if (!_class_private_method_get(this, _setOverrides, setOverrides).call(this, overrides)) {
|
|
205
|
+
return false;
|
|
206
|
+
}
|
|
207
|
+
_class_private_method_get(this, _injectThemeStyles, injectThemeStyles).call(this);
|
|
208
|
+
return true;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
94
211
|
* Updates the theme manager.
|
|
95
212
|
*
|
|
96
213
|
* @param {object} themeObject - The theme object.
|
|
@@ -123,11 +240,13 @@ class ThemeManager {
|
|
|
123
240
|
/**
|
|
124
241
|
* Mounts the theme manager.
|
|
125
242
|
*/ mount() {
|
|
243
|
+
_class_private_method_get(this, _stampScopeClass, stampScopeClass).call(this);
|
|
126
244
|
_class_private_method_get(this, _injectThemeStyles, injectThemeStyles).call(this);
|
|
127
245
|
}
|
|
128
246
|
/**
|
|
129
247
|
* Unmounts the theme manager.
|
|
130
248
|
*/ unmount() {
|
|
249
|
+
_class_private_method_get(this, _unstampScopeClass, unstampScopeClass).call(this);
|
|
131
250
|
if (this.themeStyles) {
|
|
132
251
|
this.themeStyles.remove();
|
|
133
252
|
}
|
|
@@ -146,12 +265,27 @@ class ThemeManager {
|
|
|
146
265
|
* @param {object} options - The options object.
|
|
147
266
|
* @param {Handsontable} options.hot - The Handsontable instance.
|
|
148
267
|
* @param {object} options.themeObject - The theme object.
|
|
149
|
-
|
|
268
|
+
* @param {object} [options.overrides] - The per-instance color scheme and density overrides.
|
|
269
|
+
*/ constructor({ hot, themeObject, overrides }){
|
|
270
|
+
_class_private_method_init(this, _resolveOverrideValue);
|
|
271
|
+
_class_private_method_init(this, _setOverrides);
|
|
272
|
+
_class_private_method_init(this, _buildResolvedColorVariables);
|
|
273
|
+
_class_private_method_init(this, _buildOverrideStyles);
|
|
150
274
|
_class_private_method_init(this, _injectThemeStyles);
|
|
275
|
+
_class_private_method_init(this, _stampScopeClass);
|
|
276
|
+
_class_private_method_init(this, _unstampScopeClass);
|
|
151
277
|
_class_private_field_init(this, _unsubscribeTheme, {
|
|
152
278
|
writable: true,
|
|
153
279
|
value: void 0
|
|
154
280
|
});
|
|
281
|
+
_class_private_field_init(this, _overrides, {
|
|
282
|
+
writable: true,
|
|
283
|
+
value: void 0
|
|
284
|
+
});
|
|
285
|
+
_class_private_field_init(this, _missingDensityWarningKey, {
|
|
286
|
+
writable: true,
|
|
287
|
+
value: void 0
|
|
288
|
+
});
|
|
155
289
|
/**
|
|
156
290
|
* The theme styles element.
|
|
157
291
|
*
|
|
@@ -168,15 +302,95 @@ class ThemeManager {
|
|
|
168
302
|
* @type {object}
|
|
169
303
|
*/ this.themeConfig = null;
|
|
170
304
|
_class_private_field_set(this, _unsubscribeTheme, null);
|
|
305
|
+
_class_private_field_set(this, _overrides, {});
|
|
306
|
+
_class_private_field_set(this, _missingDensityWarningKey, null);
|
|
171
307
|
this.hot = hot;
|
|
308
|
+
this.scopeClassName = `${THEME_SCOPE_PREFIX}${hot.guid}`;
|
|
309
|
+
if (overrides) {
|
|
310
|
+
_class_private_method_get(this, _setOverrides, setOverrides).call(this, overrides);
|
|
311
|
+
}
|
|
172
312
|
this.update(themeObject);
|
|
173
313
|
}
|
|
174
314
|
}
|
|
315
|
+
function resolveOverrideValue(value, optionName, validate, currentValue) {
|
|
316
|
+
if (isThemeOverrideEmpty(value)) {
|
|
317
|
+
return undefined;
|
|
318
|
+
}
|
|
319
|
+
try {
|
|
320
|
+
return validate(String(value));
|
|
321
|
+
} catch {
|
|
322
|
+
(0, _console.warn)(`[ThemeManager] Ignoring the \`${optionName}\` option: ${JSON.stringify(value)} is not ` + 'a supported value.');
|
|
323
|
+
return currentValue;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
function setOverrides(overrides) {
|
|
327
|
+
const nextOverrides = {
|
|
328
|
+
..._class_private_field_get(this, _overrides)
|
|
329
|
+
};
|
|
330
|
+
if (Object.prototype.hasOwnProperty.call(overrides, 'colorScheme')) {
|
|
331
|
+
nextOverrides.colorScheme = _class_private_method_get(this, _resolveOverrideValue, resolveOverrideValue).call(this, overrides.colorScheme, 'colorScheme', _validation.validateColorScheme, _class_private_field_get(this, _overrides).colorScheme);
|
|
332
|
+
}
|
|
333
|
+
if (Object.prototype.hasOwnProperty.call(overrides, 'density')) {
|
|
334
|
+
nextOverrides.density = _class_private_method_get(this, _resolveOverrideValue, resolveOverrideValue).call(this, overrides.density, 'density', _validation.validateDensityType, _class_private_field_get(this, _overrides).density);
|
|
335
|
+
}
|
|
336
|
+
const hasChanged = nextOverrides.colorScheme !== _class_private_field_get(this, _overrides).colorScheme || nextOverrides.density !== _class_private_field_get(this, _overrides).density;
|
|
337
|
+
_class_private_field_set(this, _overrides, nextOverrides);
|
|
338
|
+
return hasChanged;
|
|
339
|
+
}
|
|
340
|
+
function buildResolvedColorVariables(scheme) {
|
|
341
|
+
if (!this.themeConfig) {
|
|
342
|
+
return '';
|
|
343
|
+
}
|
|
344
|
+
const options = {
|
|
345
|
+
resolveScheme: scheme,
|
|
346
|
+
lightDarkOnly: true
|
|
347
|
+
};
|
|
348
|
+
let cssText = '';
|
|
349
|
+
if (this.themeConfig.colors) {
|
|
350
|
+
cssText += (0, _cssVariables.flattenCssVariables)(this.themeConfig.colors, 'colors', '', options);
|
|
351
|
+
}
|
|
352
|
+
if (this.themeConfig.tokens) {
|
|
353
|
+
cssText += (0, _cssVariables.flattenCssVariables)(this.themeConfig.tokens, '', '', options);
|
|
354
|
+
}
|
|
355
|
+
return cssText;
|
|
356
|
+
}
|
|
357
|
+
function buildOverrideStyles() {
|
|
358
|
+
const { colorScheme, density } = _class_private_field_get(this, _overrides);
|
|
359
|
+
if (!colorScheme && !density) {
|
|
360
|
+
return '';
|
|
361
|
+
}
|
|
362
|
+
const selector = `.${this.themeClassName}.${this.scopeClassName}`;
|
|
363
|
+
const densitySizes = density ? this.themeConfig?.density?.sizes?.[density] : undefined;
|
|
364
|
+
let cssText = '';
|
|
365
|
+
if (densitySizes) {
|
|
366
|
+
cssText += `${selector} {\n${(0, _cssVariables.flattenCssVariables)(densitySizes, 'density')}}\n`;
|
|
367
|
+
} else if (density) {
|
|
368
|
+
// A custom theme may not define every preset. Say so instead of leaving the option looking
|
|
369
|
+
// applied while nothing changes on screen. Styles are re-injected on every theme change, so
|
|
370
|
+
// key the notice by theme and density to keep it to one line per real problem.
|
|
371
|
+
const warningKey = `${this.themeConfig?.name}:${density}`;
|
|
372
|
+
if (_class_private_field_get(this, _missingDensityWarningKey) !== warningKey) {
|
|
373
|
+
_class_private_field_set(this, _missingDensityWarningKey, warningKey);
|
|
374
|
+
(0, _console.warn)(`[ThemeManager] The "${this.themeConfig?.name}" theme has no "${density}" density ` + 'sizes, so the `density` option has no effect. Add the sizes to the theme configuration.');
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
if (colorScheme) {
|
|
378
|
+
cssText += `${selector} {\ncolor-scheme: ${toCssColorScheme(colorScheme)};\n`;
|
|
379
|
+
// 'auto' follows the operating system, so pin the light values and let a media query swap in
|
|
380
|
+
// the dark ones. That mirrors what the static `-dark-auto` class does, without `light-dark()`.
|
|
381
|
+
cssText += _class_private_method_get(this, _buildResolvedColorVariables, buildResolvedColorVariables).call(this, colorScheme === 'dark' ? 'dark' : 'light');
|
|
382
|
+
cssText += '}\n';
|
|
383
|
+
if (colorScheme === 'auto') {
|
|
384
|
+
cssText += `@media (prefers-color-scheme: dark) {\n${selector} {\n` + `${_class_private_method_get(this, _buildResolvedColorVariables, buildResolvedColorVariables).call(this, 'dark')}}\n}\n`;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
return cssText;
|
|
388
|
+
}
|
|
175
389
|
function injectThemeStyles() {
|
|
176
390
|
if (!this.themeConfig || !this.hot || !this.hot.rootDocument || !this.hot.rootWrapperElement) {
|
|
177
391
|
return;
|
|
178
392
|
}
|
|
179
|
-
const colorScheme = this.themeConfig.colorScheme
|
|
393
|
+
const colorScheme = toCssColorScheme(this.themeConfig.colorScheme);
|
|
180
394
|
if (!this.themeStyles) {
|
|
181
395
|
this.themeStyles = this.hot.rootDocument.createElement('style');
|
|
182
396
|
this.themeStyles.setAttribute(THEME_STYLE_ATTRIBUTE, 'true');
|
|
@@ -201,7 +415,8 @@ function injectThemeStyles() {
|
|
|
201
415
|
// Separate rule with class-level specificity (0,1,0) so this <style> (injected into <body>)
|
|
202
416
|
// wins over same-specificity color-scheme declarations in static ht-theme-*.css files via
|
|
203
417
|
// source order, while keeping all other tokens at :where() specificity for easy overrides.
|
|
204
|
-
this.themeStyles.textContent += `.${this.themeClassName} {\ncolor-scheme: ${colorScheme};\n}`;
|
|
418
|
+
this.themeStyles.textContent += `.${this.themeClassName} {\ncolor-scheme: ${colorScheme};\n}\n`;
|
|
419
|
+
this.themeStyles.textContent += _class_private_method_get(this, _buildOverrideStyles, buildOverrideStyles).call(this);
|
|
205
420
|
// Ensure that the manager always controls its own style node.
|
|
206
421
|
// Some wrappers may contain other <style> tags and updating/removing a generic
|
|
207
422
|
// querySelector('style') can leave the theme style mounted.
|
|
@@ -209,9 +424,30 @@ function injectThemeStyles() {
|
|
|
209
424
|
this.hot.rootWrapperElement.prepend(this.themeStyles);
|
|
210
425
|
}
|
|
211
426
|
}
|
|
212
|
-
function
|
|
427
|
+
function stampScopeClass() {
|
|
428
|
+
[
|
|
429
|
+
this.hot?.rootWrapperElement,
|
|
430
|
+
this.hot?.rootPortalElement
|
|
431
|
+
].forEach((element)=>{
|
|
432
|
+
if (element) {
|
|
433
|
+
(0, _element.addClass)(element, this.scopeClassName);
|
|
434
|
+
}
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
function unstampScopeClass() {
|
|
438
|
+
[
|
|
439
|
+
this.hot?.rootWrapperElement,
|
|
440
|
+
this.hot?.rootPortalElement
|
|
441
|
+
].forEach((element)=>{
|
|
442
|
+
if (element) {
|
|
443
|
+
(0, _element.removeClass)(element, this.scopeClassName);
|
|
444
|
+
}
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
function createThemeManager({ hot, themeObject, overrides }) {
|
|
213
448
|
return new ThemeManager({
|
|
214
449
|
hot,
|
|
215
|
-
themeObject
|
|
450
|
+
themeObject,
|
|
451
|
+
overrides
|
|
216
452
|
});
|
|
217
453
|
}
|
|
@@ -50,20 +50,105 @@ function _class_private_method_init(obj, privateSet) {
|
|
|
50
50
|
}
|
|
51
51
|
import { iconsMap } from '../static/variables/helpers/iconsMap.mjs';
|
|
52
52
|
import { throwWithCause } from '../../helpers/errors.mjs';
|
|
53
|
+
import { warn } from '../../helpers/console.mjs';
|
|
54
|
+
import { addClass, removeClass } from '../../helpers/dom/element.mjs';
|
|
53
55
|
import { flattenCssVariables } from './utils/cssVariables.mjs';
|
|
56
|
+
import { validateColorScheme, validateDensityType } from './utils/validation.mjs';
|
|
54
57
|
/**
|
|
55
58
|
* The theme prefix.
|
|
56
59
|
*
|
|
57
60
|
* @type {string}
|
|
58
61
|
*/ const THEME_PREFIX = 'ht-theme-';
|
|
59
62
|
const THEME_STYLE_ATTRIBUTE = 'data-hot-theme-style';
|
|
63
|
+
/**
|
|
64
|
+
* Prefix of the class that scopes the per-instance override rules to a single grid.
|
|
65
|
+
*
|
|
66
|
+
* It deliberately does not start with `ht-theme-`, because `Core#onThemeChange` strips every
|
|
67
|
+
* `ht-theme-*` class from the wrapper and portal elements when the theme changes.
|
|
68
|
+
*
|
|
69
|
+
* @type {string}
|
|
70
|
+
*/ const THEME_SCOPE_PREFIX = 'ht-scope-';
|
|
71
|
+
/**
|
|
72
|
+
* Checks whether an override value means "use the theme value".
|
|
73
|
+
*
|
|
74
|
+
* `undefined` is the documented way to clear an override, and the other empty values are treated
|
|
75
|
+
* the same so a framework wrapper passing `null` or `''` for an unset prop clears rather than
|
|
76
|
+
* fails. Exported so the settings layer applies exactly the same rule.
|
|
77
|
+
*
|
|
78
|
+
* @param {*} value The raw override value.
|
|
79
|
+
* @returns {boolean} `true` when the value clears the override.
|
|
80
|
+
*/ export function isThemeOverrideEmpty(value) {
|
|
81
|
+
return value === undefined || value === null || value === false || value === '';
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Resolves a color scheme to the value accepted by the CSS `color-scheme` property.
|
|
85
|
+
*
|
|
86
|
+
* @param {string} colorScheme The color scheme ('light', 'dark', or 'auto').
|
|
87
|
+
* @returns {string} The CSS `color-scheme` value.
|
|
88
|
+
*/ function toCssColorScheme(colorScheme) {
|
|
89
|
+
return colorScheme === 'auto' ? 'light dark' : colorScheme;
|
|
90
|
+
}
|
|
60
91
|
var /**
|
|
61
92
|
* Unsubscribes from the theme object's change notifications.
|
|
62
93
|
*
|
|
63
94
|
* @type {Function|null}
|
|
64
95
|
*/ _unsubscribeTheme = /*#__PURE__*/ new WeakMap(), /**
|
|
96
|
+
* Per-instance color scheme and density overrides applied on top of the theme configuration.
|
|
97
|
+
*
|
|
98
|
+
* @type {object}
|
|
99
|
+
*/ _overrides = /*#__PURE__*/ new WeakMap(), /**
|
|
100
|
+
* The `<theme>:<density>` pair the "no density sizes" notice was last logged for, so re-injecting
|
|
101
|
+
* the styles does not repeat it.
|
|
102
|
+
*
|
|
103
|
+
* @type {string|null}
|
|
104
|
+
*/ _missingDensityWarningKey = /*#__PURE__*/ new WeakMap(), /**
|
|
105
|
+
* Resolves one override value coming from the grid settings.
|
|
106
|
+
*
|
|
107
|
+
* This is a settings boundary, so it never throws. An empty value clears the override, and an
|
|
108
|
+
* unsupported one is reported and ignored — throwing here would abort `updateSettings()` half way
|
|
109
|
+
* through and leave the bad value stored in the grid meta, breaking every later theme change.
|
|
110
|
+
*
|
|
111
|
+
* @param {*} value The raw value from the settings.
|
|
112
|
+
* @param {string} optionName The option name, used in the warning.
|
|
113
|
+
* @param {Function} validate The validator for the option, which throws on an unsupported value.
|
|
114
|
+
* @param {*} currentValue The value currently applied, kept when the new one is unsupported.
|
|
115
|
+
* @returns {*} The resolved value, or `undefined` when the override is cleared.
|
|
116
|
+
*/ _resolveOverrideValue = /*#__PURE__*/ new WeakSet(), /**
|
|
117
|
+
* Validates and stores the per-instance overrides.
|
|
118
|
+
*
|
|
119
|
+
* @param {object} overrides The color scheme and density overrides. An empty value clears the
|
|
120
|
+
* given override and falls back to the theme configuration.
|
|
121
|
+
* @returns {boolean} `true` when the effective overrides changed.
|
|
122
|
+
*/ _setOverrides = /*#__PURE__*/ new WeakSet(), /**
|
|
123
|
+
* Builds the CSS variables that pin every light/dark value of the theme to one scheme.
|
|
124
|
+
*
|
|
125
|
+
* Setting the `color-scheme` property is not enough on its own. The shipped minified theme
|
|
126
|
+
* stylesheets do not use the CSS `light-dark()` function — it is newer than the browsers
|
|
127
|
+
* Handsontable supports, so the minifier rewrites it into a pair of variables switched by theme
|
|
128
|
+
* class name. Those declarations out-specify the ones the engine generates, so a grid that only
|
|
129
|
+
* flipped `color-scheme` would keep the light colors. Emitting the resolved values instead works
|
|
130
|
+
* in every supported browser and with every stylesheet.
|
|
131
|
+
*
|
|
132
|
+
* @param {string} scheme The scheme to resolve to ('light' or 'dark').
|
|
133
|
+
* @returns {string} The CSS variable declarations.
|
|
134
|
+
*/ _buildResolvedColorVariables = /*#__PURE__*/ new WeakSet(), /**
|
|
135
|
+
* Builds the CSS rules that apply the per-instance overrides.
|
|
136
|
+
*
|
|
137
|
+
* The selector doubles the theme class with the instance scope class, giving specificity (0,2,0).
|
|
138
|
+
* That beats both the `:where()` block above (0,0,0) and the static `ht-theme-*.css` declarations
|
|
139
|
+
* (0,1,0), so the override wins no matter which stylesheet the page loaded.
|
|
140
|
+
*
|
|
141
|
+
* @returns {string} The CSS text, or an empty string when no override is active.
|
|
142
|
+
*/ _buildOverrideStyles = /*#__PURE__*/ new WeakSet(), /**
|
|
65
143
|
* Injects theme styles into the DOM.
|
|
66
|
-
*/ _injectThemeStyles = /*#__PURE__*/ new WeakSet()
|
|
144
|
+
*/ _injectThemeStyles = /*#__PURE__*/ new WeakSet(), /**
|
|
145
|
+
* Adds the instance scope class to the wrapper and portal elements.
|
|
146
|
+
*
|
|
147
|
+
* Both are stamped because menus, dropdowns, and dialogs render inside the portal element — a
|
|
148
|
+
* wrapper-only scope would leave them on the theme defaults while the grid follows the overrides.
|
|
149
|
+
*/ _stampScopeClass = /*#__PURE__*/ new WeakSet(), /**
|
|
150
|
+
* Removes the instance scope class from the wrapper and portal elements.
|
|
151
|
+
*/ _unstampScopeClass = /*#__PURE__*/ new WeakSet();
|
|
67
152
|
/**
|
|
68
153
|
* ThemeManager class provides methods to manage the theme styles.
|
|
69
154
|
*
|
|
@@ -77,6 +162,44 @@ var /**
|
|
|
77
162
|
return this.themeClassName;
|
|
78
163
|
}
|
|
79
164
|
/**
|
|
165
|
+
* Gets the per-instance color scheme and density overrides.
|
|
166
|
+
*
|
|
167
|
+
* @returns {object} A copy of the currently applied overrides.
|
|
168
|
+
*/ getOverrides() {
|
|
169
|
+
return {
|
|
170
|
+
..._class_private_field_get(this, _overrides)
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Gets the color scheme this grid renders with, taking the per-instance override into account.
|
|
175
|
+
*
|
|
176
|
+
* @returns {string|undefined} The color scheme ('light', 'dark', or 'auto').
|
|
177
|
+
*/ getColorScheme() {
|
|
178
|
+
return _class_private_field_get(this, _overrides).colorScheme ?? this.themeConfig?.colorScheme;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Gets the density type this grid renders with, taking the per-instance override into account.
|
|
182
|
+
*
|
|
183
|
+
* @returns {string|undefined} The density type ('default', 'compact', or 'comfortable').
|
|
184
|
+
*/ getDensityType() {
|
|
185
|
+
return _class_private_field_get(this, _overrides).density ?? this.themeConfig?.density?.type;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Applies per-instance color scheme and density overrides and re-injects the theme styles.
|
|
189
|
+
*
|
|
190
|
+
* The shared theme object is never mutated, so other grids using the same theme keep their look.
|
|
191
|
+
*
|
|
192
|
+
* @param {object} overrides The color scheme and density overrides. An `undefined` value clears
|
|
193
|
+
* the given override and falls back to the theme configuration.
|
|
194
|
+
* @returns {boolean} `true` when the effective overrides changed and the styles were re-injected.
|
|
195
|
+
*/ setOverrides(overrides) {
|
|
196
|
+
if (!_class_private_method_get(this, _setOverrides, setOverrides).call(this, overrides)) {
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
199
|
+
_class_private_method_get(this, _injectThemeStyles, injectThemeStyles).call(this);
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
80
203
|
* Updates the theme manager.
|
|
81
204
|
*
|
|
82
205
|
* @param {object} themeObject - The theme object.
|
|
@@ -109,11 +232,13 @@ var /**
|
|
|
109
232
|
/**
|
|
110
233
|
* Mounts the theme manager.
|
|
111
234
|
*/ mount() {
|
|
235
|
+
_class_private_method_get(this, _stampScopeClass, stampScopeClass).call(this);
|
|
112
236
|
_class_private_method_get(this, _injectThemeStyles, injectThemeStyles).call(this);
|
|
113
237
|
}
|
|
114
238
|
/**
|
|
115
239
|
* Unmounts the theme manager.
|
|
116
240
|
*/ unmount() {
|
|
241
|
+
_class_private_method_get(this, _unstampScopeClass, unstampScopeClass).call(this);
|
|
117
242
|
if (this.themeStyles) {
|
|
118
243
|
this.themeStyles.remove();
|
|
119
244
|
}
|
|
@@ -132,12 +257,27 @@ var /**
|
|
|
132
257
|
* @param {object} options - The options object.
|
|
133
258
|
* @param {Handsontable} options.hot - The Handsontable instance.
|
|
134
259
|
* @param {object} options.themeObject - The theme object.
|
|
135
|
-
|
|
260
|
+
* @param {object} [options.overrides] - The per-instance color scheme and density overrides.
|
|
261
|
+
*/ constructor({ hot, themeObject, overrides }){
|
|
262
|
+
_class_private_method_init(this, _resolveOverrideValue);
|
|
263
|
+
_class_private_method_init(this, _setOverrides);
|
|
264
|
+
_class_private_method_init(this, _buildResolvedColorVariables);
|
|
265
|
+
_class_private_method_init(this, _buildOverrideStyles);
|
|
136
266
|
_class_private_method_init(this, _injectThemeStyles);
|
|
267
|
+
_class_private_method_init(this, _stampScopeClass);
|
|
268
|
+
_class_private_method_init(this, _unstampScopeClass);
|
|
137
269
|
_class_private_field_init(this, _unsubscribeTheme, {
|
|
138
270
|
writable: true,
|
|
139
271
|
value: void 0
|
|
140
272
|
});
|
|
273
|
+
_class_private_field_init(this, _overrides, {
|
|
274
|
+
writable: true,
|
|
275
|
+
value: void 0
|
|
276
|
+
});
|
|
277
|
+
_class_private_field_init(this, _missingDensityWarningKey, {
|
|
278
|
+
writable: true,
|
|
279
|
+
value: void 0
|
|
280
|
+
});
|
|
141
281
|
/**
|
|
142
282
|
* The theme styles element.
|
|
143
283
|
*
|
|
@@ -154,15 +294,95 @@ var /**
|
|
|
154
294
|
* @type {object}
|
|
155
295
|
*/ this.themeConfig = null;
|
|
156
296
|
_class_private_field_set(this, _unsubscribeTheme, null);
|
|
297
|
+
_class_private_field_set(this, _overrides, {});
|
|
298
|
+
_class_private_field_set(this, _missingDensityWarningKey, null);
|
|
157
299
|
this.hot = hot;
|
|
300
|
+
this.scopeClassName = `${THEME_SCOPE_PREFIX}${hot.guid}`;
|
|
301
|
+
if (overrides) {
|
|
302
|
+
_class_private_method_get(this, _setOverrides, setOverrides).call(this, overrides);
|
|
303
|
+
}
|
|
158
304
|
this.update(themeObject);
|
|
159
305
|
}
|
|
160
306
|
}
|
|
307
|
+
function resolveOverrideValue(value, optionName, validate, currentValue) {
|
|
308
|
+
if (isThemeOverrideEmpty(value)) {
|
|
309
|
+
return undefined;
|
|
310
|
+
}
|
|
311
|
+
try {
|
|
312
|
+
return validate(String(value));
|
|
313
|
+
} catch {
|
|
314
|
+
warn(`[ThemeManager] Ignoring the \`${optionName}\` option: ${JSON.stringify(value)} is not ` + 'a supported value.');
|
|
315
|
+
return currentValue;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
function setOverrides(overrides) {
|
|
319
|
+
const nextOverrides = {
|
|
320
|
+
..._class_private_field_get(this, _overrides)
|
|
321
|
+
};
|
|
322
|
+
if (Object.prototype.hasOwnProperty.call(overrides, 'colorScheme')) {
|
|
323
|
+
nextOverrides.colorScheme = _class_private_method_get(this, _resolveOverrideValue, resolveOverrideValue).call(this, overrides.colorScheme, 'colorScheme', validateColorScheme, _class_private_field_get(this, _overrides).colorScheme);
|
|
324
|
+
}
|
|
325
|
+
if (Object.prototype.hasOwnProperty.call(overrides, 'density')) {
|
|
326
|
+
nextOverrides.density = _class_private_method_get(this, _resolveOverrideValue, resolveOverrideValue).call(this, overrides.density, 'density', validateDensityType, _class_private_field_get(this, _overrides).density);
|
|
327
|
+
}
|
|
328
|
+
const hasChanged = nextOverrides.colorScheme !== _class_private_field_get(this, _overrides).colorScheme || nextOverrides.density !== _class_private_field_get(this, _overrides).density;
|
|
329
|
+
_class_private_field_set(this, _overrides, nextOverrides);
|
|
330
|
+
return hasChanged;
|
|
331
|
+
}
|
|
332
|
+
function buildResolvedColorVariables(scheme) {
|
|
333
|
+
if (!this.themeConfig) {
|
|
334
|
+
return '';
|
|
335
|
+
}
|
|
336
|
+
const options = {
|
|
337
|
+
resolveScheme: scheme,
|
|
338
|
+
lightDarkOnly: true
|
|
339
|
+
};
|
|
340
|
+
let cssText = '';
|
|
341
|
+
if (this.themeConfig.colors) {
|
|
342
|
+
cssText += flattenCssVariables(this.themeConfig.colors, 'colors', '', options);
|
|
343
|
+
}
|
|
344
|
+
if (this.themeConfig.tokens) {
|
|
345
|
+
cssText += flattenCssVariables(this.themeConfig.tokens, '', '', options);
|
|
346
|
+
}
|
|
347
|
+
return cssText;
|
|
348
|
+
}
|
|
349
|
+
function buildOverrideStyles() {
|
|
350
|
+
const { colorScheme, density } = _class_private_field_get(this, _overrides);
|
|
351
|
+
if (!colorScheme && !density) {
|
|
352
|
+
return '';
|
|
353
|
+
}
|
|
354
|
+
const selector = `.${this.themeClassName}.${this.scopeClassName}`;
|
|
355
|
+
const densitySizes = density ? this.themeConfig?.density?.sizes?.[density] : undefined;
|
|
356
|
+
let cssText = '';
|
|
357
|
+
if (densitySizes) {
|
|
358
|
+
cssText += `${selector} {\n${flattenCssVariables(densitySizes, 'density')}}\n`;
|
|
359
|
+
} else if (density) {
|
|
360
|
+
// A custom theme may not define every preset. Say so instead of leaving the option looking
|
|
361
|
+
// applied while nothing changes on screen. Styles are re-injected on every theme change, so
|
|
362
|
+
// key the notice by theme and density to keep it to one line per real problem.
|
|
363
|
+
const warningKey = `${this.themeConfig?.name}:${density}`;
|
|
364
|
+
if (_class_private_field_get(this, _missingDensityWarningKey) !== warningKey) {
|
|
365
|
+
_class_private_field_set(this, _missingDensityWarningKey, warningKey);
|
|
366
|
+
warn(`[ThemeManager] The "${this.themeConfig?.name}" theme has no "${density}" density ` + 'sizes, so the `density` option has no effect. Add the sizes to the theme configuration.');
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
if (colorScheme) {
|
|
370
|
+
cssText += `${selector} {\ncolor-scheme: ${toCssColorScheme(colorScheme)};\n`;
|
|
371
|
+
// 'auto' follows the operating system, so pin the light values and let a media query swap in
|
|
372
|
+
// the dark ones. That mirrors what the static `-dark-auto` class does, without `light-dark()`.
|
|
373
|
+
cssText += _class_private_method_get(this, _buildResolvedColorVariables, buildResolvedColorVariables).call(this, colorScheme === 'dark' ? 'dark' : 'light');
|
|
374
|
+
cssText += '}\n';
|
|
375
|
+
if (colorScheme === 'auto') {
|
|
376
|
+
cssText += `@media (prefers-color-scheme: dark) {\n${selector} {\n` + `${_class_private_method_get(this, _buildResolvedColorVariables, buildResolvedColorVariables).call(this, 'dark')}}\n}\n`;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
return cssText;
|
|
380
|
+
}
|
|
161
381
|
function injectThemeStyles() {
|
|
162
382
|
if (!this.themeConfig || !this.hot || !this.hot.rootDocument || !this.hot.rootWrapperElement) {
|
|
163
383
|
return;
|
|
164
384
|
}
|
|
165
|
-
const colorScheme = this.themeConfig.colorScheme
|
|
385
|
+
const colorScheme = toCssColorScheme(this.themeConfig.colorScheme);
|
|
166
386
|
if (!this.themeStyles) {
|
|
167
387
|
this.themeStyles = this.hot.rootDocument.createElement('style');
|
|
168
388
|
this.themeStyles.setAttribute(THEME_STYLE_ATTRIBUTE, 'true');
|
|
@@ -187,7 +407,8 @@ function injectThemeStyles() {
|
|
|
187
407
|
// Separate rule with class-level specificity (0,1,0) so this <style> (injected into <body>)
|
|
188
408
|
// wins over same-specificity color-scheme declarations in static ht-theme-*.css files via
|
|
189
409
|
// source order, while keeping all other tokens at :where() specificity for easy overrides.
|
|
190
|
-
this.themeStyles.textContent += `.${this.themeClassName} {\ncolor-scheme: ${colorScheme};\n}`;
|
|
410
|
+
this.themeStyles.textContent += `.${this.themeClassName} {\ncolor-scheme: ${colorScheme};\n}\n`;
|
|
411
|
+
this.themeStyles.textContent += _class_private_method_get(this, _buildOverrideStyles, buildOverrideStyles).call(this);
|
|
191
412
|
// Ensure that the manager always controls its own style node.
|
|
192
413
|
// Some wrappers may contain other <style> tags and updating/removing a generic
|
|
193
414
|
// querySelector('style') can leave the theme style mounted.
|
|
@@ -195,16 +416,38 @@ function injectThemeStyles() {
|
|
|
195
416
|
this.hot.rootWrapperElement.prepend(this.themeStyles);
|
|
196
417
|
}
|
|
197
418
|
}
|
|
419
|
+
function stampScopeClass() {
|
|
420
|
+
[
|
|
421
|
+
this.hot?.rootWrapperElement,
|
|
422
|
+
this.hot?.rootPortalElement
|
|
423
|
+
].forEach((element)=>{
|
|
424
|
+
if (element) {
|
|
425
|
+
addClass(element, this.scopeClassName);
|
|
426
|
+
}
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
function unstampScopeClass() {
|
|
430
|
+
[
|
|
431
|
+
this.hot?.rootWrapperElement,
|
|
432
|
+
this.hot?.rootPortalElement
|
|
433
|
+
].forEach((element)=>{
|
|
434
|
+
if (element) {
|
|
435
|
+
removeClass(element, this.scopeClassName);
|
|
436
|
+
}
|
|
437
|
+
});
|
|
438
|
+
}
|
|
198
439
|
/**
|
|
199
440
|
* Creates a new ThemeManager instance.
|
|
200
441
|
*
|
|
201
442
|
* @param {object} options - The options object.
|
|
202
443
|
* @param {Handsontable} options.hot - The Handsontable instance.
|
|
203
444
|
* @param {object} options.themeObject - The theme object.
|
|
445
|
+
* @param {object} [options.overrides] - The per-instance color scheme and density overrides.
|
|
204
446
|
* @returns {ThemeManager} The ThemeManager instance.
|
|
205
|
-
*/ export function createThemeManager({ hot, themeObject }) {
|
|
447
|
+
*/ export function createThemeManager({ hot, themeObject, overrides }) {
|
|
206
448
|
return new ThemeManager({
|
|
207
449
|
hot,
|
|
208
|
-
themeObject
|
|
450
|
+
themeObject,
|
|
451
|
+
overrides
|
|
209
452
|
});
|
|
210
453
|
}
|