handsontable 13.1.0 → 14.0.0-next-d97b156-20231027
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/3rdparty/walkontable/src/calculator/constants.js +3 -6
- package/3rdparty/walkontable/src/calculator/viewportColumns.js +1 -2
- package/3rdparty/walkontable/src/calculator/viewportRows.js +1 -2
- package/3rdparty/walkontable/src/cell/coords.d.ts +8 -1
- package/3rdparty/walkontable/src/cell/coords.js +81 -13
- package/3rdparty/walkontable/src/cell/coords.mjs +80 -11
- package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
- package/3rdparty/walkontable/src/cell/range.js +39 -9
- 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 +13 -12
- 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/filter/column.js +1 -2
- package/3rdparty/walkontable/src/filter/row.js +1 -2
- package/3rdparty/walkontable/src/index.js +12 -4
- 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/constants.js +7 -14
- 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/overlays.js +1 -2
- 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 +13 -0
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +14 -1
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +8 -0
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +8 -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 +3 -2
- package/3rdparty/walkontable/src/scroll.mjs +2 -0
- package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +8 -14
- package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
- package/3rdparty/walkontable/src/selection/border/constants.js +15 -0
- package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
- package/3rdparty/walkontable/src/selection/constants.js +54 -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 +100 -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/bottom.js +1 -2
- package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +1 -2
- package/3rdparty/walkontable/src/table/inlineStart.js +1 -2
- package/3rdparty/walkontable/src/table/master.js +3 -6
- package/3rdparty/walkontable/src/table/master.mjs +2 -4
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +10 -2
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +10 -2
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +10 -2
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +10 -2
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +10 -2
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
- package/3rdparty/walkontable/src/table/top.js +1 -2
- package/3rdparty/walkontable/src/table/topInlineStartCorner.js +1 -2
- package/3rdparty/walkontable/src/table.js +20 -80
- package/3rdparty/walkontable/src/table.mjs +20 -79
- package/3rdparty/walkontable/src/utils/orderView/constants.js +3 -6
- package/3rdparty/walkontable/src/viewport.js +1 -2
- package/CHANGELOG.md +51 -0
- package/base.js +3 -4
- package/base.mjs +2 -2
- package/cellTypes/autocompleteType/autocompleteType.js +3 -5
- package/cellTypes/checkboxType/checkboxType.js +3 -5
- package/cellTypes/dateType/dateType.d.ts +3 -3
- package/cellTypes/dateType/dateType.js +5 -7
- package/cellTypes/dateType/dateType.mjs +2 -2
- package/cellTypes/dropdownType/dropdownType.js +3 -5
- package/cellTypes/handsontableType/handsontableType.d.ts +3 -3
- package/cellTypes/handsontableType/handsontableType.js +5 -7
- 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/numericType/numericType.js +3 -5
- package/cellTypes/passwordType/passwordType.js +3 -5
- 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 +11 -0
- package/cellTypes/selectType/selectType.mjs +8 -0
- package/cellTypes/textType/textType.js +3 -5
- package/cellTypes/timeType/timeType.js +3 -5
- package/common.d.ts +1 -1
- package/core/focusCatcher/focusDetector.js +63 -0
- package/core/focusCatcher/focusDetector.mjs +59 -0
- package/core/focusCatcher/index.js +148 -0
- package/core/focusCatcher/index.mjs +144 -0
- package/core/index.js +9 -0
- package/core/index.mjs +1 -0
- package/core.d.ts +10 -5
- package/core.js +327 -359
- package/core.mjs +327 -359
- package/dataMap/dataMap.js +1 -2
- package/dataMap/dataSource.js +1 -2
- 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 +94 -76
- package/dist/handsontable.full.css +94 -76
- package/dist/handsontable.full.js +21236 -14104
- package/dist/handsontable.full.min.css +8 -8
- package/dist/handsontable.full.min.js +170 -152
- package/dist/handsontable.js +22016 -15254
- package/dist/handsontable.min.css +7 -7
- package/dist/handsontable.min.js +31 -23
- package/dist/languages/all.js +47 -40
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/ar-AR.js +1 -2
- package/dist/languages/cs-CZ.js +1 -2
- package/dist/languages/de-CH.js +1 -2
- package/dist/languages/de-DE.js +1 -2
- package/dist/languages/en-US.js +15 -3
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/es-MX.js +1 -2
- package/dist/languages/fr-FR.js +1 -2
- package/dist/languages/it-IT.js +1 -2
- package/dist/languages/ja-JP.js +1 -2
- package/dist/languages/ko-KR.js +1 -2
- package/dist/languages/lv-LV.js +1 -2
- package/dist/languages/nb-NO.js +1 -2
- package/dist/languages/nl-NL.js +1 -2
- package/dist/languages/pl-PL.js +15 -3
- package/dist/languages/pl-PL.min.js +1 -1
- package/dist/languages/pt-BR.js +1 -2
- package/dist/languages/ru-RU.js +1 -2
- package/dist/languages/sr-SP.js +1 -2
- package/dist/languages/zh-CN.js +1 -2
- package/dist/languages/zh-TW.js +1 -2
- package/editorManager.js +17 -91
- package/editorManager.mjs +16 -87
- package/editors/autocompleteEditor/autocompleteEditor.js +65 -11
- package/editors/autocompleteEditor/autocompleteEditor.mjs +65 -10
- package/editors/baseEditor/baseEditor.js +19 -13
- package/editors/baseEditor/baseEditor.mjs +16 -7
- package/editors/checkboxEditor/checkboxEditor.js +1 -2
- package/editors/dateEditor/dateEditor.js +27 -9
- package/editors/dateEditor/dateEditor.mjs +27 -8
- package/editors/dropdownEditor/dropdownEditor.js +1 -2
- package/editors/handsontableEditor/handsontableEditor.js +14 -7
- package/editors/handsontableEditor/handsontableEditor.mjs +14 -6
- package/editors/numericEditor/numericEditor.js +1 -2
- package/editors/passwordEditor/passwordEditor.js +1 -2
- package/editors/selectEditor/selectEditor.js +1 -2
- package/editors/textEditor/textEditor.js +20 -29
- package/editors/textEditor/textEditor.mjs +22 -30
- package/editors/timeEditor/timeEditor.js +1 -2
- package/eventManager.js +1 -2
- package/focusManager.d.ts +12 -0
- package/focusManager.js +265 -0
- package/focusManager.mjs +261 -0
- package/helpers/a11y.js +81 -0
- package/helpers/a11y.mjs +39 -0
- package/helpers/dom/element.js +224 -12
- package/helpers/dom/element.mjs +216 -10
- package/helpers/dom/event.d.ts +1 -0
- package/helpers/dom/event.js +25 -0
- package/helpers/dom/event.mjs +24 -0
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/helpers/number.d.ts +1 -0
- package/helpers/number.js +18 -0
- package/helpers/number.mjs +17 -0
- package/helpers/unicode.js +1 -2
- package/i18n/constants.js +97 -160
- package/i18n/constants.mjs +17 -1
- package/i18n/languages/ar-AR.js +3 -4
- package/i18n/languages/cs-CZ.js +3 -4
- package/i18n/languages/de-CH.js +3 -4
- package/i18n/languages/de-DE.js +3 -4
- package/i18n/languages/en-US.js +17 -5
- package/i18n/languages/en-US.mjs +14 -1
- package/i18n/languages/es-MX.js +3 -4
- package/i18n/languages/fr-FR.js +3 -4
- package/i18n/languages/it-IT.js +3 -4
- package/i18n/languages/ja-JP.js +3 -4
- package/i18n/languages/ko-KR.js +3 -4
- package/i18n/languages/lv-LV.js +3 -4
- package/i18n/languages/nb-NO.js +3 -4
- package/i18n/languages/nl-NL.js +3 -4
- package/i18n/languages/pl-PL.js +17 -5
- package/i18n/languages/pl-PL.mjs +14 -1
- package/i18n/languages/pt-BR.js +3 -4
- package/i18n/languages/ru-RU.js +3 -4
- package/i18n/languages/sr-SP.js +3 -4
- package/i18n/languages/zh-CN.js +3 -4
- package/i18n/languages/zh-TW.js +3 -4
- package/i18n/registry.js +4 -6
- package/index.js +3 -4
- package/languages/all.js +47 -40
- package/languages/ar-AR.js +1 -2
- package/languages/cs-CZ.js +1 -2
- package/languages/de-CH.js +1 -2
- package/languages/de-DE.js +1 -2
- package/languages/en-US.js +15 -3
- package/languages/en-US.mjs +14 -1
- package/languages/es-MX.js +1 -2
- package/languages/fr-FR.js +1 -2
- package/languages/index.js +47 -40
- package/languages/it-IT.js +1 -2
- package/languages/ja-JP.js +1 -2
- package/languages/ko-KR.js +1 -2
- package/languages/lv-LV.js +1 -2
- package/languages/nb-NO.js +1 -2
- package/languages/nl-NL.js +1 -2
- package/languages/pl-PL.js +15 -3
- package/languages/pl-PL.mjs +14 -1
- package/languages/pt-BR.js +1 -2
- package/languages/ru-RU.js +1 -2
- package/languages/sr-SP.js +1 -2
- package/languages/zh-CN.js +1 -2
- package/languages/zh-TW.js +1 -2
- package/mixins/hooksRefRegisterer.js +1 -2
- package/mixins/localHooks.js +1 -2
- package/package.json +119 -96
- package/pluginHooks.d.ts +42 -7
- package/pluginHooks.js +301 -65
- package/pluginHooks.mjs +300 -63
- package/plugins/autoColumnSize/autoColumnSize.d.ts +2 -0
- package/plugins/autoColumnSize/autoColumnSize.js +2 -4
- package/plugins/autoRowSize/autoRowSize.d.ts +2 -0
- package/plugins/autoRowSize/autoRowSize.js +15 -10
- package/plugins/autoRowSize/autoRowSize.mjs +13 -6
- package/plugins/autofill/autofill.js +2 -4
- package/plugins/autofill/utils.js +1 -2
- package/plugins/base/base.js +1 -2
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +2 -4
- package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +1 -2
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +1 -2
- package/plugins/collapsibleColumns/collapsibleColumns.js +77 -8
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +76 -5
- package/plugins/columnSorting/columnSorting.js +71 -6
- package/plugins/columnSorting/columnSorting.mjs +70 -3
- package/plugins/columnSorting/index.js +3 -1
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/columnSorting/sortFunction/checkbox.js +1 -2
- package/plugins/columnSorting/sortFunction/date.js +1 -2
- package/plugins/columnSorting/sortFunction/default.js +1 -2
- package/plugins/columnSorting/sortFunction/numeric.js +1 -2
- package/plugins/columnSorting/sortService/engine.js +3 -6
- package/plugins/columnSorting/utils.js +3 -6
- package/plugins/columnSummary/columnSummary.js +2 -4
- package/plugins/columnSummary/endpoints.js +1 -2
- package/plugins/comments/commentEditor.js +2 -2
- package/plugins/comments/commentEditor.mjs +1 -0
- package/plugins/comments/comments.js +254 -197
- 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/comments/displaySwitch.js +1 -2
- 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 +77 -40
- package/plugins/contextMenu/contextMenu.mjs +74 -35
- package/plugins/contextMenu/itemsFactory.js +2 -3
- package/plugins/contextMenu/itemsFactory.mjs +3 -4
- package/plugins/contextMenu/{cursor.mjs → menu/cursor.js} +6 -4
- package/plugins/contextMenu/{cursor.js → menu/cursor.mjs} +4 -10
- package/plugins/contextMenu/menu/defaultShortcutsList.js +88 -0
- package/plugins/contextMenu/menu/defaultShortcutsList.mjs +84 -0
- package/plugins/contextMenu/menu/index.js +9 -0
- package/plugins/contextMenu/menu/index.mjs +1 -0
- package/plugins/contextMenu/{menu.js → menu/menu.js} +145 -421
- package/plugins/contextMenu/{menu.mjs → menu/menu.mjs} +146 -422
- package/plugins/contextMenu/menu/menuItemRenderer.js +70 -0
- package/plugins/contextMenu/menu/menuItemRenderer.mjs +66 -0
- package/plugins/contextMenu/menu/navigator.js +27 -0
- package/plugins/contextMenu/menu/navigator.mjs +23 -0
- package/plugins/contextMenu/menu/positioner.js +213 -0
- package/plugins/contextMenu/menu/positioner.mjs +209 -0
- package/plugins/contextMenu/menu/shortcuts.js +114 -0
- package/plugins/contextMenu/menu/shortcuts.mjs +110 -0
- package/plugins/contextMenu/menu/utils.js +177 -0
- package/plugins/contextMenu/menu/utils.mjs +163 -0
- package/plugins/contextMenu/predefinedItems/alignment.js +10 -4
- package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/clearColumn.js +8 -7
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.js +8 -7
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.js +8 -7
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/index.js +75 -0
- package/plugins/contextMenu/predefinedItems/index.mjs +68 -0
- package/plugins/contextMenu/predefinedItems/noItems.js +1 -2
- package/plugins/contextMenu/predefinedItems/readOnly.js +10 -4
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/redo.js +3 -4
- package/plugins/contextMenu/predefinedItems/removeColumn.js +10 -9
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/removeRow.js +10 -9
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.js +8 -7
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.js +8 -7
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/separator.js +1 -2
- package/plugins/contextMenu/predefinedItems/undo.js +3 -4
- package/plugins/contextMenu/utils.js +35 -151
- package/plugins/contextMenu/utils.mjs +35 -144
- package/plugins/copyPaste/clipboardData/clipboardData.js +516 -0
- package/plugins/copyPaste/clipboardData/clipboardData.mjs +512 -0
- package/plugins/copyPaste/clipboardData/copyClipboardData.js +69 -0
- package/plugins/copyPaste/clipboardData/copyClipboardData.mjs +65 -0
- package/plugins/copyPaste/clipboardData/index.js +9 -0
- package/plugins/copyPaste/clipboardData/index.mjs +4 -0
- package/plugins/copyPaste/clipboardData/pasteClipboardData.js +81 -0
- package/plugins/copyPaste/clipboardData/pasteClipboardData.mjs +77 -0
- 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 +9 -2
- package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
- package/plugins/copyPaste/copyPaste.js +160 -167
- package/plugins/copyPaste/copyPaste.mjs +161 -166
- package/plugins/customBorders/contextMenuItem/bottom.js +2 -2
- package/plugins/customBorders/contextMenuItem/left.js +2 -2
- package/plugins/customBorders/contextMenuItem/noBorders.js +2 -2
- package/plugins/customBorders/contextMenuItem/right.js +2 -2
- package/plugins/customBorders/contextMenuItem/top.js +2 -2
- package/plugins/customBorders/customBorders.js +27 -26
- package/plugins/customBorders/customBorders.mjs +24 -21
- package/plugins/dragToScroll/dragToScroll.js +2 -4
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +130 -44
- package/plugins/dropdownMenu/dropdownMenu.mjs +127 -39
- package/plugins/exportFile/dataProvider.js +1 -2
- package/plugins/exportFile/exportFile.js +4 -6
- package/plugins/exportFile/typeFactory.js +5 -8
- package/plugins/exportFile/types/_base.js +1 -2
- package/plugins/exportFile/types/csv.js +1 -2
- package/plugins/filters/component/_base.js +23 -8
- package/plugins/filters/component/_base.mjs +23 -8
- package/plugins/filters/component/actionBar.js +31 -29
- package/plugins/filters/component/actionBar.mjs +26 -23
- package/plugins/filters/component/condition.js +48 -61
- package/plugins/filters/component/condition.mjs +40 -52
- package/plugins/filters/component/operators.js +21 -22
- package/plugins/filters/component/operators.mjs +18 -18
- package/plugins/filters/component/value.js +37 -28
- package/plugins/filters/component/value.mjs +32 -22
- package/plugins/filters/condition/beginsWith.js +3 -4
- package/plugins/filters/condition/between.js +3 -4
- package/plugins/filters/condition/byValue.js +1 -2
- package/plugins/filters/condition/contains.js +3 -4
- package/plugins/filters/condition/date/after.js +3 -4
- package/plugins/filters/condition/date/before.js +3 -4
- package/plugins/filters/condition/date/today.js +3 -4
- package/plugins/filters/condition/date/tomorrow.js +3 -4
- package/plugins/filters/condition/date/yesterday.js +3 -4
- package/plugins/filters/condition/empty.js +3 -4
- package/plugins/filters/condition/endsWith.js +3 -4
- package/plugins/filters/condition/equal.js +3 -4
- package/plugins/filters/condition/false.js +1 -2
- package/plugins/filters/condition/greaterThan.js +3 -4
- package/plugins/filters/condition/greaterThanOrEqual.js +3 -4
- package/plugins/filters/condition/lessThan.js +3 -4
- package/plugins/filters/condition/lessThanOrEqual.js +3 -4
- package/plugins/filters/condition/none.js +3 -4
- package/plugins/filters/condition/notBetween.js +3 -4
- package/plugins/filters/condition/notContains.js +3 -4
- package/plugins/filters/condition/notEmpty.js +3 -4
- package/plugins/filters/condition/notEqual.js +3 -4
- package/plugins/filters/condition/true.js +1 -2
- package/plugins/filters/conditionCollection.d.ts +3 -2
- package/plugins/filters/conditionCollection.js +1 -2
- package/plugins/filters/conditionRegisterer.js +1 -2
- package/plugins/filters/conditionUpdateObserver.js +1 -2
- package/plugins/filters/constants.js +4 -8
- package/plugins/filters/constants.mjs +1 -1
- package/plugins/filters/dataFilter.js +1 -2
- package/plugins/filters/filters.d.ts +3 -5
- package/plugins/filters/filters.js +108 -66
- package/plugins/filters/filters.mjs +99 -55
- package/plugins/filters/logicalOperationRegisterer.js +1 -2
- package/plugins/filters/logicalOperations/conjunction.js +4 -6
- package/plugins/filters/logicalOperations/disjunction.js +4 -6
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +4 -6
- package/plugins/filters/menu/focusController.js +123 -0
- package/plugins/filters/menu/focusController.mjs +119 -0
- package/plugins/filters/menu/focusNavigator.js +30 -0
- package/plugins/filters/menu/focusNavigator.mjs +26 -0
- package/plugins/filters/ui/_base.js +37 -15
- package/plugins/filters/ui/_base.mjs +35 -13
- package/plugins/filters/ui/input.js +43 -35
- package/plugins/filters/ui/input.mjs +42 -33
- package/plugins/filters/ui/link.js +44 -12
- package/plugins/filters/ui/link.mjs +44 -11
- package/plugins/filters/ui/multipleSelect.js +237 -133
- package/plugins/filters/ui/multipleSelect.mjs +232 -127
- package/plugins/filters/ui/radioInput.js +42 -18
- package/plugins/filters/ui/radioInput.mjs +42 -17
- package/plugins/filters/ui/select.js +152 -77
- package/plugins/filters/ui/select.mjs +148 -72
- package/plugins/formulas/engine/settings.js +2 -4
- package/plugins/formulas/formulas.js +3 -6
- package/plugins/formulas/indexSyncer/axisSyncer.js +1 -2
- package/plugins/formulas/indexSyncer/index.js +1 -2
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +2 -2
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -2
- package/plugins/hiddenColumns/hiddenColumns.d.ts +1 -0
- package/plugins/hiddenColumns/hiddenColumns.js +49 -6
- package/plugins/hiddenColumns/hiddenColumns.mjs +48 -3
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +2 -2
- package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -2
- package/plugins/hiddenRows/hiddenRows.d.ts +1 -0
- package/plugins/hiddenRows/hiddenRows.js +49 -6
- package/plugins/hiddenRows/hiddenRows.mjs +48 -3
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +2 -2
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +2 -2
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +2 -4
- package/plugins/manualColumnMove/manualColumnMove.js +9 -17
- package/plugins/manualColumnMove/manualColumnMove.mjs +7 -13
- package/plugins/manualColumnMove/ui/_base.js +1 -2
- package/plugins/manualColumnMove/ui/backlight.js +1 -2
- package/plugins/manualColumnMove/ui/guideline.js +1 -2
- package/plugins/manualColumnResize/manualColumnResize.js +2 -4
- package/plugins/manualRowMove/manualRowMove.js +6 -23
- package/plugins/manualRowMove/manualRowMove.mjs +4 -19
- package/plugins/manualRowMove/ui/_base.js +1 -2
- package/plugins/manualRowMove/ui/backlight.js +1 -2
- package/plugins/manualRowMove/ui/guideline.js +1 -2
- package/plugins/manualRowResize/manualRowResize.js +2 -4
- package/plugins/mergeCells/calculations/autofill.js +1 -2
- package/plugins/mergeCells/calculations/selection.js +1 -2
- package/plugins/mergeCells/cellCoords.js +1 -2
- package/plugins/mergeCells/cellsCollection.js +1 -2
- package/plugins/mergeCells/contextMenuItem/toggleMerge.js +2 -2
- package/plugins/mergeCells/mergeCells.js +7 -20
- package/plugins/mergeCells/mergeCells.mjs +5 -16
- package/plugins/multiColumnSorting/multiColumnSorting.js +60 -6
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +59 -3
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +2 -4
- package/plugins/nestedHeaders/nestedHeaders.js +263 -36
- package/plugins/nestedHeaders/nestedHeaders.mjs +262 -33
- package/plugins/nestedHeaders/stateManager/index.js +102 -3
- package/plugins/nestedHeaders/stateManager/index.mjs +102 -3
- package/plugins/nestedHeaders/stateManager/sourceSettings.js +1 -2
- package/plugins/nestedHeaders/utils/ghostTable.js +1 -2
- package/plugins/nestedRows/data/dataManager.js +1 -2
- package/plugins/nestedRows/nestedRows.js +47 -10
- package/plugins/nestedRows/nestedRows.mjs +45 -6
- package/plugins/nestedRows/ui/_base.js +1 -2
- package/plugins/nestedRows/ui/collapsing.js +1 -2
- package/plugins/nestedRows/ui/contextMenu.js +3 -4
- package/plugins/nestedRows/ui/headers.js +13 -3
- package/plugins/nestedRows/ui/headers.mjs +13 -2
- package/plugins/persistentState/persistentState.js +2 -4
- package/plugins/persistentState/storage.js +1 -2
- package/plugins/search/search.js +2 -4
- package/plugins/touchScroll/touchScroll.js +2 -4
- package/plugins/trimRows/trimRows.js +2 -4
- package/plugins/undoRedo/index.js +2 -2
- package/plugins/undoRedo/undoRedo.js +2 -4
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +9 -2
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +8 -0
- package/renderers/baseRenderer/baseRenderer.js +18 -2
- package/renderers/baseRenderer/baseRenderer.mjs +18 -1
- package/renderers/checkboxRenderer/checkboxRenderer.js +10 -6
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +9 -4
- package/renderers/dateRenderer/dateRenderer.d.ts +5 -0
- package/renderers/dateRenderer/dateRenderer.js +28 -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 +28 -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/htmlRenderer/htmlRenderer.js +1 -2
- package/renderers/index.d.ts +9 -0
- package/renderers/numericRenderer/numericRenderer.js +1 -2
- package/renderers/passwordRenderer/passwordRenderer.js +1 -2
- 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 +26 -0
- package/renderers/selectRenderer/selectRenderer.mjs +22 -0
- package/renderers/textRenderer/textRenderer.js +1 -2
- package/renderers/timeRenderer/timeRenderer.js +1 -2
- package/selection/highlight/highlight.js +257 -73
- 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 +32 -29
- 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 +9 -10
- package/selection/range.mjs +8 -8
- package/selection/selection.js +334 -154
- package/selection/selection.mjs +330 -151
- package/selection/transformation.js +233 -94
- package/selection/transformation.mjs +232 -92
- package/selection/utils.js +20 -31
- package/selection/utils.mjs +16 -21
- package/settings.d.ts +4 -0
- package/shortcutContexts/commands/editor/closeAndSave.js +11 -0
- package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +11 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
- package/shortcutContexts/commands/editor/fastOpen.js +15 -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 +26 -0
- package/shortcutContexts/commands/editor/open.mjs +23 -0
- package/shortcutContexts/commands/emptySelectedCells.js +10 -0
- package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
- package/shortcutContexts/commands/extendCellsSelection/down.js +14 -0
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +24 -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 +14 -0
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/right.js +14 -0
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +18 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +28 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +18 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +18 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +28 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +28 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +28 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +18 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.js +14 -0
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +24 -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 +12 -0
- package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +32 -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 +11 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +11 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/left.js +9 -0
- package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/right.js +9 -0
- package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +18 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +20 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +16 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +18 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
- package/shortcutContexts/commands/moveCellSelection/up.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +32 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +29 -0
- package/shortcutContexts/commands/populateSelectedCellsData.js +28 -0
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
- package/shortcutContexts/commands/scrollToFocusedCell.js +34 -0
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +31 -0
- package/shortcutContexts/commands/selectAll.js +11 -0
- package/shortcutContexts/commands/selectAll.mjs +8 -0
- package/shortcutContexts/constants.js +11 -0
- package/shortcutContexts/constants.mjs +8 -0
- package/shortcutContexts/editor.js +25 -0
- package/shortcutContexts/editor.mjs +21 -0
- package/shortcutContexts/grid.js +167 -0
- package/shortcutContexts/grid.mjs +163 -0
- package/shortcutContexts/index.js +24 -0
- package/shortcutContexts/index.mjs +11 -0
- package/shortcuts/context.d.ts +1 -0
- package/shortcuts/context.js +23 -4
- package/shortcuts/context.mjs +23 -5
- package/shortcuts/manager.js +31 -7
- package/shortcuts/manager.mjs +32 -7
- package/shortcuts/recorder.js +30 -14
- package/shortcuts/recorder.mjs +30 -14
- package/shortcuts/utils.js +19 -5
- package/shortcuts/utils.mjs +18 -4
- package/tableView.js +113 -16
- package/tableView.mjs +113 -15
- package/utils/dataStructures/linkedList.js +1 -2
- package/utils/dataStructures/priorityMap.js +2 -4
- package/utils/dataStructures/queue.js +1 -2
- package/utils/dataStructures/stack.js +1 -2
- package/utils/dataStructures/tree.js +3 -6
- package/utils/ghostTable.js +32 -17
- package/utils/ghostTable.mjs +31 -15
- package/utils/interval.js +1 -2
- package/utils/paginator.js +151 -0
- package/utils/paginator.mjs +147 -0
- package/utils/parseTable.js +527 -83
- package/utils/parseTable.mjs +523 -82
- package/utils/rootInstance.js +2 -4
- package/utils/samplesGenerator.js +21 -13
- package/utils/samplesGenerator.mjs +20 -11
- package/utils/staticRegister.js +1 -2
- package/validators/autocompleteValidator/autocompleteValidator.js +1 -2
- package/validators/dateValidator/dateValidator.js +1 -2
- package/validators/numericValidator/numericValidator.js +1 -2
- package/validators/timeValidator/timeValidator.js +1 -2
- package/3rdparty/walkontable/src/selection.js +0 -295
- package/3rdparty/walkontable/src/selection.mjs +0 -290
- package/plugins/contextMenu/predefinedItems.js +0 -76
- package/plugins/contextMenu/predefinedItems.mjs +0 -68
- package/plugins/copyPaste/clipboardData.js +0 -18
- package/plugins/copyPaste/clipboardData.mjs +0 -14
- package/plugins/copyPaste/focusableElement.js +0 -186
- package/plugins/copyPaste/focusableElement.mjs +0 -180
- package/plugins/copyPaste/pasteEvent.js +0 -14
- package/plugins/copyPaste/pasteEvent.mjs +0 -9
- 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
@@ -18,15 +18,15 @@ class Event {
|
|
18
18
|
* @param {Settings} wtSettings The walkontable settings.
|
19
19
|
* @param {EventManager} eventManager The walkontable event manager.
|
20
20
|
* @param {Table} wtTable The table.
|
21
|
-
* @param {
|
21
|
+
* @param {SelectionManager} selectionManager Selections.
|
22
22
|
* @param {Event} [parent=null] The main Event instance.
|
23
23
|
*/
|
24
|
-
constructor(facadeGetter, domBindings, wtSettings, eventManager, wtTable,
|
24
|
+
constructor(facadeGetter, domBindings, wtSettings, eventManager, wtTable, selectionManager) {
|
25
25
|
let parent = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
26
26
|
this.wtSettings = wtSettings;
|
27
27
|
this.domBindings = domBindings;
|
28
28
|
this.wtTable = wtTable;
|
29
|
-
this.
|
29
|
+
this.selectionManager = selectionManager;
|
30
30
|
this.parent = parent;
|
31
31
|
|
32
32
|
/**
|
@@ -41,7 +41,8 @@ class Event {
|
|
41
41
|
* Should be use only for passing face called external origin methods, like registered event listeners.
|
42
42
|
* It provides backward compatibility by getting instance facade.
|
43
43
|
*
|
44
|
-
* @todo Consider about removing this from Event class, because it make relationship into facade (implicit circular
|
44
|
+
* @todo Consider about removing this from Event class, because it make relationship into facade (implicit circular
|
45
|
+
* dependency).
|
45
46
|
* @todo Con. Maybe passing listener caller as an ioc from faced resolves this issue. To rethink later.
|
46
47
|
*
|
47
48
|
* @type {FacadeGetter}
|
@@ -134,11 +135,11 @@ class Event {
|
|
134
135
|
cell.coords = this.wtTable.getCoords(TD);
|
135
136
|
cell.TD = TD;
|
136
137
|
} else if ((0, _element.hasClass)(elem, 'wtBorder') && (0, _element.hasClass)(elem, 'current')) {
|
137
|
-
cell.coords = this.
|
138
|
+
cell.coords = this.selectionManager.getFocusSelection().cellRange.highlight;
|
138
139
|
cell.TD = this.wtTable.getCell(cell.coords);
|
139
140
|
} else if ((0, _element.hasClass)(elem, 'wtBorder') && (0, _element.hasClass)(elem, 'area')) {
|
140
|
-
if (this.
|
141
|
-
cell.coords = this.
|
141
|
+
if (this.selectionManager.getAreaSelection().cellRange) {
|
142
|
+
cell.coords = this.selectionManager.getAreaSelection().cellRange.to;
|
142
143
|
cell.TD = this.wtTable.getCell(cell.coords);
|
143
144
|
}
|
144
145
|
}
|
@@ -157,8 +158,9 @@ class Event {
|
|
157
158
|
const getParentNode = (0, _function.partial)(_element.getParent, event.target);
|
158
159
|
const realTarget = event.target;
|
159
160
|
|
160
|
-
// ignore focusable
|
161
|
-
|
161
|
+
// ignore non-TD focusable elements from mouse down processing
|
162
|
+
// (https://github.com/handsontable/handsontable/issues/3555)
|
163
|
+
if (!['TD', 'TH'].includes(activeElement.nodeName) && (realTarget === activeElement || getParentNode(0) === activeElement || getParentNode(1) === activeElement)) {
|
162
164
|
return;
|
163
165
|
}
|
164
166
|
const cell = this.parentCell(realTarget);
|
@@ -276,7 +278,7 @@ class Event {
|
|
276
278
|
*/
|
277
279
|
onTouchStart(event) {
|
278
280
|
const priv = privatePool.get(this);
|
279
|
-
priv.selectedCellBeforeTouchEnd = this.
|
281
|
+
priv.selectedCellBeforeTouchEnd = this.selectionManager.getFocusSelection().cellRange;
|
280
282
|
this.touchApplied = true;
|
281
283
|
this.onMouseDown(event);
|
282
284
|
}
|
@@ -344,5 +346,4 @@ class Event {
|
|
344
346
|
this.eventManager.destroy();
|
345
347
|
}
|
346
348
|
}
|
347
|
-
var _default = Event;
|
348
|
-
exports.default = _default;
|
349
|
+
var _default = exports.default = Event;
|
@@ -15,15 +15,15 @@ class Event {
|
|
15
15
|
* @param {Settings} wtSettings The walkontable settings.
|
16
16
|
* @param {EventManager} eventManager The walkontable event manager.
|
17
17
|
* @param {Table} wtTable The table.
|
18
|
-
* @param {
|
18
|
+
* @param {SelectionManager} selectionManager Selections.
|
19
19
|
* @param {Event} [parent=null] The main Event instance.
|
20
20
|
*/
|
21
|
-
constructor(facadeGetter, domBindings, wtSettings, eventManager, wtTable,
|
21
|
+
constructor(facadeGetter, domBindings, wtSettings, eventManager, wtTable, selectionManager) {
|
22
22
|
let parent = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
23
23
|
this.wtSettings = wtSettings;
|
24
24
|
this.domBindings = domBindings;
|
25
25
|
this.wtTable = wtTable;
|
26
|
-
this.
|
26
|
+
this.selectionManager = selectionManager;
|
27
27
|
this.parent = parent;
|
28
28
|
|
29
29
|
/**
|
@@ -38,7 +38,8 @@ class Event {
|
|
38
38
|
* Should be use only for passing face called external origin methods, like registered event listeners.
|
39
39
|
* It provides backward compatibility by getting instance facade.
|
40
40
|
*
|
41
|
-
* @todo Consider about removing this from Event class, because it make relationship into facade (implicit circular
|
41
|
+
* @todo Consider about removing this from Event class, because it make relationship into facade (implicit circular
|
42
|
+
* dependency).
|
42
43
|
* @todo Con. Maybe passing listener caller as an ioc from faced resolves this issue. To rethink later.
|
43
44
|
*
|
44
45
|
* @type {FacadeGetter}
|
@@ -131,11 +132,11 @@ class Event {
|
|
131
132
|
cell.coords = this.wtTable.getCoords(TD);
|
132
133
|
cell.TD = TD;
|
133
134
|
} else if (hasClass(elem, 'wtBorder') && hasClass(elem, 'current')) {
|
134
|
-
cell.coords = this.
|
135
|
+
cell.coords = this.selectionManager.getFocusSelection().cellRange.highlight;
|
135
136
|
cell.TD = this.wtTable.getCell(cell.coords);
|
136
137
|
} else if (hasClass(elem, 'wtBorder') && hasClass(elem, 'area')) {
|
137
|
-
if (this.
|
138
|
-
cell.coords = this.
|
138
|
+
if (this.selectionManager.getAreaSelection().cellRange) {
|
139
|
+
cell.coords = this.selectionManager.getAreaSelection().cellRange.to;
|
139
140
|
cell.TD = this.wtTable.getCell(cell.coords);
|
140
141
|
}
|
141
142
|
}
|
@@ -154,8 +155,9 @@ class Event {
|
|
154
155
|
const getParentNode = partial(getParent, event.target);
|
155
156
|
const realTarget = event.target;
|
156
157
|
|
157
|
-
// ignore focusable
|
158
|
-
|
158
|
+
// ignore non-TD focusable elements from mouse down processing
|
159
|
+
// (https://github.com/handsontable/handsontable/issues/3555)
|
160
|
+
if (!['TD', 'TH'].includes(activeElement.nodeName) && (realTarget === activeElement || getParentNode(0) === activeElement || getParentNode(1) === activeElement)) {
|
159
161
|
return;
|
160
162
|
}
|
161
163
|
const cell = this.parentCell(realTarget);
|
@@ -273,7 +275,7 @@ class Event {
|
|
273
275
|
*/
|
274
276
|
onTouchStart(event) {
|
275
277
|
const priv = privatePool.get(this);
|
276
|
-
priv.selectedCellBeforeTouchEnd = this.
|
278
|
+
priv.selectedCellBeforeTouchEnd = this.selectionManager.getFocusSelection().cellRange;
|
277
279
|
this.touchApplied = true;
|
278
280
|
this.onMouseDown(event);
|
279
281
|
}
|
@@ -50,8 +50,8 @@ class WalkontableFacade {
|
|
50
50
|
return this._wot.cloneOverlay; // todo create facade
|
51
51
|
}
|
52
52
|
|
53
|
-
get
|
54
|
-
return this._wot.
|
53
|
+
get selectionManager() {
|
54
|
+
return this._wot.selectionManager; // todo create facade
|
55
55
|
}
|
56
56
|
|
57
57
|
get wtViewport() {
|
@@ -46,8 +46,8 @@ export default class WalkontableFacade {
|
|
46
46
|
return this._wot.cloneOverlay; // todo create facade
|
47
47
|
}
|
48
48
|
|
49
|
-
get
|
50
|
-
return this._wot.
|
49
|
+
get selectionManager() {
|
50
|
+
return this._wot.selectionManager; // todo create facade
|
51
51
|
}
|
52
52
|
|
53
53
|
get wtViewport() {
|
@@ -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");
|
@@ -21,6 +29,6 @@ exports.OrderView = _orderView.OrderView;
|
|
21
29
|
exports.SharedOrderView = _orderView.SharedOrderView;
|
22
30
|
var _eventManager = require("../../../eventManager");
|
23
31
|
exports.getListenersCounter = _eventManager.getListenersCounter;
|
24
|
-
function _getRequireWildcardCache(
|
25
|
-
function _interopRequireWildcard(
|
32
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
33
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
26
34
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
@@ -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
|
|
@@ -4,17 +4,10 @@ exports.__esModule = true;
|
|
4
4
|
/**
|
5
5
|
* @typedef {'top'|'bottom'|'inline_start'|'top_inline_start_corner'|'bottom_inline_start_corner'} CLONE_TYPES_ENUM
|
6
6
|
*/
|
7
|
-
const CLONE_TOP = 'top';
|
8
|
-
exports.
|
9
|
-
const
|
10
|
-
exports.
|
11
|
-
const
|
12
|
-
exports.
|
13
|
-
const
|
14
|
-
exports.CLONE_TOP_INLINE_START_CORNER = CLONE_TOP_INLINE_START_CORNER;
|
15
|
-
const CLONE_BOTTOM_INLINE_START_CORNER = 'bottom_inline_start_corner';
|
16
|
-
exports.CLONE_BOTTOM_INLINE_START_CORNER = CLONE_BOTTOM_INLINE_START_CORNER;
|
17
|
-
const CLONE_TYPES = [CLONE_TOP, CLONE_BOTTOM, CLONE_INLINE_START, CLONE_TOP_INLINE_START_CORNER, CLONE_BOTTOM_INLINE_START_CORNER];
|
18
|
-
exports.CLONE_TYPES = CLONE_TYPES;
|
19
|
-
const CLONE_CLASS_NAMES = new Map([[CLONE_TOP, `ht_clone_${CLONE_TOP}`], [CLONE_BOTTOM, `ht_clone_${CLONE_BOTTOM}`], [CLONE_INLINE_START, `ht_clone_${CLONE_INLINE_START} ht_clone_left`], [CLONE_TOP_INLINE_START_CORNER, `ht_clone_${CLONE_TOP_INLINE_START_CORNER} ht_clone_top_left_corner`], [CLONE_BOTTOM_INLINE_START_CORNER, `ht_clone_${CLONE_BOTTOM_INLINE_START_CORNER} ht_clone_bottom_left_corner`]]);
|
20
|
-
exports.CLONE_CLASS_NAMES = CLONE_CLASS_NAMES;
|
7
|
+
const CLONE_TOP = exports.CLONE_TOP = 'top';
|
8
|
+
const CLONE_BOTTOM = exports.CLONE_BOTTOM = 'bottom';
|
9
|
+
const CLONE_INLINE_START = exports.CLONE_INLINE_START = 'inline_start';
|
10
|
+
const CLONE_TOP_INLINE_START_CORNER = exports.CLONE_TOP_INLINE_START_CORNER = 'top_inline_start_corner';
|
11
|
+
const CLONE_BOTTOM_INLINE_START_CORNER = exports.CLONE_BOTTOM_INLINE_START_CORNER = 'bottom_inline_start_corner';
|
12
|
+
const CLONE_TYPES = exports.CLONE_TYPES = [CLONE_TOP, CLONE_BOTTOM, CLONE_INLINE_START, CLONE_TOP_INLINE_START_CORNER, CLONE_BOTTOM_INLINE_START_CORNER];
|
13
|
+
const CLONE_CLASS_NAMES = exports.CLONE_CLASS_NAMES = new Map([[CLONE_TOP, `ht_clone_${CLONE_TOP}`], [CLONE_BOTTOM, `ht_clone_${CLONE_BOTTOM}`], [CLONE_INLINE_START, `ht_clone_${CLONE_INLINE_START} ht_clone_left`], [CLONE_TOP_INLINE_START_CORNER, `ht_clone_${CLONE_TOP_INLINE_START_CORNER} ht_clone_top_left_corner`], [CLONE_BOTTOM_INLINE_START_CORNER, `ht_clone_${CLONE_BOTTOM_INLINE_START_CORNER} ht_clone_bottom_left_corner`]]);
|
@@ -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,21 @@ 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
|
+
|
93
|
+
// Remove all accessibility-related attributes for the header to start fresh.
|
94
|
+
(0, _element.removeAttribute)(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
|
95
|
+
if (this.table.isAriaEnabled()) {
|
96
|
+
(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)()])]);
|
97
|
+
}
|
85
98
|
columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
|
86
99
|
}
|
87
100
|
}
|
@@ -1,5 +1,6 @@
|
|
1
|
-
import { empty } from "./../../../../helpers/dom/element.mjs";
|
1
|
+
import { empty, setAttribute, removeAttribute } 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,21 @@ 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
|
+
|
89
|
+
// Remove all accessibility-related attributes for the header to start fresh.
|
90
|
+
removeAttribute(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
|
91
|
+
if (this.table.isAriaEnabled()) {
|
92
|
+
setAttribute(TH, [A11Y_COLINDEX(renderedColumnIndex + 1 + this.table.rowHeadersCount), A11Y_TABINDEX(-1), ...(renderedColumnIndex < 0 ? [A11Y_PRESENTATION()] : [A11Y_COLUMNHEADER(), A11Y_SCOPE_COL()])]);
|
93
|
+
}
|
81
94
|
columnHeaderFunctions[rowHeaderIndex](sourceColumnIndex, TH, rowHeaderIndex);
|
82
95
|
}
|
83
96
|
}
|
@@ -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,12 @@ class RowHeadersRenderer extends _base.default {
|
|
74
76
|
const TH = orderView.getCurrentNode();
|
75
77
|
TH.className = '';
|
76
78
|
TH.removeAttribute('style');
|
79
|
+
|
80
|
+
// Remove all accessibility-related attributes for the header to start fresh.
|
81
|
+
(0, _element.removeAttribute)(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
|
82
|
+
if (this.table.isAriaEnabled()) {
|
83
|
+
(0, _element.setAttribute)(TH, [(0, _a11y.A11Y_ROWHEADER)(), (0, _a11y.A11Y_SCOPE_ROW)(), (0, _a11y.A11Y_COLINDEX)(visibleColumnIndex + 1), (0, _a11y.A11Y_TABINDEX)(-1)]);
|
84
|
+
}
|
77
85
|
rowHeaderFunctions[visibleColumnIndex](sourceRowIndex, TH, visibleColumnIndex);
|
78
86
|
}
|
79
87
|
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, removeAttribute } 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,12 @@ export default class RowHeadersRenderer extends BaseRenderer {
|
|
70
72
|
const TH = orderView.getCurrentNode();
|
71
73
|
TH.className = '';
|
72
74
|
TH.removeAttribute('style');
|
75
|
+
|
76
|
+
// Remove all accessibility-related attributes for the header to start fresh.
|
77
|
+
removeAttribute(TH, [new RegExp('aria-(.*)'), new RegExp('role')]);
|
78
|
+
if (this.table.isAriaEnabled()) {
|
79
|
+
setAttribute(TH, [A11Y_ROWHEADER(), A11Y_SCOPE_ROW(), A11Y_COLINDEX(visibleColumnIndex + 1), A11Y_TABINDEX(-1)]);
|
80
|
+
}
|
73
81
|
rowHeaderFunctions[visibleColumnIndex](sourceRowIndex, TH, visibleColumnIndex);
|
74
82
|
}
|
75
83
|
orderView.end();
|