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
|
@@ -1,1120 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _element = require("../../../helpers/dom/element");
|
|
12
|
-
const _column = /*#__PURE__*/ _interop_require_default(require("./filter/column"));
|
|
13
|
-
const _row = /*#__PURE__*/ _interop_require_default(require("./filter/row"));
|
|
14
|
-
const _renderer = require("./renderer");
|
|
15
|
-
const _column1 = /*#__PURE__*/ _interop_require_default(require("./utils/column"));
|
|
16
|
-
const _row1 = /*#__PURE__*/ _interop_require_default(require("./utils/row"));
|
|
17
|
-
const _overlay = require("./overlay");
|
|
18
|
-
const _a11y = require("../../../helpers/a11y");
|
|
19
|
-
const _errors = require("../../../helpers/errors");
|
|
20
|
-
function _interop_require_default(obj) {
|
|
21
|
-
return obj && obj.__esModule ? obj : {
|
|
22
|
-
default: obj
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* @todo These mixes are never added to the class Table, however their members are used here.
|
|
27
|
-
* @todo Continue: Potentially it works only, because some of these mixes are added to every inherited class.
|
|
28
|
-
* @todo Refactoring, move code from `if(this.isMaster)` into MasterTable, and others like that.
|
|
29
|
-
* @mixes stickyColumnsStart
|
|
30
|
-
* @mixes stickyRowsBottom
|
|
31
|
-
* @mixes stickyRowsTop
|
|
32
|
-
* @mixes calculatedRows
|
|
33
|
-
* @mixes calculatedColumns
|
|
34
|
-
* @abstract
|
|
35
|
-
*/ class Table {
|
|
36
|
-
// Methods defined in subclass MasterTable but called from Table via `this.isMaster` guards.
|
|
37
|
-
/**
|
|
38
|
-
* Aligns overlays with the trimming container.
|
|
39
|
-
*
|
|
40
|
-
* @returns {void}
|
|
41
|
-
*/ alignOverlaysWithTrimmingContainer() {}
|
|
42
|
-
/**
|
|
43
|
-
* Marks oversized column headers.
|
|
44
|
-
*
|
|
45
|
-
* @returns {void}
|
|
46
|
-
*/ markOversizedColumnHeaders() {}
|
|
47
|
-
/**
|
|
48
|
-
* Returns a boolean that is true if this Table represents a specific overlay, identified by the overlay name.
|
|
49
|
-
* For MasterTable, it returns false.
|
|
50
|
-
*
|
|
51
|
-
* @param {string} overlayTypeName The overlay type.
|
|
52
|
-
* @returns {boolean}
|
|
53
|
-
*/ is(overlayTypeName) {
|
|
54
|
-
return this.name === overlayTypeName;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
*
|
|
58
|
-
*/ fixTableDomTree() {
|
|
59
|
-
const rootDocument = this.domBindings.rootDocument;
|
|
60
|
-
this.TBODY = this.TABLE.querySelector('tbody');
|
|
61
|
-
if (!this.TBODY) {
|
|
62
|
-
this.TBODY = rootDocument.createElement('tbody');
|
|
63
|
-
this.TABLE.appendChild(this.TBODY);
|
|
64
|
-
}
|
|
65
|
-
this.THEAD = this.TABLE.querySelector('thead');
|
|
66
|
-
if (!this.THEAD) {
|
|
67
|
-
this.THEAD = rootDocument.createElement('thead');
|
|
68
|
-
this.TABLE.insertBefore(this.THEAD, this.TBODY);
|
|
69
|
-
}
|
|
70
|
-
this.COLGROUP = this.TABLE.querySelector('colgroup');
|
|
71
|
-
if (!this.COLGROUP) {
|
|
72
|
-
this.COLGROUP = rootDocument.createElement('colgroup');
|
|
73
|
-
this.TABLE.insertBefore(this.COLGROUP, this.THEAD);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* @param {HTMLTableElement} table An element to process.
|
|
78
|
-
* @returns {HTMLElement}
|
|
79
|
-
*/ createSpreader(table) {
|
|
80
|
-
const parent = table.parentNode;
|
|
81
|
-
let spreader;
|
|
82
|
-
if (!parent || parent.nodeType !== Node.ELEMENT_NODE || !(0, _element.isHTMLElement)(parent) || !(0, _element.hasClass)(parent, 'wtHolder')) {
|
|
83
|
-
spreader = this.domBindings.rootDocument.createElement('div');
|
|
84
|
-
spreader.className = 'wtSpreader';
|
|
85
|
-
if (parent) {
|
|
86
|
-
// if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it
|
|
87
|
-
table.before(spreader);
|
|
88
|
-
}
|
|
89
|
-
spreader.appendChild(table);
|
|
90
|
-
}
|
|
91
|
-
if (spreader) {
|
|
92
|
-
spreader.style.position = 'relative';
|
|
93
|
-
if (this.wtSettings.getSetting('ariaTags')) {
|
|
94
|
-
(0, _element.setAttribute)(spreader, [
|
|
95
|
-
(0, _a11y.A11Y_PRESENTATION)()
|
|
96
|
-
]);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
return spreader;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* @param {HTMLElement} spreader An element to the hider element is injected.
|
|
103
|
-
* @returns {HTMLElement}
|
|
104
|
-
*/ createHider(spreader) {
|
|
105
|
-
const parent = spreader.parentNode;
|
|
106
|
-
let hider;
|
|
107
|
-
if (!parent || parent.nodeType !== Node.ELEMENT_NODE || !(0, _element.isHTMLElement)(parent) || !(0, _element.hasClass)(parent, 'wtHolder')) {
|
|
108
|
-
hider = this.domBindings.rootDocument.createElement('div');
|
|
109
|
-
hider.className = 'wtHider';
|
|
110
|
-
if (parent) {
|
|
111
|
-
// if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it
|
|
112
|
-
spreader.before(hider);
|
|
113
|
-
}
|
|
114
|
-
hider.appendChild(spreader);
|
|
115
|
-
}
|
|
116
|
-
if (hider && this.wtSettings.getSetting('ariaTags')) {
|
|
117
|
-
(0, _element.setAttribute)(hider, [
|
|
118
|
-
(0, _a11y.A11Y_PRESENTATION)()
|
|
119
|
-
]);
|
|
120
|
-
}
|
|
121
|
-
return hider;
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
*
|
|
125
|
-
* @param {HTMLElement} hider An element to the holder element is injected.
|
|
126
|
-
* @returns {HTMLElement}
|
|
127
|
-
*/ createHolder(hider) {
|
|
128
|
-
const parent = hider.parentNode;
|
|
129
|
-
let holder;
|
|
130
|
-
if (!parent || parent.nodeType !== Node.ELEMENT_NODE || !(0, _element.isHTMLElement)(parent) || !(0, _element.hasClass)(parent, 'wtHolder')) {
|
|
131
|
-
holder = this.domBindings.rootDocument.createElement('div');
|
|
132
|
-
holder.style.position = 'relative';
|
|
133
|
-
holder.className = 'wtHolder';
|
|
134
|
-
if (this.isMaster) {
|
|
135
|
-
(0, _element.setAttribute)(holder, [
|
|
136
|
-
(0, _a11y.A11Y_TABINDEX)(-1)
|
|
137
|
-
]);
|
|
138
|
-
}
|
|
139
|
-
if (parent) {
|
|
140
|
-
// if TABLE is detached (e.g. in Jasmine test), it has no parentNode so we cannot attach holder to it
|
|
141
|
-
hider.before(holder);
|
|
142
|
-
}
|
|
143
|
-
if (this.isMaster) {
|
|
144
|
-
const holderParent = holder.parentNode;
|
|
145
|
-
// holderParent is null when TABLE is detached (e.g. in Jasmine tests); skip class assignment in that case.
|
|
146
|
-
// isHTMLElement() is used instead of `instanceof HTMLElement` because the latter fails in
|
|
147
|
-
// cross-frame contexts (e.g. when HoT is mounted inside an <iframe> via React portals):
|
|
148
|
-
// the iframe's HTMLElement constructor !== the parent frame's HTMLElement.
|
|
149
|
-
if ((0, _element.isHTMLElement)(holderParent)) {
|
|
150
|
-
holderParent.className += 'ht_master handsontable';
|
|
151
|
-
holderParent.setAttribute('dir', this.wtSettings.getSettingPure('rtlMode') ? 'rtl' : 'ltr');
|
|
152
|
-
if (this.wtSettings.getSetting('ariaTags')) {
|
|
153
|
-
(0, _element.setAttribute)(holderParent, [
|
|
154
|
-
(0, _a11y.A11Y_PRESENTATION)()
|
|
155
|
-
]);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
holder.appendChild(hider);
|
|
160
|
-
}
|
|
161
|
-
if (holder && this.wtSettings.getSetting('ariaTags')) {
|
|
162
|
-
(0, _element.setAttribute)(holder, [
|
|
163
|
-
(0, _a11y.A11Y_PRESENTATION)()
|
|
164
|
-
]);
|
|
165
|
-
}
|
|
166
|
-
return holder;
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Redraws the table.
|
|
170
|
-
*
|
|
171
|
-
* @param {boolean} [fastDraw=false] If TRUE, will try to avoid full redraw and only update the border positions.
|
|
172
|
-
* If FALSE or UNDEFINED, will perform a full redraw.
|
|
173
|
-
* @returns {Table}
|
|
174
|
-
*/ draw(fastDraw = false) {
|
|
175
|
-
const { wtSettings } = this;
|
|
176
|
-
const { wtOverlays, wtViewport } = this.dataAccessObject;
|
|
177
|
-
const totalRows = wtSettings.getSetting('totalRows');
|
|
178
|
-
const totalColumns = wtSettings.getSetting('totalColumns');
|
|
179
|
-
const rowHeaders = wtSettings.getSetting('rowHeaders');
|
|
180
|
-
const rowHeadersCount = rowHeaders.length;
|
|
181
|
-
const columnHeaders = wtSettings.getSetting('columnHeaders');
|
|
182
|
-
const columnHeadersCount = columnHeaders.length;
|
|
183
|
-
let runFastDraw = fastDraw;
|
|
184
|
-
if (this.isMaster) {
|
|
185
|
-
wtOverlays.beforeDraw();
|
|
186
|
-
this.holderOffset = (0, _element.offset)(this.holder);
|
|
187
|
-
wtViewport.rowHeightCache.ensureBuilt();
|
|
188
|
-
wtViewport.columnWidthCache.ensureBuilt();
|
|
189
|
-
runFastDraw = wtViewport.createCalculators(runFastDraw);
|
|
190
|
-
if (rowHeadersCount && !wtSettings.getSetting('fixedColumnsStart')) {
|
|
191
|
-
const leftScrollPos = wtOverlays.inlineStartOverlay.getScrollPosition();
|
|
192
|
-
const previousState = this.correctHeaderWidth;
|
|
193
|
-
this.correctHeaderWidth = leftScrollPos !== 0;
|
|
194
|
-
if (previousState !== this.correctHeaderWidth) {
|
|
195
|
-
runFastDraw = false;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
if (runFastDraw) {
|
|
200
|
-
if (this.isMaster) {
|
|
201
|
-
wtOverlays.refresh(true);
|
|
202
|
-
// Fast (scroll) draws skip the full-render header-height pass below, so the master/top
|
|
203
|
-
// header heights can drift against the frozen overlays during scrolling (a tall wrapped
|
|
204
|
-
// frozen header that the master never renders). Re-sync here. The method is a cheap no-op
|
|
205
|
-
// unless the grid has frozen columns with column headers, so non-frozen grids are unaffected.
|
|
206
|
-
this.syncOversizedColumnHeadersWithFrozenOverlays();
|
|
207
|
-
}
|
|
208
|
-
} else {
|
|
209
|
-
if (this.isMaster) {
|
|
210
|
-
this.tableOffset = (0, _element.offset)(this.TABLE);
|
|
211
|
-
} else {
|
|
212
|
-
this.tableOffset = this.dataAccessObject.parentTableOffset;
|
|
213
|
-
}
|
|
214
|
-
const startRow = Math.max(this.getFirstRenderedRow(), 0);
|
|
215
|
-
const startColumn = Math.max(this.getFirstRenderedColumn(), 0);
|
|
216
|
-
this.rowFilter = new _row.default(startRow, wtSettings.getSetting('totalRows'), columnHeadersCount);
|
|
217
|
-
this.columnFilter = new _column.default(startColumn, wtSettings.getSetting('totalColumns'), rowHeadersCount);
|
|
218
|
-
let performRedraw = true;
|
|
219
|
-
// Only master table rendering can be skipped
|
|
220
|
-
if (this.isMaster) {
|
|
221
|
-
this.alignOverlaysWithTrimmingContainer(); // todo It calls method from child class (MasterTable).
|
|
222
|
-
const skipRender = {};
|
|
223
|
-
this.wtSettings.getSetting('beforeDraw', true, skipRender);
|
|
224
|
-
performRedraw = skipRender.skipRender !== true;
|
|
225
|
-
}
|
|
226
|
-
if (performRedraw) {
|
|
227
|
-
this.tableRenderer.setHeaderContentRenderers(rowHeaders, columnHeaders);
|
|
228
|
-
if (this.is(_overlay.CLONE_BOTTOM) || this.is(_overlay.CLONE_BOTTOM_INLINE_START_CORNER)) {
|
|
229
|
-
// do NOT render headers on the bottom or bottom-left corner overlay
|
|
230
|
-
this.tableRenderer.setHeaderContentRenderers(rowHeaders, []);
|
|
231
|
-
}
|
|
232
|
-
this.resetOversizedRows();
|
|
233
|
-
this.tableRenderer.setActiveOverlayName(this.name).setViewportSize(this.getRenderedRowsCount(), this.getRenderedColumnsCount()).setFilters(this.rowFilter, this.columnFilter).render();
|
|
234
|
-
if (this.isMaster) {
|
|
235
|
-
this.markOversizedColumnHeaders();
|
|
236
|
-
}
|
|
237
|
-
this.adjustColumnHeaderHeights();
|
|
238
|
-
if (this.isMaster) {
|
|
239
|
-
this.syncOversizedColumnHeadersWithDOM();
|
|
240
|
-
}
|
|
241
|
-
if (this.isMaster || this.is(_overlay.CLONE_BOTTOM)) {
|
|
242
|
-
this.markOversizedRows();
|
|
243
|
-
}
|
|
244
|
-
if (this.isMaster) {
|
|
245
|
-
if (!this.wtSettings.getSetting('externalRowCalculator')) {
|
|
246
|
-
wtViewport.rowHeightCache.ensureBuilt();
|
|
247
|
-
wtViewport.columnWidthCache.ensureBuilt();
|
|
248
|
-
wtViewport.createVisibleCalculators();
|
|
249
|
-
}
|
|
250
|
-
wtOverlays.refresh(false);
|
|
251
|
-
this.syncOversizedColumnHeadersWithFrozenOverlays();
|
|
252
|
-
wtOverlays.applyToDOM();
|
|
253
|
-
this.wtSettings.getSetting('onDraw', true);
|
|
254
|
-
} else if (this.is(_overlay.CLONE_BOTTOM)) {
|
|
255
|
-
this.dataAccessObject.cloneSource.wtOverlays.adjustElementsSize();
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
let positionChanged = false;
|
|
260
|
-
if (this.isMaster) {
|
|
261
|
-
positionChanged = wtOverlays.topOverlay.resetFixedPosition();
|
|
262
|
-
if (wtOverlays.bottomOverlay.clone) {
|
|
263
|
-
positionChanged = wtOverlays.bottomOverlay.resetFixedPosition() || positionChanged;
|
|
264
|
-
}
|
|
265
|
-
positionChanged = wtOverlays.inlineStartOverlay.resetFixedPosition() || positionChanged;
|
|
266
|
-
if (wtOverlays.topInlineStartCornerOverlay) {
|
|
267
|
-
wtOverlays.topInlineStartCornerOverlay.resetFixedPosition();
|
|
268
|
-
}
|
|
269
|
-
if (wtOverlays.bottomInlineStartCornerOverlay && wtOverlays.bottomInlineStartCornerOverlay.clone) {
|
|
270
|
-
wtOverlays.bottomInlineStartCornerOverlay.resetFixedPosition();
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
if (positionChanged) {
|
|
274
|
-
// It refreshes the cells borders caused by a 1px shift (introduced by overlays which add or
|
|
275
|
-
// remove `innerBorderTop` and `innerBorderInlineStart` CSS classes to the DOM element. This happens
|
|
276
|
-
// when there is a switch between rendering from 0 to N rows/columns and vice versa).
|
|
277
|
-
wtOverlays.refreshAll(); // `refreshAll()` internally already calls `refreshSelections()` method
|
|
278
|
-
wtOverlays.adjustElementsSize();
|
|
279
|
-
} else {
|
|
280
|
-
this.dataAccessObject.selectionManager.setActiveOverlay(this.facadeGetter()).render(runFastDraw);
|
|
281
|
-
}
|
|
282
|
-
if (this.isMaster) {
|
|
283
|
-
wtOverlays.afterDraw();
|
|
284
|
-
}
|
|
285
|
-
this.dataAccessObject.drawn = true;
|
|
286
|
-
return this;
|
|
287
|
-
}
|
|
288
|
-
/**
|
|
289
|
-
* @param {number} col The visual column index.
|
|
290
|
-
*/ markIfOversizedColumnHeader(col) {
|
|
291
|
-
const sourceColIndex = this.columnFilter.renderedToSource(col);
|
|
292
|
-
let level = this.wtSettings.getSetting('columnHeaders').length;
|
|
293
|
-
const defaultRowHeight = this.wtSettings.getSetting('stylesHandler').getDefaultRowHeight();
|
|
294
|
-
let previousColHeaderHeight;
|
|
295
|
-
let currentHeader;
|
|
296
|
-
let currentHeaderHeight;
|
|
297
|
-
const columnHeaderHeightSetting = this.wtSettings.getSetting('columnHeaderHeight') || [];
|
|
298
|
-
while(level){
|
|
299
|
-
level -= 1;
|
|
300
|
-
previousColHeaderHeight = this.getColumnHeaderHeight(level);
|
|
301
|
-
currentHeader = this.getColumnHeader(sourceColIndex, level);
|
|
302
|
-
if (!currentHeader) {
|
|
303
|
-
continue;
|
|
304
|
-
}
|
|
305
|
-
currentHeaderHeight = (0, _element.innerHeight)(currentHeader);
|
|
306
|
-
if (!previousColHeaderHeight && defaultRowHeight < currentHeaderHeight || previousColHeaderHeight < currentHeaderHeight) {
|
|
307
|
-
this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = currentHeaderHeight;
|
|
308
|
-
}
|
|
309
|
-
if (Array.isArray(columnHeaderHeightSetting)) {
|
|
310
|
-
if (columnHeaderHeightSetting[level] !== null && columnHeaderHeightSetting[level] !== undefined) {
|
|
311
|
-
this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting[level];
|
|
312
|
-
}
|
|
313
|
-
} else if (!isNaN(columnHeaderHeightSetting)) {
|
|
314
|
-
this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting;
|
|
315
|
-
}
|
|
316
|
-
const headerHeightAtLevel = Array.isArray(columnHeaderHeightSetting) // eslint-disable-line max-len
|
|
317
|
-
? columnHeaderHeightSetting[level] ?? 0 : columnHeaderHeightSetting;
|
|
318
|
-
if ((this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] ?? 0) < headerHeightAtLevel) {
|
|
319
|
-
this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = headerHeightAtLevel;
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
/**
|
|
324
|
-
*
|
|
325
|
-
*/ adjustColumnHeaderHeights() {
|
|
326
|
-
const { wtSettings } = this;
|
|
327
|
-
const children = this.THEAD.childNodes;
|
|
328
|
-
const oversizedColumnHeaders = this.dataAccessObject.wtViewport.oversizedColumnHeaders;
|
|
329
|
-
const columnHeaders = wtSettings.getSetting('columnHeaders');
|
|
330
|
-
for(let i = 0, len = columnHeaders.length; i < len; i++){
|
|
331
|
-
if (oversizedColumnHeaders[i]) {
|
|
332
|
-
if (!children[i] || children[i].childNodes.length === 0) {
|
|
333
|
-
return;
|
|
334
|
-
}
|
|
335
|
-
const firstChild = children[i].childNodes[0];
|
|
336
|
-
if ((0, _element.isHTMLElement)(firstChild)) {
|
|
337
|
-
firstChild.style.height = `${oversizedColumnHeaders[i]}px`;
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
/**
|
|
343
|
-
* After the master table applies `oversizedColumnHeaders` via `adjustColumnHeaderHeights`,
|
|
344
|
-
* the actual THEAD row heights may exceed the stored values when header content (e.g.,
|
|
345
|
-
* wrapping text) pushes cells taller than the configured `columnHeaderHeight`. This method
|
|
346
|
-
* re-reads the rendered THEAD row heights and updates `oversizedColumnHeaders` so that
|
|
347
|
-
* overlay tables receive the correct values during their own `adjustColumnHeaderHeights`.
|
|
348
|
-
*/ syncOversizedColumnHeadersWithDOM() {
|
|
349
|
-
const { wtSettings } = this;
|
|
350
|
-
const children = this.THEAD.childNodes;
|
|
351
|
-
const oversizedColumnHeaders = this.dataAccessObject.wtViewport.oversizedColumnHeaders;
|
|
352
|
-
const columnHeaders = wtSettings.getSetting('columnHeaders');
|
|
353
|
-
const borderCompensation = 1;
|
|
354
|
-
for(let i = 0, len = columnHeaders.length; i < len; i++){
|
|
355
|
-
if (!children[i] || !oversizedColumnHeaders[i]) {
|
|
356
|
-
continue;
|
|
357
|
-
}
|
|
358
|
-
const child = children[i];
|
|
359
|
-
const actualRowHeight = (0, _element.isHTMLElement)(child) ? (0, _element.innerHeight)(child) : 0;
|
|
360
|
-
if (actualRowHeight > (oversizedColumnHeaders[i] ?? 0) + borderCompensation) {
|
|
361
|
-
oversizedColumnHeaders[i] = actualRowHeight;
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
/**
|
|
366
|
-
* Frozen column headers (e.g., with `white-space: normal`) are rendered only in the frozen
|
|
367
|
-
* overlays, never in the master table's THEAD. When such a header is taller than the headers
|
|
368
|
-
* of the scrollable columns, the master and top overlay THEADs render shorter than the corner
|
|
369
|
-
* and inline-start overlays, so the frozen overlay body rows sit shifted against the master.
|
|
370
|
-
* The gap can be sub-pixel: under browser zoom the frozen header content is a fraction of a
|
|
371
|
-
* pixel taller than the applied height, and that fraction accumulates into a visible 1px shift.
|
|
372
|
-
*
|
|
373
|
-
* This method runs after the frozen overlays have rendered. It reads the corner overlay's
|
|
374
|
-
* content-driven THEAD row heights with sub-pixel precision and forces the matching master and
|
|
375
|
-
* top overlay header cells to the same height so every overlay THEAD ends up the same height
|
|
376
|
-
* and the body rows stay pixel-aligned.
|
|
377
|
-
*
|
|
378
|
-
* It deliberately does NOT write to `wtViewport.oversizedColumnHeaders`. That cache is applied
|
|
379
|
-
* back to the corner overlay on the next render; growing it here would inflate the corner cell,
|
|
380
|
-
* which would then be re-measured taller, ratcheting the height up every render. Reading the
|
|
381
|
-
* corner's natural (content-driven) height and only adjusting the master/top side keeps the
|
|
382
|
-
* synchronization stable and lets the header shrink again when the content allows.
|
|
383
|
-
*/ syncOversizedColumnHeadersWithFrozenOverlays() {
|
|
384
|
-
const { wtOverlays } = this.dataAccessObject;
|
|
385
|
-
// Cheapest possible bail-out first: with no frozen columns the corner overlay is not cloned,
|
|
386
|
-
// so the overwhelmingly common (non-frozen) grids pay only a couple of property reads per draw.
|
|
387
|
-
const cornerClone = wtOverlays.topInlineStartCornerOverlay?.clone;
|
|
388
|
-
if (!cornerClone?.wtTable?.THEAD) {
|
|
389
|
-
return;
|
|
390
|
-
}
|
|
391
|
-
const columnHeaders = this.wtSettings.getSetting('columnHeaders');
|
|
392
|
-
if (!columnHeaders.length) {
|
|
393
|
-
return;
|
|
394
|
-
}
|
|
395
|
-
const cornerChildren = cornerClone.wtTable.THEAD.childNodes;
|
|
396
|
-
const topClone = wtOverlays.topOverlay?.clone;
|
|
397
|
-
const targetTheads = [
|
|
398
|
-
this.THEAD,
|
|
399
|
-
topClone?.wtTable?.THEAD
|
|
400
|
-
];
|
|
401
|
-
// Sub-pixel tolerance to avoid rewriting heights on floating-point jitter while still
|
|
402
|
-
// catching the fractional gaps (e.g. ~0.33px at 75% zoom) that read as a 1px shift.
|
|
403
|
-
const epsilon = 0.1;
|
|
404
|
-
for(let i = 0, len = columnHeaders.length; i < len; i++){
|
|
405
|
-
const cornerChild = cornerChildren[i];
|
|
406
|
-
if (!(cornerChild instanceof HTMLElement)) {
|
|
407
|
-
continue;
|
|
408
|
-
}
|
|
409
|
-
const cornerRowHeight = cornerChild.getBoundingClientRect().height;
|
|
410
|
-
targetTheads.forEach((thead)=>{
|
|
411
|
-
const targetRow = thead?.childNodes[i];
|
|
412
|
-
if (!(targetRow instanceof HTMLElement) || targetRow.childNodes.length === 0) {
|
|
413
|
-
return;
|
|
414
|
-
}
|
|
415
|
-
const firstChild = targetRow.childNodes[0];
|
|
416
|
-
if (!(firstChild instanceof HTMLElement)) {
|
|
417
|
-
return;
|
|
418
|
-
}
|
|
419
|
-
if (Math.abs(targetRow.getBoundingClientRect().height - cornerRowHeight) > epsilon) {
|
|
420
|
-
firstChild.style.height = `${cornerRowHeight}px`;
|
|
421
|
-
}
|
|
422
|
-
});
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
|
-
/**
|
|
426
|
-
* Resets cache of row heights. The cache should be cached for each render cycle in a case
|
|
427
|
-
* when new cell values have content which increases/decreases cell height.
|
|
428
|
-
*/ resetOversizedRows() {
|
|
429
|
-
const { wtSettings } = this;
|
|
430
|
-
const { wtViewport } = this.dataAccessObject;
|
|
431
|
-
if (!this.isMaster && !this.is(_overlay.CLONE_BOTTOM)) {
|
|
432
|
-
return;
|
|
433
|
-
}
|
|
434
|
-
if (!wtSettings.getSetting('externalRowCalculator')) {
|
|
435
|
-
const rowsToRender = this.getRenderedRowsCount();
|
|
436
|
-
// Reset the oversized row cache for rendered rows
|
|
437
|
-
for(let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++){
|
|
438
|
-
const sourceRow = this.rowFilter.renderedToSource(visibleRowIndex);
|
|
439
|
-
if (wtViewport.oversizedRows && wtViewport.oversizedRows[sourceRow]) {
|
|
440
|
-
wtViewport.oversizedRows[sourceRow] = undefined;
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
}
|
|
445
|
-
/**
|
|
446
|
-
* Get cell element at coords.
|
|
447
|
-
* Negative coords.row or coords.col are used to retrieve header cells. If there are multiple header levels, the
|
|
448
|
-
* negative value corresponds to the distance from the working area. For example, when there are 3 levels of column
|
|
449
|
-
* headers, coords.col=-1 corresponds to the most inner header element, while coords.col=-3 corresponds to the
|
|
450
|
-
* outmost header element.
|
|
451
|
-
*
|
|
452
|
-
* In case an element for the coords is not rendered, the method returns an error code.
|
|
453
|
-
* To produce the error code, the input parameters are validated in the order in which they
|
|
454
|
-
* are given. Thus, if both the row and the column coords are out of the rendered bounds,
|
|
455
|
-
* the method returns the error code for the row.
|
|
456
|
-
*
|
|
457
|
-
* @param {CellCoords} coords The cell coordinates.
|
|
458
|
-
* @returns {HTMLElement|number} HTMLElement on success or Number one of the exit codes on error:
|
|
459
|
-
* -1 row before viewport
|
|
460
|
-
* -2 row after viewport
|
|
461
|
-
* -3 column before viewport
|
|
462
|
-
* -4 column after viewport.
|
|
463
|
-
*/ getCell(coords) {
|
|
464
|
-
if (coords.row === null || coords.col === null) {
|
|
465
|
-
return -5;
|
|
466
|
-
}
|
|
467
|
-
let row = coords.row;
|
|
468
|
-
let column = coords.col;
|
|
469
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
470
|
-
const hookResult = this.wtSettings.getSetting('onModifyGetCellCoords', row, column, !this.isMaster, 'render');
|
|
471
|
-
if (hookResult && Array.isArray(hookResult)) {
|
|
472
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
473
|
-
[row, column] = hookResult;
|
|
474
|
-
}
|
|
475
|
-
if (this.isRowBeforeRenderedRows(row)) {
|
|
476
|
-
// row before rendered rows
|
|
477
|
-
return -1;
|
|
478
|
-
} else if (this.isRowAfterRenderedRows(row)) {
|
|
479
|
-
// row after rendered rows
|
|
480
|
-
return -2;
|
|
481
|
-
} else if (this.isColumnBeforeRenderedColumns(column)) {
|
|
482
|
-
// column before rendered columns
|
|
483
|
-
return -3;
|
|
484
|
-
} else if (this.isColumnAfterRenderedColumns(column)) {
|
|
485
|
-
// column after rendered columns
|
|
486
|
-
return -4;
|
|
487
|
-
}
|
|
488
|
-
const TR = this.getRow(row);
|
|
489
|
-
if (!TR && row >= 0) {
|
|
490
|
-
(0, _errors.throwWithCause)('TR was expected to be rendered but is not');
|
|
491
|
-
}
|
|
492
|
-
const trElement = TR !== false ? TR : null;
|
|
493
|
-
const TD = trElement?.childNodes[this.columnFilter.sourceColumnToVisibleRowHeadedColumn(column)];
|
|
494
|
-
if (!TD && column >= 0) {
|
|
495
|
-
(0, _errors.throwWithCause)('TD or TH was expected to be rendered but is not');
|
|
496
|
-
}
|
|
497
|
-
// TD is a TD/TH HTMLElement guaranteed by DOM structure. TypeScript cannot narrow ChildNode
|
|
498
|
-
// to HTMLElement without instanceof, but adding a throw here would change the existing contract
|
|
499
|
-
// for negative column (header) lookups where TD may be undefined.
|
|
500
|
-
return TD;
|
|
501
|
-
}
|
|
502
|
-
/**
|
|
503
|
-
* Get the DOM element of the row with the provided index.
|
|
504
|
-
*
|
|
505
|
-
* @param {number} rowIndex Row index.
|
|
506
|
-
* @returns {HTMLTableRowElement|boolean} Return the row's DOM element or `false` if the row with the provided
|
|
507
|
-
* index doesn't exist.
|
|
508
|
-
*/ getRow(rowIndex) {
|
|
509
|
-
let renderedRowIndex = null;
|
|
510
|
-
let parentElement = null;
|
|
511
|
-
if (rowIndex < 0) {
|
|
512
|
-
renderedRowIndex = this.rowFilter?.sourceRowToVisibleColHeadedRow(rowIndex);
|
|
513
|
-
parentElement = this.THEAD;
|
|
514
|
-
} else {
|
|
515
|
-
renderedRowIndex = this.rowFilter?.sourceToRendered(rowIndex);
|
|
516
|
-
parentElement = this.TBODY;
|
|
517
|
-
}
|
|
518
|
-
if (renderedRowIndex !== undefined && renderedRowIndex !== null && parentElement !== null) {
|
|
519
|
-
if (parentElement.childNodes.length < renderedRowIndex + 1) {
|
|
520
|
-
return false;
|
|
521
|
-
} else {
|
|
522
|
-
return parentElement.childNodes[renderedRowIndex];
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
return false;
|
|
526
|
-
}
|
|
527
|
-
/**
|
|
528
|
-
* GetColumnHeader.
|
|
529
|
-
*
|
|
530
|
-
* @param {number} col Column index.
|
|
531
|
-
* @param {number} [level=0] Header level (0 = most distant to the table).
|
|
532
|
-
* @returns {object} HTMLElement on success or undefined on error.
|
|
533
|
-
*/ getColumnHeader(col, level = 0) {
|
|
534
|
-
const TR = this.THEAD.childNodes[level];
|
|
535
|
-
const TH = TR?.childNodes[this.columnFilter.sourceColumnToVisibleRowHeadedColumn(col)];
|
|
536
|
-
return (0, _element.isHTMLElement)(TH) ? TH : undefined;
|
|
537
|
-
}
|
|
538
|
-
/**
|
|
539
|
-
* Gets all columns headers (TH elements) from the table.
|
|
540
|
-
*
|
|
541
|
-
* @param {number} column A source column index.
|
|
542
|
-
* @returns {HTMLTableCellElement[]}
|
|
543
|
-
*/ getColumnHeaders(column) {
|
|
544
|
-
const THs = [];
|
|
545
|
-
const visibleColumn = this.columnFilter.sourceColumnToVisibleRowHeadedColumn(column);
|
|
546
|
-
this.THEAD.childNodes.forEach((TR)=>{
|
|
547
|
-
const TH = TR.childNodes[visibleColumn];
|
|
548
|
-
if ((0, _element.isHTMLTableCellElement)(TH)) {
|
|
549
|
-
THs.push(TH);
|
|
550
|
-
}
|
|
551
|
-
});
|
|
552
|
-
return THs;
|
|
553
|
-
}
|
|
554
|
-
/**
|
|
555
|
-
* GetRowHeader.
|
|
556
|
-
*
|
|
557
|
-
* @param {number} row Row index.
|
|
558
|
-
* @param {number} [level=0] Header level (0 = most distant to the table).
|
|
559
|
-
* @returns {HTMLElement} HTMLElement on success or Number one of the exit codes on error: `null table doesn't have
|
|
560
|
-
* row headers`.
|
|
561
|
-
*/ getRowHeader(row, level = 0) {
|
|
562
|
-
const rowHeadersCount = this.wtSettings.getSetting('rowHeaders').length;
|
|
563
|
-
if (level >= rowHeadersCount) {
|
|
564
|
-
return undefined;
|
|
565
|
-
}
|
|
566
|
-
const renderedRow = this.rowFilter.sourceToRendered(row);
|
|
567
|
-
const visibleRow = renderedRow < 0 ? this.rowFilter.sourceRowToVisibleColHeadedRow(row) : renderedRow;
|
|
568
|
-
const parentElement = renderedRow < 0 ? this.THEAD : this.TBODY;
|
|
569
|
-
const TR = parentElement?.childNodes[visibleRow];
|
|
570
|
-
const TH = TR?.childNodes[level];
|
|
571
|
-
return (0, _element.isHTMLElement)(TH) ? TH : undefined;
|
|
572
|
-
}
|
|
573
|
-
/**
|
|
574
|
-
* Gets all rows headers (TH elements) from the table.
|
|
575
|
-
*
|
|
576
|
-
* @param {number} row A source row index.
|
|
577
|
-
* @returns {HTMLTableCellElement[]}
|
|
578
|
-
*/ getRowHeaders(row) {
|
|
579
|
-
const THs = [];
|
|
580
|
-
const rowHeadersCount = this.wtSettings.getSetting('rowHeaders').length;
|
|
581
|
-
for(let renderedRowIndex = 0; renderedRowIndex < rowHeadersCount; renderedRowIndex++){
|
|
582
|
-
const TR = this.TBODY.childNodes[this.rowFilter.sourceToRendered(row)];
|
|
583
|
-
const TH = TR?.childNodes[renderedRowIndex];
|
|
584
|
-
if (TH) {
|
|
585
|
-
THs.push(TH);
|
|
586
|
-
}
|
|
587
|
-
}
|
|
588
|
-
return THs;
|
|
589
|
-
}
|
|
590
|
-
/**
|
|
591
|
-
* Returns cell coords object for a given TD (or a child element of a TD element).
|
|
592
|
-
*
|
|
593
|
-
* @param {HTMLTableCellElement} TD A cell DOM element (or a child of one).
|
|
594
|
-
* @returns {CellCoords|null} The coordinates of the provided TD element (or the closest TD element) or null, if the
|
|
595
|
-
* provided element is not applicable.
|
|
596
|
-
*/ getCoords(TD) {
|
|
597
|
-
let cellElement = TD;
|
|
598
|
-
if (cellElement.nodeName !== 'TD' && cellElement.nodeName !== 'TH') {
|
|
599
|
-
cellElement = (0, _element.closest)(cellElement, [
|
|
600
|
-
'TD',
|
|
601
|
-
'TH'
|
|
602
|
-
]);
|
|
603
|
-
}
|
|
604
|
-
if (cellElement === null) {
|
|
605
|
-
return null;
|
|
606
|
-
}
|
|
607
|
-
const TR = cellElement.parentNode;
|
|
608
|
-
if (!TR) {
|
|
609
|
-
return null;
|
|
610
|
-
}
|
|
611
|
-
const CONTAINER = TR.parentNode;
|
|
612
|
-
if (!CONTAINER) {
|
|
613
|
-
return null;
|
|
614
|
-
}
|
|
615
|
-
let row = (0, _element.isHTMLElement)(TR) ? (0, _element.index)(TR) : 0;
|
|
616
|
-
let col = (0, _element.isHTMLTableCellElement)(cellElement) ? cellElement.cellIndex : 0;
|
|
617
|
-
if ((0, _element.overlayContainsElement)(_overlay.CLONE_TOP_INLINE_START_CORNER, cellElement, this.wtRootElement) || (0, _element.overlayContainsElement)(_overlay.CLONE_TOP, cellElement, this.wtRootElement)) {
|
|
618
|
-
if (CONTAINER.nodeName === 'THEAD') {
|
|
619
|
-
row -= CONTAINER.childNodes.length;
|
|
620
|
-
}
|
|
621
|
-
} else if ((0, _element.overlayContainsElement)(_overlay.CLONE_BOTTOM_INLINE_START_CORNER, cellElement, this.wtRootElement) || (0, _element.overlayContainsElement)(_overlay.CLONE_BOTTOM, cellElement, this.wtRootElement)) {
|
|
622
|
-
const totalRows = this.wtSettings.getSetting('totalRows');
|
|
623
|
-
row = totalRows - CONTAINER.childNodes.length + row;
|
|
624
|
-
} else if (CONTAINER === this.THEAD) {
|
|
625
|
-
row = this.rowFilter.visibleColHeadedRowToSourceRow(row);
|
|
626
|
-
} else if (this.rowFilter) {
|
|
627
|
-
row = this.rowFilter.renderedToSource(row);
|
|
628
|
-
}
|
|
629
|
-
if ((0, _element.overlayContainsElement)(_overlay.CLONE_TOP_INLINE_START_CORNER, cellElement, this.wtRootElement) || (0, _element.overlayContainsElement)(_overlay.CLONE_INLINE_START, cellElement, this.wtRootElement) || (0, _element.overlayContainsElement)(_overlay.CLONE_BOTTOM_INLINE_START_CORNER, cellElement, this.wtRootElement)) {
|
|
630
|
-
col = this.columnFilter.offsettedTH(col);
|
|
631
|
-
} else if (this.columnFilter) {
|
|
632
|
-
col = this.columnFilter.visibleRowHeadedColumnToSourceColumn(col);
|
|
633
|
-
}
|
|
634
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
635
|
-
const hookResult = this.wtSettings.getSetting('onModifyGetCoordsElement', row, col);
|
|
636
|
-
if (hookResult && Array.isArray(hookResult)) {
|
|
637
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
638
|
-
[row, col] = hookResult;
|
|
639
|
-
}
|
|
640
|
-
return this.wot.createCellCoords(row, col);
|
|
641
|
-
}
|
|
642
|
-
/**
|
|
643
|
-
* Check if any of the rendered rows is higher than expected, and if so, cache them.
|
|
644
|
-
*/ markOversizedRows() {
|
|
645
|
-
if (this.wtSettings.getSetting('externalRowCalculator')) {
|
|
646
|
-
return;
|
|
647
|
-
}
|
|
648
|
-
let rowCount = this.TBODY.childNodes.length;
|
|
649
|
-
const stylesHandler = this.wtSettings.getSetting('stylesHandler');
|
|
650
|
-
const expectedTableHeight = rowCount * stylesHandler.getDefaultRowHeight();
|
|
651
|
-
const actualTableHeight = (0, _element.innerHeight)(this.TBODY) - 1;
|
|
652
|
-
const borderBoxSizing = stylesHandler.areCellsBorderBox();
|
|
653
|
-
const rowHeightFn = borderBoxSizing ? _element.outerHeight : _element.innerHeight;
|
|
654
|
-
const borderCompensation = borderBoxSizing ? 0 : 1;
|
|
655
|
-
const firstRowBorderCompensation = borderBoxSizing ? 1 : 0;
|
|
656
|
-
let previousRowHeight;
|
|
657
|
-
let rowCurrentHeight;
|
|
658
|
-
let sourceRowIndex;
|
|
659
|
-
let currentTr;
|
|
660
|
-
let rowHeader;
|
|
661
|
-
if (expectedTableHeight === actualTableHeight && !this.wtSettings.getSetting('fixedRowsBottom')) {
|
|
662
|
-
// If the actual table height equals rowCount * default single row height, no row is oversized -> no need to iterate over them
|
|
663
|
-
return;
|
|
664
|
-
}
|
|
665
|
-
const { wtViewport } = this.dataAccessObject;
|
|
666
|
-
let hasChanges = false;
|
|
667
|
-
while(rowCount){
|
|
668
|
-
rowCount -= 1;
|
|
669
|
-
sourceRowIndex = this.rowFilter.renderedToSource(rowCount);
|
|
670
|
-
previousRowHeight = this.getRowHeight(sourceRowIndex);
|
|
671
|
-
currentTr = this.getTrForRow(sourceRowIndex);
|
|
672
|
-
rowHeader = currentTr.querySelector('th');
|
|
673
|
-
// Use the rendered row index (rowCount === 0 is always the first <tr> in this tbody),
|
|
674
|
-
// not the source row index (which would be wrong for clones whose first rendered row
|
|
675
|
-
// has a different source index). Any tbody's first <tr> gets border-top: 1px from the
|
|
676
|
-
// tr:first-child CSS rule, so the compensation applies regardless of source identity.
|
|
677
|
-
const topBorderCompensation = rowCount === 0 ? firstRowBorderCompensation : 0;
|
|
678
|
-
if (rowHeader) {
|
|
679
|
-
rowCurrentHeight = rowHeightFn(rowHeader);
|
|
680
|
-
} else {
|
|
681
|
-
rowCurrentHeight = rowHeightFn(currentTr) - borderCompensation;
|
|
682
|
-
}
|
|
683
|
-
if (!previousRowHeight && stylesHandler.getDefaultRowHeight() < rowCurrentHeight - topBorderCompensation || previousRowHeight !== undefined && previousRowHeight < rowCurrentHeight) {
|
|
684
|
-
if (!borderBoxSizing) {
|
|
685
|
-
rowCurrentHeight += 1;
|
|
686
|
-
}
|
|
687
|
-
wtViewport.oversizedRows[sourceRowIndex] = rowCurrentHeight;
|
|
688
|
-
hasChanges = true;
|
|
689
|
-
}
|
|
690
|
-
}
|
|
691
|
-
if (hasChanges) {
|
|
692
|
-
wtViewport.rowHeightCache.invalidate();
|
|
693
|
-
}
|
|
694
|
-
}
|
|
695
|
-
/**
|
|
696
|
-
* @param {number} row The visual row index.
|
|
697
|
-
* @returns {HTMLTableRowElement}
|
|
698
|
-
*/ getTrForRow(row) {
|
|
699
|
-
return this.TBODY.childNodes[this.rowFilter.sourceToRendered(row)];
|
|
700
|
-
}
|
|
701
|
-
/**
|
|
702
|
-
* Checks if the column index (negative value from -1 to N) is rendered.
|
|
703
|
-
*
|
|
704
|
-
* @param {number} column The column index (negative value from -1 to N).
|
|
705
|
-
* @returns {boolean}
|
|
706
|
-
*/ isColumnHeaderRendered(column) {
|
|
707
|
-
if (column >= 0) {
|
|
708
|
-
return false;
|
|
709
|
-
}
|
|
710
|
-
const rowHeaders = this.wtSettings.getSetting('rowHeaders');
|
|
711
|
-
const rowHeadersCount = rowHeaders.length;
|
|
712
|
-
return Math.abs(column) <= rowHeadersCount;
|
|
713
|
-
}
|
|
714
|
-
/**
|
|
715
|
-
* Checks if the row index (negative value from -1 to N) is rendered.
|
|
716
|
-
*
|
|
717
|
-
* @param {number} row The row index (negative value from -1 to N).
|
|
718
|
-
* @returns {boolean}
|
|
719
|
-
*/ isRowHeaderRendered(row) {
|
|
720
|
-
if (row >= 0) {
|
|
721
|
-
return false;
|
|
722
|
-
}
|
|
723
|
-
const columnHeaders = this.wtSettings.getSetting('columnHeaders');
|
|
724
|
-
const columnHeadersCount = columnHeaders.length;
|
|
725
|
-
return Math.abs(row) <= columnHeadersCount;
|
|
726
|
-
}
|
|
727
|
-
/**
|
|
728
|
-
* Check if the given row index is lower than the index of the first row that
|
|
729
|
-
* is currently rendered and return TRUE in that case, or FALSE otherwise.
|
|
730
|
-
*
|
|
731
|
-
* Negative row index is used to check the columns' headers.
|
|
732
|
-
*
|
|
733
|
-
* Headers
|
|
734
|
-
* +--------------+ │
|
|
735
|
-
* -3 │ │ │ │ │
|
|
736
|
-
* +--------------+ │
|
|
737
|
-
* -2 │ │ │ │ │ TRUE
|
|
738
|
-
* +--------------+ │
|
|
739
|
-
* -1 │ │ │ │ │
|
|
740
|
-
* Cells +==================+ │
|
|
741
|
-
* 0 ┇ ┇ ┇ ┇ <--- For fixedRowsTop: 1 │
|
|
742
|
-
* +--------------+ the master overlay do ---+ first rendered row (index 1)
|
|
743
|
-
* 1 │ A2 │ B2 │ C2 │ not render the first row. │
|
|
744
|
-
* +--------------+ │ FALSE
|
|
745
|
-
* 2 │ A3 │ B3 │ C3 │ │
|
|
746
|
-
* +--------------+ ---+ last rendered row
|
|
747
|
-
* │
|
|
748
|
-
* │ FALSE
|
|
749
|
-
*
|
|
750
|
-
* @param {number} row The visual row index.
|
|
751
|
-
* @memberof Table#
|
|
752
|
-
* @function isRowBeforeRenderedRows
|
|
753
|
-
* @returns {boolean}
|
|
754
|
-
*/ isRowBeforeRenderedRows(row) {
|
|
755
|
-
const first = this.getFirstRenderedRow();
|
|
756
|
-
// Check the headers only in case when the first rendered row is -1 or 0.
|
|
757
|
-
// This is an indication that the overlay is placed on the most top position.
|
|
758
|
-
if (row < 0 && first <= 0) {
|
|
759
|
-
return !this.isRowHeaderRendered(row);
|
|
760
|
-
}
|
|
761
|
-
return row < first;
|
|
762
|
-
}
|
|
763
|
-
/**
|
|
764
|
-
* Check if the given column index is greater than the index of the last column that
|
|
765
|
-
* is currently rendered and return TRUE in that case, or FALSE otherwise.
|
|
766
|
-
*
|
|
767
|
-
* The negative row index is used to check the columns' headers. However,
|
|
768
|
-
* keep in mind that for negative indexes, the method always returns FALSE as
|
|
769
|
-
* it is not possible to render headers partially. The "after" index can not be
|
|
770
|
-
* lower than -1.
|
|
771
|
-
*
|
|
772
|
-
* Headers
|
|
773
|
-
* +--------------+ │
|
|
774
|
-
* -3 │ │ │ │ │
|
|
775
|
-
* +--------------+ │
|
|
776
|
-
* -2 │ │ │ │ │ FALSE
|
|
777
|
-
* +--------------+ │
|
|
778
|
-
* -1 │ │ │ │ │
|
|
779
|
-
* Cells +==================+ │
|
|
780
|
-
* 0 ┇ ┇ ┇ ┇ <--- For fixedRowsTop: 1 │
|
|
781
|
-
* +--------------+ the master overlay do ---+ first rendered row (index 1)
|
|
782
|
-
* 1 │ A2 │ B2 │ C2 │ not render the first rows │
|
|
783
|
-
* +--------------+ │ FALSE
|
|
784
|
-
* 2 │ A3 │ B3 │ C3 │ │
|
|
785
|
-
* +--------------+ ---+ last rendered row
|
|
786
|
-
* │
|
|
787
|
-
* │ TRUE
|
|
788
|
-
*
|
|
789
|
-
* @param {number} row The visual row index.
|
|
790
|
-
* @memberof Table#
|
|
791
|
-
* @function isRowAfterRenderedRows
|
|
792
|
-
* @returns {boolean}
|
|
793
|
-
*/ isRowAfterRenderedRows(row) {
|
|
794
|
-
return row > this.getLastRenderedRow();
|
|
795
|
-
}
|
|
796
|
-
/**
|
|
797
|
-
* Check if the given column index is lower than the index of the first column that
|
|
798
|
-
* is currently rendered and return TRUE in that case, or FALSE otherwise.
|
|
799
|
-
*
|
|
800
|
-
* Negative column index is used to check the rows' headers.
|
|
801
|
-
*
|
|
802
|
-
* For fixedColumnsStart: 1 the master overlay
|
|
803
|
-
* do not render this first columns.
|
|
804
|
-
* Headers -3 -2 -1 |
|
|
805
|
-
* +----+----+----║┄ ┄ +------+------+
|
|
806
|
-
* │ │ │ ║ │ B1 │ C1 │
|
|
807
|
-
* +--------------║┄ ┄ --------------│
|
|
808
|
-
* │ │ │ ║ │ B2 │ C2 │
|
|
809
|
-
* +--------------║┄ ┄ --------------│
|
|
810
|
-
* │ │ │ ║ │ B3 │ C3 │
|
|
811
|
-
* +----+----+----║┄ ┄ +------+------+
|
|
812
|
-
* ╷ ╷
|
|
813
|
-
* -------------------------+-------------+---------------->
|
|
814
|
-
* TRUE first FALSE last FALSE
|
|
815
|
-
* rendered rendered
|
|
816
|
-
* column column
|
|
817
|
-
*
|
|
818
|
-
* @param {number} column The visual column index.
|
|
819
|
-
* @memberof Table#
|
|
820
|
-
* @function isColumnBeforeRenderedColumns
|
|
821
|
-
* @returns {boolean}
|
|
822
|
-
*/ isColumnBeforeRenderedColumns(column) {
|
|
823
|
-
const first = this.getFirstRenderedColumn();
|
|
824
|
-
// Check the headers only in case when the first rendered column is -1 or 0.
|
|
825
|
-
// This is an indication that the overlay is placed on the most left position.
|
|
826
|
-
if (column < 0 && first <= 0) {
|
|
827
|
-
return !this.isColumnHeaderRendered(column);
|
|
828
|
-
}
|
|
829
|
-
return column < first;
|
|
830
|
-
}
|
|
831
|
-
/**
|
|
832
|
-
* Check if the given column index is greater than the index of the last column that
|
|
833
|
-
* is currently rendered and return TRUE in that case, or FALSE otherwise.
|
|
834
|
-
*
|
|
835
|
-
* The negative column index is used to check the rows' headers. However,
|
|
836
|
-
* keep in mind that for negative indexes, the method always returns FALSE as
|
|
837
|
-
* it is not possible to render headers partially. The "after" index can not be
|
|
838
|
-
* lower than -1.
|
|
839
|
-
*
|
|
840
|
-
* For fixedColumnsStart: 1 the master overlay
|
|
841
|
-
* do not render this first columns.
|
|
842
|
-
* Headers -3 -2 -1 |
|
|
843
|
-
* +----+----+----║┄ ┄ +------+------+
|
|
844
|
-
* │ │ │ ║ │ B1 │ C1 │
|
|
845
|
-
* +--------------║┄ ┄ --------------│
|
|
846
|
-
* │ │ │ ║ │ B2 │ C2 │
|
|
847
|
-
* +--------------║┄ ┄ --------------│
|
|
848
|
-
* │ │ │ ║ │ B3 │ C3 │
|
|
849
|
-
* +----+----+----║┄ ┄ +------+------+
|
|
850
|
-
* ╷ ╷
|
|
851
|
-
* -------------------------+-------------+---------------->
|
|
852
|
-
* FALSE first FALSE last TRUE
|
|
853
|
-
* rendered rendered
|
|
854
|
-
* column column
|
|
855
|
-
*
|
|
856
|
-
* @param {number} column The visual column index.
|
|
857
|
-
* @memberof Table#
|
|
858
|
-
* @function isColumnAfterRenderedColumns
|
|
859
|
-
* @returns {boolean}
|
|
860
|
-
*/ isColumnAfterRenderedColumns(column) {
|
|
861
|
-
return this.columnFilter && column > this.getLastRenderedColumn();
|
|
862
|
-
}
|
|
863
|
-
/**
|
|
864
|
-
* Checks if the column is after the last visible column.
|
|
865
|
-
*
|
|
866
|
-
* @param {number} column The visual column index.
|
|
867
|
-
* @returns {boolean}
|
|
868
|
-
*/ isColumnAfterViewport(column) {
|
|
869
|
-
return this.columnFilter && column > this.getLastVisibleColumn();
|
|
870
|
-
}
|
|
871
|
-
/**
|
|
872
|
-
* Checks if the row is after the last visible row.
|
|
873
|
-
*
|
|
874
|
-
* @param {number} row The visual row index.
|
|
875
|
-
* @returns {boolean}
|
|
876
|
-
*/ isRowAfterViewport(row) {
|
|
877
|
-
return this.rowFilter && row > this.getLastVisibleRow();
|
|
878
|
-
}
|
|
879
|
-
/**
|
|
880
|
-
* Checks if the column is before the first visible column.
|
|
881
|
-
*
|
|
882
|
-
* @param {number} column The visual column index.
|
|
883
|
-
* @returns {boolean}
|
|
884
|
-
*/ isColumnBeforeViewport(column) {
|
|
885
|
-
return this.columnFilter && this.columnFilter.sourceToRendered(column) < 0 && column >= 0;
|
|
886
|
-
}
|
|
887
|
-
/**
|
|
888
|
-
* Checks if the last row is fully visible.
|
|
889
|
-
*
|
|
890
|
-
* @returns {boolean}
|
|
891
|
-
*/ isLastRowFullyVisible() {
|
|
892
|
-
return this.getLastVisibleRow() === this.getLastRenderedRow();
|
|
893
|
-
}
|
|
894
|
-
/**
|
|
895
|
-
* Checks if the last column is fully visible.
|
|
896
|
-
*
|
|
897
|
-
* @returns {boolean}
|
|
898
|
-
*/ isLastColumnFullyVisible() {
|
|
899
|
-
return this.getLastVisibleColumn() === this.getLastRenderedColumn();
|
|
900
|
-
}
|
|
901
|
-
/**
|
|
902
|
-
* Checks if all rows fit in the viewport.
|
|
903
|
-
*
|
|
904
|
-
* @returns {boolean}
|
|
905
|
-
*/ allRowsInViewport() {
|
|
906
|
-
return this.wtSettings.getSetting('totalRows') === this.getVisibleRowsCount();
|
|
907
|
-
}
|
|
908
|
-
/**
|
|
909
|
-
* Checks if all columns fit in the viewport.
|
|
910
|
-
*
|
|
911
|
-
* @returns {boolean}
|
|
912
|
-
*/ allColumnsInViewport() {
|
|
913
|
-
return this.wtSettings.getSetting('totalColumns') === this.getVisibleColumnsCount();
|
|
914
|
-
}
|
|
915
|
-
/**
|
|
916
|
-
* Checks if any of the row's cells content exceeds its initial height, and if so, returns the oversized height.
|
|
917
|
-
*
|
|
918
|
-
* @param {number} sourceRow The physical row index.
|
|
919
|
-
* @returns {number}
|
|
920
|
-
*/ getRowHeight(sourceRow) {
|
|
921
|
-
return this.rowUtils.getHeight(sourceRow);
|
|
922
|
-
}
|
|
923
|
-
/**
|
|
924
|
-
* @param {number} level The column level.
|
|
925
|
-
* @returns {number}
|
|
926
|
-
*/ getColumnHeaderHeight(level) {
|
|
927
|
-
return this.columnUtils.getHeaderHeight(level);
|
|
928
|
-
}
|
|
929
|
-
/**
|
|
930
|
-
* @param {number} sourceColumn The physical column index.
|
|
931
|
-
* @returns {number}
|
|
932
|
-
*/ getColumnWidth(sourceColumn) {
|
|
933
|
-
return this.columnUtils.getWidth(sourceColumn);
|
|
934
|
-
}
|
|
935
|
-
/**
|
|
936
|
-
* Checks if the table has defined size. It returns `true` when the table has width and height
|
|
937
|
-
* set bigger than `0px`.
|
|
938
|
-
*
|
|
939
|
-
* @returns {boolean}
|
|
940
|
-
*/ hasDefinedSize() {
|
|
941
|
-
return this.hasTableHeight && this.hasTableWidth;
|
|
942
|
-
}
|
|
943
|
-
/**
|
|
944
|
-
* Gets table's width. The returned width is the width of the rendered cells that fit in the
|
|
945
|
-
* current viewport. The value may change depends on the viewport position (scroll position).
|
|
946
|
-
*
|
|
947
|
-
* @returns {number}
|
|
948
|
-
*/ getWidth() {
|
|
949
|
-
return (0, _element.outerWidth)(this.TABLE);
|
|
950
|
-
}
|
|
951
|
-
/**
|
|
952
|
-
* Gets table's height. The returned height is the height of the rendered cells that fit in the
|
|
953
|
-
* current viewport. The value may change depends on the viewport position (scroll position).
|
|
954
|
-
*
|
|
955
|
-
* @returns {number}
|
|
956
|
-
*/ getHeight() {
|
|
957
|
-
return (0, _element.outerHeight)(this.TABLE);
|
|
958
|
-
}
|
|
959
|
-
/**
|
|
960
|
-
* Gets table's total width. The returned width is the width of all rendered cells (including headers)
|
|
961
|
-
* that can be displayed in the table.
|
|
962
|
-
*
|
|
963
|
-
* @returns {number}
|
|
964
|
-
*/ getTotalWidth() {
|
|
965
|
-
const width = (0, _element.outerWidth)(this.hider);
|
|
966
|
-
// when the overlay's table does not have any cells the hider returns 0, get then width from the table element
|
|
967
|
-
return width !== 0 ? width : this.getWidth();
|
|
968
|
-
}
|
|
969
|
-
/**
|
|
970
|
-
* Gets table's total height. The returned height is the height of all rendered cells (including headers)
|
|
971
|
-
* that can be displayed in the table.
|
|
972
|
-
*
|
|
973
|
-
* @returns {number}
|
|
974
|
-
*/ getTotalHeight() {
|
|
975
|
-
const height = (0, _element.outerHeight)(this.hider);
|
|
976
|
-
// when the overlay's table does not have any cells the hider returns 0, get then height from the table element
|
|
977
|
-
return height !== 0 ? height : this.getHeight();
|
|
978
|
-
}
|
|
979
|
-
/**
|
|
980
|
-
* Checks if the table is visible. It returns `true` when the holder element (or its parents)
|
|
981
|
-
* has CSS 'display' property different than 'none'.
|
|
982
|
-
*
|
|
983
|
-
* @returns {boolean}
|
|
984
|
-
*/ isVisible() {
|
|
985
|
-
return (0, _element.isVisible)(this.TABLE);
|
|
986
|
-
}
|
|
987
|
-
/**
|
|
988
|
-
* Modify row header widths provided by user in class contructor.
|
|
989
|
-
*
|
|
990
|
-
* @private
|
|
991
|
-
* @param {Function | number | null} rowHeaderWidthFactory The function which can provide default width values for rows..
|
|
992
|
-
* @returns {number}
|
|
993
|
-
*/ _modifyRowHeaderWidth(rowHeaderWidthFactory) {
|
|
994
|
-
const rawWidths = typeof rowHeaderWidthFactory === 'function' ? rowHeaderWidthFactory() : rowHeaderWidthFactory;
|
|
995
|
-
let widths = rawWidths;
|
|
996
|
-
if (Array.isArray(widths)) {
|
|
997
|
-
widths = [
|
|
998
|
-
...widths
|
|
999
|
-
];
|
|
1000
|
-
widths[widths.length - 1] = this._correctRowHeaderWidth(widths[widths.length - 1]);
|
|
1001
|
-
} else {
|
|
1002
|
-
widths = this._correctRowHeaderWidth(widths);
|
|
1003
|
-
}
|
|
1004
|
-
return widths;
|
|
1005
|
-
}
|
|
1006
|
-
/**
|
|
1007
|
-
* Correct row header width if necessary.
|
|
1008
|
-
*
|
|
1009
|
-
* @private
|
|
1010
|
-
* @param {number | null} width The width to process.
|
|
1011
|
-
* @returns {number}
|
|
1012
|
-
*/ _correctRowHeaderWidth(width) {
|
|
1013
|
-
let rowHeaderWidth = typeof width === 'number' ? width : this.wtSettings.getSetting('defaultColumnWidth');
|
|
1014
|
-
if (this.correctHeaderWidth) {
|
|
1015
|
-
rowHeaderWidth += 1;
|
|
1016
|
-
}
|
|
1017
|
-
return rowHeaderWidth;
|
|
1018
|
-
}
|
|
1019
|
-
/**
|
|
1020
|
-
* Destroys the table instance. Overridden by MasterTable to release DOM resources.
|
|
1021
|
-
*/ destroy() {
|
|
1022
|
-
// Intentionally empty
|
|
1023
|
-
}
|
|
1024
|
-
/**
|
|
1025
|
-
*
|
|
1026
|
-
* @abstract
|
|
1027
|
-
* @param {TableDao} dataAccessObject The data access object.
|
|
1028
|
-
* @param {FacadeGetter} facadeGetter Function which return proper facade.
|
|
1029
|
-
* @param {DomBindings} domBindings Bindings into DOM.
|
|
1030
|
-
* @param {Settings} wtSettings The Walkontable settings.
|
|
1031
|
-
* @param {'master'|CLONE_TYPES_ENUM} name Overlay name.
|
|
1032
|
-
*/ constructor(dataAccessObject, facadeGetter, domBindings, wtSettings, name){
|
|
1033
|
-
/**
|
|
1034
|
-
* The table body element (TBODY).
|
|
1035
|
-
*
|
|
1036
|
-
* @type {HTMLTableSectionElement | null}
|
|
1037
|
-
*/ this.TBODY = null;
|
|
1038
|
-
/**
|
|
1039
|
-
* The table head element (THEAD).
|
|
1040
|
-
*
|
|
1041
|
-
* @type {HTMLTableSectionElement | null}
|
|
1042
|
-
*/ this.THEAD = null;
|
|
1043
|
-
/**
|
|
1044
|
-
* The column group element (COLGROUP).
|
|
1045
|
-
*
|
|
1046
|
-
* @type {HTMLTableColElement | null}
|
|
1047
|
-
*/ this.COLGROUP = null;
|
|
1048
|
-
/**
|
|
1049
|
-
* Indicates if the table has height bigger than 0px.
|
|
1050
|
-
*
|
|
1051
|
-
* @type {boolean}
|
|
1052
|
-
*/ this.hasTableHeight = true;
|
|
1053
|
-
/**
|
|
1054
|
-
* Indicates if the table has width bigger than 0px.
|
|
1055
|
-
*
|
|
1056
|
-
* @type {boolean}
|
|
1057
|
-
*/ this.hasTableWidth = true;
|
|
1058
|
-
/**
|
|
1059
|
-
* Indicates if the table is visible. By visible, it means that the holder
|
|
1060
|
-
* element has CSS 'display' property different than 'none'.
|
|
1061
|
-
*
|
|
1062
|
-
* @type {boolean}
|
|
1063
|
-
*/ this.isTableVisible = false;
|
|
1064
|
-
/**
|
|
1065
|
-
* The offset of the table element.
|
|
1066
|
-
*
|
|
1067
|
-
* @type {number | { top: number; left: number }}
|
|
1068
|
-
*/ this.tableOffset = 0;
|
|
1069
|
-
/**
|
|
1070
|
-
* The offset of the holder element.
|
|
1071
|
-
*
|
|
1072
|
-
* @type {number | { top: number; left: number }}
|
|
1073
|
-
*/ this.holderOffset = 0;
|
|
1074
|
-
this.domBindings = domBindings;
|
|
1075
|
-
/**
|
|
1076
|
-
* Indicates if this instance is of type `MasterTable` (i.e. It is NOT an overlay).
|
|
1077
|
-
*
|
|
1078
|
-
* @type {boolean}
|
|
1079
|
-
*/ this.isMaster = name === 'master';
|
|
1080
|
-
this.name = name;
|
|
1081
|
-
this.dataAccessObject = dataAccessObject;
|
|
1082
|
-
this.facadeGetter = facadeGetter;
|
|
1083
|
-
this.wtSettings = wtSettings;
|
|
1084
|
-
// legacy support
|
|
1085
|
-
this.instance = this.dataAccessObject.wot; // TODO refactoring: it might be removed here, and provides legacy support through facade.
|
|
1086
|
-
this.wot = this.dataAccessObject.wot;
|
|
1087
|
-
this.TABLE = domBindings.rootTable;
|
|
1088
|
-
(0, _element.removeTextNodes)(this.TABLE);
|
|
1089
|
-
// TODO refactoring, to recognize the legitimacy of moving them into domBidings
|
|
1090
|
-
this.spreader = this.createSpreader(this.TABLE);
|
|
1091
|
-
this.hider = this.createHider(this.spreader);
|
|
1092
|
-
this.holder = this.createHolder(this.hider);
|
|
1093
|
-
// parentNode is always an HTMLElement in production; null only when TABLE is detached (e.g. Jasmine tests).
|
|
1094
|
-
this.wtRootElement = this.holder.parentNode;
|
|
1095
|
-
if (this.isMaster) {
|
|
1096
|
-
this.alignOverlaysWithTrimmingContainer(); // todo wow, It calls method from child class (MasterTable).
|
|
1097
|
-
}
|
|
1098
|
-
this.fixTableDomTree();
|
|
1099
|
-
this.rowFilter = null; // TODO refactoring, eliminate all (re)creations of this object, then updates state when needed.
|
|
1100
|
-
this.columnFilter = null; // TODO refactoring, eliminate all (re)creations of this object, then updates state when needed.
|
|
1101
|
-
this.correctHeaderWidth = false;
|
|
1102
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
1103
|
-
const origRowHeaderWidth = this.wtSettings.getSettingPure('rowHeaderWidth');
|
|
1104
|
-
// Fix for jumping row headers (https://github.com/handsontable/handsontable/issues/3850)
|
|
1105
|
-
this.wtSettings.update('rowHeaderWidth', ()=>this._modifyRowHeaderWidth(origRowHeaderWidth));
|
|
1106
|
-
this.rowUtils = new _row1.default(this.dataAccessObject, this.wtSettings); // TODO refactoring, It can be passed through IOC.
|
|
1107
|
-
this.columnUtils = new _column1.default(this.dataAccessObject, this.wtSettings); // TODO refactoring, It can be passed through IOC.
|
|
1108
|
-
this.tableRenderer = new _renderer.Renderer({
|
|
1109
|
-
TABLE: this.TABLE,
|
|
1110
|
-
THEAD: this.THEAD ?? undefined,
|
|
1111
|
-
COLGROUP: this.COLGROUP ?? undefined,
|
|
1112
|
-
TBODY: this.TBODY ?? undefined,
|
|
1113
|
-
rowUtils: this.rowUtils,
|
|
1114
|
-
columnUtils: this.columnUtils,
|
|
1115
|
-
cellRenderer: this.wtSettings.getSettingPure('cellRenderer'),
|
|
1116
|
-
stylesHandler: this.wtSettings.getSetting('stylesHandler')
|
|
1117
|
-
});
|
|
1118
|
-
}
|
|
1119
|
-
}
|
|
1120
|
-
const _default = Table;
|