handsontable 0.0.0-next-9059914-20231025 → 0.0.0-next-cecf979-20231026
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
- package/3rdparty/walkontable/src/cell/coords.js +50 -11
- package/3rdparty/walkontable/src/cell/coords.mjs +50 -11
- package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
- package/3rdparty/walkontable/src/cell/range.js +38 -7
- package/3rdparty/walkontable/src/cell/range.mjs +38 -7
- package/3rdparty/walkontable/src/core/_base.js +9 -3
- package/3rdparty/walkontable/src/core/_base.mjs +9 -3
- package/3rdparty/walkontable/src/core/clone.js +2 -2
- package/3rdparty/walkontable/src/core/clone.mjs +2 -2
- package/3rdparty/walkontable/src/core/core.js +3 -2
- package/3rdparty/walkontable/src/core/core.mjs +3 -2
- package/3rdparty/walkontable/src/event.js +12 -10
- package/3rdparty/walkontable/src/event.mjs +12 -10
- package/3rdparty/walkontable/src/facade/core.js +2 -2
- package/3rdparty/walkontable/src/facade/core.mjs +2 -2
- package/3rdparty/walkontable/src/index.js +10 -2
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +13 -2
- package/3rdparty/walkontable/src/overlay/_base.mjs +14 -3
- package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -6
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -6
- package/3rdparty/walkontable/src/overlay/top.js +2 -6
- package/3rdparty/walkontable/src/overlay/top.mjs +2 -6
- package/3rdparty/walkontable/src/renderer/cells.js +10 -0
- package/3rdparty/walkontable/src/renderer/cells.mjs +11 -1
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +10 -0
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +11 -1
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +5 -0
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +5 -0
- package/3rdparty/walkontable/src/renderer/rows.js +13 -0
- package/3rdparty/walkontable/src/renderer/rows.mjs +13 -0
- package/3rdparty/walkontable/src/renderer/table.js +9 -0
- package/3rdparty/walkontable/src/renderer/table.mjs +9 -0
- package/3rdparty/walkontable/src/scroll.js +2 -0
- package/3rdparty/walkontable/src/scroll.mjs +2 -0
- package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +7 -12
- package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
- package/3rdparty/walkontable/src/selection/border/constants.js +16 -0
- package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
- package/3rdparty/walkontable/src/selection/constants.js +62 -0
- package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
- package/3rdparty/walkontable/src/selection/index.js +26 -0
- package/3rdparty/walkontable/src/selection/index.mjs +5 -0
- package/3rdparty/walkontable/src/selection/manager.js +274 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +269 -0
- package/3rdparty/walkontable/src/selection/scanner.js +270 -0
- package/3rdparty/walkontable/src/selection/scanner.mjs +267 -0
- package/3rdparty/walkontable/src/selection/selection.js +101 -0
- package/3rdparty/walkontable/src/selection/selection.mjs +96 -0
- package/3rdparty/walkontable/src/settings.js +13 -4
- package/3rdparty/walkontable/src/settings.mjs +13 -4
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
- package/3rdparty/walkontable/src/table.js +19 -78
- package/3rdparty/walkontable/src/table.mjs +20 -79
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/cellTypes/dateType/dateType.d.ts +3 -3
- package/cellTypes/dateType/dateType.js +2 -2
- package/cellTypes/dateType/dateType.mjs +2 -2
- package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
- package/cellTypes/handsontableType/handsontableType.js +2 -2
- package/cellTypes/handsontableType/handsontableType.mjs +2 -2
- package/cellTypes/index.d.ts +3 -0
- package/cellTypes/index.js +4 -0
- package/cellTypes/index.mjs +3 -1
- package/cellTypes/selectType/index.d.ts +1 -0
- package/cellTypes/selectType/index.js +6 -0
- package/cellTypes/selectType/index.mjs +1 -0
- package/cellTypes/selectType/selectType.d.ts +14 -0
- package/cellTypes/selectType/selectType.js +13 -0
- package/cellTypes/selectType/selectType.mjs +8 -0
- package/core/focusCatcher/focusDetector.js +63 -0
- package/core/focusCatcher/focusDetector.mjs +59 -0
- package/core/focusCatcher/index.js +142 -0
- package/core/focusCatcher/index.mjs +138 -0
- package/core/index.js +9 -0
- package/core/index.mjs +1 -0
- package/core.d.ts +9 -4
- package/core.js +285 -327
- package/core.mjs +285 -327
- package/dataMap/metaManager/metaSchema.js +65 -0
- package/dataMap/metaManager/metaSchema.mjs +65 -0
- package/dataMap/metaManager/mods/extendMetaProperties.js +7 -1
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +7 -1
- package/dataMap/replaceData.js +5 -0
- package/dataMap/replaceData.mjs +5 -0
- package/dist/handsontable.css +51 -15
- package/dist/handsontable.full.css +51 -15
- package/dist/handsontable.full.js +13360 -7840
- package/dist/handsontable.full.min.css +7 -7
- package/dist/handsontable.full.min.js +136 -136
- package/dist/handsontable.js +20955 -15435
- package/dist/handsontable.min.css +6 -6
- package/dist/handsontable.min.js +24 -24
- package/dist/languages/all.js +6 -2
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/en-US.js +3 -1
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/pl-PL.js +3 -1
- package/dist/languages/pl-PL.min.js +1 -1
- package/editorManager.js +15 -87
- package/editorManager.mjs +16 -87
- package/editors/autocompleteEditor/autocompleteEditor.js +53 -2
- package/editors/autocompleteEditor/autocompleteEditor.mjs +54 -3
- package/editors/dateEditor/dateEditor.js +26 -7
- package/editors/dateEditor/dateEditor.mjs +27 -8
- package/editors/handsontableEditor/handsontableEditor.js +9 -1
- package/editors/handsontableEditor/handsontableEditor.mjs +10 -2
- package/editors/textEditor/textEditor.js +19 -27
- package/editors/textEditor/textEditor.mjs +22 -30
- package/focusManager.d.ts +12 -0
- package/focusManager.js +265 -0
- package/focusManager.mjs +261 -0
- package/helpers/a11y.js +79 -0
- package/helpers/a11y.mjs +38 -0
- package/helpers/dom/element.js +188 -9
- package/helpers/dom/element.mjs +182 -9
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/helpers/number.d.ts +1 -0
- package/helpers/number.js +18 -0
- package/helpers/number.mjs +17 -0
- package/i18n/constants.js +7 -1
- package/i18n/constants.mjs +4 -1
- package/i18n/languages/en-US.js +3 -1
- package/i18n/languages/en-US.mjs +3 -1
- package/i18n/languages/pl-PL.js +3 -1
- package/i18n/languages/pl-PL.mjs +3 -1
- package/languages/all.js +6 -2
- package/languages/en-US.js +3 -1
- package/languages/en-US.mjs +3 -1
- package/languages/index.js +6 -2
- package/languages/pl-PL.js +3 -1
- package/languages/pl-PL.mjs +3 -1
- package/package.json +21 -1
- package/pluginHooks.d.ts +12 -1
- package/pluginHooks.js +152 -1
- package/pluginHooks.mjs +152 -1
- package/plugins/collapsibleColumns/collapsibleColumns.js +74 -4
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +75 -5
- package/plugins/columnSorting/columnSorting.js +43 -0
- package/plugins/columnSorting/columnSorting.mjs +44 -3
- package/plugins/columnSorting/index.js +3 -1
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/comments/commentEditor.js +1 -0
- package/plugins/comments/commentEditor.mjs +1 -0
- package/plugins/comments/comments.js +252 -189
- package/plugins/comments/comments.mjs +251 -190
- package/plugins/comments/contextMenuItem/addEditComment.js +41 -0
- package/plugins/comments/contextMenuItem/addEditComment.mjs +35 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.js +49 -0
- package/plugins/comments/contextMenuItem/readOnlyComment.mjs +43 -0
- package/plugins/comments/contextMenuItem/removeComment.js +38 -0
- package/plugins/comments/contextMenuItem/removeComment.mjs +32 -0
- package/plugins/contextMenu/commandExecutor.js +2 -3
- package/plugins/contextMenu/commandExecutor.mjs +2 -3
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +75 -36
- package/plugins/contextMenu/contextMenu.mjs +74 -35
- package/plugins/contextMenu/itemsFactory.js +2 -3
- package/plugins/contextMenu/itemsFactory.mjs +3 -4
- package/plugins/contextMenu/{cursor.mjs → menu/cursor.js} +6 -4
- package/plugins/contextMenu/{cursor.js → menu/cursor.mjs} +4 -10
- package/plugins/contextMenu/menu/defaultShortcutsList.js +88 -0
- package/plugins/contextMenu/menu/defaultShortcutsList.mjs +84 -0
- package/plugins/contextMenu/menu/index.js +9 -0
- package/plugins/contextMenu/menu/index.mjs +1 -0
- package/plugins/contextMenu/{menu.js → menu/menu.js} +145 -421
- package/plugins/contextMenu/{menu.mjs → menu/menu.mjs} +146 -422
- package/plugins/contextMenu/menu/menuItemRenderer.js +58 -0
- package/plugins/contextMenu/menu/menuItemRenderer.mjs +54 -0
- package/plugins/contextMenu/menu/navigator.js +27 -0
- package/plugins/contextMenu/menu/navigator.mjs +23 -0
- package/plugins/contextMenu/menu/positioner.js +213 -0
- package/plugins/contextMenu/menu/positioner.mjs +209 -0
- package/plugins/contextMenu/menu/shortcuts.js +114 -0
- package/plugins/contextMenu/menu/shortcuts.mjs +110 -0
- package/plugins/contextMenu/menu/utils.js +177 -0
- package/plugins/contextMenu/menu/utils.mjs +163 -0
- package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
- package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
- package/plugins/contextMenu/{predefinedItems.js → predefinedItems/index.js} +14 -14
- package/plugins/contextMenu/predefinedItems/index.mjs +68 -0
- package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/removeColumn.js +7 -5
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/removeRow.js +7 -5
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
- package/plugins/contextMenu/utils.js +35 -151
- package/plugins/contextMenu/utils.mjs +35 -144
- package/plugins/copyPaste/contextMenuItem/copy.js +7 -0
- package/plugins/copyPaste/contextMenuItem/copy.mjs +7 -0
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +9 -1
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +9 -1
- package/plugins/copyPaste/contextMenuItem/cut.js +7 -0
- package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
- package/plugins/copyPaste/copyPaste.js +127 -78
- package/plugins/copyPaste/copyPaste.mjs +128 -79
- package/plugins/customBorders/customBorders.js +23 -20
- package/plugins/customBorders/customBorders.mjs +24 -21
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +127 -40
- package/plugins/dropdownMenu/dropdownMenu.mjs +126 -39
- package/plugins/filters/component/_base.js +23 -8
- package/plugins/filters/component/_base.mjs +23 -8
- package/plugins/filters/component/actionBar.js +29 -27
- package/plugins/filters/component/actionBar.mjs +26 -23
- package/plugins/filters/component/condition.js +46 -59
- package/plugins/filters/component/condition.mjs +40 -52
- package/plugins/filters/component/operators.js +21 -22
- package/plugins/filters/component/operators.mjs +18 -18
- package/plugins/filters/component/value.js +35 -26
- package/plugins/filters/component/value.mjs +32 -22
- package/plugins/filters/constants.mjs +1 -1
- package/plugins/filters/filters.js +106 -62
- package/plugins/filters/filters.mjs +99 -55
- package/plugins/filters/menu/focusController.js +123 -0
- package/plugins/filters/menu/focusController.mjs +119 -0
- package/plugins/filters/menu/focusNavigator.js +30 -0
- package/plugins/filters/menu/focusNavigator.mjs +26 -0
- package/plugins/filters/ui/_base.js +35 -13
- package/plugins/filters/ui/_base.mjs +35 -13
- package/plugins/filters/ui/input.js +43 -32
- package/plugins/filters/ui/input.mjs +42 -30
- package/plugins/filters/ui/link.js +44 -12
- package/plugins/filters/ui/link.mjs +44 -11
- package/plugins/filters/ui/multipleSelect.js +234 -129
- package/plugins/filters/ui/multipleSelect.mjs +232 -127
- package/plugins/filters/ui/radioInput.js +42 -18
- package/plugins/filters/ui/radioInput.mjs +42 -17
- package/plugins/filters/ui/select.js +144 -75
- package/plugins/filters/ui/select.mjs +142 -72
- package/plugins/hiddenColumns/hiddenColumns.mjs +1 -1
- package/plugins/hiddenRows/hiddenRows.mjs +1 -1
- package/plugins/manualColumnMove/manualColumnMove.js +3 -1
- package/plugins/manualColumnMove/manualColumnMove.mjs +3 -1
- package/plugins/mergeCells/mergeCells.js +5 -16
- package/plugins/mergeCells/mergeCells.mjs +5 -16
- package/plugins/multiColumnSorting/multiColumnSorting.js +37 -2
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +37 -2
- package/plugins/nestedHeaders/nestedHeaders.js +240 -10
- package/plugins/nestedHeaders/nestedHeaders.mjs +241 -11
- package/plugins/nestedHeaders/stateManager/index.js +102 -3
- package/plugins/nestedHeaders/stateManager/index.mjs +102 -3
- package/plugins/nestedRows/nestedRows.js +41 -0
- package/plugins/nestedRows/nestedRows.mjs +41 -0
- package/plugins/nestedRows/ui/headers.js +11 -0
- package/plugins/nestedRows/ui/headers.mjs +12 -1
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +8 -0
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +8 -0
- package/renderers/baseRenderer/baseRenderer.js +17 -0
- package/renderers/baseRenderer/baseRenderer.mjs +18 -1
- package/renderers/checkboxRenderer/checkboxRenderer.js +9 -4
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
- package/renderers/dateRenderer/dateRenderer.d.ts +5 -0
- package/renderers/dateRenderer/dateRenderer.js +29 -0
- package/renderers/dateRenderer/dateRenderer.mjs +24 -0
- package/renderers/dateRenderer/index.d.ts +1 -0
- package/renderers/dateRenderer/index.js +6 -0
- package/renderers/dateRenderer/index.mjs +1 -0
- package/renderers/handsontableRenderer/handsontableRenderer.d.ts +5 -0
- package/renderers/handsontableRenderer/handsontableRenderer.js +29 -0
- package/renderers/handsontableRenderer/handsontableRenderer.mjs +24 -0
- package/renderers/handsontableRenderer/index.d.ts +1 -0
- package/renderers/handsontableRenderer/index.js +6 -0
- package/renderers/handsontableRenderer/index.mjs +1 -0
- package/renderers/index.d.ts +9 -0
- package/renderers/selectRenderer/index.d.ts +1 -0
- package/renderers/selectRenderer/index.js +6 -0
- package/renderers/selectRenderer/index.mjs +1 -0
- package/renderers/selectRenderer/selectRenderer.d.ts +5 -0
- package/renderers/selectRenderer/selectRenderer.js +27 -0
- package/renderers/selectRenderer/selectRenderer.mjs +22 -0
- package/selection/highlight/highlight.js +256 -71
- package/selection/highlight/highlight.mjs +250 -71
- package/selection/highlight/types/activeHeader.js +10 -8
- package/selection/highlight/types/activeHeader.mjs +10 -8
- package/selection/highlight/types/area.js +6 -18
- package/selection/highlight/types/area.mjs +6 -18
- package/selection/highlight/types/areaLayered.js +31 -0
- package/selection/highlight/types/areaLayered.mjs +26 -0
- package/selection/highlight/types/column.js +27 -0
- package/selection/highlight/types/column.mjs +22 -0
- package/selection/highlight/types/customSelection.js +7 -9
- package/selection/highlight/types/customSelection.mjs +7 -9
- package/selection/highlight/types/fill.js +5 -7
- package/selection/highlight/types/fill.mjs +5 -7
- package/selection/highlight/types/{cell.js → focus.js} +5 -7
- package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
- package/selection/highlight/types/header.js +9 -18
- package/selection/highlight/types/header.mjs +9 -18
- package/selection/highlight/types/row.js +27 -0
- package/selection/highlight/types/row.mjs +22 -0
- package/selection/highlight/visualSelection.js +31 -27
- package/selection/highlight/visualSelection.mjs +31 -27
- package/selection/index.js +4 -7
- package/selection/index.mjs +2 -3
- package/selection/mouseEventHandler.js +7 -1
- package/selection/mouseEventHandler.mjs +7 -1
- package/selection/range.js +8 -8
- package/selection/range.mjs +8 -8
- package/selection/selection.js +321 -152
- package/selection/selection.mjs +318 -151
- package/selection/transformation.js +232 -90
- package/selection/transformation.mjs +232 -90
- package/selection/utils.js +15 -21
- package/selection/utils.mjs +16 -21
- package/settings.d.ts +4 -0
- package/shortcutContexts/commands/editor/closeAndSave.js +12 -0
- package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +12 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
- package/shortcutContexts/commands/editor/fastOpen.js +16 -0
- package/shortcutContexts/commands/editor/fastOpen.mjs +12 -0
- package/shortcutContexts/commands/editor/index.js +16 -0
- package/shortcutContexts/commands/editor/index.mjs +12 -0
- package/shortcutContexts/commands/editor/open.js +27 -0
- package/shortcutContexts/commands/editor/open.mjs +23 -0
- package/shortcutContexts/commands/emptySelectedCells.js +11 -0
- package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
- package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +25 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +21 -0
- package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
- package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
- package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +25 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +21 -0
- package/shortcutContexts/commands/index.js +35 -0
- package/shortcutContexts/commands/index.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/down.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +33 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +29 -0
- package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
- package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/left.js +10 -0
- package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/right.js +10 -0
- package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +18 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +14 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +19 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +21 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +19 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
- package/shortcutContexts/commands/moveCellSelection/up.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +33 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +29 -0
- package/shortcutContexts/commands/populateSelectedCellsData.js +29 -0
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
- package/shortcutContexts/commands/scrollToFocusedCell.js +35 -0
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +31 -0
- package/shortcutContexts/commands/selectAll.js +12 -0
- package/shortcutContexts/commands/selectAll.mjs +8 -0
- package/shortcutContexts/constants.js +13 -0
- package/shortcutContexts/constants.mjs +8 -0
- package/shortcutContexts/editor.js +25 -0
- package/shortcutContexts/editor.mjs +21 -0
- package/shortcutContexts/grid.js +163 -0
- package/shortcutContexts/grid.mjs +159 -0
- package/shortcutContexts/index.js +24 -0
- package/shortcutContexts/index.mjs +11 -0
- package/shortcuts/context.d.ts +1 -0
- package/shortcuts/context.js +23 -4
- package/shortcuts/context.mjs +23 -5
- package/shortcuts/manager.js +25 -7
- package/shortcuts/manager.mjs +26 -7
- package/shortcuts/recorder.js +3 -3
- package/shortcuts/recorder.mjs +3 -3
- package/shortcuts/utils.js +19 -5
- package/shortcuts/utils.mjs +18 -4
- package/tableView.js +111 -13
- package/tableView.mjs +112 -14
- package/utils/paginator.js +151 -0
- package/utils/paginator.mjs +147 -0
- package/3rdparty/walkontable/src/selection.js +0 -295
- package/3rdparty/walkontable/src/selection.mjs +0 -290
- package/plugins/contextMenu/predefinedItems.mjs +0 -68
- package/plugins/copyPaste/focusableElement.js +0 -186
- package/plugins/copyPaste/focusableElement.mjs +0 -180
- package/selection/highlight/constants.js +0 -15
- package/selection/highlight/constants.mjs +0 -6
- package/selection/highlight/types/index.js +0 -35
- package/selection/highlight/types/index.mjs +0 -31
@@ -9,15 +9,16 @@ var _SheetClip = require("../../3rdparty/SheetClip");
|
|
9
9
|
var _array = require("../../helpers/array");
|
10
10
|
var _string = require("../../helpers/string");
|
11
11
|
var _element = require("../../helpers/dom/element");
|
12
|
+
var _browser = require("../../helpers/browser");
|
12
13
|
var _copy = _interopRequireDefault(require("./contextMenuItem/copy"));
|
13
14
|
var _copyColumnHeadersOnly = _interopRequireDefault(require("./contextMenuItem/copyColumnHeadersOnly"));
|
14
15
|
var _copyWithColumnGroupHeaders = _interopRequireDefault(require("./contextMenuItem/copyWithColumnGroupHeaders"));
|
15
16
|
var _copyWithColumnHeaders = _interopRequireDefault(require("./contextMenuItem/copyWithColumnHeaders"));
|
16
17
|
var _cut = _interopRequireDefault(require("./contextMenuItem/cut"));
|
17
18
|
var _pasteEvent = _interopRequireDefault(require("./pasteEvent"));
|
18
|
-
var _focusableElement = require("./focusableElement");
|
19
19
|
var _copyableRanges = require("./copyableRanges");
|
20
20
|
var _parseTable = require("../../utils/parseTable");
|
21
|
+
var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
21
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
22
23
|
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
23
24
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
@@ -25,9 +26,9 @@ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollect
|
|
25
26
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
26
27
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
27
28
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
28
|
-
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
29
29
|
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
30
30
|
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
31
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
31
32
|
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
32
33
|
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
33
34
|
function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
|
@@ -88,10 +89,21 @@ var _copyMode = /*#__PURE__*/new WeakMap();
|
|
88
89
|
var _isTriggeredByCopy = /*#__PURE__*/new WeakMap();
|
89
90
|
var _isTriggeredByCut = /*#__PURE__*/new WeakMap();
|
90
91
|
var _copyableRangesFactory = /*#__PURE__*/new WeakMap();
|
92
|
+
var _ensureClipboardEventsGetTriggered = /*#__PURE__*/new WeakSet();
|
91
93
|
var _countCopiedHeaders = /*#__PURE__*/new WeakSet();
|
94
|
+
var _addContentEditableToHighlightedCell = /*#__PURE__*/new WeakSet();
|
95
|
+
var _removeContentEditableFromHighlightedCell = /*#__PURE__*/new WeakSet();
|
92
96
|
class CopyPaste extends _base.BasePlugin {
|
93
97
|
constructor() {
|
94
98
|
super(...arguments);
|
99
|
+
/**
|
100
|
+
* Remove the `contenteditable` attribute from the highlighted cell and deselect its content.
|
101
|
+
*/
|
102
|
+
_classPrivateMethodInitSpec(this, _removeContentEditableFromHighlightedCell);
|
103
|
+
/**
|
104
|
+
* Add the `contenteditable` attribute to the highlighted cell and select its content.
|
105
|
+
*/
|
106
|
+
_classPrivateMethodInitSpec(this, _addContentEditableToHighlightedCell);
|
95
107
|
/**
|
96
108
|
* Counts how many column headers will be copied based on the passed range.
|
97
109
|
*
|
@@ -101,6 +113,12 @@ class CopyPaste extends _base.BasePlugin {
|
|
101
113
|
* information with the number of copied headers.
|
102
114
|
*/
|
103
115
|
_classPrivateMethodInitSpec(this, _countCopiedHeaders);
|
116
|
+
/**
|
117
|
+
* Ensure that the `copy`/`cut` events get triggered properly in Safari.
|
118
|
+
*
|
119
|
+
* @param {string} eventName Name of the event to get triggered.
|
120
|
+
*/
|
121
|
+
_classPrivateMethodInitSpec(this, _ensureClipboardEventsGetTriggered);
|
104
122
|
/**
|
105
123
|
* The maximum number of columns than can be copied to the clipboard.
|
106
124
|
*
|
@@ -218,13 +236,6 @@ class CopyPaste extends _base.BasePlugin {
|
|
218
236
|
* @type {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>}
|
219
237
|
*/
|
220
238
|
_defineProperty(this, "copyableRanges", []);
|
221
|
-
/**
|
222
|
-
* Provides focusable element to support IME and copy/paste/cut actions.
|
223
|
-
*
|
224
|
-
* @private
|
225
|
-
* @type {FocusableWrapper}
|
226
|
-
*/
|
227
|
-
_defineProperty(this, "focusableElement", void 0);
|
228
239
|
}
|
229
240
|
static get PLUGIN_KEY() {
|
230
241
|
return PLUGIN_KEY;
|
@@ -251,6 +262,7 @@ class CopyPaste extends _base.BasePlugin {
|
|
251
262
|
* Enables the [`CopyPaste`](#copypaste) plugin for your Handsontable instance.
|
252
263
|
*/
|
253
264
|
enablePlugin() {
|
265
|
+
var _this = this;
|
254
266
|
if (this.enabled) {
|
255
267
|
return;
|
256
268
|
}
|
@@ -268,11 +280,28 @@ class CopyPaste extends _base.BasePlugin {
|
|
268
280
|
this.uiContainer = (_settings$uiContainer = settings.uiContainer) !== null && _settings$uiContainer !== void 0 ? _settings$uiContainer : this.uiContainer;
|
269
281
|
}
|
270
282
|
this.addHook('afterContextMenuDefaultOptions', options => this.onAfterContextMenuDefaultOptions(options));
|
271
|
-
this.addHook('afterOnCellMouseUp', () => this.onAfterOnCellMouseUp());
|
272
283
|
this.addHook('afterSelectionEnd', () => this.onAfterSelectionEnd());
|
273
|
-
this.
|
274
|
-
this.
|
275
|
-
|
284
|
+
this.eventManager = new _eventManager.default(this);
|
285
|
+
this.eventManager.addEventListener(this.hot.rootDocument, 'copy', function () {
|
286
|
+
return _this.onCopy(...arguments);
|
287
|
+
});
|
288
|
+
this.eventManager.addEventListener(this.hot.rootDocument, 'cut', function () {
|
289
|
+
return _this.onCut(...arguments);
|
290
|
+
});
|
291
|
+
this.eventManager.addEventListener(this.hot.rootDocument, 'paste', function () {
|
292
|
+
return _this.onPaste(...arguments);
|
293
|
+
});
|
294
|
+
|
295
|
+
// Without this workaround Safari (tested on Safari@16.5.2) does allow copying/cutting from the browser menu.
|
296
|
+
if ((0, _browser.isSafari)()) {
|
297
|
+
this.eventManager.addEventListener(this.hot.rootDocument.body, 'mouseenter', function () {
|
298
|
+
return _this.onSafariMouseEnter(...arguments);
|
299
|
+
});
|
300
|
+
this.eventManager.addEventListener(this.hot.rootDocument.body, 'mouseleave', function () {
|
301
|
+
return _this.onSafariMouseLeave(...arguments);
|
302
|
+
});
|
303
|
+
this.addHook('afterSelection', () => this.onSafariAfterSelection());
|
304
|
+
}
|
276
305
|
super.enablePlugin();
|
277
306
|
}
|
278
307
|
|
@@ -287,7 +316,6 @@ class CopyPaste extends _base.BasePlugin {
|
|
287
316
|
updatePlugin() {
|
288
317
|
this.disablePlugin();
|
289
318
|
this.enablePlugin();
|
290
|
-
this.getOrCreateFocusableElement();
|
291
319
|
super.updatePlugin();
|
292
320
|
}
|
293
321
|
|
@@ -295,9 +323,6 @@ class CopyPaste extends _base.BasePlugin {
|
|
295
323
|
* Disables the [`CopyPaste`](#copypaste) plugin for your Handsontable instance.
|
296
324
|
*/
|
297
325
|
disablePlugin() {
|
298
|
-
if (this.focusableElement) {
|
299
|
-
(0, _focusableElement.destroyElement)(this.focusableElement);
|
300
|
-
}
|
301
326
|
super.disablePlugin();
|
302
327
|
}
|
303
328
|
|
@@ -319,9 +344,7 @@ class CopyPaste extends _base.BasePlugin {
|
|
319
344
|
let copyMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'cells-only';
|
320
345
|
_classPrivateFieldSet(this, _copyMode, copyMode);
|
321
346
|
_classPrivateFieldSet(this, _isTriggeredByCopy, true);
|
322
|
-
this.
|
323
|
-
this.focusableElement.focus();
|
324
|
-
this.hot.rootDocument.execCommand('copy');
|
347
|
+
_classPrivateMethodGet(this, _ensureClipboardEventsGetTriggered, _ensureClipboardEventsGetTriggered2).call(this, 'copy');
|
325
348
|
}
|
326
349
|
|
327
350
|
/**
|
@@ -354,9 +377,7 @@ class CopyPaste extends _base.BasePlugin {
|
|
354
377
|
*/
|
355
378
|
cut() {
|
356
379
|
_classPrivateFieldSet(this, _isTriggeredByCut, true);
|
357
|
-
this.
|
358
|
-
this.focusableElement.focus();
|
359
|
-
this.hot.rootDocument.execCommand('cut');
|
380
|
+
_classPrivateMethodGet(this, _ensureClipboardEventsGetTriggered, _ensureClipboardEventsGetTriggered2).call(this, 'cut');
|
360
381
|
}
|
361
382
|
|
362
383
|
/**
|
@@ -419,7 +440,6 @@ class CopyPaste extends _base.BasePlugin {
|
|
419
440
|
if (pastableHtml) {
|
420
441
|
pasteData.clipboardData.setData('text/html', pastableHtml);
|
421
442
|
}
|
422
|
-
this.getOrCreateFocusableElement();
|
423
443
|
this.onPaste(pasteData);
|
424
444
|
}
|
425
445
|
|
@@ -431,6 +451,10 @@ class CopyPaste extends _base.BasePlugin {
|
|
431
451
|
if (!selectionRange) {
|
432
452
|
return;
|
433
453
|
}
|
454
|
+
if (selectionRange.isSingleHeader()) {
|
455
|
+
this.copyableRanges = [];
|
456
|
+
return;
|
457
|
+
}
|
434
458
|
_classPrivateFieldGet(this, _copyableRangesFactory).setSelectedRange(selectionRange);
|
435
459
|
const groupedRanges = new Map([['headers', null], ['cells', null]]);
|
436
460
|
if (_classPrivateFieldGet(this, _copyMode) === 'column-headers-only') {
|
@@ -470,21 +494,6 @@ class CopyPaste extends _base.BasePlugin {
|
|
470
494
|
}
|
471
495
|
}
|
472
496
|
|
473
|
-
/**
|
474
|
-
* Force focus on editable element.
|
475
|
-
*
|
476
|
-
* @private
|
477
|
-
*/
|
478
|
-
getOrCreateFocusableElement() {
|
479
|
-
var _this$hot$getActiveEd;
|
480
|
-
const editableElement = (_this$hot$getActiveEd = this.hot.getActiveEditor()) === null || _this$hot$getActiveEd === void 0 ? void 0 : _this$hot$getActiveEd.TEXTAREA;
|
481
|
-
if (editableElement) {
|
482
|
-
this.focusableElement.setFocusableElement(editableElement);
|
483
|
-
} else {
|
484
|
-
this.focusableElement.useSecondaryElement();
|
485
|
-
}
|
486
|
-
}
|
487
|
-
|
488
497
|
/**
|
489
498
|
* Verifies if editor exists and is open.
|
490
499
|
*
|
@@ -492,8 +501,8 @@ class CopyPaste extends _base.BasePlugin {
|
|
492
501
|
* @returns {boolean}
|
493
502
|
*/
|
494
503
|
isEditorOpened() {
|
495
|
-
var _this$hot$
|
496
|
-
return (_this$hot$
|
504
|
+
var _this$hot$getActiveEd;
|
505
|
+
return (_this$hot$getActiveEd = this.hot.getActiveEditor()) === null || _this$hot$getActiveEd === void 0 ? void 0 : _this$hot$getActiveEd.isOpened();
|
497
506
|
}
|
498
507
|
/**
|
499
508
|
* Prepares new values to populate them into datasource.
|
@@ -560,7 +569,6 @@ class CopyPaste extends _base.BasePlugin {
|
|
560
569
|
this.hot.populateFromArray(startRow, startColumn, newRows, void 0, void 0, 'CopyPaste.paste', this.pasteMode);
|
561
570
|
return [startRow, startColumn, lastVisualRow, lastVisualColumn];
|
562
571
|
}
|
563
|
-
|
564
572
|
/**
|
565
573
|
* `copy` event callback on textarea element.
|
566
574
|
*
|
@@ -627,7 +635,7 @@ class CopyPaste extends _base.BasePlugin {
|
|
627
635
|
* @private
|
628
636
|
*/
|
629
637
|
onPaste(event) {
|
630
|
-
if (!this.hot.isListening() || this.isEditorOpened()) {
|
638
|
+
if (!this.hot.isListening() || this.isEditorOpened() || !this.hot.getSelected()) {
|
631
639
|
return;
|
632
640
|
}
|
633
641
|
if (event && event.preventDefault) {
|
@@ -652,7 +660,7 @@ class CopyPaste extends _base.BasePlugin {
|
|
652
660
|
if (typeof pastedData === 'string') {
|
653
661
|
pastedData = (0, _SheetClip.parse)(pastedData);
|
654
662
|
}
|
655
|
-
if (pastedData && pastedData.length === 0) {
|
663
|
+
if (pastedData === void 0 || pastedData && pastedData.length === 0) {
|
656
664
|
return;
|
657
665
|
}
|
658
666
|
if (this.hot.runHooks('beforePaste', pastedData, this.copyableRanges) === false) {
|
@@ -685,21 +693,6 @@ class CopyPaste extends _base.BasePlugin {
|
|
685
693
|
options.items.push((0, _cut.default)(this));
|
686
694
|
}
|
687
695
|
|
688
|
-
/**
|
689
|
-
* Force focus on focusableElement.
|
690
|
-
*
|
691
|
-
* @private
|
692
|
-
*/
|
693
|
-
onAfterOnCellMouseUp() {
|
694
|
-
// Changing focused element will remove current selection. It's unnecessary in case when we give possibility
|
695
|
-
// for fragment selection
|
696
|
-
if (!this.hot.isListening() || this.isEditorOpened() || this.hot.getSettings().fragmentSelection) {
|
697
|
-
return;
|
698
|
-
}
|
699
|
-
this.getOrCreateFocusableElement();
|
700
|
-
this.focusableElement.focus();
|
701
|
-
}
|
702
|
-
|
703
696
|
/**
|
704
697
|
* Force focus on focusableElement after end of the selection.
|
705
698
|
*
|
@@ -709,44 +702,69 @@ class CopyPaste extends _base.BasePlugin {
|
|
709
702
|
if (this.isEditorOpened()) {
|
710
703
|
return;
|
711
704
|
}
|
712
|
-
this.
|
713
|
-
if (this.hot.getSettings().fragmentSelection && this.focusableElement.getFocusableElement() !== this.hot.rootDocument.activeElement && (0, _element.getSelectionText)()) {
|
705
|
+
if (this.hot.getSettings().fragmentSelection) {
|
714
706
|
return;
|
715
707
|
}
|
716
708
|
this.setCopyableText();
|
717
|
-
this.focusableElement.focus();
|
718
709
|
}
|
719
710
|
|
720
711
|
/**
|
721
|
-
* `
|
712
|
+
* `document.body` `mouseenter` callback used to work around a Safari's problem with copying/cutting from the
|
713
|
+
* browser's menu.
|
722
714
|
*
|
723
715
|
* @private
|
724
716
|
*/
|
725
|
-
|
726
|
-
|
727
|
-
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
717
|
+
onSafariMouseEnter() {
|
718
|
+
_classPrivateMethodGet(this, _removeContentEditableFromHighlightedCell, _removeContentEditableFromHighlightedCell2).call(this);
|
719
|
+
}
|
720
|
+
|
721
|
+
/**
|
722
|
+
* `document.body` `mouseleave` callback used to work around a Safari's problem with copying/cutting from the
|
723
|
+
* browser's menu.
|
724
|
+
*
|
725
|
+
* @private
|
726
|
+
*/
|
727
|
+
onSafariMouseLeave() {
|
728
|
+
_classPrivateMethodGet(this, _addContentEditableToHighlightedCell, _addContentEditableToHighlightedCell2).call(this);
|
729
|
+
}
|
730
|
+
|
731
|
+
/**
|
732
|
+
* `afterSelection` hook callback triggered only on Safari.
|
733
|
+
*
|
734
|
+
* @private
|
735
|
+
*/
|
736
|
+
onSafariAfterSelection() {
|
737
|
+
_classPrivateMethodGet(this, _removeContentEditableFromHighlightedCell, _removeContentEditableFromHighlightedCell2).call(this);
|
736
738
|
}
|
737
739
|
|
738
740
|
/**
|
739
741
|
* Destroys the `CopyPaste` plugin instance.
|
740
742
|
*/
|
741
743
|
destroy() {
|
742
|
-
if (this.focusableElement) {
|
743
|
-
(0, _focusableElement.destroyElement)(this.focusableElement);
|
744
|
-
this.focusableElement = null;
|
745
|
-
}
|
746
744
|
super.destroy();
|
747
745
|
}
|
748
746
|
}
|
749
747
|
exports.CopyPaste = CopyPaste;
|
748
|
+
function _ensureClipboardEventsGetTriggered2(eventName) {
|
749
|
+
// Without this workaround Safari (tested on Safari@16.5.2) does not trigger the 'copy' event.
|
750
|
+
if ((0, _browser.isSafari)()) {
|
751
|
+
const lastSelectedRange = this.hot.getSelectedRangeLast();
|
752
|
+
if (lastSelectedRange) {
|
753
|
+
const {
|
754
|
+
row: highlightRow,
|
755
|
+
col: highlightColumn
|
756
|
+
} = lastSelectedRange.highlight;
|
757
|
+
const currentlySelectedCell = this.hot.getCell(highlightRow, highlightColumn, true);
|
758
|
+
if (currentlySelectedCell) {
|
759
|
+
(0, _element.runWithSelectedContendEditableElement)(currentlySelectedCell, () => {
|
760
|
+
this.hot.rootDocument.execCommand(eventName);
|
761
|
+
});
|
762
|
+
}
|
763
|
+
}
|
764
|
+
} else {
|
765
|
+
this.hot.rootDocument.execCommand(eventName);
|
766
|
+
}
|
767
|
+
}
|
750
768
|
function _countCopiedHeaders2(ranges) {
|
751
769
|
const {
|
752
770
|
rows
|
@@ -761,4 +779,35 @@ function _countCopiedHeaders2(ranges) {
|
|
761
779
|
return {
|
762
780
|
columnHeadersCount
|
763
781
|
};
|
782
|
+
}
|
783
|
+
function _addContentEditableToHighlightedCell2() {
|
784
|
+
if (this.hot.isListening()) {
|
785
|
+
const lastSelectedRange = this.hot.getSelectedRangeLast();
|
786
|
+
if (lastSelectedRange) {
|
787
|
+
const {
|
788
|
+
row: highlightRow,
|
789
|
+
col: highlightColumn
|
790
|
+
} = lastSelectedRange.highlight;
|
791
|
+
const currentlySelectedCell = this.hot.getCell(highlightRow, highlightColumn, true);
|
792
|
+
if (currentlySelectedCell) {
|
793
|
+
(0, _element.makeElementContentEditableAndSelectItsContent)(currentlySelectedCell);
|
794
|
+
}
|
795
|
+
}
|
796
|
+
}
|
797
|
+
}
|
798
|
+
function _removeContentEditableFromHighlightedCell2() {
|
799
|
+
// If the instance is not listening, the workaround is not needed.
|
800
|
+
if (this.hot.isListening()) {
|
801
|
+
const lastSelectedRange = this.hot.getSelectedRangeLast();
|
802
|
+
if (lastSelectedRange) {
|
803
|
+
const {
|
804
|
+
row: highlightRow,
|
805
|
+
col: highlightColumn
|
806
|
+
} = lastSelectedRange.highlight;
|
807
|
+
const currentlySelectedCell = this.hot.getCell(highlightRow, highlightColumn, true);
|
808
|
+
if (currentlySelectedCell !== null && currentlySelectedCell !== void 0 && currentlySelectedCell.hasAttribute('contenteditable')) {
|
809
|
+
(0, _element.removeContentEditableFromElementAndDeselect)(currentlySelectedCell);
|
810
|
+
}
|
811
|
+
}
|
812
|
+
}
|
764
813
|
}
|