handsontable 14.6.1-next-689aaa6-20241016 → 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
@@ -16,7 +16,7 @@ import { filterSeparators, hasSubMenu, isItemHidden, normalizeSelection, isItemS
|
|
16
16
|
import EventManager from "../../../eventManager.mjs";
|
17
17
|
import { arrayEach, arrayFilter, arrayReduce } from "../../../helpers/array.mjs";
|
18
18
|
import { isWindowsOS, isMobileBrowser, isIpadOS } from "../../../helpers/browser.mjs";
|
19
|
-
import { addClass, isChildOf,
|
19
|
+
import { addClass, isChildOf, getParentWindow, hasClass, setAttribute, outerHeight } from "../../../helpers/dom/element.mjs";
|
20
20
|
import { isRightClick } from "../../../helpers/dom/event.mjs";
|
21
21
|
import { debounce, isFunction } from "../../../helpers/function.mjs";
|
22
22
|
import { isUndefined, isDefined } from "../../../helpers/mixed.mjs";
|
@@ -53,7 +53,7 @@ export class Menu {
|
|
53
53
|
*/
|
54
54
|
get tableBorderWidth() {
|
55
55
|
if (_classPrivateFieldGet(_tableBorderWidth, this) === undefined && this.hotMenu) {
|
56
|
-
_classPrivateFieldSet(_tableBorderWidth, this, parseInt(getComputedStyle(this.hotMenu.view._wt.wtTable.TABLE).borderWidth, 10));
|
56
|
+
_classPrivateFieldSet(_tableBorderWidth, this, parseInt(this.hotMenu.rootWindow.getComputedStyle(this.hotMenu.view._wt.wtTable.TABLE).borderWidth, 10));
|
57
57
|
}
|
58
58
|
return _classPrivateFieldGet(_tableBorderWidth, this);
|
59
59
|
}
|
@@ -158,6 +158,12 @@ export class Menu {
|
|
158
158
|
return _this.parentMenu.runLocalHooks('afterSelectionChange', ...args);
|
159
159
|
});
|
160
160
|
}
|
161
|
+
this.hot.addHook('afterSetTheme', (themeName, firstRun) => {
|
162
|
+
if (!firstRun) {
|
163
|
+
var _this$hotMenu;
|
164
|
+
(_this$hotMenu = this.hotMenu) === null || _this$hotMenu === void 0 || _this$hotMenu.useTheme(themeName);
|
165
|
+
}
|
166
|
+
});
|
161
167
|
}
|
162
168
|
|
163
169
|
/**
|
@@ -282,6 +288,7 @@ export class Menu {
|
|
282
288
|
disableVisualSelection: 'area',
|
283
289
|
layoutDirection: this.hot.isRtl() ? 'rtl' : 'ltr',
|
284
290
|
ariaTags: false,
|
291
|
+
themeName: this.hot.getCurrentThemeName(),
|
285
292
|
beforeOnCellMouseOver: (event, coords) => {
|
286
293
|
_classPrivateFieldGet(_navigator, this).setCurrentPage(coords.row);
|
287
294
|
},
|
@@ -575,10 +582,8 @@ export class Menu {
|
|
575
582
|
const currentRowHeight = itemCell ? outerHeight(this.hotMenu.getCell(index, 0)) : 0;
|
576
583
|
return accumulator + (value.name === SEPARATOR ? 1 : currentRowHeight);
|
577
584
|
}, 0);
|
578
|
-
|
579
|
-
|
580
|
-
holderStyle.width = `${currentHiderWidth + 3}px`;
|
581
|
-
holderStyle.height = `${realHeight + 3}px`;
|
585
|
+
holderStyle.width = `${currentHiderWidth}px`;
|
586
|
+
holderStyle.height = `${realHeight}px`;
|
582
587
|
hiderStyle.height = holderStyle.height;
|
583
588
|
}
|
584
589
|
|
@@ -165,7 +165,8 @@ class Positioner {
|
|
165
165
|
setPositionOnRightOfCursor() {
|
166
166
|
let left = _classPrivateFieldGet(_cursor, this).left;
|
167
167
|
if (_classPrivateFieldGet(_parentContainer, this)) {
|
168
|
-
const
|
168
|
+
const rootWindow = _classPrivateFieldGet(_parentContainer, this).ownerDocument.defaultView;
|
169
|
+
const borderRightWidth = Number.parseInt(rootWindow.getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.htCore')).borderRightWidth, 10);
|
169
170
|
left += _classPrivateFieldGet(_cursor, this).cellWidth + borderRightWidth;
|
170
171
|
} else {
|
171
172
|
left += _classPrivateFieldGet(_offset, this).right;
|
@@ -179,7 +180,8 @@ class Positioner {
|
|
179
180
|
setPositionOnLeftOfCursor() {
|
180
181
|
let left = _classPrivateFieldGet(_offset, this).left + _classPrivateFieldGet(_cursor, this).left - _classPrivateFieldGet(_container, this).offsetWidth;
|
181
182
|
if (_classPrivateFieldGet(_parentContainer, this)) {
|
182
|
-
const
|
183
|
+
const rootWindow = _classPrivateFieldGet(_parentContainer, this).ownerDocument.defaultView;
|
184
|
+
const borderLeftWidth = Number.parseInt(rootWindow.getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.htCore')).borderLeftWidth, 10);
|
183
185
|
left -= borderLeftWidth;
|
184
186
|
}
|
185
187
|
_classPrivateFieldGet(_container, this).style.left = `${left}px`;
|
@@ -162,7 +162,8 @@ export class Positioner {
|
|
162
162
|
setPositionOnRightOfCursor() {
|
163
163
|
let left = _classPrivateFieldGet(_cursor, this).left;
|
164
164
|
if (_classPrivateFieldGet(_parentContainer, this)) {
|
165
|
-
const
|
165
|
+
const rootWindow = _classPrivateFieldGet(_parentContainer, this).ownerDocument.defaultView;
|
166
|
+
const borderRightWidth = Number.parseInt(rootWindow.getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.htCore')).borderRightWidth, 10);
|
166
167
|
left += _classPrivateFieldGet(_cursor, this).cellWidth + borderRightWidth;
|
167
168
|
} else {
|
168
169
|
left += _classPrivateFieldGet(_offset, this).right;
|
@@ -176,7 +177,8 @@ export class Positioner {
|
|
176
177
|
setPositionOnLeftOfCursor() {
|
177
178
|
let left = _classPrivateFieldGet(_offset, this).left + _classPrivateFieldGet(_cursor, this).left - _classPrivateFieldGet(_container, this).offsetWidth;
|
178
179
|
if (_classPrivateFieldGet(_parentContainer, this)) {
|
179
|
-
const
|
180
|
+
const rootWindow = _classPrivateFieldGet(_parentContainer, this).ownerDocument.defaultView;
|
181
|
+
const borderLeftWidth = Number.parseInt(rootWindow.getComputedStyle(_classPrivateFieldGet(_parentContainer, this).querySelector('.htCore')).borderLeftWidth, 10);
|
180
182
|
left -= borderLeftWidth;
|
181
183
|
}
|
182
184
|
_classPrivateFieldGet(_container, this).style.left = `${left}px`;
|
@@ -3,6 +3,8 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.createKeyboardShortcutsCtrl = createKeyboardShortcutsCtrl;
|
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 _defaultShortcutsList = require("./defaultShortcutsList");
|
7
9
|
const SHORTCUTS_CONTEXT = 'menu';
|
8
10
|
const SHORTCUTS_GROUP = SHORTCUTS_CONTEXT;
|
@@ -100,7 +102,7 @@ function createKeyboardShortcutsCtrl(menu) {
|
|
100
102
|
/**
|
101
103
|
* Makes the specified context active.
|
102
104
|
*
|
103
|
-
* @param {string} contextName The context name.
|
105
|
+
* @param {string} [contextName] The context name.
|
104
106
|
*/
|
105
107
|
function listen(contextName) {
|
106
108
|
menu.hotMenu.getShortcutManager().setActiveContextName(_getContextName(contextName));
|
@@ -1,4 +1,6 @@
|
|
1
1
|
import "core-js/modules/es.array.push.js";
|
2
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
3
|
+
import "core-js/modules/esnext.iterator.for-each.js";
|
2
4
|
import { createDefaultShortcutsList } from "./defaultShortcutsList.mjs";
|
3
5
|
const SHORTCUTS_CONTEXT = 'menu';
|
4
6
|
const SHORTCUTS_GROUP = SHORTCUTS_CONTEXT;
|
@@ -96,7 +98,7 @@ export function createKeyboardShortcutsCtrl(menu) {
|
|
96
98
|
/**
|
97
99
|
* Makes the specified context active.
|
98
100
|
*
|
99
|
-
* @param {string} contextName The context name.
|
101
|
+
* @param {string} [contextName] The context name.
|
100
102
|
*/
|
101
103
|
function listen(contextName) {
|
102
104
|
menu.hotMenu.getShortcutManager().setActiveContextName(_getContextName(contextName));
|
@@ -34,19 +34,8 @@ function alignmentItem() {
|
|
34
34
|
submenu: {
|
35
35
|
items: [{
|
36
36
|
key: `${KEY}:left`,
|
37
|
-
checkable: true,
|
38
|
-
ariaLabel() {
|
39
|
-
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_LEFT);
|
40
|
-
},
|
41
|
-
ariaChecked() {
|
42
|
-
return (0, _utils.hasSelectionAClass)(this, 'htLeft');
|
43
|
-
},
|
44
37
|
name() {
|
45
|
-
|
46
|
-
if ((0, _utils.hasSelectionAClass)(this, 'htLeft')) {
|
47
|
-
label = (0, _utils.markLabelAsSelected)(label);
|
48
|
-
}
|
49
|
-
return label;
|
38
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_LEFT);
|
50
39
|
},
|
51
40
|
callback() {
|
52
41
|
const selectedRange = this.getSelectedRange();
|
@@ -60,19 +49,8 @@ function alignmentItem() {
|
|
60
49
|
disabled: false
|
61
50
|
}, {
|
62
51
|
key: `${KEY}:center`,
|
63
|
-
checkable: true,
|
64
|
-
ariaLabel() {
|
65
|
-
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_CENTER);
|
66
|
-
},
|
67
|
-
ariaChecked() {
|
68
|
-
return (0, _utils.hasSelectionAClass)(this, 'htCenter');
|
69
|
-
},
|
70
52
|
name() {
|
71
|
-
|
72
|
-
if ((0, _utils.hasSelectionAClass)(this, 'htCenter')) {
|
73
|
-
label = (0, _utils.markLabelAsSelected)(label);
|
74
|
-
}
|
75
|
-
return label;
|
53
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_CENTER);
|
76
54
|
},
|
77
55
|
callback() {
|
78
56
|
const selectedRange = this.getSelectedRange();
|
@@ -86,19 +64,8 @@ function alignmentItem() {
|
|
86
64
|
disabled: false
|
87
65
|
}, {
|
88
66
|
key: `${KEY}:right`,
|
89
|
-
checkable: true,
|
90
|
-
ariaLabel() {
|
91
|
-
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT);
|
92
|
-
},
|
93
|
-
ariaChecked() {
|
94
|
-
return (0, _utils.hasSelectionAClass)(this, 'htRight');
|
95
|
-
},
|
96
67
|
name() {
|
97
|
-
|
98
|
-
if ((0, _utils.hasSelectionAClass)(this, 'htRight')) {
|
99
|
-
label = (0, _utils.markLabelAsSelected)(label);
|
100
|
-
}
|
101
|
-
return label;
|
68
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT);
|
102
69
|
},
|
103
70
|
callback() {
|
104
71
|
const selectedRange = this.getSelectedRange();
|
@@ -112,19 +79,8 @@ function alignmentItem() {
|
|
112
79
|
disabled: false
|
113
80
|
}, {
|
114
81
|
key: `${KEY}:justify`,
|
115
|
-
checkable: true,
|
116
|
-
ariaLabel() {
|
117
|
-
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY);
|
118
|
-
},
|
119
|
-
ariaChecked() {
|
120
|
-
return (0, _utils.hasSelectionAClass)(this, 'htJustify');
|
121
|
-
},
|
122
82
|
name() {
|
123
|
-
|
124
|
-
if ((0, _utils.hasSelectionAClass)(this, 'htJustify')) {
|
125
|
-
label = (0, _utils.markLabelAsSelected)(label);
|
126
|
-
}
|
127
|
-
return label;
|
83
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY);
|
128
84
|
},
|
129
85
|
callback() {
|
130
86
|
const selectedRange = this.getSelectedRange();
|
@@ -140,19 +96,8 @@ function alignmentItem() {
|
|
140
96
|
name: _separator.KEY
|
141
97
|
}, {
|
142
98
|
key: `${KEY}:top`,
|
143
|
-
checkable: true,
|
144
|
-
ariaLabel() {
|
145
|
-
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_TOP);
|
146
|
-
},
|
147
|
-
ariaChecked() {
|
148
|
-
return (0, _utils.hasSelectionAClass)(this, 'htTop');
|
149
|
-
},
|
150
99
|
name() {
|
151
|
-
|
152
|
-
if ((0, _utils.hasSelectionAClass)(this, 'htTop')) {
|
153
|
-
label = (0, _utils.markLabelAsSelected)(label);
|
154
|
-
}
|
155
|
-
return label;
|
100
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_TOP);
|
156
101
|
},
|
157
102
|
callback() {
|
158
103
|
const selectedRange = this.getSelectedRange();
|
@@ -166,19 +111,8 @@ function alignmentItem() {
|
|
166
111
|
disabled: false
|
167
112
|
}, {
|
168
113
|
key: `${KEY}:middle`,
|
169
|
-
checkable: true,
|
170
|
-
ariaLabel() {
|
171
|
-
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE);
|
172
|
-
},
|
173
|
-
ariaChecked() {
|
174
|
-
return (0, _utils.hasSelectionAClass)(this, 'htMiddle');
|
175
|
-
},
|
176
114
|
name() {
|
177
|
-
|
178
|
-
if ((0, _utils.hasSelectionAClass)(this, 'htMiddle')) {
|
179
|
-
label = (0, _utils.markLabelAsSelected)(label);
|
180
|
-
}
|
181
|
-
return label;
|
115
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE);
|
182
116
|
},
|
183
117
|
callback() {
|
184
118
|
const selectedRange = this.getSelectedRange();
|
@@ -192,19 +126,8 @@ function alignmentItem() {
|
|
192
126
|
disabled: false
|
193
127
|
}, {
|
194
128
|
key: `${KEY}:bottom`,
|
195
|
-
checkable: true,
|
196
|
-
ariaLabel() {
|
197
|
-
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM);
|
198
|
-
},
|
199
|
-
ariaChecked() {
|
200
|
-
return (0, _utils.hasSelectionAClass)(this, 'htBottom');
|
201
|
-
},
|
202
129
|
name() {
|
203
|
-
|
204
|
-
if ((0, _utils.hasSelectionAClass)(this, 'htBottom')) {
|
205
|
-
label = (0, _utils.markLabelAsSelected)(label);
|
206
|
-
}
|
207
|
-
return label;
|
130
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM);
|
208
131
|
},
|
209
132
|
callback() {
|
210
133
|
const selectedRange = this.getSelectedRange();
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { align, getAlignmentClasses
|
1
|
+
import { align, getAlignmentClasses } from "../utils.mjs";
|
2
2
|
import { KEY as SEPARATOR } from "./separator.mjs";
|
3
3
|
import * as C from "../../../i18n/constants.mjs";
|
4
4
|
export const KEY = 'alignment';
|
@@ -28,19 +28,8 @@ export default function alignmentItem() {
|
|
28
28
|
submenu: {
|
29
29
|
items: [{
|
30
30
|
key: `${KEY}:left`,
|
31
|
-
checkable: true,
|
32
|
-
ariaLabel() {
|
33
|
-
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_LEFT);
|
34
|
-
},
|
35
|
-
ariaChecked() {
|
36
|
-
return hasSelectionAClass(this, 'htLeft');
|
37
|
-
},
|
38
31
|
name() {
|
39
|
-
|
40
|
-
if (hasSelectionAClass(this, 'htLeft')) {
|
41
|
-
label = markLabelAsSelected(label);
|
42
|
-
}
|
43
|
-
return label;
|
32
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_LEFT);
|
44
33
|
},
|
45
34
|
callback() {
|
46
35
|
const selectedRange = this.getSelectedRange();
|
@@ -54,19 +43,8 @@ export default function alignmentItem() {
|
|
54
43
|
disabled: false
|
55
44
|
}, {
|
56
45
|
key: `${KEY}:center`,
|
57
|
-
checkable: true,
|
58
|
-
ariaLabel() {
|
59
|
-
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_CENTER);
|
60
|
-
},
|
61
|
-
ariaChecked() {
|
62
|
-
return hasSelectionAClass(this, 'htCenter');
|
63
|
-
},
|
64
46
|
name() {
|
65
|
-
|
66
|
-
if (hasSelectionAClass(this, 'htCenter')) {
|
67
|
-
label = markLabelAsSelected(label);
|
68
|
-
}
|
69
|
-
return label;
|
47
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_CENTER);
|
70
48
|
},
|
71
49
|
callback() {
|
72
50
|
const selectedRange = this.getSelectedRange();
|
@@ -80,19 +58,8 @@ export default function alignmentItem() {
|
|
80
58
|
disabled: false
|
81
59
|
}, {
|
82
60
|
key: `${KEY}:right`,
|
83
|
-
checkable: true,
|
84
|
-
ariaLabel() {
|
85
|
-
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT);
|
86
|
-
},
|
87
|
-
ariaChecked() {
|
88
|
-
return hasSelectionAClass(this, 'htRight');
|
89
|
-
},
|
90
61
|
name() {
|
91
|
-
|
92
|
-
if (hasSelectionAClass(this, 'htRight')) {
|
93
|
-
label = markLabelAsSelected(label);
|
94
|
-
}
|
95
|
-
return label;
|
62
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT);
|
96
63
|
},
|
97
64
|
callback() {
|
98
65
|
const selectedRange = this.getSelectedRange();
|
@@ -106,19 +73,8 @@ export default function alignmentItem() {
|
|
106
73
|
disabled: false
|
107
74
|
}, {
|
108
75
|
key: `${KEY}:justify`,
|
109
|
-
checkable: true,
|
110
|
-
ariaLabel() {
|
111
|
-
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY);
|
112
|
-
},
|
113
|
-
ariaChecked() {
|
114
|
-
return hasSelectionAClass(this, 'htJustify');
|
115
|
-
},
|
116
76
|
name() {
|
117
|
-
|
118
|
-
if (hasSelectionAClass(this, 'htJustify')) {
|
119
|
-
label = markLabelAsSelected(label);
|
120
|
-
}
|
121
|
-
return label;
|
77
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY);
|
122
78
|
},
|
123
79
|
callback() {
|
124
80
|
const selectedRange = this.getSelectedRange();
|
@@ -134,19 +90,8 @@ export default function alignmentItem() {
|
|
134
90
|
name: SEPARATOR
|
135
91
|
}, {
|
136
92
|
key: `${KEY}:top`,
|
137
|
-
checkable: true,
|
138
|
-
ariaLabel() {
|
139
|
-
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_TOP);
|
140
|
-
},
|
141
|
-
ariaChecked() {
|
142
|
-
return hasSelectionAClass(this, 'htTop');
|
143
|
-
},
|
144
93
|
name() {
|
145
|
-
|
146
|
-
if (hasSelectionAClass(this, 'htTop')) {
|
147
|
-
label = markLabelAsSelected(label);
|
148
|
-
}
|
149
|
-
return label;
|
94
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_TOP);
|
150
95
|
},
|
151
96
|
callback() {
|
152
97
|
const selectedRange = this.getSelectedRange();
|
@@ -160,19 +105,8 @@ export default function alignmentItem() {
|
|
160
105
|
disabled: false
|
161
106
|
}, {
|
162
107
|
key: `${KEY}:middle`,
|
163
|
-
checkable: true,
|
164
|
-
ariaLabel() {
|
165
|
-
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE);
|
166
|
-
},
|
167
|
-
ariaChecked() {
|
168
|
-
return hasSelectionAClass(this, 'htMiddle');
|
169
|
-
},
|
170
108
|
name() {
|
171
|
-
|
172
|
-
if (hasSelectionAClass(this, 'htMiddle')) {
|
173
|
-
label = markLabelAsSelected(label);
|
174
|
-
}
|
175
|
-
return label;
|
109
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE);
|
176
110
|
},
|
177
111
|
callback() {
|
178
112
|
const selectedRange = this.getSelectedRange();
|
@@ -186,19 +120,8 @@ export default function alignmentItem() {
|
|
186
120
|
disabled: false
|
187
121
|
}, {
|
188
122
|
key: `${KEY}:bottom`,
|
189
|
-
checkable: true,
|
190
|
-
ariaLabel() {
|
191
|
-
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM);
|
192
|
-
},
|
193
|
-
ariaChecked() {
|
194
|
-
return hasSelectionAClass(this, 'htBottom');
|
195
|
-
},
|
196
123
|
name() {
|
197
|
-
|
198
|
-
if (hasSelectionAClass(this, 'htBottom')) {
|
199
|
-
label = markLabelAsSelected(label);
|
200
|
-
}
|
201
|
-
return label;
|
124
|
+
return this.getTranslatedPhrase(C.CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM);
|
202
125
|
},
|
203
126
|
callback() {
|
204
127
|
const selectedRange = this.getSelectedRange();
|
@@ -6,7 +6,6 @@ exports.checkSelectionConsistency = checkSelectionConsistency;
|
|
6
6
|
exports.getAlignmentClasses = getAlignmentClasses;
|
7
7
|
exports.getAlignmentComparatorByClass = getAlignmentComparatorByClass;
|
8
8
|
exports.getDocumentOffsetByElement = getDocumentOffsetByElement;
|
9
|
-
exports.hasSelectionAClass = hasSelectionAClass;
|
10
9
|
exports.markLabelAsSelected = markLabelAsSelected;
|
11
10
|
exports.prepareHorizontalAlignClass = prepareHorizontalAlignClass;
|
12
11
|
exports.prepareVerticalAlignClass = prepareVerticalAlignClass;
|
@@ -168,13 +167,4 @@ function getAlignmentComparatorByClass(htClassName) {
|
|
168
167
|
const className = this.getCellMeta(row, col).className;
|
169
168
|
return className && className.indexOf(htClassName) !== -1;
|
170
169
|
};
|
171
|
-
}
|
172
|
-
|
173
|
-
/**
|
174
|
-
* @param {object} hot Handsontable instance.
|
175
|
-
* @param {string} htClassName The class name to check.
|
176
|
-
* @returns {boolean} Returns true if at least one cell has the provided class name.
|
177
|
-
*/
|
178
|
-
function hasSelectionAClass(hot, htClassName) {
|
179
|
-
return checkSelectionConsistency(hot.getSelectedRange(), getAlignmentComparatorByClass(htClassName).bind(hot));
|
180
170
|
}
|
@@ -156,13 +156,4 @@ export function getAlignmentComparatorByClass(htClassName) {
|
|
156
156
|
const className = this.getCellMeta(row, col).className;
|
157
157
|
return className && className.indexOf(htClassName) !== -1;
|
158
158
|
};
|
159
|
-
}
|
160
|
-
|
161
|
-
/**
|
162
|
-
* @param {object} hot Handsontable instance.
|
163
|
-
* @param {string} htClassName The class name to check.
|
164
|
-
* @returns {boolean} Returns true if at least one cell has the provided class name.
|
165
|
-
*/
|
166
|
-
export function hasSelectionAClass(hot, htClassName) {
|
167
|
-
return checkSelectionConsistency(hot.getSelectedRange(), getAlignmentComparatorByClass(htClassName).bind(hot));
|
168
159
|
}
|
@@ -3,8 +3,11 @@
|
|
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.filter.js");
|
8
|
+
require("core-js/modules/esnext.iterator.map.js");
|
6
9
|
var _base = require("../base");
|
7
|
-
var
|
10
|
+
var _hooks = require("../../core/hooks");
|
8
11
|
var _SheetClip = require("../../3rdparty/SheetClip");
|
9
12
|
var _array = require("../../helpers/array");
|
10
13
|
var _string = require("../../helpers/string");
|
@@ -28,14 +31,14 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
28
31
|
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
29
32
|
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
30
33
|
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"); }
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
34
|
+
_hooks.Hooks.getSingleton().register('afterCopyLimit');
|
35
|
+
_hooks.Hooks.getSingleton().register('modifyCopyableRange');
|
36
|
+
_hooks.Hooks.getSingleton().register('beforeCut');
|
37
|
+
_hooks.Hooks.getSingleton().register('afterCut');
|
38
|
+
_hooks.Hooks.getSingleton().register('beforePaste');
|
39
|
+
_hooks.Hooks.getSingleton().register('afterPaste');
|
40
|
+
_hooks.Hooks.getSingleton().register('beforeCopy');
|
41
|
+
_hooks.Hooks.getSingleton().register('afterCopy');
|
39
42
|
const PLUGIN_KEY = exports.PLUGIN_KEY = 'copyPaste';
|
40
43
|
const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 80;
|
41
44
|
const SETTING_KEYS = ['fragmentSelection'];
|
@@ -206,6 +209,16 @@ class CopyPaste extends _base.BasePlugin {
|
|
206
209
|
static get PLUGIN_PRIORITY() {
|
207
210
|
return PLUGIN_PRIORITY;
|
208
211
|
}
|
212
|
+
static get DEFAULT_SETTINGS() {
|
213
|
+
return {
|
214
|
+
pasteMode: 'overwrite',
|
215
|
+
rowsLimit: Infinity,
|
216
|
+
columnsLimit: Infinity,
|
217
|
+
copyColumnHeaders: false,
|
218
|
+
copyColumnGroupHeaders: false,
|
219
|
+
copyColumnHeadersOnly: false
|
220
|
+
};
|
221
|
+
}
|
209
222
|
/**
|
210
223
|
* Checks if the [`CopyPaste`](#copypaste) plugin is enabled.
|
211
224
|
*
|
@@ -222,23 +235,19 @@ class CopyPaste extends _base.BasePlugin {
|
|
222
235
|
* Enables the [`CopyPaste`](#copypaste) plugin for your Handsontable instance.
|
223
236
|
*/
|
224
237
|
enablePlugin() {
|
225
|
-
var _this
|
238
|
+
var _this$getSetting,
|
239
|
+
_this$getSetting2,
|
240
|
+
_this = this;
|
226
241
|
if (this.enabled) {
|
227
242
|
return;
|
228
243
|
}
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
this.columnsLimit = isNaN(settings.columnsLimit) ? this.columnsLimit : settings.columnsLimit;
|
237
|
-
_classPrivateFieldSet(_enableCopyColumnHeaders, this, !!settings.copyColumnHeaders);
|
238
|
-
_classPrivateFieldSet(_enableCopyColumnGroupHeaders, this, !!settings.copyColumnGroupHeaders);
|
239
|
-
_classPrivateFieldSet(_enableCopyColumnHeadersOnly, this, !!settings.copyColumnHeadersOnly);
|
240
|
-
this.uiContainer = (_settings$uiContainer = settings.uiContainer) !== null && _settings$uiContainer !== void 0 ? _settings$uiContainer : this.uiContainer;
|
241
|
-
}
|
244
|
+
this.pasteMode = (_this$getSetting = this.getSetting('pasteMode')) !== null && _this$getSetting !== void 0 ? _this$getSetting : this.pasteMode;
|
245
|
+
this.rowsLimit = isNaN(this.getSetting('rowsLimit')) ? this.rowsLimit : this.getSetting('rowsLimit');
|
246
|
+
this.columnsLimit = isNaN(this.getSetting('columnsLimit')) ? this.columnsLimit : this.getSetting('columnsLimit');
|
247
|
+
_classPrivateFieldSet(_enableCopyColumnHeaders, this, this.getSetting('copyColumnHeaders'));
|
248
|
+
_classPrivateFieldSet(_enableCopyColumnGroupHeaders, this, this.getSetting('copyColumnGroupHeaders'));
|
249
|
+
_classPrivateFieldSet(_enableCopyColumnHeadersOnly, this, this.getSetting('copyColumnHeadersOnly'));
|
250
|
+
this.uiContainer = (_this$getSetting2 = this.getSetting('uiContainer')) !== null && _this$getSetting2 !== void 0 ? _this$getSetting2 : this.uiContainer;
|
242
251
|
this.addHook('afterContextMenuDefaultOptions', options => _assertClassBrand(_CopyPaste_brand, this, _onAfterContextMenuDefaultOptions).call(this, options));
|
243
252
|
this.addHook('afterSelection', function () {
|
244
253
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
@@ -1,5 +1,8 @@
|
|
1
1
|
import "core-js/modules/es.error.cause.js";
|
2
2
|
import "core-js/modules/es.array.push.js";
|
3
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
4
|
+
import "core-js/modules/esnext.iterator.filter.js";
|
5
|
+
import "core-js/modules/esnext.iterator.map.js";
|
3
6
|
function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
|
4
7
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
5
8
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
@@ -10,7 +13,7 @@ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
|
10
13
|
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
11
14
|
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"); }
|
12
15
|
import { BasePlugin } from "../base/index.mjs";
|
13
|
-
import Hooks from "../../
|
16
|
+
import { Hooks } from "../../core/hooks/index.mjs";
|
14
17
|
import { stringify, parse } from "../../3rdparty/SheetClip/index.mjs";
|
15
18
|
import { arrayEach } from "../../helpers/array.mjs";
|
16
19
|
import { sanitize } from "../../helpers/string.mjs";
|
@@ -202,6 +205,16 @@ export class CopyPaste extends BasePlugin {
|
|
202
205
|
static get PLUGIN_PRIORITY() {
|
203
206
|
return PLUGIN_PRIORITY;
|
204
207
|
}
|
208
|
+
static get DEFAULT_SETTINGS() {
|
209
|
+
return {
|
210
|
+
pasteMode: 'overwrite',
|
211
|
+
rowsLimit: Infinity,
|
212
|
+
columnsLimit: Infinity,
|
213
|
+
copyColumnHeaders: false,
|
214
|
+
copyColumnGroupHeaders: false,
|
215
|
+
copyColumnHeadersOnly: false
|
216
|
+
};
|
217
|
+
}
|
205
218
|
/**
|
206
219
|
* Checks if the [`CopyPaste`](#copypaste) plugin is enabled.
|
207
220
|
*
|
@@ -218,23 +231,19 @@ export class CopyPaste extends BasePlugin {
|
|
218
231
|
* Enables the [`CopyPaste`](#copypaste) plugin for your Handsontable instance.
|
219
232
|
*/
|
220
233
|
enablePlugin() {
|
221
|
-
var _this
|
234
|
+
var _this$getSetting,
|
235
|
+
_this$getSetting2,
|
236
|
+
_this = this;
|
222
237
|
if (this.enabled) {
|
223
238
|
return;
|
224
239
|
}
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
this.columnsLimit = isNaN(settings.columnsLimit) ? this.columnsLimit : settings.columnsLimit;
|
233
|
-
_classPrivateFieldSet(_enableCopyColumnHeaders, this, !!settings.copyColumnHeaders);
|
234
|
-
_classPrivateFieldSet(_enableCopyColumnGroupHeaders, this, !!settings.copyColumnGroupHeaders);
|
235
|
-
_classPrivateFieldSet(_enableCopyColumnHeadersOnly, this, !!settings.copyColumnHeadersOnly);
|
236
|
-
this.uiContainer = (_settings$uiContainer = settings.uiContainer) !== null && _settings$uiContainer !== void 0 ? _settings$uiContainer : this.uiContainer;
|
237
|
-
}
|
240
|
+
this.pasteMode = (_this$getSetting = this.getSetting('pasteMode')) !== null && _this$getSetting !== void 0 ? _this$getSetting : this.pasteMode;
|
241
|
+
this.rowsLimit = isNaN(this.getSetting('rowsLimit')) ? this.rowsLimit : this.getSetting('rowsLimit');
|
242
|
+
this.columnsLimit = isNaN(this.getSetting('columnsLimit')) ? this.columnsLimit : this.getSetting('columnsLimit');
|
243
|
+
_classPrivateFieldSet(_enableCopyColumnHeaders, this, this.getSetting('copyColumnHeaders'));
|
244
|
+
_classPrivateFieldSet(_enableCopyColumnGroupHeaders, this, this.getSetting('copyColumnGroupHeaders'));
|
245
|
+
_classPrivateFieldSet(_enableCopyColumnHeadersOnly, this, this.getSetting('copyColumnHeadersOnly'));
|
246
|
+
this.uiContainer = (_this$getSetting2 = this.getSetting('uiContainer')) !== null && _this$getSetting2 !== void 0 ? _this$getSetting2 : this.uiContainer;
|
238
247
|
this.addHook('afterContextMenuDefaultOptions', options => _assertClassBrand(_CopyPaste_brand, this, _onAfterContextMenuDefaultOptions).call(this, options));
|
239
248
|
this.addHook('afterSelection', function () {
|
240
249
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
@@ -14,6 +14,8 @@ exports.hasStartEndTypeOptions = hasStartEndTypeOptions;
|
|
14
14
|
exports.markSelected = markSelected;
|
15
15
|
exports.normalizeBorder = normalizeBorder;
|
16
16
|
exports.toInlinePropName = toInlinePropName;
|
17
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
18
|
+
require("core-js/modules/esnext.iterator.some.js");
|
17
19
|
var _object = require("../../helpers/object");
|
18
20
|
var _mixed = require("../../helpers/mixed");
|
19
21
|
var _array = require("../../helpers/array");
|
@@ -1,3 +1,5 @@
|
|
1
|
+
import "core-js/modules/esnext.iterator.constructor.js";
|
2
|
+
import "core-js/modules/esnext.iterator.some.js";
|
1
3
|
import { hasOwnProperty, isObject } from "../../helpers/object.mjs";
|
2
4
|
import { isDefined } from "../../helpers/mixed.mjs";
|
3
5
|
import { arrayEach } from "../../helpers/array.mjs";
|
@@ -8,7 +8,8 @@ export interface SeparatorObject {
|
|
8
8
|
|
9
9
|
export interface DetailedSettings {
|
10
10
|
callback?: (key: string, selection: Selection[], clickEvent: MouseEvent) => void;
|
11
|
-
|
11
|
+
uiContainer?: HTMLElement,
|
12
|
+
items?: PredefinedMenuItemKey[] | MenuConfig;
|
12
13
|
}
|
13
14
|
|
14
15
|
export type Settings = boolean | PredefinedMenuItemKey[] | DetailedSettings;
|