handsontable 0.0.0-next-b0a4ea2-20231024 → 0.0.0-next-9059914-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/{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
@@ -1,163 +0,0 @@
|
|
1
|
-
import "core-js/modules/es.array.push.js";
|
2
|
-
import { arrayEach, arrayMap } from "../../../helpers/array.mjs";
|
3
|
-
import { hasOwnProperty } from "../../../helpers/object.mjs";
|
4
|
-
import { hasClass } from "../../../helpers/dom/element.mjs";
|
5
|
-
import { SEPARATOR } from "./../predefinedItems/index.mjs";
|
6
|
-
/**
|
7
|
-
* @param {CellRange[]} selRanges An array of the cell ranges.
|
8
|
-
* @returns {object[]}
|
9
|
-
*/
|
10
|
-
export function normalizeSelection(selRanges) {
|
11
|
-
return arrayMap(selRanges, range => ({
|
12
|
-
start: range.getTopStartCorner(),
|
13
|
-
end: range.getBottomEndCorner()
|
14
|
-
}));
|
15
|
-
}
|
16
|
-
|
17
|
-
/**
|
18
|
-
* Check if the provided element is a submenu opener.
|
19
|
-
*
|
20
|
-
* @param {object} itemToTest Item element.
|
21
|
-
* @returns {boolean}
|
22
|
-
*/
|
23
|
-
export function isItemSubMenu(itemToTest) {
|
24
|
-
return hasOwnProperty(itemToTest, 'submenu');
|
25
|
-
}
|
26
|
-
|
27
|
-
/**
|
28
|
-
* Check if the provided element is a menu separator.
|
29
|
-
*
|
30
|
-
* @param {object} itemToTest Item element.
|
31
|
-
* @returns {boolean}
|
32
|
-
*/
|
33
|
-
export function isItemSeparator(itemToTest) {
|
34
|
-
return new RegExp(SEPARATOR, 'i').test(itemToTest.name);
|
35
|
-
}
|
36
|
-
|
37
|
-
/**
|
38
|
-
* Check if the provided element presents the disabled menu item.
|
39
|
-
*
|
40
|
-
* @param {object} itemToTest Item element.
|
41
|
-
* @param {object} hot The context for the item function.
|
42
|
-
* @returns {boolean}
|
43
|
-
*/
|
44
|
-
export function isItemDisabled(itemToTest, hot) {
|
45
|
-
return itemToTest.disabled === true || typeof itemToTest.disabled === 'function' && itemToTest.disabled.call(hot) === true;
|
46
|
-
}
|
47
|
-
|
48
|
-
/**
|
49
|
-
* Check if the provided element presents the disabled selection menu item.
|
50
|
-
*
|
51
|
-
* @param {object} itemToTest Item element.
|
52
|
-
* @returns {boolean}
|
53
|
-
*/
|
54
|
-
export function isItemSelectionDisabled(itemToTest) {
|
55
|
-
return hasOwnProperty(itemToTest, 'disableSelection');
|
56
|
-
}
|
57
|
-
|
58
|
-
/**
|
59
|
-
* @param {HTMLElement} cell The HTML cell element to check.
|
60
|
-
* @returns {boolean}
|
61
|
-
*/
|
62
|
-
export function isSeparator(cell) {
|
63
|
-
return hasClass(cell, 'htSeparator');
|
64
|
-
}
|
65
|
-
|
66
|
-
/**
|
67
|
-
* @param {HTMLElement} cell The HTML cell element to check.
|
68
|
-
* @returns {boolean}
|
69
|
-
*/
|
70
|
-
export function hasSubMenu(cell) {
|
71
|
-
return hasClass(cell, 'htSubmenu');
|
72
|
-
}
|
73
|
-
|
74
|
-
/**
|
75
|
-
* @param {HTMLElement} cell The HTML cell element to check.
|
76
|
-
* @returns {boolean}
|
77
|
-
*/
|
78
|
-
export function isDisabled(cell) {
|
79
|
-
return hasClass(cell, 'htDisabled');
|
80
|
-
}
|
81
|
-
|
82
|
-
/**
|
83
|
-
* @param {HTMLElement} cell The HTML cell element to check.
|
84
|
-
* @returns {boolean}
|
85
|
-
*/
|
86
|
-
export function isSelectionDisabled(cell) {
|
87
|
-
return hasClass(cell, 'htSelectionDisabled');
|
88
|
-
}
|
89
|
-
|
90
|
-
/**
|
91
|
-
* @param {object} item The object which describes the context menu item properties.
|
92
|
-
* @param {Core} instance The Handsontable instance.
|
93
|
-
* @returns {boolean}
|
94
|
-
*/
|
95
|
-
export function isItemHidden(item, instance) {
|
96
|
-
return !item.hidden || !(typeof item.hidden === 'function' && item.hidden.call(instance));
|
97
|
-
}
|
98
|
-
|
99
|
-
/**
|
100
|
-
* @param {object[]} items The context menu items collection.
|
101
|
-
* @param {string} separator The string which identifies the context menu separator item.
|
102
|
-
* @returns {object[]}
|
103
|
-
*/
|
104
|
-
function shiftSeparators(items, separator) {
|
105
|
-
const result = items.slice(0);
|
106
|
-
for (let i = 0; i < result.length;) {
|
107
|
-
if (result[i].name === separator) {
|
108
|
-
result.shift();
|
109
|
-
} else {
|
110
|
-
break;
|
111
|
-
}
|
112
|
-
}
|
113
|
-
return result;
|
114
|
-
}
|
115
|
-
|
116
|
-
/**
|
117
|
-
* @param {object[]} items The context menu items collection.
|
118
|
-
* @param {string} separator The string which identifies the context menu separator item.
|
119
|
-
* @returns {object[]}
|
120
|
-
*/
|
121
|
-
function popSeparators(items, separator) {
|
122
|
-
let result = items.slice(0);
|
123
|
-
result.reverse();
|
124
|
-
result = shiftSeparators(result, separator);
|
125
|
-
result.reverse();
|
126
|
-
return result;
|
127
|
-
}
|
128
|
-
|
129
|
-
/**
|
130
|
-
* Removes duplicated menu separators from the context menu items collection.
|
131
|
-
*
|
132
|
-
* @param {object[]} items The context menu items collection.
|
133
|
-
* @returns {object[]}
|
134
|
-
*/
|
135
|
-
function removeDuplicatedSeparators(items) {
|
136
|
-
const result = [];
|
137
|
-
arrayEach(items, (value, index) => {
|
138
|
-
if (index > 0) {
|
139
|
-
if (result[result.length - 1].name !== value.name) {
|
140
|
-
result.push(value);
|
141
|
-
}
|
142
|
-
} else {
|
143
|
-
result.push(value);
|
144
|
-
}
|
145
|
-
});
|
146
|
-
return result;
|
147
|
-
}
|
148
|
-
|
149
|
-
/**
|
150
|
-
* Removes menu separators from the context menu items collection.
|
151
|
-
*
|
152
|
-
* @param {object[]} items The context menu items collection.
|
153
|
-
* @param {string} separator The string which identifies the context menu separator item.
|
154
|
-
* @returns {object[]}
|
155
|
-
*/
|
156
|
-
export function filterSeparators(items) {
|
157
|
-
let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : SEPARATOR;
|
158
|
-
let result = items.slice(0);
|
159
|
-
result = shiftSeparators(result, separator);
|
160
|
-
result = popSeparators(result, separator);
|
161
|
-
result = removeDuplicatedSeparators(result);
|
162
|
-
return result;
|
163
|
-
}
|
@@ -1,68 +0,0 @@
|
|
1
|
-
import { objectEach } from "../../../helpers/object.mjs";
|
2
|
-
import alignmentItem, { KEY as ALIGNMENT } from "./alignment.mjs";
|
3
|
-
import clearColumnItem, { KEY as CLEAR_COLUMN } from "./clearColumn.mjs";
|
4
|
-
import columnLeftItem, { KEY as COLUMN_LEFT } from "./columnLeft.mjs";
|
5
|
-
import columnRightItem, { KEY as COLUMN_RIGHT } from "./columnRight.mjs";
|
6
|
-
import readOnlyItem, { KEY as READ_ONLY } from "./readOnly.mjs";
|
7
|
-
import redoItem, { KEY as REDO } from "./redo.mjs";
|
8
|
-
import removeColumnItem, { KEY as REMOVE_COLUMN } from "./removeColumn.mjs";
|
9
|
-
import removeRowItem, { KEY as REMOVE_ROW } from "./removeRow.mjs";
|
10
|
-
import rowAboveItem, { KEY as ROW_ABOVE } from "./rowAbove.mjs";
|
11
|
-
import rowBelowItem, { KEY as ROW_BELOW } from "./rowBelow.mjs";
|
12
|
-
import separatorItem, { KEY as SEPARATOR } from "./separator.mjs";
|
13
|
-
import noItemsItem, { KEY as NO_ITEMS } from "./noItems.mjs";
|
14
|
-
import undoItem, { KEY as UNDO } from "./undo.mjs";
|
15
|
-
export { KEY as ALIGNMENT } from "./alignment.mjs";
|
16
|
-
export { KEY as CLEAR_COLUMN } from "./clearColumn.mjs";
|
17
|
-
export { KEY as COLUMN_LEFT } from "./columnLeft.mjs";
|
18
|
-
export { KEY as COLUMN_RIGHT } from "./columnRight.mjs";
|
19
|
-
export { KEY as READ_ONLY } from "./readOnly.mjs";
|
20
|
-
export { KEY as REDO } from "./redo.mjs";
|
21
|
-
export { KEY as REMOVE_COLUMN } from "./removeColumn.mjs";
|
22
|
-
export { KEY as REMOVE_ROW } from "./removeRow.mjs";
|
23
|
-
export { KEY as ROW_ABOVE } from "./rowAbove.mjs";
|
24
|
-
export { KEY as ROW_BELOW } from "./rowBelow.mjs";
|
25
|
-
export { KEY as SEPARATOR } from "./separator.mjs";
|
26
|
-
export { KEY as NO_ITEMS } from "./noItems.mjs";
|
27
|
-
export { KEY as UNDO } from "./undo.mjs";
|
28
|
-
export const ITEMS = [ROW_ABOVE, ROW_BELOW, COLUMN_LEFT, COLUMN_RIGHT, CLEAR_COLUMN, REMOVE_ROW, REMOVE_COLUMN, UNDO, REDO, READ_ONLY, ALIGNMENT, SEPARATOR, NO_ITEMS];
|
29
|
-
const _predefinedItems = {
|
30
|
-
[SEPARATOR]: separatorItem,
|
31
|
-
[NO_ITEMS]: noItemsItem,
|
32
|
-
[ROW_ABOVE]: rowAboveItem,
|
33
|
-
[ROW_BELOW]: rowBelowItem,
|
34
|
-
[COLUMN_LEFT]: columnLeftItem,
|
35
|
-
[COLUMN_RIGHT]: columnRightItem,
|
36
|
-
[CLEAR_COLUMN]: clearColumnItem,
|
37
|
-
[REMOVE_ROW]: removeRowItem,
|
38
|
-
[REMOVE_COLUMN]: removeColumnItem,
|
39
|
-
[UNDO]: undoItem,
|
40
|
-
[REDO]: redoItem,
|
41
|
-
[READ_ONLY]: readOnlyItem,
|
42
|
-
[ALIGNMENT]: alignmentItem
|
43
|
-
};
|
44
|
-
|
45
|
-
/**
|
46
|
-
* Gets new object with all predefined menu items.
|
47
|
-
*
|
48
|
-
* @returns {object}
|
49
|
-
*/
|
50
|
-
export function predefinedItems() {
|
51
|
-
const items = {};
|
52
|
-
objectEach(_predefinedItems, (itemFactory, key) => {
|
53
|
-
items[key] = itemFactory();
|
54
|
-
});
|
55
|
-
return items;
|
56
|
-
}
|
57
|
-
|
58
|
-
/**
|
59
|
-
* Add new predefined menu item to the collection.
|
60
|
-
*
|
61
|
-
* @param {string} key Menu command id.
|
62
|
-
* @param {object} item Object command descriptor.
|
63
|
-
*/
|
64
|
-
export function addItem(key, item) {
|
65
|
-
if (ITEMS.indexOf(key) === -1) {
|
66
|
-
_predefinedItems[key] = item;
|
67
|
-
}
|
68
|
-
}
|
@@ -1,123 +0,0 @@
|
|
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
|
-
}
|
@@ -1,119 +0,0 @@
|
|
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
|
-
}
|
@@ -1,30 +0,0 @@
|
|
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
|
-
}
|
@@ -1,26 +0,0 @@
|
|
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,5 +0,0 @@
|
|
1
|
-
import Core from '../../core';
|
2
|
-
import { CellProperties } from '../../settings';
|
3
|
-
|
4
|
-
export const RENDERER_TYPE: 'date';
|
5
|
-
export function dateRenderer(instance: Core, TD: HTMLTableCellElement, row: number, col: number, prop: string | number, value: any, cellProperties: CellProperties): void;
|
@@ -1,29 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
exports.__esModule = true;
|
4
|
-
exports.dateRenderer = dateRenderer;
|
5
|
-
var _autocompleteRenderer = require("../autocompleteRenderer");
|
6
|
-
var _a11y = require("../../helpers/a11y");
|
7
|
-
var _element = require("../../helpers/dom/element");
|
8
|
-
const RENDERER_TYPE = 'date';
|
9
|
-
|
10
|
-
/**
|
11
|
-
* Handsontable renderer.
|
12
|
-
*
|
13
|
-
* @private
|
14
|
-
* @param {Core} instance The Handsontable instance.
|
15
|
-
* @param {HTMLTableCellElement} TD The rendered cell element.
|
16
|
-
* @param {number} row The visual row index.
|
17
|
-
* @param {number} col The visual column index.
|
18
|
-
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
19
|
-
* @param {*} value The rendered value.
|
20
|
-
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
21
|
-
*/
|
22
|
-
exports.RENDERER_TYPE = RENDERER_TYPE;
|
23
|
-
function dateRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
24
|
-
_autocompleteRenderer.autocompleteRenderer.apply(this, [instance, TD, row, col, prop, value, cellProperties]);
|
25
|
-
if (instance.getSettings().ariaTags) {
|
26
|
-
(0, _element.setAttribute)(TD, [(0, _a11y.A11Y_HASPOPUP)('dialog'), (0, _a11y.A11Y_EXPANDED)('false')]);
|
27
|
-
}
|
28
|
-
}
|
29
|
-
dateRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -1,24 +0,0 @@
|
|
1
|
-
import { autocompleteRenderer } from "../autocompleteRenderer/index.mjs";
|
2
|
-
import { A11Y_EXPANDED, A11Y_HASPOPUP } from "../../helpers/a11y.mjs";
|
3
|
-
import { setAttribute } from "../../helpers/dom/element.mjs";
|
4
|
-
export const RENDERER_TYPE = 'date';
|
5
|
-
|
6
|
-
/**
|
7
|
-
* Handsontable renderer.
|
8
|
-
*
|
9
|
-
* @private
|
10
|
-
* @param {Core} instance The Handsontable instance.
|
11
|
-
* @param {HTMLTableCellElement} TD The rendered cell element.
|
12
|
-
* @param {number} row The visual row index.
|
13
|
-
* @param {number} col The visual column index.
|
14
|
-
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
15
|
-
* @param {*} value The rendered value.
|
16
|
-
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
17
|
-
*/
|
18
|
-
export function dateRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
19
|
-
autocompleteRenderer.apply(this, [instance, TD, row, col, prop, value, cellProperties]);
|
20
|
-
if (instance.getSettings().ariaTags) {
|
21
|
-
setAttribute(TD, [A11Y_HASPOPUP('dialog'), A11Y_EXPANDED('false')]);
|
22
|
-
}
|
23
|
-
}
|
24
|
-
dateRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -1 +0,0 @@
|
|
1
|
-
export { RENDERER_TYPE, dateRenderer } from './dateRenderer';
|
@@ -1 +0,0 @@
|
|
1
|
-
export { RENDERER_TYPE, dateRenderer } from "./dateRenderer.mjs";
|
@@ -1,5 +0,0 @@
|
|
1
|
-
import Core from '../../core';
|
2
|
-
import { CellProperties } from '../../settings';
|
3
|
-
|
4
|
-
export const RENDERER_TYPE: 'handsontable';
|
5
|
-
export function handsontableRenderer(instance: Core, TD: HTMLTableCellElement, row: number, col: number, prop: string | number, value: any, cellProperties: CellProperties): void;
|
@@ -1,29 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
exports.__esModule = true;
|
4
|
-
exports.handsontableRenderer = handsontableRenderer;
|
5
|
-
var _autocompleteRenderer = require("../autocompleteRenderer");
|
6
|
-
var _a11y = require("../../helpers/a11y");
|
7
|
-
var _element = require("../../helpers/dom/element");
|
8
|
-
const RENDERER_TYPE = 'handsontable';
|
9
|
-
|
10
|
-
/**
|
11
|
-
* Handsontable renderer.
|
12
|
-
*
|
13
|
-
* @private
|
14
|
-
* @param {Core} instance The Handsontable instance.
|
15
|
-
* @param {HTMLTableCellElement} TD The rendered cell element.
|
16
|
-
* @param {number} row The visual row index.
|
17
|
-
* @param {number} col The visual column index.
|
18
|
-
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
19
|
-
* @param {*} value The rendered value.
|
20
|
-
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
21
|
-
*/
|
22
|
-
exports.RENDERER_TYPE = RENDERER_TYPE;
|
23
|
-
function handsontableRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
24
|
-
_autocompleteRenderer.autocompleteRenderer.apply(this, [instance, TD, row, col, prop, value, cellProperties]);
|
25
|
-
if (instance.getSettings().ariaTags) {
|
26
|
-
(0, _element.setAttribute)(TD, [(0, _a11y.A11Y_HASPOPUP)('true'), (0, _a11y.A11Y_EXPANDED)('false')]);
|
27
|
-
}
|
28
|
-
}
|
29
|
-
handsontableRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -1,24 +0,0 @@
|
|
1
|
-
import { autocompleteRenderer } from "../autocompleteRenderer/index.mjs";
|
2
|
-
import { A11Y_EXPANDED, A11Y_HASPOPUP } from "../../helpers/a11y.mjs";
|
3
|
-
import { setAttribute } from "../../helpers/dom/element.mjs";
|
4
|
-
export const RENDERER_TYPE = 'handsontable';
|
5
|
-
|
6
|
-
/**
|
7
|
-
* Handsontable renderer.
|
8
|
-
*
|
9
|
-
* @private
|
10
|
-
* @param {Core} instance The Handsontable instance.
|
11
|
-
* @param {HTMLTableCellElement} TD The rendered cell element.
|
12
|
-
* @param {number} row The visual row index.
|
13
|
-
* @param {number} col The visual column index.
|
14
|
-
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
15
|
-
* @param {*} value The rendered value.
|
16
|
-
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
17
|
-
*/
|
18
|
-
export function handsontableRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
19
|
-
autocompleteRenderer.apply(this, [instance, TD, row, col, prop, value, cellProperties]);
|
20
|
-
if (instance.getSettings().ariaTags) {
|
21
|
-
setAttribute(TD, [A11Y_HASPOPUP('true'), A11Y_EXPANDED('false')]);
|
22
|
-
}
|
23
|
-
}
|
24
|
-
handsontableRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -1 +0,0 @@
|
|
1
|
-
export { RENDERER_TYPE, handsontableRenderer } from './handsontableRenderer';
|