handsontable 0.0.0-next-b66c79f-20230713 → 0.0.0-next-08765b9-20230714
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/cell/coords.d.ts +6 -1
- package/3rdparty/walkontable/src/cell/coords.js +87 -33
- package/3rdparty/walkontable/src/cell/coords.mjs +87 -33
- package/3rdparty/walkontable/src/cell/range.d.ts +9 -2
- package/3rdparty/walkontable/src/cell/range.js +92 -46
- package/3rdparty/walkontable/src/cell/range.mjs +92 -46
- package/3rdparty/walkontable/src/core/_base.js +41 -33
- package/3rdparty/walkontable/src/core/_base.mjs +41 -33
- package/3rdparty/walkontable/src/core/clone.js +8 -5
- package/3rdparty/walkontable/src/core/clone.mjs +8 -5
- package/3rdparty/walkontable/src/core/core.js +3 -2
- package/3rdparty/walkontable/src/core/core.mjs +3 -2
- package/3rdparty/walkontable/src/event.js +9 -8
- package/3rdparty/walkontable/src/event.mjs +9 -8
- package/3rdparty/walkontable/src/facade/core.js +2 -2
- package/3rdparty/walkontable/src/facade/core.mjs +2 -2
- package/3rdparty/walkontable/src/index.js +10 -2
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/_base.js +11 -9
- package/3rdparty/walkontable/src/overlay/_base.mjs +11 -9
- package/3rdparty/walkontable/src/overlay/bottom.js +10 -8
- package/3rdparty/walkontable/src/overlay/bottom.mjs +10 -8
- 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 +12 -14
- package/3rdparty/walkontable/src/overlay/top.mjs +12 -14
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +16 -13
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +16 -13
- package/3rdparty/walkontable/src/overlays.js +75 -80
- package/3rdparty/walkontable/src/overlays.mjs +75 -80
- package/3rdparty/walkontable/src/scroll.js +27 -24
- package/3rdparty/walkontable/src/scroll.mjs +27 -24
- package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +7 -12
- package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
- package/3rdparty/walkontable/src/selection/border/constants.js +16 -0
- package/3rdparty/walkontable/src/selection/border/constants.mjs +12 -0
- package/3rdparty/walkontable/src/selection/constants.js +62 -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 +259 -0
- package/3rdparty/walkontable/src/selection/manager.mjs +254 -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 +101 -0
- package/3rdparty/walkontable/src/selection/selection.mjs +96 -0
- package/3rdparty/walkontable/src/settings.js +18 -17
- package/3rdparty/walkontable/src/settings.mjs +18 -17
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -0
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
- package/3rdparty/walkontable/src/table.js +48 -115
- package/3rdparty/walkontable/src/table.mjs +49 -116
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core/focusCatcher/focusDetector.js +58 -0
- package/core/focusCatcher/focusDetector.mjs +54 -0
- package/core/focusCatcher/index.js +142 -0
- package/core/focusCatcher/index.mjs +138 -0
- package/core/index.js +9 -0
- package/core/index.mjs +1 -0
- package/core.d.ts +6 -3
- package/core.js +181 -298
- package/core.mjs +181 -298
- package/dataMap/metaManager/metaLayers/cellMeta.js +2 -1
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +2 -1
- package/dataMap/metaManager/metaLayers/globalMeta.js +1 -1
- package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
- package/dataMap/metaManager/metaSchema.js +41 -0
- package/dataMap/metaManager/metaSchema.mjs +41 -0
- package/dataMap/metaManager/mods/dynamicCellMeta.js +3 -2
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +3 -2
- package/dataMap/metaManager/utils.js +4 -2
- package/dataMap/metaManager/utils.mjs +4 -2
- package/dist/handsontable.css +19 -3
- package/dist/handsontable.full.css +19 -3
- package/dist/handsontable.full.js +10739 -7037
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +25 -25
- package/dist/handsontable.js +24884 -21182
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +19 -19
- package/editorManager.js +11 -75
- package/editorManager.mjs +11 -74
- package/editors/autocompleteEditor/autocompleteEditor.js +70 -67
- package/editors/autocompleteEditor/autocompleteEditor.mjs +70 -67
- package/editors/baseEditor/baseEditor.js +1 -1
- package/editors/baseEditor/baseEditor.mjs +1 -1
- package/editors/dateEditor/dateEditor.js +2 -1
- package/editors/dateEditor/dateEditor.mjs +2 -1
- package/editors/textEditor/textEditor.js +3 -11
- package/editors/textEditor/textEditor.mjs +4 -12
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/helpers/number.d.ts +1 -0
- package/helpers/number.js +18 -0
- package/helpers/number.mjs +17 -0
- package/helpers/object.js +1 -0
- package/helpers/object.mjs +1 -0
- package/index.js +5 -5
- package/index.mjs +5 -5
- package/package.json +1 -1
- package/pluginHooks.d.ts +7 -1
- package/pluginHooks.js +106 -1
- package/pluginHooks.mjs +106 -1
- package/plugins/autoColumnSize/autoColumnSize.js +4 -1
- package/plugins/autoColumnSize/autoColumnSize.mjs +4 -1
- package/plugins/collapsibleColumns/collapsibleColumns.js +110 -40
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +110 -40
- package/plugins/columnSorting/columnSorting.js +40 -1
- package/plugins/columnSorting/columnSorting.mjs +40 -3
- package/plugins/columnSorting/columnStatesManager.js +2 -1
- package/plugins/columnSorting/columnStatesManager.mjs +2 -1
- package/plugins/columnSorting/index.js +3 -1
- package/plugins/columnSorting/index.mjs +1 -1
- package/plugins/comments/commentEditor.js +1 -0
- package/plugins/comments/commentEditor.mjs +1 -0
- package/plugins/comments/comments.js +253 -191
- package/plugins/comments/comments.mjs +252 -192
- 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/contextMenu/contextMenu.d.ts +1 -1
- package/plugins/contextMenu/contextMenu.js +72 -30
- package/plugins/contextMenu/contextMenu.mjs +73 -31
- package/plugins/contextMenu/predefinedItems/alignment.js +7 -0
- package/plugins/contextMenu/predefinedItems/alignment.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/clearColumn.js +5 -3
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.js +5 -3
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.js +5 -3
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/readOnly.js +7 -0
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +7 -0
- package/plugins/contextMenu/predefinedItems/removeColumn.js +7 -5
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/removeRow.js +7 -5
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.js +5 -3
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +5 -3
- package/plugins/contextMenu/utils.js +28 -16
- package/plugins/contextMenu/utils.mjs +27 -15
- 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 +7 -0
- package/plugins/copyPaste/contextMenuItem/cut.mjs +7 -0
- package/plugins/copyPaste/copyPaste.js +12 -6
- package/plugins/copyPaste/copyPaste.mjs +12 -6
- package/plugins/customBorders/customBorders.js +36 -29
- package/plugins/customBorders/customBorders.mjs +37 -30
- package/plugins/customBorders/utils.js +3 -3
- package/plugins/customBorders/utils.mjs +3 -3
- package/plugins/dropdownMenu/dropdownMenu.d.ts +1 -1
- package/plugins/dropdownMenu/dropdownMenu.js +89 -32
- package/plugins/dropdownMenu/dropdownMenu.mjs +89 -32
- package/plugins/filters/conditionCollection.js +6 -5
- package/plugins/filters/conditionCollection.mjs +6 -5
- package/plugins/filters/filters.js +44 -21
- package/plugins/filters/filters.mjs +43 -20
- package/plugins/formulas/engine/register.js +3 -3
- package/plugins/formulas/engine/register.mjs +3 -3
- package/plugins/formulas/engine/settings.js +6 -3
- package/plugins/formulas/engine/settings.mjs +6 -3
- package/plugins/formulas/formulas.js +151 -143
- package/plugins/formulas/formulas.mjs +151 -143
- package/plugins/formulas/indexSyncer/axisSyncer.js +115 -79
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +115 -79
- package/plugins/formulas/indexSyncer/index.js +100 -64
- package/plugins/formulas/indexSyncer/index.mjs +100 -64
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -2
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -2
- package/plugins/hiddenColumns/hiddenColumns.js +51 -34
- package/plugins/hiddenColumns/hiddenColumns.mjs +51 -34
- package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -2
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -2
- package/plugins/hiddenRows/hiddenRows.js +50 -33
- package/plugins/hiddenRows/hiddenRows.mjs +50 -33
- package/plugins/manualRowResize/manualRowResize.js +2 -1
- package/plugins/manualRowResize/manualRowResize.mjs +2 -1
- package/plugins/mergeCells/mergeCells.js +6 -17
- package/plugins/mergeCells/mergeCells.mjs +6 -17
- package/plugins/multiColumnSorting/multiColumnSorting.js +37 -2
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +37 -2
- package/plugins/nestedHeaders/nestedHeaders.js +209 -75
- package/plugins/nestedHeaders/nestedHeaders.mjs +208 -74
- package/plugins/nestedHeaders/stateManager/headersTree.js +58 -38
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +58 -38
- package/plugins/nestedHeaders/stateManager/index.js +107 -49
- package/plugins/nestedHeaders/stateManager/index.mjs +105 -47
- package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +1 -1
- package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +1 -1
- package/plugins/nestedHeaders/stateManager/sourceSettings.js +57 -37
- package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +57 -37
- package/plugins/nestedHeaders/utils/ghostTable.js +39 -35
- package/plugins/nestedHeaders/utils/ghostTable.mjs +39 -35
- package/plugins/nestedRows/data/dataManager.js +4 -2
- package/plugins/nestedRows/data/dataManager.mjs +4 -2
- package/plugins/nestedRows/nestedRows.js +41 -0
- package/plugins/nestedRows/nestedRows.mjs +41 -0
- package/plugins/persistentState/storage.js +1 -0
- package/plugins/persistentState/storage.mjs +1 -0
- package/plugins/undoRedo/undoRedo.js +2 -1
- package/plugins/undoRedo/undoRedo.mjs +2 -1
- package/renderers/checkboxRenderer/checkboxRenderer.js +2 -2
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +1 -1
- package/selection/highlight/highlight.js +256 -71
- 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 +41 -33
- package/selection/highlight/visualSelection.mjs +41 -33
- package/selection/index.js +4 -7
- package/selection/index.mjs +2 -3
- package/selection/mouseEventHandler.js +1 -1
- package/selection/mouseEventHandler.mjs +1 -1
- package/selection/range.js +8 -8
- package/selection/range.mjs +8 -8
- package/selection/selection.js +290 -154
- package/selection/selection.mjs +287 -153
- package/selection/transformation.js +232 -90
- package/selection/transformation.mjs +232 -90
- package/selection/utils.js +15 -21
- package/selection/utils.mjs +16 -21
- package/settings.d.ts +2 -0
- package/shortcutContexts/commands/editor/closeAndSave.js +12 -0
- package/shortcutContexts/commands/editor/closeAndSave.mjs +8 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.js +12 -0
- package/shortcutContexts/commands/editor/closeWithoutSaving.mjs +8 -0
- package/shortcutContexts/commands/editor/fastOpen.js +16 -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 +27 -0
- package/shortcutContexts/commands/editor/open.mjs +23 -0
- package/shortcutContexts/commands/emptySelectedCells.js +11 -0
- package/shortcutContexts/commands/emptySelectedCells.mjs +7 -0
- package/shortcutContexts/commands/extendCellsSelection/down.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +21 -0
- package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +17 -0
- package/shortcutContexts/commands/extendCellsSelection/index.js +26 -0
- package/shortcutContexts/commands/extendCellsSelection/index.mjs +22 -0
- package/shortcutContexts/commands/extendCellsSelection/left.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/right.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +29 -0
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +25 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +19 -0
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.js +15 -0
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +11 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +21 -0
- package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +17 -0
- package/shortcutContexts/commands/index.js +35 -0
- package/shortcutContexts/commands/index.mjs +31 -0
- package/shortcutContexts/commands/moveCellSelection/down.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/down.mjs +9 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +31 -0
- package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +27 -0
- package/shortcutContexts/commands/moveCellSelection/index.js +28 -0
- package/shortcutContexts/commands/moveCellSelection/index.mjs +24 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +12 -0
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +8 -0
- package/shortcutContexts/commands/moveCellSelection/left.js +10 -0
- package/shortcutContexts/commands/moveCellSelection/left.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/right.js +10 -0
- package/shortcutContexts/commands/moveCellSelection/right.mjs +6 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottom.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.js +18 -0
- package/shortcutContexts/commands/moveCellSelection/toMostBottomInlineEnd.mjs +14 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.js +14 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineEnd.mjs +10 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostInlineStart.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.js +19 -0
- package/shortcutContexts/commands/moveCellSelection/toMostLeft.mjs +15 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.js +21 -0
- package/shortcutContexts/commands/moveCellSelection/toMostRight.mjs +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.js +17 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTop.mjs +13 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.js +19 -0
- package/shortcutContexts/commands/moveCellSelection/toMostTopInlineStart.mjs +15 -0
- package/shortcutContexts/commands/moveCellSelection/up.js +13 -0
- package/shortcutContexts/commands/moveCellSelection/up.mjs +9 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +31 -0
- package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +27 -0
- package/shortcutContexts/commands/populateSelectedCellsData.js +29 -0
- package/shortcutContexts/commands/populateSelectedCellsData.mjs +25 -0
- package/shortcutContexts/commands/scrollToFocusedCell.js +36 -0
- package/shortcutContexts/commands/scrollToFocusedCell.mjs +32 -0
- package/shortcutContexts/commands/selectAll.js +10 -0
- package/shortcutContexts/commands/selectAll.mjs +6 -0
- package/shortcutContexts/constants.js +13 -0
- package/shortcutContexts/constants.mjs +8 -0
- package/shortcutContexts/editor.js +25 -0
- package/shortcutContexts/editor.mjs +21 -0
- package/shortcutContexts/grid.js +163 -0
- package/shortcutContexts/grid.mjs +159 -0
- package/shortcutContexts/index.js +24 -0
- package/shortcutContexts/index.mjs +11 -0
- package/shortcuts/manager.js +2 -0
- package/shortcuts/manager.mjs +2 -0
- package/shortcuts/recorder.js +2 -2
- package/shortcuts/recorder.mjs +2 -2
- package/shortcuts/utils.js +19 -5
- package/shortcuts/utils.mjs +18 -4
- package/tableView.js +163 -91
- package/tableView.mjs +163 -91
- package/translations/changesObservable/observable.js +82 -54
- package/translations/changesObservable/observable.mjs +82 -54
- package/translations/changesObservable/observer.js +24 -11
- package/translations/changesObservable/observer.mjs +24 -11
- package/translations/maps/linkedPhysicalIndexToValueMap.js +14 -8
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +14 -8
- package/utils/dataStructures/tree.js +21 -18
- package/utils/dataStructures/tree.mjs +21 -18
- package/3rdparty/walkontable/src/selection.js +0 -295
- package/3rdparty/walkontable/src/selection.mjs +0 -290
- 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
@@ -4,7 +4,12 @@ export default class CellCoords {
|
|
4
4
|
row: number;
|
5
5
|
col: number;
|
6
6
|
|
7
|
-
isValid(
|
7
|
+
isValid(tableParams: {
|
8
|
+
countRows?: number;
|
9
|
+
countCols?: number;
|
10
|
+
countRowHeaders?: number;
|
11
|
+
countColHeaders?: number;
|
12
|
+
}): boolean;
|
8
13
|
isEqual(cellCoords: CellCoords): boolean;
|
9
14
|
isSouthEastOf(testedCoords: any): boolean;
|
10
15
|
isNorthWestOf(testedCoords: any): boolean;
|
@@ -1,6 +1,18 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
+
require("core-js/modules/es.error.cause.js");
|
5
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
6
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
7
|
+
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; }
|
8
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
9
|
+
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); }
|
10
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
11
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
12
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
13
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
14
|
+
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; } }
|
15
|
+
var _isRtl = /*#__PURE__*/new WeakMap();
|
4
16
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
5
17
|
/**
|
6
18
|
* @description
|
@@ -20,25 +32,28 @@ exports.__esModule = true;
|
|
20
32
|
* ```
|
21
33
|
*/
|
22
34
|
class CellCoords {
|
23
|
-
/**
|
24
|
-
* A visual row index.
|
25
|
-
*
|
26
|
-
* @type {number}
|
27
|
-
*/
|
28
|
-
row = null;
|
29
|
-
/**
|
30
|
-
* A visual column index.
|
31
|
-
*
|
32
|
-
* @type {number}
|
33
|
-
*/
|
34
|
-
col = null;
|
35
|
-
/**
|
36
|
-
* @type {boolean}
|
37
|
-
*/
|
38
|
-
#isRtl = false;
|
39
35
|
constructor(row, column) {
|
40
36
|
let isRtl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
41
|
-
|
37
|
+
/**
|
38
|
+
* A visual row index.
|
39
|
+
*
|
40
|
+
* @type {number}
|
41
|
+
*/
|
42
|
+
_defineProperty(this, "row", null);
|
43
|
+
/**
|
44
|
+
* A visual column index.
|
45
|
+
*
|
46
|
+
* @type {number}
|
47
|
+
*/
|
48
|
+
_defineProperty(this, "col", null);
|
49
|
+
/**
|
50
|
+
* @type {boolean}
|
51
|
+
*/
|
52
|
+
_classPrivateFieldInitSpec(this, _isRtl, {
|
53
|
+
writable: true,
|
54
|
+
value: false
|
55
|
+
});
|
56
|
+
_classPrivateFieldSet(this, _isRtl, isRtl);
|
42
57
|
if (typeof row !== 'undefined' && typeof column !== 'undefined') {
|
43
58
|
this.row = row;
|
44
59
|
this.col = column;
|
@@ -47,26 +62,45 @@ class CellCoords {
|
|
47
62
|
|
48
63
|
/**
|
49
64
|
* Checks if the coordinates in your `CellCoords` instance are valid
|
50
|
-
* in the context of
|
65
|
+
* in the context of given table parameters.
|
51
66
|
*
|
52
67
|
* The `row` index:
|
53
|
-
* -
|
54
|
-
* -
|
68
|
+
* - Must be an integer.
|
69
|
+
* - Must be higher than the number of column headers in the table.
|
70
|
+
* - Must be lower than the total number of rows in the table.
|
55
71
|
*
|
56
72
|
* The `col` index:
|
57
|
-
* -
|
58
|
-
* -
|
73
|
+
* - Must be an integer.
|
74
|
+
* - Must be higher than the number of row headers in the table.
|
75
|
+
* - Must be lower than the total number of columns in the table.
|
59
76
|
*
|
60
|
-
* @param {
|
77
|
+
* @param {object} [tableParams] An object with a defined table size.
|
78
|
+
* @param {number} [tableParams.countRows=0] The total number of rows.
|
79
|
+
* @param {number} [tableParams.countCols=0] The total number of columns.
|
80
|
+
* @param {number} [tableParams.countRowHeaders=0] A number of row headers.
|
81
|
+
* @param {number} [tableParams.countColHeaders=0] A number of column headers.
|
61
82
|
* @returns {boolean} `true`: The coordinates are valid.
|
62
83
|
*/
|
63
|
-
isValid(
|
64
|
-
|
65
|
-
|
84
|
+
isValid(tableParams) {
|
85
|
+
const {
|
86
|
+
countRows,
|
87
|
+
countCols,
|
88
|
+
countRowHeaders,
|
89
|
+
countColHeaders
|
90
|
+
} = {
|
91
|
+
countRows: 0,
|
92
|
+
countCols: 0,
|
93
|
+
countRowHeaders: 0,
|
94
|
+
countColHeaders: 0,
|
95
|
+
...tableParams
|
96
|
+
};
|
97
|
+
if (!Number.isInteger(this.row) || !Number.isInteger(this.col)) {
|
66
98
|
return false;
|
67
99
|
}
|
68
|
-
|
69
|
-
|
100
|
+
if (this.row < -countColHeaders || this.col < -countRowHeaders) {
|
101
|
+
return false;
|
102
|
+
}
|
103
|
+
if (this.row >= countRows || this.col >= countCols) {
|
70
104
|
return false;
|
71
105
|
}
|
72
106
|
return true;
|
@@ -86,6 +120,26 @@ class CellCoords {
|
|
86
120
|
return this.row === cellCoords.row && this.col === cellCoords.col;
|
87
121
|
}
|
88
122
|
|
123
|
+
/**
|
124
|
+
* Checks if the coordinates point to the headers range. If one of the axis (row or col) point to
|
125
|
+
* the header (negative value) then method returns `true`.
|
126
|
+
*
|
127
|
+
* @returns {boolean}
|
128
|
+
*/
|
129
|
+
isHeader() {
|
130
|
+
return !this.isCell();
|
131
|
+
}
|
132
|
+
|
133
|
+
/**
|
134
|
+
* Checks if the coordinates point to the cells range. If all axis (row and col) point to
|
135
|
+
* the cell (positive value) then method returns `true`.
|
136
|
+
*
|
137
|
+
* @returns {boolean}
|
138
|
+
*/
|
139
|
+
isCell() {
|
140
|
+
return this.row >= 0 && this.col >= 0;
|
141
|
+
}
|
142
|
+
|
89
143
|
/**
|
90
144
|
* Checks if another set of coordinates (`testedCoords`)
|
91
145
|
* is south-east of the coordinates in your `CellCoords` instance.
|
@@ -94,7 +148,7 @@ class CellCoords {
|
|
94
148
|
* @returns {boolean}
|
95
149
|
*/
|
96
150
|
isSouthEastOf(testedCoords) {
|
97
|
-
return this.row >= testedCoords.row && (this
|
151
|
+
return this.row >= testedCoords.row && (_classPrivateFieldGet(this, _isRtl) ? this.col <= testedCoords.col : this.col >= testedCoords.col);
|
98
152
|
}
|
99
153
|
|
100
154
|
/**
|
@@ -105,7 +159,7 @@ class CellCoords {
|
|
105
159
|
* @returns {boolean}
|
106
160
|
*/
|
107
161
|
isNorthWestOf(testedCoords) {
|
108
|
-
return this.row <= testedCoords.row && (this
|
162
|
+
return this.row <= testedCoords.row && (_classPrivateFieldGet(this, _isRtl) ? this.col >= testedCoords.col : this.col <= testedCoords.col);
|
109
163
|
}
|
110
164
|
|
111
165
|
/**
|
@@ -116,7 +170,7 @@ class CellCoords {
|
|
116
170
|
* @returns {boolean}
|
117
171
|
*/
|
118
172
|
isSouthWestOf(testedCoords) {
|
119
|
-
return this.row >= testedCoords.row && (this
|
173
|
+
return this.row >= testedCoords.row && (_classPrivateFieldGet(this, _isRtl) ? this.col >= testedCoords.col : this.col <= testedCoords.col);
|
120
174
|
}
|
121
175
|
|
122
176
|
/**
|
@@ -127,7 +181,7 @@ class CellCoords {
|
|
127
181
|
* @returns {boolean}
|
128
182
|
*/
|
129
183
|
isNorthEastOf(testedCoords) {
|
130
|
-
return this.row <= testedCoords.row && (this
|
184
|
+
return this.row <= testedCoords.row && (_classPrivateFieldGet(this, _isRtl) ? this.col <= testedCoords.col : this.col >= testedCoords.col);
|
131
185
|
}
|
132
186
|
|
133
187
|
/**
|
@@ -149,7 +203,7 @@ class CellCoords {
|
|
149
203
|
* @returns {CellCoords}
|
150
204
|
*/
|
151
205
|
clone() {
|
152
|
-
return new CellCoords(this.row, this.col, this
|
206
|
+
return new CellCoords(this.row, this.col, _classPrivateFieldGet(this, _isRtl));
|
153
207
|
}
|
154
208
|
|
155
209
|
/**
|
@@ -1,3 +1,15 @@
|
|
1
|
+
import "core-js/modules/es.error.cause.js";
|
2
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
3
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
4
|
+
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; }
|
5
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
6
|
+
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); }
|
7
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
8
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
9
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
10
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
11
|
+
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; } }
|
12
|
+
var _isRtl = /*#__PURE__*/new WeakMap();
|
1
13
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
2
14
|
/**
|
3
15
|
* @description
|
@@ -17,25 +29,28 @@
|
|
17
29
|
* ```
|
18
30
|
*/
|
19
31
|
class CellCoords {
|
20
|
-
/**
|
21
|
-
* A visual row index.
|
22
|
-
*
|
23
|
-
* @type {number}
|
24
|
-
*/
|
25
|
-
row = null;
|
26
|
-
/**
|
27
|
-
* A visual column index.
|
28
|
-
*
|
29
|
-
* @type {number}
|
30
|
-
*/
|
31
|
-
col = null;
|
32
|
-
/**
|
33
|
-
* @type {boolean}
|
34
|
-
*/
|
35
|
-
#isRtl = false;
|
36
32
|
constructor(row, column) {
|
37
33
|
let isRtl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
38
|
-
|
34
|
+
/**
|
35
|
+
* A visual row index.
|
36
|
+
*
|
37
|
+
* @type {number}
|
38
|
+
*/
|
39
|
+
_defineProperty(this, "row", null);
|
40
|
+
/**
|
41
|
+
* A visual column index.
|
42
|
+
*
|
43
|
+
* @type {number}
|
44
|
+
*/
|
45
|
+
_defineProperty(this, "col", null);
|
46
|
+
/**
|
47
|
+
* @type {boolean}
|
48
|
+
*/
|
49
|
+
_classPrivateFieldInitSpec(this, _isRtl, {
|
50
|
+
writable: true,
|
51
|
+
value: false
|
52
|
+
});
|
53
|
+
_classPrivateFieldSet(this, _isRtl, isRtl);
|
39
54
|
if (typeof row !== 'undefined' && typeof column !== 'undefined') {
|
40
55
|
this.row = row;
|
41
56
|
this.col = column;
|
@@ -44,26 +59,45 @@ class CellCoords {
|
|
44
59
|
|
45
60
|
/**
|
46
61
|
* Checks if the coordinates in your `CellCoords` instance are valid
|
47
|
-
* in the context of
|
62
|
+
* in the context of given table parameters.
|
48
63
|
*
|
49
64
|
* The `row` index:
|
50
|
-
* -
|
51
|
-
* -
|
65
|
+
* - Must be an integer.
|
66
|
+
* - Must be higher than the number of column headers in the table.
|
67
|
+
* - Must be lower than the total number of rows in the table.
|
52
68
|
*
|
53
69
|
* The `col` index:
|
54
|
-
* -
|
55
|
-
* -
|
70
|
+
* - Must be an integer.
|
71
|
+
* - Must be higher than the number of row headers in the table.
|
72
|
+
* - Must be lower than the total number of columns in the table.
|
56
73
|
*
|
57
|
-
* @param {
|
74
|
+
* @param {object} [tableParams] An object with a defined table size.
|
75
|
+
* @param {number} [tableParams.countRows=0] The total number of rows.
|
76
|
+
* @param {number} [tableParams.countCols=0] The total number of columns.
|
77
|
+
* @param {number} [tableParams.countRowHeaders=0] A number of row headers.
|
78
|
+
* @param {number} [tableParams.countColHeaders=0] A number of column headers.
|
58
79
|
* @returns {boolean} `true`: The coordinates are valid.
|
59
80
|
*/
|
60
|
-
isValid(
|
61
|
-
|
62
|
-
|
81
|
+
isValid(tableParams) {
|
82
|
+
const {
|
83
|
+
countRows,
|
84
|
+
countCols,
|
85
|
+
countRowHeaders,
|
86
|
+
countColHeaders
|
87
|
+
} = {
|
88
|
+
countRows: 0,
|
89
|
+
countCols: 0,
|
90
|
+
countRowHeaders: 0,
|
91
|
+
countColHeaders: 0,
|
92
|
+
...tableParams
|
93
|
+
};
|
94
|
+
if (!Number.isInteger(this.row) || !Number.isInteger(this.col)) {
|
63
95
|
return false;
|
64
96
|
}
|
65
|
-
|
66
|
-
|
97
|
+
if (this.row < -countColHeaders || this.col < -countRowHeaders) {
|
98
|
+
return false;
|
99
|
+
}
|
100
|
+
if (this.row >= countRows || this.col >= countCols) {
|
67
101
|
return false;
|
68
102
|
}
|
69
103
|
return true;
|
@@ -83,6 +117,26 @@ class CellCoords {
|
|
83
117
|
return this.row === cellCoords.row && this.col === cellCoords.col;
|
84
118
|
}
|
85
119
|
|
120
|
+
/**
|
121
|
+
* Checks if the coordinates point to the headers range. If one of the axis (row or col) point to
|
122
|
+
* the header (negative value) then method returns `true`.
|
123
|
+
*
|
124
|
+
* @returns {boolean}
|
125
|
+
*/
|
126
|
+
isHeader() {
|
127
|
+
return !this.isCell();
|
128
|
+
}
|
129
|
+
|
130
|
+
/**
|
131
|
+
* Checks if the coordinates point to the cells range. If all axis (row and col) point to
|
132
|
+
* the cell (positive value) then method returns `true`.
|
133
|
+
*
|
134
|
+
* @returns {boolean}
|
135
|
+
*/
|
136
|
+
isCell() {
|
137
|
+
return this.row >= 0 && this.col >= 0;
|
138
|
+
}
|
139
|
+
|
86
140
|
/**
|
87
141
|
* Checks if another set of coordinates (`testedCoords`)
|
88
142
|
* is south-east of the coordinates in your `CellCoords` instance.
|
@@ -91,7 +145,7 @@ class CellCoords {
|
|
91
145
|
* @returns {boolean}
|
92
146
|
*/
|
93
147
|
isSouthEastOf(testedCoords) {
|
94
|
-
return this.row >= testedCoords.row && (this
|
148
|
+
return this.row >= testedCoords.row && (_classPrivateFieldGet(this, _isRtl) ? this.col <= testedCoords.col : this.col >= testedCoords.col);
|
95
149
|
}
|
96
150
|
|
97
151
|
/**
|
@@ -102,7 +156,7 @@ class CellCoords {
|
|
102
156
|
* @returns {boolean}
|
103
157
|
*/
|
104
158
|
isNorthWestOf(testedCoords) {
|
105
|
-
return this.row <= testedCoords.row && (this
|
159
|
+
return this.row <= testedCoords.row && (_classPrivateFieldGet(this, _isRtl) ? this.col >= testedCoords.col : this.col <= testedCoords.col);
|
106
160
|
}
|
107
161
|
|
108
162
|
/**
|
@@ -113,7 +167,7 @@ class CellCoords {
|
|
113
167
|
* @returns {boolean}
|
114
168
|
*/
|
115
169
|
isSouthWestOf(testedCoords) {
|
116
|
-
return this.row >= testedCoords.row && (this
|
170
|
+
return this.row >= testedCoords.row && (_classPrivateFieldGet(this, _isRtl) ? this.col >= testedCoords.col : this.col <= testedCoords.col);
|
117
171
|
}
|
118
172
|
|
119
173
|
/**
|
@@ -124,7 +178,7 @@ class CellCoords {
|
|
124
178
|
* @returns {boolean}
|
125
179
|
*/
|
126
180
|
isNorthEastOf(testedCoords) {
|
127
|
-
return this.row <= testedCoords.row && (this
|
181
|
+
return this.row <= testedCoords.row && (_classPrivateFieldGet(this, _isRtl) ? this.col <= testedCoords.col : this.col >= testedCoords.col);
|
128
182
|
}
|
129
183
|
|
130
184
|
/**
|
@@ -146,7 +200,7 @@ class CellCoords {
|
|
146
200
|
* @returns {CellCoords}
|
147
201
|
*/
|
148
202
|
clone() {
|
149
|
-
return new CellCoords(this.row, this.col, this
|
203
|
+
return new CellCoords(this.row, this.col, _classPrivateFieldGet(this, _isRtl));
|
150
204
|
}
|
151
205
|
|
152
206
|
/**
|
@@ -12,8 +12,15 @@ export default class CellRange {
|
|
12
12
|
setHighlight(coords: CellCoords): CellRange;
|
13
13
|
setFrom(coords: CellCoords): CellRange;
|
14
14
|
setTo(coords: CellCoords): CellRange;
|
15
|
-
isValid(
|
16
|
-
|
15
|
+
isValid(tableParams: {
|
16
|
+
countRows?: number;
|
17
|
+
countCols?: number;
|
18
|
+
countRowHeaders?: number;
|
19
|
+
countColHeaders?: number;
|
20
|
+
}): boolean;
|
21
|
+
isSingleCell(): boolean;
|
22
|
+
isSingleHeader(): boolean;
|
23
|
+
containsHeaders(): boolean;
|
17
24
|
getOuterHeight(): number;
|
18
25
|
getOuterWidth(): number;
|
19
26
|
getHeight(): number;
|
@@ -2,8 +2,19 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
require("core-js/modules/es.array.push.js");
|
5
|
+
require("core-js/modules/es.error.cause.js");
|
5
6
|
var _coords = _interopRequireDefault(require("./../cell/coords"));
|
6
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
8
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
9
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
10
|
+
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; }
|
11
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
12
|
+
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); }
|
13
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
14
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
15
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
16
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
17
|
+
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; } }
|
7
18
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
8
19
|
/**
|
9
20
|
* @description
|
@@ -23,43 +34,47 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
23
34
|
* import Handsontable, { CellRange } from '/handsontable/base';
|
24
35
|
* ```
|
25
36
|
*/
|
37
|
+
var _isRtl = /*#__PURE__*/new WeakMap();
|
26
38
|
class CellRange {
|
27
|
-
/**
|
28
|
-
* Used to draw bold border around a cell where selection was started and to edit the cell
|
29
|
-
* when you press Enter. The highlight cannot point to headers (negative values) so its
|
30
|
-
* coordinates object is normalized while assigning.
|
31
|
-
*
|
32
|
-
* @private
|
33
|
-
* @type {CellCoords}
|
34
|
-
*/
|
35
|
-
highlight = null;
|
36
|
-
/**
|
37
|
-
* Usually the same as highlight, but in Excel there is distinction - one can change
|
38
|
-
* highlight within a selection.
|
39
|
-
*
|
40
|
-
* @private
|
41
|
-
* @type {CellCoords}
|
42
|
-
*/
|
43
|
-
from = null;
|
44
|
-
/**
|
45
|
-
* End selection.
|
46
|
-
*
|
47
|
-
* @private
|
48
|
-
* @type {CellCoords}
|
49
|
-
*/
|
50
|
-
to = null;
|
51
|
-
/**
|
52
|
-
* @type {boolean}
|
53
|
-
*/
|
54
|
-
#isRtl = false;
|
55
39
|
constructor(highlight) {
|
56
40
|
let from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : highlight;
|
57
41
|
let to = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : highlight;
|
58
42
|
let isRtl = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
59
|
-
|
43
|
+
/**
|
44
|
+
* Used to draw bold border around a cell where selection was started and to edit the cell
|
45
|
+
* when you press Enter. The highlight cannot point to headers (negative values) so its
|
46
|
+
* coordinates object is normalized while assigning.
|
47
|
+
*
|
48
|
+
* @private
|
49
|
+
* @type {CellCoords}
|
50
|
+
*/
|
51
|
+
_defineProperty(this, "highlight", null);
|
52
|
+
/**
|
53
|
+
* Usually the same as highlight, but in Excel there is distinction - one can change
|
54
|
+
* highlight within a selection.
|
55
|
+
*
|
56
|
+
* @private
|
57
|
+
* @type {CellCoords}
|
58
|
+
*/
|
59
|
+
_defineProperty(this, "from", null);
|
60
|
+
/**
|
61
|
+
* End selection.
|
62
|
+
*
|
63
|
+
* @private
|
64
|
+
* @type {CellCoords}
|
65
|
+
*/
|
66
|
+
_defineProperty(this, "to", null);
|
67
|
+
/**
|
68
|
+
* @type {boolean}
|
69
|
+
*/
|
70
|
+
_classPrivateFieldInitSpec(this, _isRtl, {
|
71
|
+
writable: true,
|
72
|
+
value: false
|
73
|
+
});
|
74
|
+
this.highlight = highlight.clone();
|
60
75
|
this.from = from.clone();
|
61
76
|
this.to = to.clone();
|
62
|
-
this
|
77
|
+
_classPrivateFieldSet(this, _isRtl, isRtl);
|
63
78
|
}
|
64
79
|
|
65
80
|
/**
|
@@ -69,7 +84,7 @@ class CellRange {
|
|
69
84
|
* @returns {CellRange}
|
70
85
|
*/
|
71
86
|
setHighlight(coords) {
|
72
|
-
this.highlight = coords.clone()
|
87
|
+
this.highlight = coords.clone();
|
73
88
|
return this;
|
74
89
|
}
|
75
90
|
|
@@ -97,26 +112,57 @@ class CellRange {
|
|
97
112
|
|
98
113
|
/**
|
99
114
|
* Checks if the coordinates in your `CellRange` instance are valid
|
100
|
-
* in the context of
|
115
|
+
* in the context of given table parameters.
|
101
116
|
*
|
102
117
|
* See the [`isValid()`](@/api/cellCoords.md#isvalid) method of the [`CellCoords`](@/api/cellCoords.md) class.
|
103
118
|
*
|
104
|
-
* @param {
|
119
|
+
* @param {object} tableParams An object with a defined table size.
|
120
|
+
* @param {number} tableParams.countRows The total number of rows.
|
121
|
+
* @param {number} tableParams.countCols The total number of columns.
|
122
|
+
* @param {number} tableParams.countRowHeaders A number of row headers.
|
123
|
+
* @param {number} tableParams.countColHeaders A number of column headers.
|
105
124
|
* @returns {boolean}
|
106
125
|
*/
|
107
|
-
isValid(
|
108
|
-
return this.from.isValid(
|
126
|
+
isValid(tableParams) {
|
127
|
+
return this.from.isValid(tableParams) && this.to.isValid(tableParams);
|
109
128
|
}
|
110
129
|
|
111
130
|
/**
|
112
|
-
* Checks if your range is just a single cell.
|
131
|
+
* Checks if your range is just a single cell or header.
|
113
132
|
*
|
114
133
|
* @returns {boolean}
|
115
134
|
*/
|
116
135
|
isSingle() {
|
136
|
+
return this.isSingleCell() || this.isSingleHeader();
|
137
|
+
}
|
138
|
+
|
139
|
+
/**
|
140
|
+
* Checks if your range is just a single cell.
|
141
|
+
*
|
142
|
+
* @returns {boolean}
|
143
|
+
*/
|
144
|
+
isSingleCell() {
|
117
145
|
return this.from.row >= 0 && this.from.row === this.to.row && this.from.col >= 0 && this.from.col === this.to.col;
|
118
146
|
}
|
119
147
|
|
148
|
+
/**
|
149
|
+
* Checks if your range is just a single header.
|
150
|
+
*
|
151
|
+
* @returns {boolean}
|
152
|
+
*/
|
153
|
+
isSingleHeader() {
|
154
|
+
return (this.from.row < 0 || this.from.col < 0) && this.from.row === this.to.row && this.from.col === this.to.col;
|
155
|
+
}
|
156
|
+
|
157
|
+
/**
|
158
|
+
* Checks if your range overlaps headers range (negative coordinates).
|
159
|
+
*
|
160
|
+
* @returns {boolean}
|
161
|
+
*/
|
162
|
+
containsHeaders() {
|
163
|
+
return this.from.isHeader() || this.to.isHeader();
|
164
|
+
}
|
165
|
+
|
120
166
|
/**
|
121
167
|
* Returns the height of your range (as a number of rows, including row headers).
|
122
168
|
*
|
@@ -452,7 +498,7 @@ class CellRange {
|
|
452
498
|
* @returns {CellCoords}
|
453
499
|
*/
|
454
500
|
getTopLeftCorner() {
|
455
|
-
return this
|
501
|
+
return _classPrivateFieldGet(this, _isRtl) ? this.getTopEndCorner() : this.getTopStartCorner();
|
456
502
|
}
|
457
503
|
|
458
504
|
/**
|
@@ -477,7 +523,7 @@ class CellRange {
|
|
477
523
|
* @returns {CellCoords}
|
478
524
|
*/
|
479
525
|
getBottomRightCorner() {
|
480
|
-
return this
|
526
|
+
return _classPrivateFieldGet(this, _isRtl) ? this.getBottomStartCorner() : this.getBottomEndCorner();
|
481
527
|
}
|
482
528
|
|
483
529
|
/**
|
@@ -502,7 +548,7 @@ class CellRange {
|
|
502
548
|
* @returns {CellCoords}
|
503
549
|
*/
|
504
550
|
getTopRightCorner() {
|
505
|
-
return this
|
551
|
+
return _classPrivateFieldGet(this, _isRtl) ? this.getTopStartCorner() : this.getTopEndCorner();
|
506
552
|
}
|
507
553
|
|
508
554
|
/**
|
@@ -527,7 +573,7 @@ class CellRange {
|
|
527
573
|
* @returns {CellCoords}
|
528
574
|
*/
|
529
575
|
getBottomLeftCorner() {
|
530
|
-
return this
|
576
|
+
return _classPrivateFieldGet(this, _isRtl) ? this.getBottomEndCorner() : this.getBottomStartCorner();
|
531
577
|
}
|
532
578
|
|
533
579
|
/**
|
@@ -552,7 +598,7 @@ class CellRange {
|
|
552
598
|
* @returns {CellCoords}
|
553
599
|
*/
|
554
600
|
getOuterTopLeftCorner() {
|
555
|
-
return this
|
601
|
+
return _classPrivateFieldGet(this, _isRtl) ? this.getOuterTopEndCorner() : this.getOuterTopStartCorner();
|
556
602
|
}
|
557
603
|
|
558
604
|
/**
|
@@ -577,7 +623,7 @@ class CellRange {
|
|
577
623
|
* @returns {CellCoords}
|
578
624
|
*/
|
579
625
|
getOuterBottomRightCorner() {
|
580
|
-
return this
|
626
|
+
return _classPrivateFieldGet(this, _isRtl) ? this.getOuterBottomStartCorner() : this.getOuterBottomEndCorner();
|
581
627
|
}
|
582
628
|
|
583
629
|
/**
|
@@ -602,7 +648,7 @@ class CellRange {
|
|
602
648
|
* @returns {CellCoords}
|
603
649
|
*/
|
604
650
|
getOuterTopRightCorner() {
|
605
|
-
return this
|
651
|
+
return _classPrivateFieldGet(this, _isRtl) ? this.getOuterTopStartCorner() : this.getOuterTopEndCorner();
|
606
652
|
}
|
607
653
|
|
608
654
|
/**
|
@@ -627,7 +673,7 @@ class CellRange {
|
|
627
673
|
* @returns {CellCoords}
|
628
674
|
*/
|
629
675
|
getOuterBottomLeftCorner() {
|
630
|
-
return this
|
676
|
+
return _classPrivateFieldGet(this, _isRtl) ? this.getOuterBottomEndCorner() : this.getOuterBottomStartCorner();
|
631
677
|
}
|
632
678
|
|
633
679
|
/**
|
@@ -796,7 +842,7 @@ class CellRange {
|
|
796
842
|
* @returns {CellRange}
|
797
843
|
*/
|
798
844
|
clone() {
|
799
|
-
return new CellRange(this.highlight, this.from, this.to, this
|
845
|
+
return new CellRange(this.highlight, this.from, this.to, _classPrivateFieldGet(this, _isRtl));
|
800
846
|
}
|
801
847
|
|
802
848
|
/**
|
@@ -830,7 +876,7 @@ class CellRange {
|
|
830
876
|
* @returns {CellCoords}
|
831
877
|
*/
|
832
878
|
_createCellCoords(row, column) {
|
833
|
-
return new _coords.default(row, column, this
|
879
|
+
return new _coords.default(row, column, _classPrivateFieldGet(this, _isRtl));
|
834
880
|
}
|
835
881
|
}
|
836
882
|
var _default = CellRange;
|