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,5 +1,7 @@
|
|
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.some.js";
|
3
5
|
function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
|
4
6
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
5
7
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
@@ -7,7 +9,7 @@ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a),
|
|
7
9
|
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
8
10
|
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
9
11
|
import { BasePlugin } from "../base/index.mjs";
|
10
|
-
import Hooks from "../../
|
12
|
+
import { Hooks } from "../../core/hooks/index.mjs";
|
11
13
|
import { arrayReduce } from "../../helpers/array.mjs";
|
12
14
|
import { addClass, removeClass, offset, getTrimmingContainer } from "../../helpers/dom/element.mjs";
|
13
15
|
import { rangeEach } from "../../helpers/number.mjs";
|
@@ -313,7 +315,7 @@ export class ManualRowMove extends BasePlugin {
|
|
313
315
|
for (let visualRowIndex = fromRow; visualRowIndex <= toRow; visualRowIndex++) {
|
314
316
|
const renderableIndex = rowMapper.getRenderableFromVisualIndex(visualRowIndex);
|
315
317
|
if (renderableIndex !== null) {
|
316
|
-
rowsHeight += this.hot.view._wt.wtTable.getRowHeight(renderableIndex) ||
|
318
|
+
rowsHeight += this.hot.view._wt.wtTable.getRowHeight(renderableIndex) || this.hot.view.getDefaultRowHeight();
|
317
319
|
}
|
318
320
|
}
|
319
321
|
return rowsHeight;
|
@@ -413,8 +415,8 @@ export class ManualRowMove extends BasePlugin {
|
|
413
415
|
*/
|
414
416
|
refreshPositions() {
|
415
417
|
const coords = _classPrivateFieldGet(_target, this).coords;
|
416
|
-
const firstVisible = this.hot.
|
417
|
-
const lastVisible = this.hot.
|
418
|
+
const firstVisible = this.hot.getFirstFullyVisibleRow();
|
419
|
+
const lastVisible = this.hot.getLastFullyVisibleRow();
|
418
420
|
const countRows = this.hot.countRows();
|
419
421
|
if (this.isFixedRowTop(coords.row) && firstVisible > 0) {
|
420
422
|
this.hot.scrollViewportTo(this.hot.rowIndexMapper.getNearestNotHiddenIndex(firstVisible - 1, -1));
|
@@ -3,12 +3,13 @@
|
|
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");
|
6
8
|
var _base = require("../base");
|
7
9
|
var _element = require("../../helpers/dom/element");
|
8
10
|
var _array = require("../../helpers/array");
|
9
11
|
var _number = require("../../helpers/number");
|
10
12
|
var _translations = require("../../translations");
|
11
|
-
var _src = require("../../3rdparty/walkontable/src");
|
12
13
|
function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
|
13
14
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
14
15
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
@@ -227,7 +228,7 @@ class ManualRowResize extends _base.BasePlugin {
|
|
227
228
|
*/
|
228
229
|
setManualSize(row, height) {
|
229
230
|
const physicalRow = this.hot.toPhysicalRow(row);
|
230
|
-
const newHeight = Math.max(height,
|
231
|
+
const newHeight = Math.max(height, this.hot.view.getDefaultRowHeight());
|
231
232
|
_classPrivateFieldGet(_rowHeightsMap, this).setValueAtIndex(physicalRow, newHeight);
|
232
233
|
return newHeight;
|
233
234
|
}
|
@@ -1,5 +1,7 @@
|
|
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";
|
3
5
|
function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
|
4
6
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
5
7
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
@@ -10,8 +12,7 @@ import { BasePlugin } from "../base/index.mjs";
|
|
10
12
|
import { addClass, closest, hasClass, removeClass, outerWidth, isDetached } from "../../helpers/dom/element.mjs";
|
11
13
|
import { arrayEach } from "../../helpers/array.mjs";
|
12
14
|
import { rangeEach } from "../../helpers/number.mjs";
|
13
|
-
import { PhysicalIndexToValueMap as IndexToValueMap } from "../../translations/index.mjs";
|
14
|
-
import { DEFAULT_ROW_HEIGHT } from "../../3rdparty/walkontable/src/index.mjs"; // Developer note! Whenever you make a change in this file, make an analogous change in manualColumnResize.js
|
15
|
+
import { PhysicalIndexToValueMap as IndexToValueMap } from "../../translations/index.mjs"; // Developer note! Whenever you make a change in this file, make an analogous change in manualColumnResize.js
|
15
16
|
export const PLUGIN_KEY = 'manualRowResize';
|
16
17
|
export const PLUGIN_PRIORITY = 30;
|
17
18
|
const PERSISTENT_STATE_KEY = 'manualRowHeights';
|
@@ -222,7 +223,7 @@ export class ManualRowResize extends BasePlugin {
|
|
222
223
|
*/
|
223
224
|
setManualSize(row, height) {
|
224
225
|
const physicalRow = this.hot.toPhysicalRow(row);
|
225
|
-
const newHeight = Math.max(height,
|
226
|
+
const newHeight = Math.max(height, this.hot.view.getDefaultRowHeight());
|
226
227
|
_classPrivateFieldGet(_rowHeightsMap, this).setValueAtIndex(physicalRow, newHeight);
|
227
228
|
return newHeight;
|
228
229
|
}
|
@@ -11,6 +11,10 @@ require("core-js/modules/es.set.is-subset-of.v2.js");
|
|
11
11
|
require("core-js/modules/es.set.is-superset-of.v2.js");
|
12
12
|
require("core-js/modules/es.set.symmetric-difference.v2.js");
|
13
13
|
require("core-js/modules/es.set.union.v2.js");
|
14
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
15
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
16
|
+
require("core-js/modules/esnext.iterator.flat-map.js");
|
17
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
14
18
|
var _cellCoords = _interopRequireDefault(require("./cellCoords"));
|
15
19
|
var _number = require("../../helpers/number");
|
16
20
|
var _console = require("../../helpers/console");
|
@@ -302,9 +306,21 @@ class MergedCellsCollection {
|
|
302
306
|
*/
|
303
307
|
isFirstRenderableMergedCell(row, column) {
|
304
308
|
const mergeParent = this.get(row, column);
|
305
|
-
|
306
|
-
|
307
|
-
|
309
|
+
if (!mergeParent) {
|
310
|
+
return false;
|
311
|
+
}
|
312
|
+
const {
|
313
|
+
row: mergeRow,
|
314
|
+
col: mergeColumn,
|
315
|
+
rowspan,
|
316
|
+
colspan
|
317
|
+
} = mergeParent;
|
318
|
+
const overlayName = this.hot.view.getActiveOverlayName();
|
319
|
+
const firstRenderedRow = ['top', 'top_inline_start_corner'].includes(overlayName) ? 0 : this.hot.getFirstRenderedVisibleRow();
|
320
|
+
const firstRenderedColumn = ['inline_start', 'top_inline_start_corner', 'bottom_inline_start_corner'].includes(overlayName) ? 0 : this.hot.getFirstRenderedVisibleColumn();
|
321
|
+
const mergeCellsTopRow = (0, _number.clamp)(firstRenderedRow, mergeRow, mergeRow + rowspan - 1);
|
322
|
+
const mergeCellsStartColumn = (0, _number.clamp)(firstRenderedColumn, mergeColumn, mergeColumn + colspan - 1);
|
323
|
+
return this.hot.rowIndexMapper.getNearestNotHiddenIndex(mergeCellsTopRow, 1) === row && this.hot.columnIndexMapper.getNearestNotHiddenIndex(mergeCellsStartColumn, 1) === column;
|
308
324
|
}
|
309
325
|
|
310
326
|
/**
|
@@ -8,6 +8,10 @@ import "core-js/modules/es.set.is-subset-of.v2.js";
|
|
8
8
|
import "core-js/modules/es.set.is-superset-of.v2.js";
|
9
9
|
import "core-js/modules/es.set.symmetric-difference.v2.js";
|
10
10
|
import "core-js/modules/es.set.union.v2.js";
|
11
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
12
|
+
import "core-js/modules/esnext.iterator.filter.js";
|
13
|
+
import "core-js/modules/esnext.iterator.flat-map.js";
|
14
|
+
import "core-js/modules/esnext.iterator.for-each.js";
|
11
15
|
function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
|
12
16
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
13
17
|
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; }
|
@@ -15,7 +19,7 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
|
|
15
19
|
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); }
|
16
20
|
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
17
21
|
import MergedCellCoords from "./cellCoords.mjs";
|
18
|
-
import { rangeEach } from "../../helpers/number.mjs";
|
22
|
+
import { rangeEach, clamp } from "../../helpers/number.mjs";
|
19
23
|
import { warn } from "../../helpers/console.mjs";
|
20
24
|
import { arrayEach } from "../../helpers/array.mjs";
|
21
25
|
import { toSingleLine } from "../../helpers/templateLiteralTag.mjs";
|
@@ -298,9 +302,21 @@ class MergedCellsCollection {
|
|
298
302
|
*/
|
299
303
|
isFirstRenderableMergedCell(row, column) {
|
300
304
|
const mergeParent = this.get(row, column);
|
301
|
-
|
302
|
-
|
303
|
-
|
305
|
+
if (!mergeParent) {
|
306
|
+
return false;
|
307
|
+
}
|
308
|
+
const {
|
309
|
+
row: mergeRow,
|
310
|
+
col: mergeColumn,
|
311
|
+
rowspan,
|
312
|
+
colspan
|
313
|
+
} = mergeParent;
|
314
|
+
const overlayName = this.hot.view.getActiveOverlayName();
|
315
|
+
const firstRenderedRow = ['top', 'top_inline_start_corner'].includes(overlayName) ? 0 : this.hot.getFirstRenderedVisibleRow();
|
316
|
+
const firstRenderedColumn = ['inline_start', 'top_inline_start_corner', 'bottom_inline_start_corner'].includes(overlayName) ? 0 : this.hot.getFirstRenderedVisibleColumn();
|
317
|
+
const mergeCellsTopRow = clamp(firstRenderedRow, mergeRow, mergeRow + rowspan - 1);
|
318
|
+
const mergeCellsStartColumn = clamp(firstRenderedColumn, mergeColumn, mergeColumn + colspan - 1);
|
319
|
+
return this.hot.rowIndexMapper.getNearestNotHiddenIndex(mergeCellsTopRow, 1) === row && this.hot.columnIndexMapper.getNearestNotHiddenIndex(mergeCellsStartColumn, 1) === column;
|
304
320
|
}
|
305
321
|
|
306
322
|
/**
|
@@ -2,14 +2,18 @@ import Core from '../../core';
|
|
2
2
|
import { BasePlugin } from '../base';
|
3
3
|
import CellRange from '../../3rdparty/walkontable/src/cell/range';
|
4
4
|
|
5
|
-
export interface
|
5
|
+
export interface MergeCellsSettings {
|
6
6
|
row: number;
|
7
7
|
col: number;
|
8
8
|
rowspan: number;
|
9
9
|
colspan: number;
|
10
10
|
}
|
11
|
+
export interface DetailedSettings {
|
12
|
+
virtualized: boolean;
|
13
|
+
cells: MergeCellsSettings[];
|
14
|
+
}
|
11
15
|
|
12
|
-
export type Settings = boolean |
|
16
|
+
export type Settings = boolean | MergeCellsSettings[] | DetailedSettings;
|
13
17
|
|
14
18
|
export class MergeCells extends BasePlugin {
|
15
19
|
constructor(hotInstance: Core);
|
@@ -10,8 +10,13 @@ require("core-js/modules/es.set.is-subset-of.v2.js");
|
|
10
10
|
require("core-js/modules/es.set.is-superset-of.v2.js");
|
11
11
|
require("core-js/modules/es.set.symmetric-difference.v2.js");
|
12
12
|
require("core-js/modules/es.set.union.v2.js");
|
13
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
14
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
15
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
16
|
+
require("core-js/modules/esnext.iterator.map.js");
|
17
|
+
require("core-js/modules/esnext.iterator.reduce.js");
|
13
18
|
var _base = require("../base");
|
14
|
-
var
|
19
|
+
var _hooks = require("../../core/hooks");
|
15
20
|
var _cellsCollection = _interopRequireDefault(require("./cellsCollection"));
|
16
21
|
var _cellCoords = _interopRequireDefault(require("./cellCoords"));
|
17
22
|
var _autofill = _interopRequireDefault(require("./calculations/autofill"));
|
@@ -35,10 +40,10 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
35
40
|
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
36
41
|
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
37
42
|
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
43
|
+
_hooks.Hooks.getSingleton().register('beforeMergeCells');
|
44
|
+
_hooks.Hooks.getSingleton().register('afterMergeCells');
|
45
|
+
_hooks.Hooks.getSingleton().register('beforeUnmergeCells');
|
46
|
+
_hooks.Hooks.getSingleton().register('afterUnmergeCells');
|
42
47
|
const PLUGIN_KEY = exports.PLUGIN_KEY = 'mergeCells';
|
43
48
|
const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 150;
|
44
49
|
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
@@ -153,6 +158,13 @@ class MergeCells extends _base.BasePlugin {
|
|
153
158
|
static get PLUGIN_PRIORITY() {
|
154
159
|
return PLUGIN_PRIORITY;
|
155
160
|
}
|
161
|
+
static get DEFAULT_SETTINGS() {
|
162
|
+
return {
|
163
|
+
[_base.defaultMainSettingSymbol]: 'cells',
|
164
|
+
virtualized: false,
|
165
|
+
cells: []
|
166
|
+
};
|
167
|
+
}
|
156
168
|
/**
|
157
169
|
* Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
|
158
170
|
* hook and if it returns `true` then the {@link MergeCells#enablePlugin} method is called.
|
@@ -240,102 +252,108 @@ class MergeCells extends _base.BasePlugin {
|
|
240
252
|
}
|
241
253
|
return _assertClassBrand(_MergeCells_brand, _this, _onModifyGetCellCoords).call(_this, ...args);
|
242
254
|
});
|
243
|
-
this.addHook('
|
255
|
+
this.addHook('modifyGetCoordsElement', function () {
|
244
256
|
for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
|
245
257
|
args[_key12] = arguments[_key12];
|
246
258
|
}
|
259
|
+
return _assertClassBrand(_MergeCells_brand, _this, _onModifyGetCellCoords).call(_this, ...args);
|
260
|
+
});
|
261
|
+
this.addHook('afterIsMultipleSelection', function () {
|
262
|
+
for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {
|
263
|
+
args[_key13] = arguments[_key13];
|
264
|
+
}
|
247
265
|
return _assertClassBrand(_MergeCells_brand, _this, _onAfterIsMultipleSelection).call(_this, ...args);
|
248
266
|
});
|
249
267
|
this.addHook('afterRenderer', function () {
|
250
268
|
return _classPrivateFieldGet(_cellRenderer, _this).after(...arguments);
|
251
269
|
});
|
252
270
|
this.addHook('afterContextMenuDefaultOptions', function () {
|
253
|
-
for (var
|
254
|
-
args[
|
271
|
+
for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {
|
272
|
+
args[_key14] = arguments[_key14];
|
255
273
|
}
|
256
274
|
return _assertClassBrand(_MergeCells_brand, _this, _addMergeActionsToContextMenu).call(_this, ...args);
|
257
275
|
});
|
258
276
|
this.addHook('afterGetCellMeta', function () {
|
259
|
-
for (var
|
260
|
-
args[
|
277
|
+
for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {
|
278
|
+
args[_key15] = arguments[_key15];
|
261
279
|
}
|
262
280
|
return _assertClassBrand(_MergeCells_brand, _this, _onAfterGetCellMeta).call(_this, ...args);
|
263
281
|
});
|
264
282
|
this.addHook('afterViewportRowCalculatorOverride', function () {
|
265
|
-
for (var
|
266
|
-
args[
|
283
|
+
for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {
|
284
|
+
args[_key16] = arguments[_key16];
|
267
285
|
}
|
268
286
|
return _assertClassBrand(_MergeCells_brand, _this, _onAfterViewportRowCalculatorOverride).call(_this, ...args);
|
269
287
|
});
|
270
288
|
this.addHook('afterViewportColumnCalculatorOverride', function () {
|
271
|
-
for (var
|
272
|
-
args[
|
289
|
+
for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) {
|
290
|
+
args[_key17] = arguments[_key17];
|
273
291
|
}
|
274
292
|
return _assertClassBrand(_MergeCells_brand, _this, _onAfterViewportColumnCalculatorOverride).call(_this, ...args);
|
275
293
|
});
|
276
294
|
this.addHook('modifyAutofillRange', function () {
|
277
|
-
for (var
|
278
|
-
args[
|
295
|
+
for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) {
|
296
|
+
args[_key18] = arguments[_key18];
|
279
297
|
}
|
280
298
|
return _assertClassBrand(_MergeCells_brand, _this, _onModifyAutofillRange).call(_this, ...args);
|
281
299
|
});
|
282
300
|
this.addHook('afterCreateCol', function () {
|
283
|
-
for (var
|
284
|
-
args[
|
301
|
+
for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) {
|
302
|
+
args[_key19] = arguments[_key19];
|
285
303
|
}
|
286
304
|
return _assertClassBrand(_MergeCells_brand, _this, _onAfterCreateCol).call(_this, ...args);
|
287
305
|
});
|
288
306
|
this.addHook('afterRemoveCol', function () {
|
289
|
-
for (var
|
290
|
-
args[
|
307
|
+
for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) {
|
308
|
+
args[_key20] = arguments[_key20];
|
291
309
|
}
|
292
310
|
return _assertClassBrand(_MergeCells_brand, _this, _onAfterRemoveCol).call(_this, ...args);
|
293
311
|
});
|
294
312
|
this.addHook('afterCreateRow', function () {
|
295
|
-
for (var
|
296
|
-
args[
|
313
|
+
for (var _len21 = arguments.length, args = new Array(_len21), _key21 = 0; _key21 < _len21; _key21++) {
|
314
|
+
args[_key21] = arguments[_key21];
|
297
315
|
}
|
298
316
|
return _assertClassBrand(_MergeCells_brand, _this, _onAfterCreateRow).call(_this, ...args);
|
299
317
|
});
|
300
318
|
this.addHook('afterRemoveRow', function () {
|
301
|
-
for (var
|
302
|
-
args[
|
319
|
+
for (var _len22 = arguments.length, args = new Array(_len22), _key22 = 0; _key22 < _len22; _key22++) {
|
320
|
+
args[_key22] = arguments[_key22];
|
303
321
|
}
|
304
322
|
return _assertClassBrand(_MergeCells_brand, _this, _onAfterRemoveRow).call(_this, ...args);
|
305
323
|
});
|
306
324
|
this.addHook('afterChange', function () {
|
307
|
-
for (var
|
308
|
-
args[
|
325
|
+
for (var _len23 = arguments.length, args = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) {
|
326
|
+
args[_key23] = arguments[_key23];
|
309
327
|
}
|
310
328
|
return _assertClassBrand(_MergeCells_brand, _this, _onAfterChange).call(_this, ...args);
|
311
329
|
});
|
312
330
|
this.addHook('beforeDrawBorders', function () {
|
313
|
-
for (var
|
314
|
-
args[
|
331
|
+
for (var _len24 = arguments.length, args = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) {
|
332
|
+
args[_key24] = arguments[_key24];
|
315
333
|
}
|
316
334
|
return _assertClassBrand(_MergeCells_brand, _this, _onBeforeDrawAreaBorders).call(_this, ...args);
|
317
335
|
});
|
318
336
|
this.addHook('afterDrawSelection', function () {
|
319
|
-
for (var
|
320
|
-
args[
|
337
|
+
for (var _len25 = arguments.length, args = new Array(_len25), _key25 = 0; _key25 < _len25; _key25++) {
|
338
|
+
args[_key25] = arguments[_key25];
|
321
339
|
}
|
322
340
|
return _assertClassBrand(_MergeCells_brand, _this, _onAfterDrawSelection).call(_this, ...args);
|
323
341
|
});
|
324
342
|
this.addHook('beforeRemoveCellClassNames', function () {
|
325
|
-
for (var
|
326
|
-
args[
|
343
|
+
for (var _len26 = arguments.length, args = new Array(_len26), _key26 = 0; _key26 < _len26; _key26++) {
|
344
|
+
args[_key26] = arguments[_key26];
|
327
345
|
}
|
328
346
|
return _assertClassBrand(_MergeCells_brand, _this, _onBeforeRemoveCellClassNames).call(_this, ...args);
|
329
347
|
});
|
330
348
|
this.addHook('beforeBeginEditing', function () {
|
331
|
-
for (var
|
332
|
-
args[
|
349
|
+
for (var _len27 = arguments.length, args = new Array(_len27), _key27 = 0; _key27 < _len27; _key27++) {
|
350
|
+
args[_key27] = arguments[_key27];
|
333
351
|
}
|
334
352
|
return _assertClassBrand(_MergeCells_brand, _this, _onBeforeBeginEditing).call(_this, ...args);
|
335
353
|
});
|
336
354
|
this.addHook('modifyRowHeightByOverlayName', function () {
|
337
|
-
for (var
|
338
|
-
args[
|
355
|
+
for (var _len28 = arguments.length, args = new Array(_len28), _key28 = 0; _key28 < _len28; _key28++) {
|
356
|
+
args[_key28] = arguments[_key28];
|
339
357
|
}
|
340
358
|
return _assertClassBrand(_MergeCells_brand, _this, _onModifyRowHeightByOverlayName).call(_this, ...args);
|
341
359
|
});
|
@@ -366,10 +384,9 @@ class MergeCells extends _base.BasePlugin {
|
|
366
384
|
* - [`mergeCells`](@/api/options.md#mergecells)
|
367
385
|
*/
|
368
386
|
updatePlugin() {
|
369
|
-
const settings = this.hot.getSettings()[PLUGIN_KEY];
|
370
387
|
this.disablePlugin();
|
371
388
|
this.enablePlugin();
|
372
|
-
this.generateFromSettings(
|
389
|
+
this.generateFromSettings();
|
373
390
|
super.updatePlugin();
|
374
391
|
}
|
375
392
|
|
@@ -454,13 +471,9 @@ class MergeCells extends _base.BasePlugin {
|
|
454
471
|
* Generates the merged cells from the settings provided to the plugin.
|
455
472
|
*
|
456
473
|
* @private
|
457
|
-
* @param {Array|boolean} settings The settings provided to the plugin.
|
458
474
|
*/
|
459
|
-
generateFromSettings(
|
460
|
-
|
461
|
-
return;
|
462
|
-
}
|
463
|
-
const validSettings = settings.filter(mergeCellInfo => this.validateSetting(mergeCellInfo));
|
475
|
+
generateFromSettings() {
|
476
|
+
const validSettings = this.getSetting('cells').filter(mergeCellInfo => this.validateSetting(mergeCellInfo));
|
464
477
|
const nonOverlappingSettings = this.mergedCellsCollection.filterOverlappingMergeCells(validSettings);
|
465
478
|
const populatedNulls = [];
|
466
479
|
nonOverlappingSettings.forEach(mergeCellInfo => {
|
@@ -903,7 +916,7 @@ class MergeCells extends _base.BasePlugin {
|
|
903
916
|
}
|
904
917
|
exports.MergeCells = MergeCells;
|
905
918
|
function _onAfterInit() {
|
906
|
-
this.generateFromSettings(
|
919
|
+
this.generateFromSettings();
|
907
920
|
this.hot.render();
|
908
921
|
}
|
909
922
|
function _onAfterIsMultipleSelection(isMultiple) {
|
@@ -1097,13 +1110,16 @@ function _onBeforeSelectionHighlightSet() {
|
|
1097
1110
|
}
|
1098
1111
|
}
|
1099
1112
|
/**
|
1100
|
-
* `modifyGetCellCoords` hook callback
|
1113
|
+
* The `modifyGetCellCoords` hook callback allows forwarding all `getCell` calls that point in-between the merged cells
|
1114
|
+
* to the root element of the cell.
|
1101
1115
|
*
|
1102
1116
|
* @param {number} row Row index.
|
1103
1117
|
* @param {number} column Visual column index.
|
1118
|
+
* @param {boolean} topmost Indicates if the requested element belongs to the topmost layer (any overlay) or not.
|
1119
|
+
* @param {string} [source] String that identifies how this coords change will be processed.
|
1104
1120
|
* @returns {Array|undefined} Visual coordinates of the merge.
|
1105
1121
|
*/
|
1106
|
-
function _onModifyGetCellCoords(row, column) {
|
1122
|
+
function _onModifyGetCellCoords(row, column, topmost, source) {
|
1107
1123
|
if (row < 0 || column < 0) {
|
1108
1124
|
return;
|
1109
1125
|
}
|
@@ -1117,11 +1133,17 @@ function _onModifyGetCellCoords(row, column) {
|
|
1117
1133
|
colspan,
|
1118
1134
|
rowspan
|
1119
1135
|
} = mergeParent;
|
1120
|
-
|
1121
|
-
|
1122
|
-
mergeRow
|
1123
|
-
|
1124
|
-
|
1136
|
+
const topStartRow = mergeRow;
|
1137
|
+
const topStartColumn = mergeColumn;
|
1138
|
+
const bottomEndRow = mergeRow + rowspan - 1;
|
1139
|
+
const bottomEndColumn = mergeColumn + colspan - 1;
|
1140
|
+
if (source === 'render' && this.getSetting('virtualized')) {
|
1141
|
+
const overlayName = this.hot.view.getActiveOverlayName();
|
1142
|
+
const firstRenderedRow = ['top', 'top_inline_start_corner'].includes(overlayName) ? 0 : this.hot.getFirstRenderedVisibleRow();
|
1143
|
+
const firstRenderedColumn = ['inline_start', 'top_inline_start_corner', 'bottom_inline_start_corner'].includes(overlayName) ? 0 : this.hot.getFirstRenderedVisibleColumn();
|
1144
|
+
return [(0, _number.clamp)(firstRenderedRow, topStartRow, bottomEndRow), (0, _number.clamp)(firstRenderedColumn, topStartColumn, bottomEndColumn), (0, _number.clamp)(this.hot.getLastRenderedVisibleRow(), topStartRow, bottomEndRow), (0, _number.clamp)(this.hot.getLastRenderedVisibleColumn(), topStartColumn, bottomEndColumn)];
|
1145
|
+
}
|
1146
|
+
return [topStartRow, topStartColumn, bottomEndRow, bottomEndColumn];
|
1125
1147
|
}
|
1126
1148
|
/**
|
1127
1149
|
* `afterContextMenuDefaultOptions` hook callback.
|
@@ -1257,11 +1279,17 @@ function _onAfterGetCellMeta(row, col, cellProperties) {
|
|
1257
1279
|
* @param {object} calc The row calculator object.
|
1258
1280
|
*/
|
1259
1281
|
function _onAfterViewportRowCalculatorOverride(calc) {
|
1282
|
+
if (this.getSetting('virtualized')) {
|
1283
|
+
return;
|
1284
|
+
}
|
1260
1285
|
const nrOfColumns = this.hot.countCols();
|
1261
1286
|
this.modifyViewportRowStart(calc, nrOfColumns);
|
1262
1287
|
this.modifyViewportRowEnd(calc, nrOfColumns);
|
1263
1288
|
}
|
1264
1289
|
function _onAfterViewportColumnCalculatorOverride(calc) {
|
1290
|
+
if (this.getSetting('virtualized')) {
|
1291
|
+
return;
|
1292
|
+
}
|
1265
1293
|
const nrOfRows = this.hot.countRows();
|
1266
1294
|
this.modifyViewportColumnStart(calc, nrOfRows);
|
1267
1295
|
this.modifyViewportColumnEnd(calc, nrOfRows);
|
@@ -1420,8 +1448,8 @@ function _onModifyRowHeightByOverlayName(height, row, overlayType) {
|
|
1420
1448
|
let firstColumn;
|
1421
1449
|
let lastColumn;
|
1422
1450
|
if (overlayType === 'master') {
|
1423
|
-
firstColumn = this.hot.
|
1424
|
-
lastColumn = this.hot.
|
1451
|
+
firstColumn = this.hot.getFirstRenderedVisibleColumn();
|
1452
|
+
lastColumn = this.hot.getLastRenderedVisibleColumn();
|
1425
1453
|
} else {
|
1426
1454
|
const activeOverlay = this.hot.view.getOverlayByName(overlayType);
|
1427
1455
|
firstColumn = this.hot.columnIndexMapper.getVisualFromRenderableIndex(activeOverlay.clone.wtTable.getFirstRenderedColumn());
|
@@ -1434,7 +1462,7 @@ function _onModifyRowHeightByOverlayName(height, row, overlayType) {
|
|
1434
1462
|
const from = this.hot._createCellCoords(row, firstColumn);
|
1435
1463
|
const to = this.hot._createCellCoords(row, lastColumn);
|
1436
1464
|
const viewportRange = this.hot._createCellRange(from, from, to);
|
1437
|
-
const mergedCellsWithinRange = this.mergedCellsCollection.getWithinRange(viewportRange);
|
1465
|
+
const mergedCellsWithinRange = this.mergedCellsCollection.getWithinRange(viewportRange, true);
|
1438
1466
|
const maxRowspan = mergedCellsWithinRange.reduce((acc, _ref) => {
|
1439
1467
|
let {
|
1440
1468
|
rowspan
|
@@ -1468,7 +1496,7 @@ function _onModifyRowHeightByOverlayName(height, row, overlayType) {
|
|
1468
1496
|
* @returns {number}
|
1469
1497
|
*/
|
1470
1498
|
function _sumCellsHeights(row, rowspan) {
|
1471
|
-
const defaultHeight = this.hot.view.
|
1499
|
+
const defaultHeight = this.hot.view.getDefaultRowHeight();
|
1472
1500
|
const autoRowSizePlugin = this.hot.getPlugin('autoRowSize');
|
1473
1501
|
let height = 0;
|
1474
1502
|
for (let i = row; i < row + rowspan; i++) {
|