handsontable 0.0.0-next-b0a4ea2-20231024 → 0.0.0-next-9059914-20231025
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/{selection/border/border.js → border.js} +12 -7
- package/3rdparty/walkontable/src/{selection/border/border.mjs → border.mjs} +12 -7
- package/3rdparty/walkontable/src/cell/coords.d.ts +1 -6
- package/3rdparty/walkontable/src/cell/coords.js +11 -50
- package/3rdparty/walkontable/src/cell/coords.mjs +11 -50
- package/3rdparty/walkontable/src/cell/range.d.ts +2 -9
- package/3rdparty/walkontable/src/cell/range.js +7 -38
- package/3rdparty/walkontable/src/cell/range.mjs +7 -38
- package/3rdparty/walkontable/src/core/_base.js +3 -9
- package/3rdparty/walkontable/src/core/_base.mjs +3 -9
- 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 +2 -3
- package/3rdparty/walkontable/src/core/core.mjs +2 -3
- package/3rdparty/walkontable/src/event.js +10 -12
- package/3rdparty/walkontable/src/event.mjs +10 -12
- package/3rdparty/walkontable/src/facade/core.js +2 -2
- package/3rdparty/walkontable/src/facade/core.mjs +2 -2
- package/3rdparty/walkontable/src/index.js +2 -10
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +2 -13
- package/3rdparty/walkontable/src/overlay/_base.mjs +3 -14
- package/3rdparty/walkontable/src/overlay/inlineStart.js +6 -2
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +6 -2
- package/3rdparty/walkontable/src/overlay/top.js +6 -2
- package/3rdparty/walkontable/src/overlay/top.mjs +6 -2
- package/3rdparty/walkontable/src/renderer/cells.js +0 -10
- package/3rdparty/walkontable/src/renderer/cells.mjs +1 -11
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +0 -10
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +1 -11
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +0 -5
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +0 -5
- package/3rdparty/walkontable/src/renderer/rows.js +0 -13
- package/3rdparty/walkontable/src/renderer/rows.mjs +0 -13
- package/3rdparty/walkontable/src/renderer/table.js +0 -9
- package/3rdparty/walkontable/src/renderer/table.mjs +0 -9
- package/3rdparty/walkontable/src/scroll.js +0 -2
- package/3rdparty/walkontable/src/scroll.mjs +0 -2
- package/3rdparty/walkontable/src/selection.js +295 -0
- package/3rdparty/walkontable/src/selection.mjs +290 -0
- package/3rdparty/walkontable/src/settings.js +4 -13
- package/3rdparty/walkontable/src/settings.mjs +4 -13
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +0 -9
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +0 -9
- package/3rdparty/walkontable/src/table.js +78 -19
- package/3rdparty/walkontable/src/table.mjs +79 -20
- 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 +0 -3
- package/cellTypes/index.js +0 -4
- package/cellTypes/index.mjs +1 -3
- package/core.d.ts +4 -9
- package/core.js +327 -285
- package/core.mjs +327 -285
- package/dataMap/metaManager/metaSchema.js +0 -65
- package/dataMap/metaManager/metaSchema.mjs +0 -65
- package/dataMap/metaManager/mods/extendMetaProperties.js +1 -7
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +1 -7
- package/dataMap/replaceData.js +0 -5
- package/dataMap/replaceData.mjs +0 -5
- package/dist/handsontable.css +15 -51
- package/dist/handsontable.full.css +15 -51
- package/dist/handsontable.full.js +8668 -14188
- package/dist/handsontable.full.min.css +7 -7
- package/dist/handsontable.full.min.js +136 -136
- package/dist/handsontable.js +22829 -28349
- package/dist/handsontable.min.css +6 -6
- package/dist/handsontable.min.js +24 -24
- package/dist/languages/all.js +2 -6
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/en-US.js +1 -3
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/pl-PL.js +1 -3
- package/dist/languages/pl-PL.min.js +1 -1
- package/editorManager.js +87 -15
- package/editorManager.mjs +87 -16
- package/editors/autocompleteEditor/autocompleteEditor.js +2 -53
- package/editors/autocompleteEditor/autocompleteEditor.mjs +3 -54
- package/editors/dateEditor/dateEditor.js +7 -26
- package/editors/dateEditor/dateEditor.mjs +8 -27
- package/editors/handsontableEditor/handsontableEditor.js +1 -9
- package/editors/handsontableEditor/handsontableEditor.mjs +2 -10
- package/editors/textEditor/textEditor.js +27 -19
- package/editors/textEditor/textEditor.mjs +30 -22
- package/helpers/dom/element.js +9 -188
- package/helpers/dom/element.mjs +9 -182
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/helpers/number.d.ts +0 -1
- package/helpers/number.js +0 -18
- package/helpers/number.mjs +0 -17
- package/i18n/constants.js +1 -7
- package/i18n/constants.mjs +1 -4
- package/i18n/languages/en-US.js +1 -3
- package/i18n/languages/en-US.mjs +1 -3
- package/i18n/languages/pl-PL.js +1 -3
- package/i18n/languages/pl-PL.mjs +1 -3
- package/languages/all.js +2 -6
- package/languages/en-US.js +1 -3
- package/languages/en-US.mjs +1 -3
- package/languages/index.js +2 -6
- package/languages/pl-PL.js +1 -3
- package/languages/pl-PL.mjs +1 -3
- package/package.json +99 -116
- package/pluginHooks.d.ts +1 -12
- package/pluginHooks.js +1 -152
- package/pluginHooks.mjs +1 -152
- package/plugins/collapsibleColumns/collapsibleColumns.js +4 -74
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +5 -75
- package/plugins/columnSorting/columnSorting.js +0 -43
- package/plugins/columnSorting/columnSorting.mjs +3 -44
- package/plugins/columnSorting/index.js +1 -3
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/comments/commentEditor.js +0 -1
- package/plugins/comments/commentEditor.mjs +0 -1
- package/plugins/comments/comments.js +189 -252
- package/plugins/comments/comments.mjs +190 -251
- package/plugins/contextMenu/commandExecutor.js +3 -2
- package/plugins/contextMenu/commandExecutor.mjs +3 -2
- package/plugins/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +36 -75
- package/plugins/contextMenu/contextMenu.mjs +35 -74
- package/plugins/contextMenu/{menu/cursor.mjs → cursor.js} +10 -4
- package/plugins/contextMenu/{menu/cursor.js → cursor.mjs} +4 -6
- package/plugins/contextMenu/itemsFactory.js +3 -2
- package/plugins/contextMenu/itemsFactory.mjs +4 -3
- package/plugins/contextMenu/{menu/menu.js → menu.js} +421 -145
- package/plugins/contextMenu/{menu/menu.mjs → menu.mjs} +422 -146
- package/plugins/contextMenu/predefinedItems/alignment.js +0 -7
- package/plugins/contextMenu/predefinedItems/alignment.mjs +0 -7
- package/plugins/contextMenu/predefinedItems/clearColumn.js +3 -5
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/columnLeft.js +3 -5
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/columnRight.js +3 -5
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/readOnly.js +0 -7
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +0 -7
- package/plugins/contextMenu/predefinedItems/removeColumn.js +5 -7
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/removeRow.js +5 -7
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/rowAbove.js +3 -5
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +3 -5
- package/plugins/contextMenu/predefinedItems/rowBelow.js +3 -5
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +3 -5
- package/plugins/contextMenu/{predefinedItems/index.js → predefinedItems.js} +14 -14
- package/plugins/contextMenu/predefinedItems.mjs +68 -0
- package/plugins/contextMenu/utils.js +151 -35
- package/plugins/contextMenu/utils.mjs +144 -35
- package/plugins/copyPaste/contextMenuItem/copy.js +0 -7
- package/plugins/copyPaste/contextMenuItem/copy.mjs +0 -7
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.js +1 -9
- package/plugins/copyPaste/contextMenuItem/copyColumnHeadersOnly.mjs +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.js +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnGroupHeaders.mjs +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.js +1 -9
- package/plugins/copyPaste/contextMenuItem/copyWithColumnHeaders.mjs +1 -9
- package/plugins/copyPaste/contextMenuItem/cut.js +0 -7
- package/plugins/copyPaste/contextMenuItem/cut.mjs +0 -7
- package/plugins/copyPaste/copyPaste.js +78 -127
- package/plugins/copyPaste/copyPaste.mjs +79 -128
- package/plugins/copyPaste/focusableElement.js +186 -0
- package/plugins/copyPaste/focusableElement.mjs +180 -0
- package/plugins/customBorders/customBorders.js +20 -23
- package/plugins/customBorders/customBorders.mjs +21 -24
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +40 -127
- package/plugins/dropdownMenu/dropdownMenu.mjs +39 -126
- package/plugins/filters/component/_base.js +8 -23
- package/plugins/filters/component/_base.mjs +8 -23
- package/plugins/filters/component/actionBar.js +27 -29
- package/plugins/filters/component/actionBar.mjs +23 -26
- package/plugins/filters/component/condition.js +59 -46
- package/plugins/filters/component/condition.mjs +52 -40
- package/plugins/filters/component/operators.js +22 -21
- package/plugins/filters/component/operators.mjs +18 -18
- package/plugins/filters/component/value.js +26 -35
- package/plugins/filters/component/value.mjs +22 -32
- package/plugins/filters/constants.mjs +1 -1
- package/plugins/filters/filters.js +62 -106
- package/plugins/filters/filters.mjs +55 -99
- package/plugins/filters/ui/_base.js +13 -35
- package/plugins/filters/ui/_base.mjs +13 -35
- package/plugins/filters/ui/input.js +32 -43
- package/plugins/filters/ui/input.mjs +30 -42
- package/plugins/filters/ui/link.js +12 -44
- package/plugins/filters/ui/link.mjs +11 -44
- package/plugins/filters/ui/multipleSelect.js +129 -234
- package/plugins/filters/ui/multipleSelect.mjs +127 -232
- package/plugins/filters/ui/radioInput.js +18 -42
- package/plugins/filters/ui/radioInput.mjs +17 -42
- package/plugins/filters/ui/select.js +75 -144
- package/plugins/filters/ui/select.mjs +72 -142
- package/plugins/hiddenColumns/hiddenColumns.mjs +1 -1
- package/plugins/hiddenRows/hiddenRows.mjs +1 -1
- package/plugins/manualColumnMove/manualColumnMove.js +1 -3
- package/plugins/manualColumnMove/manualColumnMove.mjs +1 -3
- package/plugins/mergeCells/mergeCells.js +16 -5
- package/plugins/mergeCells/mergeCells.mjs +16 -5
- package/plugins/multiColumnSorting/multiColumnSorting.js +2 -37
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -37
- package/plugins/nestedHeaders/nestedHeaders.js +10 -240
- package/plugins/nestedHeaders/nestedHeaders.mjs +11 -241
- package/plugins/nestedHeaders/stateManager/index.js +3 -102
- package/plugins/nestedHeaders/stateManager/index.mjs +3 -102
- package/plugins/nestedRows/nestedRows.js +0 -41
- package/plugins/nestedRows/nestedRows.mjs +0 -41
- package/plugins/nestedRows/ui/headers.js +0 -11
- package/plugins/nestedRows/ui/headers.mjs +1 -12
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +0 -8
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +0 -8
- package/renderers/baseRenderer/baseRenderer.js +0 -17
- package/renderers/baseRenderer/baseRenderer.mjs +1 -18
- package/renderers/checkboxRenderer/checkboxRenderer.js +4 -9
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +4 -9
- package/renderers/index.d.ts +0 -9
- package/selection/highlight/constants.js +15 -0
- package/selection/highlight/constants.mjs +6 -0
- package/selection/highlight/highlight.js +71 -256
- package/selection/highlight/highlight.mjs +71 -250
- package/selection/highlight/types/activeHeader.js +8 -10
- package/selection/highlight/types/activeHeader.mjs +8 -10
- package/selection/highlight/types/area.js +18 -6
- package/selection/highlight/types/area.mjs +18 -6
- package/selection/highlight/types/{focus.js → cell.js} +7 -5
- package/selection/highlight/types/{focus.mjs → cell.mjs} +7 -5
- package/selection/highlight/types/customSelection.js +9 -7
- package/selection/highlight/types/customSelection.mjs +9 -7
- package/selection/highlight/types/fill.js +7 -5
- package/selection/highlight/types/fill.mjs +7 -5
- package/selection/highlight/types/header.js +18 -9
- package/selection/highlight/types/header.mjs +18 -9
- package/selection/highlight/types/index.js +35 -0
- package/selection/highlight/types/index.mjs +31 -0
- package/selection/highlight/visualSelection.js +27 -31
- package/selection/highlight/visualSelection.mjs +27 -31
- package/selection/index.js +7 -4
- package/selection/index.mjs +3 -2
- package/selection/mouseEventHandler.js +1 -7
- package/selection/mouseEventHandler.mjs +1 -7
- package/selection/range.js +8 -8
- package/selection/range.mjs +8 -8
- package/selection/selection.js +152 -321
- package/selection/selection.mjs +151 -318
- package/selection/transformation.js +90 -232
- package/selection/transformation.mjs +90 -232
- package/selection/utils.js +21 -15
- package/selection/utils.mjs +21 -16
- package/settings.d.ts +0 -4
- package/shortcuts/context.js +4 -23
- package/shortcuts/context.mjs +5 -23
- package/shortcuts/manager.js +7 -25
- package/shortcuts/manager.mjs +7 -26
- package/shortcuts/recorder.js +3 -3
- package/shortcuts/recorder.mjs +3 -3
- package/shortcuts/utils.js +5 -19
- package/shortcuts/utils.mjs +4 -18
- package/tableView.js +13 -111
- package/tableView.mjs +14 -112
- package/3rdparty/walkontable/src/selection/border/constants.js +0 -16
- package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
- package/3rdparty/walkontable/src/selection/constants.js +0 -62
- package/3rdparty/walkontable/src/selection/constants.mjs +0 -51
- package/3rdparty/walkontable/src/selection/index.js +0 -26
- package/3rdparty/walkontable/src/selection/index.mjs +0 -5
- package/3rdparty/walkontable/src/selection/manager.js +0 -274
- package/3rdparty/walkontable/src/selection/manager.mjs +0 -269
- package/3rdparty/walkontable/src/selection/scanner.js +0 -270
- package/3rdparty/walkontable/src/selection/scanner.mjs +0 -267
- package/3rdparty/walkontable/src/selection/selection.js +0 -101
- package/3rdparty/walkontable/src/selection/selection.mjs +0 -96
- package/cellTypes/selectType/index.d.ts +0 -1
- package/cellTypes/selectType/index.js +0 -6
- package/cellTypes/selectType/index.mjs +0 -1
- package/cellTypes/selectType/selectType.d.ts +0 -14
- package/cellTypes/selectType/selectType.js +0 -13
- package/cellTypes/selectType/selectType.mjs +0 -8
- package/core/focusCatcher/focusDetector.js +0 -63
- package/core/focusCatcher/focusDetector.mjs +0 -59
- package/core/focusCatcher/index.js +0 -142
- package/core/focusCatcher/index.mjs +0 -138
- package/core/index.js +0 -9
- package/core/index.mjs +0 -1
- package/focusManager.d.ts +0 -12
- package/focusManager.js +0 -265
- package/focusManager.mjs +0 -261
- package/helpers/a11y.js +0 -79
- package/helpers/a11y.mjs +0 -38
- package/plugins/comments/contextMenuItem/addEditComment.js +0 -41
- package/plugins/comments/contextMenuItem/addEditComment.mjs +0 -35
- package/plugins/comments/contextMenuItem/readOnlyComment.js +0 -49
- package/plugins/comments/contextMenuItem/readOnlyComment.mjs +0 -43
- package/plugins/comments/contextMenuItem/removeComment.js +0 -38
- package/plugins/comments/contextMenuItem/removeComment.mjs +0 -32
- package/plugins/contextMenu/menu/defaultShortcutsList.js +0 -88
- package/plugins/contextMenu/menu/defaultShortcutsList.mjs +0 -84
- package/plugins/contextMenu/menu/index.js +0 -9
- package/plugins/contextMenu/menu/index.mjs +0 -1
- package/plugins/contextMenu/menu/menuItemRenderer.js +0 -58
- package/plugins/contextMenu/menu/menuItemRenderer.mjs +0 -54
- package/plugins/contextMenu/menu/navigator.js +0 -27
- package/plugins/contextMenu/menu/navigator.mjs +0 -23
- package/plugins/contextMenu/menu/positioner.js +0 -213
- package/plugins/contextMenu/menu/positioner.mjs +0 -209
- package/plugins/contextMenu/menu/shortcuts.js +0 -114
- package/plugins/contextMenu/menu/shortcuts.mjs +0 -110
- package/plugins/contextMenu/menu/utils.js +0 -177
- package/plugins/contextMenu/menu/utils.mjs +0 -163
- package/plugins/contextMenu/predefinedItems/index.mjs +0 -68
- package/plugins/filters/menu/focusController.js +0 -123
- package/plugins/filters/menu/focusController.mjs +0 -119
- package/plugins/filters/menu/focusNavigator.js +0 -30
- package/plugins/filters/menu/focusNavigator.mjs +0 -26
- package/renderers/dateRenderer/dateRenderer.d.ts +0 -5
- package/renderers/dateRenderer/dateRenderer.js +0 -29
- package/renderers/dateRenderer/dateRenderer.mjs +0 -24
- package/renderers/dateRenderer/index.d.ts +0 -1
- package/renderers/dateRenderer/index.js +0 -6
- package/renderers/dateRenderer/index.mjs +0 -1
- package/renderers/handsontableRenderer/handsontableRenderer.d.ts +0 -5
- package/renderers/handsontableRenderer/handsontableRenderer.js +0 -29
- package/renderers/handsontableRenderer/handsontableRenderer.mjs +0 -24
- package/renderers/handsontableRenderer/index.d.ts +0 -1
- package/renderers/handsontableRenderer/index.js +0 -6
- package/renderers/handsontableRenderer/index.mjs +0 -1
- package/renderers/selectRenderer/index.d.ts +0 -1
- package/renderers/selectRenderer/index.js +0 -6
- package/renderers/selectRenderer/index.mjs +0 -1
- package/renderers/selectRenderer/selectRenderer.d.ts +0 -5
- package/renderers/selectRenderer/selectRenderer.js +0 -27
- package/renderers/selectRenderer/selectRenderer.mjs +0 -22
- package/selection/highlight/types/areaLayered.js +0 -31
- package/selection/highlight/types/areaLayered.mjs +0 -26
- package/selection/highlight/types/column.js +0 -27
- package/selection/highlight/types/column.mjs +0 -22
- package/selection/highlight/types/row.js +0 -27
- package/selection/highlight/types/row.mjs +0 -22
- package/shortcutContexts/commands/editor/closeAndSave.js +0 -12
- package/shortcutContexts/commands/editor/closeAndSave.mjs +0 -8
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +0 -12
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +0 -8
- package/shortcutContexts/commands/editor/fastOpen.js +0 -16
- package/shortcutContexts/commands/editor/fastOpen.mjs +0 -12
- package/shortcutContexts/commands/editor/index.js +0 -16
- package/shortcutContexts/commands/editor/index.mjs +0 -12
- package/shortcutContexts/commands/editor/open.js +0 -27
- package/shortcutContexts/commands/editor/open.mjs +0 -23
- package/shortcutContexts/commands/emptySelectedCells.js +0 -11
- package/shortcutContexts/commands/emptySelectedCells.mjs +0 -7
- package/shortcutContexts/commands/extendCellsSelection/down.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +0 -25
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +0 -21
- package/shortcutContexts/commands/extendCellsSelection/index.js +0 -26
- package/shortcutContexts/commands/extendCellsSelection/index.mjs +0 -22
- package/shortcutContexts/commands/extendCellsSelection/left.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/right.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +0 -29
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +0 -25
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +0 -19
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +0 -15
- package/shortcutContexts/commands/extendCellsSelection/up.js +0 -15
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +0 -11
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +0 -25
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +0 -21
- package/shortcutContexts/commands/index.js +0 -35
- package/shortcutContexts/commands/index.mjs +0 -31
- package/shortcutContexts/commands/moveCellSelection/down.js +0 -13
- package/shortcutContexts/commands/moveCellSelection/down.mjs +0 -9
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +0 -33
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +0 -29
- package/shortcutContexts/commands/moveCellSelection/index.js +0 -28
- package/shortcutContexts/commands/moveCellSelection/index.mjs +0 -24
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -12
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -8
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -12
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -8
- package/shortcutContexts/commands/moveCellSelection/left.js +0 -10
- package/shortcutContexts/commands/moveCellSelection/left.mjs +0 -6
- package/shortcutContexts/commands/moveCellSelection/right.js +0 -10
- package/shortcutContexts/commands/moveCellSelection/right.mjs +0 -6
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +0 -13
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +0 -18
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +0 -14
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +0 -14
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +0 -10
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +0 -13
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +0 -19
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +0 -15
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +0 -21
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +0 -17
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +0 -13
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +0 -19
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +0 -15
- package/shortcutContexts/commands/moveCellSelection/up.js +0 -13
- package/shortcutContexts/commands/moveCellSelection/up.mjs +0 -9
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +0 -33
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +0 -29
- package/shortcutContexts/commands/populateSelectedCellsData.js +0 -29
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +0 -25
- package/shortcutContexts/commands/scrollToFocusedCell.js +0 -35
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +0 -31
- package/shortcutContexts/commands/selectAll.js +0 -12
- package/shortcutContexts/commands/selectAll.mjs +0 -8
- package/shortcutContexts/constants.js +0 -13
- package/shortcutContexts/constants.mjs +0 -8
- package/shortcutContexts/editor.js +0 -25
- package/shortcutContexts/editor.mjs +0 -21
- package/shortcutContexts/grid.js +0 -163
- package/shortcutContexts/grid.mjs +0 -159
- package/shortcutContexts/index.js +0 -24
- package/shortcutContexts/index.mjs +0 -11
- package/utils/paginator.js +0 -151
- package/utils/paginator.mjs +0 -147
@@ -3,8 +3,7 @@ import moment from 'moment';
|
|
3
3
|
import Pikaday from 'pikaday';
|
4
4
|
import { TextEditor } from "../textEditor/index.mjs";
|
5
5
|
import EventManager from "../../eventManager.mjs";
|
6
|
-
import { addClass,
|
7
|
-
import { A11Y_EXPANDED } from "../../helpers/a11y.mjs";
|
6
|
+
import { addClass, outerHeight, outerWidth } from "../../helpers/dom/element.mjs";
|
8
7
|
import { deepExtend } from "../../helpers/object.mjs";
|
9
8
|
import { isFunctionKey } from "../../helpers/unicode.mjs";
|
10
9
|
export const EDITOR_TYPE = 'date';
|
@@ -40,7 +39,7 @@ export class DateEditor extends TextEditor {
|
|
40
39
|
throw new Error('You need to include Pikaday to your project.');
|
41
40
|
}
|
42
41
|
super.init();
|
43
|
-
this.
|
42
|
+
this.instance.addHook('afterDestroy', () => {
|
44
43
|
this.parentDestroyed = true;
|
45
44
|
this.destroyElements();
|
46
45
|
});
|
@@ -65,21 +64,7 @@ export class DateEditor extends TextEditor {
|
|
65
64
|
/**
|
66
65
|
* Prevent recognizing clicking on datepicker as clicking outside of table.
|
67
66
|
*/
|
68
|
-
eventManager.addEventListener(this.datePicker, 'mousedown', event =>
|
69
|
-
if (hasClass(event.target, 'pika-day')) {
|
70
|
-
this.hideDatepicker();
|
71
|
-
}
|
72
|
-
event.stopPropagation();
|
73
|
-
});
|
74
|
-
|
75
|
-
/**
|
76
|
-
* Prevent caret movement in the TEXTAREA when navigating over the date picker.
|
77
|
-
*/
|
78
|
-
eventManager.addEventListener(this.TEXTAREA, 'keydown', event => {
|
79
|
-
if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.code)) {
|
80
|
-
event.preventDefault();
|
81
|
-
}
|
82
|
-
});
|
67
|
+
eventManager.addEventListener(this.datePicker, 'mousedown', event => event.stopPropagation());
|
83
68
|
}
|
84
69
|
|
85
70
|
/**
|
@@ -120,9 +105,6 @@ export class DateEditor extends TextEditor {
|
|
120
105
|
const editorContext = shortcutManager.getContext('editor');
|
121
106
|
super.open();
|
122
107
|
this.showDatepicker(event);
|
123
|
-
if (this.hot.getSettings().ariaTags) {
|
124
|
-
setAttribute(this.TD, [A11Y_EXPANDED('true')]);
|
125
|
-
}
|
126
108
|
editorContext.addShortcut({
|
127
109
|
keys: [['Enter']],
|
128
110
|
callback: keyboardEvent => {
|
@@ -145,12 +127,9 @@ export class DateEditor extends TextEditor {
|
|
145
127
|
if ((_this$$datePicker = this.$datePicker) !== null && _this$$datePicker !== void 0 && _this$$datePicker.destroy) {
|
146
128
|
this.$datePicker.destroy();
|
147
129
|
}
|
148
|
-
this.
|
149
|
-
this.
|
130
|
+
this.instance._registerTimeout(() => {
|
131
|
+
this.instance._refreshBorders();
|
150
132
|
});
|
151
|
-
if (this.TD && this.hot.getSettings().ariaTags) {
|
152
|
-
setAttribute(this.TD, [A11Y_EXPANDED('false')]);
|
153
|
-
}
|
154
133
|
const shortcutManager = this.hot.getShortcutManager();
|
155
134
|
const editorContext = shortcutManager.getContext('editor');
|
156
135
|
editorContext.removeShortcutsByGroup(SHORTCUTS_GROUP_EDITOR);
|
@@ -168,6 +147,7 @@ export class DateEditor extends TextEditor {
|
|
168
147
|
let ctrlDown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
169
148
|
if (restoreOriginalValue) {
|
170
149
|
// pressed ESC, restore original value
|
150
|
+
// var value = this.instance.getDataAtCell(this.row, this.col);
|
171
151
|
const value = this.originalValue;
|
172
152
|
if (value !== void 0) {
|
173
153
|
this.setValue(value);
|
@@ -184,7 +164,7 @@ export class DateEditor extends TextEditor {
|
|
184
164
|
showDatepicker(event) {
|
185
165
|
const offset = this.TD.getBoundingClientRect();
|
186
166
|
const dateFormat = this.cellProperties.dateFormat || this.defaultDateFormat;
|
187
|
-
const isMouseDown = this.
|
167
|
+
const isMouseDown = this.instance.view.isMouseDown();
|
188
168
|
const isMeta = event ? isFunctionKey(event.keyCode) : false;
|
189
169
|
let dateStr;
|
190
170
|
this.datePicker.style.display = 'block';
|
@@ -263,6 +243,7 @@ export class DateEditor extends TextEditor {
|
|
263
243
|
dateStr = moment(dateStr).format(this.cellProperties.dateFormat || this.defaultDateFormat);
|
264
244
|
}
|
265
245
|
this.setValue(dateStr);
|
246
|
+
this.hideDatepicker();
|
266
247
|
if (origOnSelect) {
|
267
248
|
origOnSelect();
|
268
249
|
}
|
@@ -6,7 +6,6 @@ var _element = require("../../helpers/dom/element");
|
|
6
6
|
var _event = require("../../helpers/dom/event");
|
7
7
|
var _object = require("../../helpers/object");
|
8
8
|
var _editorManager = require("../../editorManager");
|
9
|
-
var _a11y = require("../../helpers/a11y");
|
10
9
|
const SHORTCUTS_GROUP = 'handsontableEditor';
|
11
10
|
const EDITOR_TYPE = 'handsontable';
|
12
11
|
|
@@ -43,9 +42,6 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
43
42
|
}
|
44
43
|
(0, _element.setCaretPosition)(this.TEXTAREA, 0, this.TEXTAREA.value.length);
|
45
44
|
this.refreshDimensions();
|
46
|
-
if (this.hot.getSettings().ariaTags) {
|
47
|
-
(0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('true')]);
|
48
|
-
}
|
49
45
|
}
|
50
46
|
|
51
47
|
/**
|
@@ -57,9 +53,6 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
57
53
|
}
|
58
54
|
this.removeHooksByKey('beforeKeyDown');
|
59
55
|
super.close();
|
60
|
-
if (this.hot.getSettings().ariaTags) {
|
61
|
-
(0, _element.setAttribute)(this.TD, [(0, _a11y.A11Y_EXPANDED)('false')]);
|
62
|
-
}
|
63
56
|
}
|
64
57
|
|
65
58
|
/**
|
@@ -88,7 +81,6 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
88
81
|
fillHandle: false,
|
89
82
|
autoWrapCol: false,
|
90
83
|
autoWrapRow: false,
|
91
|
-
ariaTags: false,
|
92
84
|
afterOnCellMouseDown(_, coords) {
|
93
85
|
const sourceValue = this.getSourceData(coords.row, coords.col);
|
94
86
|
|
@@ -157,7 +149,7 @@ class HandsontableEditor extends _textEditor.TextEditor {
|
|
157
149
|
}
|
158
150
|
|
159
151
|
/**
|
160
|
-
*
|
152
|
+
* Assings afterDestroy callback to prevent memory leaks.
|
161
153
|
*
|
162
154
|
* @private
|
163
155
|
*/
|
@@ -1,9 +1,8 @@
|
|
1
1
|
import { TextEditor } from "../textEditor/index.mjs";
|
2
|
-
import {
|
2
|
+
import { setCaretPosition } from "../../helpers/dom/element.mjs";
|
3
3
|
import { stopImmediatePropagation } from "../../helpers/dom/event.mjs";
|
4
4
|
import { extend } from "../../helpers/object.mjs";
|
5
5
|
import { SHORTCUTS_GROUP_NAVIGATION } from "../../editorManager.mjs";
|
6
|
-
import { A11Y_EXPANDED } from "../../helpers/a11y.mjs";
|
7
6
|
const SHORTCUTS_GROUP = 'handsontableEditor';
|
8
7
|
export const EDITOR_TYPE = 'handsontable';
|
9
8
|
|
@@ -39,9 +38,6 @@ export class HandsontableEditor extends TextEditor {
|
|
39
38
|
}
|
40
39
|
setCaretPosition(this.TEXTAREA, 0, this.TEXTAREA.value.length);
|
41
40
|
this.refreshDimensions();
|
42
|
-
if (this.hot.getSettings().ariaTags) {
|
43
|
-
setAttribute(this.TD, [A11Y_EXPANDED('true')]);
|
44
|
-
}
|
45
41
|
}
|
46
42
|
|
47
43
|
/**
|
@@ -53,9 +49,6 @@ export class HandsontableEditor extends TextEditor {
|
|
53
49
|
}
|
54
50
|
this.removeHooksByKey('beforeKeyDown');
|
55
51
|
super.close();
|
56
|
-
if (this.hot.getSettings().ariaTags) {
|
57
|
-
setAttribute(this.TD, [A11Y_EXPANDED('false')]);
|
58
|
-
}
|
59
52
|
}
|
60
53
|
|
61
54
|
/**
|
@@ -84,7 +77,6 @@ export class HandsontableEditor extends TextEditor {
|
|
84
77
|
fillHandle: false,
|
85
78
|
autoWrapCol: false,
|
86
79
|
autoWrapRow: false,
|
87
|
-
ariaTags: false,
|
88
80
|
afterOnCellMouseDown(_, coords) {
|
89
81
|
const sourceValue = this.getSourceData(coords.row, coords.col);
|
90
82
|
|
@@ -153,7 +145,7 @@ export class HandsontableEditor extends TextEditor {
|
|
153
145
|
}
|
154
146
|
|
155
147
|
/**
|
156
|
-
*
|
148
|
+
* Assings afterDestroy callback to prevent memory leaks.
|
157
149
|
*
|
158
150
|
* @private
|
159
151
|
*/
|
@@ -12,7 +12,6 @@ var _mixed = require("../../helpers/mixed");
|
|
12
12
|
var _editorManager = require("../../editorManager");
|
13
13
|
var _baseEditor2 = require("../baseEditor/baseEditor");
|
14
14
|
var _caretPositioner = require("./caretPositioner");
|
15
|
-
var _a11y = require("../../helpers/a11y");
|
16
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
17
16
|
const EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';
|
18
17
|
const EDITOR_HIDDEN_CLASS_NAME = 'ht_editor_hidden';
|
@@ -123,7 +122,7 @@ class TextEditor extends _baseEditor.BaseEditor {
|
|
123
122
|
*/
|
124
123
|
close() {
|
125
124
|
this.autoResize.unObserve();
|
126
|
-
if (
|
125
|
+
if (this.hot.rootDocument.activeElement === this.TEXTAREA) {
|
127
126
|
this.hot.listen(); // don't refocus the table if user focused some cell outside of HT on purpose
|
128
127
|
}
|
129
128
|
|
@@ -148,7 +147,8 @@ class TextEditor extends _baseEditor.BaseEditor {
|
|
148
147
|
if (!cellProperties.readOnly) {
|
149
148
|
this.refreshDimensions(true);
|
150
149
|
const {
|
151
|
-
allowInvalid
|
150
|
+
allowInvalid,
|
151
|
+
fragmentSelection
|
152
152
|
} = cellProperties;
|
153
153
|
if (allowInvalid) {
|
154
154
|
// Remove an empty space from textarea (added by copyPaste plugin to make copy/paste
|
@@ -158,6 +158,13 @@ class TextEditor extends _baseEditor.BaseEditor {
|
|
158
158
|
if (previousState !== _baseEditor.EDITOR_STATE.FINISHED) {
|
159
159
|
this.hideEditableElement();
|
160
160
|
}
|
161
|
+
|
162
|
+
// @TODO: The fragmentSelection functionality is conflicted with IME. For this feature
|
163
|
+
// refocus has to be disabled (to make IME working).
|
164
|
+
const restoreFocus = !fragmentSelection;
|
165
|
+
if (restoreFocus && !(0, _browser.isMobileBrowser)()) {
|
166
|
+
this.focus();
|
167
|
+
}
|
161
168
|
}
|
162
169
|
}
|
163
170
|
|
@@ -194,13 +201,8 @@ class TextEditor extends _baseEditor.BaseEditor {
|
|
194
201
|
rootDocument
|
195
202
|
} = this.hot;
|
196
203
|
this.TEXTAREA = rootDocument.createElement('TEXTAREA');
|
197
|
-
|
198
|
-
|
199
|
-
// component's element.
|
200
|
-
(0, _element.setAttribute)(this.TEXTAREA, [['data-hot-input', ''], (0, _a11y.A11Y_TABINDEX)(-1)]);
|
201
|
-
if (this.hot.getSettings().ariaTags) {
|
202
|
-
(0, _element.setAttribute)(this.TEXTAREA, [(0, _a11y.A11Y_HIDDEN)()]);
|
203
|
-
}
|
204
|
+
this.TEXTAREA.setAttribute('data-hot-input', ''); // Makes the element recognizable by Hot as its own component's element.
|
205
|
+
this.TEXTAREA.tabIndex = -1;
|
204
206
|
(0, _element.addClass)(this.TEXTAREA, 'handsontableInput');
|
205
207
|
this.textareaStyle = this.TEXTAREA.style;
|
206
208
|
this.textareaStyle.width = 0;
|
@@ -338,6 +340,8 @@ class TextEditor extends _baseEditor.BaseEditor {
|
|
338
340
|
* @private
|
339
341
|
*/
|
340
342
|
bindEvents() {
|
343
|
+
this.eventManager.addEventListener(this.TEXTAREA, 'cut', event => event.stopPropagation());
|
344
|
+
this.eventManager.addEventListener(this.TEXTAREA, 'paste', event => event.stopPropagation());
|
341
345
|
if ((0, _browser.isIOS)()) {
|
342
346
|
// on iOS after click "Done" the edit isn't hidden by default, so we need to handle it manually.
|
343
347
|
this.eventManager.addEventListener(this.TEXTAREA, 'focusout', () => this.finishEditing(false));
|
@@ -346,15 +350,11 @@ class TextEditor extends _baseEditor.BaseEditor {
|
|
346
350
|
this.addHook('afterScrollVertically', () => this.refreshDimensions());
|
347
351
|
this.addHook('afterColumnResize', () => {
|
348
352
|
this.refreshDimensions();
|
349
|
-
|
350
|
-
this.focus();
|
351
|
-
}
|
353
|
+
this.focus();
|
352
354
|
});
|
353
355
|
this.addHook('afterRowResize', () => {
|
354
356
|
this.refreshDimensions();
|
355
|
-
|
356
|
-
this.focus();
|
357
|
-
}
|
357
|
+
this.focus();
|
358
358
|
});
|
359
359
|
}
|
360
360
|
|
@@ -416,7 +416,9 @@ class TextEditor extends _baseEditor.BaseEditor {
|
|
416
416
|
runOnlyIf: event => !this.hot.selection.isMultiple() &&
|
417
417
|
// We trigger a data population for multiple selection.
|
418
418
|
// catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
|
419
|
-
!event.altKey
|
419
|
+
!event.altKey,
|
420
|
+
relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
|
421
|
+
position: 'before'
|
420
422
|
}, {
|
421
423
|
keys: [['Meta', 'Enter']],
|
422
424
|
callback: () => {
|
@@ -424,13 +426,19 @@ class TextEditor extends _baseEditor.BaseEditor {
|
|
424
426
|
return false; // Will block closing editor.
|
425
427
|
},
|
426
428
|
|
427
|
-
runOnlyIf: () => !this.hot.selection.isMultiple()
|
429
|
+
runOnlyIf: () => !this.hot.selection.isMultiple(),
|
430
|
+
// We trigger a data population for multiple selection.
|
431
|
+
relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
|
432
|
+
position: 'before'
|
428
433
|
}, {
|
429
434
|
keys: [['Alt', 'Enter']],
|
430
435
|
callback: () => {
|
431
436
|
insertNewLine();
|
432
437
|
return false; // Will block closing editor.
|
433
|
-
}
|
438
|
+
},
|
439
|
+
|
440
|
+
relativeToGroup: _editorManager.SHORTCUTS_GROUP_EDITOR,
|
441
|
+
position: 'before'
|
434
442
|
}, {
|
435
443
|
// TODO: Duplicated part of code (callback to shortcut)
|
436
444
|
keys: [['PageUp']],
|
@@ -1,15 +1,14 @@
|
|
1
1
|
import { BaseEditor, EDITOR_STATE } from "../baseEditor/index.mjs";
|
2
2
|
import EventManager from "../../eventManager.mjs";
|
3
|
-
import { isEdge, isIOS } from "../../helpers/browser.mjs";
|
4
|
-
import { addClass, getComputedStyle,
|
3
|
+
import { isMobileBrowser, isEdge, isIOS } from "../../helpers/browser.mjs";
|
4
|
+
import { addClass, getComputedStyle, setCaretPosition, hasClass, removeClass } from "../../helpers/dom/element.mjs";
|
5
5
|
import { rangeEach } from "../../helpers/number.mjs";
|
6
6
|
import { KEY_CODES } from "../../helpers/unicode.mjs";
|
7
7
|
import { autoResize } from "../../3rdparty/autoResize/index.mjs";
|
8
8
|
import { isDefined } from "../../helpers/mixed.mjs";
|
9
|
-
import { SHORTCUTS_GROUP_NAVIGATION } from "../../editorManager.mjs";
|
9
|
+
import { SHORTCUTS_GROUP_NAVIGATION, SHORTCUTS_GROUP_EDITOR as EDITOR_MANAGER_GROUP } from "../../editorManager.mjs";
|
10
10
|
import { SHORTCUTS_GROUP_EDITOR } from "../baseEditor/baseEditor.mjs";
|
11
11
|
import { updateCaretPosition } from "./caretPositioner.mjs";
|
12
|
-
import { A11Y_HIDDEN, A11Y_TABINDEX } from "../../helpers/a11y.mjs";
|
13
12
|
const EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';
|
14
13
|
const EDITOR_HIDDEN_CLASS_NAME = 'ht_editor_hidden';
|
15
14
|
const SHORTCUTS_GROUP = 'textEditor';
|
@@ -118,7 +117,7 @@ export class TextEditor extends BaseEditor {
|
|
118
117
|
*/
|
119
118
|
close() {
|
120
119
|
this.autoResize.unObserve();
|
121
|
-
if (
|
120
|
+
if (this.hot.rootDocument.activeElement === this.TEXTAREA) {
|
122
121
|
this.hot.listen(); // don't refocus the table if user focused some cell outside of HT on purpose
|
123
122
|
}
|
124
123
|
|
@@ -143,7 +142,8 @@ export class TextEditor extends BaseEditor {
|
|
143
142
|
if (!cellProperties.readOnly) {
|
144
143
|
this.refreshDimensions(true);
|
145
144
|
const {
|
146
|
-
allowInvalid
|
145
|
+
allowInvalid,
|
146
|
+
fragmentSelection
|
147
147
|
} = cellProperties;
|
148
148
|
if (allowInvalid) {
|
149
149
|
// Remove an empty space from textarea (added by copyPaste plugin to make copy/paste
|
@@ -153,6 +153,13 @@ export class TextEditor extends BaseEditor {
|
|
153
153
|
if (previousState !== EDITOR_STATE.FINISHED) {
|
154
154
|
this.hideEditableElement();
|
155
155
|
}
|
156
|
+
|
157
|
+
// @TODO: The fragmentSelection functionality is conflicted with IME. For this feature
|
158
|
+
// refocus has to be disabled (to make IME working).
|
159
|
+
const restoreFocus = !fragmentSelection;
|
160
|
+
if (restoreFocus && !isMobileBrowser()) {
|
161
|
+
this.focus();
|
162
|
+
}
|
156
163
|
}
|
157
164
|
}
|
158
165
|
|
@@ -189,13 +196,8 @@ export class TextEditor extends BaseEditor {
|
|
189
196
|
rootDocument
|
190
197
|
} = this.hot;
|
191
198
|
this.TEXTAREA = rootDocument.createElement('TEXTAREA');
|
192
|
-
|
193
|
-
|
194
|
-
// component's element.
|
195
|
-
setAttribute(this.TEXTAREA, [['data-hot-input', ''], A11Y_TABINDEX(-1)]);
|
196
|
-
if (this.hot.getSettings().ariaTags) {
|
197
|
-
setAttribute(this.TEXTAREA, [A11Y_HIDDEN()]);
|
198
|
-
}
|
199
|
+
this.TEXTAREA.setAttribute('data-hot-input', ''); // Makes the element recognizable by Hot as its own component's element.
|
200
|
+
this.TEXTAREA.tabIndex = -1;
|
199
201
|
addClass(this.TEXTAREA, 'handsontableInput');
|
200
202
|
this.textareaStyle = this.TEXTAREA.style;
|
201
203
|
this.textareaStyle.width = 0;
|
@@ -333,6 +335,8 @@ export class TextEditor extends BaseEditor {
|
|
333
335
|
* @private
|
334
336
|
*/
|
335
337
|
bindEvents() {
|
338
|
+
this.eventManager.addEventListener(this.TEXTAREA, 'cut', event => event.stopPropagation());
|
339
|
+
this.eventManager.addEventListener(this.TEXTAREA, 'paste', event => event.stopPropagation());
|
336
340
|
if (isIOS()) {
|
337
341
|
// on iOS after click "Done" the edit isn't hidden by default, so we need to handle it manually.
|
338
342
|
this.eventManager.addEventListener(this.TEXTAREA, 'focusout', () => this.finishEditing(false));
|
@@ -341,15 +345,11 @@ export class TextEditor extends BaseEditor {
|
|
341
345
|
this.addHook('afterScrollVertically', () => this.refreshDimensions());
|
342
346
|
this.addHook('afterColumnResize', () => {
|
343
347
|
this.refreshDimensions();
|
344
|
-
|
345
|
-
this.focus();
|
346
|
-
}
|
348
|
+
this.focus();
|
347
349
|
});
|
348
350
|
this.addHook('afterRowResize', () => {
|
349
351
|
this.refreshDimensions();
|
350
|
-
|
351
|
-
this.focus();
|
352
|
-
}
|
352
|
+
this.focus();
|
353
353
|
});
|
354
354
|
}
|
355
355
|
|
@@ -411,7 +411,9 @@ export class TextEditor extends BaseEditor {
|
|
411
411
|
runOnlyIf: event => !this.hot.selection.isMultiple() &&
|
412
412
|
// We trigger a data population for multiple selection.
|
413
413
|
// catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
|
414
|
-
!event.altKey
|
414
|
+
!event.altKey,
|
415
|
+
relativeToGroup: EDITOR_MANAGER_GROUP,
|
416
|
+
position: 'before'
|
415
417
|
}, {
|
416
418
|
keys: [['Meta', 'Enter']],
|
417
419
|
callback: () => {
|
@@ -419,13 +421,19 @@ export class TextEditor extends BaseEditor {
|
|
419
421
|
return false; // Will block closing editor.
|
420
422
|
},
|
421
423
|
|
422
|
-
runOnlyIf: () => !this.hot.selection.isMultiple()
|
424
|
+
runOnlyIf: () => !this.hot.selection.isMultiple(),
|
425
|
+
// We trigger a data population for multiple selection.
|
426
|
+
relativeToGroup: EDITOR_MANAGER_GROUP,
|
427
|
+
position: 'before'
|
423
428
|
}, {
|
424
429
|
keys: [['Alt', 'Enter']],
|
425
430
|
callback: () => {
|
426
431
|
insertNewLine();
|
427
432
|
return false; // Will block closing editor.
|
428
|
-
}
|
433
|
+
},
|
434
|
+
|
435
|
+
relativeToGroup: EDITOR_MANAGER_GROUP,
|
436
|
+
position: 'before'
|
429
437
|
}, {
|
430
438
|
// TODO: Duplicated part of code (callback to shortcut)
|
431
439
|
keys: [['PageUp']],
|