handsontable 11.1.0 → 12.1.0
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/border.js +120 -98
- package/3rdparty/walkontable/src/border.mjs +120 -94
- package/3rdparty/walkontable/src/cell/coords.js +59 -17
- package/3rdparty/walkontable/src/cell/coords.mjs +55 -17
- package/3rdparty/walkontable/src/cell/range.d.ts +10 -2
- package/3rdparty/walkontable/src/cell/range.js +278 -99
- package/3rdparty/walkontable/src/cell/range.mjs +273 -99
- package/3rdparty/walkontable/src/core/_base.js +452 -0
- package/3rdparty/walkontable/src/core/_base.mjs +440 -0
- package/3rdparty/walkontable/src/core/clone.js +97 -0
- package/3rdparty/walkontable/src/core/clone.mjs +80 -0
- package/3rdparty/walkontable/src/core/core.js +183 -0
- package/3rdparty/walkontable/src/core/core.mjs +160 -0
- package/3rdparty/walkontable/src/event.js +99 -66
- package/3rdparty/walkontable/src/event.mjs +99 -63
- package/3rdparty/walkontable/src/facade/core.js +251 -0
- package/3rdparty/walkontable/src/facade/core.mjs +243 -0
- package/3rdparty/walkontable/src/index.js +2 -46
- package/3rdparty/walkontable/src/index.mjs +3 -13
- package/3rdparty/walkontable/src/overlay/_base.js +124 -57
- package/3rdparty/walkontable/src/overlay/_base.mjs +124 -57
- package/3rdparty/walkontable/src/overlay/bottom.js +96 -80
- package/3rdparty/walkontable/src/overlay/bottom.mjs +96 -80
- package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.js → bottomInlineStartCorner.js} +45 -62
- package/3rdparty/walkontable/src/overlay/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +44 -61
- package/3rdparty/walkontable/src/overlay/constants.js +25 -9
- package/3rdparty/walkontable/src/overlay/constants.mjs +14 -4
- package/3rdparty/walkontable/src/overlay/index.js +10 -19
- package/3rdparty/walkontable/src/overlay/index.mjs +4 -5
- package/3rdparty/walkontable/src/overlay/{left.js → inlineStart.js} +113 -82
- package/3rdparty/walkontable/src/overlay/{left.mjs → inlineStart.mjs} +112 -81
- package/3rdparty/walkontable/src/overlay/top.js +93 -68
- package/3rdparty/walkontable/src/overlay/top.mjs +93 -68
- package/3rdparty/walkontable/src/overlay/{topLeftCorner.js → topInlineStartCorner.js} +56 -57
- package/3rdparty/walkontable/src/overlay/{topLeftCorner.mjs → topInlineStartCorner.mjs} +51 -52
- package/3rdparty/walkontable/src/overlays.js +225 -156
- package/3rdparty/walkontable/src/overlays.mjs +224 -154
- package/3rdparty/walkontable/src/renderer/cells.js +4 -3
- package/3rdparty/walkontable/src/renderer/cells.mjs +4 -3
- package/3rdparty/walkontable/src/renderer/colGroup.js +2 -2
- package/3rdparty/walkontable/src/renderer/colGroup.mjs +2 -2
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +2 -2
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -2
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +2 -2
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +2 -2
- package/3rdparty/walkontable/src/renderer/rows.js +2 -2
- package/3rdparty/walkontable/src/renderer/rows.mjs +2 -2
- package/3rdparty/walkontable/src/scroll.js +125 -104
- package/3rdparty/walkontable/src/scroll.mjs +124 -104
- package/3rdparty/walkontable/src/selection.js +10 -14
- package/3rdparty/walkontable/src/selection.mjs +10 -12
- package/3rdparty/walkontable/src/settings.js +235 -126
- package/3rdparty/walkontable/src/settings.mjs +235 -125
- package/3rdparty/walkontable/src/table/bottom.js +16 -5
- package/3rdparty/walkontable/src/table/bottom.mjs +15 -5
- package/3rdparty/walkontable/src/table/{bottomLeftCorner.js → bottomInlineStartCorner.js} +27 -15
- package/3rdparty/walkontable/src/table/{bottomLeftCorner.mjs → bottomInlineStartCorner.mjs} +26 -15
- package/3rdparty/walkontable/src/table/{left.js → inlineStart.js} +23 -15
- package/3rdparty/walkontable/src/table/{left.mjs → inlineStart.mjs} +22 -15
- package/3rdparty/walkontable/src/table/master.js +22 -12
- package/3rdparty/walkontable/src/table/master.mjs +22 -12
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +12 -6
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +12 -6
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +12 -6
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +12 -6
- package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.js → stickyColumnsStart.js} +13 -7
- package/3rdparty/walkontable/src/table/mixin/{stickyColumnsLeft.mjs → stickyColumnsStart.mjs} +13 -7
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +11 -5
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +11 -5
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -3
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -3
- package/3rdparty/walkontable/src/table/top.js +16 -5
- package/3rdparty/walkontable/src/table/top.mjs +15 -5
- package/3rdparty/walkontable/src/table/{topLeftCorner.js → topInlineStartCorner.js} +27 -15
- package/3rdparty/walkontable/src/table/{topLeftCorner.mjs → topInlineStartCorner.mjs} +26 -15
- package/3rdparty/walkontable/src/table.js +235 -140
- package/3rdparty/walkontable/src/table.mjs +231 -134
- package/3rdparty/walkontable/src/types.js +103 -0
- package/3rdparty/walkontable/src/types.mjs +102 -0
- package/3rdparty/walkontable/src/utils/column.js +22 -33
- package/3rdparty/walkontable/src/utils/column.mjs +22 -30
- package/3rdparty/walkontable/src/utils/orderView/sharedView.js +2 -2
- package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +2 -2
- package/3rdparty/walkontable/src/utils/row.js +9 -4
- package/3rdparty/walkontable/src/utils/row.mjs +9 -4
- package/3rdparty/walkontable/src/viewport.js +89 -100
- package/3rdparty/walkontable/src/viewport.mjs +89 -97
- package/CHANGELOG.md +92 -0
- package/LICENSE.txt +1 -1
- package/README.md +0 -1
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/cellTypes/timeType/timeType.d.ts +6 -6
- package/cellTypes/timeType/timeType.js +4 -5
- package/cellTypes/timeType/timeType.mjs +4 -5
- package/core.d.ts +6 -1
- package/core.js +508 -80
- package/core.mjs +517 -92
- package/dataMap/index.js +4 -0
- package/dataMap/index.mjs +2 -1
- package/dataMap/metaManager/index.js +2 -2
- package/dataMap/metaManager/index.mjs +2 -2
- package/dataMap/metaManager/metaLayers/globalMeta.js +4 -0
- package/dataMap/metaManager/metaLayers/globalMeta.mjs +4 -0
- package/dataMap/metaManager/metaLayers/tableMeta.js +2 -2
- package/dataMap/metaManager/metaLayers/tableMeta.mjs +2 -2
- package/dataMap/metaManager/metaSchema.js +282 -187
- package/dataMap/metaManager/metaSchema.mjs +282 -187
- package/dataMap/metaManager/mods/extendMetaProperties.js +126 -0
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +113 -0
- package/dataMap/replaceData.js +3 -17
- package/dataMap/replaceData.mjs +3 -17
- package/dist/handsontable.css +268 -92
- package/dist/handsontable.full.css +269 -103
- package/dist/handsontable.full.js +41990 -35658
- package/dist/handsontable.full.min.css +9 -9
- package/dist/handsontable.full.min.js +144 -144
- package/dist/handsontable.js +29561 -25597
- package/dist/handsontable.min.css +8 -8
- package/dist/handsontable.min.js +4 -4
- package/dist/languages/all.js +131 -34
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/ar-AR.js +167 -0
- package/dist/languages/ar-AR.min.js +1 -0
- package/dist/languages/cs-CZ.js +167 -0
- package/dist/languages/cs-CZ.min.js +1 -0
- package/dist/languages/de-CH.js +31 -29
- package/dist/languages/de-CH.min.js +1 -1
- package/dist/languages/de-DE.js +4 -2
- package/dist/languages/de-DE.min.js +1 -1
- package/dist/languages/en-US.js +4 -2
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/es-MX.js +4 -2
- package/dist/languages/es-MX.min.js +1 -1
- package/dist/languages/fr-FR.js +4 -2
- package/dist/languages/fr-FR.min.js +1 -1
- package/dist/languages/it-IT.js +4 -2
- package/dist/languages/it-IT.min.js +1 -1
- package/dist/languages/ja-JP.js +36 -38
- package/dist/languages/ja-JP.min.js +1 -1
- package/dist/languages/ko-KR.js +36 -39
- package/dist/languages/ko-KR.min.js +1 -1
- package/dist/languages/lv-LV.js +2 -2
- package/dist/languages/lv-LV.min.js +1 -1
- package/dist/languages/nb-NO.js +2 -2
- package/dist/languages/nb-NO.min.js +1 -1
- package/dist/languages/nl-NL.js +2 -2
- package/dist/languages/nl-NL.min.js +1 -1
- package/dist/languages/pl-PL.js +2 -2
- package/dist/languages/pl-PL.min.js +1 -1
- package/dist/languages/pt-BR.js +2 -2
- package/dist/languages/pt-BR.min.js +1 -1
- package/dist/languages/ru-RU.js +2 -2
- package/dist/languages/ru-RU.min.js +1 -1
- package/dist/languages/sr-SP.js +171 -0
- package/dist/languages/sr-SP.min.js +1 -0
- package/dist/languages/zh-CN.js +24 -24
- package/dist/languages/zh-CN.min.js +1 -1
- package/dist/languages/zh-TW.js +24 -24
- package/dist/languages/zh-TW.min.js +1 -1
- package/editorManager.js +120 -267
- package/editorManager.mjs +128 -278
- package/editors/autocompleteEditor/autocompleteEditor.js +22 -25
- package/editors/autocompleteEditor/autocompleteEditor.mjs +22 -25
- package/editors/baseEditor/baseEditor.js +205 -34
- package/editors/baseEditor/baseEditor.mjs +200 -32
- package/editors/checkboxEditor/checkboxEditor.js +2 -2
- package/editors/checkboxEditor/checkboxEditor.mjs +2 -2
- package/editors/dateEditor/dateEditor.js +21 -8
- package/editors/dateEditor/dateEditor.mjs +22 -9
- package/editors/dropdownEditor/dropdownEditor.js +3 -3
- package/editors/dropdownEditor/dropdownEditor.mjs +3 -3
- package/editors/handsontableEditor/handsontableEditor.js +106 -55
- package/editors/handsontableEditor/handsontableEditor.mjs +106 -55
- package/editors/index.d.ts +3 -0
- package/editors/index.js +6 -0
- package/editors/index.mjs +3 -1
- package/editors/numericEditor/numericEditor.js +2 -2
- package/editors/numericEditor/numericEditor.mjs +2 -2
- package/editors/passwordEditor/passwordEditor.js +3 -3
- package/editors/passwordEditor/passwordEditor.mjs +3 -3
- package/editors/selectEditor/selectEditor.js +65 -110
- package/editors/selectEditor/selectEditor.mjs +66 -109
- package/editors/textEditor/caretPositioner.js +49 -0
- package/editors/textEditor/caretPositioner.mjs +42 -0
- package/editors/textEditor/textEditor.js +205 -181
- package/editors/textEditor/textEditor.mjs +199 -179
- package/editors/timeEditor/index.d.ts +1 -0
- package/editors/timeEditor/index.js +9 -0
- package/editors/timeEditor/index.mjs +1 -0
- package/editors/timeEditor/timeEditor.d.ts +7 -0
- package/editors/timeEditor/timeEditor.js +105 -0
- package/editors/timeEditor/timeEditor.mjs +84 -0
- package/eventManager.js +4 -2
- package/eventManager.mjs +4 -2
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/i18n/languages/ar-AR.js +41 -0
- package/i18n/languages/ar-AR.mjs +17 -0
- package/i18n/languages/cs-CZ.js +40 -0
- package/i18n/languages/cs-CZ.mjs +16 -0
- package/i18n/languages/index.js +12 -0
- package/i18n/languages/index.mjs +4 -1
- package/i18n/languages/sr-SP.js +40 -0
- package/i18n/languages/sr-SP.mjs +16 -0
- package/index.d.ts +4 -0
- package/languages/all.js +131 -34
- package/languages/ar-AR.js +167 -0
- package/languages/ar-AR.mjs +19 -0
- package/languages/cs-CZ.js +167 -0
- package/languages/cs-CZ.mjs +18 -0
- package/languages/de-CH.js +31 -29
- package/languages/de-DE.js +4 -2
- package/languages/en-US.js +4 -2
- package/languages/es-MX.js +4 -2
- package/languages/fr-FR.js +4 -2
- package/languages/index.js +131 -34
- package/languages/index.mjs +4 -1
- package/languages/it-IT.js +4 -2
- package/languages/ja-JP.js +36 -38
- package/languages/ko-KR.js +36 -39
- package/languages/lv-LV.js +2 -2
- package/languages/nb-NO.js +2 -2
- package/languages/nl-NL.js +2 -2
- package/languages/pl-PL.js +2 -2
- package/languages/pt-BR.js +2 -2
- package/languages/ru-RU.js +2 -2
- package/languages/sr-SP.js +171 -0
- package/languages/sr-SP.mjs +18 -0
- package/languages/zh-CN.js +24 -24
- package/languages/zh-TW.js +24 -24
- package/package.json +44 -4
- package/pluginHooks.js +49 -13
- package/pluginHooks.mjs +49 -13
- package/plugins/autoColumnSize/autoColumnSize.js +15 -10
- package/plugins/autoColumnSize/autoColumnSize.mjs +15 -10
- package/plugins/autoRowSize/autoRowSize.js +14 -9
- package/plugins/autoRowSize/autoRowSize.mjs +14 -9
- package/plugins/autofill/autofill.js +49 -33
- package/plugins/autofill/autofill.mjs +49 -32
- package/plugins/autofill/utils.js +10 -11
- package/plugins/autofill/utils.mjs +10 -10
- package/plugins/base/base.d.ts +8 -2
- package/plugins/base/base.js +67 -4
- package/plugins/base/base.mjs +66 -4
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +3 -3
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -3
- package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +3 -3
- package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +3 -3
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +3 -3
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +3 -3
- package/plugins/collapsibleColumns/collapsibleColumns.js +27 -9
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +27 -9
- package/plugins/columnSorting/columnSorting.js +5 -7
- package/plugins/columnSorting/columnSorting.mjs +5 -6
- package/plugins/columnSummary/columnSummary.js +3 -3
- package/plugins/columnSummary/columnSummary.mjs +3 -3
- package/plugins/comments/commentEditor.js +18 -2
- package/plugins/comments/commentEditor.mjs +19 -3
- package/plugins/comments/comments.js +57 -46
- package/plugins/comments/comments.mjs +58 -46
- package/plugins/contextMenu/contextMenu.js +10 -6
- package/plugins/contextMenu/contextMenu.mjs +10 -6
- package/plugins/contextMenu/menu.js +222 -110
- package/plugins/contextMenu/menu.mjs +219 -111
- package/plugins/contextMenu/predefinedItems/columnLeft.js +12 -4
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +11 -4
- package/plugins/contextMenu/predefinedItems/columnRight.js +9 -9
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +9 -9
- package/plugins/contextMenu/utils.js +2 -2
- package/plugins/contextMenu/utils.mjs +2 -2
- package/plugins/copyPaste/copyPaste.js +31 -21
- package/plugins/copyPaste/copyPaste.mjs +30 -21
- package/plugins/customBorders/contextMenuItem/left.js +4 -3
- package/plugins/customBorders/contextMenuItem/left.mjs +4 -3
- package/plugins/customBorders/contextMenuItem/right.js +4 -3
- package/plugins/customBorders/contextMenuItem/right.mjs +4 -3
- package/plugins/customBorders/customBorders.js +144 -87
- package/plugins/customBorders/customBorders.mjs +143 -85
- package/plugins/customBorders/utils.js +131 -27
- package/plugins/customBorders/utils.mjs +115 -27
- package/plugins/dragToScroll/dragToScroll.js +10 -5
- package/plugins/dragToScroll/dragToScroll.mjs +10 -5
- package/plugins/dropdownMenu/dropdownMenu.js +9 -7
- package/plugins/dropdownMenu/dropdownMenu.mjs +9 -7
- package/plugins/exportFile/exportFile.js +2 -2
- package/plugins/exportFile/exportFile.mjs +2 -2
- package/plugins/exportFile/types/csv.js +2 -2
- package/plugins/exportFile/types/csv.mjs +2 -2
- package/plugins/filters/component/actionBar.js +2 -2
- package/plugins/filters/component/actionBar.mjs +2 -2
- package/plugins/filters/component/condition.js +3 -3
- package/plugins/filters/component/condition.mjs +3 -3
- package/plugins/filters/component/operators.js +2 -2
- package/plugins/filters/component/operators.mjs +2 -2
- package/plugins/filters/component/value.js +3 -3
- package/plugins/filters/component/value.mjs +3 -3
- package/plugins/filters/filters.js +11 -8
- package/plugins/filters/filters.mjs +11 -8
- package/plugins/filters/ui/input.js +3 -3
- package/plugins/filters/ui/input.mjs +3 -3
- package/plugins/filters/ui/link.js +3 -3
- package/plugins/filters/ui/link.mjs +3 -3
- package/plugins/filters/ui/multipleSelect.js +18 -31
- package/plugins/filters/ui/multipleSelect.mjs +18 -31
- package/plugins/filters/ui/radioInput.js +3 -3
- package/plugins/filters/ui/radioInput.mjs +3 -3
- package/plugins/filters/ui/select.js +4 -4
- package/plugins/filters/ui/select.mjs +4 -4
- package/plugins/formulas/formulas.js +14 -9
- package/plugins/formulas/formulas.mjs +14 -9
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +2 -4
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +2 -4
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +5 -5
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +5 -5
- package/plugins/hiddenColumns/hiddenColumns.js +9 -4
- package/plugins/hiddenColumns/hiddenColumns.mjs +9 -4
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +2 -4
- package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +2 -4
- package/plugins/hiddenRows/contextMenuItem/showRow.js +5 -5
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +5 -5
- package/plugins/hiddenRows/hiddenRows.js +9 -4
- package/plugins/hiddenRows/hiddenRows.mjs +9 -4
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +54 -15
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +49 -15
- package/plugins/manualColumnMove/manualColumnMove.js +70 -70
- package/plugins/manualColumnMove/manualColumnMove.mjs +71 -71
- package/plugins/manualColumnMove/ui/_base.js +25 -12
- package/plugins/manualColumnMove/ui/_base.mjs +24 -12
- package/plugins/manualColumnMove/ui/backlight.js +3 -3
- package/plugins/manualColumnMove/ui/backlight.mjs +3 -3
- package/plugins/manualColumnMove/ui/guideline.js +3 -3
- package/plugins/manualColumnMove/ui/guideline.mjs +3 -3
- package/plugins/manualColumnResize/manualColumnResize.js +37 -21
- package/plugins/manualColumnResize/manualColumnResize.mjs +37 -21
- package/plugins/manualRowMove/manualRowMove.js +26 -34
- package/plugins/manualRowMove/manualRowMove.mjs +26 -34
- package/plugins/manualRowMove/ui/backlight.js +3 -3
- package/plugins/manualRowMove/ui/backlight.mjs +3 -3
- package/plugins/manualRowMove/ui/guideline.js +3 -3
- package/plugins/manualRowMove/ui/guideline.mjs +3 -3
- package/plugins/manualRowResize/manualRowResize.js +34 -19
- package/plugins/manualRowResize/manualRowResize.mjs +34 -19
- package/plugins/mergeCells/calculations/autofill.js +6 -5
- package/plugins/mergeCells/calculations/autofill.mjs +6 -4
- package/plugins/mergeCells/calculations/selection.js +9 -4
- package/plugins/mergeCells/calculations/selection.mjs +9 -4
- package/plugins/mergeCells/cellCoords.js +16 -4
- package/plugins/mergeCells/cellCoords.mjs +16 -3
- package/plugins/mergeCells/cellsCollection.js +30 -23
- package/plugins/mergeCells/cellsCollection.mjs +30 -22
- package/plugins/mergeCells/mergeCells.js +94 -61
- package/plugins/mergeCells/mergeCells.mjs +94 -59
- package/plugins/multiColumnSorting/multiColumnSorting.js +4 -6
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +4 -5
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +51 -57
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +52 -57
- package/plugins/nestedHeaders/nestedHeaders.js +31 -20
- package/plugins/nestedHeaders/nestedHeaders.mjs +31 -20
- package/plugins/nestedHeaders/stateManager/utils.js +3 -4
- package/plugins/nestedHeaders/stateManager/utils.mjs +3 -4
- package/plugins/nestedHeaders/utils/ghostTable.js +114 -75
- package/plugins/nestedHeaders/utils/ghostTable.mjs +114 -74
- package/plugins/nestedRows/nestedRows.js +9 -4
- package/plugins/nestedRows/nestedRows.mjs +9 -4
- package/plugins/nestedRows/ui/collapsing.js +2 -2
- package/plugins/nestedRows/ui/collapsing.mjs +2 -2
- package/plugins/nestedRows/ui/contextMenu.js +2 -2
- package/plugins/nestedRows/ui/contextMenu.mjs +2 -2
- package/plugins/nestedRows/ui/headers.js +2 -2
- package/plugins/nestedRows/ui/headers.mjs +2 -2
- package/plugins/nestedRows/utils/rowMoveController.js +2 -4
- package/plugins/nestedRows/utils/rowMoveController.mjs +2 -3
- package/plugins/persistentState/persistentState.js +9 -4
- package/plugins/persistentState/persistentState.mjs +9 -4
- package/plugins/search/search.js +9 -4
- package/plugins/search/search.mjs +9 -4
- package/plugins/touchScroll/touchScroll.js +27 -21
- package/plugins/touchScroll/touchScroll.mjs +27 -21
- package/plugins/trimRows/trimRows.js +9 -4
- package/plugins/trimRows/trimRows.mjs +9 -4
- package/plugins/undoRedo/undoRedo.js +53 -47
- package/plugins/undoRedo/undoRedo.mjs +53 -46
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -3
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +1 -2
- package/renderers/checkboxRenderer/checkboxRenderer.js +48 -43
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +48 -41
- package/renderers/index.d.ts +4 -1
- package/renderers/index.js +6 -0
- package/renderers/index.mjs +3 -1
- package/renderers/numericRenderer/numericRenderer.js +1 -0
- package/renderers/numericRenderer/numericRenderer.mjs +1 -0
- package/renderers/timeRenderer/index.d.ts +1 -0
- package/renderers/timeRenderer/index.js +9 -0
- package/renderers/timeRenderer/index.mjs +1 -0
- package/renderers/timeRenderer/timeRenderer.d.ts +5 -0
- package/renderers/timeRenderer/timeRenderer.js +31 -0
- package/renderers/timeRenderer/timeRenderer.mjs +20 -0
- package/selection/highlight/visualSelection.js +94 -220
- package/selection/highlight/visualSelection.mjs +91 -213
- package/selection/mouseEventHandler.js +15 -10
- package/selection/mouseEventHandler.mjs +15 -9
- package/selection/range.js +4 -5
- package/selection/range.mjs +4 -5
- package/selection/selection.js +35 -22
- package/selection/selection.mjs +35 -20
- package/selection/transformation.js +4 -6
- package/selection/transformation.mjs +4 -5
- package/settings.d.ts +3 -1
- package/shortcuts/context.d.ts +20 -0
- package/shortcuts/context.js +296 -0
- package/shortcuts/context.mjs +268 -0
- package/shortcuts/index.d.ts +1 -0
- package/shortcuts/index.js +8 -0
- package/shortcuts/index.mjs +1 -0
- package/shortcuts/keyObserver.js +67 -0
- package/shortcuts/keyObserver.mjs +58 -0
- package/shortcuts/manager.d.ts +10 -0
- package/shortcuts/manager.js +185 -0
- package/shortcuts/manager.mjs +176 -0
- package/shortcuts/recorder.js +192 -0
- package/shortcuts/recorder.mjs +180 -0
- package/shortcuts/utils.js +77 -0
- package/shortcuts/utils.mjs +54 -0
- package/tableView.js +164 -84
- package/tableView.mjs +164 -74
- package/translations/changesObservable/observer.js +0 -1
- package/translations/changesObservable/observer.mjs +0 -1
- package/translations/indexMapper.d.ts +3 -1
- package/translations/indexMapper.js +89 -11
- package/translations/indexMapper.mjs +91 -20
- package/translations/mapCollections/aggregatedCollection.js +2 -2
- package/translations/mapCollections/aggregatedCollection.mjs +2 -2
- package/translations/maps/hidingMap.js +4 -2
- package/translations/maps/hidingMap.mjs +4 -2
- package/translations/maps/indexMap.js +2 -0
- package/translations/maps/indexMap.mjs +2 -0
- package/translations/maps/indexesSequence.js +5 -3
- package/translations/maps/indexesSequence.mjs +5 -3
- package/translations/maps/linkedPhysicalIndexToValueMap.js +5 -3
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +5 -3
- package/translations/maps/physicalIndexToValueMap.js +5 -3
- package/translations/maps/physicalIndexToValueMap.mjs +5 -3
- package/translations/maps/trimmingMap.js +4 -2
- package/translations/maps/trimmingMap.mjs +4 -2
- package/utils/dataStructures/uniqueMap.js +14 -1
- package/utils/dataStructures/uniqueMap.mjs +14 -1
- package/utils/dataStructures/uniqueSet.js +9 -0
- package/utils/dataStructures/uniqueSet.mjs +9 -0
- package/utils/ghostTable.js +1 -1
- package/utils/ghostTable.mjs +1 -1
- package/3rdparty/walkontable/src/core.js +0 -309
- package/3rdparty/walkontable/src/core.mjs +0 -293
- package/3rdparty/walkontable/src/overlay/registerer.js +0 -70
- package/3rdparty/walkontable/src/overlay/registerer.mjs +0 -57
- package/utils/keyStateObserver.js +0 -121
- package/utils/keyStateObserver.mjs +0 -103
@@ -12,22 +12,6 @@ import "core-js/modules/es.symbol.iterator.js";
|
|
12
12
|
import "core-js/modules/es.array.iterator.js";
|
13
13
|
import "core-js/modules/es.string.iterator.js";
|
14
14
|
import "core-js/modules/web.dom-collections.iterator.js";
|
15
|
-
import "core-js/modules/es.array.slice.js";
|
16
|
-
import "core-js/modules/es.function.name.js";
|
17
|
-
import "core-js/modules/es.array.from.js";
|
18
|
-
import "core-js/modules/es.regexp.exec.js";
|
19
|
-
|
20
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
21
|
-
|
22
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
23
|
-
|
24
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
25
|
-
|
26
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
27
|
-
|
28
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
29
|
-
|
30
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
31
15
|
|
32
16
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
33
17
|
|
@@ -35,13 +19,13 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
|
|
35
19
|
|
36
20
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
37
21
|
|
38
|
-
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
22
|
+
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
39
23
|
|
40
24
|
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
41
25
|
|
42
26
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
43
27
|
|
44
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf
|
28
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
45
29
|
|
46
30
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
47
31
|
|
@@ -51,26 +35,30 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
|
|
51
35
|
|
52
36
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
53
37
|
|
54
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
38
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
39
|
+
|
40
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
55
41
|
|
56
|
-
import { Selection
|
42
|
+
import { Selection } from "./../../3rdparty/walkontable/src/index.mjs";
|
57
43
|
|
58
44
|
var VisualSelection = /*#__PURE__*/function (_Selection) {
|
59
45
|
_inherits(VisualSelection, _Selection);
|
60
46
|
|
61
47
|
var _super = _createSuper(VisualSelection);
|
62
48
|
|
49
|
+
/**
|
50
|
+
* Range of selection visually. Visual representation may have representation in a rendered selection.
|
51
|
+
*
|
52
|
+
* @type {null|CellRange}
|
53
|
+
*/
|
63
54
|
function VisualSelection(settings, visualCellRange) {
|
64
55
|
var _this;
|
65
56
|
|
66
57
|
_classCallCheck(this, VisualSelection);
|
67
58
|
|
68
59
|
_this = _super.call(this, settings, null);
|
69
|
-
|
70
|
-
|
71
|
-
*
|
72
|
-
* @type {null|CellRange}
|
73
|
-
*/
|
60
|
+
|
61
|
+
_defineProperty(_assertThisInitialized(_this), "visualCellRange", null);
|
74
62
|
|
75
63
|
_this.visualCellRange = visualCellRange || null;
|
76
64
|
|
@@ -90,7 +78,7 @@ var VisualSelection = /*#__PURE__*/function (_Selection) {
|
|
90
78
|
key: "add",
|
91
79
|
value: function add(coords) {
|
92
80
|
if (this.visualCellRange === null) {
|
93
|
-
this.visualCellRange =
|
81
|
+
this.visualCellRange = this.settings.createCellRange(coords);
|
94
82
|
} else {
|
95
83
|
this.visualCellRange.expand(coords);
|
96
84
|
}
|
@@ -110,146 +98,95 @@ var VisualSelection = /*#__PURE__*/function (_Selection) {
|
|
110
98
|
return _get(_getPrototypeOf(VisualSelection.prototype), "clear", this).call(this);
|
111
99
|
}
|
112
100
|
/**
|
113
|
-
*
|
101
|
+
* Trims the passed cell range object by removing all coordinates that points to the hidden rows
|
102
|
+
* or columns. The result is a new cell range object that points only to the visible indexes or `null`.
|
114
103
|
*
|
115
104
|
* @private
|
116
|
-
* @param {
|
117
|
-
*
|
118
|
-
* @param {CellCoords} endCoords Visual end coordinates for the range.
|
119
|
-
* @param {number} incrementByRow We are searching for a next visible rows by increasing (to be precise, or decreasing) indexes.
|
120
|
-
* This variable represent indexes shift. We are looking for an index:
|
121
|
-
* - for rows: from the left to the right (increasing indexes, then variable should have value 1) or
|
122
|
-
* other way around (decreasing indexes, then variable should have the value -1)
|
123
|
-
* - for columns: from the top to the bottom (increasing indexes, then variable should have value 1)
|
124
|
-
* or other way around (decreasing indexes, then variable should have the value -1).
|
125
|
-
* @param {number} incrementByColumn As above, just indexes shift for columns.
|
126
|
-
* @returns {null|CellCoords} Visual cell coordinates.
|
105
|
+
* @param {CellRange} cellRange Cells range object to be trimmed.
|
106
|
+
* @returns {CellRange} Visual non-hidden cells range coordinates.
|
127
107
|
*/
|
128
108
|
|
129
109
|
}, {
|
130
|
-
key: "
|
131
|
-
value: function
|
132
|
-
var
|
133
|
-
|
134
|
-
|
135
|
-
|
110
|
+
key: "trimToVisibleCellsRangeOnly",
|
111
|
+
value: function trimToVisibleCellsRangeOnly(_ref) {
|
112
|
+
var from = _ref.from,
|
113
|
+
to = _ref.to;
|
114
|
+
var visibleFromCoords = this.getNearestNotHiddenCoords(from, 1);
|
115
|
+
var visibleToCoords = this.getNearestNotHiddenCoords(to, -1);
|
116
|
+
|
117
|
+
if (visibleFromCoords === null || visibleToCoords === null) {
|
136
118
|
return null;
|
137
119
|
}
|
138
120
|
|
139
|
-
|
121
|
+
if (visibleFromCoords.row > visibleToCoords.row || visibleFromCoords.col > visibleToCoords.col) {
|
122
|
+
var isHeaderTypeSelection = this.settings.type === 'header' || this.settings.type === 'active-header';
|
140
123
|
|
141
|
-
|
142
|
-
|
124
|
+
if (!isHeaderTypeSelection) {
|
125
|
+
return null;
|
126
|
+
}
|
127
|
+
|
128
|
+
visibleFromCoords = from;
|
129
|
+
visibleToCoords = to;
|
143
130
|
}
|
144
131
|
|
145
|
-
return
|
132
|
+
return this.settings.createCellRange(visibleFromCoords, visibleFromCoords, visibleToCoords);
|
146
133
|
}
|
147
134
|
/**
|
148
|
-
*
|
135
|
+
* Gets nearest coordinates that points to the visible row and column indexes. If there are no visible
|
136
|
+
* rows and/or columns the `null` value is returned.
|
149
137
|
*
|
150
138
|
* @private
|
151
|
-
* @param {CellCoords}
|
152
|
-
*
|
153
|
-
*
|
154
|
-
* @param {
|
155
|
-
* @
|
156
|
-
* indexes. This variable represent indexes shift. From the left to the right (increasing indexes, then variable
|
157
|
-
* should have value 1) or other way around (decreasing indexes, then variable should have the value -1).
|
158
|
-
* @returns {number|null} The visual row index.
|
139
|
+
* @param {CellCoords} coords The coords object as starting point for finding the nearest visible coordinates.
|
140
|
+
* @param {1|-1} rowSearchDirection The search direction. For value 1, it means searching from top to bottom for
|
141
|
+
* rows and from left to right for columns. For -1, it is the other way around.
|
142
|
+
* @param {1|-1} columnSearchDirection The same as above but for rows.
|
143
|
+
* @returns {CellCoords|null} Visual cell coordinates.
|
159
144
|
*/
|
160
145
|
|
161
146
|
}, {
|
162
|
-
key: "
|
163
|
-
value: function
|
164
|
-
var
|
165
|
-
|
166
|
-
col: -1
|
167
|
-
}),
|
168
|
-
startRowRenderable = _this$settings$visual.row; // There are no more visual rows in the range.
|
169
|
-
|
147
|
+
key: "getNearestNotHiddenCoords",
|
148
|
+
value: function getNearestNotHiddenCoords(coords, rowSearchDirection) {
|
149
|
+
var columnSearchDirection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : rowSearchDirection;
|
150
|
+
var nextVisibleRow = this.getNearestNotHiddenIndex(this.settings.rowIndexMapper(), coords.row, rowSearchDirection); // There are no more visual rows in the range.
|
170
151
|
|
171
|
-
if (
|
152
|
+
if (nextVisibleRow === null) {
|
172
153
|
return null;
|
173
|
-
}
|
174
|
-
|
154
|
+
}
|
175
155
|
|
176
|
-
|
177
|
-
return this.findVisibleCoordsInRowsRange(startVisibleRow + incrementBy, endVisibleRow, incrementBy);
|
178
|
-
} // We found visible row index in the range.
|
156
|
+
var nextVisibleColumn = this.getNearestNotHiddenIndex(this.settings.columnIndexMapper(), coords.col, columnSearchDirection); // There are no more visual columns in the range.
|
179
157
|
|
158
|
+
if (nextVisibleColumn === null) {
|
159
|
+
return null;
|
160
|
+
}
|
180
161
|
|
181
|
-
return
|
162
|
+
return this.settings.createCellCoords(nextVisibleRow, nextVisibleColumn);
|
182
163
|
}
|
183
164
|
/**
|
184
|
-
*
|
165
|
+
* Gets nearest visual index. If there are no visible rows or columns the `null` value is returned.
|
185
166
|
*
|
186
167
|
* @private
|
187
|
-
* @param {
|
188
|
-
*
|
189
|
-
*
|
190
|
-
*
|
191
|
-
* @
|
192
|
-
* indexes. This variable represent indexes shift. From the top to the bottom (increasing indexes, then variable
|
193
|
-
* should have value 1) or other way around (decreasing indexes, then variable should have the value -1).
|
194
|
-
* @returns {number|null} The visual column index.
|
168
|
+
* @param {IndexMapper} indexMapper The IndexMapper instance for specific axis.
|
169
|
+
* @param {number} visualIndex The index as starting point for finding the nearest visible index.
|
170
|
+
* @param {1|-1} searchDirection The search direction. For value 1, it means searching from top to bottom for
|
171
|
+
* rows and from left to right for columns. For -1, it is the other way around.
|
172
|
+
* @returns {number|null} Visual row/column index.
|
195
173
|
*/
|
196
174
|
|
197
175
|
}, {
|
198
|
-
key: "
|
199
|
-
value: function
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
}),
|
204
|
-
startColumnRenderable = _this$settings$visual2.col; // There are no more visual columns in the range.
|
205
|
-
|
206
|
-
|
207
|
-
if (endVisibleColumn === startVisibleColumn && startColumnRenderable === null) {
|
208
|
-
return null;
|
209
|
-
} // We are looking for a next visible column in the range.
|
210
|
-
|
211
|
-
|
212
|
-
if (startColumnRenderable === null) {
|
213
|
-
return this.findVisibleCoordsInColumnsRange(startVisibleColumn + incrementBy, endVisibleColumn, incrementBy);
|
214
|
-
} // We found visible column index in the range.
|
215
|
-
|
176
|
+
key: "getNearestNotHiddenIndex",
|
177
|
+
value: function getNearestNotHiddenIndex(indexMapper, visualIndex, searchDirection) {
|
178
|
+
if (visualIndex < 0) {
|
179
|
+
return visualIndex;
|
180
|
+
}
|
216
181
|
|
217
|
-
|
218
|
-
|
219
|
-
/**
|
220
|
-
* Searches the nearest visible column and row index, which is not hidden (is renderable). If one
|
221
|
-
* of the axes' range is entirely hidden, then created CellCoords object will hold the `null` value
|
222
|
-
* under a specific axis. For example, when we select the hidden column, then the calculated `col`
|
223
|
-
* prop will be `null`. In that case, rows are calculated further (regardless of the column result)
|
224
|
-
* to make rows header highlightable.
|
225
|
-
*
|
226
|
-
* @private
|
227
|
-
* @param {CellCoords} visualFromCoords Visual start coordinates for the range. Starting point for finding destination coordinates
|
228
|
-
* with visible coordinates (we are going from the starting coordinates to the end coordinates until the criteria are met).
|
229
|
-
* @param {CellCoords} visualToCoords Visual end coordinates for the range.
|
230
|
-
* @param {number} incrementByRow We are searching for a next visible rows by increasing (to be precise, or decreasing) indexes.
|
231
|
-
* This variable represent indexes shift. We are looking for an index:
|
232
|
-
* - for rows: from the left to the right (increasing indexes, then variable should have value 1) or
|
233
|
-
* other way around (decreasing indexes, then variable should have the value -1)
|
234
|
-
* - for columns: from the top to the bottom (increasing indexes, then variable should have value 1)
|
235
|
-
* or other way around (decreasing indexes, then variable should have the value -1).
|
236
|
-
* @param {number} incrementByColumn As above, just indexes shift for columns.
|
237
|
-
* @returns {CellCoords[]|null} Visual cell coordinates.
|
238
|
-
*/
|
182
|
+
var nearestVisualIndex = indexMapper.getNearestNotHiddenIndex(visualIndex, searchDirection);
|
183
|
+
var isHeaderSelectionType = this.settings.type === 'header' || this.settings.type === 'active-header';
|
239
184
|
|
240
|
-
|
241
|
-
|
242
|
-
value: function findVisibleHeaderRange(visualFromCoords, visualToCoords, incrementByRow, incrementByColumn) {
|
243
|
-
var fromRangeVisualRow = this.findVisibleCoordsInRowsRange(visualFromCoords.row, visualToCoords.row, incrementByRow);
|
244
|
-
var toRangeVisualRow = this.findVisibleCoordsInRowsRange(visualToCoords.row, visualFromCoords.row, -incrementByRow);
|
245
|
-
var fromRangeVisualColumn = this.findVisibleCoordsInColumnsRange(visualFromCoords.col, visualToCoords.col, incrementByColumn);
|
246
|
-
var toRangeVisualColumn = this.findVisibleCoordsInColumnsRange(visualToCoords.col, visualFromCoords.col, -incrementByColumn); // All rows and columns ranges are hidden.
|
247
|
-
|
248
|
-
if (fromRangeVisualRow === null && toRangeVisualRow === null && fromRangeVisualColumn === null && toRangeVisualColumn === null) {
|
249
|
-
return null;
|
185
|
+
if (isHeaderSelectionType && nearestVisualIndex === null) {
|
186
|
+
return -1;
|
250
187
|
}
|
251
188
|
|
252
|
-
return
|
189
|
+
return nearestVisualIndex;
|
253
190
|
}
|
254
191
|
/**
|
255
192
|
* Override internally stored visual indexes added by the Selection's `add` function. It should be executed
|
@@ -266,39 +203,18 @@ var VisualSelection = /*#__PURE__*/function (_Selection) {
|
|
266
203
|
return this;
|
267
204
|
}
|
268
205
|
|
269
|
-
var
|
270
|
-
visualFromCoords = _this$visualCellRange.from,
|
271
|
-
visualToCoords = _this$visualCellRange.to; // We may move in two different directions while searching for visible rows and visible columns.
|
206
|
+
var trimmedCellRange = this.trimToVisibleCellsRangeOnly(this.visualCellRange); // There is no visual start point (and also visual end point) in the range.
|
272
207
|
|
273
|
-
|
274
|
-
|
275
|
-
var fromRangeVisual = this.findVisibleCoordsInRange(visualFromCoords, visualToCoords, incrementByRow, incrementByColumn);
|
276
|
-
var toRangeVisual = this.findVisibleCoordsInRange(visualToCoords, visualFromCoords, -incrementByRow, -incrementByColumn); // There is no visual start point (and also visual end point) in the range.
|
277
|
-
// We are looking for the first visible cell in a broader range.
|
278
|
-
|
279
|
-
if (fromRangeVisual === null || toRangeVisual === null) {
|
280
|
-
var isHeaderSelectionType = this.settings.type === 'header';
|
281
|
-
var cellRange = null; // For the "header" selection type, find rows and column indexes, which should be
|
282
|
-
// highlighted, although one of the axes is completely hidden.
|
283
|
-
|
284
|
-
if (isHeaderSelectionType) {
|
285
|
-
var _this$findVisibleHead = this.findVisibleHeaderRange(visualFromCoords, visualToCoords, incrementByRow, incrementByColumn),
|
286
|
-
_this$findVisibleHead2 = _slicedToArray(_this$findVisibleHead, 2),
|
287
|
-
fromRangeVisualHeader = _this$findVisibleHead2[0],
|
288
|
-
toRangeVisualHeader = _this$findVisibleHead2[1];
|
289
|
-
|
290
|
-
cellRange = this.createRenderableCellRange(fromRangeVisualHeader, toRangeVisualHeader);
|
291
|
-
}
|
292
|
-
|
293
|
-
this.cellRange = cellRange;
|
208
|
+
if (trimmedCellRange === null) {
|
209
|
+
this.cellRange = null;
|
294
210
|
} else {
|
295
|
-
this.cellRange = this.createRenderableCellRange(
|
211
|
+
this.cellRange = this.createRenderableCellRange(trimmedCellRange.from, trimmedCellRange.to);
|
296
212
|
}
|
297
213
|
|
298
214
|
return this;
|
299
215
|
}
|
300
216
|
/**
|
301
|
-
* Some selection may be a part of broader cell range. This function
|
217
|
+
* Some selection may be a part of broader cell range. This function sync coordinates of current selection
|
302
218
|
* and the broader cell range when needed (current selection can't be presented visually).
|
303
219
|
*
|
304
220
|
* @param {CellRange} broaderCellRange Visual range. Actual cell range may be contained in the broader cell range.
|
@@ -310,20 +226,17 @@ var VisualSelection = /*#__PURE__*/function (_Selection) {
|
|
310
226
|
*/
|
311
227
|
|
312
228
|
}, {
|
313
|
-
key: "
|
314
|
-
value: function
|
315
|
-
|
316
|
-
var
|
317
|
-
var
|
318
|
-
|
319
|
-
|
320
|
-
var singleCellRangeVisual = this.findVisibleCoordsInRange(normFromCoords, normToCoords, incrementByRow, incrementByColumn);
|
321
|
-
|
322
|
-
if (singleCellRangeVisual !== null) {
|
229
|
+
key: "syncWith",
|
230
|
+
value: function syncWith(broaderCellRange) {
|
231
|
+
var rowDirection = broaderCellRange.getVerticalDirection() === 'N-S' ? 1 : -1;
|
232
|
+
var columnDirection = broaderCellRange.getHorizontalDirection() === 'W-E' ? 1 : -1;
|
233
|
+
var singleCellRangeVisual = this.getNearestNotHiddenCoords(broaderCellRange.from.clone().normalize(), rowDirection, columnDirection);
|
234
|
+
|
235
|
+
if (singleCellRangeVisual !== null && broaderCellRange.overlaps(singleCellRangeVisual)) {
|
323
236
|
// We can't show selection visually now, but we found fist visible range in the broader cell range.
|
324
237
|
if (this.cellRange === null) {
|
325
238
|
var singleCellRangeRenderable = this.settings.visualToRenderableCoords(singleCellRangeVisual);
|
326
|
-
this.cellRange =
|
239
|
+
this.cellRange = this.settings.createCellRange(singleCellRangeRenderable);
|
327
240
|
} // We set new highlight as it might change (for example, when showing/hiding some cells from the broader selection range)
|
328
241
|
// TODO: It is also handled by the `MergeCells` plugin while adjusting already modified coordinates. Should it?
|
329
242
|
|
@@ -353,12 +266,13 @@ var VisualSelection = /*#__PURE__*/function (_Selection) {
|
|
353
266
|
to = _this$cellRange.to;
|
354
267
|
var isRowUndefined = from.row === null || to.row === null;
|
355
268
|
var isColumnUndefined = from.col === null || to.col === null;
|
356
|
-
var topLeftCorner =
|
357
|
-
var bottomRightCorner =
|
269
|
+
var topLeftCorner = this.settings.createCellCoords(isRowUndefined ? null : Math.min(from.row, to.row), isColumnUndefined ? null : Math.min(from.col, to.col));
|
270
|
+
var bottomRightCorner = this.settings.createCellCoords(isRowUndefined ? null : Math.max(from.row, to.row), isColumnUndefined ? null : Math.max(from.col, to.col));
|
358
271
|
return [topLeftCorner.row, topLeftCorner.col, bottomRightCorner.row, bottomRightCorner.col];
|
359
272
|
}
|
360
273
|
/**
|
361
|
-
* Returns the top left (
|
274
|
+
* Returns the top left (or top right in RTL) and bottom right (or bottom left in RTL) selection
|
275
|
+
* coordinates (visual indexes).
|
362
276
|
*
|
363
277
|
* @returns {Array} Returns array of coordinates for example `[1, 1, 5, 5]`.
|
364
278
|
*/
|
@@ -366,16 +280,16 @@ var VisualSelection = /*#__PURE__*/function (_Selection) {
|
|
366
280
|
}, {
|
367
281
|
key: "getVisualCorners",
|
368
282
|
value: function getVisualCorners() {
|
369
|
-
var
|
370
|
-
var
|
371
|
-
return [
|
283
|
+
var topStart = this.settings.renderableToVisualCoords(this.cellRange.getTopStartCorner());
|
284
|
+
var bottomEnd = this.settings.renderableToVisualCoords(this.cellRange.getBottomEndCorner());
|
285
|
+
return [topStart.row, topStart.col, bottomEnd.row, bottomEnd.col];
|
372
286
|
}
|
373
287
|
/**
|
374
288
|
* Creates a new CellRange object based on visual coordinates which before object creation are
|
375
289
|
* translated to renderable indexes.
|
376
290
|
*
|
377
291
|
* @param {CellCoords} visualFromCoords The CellCoords object which contains coordinates that
|
378
|
-
* points to the
|
292
|
+
* points to the beginning of the selection.
|
379
293
|
* @param {CellCoords} visualToCoords The CellCoords object which contains coordinates that
|
380
294
|
* points to the end of the selection.
|
381
295
|
* @returns {CellRange}
|
@@ -386,43 +300,7 @@ var VisualSelection = /*#__PURE__*/function (_Selection) {
|
|
386
300
|
value: function createRenderableCellRange(visualFromCoords, visualToCoords) {
|
387
301
|
var renderableFromCoords = this.settings.visualToRenderableCoords(visualFromCoords);
|
388
302
|
var renderableToCoords = this.settings.visualToRenderableCoords(visualToCoords);
|
389
|
-
return
|
390
|
-
}
|
391
|
-
/**
|
392
|
-
* It returns rows shift needed for searching visual row.
|
393
|
-
*
|
394
|
-
* @private
|
395
|
-
* @param {CellRange} cellRange Selection range.
|
396
|
-
* @returns {number} Rows shift. It return 1 when we should increase indexes (moving from the top to the bottom) or
|
397
|
-
* -1 when we should decrease indexes (moving other way around).
|
398
|
-
*/
|
399
|
-
|
400
|
-
}, {
|
401
|
-
key: "getRowSearchDirection",
|
402
|
-
value: function getRowSearchDirection(cellRange) {
|
403
|
-
if (cellRange.from.row < cellRange.to.row) {
|
404
|
-
return 1; // Increasing row indexes.
|
405
|
-
}
|
406
|
-
|
407
|
-
return -1; // Decreasing row indexes.
|
408
|
-
}
|
409
|
-
/**
|
410
|
-
* It returns columns shift needed for searching visual column.
|
411
|
-
*
|
412
|
-
* @private
|
413
|
-
* @param {CellRange} cellRange Selection range.
|
414
|
-
* @returns {number} Columns shift. It return 1 when we should increase indexes (moving from the left to the right) or
|
415
|
-
* -1 when we should decrease indexes (moving other way around).
|
416
|
-
*/
|
417
|
-
|
418
|
-
}, {
|
419
|
-
key: "getColumnSearchDirection",
|
420
|
-
value: function getColumnSearchDirection(cellRange) {
|
421
|
-
if (cellRange.from.col < cellRange.to.col) {
|
422
|
-
return 1; // Increasing column indexes.
|
423
|
-
}
|
424
|
-
|
425
|
-
return -1; // Decreasing column indexes.
|
303
|
+
return this.settings.createCellRange(renderableFromCoords, renderableFromCoords, renderableToCoords);
|
426
304
|
}
|
427
305
|
}]);
|
428
306
|
|
@@ -17,8 +17,6 @@ require("core-js/modules/web.dom-collections.iterator.js");
|
|
17
17
|
|
18
18
|
var _event = require("./../helpers/dom/event");
|
19
19
|
|
20
|
-
var _src = require("./../3rdparty/walkontable/src");
|
21
|
-
|
22
20
|
/**
|
23
21
|
* MouseDown handler.
|
24
22
|
*
|
@@ -30,6 +28,7 @@ var _src = require("./../3rdparty/walkontable/src");
|
|
30
28
|
* @param {Selection} options.selection The Selection class instance.
|
31
29
|
* @param {object} options.controller An object with keys `row`, `column`, `cell` which indicate what
|
32
30
|
* operation will be performed in later selection stages.
|
31
|
+
* @param {Function} options.cellCoordsFactory The function factory for CellCoords objects.
|
33
32
|
*/
|
34
33
|
function mouseDown(_ref) {
|
35
34
|
var isShiftKey = _ref.isShiftKey,
|
@@ -37,7 +36,8 @@ function mouseDown(_ref) {
|
|
37
36
|
isRightClick = _ref.isRightClick,
|
38
37
|
coords = _ref.coords,
|
39
38
|
selection = _ref.selection,
|
40
|
-
controller = _ref.controller
|
39
|
+
controller = _ref.controller,
|
40
|
+
cellCoordsFactory = _ref.cellCoordsFactory;
|
41
41
|
var currentSelection = selection.isSelected() ? selection.getSelectedRange().current() : null;
|
42
42
|
var selectedCorner = selection.isSelectedByCorner();
|
43
43
|
var selectedRow = selection.isSelectedByRowHeader();
|
@@ -46,11 +46,11 @@ function mouseDown(_ref) {
|
|
46
46
|
if (coords.row >= 0 && coords.col >= 0 && !controller.cell) {
|
47
47
|
selection.setRangeEnd(coords);
|
48
48
|
} else if ((selectedCorner || selectedRow) && coords.row >= 0 && coords.col >= 0 && !controller.cell) {
|
49
|
-
selection.setRangeEnd(
|
49
|
+
selection.setRangeEnd(cellCoordsFactory(coords.row, coords.col));
|
50
50
|
} else if (selectedCorner && coords.row < 0 && !controller.column) {
|
51
|
-
selection.setRangeEnd(
|
51
|
+
selection.setRangeEnd(cellCoordsFactory(currentSelection.to.row, coords.col));
|
52
52
|
} else if (selectedRow && coords.col < 0 && !controller.row) {
|
53
|
-
selection.setRangeEnd(
|
53
|
+
selection.setRangeEnd(cellCoordsFactory(coords.row, currentSelection.to.col));
|
54
54
|
} else if ((!selectedCorner && !selectedRow && coords.col < 0 || selectedCorner && coords.col < 0) && !controller.row) {
|
55
55
|
selection.selectRows(Math.max(currentSelection.from.row, 0), coords.row, coords.col);
|
56
56
|
} else if ((!selectedCorner && !selectedRow && coords.row < 0 || selectedRow && coords.row < 0) && !controller.column) {
|
@@ -87,6 +87,7 @@ function mouseDown(_ref) {
|
|
87
87
|
* @param {Selection} options.selection The Selection class instance.
|
88
88
|
* @param {object} options.controller An object with keys `row`, `column`, `cell` which indicate what
|
89
89
|
* operation will be performed in later selection stages.
|
90
|
+
* @param {Function} options.cellCoordsFactory The function factory for CellCoords objects.
|
90
91
|
*/
|
91
92
|
|
92
93
|
|
@@ -94,7 +95,8 @@ function mouseOver(_ref2) {
|
|
94
95
|
var isLeftClick = _ref2.isLeftClick,
|
95
96
|
coords = _ref2.coords,
|
96
97
|
selection = _ref2.selection,
|
97
|
-
controller = _ref2.controller
|
98
|
+
controller = _ref2.controller,
|
99
|
+
cellCoordsFactory = _ref2.cellCoordsFactory;
|
98
100
|
|
99
101
|
if (!isLeftClick) {
|
100
102
|
return;
|
@@ -106,9 +108,9 @@ function mouseOver(_ref2) {
|
|
106
108
|
var countRows = selection.tableProps.countRows();
|
107
109
|
|
108
110
|
if (selectedColumn && !controller.column) {
|
109
|
-
selection.setRangeEnd(
|
111
|
+
selection.setRangeEnd(cellCoordsFactory(countRows - 1, coords.col));
|
110
112
|
} else if (selectedRow && !controller.row) {
|
111
|
-
selection.setRangeEnd(
|
113
|
+
selection.setRangeEnd(cellCoordsFactory(coords.row, countCols - 1));
|
112
114
|
} else if (!controller.cell) {
|
113
115
|
selection.setRangeEnd(coords);
|
114
116
|
}
|
@@ -124,16 +126,19 @@ var handlers = new Map([['mousedown', mouseDown], ['mouseover', mouseOver], ['to
|
|
124
126
|
* @param {Selection} options.selection The Selection class instance.
|
125
127
|
* @param {object} options.controller An object with keys `row`, `column`, `cell` which indicate what
|
126
128
|
* operation will be performed in later selection stages.
|
129
|
+
* @param {Function} options.cellCoordsFactory The function factory for CellCoords objects.
|
127
130
|
*/
|
128
131
|
|
129
132
|
function handleMouseEvent(event, _ref3) {
|
130
133
|
var coords = _ref3.coords,
|
131
134
|
selection = _ref3.selection,
|
132
|
-
controller = _ref3.controller
|
135
|
+
controller = _ref3.controller,
|
136
|
+
cellCoordsFactory = _ref3.cellCoordsFactory;
|
133
137
|
handlers.get(event.type)({
|
134
138
|
coords: coords,
|
135
139
|
selection: selection,
|
136
140
|
controller: controller,
|
141
|
+
cellCoordsFactory: cellCoordsFactory,
|
137
142
|
isShiftKey: event.shiftKey,
|
138
143
|
isLeftClick: (0, _event.isLeftClick)(event) || event.type === 'touchstart',
|
139
144
|
isRightClick: (0, _event.isRightClick)(event)
|
@@ -4,7 +4,6 @@ import "core-js/modules/es.object.to-string.js";
|
|
4
4
|
import "core-js/modules/es.string.iterator.js";
|
5
5
|
import "core-js/modules/web.dom-collections.iterator.js";
|
6
6
|
import { isRightClick as isRightClickEvent, isLeftClick as isLeftClickEvent } from "./../helpers/dom/event.mjs";
|
7
|
-
import { CellCoords } from "./../3rdparty/walkontable/src/index.mjs";
|
8
7
|
/**
|
9
8
|
* MouseDown handler.
|
10
9
|
*
|
@@ -16,6 +15,7 @@ import { CellCoords } from "./../3rdparty/walkontable/src/index.mjs";
|
|
16
15
|
* @param {Selection} options.selection The Selection class instance.
|
17
16
|
* @param {object} options.controller An object with keys `row`, `column`, `cell` which indicate what
|
18
17
|
* operation will be performed in later selection stages.
|
18
|
+
* @param {Function} options.cellCoordsFactory The function factory for CellCoords objects.
|
19
19
|
*/
|
20
20
|
|
21
21
|
export function mouseDown(_ref) {
|
@@ -24,7 +24,8 @@ export function mouseDown(_ref) {
|
|
24
24
|
isRightClick = _ref.isRightClick,
|
25
25
|
coords = _ref.coords,
|
26
26
|
selection = _ref.selection,
|
27
|
-
controller = _ref.controller
|
27
|
+
controller = _ref.controller,
|
28
|
+
cellCoordsFactory = _ref.cellCoordsFactory;
|
28
29
|
var currentSelection = selection.isSelected() ? selection.getSelectedRange().current() : null;
|
29
30
|
var selectedCorner = selection.isSelectedByCorner();
|
30
31
|
var selectedRow = selection.isSelectedByRowHeader();
|
@@ -33,11 +34,11 @@ export function mouseDown(_ref) {
|
|
33
34
|
if (coords.row >= 0 && coords.col >= 0 && !controller.cell) {
|
34
35
|
selection.setRangeEnd(coords);
|
35
36
|
} else if ((selectedCorner || selectedRow) && coords.row >= 0 && coords.col >= 0 && !controller.cell) {
|
36
|
-
selection.setRangeEnd(
|
37
|
+
selection.setRangeEnd(cellCoordsFactory(coords.row, coords.col));
|
37
38
|
} else if (selectedCorner && coords.row < 0 && !controller.column) {
|
38
|
-
selection.setRangeEnd(
|
39
|
+
selection.setRangeEnd(cellCoordsFactory(currentSelection.to.row, coords.col));
|
39
40
|
} else if (selectedRow && coords.col < 0 && !controller.row) {
|
40
|
-
selection.setRangeEnd(
|
41
|
+
selection.setRangeEnd(cellCoordsFactory(coords.row, currentSelection.to.col));
|
41
42
|
} else if ((!selectedCorner && !selectedRow && coords.col < 0 || selectedCorner && coords.col < 0) && !controller.row) {
|
42
43
|
selection.selectRows(Math.max(currentSelection.from.row, 0), coords.row, coords.col);
|
43
44
|
} else if ((!selectedCorner && !selectedRow && coords.row < 0 || selectedRow && coords.row < 0) && !controller.column) {
|
@@ -74,13 +75,15 @@ export function mouseDown(_ref) {
|
|
74
75
|
* @param {Selection} options.selection The Selection class instance.
|
75
76
|
* @param {object} options.controller An object with keys `row`, `column`, `cell` which indicate what
|
76
77
|
* operation will be performed in later selection stages.
|
78
|
+
* @param {Function} options.cellCoordsFactory The function factory for CellCoords objects.
|
77
79
|
*/
|
78
80
|
|
79
81
|
export function mouseOver(_ref2) {
|
80
82
|
var isLeftClick = _ref2.isLeftClick,
|
81
83
|
coords = _ref2.coords,
|
82
84
|
selection = _ref2.selection,
|
83
|
-
controller = _ref2.controller
|
85
|
+
controller = _ref2.controller,
|
86
|
+
cellCoordsFactory = _ref2.cellCoordsFactory;
|
84
87
|
|
85
88
|
if (!isLeftClick) {
|
86
89
|
return;
|
@@ -92,9 +95,9 @@ export function mouseOver(_ref2) {
|
|
92
95
|
var countRows = selection.tableProps.countRows();
|
93
96
|
|
94
97
|
if (selectedColumn && !controller.column) {
|
95
|
-
selection.setRangeEnd(
|
98
|
+
selection.setRangeEnd(cellCoordsFactory(countRows - 1, coords.col));
|
96
99
|
} else if (selectedRow && !controller.row) {
|
97
|
-
selection.setRangeEnd(
|
100
|
+
selection.setRangeEnd(cellCoordsFactory(coords.row, countCols - 1));
|
98
101
|
} else if (!controller.cell) {
|
99
102
|
selection.setRangeEnd(coords);
|
100
103
|
}
|
@@ -109,16 +112,19 @@ var handlers = new Map([['mousedown', mouseDown], ['mouseover', mouseOver], ['to
|
|
109
112
|
* @param {Selection} options.selection The Selection class instance.
|
110
113
|
* @param {object} options.controller An object with keys `row`, `column`, `cell` which indicate what
|
111
114
|
* operation will be performed in later selection stages.
|
115
|
+
* @param {Function} options.cellCoordsFactory The function factory for CellCoords objects.
|
112
116
|
*/
|
113
117
|
|
114
118
|
export function handleMouseEvent(event, _ref3) {
|
115
119
|
var coords = _ref3.coords,
|
116
120
|
selection = _ref3.selection,
|
117
|
-
controller = _ref3.controller
|
121
|
+
controller = _ref3.controller,
|
122
|
+
cellCoordsFactory = _ref3.cellCoordsFactory;
|
118
123
|
handlers.get(event.type)({
|
119
124
|
coords: coords,
|
120
125
|
selection: selection,
|
121
126
|
controller: controller,
|
127
|
+
cellCoordsFactory: cellCoordsFactory,
|
122
128
|
isShiftKey: event.shiftKey,
|
123
129
|
isLeftClick: isLeftClickEvent(event) || event.type === 'touchstart',
|
124
130
|
isRightClick: isRightClickEvent(event)
|