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
@@ -141,12 +141,19 @@ export class AutoRowSize extends BasePlugin {
|
|
141
141
|
* @private
|
142
142
|
* @type {SamplesGenerator}
|
143
143
|
*/
|
144
|
-
this.samplesGenerator = new SamplesGenerator((row,
|
144
|
+
this.samplesGenerator = new SamplesGenerator((row, column) => {
|
145
|
+
if (row >= 0 && column >= 0) {
|
146
|
+
const cellMeta = this.hot.getCellMeta(row, column);
|
147
|
+
if (cellMeta.hidden) {
|
148
|
+
// do not generate samples for cells that are covered by merged cell (null values)
|
149
|
+
return false;
|
150
|
+
}
|
151
|
+
}
|
145
152
|
let cellValue;
|
146
153
|
if (row >= 0) {
|
147
|
-
cellValue = this.hot.getDataAtCell(row,
|
154
|
+
cellValue = this.hot.getDataAtCell(row, column);
|
148
155
|
} else if (row === -1) {
|
149
|
-
cellValue = this.hot.getColHeader(
|
156
|
+
cellValue = this.hot.getColHeader(column);
|
150
157
|
}
|
151
158
|
return {
|
152
159
|
value: cellValue
|
@@ -181,7 +188,7 @@ export class AutoRowSize extends BasePlugin {
|
|
181
188
|
this.hot.rowIndexMapper.registerMap(ROW_WIDTHS_MAP_NAME, this.rowHeightsMap);
|
182
189
|
|
183
190
|
// Leave the listener active to allow auto-sizing the rows when the plugin is disabled.
|
184
|
-
// This is
|
191
|
+
// This is necessary for height recalculation for resize handler doubleclick (ManualRowResize).
|
185
192
|
this.addHook('beforeRowResize', (size, row, isDblClick) => this.onBeforeRowResize(size, row, isDblClick));
|
186
193
|
}
|
187
194
|
|
@@ -571,11 +578,11 @@ export class AutoRowSize extends BasePlugin {
|
|
571
578
|
this.recalculateAllRowsHeight();
|
572
579
|
} else {
|
573
580
|
// first load - initialization
|
574
|
-
|
581
|
+
this.hot._registerTimeout(() => {
|
575
582
|
if (this.hot) {
|
576
583
|
this.recalculateAllRowsHeight();
|
577
584
|
}
|
578
|
-
}
|
585
|
+
});
|
579
586
|
}
|
580
587
|
}
|
581
588
|
|
@@ -12,10 +12,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
12
12
|
_pluginHooks.default.getSingleton().register('modifyAutofillRange');
|
13
13
|
_pluginHooks.default.getSingleton().register('beforeAutofill');
|
14
14
|
_pluginHooks.default.getSingleton().register('afterAutofill');
|
15
|
-
const PLUGIN_KEY = 'autofill';
|
16
|
-
exports.
|
17
|
-
const PLUGIN_PRIORITY = 20;
|
18
|
-
exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
|
15
|
+
const PLUGIN_KEY = exports.PLUGIN_KEY = 'autofill';
|
16
|
+
const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 20;
|
19
17
|
const SETTING_KEYS = ['fillHandle'];
|
20
18
|
const INSERT_ROW_ALTER_ACTION_NAME = 'insert_row_below';
|
21
19
|
const INTERVAL_FOR_ADDING_ROW = 200;
|
@@ -5,7 +5,7 @@ exports.getDragDirectionAndRange = getDragDirectionAndRange;
|
|
5
5
|
exports.getMappedFillHandleSetting = getMappedFillHandleSetting;
|
6
6
|
var _object = require("../../helpers/object");
|
7
7
|
var _mixed = require("../../helpers/mixed");
|
8
|
-
const DIRECTIONS = {
|
8
|
+
const DIRECTIONS = exports.DIRECTIONS = {
|
9
9
|
horizontal: 'horizontal',
|
10
10
|
vertical: 'vertical'
|
11
11
|
};
|
@@ -18,7 +18,6 @@ const DIRECTIONS = {
|
|
18
18
|
* @param {Function} cellCoordsFactory The function factory for CellCoords objects.
|
19
19
|
* @returns {{direction: string, start: CellCoords, end: CellCoords}}
|
20
20
|
*/
|
21
|
-
exports.DIRECTIONS = DIRECTIONS;
|
22
21
|
function getDragDirectionAndRange(startSelection, endSelection, cellCoordsFactory) {
|
23
22
|
let startOfDragCoords;
|
24
23
|
let endOfDragCoords;
|
package/plugins/base/base.js
CHANGED
@@ -14,8 +14,7 @@ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclarati
|
|
14
14
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
15
15
|
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
16
16
|
const DEPS_TYPE_CHECKERS = new Map([['plugin', _registry.hasPlugin], ['cell-type', _registry2.hasCellType], ['editor', _registry3.hasEditor], ['renderer', _registry4.hasRenderer], ['validator', _registry5.hasValidator]]);
|
17
|
-
const PLUGIN_KEY = 'base';
|
18
|
-
exports.PLUGIN_KEY = PLUGIN_KEY;
|
17
|
+
const PLUGIN_KEY = exports.PLUGIN_KEY = 'base';
|
19
18
|
const privatePool = new WeakMap();
|
20
19
|
const missingDependeciesMsgs = [];
|
21
20
|
let initializedPlugins = null;
|
@@ -5,10 +5,8 @@ var _base = require("../base");
|
|
5
5
|
var _looseBindsMap = _interopRequireDefault(require("./maps/looseBindsMap"));
|
6
6
|
var _strictBindsMap = _interopRequireDefault(require("./maps/strictBindsMap"));
|
7
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
8
|
-
const PLUGIN_KEY = 'bindRowsWithHeaders';
|
9
|
-
exports.
|
10
|
-
const PLUGIN_PRIORITY = 210;
|
11
|
-
exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
|
8
|
+
const PLUGIN_KEY = exports.PLUGIN_KEY = 'bindRowsWithHeaders';
|
9
|
+
const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 210;
|
12
10
|
const DEFAULT_BIND = 'loose';
|
13
11
|
const bindTypeToMapStrategy = new Map([['loose', _looseBindsMap.default], ['strict', _strictBindsMap.default]]);
|
14
12
|
|
@@ -10,6 +10,8 @@ var _console = require("../../helpers/console");
|
|
10
10
|
var _element = require("../../helpers/dom/element");
|
11
11
|
var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
12
12
|
var _event = require("../../helpers/dom/event");
|
13
|
+
var _a11y = require("../../helpers/a11y");
|
14
|
+
var _constants = require("../../i18n/constants");
|
13
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
14
16
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
15
17
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
@@ -21,12 +23,11 @@ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) {
|
|
21
23
|
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
22
24
|
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
23
25
|
function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
|
24
|
-
const PLUGIN_KEY = 'collapsibleColumns';
|
25
|
-
exports.
|
26
|
-
const PLUGIN_PRIORITY = 290;
|
27
|
-
exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
|
26
|
+
const PLUGIN_KEY = exports.PLUGIN_KEY = 'collapsibleColumns';
|
27
|
+
const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 290;
|
28
28
|
const SETTING_KEYS = ['nestedHeaders'];
|
29
29
|
const COLLAPSIBLE_ELEMENT_CLASS = 'collapsibleIndicator';
|
30
|
+
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
30
31
|
const actionDictionary = new Map([['collapse', {
|
31
32
|
hideColumn: true,
|
32
33
|
beforeHook: 'beforeColumnCollapse',
|
@@ -191,6 +192,7 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
191
192
|
return _this.onAfterGetColHeader(...arguments);
|
192
193
|
});
|
193
194
|
this.addHook('beforeOnCellMouseDown', (event, coords, TD) => this.onBeforeOnCellMouseDown(event, coords, TD));
|
195
|
+
this.registerShortcuts();
|
194
196
|
super.enablePlugin();
|
195
197
|
// @TODO: Workaround for broken plugin initialization abstraction (#6806).
|
196
198
|
this.updatePlugin();
|
@@ -238,10 +240,62 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
238
240
|
this.hot.columnIndexMapper.unregisterMap(this.pluginName);
|
239
241
|
_classPrivateFieldSet(this, _collapsedColumnsMap, null);
|
240
242
|
this.nestedHeadersPlugin = null;
|
243
|
+
this.unregisterShortcuts();
|
241
244
|
this.clearButtons();
|
242
245
|
super.disablePlugin();
|
243
246
|
}
|
244
247
|
|
248
|
+
/**
|
249
|
+
* Register shortcuts responsible for toggling collapsible columns.
|
250
|
+
*
|
251
|
+
* @private
|
252
|
+
*/
|
253
|
+
registerShortcuts() {
|
254
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
255
|
+
keys: [['Enter']],
|
256
|
+
callback: () => {
|
257
|
+
var _this$headerStateMana;
|
258
|
+
const {
|
259
|
+
row,
|
260
|
+
col
|
261
|
+
} = this.hot.getSelectedRangeLast().highlight;
|
262
|
+
const {
|
263
|
+
collapsible,
|
264
|
+
isCollapsed,
|
265
|
+
columnIndex
|
266
|
+
} = (_this$headerStateMana = this.headerStateManager.getHeaderTreeNodeData(row, col)) !== null && _this$headerStateMana !== void 0 ? _this$headerStateMana : {};
|
267
|
+
if (!collapsible) {
|
268
|
+
return;
|
269
|
+
}
|
270
|
+
if (isCollapsed) {
|
271
|
+
this.expandSection({
|
272
|
+
row,
|
273
|
+
col: columnIndex
|
274
|
+
});
|
275
|
+
} else {
|
276
|
+
this.collapseSection({
|
277
|
+
row,
|
278
|
+
col: columnIndex
|
279
|
+
});
|
280
|
+
}
|
281
|
+
},
|
282
|
+
runOnlyIf: () => {
|
283
|
+
var _this$hot$getSelected;
|
284
|
+
return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
|
285
|
+
},
|
286
|
+
group: SHORTCUTS_GROUP
|
287
|
+
});
|
288
|
+
}
|
289
|
+
|
290
|
+
/**
|
291
|
+
* Unregister shortcuts responsible for toggling collapsible columns.
|
292
|
+
*
|
293
|
+
* @private
|
294
|
+
*/
|
295
|
+
unregisterShortcuts() {
|
296
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
297
|
+
}
|
298
|
+
|
245
299
|
/**
|
246
300
|
* Clears the expand/collapse buttons.
|
247
301
|
*
|
@@ -362,7 +416,7 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
362
416
|
});
|
363
417
|
let isActionPossible = filteredCoords.length > 0;
|
364
418
|
(0, _array.arrayEach)(filteredCoords, _ref2 => {
|
365
|
-
var _this$
|
419
|
+
var _this$headerStateMana2;
|
366
420
|
let {
|
367
421
|
row,
|
368
422
|
col: column
|
@@ -370,7 +424,7 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
370
424
|
const {
|
371
425
|
collapsible,
|
372
426
|
isCollapsed
|
373
|
-
} = (_this$
|
427
|
+
} = (_this$headerStateMana2 = this.headerStateManager.getHeaderSettings(row, column)) !== null && _this$headerStateMana2 !== void 0 ? _this$headerStateMana2 : {};
|
374
428
|
if (!collapsible || isCollapsed && action === 'collapse' || !isCollapsed && action === 'expand') {
|
375
429
|
isActionPossible = false;
|
376
430
|
return false;
|
@@ -442,14 +496,16 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
442
496
|
* values counting from 0 to N).
|
443
497
|
*/
|
444
498
|
onAfterGetColHeader(column, TH, headerLevel) {
|
445
|
-
var _this$
|
499
|
+
var _this$headerStateMana3;
|
446
500
|
const {
|
447
501
|
collapsible,
|
448
502
|
origColspan,
|
449
503
|
isCollapsed
|
450
|
-
} = (_this$
|
504
|
+
} = (_this$headerStateMana3 = this.headerStateManager.getHeaderSettings(headerLevel, column)) !== null && _this$headerStateMana3 !== void 0 ? _this$headerStateMana3 : {};
|
451
505
|
const isNodeCollapsible = collapsible && origColspan > 1 && column >= this.hot.getSettings().fixedColumnsStart;
|
506
|
+
const isAriaTagsEnabled = this.hot.getSettings().ariaTags;
|
452
507
|
let collapsibleElement = TH.querySelector(`.${COLLAPSIBLE_ELEMENT_CLASS}`);
|
508
|
+
(0, _element.removeAttribute)(TH, [(0, _a11y.A11Y_EXPANDED)('')[0]]);
|
453
509
|
if (isNodeCollapsible) {
|
454
510
|
if (!collapsibleElement) {
|
455
511
|
collapsibleElement = this.hot.rootDocument.createElement('div');
|
@@ -460,9 +516,22 @@ class CollapsibleColumns extends _base.BasePlugin {
|
|
460
516
|
if (isCollapsed) {
|
461
517
|
(0, _element.addClass)(collapsibleElement, 'collapsed');
|
462
518
|
(0, _element.fastInnerText)(collapsibleElement, '+');
|
519
|
+
|
520
|
+
// Add ARIA tags
|
521
|
+
if (isAriaTagsEnabled) {
|
522
|
+
(0, _element.setAttribute)(TH, [(0, _a11y.A11Y_EXPANDED)(false), (0, _a11y.A11Y_DESCRIPTION)(this.hot.getTranslatedPhrase(_constants.COLUMN_HEADER_DESCRIPTION_EXPAND_COLUMN))]);
|
523
|
+
}
|
463
524
|
} else {
|
464
525
|
(0, _element.addClass)(collapsibleElement, 'expanded');
|
465
526
|
(0, _element.fastInnerText)(collapsibleElement, '-');
|
527
|
+
|
528
|
+
// Add ARIA tags
|
529
|
+
if (isAriaTagsEnabled) {
|
530
|
+
(0, _element.setAttribute)(TH, [(0, _a11y.A11Y_EXPANDED)(true), (0, _a11y.A11Y_DESCRIPTION)(this.hot.getTranslatedPhrase(_constants.COLUMN_HEADER_DESCRIPTION_COLLAPSE_COLUMN))]);
|
531
|
+
}
|
532
|
+
}
|
533
|
+
if (isAriaTagsEnabled) {
|
534
|
+
(0, _element.setAttribute)(collapsibleElement, ...(0, _a11y.A11Y_HIDDEN)());
|
466
535
|
}
|
467
536
|
} else {
|
468
537
|
var _collapsibleElement;
|
@@ -14,13 +14,16 @@ import { BasePlugin } from "../base/index.mjs";
|
|
14
14
|
import { arrayEach, arrayFilter, arrayUnique } from "../../helpers/array.mjs";
|
15
15
|
import { rangeEach } from "../../helpers/number.mjs";
|
16
16
|
import { warn } from "../../helpers/console.mjs";
|
17
|
-
import { addClass, hasClass, removeClass, fastInnerText } from "../../helpers/dom/element.mjs";
|
17
|
+
import { addClass, hasClass, removeClass, fastInnerText, removeAttribute, setAttribute } from "../../helpers/dom/element.mjs";
|
18
18
|
import EventManager from "../../eventManager.mjs";
|
19
19
|
import { stopImmediatePropagation } from "../../helpers/dom/event.mjs";
|
20
|
+
import { A11Y_DESCRIPTION, A11Y_EXPANDED, A11Y_HIDDEN } from "../../helpers/a11y.mjs";
|
21
|
+
import { COLUMN_HEADER_DESCRIPTION_COLLAPSE_COLUMN, COLUMN_HEADER_DESCRIPTION_EXPAND_COLUMN } from "../../i18n/constants.mjs";
|
20
22
|
export const PLUGIN_KEY = 'collapsibleColumns';
|
21
23
|
export const PLUGIN_PRIORITY = 290;
|
22
24
|
const SETTING_KEYS = ['nestedHeaders'];
|
23
25
|
const COLLAPSIBLE_ELEMENT_CLASS = 'collapsibleIndicator';
|
26
|
+
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
24
27
|
const actionDictionary = new Map([['collapse', {
|
25
28
|
hideColumn: true,
|
26
29
|
beforeHook: 'beforeColumnCollapse',
|
@@ -185,6 +188,7 @@ export class CollapsibleColumns extends BasePlugin {
|
|
185
188
|
return _this.onAfterGetColHeader(...arguments);
|
186
189
|
});
|
187
190
|
this.addHook('beforeOnCellMouseDown', (event, coords, TD) => this.onBeforeOnCellMouseDown(event, coords, TD));
|
191
|
+
this.registerShortcuts();
|
188
192
|
super.enablePlugin();
|
189
193
|
// @TODO: Workaround for broken plugin initialization abstraction (#6806).
|
190
194
|
this.updatePlugin();
|
@@ -232,10 +236,62 @@ export class CollapsibleColumns extends BasePlugin {
|
|
232
236
|
this.hot.columnIndexMapper.unregisterMap(this.pluginName);
|
233
237
|
_classPrivateFieldSet(this, _collapsedColumnsMap, null);
|
234
238
|
this.nestedHeadersPlugin = null;
|
239
|
+
this.unregisterShortcuts();
|
235
240
|
this.clearButtons();
|
236
241
|
super.disablePlugin();
|
237
242
|
}
|
238
243
|
|
244
|
+
/**
|
245
|
+
* Register shortcuts responsible for toggling collapsible columns.
|
246
|
+
*
|
247
|
+
* @private
|
248
|
+
*/
|
249
|
+
registerShortcuts() {
|
250
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
251
|
+
keys: [['Enter']],
|
252
|
+
callback: () => {
|
253
|
+
var _this$headerStateMana;
|
254
|
+
const {
|
255
|
+
row,
|
256
|
+
col
|
257
|
+
} = this.hot.getSelectedRangeLast().highlight;
|
258
|
+
const {
|
259
|
+
collapsible,
|
260
|
+
isCollapsed,
|
261
|
+
columnIndex
|
262
|
+
} = (_this$headerStateMana = this.headerStateManager.getHeaderTreeNodeData(row, col)) !== null && _this$headerStateMana !== void 0 ? _this$headerStateMana : {};
|
263
|
+
if (!collapsible) {
|
264
|
+
return;
|
265
|
+
}
|
266
|
+
if (isCollapsed) {
|
267
|
+
this.expandSection({
|
268
|
+
row,
|
269
|
+
col: columnIndex
|
270
|
+
});
|
271
|
+
} else {
|
272
|
+
this.collapseSection({
|
273
|
+
row,
|
274
|
+
col: columnIndex
|
275
|
+
});
|
276
|
+
}
|
277
|
+
},
|
278
|
+
runOnlyIf: () => {
|
279
|
+
var _this$hot$getSelected;
|
280
|
+
return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
|
281
|
+
},
|
282
|
+
group: SHORTCUTS_GROUP
|
283
|
+
});
|
284
|
+
}
|
285
|
+
|
286
|
+
/**
|
287
|
+
* Unregister shortcuts responsible for toggling collapsible columns.
|
288
|
+
*
|
289
|
+
* @private
|
290
|
+
*/
|
291
|
+
unregisterShortcuts() {
|
292
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
293
|
+
}
|
294
|
+
|
239
295
|
/**
|
240
296
|
* Clears the expand/collapse buttons.
|
241
297
|
*
|
@@ -356,7 +412,7 @@ export class CollapsibleColumns extends BasePlugin {
|
|
356
412
|
});
|
357
413
|
let isActionPossible = filteredCoords.length > 0;
|
358
414
|
arrayEach(filteredCoords, _ref2 => {
|
359
|
-
var _this$
|
415
|
+
var _this$headerStateMana2;
|
360
416
|
let {
|
361
417
|
row,
|
362
418
|
col: column
|
@@ -364,7 +420,7 @@ export class CollapsibleColumns extends BasePlugin {
|
|
364
420
|
const {
|
365
421
|
collapsible,
|
366
422
|
isCollapsed
|
367
|
-
} = (_this$
|
423
|
+
} = (_this$headerStateMana2 = this.headerStateManager.getHeaderSettings(row, column)) !== null && _this$headerStateMana2 !== void 0 ? _this$headerStateMana2 : {};
|
368
424
|
if (!collapsible || isCollapsed && action === 'collapse' || !isCollapsed && action === 'expand') {
|
369
425
|
isActionPossible = false;
|
370
426
|
return false;
|
@@ -436,14 +492,16 @@ export class CollapsibleColumns extends BasePlugin {
|
|
436
492
|
* values counting from 0 to N).
|
437
493
|
*/
|
438
494
|
onAfterGetColHeader(column, TH, headerLevel) {
|
439
|
-
var _this$
|
495
|
+
var _this$headerStateMana3;
|
440
496
|
const {
|
441
497
|
collapsible,
|
442
498
|
origColspan,
|
443
499
|
isCollapsed
|
444
|
-
} = (_this$
|
500
|
+
} = (_this$headerStateMana3 = this.headerStateManager.getHeaderSettings(headerLevel, column)) !== null && _this$headerStateMana3 !== void 0 ? _this$headerStateMana3 : {};
|
445
501
|
const isNodeCollapsible = collapsible && origColspan > 1 && column >= this.hot.getSettings().fixedColumnsStart;
|
502
|
+
const isAriaTagsEnabled = this.hot.getSettings().ariaTags;
|
446
503
|
let collapsibleElement = TH.querySelector(`.${COLLAPSIBLE_ELEMENT_CLASS}`);
|
504
|
+
removeAttribute(TH, [A11Y_EXPANDED('')[0]]);
|
447
505
|
if (isNodeCollapsible) {
|
448
506
|
if (!collapsibleElement) {
|
449
507
|
collapsibleElement = this.hot.rootDocument.createElement('div');
|
@@ -454,9 +512,22 @@ export class CollapsibleColumns extends BasePlugin {
|
|
454
512
|
if (isCollapsed) {
|
455
513
|
addClass(collapsibleElement, 'collapsed');
|
456
514
|
fastInnerText(collapsibleElement, '+');
|
515
|
+
|
516
|
+
// Add ARIA tags
|
517
|
+
if (isAriaTagsEnabled) {
|
518
|
+
setAttribute(TH, [A11Y_EXPANDED(false), A11Y_DESCRIPTION(this.hot.getTranslatedPhrase(COLUMN_HEADER_DESCRIPTION_EXPAND_COLUMN))]);
|
519
|
+
}
|
457
520
|
} else {
|
458
521
|
addClass(collapsibleElement, 'expanded');
|
459
522
|
fastInnerText(collapsibleElement, '-');
|
523
|
+
|
524
|
+
// Add ARIA tags
|
525
|
+
if (isAriaTagsEnabled) {
|
526
|
+
setAttribute(TH, [A11Y_EXPANDED(true), A11Y_DESCRIPTION(this.hot.getTranslatedPhrase(COLUMN_HEADER_DESCRIPTION_COLLAPSE_COLUMN))]);
|
527
|
+
}
|
528
|
+
}
|
529
|
+
if (isAriaTagsEnabled) {
|
530
|
+
setAttribute(collapsibleElement, ...A11Y_HIDDEN());
|
460
531
|
}
|
461
532
|
} else {
|
462
533
|
var _collapsibleElement;
|
@@ -15,13 +15,15 @@ var _utils = require("./utils");
|
|
15
15
|
var _domHelpers = require("./domHelpers");
|
16
16
|
var _rootComparator = require("./rootComparator");
|
17
17
|
var _sortService = require("./sortService");
|
18
|
+
var _a11y = require("../../helpers/a11y");
|
19
|
+
var _constants = require("../../i18n/constants");
|
18
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
19
|
-
const PLUGIN_KEY = 'columnSorting';
|
20
|
-
exports.
|
21
|
-
const
|
22
|
-
exports.
|
23
|
-
const
|
24
|
-
const
|
21
|
+
const PLUGIN_KEY = exports.PLUGIN_KEY = 'columnSorting';
|
22
|
+
const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 50;
|
23
|
+
const APPEND_COLUMN_CONFIG_STRATEGY = exports.APPEND_COLUMN_CONFIG_STRATEGY = 'append';
|
24
|
+
const REPLACE_COLUMN_CONFIG_STRATEGY = exports.REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
|
25
|
+
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
26
|
+
const SORTING_INDICATOR_CLASS = 'columnSortingIndicator';
|
25
27
|
(0, _sortService.registerRootComparator)(PLUGIN_KEY, _rootComparator.rootComparator);
|
26
28
|
_pluginHooks.default.getSingleton().register('beforeColumnSort');
|
27
29
|
_pluginHooks.default.getSingleton().register('afterColumnSort');
|
@@ -156,6 +158,7 @@ class ColumnSorting extends _base.BasePlugin {
|
|
156
158
|
if (this.hot.view) {
|
157
159
|
this.loadOrSortBySettings();
|
158
160
|
}
|
161
|
+
this.registerShortcuts();
|
159
162
|
super.enablePlugin();
|
160
163
|
}
|
161
164
|
|
@@ -186,9 +189,43 @@ class ColumnSorting extends _base.BasePlugin {
|
|
186
189
|
this.columnStatesManager.destroy();
|
187
190
|
this.columnMetaCache = null;
|
188
191
|
this.columnStatesManager = null;
|
192
|
+
this.unregisterShortcuts();
|
189
193
|
super.disablePlugin();
|
190
194
|
}
|
191
195
|
|
196
|
+
/**
|
197
|
+
* Register shortcuts responsible for toggling column sorting functionality.
|
198
|
+
*
|
199
|
+
* @private
|
200
|
+
*/
|
201
|
+
registerShortcuts() {
|
202
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
203
|
+
keys: [['Enter']],
|
204
|
+
callback: () => {
|
205
|
+
const {
|
206
|
+
highlight
|
207
|
+
} = this.hot.getSelectedRangeLast();
|
208
|
+
if (highlight.row === -1 && highlight.col >= 0) {
|
209
|
+
this.sort(this.getColumnNextConfig(highlight.col));
|
210
|
+
}
|
211
|
+
},
|
212
|
+
runOnlyIf: () => {
|
213
|
+
var _this$hot$getSelected;
|
214
|
+
return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
|
215
|
+
},
|
216
|
+
group: SHORTCUTS_GROUP
|
217
|
+
});
|
218
|
+
}
|
219
|
+
|
220
|
+
/**
|
221
|
+
* Unregister shortcuts responsible for toggling column sorting functionality.
|
222
|
+
*
|
223
|
+
* @private
|
224
|
+
*/
|
225
|
+
unregisterShortcuts() {
|
226
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
227
|
+
}
|
228
|
+
|
192
229
|
// DIFF - MultiColumnSorting & ColumnSorting: changed function documentation.
|
193
230
|
/**
|
194
231
|
* Sorts the table by chosen columns and orders.
|
@@ -605,9 +642,15 @@ class ColumnSorting extends _base.BasePlugin {
|
|
605
642
|
return;
|
606
643
|
}
|
607
644
|
const pluginSettingsForColumn = this.getFirstCellSettings(column)[this.pluginKey];
|
645
|
+
const ariaTags = this.hot.getSettings().ariaTags;
|
608
646
|
const showSortIndicator = pluginSettingsForColumn.indicator;
|
609
647
|
const headerActionEnabled = pluginSettingsForColumn.headerAction;
|
648
|
+
const currentSortState = this.columnStatesManager.getSortOrderOfColumn(column);
|
610
649
|
this.updateHeaderClasses(headerSpanElement, this.columnStatesManager, column, showSortIndicator, headerActionEnabled);
|
650
|
+
this.updateSortingIndicator(column, headerSpanElement);
|
651
|
+
if (ariaTags) {
|
652
|
+
(0, _element.setAttribute)(TH, [(0, _a11y.A11Y_SORT)(currentSortState ? `${currentSortState}ending` : 'none'), (0, _a11y.A11Y_DESCRIPTION)(this.hot.getTranslatedPhrase(_constants.COLUMN_HEADER_DESCRIPTION_SORT_ROWS))]);
|
653
|
+
}
|
611
654
|
}
|
612
655
|
|
613
656
|
/**
|
@@ -627,6 +670,28 @@ class ColumnSorting extends _base.BasePlugin {
|
|
627
670
|
}
|
628
671
|
}
|
629
672
|
|
673
|
+
/**
|
674
|
+
* Update sorting indicator.
|
675
|
+
*
|
676
|
+
* @private
|
677
|
+
* @param {number} column Visual column index.
|
678
|
+
* @param {HTMLElement} headerSpanElement Header span element.
|
679
|
+
*/
|
680
|
+
updateSortingIndicator(column, headerSpanElement) {
|
681
|
+
const pluginSettingsForColumn = this.getFirstCellSettings(column)[this.pluginKey];
|
682
|
+
const ariaTags = this.hot.getSettings().ariaTags;
|
683
|
+
const showSortIndicator = pluginSettingsForColumn.indicator;
|
684
|
+
const isColumnSorted = this.columnStatesManager.isColumnSorted(column);
|
685
|
+
const indicatorElement = headerSpanElement.querySelector(`.${SORTING_INDICATOR_CLASS}`);
|
686
|
+
if (showSortIndicator && isColumnSorted && !indicatorElement) {
|
687
|
+
(0, _element.appendElement)(headerSpanElement, {
|
688
|
+
tagName: 'div',
|
689
|
+
className: SORTING_INDICATOR_CLASS,
|
690
|
+
attributes: ariaTags ? [(0, _a11y.A11Y_HIDDEN)()] : []
|
691
|
+
});
|
692
|
+
}
|
693
|
+
}
|
694
|
+
|
630
695
|
/**
|
631
696
|
* Overwriting base plugin's `onUpdateSettings` method. Please keep in mind that `onAfterUpdateSettings` isn't called
|
632
697
|
* for `updateSettings` in specific situations.
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import "core-js/modules/es.array.push.js";
|
2
|
-
import { addClass, removeClass } from "../../helpers/dom/element.mjs";
|
2
|
+
import { addClass, appendElement, removeClass, setAttribute } from "../../helpers/dom/element.mjs";
|
3
3
|
import { isUndefined, isDefined } from "../../helpers/mixed.mjs";
|
4
4
|
import { isObject } from "../../helpers/object.mjs";
|
5
5
|
import { isFunction } from "../../helpers/function.mjs";
|
@@ -12,10 +12,14 @@ import { getNextSortOrder, areValidSortStates, getHeaderSpanElement, isFirstLeve
|
|
12
12
|
import { getClassesToRemove, getClassesToAdd } from "./domHelpers.mjs";
|
13
13
|
import { rootComparator } from "./rootComparator.mjs";
|
14
14
|
import { registerRootComparator, sort } from "./sortService/index.mjs";
|
15
|
+
import { A11Y_DESCRIPTION, A11Y_HIDDEN, A11Y_SORT } from "../../helpers/a11y.mjs";
|
16
|
+
import { COLUMN_HEADER_DESCRIPTION_SORT_ROWS } from "../../i18n/constants.mjs";
|
15
17
|
export const PLUGIN_KEY = 'columnSorting';
|
16
18
|
export const PLUGIN_PRIORITY = 50;
|
17
|
-
const APPEND_COLUMN_CONFIG_STRATEGY = 'append';
|
18
|
-
const REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
|
19
|
+
export const APPEND_COLUMN_CONFIG_STRATEGY = 'append';
|
20
|
+
export const REPLACE_COLUMN_CONFIG_STRATEGY = 'replace';
|
21
|
+
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
22
|
+
const SORTING_INDICATOR_CLASS = 'columnSortingIndicator';
|
19
23
|
registerRootComparator(PLUGIN_KEY, rootComparator);
|
20
24
|
Hooks.getSingleton().register('beforeColumnSort');
|
21
25
|
Hooks.getSingleton().register('afterColumnSort');
|
@@ -150,6 +154,7 @@ export class ColumnSorting extends BasePlugin {
|
|
150
154
|
if (this.hot.view) {
|
151
155
|
this.loadOrSortBySettings();
|
152
156
|
}
|
157
|
+
this.registerShortcuts();
|
153
158
|
super.enablePlugin();
|
154
159
|
}
|
155
160
|
|
@@ -180,9 +185,43 @@ export class ColumnSorting extends BasePlugin {
|
|
180
185
|
this.columnStatesManager.destroy();
|
181
186
|
this.columnMetaCache = null;
|
182
187
|
this.columnStatesManager = null;
|
188
|
+
this.unregisterShortcuts();
|
183
189
|
super.disablePlugin();
|
184
190
|
}
|
185
191
|
|
192
|
+
/**
|
193
|
+
* Register shortcuts responsible for toggling column sorting functionality.
|
194
|
+
*
|
195
|
+
* @private
|
196
|
+
*/
|
197
|
+
registerShortcuts() {
|
198
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
199
|
+
keys: [['Enter']],
|
200
|
+
callback: () => {
|
201
|
+
const {
|
202
|
+
highlight
|
203
|
+
} = this.hot.getSelectedRangeLast();
|
204
|
+
if (highlight.row === -1 && highlight.col >= 0) {
|
205
|
+
this.sort(this.getColumnNextConfig(highlight.col));
|
206
|
+
}
|
207
|
+
},
|
208
|
+
runOnlyIf: () => {
|
209
|
+
var _this$hot$getSelected;
|
210
|
+
return (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight.isHeader();
|
211
|
+
},
|
212
|
+
group: SHORTCUTS_GROUP
|
213
|
+
});
|
214
|
+
}
|
215
|
+
|
216
|
+
/**
|
217
|
+
* Unregister shortcuts responsible for toggling column sorting functionality.
|
218
|
+
*
|
219
|
+
* @private
|
220
|
+
*/
|
221
|
+
unregisterShortcuts() {
|
222
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
223
|
+
}
|
224
|
+
|
186
225
|
// DIFF - MultiColumnSorting & ColumnSorting: changed function documentation.
|
187
226
|
/**
|
188
227
|
* Sorts the table by chosen columns and orders.
|
@@ -599,9 +638,15 @@ export class ColumnSorting extends BasePlugin {
|
|
599
638
|
return;
|
600
639
|
}
|
601
640
|
const pluginSettingsForColumn = this.getFirstCellSettings(column)[this.pluginKey];
|
641
|
+
const ariaTags = this.hot.getSettings().ariaTags;
|
602
642
|
const showSortIndicator = pluginSettingsForColumn.indicator;
|
603
643
|
const headerActionEnabled = pluginSettingsForColumn.headerAction;
|
644
|
+
const currentSortState = this.columnStatesManager.getSortOrderOfColumn(column);
|
604
645
|
this.updateHeaderClasses(headerSpanElement, this.columnStatesManager, column, showSortIndicator, headerActionEnabled);
|
646
|
+
this.updateSortingIndicator(column, headerSpanElement);
|
647
|
+
if (ariaTags) {
|
648
|
+
setAttribute(TH, [A11Y_SORT(currentSortState ? `${currentSortState}ending` : 'none'), A11Y_DESCRIPTION(this.hot.getTranslatedPhrase(COLUMN_HEADER_DESCRIPTION_SORT_ROWS))]);
|
649
|
+
}
|
605
650
|
}
|
606
651
|
|
607
652
|
/**
|
@@ -621,6 +666,28 @@ export class ColumnSorting extends BasePlugin {
|
|
621
666
|
}
|
622
667
|
}
|
623
668
|
|
669
|
+
/**
|
670
|
+
* Update sorting indicator.
|
671
|
+
*
|
672
|
+
* @private
|
673
|
+
* @param {number} column Visual column index.
|
674
|
+
* @param {HTMLElement} headerSpanElement Header span element.
|
675
|
+
*/
|
676
|
+
updateSortingIndicator(column, headerSpanElement) {
|
677
|
+
const pluginSettingsForColumn = this.getFirstCellSettings(column)[this.pluginKey];
|
678
|
+
const ariaTags = this.hot.getSettings().ariaTags;
|
679
|
+
const showSortIndicator = pluginSettingsForColumn.indicator;
|
680
|
+
const isColumnSorted = this.columnStatesManager.isColumnSorted(column);
|
681
|
+
const indicatorElement = headerSpanElement.querySelector(`.${SORTING_INDICATOR_CLASS}`);
|
682
|
+
if (showSortIndicator && isColumnSorted && !indicatorElement) {
|
683
|
+
appendElement(headerSpanElement, {
|
684
|
+
tagName: 'div',
|
685
|
+
className: SORTING_INDICATOR_CLASS,
|
686
|
+
attributes: ariaTags ? [A11Y_HIDDEN()] : []
|
687
|
+
});
|
688
|
+
}
|
689
|
+
}
|
690
|
+
|
624
691
|
/**
|
625
692
|
* Overwriting base plugin's `onUpdateSettings` method. Please keep in mind that `onAfterUpdateSettings` isn't called
|
626
693
|
* for `updateSettings` in specific situations.
|
@@ -4,4 +4,6 @@ exports.__esModule = true;
|
|
4
4
|
var _columnSorting = require("./columnSorting");
|
5
5
|
exports.PLUGIN_KEY = _columnSorting.PLUGIN_KEY;
|
6
6
|
exports.PLUGIN_PRIORITY = _columnSorting.PLUGIN_PRIORITY;
|
7
|
-
exports.ColumnSorting = _columnSorting.ColumnSorting;
|
7
|
+
exports.ColumnSorting = _columnSorting.ColumnSorting;
|
8
|
+
exports.APPEND_COLUMN_CONFIG_STRATEGY = _columnSorting.APPEND_COLUMN_CONFIG_STRATEGY;
|
9
|
+
exports.REPLACE_COLUMN_CONFIG_STRATEGY = _columnSorting.REPLACE_COLUMN_CONFIG_STRATEGY;
|
@@ -1 +1 @@
|
|
1
|
-
export { PLUGIN_KEY, PLUGIN_PRIORITY, ColumnSorting } from "./columnSorting.mjs";
|
1
|
+
export { PLUGIN_KEY, PLUGIN_PRIORITY, ColumnSorting, APPEND_COLUMN_CONFIG_STRATEGY, REPLACE_COLUMN_CONFIG_STRATEGY } from "./columnSorting.mjs";
|