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
@@ -12,8 +12,16 @@ exports.CellRange = _range.default;
|
|
12
12
|
var _core = _interopRequireDefault(require("./facade/core"));
|
13
13
|
exports.default = _core.default;
|
14
14
|
exports.Core = _core.default;
|
15
|
-
var _selection =
|
16
|
-
exports.Selection = _selection.
|
15
|
+
var _selection = require("./selection");
|
16
|
+
exports.Selection = _selection.Selection;
|
17
|
+
exports.HIGHLIGHT_ACTIVE_HEADER_TYPE = _selection.ACTIVE_HEADER_TYPE;
|
18
|
+
exports.HIGHLIGHT_AREA_TYPE = _selection.AREA_TYPE;
|
19
|
+
exports.HIGHLIGHT_FOCUS_TYPE = _selection.FOCUS_TYPE;
|
20
|
+
exports.HIGHLIGHT_FILL_TYPE = _selection.FILL_TYPE;
|
21
|
+
exports.HIGHLIGHT_HEADER_TYPE = _selection.HEADER_TYPE;
|
22
|
+
exports.HIGHLIGHT_ROW_TYPE = _selection.ROW_TYPE;
|
23
|
+
exports.HIGHLIGHT_COLUMN_TYPE = _selection.COLUMN_TYPE;
|
24
|
+
exports.HIGHLIGHT_CUSTOM_SELECTION_TYPE = _selection.CUSTOM_SELECTION_TYPE;
|
17
25
|
var Renderer = _interopRequireWildcard(require("./renderer"));
|
18
26
|
exports.Renderer = Renderer;
|
19
27
|
var _orderView = require("./utils/orderView");
|
@@ -3,8 +3,8 @@ import ViewportRowsCalculator from "./calculator/viewportRows.mjs";
|
|
3
3
|
import CellCoords from "./cell/coords.mjs";
|
4
4
|
import CellRange from "./cell/range.mjs";
|
5
5
|
import Walkontable from "./facade/core.mjs";
|
6
|
-
import Selection from "./selection.mjs";
|
6
|
+
import { Selection, ACTIVE_HEADER_TYPE, AREA_TYPE, FOCUS_TYPE, FILL_TYPE, HEADER_TYPE, ROW_TYPE, COLUMN_TYPE, CUSTOM_SELECTION_TYPE } from "./selection/index.mjs";
|
7
7
|
import * as Renderer from "./renderer/index.mjs";
|
8
8
|
import { OrderView, SharedOrderView } from "./utils/orderView/index.mjs";
|
9
9
|
import { getListenersCounter } from "../../../eventManager.mjs";
|
10
|
-
export { ViewportColumnsCalculator, ViewportRowsCalculator, CellCoords, CellRange, Walkontable as default, Walkontable as Core, Selection, Renderer, OrderView, SharedOrderView, getListenersCounter };
|
10
|
+
export { ViewportColumnsCalculator, ViewportRowsCalculator, CellCoords, CellRange, Walkontable as default, Walkontable as Core, Selection, ACTIVE_HEADER_TYPE as HIGHLIGHT_ACTIVE_HEADER_TYPE, AREA_TYPE as HIGHLIGHT_AREA_TYPE, FOCUS_TYPE as HIGHLIGHT_FOCUS_TYPE, FILL_TYPE as HIGHLIGHT_FILL_TYPE, HEADER_TYPE as HIGHLIGHT_HEADER_TYPE, ROW_TYPE as HIGHLIGHT_ROW_TYPE, COLUMN_TYPE as HIGHLIGHT_COLUMN_TYPE, CUSTOM_SELECTION_TYPE as HIGHLIGHT_CUSTOM_SELECTION_TYPE, Renderer, OrderView, SharedOrderView, getListenersCounter };
|
@@ -8,6 +8,7 @@ var _array = require("../../../../helpers/array");
|
|
8
8
|
var _console = require("../../../../helpers/console");
|
9
9
|
var _constants = require("./constants");
|
10
10
|
var _clone = _interopRequireDefault(require("../core/clone"));
|
11
|
+
var _a11y = require("../../../../helpers/a11y");
|
11
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
12
13
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
13
14
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
@@ -241,7 +242,8 @@ class Overlay {
|
|
241
242
|
throw new Error(`Clone type "${this.type}" is not supported.`);
|
242
243
|
}
|
243
244
|
const {
|
244
|
-
wtTable
|
245
|
+
wtTable,
|
246
|
+
wtSettings
|
245
247
|
} = this.wot;
|
246
248
|
const {
|
247
249
|
rootDocument,
|
@@ -260,7 +262,16 @@ class Overlay {
|
|
260
262
|
} else {
|
261
263
|
clone.style.left = 0;
|
262
264
|
}
|
265
|
+
if (wtSettings.getSetting('ariaTags')) {
|
266
|
+
(0, _element.setAttribute)(clone, [(0, _a11y.A11Y_PRESENTATION)()]);
|
267
|
+
}
|
263
268
|
clonedTable.className = wtTable.TABLE.className;
|
269
|
+
|
270
|
+
// Clone the main table's `role` attribute to the cloned table.
|
271
|
+
const mainTableRole = wtTable.TABLE.getAttribute('role');
|
272
|
+
if (mainTableRole) {
|
273
|
+
clonedTable.setAttribute('role', wtTable.TABLE.getAttribute('role'));
|
274
|
+
}
|
264
275
|
clone.appendChild(clonedTable);
|
265
276
|
tableParent.appendChild(clone);
|
266
277
|
const preventOverflow = this.wtSettings.getSetting('preventOverflow');
|
@@ -281,7 +292,7 @@ class Overlay {
|
|
281
292
|
// todo ioc , or factor func if used only here
|
282
293
|
event: this.wot.wtEvent,
|
283
294
|
// todo ioc , or factory func if used only here
|
284
|
-
|
295
|
+
selectionManager: this.wot.selectionManager // todo ioc , or factory func if used only here
|
285
296
|
});
|
286
297
|
}
|
287
298
|
|
@@ -2,12 +2,13 @@ import "core-js/modules/es.error.cause.js";
|
|
2
2
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
3
3
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
4
4
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
5
|
-
import { getScrollableElement, getTrimmingContainer, getScrollbarWidth } from "../../../../helpers/dom/element.mjs";
|
5
|
+
import { getScrollableElement, getTrimmingContainer, getScrollbarWidth, setAttribute } from "../../../../helpers/dom/element.mjs";
|
6
6
|
import { defineGetter } from "../../../../helpers/object.mjs";
|
7
7
|
import { arrayEach } from "../../../../helpers/array.mjs";
|
8
8
|
import { warn } from "../../../../helpers/console.mjs";
|
9
9
|
import { CLONE_TYPES, CLONE_CLASS_NAMES, CLONE_TOP, CLONE_INLINE_START } from "./constants.mjs";
|
10
10
|
import Clone from "../core/clone.mjs";
|
11
|
+
import { A11Y_PRESENTATION } from "../../../../helpers/a11y.mjs";
|
11
12
|
/**
|
12
13
|
* Creates an overlay over the original Walkontable instance. The overlay renders the clone of the original Walkontable
|
13
14
|
* and (optionally) implements behavior needed for native horizontal and vertical scrolling.
|
@@ -237,7 +238,8 @@ export class Overlay {
|
|
237
238
|
throw new Error(`Clone type "${this.type}" is not supported.`);
|
238
239
|
}
|
239
240
|
const {
|
240
|
-
wtTable
|
241
|
+
wtTable,
|
242
|
+
wtSettings
|
241
243
|
} = this.wot;
|
242
244
|
const {
|
243
245
|
rootDocument,
|
@@ -256,7 +258,16 @@ export class Overlay {
|
|
256
258
|
} else {
|
257
259
|
clone.style.left = 0;
|
258
260
|
}
|
261
|
+
if (wtSettings.getSetting('ariaTags')) {
|
262
|
+
setAttribute(clone, [A11Y_PRESENTATION()]);
|
263
|
+
}
|
259
264
|
clonedTable.className = wtTable.TABLE.className;
|
265
|
+
|
266
|
+
// Clone the main table's `role` attribute to the cloned table.
|
267
|
+
const mainTableRole = wtTable.TABLE.getAttribute('role');
|
268
|
+
if (mainTableRole) {
|
269
|
+
clonedTable.setAttribute('role', wtTable.TABLE.getAttribute('role'));
|
270
|
+
}
|
260
271
|
clone.appendChild(clonedTable);
|
261
272
|
tableParent.appendChild(clone);
|
262
273
|
const preventOverflow = this.wtSettings.getSetting('preventOverflow');
|
@@ -277,7 +288,7 @@ export class Overlay {
|
|
277
288
|
// todo ioc , or factor func if used only here
|
278
289
|
event: this.wot.wtEvent,
|
279
290
|
// todo ioc , or factory func if used only here
|
280
|
-
|
291
|
+
selectionManager: this.wot.selectionManager // todo ioc , or factory func if used only here
|
281
292
|
});
|
282
293
|
}
|
283
294
|
|
@@ -5,6 +5,7 @@ require("core-js/modules/es.error.cause.js");
|
|
5
5
|
var _element = require("../../../../helpers/dom/element");
|
6
6
|
var _inlineStart = _interopRequireDefault(require("../table/inlineStart"));
|
7
7
|
var _base = require("./_base");
|
8
|
+
var _selection = require("../selection");
|
8
9
|
var _constants = require("./constants");
|
9
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
10
11
|
/**
|
@@ -172,15 +173,10 @@ class InlineStartOverlay extends _base.Overlay {
|
|
172
173
|
* Adjust overlay root childs size.
|
173
174
|
*/
|
174
175
|
adjustRootChildrenSize() {
|
175
|
-
var _selections$getCell$g;
|
176
176
|
const {
|
177
177
|
holder
|
178
178
|
} = this.clone.wtTable;
|
179
|
-
const
|
180
|
-
selections
|
181
|
-
} = this.wot;
|
182
|
-
const facade = this.facadeGetter();
|
183
|
-
const selectionCornerOffset = Math.abs((_selections$getCell$g = selections === null || selections === void 0 ? void 0 : selections.getCell().getBorder(facade).cornerCenterPointOffset) !== null && _selections$getCell$g !== void 0 ? _selections$getCell$g : 0);
|
179
|
+
const selectionCornerOffset = this.wot.selectionManager.getFocusSelection() ? parseInt(_selection.CORNER_DEFAULT_STYLE.width, 10) / 2 : 0;
|
184
180
|
this.clone.wtTable.hider.style.height = this.hider.style.height;
|
185
181
|
holder.style.height = holder.parentNode.style.height;
|
186
182
|
// Add selection corner protruding part to the holder total width to make sure that
|
@@ -2,6 +2,7 @@ import "core-js/modules/es.error.cause.js";
|
|
2
2
|
import { addClass, getScrollbarWidth, getScrollLeft, getWindowScrollTop, hasClass, outerWidth, removeClass, setOverlayPosition, resetCssTransform } from "../../../../helpers/dom/element.mjs";
|
3
3
|
import InlineStartOverlayTable from "../table/inlineStart.mjs";
|
4
4
|
import { Overlay } from "./_base.mjs";
|
5
|
+
import { CORNER_DEFAULT_STYLE } from "../selection/index.mjs";
|
5
6
|
import { CLONE_INLINE_START } from "./constants.mjs";
|
6
7
|
/**
|
7
8
|
* @class InlineStartOverlay
|
@@ -168,15 +169,10 @@ export class InlineStartOverlay extends Overlay {
|
|
168
169
|
* Adjust overlay root childs size.
|
169
170
|
*/
|
170
171
|
adjustRootChildrenSize() {
|
171
|
-
var _selections$getCell$g;
|
172
172
|
const {
|
173
173
|
holder
|
174
174
|
} = this.clone.wtTable;
|
175
|
-
const
|
176
|
-
selections
|
177
|
-
} = this.wot;
|
178
|
-
const facade = this.facadeGetter();
|
179
|
-
const selectionCornerOffset = Math.abs((_selections$getCell$g = selections === null || selections === void 0 ? void 0 : selections.getCell().getBorder(facade).cornerCenterPointOffset) !== null && _selections$getCell$g !== void 0 ? _selections$getCell$g : 0);
|
175
|
+
const selectionCornerOffset = this.wot.selectionManager.getFocusSelection() ? parseInt(CORNER_DEFAULT_STYLE.width, 10) / 2 : 0;
|
180
176
|
this.clone.wtTable.hider.style.height = this.hider.style.height;
|
181
177
|
holder.style.height = holder.parentNode.style.height;
|
182
178
|
// Add selection corner protruding part to the holder total width to make sure that
|
@@ -5,6 +5,7 @@ require("core-js/modules/es.error.cause.js");
|
|
5
5
|
var _element = require("../../../../helpers/dom/element");
|
6
6
|
var _top = _interopRequireDefault(require("./../table/top"));
|
7
7
|
var _base = require("./_base");
|
8
|
+
var _selection = require("../selection");
|
8
9
|
var _constants = require("./constants");
|
9
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
10
11
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
@@ -199,15 +200,10 @@ class TopOverlay extends _base.Overlay {
|
|
199
200
|
* Adjust overlay root childs size.
|
200
201
|
*/
|
201
202
|
adjustRootChildrenSize() {
|
202
|
-
var _selections$getCell$g;
|
203
203
|
const {
|
204
204
|
holder
|
205
205
|
} = this.clone.wtTable;
|
206
|
-
const
|
207
|
-
selections
|
208
|
-
} = this.wot;
|
209
|
-
const facade = this.facadeGetter();
|
210
|
-
const selectionCornerOffset = Math.abs((_selections$getCell$g = selections === null || selections === void 0 ? void 0 : selections.getCell().getBorder(facade).cornerCenterPointOffset) !== null && _selections$getCell$g !== void 0 ? _selections$getCell$g : 0);
|
206
|
+
const selectionCornerOffset = this.wot.selectionManager.getFocusSelection() ? parseInt(_selection.CORNER_DEFAULT_STYLE.height, 10) / 2 : 0;
|
211
207
|
this.clone.wtTable.hider.style.width = this.hider.style.width;
|
212
208
|
holder.style.width = holder.parentNode.style.width;
|
213
209
|
// Add selection corner protruding part to the holder total height to make sure that
|
@@ -5,6 +5,7 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input ===
|
|
5
5
|
import { addClass, getScrollbarWidth, getScrollTop, getWindowScrollLeft, hasClass, outerHeight, removeClass, setOverlayPosition, resetCssTransform } from "../../../../helpers/dom/element.mjs";
|
6
6
|
import TopOverlayTable from "./../table/top.mjs";
|
7
7
|
import { Overlay } from "./_base.mjs";
|
8
|
+
import { CORNER_DEFAULT_STYLE } from "../selection/index.mjs";
|
8
9
|
import { CLONE_TOP } from "./constants.mjs";
|
9
10
|
/**
|
10
11
|
* @class TopOverlay
|
@@ -195,15 +196,10 @@ export class TopOverlay extends Overlay {
|
|
195
196
|
* Adjust overlay root childs size.
|
196
197
|
*/
|
197
198
|
adjustRootChildrenSize() {
|
198
|
-
var _selections$getCell$g;
|
199
199
|
const {
|
200
200
|
holder
|
201
201
|
} = this.clone.wtTable;
|
202
|
-
const
|
203
|
-
selections
|
204
|
-
} = this.wot;
|
205
|
-
const facade = this.facadeGetter();
|
206
|
-
const selectionCornerOffset = Math.abs((_selections$getCell$g = selections === null || selections === void 0 ? void 0 : selections.getCell().getBorder(facade).cornerCenterPointOffset) !== null && _selections$getCell$g !== void 0 ? _selections$getCell$g : 0);
|
202
|
+
const selectionCornerOffset = this.wot.selectionManager.getFocusSelection() ? parseInt(CORNER_DEFAULT_STYLE.height, 10) / 2 : 0;
|
207
203
|
this.clone.wtTable.hider.style.width = this.hider.style.width;
|
208
204
|
holder.style.width = holder.parentNode.style.width;
|
209
205
|
// Add selection corner protruding part to the holder total height to make sure that
|
@@ -4,6 +4,7 @@ exports.__esModule = true;
|
|
4
4
|
var _element = require("./../../../../helpers/dom/element");
|
5
5
|
var _orderView = require("./../utils/orderView");
|
6
6
|
var _base = _interopRequireDefault(require("./_base"));
|
7
|
+
var _a11y = require("../../../../helpers/a11y");
|
7
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
8
9
|
/**
|
9
10
|
* Cell renderer responsible for managing (inserting, tracking, rendering) TD elements.
|
@@ -82,7 +83,16 @@ class CellsRenderer extends _base.default {
|
|
82
83
|
}
|
83
84
|
TD.removeAttribute('style');
|
84
85
|
TD.removeAttribute('dir');
|
86
|
+
|
87
|
+
// Remove all accessibility-related attributes for the cell to start fresh.
|
88
|
+
(0, _element.removeAttribute)(TD, [new RegExp('aria-(.*)'), new RegExp('role')]);
|
85
89
|
this.table.cellRenderer(sourceRowIndex, sourceColumnIndex, TD);
|
90
|
+
if (this.table.isAriaEnabled()) {
|
91
|
+
var _this$table$rowUtils$, _this$table$rowUtils;
|
92
|
+
(0, _element.setAttribute)(TD, [...(TD.hasAttribute('role') ? [] : [(0, _a11y.A11Y_GRIDCELL)()]), (0, _a11y.A11Y_TABINDEX)(-1),
|
93
|
+
// `aria-colindex` is incremented by both tbody and thead rows.
|
94
|
+
(0, _a11y.A11Y_COLINDEX)(sourceColumnIndex + ((_this$table$rowUtils$ = (_this$table$rowUtils = this.table.rowUtils) === null || _this$table$rowUtils === void 0 || (_this$table$rowUtils = _this$table$rowUtils.dataAccessObject) === null || _this$table$rowUtils === void 0 ? void 0 : _this$table$rowUtils.rowHeaders.length) !== null && _this$table$rowUtils$ !== void 0 ? _this$table$rowUtils$ : 0) + 1)]);
|
95
|
+
}
|
86
96
|
}
|
87
97
|
orderView.end();
|
88
98
|
}
|
@@ -1,6 +1,7 @@
|
|
1
|
-
import { hasClass } from "./../../../../helpers/dom/element.mjs";
|
1
|
+
import { hasClass, removeAttribute, setAttribute } from "./../../../../helpers/dom/element.mjs";
|
2
2
|
import { SharedOrderView } from "./../utils/orderView/index.mjs";
|
3
3
|
import BaseRenderer from "./_base.mjs";
|
4
|
+
import { A11Y_COLINDEX, A11Y_GRIDCELL, A11Y_TABINDEX } from "../../../../helpers/a11y.mjs";
|
4
5
|
/**
|
5
6
|
* Cell renderer responsible for managing (inserting, tracking, rendering) TD elements.
|
6
7
|
*
|
@@ -78,7 +79,16 @@ export default class CellsRenderer extends BaseRenderer {
|
|
78
79
|
}
|
79
80
|
TD.removeAttribute('style');
|
80
81
|
TD.removeAttribute('dir');
|
82
|
+
|
83
|
+
// Remove all accessibility-related attributes for the cell to start fresh.
|
84
|
+
removeAttribute(TD, [new RegExp('aria-(.*)'), new RegExp('role')]);
|
81
85
|
this.table.cellRenderer(sourceRowIndex, sourceColumnIndex, TD);
|
86
|
+
if (this.table.isAriaEnabled()) {
|
87
|
+
var _this$table$rowUtils$, _this$table$rowUtils;
|
88
|
+
setAttribute(TD, [...(TD.hasAttribute('role') ? [] : [A11Y_GRIDCELL()]), A11Y_TABINDEX(-1),
|
89
|
+
// `aria-colindex` is incremented by both tbody and thead rows.
|
90
|
+
A11Y_COLINDEX(sourceColumnIndex + ((_this$table$rowUtils$ = (_this$table$rowUtils = this.table.rowUtils) === null || _this$table$rowUtils === void 0 || (_this$table$rowUtils = _this$table$rowUtils.dataAccessObject) === null || _this$table$rowUtils === void 0 ? void 0 : _this$table$rowUtils.rowHeaders.length) !== null && _this$table$rowUtils$ !== void 0 ? _this$table$rowUtils$ : 0) + 1)]);
|
91
|
+
}
|
82
92
|
}
|
83
93
|
orderView.end();
|
84
94
|
}
|
@@ -3,6 +3,7 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
var _element = require("./../../../../helpers/dom/element");
|
5
5
|
var _base = _interopRequireDefault(require("./_base"));
|
6
|
+
var _a11y = require("../../../../helpers/a11y");
|
6
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
7
8
|
/**
|
8
9
|
* Column headers renderer responsible for managing (inserting, tracking, rendering) TR and TH elements.
|
@@ -69,6 +70,9 @@ class ColumnHeadersRenderer extends _base.default {
|
|
69
70
|
const {
|
70
71
|
columnHeadersCount
|
71
72
|
} = this.table;
|
73
|
+
if (this.table.isAriaEnabled()) {
|
74
|
+
(0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_PRESENTATION)()]);
|
75
|
+
}
|
72
76
|
for (let rowHeaderIndex = 0; rowHeaderIndex < columnHeadersCount; rowHeaderIndex += 1) {
|
73
77
|
const {
|
74
78
|
columnHeaderFunctions,
|
@@ -76,12 +80,18 @@ class ColumnHeadersRenderer extends _base.default {
|
|
76
80
|
rowHeadersCount
|
77
81
|
} = this.table;
|
78
82
|
const TR = this.rootNode.childNodes[rowHeaderIndex];
|
83
|
+
if (this.table.isAriaEnabled()) {
|
84
|
+
(0, _element.setAttribute)(TR, [(0, _a11y.A11Y_ROW)(), (0, _a11y.A11Y_ROWINDEX)(rowHeaderIndex + 1)]);
|
85
|
+
}
|
79
86
|
for (let renderedColumnIndex = -1 * rowHeadersCount; renderedColumnIndex < columnsToRender; renderedColumnIndex += 1) {
|
80
87
|
// eslint-disable-line max-len
|
81
88
|
const sourceColumnIndex = this.table.renderedColumnToSource(renderedColumnIndex);
|
82
89
|
const TH = TR.childNodes[renderedColumnIndex + rowHeadersCount];
|
83
90
|
TH.className = '';
|
84
91
|
TH.removeAttribute('style');
|
92
|
+
if (this.table.isAriaEnabled()) {
|
93
|
+
(0, _element.setAttribute)(TH, [(0, _a11y.A11Y_COLINDEX)(renderedColumnIndex + 1 + this.table.rowHeadersCount), (0, _a11y.A11Y_TABINDEX)(-1), ...(renderedColumnIndex < 0 ? [(0, _a11y.A11Y_PRESENTATION)()] : [(0, _a11y.A11Y_COLUMNHEADER)(), (0, _a11y.A11Y_SCOPE_COL)()])]);
|
94
|
+
}
|
85
95
|
columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
|
86
96
|
}
|
87
97
|
}
|
@@ -1,5 +1,6 @@
|
|
1
|
-
import { empty } from "./../../../../helpers/dom/element.mjs";
|
1
|
+
import { empty, setAttribute } from "./../../../../helpers/dom/element.mjs";
|
2
2
|
import BaseRenderer from "./_base.mjs";
|
3
|
+
import { A11Y_COLINDEX, A11Y_COLUMNHEADER, A11Y_PRESENTATION, A11Y_ROW, A11Y_ROWINDEX, A11Y_SCOPE_COL, A11Y_TABINDEX } from "../../../../helpers/a11y.mjs";
|
3
4
|
/**
|
4
5
|
* Column headers renderer responsible for managing (inserting, tracking, rendering) TR and TH elements.
|
5
6
|
*
|
@@ -65,6 +66,9 @@ export default class ColumnHeadersRenderer extends BaseRenderer {
|
|
65
66
|
const {
|
66
67
|
columnHeadersCount
|
67
68
|
} = this.table;
|
69
|
+
if (this.table.isAriaEnabled()) {
|
70
|
+
setAttribute(this.rootNode, [A11Y_PRESENTATION()]);
|
71
|
+
}
|
68
72
|
for (let rowHeaderIndex = 0; rowHeaderIndex < columnHeadersCount; rowHeaderIndex += 1) {
|
69
73
|
const {
|
70
74
|
columnHeaderFunctions,
|
@@ -72,12 +76,18 @@ export default class ColumnHeadersRenderer extends BaseRenderer {
|
|
72
76
|
rowHeadersCount
|
73
77
|
} = this.table;
|
74
78
|
const TR = this.rootNode.childNodes[rowHeaderIndex];
|
79
|
+
if (this.table.isAriaEnabled()) {
|
80
|
+
setAttribute(TR, [A11Y_ROW(), A11Y_ROWINDEX(rowHeaderIndex + 1)]);
|
81
|
+
}
|
75
82
|
for (let renderedColumnIndex = -1 * rowHeadersCount; renderedColumnIndex < columnsToRender; renderedColumnIndex += 1) {
|
76
83
|
// eslint-disable-line max-len
|
77
84
|
const sourceColumnIndex = this.table.renderedColumnToSource(renderedColumnIndex);
|
78
85
|
const TH = TR.childNodes[renderedColumnIndex + rowHeadersCount];
|
79
86
|
TH.className = '';
|
80
87
|
TH.removeAttribute('style');
|
88
|
+
if (this.table.isAriaEnabled()) {
|
89
|
+
setAttribute(TH, [A11Y_COLINDEX(renderedColumnIndex + 1 + this.table.rowHeadersCount), A11Y_TABINDEX(-1), ...(renderedColumnIndex < 0 ? [A11Y_PRESENTATION()] : [A11Y_COLUMNHEADER(), A11Y_SCOPE_COL()])]);
|
90
|
+
}
|
81
91
|
columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
|
82
92
|
}
|
83
93
|
}
|
@@ -3,6 +3,8 @@
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
var _orderView = require("./../utils/orderView");
|
5
5
|
var _base = _interopRequireDefault(require("./_base"));
|
6
|
+
var _element = require("../../../../helpers/dom/element");
|
7
|
+
var _a11y = require("../../../../helpers/a11y");
|
6
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
7
9
|
/**
|
8
10
|
* Row headers renderer responsible for managing (inserting, tracking, rendering) TR elements belongs to TR.
|
@@ -74,6 +76,9 @@ class RowHeadersRenderer extends _base.default {
|
|
74
76
|
const TH = orderView.getCurrentNode();
|
75
77
|
TH.className = '';
|
76
78
|
TH.removeAttribute('style');
|
79
|
+
if (this.table.isAriaEnabled()) {
|
80
|
+
(0, _element.setAttribute)(TH, [(0, _a11y.A11Y_ROWHEADER)(), (0, _a11y.A11Y_SCOPE_ROW)(), (0, _a11y.A11Y_COLINDEX)(visibleColumnIndex + 1), (0, _a11y.A11Y_TABINDEX)(-1)]);
|
81
|
+
}
|
77
82
|
rowHeaderFunctions[visibleColumnIndex](sourceRowIndex, TH, visibleColumnIndex);
|
78
83
|
}
|
79
84
|
orderView.end();
|
@@ -1,5 +1,7 @@
|
|
1
1
|
import { SharedOrderView } from "./../utils/orderView/index.mjs";
|
2
2
|
import BaseRenderer from "./_base.mjs";
|
3
|
+
import { setAttribute } from "../../../../helpers/dom/element.mjs";
|
4
|
+
import { A11Y_COLINDEX, A11Y_ROWHEADER, A11Y_SCOPE_ROW, A11Y_TABINDEX } from "../../../../helpers/a11y.mjs";
|
3
5
|
/**
|
4
6
|
* Row headers renderer responsible for managing (inserting, tracking, rendering) TR elements belongs to TR.
|
5
7
|
*
|
@@ -70,6 +72,9 @@ export default class RowHeadersRenderer extends BaseRenderer {
|
|
70
72
|
const TH = orderView.getCurrentNode();
|
71
73
|
TH.className = '';
|
72
74
|
TH.removeAttribute('style');
|
75
|
+
if (this.table.isAriaEnabled()) {
|
76
|
+
setAttribute(TH, [A11Y_ROWHEADER(), A11Y_SCOPE_ROW(), A11Y_COLINDEX(visibleColumnIndex + 1), A11Y_TABINDEX(-1)]);
|
77
|
+
}
|
73
78
|
rowHeaderFunctions[visibleColumnIndex](sourceRowIndex, TH, visibleColumnIndex);
|
74
79
|
}
|
75
80
|
orderView.end();
|
@@ -5,6 +5,8 @@ var _console = require("./../../../../helpers/console");
|
|
5
5
|
var _templateLiteralTag = require("./../../../../helpers/templateLiteralTag");
|
6
6
|
var _orderView = require("./../utils/orderView");
|
7
7
|
var _base = _interopRequireDefault(require("./_base"));
|
8
|
+
var _element = require("../../../../helpers/dom/element");
|
9
|
+
var _a11y = require("../../../../helpers/a11y");
|
8
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
9
11
|
let performanceWarningAppeared = false;
|
10
12
|
|
@@ -53,9 +55,20 @@ class RowsRenderer extends _base.default {
|
|
53
55
|
(0, _console.warn)((0, _templateLiteralTag.toSingleLine)`Performance tip: Handsontable rendered more than 1000 visible rows. Consider limiting\x20
|
54
56
|
the number of rendered rows by specifying the table height and/or turning off the "renderAllRows" option.`);
|
55
57
|
}
|
58
|
+
if (this.table.isAriaEnabled()) {
|
59
|
+
(0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_PRESENTATION)()]);
|
60
|
+
}
|
56
61
|
this.orderView.setSize(rowsToRender).setOffset(this.table.renderedRowToSource(0)).start();
|
57
62
|
for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
|
58
63
|
this.orderView.render();
|
64
|
+
const TR = this.orderView.getCurrentNode();
|
65
|
+
const sourceRowIndex = this.table.renderedRowToSource(visibleRowIndex);
|
66
|
+
if (this.table.isAriaEnabled()) {
|
67
|
+
var _this$table$rowUtils$, _this$table$rowUtils;
|
68
|
+
(0, _element.setAttribute)(TR, [(0, _a11y.A11Y_ROW)(),
|
69
|
+
// `aria-rowindex` is incremented by both tbody and thead rows.
|
70
|
+
(0, _a11y.A11Y_ROWINDEX)(sourceRowIndex + ((_this$table$rowUtils$ = (_this$table$rowUtils = this.table.rowUtils) === null || _this$table$rowUtils === void 0 || (_this$table$rowUtils = _this$table$rowUtils.dataAccessObject) === null || _this$table$rowUtils === void 0 ? void 0 : _this$table$rowUtils.columnHeaders.length) !== null && _this$table$rowUtils$ !== void 0 ? _this$table$rowUtils$ : 0) + 1)]);
|
71
|
+
}
|
59
72
|
}
|
60
73
|
this.orderView.end();
|
61
74
|
}
|
@@ -2,6 +2,8 @@ import { warn } from "./../../../../helpers/console.mjs";
|
|
2
2
|
import { toSingleLine } from "./../../../../helpers/templateLiteralTag.mjs";
|
3
3
|
import { OrderView } from "./../utils/orderView/index.mjs";
|
4
4
|
import BaseRenderer from "./_base.mjs";
|
5
|
+
import { setAttribute } from "../../../../helpers/dom/element.mjs";
|
6
|
+
import { A11Y_PRESENTATION, A11Y_ROW, A11Y_ROWINDEX } from "../../../../helpers/a11y.mjs";
|
5
7
|
let performanceWarningAppeared = false;
|
6
8
|
|
7
9
|
/**
|
@@ -49,9 +51,20 @@ export default class RowsRenderer extends BaseRenderer {
|
|
49
51
|
warn(toSingleLine`Performance tip: Handsontable rendered more than 1000 visible rows. Consider limiting\x20
|
50
52
|
the number of rendered rows by specifying the table height and/or turning off the "renderAllRows" option.`);
|
51
53
|
}
|
54
|
+
if (this.table.isAriaEnabled()) {
|
55
|
+
setAttribute(this.rootNode, [A11Y_PRESENTATION()]);
|
56
|
+
}
|
52
57
|
this.orderView.setSize(rowsToRender).setOffset(this.table.renderedRowToSource(0)).start();
|
53
58
|
for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
|
54
59
|
this.orderView.render();
|
60
|
+
const TR = this.orderView.getCurrentNode();
|
61
|
+
const sourceRowIndex = this.table.renderedRowToSource(visibleRowIndex);
|
62
|
+
if (this.table.isAriaEnabled()) {
|
63
|
+
var _this$table$rowUtils$, _this$table$rowUtils;
|
64
|
+
setAttribute(TR, [A11Y_ROW(),
|
65
|
+
// `aria-rowindex` is incremented by both tbody and thead rows.
|
66
|
+
A11Y_ROWINDEX(sourceRowIndex + ((_this$table$rowUtils$ = (_this$table$rowUtils = this.table.rowUtils) === null || _this$table$rowUtils === void 0 || (_this$table$rowUtils = _this$table$rowUtils.dataAccessObject) === null || _this$table$rowUtils === void 0 ? void 0 : _this$table$rowUtils.columnHeaders.length) !== null && _this$table$rowUtils$ !== void 0 ? _this$table$rowUtils$ : 0) + 1)]);
|
67
|
+
}
|
55
68
|
}
|
56
69
|
this.orderView.end();
|
57
70
|
}
|
@@ -257,6 +257,15 @@ class TableRenderer {
|
|
257
257
|
return this.columnFilter.renderedToSource(columnIndex);
|
258
258
|
}
|
259
259
|
|
260
|
+
/**
|
261
|
+
* Returns `true` if the accessibility-related ARIA tags should be added to the table, `false` otherwise.
|
262
|
+
*
|
263
|
+
* @returns {boolean}
|
264
|
+
*/
|
265
|
+
isAriaEnabled() {
|
266
|
+
return this.rowUtils.wtSettings.getSetting('ariaTags');
|
267
|
+
}
|
268
|
+
|
260
269
|
/**
|
261
270
|
* Renders the table.
|
262
271
|
*/
|
@@ -254,6 +254,15 @@ export default class TableRenderer {
|
|
254
254
|
return this.columnFilter.renderedToSource(columnIndex);
|
255
255
|
}
|
256
256
|
|
257
|
+
/**
|
258
|
+
* Returns `true` if the accessibility-related ARIA tags should be added to the table, `false` otherwise.
|
259
|
+
*
|
260
|
+
* @returns {boolean}
|
261
|
+
*/
|
262
|
+
isAriaEnabled() {
|
263
|
+
return this.rowUtils.wtSettings.getSetting('ariaTags');
|
264
|
+
}
|
265
|
+
|
257
266
|
/**
|
258
267
|
* Renders the table.
|
259
268
|
*/
|
@@ -88,6 +88,7 @@ class Scroll {
|
|
88
88
|
return false;
|
89
89
|
}
|
90
90
|
let result = false;
|
91
|
+
column = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollHorizontally', column);
|
91
92
|
|
92
93
|
// if there is no fully visible columns use the supporting variable (lastScrolledColumnPos) to
|
93
94
|
// determine the snapping direction (left or right)
|
@@ -137,6 +138,7 @@ class Scroll {
|
|
137
138
|
return false;
|
138
139
|
}
|
139
140
|
let result = false;
|
141
|
+
row = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollVertically', row);
|
140
142
|
|
141
143
|
// if there is no fully visible rows use the supporting variable (lastScrolledRowPos) to
|
142
144
|
// determine the snapping direction (top or bottom)
|
@@ -85,6 +85,7 @@ class Scroll {
|
|
85
85
|
return false;
|
86
86
|
}
|
87
87
|
let result = false;
|
88
|
+
column = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollHorizontally', column);
|
88
89
|
|
89
90
|
// if there is no fully visible columns use the supporting variable (lastScrolledColumnPos) to
|
90
91
|
// determine the snapping direction (left or right)
|
@@ -134,6 +135,7 @@ class Scroll {
|
|
134
135
|
return false;
|
135
136
|
}
|
136
137
|
let result = false;
|
138
|
+
row = this.dataAccessObject.wtSettings.getSetting('onBeforeViewportScrollVertically', row);
|
137
139
|
|
138
140
|
// if there is no fully visible rows use the supporting variable (lastScrolledRowPos) to
|
139
141
|
// determine the snapping direction (top or bottom)
|
@@ -1,10 +1,11 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
-
var _element = require("
|
5
|
-
var _event = require("
|
6
|
-
var _object = require("
|
7
|
-
var _browser = require("
|
4
|
+
var _element = require("../../../../../helpers/dom/element");
|
5
|
+
var _event = require("../../../../../helpers/dom/event");
|
6
|
+
var _object = require("../../../../../helpers/object");
|
7
|
+
var _browser = require("../../../../../helpers/browser");
|
8
|
+
var _constants = require("./constants");
|
8
9
|
/**
|
9
10
|
*
|
10
11
|
*/
|
@@ -34,13 +35,7 @@ class Border {
|
|
34
35
|
this.bottomStyle = null;
|
35
36
|
this.startStyle = null;
|
36
37
|
this.endStyle = null;
|
37
|
-
this.cornerDefaultStyle =
|
38
|
-
width: '6px',
|
39
|
-
height: '6px',
|
40
|
-
borderWidth: '1px',
|
41
|
-
borderStyle: 'solid',
|
42
|
-
borderColor: '#FFF'
|
43
|
-
};
|
38
|
+
this.cornerDefaultStyle = _constants.CORNER_DEFAULT_STYLE;
|
44
39
|
// Offset to moving the corner to be centered relative to the grid.
|
45
40
|
this.cornerCenterPointOffset = -(parseInt(this.cornerDefaultStyle.width, 10) / 2);
|
46
41
|
this.corner = null;
|
@@ -250,7 +245,7 @@ class Border {
|
|
250
245
|
* @returns {boolean}
|
251
246
|
*/
|
252
247
|
isPartRange(row, col) {
|
253
|
-
const areaSelection = this.wot.
|
248
|
+
const areaSelection = this.wot.selectionManager.getAreaSelection();
|
254
249
|
if (areaSelection.cellRange) {
|
255
250
|
if (row !== areaSelection.cellRange.to.row || col !== areaSelection.cellRange.to.col) {
|
256
251
|
return true;
|
@@ -1,7 +1,8 @@
|
|
1
|
-
import { addClass, hasClass, removeClass, getComputedStyle, getTrimmingContainer, innerWidth, innerHeight, offset, outerHeight, outerWidth } from "
|
2
|
-
import { stopImmediatePropagation } from "
|
3
|
-
import { objectEach } from "
|
4
|
-
import { isMobileBrowser } from "
|
1
|
+
import { addClass, hasClass, removeClass, getComputedStyle, getTrimmingContainer, innerWidth, innerHeight, offset, outerHeight, outerWidth } from "../../../../../helpers/dom/element.mjs";
|
2
|
+
import { stopImmediatePropagation } from "../../../../../helpers/dom/event.mjs";
|
3
|
+
import { objectEach } from "../../../../../helpers/object.mjs";
|
4
|
+
import { isMobileBrowser } from "../../../../../helpers/browser.mjs";
|
5
|
+
import { CORNER_DEFAULT_STYLE } from "./constants.mjs";
|
5
6
|
/**
|
6
7
|
*
|
7
8
|
*/
|
@@ -31,13 +32,7 @@ class Border {
|
|
31
32
|
this.bottomStyle = null;
|
32
33
|
this.startStyle = null;
|
33
34
|
this.endStyle = null;
|
34
|
-
this.cornerDefaultStyle =
|
35
|
-
width: '6px',
|
36
|
-
height: '6px',
|
37
|
-
borderWidth: '1px',
|
38
|
-
borderStyle: 'solid',
|
39
|
-
borderColor: '#FFF'
|
40
|
-
};
|
35
|
+
this.cornerDefaultStyle = CORNER_DEFAULT_STYLE;
|
41
36
|
// Offset to moving the corner to be centered relative to the grid.
|
42
37
|
this.cornerCenterPointOffset = -(parseInt(this.cornerDefaultStyle.width, 10) / 2);
|
43
38
|
this.corner = null;
|
@@ -247,7 +242,7 @@ class Border {
|
|
247
242
|
* @returns {boolean}
|
248
243
|
*/
|
249
244
|
isPartRange(row, col) {
|
250
|
-
const areaSelection = this.wot.
|
245
|
+
const areaSelection = this.wot.selectionManager.getAreaSelection();
|
251
246
|
if (areaSelection.cellRange) {
|
252
247
|
if (row !== areaSelection.cellRange.to.row || col !== areaSelection.cellRange.to.col) {
|
253
248
|
return true;
|
@@ -0,0 +1,16 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
/**
|
5
|
+
* Default border corner style.
|
6
|
+
*
|
7
|
+
* @type {object}
|
8
|
+
*/
|
9
|
+
const CORNER_DEFAULT_STYLE = Object.freeze({
|
10
|
+
width: '6px',
|
11
|
+
height: '6px',
|
12
|
+
borderWidth: '1px',
|
13
|
+
borderStyle: 'solid',
|
14
|
+
borderColor: '#FFF'
|
15
|
+
});
|
16
|
+
exports.CORNER_DEFAULT_STYLE = CORNER_DEFAULT_STYLE;
|