handsontable 0.0.0-next-9059914-20231025 → 0.0.0-next-21d91d0-20231025
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.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
@@ -0,0 +1,123 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.createMenuFocusController = createMenuFocusController;
|
5
|
+
var _focusNavigator = require("./focusNavigator");
|
6
|
+
var _select = require("../ui/select");
|
7
|
+
var _base = require("../ui/_base");
|
8
|
+
var _link = require("../ui/link");
|
9
|
+
const SHORTCUTS_MENU_CONTEXT = 'filters';
|
10
|
+
|
11
|
+
/**
|
12
|
+
* @typedef MenuFocusNavigator
|
13
|
+
* @property {function(number): void} setCurrentPage Sets the current index of the selected focus.
|
14
|
+
* @property {function(): number} getCurrentPage Gets the index of currently focus element.
|
15
|
+
* @property {function(): void} toFirstItem Move the focus index to the first element in the list.
|
16
|
+
* @property {function(): void} toLastItem Move the focus index to the last element in the list.
|
17
|
+
* @property {function(): void} toNextItem Move the focus index to the next element in the list.
|
18
|
+
* @property {function(): void} toPreviousItem Move the focus index to the previous element in the list.
|
19
|
+
* @property {function(): void} clear Clear the internal state of the navigator.
|
20
|
+
* @property {function(): void} listen Activate the navigator by listening the keyboard shortcuts.
|
21
|
+
*/
|
22
|
+
/**
|
23
|
+
* Creates navigator controller for filter subcomponents in the menu.
|
24
|
+
*
|
25
|
+
* @param {Menu} mainMenu The main Menu instance.
|
26
|
+
* @param {BaseUI[]} menuItems The list of the component's elements to paginate to.
|
27
|
+
* @returns {Paginator}
|
28
|
+
*/
|
29
|
+
function createMenuFocusController(mainMenu, menuItems) {
|
30
|
+
const navigator = (0, _focusNavigator.createFocusNavigator)(menuItems);
|
31
|
+
const updateNavigatorPosition = element => () => {
|
32
|
+
if (mainMenu.isOpened()) {
|
33
|
+
mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
|
34
|
+
}
|
35
|
+
navigator.setCurrentPage(menuItems.indexOf(element));
|
36
|
+
};
|
37
|
+
|
38
|
+
// update navigator position (internal state) to element that was recently clicked or focused
|
39
|
+
menuItems.forEach(element => {
|
40
|
+
if (element instanceof _base.BaseUI) {
|
41
|
+
element.addLocalHook('click', updateNavigatorPosition(element));
|
42
|
+
element.addLocalHook('focus', updateNavigatorPosition(element));
|
43
|
+
element.addLocalHook('afterClose', updateNavigatorPosition(element));
|
44
|
+
}
|
45
|
+
});
|
46
|
+
mainMenu.addLocalHook('afterSelectionChange', selectedItem => {
|
47
|
+
if (!selectedItem.key.startsWith('filter_')) {
|
48
|
+
navigator.clear();
|
49
|
+
}
|
50
|
+
});
|
51
|
+
|
52
|
+
/**
|
53
|
+
* Extends the menu and submenus with new keyboard shortcuts.
|
54
|
+
*
|
55
|
+
* @param {*} menu The menu (as main menu or submenu) instance.
|
56
|
+
*/
|
57
|
+
function addKeyboardShortcuts(menu) {
|
58
|
+
const mainMenuShortcutsCtrl = mainMenu.getKeyboardShortcutsCtrl();
|
59
|
+
const currentMenuShortcutsCtrl = menu.getKeyboardShortcutsCtrl();
|
60
|
+
navigator.clear();
|
61
|
+
currentMenuShortcutsCtrl.addCustomShortcuts([{
|
62
|
+
keys: [['Tab'], ['Shift', 'Tab']],
|
63
|
+
forwardToContext: mainMenuShortcutsCtrl.getContext(SHORTCUTS_MENU_CONTEXT),
|
64
|
+
callback: () => {
|
65
|
+
if (menu.isSubMenu()) {
|
66
|
+
menu.close();
|
67
|
+
}
|
68
|
+
mainMenuShortcutsCtrl.listen(SHORTCUTS_MENU_CONTEXT);
|
69
|
+
}
|
70
|
+
}]);
|
71
|
+
if (menu.isSubMenu()) {
|
72
|
+
return;
|
73
|
+
}
|
74
|
+
mainMenuShortcutsCtrl.addCustomShortcuts([{
|
75
|
+
keys: [['Tab'], ['Shift', 'Tab']],
|
76
|
+
callback: event => {
|
77
|
+
mainMenu.getNavigator().clear();
|
78
|
+
if (event.shiftKey) {
|
79
|
+
navigator.toPreviousItem();
|
80
|
+
} else {
|
81
|
+
navigator.toNextItem();
|
82
|
+
}
|
83
|
+
}
|
84
|
+
}, {
|
85
|
+
keys: [['Escape']],
|
86
|
+
callback: () => {
|
87
|
+
mainMenu.close();
|
88
|
+
}
|
89
|
+
}, {
|
90
|
+
keys: [['Enter'], ['Space']],
|
91
|
+
preventDefault: false,
|
92
|
+
callback: event => {
|
93
|
+
const element = menuItems[navigator.getCurrentPage()];
|
94
|
+
if (element instanceof _select.SelectUI) {
|
95
|
+
element.openOptions();
|
96
|
+
event.preventDefault();
|
97
|
+
}
|
98
|
+
if (element instanceof _link.LinkUI) {
|
99
|
+
element.activate();
|
100
|
+
event.preventDefault();
|
101
|
+
}
|
102
|
+
if (!(element instanceof _base.BaseUI)) {
|
103
|
+
event.preventDefault();
|
104
|
+
}
|
105
|
+
}
|
106
|
+
}], SHORTCUTS_MENU_CONTEXT);
|
107
|
+
}
|
108
|
+
mainMenu.addLocalHook('afterSubmenuOpen', addKeyboardShortcuts);
|
109
|
+
mainMenu.addLocalHook('afterOpen', addKeyboardShortcuts);
|
110
|
+
|
111
|
+
/**
|
112
|
+
* Focuses the menu and switches its shortcut context to that one which controls
|
113
|
+
* the focus navigation.
|
114
|
+
*/
|
115
|
+
function listen() {
|
116
|
+
mainMenu.focus();
|
117
|
+
mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
|
118
|
+
}
|
119
|
+
return {
|
120
|
+
...navigator,
|
121
|
+
listen
|
122
|
+
};
|
123
|
+
}
|
@@ -0,0 +1,119 @@
|
|
1
|
+
import { createFocusNavigator } from "./focusNavigator.mjs";
|
2
|
+
import { SelectUI } from "../ui/select.mjs";
|
3
|
+
import { BaseUI } from "../ui/_base.mjs";
|
4
|
+
import { LinkUI } from "../ui/link.mjs";
|
5
|
+
const SHORTCUTS_MENU_CONTEXT = 'filters';
|
6
|
+
|
7
|
+
/**
|
8
|
+
* @typedef MenuFocusNavigator
|
9
|
+
* @property {function(number): void} setCurrentPage Sets the current index of the selected focus.
|
10
|
+
* @property {function(): number} getCurrentPage Gets the index of currently focus element.
|
11
|
+
* @property {function(): void} toFirstItem Move the focus index to the first element in the list.
|
12
|
+
* @property {function(): void} toLastItem Move the focus index to the last element in the list.
|
13
|
+
* @property {function(): void} toNextItem Move the focus index to the next element in the list.
|
14
|
+
* @property {function(): void} toPreviousItem Move the focus index to the previous element in the list.
|
15
|
+
* @property {function(): void} clear Clear the internal state of the navigator.
|
16
|
+
* @property {function(): void} listen Activate the navigator by listening the keyboard shortcuts.
|
17
|
+
*/
|
18
|
+
/**
|
19
|
+
* Creates navigator controller for filter subcomponents in the menu.
|
20
|
+
*
|
21
|
+
* @param {Menu} mainMenu The main Menu instance.
|
22
|
+
* @param {BaseUI[]} menuItems The list of the component's elements to paginate to.
|
23
|
+
* @returns {Paginator}
|
24
|
+
*/
|
25
|
+
export function createMenuFocusController(mainMenu, menuItems) {
|
26
|
+
const navigator = createFocusNavigator(menuItems);
|
27
|
+
const updateNavigatorPosition = element => () => {
|
28
|
+
if (mainMenu.isOpened()) {
|
29
|
+
mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
|
30
|
+
}
|
31
|
+
navigator.setCurrentPage(menuItems.indexOf(element));
|
32
|
+
};
|
33
|
+
|
34
|
+
// update navigator position (internal state) to element that was recently clicked or focused
|
35
|
+
menuItems.forEach(element => {
|
36
|
+
if (element instanceof BaseUI) {
|
37
|
+
element.addLocalHook('click', updateNavigatorPosition(element));
|
38
|
+
element.addLocalHook('focus', updateNavigatorPosition(element));
|
39
|
+
element.addLocalHook('afterClose', updateNavigatorPosition(element));
|
40
|
+
}
|
41
|
+
});
|
42
|
+
mainMenu.addLocalHook('afterSelectionChange', selectedItem => {
|
43
|
+
if (!selectedItem.key.startsWith('filter_')) {
|
44
|
+
navigator.clear();
|
45
|
+
}
|
46
|
+
});
|
47
|
+
|
48
|
+
/**
|
49
|
+
* Extends the menu and submenus with new keyboard shortcuts.
|
50
|
+
*
|
51
|
+
* @param {*} menu The menu (as main menu or submenu) instance.
|
52
|
+
*/
|
53
|
+
function addKeyboardShortcuts(menu) {
|
54
|
+
const mainMenuShortcutsCtrl = mainMenu.getKeyboardShortcutsCtrl();
|
55
|
+
const currentMenuShortcutsCtrl = menu.getKeyboardShortcutsCtrl();
|
56
|
+
navigator.clear();
|
57
|
+
currentMenuShortcutsCtrl.addCustomShortcuts([{
|
58
|
+
keys: [['Tab'], ['Shift', 'Tab']],
|
59
|
+
forwardToContext: mainMenuShortcutsCtrl.getContext(SHORTCUTS_MENU_CONTEXT),
|
60
|
+
callback: () => {
|
61
|
+
if (menu.isSubMenu()) {
|
62
|
+
menu.close();
|
63
|
+
}
|
64
|
+
mainMenuShortcutsCtrl.listen(SHORTCUTS_MENU_CONTEXT);
|
65
|
+
}
|
66
|
+
}]);
|
67
|
+
if (menu.isSubMenu()) {
|
68
|
+
return;
|
69
|
+
}
|
70
|
+
mainMenuShortcutsCtrl.addCustomShortcuts([{
|
71
|
+
keys: [['Tab'], ['Shift', 'Tab']],
|
72
|
+
callback: event => {
|
73
|
+
mainMenu.getNavigator().clear();
|
74
|
+
if (event.shiftKey) {
|
75
|
+
navigator.toPreviousItem();
|
76
|
+
} else {
|
77
|
+
navigator.toNextItem();
|
78
|
+
}
|
79
|
+
}
|
80
|
+
}, {
|
81
|
+
keys: [['Escape']],
|
82
|
+
callback: () => {
|
83
|
+
mainMenu.close();
|
84
|
+
}
|
85
|
+
}, {
|
86
|
+
keys: [['Enter'], ['Space']],
|
87
|
+
preventDefault: false,
|
88
|
+
callback: event => {
|
89
|
+
const element = menuItems[navigator.getCurrentPage()];
|
90
|
+
if (element instanceof SelectUI) {
|
91
|
+
element.openOptions();
|
92
|
+
event.preventDefault();
|
93
|
+
}
|
94
|
+
if (element instanceof LinkUI) {
|
95
|
+
element.activate();
|
96
|
+
event.preventDefault();
|
97
|
+
}
|
98
|
+
if (!(element instanceof BaseUI)) {
|
99
|
+
event.preventDefault();
|
100
|
+
}
|
101
|
+
}
|
102
|
+
}], SHORTCUTS_MENU_CONTEXT);
|
103
|
+
}
|
104
|
+
mainMenu.addLocalHook('afterSubmenuOpen', addKeyboardShortcuts);
|
105
|
+
mainMenu.addLocalHook('afterOpen', addKeyboardShortcuts);
|
106
|
+
|
107
|
+
/**
|
108
|
+
* Focuses the menu and switches its shortcut context to that one which controls
|
109
|
+
* the focus navigation.
|
110
|
+
*/
|
111
|
+
function listen() {
|
112
|
+
mainMenu.focus();
|
113
|
+
mainMenu.getKeyboardShortcutsCtrl().listen(SHORTCUTS_MENU_CONTEXT);
|
114
|
+
}
|
115
|
+
return {
|
116
|
+
...navigator,
|
117
|
+
listen
|
118
|
+
};
|
119
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.createFocusNavigator = createFocusNavigator;
|
5
|
+
var _paginator = require("../../../utils/paginator");
|
6
|
+
var _element = require("../../../helpers/dom/element");
|
7
|
+
var _multipleSelect = require("../ui/multipleSelect");
|
8
|
+
/**
|
9
|
+
* Creates navigator for switching the focus of the filter's elements.
|
10
|
+
*
|
11
|
+
* @param {BaseUI[]} elements The elements to paginate to.
|
12
|
+
* @returns {Paginator}
|
13
|
+
*/
|
14
|
+
function createFocusNavigator(elements) {
|
15
|
+
const navigator = (0, _paginator.createPaginator)({
|
16
|
+
initialPage: 0,
|
17
|
+
size: () => elements.length,
|
18
|
+
onItemSelect: (currentIndex, directItemChange) => {
|
19
|
+
const element = elements[currentIndex];
|
20
|
+
if (element instanceof _multipleSelect.MultipleSelectUI) {
|
21
|
+
return directItemChange;
|
22
|
+
}
|
23
|
+
if (element.element && !(0, _element.isVisible)(element.element)) {
|
24
|
+
return false;
|
25
|
+
}
|
26
|
+
element.focus();
|
27
|
+
}
|
28
|
+
});
|
29
|
+
return navigator;
|
30
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { createPaginator } from "../../../utils/paginator.mjs";
|
2
|
+
import { isVisible } from "../../../helpers/dom/element.mjs";
|
3
|
+
import { MultipleSelectUI } from "../ui/multipleSelect.mjs";
|
4
|
+
/**
|
5
|
+
* Creates navigator for switching the focus of the filter's elements.
|
6
|
+
*
|
7
|
+
* @param {BaseUI[]} elements The elements to paginate to.
|
8
|
+
* @returns {Paginator}
|
9
|
+
*/
|
10
|
+
export function createFocusNavigator(elements) {
|
11
|
+
const navigator = createPaginator({
|
12
|
+
initialPage: 0,
|
13
|
+
size: () => elements.length,
|
14
|
+
onItemSelect: (currentIndex, directItemChange) => {
|
15
|
+
const element = elements[currentIndex];
|
16
|
+
if (element instanceof MultipleSelectUI) {
|
17
|
+
return directItemChange;
|
18
|
+
}
|
19
|
+
if (element.element && !isVisible(element.element)) {
|
20
|
+
return false;
|
21
|
+
}
|
22
|
+
element.focus();
|
23
|
+
}
|
24
|
+
});
|
25
|
+
return navigator;
|
26
|
+
}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
+
require("core-js/modules/es.error.cause.js");
|
4
5
|
var _object = require("../../../helpers/object");
|
5
6
|
var _localHooks = _interopRequireDefault(require("../../../mixins/localHooks"));
|
6
7
|
var _eventManager = _interopRequireDefault(require("../../../eventManager"));
|
@@ -10,6 +11,9 @@ var C = _interopRequireWildcard(require("../../../i18n/constants"));
|
|
10
11
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
11
12
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
12
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
14
|
+
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; }
|
15
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
16
|
+
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); }
|
13
17
|
const STATE_BUILT = 'built';
|
14
18
|
const STATE_BUILDING = 'building';
|
15
19
|
const EVENTS_TO_REGISTER = ['click', 'input', 'keydown', 'keypress', 'keyup', 'focus', 'blur', 'change'];
|
@@ -27,38 +31,43 @@ class BaseUI {
|
|
27
31
|
wrapIt: true
|
28
32
|
});
|
29
33
|
}
|
34
|
+
|
35
|
+
/**
|
36
|
+
* Instance of Handsontable.
|
37
|
+
*
|
38
|
+
* @type {Core}
|
39
|
+
*/
|
40
|
+
|
30
41
|
constructor(hotInstance, options) {
|
31
|
-
|
32
|
-
* Instance of Handsontable.
|
33
|
-
*
|
34
|
-
* @type {Core}
|
35
|
-
*/
|
36
|
-
this.hot = hotInstance;
|
42
|
+
_defineProperty(this, "hot", void 0);
|
37
43
|
/**
|
38
44
|
* Instance of EventManager.
|
39
45
|
*
|
40
46
|
* @type {EventManager}
|
41
47
|
*/
|
42
|
-
this
|
48
|
+
_defineProperty(this, "eventManager", new _eventManager.default(this));
|
43
49
|
/**
|
44
50
|
* List of element options.
|
45
51
|
*
|
46
52
|
* @type {object}
|
47
53
|
*/
|
48
|
-
this
|
54
|
+
_defineProperty(this, "options", void 0);
|
49
55
|
/**
|
50
56
|
* Build root DOM element.
|
51
57
|
*
|
52
58
|
* @type {Element}
|
53
59
|
* @private
|
54
60
|
*/
|
55
|
-
|
61
|
+
_defineProperty(this, "_element", void 0);
|
56
62
|
/**
|
57
63
|
* Flag which determines build state of element.
|
58
64
|
*
|
59
65
|
* @type {string}
|
60
66
|
*/
|
61
|
-
this
|
67
|
+
_defineProperty(this, "buildState", void 0);
|
68
|
+
this.hot = hotInstance;
|
69
|
+
this.options = (0, _object.extend)(BaseUI.DEFAULTS, options);
|
70
|
+
this._element = this.hot.rootDocument.createElement(this.options.wrapIt ? 'div' : this.options.tagName);
|
62
71
|
}
|
63
72
|
|
64
73
|
/**
|
@@ -131,6 +140,16 @@ class BaseUI {
|
|
131
140
|
if (!this.buildState) {
|
132
141
|
this.buildState = STATE_BUILDING;
|
133
142
|
}
|
143
|
+
|
144
|
+
// prevents "hot.unlisten()" call when clicked
|
145
|
+
// (https://github.com/handsontable/handsontable/blob/master/handsontable/src/tableView.js#L317-L321)
|
146
|
+
this._element.setAttribute('data-hot-input', true);
|
147
|
+
if (this.options.tabIndex !== undefined) {
|
148
|
+
this._element.setAttribute('tabindex', this.options.tabIndex);
|
149
|
+
}
|
150
|
+
if (this.options.role !== undefined) {
|
151
|
+
this._element.setAttribute('role', this.options.role);
|
152
|
+
}
|
134
153
|
if (this.options.className) {
|
135
154
|
(0, _element.addClass)(this._element, this.options.className);
|
136
155
|
}
|
@@ -138,6 +157,10 @@ class BaseUI {
|
|
138
157
|
(0, _array.arrayEach)(this.options.children, element => this._element.appendChild(element.element));
|
139
158
|
} else if (this.options.wrapIt) {
|
140
159
|
const element = this.hot.rootDocument.createElement(this.options.tagName);
|
160
|
+
|
161
|
+
// prevents "hot.unlisten()" call when clicked
|
162
|
+
// (https://github.com/handsontable/handsontable/blob/master/handsontable/src/tableView.js#L317-L321)
|
163
|
+
element.setAttribute('data-hot-input', true);
|
141
164
|
(0, _object.objectEach)(this.options, (value, key) => {
|
142
165
|
if (element[key] !== void 0 && key !== 'className' && key !== 'tagName' && key !== 'children') {
|
143
166
|
element[key] = this.translateIfPossible(value);
|
@@ -191,6 +214,5 @@ class BaseUI {
|
|
191
214
|
this._element = null;
|
192
215
|
}
|
193
216
|
}
|
194
|
-
|
195
|
-
|
196
|
-
exports.default = _default;
|
217
|
+
exports.BaseUI = BaseUI;
|
218
|
+
(0, _object.mixin)(BaseUI, _localHooks.default);
|
@@ -1,3 +1,7 @@
|
|
1
|
+
import "core-js/modules/es.error.cause.js";
|
2
|
+
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; }
|
3
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
4
|
+
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); }
|
1
5
|
import { clone, extend, mixin, objectEach } from "../../../helpers/object.mjs";
|
2
6
|
import localHooks from "../../../mixins/localHooks.mjs";
|
3
7
|
import EventManager from "../../../eventManager.mjs";
|
@@ -11,7 +15,7 @@ const EVENTS_TO_REGISTER = ['click', 'input', 'keydown', 'keypress', 'keyup', 'f
|
|
11
15
|
/**
|
12
16
|
* @private
|
13
17
|
*/
|
14
|
-
class BaseUI {
|
18
|
+
export class BaseUI {
|
15
19
|
static get DEFAULTS() {
|
16
20
|
return clone({
|
17
21
|
className: '',
|
@@ -21,38 +25,43 @@ class BaseUI {
|
|
21
25
|
wrapIt: true
|
22
26
|
});
|
23
27
|
}
|
28
|
+
|
29
|
+
/**
|
30
|
+
* Instance of Handsontable.
|
31
|
+
*
|
32
|
+
* @type {Core}
|
33
|
+
*/
|
34
|
+
|
24
35
|
constructor(hotInstance, options) {
|
25
|
-
|
26
|
-
* Instance of Handsontable.
|
27
|
-
*
|
28
|
-
* @type {Core}
|
29
|
-
*/
|
30
|
-
this.hot = hotInstance;
|
36
|
+
_defineProperty(this, "hot", void 0);
|
31
37
|
/**
|
32
38
|
* Instance of EventManager.
|
33
39
|
*
|
34
40
|
* @type {EventManager}
|
35
41
|
*/
|
36
|
-
this
|
42
|
+
_defineProperty(this, "eventManager", new EventManager(this));
|
37
43
|
/**
|
38
44
|
* List of element options.
|
39
45
|
*
|
40
46
|
* @type {object}
|
41
47
|
*/
|
42
|
-
this
|
48
|
+
_defineProperty(this, "options", void 0);
|
43
49
|
/**
|
44
50
|
* Build root DOM element.
|
45
51
|
*
|
46
52
|
* @type {Element}
|
47
53
|
* @private
|
48
54
|
*/
|
49
|
-
|
55
|
+
_defineProperty(this, "_element", void 0);
|
50
56
|
/**
|
51
57
|
* Flag which determines build state of element.
|
52
58
|
*
|
53
59
|
* @type {string}
|
54
60
|
*/
|
55
|
-
this
|
61
|
+
_defineProperty(this, "buildState", void 0);
|
62
|
+
this.hot = hotInstance;
|
63
|
+
this.options = extend(BaseUI.DEFAULTS, options);
|
64
|
+
this._element = this.hot.rootDocument.createElement(this.options.wrapIt ? 'div' : this.options.tagName);
|
56
65
|
}
|
57
66
|
|
58
67
|
/**
|
@@ -125,6 +134,16 @@ class BaseUI {
|
|
125
134
|
if (!this.buildState) {
|
126
135
|
this.buildState = STATE_BUILDING;
|
127
136
|
}
|
137
|
+
|
138
|
+
// prevents "hot.unlisten()" call when clicked
|
139
|
+
// (https://github.com/handsontable/handsontable/blob/master/handsontable/src/tableView.js#L317-L321)
|
140
|
+
this._element.setAttribute('data-hot-input', true);
|
141
|
+
if (this.options.tabIndex !== undefined) {
|
142
|
+
this._element.setAttribute('tabindex', this.options.tabIndex);
|
143
|
+
}
|
144
|
+
if (this.options.role !== undefined) {
|
145
|
+
this._element.setAttribute('role', this.options.role);
|
146
|
+
}
|
128
147
|
if (this.options.className) {
|
129
148
|
addClass(this._element, this.options.className);
|
130
149
|
}
|
@@ -132,6 +151,10 @@ class BaseUI {
|
|
132
151
|
arrayEach(this.options.children, element => this._element.appendChild(element.element));
|
133
152
|
} else if (this.options.wrapIt) {
|
134
153
|
const element = this.hot.rootDocument.createElement(this.options.tagName);
|
154
|
+
|
155
|
+
// prevents "hot.unlisten()" call when clicked
|
156
|
+
// (https://github.com/handsontable/handsontable/blob/master/handsontable/src/tableView.js#L317-L321)
|
157
|
+
element.setAttribute('data-hot-input', true);
|
135
158
|
objectEach(this.options, (value, key) => {
|
136
159
|
if (element[key] !== void 0 && key !== 'className' && key !== 'tagName' && key !== 'children') {
|
137
160
|
element[key] = this.translateIfPossible(value);
|
@@ -185,5 +208,4 @@ class BaseUI {
|
|
185
208
|
this._element = null;
|
186
209
|
}
|
187
210
|
}
|
188
|
-
mixin(BaseUI, localHooks);
|
189
|
-
export default BaseUI;
|
211
|
+
mixin(BaseUI, localHooks);
|
@@ -1,27 +1,53 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
+
require("core-js/modules/es.error.cause.js");
|
4
5
|
var _element = require("../../../helpers/dom/element");
|
5
6
|
var _object = require("../../../helpers/object");
|
6
|
-
var _base =
|
7
|
-
function
|
8
|
-
|
9
|
-
|
7
|
+
var _base = require("./_base");
|
8
|
+
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
9
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
10
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
11
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
12
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
13
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
14
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
15
|
+
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; } }
|
16
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
10
17
|
/**
|
11
18
|
* @private
|
12
19
|
* @class InputUI
|
13
20
|
*/
|
14
|
-
|
21
|
+
var _input = /*#__PURE__*/new WeakMap();
|
22
|
+
var _onKeyup = /*#__PURE__*/new WeakSet();
|
23
|
+
class InputUI extends _base.BaseUI {
|
15
24
|
static get DEFAULTS() {
|
16
25
|
return (0, _object.clone)({
|
17
26
|
placeholder: '',
|
18
27
|
type: 'text',
|
19
|
-
tagName: 'input'
|
28
|
+
tagName: 'input',
|
29
|
+
tabIndex: -1
|
20
30
|
});
|
21
31
|
}
|
32
|
+
|
33
|
+
/**
|
34
|
+
* The reference to the input element.
|
35
|
+
*
|
36
|
+
* @type {HTMLInputElement}
|
37
|
+
*/
|
38
|
+
|
22
39
|
constructor(hotInstance, options) {
|
23
40
|
super(hotInstance, (0, _object.extend)(InputUI.DEFAULTS, options));
|
24
|
-
|
41
|
+
/**
|
42
|
+
* OnKeyup listener.
|
43
|
+
*
|
44
|
+
* @param {Event} event The mouse event object.
|
45
|
+
*/
|
46
|
+
_classPrivateMethodInitSpec(this, _onKeyup);
|
47
|
+
_classPrivateFieldInitSpec(this, _input, {
|
48
|
+
writable: true,
|
49
|
+
value: void 0
|
50
|
+
});
|
25
51
|
this.registerHooks();
|
26
52
|
}
|
27
53
|
|
@@ -29,8 +55,7 @@ class InputUI extends _base.default {
|
|
29
55
|
* Register all necessary hooks.
|
30
56
|
*/
|
31
57
|
registerHooks() {
|
32
|
-
this.addLocalHook('
|
33
|
-
this.addLocalHook('keyup', event => this.onKeyup(event));
|
58
|
+
this.addLocalHook('keyup', event => _classPrivateMethodGet(this, _onKeyup, _onKeyup2).call(this, event));
|
34
59
|
}
|
35
60
|
|
36
61
|
/**
|
@@ -38,9 +63,8 @@ class InputUI extends _base.default {
|
|
38
63
|
*/
|
39
64
|
build() {
|
40
65
|
super.build();
|
41
|
-
const priv = privatePool.get(this);
|
42
66
|
const icon = this.hot.rootDocument.createElement('div');
|
43
|
-
|
67
|
+
_classPrivateFieldSet(this, _input, this._element.firstChild);
|
44
68
|
(0, _element.addClass)(this._element, 'htUIInput');
|
45
69
|
(0, _element.addClass)(icon, 'htUIInputIcon');
|
46
70
|
this._element.appendChild(icon);
|
@@ -54,10 +78,9 @@ class InputUI extends _base.default {
|
|
54
78
|
if (!this.isBuilt()) {
|
55
79
|
return;
|
56
80
|
}
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
input.value = this.translateIfPossible(this.options.value);
|
81
|
+
_classPrivateFieldGet(this, _input).type = this.options.type;
|
82
|
+
_classPrivateFieldGet(this, _input).placeholder = this.translateIfPossible(this.options.placeholder);
|
83
|
+
_classPrivateFieldGet(this, _input).value = this.translateIfPossible(this.options.value);
|
61
84
|
}
|
62
85
|
|
63
86
|
/**
|
@@ -65,23 +88,11 @@ class InputUI extends _base.default {
|
|
65
88
|
*/
|
66
89
|
focus() {
|
67
90
|
if (this.isBuilt()) {
|
68
|
-
|
91
|
+
_classPrivateFieldGet(this, _input).focus();
|
69
92
|
}
|
70
93
|
}
|
71
|
-
|
72
|
-
/**
|
73
|
-
* OnClick listener.
|
74
|
-
*/
|
75
|
-
onClick() {}
|
76
|
-
|
77
|
-
/**
|
78
|
-
* OnKeyup listener.
|
79
|
-
*
|
80
|
-
* @param {Event} event The mouse event object.
|
81
|
-
*/
|
82
|
-
onKeyup(event) {
|
83
|
-
this.options.value = event.target.value;
|
84
|
-
}
|
85
94
|
}
|
86
|
-
|
87
|
-
|
95
|
+
exports.InputUI = InputUI;
|
96
|
+
function _onKeyup2(event) {
|
97
|
+
this.options.value = event.target.value;
|
98
|
+
}
|