handsontable 14.6.1-next-689aaa6-20241016 → 15.0.0-next-4472a60-20241203
Sign up to get free protection for your applications and to get access to all the features.
- 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++) {
|