handsontable 14.6.1 → 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
@@ -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;
|