handsontable 0.0.0-next-010265d-20231005 → 0.0.0-next-9379dd1-20231020
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 +40 -5
- package/dist/handsontable.full.css +40 -5
- package/dist/handsontable.full.js +11744 -6945
- package/dist/handsontable.full.min.css +4 -4
- package/dist/handsontable.full.min.js +141 -141
- package/dist/handsontable.js +14036 -9237
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +21 -21
- 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/index.js +9 -0
- package/plugins/contextMenu/menu/index.mjs +1 -0
- package/plugins/contextMenu/{menu.js → menu/menu.js} +96 -308
- package/plugins/contextMenu/{menu.mjs → menu/menu.mjs} +97 -309
- package/plugins/contextMenu/menu/navigator.js +152 -0
- package/plugins/contextMenu/menu/navigator.mjs +148 -0
- package/plugins/contextMenu/menu/positioner.js +213 -0
- package/plugins/contextMenu/menu/positioner.mjs +209 -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 +97 -38
- package/plugins/dropdownMenu/dropdownMenu.mjs +96 -37
- package/plugins/filters/constants.mjs +1 -1
- package/plugins/filters/filters.js +31 -14
- package/plugins/filters/filters.mjs +31 -14
- package/plugins/filters/ui/select.js +3 -3
- package/plugins/filters/ui/select.mjs +2 -2
- 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 +20 -2
- package/shortcuts/context.mjs +20 -3
- 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/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
@@ -3,13 +3,16 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
var _base = require("../base");
|
5
5
|
var _array = require("../../helpers/array");
|
6
|
-
var
|
6
|
+
var _object = require("../../helpers/object");
|
7
|
+
var _commandExecutor = require("../contextMenu/commandExecutor");
|
8
|
+
var _utils = require("../contextMenu/utils");
|
7
9
|
var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
8
10
|
var _element = require("../../helpers/dom/element");
|
9
|
-
var _itemsFactory =
|
10
|
-
var _menu =
|
11
|
+
var _itemsFactory = require("../contextMenu/itemsFactory");
|
12
|
+
var _menu = require("../contextMenu/menu");
|
11
13
|
var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
|
12
14
|
var _predefinedItems = require("../contextMenu/predefinedItems");
|
15
|
+
var _a11y = require("../../helpers/a11y");
|
13
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
14
17
|
_pluginHooks.default.getSingleton().register('afterDropdownMenuDefaultOptions');
|
15
18
|
_pluginHooks.default.getSingleton().register('beforeDropdownMenuShow');
|
@@ -21,6 +24,7 @@ exports.PLUGIN_KEY = PLUGIN_KEY;
|
|
21
24
|
const PLUGIN_PRIORITY = 230;
|
22
25
|
exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
|
23
26
|
const BUTTON_CLASS_NAME = 'changeType';
|
27
|
+
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
24
28
|
|
25
29
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
26
30
|
/**
|
@@ -107,7 +111,7 @@ class DropdownMenu extends _base.BasePlugin {
|
|
107
111
|
* @private
|
108
112
|
* @type {CommandExecutor}
|
109
113
|
*/
|
110
|
-
this.commandExecutor = new _commandExecutor.
|
114
|
+
this.commandExecutor = new _commandExecutor.CommandExecutor(this.hot);
|
111
115
|
/**
|
112
116
|
* Instance of {@link ItemsFactory}.
|
113
117
|
*
|
@@ -148,7 +152,7 @@ class DropdownMenu extends _base.BasePlugin {
|
|
148
152
|
if (this.enabled) {
|
149
153
|
return;
|
150
154
|
}
|
151
|
-
this.itemsFactory = new _itemsFactory.
|
155
|
+
this.itemsFactory = new _itemsFactory.ItemsFactory(this.hot, DropdownMenu.DEFAULT_ITEMS);
|
152
156
|
const settings = this.hot.getSettings()[PLUGIN_KEY];
|
153
157
|
const predefinedItems = {
|
154
158
|
items: this.itemsFactory.getItems(settings)
|
@@ -157,6 +161,7 @@ class DropdownMenu extends _base.BasePlugin {
|
|
157
161
|
if (typeof settings.callback === 'function') {
|
158
162
|
this.commandExecutor.setCommonCallback(settings.callback);
|
159
163
|
}
|
164
|
+
this.registerShortcuts();
|
160
165
|
super.enablePlugin();
|
161
166
|
this.callOnPluginsReady(() => {
|
162
167
|
this.hot.runHooks('afterDropdownMenuDefaultOptions', predefinedItems);
|
@@ -165,7 +170,7 @@ class DropdownMenu extends _base.BasePlugin {
|
|
165
170
|
if (this.menu) {
|
166
171
|
this.menu.destroy();
|
167
172
|
}
|
168
|
-
this.menu = new _menu.
|
173
|
+
this.menu = new _menu.Menu(this.hot, {
|
169
174
|
className: 'htDropdownMenu',
|
170
175
|
keepInViewport: true,
|
171
176
|
container: settings.uiContainer || this.hot.rootDocument.body
|
@@ -207,9 +212,66 @@ class DropdownMenu extends _base.BasePlugin {
|
|
207
212
|
if (this.menu) {
|
208
213
|
this.menu.destroy();
|
209
214
|
}
|
215
|
+
this.unregisterShortcuts();
|
210
216
|
super.disablePlugin();
|
211
217
|
}
|
212
218
|
|
219
|
+
/**
|
220
|
+
* Register shortcuts responsible for toggling dropdown menu.
|
221
|
+
*
|
222
|
+
* @private
|
223
|
+
*/
|
224
|
+
registerShortcuts() {
|
225
|
+
const context = this.hot.getShortcutManager().getContext('grid');
|
226
|
+
const callback = () => {
|
227
|
+
const {
|
228
|
+
highlight
|
229
|
+
} = this.hot.getSelectedRangeLast();
|
230
|
+
if ((highlight.isHeader() && highlight.row === -1 || highlight.isCell()) && highlight.col >= 0) {
|
231
|
+
this.hot.selectColumns(highlight.col, highlight.col, -1);
|
232
|
+
const {
|
233
|
+
from
|
234
|
+
} = this.hot.getSelectedRangeLast();
|
235
|
+
const offset = (0, _utils.getDocumentOffsetByElement)(this.menu.container, this.hot.rootDocument);
|
236
|
+
const target = this.hot.getCell(-1, from.col, true);
|
237
|
+
const rect = target.getBoundingClientRect();
|
238
|
+
this.open({
|
239
|
+
left: rect.left + offset.left,
|
240
|
+
top: rect.top + target.offsetHeight + offset.top
|
241
|
+
}, {
|
242
|
+
left: rect.width
|
243
|
+
});
|
244
|
+
}
|
245
|
+
};
|
246
|
+
context.addShortcuts([{
|
247
|
+
keys: [['Shift', 'Alt', 'ArrowDown'], ['Control/Meta', 'Enter']],
|
248
|
+
callback,
|
249
|
+
runOnlyIf: () => {
|
250
|
+
var _this$hot$getSelected;
|
251
|
+
return ((_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader()) && !this.menu.isOpened();
|
252
|
+
},
|
253
|
+
captureCtrl: true,
|
254
|
+
group: SHORTCUTS_GROUP
|
255
|
+
}, {
|
256
|
+
keys: [['Shift', 'Alt', 'ArrowDown']],
|
257
|
+
callback,
|
258
|
+
runOnlyIf: () => {
|
259
|
+
var _this$hot$getSelected2;
|
260
|
+
return ((_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight.isCell()) && !this.menu.isOpened();
|
261
|
+
},
|
262
|
+
group: SHORTCUTS_GROUP
|
263
|
+
}]);
|
264
|
+
}
|
265
|
+
|
266
|
+
/**
|
267
|
+
* Unregister shortcuts responsible for toggling dropdown menu.
|
268
|
+
*
|
269
|
+
* @private
|
270
|
+
*/
|
271
|
+
unregisterShortcuts() {
|
272
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
273
|
+
}
|
274
|
+
|
213
275
|
/**
|
214
276
|
* Registers the DOM listeners.
|
215
277
|
*
|
@@ -222,23 +284,30 @@ class DropdownMenu extends _base.BasePlugin {
|
|
222
284
|
/**
|
223
285
|
* Opens menu and re-position it based on the passed coordinates.
|
224
286
|
*
|
225
|
-
* @param {
|
226
|
-
*
|
227
|
-
*
|
228
|
-
*
|
229
|
-
*
|
287
|
+
* @param {{ top: number, left: number }|Event} position An object with `top` and `left` properties
|
288
|
+
* which contains coordinates relative to the browsers viewport (without included scroll offsets).
|
289
|
+
* Or if the native event is passed the menu will be positioned based on the `pageX` and `pageY`
|
290
|
+
* coordinates.
|
291
|
+
* @param {{ above: number, below: number, left: number, right: number }} offset An object allows applying
|
292
|
+
* the offset to the menu position.
|
230
293
|
* @fires Hooks#beforeDropdownMenuShow
|
231
294
|
* @fires Hooks#afterDropdownMenuShow
|
232
295
|
*/
|
233
|
-
|
234
296
|
open(position) {
|
235
|
-
|
297
|
+
var _this$menu;
|
298
|
+
let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
299
|
+
above: 0,
|
300
|
+
below: 0,
|
301
|
+
left: 0,
|
302
|
+
right: 0
|
303
|
+
};
|
304
|
+
if ((_this$menu = this.menu) !== null && _this$menu !== void 0 && _this$menu.isOpened()) {
|
236
305
|
return;
|
237
306
|
}
|
238
307
|
this.menu.open();
|
239
|
-
|
240
|
-
this.menu.setOffset(
|
241
|
-
}
|
308
|
+
(0, _object.objectEach)(offset, (value, key) => {
|
309
|
+
this.menu.setOffset(key, value);
|
310
|
+
});
|
242
311
|
this.menu.setPosition(position);
|
243
312
|
}
|
244
313
|
|
@@ -246,10 +315,8 @@ class DropdownMenu extends _base.BasePlugin {
|
|
246
315
|
* Closes dropdown menu.
|
247
316
|
*/
|
248
317
|
close() {
|
249
|
-
|
250
|
-
|
251
|
-
}
|
252
|
-
this.menu.close();
|
318
|
+
var _this$menu2;
|
319
|
+
(_this$menu2 = this.menu) === null || _this$menu2 === void 0 || _this$menu2.close();
|
253
320
|
}
|
254
321
|
|
255
322
|
/**
|
@@ -314,26 +381,14 @@ class DropdownMenu extends _base.BasePlugin {
|
|
314
381
|
*/
|
315
382
|
onTableClick(event) {
|
316
383
|
event.stopPropagation();
|
317
|
-
if ((0, _element.hasClass)(event.target, BUTTON_CLASS_NAME)
|
318
|
-
|
319
|
-
let offsetLeft = 0;
|
320
|
-
if (this.hot.rootDocument !== this.menu.container.ownerDocument) {
|
321
|
-
const {
|
322
|
-
frameElement
|
323
|
-
} = this.hot.rootWindow;
|
324
|
-
const {
|
325
|
-
top,
|
326
|
-
left
|
327
|
-
} = frameElement.getBoundingClientRect();
|
328
|
-
offsetTop = top;
|
329
|
-
offsetLeft = left;
|
330
|
-
}
|
384
|
+
if ((0, _element.hasClass)(event.target, BUTTON_CLASS_NAME)) {
|
385
|
+
const offset = (0, _utils.getDocumentOffsetByElement)(this.menu.container, this.hot.rootDocument);
|
331
386
|
const rect = event.target.getBoundingClientRect();
|
332
387
|
this.open({
|
333
|
-
left: rect.left +
|
334
|
-
top: rect.top + event.target.offsetHeight + 3 +
|
335
|
-
|
336
|
-
|
388
|
+
left: rect.left + offset.left,
|
389
|
+
top: rect.top + event.target.offsetHeight + 3 + offset.top
|
390
|
+
}, {
|
391
|
+
left: rect.width
|
337
392
|
});
|
338
393
|
}
|
339
394
|
}
|
@@ -372,6 +427,10 @@ class DropdownMenu extends _base.BasePlugin {
|
|
372
427
|
const button = this.hot.rootDocument.createElement('button');
|
373
428
|
button.className = BUTTON_CLASS_NAME;
|
374
429
|
button.type = 'button';
|
430
|
+
button.tabIndex = -1;
|
431
|
+
if (this.hot.getSettings().ariaTags) {
|
432
|
+
(0, _element.setAttribute)(button, [(0, _a11y.A11Y_HIDDEN)()]);
|
433
|
+
}
|
375
434
|
|
376
435
|
// prevent page reload on button click
|
377
436
|
button.onclick = function () {
|
@@ -1,12 +1,15 @@
|
|
1
1
|
import { BasePlugin } from "../base/index.mjs";
|
2
2
|
import { arrayEach } from "../../helpers/array.mjs";
|
3
|
-
import
|
3
|
+
import { objectEach } from "../../helpers/object.mjs";
|
4
|
+
import { CommandExecutor } from "../contextMenu/commandExecutor.mjs";
|
5
|
+
import { getDocumentOffsetByElement } from "../contextMenu/utils.mjs";
|
4
6
|
import EventManager from "../../eventManager.mjs";
|
5
|
-
import { hasClass } from "../../helpers/dom/element.mjs";
|
6
|
-
import ItemsFactory from "../contextMenu/itemsFactory.mjs";
|
7
|
-
import Menu from "../contextMenu/menu.mjs";
|
7
|
+
import { hasClass, setAttribute } from "../../helpers/dom/element.mjs";
|
8
|
+
import { ItemsFactory } from "../contextMenu/itemsFactory.mjs";
|
9
|
+
import { Menu } from "../contextMenu/menu/index.mjs";
|
8
10
|
import Hooks from "../../pluginHooks.mjs";
|
9
|
-
import { COLUMN_LEFT, COLUMN_RIGHT, REMOVE_COLUMN, CLEAR_COLUMN, READ_ONLY, ALIGNMENT, SEPARATOR } from "../contextMenu/predefinedItems.mjs";
|
11
|
+
import { COLUMN_LEFT, COLUMN_RIGHT, REMOVE_COLUMN, CLEAR_COLUMN, READ_ONLY, ALIGNMENT, SEPARATOR } from "../contextMenu/predefinedItems/index.mjs";
|
12
|
+
import { A11Y_HIDDEN } from "../../helpers/a11y.mjs";
|
10
13
|
Hooks.getSingleton().register('afterDropdownMenuDefaultOptions');
|
11
14
|
Hooks.getSingleton().register('beforeDropdownMenuShow');
|
12
15
|
Hooks.getSingleton().register('afterDropdownMenuShow');
|
@@ -15,6 +18,7 @@ Hooks.getSingleton().register('afterDropdownMenuExecute');
|
|
15
18
|
export const PLUGIN_KEY = 'dropdownMenu';
|
16
19
|
export const PLUGIN_PRIORITY = 230;
|
17
20
|
const BUTTON_CLASS_NAME = 'changeType';
|
21
|
+
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
18
22
|
|
19
23
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
20
24
|
/**
|
@@ -151,6 +155,7 @@ export class DropdownMenu extends BasePlugin {
|
|
151
155
|
if (typeof settings.callback === 'function') {
|
152
156
|
this.commandExecutor.setCommonCallback(settings.callback);
|
153
157
|
}
|
158
|
+
this.registerShortcuts();
|
154
159
|
super.enablePlugin();
|
155
160
|
this.callOnPluginsReady(() => {
|
156
161
|
this.hot.runHooks('afterDropdownMenuDefaultOptions', predefinedItems);
|
@@ -201,9 +206,66 @@ export class DropdownMenu extends BasePlugin {
|
|
201
206
|
if (this.menu) {
|
202
207
|
this.menu.destroy();
|
203
208
|
}
|
209
|
+
this.unregisterShortcuts();
|
204
210
|
super.disablePlugin();
|
205
211
|
}
|
206
212
|
|
213
|
+
/**
|
214
|
+
* Register shortcuts responsible for toggling dropdown menu.
|
215
|
+
*
|
216
|
+
* @private
|
217
|
+
*/
|
218
|
+
registerShortcuts() {
|
219
|
+
const context = this.hot.getShortcutManager().getContext('grid');
|
220
|
+
const callback = () => {
|
221
|
+
const {
|
222
|
+
highlight
|
223
|
+
} = this.hot.getSelectedRangeLast();
|
224
|
+
if ((highlight.isHeader() && highlight.row === -1 || highlight.isCell()) && highlight.col >= 0) {
|
225
|
+
this.hot.selectColumns(highlight.col, highlight.col, -1);
|
226
|
+
const {
|
227
|
+
from
|
228
|
+
} = this.hot.getSelectedRangeLast();
|
229
|
+
const offset = getDocumentOffsetByElement(this.menu.container, this.hot.rootDocument);
|
230
|
+
const target = this.hot.getCell(-1, from.col, true);
|
231
|
+
const rect = target.getBoundingClientRect();
|
232
|
+
this.open({
|
233
|
+
left: rect.left + offset.left,
|
234
|
+
top: rect.top + target.offsetHeight + offset.top
|
235
|
+
}, {
|
236
|
+
left: rect.width
|
237
|
+
});
|
238
|
+
}
|
239
|
+
};
|
240
|
+
context.addShortcuts([{
|
241
|
+
keys: [['Shift', 'Alt', 'ArrowDown'], ['Control/Meta', 'Enter']],
|
242
|
+
callback,
|
243
|
+
runOnlyIf: () => {
|
244
|
+
var _this$hot$getSelected;
|
245
|
+
return ((_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader()) && !this.menu.isOpened();
|
246
|
+
},
|
247
|
+
captureCtrl: true,
|
248
|
+
group: SHORTCUTS_GROUP
|
249
|
+
}, {
|
250
|
+
keys: [['Shift', 'Alt', 'ArrowDown']],
|
251
|
+
callback,
|
252
|
+
runOnlyIf: () => {
|
253
|
+
var _this$hot$getSelected2;
|
254
|
+
return ((_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight.isCell()) && !this.menu.isOpened();
|
255
|
+
},
|
256
|
+
group: SHORTCUTS_GROUP
|
257
|
+
}]);
|
258
|
+
}
|
259
|
+
|
260
|
+
/**
|
261
|
+
* Unregister shortcuts responsible for toggling dropdown menu.
|
262
|
+
*
|
263
|
+
* @private
|
264
|
+
*/
|
265
|
+
unregisterShortcuts() {
|
266
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
267
|
+
}
|
268
|
+
|
207
269
|
/**
|
208
270
|
* Registers the DOM listeners.
|
209
271
|
*
|
@@ -216,23 +278,30 @@ export class DropdownMenu extends BasePlugin {
|
|
216
278
|
/**
|
217
279
|
* Opens menu and re-position it based on the passed coordinates.
|
218
280
|
*
|
219
|
-
* @param {
|
220
|
-
*
|
221
|
-
*
|
222
|
-
*
|
223
|
-
*
|
281
|
+
* @param {{ top: number, left: number }|Event} position An object with `top` and `left` properties
|
282
|
+
* which contains coordinates relative to the browsers viewport (without included scroll offsets).
|
283
|
+
* Or if the native event is passed the menu will be positioned based on the `pageX` and `pageY`
|
284
|
+
* coordinates.
|
285
|
+
* @param {{ above: number, below: number, left: number, right: number }} offset An object allows applying
|
286
|
+
* the offset to the menu position.
|
224
287
|
* @fires Hooks#beforeDropdownMenuShow
|
225
288
|
* @fires Hooks#afterDropdownMenuShow
|
226
289
|
*/
|
227
|
-
|
228
290
|
open(position) {
|
229
|
-
|
291
|
+
var _this$menu;
|
292
|
+
let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
293
|
+
above: 0,
|
294
|
+
below: 0,
|
295
|
+
left: 0,
|
296
|
+
right: 0
|
297
|
+
};
|
298
|
+
if ((_this$menu = this.menu) !== null && _this$menu !== void 0 && _this$menu.isOpened()) {
|
230
299
|
return;
|
231
300
|
}
|
232
301
|
this.menu.open();
|
233
|
-
|
234
|
-
this.menu.setOffset(
|
235
|
-
}
|
302
|
+
objectEach(offset, (value, key) => {
|
303
|
+
this.menu.setOffset(key, value);
|
304
|
+
});
|
236
305
|
this.menu.setPosition(position);
|
237
306
|
}
|
238
307
|
|
@@ -240,10 +309,8 @@ export class DropdownMenu extends BasePlugin {
|
|
240
309
|
* Closes dropdown menu.
|
241
310
|
*/
|
242
311
|
close() {
|
243
|
-
|
244
|
-
|
245
|
-
}
|
246
|
-
this.menu.close();
|
312
|
+
var _this$menu2;
|
313
|
+
(_this$menu2 = this.menu) === null || _this$menu2 === void 0 || _this$menu2.close();
|
247
314
|
}
|
248
315
|
|
249
316
|
/**
|
@@ -308,26 +375,14 @@ export class DropdownMenu extends BasePlugin {
|
|
308
375
|
*/
|
309
376
|
onTableClick(event) {
|
310
377
|
event.stopPropagation();
|
311
|
-
if (hasClass(event.target, BUTTON_CLASS_NAME)
|
312
|
-
|
313
|
-
let offsetLeft = 0;
|
314
|
-
if (this.hot.rootDocument !== this.menu.container.ownerDocument) {
|
315
|
-
const {
|
316
|
-
frameElement
|
317
|
-
} = this.hot.rootWindow;
|
318
|
-
const {
|
319
|
-
top,
|
320
|
-
left
|
321
|
-
} = frameElement.getBoundingClientRect();
|
322
|
-
offsetTop = top;
|
323
|
-
offsetLeft = left;
|
324
|
-
}
|
378
|
+
if (hasClass(event.target, BUTTON_CLASS_NAME)) {
|
379
|
+
const offset = getDocumentOffsetByElement(this.menu.container, this.hot.rootDocument);
|
325
380
|
const rect = event.target.getBoundingClientRect();
|
326
381
|
this.open({
|
327
|
-
left: rect.left +
|
328
|
-
top: rect.top + event.target.offsetHeight + 3 +
|
329
|
-
|
330
|
-
|
382
|
+
left: rect.left + offset.left,
|
383
|
+
top: rect.top + event.target.offsetHeight + 3 + offset.top
|
384
|
+
}, {
|
385
|
+
left: rect.width
|
331
386
|
});
|
332
387
|
}
|
333
388
|
}
|
@@ -366,6 +421,10 @@ export class DropdownMenu extends BasePlugin {
|
|
366
421
|
const button = this.hot.rootDocument.createElement('button');
|
367
422
|
button.className = BUTTON_CLASS_NAME;
|
368
423
|
button.type = 'button';
|
424
|
+
button.tabIndex = -1;
|
425
|
+
if (this.hot.getSettings().ariaTags) {
|
426
|
+
setAttribute(button, [A11Y_HIDDEN()]);
|
427
|
+
}
|
369
428
|
|
370
429
|
// prevent page reload on button click
|
371
430
|
button.onclick = function () {
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import "core-js/modules/es.array.push.js";
|
2
2
|
import { clone } from "../../helpers/object.mjs";
|
3
3
|
import { arrayEach } from "../../helpers/array.mjs";
|
4
|
-
import { SEPARATOR } from "../contextMenu/predefinedItems.mjs";
|
4
|
+
import { SEPARATOR } from "../contextMenu/predefinedItems/index.mjs";
|
5
5
|
import { getConditionDescriptor } from "./conditionRegisterer.mjs";
|
6
6
|
import { CONDITION_NAME as CONDITION_NONE } from "./condition/none.mjs";
|
7
7
|
import { CONDITION_NAME as CONDITION_EMPTY } from "./condition/empty.mjs";
|
@@ -27,6 +27,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
27
27
|
const PLUGIN_KEY = 'filters';
|
28
28
|
exports.PLUGIN_KEY = PLUGIN_KEY;
|
29
29
|
const PLUGIN_PRIORITY = 250;
|
30
|
+
exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
|
31
|
+
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
30
32
|
|
31
33
|
/**
|
32
34
|
* @plugin Filters
|
@@ -63,7 +65,6 @@ const PLUGIN_PRIORITY = 250;
|
|
63
65
|
* ```
|
64
66
|
* :::
|
65
67
|
*/
|
66
|
-
exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
|
67
68
|
class Filters extends _base.BasePlugin {
|
68
69
|
static get PLUGIN_KEY() {
|
69
70
|
return PLUGIN_KEY;
|
@@ -210,6 +211,7 @@ class Filters extends _base.BasePlugin {
|
|
210
211
|
this.dropdownMenuPlugin.disablePlugin();
|
211
212
|
this.dropdownMenuPlugin.enablePlugin();
|
212
213
|
}
|
214
|
+
this.registerShortcuts();
|
213
215
|
super.enablePlugin();
|
214
216
|
}
|
215
217
|
|
@@ -230,9 +232,36 @@ class Filters extends _base.BasePlugin {
|
|
230
232
|
this.conditionCollection = null;
|
231
233
|
this.hot.rowIndexMapper.unregisterMap(this.pluginName);
|
232
234
|
}
|
235
|
+
this.unregisterShortcuts();
|
233
236
|
super.disablePlugin();
|
234
237
|
}
|
235
238
|
|
239
|
+
/**
|
240
|
+
* Register shortcuts responsible for clearing the filters.
|
241
|
+
*
|
242
|
+
* @private
|
243
|
+
*/
|
244
|
+
registerShortcuts() {
|
245
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
246
|
+
keys: [['Alt', 'A']],
|
247
|
+
stopPropagation: true,
|
248
|
+
callback: () => {
|
249
|
+
this.clearConditions();
|
250
|
+
this.filter();
|
251
|
+
},
|
252
|
+
group: SHORTCUTS_GROUP
|
253
|
+
});
|
254
|
+
}
|
255
|
+
|
256
|
+
/**
|
257
|
+
* Unregister shortcuts responsible for clearing the filters.
|
258
|
+
*
|
259
|
+
* @private
|
260
|
+
*/
|
261
|
+
unregisterShortcuts() {
|
262
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
263
|
+
}
|
264
|
+
|
236
265
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
237
266
|
/**
|
238
267
|
* @memberof Filters#
|
@@ -422,7 +451,6 @@ class Filters extends _base.BasePlugin {
|
|
422
451
|
this.hot.runHooks('afterFilter', conditions);
|
423
452
|
this.hot.view.adjustElementsSize(true);
|
424
453
|
this.hot.render();
|
425
|
-
this.clearColumnSelection();
|
426
454
|
}
|
427
455
|
|
428
456
|
/**
|
@@ -444,18 +472,6 @@ class Filters extends _base.BasePlugin {
|
|
444
472
|
};
|
445
473
|
}
|
446
474
|
|
447
|
-
/**
|
448
|
-
* Clears column selection.
|
449
|
-
*
|
450
|
-
* @private
|
451
|
-
*/
|
452
|
-
clearColumnSelection() {
|
453
|
-
const selectedColumn = this.getSelectedColumn();
|
454
|
-
if (selectedColumn !== null) {
|
455
|
-
this.hot.selectCell(0, selectedColumn.visualIndex);
|
456
|
-
}
|
457
|
-
}
|
458
|
-
|
459
475
|
/**
|
460
476
|
* Returns handsontable source data with cell meta based on current selection.
|
461
477
|
*
|
@@ -655,6 +671,7 @@ class Filters extends _base.BasePlugin {
|
|
655
671
|
this.components.forEach(component => component.saveState(physicalIndex));
|
656
672
|
this.filtersRowsMap.clear();
|
657
673
|
this.filter();
|
674
|
+
this.hot.selectCell(0, selectedColumn.visualIndex);
|
658
675
|
}
|
659
676
|
(_this$dropdownMenuPlu3 = this.dropdownMenuPlugin) === null || _this$dropdownMenuPlu3 === void 0 || _this$dropdownMenuPlu3.close();
|
660
677
|
}
|
@@ -6,7 +6,7 @@ import { warn } from "../../helpers/console.mjs";
|
|
6
6
|
import { rangeEach } from "../../helpers/number.mjs";
|
7
7
|
import EventManager from "../../eventManager.mjs";
|
8
8
|
import { addClass, removeClass } from "../../helpers/dom/element.mjs";
|
9
|
-
import { SEPARATOR } from "../contextMenu/predefinedItems.mjs";
|
9
|
+
import { SEPARATOR } from "../contextMenu/predefinedItems/index.mjs";
|
10
10
|
import * as constants from "../../i18n/constants.mjs";
|
11
11
|
import ConditionComponent from "./component/condition.mjs";
|
12
12
|
import OperatorsComponent from "./component/operators.mjs";
|
@@ -20,6 +20,7 @@ import { CONDITION_NONE, CONDITION_BY_VALUE, OPERATION_AND, OPERATION_OR, OPERAT
|
|
20
20
|
import { TrimmingMap } from "../../translations/index.mjs";
|
21
21
|
export const PLUGIN_KEY = 'filters';
|
22
22
|
export const PLUGIN_PRIORITY = 250;
|
23
|
+
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
23
24
|
|
24
25
|
/**
|
25
26
|
* @plugin Filters
|
@@ -202,6 +203,7 @@ export class Filters extends BasePlugin {
|
|
202
203
|
this.dropdownMenuPlugin.disablePlugin();
|
203
204
|
this.dropdownMenuPlugin.enablePlugin();
|
204
205
|
}
|
206
|
+
this.registerShortcuts();
|
205
207
|
super.enablePlugin();
|
206
208
|
}
|
207
209
|
|
@@ -222,9 +224,36 @@ export class Filters extends BasePlugin {
|
|
222
224
|
this.conditionCollection = null;
|
223
225
|
this.hot.rowIndexMapper.unregisterMap(this.pluginName);
|
224
226
|
}
|
227
|
+
this.unregisterShortcuts();
|
225
228
|
super.disablePlugin();
|
226
229
|
}
|
227
230
|
|
231
|
+
/**
|
232
|
+
* Register shortcuts responsible for clearing the filters.
|
233
|
+
*
|
234
|
+
* @private
|
235
|
+
*/
|
236
|
+
registerShortcuts() {
|
237
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
238
|
+
keys: [['Alt', 'A']],
|
239
|
+
stopPropagation: true,
|
240
|
+
callback: () => {
|
241
|
+
this.clearConditions();
|
242
|
+
this.filter();
|
243
|
+
},
|
244
|
+
group: SHORTCUTS_GROUP
|
245
|
+
});
|
246
|
+
}
|
247
|
+
|
248
|
+
/**
|
249
|
+
* Unregister shortcuts responsible for clearing the filters.
|
250
|
+
*
|
251
|
+
* @private
|
252
|
+
*/
|
253
|
+
unregisterShortcuts() {
|
254
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
255
|
+
}
|
256
|
+
|
228
257
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
229
258
|
/**
|
230
259
|
* @memberof Filters#
|
@@ -414,7 +443,6 @@ export class Filters extends BasePlugin {
|
|
414
443
|
this.hot.runHooks('afterFilter', conditions);
|
415
444
|
this.hot.view.adjustElementsSize(true);
|
416
445
|
this.hot.render();
|
417
|
-
this.clearColumnSelection();
|
418
446
|
}
|
419
447
|
|
420
448
|
/**
|
@@ -436,18 +464,6 @@ export class Filters extends BasePlugin {
|
|
436
464
|
};
|
437
465
|
}
|
438
466
|
|
439
|
-
/**
|
440
|
-
* Clears column selection.
|
441
|
-
*
|
442
|
-
* @private
|
443
|
-
*/
|
444
|
-
clearColumnSelection() {
|
445
|
-
const selectedColumn = this.getSelectedColumn();
|
446
|
-
if (selectedColumn !== null) {
|
447
|
-
this.hot.selectCell(0, selectedColumn.visualIndex);
|
448
|
-
}
|
449
|
-
}
|
450
|
-
|
451
467
|
/**
|
452
468
|
* Returns handsontable source data with cell meta based on current selection.
|
453
469
|
*
|
@@ -647,6 +663,7 @@ export class Filters extends BasePlugin {
|
|
647
663
|
this.components.forEach(component => component.saveState(physicalIndex));
|
648
664
|
this.filtersRowsMap.clear();
|
649
665
|
this.filter();
|
666
|
+
this.hot.selectCell(0, selectedColumn.visualIndex);
|
650
667
|
}
|
651
668
|
(_this$dropdownMenuPlu3 = this.dropdownMenuPlugin) === null || _this$dropdownMenuPlu3 === void 0 || _this$dropdownMenuPlu3.close();
|
652
669
|
}
|
@@ -1,15 +1,15 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
-
var _menu =
|
4
|
+
var _menu = require("../../../plugins/contextMenu/menu");
|
5
5
|
var _object = require("../../../helpers/object");
|
6
6
|
var _array = require("../../../helpers/array");
|
7
7
|
var C = _interopRequireWildcard(require("../../../i18n/constants"));
|
8
8
|
var _predefinedItems = require("../../../plugins/contextMenu/predefinedItems");
|
9
9
|
var _base = _interopRequireDefault(require("./_base"));
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
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
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
13
|
const privatePool = new WeakMap();
|
14
14
|
|
15
15
|
/**
|
@@ -78,7 +78,7 @@ class SelectUI extends _base.default {
|
|
78
78
|
*/
|
79
79
|
build() {
|
80
80
|
super.build();
|
81
|
-
this.menu = new _menu.
|
81
|
+
this.menu = new _menu.Menu(this.hot, {
|
82
82
|
className: 'htSelectUI htFiltersConditionsMenu',
|
83
83
|
keepInViewport: false,
|
84
84
|
standalone: true,
|
@@ -1,8 +1,8 @@
|
|
1
|
-
import Menu from "../../../plugins/contextMenu/menu.mjs";
|
1
|
+
import { Menu } from "../../../plugins/contextMenu/menu/index.mjs";
|
2
2
|
import { clone, extend } from "../../../helpers/object.mjs";
|
3
3
|
import { arrayEach } from "../../../helpers/array.mjs";
|
4
4
|
import * as C from "../../../i18n/constants.mjs";
|
5
|
-
import { SEPARATOR } from "../../../plugins/contextMenu/predefinedItems.mjs";
|
5
|
+
import { SEPARATOR } from "../../../plugins/contextMenu/predefinedItems/index.mjs";
|
6
6
|
import BaseUI from "./_base.mjs";
|
7
7
|
const privatePool = new WeakMap();
|
8
8
|
|
@@ -13,7 +13,7 @@ import { rangeEach } from "../../helpers/number.mjs";
|
|
13
13
|
import { arrayEach, arrayMap, arrayReduce } from "../../helpers/array.mjs";
|
14
14
|
import { isObject } from "../../helpers/object.mjs";
|
15
15
|
import { isUndefined } from "../../helpers/mixed.mjs";
|
16
|
-
import { SEPARATOR } from "../contextMenu/predefinedItems.mjs";
|
16
|
+
import { SEPARATOR } from "../contextMenu/predefinedItems/index.mjs";
|
17
17
|
import Hooks from "../../pluginHooks.mjs";
|
18
18
|
import hideColumnItem from "./contextMenuItem/hideColumn.mjs";
|
19
19
|
import showColumnItem from "./contextMenuItem/showColumn.mjs";
|