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
@@ -10,6 +10,7 @@ import { TrimmingMap } from "../../translations/index.mjs";
|
|
10
10
|
import RowMoveController from "./utils/rowMoveController.mjs";
|
11
11
|
export const PLUGIN_KEY = 'nestedRows';
|
12
12
|
export const PLUGIN_PRIORITY = 300;
|
13
|
+
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
13
14
|
const privatePool = new WeakMap();
|
14
15
|
|
15
16
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
@@ -144,6 +145,7 @@ export class NestedRows extends BasePlugin {
|
|
144
145
|
});
|
145
146
|
this.addHook('beforeLoadData', data => this.onBeforeLoadData(data));
|
146
147
|
this.addHook('beforeUpdateData', data => this.onBeforeLoadData(data));
|
148
|
+
this.registerShortcuts();
|
147
149
|
super.enablePlugin();
|
148
150
|
}
|
149
151
|
|
@@ -152,6 +154,7 @@ export class NestedRows extends BasePlugin {
|
|
152
154
|
*/
|
153
155
|
disablePlugin() {
|
154
156
|
this.hot.rowIndexMapper.unregisterMap('nestedRows');
|
157
|
+
this.unregisterShortcuts();
|
155
158
|
super.disablePlugin();
|
156
159
|
}
|
157
160
|
|
@@ -173,6 +176,44 @@ export class NestedRows extends BasePlugin {
|
|
173
176
|
super.updatePlugin();
|
174
177
|
}
|
175
178
|
|
179
|
+
/**
|
180
|
+
* Register shortcuts responsible for toggling collapsible columns.
|
181
|
+
*
|
182
|
+
* @private
|
183
|
+
*/
|
184
|
+
registerShortcuts() {
|
185
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
186
|
+
keys: [['Enter']],
|
187
|
+
callback: () => {
|
188
|
+
const {
|
189
|
+
highlight
|
190
|
+
} = this.hot.getSelectedRangeLast();
|
191
|
+
if (highlight.col === -1 && highlight.row >= 0) {
|
192
|
+
const row = this.collapsingUI.translateTrimmedRow(highlight.row);
|
193
|
+
if (this.collapsingUI.areChildrenCollapsed(row)) {
|
194
|
+
this.collapsingUI.expandChildren(row);
|
195
|
+
} else {
|
196
|
+
this.collapsingUI.collapseChildren(row);
|
197
|
+
}
|
198
|
+
}
|
199
|
+
},
|
200
|
+
runOnlyIf: () => {
|
201
|
+
var _this$hot$getSelected;
|
202
|
+
return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
|
203
|
+
},
|
204
|
+
group: SHORTCUTS_GROUP
|
205
|
+
});
|
206
|
+
}
|
207
|
+
|
208
|
+
/**
|
209
|
+
* Unregister shortcuts responsible for toggling collapsible columns.
|
210
|
+
*
|
211
|
+
* @private
|
212
|
+
*/
|
213
|
+
unregisterShortcuts() {
|
214
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
215
|
+
}
|
216
|
+
|
176
217
|
/**
|
177
218
|
* `beforeRowMove` hook callback.
|
178
219
|
*
|
@@ -5,6 +5,7 @@ var _array = require("../../../helpers/array");
|
|
5
5
|
var _number = require("../../../helpers/number");
|
6
6
|
var _element = require("../../../helpers/dom/element");
|
7
7
|
var _base = _interopRequireDefault(require("./_base"));
|
8
|
+
var _a11y = require("../../../helpers/a11y");
|
8
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
9
10
|
/**
|
10
11
|
* Class responsible for the UI in the Nested Rows' row headers.
|
@@ -72,6 +73,7 @@ class HeadersUI extends _base.default {
|
|
72
73
|
const innerDiv = TH.getElementsByTagName('DIV')[0];
|
73
74
|
const innerSpan = innerDiv.querySelector('span.rowHeader');
|
74
75
|
const previousIndicators = innerDiv.querySelectorAll('[class^="ht_nesting"]');
|
76
|
+
const ariaEnabled = this.hot.getSettings().ariaTags;
|
75
77
|
(0, _array.arrayEach)(previousIndicators, elem => {
|
76
78
|
if (elem) {
|
77
79
|
innerDiv.removeChild(elem);
|
@@ -93,11 +95,20 @@ class HeadersUI extends _base.default {
|
|
93
95
|
}
|
94
96
|
if (this.dataManager.hasChildren(rowObject)) {
|
95
97
|
const buttonsContainer = this.hot.rootDocument.createElement('DIV');
|
98
|
+
if (ariaEnabled) {
|
99
|
+
(0, _element.setAttribute)(buttonsContainer, [(0, _a11y.A11Y_HIDDEN)()]);
|
100
|
+
}
|
96
101
|
(0, _element.addClass)(TH, HeadersUI.CSS_CLASSES.parent);
|
97
102
|
if (this.collapsingUI.areChildrenCollapsed(rowIndex)) {
|
98
103
|
(0, _element.addClass)(buttonsContainer, `${HeadersUI.CSS_CLASSES.button} ${HeadersUI.CSS_CLASSES.expandButton}`);
|
104
|
+
if (ariaEnabled) {
|
105
|
+
(0, _element.setAttribute)(TH, [(0, _a11y.A11Y_EXPANDED)(false)]);
|
106
|
+
}
|
99
107
|
} else {
|
100
108
|
(0, _element.addClass)(buttonsContainer, `${HeadersUI.CSS_CLASSES.button} ${HeadersUI.CSS_CLASSES.collapseButton}`);
|
109
|
+
if (ariaEnabled) {
|
110
|
+
(0, _element.setAttribute)(TH, [(0, _a11y.A11Y_EXPANDED)(true)]);
|
111
|
+
}
|
101
112
|
}
|
102
113
|
innerDiv.appendChild(buttonsContainer);
|
103
114
|
}
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import { arrayEach } from "../../../helpers/array.mjs";
|
2
2
|
import { rangeEach } from "../../../helpers/number.mjs";
|
3
|
-
import { addClass } from "../../../helpers/dom/element.mjs";
|
3
|
+
import { addClass, setAttribute } from "../../../helpers/dom/element.mjs";
|
4
4
|
import BaseUI from "./_base.mjs";
|
5
|
+
import { A11Y_EXPANDED, A11Y_HIDDEN } from "../../../helpers/a11y.mjs";
|
5
6
|
/**
|
6
7
|
* Class responsible for the UI in the Nested Rows' row headers.
|
7
8
|
*
|
@@ -68,6 +69,7 @@ class HeadersUI extends BaseUI {
|
|
68
69
|
const innerDiv = TH.getElementsByTagName('DIV')[0];
|
69
70
|
const innerSpan = innerDiv.querySelector('span.rowHeader');
|
70
71
|
const previousIndicators = innerDiv.querySelectorAll('[class^="ht_nesting"]');
|
72
|
+
const ariaEnabled = this.hot.getSettings().ariaTags;
|
71
73
|
arrayEach(previousIndicators, elem => {
|
72
74
|
if (elem) {
|
73
75
|
innerDiv.removeChild(elem);
|
@@ -89,11 +91,20 @@ class HeadersUI extends BaseUI {
|
|
89
91
|
}
|
90
92
|
if (this.dataManager.hasChildren(rowObject)) {
|
91
93
|
const buttonsContainer = this.hot.rootDocument.createElement('DIV');
|
94
|
+
if (ariaEnabled) {
|
95
|
+
setAttribute(buttonsContainer, [A11Y_HIDDEN()]);
|
96
|
+
}
|
92
97
|
addClass(TH, HeadersUI.CSS_CLASSES.parent);
|
93
98
|
if (this.collapsingUI.areChildrenCollapsed(rowIndex)) {
|
94
99
|
addClass(buttonsContainer, `${HeadersUI.CSS_CLASSES.button} ${HeadersUI.CSS_CLASSES.expandButton}`);
|
100
|
+
if (ariaEnabled) {
|
101
|
+
setAttribute(TH, [A11Y_EXPANDED(false)]);
|
102
|
+
}
|
95
103
|
} else {
|
96
104
|
addClass(buttonsContainer, `${HeadersUI.CSS_CLASSES.button} ${HeadersUI.CSS_CLASSES.collapseButton}`);
|
105
|
+
if (ariaEnabled) {
|
106
|
+
setAttribute(TH, [A11Y_EXPANDED(true)]);
|
107
|
+
}
|
97
108
|
}
|
98
109
|
innerDiv.appendChild(buttonsContainer);
|
99
110
|
}
|
@@ -6,6 +6,7 @@ var _htmlRenderer = require("../htmlRenderer");
|
|
6
6
|
var _textRenderer = require("../textRenderer");
|
7
7
|
var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
8
8
|
var _element = require("../../helpers/dom/element");
|
9
|
+
var _a11y = require("../../helpers/a11y");
|
9
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
10
11
|
const RENDERER_TYPE = 'autocomplete';
|
11
12
|
|
@@ -28,7 +29,11 @@ function autocompleteRenderer(instance, TD, row, col, prop, value, cellPropertie
|
|
28
29
|
} = instance;
|
29
30
|
const rendererFunc = cellProperties.allowHtml ? _htmlRenderer.htmlRenderer : _textRenderer.textRenderer;
|
30
31
|
const ARROW = rootDocument.createElement('DIV');
|
32
|
+
const isAriaEnabled = instance.getSettings().ariaTags;
|
31
33
|
ARROW.className = 'htAutocompleteArrow';
|
34
|
+
if (isAriaEnabled) {
|
35
|
+
ARROW.setAttribute(...(0, _a11y.A11Y_HIDDEN)());
|
36
|
+
}
|
32
37
|
ARROW.appendChild(rootDocument.createTextNode(String.fromCharCode(9660)));
|
33
38
|
rendererFunc.apply(this, [instance, TD, row, col, prop, value, cellProperties]);
|
34
39
|
if (!TD.firstChild) {
|
@@ -40,6 +45,9 @@ function autocompleteRenderer(instance, TD, row, col, prop, value, cellPropertie
|
|
40
45
|
|
41
46
|
TD.insertBefore(ARROW, TD.firstChild);
|
42
47
|
(0, _element.addClass)(TD, 'htAutocomplete');
|
48
|
+
if (isAriaEnabled) {
|
49
|
+
TD.setAttribute(...(0, _a11y.A11Y_HASPOPUP)('listbox'));
|
50
|
+
}
|
43
51
|
if (!instance.acArrowListener) {
|
44
52
|
const eventManager = new _eventManager.default(instance);
|
45
53
|
|
@@ -2,6 +2,7 @@ import { htmlRenderer } from "../htmlRenderer/index.mjs";
|
|
2
2
|
import { textRenderer } from "../textRenderer/index.mjs";
|
3
3
|
import EventManager from "../../eventManager.mjs";
|
4
4
|
import { addClass, hasClass } from "../../helpers/dom/element.mjs";
|
5
|
+
import { A11Y_HASPOPUP, A11Y_HIDDEN } from "../../helpers/a11y.mjs";
|
5
6
|
export const RENDERER_TYPE = 'autocomplete';
|
6
7
|
|
7
8
|
/**
|
@@ -22,7 +23,11 @@ export function autocompleteRenderer(instance, TD, row, col, prop, value, cellPr
|
|
22
23
|
} = instance;
|
23
24
|
const rendererFunc = cellProperties.allowHtml ? htmlRenderer : textRenderer;
|
24
25
|
const ARROW = rootDocument.createElement('DIV');
|
26
|
+
const isAriaEnabled = instance.getSettings().ariaTags;
|
25
27
|
ARROW.className = 'htAutocompleteArrow';
|
28
|
+
if (isAriaEnabled) {
|
29
|
+
ARROW.setAttribute(...A11Y_HIDDEN());
|
30
|
+
}
|
26
31
|
ARROW.appendChild(rootDocument.createTextNode(String.fromCharCode(9660)));
|
27
32
|
rendererFunc.apply(this, [instance, TD, row, col, prop, value, cellProperties]);
|
28
33
|
if (!TD.firstChild) {
|
@@ -34,6 +39,9 @@ export function autocompleteRenderer(instance, TD, row, col, prop, value, cellPr
|
|
34
39
|
|
35
40
|
TD.insertBefore(ARROW, TD.firstChild);
|
36
41
|
addClass(TD, 'htAutocomplete');
|
42
|
+
if (isAriaEnabled) {
|
43
|
+
TD.setAttribute(...A11Y_HASPOPUP('listbox'));
|
44
|
+
}
|
37
45
|
if (!instance.acArrowListener) {
|
38
46
|
const eventManager = new EventManager(instance);
|
39
47
|
|
@@ -4,6 +4,7 @@ exports.__esModule = true;
|
|
4
4
|
exports.baseRenderer = baseRenderer;
|
5
5
|
require("core-js/modules/es.array.push.js");
|
6
6
|
var _element = require("../../helpers/dom/element");
|
7
|
+
var _a11y = require("../../helpers/a11y");
|
7
8
|
/**
|
8
9
|
* Adds appropriate CSS class to table cell, based on cellProperties.
|
9
10
|
*/
|
@@ -21,18 +22,32 @@ const RENDERER_TYPE = 'base';
|
|
21
22
|
*/
|
22
23
|
exports.RENDERER_TYPE = RENDERER_TYPE;
|
23
24
|
function baseRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
25
|
+
const ariaEnabled = cellProperties.ariaTags;
|
24
26
|
const classesToAdd = [];
|
25
27
|
const classesToRemove = [];
|
28
|
+
const attributesToRemove = [];
|
29
|
+
const attributesToAdd = [];
|
26
30
|
if (cellProperties.className) {
|
27
31
|
(0, _element.addClass)(TD, cellProperties.className);
|
28
32
|
}
|
29
33
|
if (cellProperties.readOnly) {
|
30
34
|
classesToAdd.push(cellProperties.readOnlyCellClassName);
|
35
|
+
if (ariaEnabled) {
|
36
|
+
attributesToAdd.push((0, _a11y.A11Y_READONLY)());
|
37
|
+
}
|
38
|
+
} else if (ariaEnabled) {
|
39
|
+
attributesToRemove.push((0, _a11y.A11Y_READONLY)()[0]);
|
31
40
|
}
|
32
41
|
if (cellProperties.valid === false && cellProperties.invalidCellClassName) {
|
33
42
|
classesToAdd.push(cellProperties.invalidCellClassName);
|
43
|
+
if (ariaEnabled) {
|
44
|
+
attributesToAdd.push((0, _a11y.A11Y_INVALID)());
|
45
|
+
}
|
34
46
|
} else {
|
35
47
|
classesToRemove.push(cellProperties.invalidCellClassName);
|
48
|
+
if (ariaEnabled) {
|
49
|
+
attributesToRemove.push((0, _a11y.A11Y_INVALID)()[0]);
|
50
|
+
}
|
36
51
|
}
|
37
52
|
if (cellProperties.wordWrap === false && cellProperties.noWordWrapClassName) {
|
38
53
|
classesToAdd.push(cellProperties.noWordWrapClassName);
|
@@ -42,5 +57,7 @@ function baseRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
42
57
|
}
|
43
58
|
(0, _element.removeClass)(TD, classesToRemove);
|
44
59
|
(0, _element.addClass)(TD, classesToAdd);
|
60
|
+
(0, _element.removeAttribute)(TD, attributesToRemove);
|
61
|
+
(0, _element.setAttribute)(TD, attributesToAdd);
|
45
62
|
}
|
46
63
|
baseRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -2,7 +2,8 @@ import "core-js/modules/es.array.push.js";
|
|
2
2
|
/**
|
3
3
|
* Adds appropriate CSS class to table cell, based on cellProperties.
|
4
4
|
*/
|
5
|
-
import { addClass, removeClass } from "../../helpers/dom/element.mjs";
|
5
|
+
import { addClass, removeAttribute, removeClass, setAttribute } from "../../helpers/dom/element.mjs";
|
6
|
+
import { A11Y_INVALID, A11Y_READONLY } from "../../helpers/a11y.mjs";
|
6
7
|
export const RENDERER_TYPE = 'base';
|
7
8
|
|
8
9
|
/**
|
@@ -15,18 +16,32 @@ export const RENDERER_TYPE = 'base';
|
|
15
16
|
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
16
17
|
*/
|
17
18
|
export function baseRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
19
|
+
const ariaEnabled = cellProperties.ariaTags;
|
18
20
|
const classesToAdd = [];
|
19
21
|
const classesToRemove = [];
|
22
|
+
const attributesToRemove = [];
|
23
|
+
const attributesToAdd = [];
|
20
24
|
if (cellProperties.className) {
|
21
25
|
addClass(TD, cellProperties.className);
|
22
26
|
}
|
23
27
|
if (cellProperties.readOnly) {
|
24
28
|
classesToAdd.push(cellProperties.readOnlyCellClassName);
|
29
|
+
if (ariaEnabled) {
|
30
|
+
attributesToAdd.push(A11Y_READONLY());
|
31
|
+
}
|
32
|
+
} else if (ariaEnabled) {
|
33
|
+
attributesToRemove.push(A11Y_READONLY()[0]);
|
25
34
|
}
|
26
35
|
if (cellProperties.valid === false && cellProperties.invalidCellClassName) {
|
27
36
|
classesToAdd.push(cellProperties.invalidCellClassName);
|
37
|
+
if (ariaEnabled) {
|
38
|
+
attributesToAdd.push(A11Y_INVALID());
|
39
|
+
}
|
28
40
|
} else {
|
29
41
|
classesToRemove.push(cellProperties.invalidCellClassName);
|
42
|
+
if (ariaEnabled) {
|
43
|
+
attributesToRemove.push(A11Y_INVALID()[0]);
|
44
|
+
}
|
30
45
|
}
|
31
46
|
if (cellProperties.wordWrap === false && cellProperties.noWordWrapClassName) {
|
32
47
|
classesToAdd.push(cellProperties.noWordWrapClassName);
|
@@ -36,5 +51,7 @@ export function baseRenderer(instance, TD, row, col, prop, value, cellProperties
|
|
36
51
|
}
|
37
52
|
removeClass(TD, classesToRemove);
|
38
53
|
addClass(TD, classesToAdd);
|
54
|
+
removeAttribute(TD, attributesToRemove);
|
55
|
+
setAttribute(TD, attributesToAdd);
|
39
56
|
}
|
40
57
|
baseRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -7,8 +7,10 @@ var _baseRenderer = require("../baseRenderer");
|
|
7
7
|
var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
8
8
|
var _element = require("../../helpers/dom/element");
|
9
9
|
var _mixed = require("../../helpers/mixed");
|
10
|
-
var
|
10
|
+
var _shortcutContexts = require("../../shortcutContexts");
|
11
11
|
var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
|
12
|
+
var _a11y = require("../../helpers/a11y");
|
13
|
+
var _constants = require("../../i18n/constants");
|
12
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
15
|
const isListeningKeyDownEvent = new WeakMap();
|
14
16
|
const isCheckboxListenerAdded = new WeakMap();
|
@@ -61,6 +63,7 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
61
63
|
const {
|
62
64
|
rootDocument
|
63
65
|
} = instance;
|
66
|
+
const ariaEnabled = instance.getSettings().ariaTags;
|
64
67
|
_baseRenderer.baseRenderer.apply(this, [instance, TD, row, col, prop, value, cellProperties]);
|
65
68
|
registerEvents(instance);
|
66
69
|
let input = createInput(rootDocument);
|
@@ -86,8 +89,10 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
86
89
|
(0, _element.addClass)(input, BAD_VALUE_CLASS);
|
87
90
|
badValue = true;
|
88
91
|
}
|
89
|
-
|
90
|
-
|
92
|
+
(0, _element.setAttribute)(input, [[ATTR_ROW, row], [ATTR_COLUMN, col]]);
|
93
|
+
if (ariaEnabled) {
|
94
|
+
(0, _element.setAttribute)(input, [(0, _a11y.A11Y_LABEL)(input.checked ? instance.getTranslatedPhrase(_constants.CHECKBOX_CHECKED) : instance.getTranslatedPhrase(_constants.CHECKBOX_UNCHECKED)), (0, _a11y.A11Y_CHECKED)(input.checked), (0, _a11y.A11Y_CHECKBOX)()]);
|
95
|
+
}
|
91
96
|
if (!badValue && labelOptions) {
|
92
97
|
let labelText = '';
|
93
98
|
if (labelOptions.value) {
|
@@ -158,7 +163,7 @@ function checkboxRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
|
158
163
|
return !areSelectedCheckboxCells(); // False blocks next action associated with the keyboard shortcut.
|
159
164
|
},
|
160
165
|
|
161
|
-
relativeToGroup:
|
166
|
+
relativeToGroup: _shortcutContexts.EDITOR_EDIT_GROUP,
|
162
167
|
position: 'before'
|
163
168
|
}], config);
|
164
169
|
}
|
@@ -1,10 +1,12 @@
|
|
1
1
|
import "core-js/modules/es.array.push.js";
|
2
2
|
import { baseRenderer } from "../baseRenderer/index.mjs";
|
3
3
|
import EventManager from "../../eventManager.mjs";
|
4
|
-
import { empty, addClass } from "../../helpers/dom/element.mjs";
|
4
|
+
import { empty, addClass, setAttribute } from "../../helpers/dom/element.mjs";
|
5
5
|
import { isEmpty, stringify } from "../../helpers/mixed.mjs";
|
6
|
-
import { SHORTCUTS_GROUP_EDITOR } from "../../
|
6
|
+
import { EDITOR_EDIT_GROUP as SHORTCUTS_GROUP_EDITOR } from "../../shortcutContexts/index.mjs";
|
7
7
|
import Hooks from "../../pluginHooks.mjs";
|
8
|
+
import { A11Y_CHECKBOX, A11Y_CHECKED, A11Y_LABEL } from "../../helpers/a11y.mjs";
|
9
|
+
import { CHECKBOX_CHECKED, CHECKBOX_UNCHECKED } from "../../i18n/constants.mjs";
|
8
10
|
const isListeningKeyDownEvent = new WeakMap();
|
9
11
|
const isCheckboxListenerAdded = new WeakMap();
|
10
12
|
const BAD_VALUE_CLASS = 'htBadValue';
|
@@ -55,6 +57,7 @@ export function checkboxRenderer(instance, TD, row, col, prop, value, cellProper
|
|
55
57
|
const {
|
56
58
|
rootDocument
|
57
59
|
} = instance;
|
60
|
+
const ariaEnabled = instance.getSettings().ariaTags;
|
58
61
|
baseRenderer.apply(this, [instance, TD, row, col, prop, value, cellProperties]);
|
59
62
|
registerEvents(instance);
|
60
63
|
let input = createInput(rootDocument);
|
@@ -80,8 +83,10 @@ export function checkboxRenderer(instance, TD, row, col, prop, value, cellProper
|
|
80
83
|
addClass(input, BAD_VALUE_CLASS);
|
81
84
|
badValue = true;
|
82
85
|
}
|
83
|
-
|
84
|
-
|
86
|
+
setAttribute(input, [[ATTR_ROW, row], [ATTR_COLUMN, col]]);
|
87
|
+
if (ariaEnabled) {
|
88
|
+
setAttribute(input, [A11Y_LABEL(input.checked ? instance.getTranslatedPhrase(CHECKBOX_CHECKED) : instance.getTranslatedPhrase(CHECKBOX_UNCHECKED)), A11Y_CHECKED(input.checked), A11Y_CHECKBOX()]);
|
89
|
+
}
|
85
90
|
if (!badValue && labelOptions) {
|
86
91
|
let labelText = '';
|
87
92
|
if (labelOptions.value) {
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import Core from '../../core';
|
2
|
+
import { CellProperties } from '../../settings';
|
3
|
+
|
4
|
+
export const RENDERER_TYPE: 'date';
|
5
|
+
export function dateRenderer(instance: Core, TD: HTMLTableCellElement, row: number, col: number, prop: string | number, value: any, cellProperties: CellProperties): void;
|
@@ -0,0 +1,29 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.dateRenderer = dateRenderer;
|
5
|
+
var _autocompleteRenderer = require("../autocompleteRenderer");
|
6
|
+
var _a11y = require("../../helpers/a11y");
|
7
|
+
var _element = require("../../helpers/dom/element");
|
8
|
+
const RENDERER_TYPE = 'date';
|
9
|
+
|
10
|
+
/**
|
11
|
+
* Handsontable renderer.
|
12
|
+
*
|
13
|
+
* @private
|
14
|
+
* @param {Core} instance The Handsontable instance.
|
15
|
+
* @param {HTMLTableCellElement} TD The rendered cell element.
|
16
|
+
* @param {number} row The visual row index.
|
17
|
+
* @param {number} col The visual column index.
|
18
|
+
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
19
|
+
* @param {*} value The rendered value.
|
20
|
+
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
21
|
+
*/
|
22
|
+
exports.RENDERER_TYPE = RENDERER_TYPE;
|
23
|
+
function dateRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
24
|
+
_autocompleteRenderer.autocompleteRenderer.apply(this, [instance, TD, row, col, prop, value, cellProperties]);
|
25
|
+
if (instance.getSettings().ariaTags) {
|
26
|
+
(0, _element.setAttribute)(TD, [(0, _a11y.A11Y_HASPOPUP)('dialog'), (0, _a11y.A11Y_EXPANDED)('false')]);
|
27
|
+
}
|
28
|
+
}
|
29
|
+
dateRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { autocompleteRenderer } from "../autocompleteRenderer/index.mjs";
|
2
|
+
import { A11Y_EXPANDED, A11Y_HASPOPUP } from "../../helpers/a11y.mjs";
|
3
|
+
import { setAttribute } from "../../helpers/dom/element.mjs";
|
4
|
+
export const RENDERER_TYPE = 'date';
|
5
|
+
|
6
|
+
/**
|
7
|
+
* Handsontable renderer.
|
8
|
+
*
|
9
|
+
* @private
|
10
|
+
* @param {Core} instance The Handsontable instance.
|
11
|
+
* @param {HTMLTableCellElement} TD The rendered cell element.
|
12
|
+
* @param {number} row The visual row index.
|
13
|
+
* @param {number} col The visual column index.
|
14
|
+
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
15
|
+
* @param {*} value The rendered value.
|
16
|
+
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
17
|
+
*/
|
18
|
+
export function dateRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
19
|
+
autocompleteRenderer.apply(this, [instance, TD, row, col, prop, value, cellProperties]);
|
20
|
+
if (instance.getSettings().ariaTags) {
|
21
|
+
setAttribute(TD, [A11Y_HASPOPUP('dialog'), A11Y_EXPANDED('false')]);
|
22
|
+
}
|
23
|
+
}
|
24
|
+
dateRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -0,0 +1 @@
|
|
1
|
+
export { RENDERER_TYPE, dateRenderer } from './dateRenderer';
|
@@ -0,0 +1 @@
|
|
1
|
+
export { RENDERER_TYPE, dateRenderer } from "./dateRenderer.mjs";
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import Core from '../../core';
|
2
|
+
import { CellProperties } from '../../settings';
|
3
|
+
|
4
|
+
export const RENDERER_TYPE: 'handsontable';
|
5
|
+
export function handsontableRenderer(instance: Core, TD: HTMLTableCellElement, row: number, col: number, prop: string | number, value: any, cellProperties: CellProperties): void;
|
@@ -0,0 +1,29 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.handsontableRenderer = handsontableRenderer;
|
5
|
+
var _autocompleteRenderer = require("../autocompleteRenderer");
|
6
|
+
var _a11y = require("../../helpers/a11y");
|
7
|
+
var _element = require("../../helpers/dom/element");
|
8
|
+
const RENDERER_TYPE = 'handsontable';
|
9
|
+
|
10
|
+
/**
|
11
|
+
* Handsontable renderer.
|
12
|
+
*
|
13
|
+
* @private
|
14
|
+
* @param {Core} instance The Handsontable instance.
|
15
|
+
* @param {HTMLTableCellElement} TD The rendered cell element.
|
16
|
+
* @param {number} row The visual row index.
|
17
|
+
* @param {number} col The visual column index.
|
18
|
+
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
19
|
+
* @param {*} value The rendered value.
|
20
|
+
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
21
|
+
*/
|
22
|
+
exports.RENDERER_TYPE = RENDERER_TYPE;
|
23
|
+
function handsontableRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
24
|
+
_autocompleteRenderer.autocompleteRenderer.apply(this, [instance, TD, row, col, prop, value, cellProperties]);
|
25
|
+
if (instance.getSettings().ariaTags) {
|
26
|
+
(0, _element.setAttribute)(TD, [(0, _a11y.A11Y_HASPOPUP)('true'), (0, _a11y.A11Y_EXPANDED)('false')]);
|
27
|
+
}
|
28
|
+
}
|
29
|
+
handsontableRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { autocompleteRenderer } from "../autocompleteRenderer/index.mjs";
|
2
|
+
import { A11Y_EXPANDED, A11Y_HASPOPUP } from "../../helpers/a11y.mjs";
|
3
|
+
import { setAttribute } from "../../helpers/dom/element.mjs";
|
4
|
+
export const RENDERER_TYPE = 'handsontable';
|
5
|
+
|
6
|
+
/**
|
7
|
+
* Handsontable renderer.
|
8
|
+
*
|
9
|
+
* @private
|
10
|
+
* @param {Core} instance The Handsontable instance.
|
11
|
+
* @param {HTMLTableCellElement} TD The rendered cell element.
|
12
|
+
* @param {number} row The visual row index.
|
13
|
+
* @param {number} col The visual column index.
|
14
|
+
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
15
|
+
* @param {*} value The rendered value.
|
16
|
+
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
17
|
+
*/
|
18
|
+
export function handsontableRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
19
|
+
autocompleteRenderer.apply(this, [instance, TD, row, col, prop, value, cellProperties]);
|
20
|
+
if (instance.getSettings().ariaTags) {
|
21
|
+
setAttribute(TD, [A11Y_HASPOPUP('true'), A11Y_EXPANDED('false')]);
|
22
|
+
}
|
23
|
+
}
|
24
|
+
handsontableRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -0,0 +1 @@
|
|
1
|
+
export { RENDERER_TYPE, handsontableRenderer } from './handsontableRenderer';
|
@@ -0,0 +1 @@
|
|
1
|
+
export { RENDERER_TYPE, handsontableRenderer } from "./handsontableRenderer.mjs";
|
package/renderers/index.d.ts
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
import { autocompleteRenderer, RENDERER_TYPE as AUTOCOMPLETE_RENDERER } from './autocompleteRenderer';
|
2
2
|
import { baseRenderer, RENDERER_TYPE as BASE_RENDERER } from './baseRenderer';
|
3
|
+
import { dateRenderer, RENDERER_TYPE as DATE_RENDERER } from './dateRenderer';
|
3
4
|
import { checkboxRenderer, RENDERER_TYPE as CHECKBOX_RENDERER } from './checkboxRenderer';
|
5
|
+
import { handsontableRenderer, RENDERER_TYPE as HANDSONTABLE_RENDERER } from "./handsontableRenderer";
|
4
6
|
import { htmlRenderer, RENDERER_TYPE as HTML_RENDERER } from './htmlRenderer';
|
5
7
|
import { numericRenderer, RENDERER_TYPE as NUMERIC_RENDERER } from './numericRenderer';
|
6
8
|
import { passwordRenderer, RENDERER_TYPE as PASSWORD_RENDERER } from './passwordRenderer';
|
9
|
+
import { selectRenderer, RENDERER_TYPE as SELECT_RENDERER } from './selectRenderer';
|
7
10
|
import { textRenderer, RENDERER_TYPE as TEXT_RENDERER } from './textRenderer';
|
8
11
|
import { timeRenderer, RENDERER_TYPE as TIME_RENDERER } from './timeRenderer';
|
9
12
|
|
@@ -13,9 +16,12 @@ export interface Renderers {
|
|
13
16
|
autocomplete: typeof autocompleteRenderer;
|
14
17
|
base: typeof baseRenderer;
|
15
18
|
checkbox: typeof checkboxRenderer;
|
19
|
+
date: typeof dateRenderer;
|
20
|
+
handsontable: typeof handsontableRenderer;
|
16
21
|
html: typeof htmlRenderer;
|
17
22
|
numeric: typeof numericRenderer;
|
18
23
|
password: typeof passwordRenderer;
|
24
|
+
select: typeof selectRenderer;
|
19
25
|
text: typeof textRenderer;
|
20
26
|
time: typeof timeRenderer;
|
21
27
|
}
|
@@ -29,9 +35,12 @@ export {
|
|
29
35
|
autocompleteRenderer, AUTOCOMPLETE_RENDERER,
|
30
36
|
baseRenderer, BASE_RENDERER,
|
31
37
|
checkboxRenderer, CHECKBOX_RENDERER,
|
38
|
+
dateRenderer, DATE_RENDERER,
|
39
|
+
handsontableRenderer, HANDSONTABLE_RENDERER,
|
32
40
|
htmlRenderer, HTML_RENDERER,
|
33
41
|
numericRenderer, NUMERIC_RENDERER,
|
34
42
|
passwordRenderer, PASSWORD_RENDERER,
|
43
|
+
selectRenderer, SELECT_RENDERER,
|
35
44
|
textRenderer, TEXT_RENDERER,
|
36
45
|
timeRenderer, TIME_RENDERER
|
37
46
|
};
|
@@ -0,0 +1 @@
|
|
1
|
+
export { RENDERER_TYPE, selectRenderer } from './selectRenderer';
|
@@ -0,0 +1 @@
|
|
1
|
+
export { RENDERER_TYPE, selectRenderer } from "./selectRenderer.mjs";
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import Core from '../../core';
|
2
|
+
import { CellProperties } from '../../settings';
|
3
|
+
|
4
|
+
export const RENDERER_TYPE: 'select';
|
5
|
+
export function selectRenderer(instance: Core, TD: HTMLTableCellElement, row: number, col: number, prop: string | number, value: any, cellProperties: CellProperties): void;
|
@@ -0,0 +1,27 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.selectRenderer = selectRenderer;
|
5
|
+
var _textRenderer = require("../textRenderer");
|
6
|
+
var _a11y = require("../../helpers/a11y");
|
7
|
+
var _element = require("../../helpers/dom/element");
|
8
|
+
const RENDERER_TYPE = 'select';
|
9
|
+
|
10
|
+
/**
|
11
|
+
* @private
|
12
|
+
* @param {Core} instance The Handsontable instance.
|
13
|
+
* @param {HTMLTableCellElement} TD The rendered cell element.
|
14
|
+
* @param {number} row The visual row index.
|
15
|
+
* @param {number} col The visual column index.
|
16
|
+
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
17
|
+
* @param {*} value The rendered value.
|
18
|
+
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
19
|
+
*/
|
20
|
+
exports.RENDERER_TYPE = RENDERER_TYPE;
|
21
|
+
function selectRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
22
|
+
_textRenderer.textRenderer.apply(this, [instance, TD, row, col, prop, value, cellProperties]);
|
23
|
+
if (instance.getSettings().ariaTags) {
|
24
|
+
(0, _element.setAttribute)(TD, ...(0, _a11y.A11Y_HASPOPUP)('listbox'));
|
25
|
+
}
|
26
|
+
}
|
27
|
+
selectRenderer.RENDERER_TYPE = RENDERER_TYPE;
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { textRenderer } from "../textRenderer/index.mjs";
|
2
|
+
import { A11Y_HASPOPUP } from "../../helpers/a11y.mjs";
|
3
|
+
import { setAttribute } from "../../helpers/dom/element.mjs";
|
4
|
+
export const RENDERER_TYPE = 'select';
|
5
|
+
|
6
|
+
/**
|
7
|
+
* @private
|
8
|
+
* @param {Core} instance The Handsontable instance.
|
9
|
+
* @param {HTMLTableCellElement} TD The rendered cell element.
|
10
|
+
* @param {number} row The visual row index.
|
11
|
+
* @param {number} col The visual column index.
|
12
|
+
* @param {number|string} prop The column property (passed when datasource is an array of objects).
|
13
|
+
* @param {*} value The rendered value.
|
14
|
+
* @param {object} cellProperties The cell meta object ({@see Core#getCellMeta}).
|
15
|
+
*/
|
16
|
+
export function selectRenderer(instance, TD, row, col, prop, value, cellProperties) {
|
17
|
+
textRenderer.apply(this, [instance, TD, row, col, prop, value, cellProperties]);
|
18
|
+
if (instance.getSettings().ariaTags) {
|
19
|
+
setAttribute(TD, ...A11Y_HASPOPUP('listbox'));
|
20
|
+
}
|
21
|
+
}
|
22
|
+
selectRenderer.RENDERER_TYPE = RENDERER_TYPE;
|