handsontable 14.6.1 → 15.0.0-next-4472a60-20241203
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/calculator/calculationType/renderedColumns.js +23 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +23 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +23 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +23 -0
- package/3rdparty/walkontable/src/calculator/index.js +1 -2
- package/3rdparty/walkontable/src/calculator/index.mjs +2 -2
- package/3rdparty/walkontable/src/calculator/viewportBase.js +2 -0
- package/3rdparty/walkontable/src/calculator/viewportBase.mjs +2 -0
- package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +3 -3
- package/3rdparty/walkontable/src/core/_base.js +29 -23
- package/3rdparty/walkontable/src/core/_base.mjs +29 -23
- package/3rdparty/walkontable/src/core/clone.js +1 -0
- package/3rdparty/walkontable/src/core/clone.mjs +1 -0
- package/3rdparty/walkontable/src/core/core.js +2 -0
- package/3rdparty/walkontable/src/core/core.mjs +2 -0
- package/3rdparty/walkontable/src/facade/core.js +12 -6
- package/3rdparty/walkontable/src/facade/core.mjs +12 -6
- package/3rdparty/walkontable/src/index.js +0 -1
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +8 -1
- package/3rdparty/walkontable/src/overlay/_base.mjs +8 -1
- package/3rdparty/walkontable/src/overlay/bottom.js +5 -6
- package/3rdparty/walkontable/src/overlay/bottom.mjs +5 -6
- package/3rdparty/walkontable/src/overlay/index.js +2 -0
- package/3rdparty/walkontable/src/overlay/inlineStart.js +8 -7
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +9 -8
- package/3rdparty/walkontable/src/overlay/top.js +9 -8
- package/3rdparty/walkontable/src/overlay/top.mjs +10 -9
- package/3rdparty/walkontable/src/overlays.js +10 -26
- package/3rdparty/walkontable/src/overlays.mjs +10 -26
- package/3rdparty/walkontable/src/renderer/colGroup.js +1 -1
- package/3rdparty/walkontable/src/renderer/colGroup.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/index.js +4 -2
- package/3rdparty/walkontable/src/renderer/index.mjs +4 -2
- package/3rdparty/walkontable/src/renderer/table.js +13 -4
- package/3rdparty/walkontable/src/renderer/table.mjs +13 -4
- package/3rdparty/walkontable/src/scroll.js +46 -37
- package/3rdparty/walkontable/src/scroll.mjs +46 -37
- package/3rdparty/walkontable/src/selection/border/border.js +52 -58
- package/3rdparty/walkontable/src/selection/border/border.mjs +53 -59
- package/3rdparty/walkontable/src/selection/border/utils.js +26 -0
- package/3rdparty/walkontable/src/selection/border/utils.mjs +22 -0
- package/3rdparty/walkontable/src/selection/index.js +6 -4
- package/3rdparty/walkontable/src/selection/index.mjs +1 -1
- package/3rdparty/walkontable/src/selection/manager.js +3 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +3 -0
- package/3rdparty/walkontable/src/selection/scanner.js +46 -11
- package/3rdparty/walkontable/src/selection/scanner.mjs +46 -11
- package/3rdparty/walkontable/src/settings.js +8 -9
- package/3rdparty/walkontable/src/settings.mjs +8 -9
- package/3rdparty/walkontable/src/table/master.js +1 -1
- package/3rdparty/walkontable/src/table/master.mjs +2 -2
- package/3rdparty/walkontable/src/table.js +25 -36
- package/3rdparty/walkontable/src/table.mjs +25 -36
- package/3rdparty/walkontable/src/types.js +1 -0
- package/3rdparty/walkontable/src/types.mjs +1 -0
- package/3rdparty/walkontable/src/utils/column.js +1 -43
- package/3rdparty/walkontable/src/utils/column.mjs +1 -43
- package/3rdparty/walkontable/src/utils/stylesHandler.js +295 -0
- package/3rdparty/walkontable/src/utils/stylesHandler.mjs +291 -0
- package/3rdparty/walkontable/src/viewport.js +94 -91
- package/3rdparty/walkontable/src/viewport.mjs +95 -92
- package/CHANGELOG.md +36 -0
- package/README.md +1 -1
- package/base.js +4 -4
- package/base.mjs +3 -3
- package/core/focusCatcher/focusDetector.js +1 -0
- package/core/focusCatcher/focusDetector.mjs +1 -0
- package/core/hooks/bucket.js +184 -0
- package/core/hooks/bucket.mjs +180 -0
- package/{pluginHooks.mjs → core/hooks/constants.js} +38 -486
- package/{pluginHooks.js → core/hooks/constants.mjs} +34 -489
- package/{pluginHooks.d.ts → core/hooks/index.d.ts} +22 -25
- package/core/hooks/index.js +385 -0
- package/core/hooks/index.mjs +381 -0
- package/core/index.js +2 -0
- package/core.d.ts +5 -3
- package/core.js +77 -35
- package/core.mjs +69 -27
- package/dataMap/dataMap.js +3 -0
- package/dataMap/dataMap.mjs +3 -0
- package/dataMap/dataSource.js +2 -0
- package/dataMap/dataSource.mjs +2 -0
- package/dataMap/metaManager/index.js +2 -0
- package/dataMap/metaManager/index.mjs +2 -0
- package/dataMap/metaManager/metaSchema.js +91 -5
- package/dataMap/metaManager/metaSchema.mjs +91 -5
- package/dataMap/metaManager/mods/dynamicCellMeta.js +2 -3
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
- package/dataMap/metaManager/mods/extendMetaProperties.js +2 -0
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +2 -0
- package/dist/handsontable.css +84 -72
- package/dist/handsontable.full.css +317 -304
- package/dist/handsontable.full.js +14826 -7294
- package/dist/handsontable.full.min.css +15 -10
- package/dist/handsontable.full.min.js +262 -69
- package/dist/handsontable.js +7826 -5552
- package/dist/handsontable.min.css +10 -6
- package/dist/handsontable.min.js +33 -33
- package/dist/languages/all.js +1 -1
- package/dist/languages/ar-AR.js +1 -1
- package/dist/languages/cs-CZ.js +1 -1
- package/dist/languages/de-CH.js +1 -1
- package/dist/languages/de-DE.js +1 -1
- package/dist/languages/en-US.js +1 -1
- package/dist/languages/es-MX.js +1 -1
- package/dist/languages/fr-FR.js +1 -1
- package/dist/languages/hr-HR.js +1 -1
- package/dist/languages/it-IT.js +1 -1
- package/dist/languages/ja-JP.js +1 -1
- package/dist/languages/ko-KR.js +1 -1
- package/dist/languages/lv-LV.js +1 -1
- package/dist/languages/nb-NO.js +1 -1
- package/dist/languages/nl-NL.js +1 -1
- package/dist/languages/pl-PL.js +1 -1
- package/dist/languages/pt-BR.js +1 -1
- package/dist/languages/ru-RU.js +1 -1
- package/dist/languages/sr-SP.js +1 -1
- package/dist/languages/zh-CN.js +1 -1
- package/dist/languages/zh-TW.js +1 -1
- package/editorManager.js +2 -2
- package/editorManager.mjs +2 -2
- package/editors/autocompleteEditor/autocompleteEditor.js +34 -16
- package/editors/autocompleteEditor/autocompleteEditor.mjs +34 -16
- package/editors/baseEditor/baseEditor.js +25 -18
- package/editors/baseEditor/baseEditor.mjs +26 -19
- package/editors/dateEditor/dateEditor.js +9 -0
- package/editors/dateEditor/dateEditor.mjs +10 -1
- package/editors/dropdownEditor/dropdownEditor.js +4 -3
- package/editors/dropdownEditor/dropdownEditor.mjs +3 -1
- package/editors/handsontableEditor/handsontableEditor.js +36 -2
- package/editors/handsontableEditor/handsontableEditor.mjs +36 -2
- package/editors/passwordEditor/passwordEditor.js +18 -0
- package/editors/passwordEditor/passwordEditor.mjs +18 -0
- package/editors/registry.js +2 -2
- package/editors/registry.mjs +1 -1
- package/editors/selectEditor/selectEditor.js +20 -9
- package/editors/selectEditor/selectEditor.mjs +20 -9
- package/editors/textEditor/textEditor.js +5 -12
- package/editors/textEditor/textEditor.mjs +6 -13
- package/focusManager.js +5 -7
- package/focusManager.mjs +5 -7
- package/helpers/array.js +2 -0
- package/helpers/array.mjs +2 -0
- package/helpers/data.js +3 -0
- package/helpers/data.mjs +3 -0
- package/helpers/dom/element.js +39 -18
- package/helpers/dom/element.mjs +38 -17
- package/helpers/mixed.js +3 -3
- package/helpers/mixed.mjs +3 -3
- package/helpers/moves.js +3 -0
- package/helpers/moves.mjs +3 -0
- package/helpers/number.js +1 -0
- package/helpers/number.mjs +1 -0
- package/helpers/object.js +2 -0
- package/helpers/object.mjs +2 -0
- package/helpers/themes.js +17 -0
- package/helpers/themes.mjs +13 -0
- package/i18n/index.js +2 -0
- package/i18n/languages/index.d.ts +8 -0
- package/i18n/languages/ja-JP.d.ts +1 -1
- package/i18n/phraseFormatters/substituteVariables.js +1 -0
- package/i18n/phraseFormatters/substituteVariables.mjs +1 -0
- package/index.d.ts +9 -1
- package/languages/all.js +1 -1
- package/languages/ar-AR.js +1 -1
- package/languages/cs-CZ.js +1 -1
- package/languages/de-CH.js +1 -1
- package/languages/de-DE.js +1 -1
- package/languages/en-US.js +1 -1
- package/languages/es-MX.js +1 -1
- package/languages/fr-FR.js +1 -1
- package/languages/hr-HR.js +1 -1
- package/languages/index.js +1 -1
- package/languages/it-IT.js +1 -1
- package/languages/ja-JP.js +1 -1
- package/languages/ko-KR.js +1 -1
- package/languages/lv-LV.js +1 -1
- package/languages/nb-NO.js +1 -1
- package/languages/nl-NL.js +1 -1
- package/languages/pl-PL.js +1 -1
- package/languages/pt-BR.js +1 -1
- package/languages/ru-RU.js +1 -1
- package/languages/sr-SP.js +1 -1
- package/languages/zh-CN.js +1 -1
- package/languages/zh-TW.js +1 -1
- package/package.json +22 -7
- package/plugins/autoColumnSize/autoColumnSize.js +22 -27
- package/plugins/autoColumnSize/autoColumnSize.mjs +22 -27
- package/plugins/autoRowSize/autoRowSize.js +20 -22
- package/plugins/autoRowSize/autoRowSize.mjs +21 -23
- package/plugins/autofill/autofill.js +4 -5
- package/plugins/autofill/autofill.mjs +1 -1
- package/plugins/base/base.d.ts +1 -1
- package/plugins/base/base.js +41 -0
- package/plugins/base/base.mjs +42 -1
- package/plugins/base/index.js +2 -1
- package/plugins/base/index.mjs +1 -1
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +2 -5
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +2 -5
- package/plugins/columnSorting/columnSorting.js +5 -4
- package/plugins/columnSorting/columnSorting.mjs +3 -1
- package/plugins/columnSorting/columnStatesManager.js +1 -0
- package/plugins/columnSorting/columnStatesManager.mjs +1 -0
- package/plugins/columnSorting/utils.js +3 -0
- package/plugins/columnSorting/utils.mjs +3 -0
- package/plugins/columnSummary/endpoints.js +3 -0
- package/plugins/columnSummary/endpoints.mjs +3 -0
- package/plugins/comments/commentEditor.js +9 -0
- package/plugins/comments/commentEditor.mjs +9 -0
- package/plugins/comments/comments.js +24 -18
- package/plugins/comments/comments.mjs +26 -20
- package/plugins/comments/editorResizeObserver.js +2 -0
- package/plugins/comments/editorResizeObserver.mjs +2 -0
- package/plugins/contextMenu/contextMenu.d.ts +2 -1
- package/plugins/contextMenu/contextMenu.js +6 -7
- package/plugins/contextMenu/contextMenu.mjs +1 -1
- package/plugins/contextMenu/menu/index.js +2 -0
- package/plugins/contextMenu/menu/menu.js +10 -5
- package/plugins/contextMenu/menu/menu.mjs +11 -6
- package/plugins/contextMenu/menu/positioner.js +4 -2
- package/plugins/contextMenu/menu/positioner.mjs +4 -2
- package/plugins/contextMenu/menu/shortcuts.js +3 -1
- package/plugins/contextMenu/menu/shortcuts.mjs +3 -1
- package/plugins/contextMenu/predefinedItems/alignment.js +7 -84
- package/plugins/contextMenu/predefinedItems/alignment.mjs +8 -85
- package/plugins/contextMenu/utils.js +0 -10
- package/plugins/contextMenu/utils.mjs +0 -9
- package/plugins/copyPaste/copyPaste.d.ts +1 -0
- package/plugins/copyPaste/copyPaste.js +32 -23
- package/plugins/copyPaste/copyPaste.mjs +24 -15
- package/plugins/customBorders/utils.js +2 -0
- package/plugins/customBorders/utils.mjs +2 -0
- package/plugins/dropdownMenu/dropdownMenu.d.ts +2 -1
- package/plugins/dropdownMenu/dropdownMenu.js +6 -7
- package/plugins/dropdownMenu/dropdownMenu.mjs +1 -1
- package/plugins/exportFile/types/csv.js +1 -0
- package/plugins/exportFile/types/csv.mjs +1 -0
- package/plugins/filters/component/condition.js +2 -0
- package/plugins/filters/component/condition.mjs +2 -0
- package/plugins/filters/component/operators.js +2 -0
- package/plugins/filters/component/operators.mjs +2 -0
- package/plugins/filters/component/value.js +3 -0
- package/plugins/filters/component/value.mjs +3 -0
- package/plugins/filters/conditionCollection.js +3 -0
- package/plugins/filters/conditionCollection.mjs +3 -0
- package/plugins/filters/conditionUpdateObserver.js +2 -0
- package/plugins/filters/conditionUpdateObserver.mjs +2 -0
- package/plugins/filters/filters.js +43 -13
- package/plugins/filters/filters.mjs +43 -13
- package/plugins/filters/logicalOperations/conjunction.js +2 -0
- package/plugins/filters/logicalOperations/conjunction.mjs +2 -0
- package/plugins/filters/logicalOperations/disjunction.js +2 -0
- package/plugins/filters/logicalOperations/disjunction.mjs +2 -0
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -0
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -0
- package/plugins/filters/menu/focusController.js +38 -14
- package/plugins/filters/menu/focusController.mjs +38 -14
- package/plugins/filters/ui/multipleSelect.js +10 -0
- package/plugins/filters/ui/multipleSelect.mjs +10 -0
- package/plugins/formulas/engine/register.js +3 -0
- package/plugins/formulas/engine/register.mjs +3 -0
- package/plugins/formulas/engine/settings.js +3 -0
- package/plugins/formulas/engine/settings.mjs +3 -0
- package/plugins/formulas/formulas.js +12 -7
- package/plugins/formulas/formulas.mjs +6 -1
- package/plugins/formulas/indexSyncer/axisSyncer.js +3 -0
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +3 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -0
- package/plugins/hiddenColumns/hiddenColumns.js +22 -30
- package/plugins/hiddenColumns/hiddenColumns.mjs +18 -26
- package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -0
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -0
- package/plugins/hiddenRows/hiddenRows.js +21 -29
- package/plugins/hiddenRows/hiddenRows.mjs +17 -25
- package/plugins/index.d.ts +3 -0
- package/plugins/index.js +3 -0
- package/plugins/index.mjs +3 -1
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +7 -5
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +3 -1
- package/plugins/manualColumnMove/manualColumnMove.js +6 -6
- package/plugins/manualColumnMove/manualColumnMove.mjs +4 -4
- package/plugins/manualColumnResize/manualColumnResize.js +26 -12
- package/plugins/manualColumnResize/manualColumnResize.mjs +26 -12
- package/plugins/manualRowMove/manualRowMove.js +8 -6
- package/plugins/manualRowMove/manualRowMove.mjs +6 -4
- package/plugins/manualRowResize/manualRowResize.js +3 -2
- package/plugins/manualRowResize/manualRowResize.mjs +4 -3
- package/plugins/mergeCells/cellsCollection.js +19 -3
- package/plugins/mergeCells/cellsCollection.mjs +20 -4
- package/plugins/mergeCells/mergeCells.d.ts +6 -2
- package/plugins/mergeCells/mergeCells.js +84 -56
- package/plugins/mergeCells/mergeCells.mjs +82 -54
- package/plugins/mergeCells/renderer.js +13 -3
- package/plugins/mergeCells/renderer.mjs +13 -3
- package/plugins/multiColumnSorting/domHelpers.js +2 -0
- package/plugins/multiColumnSorting/domHelpers.mjs +2 -0
- package/plugins/nestedHeaders/nestedHeaders.js +63 -16
- package/plugins/nestedHeaders/nestedHeaders.mjs +63 -16
- package/plugins/nestedHeaders/stateManager/index.js +1 -0
- package/plugins/nestedHeaders/stateManager/index.mjs +1 -0
- package/plugins/nestedRows/nestedRows.js +3 -0
- package/plugins/nestedRows/nestedRows.mjs +3 -0
- package/plugins/nestedRows/ui/headers.js +7 -1
- package/plugins/nestedRows/ui/headers.mjs +7 -1
- package/plugins/nestedRows/utils/rowMoveController.js +4 -0
- package/plugins/nestedRows/utils/rowMoveController.mjs +4 -0
- package/plugins/persistentState/persistentState.js +4 -4
- package/plugins/persistentState/persistentState.mjs +1 -1
- package/plugins/stretchColumns/calculator.js +162 -0
- package/plugins/stretchColumns/calculator.mjs +158 -0
- package/plugins/stretchColumns/index.d.ts +1 -0
- package/plugins/stretchColumns/index.js +7 -0
- package/plugins/stretchColumns/index.mjs +1 -0
- package/plugins/stretchColumns/strategies/_base.js +85 -0
- package/plugins/stretchColumns/strategies/_base.mjs +81 -0
- package/plugins/stretchColumns/strategies/all.js +71 -0
- package/plugins/stretchColumns/strategies/all.mjs +67 -0
- package/plugins/stretchColumns/strategies/last.js +79 -0
- package/plugins/stretchColumns/strategies/last.mjs +75 -0
- package/plugins/stretchColumns/stretchColumns.d.ts +11 -0
- package/plugins/stretchColumns/stretchColumns.js +222 -0
- package/plugins/stretchColumns/stretchColumns.mjs +218 -0
- package/plugins/trimRows/trimRows.js +2 -0
- package/plugins/trimRows/trimRows.mjs +2 -0
- package/plugins/undoRedo/undoRedo.js +9 -5
- package/plugins/undoRedo/undoRedo.mjs +8 -3
- package/renderers/checkboxRenderer/checkboxRenderer.js +19 -8
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +18 -7
- package/selection/index.js +2 -0
- package/selection/range.js +2 -0
- package/selection/range.mjs +2 -0
- package/selection/selection.js +7 -2
- package/selection/selection.mjs +7 -2
- package/selection/utils.js +2 -0
- package/selection/utils.mjs +2 -0
- package/settings.d.ts +4 -1
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +1 -1
- package/shortcutContexts/commands/index.js +2 -0
- package/shortcutContexts/commands/index.mjs +2 -0
- package/shortcutContexts/commands/scrollToFocusedCell.js +4 -4
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +4 -4
- package/shortcutContexts/index.js +2 -0
- package/shortcutContexts/index.mjs +2 -0
- package/shortcuts/context.js +3 -0
- package/shortcuts/context.mjs +3 -0
- package/shortcuts/recorder.js +3 -3
- package/shortcuts/recorder.mjs +3 -3
- package/shortcuts/utils.js +1 -0
- package/shortcuts/utils.mjs +1 -0
- package/styles/handsontable.css +2307 -0
- package/styles/handsontable.min.css +30 -0
- package/styles/ht-theme-horizon.css +607 -0
- package/styles/ht-theme-horizon.min.css +30 -0
- package/styles/ht-theme-main.css +613 -0
- package/styles/ht-theme-main.min.css +30 -0
- package/tableView.js +205 -33
- package/tableView.mjs +206 -34
- package/translations/changesObservable/observable.js +2 -0
- package/translations/changesObservable/observable.mjs +2 -0
- package/translations/index.js +2 -0
- package/translations/indexMapper.js +4 -0
- package/translations/indexMapper.mjs +4 -0
- package/translations/mapCollections/index.js +2 -0
- package/translations/mapCollections/mapCollection.js +2 -0
- package/translations/mapCollections/mapCollection.mjs +2 -0
- package/translations/maps/index.js +2 -0
- package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
- package/translations/maps/utils/actionsOnIndexes.js +2 -0
- package/translations/maps/utils/actionsOnIndexes.mjs +2 -0
- package/translations/maps/utils/physicallyIndexed.js +1 -0
- package/translations/maps/utils/physicallyIndexed.mjs +1 -0
- package/utils/autoResize.js +11 -3
- package/utils/autoResize.mjs +11 -3
- package/utils/dataStructures/priorityMap.js +1 -0
- package/utils/dataStructures/priorityMap.mjs +1 -0
- package/utils/dataStructures/uniqueMap.js +2 -0
- package/utils/dataStructures/uniqueMap.mjs +2 -0
- package/utils/ghostTable.js +7 -3
- package/utils/ghostTable.mjs +7 -3
- package/utils/parseTable.js +4 -0
- package/utils/parseTable.mjs +4 -0
- package/3rdparty/walkontable/src/selection/border/constants.js +0 -15
- package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
- package/3rdparty/walkontable/src/utils/columnStretching.js +0 -197
- package/3rdparty/walkontable/src/utils/columnStretching.mjs +0 -193
@@ -1,4 +1,6 @@
|
|
1
1
|
import "core-js/modules/es.error.cause.js";
|
2
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
3
|
+
import "core-js/modules/esnext.iterator.for-each.js";
|
2
4
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
3
5
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
4
6
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
@@ -298,7 +300,9 @@ export class Overlay {
|
|
298
300
|
// todo ioc , or factor func if used only here
|
299
301
|
event: this.wot.wtEvent,
|
300
302
|
// todo ioc , or factory func if used only here
|
301
|
-
selectionManager: this.wot.selectionManager
|
303
|
+
selectionManager: this.wot.selectionManager,
|
304
|
+
// todo ioc , or factory func if used only here
|
305
|
+
stylesHandler: this.wot.stylesHandler
|
302
306
|
});
|
303
307
|
}
|
304
308
|
|
@@ -312,7 +316,10 @@ export class Overlay {
|
|
312
316
|
refresh() {
|
313
317
|
let fastDraw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
314
318
|
if (this.needFullRender) {
|
319
|
+
const cloneSource = this.clone.cloneSource;
|
320
|
+
cloneSource.activeOverlayName = this.clone.wtTable.name;
|
315
321
|
this.clone.draw(fastDraw);
|
322
|
+
cloneSource.activeOverlayName = 'master';
|
316
323
|
}
|
317
324
|
}
|
318
325
|
|
@@ -144,9 +144,9 @@ class BottomOverlay extends _base.Overlay {
|
|
144
144
|
sumCellSizes(from, to) {
|
145
145
|
const {
|
146
146
|
wtTable,
|
147
|
-
|
147
|
+
stylesHandler
|
148
148
|
} = this.wot;
|
149
|
-
const defaultRowHeight =
|
149
|
+
const defaultRowHeight = stylesHandler.getDefaultRowHeight();
|
150
150
|
let row = from;
|
151
151
|
let sum = 0;
|
152
152
|
while (row < to) {
|
@@ -180,14 +180,13 @@ class BottomOverlay extends _base.Overlay {
|
|
180
180
|
rootDocument,
|
181
181
|
rootWindow
|
182
182
|
} = this.domBindings;
|
183
|
-
const scrollbarWidth = (0, _element.getScrollbarWidth)(rootDocument);
|
184
183
|
const overlayRoot = this.clone.wtTable.holder.parentNode;
|
185
184
|
const overlayRootStyle = overlayRoot.style;
|
186
185
|
const preventOverflow = this.wtSettings.getSetting('preventOverflow');
|
187
186
|
if (this.trimmingContainer !== rootWindow || preventOverflow === 'horizontal') {
|
188
187
|
let width = wtViewport.getWorkspaceWidth();
|
189
|
-
if (
|
190
|
-
width -=
|
188
|
+
if (wtViewport.hasVerticalScroll()) {
|
189
|
+
width -= (0, _element.getScrollbarWidth)(rootDocument);
|
191
190
|
}
|
192
191
|
width = Math.min(width, wtTable.wtRootElement.scrollWidth);
|
193
192
|
overlayRootStyle.width = `${width}px`;
|
@@ -196,7 +195,7 @@ class BottomOverlay extends _base.Overlay {
|
|
196
195
|
}
|
197
196
|
this.clone.wtTable.holder.style.width = overlayRootStyle.width;
|
198
197
|
let tableHeight = (0, _element.outerHeight)(this.clone.wtTable.TABLE);
|
199
|
-
if (!
|
198
|
+
if (!wtTable.hasDefinedSize()) {
|
200
199
|
tableHeight = 0;
|
201
200
|
}
|
202
201
|
overlayRootStyle.height = `${tableHeight}px`;
|
@@ -140,9 +140,9 @@ export class BottomOverlay extends Overlay {
|
|
140
140
|
sumCellSizes(from, to) {
|
141
141
|
const {
|
142
142
|
wtTable,
|
143
|
-
|
143
|
+
stylesHandler
|
144
144
|
} = this.wot;
|
145
|
-
const defaultRowHeight =
|
145
|
+
const defaultRowHeight = stylesHandler.getDefaultRowHeight();
|
146
146
|
let row = from;
|
147
147
|
let sum = 0;
|
148
148
|
while (row < to) {
|
@@ -176,14 +176,13 @@ export class BottomOverlay extends Overlay {
|
|
176
176
|
rootDocument,
|
177
177
|
rootWindow
|
178
178
|
} = this.domBindings;
|
179
|
-
const scrollbarWidth = getScrollbarWidth(rootDocument);
|
180
179
|
const overlayRoot = this.clone.wtTable.holder.parentNode;
|
181
180
|
const overlayRootStyle = overlayRoot.style;
|
182
181
|
const preventOverflow = this.wtSettings.getSetting('preventOverflow');
|
183
182
|
if (this.trimmingContainer !== rootWindow || preventOverflow === 'horizontal') {
|
184
183
|
let width = wtViewport.getWorkspaceWidth();
|
185
|
-
if (
|
186
|
-
width -=
|
184
|
+
if (wtViewport.hasVerticalScroll()) {
|
185
|
+
width -= getScrollbarWidth(rootDocument);
|
187
186
|
}
|
188
187
|
width = Math.min(width, wtTable.wtRootElement.scrollWidth);
|
189
188
|
overlayRootStyle.width = `${width}px`;
|
@@ -192,7 +191,7 @@ export class BottomOverlay extends Overlay {
|
|
192
191
|
}
|
193
192
|
this.clone.wtTable.holder.style.width = overlayRootStyle.width;
|
194
193
|
let tableHeight = outerHeight(this.clone.wtTable.TABLE);
|
195
|
-
if (!
|
194
|
+
if (!wtTable.hasDefinedSize()) {
|
196
195
|
tableHeight = 0;
|
197
196
|
}
|
198
197
|
overlayRootStyle.height = `${tableHeight}px`;
|
@@ -119,7 +119,7 @@ class InlineStartOverlay extends _base.Overlay {
|
|
119
119
|
let column = from;
|
120
120
|
let sum = 0;
|
121
121
|
while (column < to) {
|
122
|
-
sum += this.wot.wtTable.
|
122
|
+
sum += this.wot.wtTable.getColumnWidth(column) || defaultColumnWidth;
|
123
123
|
column += 1;
|
124
124
|
}
|
125
125
|
return sum;
|
@@ -141,20 +141,20 @@ class InlineStartOverlay extends _base.Overlay {
|
|
141
141
|
*/
|
142
142
|
adjustRootElementSize() {
|
143
143
|
const {
|
144
|
-
wtTable
|
144
|
+
wtTable,
|
145
|
+
wtViewport
|
145
146
|
} = this.wot;
|
146
147
|
const {
|
147
148
|
rootDocument,
|
148
149
|
rootWindow
|
149
150
|
} = this.domBindings;
|
150
|
-
const scrollbarHeight = (0, _element.getScrollbarWidth)(rootDocument);
|
151
151
|
const overlayRoot = this.clone.wtTable.holder.parentNode;
|
152
152
|
const overlayRootStyle = overlayRoot.style;
|
153
153
|
const preventOverflow = this.wtSettings.getSetting('preventOverflow');
|
154
154
|
if (this.trimmingContainer !== rootWindow || preventOverflow === 'vertical') {
|
155
|
-
let height =
|
156
|
-
if (
|
157
|
-
height -=
|
155
|
+
let height = wtViewport.getWorkspaceHeight();
|
156
|
+
if (wtViewport.hasHorizontalScroll()) {
|
157
|
+
height -= (0, _element.getScrollbarWidth)(rootDocument);
|
158
158
|
}
|
159
159
|
height = Math.min(height, wtTable.wtRootElement.scrollHeight);
|
160
160
|
overlayRootStyle.height = `${height}px`;
|
@@ -173,7 +173,8 @@ class InlineStartOverlay extends _base.Overlay {
|
|
173
173
|
const {
|
174
174
|
holder
|
175
175
|
} = this.clone.wtTable;
|
176
|
-
const
|
176
|
+
const cornerStyle = (0, _selection.getCornerStyle)(this.wot);
|
177
|
+
const selectionCornerOffset = this.wot.selectionManager.getFocusSelection() ? parseInt(cornerStyle.width, 10) / 2 : 0;
|
177
178
|
this.clone.wtTable.hider.style.height = this.hider.style.height;
|
178
179
|
holder.style.height = holder.parentNode.style.height;
|
179
180
|
// Add selection corner protruding part to the holder total width to make sure that
|
@@ -2,7 +2,7 @@ import "core-js/modules/es.error.cause.js";
|
|
2
2
|
import { addClass, getScrollbarWidth, getScrollLeft, getMaximumScrollLeft, getWindowScrollTop, hasClass, outerWidth, removeClass, setOverlayPosition, resetCssTransform } from "../../../../helpers/dom/element.mjs";
|
3
3
|
import InlineStartOverlayTable from "../table/inlineStart.mjs";
|
4
4
|
import { Overlay } from "./_base.mjs";
|
5
|
-
import {
|
5
|
+
import { getCornerStyle } from "../selection/index.mjs";
|
6
6
|
import { CLONE_INLINE_START } from "./constants.mjs";
|
7
7
|
/**
|
8
8
|
* @class InlineStartOverlay
|
@@ -115,7 +115,7 @@ export class InlineStartOverlay extends Overlay {
|
|
115
115
|
let column = from;
|
116
116
|
let sum = 0;
|
117
117
|
while (column < to) {
|
118
|
-
sum += this.wot.wtTable.
|
118
|
+
sum += this.wot.wtTable.getColumnWidth(column) || defaultColumnWidth;
|
119
119
|
column += 1;
|
120
120
|
}
|
121
121
|
return sum;
|
@@ -137,20 +137,20 @@ export class InlineStartOverlay extends Overlay {
|
|
137
137
|
*/
|
138
138
|
adjustRootElementSize() {
|
139
139
|
const {
|
140
|
-
wtTable
|
140
|
+
wtTable,
|
141
|
+
wtViewport
|
141
142
|
} = this.wot;
|
142
143
|
const {
|
143
144
|
rootDocument,
|
144
145
|
rootWindow
|
145
146
|
} = this.domBindings;
|
146
|
-
const scrollbarHeight = getScrollbarWidth(rootDocument);
|
147
147
|
const overlayRoot = this.clone.wtTable.holder.parentNode;
|
148
148
|
const overlayRootStyle = overlayRoot.style;
|
149
149
|
const preventOverflow = this.wtSettings.getSetting('preventOverflow');
|
150
150
|
if (this.trimmingContainer !== rootWindow || preventOverflow === 'vertical') {
|
151
|
-
let height =
|
152
|
-
if (
|
153
|
-
height -=
|
151
|
+
let height = wtViewport.getWorkspaceHeight();
|
152
|
+
if (wtViewport.hasHorizontalScroll()) {
|
153
|
+
height -= getScrollbarWidth(rootDocument);
|
154
154
|
}
|
155
155
|
height = Math.min(height, wtTable.wtRootElement.scrollHeight);
|
156
156
|
overlayRootStyle.height = `${height}px`;
|
@@ -169,7 +169,8 @@ export class InlineStartOverlay extends Overlay {
|
|
169
169
|
const {
|
170
170
|
holder
|
171
171
|
} = this.clone.wtTable;
|
172
|
-
const
|
172
|
+
const cornerStyle = getCornerStyle(this.wot);
|
173
|
+
const selectionCornerOffset = this.wot.selectionManager.getFocusSelection() ? parseInt(cornerStyle.width, 10) / 2 : 0;
|
173
174
|
this.clone.wtTable.hider.style.height = this.hider.style.height;
|
174
175
|
holder.style.height = holder.parentNode.style.height;
|
175
176
|
// Add selection corner protruding part to the holder total width to make sure that
|
@@ -138,7 +138,7 @@ class TopOverlay extends _base.Overlay {
|
|
138
138
|
* @returns {number} Height sum.
|
139
139
|
*/
|
140
140
|
sumCellSizes(from, to) {
|
141
|
-
const defaultRowHeight = this.
|
141
|
+
const defaultRowHeight = this.wot.stylesHandler.getDefaultRowHeight();
|
142
142
|
let row = from;
|
143
143
|
let sum = 0;
|
144
144
|
while (row < to) {
|
@@ -165,20 +165,20 @@ class TopOverlay extends _base.Overlay {
|
|
165
165
|
*/
|
166
166
|
adjustRootElementSize() {
|
167
167
|
const {
|
168
|
-
wtTable
|
168
|
+
wtTable,
|
169
|
+
wtViewport
|
169
170
|
} = this.wot;
|
170
171
|
const {
|
171
172
|
rootDocument,
|
172
173
|
rootWindow
|
173
174
|
} = this.domBindings;
|
174
|
-
const scrollbarWidth = (0, _element.getScrollbarWidth)(rootDocument);
|
175
175
|
const overlayRoot = this.clone.wtTable.holder.parentNode;
|
176
176
|
const overlayRootStyle = overlayRoot.style;
|
177
177
|
const preventOverflow = this.wtSettings.getSetting('preventOverflow');
|
178
178
|
if (this.trimmingContainer !== rootWindow || preventOverflow === 'horizontal') {
|
179
|
-
let width =
|
180
|
-
if (
|
181
|
-
width -=
|
179
|
+
let width = wtViewport.getWorkspaceWidth();
|
180
|
+
if (wtViewport.hasVerticalScroll()) {
|
181
|
+
width -= (0, _element.getScrollbarWidth)(rootDocument);
|
182
182
|
}
|
183
183
|
width = Math.min(width, wtTable.wtRootElement.scrollWidth);
|
184
184
|
overlayRootStyle.width = `${width}px`;
|
@@ -187,7 +187,7 @@ class TopOverlay extends _base.Overlay {
|
|
187
187
|
}
|
188
188
|
this.clone.wtTable.holder.style.width = overlayRootStyle.width;
|
189
189
|
let tableHeight = (0, _element.outerHeight)(this.clone.wtTable.TABLE);
|
190
|
-
if (!
|
190
|
+
if (!wtTable.hasDefinedSize()) {
|
191
191
|
tableHeight = 0;
|
192
192
|
}
|
193
193
|
overlayRootStyle.height = `${tableHeight}px`;
|
@@ -200,7 +200,8 @@ class TopOverlay extends _base.Overlay {
|
|
200
200
|
const {
|
201
201
|
holder
|
202
202
|
} = this.clone.wtTable;
|
203
|
-
const
|
203
|
+
const cornerStyle = (0, _selection.getCornerStyle)(this.wot);
|
204
|
+
const selectionCornerOffset = this.wot.selectionManager.getFocusSelection() ? parseInt(cornerStyle.height, 10) / 2 : 0;
|
204
205
|
this.clone.wtTable.hider.style.width = this.hider.style.width;
|
205
206
|
holder.style.width = holder.parentNode.style.width;
|
206
207
|
// Add selection corner protruding part to the holder total height to make sure that
|
@@ -5,7 +5,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
5
5
|
import { addClass, getMaximumScrollTop, getScrollbarWidth, getScrollTop, getWindowScrollLeft, hasClass, outerHeight, removeClass, setOverlayPosition, resetCssTransform } from "../../../../helpers/dom/element.mjs";
|
6
6
|
import TopOverlayTable from "./../table/top.mjs";
|
7
7
|
import { Overlay } from "./_base.mjs";
|
8
|
-
import {
|
8
|
+
import { getCornerStyle } from "../selection/index.mjs";
|
9
9
|
import { CLONE_TOP } from "./constants.mjs";
|
10
10
|
/**
|
11
11
|
* @class TopOverlay
|
@@ -134,7 +134,7 @@ export class TopOverlay extends Overlay {
|
|
134
134
|
* @returns {number} Height sum.
|
135
135
|
*/
|
136
136
|
sumCellSizes(from, to) {
|
137
|
-
const defaultRowHeight = this.
|
137
|
+
const defaultRowHeight = this.wot.stylesHandler.getDefaultRowHeight();
|
138
138
|
let row = from;
|
139
139
|
let sum = 0;
|
140
140
|
while (row < to) {
|
@@ -161,20 +161,20 @@ export class TopOverlay extends Overlay {
|
|
161
161
|
*/
|
162
162
|
adjustRootElementSize() {
|
163
163
|
const {
|
164
|
-
wtTable
|
164
|
+
wtTable,
|
165
|
+
wtViewport
|
165
166
|
} = this.wot;
|
166
167
|
const {
|
167
168
|
rootDocument,
|
168
169
|
rootWindow
|
169
170
|
} = this.domBindings;
|
170
|
-
const scrollbarWidth = getScrollbarWidth(rootDocument);
|
171
171
|
const overlayRoot = this.clone.wtTable.holder.parentNode;
|
172
172
|
const overlayRootStyle = overlayRoot.style;
|
173
173
|
const preventOverflow = this.wtSettings.getSetting('preventOverflow');
|
174
174
|
if (this.trimmingContainer !== rootWindow || preventOverflow === 'horizontal') {
|
175
|
-
let width =
|
176
|
-
if (
|
177
|
-
width -=
|
175
|
+
let width = wtViewport.getWorkspaceWidth();
|
176
|
+
if (wtViewport.hasVerticalScroll()) {
|
177
|
+
width -= getScrollbarWidth(rootDocument);
|
178
178
|
}
|
179
179
|
width = Math.min(width, wtTable.wtRootElement.scrollWidth);
|
180
180
|
overlayRootStyle.width = `${width}px`;
|
@@ -183,7 +183,7 @@ export class TopOverlay extends Overlay {
|
|
183
183
|
}
|
184
184
|
this.clone.wtTable.holder.style.width = overlayRootStyle.width;
|
185
185
|
let tableHeight = outerHeight(this.clone.wtTable.TABLE);
|
186
|
-
if (!
|
186
|
+
if (!wtTable.hasDefinedSize()) {
|
187
187
|
tableHeight = 0;
|
188
188
|
}
|
189
189
|
overlayRootStyle.height = `${tableHeight}px`;
|
@@ -196,7 +196,8 @@ export class TopOverlay extends Overlay {
|
|
196
196
|
const {
|
197
197
|
holder
|
198
198
|
} = this.clone.wtTable;
|
199
|
-
const
|
199
|
+
const cornerStyle = getCornerStyle(this.wot);
|
200
|
+
const selectionCornerOffset = this.wot.selectionManager.getFocusSelection() ? parseInt(cornerStyle.height, 10) / 2 : 0;
|
200
201
|
this.clone.wtTable.hider.style.width = this.hider.style.width;
|
201
202
|
holder.style.width = holder.parentNode.style.width;
|
202
203
|
// Add selection corner protruding part to the holder total height to make sure that
|
@@ -3,6 +3,9 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
require("core-js/modules/es.error.cause.js");
|
5
5
|
require("core-js/modules/es.array.push.js");
|
6
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
7
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
8
|
+
require("core-js/modules/esnext.iterator.reduce.js");
|
6
9
|
var _element = require("../../../helpers/dom/element");
|
7
10
|
var _feature = require("../../../helpers/feature");
|
8
11
|
var _array = require("../../../helpers/array");
|
@@ -163,8 +166,6 @@ class Overlays {
|
|
163
166
|
const isOverflowHidden = rootWindow.getComputedStyle(wtTable.wtRootElement.parentNode).getPropertyValue('overflow') === 'hidden';
|
164
167
|
this.scrollableElement = isOverflowHidden ? wtTable.holder : (0, _element.getScrollableElement)(wtTable.TABLE);
|
165
168
|
this.initOverlays();
|
166
|
-
this.hasScrollbarBottom = false;
|
167
|
-
this.hasScrollbarRight = false;
|
168
169
|
this.destroyed = false;
|
169
170
|
this.keyPressed = false;
|
170
171
|
this.spreaderLastSize = {
|
@@ -329,13 +330,14 @@ class Overlays {
|
|
329
330
|
});
|
330
331
|
let resizeTimeout;
|
331
332
|
this.eventManager.addEventListener(rootWindow, 'resize', () => {
|
332
|
-
|
333
|
-
|
333
|
+
(0, _feature.requestAnimationFrame)(() => {
|
334
|
+
clearTimeout(resizeTimeout);
|
334
335
|
this.wtSettings.getSetting('onWindowResize');
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
336
|
+
resizeTimeout = setTimeout(() => {
|
337
|
+
// Remove resizing the window from the ResizeObserver's endless-loop-blocking logic.
|
338
|
+
_classPrivateFieldSet(_containerDomResizeCount, this, 0);
|
339
|
+
}, 200);
|
340
|
+
});
|
339
341
|
});
|
340
342
|
if (!isScrollOnWindow) {
|
341
343
|
this.resizeObserver.observe(this.wtTable.wtRootElement.parentElement);
|
@@ -641,24 +643,6 @@ class Overlays {
|
|
641
643
|
// we need to adjust the hider dimensions by the header border size. (https://github.com/handsontable/dev-handsontable/issues/1772)
|
642
644
|
hiderStyle.width = `${proposedHiderWidth + rowHeaderBorderCompensation}px`;
|
643
645
|
hiderStyle.height = `${proposedHiderHeight + columnHeaderBorderCompensation}px`;
|
644
|
-
if (this.scrollbarSize > 0) {
|
645
|
-
// todo refactoring, looking as a part of logic which should be moved outside the class
|
646
|
-
const {
|
647
|
-
scrollHeight: rootElemScrollHeight,
|
648
|
-
scrollWidth: rootElemScrollWidth
|
649
|
-
} = wtTable.wtRootElement;
|
650
|
-
const {
|
651
|
-
scrollHeight: holderScrollHeight,
|
652
|
-
scrollWidth: holderScrollWidth
|
653
|
-
} = wtTable.holder;
|
654
|
-
this.hasScrollbarRight = rootElemScrollHeight < holderScrollHeight;
|
655
|
-
this.hasScrollbarBottom = rootElemScrollWidth < holderScrollWidth;
|
656
|
-
if (this.hasScrollbarRight && wtTable.hider.scrollWidth + this.scrollbarSize > rootElemScrollWidth) {
|
657
|
-
this.hasScrollbarBottom = true;
|
658
|
-
} else if (this.hasScrollbarBottom && wtTable.hider.scrollHeight + this.scrollbarSize > rootElemScrollHeight) {
|
659
|
-
this.hasScrollbarRight = true;
|
660
|
-
}
|
661
|
-
}
|
662
646
|
this.topOverlay.adjustElementsSize();
|
663
647
|
this.inlineStartOverlay.adjustElementsSize();
|
664
648
|
this.bottomOverlay.adjustElementsSize();
|
@@ -1,5 +1,8 @@
|
|
1
1
|
import "core-js/modules/es.error.cause.js";
|
2
2
|
import "core-js/modules/es.array.push.js";
|
3
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
4
|
+
import "core-js/modules/esnext.iterator.for-each.js";
|
5
|
+
import "core-js/modules/esnext.iterator.reduce.js";
|
3
6
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
4
7
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
5
8
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
@@ -160,8 +163,6 @@ class Overlays {
|
|
160
163
|
const isOverflowHidden = rootWindow.getComputedStyle(wtTable.wtRootElement.parentNode).getPropertyValue('overflow') === 'hidden';
|
161
164
|
this.scrollableElement = isOverflowHidden ? wtTable.holder : getScrollableElement(wtTable.TABLE);
|
162
165
|
this.initOverlays();
|
163
|
-
this.hasScrollbarBottom = false;
|
164
|
-
this.hasScrollbarRight = false;
|
165
166
|
this.destroyed = false;
|
166
167
|
this.keyPressed = false;
|
167
168
|
this.spreaderLastSize = {
|
@@ -326,13 +327,14 @@ class Overlays {
|
|
326
327
|
});
|
327
328
|
let resizeTimeout;
|
328
329
|
this.eventManager.addEventListener(rootWindow, 'resize', () => {
|
329
|
-
|
330
|
-
|
330
|
+
requestAnimationFrame(() => {
|
331
|
+
clearTimeout(resizeTimeout);
|
331
332
|
this.wtSettings.getSetting('onWindowResize');
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
333
|
+
resizeTimeout = setTimeout(() => {
|
334
|
+
// Remove resizing the window from the ResizeObserver's endless-loop-blocking logic.
|
335
|
+
_classPrivateFieldSet(_containerDomResizeCount, this, 0);
|
336
|
+
}, 200);
|
337
|
+
});
|
336
338
|
});
|
337
339
|
if (!isScrollOnWindow) {
|
338
340
|
this.resizeObserver.observe(this.wtTable.wtRootElement.parentElement);
|
@@ -638,24 +640,6 @@ class Overlays {
|
|
638
640
|
// we need to adjust the hider dimensions by the header border size. (https://github.com/handsontable/dev-handsontable/issues/1772)
|
639
641
|
hiderStyle.width = `${proposedHiderWidth + rowHeaderBorderCompensation}px`;
|
640
642
|
hiderStyle.height = `${proposedHiderHeight + columnHeaderBorderCompensation}px`;
|
641
|
-
if (this.scrollbarSize > 0) {
|
642
|
-
// todo refactoring, looking as a part of logic which should be moved outside the class
|
643
|
-
const {
|
644
|
-
scrollHeight: rootElemScrollHeight,
|
645
|
-
scrollWidth: rootElemScrollWidth
|
646
|
-
} = wtTable.wtRootElement;
|
647
|
-
const {
|
648
|
-
scrollHeight: holderScrollHeight,
|
649
|
-
scrollWidth: holderScrollWidth
|
650
|
-
} = wtTable.holder;
|
651
|
-
this.hasScrollbarRight = rootElemScrollHeight < holderScrollHeight;
|
652
|
-
this.hasScrollbarBottom = rootElemScrollWidth < holderScrollWidth;
|
653
|
-
if (this.hasScrollbarRight && wtTable.hider.scrollWidth + this.scrollbarSize > rootElemScrollWidth) {
|
654
|
-
this.hasScrollbarBottom = true;
|
655
|
-
} else if (this.hasScrollbarBottom && wtTable.hider.scrollHeight + this.scrollbarSize > rootElemScrollHeight) {
|
656
|
-
this.hasScrollbarRight = true;
|
657
|
-
}
|
658
|
-
}
|
659
643
|
this.topOverlay.adjustElementsSize();
|
660
644
|
this.inlineStartOverlay.adjustElementsSize();
|
661
645
|
this.bottomOverlay.adjustElementsSize();
|
@@ -70,7 +70,7 @@ class ColGroupRenderer extends _base.default {
|
|
70
70
|
// Render column nodes for cells
|
71
71
|
for (let visibleColumnIndex = 0; visibleColumnIndex < columnsToRender; visibleColumnIndex++) {
|
72
72
|
const sourceColumnIndex = this.table.renderedColumnToSource(visibleColumnIndex);
|
73
|
-
const width = this.table.columnUtils.
|
73
|
+
const width = this.table.columnUtils.getWidth(sourceColumnIndex);
|
74
74
|
this.rootNode.childNodes[visibleColumnIndex + rowHeadersCount].style.width = `${width}px`;
|
75
75
|
}
|
76
76
|
const firstChild = this.rootNode.firstChild;
|
@@ -66,7 +66,7 @@ export default class ColGroupRenderer extends BaseRenderer {
|
|
66
66
|
// Render column nodes for cells
|
67
67
|
for (let visibleColumnIndex = 0; visibleColumnIndex < columnsToRender; visibleColumnIndex++) {
|
68
68
|
const sourceColumnIndex = this.table.renderedColumnToSource(visibleColumnIndex);
|
69
|
-
const width = this.table.columnUtils.
|
69
|
+
const width = this.table.columnUtils.getWidth(sourceColumnIndex);
|
70
70
|
this.rootNode.childNodes[visibleColumnIndex + rowHeadersCount].style.width = `${width}px`;
|
71
71
|
}
|
72
72
|
const firstChild = this.rootNode.firstChild;
|
@@ -28,7 +28,8 @@ class Renderer {
|
|
28
28
|
TBODY,
|
29
29
|
rowUtils,
|
30
30
|
columnUtils,
|
31
|
-
cellRenderer
|
31
|
+
cellRenderer,
|
32
|
+
stylesHandler
|
32
33
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
33
34
|
/**
|
34
35
|
* General renderer class used to render Walkontable content on screen.
|
@@ -36,7 +37,8 @@ class Renderer {
|
|
36
37
|
* @type {TableRenderer}
|
37
38
|
*/
|
38
39
|
this.renderer = new _table.default(TABLE, {
|
39
|
-
cellRenderer
|
40
|
+
cellRenderer,
|
41
|
+
stylesHandler
|
40
42
|
});
|
41
43
|
this.renderer.setRenderers({
|
42
44
|
rowHeaders: new _rowHeaders.default(),
|
@@ -18,7 +18,8 @@ class Renderer {
|
|
18
18
|
TBODY,
|
19
19
|
rowUtils,
|
20
20
|
columnUtils,
|
21
|
-
cellRenderer
|
21
|
+
cellRenderer,
|
22
|
+
stylesHandler
|
22
23
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
23
24
|
/**
|
24
25
|
* General renderer class used to render Walkontable content on screen.
|
@@ -26,7 +27,8 @@ class Renderer {
|
|
26
27
|
* @type {TableRenderer}
|
27
28
|
*/
|
28
29
|
this.renderer = new TableRenderer(TABLE, {
|
29
|
-
cellRenderer
|
30
|
+
cellRenderer,
|
31
|
+
stylesHandler
|
30
32
|
});
|
31
33
|
this.renderer.setRenderers({
|
32
34
|
rowHeaders: new RowHeadersRenderer(),
|
@@ -52,7 +52,8 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
52
52
|
class TableRenderer {
|
53
53
|
constructor(rootNode) {
|
54
54
|
let {
|
55
|
-
cellRenderer
|
55
|
+
cellRenderer,
|
56
|
+
stylesHandler
|
56
57
|
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
57
58
|
/**
|
58
59
|
* Table element which will be used to render the children element.
|
@@ -168,9 +169,14 @@ class TableRenderer {
|
|
168
169
|
* @type {'inline_start'|'top'|'top_inline_start_corner'|'bottom'|'bottom_inline_start_corner'|'master'}
|
169
170
|
*/
|
170
171
|
_defineProperty(this, "activeOverlayName", void 0);
|
172
|
+
/**
|
173
|
+
* Styles handler instance.
|
174
|
+
*/
|
175
|
+
_defineProperty(this, "stylesHandler", void 0);
|
171
176
|
this.rootNode = rootNode;
|
172
177
|
this.rootDocument = this.rootNode.ownerDocument;
|
173
178
|
this.cellRenderer = cellRenderer;
|
179
|
+
this.stylesHandler = stylesHandler;
|
174
180
|
}
|
175
181
|
|
176
182
|
/**
|
@@ -301,7 +307,7 @@ class TableRenderer {
|
|
301
307
|
this.rowHeaders.render();
|
302
308
|
this.cells.render();
|
303
309
|
|
304
|
-
// After the cells are rendered calculate columns width
|
310
|
+
// After the cells are rendered calculate columns width to prepare proper values
|
305
311
|
// for colGroup renderer (which renders COL elements).
|
306
312
|
this.columnUtils.calculateWidths();
|
307
313
|
this.colGroup.render();
|
@@ -313,12 +319,15 @@ class TableRenderer {
|
|
313
319
|
// Fix for multi-line content and for supporting `rowHeights` option.
|
314
320
|
for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
|
315
321
|
const TR = rows.getRenderedNode(visibleRowIndex);
|
322
|
+
const rowUtils = this.rowUtils;
|
316
323
|
if (TR.firstChild) {
|
317
324
|
const sourceRowIndex = this.renderedRowToSource(visibleRowIndex);
|
318
|
-
const rowHeight =
|
325
|
+
const rowHeight = rowUtils.getHeightByOverlayName(sourceRowIndex, this.activeOverlayName);
|
326
|
+
const isBorderBoxSizing = this.stylesHandler.areCellsBorderBox();
|
327
|
+
const borderCompensation = isBorderBoxSizing ? 0 : 1;
|
319
328
|
if (rowHeight) {
|
320
329
|
// Decrease height. 1 pixel will be "replaced" by 1px border top
|
321
|
-
TR.firstChild.style.height = `${rowHeight -
|
330
|
+
TR.firstChild.style.height = `${rowHeight - borderCompensation}px`;
|
322
331
|
} else {
|
323
332
|
TR.firstChild.style.height = '';
|
324
333
|
}
|
@@ -49,7 +49,8 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
49
49
|
export default class TableRenderer {
|
50
50
|
constructor(rootNode) {
|
51
51
|
let {
|
52
|
-
cellRenderer
|
52
|
+
cellRenderer,
|
53
|
+
stylesHandler
|
53
54
|
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
54
55
|
/**
|
55
56
|
* Table element which will be used to render the children element.
|
@@ -165,9 +166,14 @@ export default class TableRenderer {
|
|
165
166
|
* @type {'inline_start'|'top'|'top_inline_start_corner'|'bottom'|'bottom_inline_start_corner'|'master'}
|
166
167
|
*/
|
167
168
|
_defineProperty(this, "activeOverlayName", void 0);
|
169
|
+
/**
|
170
|
+
* Styles handler instance.
|
171
|
+
*/
|
172
|
+
_defineProperty(this, "stylesHandler", void 0);
|
168
173
|
this.rootNode = rootNode;
|
169
174
|
this.rootDocument = this.rootNode.ownerDocument;
|
170
175
|
this.cellRenderer = cellRenderer;
|
176
|
+
this.stylesHandler = stylesHandler;
|
171
177
|
}
|
172
178
|
|
173
179
|
/**
|
@@ -298,7 +304,7 @@ export default class TableRenderer {
|
|
298
304
|
this.rowHeaders.render();
|
299
305
|
this.cells.render();
|
300
306
|
|
301
|
-
// After the cells are rendered calculate columns width
|
307
|
+
// After the cells are rendered calculate columns width to prepare proper values
|
302
308
|
// for colGroup renderer (which renders COL elements).
|
303
309
|
this.columnUtils.calculateWidths();
|
304
310
|
this.colGroup.render();
|
@@ -310,12 +316,15 @@ export default class TableRenderer {
|
|
310
316
|
// Fix for multi-line content and for supporting `rowHeights` option.
|
311
317
|
for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
|
312
318
|
const TR = rows.getRenderedNode(visibleRowIndex);
|
319
|
+
const rowUtils = this.rowUtils;
|
313
320
|
if (TR.firstChild) {
|
314
321
|
const sourceRowIndex = this.renderedRowToSource(visibleRowIndex);
|
315
|
-
const rowHeight =
|
322
|
+
const rowHeight = rowUtils.getHeightByOverlayName(sourceRowIndex, this.activeOverlayName);
|
323
|
+
const isBorderBoxSizing = this.stylesHandler.areCellsBorderBox();
|
324
|
+
const borderCompensation = isBorderBoxSizing ? 0 : 1;
|
316
325
|
if (rowHeight) {
|
317
326
|
// Decrease height. 1 pixel will be "replaced" by 1px border top
|
318
|
-
TR.firstChild.style.height = `${rowHeight -
|
327
|
+
TR.firstChild.style.height = `${rowHeight - borderCompensation}px`;
|
319
328
|
} else {
|
320
329
|
TR.firstChild.style.height = '';
|
321
330
|
}
|