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
package/selection/selection.js
CHANGED
@@ -2,21 +2,36 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
require("core-js/modules/es.error.cause.js");
|
5
|
-
var
|
6
|
-
var
|
5
|
+
var _src = require("./../3rdparty/walkontable/src");
|
6
|
+
var _highlight = _interopRequireWildcard(require("./highlight/highlight"));
|
7
7
|
var _range = _interopRequireDefault(require("./range"));
|
8
8
|
var _object = require("./../helpers/object");
|
9
9
|
var _mixed = require("./../helpers/mixed");
|
10
|
+
var _number = require("./../helpers/number");
|
10
11
|
var _array = require("./../helpers/array");
|
11
12
|
var _localHooks = _interopRequireDefault(require("./../mixins/localHooks"));
|
12
13
|
var _transformation = _interopRequireDefault(require("./transformation"));
|
13
14
|
var _utils = require("./utils");
|
14
15
|
var _templateLiteralTag = require("./../helpers/templateLiteralTag");
|
16
|
+
var _a11y = require("../helpers/a11y");
|
15
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
18
|
+
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); }
|
19
|
+
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; }
|
20
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
21
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
22
|
+
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; }
|
23
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
24
|
+
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); }
|
25
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
26
|
+
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; } }
|
27
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
28
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
29
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
16
30
|
/**
|
17
31
|
* @class Selection
|
18
32
|
* @util
|
19
33
|
*/
|
34
|
+
var _disableHeadersHighlight = /*#__PURE__*/new WeakMap();
|
20
35
|
class Selection {
|
21
36
|
constructor(settings, tableProps) {
|
22
37
|
var _this = this;
|
@@ -25,57 +40,73 @@ class Selection {
|
|
25
40
|
*
|
26
41
|
* @type {GridSettings}
|
27
42
|
*/
|
28
|
-
this
|
43
|
+
_defineProperty(this, "settings", void 0);
|
29
44
|
/**
|
30
45
|
* An additional object with dynamically defined properties which describes table state.
|
31
46
|
*
|
32
47
|
* @type {object}
|
33
48
|
*/
|
34
|
-
this
|
49
|
+
_defineProperty(this, "tableProps", void 0);
|
35
50
|
/**
|
36
51
|
* The flag which determines if the selection is in progress.
|
37
52
|
*
|
38
53
|
* @type {boolean}
|
39
54
|
*/
|
40
|
-
this
|
55
|
+
_defineProperty(this, "inProgress", false);
|
41
56
|
/**
|
42
|
-
*
|
57
|
+
* Selection data layer (handle visual coordinates).
|
43
58
|
*
|
44
|
-
* @type {
|
59
|
+
* @type {SelectionRange}
|
60
|
+
*/
|
61
|
+
_defineProperty(this, "selectedRange", new _range.default((highlight, from, to) => {
|
62
|
+
return this.tableProps.createCellRange(highlight, from, to);
|
63
|
+
}));
|
64
|
+
/**
|
65
|
+
* Visualization layer.
|
66
|
+
*
|
67
|
+
* @type {Highlight}
|
68
|
+
*/
|
69
|
+
_defineProperty(this, "highlight", void 0);
|
70
|
+
/**
|
71
|
+
* The module for modifying coordinates.
|
72
|
+
*
|
73
|
+
* @type {Transformation}
|
45
74
|
*/
|
46
|
-
this
|
75
|
+
_defineProperty(this, "transformation", void 0);
|
47
76
|
/**
|
48
77
|
* The collection of the selection layer levels where the whole row was selected using the row header or
|
49
78
|
* the corner header.
|
50
79
|
*
|
51
|
-
* @type {Set
|
80
|
+
* @type {Set<number>}
|
52
81
|
*/
|
53
|
-
this
|
82
|
+
_defineProperty(this, "selectedByRowHeader", new Set());
|
54
83
|
/**
|
55
84
|
* The collection of the selection layer levels where the whole column was selected using the column header or
|
56
85
|
* the corner header.
|
57
86
|
*
|
58
|
-
* @type {Set
|
87
|
+
* @type {Set<number>}
|
59
88
|
*/
|
60
|
-
this
|
89
|
+
_defineProperty(this, "selectedByColumnHeader", new Set());
|
61
90
|
/**
|
62
|
-
*
|
91
|
+
* When sets disable highlighting the headers even when the logical coordinates points on them.
|
63
92
|
*
|
64
|
-
* @type {
|
93
|
+
* @type {boolean}
|
65
94
|
*/
|
66
|
-
this
|
67
|
-
|
95
|
+
_classPrivateFieldInitSpec(this, _disableHeadersHighlight, {
|
96
|
+
writable: true,
|
97
|
+
value: false
|
68
98
|
});
|
69
|
-
|
70
|
-
|
71
|
-
*
|
72
|
-
* @type {Highlight}
|
73
|
-
*/
|
99
|
+
this.settings = settings;
|
100
|
+
this.tableProps = tableProps;
|
74
101
|
this.highlight = new _highlight.default({
|
75
102
|
headerClassName: settings.currentHeaderClassName,
|
103
|
+
headerAttributes: [(0, _a11y.A11Y_SELECTED)()],
|
76
104
|
activeHeaderClassName: settings.activeHeaderClassName,
|
77
105
|
rowClassName: settings.currentRowClassName,
|
78
106
|
columnClassName: settings.currentColClassName,
|
107
|
+
cellAttributes: [(0, _a11y.A11Y_SELECTED)()],
|
108
|
+
rowIndexMapper: this.tableProps.rowIndexMapper,
|
109
|
+
columnIndexMapper: this.tableProps.columnIndexMapper,
|
79
110
|
disabledCellSelection: (row, column) => this.tableProps.isDisabledCellSelection(row, column),
|
80
111
|
cellCornerVisible: function () {
|
81
112
|
return _this.isCellCornerVisible(...arguments);
|
@@ -86,21 +117,19 @@ class Selection {
|
|
86
117
|
visualToRenderableCoords: coords => this.tableProps.visualToRenderableCoords(coords),
|
87
118
|
renderableToVisualCoords: coords => this.tableProps.renderableToVisualCoords(coords),
|
88
119
|
createCellCoords: (row, column) => this.tableProps.createCellCoords(row, column),
|
89
|
-
createCellRange: (highlight, from, to) => this.tableProps.createCellRange(highlight, from, to)
|
90
|
-
rowIndexMapper: () => this.tableProps.rowIndexMapper(),
|
91
|
-
columnIndexMapper: () => this.tableProps.columnIndexMapper()
|
120
|
+
createCellRange: (highlight, from, to) => this.tableProps.createCellRange(highlight, from, to)
|
92
121
|
});
|
93
|
-
/**
|
94
|
-
* The module for modifying coordinates.
|
95
|
-
*
|
96
|
-
* @type {Transformation}
|
97
|
-
*/
|
98
122
|
this.transformation = new _transformation.default(this.selectedRange, {
|
99
|
-
|
100
|
-
|
123
|
+
rowIndexMapper: this.tableProps.rowIndexMapper,
|
124
|
+
columnIndexMapper: this.tableProps.columnIndexMapper,
|
125
|
+
countRenderableRows: () => this.tableProps.countRenderableRows(),
|
126
|
+
countRenderableColumns: () => this.tableProps.countRenderableColumns(),
|
127
|
+
countRowHeaders: () => this.tableProps.countRowHeaders(),
|
128
|
+
countColHeaders: () => this.tableProps.countColHeaders(),
|
101
129
|
visualToRenderableCoords: coords => this.tableProps.visualToRenderableCoords(coords),
|
102
130
|
renderableToVisualCoords: coords => this.tableProps.renderableToVisualCoords(coords),
|
103
131
|
createCellCoords: (row, column) => this.tableProps.createCellCoords(row, column),
|
132
|
+
navigableHeaders: () => settings.navigableHeaders,
|
104
133
|
fixedRowsBottom: () => settings.fixedRowsBottom,
|
105
134
|
minSpareRows: () => settings.minSpareRows,
|
106
135
|
minSpareCols: () => settings.minSpareCols,
|
@@ -143,6 +172,18 @@ class Selection {
|
|
143
172
|
}
|
144
173
|
return _this.runLocalHooks('insertColRequire', ...args);
|
145
174
|
});
|
175
|
+
this.transformation.addLocalHook('beforeRowWrap', function () {
|
176
|
+
for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
|
177
|
+
args[_key7] = arguments[_key7];
|
178
|
+
}
|
179
|
+
return _this.runLocalHooks('beforeRowWrap', ...args);
|
180
|
+
});
|
181
|
+
this.transformation.addLocalHook('beforeColumnWrap', function () {
|
182
|
+
for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
|
183
|
+
args[_key8] = arguments[_key8];
|
184
|
+
}
|
185
|
+
return _this.runLocalHooks('beforeColumnWrap', ...args);
|
186
|
+
});
|
146
187
|
}
|
147
188
|
|
148
189
|
/**
|
@@ -155,14 +196,14 @@ class Selection {
|
|
155
196
|
}
|
156
197
|
|
157
198
|
/**
|
158
|
-
* Indicate that selection process began. It sets
|
199
|
+
* Indicate that selection process began. It sets internally `.inProgress` property to `true`.
|
159
200
|
*/
|
160
201
|
begin() {
|
161
202
|
this.inProgress = true;
|
162
203
|
}
|
163
204
|
|
164
205
|
/**
|
165
|
-
* Indicate that selection process finished. It sets
|
206
|
+
* Indicate that selection process finished. It sets internally `.inProgress` property to `false`.
|
166
207
|
*/
|
167
208
|
finish() {
|
168
209
|
this.runLocalHooks('afterSelectionFinished', Array.from(this.selectedRange));
|
@@ -187,33 +228,25 @@ class Selection {
|
|
187
228
|
* the default trigger will be used.
|
188
229
|
* @param {boolean} [fragment=false] If `true`, the selection will be treated as a partial selection where the
|
189
230
|
* `setRangeEnd` method won't be called on every `setRangeStart` call.
|
231
|
+
* @param {CellCoords} [highlightCoords] If set, allows changing the coordinates of the highlight/focus cell.
|
190
232
|
*/
|
191
233
|
setRangeStart(coords, multipleSelection) {
|
192
234
|
let fragment = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
235
|
+
let highlightCoords = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : coords;
|
193
236
|
const isMultipleMode = this.settings.selectionMode === 'multiple';
|
194
237
|
const isMultipleSelection = (0, _mixed.isUndefined)(multipleSelection) ? this.tableProps.getShortcutManager().isCtrlPressed() : multipleSelection;
|
195
|
-
const isRowNegative = coords.row < 0;
|
196
|
-
const isColumnNegative = coords.col < 0;
|
197
|
-
const selectedByCorner = isRowNegative && isColumnNegative;
|
198
238
|
// We are creating copy. We would like to modify just the start of the selection by below hook. Then original coords
|
199
239
|
// should be handled by next methods.
|
200
240
|
const coordsClone = coords.clone();
|
201
|
-
this.selectedByCorner = selectedByCorner;
|
202
241
|
this.runLocalHooks(`beforeSetRangeStart${fragment ? 'Only' : ''}`, coordsClone);
|
203
242
|
if (!isMultipleMode || isMultipleMode && !isMultipleSelection && (0, _mixed.isUndefined)(multipleSelection)) {
|
204
243
|
this.selectedRange.clear();
|
205
244
|
}
|
206
|
-
this.selectedRange.add(coordsClone);
|
245
|
+
this.selectedRange.add(coordsClone).current().setHighlight(highlightCoords.clone());
|
207
246
|
if (this.getLayerLevel() === 0) {
|
208
247
|
this.selectedByRowHeader.clear();
|
209
248
|
this.selectedByColumnHeader.clear();
|
210
249
|
}
|
211
|
-
if (!selectedByCorner && isColumnNegative) {
|
212
|
-
this.selectedByRowHeader.add(this.getLayerLevel());
|
213
|
-
}
|
214
|
-
if (!selectedByCorner && isRowNegative) {
|
215
|
-
this.selectedByColumnHeader.add(this.getLayerLevel());
|
216
|
-
}
|
217
250
|
if (!fragment) {
|
218
251
|
this.setRangeEnd(coords);
|
219
252
|
}
|
@@ -226,9 +259,11 @@ class Selection {
|
|
226
259
|
* @param {boolean} [multipleSelection] If `true`, selection will be worked in 'multiple' mode. This option works
|
227
260
|
* only when 'selectionMode' is set as 'multiple'. If the argument is not defined
|
228
261
|
* the default trigger will be used.
|
262
|
+
* @param {CellCoords} [highlightCoords] If set, allows changing the coordinates of the highlight/focus cell.
|
229
263
|
*/
|
230
264
|
setRangeStartOnly(coords, multipleSelection) {
|
231
|
-
|
265
|
+
let highlightCoords = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : coords;
|
266
|
+
this.setRangeStart(coords, multipleSelection, true, highlightCoords);
|
232
267
|
}
|
233
268
|
|
234
269
|
/**
|
@@ -240,21 +275,40 @@ class Selection {
|
|
240
275
|
if (this.selectedRange.isEmpty()) {
|
241
276
|
return;
|
242
277
|
}
|
243
|
-
|
244
|
-
// We are creating copy. We would like to modify just the end of the selection by below hook. Then original coords
|
245
|
-
// should be handled by next methods.
|
246
278
|
const coordsClone = coords.clone();
|
279
|
+
const countRows = this.tableProps.countRows();
|
280
|
+
const countCols = this.tableProps.countCols();
|
281
|
+
const isSingle = this.selectedRange.current().clone().setTo(coords).isSingleHeader();
|
282
|
+
|
283
|
+
// Ignore processing the end range when the header selection starts overlapping the corner and
|
284
|
+
// the selection is not a single header highlight.
|
285
|
+
if ((countRows > 0 || countCols > 0) && (countRows === 0 && coordsClone.col < 0 && !isSingle || countCols === 0 && coordsClone.row < 0 && !isSingle)) {
|
286
|
+
return;
|
287
|
+
}
|
247
288
|
this.runLocalHooks('beforeSetRangeEnd', coordsClone);
|
248
289
|
this.begin();
|
249
290
|
const cellRange = this.selectedRange.current();
|
250
|
-
if (this.settings.
|
251
|
-
cellRange.
|
291
|
+
if (!this.settings.navigableHeaders) {
|
292
|
+
cellRange.highlight.normalize();
|
293
|
+
}
|
294
|
+
if (this.settings.selectionMode === 'single') {
|
295
|
+
cellRange.setFrom(cellRange.highlight);
|
296
|
+
cellRange.setTo(cellRange.highlight);
|
297
|
+
} else {
|
298
|
+
cellRange.setTo(coordsClone);
|
252
299
|
}
|
253
300
|
|
254
|
-
//
|
255
|
-
|
256
|
-
|
257
|
-
|
301
|
+
// Prevent creating "area" selection that overlaps headers.
|
302
|
+
if (countRows > 0 && countCols > 0) {
|
303
|
+
if (!this.settings.navigableHeaders || this.settings.navigableHeaders && !cellRange.isSingleHeader()) {
|
304
|
+
cellRange.to.normalize();
|
305
|
+
}
|
306
|
+
}
|
307
|
+
this.runLocalHooks('beforeHighlightSet');
|
308
|
+
const focusHighlight = this.highlight.getFocus();
|
309
|
+
focusHighlight.clear();
|
310
|
+
if (this.highlight.isEnabledFor(_highlight.FOCUS_TYPE, cellRange.highlight)) {
|
311
|
+
focusHighlight.add(this.selectedRange.current().highlight).commit().syncWith(cellRange);
|
258
312
|
}
|
259
313
|
const layerLevel = this.getLayerLevel();
|
260
314
|
|
@@ -262,69 +316,80 @@ class Selection {
|
|
262
316
|
// indication that the new selection is performing.
|
263
317
|
if (layerLevel < this.highlight.layerLevel) {
|
264
318
|
(0, _array.arrayEach)(this.highlight.getAreas(), highlight => void highlight.clear());
|
265
|
-
(0, _array.arrayEach)(this.highlight.
|
266
|
-
(0, _array.arrayEach)(this.highlight.
|
319
|
+
(0, _array.arrayEach)(this.highlight.getLayeredAreas(), highlight => void highlight.clear());
|
320
|
+
(0, _array.arrayEach)(this.highlight.getRowHeaders(), highlight => void highlight.clear());
|
321
|
+
(0, _array.arrayEach)(this.highlight.getColumnHeaders(), highlight => void highlight.clear());
|
322
|
+
(0, _array.arrayEach)(this.highlight.getActiveRowHeaders(), highlight => void highlight.clear());
|
323
|
+
(0, _array.arrayEach)(this.highlight.getActiveColumnHeaders(), highlight => void highlight.clear());
|
324
|
+
(0, _array.arrayEach)(this.highlight.getActiveCornerHeaders(), highlight => void highlight.clear());
|
325
|
+
(0, _array.arrayEach)(this.highlight.getRowHighlights(), highlight => void highlight.clear());
|
326
|
+
(0, _array.arrayEach)(this.highlight.getColumnHighlights(), highlight => void highlight.clear());
|
267
327
|
}
|
268
328
|
this.highlight.useLayerLevel(layerLevel);
|
269
|
-
const areaHighlight = this.highlight.
|
270
|
-
const
|
271
|
-
const
|
329
|
+
const areaHighlight = this.highlight.createArea();
|
330
|
+
const layeredAreaHighlight = this.highlight.createLayeredArea();
|
331
|
+
const rowHeaderHighlight = this.highlight.createRowHeader();
|
332
|
+
const columnHeaderHighlight = this.highlight.createColumnHeader();
|
333
|
+
const activeRowHeaderHighlight = this.highlight.createActiveRowHeader();
|
334
|
+
const activeColumnHeaderHighlight = this.highlight.createActiveColumnHeader();
|
335
|
+
const activeCornerHeaderHighlight = this.highlight.createActiveCornerHeader();
|
336
|
+
const rowHighlight = this.highlight.createRowHighlight();
|
337
|
+
const columnHighlight = this.highlight.createColumnHighlight();
|
272
338
|
areaHighlight.clear();
|
273
|
-
|
274
|
-
|
275
|
-
|
339
|
+
layeredAreaHighlight.clear();
|
340
|
+
rowHeaderHighlight.clear();
|
341
|
+
columnHeaderHighlight.clear();
|
342
|
+
activeRowHeaderHighlight.clear();
|
343
|
+
activeColumnHeaderHighlight.clear();
|
344
|
+
activeCornerHeaderHighlight.clear();
|
345
|
+
rowHighlight.clear();
|
346
|
+
columnHighlight.clear();
|
347
|
+
if (this.highlight.isEnabledFor(_highlight.AREA_TYPE, cellRange.highlight) && (this.isMultiple() || layerLevel >= 1)) {
|
276
348
|
areaHighlight.add(cellRange.from).add(cellRange.to).commit();
|
349
|
+
layeredAreaHighlight.add(cellRange.from).add(cellRange.to).commit();
|
277
350
|
if (layerLevel === 1) {
|
278
351
|
// For single cell selection in the same layer, we do not create area selection to prevent blue background.
|
279
352
|
// When non-consecutive selection is performed we have to add that missing area selection to the previous layer
|
280
353
|
// based on previous coordinates. It only occurs when the previous selection wasn't select multiple cells.
|
281
354
|
const previousRange = this.selectedRange.previous();
|
282
|
-
this.highlight.useLayerLevel(layerLevel - 1)
|
355
|
+
this.highlight.useLayerLevel(layerLevel - 1);
|
356
|
+
this.highlight.createArea().add(previousRange.from).commit()
|
357
|
+
// Range may start with hidden indexes. Commit would not found start point (as we add just the `from` coords).
|
358
|
+
.syncWith(previousRange);
|
359
|
+
this.highlight.createLayeredArea().add(previousRange.from).commit()
|
283
360
|
// Range may start with hidden indexes. Commit would not found start point (as we add just the `from` coords).
|
284
361
|
.syncWith(previousRange);
|
285
362
|
this.highlight.useLayerLevel(layerLevel);
|
286
363
|
}
|
287
364
|
}
|
288
|
-
if (this.highlight.isEnabledFor(
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
}
|
305
|
-
if (this.settings.selectionMode === 'single') {
|
306
|
-
if (this.isSelectedByAnyHeader()) {
|
307
|
-
headerCellRange.from.normalize();
|
365
|
+
if (this.highlight.isEnabledFor(_highlight.HEADER_TYPE, cellRange.highlight)) {
|
366
|
+
if (!cellRange.isSingleHeader()) {
|
367
|
+
const rowCoordsFrom = this.tableProps.createCellCoords(Math.max(cellRange.from.row, 0), -1);
|
368
|
+
const rowCoordsTo = this.tableProps.createCellCoords(cellRange.to.row, -1);
|
369
|
+
const columnCoordsFrom = this.tableProps.createCellCoords(-1, Math.max(cellRange.from.col, 0));
|
370
|
+
const columnCoordsTo = this.tableProps.createCellCoords(-1, cellRange.to.col);
|
371
|
+
if (this.settings.selectionMode === 'single') {
|
372
|
+
rowHeaderHighlight.add(rowCoordsFrom).commit();
|
373
|
+
columnHeaderHighlight.add(columnCoordsFrom).commit();
|
374
|
+
rowHighlight.add(rowCoordsFrom).commit();
|
375
|
+
columnHighlight.add(columnCoordsFrom).commit();
|
376
|
+
} else {
|
377
|
+
rowHeaderHighlight.add(rowCoordsFrom).add(rowCoordsTo).commit();
|
378
|
+
columnHeaderHighlight.add(columnCoordsFrom).add(columnCoordsTo).commit();
|
379
|
+
rowHighlight.add(rowCoordsFrom).add(rowCoordsTo).commit();
|
380
|
+
columnHighlight.add(columnCoordsFrom).add(columnCoordsTo).commit();
|
308
381
|
}
|
309
|
-
headerHighlight.add(headerCellRange.from).commit();
|
310
|
-
} else {
|
311
|
-
headerHighlight.add(headerCellRange.from).add(headerCellRange.to).commit();
|
312
382
|
}
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
if (isRowSelected) {
|
318
|
-
activeHeaderHighlight.add(this.tableProps.createCellCoords(cellRange.from.row, -1)).add(this.tableProps.createCellCoords(cellRange.to.row, -1)).commit();
|
319
|
-
}
|
383
|
+
const highlightRowHeaders = !_classPrivateFieldGet(this, _disableHeadersHighlight) && this.isEntireRowSelected() && (countCols > 0 && countCols === cellRange.getWidth() || countCols === 0 && this.isSelectedByRowHeader());
|
384
|
+
const highlightColumnHeaders = !_classPrivateFieldGet(this, _disableHeadersHighlight) && this.isEntireColumnSelected() && (countRows > 0 && countRows === cellRange.getHeight() || countRows === 0 && this.isSelectedByColumnHeader());
|
385
|
+
if (highlightRowHeaders) {
|
386
|
+
activeRowHeaderHighlight.add(this.tableProps.createCellCoords(Math.max(cellRange.from.row, 0), Math.min(-this.tableProps.countRowHeaders(), -1))).add(this.tableProps.createCellCoords(Math.max(cellRange.to.row, 0), -1)).commit();
|
320
387
|
}
|
321
|
-
if (
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
activeHeaderHighlight.add(this.tableProps.createCellCoords(-1, cellRange.from.col)).add(this.tableProps.createCellCoords(-1, cellRange.to.col)).commit();
|
327
|
-
}
|
388
|
+
if (highlightColumnHeaders) {
|
389
|
+
activeColumnHeaderHighlight.add(this.tableProps.createCellCoords(Math.min(-this.tableProps.countColHeaders(), -1), Math.max(cellRange.from.col, 0))).add(this.tableProps.createCellCoords(-1, Math.max(cellRange.to.col, 0))).commit();
|
390
|
+
}
|
391
|
+
if (highlightRowHeaders && highlightColumnHeaders) {
|
392
|
+
activeCornerHeaderHighlight.add(this.tableProps.createCellCoords(-this.tableProps.countColHeaders(), -this.tableProps.countRowHeaders())).add(this.tableProps.createCellCoords(-1, -1)).commit();
|
328
393
|
}
|
329
394
|
}
|
330
395
|
this.runLocalHooks('afterSetRangeEnd', coords);
|
@@ -347,12 +412,12 @@ class Selection {
|
|
347
412
|
*
|
348
413
|
* @param {number} rowDelta Rows number to move, value can be passed as negative number.
|
349
414
|
* @param {number} colDelta Columns number to move, value can be passed as negative number.
|
350
|
-
* @param {boolean} [
|
351
|
-
*
|
415
|
+
* @param {boolean} [createMissingRecords=false] If `true` the new rows/columns will be created if necessary.
|
416
|
+
* Otherwise, row/column will be created according to `minSpareRows/minSpareCols` settings of Handsontable.
|
352
417
|
*/
|
353
418
|
transformStart(rowDelta, colDelta) {
|
354
|
-
let
|
355
|
-
this.setRangeStart(this.transformation.transformStart(rowDelta, colDelta,
|
419
|
+
let createMissingRecords = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
420
|
+
this.setRangeStart(this.transformation.transformStart(rowDelta, colDelta, createMissingRecords));
|
356
421
|
}
|
357
422
|
|
358
423
|
/**
|
@@ -393,7 +458,7 @@ class Selection {
|
|
393
458
|
*/
|
394
459
|
isSelectedByRowHeader() {
|
395
460
|
let layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();
|
396
|
-
return !this.isSelectedByCorner(layerLevel) && this.
|
461
|
+
return !this.isSelectedByCorner(layerLevel) && (layerLevel === -1 ? this.selectedByRowHeader.size > 0 : this.selectedByRowHeader.has(layerLevel));
|
397
462
|
}
|
398
463
|
|
399
464
|
/**
|
@@ -405,7 +470,19 @@ class Selection {
|
|
405
470
|
*/
|
406
471
|
isEntireRowSelected() {
|
407
472
|
let layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();
|
408
|
-
|
473
|
+
const tester = range => {
|
474
|
+
const {
|
475
|
+
col
|
476
|
+
} = range.getOuterTopStartCorner();
|
477
|
+
const rowHeaders = this.tableProps.countRowHeaders();
|
478
|
+
const countCols = this.tableProps.countCols();
|
479
|
+
return (rowHeaders > 0 && col < 0 || rowHeaders === 0) && range.getWidth() === countCols;
|
480
|
+
};
|
481
|
+
if (layerLevel === -1) {
|
482
|
+
return Array.from(this.selectedRange).some(range => tester(range));
|
483
|
+
}
|
484
|
+
const range = this.selectedRange.peekByIndex(layerLevel);
|
485
|
+
return range ? tester(range) : false;
|
409
486
|
}
|
410
487
|
|
411
488
|
/**
|
@@ -418,7 +495,7 @@ class Selection {
|
|
418
495
|
*/
|
419
496
|
isSelectedByColumnHeader() {
|
420
497
|
let layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();
|
421
|
-
return !this.isSelectedByCorner() && this.
|
498
|
+
return !this.isSelectedByCorner() && (layerLevel === -1 ? this.selectedByColumnHeader.size > 0 : this.selectedByColumnHeader.has(layerLevel));
|
422
499
|
}
|
423
500
|
|
424
501
|
/**
|
@@ -430,7 +507,19 @@ class Selection {
|
|
430
507
|
*/
|
431
508
|
isEntireColumnSelected() {
|
432
509
|
let layerLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getLayerLevel();
|
433
|
-
|
510
|
+
const tester = range => {
|
511
|
+
const {
|
512
|
+
row
|
513
|
+
} = range.getOuterTopStartCorner();
|
514
|
+
const colHeaders = this.tableProps.countColHeaders();
|
515
|
+
const countRows = this.tableProps.countRows();
|
516
|
+
return (colHeaders > 0 && row < 0 || colHeaders === 0) && range.getHeight() === countRows;
|
517
|
+
};
|
518
|
+
if (layerLevel === -1) {
|
519
|
+
return Array.from(this.selectedRange).some(range => tester(range));
|
520
|
+
}
|
521
|
+
const range = this.selectedRange.peekByIndex(layerLevel);
|
522
|
+
return range ? tester(range) : false;
|
434
523
|
}
|
435
524
|
|
436
525
|
/**
|
@@ -448,7 +537,7 @@ class Selection {
|
|
448
537
|
* @returns {boolean}
|
449
538
|
*/
|
450
539
|
isSelectedByCorner() {
|
451
|
-
return this.
|
540
|
+
return this.selectedByColumnHeader.has(this.getLayerLevel()) && this.selectedByRowHeader.has(this.getLayerLevel());
|
452
541
|
}
|
453
542
|
|
454
543
|
/**
|
@@ -507,31 +596,61 @@ class Selection {
|
|
507
596
|
}
|
508
597
|
|
509
598
|
/**
|
510
|
-
*
|
599
|
+
* Selects all cells and headers.
|
511
600
|
*
|
512
|
-
* @param {boolean} [includeRowHeaders=false] `true` If the selection should include the row headers,
|
513
|
-
* otherwise.
|
514
|
-
* @param {boolean} [includeColumnHeaders=false] `true` If the selection should include the column
|
515
|
-
* otherwise.
|
601
|
+
* @param {boolean} [includeRowHeaders=false] `true` If the selection should include the row headers,
|
602
|
+
* `false` otherwise.
|
603
|
+
* @param {boolean} [includeColumnHeaders=false] `true` If the selection should include the column
|
604
|
+
* headers, `false` otherwise.
|
605
|
+
* @param {object} [options] Additional object with options.
|
606
|
+
* @param {{row: number, col: number} | boolean} [options.focusPosition] The argument allows changing the cell/header
|
607
|
+
* focus position. The value takes an object with a `row` and `col` properties from -N to N, where
|
608
|
+
* negative values point to the headers and positive values point to the cell range. If `false`, the focus
|
609
|
+
* position won't be changed.
|
610
|
+
* @param {boolean} [options.disableHeadersHighlight] If `true`, disables highlighting the headers even when
|
611
|
+
* the logical coordinates points on them.
|
516
612
|
*/
|
517
613
|
selectAll() {
|
614
|
+
var _this$getSelectedRang;
|
518
615
|
let includeRowHeaders = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
519
616
|
let includeColumnHeaders = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
617
|
+
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
618
|
+
focusPosition: false,
|
619
|
+
disableHeadersHighlight: false
|
620
|
+
};
|
520
621
|
const nrOfRows = this.tableProps.countRows();
|
521
622
|
const nrOfColumns = this.tableProps.countCols();
|
623
|
+
const countRowHeaders = this.tableProps.countRowHeaders();
|
624
|
+
const countColHeaders = this.tableProps.countColHeaders();
|
625
|
+
const rowFrom = includeColumnHeaders ? -countColHeaders : 0;
|
626
|
+
const columnFrom = includeRowHeaders ? -countRowHeaders : 0;
|
522
627
|
|
523
628
|
// We can't select cells when there is no data.
|
524
|
-
if (
|
629
|
+
if (rowFrom === 0 && columnFrom === 0 && (nrOfRows === 0 || nrOfColumns === 0)) {
|
525
630
|
return;
|
526
631
|
}
|
527
|
-
|
632
|
+
let highlight = (_this$getSelectedRang = this.getSelectedRange().current()) === null || _this$getSelectedRang === void 0 ? void 0 : _this$getSelectedRang.highlight;
|
633
|
+
const {
|
634
|
+
focusPosition,
|
635
|
+
disableHeadersHighlight
|
636
|
+
} = options;
|
637
|
+
_classPrivateFieldSet(this, _disableHeadersHighlight, disableHeadersHighlight);
|
638
|
+
if (focusPosition && Number.isInteger(focusPosition === null || focusPosition === void 0 ? void 0 : focusPosition.row) && Number.isInteger(focusPosition === null || focusPosition === void 0 ? void 0 : focusPosition.col)) {
|
639
|
+
highlight = this.tableProps.createCellCoords((0, _number.clamp)(focusPosition.row, rowFrom, nrOfRows - 1), (0, _number.clamp)(focusPosition.col, columnFrom, nrOfColumns - 1));
|
640
|
+
}
|
641
|
+
const startCoords = this.tableProps.createCellCoords(rowFrom, columnFrom);
|
528
642
|
const endCoords = this.tableProps.createCellCoords(nrOfRows - 1, nrOfColumns - 1);
|
529
643
|
this.clear();
|
530
|
-
this.setRangeStartOnly(startCoords);
|
531
|
-
|
532
|
-
|
644
|
+
this.setRangeStartOnly(startCoords, void 0, highlight);
|
645
|
+
if (columnFrom < 0) {
|
646
|
+
this.selectedByRowHeader.add(this.getLayerLevel());
|
647
|
+
}
|
648
|
+
if (rowFrom < 0) {
|
649
|
+
this.selectedByColumnHeader.add(this.getLayerLevel());
|
650
|
+
}
|
533
651
|
this.setRangeEnd(endCoords);
|
534
652
|
this.finish();
|
653
|
+
_classPrivateFieldSet(this, _disableHeadersHighlight, false);
|
535
654
|
}
|
536
655
|
|
537
656
|
/**
|
@@ -556,21 +675,29 @@ class Selection {
|
|
556
675
|
propToCol: prop => this.tableProps.propToCol(prop),
|
557
676
|
keepDirection: true
|
558
677
|
});
|
559
|
-
const
|
560
|
-
const
|
678
|
+
const navigableHeaders = this.settings.navigableHeaders;
|
679
|
+
const tableParams = {
|
680
|
+
countRows: this.tableProps.countRows(),
|
681
|
+
countCols: this.tableProps.countCols(),
|
682
|
+
countRowHeaders: navigableHeaders ? this.tableProps.countRowHeaders() : 0,
|
683
|
+
countColHeaders: navigableHeaders ? this.tableProps.countColHeaders() : 0
|
684
|
+
};
|
561
685
|
|
562
686
|
// Check if every layer of the coordinates are valid.
|
563
687
|
const isValid = !selectionRanges.some(selection => {
|
564
|
-
const
|
565
|
-
const
|
566
|
-
return !
|
688
|
+
const cellRange = selectionSchemaNormalizer(selection);
|
689
|
+
const rangeValidity = cellRange.isValid(tableParams);
|
690
|
+
return !(rangeValidity && !cellRange.containsHeaders() || rangeValidity && cellRange.containsHeaders() && cellRange.isSingleHeader());
|
567
691
|
});
|
568
692
|
if (isValid) {
|
569
693
|
this.clear();
|
570
694
|
(0, _array.arrayEach)(selectionRanges, selection => {
|
571
|
-
const
|
572
|
-
|
573
|
-
|
695
|
+
const {
|
696
|
+
from,
|
697
|
+
to
|
698
|
+
} = selectionSchemaNormalizer(selection);
|
699
|
+
this.setRangeStartOnly(from.clone(), false);
|
700
|
+
this.setRangeEnd(to.clone());
|
574
701
|
this.finish();
|
575
702
|
});
|
576
703
|
}
|
@@ -583,22 +710,43 @@ class Selection {
|
|
583
710
|
*
|
584
711
|
* @param {number|string} startColumn Visual column index or column property from which the selection starts.
|
585
712
|
* @param {number|string} [endColumn] Visual column index or column property from to the selection finishes.
|
586
|
-
* @param {number} [
|
587
|
-
*
|
588
|
-
*
|
713
|
+
* @param {number} [focusPosition=0] The argument allows changing the cell/header focus position.
|
714
|
+
* The value can take visual row index from -N to N, where negative values
|
715
|
+
* point to the headers and positive values point to the cell range.
|
589
716
|
* @returns {boolean} Returns `true` if selection was successful, `false` otherwise.
|
590
717
|
*/
|
591
718
|
selectColumns(startColumn) {
|
592
719
|
let endColumn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : startColumn;
|
593
|
-
let
|
720
|
+
let focusPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
594
721
|
const start = typeof startColumn === 'string' ? this.tableProps.propToCol(startColumn) : startColumn;
|
595
722
|
const end = typeof endColumn === 'string' ? this.tableProps.propToCol(endColumn) : endColumn;
|
596
|
-
const
|
597
|
-
const
|
598
|
-
const
|
723
|
+
const countRows = this.tableProps.countRows();
|
724
|
+
const countCols = this.tableProps.countCols();
|
725
|
+
const countColHeaders = this.tableProps.countColHeaders();
|
726
|
+
const columnHeaderLastIndex = countColHeaders === 0 ? 0 : -countColHeaders;
|
727
|
+
const fromCoords = new _src.CellCoords(columnHeaderLastIndex, start);
|
728
|
+
const toCoords = new _src.CellCoords(countRows - 1, end);
|
729
|
+
const isValid = new _src.CellRange(fromCoords, fromCoords, toCoords).isValid({
|
730
|
+
countRows,
|
731
|
+
countCols,
|
732
|
+
countRowHeaders: 0,
|
733
|
+
countColHeaders
|
734
|
+
});
|
599
735
|
if (isValid) {
|
600
|
-
|
601
|
-
|
736
|
+
const fromRow = countColHeaders === 0 ? 0 : (0, _number.clamp)(focusPosition, columnHeaderLastIndex, -1);
|
737
|
+
const toRow = countRows - 1;
|
738
|
+
const from = this.tableProps.createCellCoords(fromRow, start);
|
739
|
+
const to = this.tableProps.createCellCoords(toRow, end);
|
740
|
+
const highlight = this.tableProps.createCellCoords((0, _number.clamp)(focusPosition, columnHeaderLastIndex, countRows - 1), start);
|
741
|
+
this.runLocalHooks('beforeSelectColumns', from, to, highlight);
|
742
|
+
|
743
|
+
// disallow modifying row axis for that hooks
|
744
|
+
from.row = fromRow;
|
745
|
+
to.row = toRow;
|
746
|
+
this.setRangeStartOnly(from, void 0, highlight);
|
747
|
+
this.selectedByColumnHeader.add(this.getLayerLevel());
|
748
|
+
this.setRangeEnd(to);
|
749
|
+
this.runLocalHooks('afterSelectColumns', from, to, highlight);
|
602
750
|
this.finish();
|
603
751
|
}
|
604
752
|
return isValid;
|
@@ -609,20 +757,41 @@ class Selection {
|
|
609
757
|
*
|
610
758
|
* @param {number} startRow Visual row index from which the selection starts.
|
611
759
|
* @param {number} [endRow] Visual row index from to the selection finishes.
|
612
|
-
* @param {number} [
|
613
|
-
*
|
614
|
-
*
|
760
|
+
* @param {number} [focusPosition=0] The argument allows changing the cell/header focus position.
|
761
|
+
* The value can take visual column index from -N to N, where negative values
|
762
|
+
* point to the headers and positive values point to the cell range.
|
615
763
|
* @returns {boolean} Returns `true` if selection was successful, `false` otherwise.
|
616
764
|
*/
|
617
765
|
selectRows(startRow) {
|
618
766
|
let endRow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : startRow;
|
619
|
-
let
|
620
|
-
const
|
621
|
-
const
|
622
|
-
const
|
767
|
+
let focusPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
768
|
+
const countRows = this.tableProps.countRows();
|
769
|
+
const countCols = this.tableProps.countCols();
|
770
|
+
const countRowHeaders = this.tableProps.countRowHeaders();
|
771
|
+
const rowHeaderLastIndex = countRowHeaders === 0 ? 0 : -countRowHeaders;
|
772
|
+
const fromCoords = new _src.CellCoords(startRow, rowHeaderLastIndex);
|
773
|
+
const toCoords = new _src.CellCoords(endRow, countCols - 1);
|
774
|
+
const isValid = new _src.CellRange(fromCoords, fromCoords, toCoords).isValid({
|
775
|
+
countRows,
|
776
|
+
countCols,
|
777
|
+
countRowHeaders,
|
778
|
+
countColHeaders: 0
|
779
|
+
});
|
623
780
|
if (isValid) {
|
624
|
-
|
625
|
-
|
781
|
+
const fromColumn = countRowHeaders === 0 ? 0 : (0, _number.clamp)(focusPosition, rowHeaderLastIndex, -1);
|
782
|
+
const toColumn = countCols - 1;
|
783
|
+
const from = this.tableProps.createCellCoords(startRow, fromColumn);
|
784
|
+
const to = this.tableProps.createCellCoords(endRow, toColumn);
|
785
|
+
const highlight = this.tableProps.createCellCoords(startRow, (0, _number.clamp)(focusPosition, rowHeaderLastIndex, countCols - 1));
|
786
|
+
this.runLocalHooks('beforeSelectRows', from, to, highlight);
|
787
|
+
|
788
|
+
// disallow modifying column axis for that hooks
|
789
|
+
from.col = fromColumn;
|
790
|
+
to.col = toColumn;
|
791
|
+
this.setRangeStartOnly(from, void 0, highlight);
|
792
|
+
this.selectedByRowHeader.add(this.getLayerLevel());
|
793
|
+
this.setRangeEnd(to);
|
794
|
+
this.runLocalHooks('afterSelectRows', from, to, highlight);
|
626
795
|
this.finish();
|
627
796
|
}
|
628
797
|
return isValid;
|
@@ -639,19 +808,31 @@ class Selection {
|
|
639
808
|
if (!this.isSelected()) {
|
640
809
|
return;
|
641
810
|
}
|
642
|
-
const
|
811
|
+
const focusHighlight = this.highlight.getFocus();
|
643
812
|
const currentLayer = this.getLayerLevel();
|
644
|
-
|
813
|
+
focusHighlight.commit().syncWith(this.selectedRange.current());
|
645
814
|
|
646
815
|
// Rewriting rendered ranges going through all layers.
|
647
816
|
for (let layerLevel = 0; layerLevel < this.selectedRange.size(); layerLevel += 1) {
|
648
817
|
this.highlight.useLayerLevel(layerLevel);
|
649
|
-
const areaHighlight = this.highlight.
|
650
|
-
const
|
651
|
-
const
|
818
|
+
const areaHighlight = this.highlight.createArea();
|
819
|
+
const areaLayeredHighlight = this.highlight.createLayeredArea();
|
820
|
+
const rowHeaderHighlight = this.highlight.createRowHeader();
|
821
|
+
const columnHeaderHighlight = this.highlight.createColumnHeader();
|
822
|
+
const activeRowHeaderHighlight = this.highlight.createActiveRowHeader();
|
823
|
+
const activeColumnHeaderHighlight = this.highlight.createActiveColumnHeader();
|
824
|
+
const activeCornerHeaderHighlight = this.highlight.createActiveCornerHeader();
|
825
|
+
const rowHighlight = this.highlight.createRowHighlight();
|
826
|
+
const columnHighlight = this.highlight.createColumnHighlight();
|
652
827
|
areaHighlight.commit();
|
653
|
-
|
654
|
-
|
828
|
+
areaLayeredHighlight.commit();
|
829
|
+
rowHeaderHighlight.commit();
|
830
|
+
columnHeaderHighlight.commit();
|
831
|
+
activeRowHeaderHighlight.commit();
|
832
|
+
activeColumnHeaderHighlight.commit();
|
833
|
+
activeCornerHeaderHighlight.commit();
|
834
|
+
rowHighlight.commit();
|
835
|
+
columnHighlight.commit();
|
655
836
|
}
|
656
837
|
|
657
838
|
// Reverting starting layer for the Highlight.
|
@@ -659,5 +840,4 @@ class Selection {
|
|
659
840
|
}
|
660
841
|
}
|
661
842
|
(0, _object.mixin)(Selection, _localHooks.default);
|
662
|
-
var _default = Selection;
|
663
|
-
exports.default = _default;
|
843
|
+
var _default = exports.default = Selection;
|