handsontable 13.1.0 → 14.0.0-next-e8f87aa-20231030
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 +23133 -15992
- package/dist/handsontable.full.min.css +8 -8
- package/dist/handsontable.full.min.js +170 -152
- package/dist/handsontable.js +21856 -15085
- package/dist/handsontable.min.css +7 -7
- package/dist/handsontable.min.js +30 -22
- 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 +118 -67
- package/plugins/filters/filters.mjs +109 -56
- 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
@@ -1,32 +1,45 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
+
require("core-js/modules/es.error.cause.js");
|
3
4
|
exports.__esModule = true;
|
5
|
+
require("core-js/modules/es.array.unscopables.flat.js");
|
4
6
|
require("core-js/modules/es.array.push.js");
|
5
7
|
var _base = require("../base");
|
6
8
|
var _array = require("../../helpers/array");
|
7
9
|
var _templateLiteralTag = require("../../helpers/templateLiteralTag");
|
8
10
|
var _console = require("../../helpers/console");
|
9
11
|
var _number = require("../../helpers/number");
|
10
|
-
var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
11
12
|
var _element = require("../../helpers/dom/element");
|
13
|
+
var _unicode = require("../../helpers/unicode");
|
12
14
|
var _predefinedItems = require("../contextMenu/predefinedItems");
|
13
15
|
var constants = _interopRequireWildcard(require("../../i18n/constants"));
|
14
|
-
var _condition =
|
15
|
-
var _operators =
|
16
|
-
var _value =
|
17
|
-
var _actionBar =
|
16
|
+
var _condition = require("./component/condition");
|
17
|
+
var _operators = require("./component/operators");
|
18
|
+
var _value = require("./component/value");
|
19
|
+
var _actionBar = require("./component/actionBar");
|
18
20
|
var _conditionCollection = _interopRequireDefault(require("./conditionCollection"));
|
19
21
|
var _dataFilter = _interopRequireDefault(require("./dataFilter"));
|
20
22
|
var _conditionUpdateObserver = _interopRequireDefault(require("./conditionUpdateObserver"));
|
21
23
|
var _utils = require("./utils");
|
24
|
+
var _focusController = require("./menu/focusController");
|
22
25
|
var _constants2 = require("./constants");
|
23
26
|
var _translations = require("../../translations");
|
24
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
25
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
26
27
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
27
|
-
|
28
|
-
|
29
|
-
|
28
|
+
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); }
|
29
|
+
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; }
|
30
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
31
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
32
|
+
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; }
|
33
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
34
|
+
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); }
|
35
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
36
|
+
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; } }
|
37
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
38
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
39
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
40
|
+
const PLUGIN_KEY = exports.PLUGIN_KEY = 'filters';
|
41
|
+
const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 250;
|
42
|
+
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
30
43
|
|
31
44
|
/**
|
32
45
|
* @plugin Filters
|
@@ -63,7 +76,7 @@ const PLUGIN_PRIORITY = 250;
|
|
63
76
|
* ```
|
64
77
|
* :::
|
65
78
|
*/
|
66
|
-
|
79
|
+
var _menuFocusNavigator = /*#__PURE__*/new WeakMap();
|
67
80
|
class Filters extends _base.BasePlugin {
|
68
81
|
static get PLUGIN_KEY() {
|
69
82
|
return PLUGIN_KEY;
|
@@ -74,52 +87,55 @@ class Filters extends _base.BasePlugin {
|
|
74
87
|
static get PLUGIN_DEPS() {
|
75
88
|
return ['plugin:DropdownMenu', 'plugin:HiddenRows', 'cell-type:checkbox'];
|
76
89
|
}
|
90
|
+
|
91
|
+
/**
|
92
|
+
* Instance of {@link DropdownMenu}.
|
93
|
+
*
|
94
|
+
* @private
|
95
|
+
* @type {DropdownMenu}
|
96
|
+
*/
|
97
|
+
|
77
98
|
constructor(hotInstance) {
|
78
99
|
super(hotInstance);
|
79
|
-
|
80
|
-
|
81
|
-
*
|
82
|
-
* @private
|
83
|
-
* @type {EventManager}
|
84
|
-
*/
|
85
|
-
this.eventManager = new _eventManager.default(this);
|
86
|
-
/**
|
87
|
-
* Instance of {@link DropdownMenu}.
|
88
|
-
*
|
89
|
-
* @private
|
90
|
-
* @type {DropdownMenu}
|
91
|
-
*/
|
92
|
-
this.dropdownMenuPlugin = null;
|
100
|
+
// One listener for the enable/disable functionality
|
101
|
+
_defineProperty(this, "dropdownMenuPlugin", null);
|
93
102
|
/**
|
94
103
|
* Instance of {@link ConditionCollection}.
|
95
104
|
*
|
96
105
|
* @private
|
97
106
|
* @type {ConditionCollection}
|
98
107
|
*/
|
99
|
-
this
|
108
|
+
_defineProperty(this, "conditionCollection", null);
|
100
109
|
/**
|
101
110
|
* Instance of {@link ConditionUpdateObserver}.
|
102
111
|
*
|
103
112
|
* @private
|
104
113
|
* @type {ConditionUpdateObserver}
|
105
114
|
*/
|
106
|
-
this
|
115
|
+
_defineProperty(this, "conditionUpdateObserver", null);
|
107
116
|
/**
|
108
117
|
* Map, where key is component identifier and value represent `BaseComponent` element or it derivatives.
|
109
118
|
*
|
110
119
|
* @private
|
111
120
|
* @type {Map}
|
112
121
|
*/
|
113
|
-
this
|
122
|
+
_defineProperty(this, "components", new Map([['filter_by_condition', null], ['filter_operators', null], ['filter_by_condition2', null], ['filter_by_value', null], ['filter_action_bar', null]]));
|
114
123
|
/**
|
115
124
|
* Map of skipped rows by plugin.
|
116
125
|
*
|
117
126
|
* @private
|
118
127
|
* @type {null|TrimmingMap}
|
119
128
|
*/
|
120
|
-
this
|
121
|
-
|
122
|
-
|
129
|
+
_defineProperty(this, "filtersRowsMap", null);
|
130
|
+
/**
|
131
|
+
* Menu focus navigator allows switching the focus position through Tab and Shift Tab keys.
|
132
|
+
*
|
133
|
+
* @type {MenuFocusNavigator|undefined}
|
134
|
+
*/
|
135
|
+
_classPrivateFieldInitSpec(this, _menuFocusNavigator, {
|
136
|
+
writable: true,
|
137
|
+
value: void 0
|
138
|
+
});
|
123
139
|
this.hot.addHook('afterGetColHeader', (col, TH) => this.onAfterGetColHeader(col, TH));
|
124
140
|
}
|
125
141
|
|
@@ -154,7 +170,7 @@ class Filters extends _base.BasePlugin {
|
|
154
170
|
const filterByConditionLabel = () => `${this.hot.getTranslatedPhrase(constants.FILTERS_DIVS_FILTER_BY_CONDITION)}:`;
|
155
171
|
const filterValueLabel = () => `${this.hot.getTranslatedPhrase(constants.FILTERS_DIVS_FILTER_BY_VALUE)}:`;
|
156
172
|
if (!this.components.get('filter_by_condition')) {
|
157
|
-
const conditionComponent = new _condition.
|
173
|
+
const conditionComponent = new _condition.ConditionComponent(this.hot, {
|
158
174
|
id: 'filter_by_condition',
|
159
175
|
name: filterByConditionLabel,
|
160
176
|
addSeparator: false,
|
@@ -164,13 +180,13 @@ class Filters extends _base.BasePlugin {
|
|
164
180
|
this.components.set('filter_by_condition', addConfirmationHooks(conditionComponent));
|
165
181
|
}
|
166
182
|
if (!this.components.get('filter_operators')) {
|
167
|
-
this.components.set('filter_operators', new _operators.
|
183
|
+
this.components.set('filter_operators', new _operators.OperatorsComponent(this.hot, {
|
168
184
|
id: 'filter_operators',
|
169
185
|
name: 'Operators'
|
170
186
|
}));
|
171
187
|
}
|
172
188
|
if (!this.components.get('filter_by_condition2')) {
|
173
|
-
const conditionComponent = new _condition.
|
189
|
+
const conditionComponent = new _condition.ConditionComponent(this.hot, {
|
174
190
|
id: 'filter_by_condition2',
|
175
191
|
name: '',
|
176
192
|
addSeparator: true,
|
@@ -180,13 +196,13 @@ class Filters extends _base.BasePlugin {
|
|
180
196
|
this.components.set('filter_by_condition2', addConfirmationHooks(conditionComponent));
|
181
197
|
}
|
182
198
|
if (!this.components.get('filter_by_value')) {
|
183
|
-
this.components.set('filter_by_value', addConfirmationHooks(new _value.
|
199
|
+
this.components.set('filter_by_value', addConfirmationHooks(new _value.ValueComponent(this.hot, {
|
184
200
|
id: 'filter_by_value',
|
185
201
|
name: filterValueLabel
|
186
202
|
})));
|
187
203
|
}
|
188
204
|
if (!this.components.get('filter_action_bar')) {
|
189
|
-
this.components.set('filter_action_bar', addConfirmationHooks(new _actionBar.
|
205
|
+
this.components.set('filter_action_bar', addConfirmationHooks(new _actionBar.ActionBarComponent(this.hot, {
|
190
206
|
id: 'filter_action_bar',
|
191
207
|
name: 'Action bar'
|
192
208
|
})));
|
@@ -199,7 +215,6 @@ class Filters extends _base.BasePlugin {
|
|
199
215
|
this.conditionUpdateObserver.addLocalHook('update', conditionState => this.updateComponents(conditionState));
|
200
216
|
}
|
201
217
|
this.components.forEach(component => component.show());
|
202
|
-
this.addHook('beforeDropdownMenuSetItems', items => this.onBeforeDropdownMenuSetItems(items));
|
203
218
|
this.addHook('afterDropdownMenuDefaultOptions', defaultOptions => this.onAfterDropdownMenuDefaultOptions(defaultOptions));
|
204
219
|
this.addHook('afterDropdownMenuShow', () => this.onAfterDropdownMenuShow());
|
205
220
|
this.addHook('afterDropdownMenuHide', () => this.onAfterDropdownMenuHide());
|
@@ -210,6 +225,33 @@ class Filters extends _base.BasePlugin {
|
|
210
225
|
this.dropdownMenuPlugin.disablePlugin();
|
211
226
|
this.dropdownMenuPlugin.enablePlugin();
|
212
227
|
}
|
228
|
+
if (!_classPrivateFieldGet(this, _menuFocusNavigator) && this.dropdownMenuPlugin.enabled) {
|
229
|
+
const mainMenu = this.dropdownMenuPlugin.menu;
|
230
|
+
const focusableItems = [
|
231
|
+
// A fake menu item that once focused allows escaping from the focus navigation (using Tab keys)
|
232
|
+
// to the menu navigation using arrow keys.
|
233
|
+
{
|
234
|
+
focus: () => mainMenu.focus()
|
235
|
+
}, ...Array.from(this.components).map(_ref => {
|
236
|
+
let [, component] = _ref;
|
237
|
+
return component.getElements();
|
238
|
+
}).flat()];
|
239
|
+
_classPrivateFieldSet(this, _menuFocusNavigator, (0, _focusController.createMenuFocusController)(mainMenu, focusableItems));
|
240
|
+
const forwardToFocusNavigation = event => {
|
241
|
+
_classPrivateFieldGet(this, _menuFocusNavigator).listen();
|
242
|
+
event.preventDefault();
|
243
|
+
if ((0, _unicode.isKey)(event.keyCode, 'TAB')) {
|
244
|
+
if (event.shiftKey) {
|
245
|
+
_classPrivateFieldGet(this, _menuFocusNavigator).toPreviousItem();
|
246
|
+
} else {
|
247
|
+
_classPrivateFieldGet(this, _menuFocusNavigator).toNextItem();
|
248
|
+
}
|
249
|
+
}
|
250
|
+
};
|
251
|
+
this.components.get('filter_by_value').addLocalHook('listTabKeydown', forwardToFocusNavigation);
|
252
|
+
this.components.get('filter_by_condition').addLocalHook('selectTabKeydown', forwardToFocusNavigation);
|
253
|
+
}
|
254
|
+
this.registerShortcuts();
|
213
255
|
super.enablePlugin();
|
214
256
|
}
|
215
257
|
|
@@ -230,9 +272,40 @@ class Filters extends _base.BasePlugin {
|
|
230
272
|
this.conditionCollection = null;
|
231
273
|
this.hot.rowIndexMapper.unregisterMap(this.pluginName);
|
232
274
|
}
|
275
|
+
this.unregisterShortcuts();
|
233
276
|
super.disablePlugin();
|
234
277
|
}
|
235
278
|
|
279
|
+
/**
|
280
|
+
* Register shortcuts responsible for clearing the filters.
|
281
|
+
*
|
282
|
+
* @private
|
283
|
+
*/
|
284
|
+
registerShortcuts() {
|
285
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
286
|
+
keys: [['Alt', 'A']],
|
287
|
+
stopPropagation: true,
|
288
|
+
callback: () => {
|
289
|
+
const selection = this.hot.getSelected();
|
290
|
+
this.clearConditions();
|
291
|
+
this.filter();
|
292
|
+
if (selection) {
|
293
|
+
this.hot.selectCells(selection);
|
294
|
+
}
|
295
|
+
},
|
296
|
+
group: SHORTCUTS_GROUP
|
297
|
+
});
|
298
|
+
}
|
299
|
+
|
300
|
+
/**
|
301
|
+
* Unregister shortcuts responsible for clearing the filters.
|
302
|
+
*
|
303
|
+
* @private
|
304
|
+
*/
|
305
|
+
unregisterShortcuts() {
|
306
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
307
|
+
}
|
308
|
+
|
236
309
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
237
310
|
/**
|
238
311
|
* @memberof Filters#
|
@@ -391,6 +464,9 @@ class Filters extends _base.BasePlugin {
|
|
391
464
|
* @fires Hooks#afterFilter
|
392
465
|
*/
|
393
466
|
filter() {
|
467
|
+
const {
|
468
|
+
navigableHeaders
|
469
|
+
} = this.hot.getSettings();
|
394
470
|
const dataFilter = this._createDataFilter();
|
395
471
|
const needToFilter = !this.conditionCollection.isEmpty();
|
396
472
|
let visibleVisualRows = [];
|
@@ -412,7 +488,7 @@ class Filters extends _base.BasePlugin {
|
|
412
488
|
this.filtersRowsMap.setValueAtIndex(physicalRow, true);
|
413
489
|
});
|
414
490
|
}, true);
|
415
|
-
if (!visibleVisualRows.length) {
|
491
|
+
if (!navigableHeaders && !visibleVisualRows.length) {
|
416
492
|
this.hot.deselectCell();
|
417
493
|
}
|
418
494
|
} else {
|
@@ -422,7 +498,9 @@ class Filters extends _base.BasePlugin {
|
|
422
498
|
this.hot.runHooks('afterFilter', conditions);
|
423
499
|
this.hot.view.adjustElementsSize(true);
|
424
500
|
this.hot.render();
|
425
|
-
this.
|
501
|
+
if (this.hot.selection.isSelected()) {
|
502
|
+
this.hot.selectCell(navigableHeaders ? -1 : 0, this.hot.getSelectedRangeLast().highlight.col);
|
503
|
+
}
|
426
504
|
}
|
427
505
|
|
428
506
|
/**
|
@@ -444,18 +522,6 @@ class Filters extends _base.BasePlugin {
|
|
444
522
|
};
|
445
523
|
}
|
446
524
|
|
447
|
-
/**
|
448
|
-
* Clears column selection.
|
449
|
-
*
|
450
|
-
* @private
|
451
|
-
*/
|
452
|
-
clearColumnSelection() {
|
453
|
-
const selectedColumn = this.getSelectedColumn();
|
454
|
-
if (selectedColumn !== null) {
|
455
|
-
this.hot.selectCell(0, selectedColumn.visualIndex);
|
456
|
-
}
|
457
|
-
}
|
458
|
-
|
459
525
|
/**
|
460
526
|
* Returns handsontable source data with cell meta based on current selection.
|
461
527
|
*
|
@@ -562,21 +628,6 @@ class Filters extends _base.BasePlugin {
|
|
562
628
|
this.components.get('filter_by_condition2').getSelectElement().closeOptions();
|
563
629
|
}
|
564
630
|
|
565
|
-
/**
|
566
|
-
* Before dropdown menu set menu items listener.
|
567
|
-
*
|
568
|
-
* @private
|
569
|
-
*/
|
570
|
-
onBeforeDropdownMenuSetItems() {
|
571
|
-
if (this.dropdownMenuPlugin) {
|
572
|
-
this.dropdownMenuPlugin.menu.addLocalHook('afterOpen', () => {
|
573
|
-
this.dropdownMenuPlugin.menu.hotMenu.updateSettings({
|
574
|
-
hiddenRows: true
|
575
|
-
});
|
576
|
-
});
|
577
|
-
}
|
578
|
-
}
|
579
|
-
|
580
631
|
/**
|
581
632
|
* After dropdown menu default options listener.
|
582
633
|
*
|
@@ -668,7 +719,7 @@ class Filters extends _base.BasePlugin {
|
|
668
719
|
*/
|
669
720
|
onComponentChange(component, command) {
|
670
721
|
this.updateDependentComponentsVisibility();
|
671
|
-
if (component.constructor === _condition.
|
722
|
+
if (component.constructor === _condition.ConditionComponent && !command.inputsCount) {
|
672
723
|
this.setListeningDropdownMenu();
|
673
724
|
}
|
674
725
|
}
|
@@ -1,25 +1,39 @@
|
|
1
|
+
import "core-js/modules/es.array.unscopables.flat.js";
|
1
2
|
import "core-js/modules/es.array.push.js";
|
3
|
+
import "core-js/modules/es.error.cause.js";
|
4
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
5
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
6
|
+
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; }
|
7
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
8
|
+
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); }
|
9
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
10
|
+
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; } }
|
11
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
12
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
13
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
2
14
|
import { BasePlugin } from "../base/index.mjs";
|
3
15
|
import { arrayEach, arrayMap } from "../../helpers/array.mjs";
|
4
16
|
import { toSingleLine } from "../../helpers/templateLiteralTag.mjs";
|
5
17
|
import { warn } from "../../helpers/console.mjs";
|
6
18
|
import { rangeEach } from "../../helpers/number.mjs";
|
7
|
-
import EventManager from "../../eventManager.mjs";
|
8
19
|
import { addClass, removeClass } from "../../helpers/dom/element.mjs";
|
9
|
-
import {
|
20
|
+
import { isKey } from "../../helpers/unicode.mjs";
|
21
|
+
import { SEPARATOR } from "../contextMenu/predefinedItems/index.mjs";
|
10
22
|
import * as constants from "../../i18n/constants.mjs";
|
11
|
-
import ConditionComponent from "./component/condition.mjs";
|
12
|
-
import OperatorsComponent from "./component/operators.mjs";
|
13
|
-
import ValueComponent from "./component/value.mjs";
|
14
|
-
import ActionBarComponent from "./component/actionBar.mjs";
|
23
|
+
import { ConditionComponent } from "./component/condition.mjs";
|
24
|
+
import { OperatorsComponent } from "./component/operators.mjs";
|
25
|
+
import { ValueComponent } from "./component/value.mjs";
|
26
|
+
import { ActionBarComponent } from "./component/actionBar.mjs";
|
15
27
|
import ConditionCollection from "./conditionCollection.mjs";
|
16
28
|
import DataFilter from "./dataFilter.mjs";
|
17
29
|
import ConditionUpdateObserver from "./conditionUpdateObserver.mjs";
|
18
30
|
import { createArrayAssertion, toEmptyString, unifyColumnValues } from "./utils.mjs";
|
31
|
+
import { createMenuFocusController } from "./menu/focusController.mjs";
|
19
32
|
import { CONDITION_NONE, CONDITION_BY_VALUE, OPERATION_AND, OPERATION_OR, OPERATION_OR_THEN_VARIABLE } from "./constants.mjs";
|
20
33
|
import { TrimmingMap } from "../../translations/index.mjs";
|
21
34
|
export const PLUGIN_KEY = 'filters';
|
22
35
|
export const PLUGIN_PRIORITY = 250;
|
36
|
+
const SHORTCUTS_GROUP = PLUGIN_KEY;
|
23
37
|
|
24
38
|
/**
|
25
39
|
* @plugin Filters
|
@@ -56,6 +70,7 @@ export const PLUGIN_PRIORITY = 250;
|
|
56
70
|
* ```
|
57
71
|
* :::
|
58
72
|
*/
|
73
|
+
var _menuFocusNavigator = /*#__PURE__*/new WeakMap();
|
59
74
|
export class Filters extends BasePlugin {
|
60
75
|
static get PLUGIN_KEY() {
|
61
76
|
return PLUGIN_KEY;
|
@@ -66,52 +81,55 @@ export class Filters extends BasePlugin {
|
|
66
81
|
static get PLUGIN_DEPS() {
|
67
82
|
return ['plugin:DropdownMenu', 'plugin:HiddenRows', 'cell-type:checkbox'];
|
68
83
|
}
|
84
|
+
|
85
|
+
/**
|
86
|
+
* Instance of {@link DropdownMenu}.
|
87
|
+
*
|
88
|
+
* @private
|
89
|
+
* @type {DropdownMenu}
|
90
|
+
*/
|
91
|
+
|
69
92
|
constructor(hotInstance) {
|
70
93
|
super(hotInstance);
|
71
|
-
|
72
|
-
|
73
|
-
*
|
74
|
-
* @private
|
75
|
-
* @type {EventManager}
|
76
|
-
*/
|
77
|
-
this.eventManager = new EventManager(this);
|
78
|
-
/**
|
79
|
-
* Instance of {@link DropdownMenu}.
|
80
|
-
*
|
81
|
-
* @private
|
82
|
-
* @type {DropdownMenu}
|
83
|
-
*/
|
84
|
-
this.dropdownMenuPlugin = null;
|
94
|
+
// One listener for the enable/disable functionality
|
95
|
+
_defineProperty(this, "dropdownMenuPlugin", null);
|
85
96
|
/**
|
86
97
|
* Instance of {@link ConditionCollection}.
|
87
98
|
*
|
88
99
|
* @private
|
89
100
|
* @type {ConditionCollection}
|
90
101
|
*/
|
91
|
-
this
|
102
|
+
_defineProperty(this, "conditionCollection", null);
|
92
103
|
/**
|
93
104
|
* Instance of {@link ConditionUpdateObserver}.
|
94
105
|
*
|
95
106
|
* @private
|
96
107
|
* @type {ConditionUpdateObserver}
|
97
108
|
*/
|
98
|
-
this
|
109
|
+
_defineProperty(this, "conditionUpdateObserver", null);
|
99
110
|
/**
|
100
111
|
* Map, where key is component identifier and value represent `BaseComponent` element or it derivatives.
|
101
112
|
*
|
102
113
|
* @private
|
103
114
|
* @type {Map}
|
104
115
|
*/
|
105
|
-
this
|
116
|
+
_defineProperty(this, "components", new Map([['filter_by_condition', null], ['filter_operators', null], ['filter_by_condition2', null], ['filter_by_value', null], ['filter_action_bar', null]]));
|
106
117
|
/**
|
107
118
|
* Map of skipped rows by plugin.
|
108
119
|
*
|
109
120
|
* @private
|
110
121
|
* @type {null|TrimmingMap}
|
111
122
|
*/
|
112
|
-
this
|
113
|
-
|
114
|
-
|
123
|
+
_defineProperty(this, "filtersRowsMap", null);
|
124
|
+
/**
|
125
|
+
* Menu focus navigator allows switching the focus position through Tab and Shift Tab keys.
|
126
|
+
*
|
127
|
+
* @type {MenuFocusNavigator|undefined}
|
128
|
+
*/
|
129
|
+
_classPrivateFieldInitSpec(this, _menuFocusNavigator, {
|
130
|
+
writable: true,
|
131
|
+
value: void 0
|
132
|
+
});
|
115
133
|
this.hot.addHook('afterGetColHeader', (col, TH) => this.onAfterGetColHeader(col, TH));
|
116
134
|
}
|
117
135
|
|
@@ -191,7 +209,6 @@ export class Filters extends BasePlugin {
|
|
191
209
|
this.conditionUpdateObserver.addLocalHook('update', conditionState => this.updateComponents(conditionState));
|
192
210
|
}
|
193
211
|
this.components.forEach(component => component.show());
|
194
|
-
this.addHook('beforeDropdownMenuSetItems', items => this.onBeforeDropdownMenuSetItems(items));
|
195
212
|
this.addHook('afterDropdownMenuDefaultOptions', defaultOptions => this.onAfterDropdownMenuDefaultOptions(defaultOptions));
|
196
213
|
this.addHook('afterDropdownMenuShow', () => this.onAfterDropdownMenuShow());
|
197
214
|
this.addHook('afterDropdownMenuHide', () => this.onAfterDropdownMenuHide());
|
@@ -202,6 +219,33 @@ export class Filters extends BasePlugin {
|
|
202
219
|
this.dropdownMenuPlugin.disablePlugin();
|
203
220
|
this.dropdownMenuPlugin.enablePlugin();
|
204
221
|
}
|
222
|
+
if (!_classPrivateFieldGet(this, _menuFocusNavigator) && this.dropdownMenuPlugin.enabled) {
|
223
|
+
const mainMenu = this.dropdownMenuPlugin.menu;
|
224
|
+
const focusableItems = [
|
225
|
+
// A fake menu item that once focused allows escaping from the focus navigation (using Tab keys)
|
226
|
+
// to the menu navigation using arrow keys.
|
227
|
+
{
|
228
|
+
focus: () => mainMenu.focus()
|
229
|
+
}, ...Array.from(this.components).map(_ref => {
|
230
|
+
let [, component] = _ref;
|
231
|
+
return component.getElements();
|
232
|
+
}).flat()];
|
233
|
+
_classPrivateFieldSet(this, _menuFocusNavigator, createMenuFocusController(mainMenu, focusableItems));
|
234
|
+
const forwardToFocusNavigation = event => {
|
235
|
+
_classPrivateFieldGet(this, _menuFocusNavigator).listen();
|
236
|
+
event.preventDefault();
|
237
|
+
if (isKey(event.keyCode, 'TAB')) {
|
238
|
+
if (event.shiftKey) {
|
239
|
+
_classPrivateFieldGet(this, _menuFocusNavigator).toPreviousItem();
|
240
|
+
} else {
|
241
|
+
_classPrivateFieldGet(this, _menuFocusNavigator).toNextItem();
|
242
|
+
}
|
243
|
+
}
|
244
|
+
};
|
245
|
+
this.components.get('filter_by_value').addLocalHook('listTabKeydown', forwardToFocusNavigation);
|
246
|
+
this.components.get('filter_by_condition').addLocalHook('selectTabKeydown', forwardToFocusNavigation);
|
247
|
+
}
|
248
|
+
this.registerShortcuts();
|
205
249
|
super.enablePlugin();
|
206
250
|
}
|
207
251
|
|
@@ -222,9 +266,40 @@ export class Filters extends BasePlugin {
|
|
222
266
|
this.conditionCollection = null;
|
223
267
|
this.hot.rowIndexMapper.unregisterMap(this.pluginName);
|
224
268
|
}
|
269
|
+
this.unregisterShortcuts();
|
225
270
|
super.disablePlugin();
|
226
271
|
}
|
227
272
|
|
273
|
+
/**
|
274
|
+
* Register shortcuts responsible for clearing the filters.
|
275
|
+
*
|
276
|
+
* @private
|
277
|
+
*/
|
278
|
+
registerShortcuts() {
|
279
|
+
this.hot.getShortcutManager().getContext('grid').addShortcut({
|
280
|
+
keys: [['Alt', 'A']],
|
281
|
+
stopPropagation: true,
|
282
|
+
callback: () => {
|
283
|
+
const selection = this.hot.getSelected();
|
284
|
+
this.clearConditions();
|
285
|
+
this.filter();
|
286
|
+
if (selection) {
|
287
|
+
this.hot.selectCells(selection);
|
288
|
+
}
|
289
|
+
},
|
290
|
+
group: SHORTCUTS_GROUP
|
291
|
+
});
|
292
|
+
}
|
293
|
+
|
294
|
+
/**
|
295
|
+
* Unregister shortcuts responsible for clearing the filters.
|
296
|
+
*
|
297
|
+
* @private
|
298
|
+
*/
|
299
|
+
unregisterShortcuts() {
|
300
|
+
this.hot.getShortcutManager().getContext('grid').removeShortcutsByGroup(SHORTCUTS_GROUP);
|
301
|
+
}
|
302
|
+
|
228
303
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
229
304
|
/**
|
230
305
|
* @memberof Filters#
|
@@ -383,6 +458,9 @@ export class Filters extends BasePlugin {
|
|
383
458
|
* @fires Hooks#afterFilter
|
384
459
|
*/
|
385
460
|
filter() {
|
461
|
+
const {
|
462
|
+
navigableHeaders
|
463
|
+
} = this.hot.getSettings();
|
386
464
|
const dataFilter = this._createDataFilter();
|
387
465
|
const needToFilter = !this.conditionCollection.isEmpty();
|
388
466
|
let visibleVisualRows = [];
|
@@ -404,7 +482,7 @@ export class Filters extends BasePlugin {
|
|
404
482
|
this.filtersRowsMap.setValueAtIndex(physicalRow, true);
|
405
483
|
});
|
406
484
|
}, true);
|
407
|
-
if (!visibleVisualRows.length) {
|
485
|
+
if (!navigableHeaders && !visibleVisualRows.length) {
|
408
486
|
this.hot.deselectCell();
|
409
487
|
}
|
410
488
|
} else {
|
@@ -414,7 +492,9 @@ export class Filters extends BasePlugin {
|
|
414
492
|
this.hot.runHooks('afterFilter', conditions);
|
415
493
|
this.hot.view.adjustElementsSize(true);
|
416
494
|
this.hot.render();
|
417
|
-
this.
|
495
|
+
if (this.hot.selection.isSelected()) {
|
496
|
+
this.hot.selectCell(navigableHeaders ? -1 : 0, this.hot.getSelectedRangeLast().highlight.col);
|
497
|
+
}
|
418
498
|
}
|
419
499
|
|
420
500
|
/**
|
@@ -436,18 +516,6 @@ export class Filters extends BasePlugin {
|
|
436
516
|
};
|
437
517
|
}
|
438
518
|
|
439
|
-
/**
|
440
|
-
* Clears column selection.
|
441
|
-
*
|
442
|
-
* @private
|
443
|
-
*/
|
444
|
-
clearColumnSelection() {
|
445
|
-
const selectedColumn = this.getSelectedColumn();
|
446
|
-
if (selectedColumn !== null) {
|
447
|
-
this.hot.selectCell(0, selectedColumn.visualIndex);
|
448
|
-
}
|
449
|
-
}
|
450
|
-
|
451
519
|
/**
|
452
520
|
* Returns handsontable source data with cell meta based on current selection.
|
453
521
|
*
|
@@ -554,21 +622,6 @@ export class Filters extends BasePlugin {
|
|
554
622
|
this.components.get('filter_by_condition2').getSelectElement().closeOptions();
|
555
623
|
}
|
556
624
|
|
557
|
-
/**
|
558
|
-
* Before dropdown menu set menu items listener.
|
559
|
-
*
|
560
|
-
* @private
|
561
|
-
*/
|
562
|
-
onBeforeDropdownMenuSetItems() {
|
563
|
-
if (this.dropdownMenuPlugin) {
|
564
|
-
this.dropdownMenuPlugin.menu.addLocalHook('afterOpen', () => {
|
565
|
-
this.dropdownMenuPlugin.menu.hotMenu.updateSettings({
|
566
|
-
hiddenRows: true
|
567
|
-
});
|
568
|
-
});
|
569
|
-
}
|
570
|
-
}
|
571
|
-
|
572
625
|
/**
|
573
626
|
* After dropdown menu default options listener.
|
574
627
|
*
|
@@ -5,7 +5,7 @@ exports.getOperationFunc = getOperationFunc;
|
|
5
5
|
exports.getOperationName = getOperationName;
|
6
6
|
exports.registerOperation = registerOperation;
|
7
7
|
require("core-js/modules/es.error.cause.js");
|
8
|
-
const operations = {};
|
8
|
+
const operations = exports.operations = {};
|
9
9
|
|
10
10
|
/**
|
11
11
|
* Get operation closure with pre-bound arguments.
|
@@ -13,7 +13,6 @@ const operations = {};
|
|
13
13
|
* @param {string} id Operator `id`.
|
14
14
|
* @returns {Function}
|
15
15
|
*/
|
16
|
-
exports.operations = operations;
|
17
16
|
function getOperationFunc(id) {
|
18
17
|
if (!operations[id]) {
|
19
18
|
throw Error(`Operation with id "${id}" does not exist.`);
|
@@ -4,11 +4,10 @@ exports.__esModule = true;
|
|
4
4
|
exports.operationResult = operationResult;
|
5
5
|
var C = _interopRequireWildcard(require("../../../i18n/constants"));
|
6
6
|
var _logicalOperationRegisterer = require("../logicalOperationRegisterer");
|
7
|
-
function _getRequireWildcardCache(
|
8
|
-
function _interopRequireWildcard(
|
9
|
-
const OPERATION_ID = 'conjunction';
|
10
|
-
exports.
|
11
|
-
const SHORT_NAME_FOR_COMPONENT = C.FILTERS_LABELS_CONJUNCTION;
|
7
|
+
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); }
|
8
|
+
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; }
|
9
|
+
const OPERATION_ID = exports.OPERATION_ID = 'conjunction';
|
10
|
+
const SHORT_NAME_FOR_COMPONENT = exports.SHORT_NAME_FOR_COMPONENT = C.FILTERS_LABELS_CONJUNCTION;
|
12
11
|
// p AND q AND w AND x AND... === TRUE?
|
13
12
|
|
14
13
|
/**
|
@@ -16,7 +15,6 @@ const SHORT_NAME_FOR_COMPONENT = C.FILTERS_LABELS_CONJUNCTION;
|
|
16
15
|
* @param {*} value The comparable value.
|
17
16
|
* @returns {boolean}
|
18
17
|
*/
|
19
|
-
exports.SHORT_NAME_FOR_COMPONENT = SHORT_NAME_FOR_COMPONENT;
|
20
18
|
function operationResult(conditions, value) {
|
21
19
|
return conditions.every(condition => condition.func(value));
|
22
20
|
}
|