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
@@ -1,156 +1,296 @@
|
|
1
|
+
import "core-js/modules/es.error.cause.js";
|
2
|
+
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
3
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
4
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
5
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
6
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
7
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
8
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
9
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
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; } }
|
1
11
|
import { mixin } from "../helpers/object.mjs";
|
2
12
|
import localHooks from "./../mixins/localHooks.mjs";
|
3
13
|
/**
|
4
14
|
* The Transformation class implements algorithms for transforming coordinates based on current settings
|
5
|
-
* passed to the Handsontable.
|
15
|
+
* passed to the Handsontable. The class performs the calculations based on the renderable indexes.
|
6
16
|
*
|
7
17
|
* Transformation is always applied relative to the current selection.
|
8
18
|
*
|
19
|
+
* The class operates on a table size defined by the renderable indexes. If the `navigableHeaders`
|
20
|
+
* option is enabled, the table size is increased by the number of row and/or column headers.
|
21
|
+
* Because the headers are treated as cells as part of the table size (indexes always go from 0 to N),
|
22
|
+
* the algorithm can be written as simply as possible (without new if's that distinguish the headers
|
23
|
+
* logic).
|
24
|
+
*
|
9
25
|
* @class Transformation
|
10
26
|
* @util
|
11
27
|
*/
|
28
|
+
var _range = /*#__PURE__*/new WeakMap();
|
29
|
+
var _options = /*#__PURE__*/new WeakMap();
|
30
|
+
var _offset = /*#__PURE__*/new WeakMap();
|
31
|
+
var _setOffsetSize = /*#__PURE__*/new WeakSet();
|
32
|
+
var _clampCoords = /*#__PURE__*/new WeakSet();
|
33
|
+
var _getTableSize = /*#__PURE__*/new WeakSet();
|
34
|
+
var _visualToZeroBasedCoords = /*#__PURE__*/new WeakSet();
|
35
|
+
var _zeroBasedToVisualCoords = /*#__PURE__*/new WeakSet();
|
12
36
|
class Transformation {
|
13
37
|
constructor(range, options) {
|
38
|
+
/**
|
39
|
+
* Translates the zero-based coordinates to visual ones.
|
40
|
+
*
|
41
|
+
* @param {CellCoords} zeroBasedCoords The coordinates to process.
|
42
|
+
* @returns {CellCoords}
|
43
|
+
*/
|
44
|
+
_classPrivateMethodInitSpec(this, _zeroBasedToVisualCoords);
|
45
|
+
/**
|
46
|
+
* Translates the visual coordinates to zero-based ones.
|
47
|
+
*
|
48
|
+
* @param {CellCoords} visualCoords The visual coords to process.
|
49
|
+
* @returns {CellCoords}
|
50
|
+
*/
|
51
|
+
_classPrivateMethodInitSpec(this, _visualToZeroBasedCoords);
|
52
|
+
/**
|
53
|
+
* Gets the table size in number of rows with headers as "height" and number of columns with
|
54
|
+
* headers as "width".
|
55
|
+
*
|
56
|
+
* @returns {{width: number, height: number}}
|
57
|
+
*/
|
58
|
+
_classPrivateMethodInitSpec(this, _getTableSize);
|
59
|
+
/**
|
60
|
+
* Clamps the coords to make sure they points to the cell (or header) in the table range.
|
61
|
+
*
|
62
|
+
* @param {CellCoords} zeroBasedCoords The coords object to clamp.
|
63
|
+
* @returns {{rowDir: 1|0|-1, colDir: 1|0|-1}}
|
64
|
+
*/
|
65
|
+
_classPrivateMethodInitSpec(this, _clampCoords);
|
66
|
+
/**
|
67
|
+
* Sets the additional offset in table size that may occur when the `navigableHeaders` option
|
68
|
+
* is enabled.
|
69
|
+
*
|
70
|
+
* @param {{x: number, y: number}} offset Offset as x and y properties.
|
71
|
+
*/
|
72
|
+
_classPrivateMethodInitSpec(this, _setOffsetSize);
|
14
73
|
/**
|
15
74
|
* Instance of the SelectionRange, holder for visual coordinates applied to the table.
|
16
75
|
*
|
17
76
|
* @type {SelectionRange}
|
18
77
|
*/
|
19
|
-
this
|
78
|
+
_classPrivateFieldInitSpec(this, _range, {
|
79
|
+
writable: true,
|
80
|
+
value: void 0
|
81
|
+
});
|
20
82
|
/**
|
21
83
|
* Additional options which define the state of the settings which can infer transformation and
|
22
84
|
* give the possibility to translate indexes.
|
23
85
|
*
|
24
86
|
* @type {object}
|
25
87
|
*/
|
26
|
-
this
|
88
|
+
_classPrivateFieldInitSpec(this, _options, {
|
89
|
+
writable: true,
|
90
|
+
value: void 0
|
91
|
+
});
|
92
|
+
/**
|
93
|
+
* Increases the table size by applying the offsets. The option is used by the `navigableHeaders`
|
94
|
+
* option.
|
95
|
+
*
|
96
|
+
* @type {{ x: number, y: number }}
|
97
|
+
*/
|
98
|
+
_classPrivateFieldInitSpec(this, _offset, {
|
99
|
+
writable: true,
|
100
|
+
value: {
|
101
|
+
x: 0,
|
102
|
+
y: 0
|
103
|
+
}
|
104
|
+
});
|
105
|
+
_classPrivateFieldSet(this, _range, range);
|
106
|
+
_classPrivateFieldSet(this, _options, options);
|
27
107
|
}
|
28
108
|
|
29
109
|
/**
|
30
|
-
* Selects cell relative to current cell (if possible).
|
110
|
+
* Selects cell relative to the current cell (if possible).
|
31
111
|
*
|
32
112
|
* @param {number} rowDelta Rows number to move, value can be passed as negative number.
|
33
113
|
* @param {number} colDelta Columns number to move, value can be passed as negative number.
|
34
|
-
* @param {boolean} [
|
114
|
+
* @param {boolean} [createMissingRecords=false] If `true` the new rows/columns will be created if necessary. Otherwise, row/column will
|
35
115
|
* be created according to `minSpareRows/minSpareCols` settings of Handsontable.
|
36
116
|
* @returns {CellCoords} Visual coordinates after transformation.
|
37
117
|
*/
|
38
118
|
transformStart(rowDelta, colDelta) {
|
39
|
-
let
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
119
|
+
let createMissingRecords = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
120
|
+
_classPrivateMethodGet(this, _setOffsetSize, _setOffsetSize2).call(this, {
|
121
|
+
x: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countRowHeaders() : 0,
|
122
|
+
y: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countColHeaders() : 0
|
123
|
+
});
|
124
|
+
const delta = _classPrivateFieldGet(this, _options).createCellCoords(rowDelta, colDelta);
|
125
|
+
let visualCoords = _classPrivateFieldGet(this, _range).current().highlight;
|
126
|
+
const highlightRenderableCoords = _classPrivateFieldGet(this, _options).visualToRenderableCoords(visualCoords);
|
47
127
|
let rowTransformDir = 0;
|
48
128
|
let colTransformDir = 0;
|
49
129
|
this.runLocalHooks('beforeTransformStart', delta);
|
50
|
-
if (
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
const
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
130
|
+
if (highlightRenderableCoords.row !== null && highlightRenderableCoords.col !== null) {
|
131
|
+
const {
|
132
|
+
width,
|
133
|
+
height
|
134
|
+
} = _classPrivateMethodGet(this, _getTableSize, _getTableSize2).call(this);
|
135
|
+
const {
|
136
|
+
row,
|
137
|
+
col
|
138
|
+
} = _classPrivateMethodGet(this, _visualToZeroBasedCoords, _visualToZeroBasedCoords2).call(this, visualCoords);
|
139
|
+
const fixedRowsBottom = _classPrivateFieldGet(this, _options).fixedRowsBottom();
|
140
|
+
const minSpareRows = _classPrivateFieldGet(this, _options).minSpareRows();
|
141
|
+
const minSpareCols = _classPrivateFieldGet(this, _options).minSpareCols();
|
142
|
+
const autoWrapRow = _classPrivateFieldGet(this, _options).autoWrapRow();
|
143
|
+
const autoWrapCol = _classPrivateFieldGet(this, _options).autoWrapCol();
|
144
|
+
const zeroBasedCoords = _classPrivateFieldGet(this, _options).createCellCoords(row + delta.row, col + delta.col);
|
145
|
+
if (zeroBasedCoords.row >= height) {
|
146
|
+
const autoInsertingMode = createMissingRecords && minSpareRows > 0 && fixedRowsBottom === 0;
|
147
|
+
const isWrapEnabled = !autoInsertingMode && autoWrapCol;
|
148
|
+
const nextColumn = zeroBasedCoords.col + 1;
|
149
|
+
const newCoords = _classPrivateFieldGet(this, _options).createCellCoords(zeroBasedCoords.row - height, nextColumn >= width ? nextColumn - width : nextColumn);
|
150
|
+
this.runLocalHooks('beforeColumnWrap', isWrapEnabled, _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, newCoords), nextColumn >= width);
|
151
|
+
if (autoInsertingMode) {
|
152
|
+
this.runLocalHooks('insertRowRequire', _classPrivateFieldGet(this, _options).countRenderableRows());
|
153
|
+
} else if (isWrapEnabled) {
|
154
|
+
zeroBasedCoords.assign(newCoords);
|
65
155
|
}
|
66
|
-
} else if (
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
this.runLocalHooks('insertColRequire', totalCols);
|
73
|
-
totalCols = this.options.countCols();
|
74
|
-
} else if (autoWrapRow) {
|
75
|
-
delta.row = renderableRow + delta.row === totalRows - 1 ? 1 - totalRows : 1;
|
76
|
-
delta.col = 1 - totalCols;
|
156
|
+
} else if (zeroBasedCoords.row < 0) {
|
157
|
+
const previousColumn = zeroBasedCoords.col - 1;
|
158
|
+
const newCoords = _classPrivateFieldGet(this, _options).createCellCoords(height + zeroBasedCoords.row, previousColumn < 0 ? width + previousColumn : previousColumn);
|
159
|
+
this.runLocalHooks('beforeColumnWrap', autoWrapCol, _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, newCoords), previousColumn < 0);
|
160
|
+
if (autoWrapCol) {
|
161
|
+
zeroBasedCoords.assign(newCoords);
|
77
162
|
}
|
78
|
-
} else if (autoWrapRow && renderableColumn + delta.col < 0 && renderableRow + delta.row >= 0) {
|
79
|
-
delta.row = renderableRow + delta.row === 0 ? totalRows - 1 : -1;
|
80
|
-
delta.col = totalCols - 1;
|
81
|
-
}
|
82
|
-
const coords = this.options.createCellCoords(renderableRow + delta.row, renderableColumn + delta.col);
|
83
|
-
rowTransformDir = 0;
|
84
|
-
colTransformDir = 0;
|
85
|
-
if (coords.row < 0) {
|
86
|
-
rowTransformDir = -1;
|
87
|
-
coords.row = 0;
|
88
|
-
} else if (coords.row > 0 && coords.row >= totalRows) {
|
89
|
-
rowTransformDir = 1;
|
90
|
-
coords.row = totalRows - 1;
|
91
163
|
}
|
92
|
-
if (
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
164
|
+
if (zeroBasedCoords.col >= width) {
|
165
|
+
const autoInsertingMode = createMissingRecords && minSpareCols > 0;
|
166
|
+
const isWrapEnabled = !autoInsertingMode && autoWrapRow;
|
167
|
+
const nextRow = zeroBasedCoords.row + 1;
|
168
|
+
const newCoords = _classPrivateFieldGet(this, _options).createCellCoords(nextRow >= height ? nextRow - height : nextRow, zeroBasedCoords.col - width);
|
169
|
+
this.runLocalHooks('beforeRowWrap', isWrapEnabled, _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, newCoords), nextRow >= height);
|
170
|
+
if (autoInsertingMode) {
|
171
|
+
this.runLocalHooks('insertColRequire', _classPrivateFieldGet(this, _options).countRenderableColumns());
|
172
|
+
} else if (isWrapEnabled) {
|
173
|
+
zeroBasedCoords.assign(newCoords);
|
174
|
+
}
|
175
|
+
} else if (zeroBasedCoords.col < 0) {
|
176
|
+
const previousRow = zeroBasedCoords.row - 1;
|
177
|
+
const newCoords = _classPrivateFieldGet(this, _options).createCellCoords(previousRow < 0 ? height + previousRow : previousRow, width + zeroBasedCoords.col);
|
178
|
+
this.runLocalHooks('beforeRowWrap', autoWrapRow, _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, newCoords), previousRow < 0);
|
179
|
+
if (autoWrapRow) {
|
180
|
+
zeroBasedCoords.assign(newCoords);
|
181
|
+
}
|
98
182
|
}
|
99
|
-
|
183
|
+
const {
|
184
|
+
rowDir,
|
185
|
+
colDir
|
186
|
+
} = _classPrivateMethodGet(this, _clampCoords, _clampCoords2).call(this, zeroBasedCoords);
|
187
|
+
rowTransformDir = rowDir;
|
188
|
+
colTransformDir = colDir;
|
189
|
+
visualCoords = _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, zeroBasedCoords);
|
100
190
|
}
|
101
191
|
this.runLocalHooks('afterTransformStart', visualCoords, rowTransformDir, colTransformDir);
|
102
192
|
return visualCoords;
|
103
193
|
}
|
104
194
|
|
105
195
|
/**
|
106
|
-
* Sets selection end cell relative to current selection end cell (if possible).
|
196
|
+
* Sets selection end cell relative to the current selection end cell (if possible).
|
107
197
|
*
|
108
198
|
* @param {number} rowDelta Rows number to move, value can be passed as negative number.
|
109
199
|
* @param {number} colDelta Columns number to move, value can be passed as negative number.
|
110
200
|
* @returns {CellCoords} Visual coordinates after transformation.
|
111
201
|
*/
|
112
202
|
transformEnd(rowDelta, colDelta) {
|
113
|
-
|
114
|
-
|
115
|
-
|
203
|
+
_classPrivateMethodGet(this, _setOffsetSize, _setOffsetSize2).call(this, {
|
204
|
+
x: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countRowHeaders() : 0,
|
205
|
+
y: _classPrivateFieldGet(this, _options).navigableHeaders() ? _classPrivateFieldGet(this, _options).countColHeaders() : 0
|
206
|
+
});
|
207
|
+
const delta = _classPrivateFieldGet(this, _options).createCellCoords(rowDelta, colDelta);
|
208
|
+
const cellRange = _classPrivateFieldGet(this, _range).current();
|
209
|
+
const highlightRenderableCoords = _classPrivateFieldGet(this, _options).visualToRenderableCoords(cellRange.highlight);
|
210
|
+
const visualCoords = cellRange.to.clone();
|
116
211
|
let rowTransformDir = 0;
|
117
212
|
let colTransformDir = 0;
|
118
213
|
this.runLocalHooks('beforeTransformEnd', delta);
|
119
|
-
|
120
|
-
row: rowHighlight,
|
121
|
-
col: colHighlight
|
122
|
-
} = this.options.visualToRenderableCoords(cellRange.highlight);
|
123
|
-
|
124
|
-
// We have highlight (start point for the selection).
|
125
|
-
if (rowHighlight !== null && colHighlight !== null) {
|
126
|
-
const totalRows = this.options.countRows();
|
127
|
-
const totalCols = this.options.countCols();
|
214
|
+
if (highlightRenderableCoords.row !== null && highlightRenderableCoords.col !== null) {
|
128
215
|
const {
|
129
|
-
row
|
130
|
-
col
|
131
|
-
} = this.
|
132
|
-
const coords = this.
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
if (
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
coords.col = totalCols - 1;
|
216
|
+
row,
|
217
|
+
col
|
218
|
+
} = _classPrivateMethodGet(this, _visualToZeroBasedCoords, _visualToZeroBasedCoords2).call(this, cellRange.to);
|
219
|
+
const coords = _classPrivateFieldGet(this, _options).createCellCoords(row + delta.row, col + delta.col);
|
220
|
+
const {
|
221
|
+
rowDir,
|
222
|
+
colDir
|
223
|
+
} = _classPrivateMethodGet(this, _clampCoords, _clampCoords2).call(this, coords);
|
224
|
+
rowTransformDir = rowDir;
|
225
|
+
colTransformDir = colDir;
|
226
|
+
const newVisualCoords = _classPrivateMethodGet(this, _zeroBasedToVisualCoords, _zeroBasedToVisualCoords2).call(this, coords);
|
227
|
+
if (delta.row === 0 && delta.col !== 0) {
|
228
|
+
visualCoords.col = newVisualCoords.col;
|
229
|
+
} else if (delta.row !== 0 && delta.col === 0) {
|
230
|
+
visualCoords.row = newVisualCoords.row;
|
231
|
+
} else {
|
232
|
+
visualCoords.row = newVisualCoords.row;
|
233
|
+
visualCoords.col = newVisualCoords.col;
|
148
234
|
}
|
149
|
-
visualCoords = this.options.renderableToVisualCoords(coords);
|
150
235
|
}
|
151
236
|
this.runLocalHooks('afterTransformEnd', visualCoords, rowTransformDir, colTransformDir);
|
152
237
|
return visualCoords;
|
153
238
|
}
|
154
239
|
}
|
240
|
+
function _setOffsetSize2(_ref) {
|
241
|
+
let {
|
242
|
+
x,
|
243
|
+
y
|
244
|
+
} = _ref;
|
245
|
+
_classPrivateFieldSet(this, _offset, {
|
246
|
+
x,
|
247
|
+
y
|
248
|
+
});
|
249
|
+
}
|
250
|
+
function _clampCoords2(zeroBasedCoords) {
|
251
|
+
const {
|
252
|
+
width,
|
253
|
+
height
|
254
|
+
} = _classPrivateMethodGet(this, _getTableSize, _getTableSize2).call(this);
|
255
|
+
let rowDir = 0;
|
256
|
+
let colDir = 0;
|
257
|
+
if (zeroBasedCoords.row < 0) {
|
258
|
+
rowDir = -1;
|
259
|
+
zeroBasedCoords.row = 0;
|
260
|
+
} else if (zeroBasedCoords.row > 0 && zeroBasedCoords.row >= height) {
|
261
|
+
rowDir = 1;
|
262
|
+
zeroBasedCoords.row = height - 1;
|
263
|
+
}
|
264
|
+
if (zeroBasedCoords.col < 0) {
|
265
|
+
colDir = -1;
|
266
|
+
zeroBasedCoords.col = 0;
|
267
|
+
} else if (zeroBasedCoords.col > 0 && zeroBasedCoords.col >= width) {
|
268
|
+
colDir = 1;
|
269
|
+
zeroBasedCoords.col = width - 1;
|
270
|
+
}
|
271
|
+
return {
|
272
|
+
rowDir,
|
273
|
+
colDir
|
274
|
+
};
|
275
|
+
}
|
276
|
+
function _getTableSize2() {
|
277
|
+
return {
|
278
|
+
width: _classPrivateFieldGet(this, _offset).x + _classPrivateFieldGet(this, _options).countRenderableColumns(),
|
279
|
+
height: _classPrivateFieldGet(this, _offset).y + _classPrivateFieldGet(this, _options).countRenderableRows()
|
280
|
+
};
|
281
|
+
}
|
282
|
+
function _visualToZeroBasedCoords2(visualCoords) {
|
283
|
+
const {
|
284
|
+
row,
|
285
|
+
col
|
286
|
+
} = _classPrivateFieldGet(this, _options).visualToRenderableCoords(visualCoords);
|
287
|
+
return _classPrivateFieldGet(this, _options).createCellCoords(_classPrivateFieldGet(this, _offset).y + row, _classPrivateFieldGet(this, _offset).x + col);
|
288
|
+
}
|
289
|
+
function _zeroBasedToVisualCoords2(zeroBasedCoords) {
|
290
|
+
const coords = zeroBasedCoords.clone();
|
291
|
+
coords.col = zeroBasedCoords.col - _classPrivateFieldGet(this, _offset).x;
|
292
|
+
coords.row = zeroBasedCoords.row - _classPrivateFieldGet(this, _offset).y;
|
293
|
+
return _classPrivateFieldGet(this, _options).renderableToVisualCoords(coords);
|
294
|
+
}
|
155
295
|
mixin(Transformation, localHooks);
|
156
296
|
export default Transformation;
|
package/selection/utils.js
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
exports.detectSelectionType = detectSelectionType;
|
5
|
-
exports.isValidCoord = isValidCoord;
|
6
5
|
exports.normalizeSelectionFactory = normalizeSelectionFactory;
|
7
6
|
exports.transformSelectionToColumnDistance = transformSelectionToColumnDistance;
|
8
7
|
exports.transformSelectionToRowDistance = transformSelectionToRowDistance;
|
@@ -11,16 +10,11 @@ require("core-js/modules/es.array.push.js");
|
|
11
10
|
var _src = require("./../3rdparty/walkontable/src");
|
12
11
|
var _array = require("./../helpers/array");
|
13
12
|
var _mixed = require("./../helpers/mixed");
|
14
|
-
const SELECTION_TYPE_UNRECOGNIZED = 0;
|
15
|
-
exports.
|
16
|
-
const
|
17
|
-
exports.
|
18
|
-
const
|
19
|
-
exports.SELECTION_TYPE_ARRAY = SELECTION_TYPE_ARRAY;
|
20
|
-
const SELECTION_TYPE_OBJECT = 3;
|
21
|
-
exports.SELECTION_TYPE_OBJECT = SELECTION_TYPE_OBJECT;
|
22
|
-
const SELECTION_TYPES = [SELECTION_TYPE_OBJECT, SELECTION_TYPE_ARRAY];
|
23
|
-
exports.SELECTION_TYPES = SELECTION_TYPES;
|
13
|
+
const SELECTION_TYPE_UNRECOGNIZED = exports.SELECTION_TYPE_UNRECOGNIZED = 0;
|
14
|
+
const SELECTION_TYPE_EMPTY = exports.SELECTION_TYPE_EMPTY = 1;
|
15
|
+
const SELECTION_TYPE_ARRAY = exports.SELECTION_TYPE_ARRAY = 2;
|
16
|
+
const SELECTION_TYPE_OBJECT = exports.SELECTION_TYPE_OBJECT = 3;
|
17
|
+
const SELECTION_TYPES = exports.SELECTION_TYPES = [SELECTION_TYPE_OBJECT, SELECTION_TYPE_ARRAY];
|
24
18
|
const ARRAY_TYPE_PATTERN = [['number'], ['number', 'string'], ['number', 'undefined'], ['number', 'string', 'undefined']];
|
25
19
|
const rootCall = Symbol('root');
|
26
20
|
const childCall = Symbol('child');
|
@@ -111,7 +105,9 @@ function normalizeSelectionFactory(type) {
|
|
111
105
|
rowEnd = Math.max(origRowStart, origRowEnd);
|
112
106
|
columnEnd = Math.max(origColumnStart, origColumnEnd);
|
113
107
|
}
|
114
|
-
|
108
|
+
const from = new _src.CellCoords(rowStart, columnStart);
|
109
|
+
const to = new _src.CellCoords(rowEnd, columnEnd);
|
110
|
+
return new _src.CellRange(from, from, to);
|
115
111
|
};
|
116
112
|
}
|
117
113
|
|
@@ -137,9 +133,12 @@ function transformSelectionToColumnDistance(selectionRanges) {
|
|
137
133
|
|
138
134
|
// Iterate through all ranges and collect all column indexes which are not saved yet.
|
139
135
|
(0, _array.arrayEach)(selectionRanges, selection => {
|
140
|
-
const
|
141
|
-
|
142
|
-
|
136
|
+
const {
|
137
|
+
from,
|
138
|
+
to
|
139
|
+
} = selectionSchemaNormalizer(selection);
|
140
|
+
const columnNonHeaderStart = Math.max(from.col, 0);
|
141
|
+
const amount = to.col - columnNonHeaderStart + 1;
|
143
142
|
(0, _array.arrayEach)(Array.from(new Array(amount), (_, i) => columnNonHeaderStart + i), index => {
|
144
143
|
if (!unorderedIndexes.has(index)) {
|
145
144
|
unorderedIndexes.add(index);
|
@@ -182,9 +181,12 @@ function transformSelectionToRowDistance(selectionRanges) {
|
|
182
181
|
|
183
182
|
// Iterate through all ranges and collect all column indexes which are not saved yet.
|
184
183
|
(0, _array.arrayEach)(selectionRanges, selection => {
|
185
|
-
const
|
186
|
-
|
187
|
-
|
184
|
+
const {
|
185
|
+
from,
|
186
|
+
to
|
187
|
+
} = selectionSchemaNormalizer(selection);
|
188
|
+
const rowNonHeaderStart = Math.max(from.row, 0);
|
189
|
+
const amount = to.row - rowNonHeaderStart + 1;
|
188
190
|
(0, _array.arrayEach)(Array.from(new Array(amount), (_, i) => rowNonHeaderStart + i), index => {
|
189
191
|
if (!unorderedIndexes.has(index)) {
|
190
192
|
unorderedIndexes.add(index);
|
@@ -203,17 +205,4 @@ function transformSelectionToRowDistance(selectionRanges) {
|
|
203
205
|
return acc;
|
204
206
|
}, []);
|
205
207
|
return normalizedRowRanges;
|
206
|
-
}
|
207
|
-
|
208
|
-
/**
|
209
|
-
* Check if passed value can be treated as valid cell coordinate. The second argument is
|
210
|
-
* used to check if the value doesn't exceed the defined max table rows/columns count.
|
211
|
-
*
|
212
|
-
* @param {number} coord The coordinate to validate (row index or column index).
|
213
|
-
* @param {number} maxTableItemsCount The value that declares the maximum coordinate that is still validatable.
|
214
|
-
* @returns {boolean}
|
215
|
-
*/
|
216
|
-
function isValidCoord(coord) {
|
217
|
-
let maxTableItemsCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
|
218
|
-
return typeof coord === 'number' && coord >= 0 && coord < maxTableItemsCount;
|
219
208
|
}
|
package/selection/utils.mjs
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import "core-js/modules/es.error.cause.js";
|
2
2
|
import "core-js/modules/es.array.push.js";
|
3
|
-
import { CellRange } from "./../3rdparty/walkontable/src/index.mjs";
|
3
|
+
import { CellRange, CellCoords } from "./../3rdparty/walkontable/src/index.mjs";
|
4
4
|
import { arrayEach, arrayReduce } from "./../helpers/array.mjs";
|
5
5
|
import { isUndefined } from "./../helpers/mixed.mjs";
|
6
6
|
export const SELECTION_TYPE_UNRECOGNIZED = 0;
|
@@ -98,7 +98,9 @@ export function normalizeSelectionFactory(type) {
|
|
98
98
|
rowEnd = Math.max(origRowStart, origRowEnd);
|
99
99
|
columnEnd = Math.max(origColumnStart, origColumnEnd);
|
100
100
|
}
|
101
|
-
|
101
|
+
const from = new CellCoords(rowStart, columnStart);
|
102
|
+
const to = new CellCoords(rowEnd, columnEnd);
|
103
|
+
return new CellRange(from, from, to);
|
102
104
|
};
|
103
105
|
}
|
104
106
|
|
@@ -124,9 +126,12 @@ export function transformSelectionToColumnDistance(selectionRanges) {
|
|
124
126
|
|
125
127
|
// Iterate through all ranges and collect all column indexes which are not saved yet.
|
126
128
|
arrayEach(selectionRanges, selection => {
|
127
|
-
const
|
128
|
-
|
129
|
-
|
129
|
+
const {
|
130
|
+
from,
|
131
|
+
to
|
132
|
+
} = selectionSchemaNormalizer(selection);
|
133
|
+
const columnNonHeaderStart = Math.max(from.col, 0);
|
134
|
+
const amount = to.col - columnNonHeaderStart + 1;
|
130
135
|
arrayEach(Array.from(new Array(amount), (_, i) => columnNonHeaderStart + i), index => {
|
131
136
|
if (!unorderedIndexes.has(index)) {
|
132
137
|
unorderedIndexes.add(index);
|
@@ -169,9 +174,12 @@ export function transformSelectionToRowDistance(selectionRanges) {
|
|
169
174
|
|
170
175
|
// Iterate through all ranges and collect all column indexes which are not saved yet.
|
171
176
|
arrayEach(selectionRanges, selection => {
|
172
|
-
const
|
173
|
-
|
174
|
-
|
177
|
+
const {
|
178
|
+
from,
|
179
|
+
to
|
180
|
+
} = selectionSchemaNormalizer(selection);
|
181
|
+
const rowNonHeaderStart = Math.max(from.row, 0);
|
182
|
+
const amount = to.row - rowNonHeaderStart + 1;
|
175
183
|
arrayEach(Array.from(new Array(amount), (_, i) => rowNonHeaderStart + i), index => {
|
176
184
|
if (!unorderedIndexes.has(index)) {
|
177
185
|
unorderedIndexes.add(index);
|
@@ -190,17 +198,4 @@ export function transformSelectionToRowDistance(selectionRanges) {
|
|
190
198
|
return acc;
|
191
199
|
}, []);
|
192
200
|
return normalizedRowRanges;
|
193
|
-
}
|
194
|
-
|
195
|
-
/**
|
196
|
-
* Check if passed value can be treated as valid cell coordinate. The second argument is
|
197
|
-
* used to check if the value doesn't exceed the defined max table rows/columns count.
|
198
|
-
*
|
199
|
-
* @param {number} coord The coordinate to validate (row index or column index).
|
200
|
-
* @param {number} maxTableItemsCount The value that declares the maximum coordinate that is still validatable.
|
201
|
-
* @returns {boolean}
|
202
|
-
*/
|
203
|
-
export function isValidCoord(coord) {
|
204
|
-
let maxTableItemsCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
|
205
|
-
return typeof coord === 'number' && coord >= 0 && coord < maxTableItemsCount;
|
206
201
|
}
|
package/settings.d.ts
CHANGED
@@ -93,6 +93,7 @@ export interface GridSettings extends Events {
|
|
93
93
|
allowInvalid?: boolean;
|
94
94
|
allowRemoveColumn?: boolean;
|
95
95
|
allowRemoveRow?: boolean;
|
96
|
+
ariaTags?: boolean;
|
96
97
|
autoColumnSize?: AutoColumnSizeSettings;
|
97
98
|
autoRowSize?: AutoRowSizeSettings;
|
98
99
|
autoWrapCol?: boolean;
|
@@ -124,6 +125,7 @@ export interface GridSettings extends Events {
|
|
124
125
|
dateFormat?: string;
|
125
126
|
datePickerConfig?: PikadayOptions;
|
126
127
|
defaultDate?: string;
|
128
|
+
disableTabNavigation?: boolean;
|
127
129
|
disableVisualSelection?: boolean | 'current' | 'area' | 'header' | Array<'current' | 'area' | 'header'>;
|
128
130
|
dragToScroll?: boolean;
|
129
131
|
dropdownMenu?: DropdownMenuSettings;
|
@@ -144,6 +146,7 @@ export interface GridSettings extends Events {
|
|
144
146
|
hiddenColumns?: HiddenColumnsSettings;
|
145
147
|
hiddenRows?: HiddenRowsSettings;
|
146
148
|
invalidCellClassName?: string;
|
149
|
+
imeFastEdit?: boolean;
|
147
150
|
isEmptyCol?: (this: Core, col: number) => boolean;
|
148
151
|
isEmptyRow?: (this: Core, row: number) => boolean;
|
149
152
|
label?: LabelOptions;
|
@@ -164,6 +167,7 @@ export interface GridSettings extends Events {
|
|
164
167
|
minSpareCols?: number;
|
165
168
|
minSpareRows?: number;
|
166
169
|
multiColumnSorting?: MultiColumnSortingSettings;
|
170
|
+
navigableHeaders?: boolean;
|
167
171
|
nestedHeaders?: NestedHeadersSettings;
|
168
172
|
nestedRows?: boolean;
|
169
173
|
noWordWrapClassName?: string;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
const command = exports.command = {
|
5
|
+
name: 'editorCloseAndSave',
|
6
|
+
callback(hot, event, keys) {
|
7
|
+
const editorManager = hot._getEditorManager();
|
8
|
+
editorManager.closeEditorAndSaveChanges(hot.getShortcutManager().isCtrlPressed());
|
9
|
+
editorManager.moveSelectionAfterEnter(keys.includes('shift'));
|
10
|
+
}
|
11
|
+
};
|
@@ -0,0 +1,8 @@
|
|
1
|
+
export const command = {
|
2
|
+
name: 'editorCloseAndSave',
|
3
|
+
callback(hot, event, keys) {
|
4
|
+
const editorManager = hot._getEditorManager();
|
5
|
+
editorManager.closeEditorAndSaveChanges(hot.getShortcutManager().isCtrlPressed());
|
6
|
+
editorManager.moveSelectionAfterEnter(keys.includes('shift'));
|
7
|
+
}
|
8
|
+
};
|
@@ -0,0 +1,11 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
const command = exports.command = {
|
5
|
+
name: 'editorCloseWithoutSaving',
|
6
|
+
callback(hot) {
|
7
|
+
const editorManager = hot._getEditorManager();
|
8
|
+
editorManager.closeEditorAndRestoreOriginalValue(hot.getShortcutManager().isCtrlPressed());
|
9
|
+
editorManager.activeEditor.focus();
|
10
|
+
}
|
11
|
+
};
|
@@ -0,0 +1,8 @@
|
|
1
|
+
export const command = {
|
2
|
+
name: 'editorCloseWithoutSaving',
|
3
|
+
callback(hot) {
|
4
|
+
const editorManager = hot._getEditorManager();
|
5
|
+
editorManager.closeEditorAndRestoreOriginalValue(hot.getShortcutManager().isCtrlPressed());
|
6
|
+
editorManager.activeEditor.focus();
|
7
|
+
}
|
8
|
+
};
|
@@ -0,0 +1,15 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
const command = exports.command = {
|
5
|
+
name: 'editorFastOpen',
|
6
|
+
callback(hot, event) {
|
7
|
+
const {
|
8
|
+
highlight
|
9
|
+
} = hot.getSelectedRangeLast();
|
10
|
+
if (highlight.isHeader()) {
|
11
|
+
return;
|
12
|
+
}
|
13
|
+
hot._getEditorManager().openEditor(null, event, true);
|
14
|
+
}
|
15
|
+
};
|