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
@@ -55,8 +55,6 @@ var _array = require("../../helpers/array");
|
|
55
55
|
|
56
56
|
var _eventManager = _interopRequireDefault(require("../../eventManager"));
|
57
57
|
|
58
|
-
var _src = require("../../3rdparty/walkontable/src");
|
59
|
-
|
60
58
|
var _utils = require("./utils");
|
61
59
|
|
62
60
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
@@ -87,13 +85,13 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
|
|
87
85
|
|
88
86
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
89
87
|
|
90
|
-
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); }
|
88
|
+
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); }
|
91
89
|
|
92
90
|
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
93
91
|
|
94
92
|
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); }
|
95
93
|
|
96
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf
|
94
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
97
95
|
|
98
96
|
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); }; }
|
99
97
|
|
@@ -103,7 +101,7 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
|
|
103
101
|
|
104
102
|
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; } }
|
105
103
|
|
106
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
104
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
107
105
|
|
108
106
|
_pluginHooks.default.getSingleton().register('modifyAutofillRange');
|
109
107
|
|
@@ -115,8 +113,11 @@ var PLUGIN_KEY = 'autofill';
|
|
115
113
|
exports.PLUGIN_KEY = PLUGIN_KEY;
|
116
114
|
var PLUGIN_PRIORITY = 20;
|
117
115
|
exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
|
116
|
+
var SETTING_KEYS = ['fillHandle'];
|
118
117
|
var INSERT_ROW_ALTER_ACTION_NAME = 'insert_row';
|
119
118
|
var INTERVAL_FOR_ADDING_ROW = 200;
|
119
|
+
/* eslint-disable jsdoc/require-description-complete-sentence */
|
120
|
+
|
120
121
|
/**
|
121
122
|
* This plugin provides "drag-down" and "copy-down" functionalities, both operated using the small square in the right
|
122
123
|
* bottom of the cell selection.
|
@@ -238,7 +239,11 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
238
239
|
_get(_getPrototypeOf(Autofill.prototype), "enablePlugin", this).call(this);
|
239
240
|
}
|
240
241
|
/**
|
241
|
-
* Updates the plugin state.
|
242
|
+
* Updates the plugin's state.
|
243
|
+
*
|
244
|
+
* This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:
|
245
|
+
* - `autofill`
|
246
|
+
* - [`fillHandle`](@/api/options.md#fillhandle)
|
242
247
|
*/
|
243
248
|
|
244
249
|
}, {
|
@@ -274,13 +279,13 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
274
279
|
|
275
280
|
var selection = this.hot.getSelectedRangeLast();
|
276
281
|
|
277
|
-
var _selection$
|
278
|
-
startRow = _selection$
|
279
|
-
startCol = _selection$
|
282
|
+
var _selection$getTopStar = selection.getTopStartCorner(),
|
283
|
+
startRow = _selection$getTopStar.row,
|
284
|
+
startCol = _selection$getTopStar.col;
|
280
285
|
|
281
|
-
var _selection$
|
282
|
-
endRow = _selection$
|
283
|
-
endCol = _selection$
|
286
|
+
var _selection$getBottomE = selection.getBottomEndCorner(),
|
287
|
+
endRow = _selection$getBottomE.row,
|
288
|
+
endCol = _selection$getBottomE.col;
|
284
289
|
|
285
290
|
var copyableRanges = this.hot.runHooks('modifyCopyableRange', [{
|
286
291
|
startRow: startRow,
|
@@ -327,6 +332,8 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
327
332
|
}, {
|
328
333
|
key: "fillIn",
|
329
334
|
value: function fillIn() {
|
335
|
+
var _this4 = this;
|
336
|
+
|
330
337
|
if (this.hot.selection.highlight.getFill().isEmpty()) {
|
331
338
|
return false;
|
332
339
|
} // Fill area may starts or ends with invisible cell. There won't be any information about it as highlighted
|
@@ -342,13 +349,15 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
342
349
|
fillEndColumn = _this$hot$selection$h2[3];
|
343
350
|
|
344
351
|
var selectionRangeLast = this.hot.getSelectedRangeLast();
|
345
|
-
var
|
346
|
-
var
|
352
|
+
var topStartCorner = selectionRangeLast.getTopStartCorner();
|
353
|
+
var bottomEndCorner = selectionRangeLast.getBottomEndCorner();
|
347
354
|
this.resetSelectionOfDraggedArea();
|
348
|
-
var cornersOfSelectedCells = [
|
349
|
-
var cornersOfSelectionAndDragAreas = this.hot.runHooks('modifyAutofillRange', [Math.min(
|
355
|
+
var cornersOfSelectedCells = [topStartCorner.row, topStartCorner.col, bottomEndCorner.row, bottomEndCorner.col];
|
356
|
+
var cornersOfSelectionAndDragAreas = this.hot.runHooks('modifyAutofillRange', [Math.min(topStartCorner.row, fillStartRow), Math.min(topStartCorner.col, fillStartColumn), Math.max(bottomEndCorner.row, fillEndRow), Math.max(bottomEndCorner.col, fillEndColumn)], cornersOfSelectedCells);
|
350
357
|
|
351
|
-
var _getDragDirectionAndR = (0, _utils.getDragDirectionAndRange)(cornersOfSelectedCells, cornersOfSelectionAndDragAreas)
|
358
|
+
var _getDragDirectionAndR = (0, _utils.getDragDirectionAndRange)(cornersOfSelectedCells, cornersOfSelectionAndDragAreas, function (row, column) {
|
359
|
+
return _this4.hot._createCellCoords(row, column);
|
360
|
+
}),
|
352
361
|
directionOfDrag = _getDragDirectionAndR.directionOfDrag,
|
353
362
|
startOfDragCoords = _getDragDirectionAndR.startOfDragCoords,
|
354
363
|
endOfDragCoords = _getDragDirectionAndR.endOfDragCoords;
|
@@ -356,7 +365,9 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
356
365
|
if (startOfDragCoords && startOfDragCoords.row > -1 && startOfDragCoords.col > -1) {
|
357
366
|
var selectionData = this.getSelectionData();
|
358
367
|
var sourceRange = selectionRangeLast.clone();
|
359
|
-
|
368
|
+
|
369
|
+
var targetRange = this.hot._createCellRange(startOfDragCoords, startOfDragCoords, endOfDragCoords);
|
370
|
+
|
360
371
|
var beforeAutofillHookResult = this.hot.runHooks('beforeAutofill', selectionData, sourceRange, targetRange, directionOfDrag);
|
361
372
|
|
362
373
|
if (beforeAutofillHookResult === false) {
|
@@ -438,23 +449,23 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
438
449
|
key: "getCoordsOfDragAndDropBorders",
|
439
450
|
value: function getCoordsOfDragAndDropBorders(coordsOfSelection) {
|
440
451
|
var currentSelection = this.hot.getSelectedRangeLast();
|
441
|
-
var bottomRightCorner = currentSelection.
|
452
|
+
var bottomRightCorner = currentSelection.getBottomEndCorner();
|
442
453
|
var coords = coordsOfSelection;
|
443
454
|
|
444
455
|
if (this.directions.includes(_utils.DIRECTIONS.vertical) && this.directions.includes(_utils.DIRECTIONS.horizontal)) {
|
445
|
-
var
|
456
|
+
var topStartCorner = currentSelection.getTopStartCorner();
|
446
457
|
|
447
|
-
if (bottomRightCorner.col <= coordsOfSelection.col ||
|
448
|
-
coords =
|
458
|
+
if (bottomRightCorner.col <= coordsOfSelection.col || topStartCorner.col >= coordsOfSelection.col) {
|
459
|
+
coords = this.hot._createCellCoords(bottomRightCorner.row, coordsOfSelection.col);
|
449
460
|
}
|
450
461
|
|
451
|
-
if (bottomRightCorner.row < coordsOfSelection.row ||
|
452
|
-
coords =
|
462
|
+
if (bottomRightCorner.row < coordsOfSelection.row || topStartCorner.row > coordsOfSelection.row) {
|
463
|
+
coords = this.hot._createCellCoords(coordsOfSelection.row, bottomRightCorner.col);
|
453
464
|
}
|
454
465
|
} else if (this.directions.includes(_utils.DIRECTIONS.vertical)) {
|
455
|
-
coords =
|
466
|
+
coords = this.hot._createCellCoords(coordsOfSelection.row, bottomRightCorner.col);
|
456
467
|
} else if (this.directions.includes(_utils.DIRECTIONS.horizontal)) {
|
457
|
-
coords =
|
468
|
+
coords = this.hot._createCellCoords(bottomRightCorner.row, coordsOfSelection.col);
|
458
469
|
} else {
|
459
470
|
// wrong direction
|
460
471
|
return;
|
@@ -487,12 +498,12 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
487
498
|
}, {
|
488
499
|
key: "addRow",
|
489
500
|
value: function addRow() {
|
490
|
-
var
|
501
|
+
var _this5 = this;
|
491
502
|
|
492
503
|
this.hot._registerTimeout(function () {
|
493
|
-
|
504
|
+
_this5.hot.alter(INSERT_ROW_ALTER_ACTION_NAME, void 0, 1, "".concat(_this5.pluginName, ".fill"));
|
494
505
|
|
495
|
-
|
506
|
+
_this5.addingStarted = false;
|
496
507
|
}, INTERVAL_FOR_ADDING_ROW);
|
497
508
|
}
|
498
509
|
/**
|
@@ -561,7 +572,7 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
561
572
|
}, {
|
562
573
|
key: "addSelectionFromStartAreaToSpecificRowIndex",
|
563
574
|
value: function addSelectionFromStartAreaToSpecificRowIndex(selectStartArea, rowIndex) {
|
564
|
-
this.hot.selection.highlight.getFill().clear().add(
|
575
|
+
this.hot.selection.highlight.getFill().clear().add(this.hot._createCellCoords(selectStartArea[0], selectStartArea[1])).add(this.hot._createCellCoords(rowIndex, selectStartArea[3])).commit();
|
565
576
|
}
|
566
577
|
/**
|
567
578
|
* Sets selection based on passed corners.
|
@@ -649,14 +660,14 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
649
660
|
}, {
|
650
661
|
key: "registerEvents",
|
651
662
|
value: function registerEvents() {
|
652
|
-
var
|
663
|
+
var _this6 = this;
|
653
664
|
|
654
665
|
var documentElement = this.hot.rootDocument.documentElement;
|
655
666
|
this.eventManager.addEventListener(documentElement, 'mouseup', function () {
|
656
|
-
return
|
667
|
+
return _this6.onMouseUp();
|
657
668
|
});
|
658
669
|
this.eventManager.addEventListener(documentElement, 'mousemove', function (event) {
|
659
|
-
return
|
670
|
+
return _this6.onMouseMove(event);
|
660
671
|
});
|
661
672
|
}
|
662
673
|
/**
|
@@ -787,6 +798,11 @@ var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
787
798
|
get: function get() {
|
788
799
|
return PLUGIN_PRIORITY;
|
789
800
|
}
|
801
|
+
}, {
|
802
|
+
key: "SETTING_KEYS",
|
803
|
+
get: function get() {
|
804
|
+
return [PLUGIN_KEY].concat(SETTING_KEYS);
|
805
|
+
}
|
790
806
|
}]);
|
791
807
|
|
792
808
|
return Autofill;
|
@@ -47,13 +47,13 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
|
|
47
47
|
|
48
48
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
49
49
|
|
50
|
-
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); }
|
50
|
+
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); }
|
51
51
|
|
52
52
|
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
53
53
|
|
54
54
|
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); }
|
55
55
|
|
56
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf
|
56
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
57
57
|
|
58
58
|
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); }; }
|
59
59
|
|
@@ -63,22 +63,24 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
|
|
63
63
|
|
64
64
|
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; } }
|
65
65
|
|
66
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
66
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
67
67
|
|
68
68
|
import { BasePlugin } from "../base/index.mjs";
|
69
69
|
import Hooks from "../../pluginHooks.mjs";
|
70
70
|
import { offset, outerHeight, outerWidth } from "../../helpers/dom/element.mjs";
|
71
71
|
import { arrayEach, arrayMap } from "../../helpers/array.mjs";
|
72
72
|
import EventManager from "../../eventManager.mjs";
|
73
|
-
import { CellCoords, CellRange } from "../../3rdparty/walkontable/src/index.mjs";
|
74
73
|
import { getDeltas, getDragDirectionAndRange, DIRECTIONS, getMappedFillHandleSetting } from "./utils.mjs";
|
75
74
|
Hooks.getSingleton().register('modifyAutofillRange');
|
76
75
|
Hooks.getSingleton().register('beforeAutofill');
|
77
76
|
Hooks.getSingleton().register('afterAutofill');
|
78
77
|
export var PLUGIN_KEY = 'autofill';
|
79
78
|
export var PLUGIN_PRIORITY = 20;
|
79
|
+
var SETTING_KEYS = ['fillHandle'];
|
80
80
|
var INSERT_ROW_ALTER_ACTION_NAME = 'insert_row';
|
81
81
|
var INTERVAL_FOR_ADDING_ROW = 200;
|
82
|
+
/* eslint-disable jsdoc/require-description-complete-sentence */
|
83
|
+
|
82
84
|
/**
|
83
85
|
* This plugin provides "drag-down" and "copy-down" functionalities, both operated using the small square in the right
|
84
86
|
* bottom of the cell selection.
|
@@ -200,7 +202,11 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
200
202
|
_get(_getPrototypeOf(Autofill.prototype), "enablePlugin", this).call(this);
|
201
203
|
}
|
202
204
|
/**
|
203
|
-
* Updates the plugin state.
|
205
|
+
* Updates the plugin's state.
|
206
|
+
*
|
207
|
+
* This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:
|
208
|
+
* - `autofill`
|
209
|
+
* - [`fillHandle`](@/api/options.md#fillhandle)
|
204
210
|
*/
|
205
211
|
|
206
212
|
}, {
|
@@ -236,13 +242,13 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
236
242
|
|
237
243
|
var selection = this.hot.getSelectedRangeLast();
|
238
244
|
|
239
|
-
var _selection$
|
240
|
-
startRow = _selection$
|
241
|
-
startCol = _selection$
|
245
|
+
var _selection$getTopStar = selection.getTopStartCorner(),
|
246
|
+
startRow = _selection$getTopStar.row,
|
247
|
+
startCol = _selection$getTopStar.col;
|
242
248
|
|
243
|
-
var _selection$
|
244
|
-
endRow = _selection$
|
245
|
-
endCol = _selection$
|
249
|
+
var _selection$getBottomE = selection.getBottomEndCorner(),
|
250
|
+
endRow = _selection$getBottomE.row,
|
251
|
+
endCol = _selection$getBottomE.col;
|
246
252
|
|
247
253
|
var copyableRanges = this.hot.runHooks('modifyCopyableRange', [{
|
248
254
|
startRow: startRow,
|
@@ -289,6 +295,8 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
289
295
|
}, {
|
290
296
|
key: "fillIn",
|
291
297
|
value: function fillIn() {
|
298
|
+
var _this4 = this;
|
299
|
+
|
292
300
|
if (this.hot.selection.highlight.getFill().isEmpty()) {
|
293
301
|
return false;
|
294
302
|
} // Fill area may starts or ends with invisible cell. There won't be any information about it as highlighted
|
@@ -304,13 +312,15 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
304
312
|
fillEndColumn = _this$hot$selection$h2[3];
|
305
313
|
|
306
314
|
var selectionRangeLast = this.hot.getSelectedRangeLast();
|
307
|
-
var
|
308
|
-
var
|
315
|
+
var topStartCorner = selectionRangeLast.getTopStartCorner();
|
316
|
+
var bottomEndCorner = selectionRangeLast.getBottomEndCorner();
|
309
317
|
this.resetSelectionOfDraggedArea();
|
310
|
-
var cornersOfSelectedCells = [
|
311
|
-
var cornersOfSelectionAndDragAreas = this.hot.runHooks('modifyAutofillRange', [Math.min(
|
318
|
+
var cornersOfSelectedCells = [topStartCorner.row, topStartCorner.col, bottomEndCorner.row, bottomEndCorner.col];
|
319
|
+
var cornersOfSelectionAndDragAreas = this.hot.runHooks('modifyAutofillRange', [Math.min(topStartCorner.row, fillStartRow), Math.min(topStartCorner.col, fillStartColumn), Math.max(bottomEndCorner.row, fillEndRow), Math.max(bottomEndCorner.col, fillEndColumn)], cornersOfSelectedCells);
|
312
320
|
|
313
|
-
var _getDragDirectionAndR = getDragDirectionAndRange(cornersOfSelectedCells, cornersOfSelectionAndDragAreas)
|
321
|
+
var _getDragDirectionAndR = getDragDirectionAndRange(cornersOfSelectedCells, cornersOfSelectionAndDragAreas, function (row, column) {
|
322
|
+
return _this4.hot._createCellCoords(row, column);
|
323
|
+
}),
|
314
324
|
directionOfDrag = _getDragDirectionAndR.directionOfDrag,
|
315
325
|
startOfDragCoords = _getDragDirectionAndR.startOfDragCoords,
|
316
326
|
endOfDragCoords = _getDragDirectionAndR.endOfDragCoords;
|
@@ -318,7 +328,9 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
318
328
|
if (startOfDragCoords && startOfDragCoords.row > -1 && startOfDragCoords.col > -1) {
|
319
329
|
var selectionData = this.getSelectionData();
|
320
330
|
var sourceRange = selectionRangeLast.clone();
|
321
|
-
|
331
|
+
|
332
|
+
var targetRange = this.hot._createCellRange(startOfDragCoords, startOfDragCoords, endOfDragCoords);
|
333
|
+
|
322
334
|
var beforeAutofillHookResult = this.hot.runHooks('beforeAutofill', selectionData, sourceRange, targetRange, directionOfDrag);
|
323
335
|
|
324
336
|
if (beforeAutofillHookResult === false) {
|
@@ -400,23 +412,23 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
400
412
|
key: "getCoordsOfDragAndDropBorders",
|
401
413
|
value: function getCoordsOfDragAndDropBorders(coordsOfSelection) {
|
402
414
|
var currentSelection = this.hot.getSelectedRangeLast();
|
403
|
-
var bottomRightCorner = currentSelection.
|
415
|
+
var bottomRightCorner = currentSelection.getBottomEndCorner();
|
404
416
|
var coords = coordsOfSelection;
|
405
417
|
|
406
418
|
if (this.directions.includes(DIRECTIONS.vertical) && this.directions.includes(DIRECTIONS.horizontal)) {
|
407
|
-
var
|
419
|
+
var topStartCorner = currentSelection.getTopStartCorner();
|
408
420
|
|
409
|
-
if (bottomRightCorner.col <= coordsOfSelection.col ||
|
410
|
-
coords =
|
421
|
+
if (bottomRightCorner.col <= coordsOfSelection.col || topStartCorner.col >= coordsOfSelection.col) {
|
422
|
+
coords = this.hot._createCellCoords(bottomRightCorner.row, coordsOfSelection.col);
|
411
423
|
}
|
412
424
|
|
413
|
-
if (bottomRightCorner.row < coordsOfSelection.row ||
|
414
|
-
coords =
|
425
|
+
if (bottomRightCorner.row < coordsOfSelection.row || topStartCorner.row > coordsOfSelection.row) {
|
426
|
+
coords = this.hot._createCellCoords(coordsOfSelection.row, bottomRightCorner.col);
|
415
427
|
}
|
416
428
|
} else if (this.directions.includes(DIRECTIONS.vertical)) {
|
417
|
-
coords =
|
429
|
+
coords = this.hot._createCellCoords(coordsOfSelection.row, bottomRightCorner.col);
|
418
430
|
} else if (this.directions.includes(DIRECTIONS.horizontal)) {
|
419
|
-
coords =
|
431
|
+
coords = this.hot._createCellCoords(bottomRightCorner.row, coordsOfSelection.col);
|
420
432
|
} else {
|
421
433
|
// wrong direction
|
422
434
|
return;
|
@@ -449,12 +461,12 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
449
461
|
}, {
|
450
462
|
key: "addRow",
|
451
463
|
value: function addRow() {
|
452
|
-
var
|
464
|
+
var _this5 = this;
|
453
465
|
|
454
466
|
this.hot._registerTimeout(function () {
|
455
|
-
|
467
|
+
_this5.hot.alter(INSERT_ROW_ALTER_ACTION_NAME, void 0, 1, "".concat(_this5.pluginName, ".fill"));
|
456
468
|
|
457
|
-
|
469
|
+
_this5.addingStarted = false;
|
458
470
|
}, INTERVAL_FOR_ADDING_ROW);
|
459
471
|
}
|
460
472
|
/**
|
@@ -523,7 +535,7 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
523
535
|
}, {
|
524
536
|
key: "addSelectionFromStartAreaToSpecificRowIndex",
|
525
537
|
value: function addSelectionFromStartAreaToSpecificRowIndex(selectStartArea, rowIndex) {
|
526
|
-
this.hot.selection.highlight.getFill().clear().add(
|
538
|
+
this.hot.selection.highlight.getFill().clear().add(this.hot._createCellCoords(selectStartArea[0], selectStartArea[1])).add(this.hot._createCellCoords(rowIndex, selectStartArea[3])).commit();
|
527
539
|
}
|
528
540
|
/**
|
529
541
|
* Sets selection based on passed corners.
|
@@ -611,14 +623,14 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
611
623
|
}, {
|
612
624
|
key: "registerEvents",
|
613
625
|
value: function registerEvents() {
|
614
|
-
var
|
626
|
+
var _this6 = this;
|
615
627
|
|
616
628
|
var documentElement = this.hot.rootDocument.documentElement;
|
617
629
|
this.eventManager.addEventListener(documentElement, 'mouseup', function () {
|
618
|
-
return
|
630
|
+
return _this6.onMouseUp();
|
619
631
|
});
|
620
632
|
this.eventManager.addEventListener(documentElement, 'mousemove', function (event) {
|
621
|
-
return
|
633
|
+
return _this6.onMouseMove(event);
|
622
634
|
});
|
623
635
|
}
|
624
636
|
/**
|
@@ -749,6 +761,11 @@ export var Autofill = /*#__PURE__*/function (_BasePlugin) {
|
|
749
761
|
get: function get() {
|
750
762
|
return PLUGIN_PRIORITY;
|
751
763
|
}
|
764
|
+
}, {
|
765
|
+
key: "SETTING_KEYS",
|
766
|
+
get: function get() {
|
767
|
+
return [PLUGIN_KEY].concat(SETTING_KEYS);
|
768
|
+
}
|
752
769
|
}]);
|
753
770
|
|
754
771
|
return Autofill;
|
@@ -14,8 +14,6 @@ var _object = require("../../helpers/object");
|
|
14
14
|
|
15
15
|
var _mixed = require("../../helpers/mixed");
|
16
16
|
|
17
|
-
var _src = require("../../3rdparty/walkontable/src");
|
18
|
-
|
19
17
|
var DIRECTIONS = {
|
20
18
|
horizontal: 'horizontal',
|
21
19
|
vertical: 'vertical'
|
@@ -71,31 +69,32 @@ function getDeltas(start, end, data, direction) {
|
|
71
69
|
*
|
72
70
|
* @param {Array} startSelection The coordinates where the selection starts.
|
73
71
|
* @param {Array} endSelection The coordinates where the selection ends.
|
72
|
+
* @param {Function} cellCoordsFactory The function factory for CellCoords objects.
|
74
73
|
* @returns {{direction: string, start: CellCoords, end: CellCoords}}
|
75
74
|
*/
|
76
75
|
|
77
76
|
|
78
|
-
function getDragDirectionAndRange(startSelection, endSelection) {
|
77
|
+
function getDragDirectionAndRange(startSelection, endSelection, cellCoordsFactory) {
|
79
78
|
var startOfDragCoords;
|
80
79
|
var endOfDragCoords;
|
81
80
|
var directionOfDrag;
|
82
81
|
|
83
82
|
if (endSelection[0] === startSelection[0] && endSelection[1] < startSelection[1]) {
|
84
83
|
directionOfDrag = 'left';
|
85
|
-
startOfDragCoords =
|
86
|
-
endOfDragCoords =
|
84
|
+
startOfDragCoords = cellCoordsFactory(endSelection[0], endSelection[1]);
|
85
|
+
endOfDragCoords = cellCoordsFactory(endSelection[2], startSelection[1] - 1);
|
87
86
|
} else if (endSelection[2] === startSelection[2] && endSelection[0] === startSelection[0] && endSelection[3] > startSelection[3]) {
|
88
87
|
directionOfDrag = 'right';
|
89
|
-
startOfDragCoords =
|
90
|
-
endOfDragCoords =
|
88
|
+
startOfDragCoords = cellCoordsFactory(endSelection[0], startSelection[3] + 1);
|
89
|
+
endOfDragCoords = cellCoordsFactory(endSelection[2], endSelection[3]);
|
91
90
|
} else if (endSelection[0] < startSelection[0] && endSelection[1] === startSelection[1]) {
|
92
91
|
directionOfDrag = 'up';
|
93
|
-
startOfDragCoords =
|
94
|
-
endOfDragCoords =
|
92
|
+
startOfDragCoords = cellCoordsFactory(endSelection[0], endSelection[1]);
|
93
|
+
endOfDragCoords = cellCoordsFactory(startSelection[0] - 1, endSelection[3]);
|
95
94
|
} else if (endSelection[2] > startSelection[2] && endSelection[1] === startSelection[1]) {
|
96
95
|
directionOfDrag = 'down';
|
97
|
-
startOfDragCoords =
|
98
|
-
endOfDragCoords =
|
96
|
+
startOfDragCoords = cellCoordsFactory(startSelection[2] + 1, endSelection[1]);
|
97
|
+
endOfDragCoords = cellCoordsFactory(endSelection[2], endSelection[3]);
|
99
98
|
}
|
100
99
|
|
101
100
|
if (startOfDragCoords) {
|
@@ -2,7 +2,6 @@ import "core-js/modules/es.array.index-of.js";
|
|
2
2
|
import "core-js/modules/es.object.keys.js";
|
3
3
|
import { isObject } from "../../helpers/object.mjs";
|
4
4
|
import { isDefined } from "../../helpers/mixed.mjs";
|
5
|
-
import { CellCoords } from "../../3rdparty/walkontable/src/index.mjs";
|
6
5
|
export var DIRECTIONS = {
|
7
6
|
horizontal: 'horizontal',
|
8
7
|
vertical: 'vertical'
|
@@ -56,30 +55,31 @@ export function getDeltas(start, end, data, direction) {
|
|
56
55
|
*
|
57
56
|
* @param {Array} startSelection The coordinates where the selection starts.
|
58
57
|
* @param {Array} endSelection The coordinates where the selection ends.
|
58
|
+
* @param {Function} cellCoordsFactory The function factory for CellCoords objects.
|
59
59
|
* @returns {{direction: string, start: CellCoords, end: CellCoords}}
|
60
60
|
*/
|
61
61
|
|
62
|
-
export function getDragDirectionAndRange(startSelection, endSelection) {
|
62
|
+
export function getDragDirectionAndRange(startSelection, endSelection, cellCoordsFactory) {
|
63
63
|
var startOfDragCoords;
|
64
64
|
var endOfDragCoords;
|
65
65
|
var directionOfDrag;
|
66
66
|
|
67
67
|
if (endSelection[0] === startSelection[0] && endSelection[1] < startSelection[1]) {
|
68
68
|
directionOfDrag = 'left';
|
69
|
-
startOfDragCoords =
|
70
|
-
endOfDragCoords =
|
69
|
+
startOfDragCoords = cellCoordsFactory(endSelection[0], endSelection[1]);
|
70
|
+
endOfDragCoords = cellCoordsFactory(endSelection[2], startSelection[1] - 1);
|
71
71
|
} else if (endSelection[2] === startSelection[2] && endSelection[0] === startSelection[0] && endSelection[3] > startSelection[3]) {
|
72
72
|
directionOfDrag = 'right';
|
73
|
-
startOfDragCoords =
|
74
|
-
endOfDragCoords =
|
73
|
+
startOfDragCoords = cellCoordsFactory(endSelection[0], startSelection[3] + 1);
|
74
|
+
endOfDragCoords = cellCoordsFactory(endSelection[2], endSelection[3]);
|
75
75
|
} else if (endSelection[0] < startSelection[0] && endSelection[1] === startSelection[1]) {
|
76
76
|
directionOfDrag = 'up';
|
77
|
-
startOfDragCoords =
|
78
|
-
endOfDragCoords =
|
77
|
+
startOfDragCoords = cellCoordsFactory(endSelection[0], endSelection[1]);
|
78
|
+
endOfDragCoords = cellCoordsFactory(startSelection[0] - 1, endSelection[3]);
|
79
79
|
} else if (endSelection[2] > startSelection[2] && endSelection[1] === startSelection[1]) {
|
80
80
|
directionOfDrag = 'down';
|
81
|
-
startOfDragCoords =
|
82
|
-
endOfDragCoords =
|
81
|
+
startOfDragCoords = cellCoordsFactory(startSelection[2] + 1, endSelection[1]);
|
82
|
+
endOfDragCoords = cellCoordsFactory(endSelection[2], endSelection[3]);
|
83
83
|
}
|
84
84
|
|
85
85
|
if (startOfDragCoords) {
|
package/plugins/base/base.d.ts
CHANGED
@@ -1,8 +1,14 @@
|
|
1
1
|
import Core from '../../core';
|
2
|
+
import { Events } from '../../pluginHooks';
|
2
3
|
|
3
4
|
export class BasePlugin {
|
5
|
+
readonly hot: Core;
|
6
|
+
|
4
7
|
constructor(hotInstance: Core);
|
5
8
|
|
9
|
+
static get PLUGIN_KEY(): string;
|
10
|
+
static get SETTING_KEYS(): string[] | boolean;
|
11
|
+
|
6
12
|
pluginName: string;
|
7
13
|
pluginsInitializedCallbacks: string[];
|
8
14
|
isPluginsReady: boolean;
|
@@ -13,8 +19,8 @@ export class BasePlugin {
|
|
13
19
|
enablePlugin(): void;
|
14
20
|
disablePlugin(): void;
|
15
21
|
updatePlugin(): void;
|
16
|
-
addHook(
|
17
|
-
removeHooks(name:
|
22
|
+
addHook<K extends keyof Events>(key: K, callback: Events[K] | Array<Events[K]>): void;
|
23
|
+
removeHooks(name: keyof Events): void;
|
18
24
|
clearHooks(): void;
|
19
25
|
callOnPluginsReady(callback: () => void): void;
|
20
26
|
destroy(): void;
|