handsontable 14.2.0 → 14.3.0-next-3fa6b18-20240410
Sign up to get free protection for your applications and to get access to all the features.
- package/3rdparty/walkontable/src/calculator/renderAllColumns.js +1 -1
- package/3rdparty/walkontable/src/calculator/renderAllColumns.mjs +1 -1
- package/3rdparty/walkontable/src/calculator/renderAllRows.js +1 -1
- package/3rdparty/walkontable/src/calculator/renderAllRows.mjs +1 -1
- package/3rdparty/walkontable/src/calculator/viewportColumns.js +13 -18
- package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +13 -18
- package/3rdparty/walkontable/src/calculator/viewportRows.js +11 -16
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +11 -16
- package/3rdparty/walkontable/src/cell/coords.js +13 -18
- package/3rdparty/walkontable/src/cell/coords.mjs +13 -18
- package/3rdparty/walkontable/src/cell/range.d.ts +2 -1
- package/3rdparty/walkontable/src/cell/range.js +42 -30
- package/3rdparty/walkontable/src/cell/range.mjs +42 -30
- package/3rdparty/walkontable/src/core/_base.js +2 -2
- package/3rdparty/walkontable/src/core/_base.mjs +2 -2
- package/3rdparty/walkontable/src/core/clone.js +1 -1
- package/3rdparty/walkontable/src/core/clone.mjs +1 -1
- package/3rdparty/walkontable/src/event.js +72 -104
- package/3rdparty/walkontable/src/event.mjs +72 -104
- package/3rdparty/walkontable/src/filter/column.js +1 -1
- package/3rdparty/walkontable/src/filter/column.mjs +1 -1
- package/3rdparty/walkontable/src/filter/row.js +1 -1
- package/3rdparty/walkontable/src/filter/row.mjs +1 -1
- package/3rdparty/walkontable/src/index.js +1 -1
- package/3rdparty/walkontable/src/overlay/_base.js +1 -1
- package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/bottom.js +1 -1
- package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.js +15 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +16 -2
- package/3rdparty/walkontable/src/overlay/top.js +12 -1
- package/3rdparty/walkontable/src/overlay/top.mjs +13 -2
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +1 -1
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +1 -1
- package/3rdparty/walkontable/src/overlays.js +47 -5
- package/3rdparty/walkontable/src/overlays.mjs +47 -5
- package/3rdparty/walkontable/src/renderer/_base.js +1 -1
- package/3rdparty/walkontable/src/renderer/_base.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/cells.js +1 -1
- package/3rdparty/walkontable/src/renderer/cells.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +1 -1
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/rows.js +1 -1
- package/3rdparty/walkontable/src/renderer/rows.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/table.js +1 -1
- package/3rdparty/walkontable/src/renderer/table.mjs +1 -1
- package/3rdparty/walkontable/src/scroll.js +16 -18
- package/3rdparty/walkontable/src/scroll.mjs +16 -18
- package/3rdparty/walkontable/src/selection/manager.js +48 -69
- package/3rdparty/walkontable/src/selection/manager.mjs +48 -69
- package/3rdparty/walkontable/src/selection/scanner.js +33 -42
- package/3rdparty/walkontable/src/selection/scanner.mjs +33 -42
- package/3rdparty/walkontable/src/settings.js +1 -1
- package/3rdparty/walkontable/src/settings.mjs +1 -1
- package/3rdparty/walkontable/src/table.js +1 -1
- package/3rdparty/walkontable/src/table.mjs +1 -1
- package/3rdparty/walkontable/src/utils/column.js +1 -1
- package/3rdparty/walkontable/src/utils/column.mjs +1 -1
- package/3rdparty/walkontable/src/utils/columnStretching.js +28 -45
- package/3rdparty/walkontable/src/utils/columnStretching.mjs +28 -45
- package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
- package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
- package/3rdparty/walkontable/src/utils/orderView/view.js +2 -2
- package/3rdparty/walkontable/src/utils/orderView/view.mjs +2 -2
- package/3rdparty/walkontable/src/utils/orderView/viewSize.js +1 -1
- package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +1 -1
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +1 -1
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +1 -1
- package/3rdparty/walkontable/src/utils/row.js +1 -1
- package/3rdparty/walkontable/src/utils/row.mjs +1 -1
- package/CHANGELOG.md +20 -0
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core/viewportScroll/index.js +4 -1
- package/core/viewportScroll/index.mjs +4 -1
- package/core/viewportScroll/scrollStrategies/focusScroll.js +15 -0
- package/core/viewportScroll/scrollStrategies/focusScroll.mjs +11 -0
- package/core.d.ts +4 -3
- package/core.js +98 -43
- package/core.mjs +98 -43
- package/dataMap/dataMap.js +1 -1
- package/dataMap/dataMap.mjs +1 -1
- package/dataMap/dataSource.js +2 -2
- package/dataMap/dataSource.mjs +2 -2
- package/dataMap/metaManager/lazyFactoryMap.js +3 -5
- package/dataMap/metaManager/lazyFactoryMap.mjs +2 -4
- package/dataMap/metaManager/metaLayers/cellMeta.js +2 -2
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +2 -2
- package/dataMap/metaManager/metaLayers/columnMeta.js +1 -1
- package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
- package/dataMap/metaManager/metaLayers/globalMeta.js +1 -1
- package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
- package/dataMap/metaManager/metaLayers/tableMeta.js +1 -1
- package/dataMap/metaManager/metaLayers/tableMeta.mjs +1 -1
- package/dataMap/metaManager/metaSchema.js +272 -272
- package/dataMap/metaManager/metaSchema.mjs +272 -272
- package/dataMap/metaManager/mods/dynamicCellMeta.js +1 -1
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
- package/dataMap/metaManager/mods/extendMetaProperties.js +1 -1
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +1 -1
- package/dataMap/replaceData.js +1 -1
- package/dataMap/replaceData.mjs +1 -1
- package/dist/handsontable.css +4 -4
- package/dist/handsontable.full.css +4 -4
- package/dist/handsontable.full.js +9814 -10020
- package/dist/handsontable.full.min.css +3 -3
- package/dist/handsontable.full.min.js +292 -292
- package/dist/handsontable.js +7484 -7056
- package/dist/handsontable.min.css +3 -3
- package/dist/handsontable.min.js +25 -25
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/ar-AR.min.js +1 -1
- package/dist/languages/cs-CZ.min.js +1 -1
- package/dist/languages/de-CH.min.js +1 -1
- package/dist/languages/de-DE.min.js +1 -1
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/es-MX.min.js +1 -1
- package/dist/languages/fr-FR.min.js +1 -1
- package/dist/languages/hr-HR.min.js +1 -1
- package/dist/languages/it-IT.min.js +1 -1
- package/dist/languages/ja-JP.min.js +1 -1
- package/dist/languages/ko-KR.min.js +1 -1
- package/dist/languages/lv-LV.min.js +1 -1
- package/dist/languages/nb-NO.min.js +1 -1
- package/dist/languages/nl-NL.min.js +1 -1
- package/dist/languages/pl-PL.min.js +1 -1
- package/dist/languages/pt-BR.min.js +1 -1
- package/dist/languages/ru-RU.min.js +1 -1
- package/dist/languages/sr-SP.min.js +1 -1
- package/dist/languages/zh-CN.min.js +1 -1
- package/dist/languages/zh-TW.min.js +1 -1
- package/editorManager.js +26 -24
- package/editorManager.mjs +26 -24
- package/editors/autocompleteEditor/autocompleteEditor.js +7 -11
- package/editors/autocompleteEditor/autocompleteEditor.mjs +7 -11
- package/editors/baseEditor/baseEditor.js +1 -1
- package/editors/baseEditor/baseEditor.mjs +1 -1
- package/editors/dateEditor/dateEditor.js +49 -11
- package/editors/dateEditor/dateEditor.mjs +49 -11
- package/editors/selectEditor/selectEditor.js +20 -19
- package/editors/selectEditor/selectEditor.mjs +20 -19
- package/editors/textEditor/textEditor.js +1 -1
- package/editors/textEditor/textEditor.mjs +1 -1
- package/eventManager.js +2 -2
- package/eventManager.mjs +2 -2
- package/focusManager.js +64 -82
- package/focusManager.mjs +64 -82
- package/helpers/dom/element.js +23 -1
- package/helpers/dom/element.mjs +21 -1
- package/helpers/mixed.js +2 -2
- package/helpers/mixed.mjs +2 -2
- package/helpers/object.js +2 -2
- package/helpers/object.mjs +2 -2
- package/i18n/languages/ar-AR.d.ts +5 -0
- package/i18n/languages/ar-AR.js +1 -1
- package/i18n/languages/cs-CZ.d.ts +5 -0
- package/i18n/languages/cs-CZ.js +1 -1
- package/i18n/languages/de-CH.js +1 -1
- package/i18n/languages/de-DE.js +1 -1
- package/i18n/languages/en-US.js +1 -1
- package/i18n/languages/es-MX.js +1 -1
- package/i18n/languages/fr-FR.js +1 -1
- package/i18n/languages/hr-HR.d.ts +5 -0
- package/i18n/languages/hr-HR.js +1 -1
- package/i18n/languages/it-IT.js +1 -1
- package/i18n/languages/ja-JP.js +1 -1
- package/i18n/languages/ko-KR.js +1 -1
- package/i18n/languages/lv-LV.js +1 -1
- package/i18n/languages/nb-NO.js +1 -1
- package/i18n/languages/nl-NL.js +1 -1
- package/i18n/languages/pl-PL.js +1 -1
- package/i18n/languages/pt-BR.js +1 -1
- package/i18n/languages/ru-RU.js +1 -1
- package/i18n/languages/sr-SP.d.ts +5 -0
- package/i18n/languages/sr-SP.js +1 -1
- package/i18n/languages/zh-CN.js +1 -1
- package/i18n/languages/zh-TW.js +1 -1
- package/i18n/registry.js +1 -1
- package/index.d.ts +10 -0
- package/index.js +1 -1
- package/package.json +14 -10
- package/pluginHooks.d.ts +4 -3
- package/pluginHooks.js +143 -82
- package/pluginHooks.mjs +143 -82
- package/plugins/autoColumnSize/autoColumnSize.js +50 -66
- package/plugins/autoColumnSize/autoColumnSize.mjs +50 -66
- package/plugins/autoRowSize/autoRowSize.js +29 -35
- package/plugins/autoRowSize/autoRowSize.mjs +29 -35
- package/plugins/autofill/autofill.js +31 -39
- package/plugins/autofill/autofill.mjs +31 -39
- package/plugins/base/base.js +13 -18
- package/plugins/base/base.mjs +13 -18
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +6 -6
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +6 -6
- package/plugins/collapsibleColumns/collapsibleColumns.js +60 -51
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +60 -51
- package/plugins/columnSorting/columnSorting.js +50 -46
- package/plugins/columnSorting/columnSorting.mjs +50 -46
- package/plugins/columnSorting/columnStatesManager.js +1 -1
- package/plugins/columnSorting/columnStatesManager.mjs +1 -1
- package/plugins/columnSummary/columnSummary.js +36 -40
- package/plugins/columnSummary/columnSummary.mjs +36 -40
- package/plugins/columnSummary/endpoints.js +1 -1
- package/plugins/columnSummary/endpoints.mjs +1 -1
- package/plugins/comments/commentEditor.js +1 -1
- package/plugins/comments/commentEditor.mjs +1 -1
- package/plugins/comments/comments.js +117 -159
- package/plugins/comments/comments.mjs +117 -159
- package/plugins/comments/contextMenuItem/addEditComment.js +1 -1
- package/plugins/comments/contextMenuItem/readOnlyComment.js +1 -1
- package/plugins/comments/contextMenuItem/removeComment.js +1 -1
- package/plugins/comments/displaySwitch.js +1 -1
- package/plugins/comments/displaySwitch.mjs +1 -1
- package/plugins/contextMenu/commandExecutor.js +1 -1
- package/plugins/contextMenu/commandExecutor.mjs +1 -1
- package/plugins/contextMenu/contextMenu.js +24 -30
- package/plugins/contextMenu/contextMenu.mjs +24 -30
- package/plugins/contextMenu/itemsFactory.js +2 -2
- package/plugins/contextMenu/itemsFactory.mjs +2 -2
- package/plugins/contextMenu/menu/cursor.js +1 -1
- package/plugins/contextMenu/menu/cursor.mjs +1 -1
- package/plugins/contextMenu/menu/defaultShortcutsList.js +26 -10
- package/plugins/contextMenu/menu/defaultShortcutsList.mjs +26 -10
- package/plugins/contextMenu/menu/menu.js +14 -22
- package/plugins/contextMenu/menu/menu.mjs +14 -22
- package/plugins/contextMenu/menu/positioner.js +41 -58
- package/plugins/contextMenu/menu/positioner.mjs +41 -58
- package/plugins/contextMenu/predefinedItems/alignment.js +1 -1
- package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
- package/plugins/contextMenu/predefinedItems/columnLeft.js +1 -1
- package/plugins/contextMenu/predefinedItems/columnRight.js +1 -1
- package/plugins/contextMenu/predefinedItems/index.js +1 -1
- package/plugins/contextMenu/predefinedItems/readOnly.js +1 -1
- package/plugins/contextMenu/predefinedItems/redo.js +1 -1
- package/plugins/contextMenu/predefinedItems/removeColumn.js +1 -1
- package/plugins/contextMenu/predefinedItems/removeRow.js +1 -1
- package/plugins/contextMenu/predefinedItems/rowAbove.js +1 -1
- package/plugins/contextMenu/predefinedItems/rowBelow.js +1 -1
- package/plugins/contextMenu/predefinedItems/undo.js +1 -1
- package/plugins/copyPaste/contextMenuItem/cut.js +1 -1
- package/plugins/copyPaste/copyPaste.js +120 -161
- package/plugins/copyPaste/copyPaste.mjs +120 -161
- package/plugins/copyPaste/copyableRanges.js +43 -66
- package/plugins/copyPaste/copyableRanges.mjs +43 -66
- package/plugins/customBorders/contextMenuItem/bottom.js +1 -1
- package/plugins/customBorders/contextMenuItem/left.js +1 -1
- package/plugins/customBorders/contextMenuItem/noBorders.js +1 -1
- package/plugins/customBorders/contextMenuItem/right.js +1 -1
- package/plugins/customBorders/contextMenuItem/top.js +1 -1
- package/plugins/customBorders/customBorders.js +14 -16
- package/plugins/customBorders/customBorders.mjs +13 -15
- package/plugins/dragToScroll/dragToScroll.js +7 -7
- package/plugins/dragToScroll/dragToScroll.mjs +7 -7
- package/plugins/dropdownMenu/dropdownMenu.js +84 -110
- package/plugins/dropdownMenu/dropdownMenu.mjs +84 -110
- package/plugins/exportFile/dataProvider.js +2 -2
- package/plugins/exportFile/dataProvider.mjs +2 -2
- package/plugins/exportFile/exportFile.js +2 -2
- package/plugins/exportFile/exportFile.mjs +1 -1
- package/plugins/exportFile/types/_base.js +1 -1
- package/plugins/exportFile/types/_base.mjs +1 -1
- package/plugins/filters/component/_base.js +1 -1
- package/plugins/filters/component/_base.mjs +1 -1
- package/plugins/filters/component/actionBar.js +11 -11
- package/plugins/filters/component/actionBar.mjs +9 -9
- package/plugins/filters/component/condition.js +15 -17
- package/plugins/filters/component/condition.mjs +14 -16
- package/plugins/filters/component/operators.js +7 -7
- package/plugins/filters/component/operators.mjs +7 -7
- package/plugins/filters/component/value.js +26 -30
- package/plugins/filters/component/value.mjs +25 -29
- package/plugins/filters/condition/beginsWith.js +1 -1
- package/plugins/filters/condition/between.js +1 -1
- package/plugins/filters/condition/contains.js +1 -1
- package/plugins/filters/condition/date/after.js +1 -1
- package/plugins/filters/condition/date/before.js +1 -1
- package/plugins/filters/condition/date/today.js +1 -1
- package/plugins/filters/condition/date/tomorrow.js +1 -1
- package/plugins/filters/condition/date/yesterday.js +1 -1
- package/plugins/filters/condition/empty.js +1 -1
- package/plugins/filters/condition/endsWith.js +1 -1
- package/plugins/filters/condition/equal.js +1 -1
- package/plugins/filters/condition/greaterThan.js +1 -1
- package/plugins/filters/condition/greaterThanOrEqual.js +1 -1
- package/plugins/filters/condition/lessThan.js +1 -1
- package/plugins/filters/condition/lessThanOrEqual.js +1 -1
- package/plugins/filters/condition/none.js +1 -1
- package/plugins/filters/condition/notBetween.js +1 -1
- package/plugins/filters/condition/notContains.js +1 -1
- package/plugins/filters/condition/notEmpty.js +1 -1
- package/plugins/filters/condition/notEqual.js +1 -1
- package/plugins/filters/conditionCollection.js +1 -1
- package/plugins/filters/conditionCollection.mjs +1 -1
- package/plugins/filters/conditionUpdateObserver.js +23 -25
- package/plugins/filters/conditionUpdateObserver.mjs +23 -25
- package/plugins/filters/dataFilter.js +2 -2
- package/plugins/filters/dataFilter.mjs +2 -2
- package/plugins/filters/filters.js +84 -98
- package/plugins/filters/filters.mjs +83 -97
- package/plugins/filters/logicalOperations/conjunction.js +1 -1
- package/plugins/filters/logicalOperations/disjunction.js +1 -1
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +1 -1
- package/plugins/filters/ui/_base.js +2 -2
- package/plugins/filters/ui/_base.mjs +1 -1
- package/plugins/filters/ui/input.js +13 -19
- package/plugins/filters/ui/input.mjs +13 -19
- package/plugins/filters/ui/link.js +8 -13
- package/plugins/filters/ui/link.mjs +8 -13
- package/plugins/filters/ui/multipleSelect.js +86 -113
- package/plugins/filters/ui/multipleSelect.mjs +85 -112
- package/plugins/filters/ui/radioInput.js +12 -20
- package/plugins/filters/ui/radioInput.mjs +12 -20
- package/plugins/filters/ui/select.js +51 -73
- package/plugins/filters/ui/select.mjs +49 -71
- package/plugins/formulas/formulas.js +270 -328
- package/plugins/formulas/formulas.mjs +271 -329
- package/plugins/formulas/indexSyncer/axisSyncer.js +38 -61
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +38 -61
- package/plugins/formulas/indexSyncer/index.js +25 -48
- package/plugins/formulas/indexSyncer/index.mjs +25 -48
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +1 -1
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +1 -1
- package/plugins/hiddenColumns/hiddenColumns.js +68 -87
- package/plugins/hiddenColumns/hiddenColumns.mjs +68 -87
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +1 -1
- package/plugins/hiddenRows/contextMenuItem/showRow.js +1 -1
- package/plugins/hiddenRows/hiddenRows.js +67 -86
- package/plugins/hiddenRows/hiddenRows.mjs +67 -86
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +24 -32
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +25 -33
- package/plugins/manualColumnMove/manualColumnMove.js +133 -177
- package/plugins/manualColumnMove/manualColumnMove.mjs +133 -177
- package/plugins/manualColumnMove/ui/_base.js +1 -1
- package/plugins/manualColumnMove/ui/_base.mjs +1 -1
- package/plugins/manualColumnResize/manualColumnResize.js +169 -230
- package/plugins/manualColumnResize/manualColumnResize.mjs +169 -230
- package/plugins/manualRowMove/manualRowMove.js +106 -135
- package/plugins/manualRowMove/manualRowMove.mjs +106 -135
- package/plugins/manualRowMove/ui/_base.js +1 -1
- package/plugins/manualRowMove/ui/_base.mjs +1 -1
- package/plugins/manualRowResize/manualRowResize.js +150 -209
- package/plugins/manualRowResize/manualRowResize.mjs +150 -209
- package/plugins/mergeCells/calculations/autofill.js +1 -1
- package/plugins/mergeCells/calculations/autofill.mjs +1 -1
- package/plugins/mergeCells/calculations/selection.js +3 -72
- package/plugins/mergeCells/calculations/selection.mjs +3 -72
- package/plugins/mergeCells/cellCoords.js +1 -1
- package/plugins/mergeCells/cellCoords.mjs +1 -1
- package/plugins/mergeCells/cellsCollection.js +118 -2
- package/plugins/mergeCells/cellsCollection.mjs +118 -2
- package/plugins/mergeCells/contextMenuItem/toggleMerge.js +12 -2
- package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +11 -1
- package/plugins/mergeCells/focusOrder.js +305 -0
- package/plugins/mergeCells/focusOrder.mjs +300 -0
- package/plugins/mergeCells/mergeCells.js +500 -398
- package/plugins/mergeCells/mergeCells.mjs +500 -398
- package/plugins/multiColumnSorting/multiColumnSorting.js +9 -3
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +9 -3
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +2 -2
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +2 -2
- package/plugins/nestedHeaders/nestedHeaders.js +206 -254
- package/plugins/nestedHeaders/nestedHeaders.mjs +207 -255
- package/plugins/nestedHeaders/stateManager/headersTree.js +21 -32
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +21 -32
- package/plugins/nestedHeaders/stateManager/index.js +30 -41
- package/plugins/nestedHeaders/stateManager/index.mjs +30 -41
- package/plugins/nestedHeaders/stateManager/sourceSettings.js +19 -30
- package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +19 -30
- package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
- package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
- package/plugins/nestedRows/data/dataManager.js +2 -2
- package/plugins/nestedRows/data/dataManager.mjs +2 -2
- package/plugins/nestedRows/nestedRows.js +154 -185
- package/plugins/nestedRows/nestedRows.mjs +155 -186
- package/plugins/nestedRows/ui/_base.js +1 -1
- package/plugins/nestedRows/ui/_base.mjs +1 -1
- package/plugins/nestedRows/ui/contextMenu.js +13 -17
- package/plugins/nestedRows/ui/contextMenu.mjs +11 -15
- package/plugins/nestedRows/utils/rowMoveController.js +6 -6
- package/plugins/nestedRows/utils/rowMoveController.mjs +6 -6
- package/plugins/persistentState/persistentState.js +1 -1
- package/plugins/persistentState/persistentState.mjs +1 -1
- package/plugins/persistentState/storage.js +3 -3
- package/plugins/persistentState/storage.mjs +3 -3
- package/plugins/search/search.js +8 -8
- package/plugins/search/search.mjs +8 -8
- package/plugins/touchScroll/touchScroll.js +16 -20
- package/plugins/touchScroll/touchScroll.mjs +17 -21
- package/plugins/trimRows/trimRows.js +7 -7
- package/plugins/trimRows/trimRows.mjs +7 -7
- package/plugins/undoRedo/index.js +1 -1
- package/renderers/checkboxRenderer/checkboxRenderer.js +8 -5
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +8 -5
- package/selection/highlight/highlight.js +16 -18
- package/selection/highlight/highlight.mjs +15 -17
- package/selection/highlight/visualSelection.js +3 -1
- package/selection/highlight/visualSelection.mjs +3 -1
- package/selection/range.js +3 -5
- package/selection/range.mjs +2 -4
- package/selection/selection.js +227 -69
- package/selection/selection.mjs +225 -67
- package/selection/transformation.js +149 -118
- package/selection/transformation.mjs +149 -118
- package/shortcutContexts/commands/editor/closeAndSave.js +2 -2
- package/shortcutContexts/commands/editor/closeAndSave.mjs +2 -2
- package/shortcutContexts/commands/editor/open.js +18 -3
- package/shortcutContexts/commands/editor/open.mjs +18 -3
- package/shortcutContexts/commands/extendCellsSelection/down.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/down.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/left.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/left.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/right.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/right.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toColumns.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toColumns.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.js +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostBottom.mjs +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.js +9 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineEnd.mjs +9 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.js +10 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostInlineStart.mjs +10 -3
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.js +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostLeft.mjs +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.js +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostRight.mjs +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.js +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toMostTop.mjs +3 -1
- package/shortcutContexts/commands/extendCellsSelection/toRows.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/toRows.mjs +1 -1
- package/shortcutContexts/commands/extendCellsSelection/up.js +1 -1
- package/shortcutContexts/commands/extendCellsSelection/up.mjs +1 -1
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +6 -1
- package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +6 -1
- package/shortcutContexts/commands/moveCellSelection/inlineStart.js +6 -1
- package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +6 -1
- package/shortcutContexts/grid.js +9 -3
- package/shortcutContexts/grid.mjs +9 -3
- package/shortcuts/context.js +3 -2
- package/shortcuts/context.mjs +3 -2
- package/shortcuts/manager.js +2 -2
- package/shortcuts/manager.mjs +2 -2
- package/tableView.js +53 -79
- package/tableView.mjs +53 -79
- package/translations/changesObservable/observable.js +21 -38
- package/translations/changesObservable/observable.mjs +21 -38
- package/translations/changesObservable/observer.js +7 -12
- package/translations/changesObservable/observer.mjs +6 -11
- package/translations/indexMapper.js +1 -1
- package/translations/indexMapper.mjs +1 -1
- package/translations/mapCollections/aggregatedCollection.js +2 -2
- package/translations/mapCollections/aggregatedCollection.mjs +2 -2
- package/translations/mapCollections/mapCollection.js +1 -1
- package/translations/mapCollections/mapCollection.mjs +1 -1
- package/translations/maps/indexMap.js +2 -2
- package/translations/maps/indexMap.mjs +2 -2
- package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -1
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -1
- package/utils/dataStructures/linkedList.js +7 -2
- package/utils/dataStructures/linkedList.mjs +7 -2
- package/utils/dataStructures/tree.js +2 -2
- package/utils/dataStructures/tree.mjs +2 -2
- package/utils/ghostTable.js +1 -1
- package/utils/ghostTable.mjs +1 -1
- package/utils/interval.js +27 -45
- package/utils/interval.mjs +27 -45
- package/utils/samplesGenerator.js +1 -1
- package/utils/samplesGenerator.mjs +1 -1
@@ -1,18 +1,15 @@
|
|
1
|
-
import "core-js/modules/es.json.stringify.js";
|
2
|
-
import "core-js/modules/es.array.push.js";
|
3
1
|
import "core-js/modules/es.error.cause.js";
|
2
|
+
import "core-js/modules/es.array.push.js";
|
3
|
+
import "core-js/modules/es.json.stringify.js";
|
4
4
|
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
5
5
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
6
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i :
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
7
7
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
8
8
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
9
9
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
10
|
-
function _classPrivateFieldSet(
|
11
|
-
function
|
12
|
-
function
|
13
|
-
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
14
|
-
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
15
|
-
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
10
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
11
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
12
|
+
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
16
13
|
import { BasePlugin } from "../base/index.mjs";
|
17
14
|
import staticRegister from "../../utils/staticRegister.mjs";
|
18
15
|
import { error, warn } from "../../helpers/console.mjs";
|
@@ -46,7 +43,7 @@ const isBlockedSource = source => source === 'UndoRedo.undo' || source === 'Undo
|
|
46
43
|
* integration with our other product, [HyperFormula](https://github.com/handsontable/hyperformula/), which is a
|
47
44
|
* powerful calculation engine with an extensive number of features.
|
48
45
|
*
|
49
|
-
* To test out HyperFormula, see [this guide](@/guides/formulas/formula-calculation.md#available-functions).
|
46
|
+
* To test out HyperFormula, see [this guide](@/guides/formulas/formula-calculation/formula-calculation.md#available-functions).
|
50
47
|
*
|
51
48
|
* @plugin Formulas
|
52
49
|
* @class Formulas
|
@@ -54,228 +51,12 @@ const isBlockedSource = source => source === 'UndoRedo.undo' || source === 'Undo
|
|
54
51
|
var _internalOperationPending = /*#__PURE__*/new WeakMap();
|
55
52
|
var _hotWasInitializedWithEmptyData = /*#__PURE__*/new WeakMap();
|
56
53
|
var _engineListeners = /*#__PURE__*/new WeakMap();
|
57
|
-
var
|
58
|
-
var _onBeforeAutofill = /*#__PURE__*/new WeakSet();
|
59
|
-
var _onBeforeLoadData = /*#__PURE__*/new WeakSet();
|
60
|
-
var _onAfterCellMetaReset = /*#__PURE__*/new WeakSet();
|
61
|
-
var _onAfterLoadData = /*#__PURE__*/new WeakSet();
|
62
|
-
var _onModifyData = /*#__PURE__*/new WeakSet();
|
63
|
-
var _onModifySourceData = /*#__PURE__*/new WeakSet();
|
64
|
-
var _onAfterSetDataAtCell = /*#__PURE__*/new WeakSet();
|
65
|
-
var _onAfterSetSourceDataAtCell = /*#__PURE__*/new WeakSet();
|
66
|
-
var _onBeforeCreateRow = /*#__PURE__*/new WeakSet();
|
67
|
-
var _onBeforeCreateCol = /*#__PURE__*/new WeakSet();
|
68
|
-
var _onBeforeRemoveRow = /*#__PURE__*/new WeakSet();
|
69
|
-
var _onBeforeRemoveCol = /*#__PURE__*/new WeakSet();
|
70
|
-
var _onAfterCreateRow = /*#__PURE__*/new WeakSet();
|
71
|
-
var _onAfterCreateCol = /*#__PURE__*/new WeakSet();
|
72
|
-
var _onAfterRemoveRow = /*#__PURE__*/new WeakSet();
|
73
|
-
var _onAfterRemoveCol = /*#__PURE__*/new WeakSet();
|
74
|
-
var _onAfterDetachChild = /*#__PURE__*/new WeakSet();
|
75
|
-
var _onEngineValuesUpdated = /*#__PURE__*/new WeakSet();
|
76
|
-
var _onEngineNamedExpressionsAdded = /*#__PURE__*/new WeakSet();
|
77
|
-
var _onEngineNamedExpressionsRemoved = /*#__PURE__*/new WeakSet();
|
78
|
-
var _onEngineSheetAdded = /*#__PURE__*/new WeakSet();
|
79
|
-
var _onEngineSheetRenamed = /*#__PURE__*/new WeakSet();
|
80
|
-
var _onEngineSheetRemoved = /*#__PURE__*/new WeakSet();
|
54
|
+
var _Formulas_brand = /*#__PURE__*/new WeakSet();
|
81
55
|
export class Formulas extends BasePlugin {
|
82
56
|
constructor() {
|
83
57
|
var _this;
|
84
58
|
super(...arguments);
|
85
59
|
_this = this;
|
86
|
-
/**
|
87
|
-
* Called when a sheet is removed from the engine instance.
|
88
|
-
*
|
89
|
-
* @fires Hooks#afterSheetRemoved
|
90
|
-
* @param {string} removedSheetDisplayName The removed sheet name.
|
91
|
-
* @param {Array} changes The values and location of applied changes.
|
92
|
-
*/
|
93
|
-
_classPrivateMethodInitSpec(this, _onEngineSheetRemoved);
|
94
|
-
/**
|
95
|
-
* Called when a sheet in the engine instance is renamed.
|
96
|
-
*
|
97
|
-
* @fires Hooks#afterSheetRenamed
|
98
|
-
* @param {string} oldDisplayName The old name of the sheet.
|
99
|
-
* @param {string} newDisplayName The new name of the sheet.
|
100
|
-
*/
|
101
|
-
_classPrivateMethodInitSpec(this, _onEngineSheetRenamed);
|
102
|
-
/**
|
103
|
-
* Called when a new sheet is added to the engine instance.
|
104
|
-
*
|
105
|
-
* @fires Hooks#afterSheetAdded
|
106
|
-
* @param {string} addedSheetDisplayName The name of the added sheet.
|
107
|
-
*/
|
108
|
-
_classPrivateMethodInitSpec(this, _onEngineSheetAdded);
|
109
|
-
/**
|
110
|
-
* Called when a named expression is removed from the engine instance.
|
111
|
-
*
|
112
|
-
* @fires Hooks#afterNamedExpressionRemoved
|
113
|
-
* @param {string} namedExpressionName The name of the removed expression.
|
114
|
-
* @param {Array} changes The values and location of applied changes.
|
115
|
-
*/
|
116
|
-
_classPrivateMethodInitSpec(this, _onEngineNamedExpressionsRemoved);
|
117
|
-
/**
|
118
|
-
* Called when a named expression is added to the engine instance.
|
119
|
-
*
|
120
|
-
* @fires Hooks#afterNamedExpressionAdded
|
121
|
-
* @param {string} namedExpressionName The name of the added expression.
|
122
|
-
* @param {Array} changes The values and location of applied changes.
|
123
|
-
*/
|
124
|
-
_classPrivateMethodInitSpec(this, _onEngineNamedExpressionsAdded);
|
125
|
-
/**
|
126
|
-
* Called when a value is updated in the engine.
|
127
|
-
*
|
128
|
-
* @fires Hooks#afterFormulasValuesUpdate
|
129
|
-
* @param {Array} changes The values and location of applied changes.
|
130
|
-
*/
|
131
|
-
_classPrivateMethodInitSpec(this, _onEngineValuesUpdated);
|
132
|
-
/**
|
133
|
-
* `afterDetachChild` hook callback.
|
134
|
-
* Used to sync the data of the rows detached in the Nested Rows plugin with the engine's dataset.
|
135
|
-
*
|
136
|
-
* @param {object} parent An object representing the parent from which the element was detached.
|
137
|
-
* @param {object} element The detached element.
|
138
|
-
* @param {number} finalElementRowIndex The final row index of the detached element.
|
139
|
-
*/
|
140
|
-
_classPrivateMethodInitSpec(this, _onAfterDetachChild);
|
141
|
-
/**
|
142
|
-
* `afterRemoveCol` hook callback.
|
143
|
-
*
|
144
|
-
* @param {number} col Visual index of starter column.
|
145
|
-
* @param {number} amount An amount of removed columns.
|
146
|
-
* @param {number[]} physicalColumns An array of physical columns removed from the data source.
|
147
|
-
* @param {string} [source] String that identifies source of hook call
|
148
|
-
* ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
|
149
|
-
*/
|
150
|
-
_classPrivateMethodInitSpec(this, _onAfterRemoveCol);
|
151
|
-
/**
|
152
|
-
* `afterRemoveRow` hook callback.
|
153
|
-
*
|
154
|
-
* @param {number} row Visual index of starter row.
|
155
|
-
* @param {number} amount An amount of removed rows.
|
156
|
-
* @param {number[]} physicalRows An array of physical rows removed from the data source.
|
157
|
-
* @param {string} [source] String that identifies source of hook call
|
158
|
-
* ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
|
159
|
-
*/
|
160
|
-
_classPrivateMethodInitSpec(this, _onAfterRemoveRow);
|
161
|
-
/**
|
162
|
-
* `afterCreateCol` hook callback.
|
163
|
-
*
|
164
|
-
* @param {number} visualColumn Represents the visual index of first newly created column in the data source.
|
165
|
-
* @param {number} amount Number of newly created columns in the data source.
|
166
|
-
* @param {string} [source] String that identifies source of hook call
|
167
|
-
* ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
|
168
|
-
*/
|
169
|
-
_classPrivateMethodInitSpec(this, _onAfterCreateCol);
|
170
|
-
/**
|
171
|
-
* `afterCreateRow` hook callback.
|
172
|
-
*
|
173
|
-
* @param {number} visualRow Represents the visual index of first newly created row in the data source array.
|
174
|
-
* @param {number} amount Number of newly created rows in the data source array.
|
175
|
-
* @param {string} [source] String that identifies source of hook call
|
176
|
-
* ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
|
177
|
-
*/
|
178
|
-
_classPrivateMethodInitSpec(this, _onAfterCreateRow);
|
179
|
-
/**
|
180
|
-
* `beforeRemoveCol` hook callback.
|
181
|
-
*
|
182
|
-
* @param {number} col Visual index of starter column.
|
183
|
-
* @param {number} amount Amount of columns to be removed.
|
184
|
-
* @param {number[]} physicalColumns An array of physical columns removed from the data source.
|
185
|
-
* @returns {*|boolean} If false is returned the action is canceled.
|
186
|
-
*/
|
187
|
-
_classPrivateMethodInitSpec(this, _onBeforeRemoveCol);
|
188
|
-
/**
|
189
|
-
* `beforeRemoveRow` hook callback.
|
190
|
-
*
|
191
|
-
* @param {number} row Visual index of starter row.
|
192
|
-
* @param {number} amount Amount of rows to be removed.
|
193
|
-
* @param {number[]} physicalRows An array of physical rows removed from the data source.
|
194
|
-
* @returns {*|boolean} If false is returned the action is canceled.
|
195
|
-
*/
|
196
|
-
_classPrivateMethodInitSpec(this, _onBeforeRemoveRow);
|
197
|
-
/**
|
198
|
-
* `beforeCreateCol` hook callback.
|
199
|
-
*
|
200
|
-
* @param {number} visualColumn Represents the visual index of first newly created column in the data source.
|
201
|
-
* @param {number} amount Number of newly created columns in the data source.
|
202
|
-
* @returns {*|boolean} If false is returned the action is canceled.
|
203
|
-
*/
|
204
|
-
_classPrivateMethodInitSpec(this, _onBeforeCreateCol);
|
205
|
-
/**
|
206
|
-
* `beforeCreateRow` hook callback.
|
207
|
-
*
|
208
|
-
* @param {number} visualRow Represents the visual index of first newly created row in the data source array.
|
209
|
-
* @param {number} amount Number of newly created rows in the data source array.
|
210
|
-
* @returns {*|boolean} If false is returned the action is canceled.
|
211
|
-
*/
|
212
|
-
_classPrivateMethodInitSpec(this, _onBeforeCreateRow);
|
213
|
-
/**
|
214
|
-
* `onAfterSetSourceDataAtCell` hook callback.
|
215
|
-
*
|
216
|
-
* @param {Array[]} changes An array of changes in format [[row, column, oldValue, value], ...].
|
217
|
-
* @param {string} [source] String that identifies source of hook call
|
218
|
-
* ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
|
219
|
-
*/
|
220
|
-
_classPrivateMethodInitSpec(this, _onAfterSetSourceDataAtCell);
|
221
|
-
/**
|
222
|
-
* `onAfterSetDataAtCell` hook callback.
|
223
|
-
*
|
224
|
-
* @param {Array[]} changes An array of changes in format [[row, prop, oldValue, value], ...].
|
225
|
-
* @param {string} [source] String that identifies source of hook call
|
226
|
-
* ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
|
227
|
-
*/
|
228
|
-
_classPrivateMethodInitSpec(this, _onAfterSetDataAtCell);
|
229
|
-
/**
|
230
|
-
* `modifySourceData` hook callback.
|
231
|
-
*
|
232
|
-
* @param {number} row Physical row index.
|
233
|
-
* @param {number|string} columnOrProp Physical column index or prop.
|
234
|
-
* @param {object} valueHolder Object which contains original value which can be modified by overwriting `.value`
|
235
|
-
* property.
|
236
|
-
* @param {string} ioMode String which indicates for what operation hook is fired (`get` or `set`).
|
237
|
-
*/
|
238
|
-
_classPrivateMethodInitSpec(this, _onModifySourceData);
|
239
|
-
/**
|
240
|
-
* `modifyData` hook callback.
|
241
|
-
*
|
242
|
-
* @param {number} physicalRow Physical row index.
|
243
|
-
* @param {number} visualColumn Visual column index.
|
244
|
-
* @param {object} valueHolder Object which contains original value which can be modified by overwriting `.value`
|
245
|
-
* property.
|
246
|
-
* @param {string} ioMode String which indicates for what operation hook is fired (`get` or `set`).
|
247
|
-
*/
|
248
|
-
_classPrivateMethodInitSpec(this, _onModifyData);
|
249
|
-
/**
|
250
|
-
* `afterLoadData` hook callback.
|
251
|
-
*
|
252
|
-
* @param {Array} sourceData Array of arrays or array of objects containing data.
|
253
|
-
* @param {boolean} initialLoad Flag that determines whether the data has been loaded during the initialization.
|
254
|
-
* @param {string} [source] Source of the call.
|
255
|
-
*/
|
256
|
-
_classPrivateMethodInitSpec(this, _onAfterLoadData);
|
257
|
-
/**
|
258
|
-
* Callback to `afterCellMetaReset` hook which is triggered after setting cell meta.
|
259
|
-
*/
|
260
|
-
_classPrivateMethodInitSpec(this, _onAfterCellMetaReset);
|
261
|
-
/**
|
262
|
-
* `beforeLoadData` hook callback.
|
263
|
-
*
|
264
|
-
* @param {Array} sourceData Array of arrays or array of objects containing data.
|
265
|
-
* @param {boolean} initialLoad Flag that determines whether the data has been loaded during the initialization.
|
266
|
-
* @param {string} [source] Source of the call.
|
267
|
-
*/
|
268
|
-
_classPrivateMethodInitSpec(this, _onBeforeLoadData);
|
269
|
-
/**
|
270
|
-
* `onBeforeAutofill` hook callback.
|
271
|
-
*
|
272
|
-
* @param {Array[]} fillData The data that was used to fill the `targetRange`. If `beforeAutofill` was used
|
273
|
-
* and returned `[[]]`, this will be the same object that was returned from `beforeAutofill`.
|
274
|
-
* @param {CellRange} sourceRange The range values will be filled from.
|
275
|
-
* @param {CellRange} targetRange The range new values will be filled into.
|
276
|
-
* @returns {boolean|*}
|
277
|
-
*/
|
278
|
-
_classPrivateMethodInitSpec(this, _onBeforeAutofill);
|
279
60
|
/**
|
280
61
|
* The hook allows to translate the formula value to calculated value before it goes to the
|
281
62
|
* validator function.
|
@@ -285,66 +66,57 @@ export class Formulas extends BasePlugin {
|
|
285
66
|
* @param {number|string} prop The visual column index or property name of the column.
|
286
67
|
* @returns {*} Returns value to validate.
|
287
68
|
*/
|
288
|
-
_classPrivateMethodInitSpec(this,
|
69
|
+
_classPrivateMethodInitSpec(this, _Formulas_brand);
|
289
70
|
/**
|
290
71
|
* Flag used to bypass hooks in internal operations.
|
291
72
|
*
|
292
73
|
* @private
|
293
74
|
* @type {boolean}
|
294
75
|
*/
|
295
|
-
_classPrivateFieldInitSpec(this, _internalOperationPending,
|
296
|
-
writable: true,
|
297
|
-
value: false
|
298
|
-
});
|
76
|
+
_classPrivateFieldInitSpec(this, _internalOperationPending, false);
|
299
77
|
/**
|
300
78
|
* Flag needed to mark if Handsontable was initialized with no data.
|
301
79
|
* (Required to work around the fact, that Handsontable auto-generates sample data, when no data is provided).
|
302
80
|
*
|
303
81
|
* @type {boolean}
|
304
82
|
*/
|
305
|
-
_classPrivateFieldInitSpec(this, _hotWasInitializedWithEmptyData,
|
306
|
-
writable: true,
|
307
|
-
value: false
|
308
|
-
});
|
83
|
+
_classPrivateFieldInitSpec(this, _hotWasInitializedWithEmptyData, false);
|
309
84
|
/**
|
310
85
|
* The list of the HyperFormula listeners.
|
311
86
|
*
|
312
87
|
* @type {Array}
|
313
88
|
*/
|
314
|
-
_classPrivateFieldInitSpec(this, _engineListeners, {
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
return _classPrivateMethodGet(_this, _onEngineSheetRemoved, _onEngineSheetRemoved2).call(_this, ...args);
|
346
|
-
}]]
|
347
|
-
});
|
89
|
+
_classPrivateFieldInitSpec(this, _engineListeners, [['valuesUpdated', function () {
|
90
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
91
|
+
args[_key] = arguments[_key];
|
92
|
+
}
|
93
|
+
return _assertClassBrand(_Formulas_brand, _this, _onEngineValuesUpdated).call(_this, ...args);
|
94
|
+
}], ['namedExpressionAdded', function () {
|
95
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
96
|
+
args[_key2] = arguments[_key2];
|
97
|
+
}
|
98
|
+
return _assertClassBrand(_Formulas_brand, _this, _onEngineNamedExpressionsAdded).call(_this, ...args);
|
99
|
+
}], ['namedExpressionRemoved', function () {
|
100
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
101
|
+
args[_key3] = arguments[_key3];
|
102
|
+
}
|
103
|
+
return _assertClassBrand(_Formulas_brand, _this, _onEngineNamedExpressionsRemoved).call(_this, ...args);
|
104
|
+
}], ['sheetAdded', function () {
|
105
|
+
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
106
|
+
args[_key4] = arguments[_key4];
|
107
|
+
}
|
108
|
+
return _assertClassBrand(_Formulas_brand, _this, _onEngineSheetAdded).call(_this, ...args);
|
109
|
+
}], ['sheetRenamed', function () {
|
110
|
+
for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
111
|
+
args[_key5] = arguments[_key5];
|
112
|
+
}
|
113
|
+
return _assertClassBrand(_Formulas_brand, _this, _onEngineSheetRenamed).call(_this, ...args);
|
114
|
+
}], ['sheetRemoved', function () {
|
115
|
+
for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
|
116
|
+
args[_key6] = arguments[_key6];
|
117
|
+
}
|
118
|
+
return _assertClassBrand(_Formulas_brand, _this, _onEngineSheetRemoved).call(_this, ...args);
|
119
|
+
}]]);
|
348
120
|
/**
|
349
121
|
* Static register used to set up one global HyperFormula instance.
|
350
122
|
* TODO: currently used in tests, might be removed later.
|
@@ -439,13 +211,13 @@ export class Formulas extends BasePlugin {
|
|
439
211
|
for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
|
440
212
|
args[_key7] = arguments[_key7];
|
441
213
|
}
|
442
|
-
return
|
214
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onBeforeLoadData).call(_this2, ...args);
|
443
215
|
});
|
444
216
|
this.addHook('afterLoadData', function () {
|
445
217
|
for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
|
446
218
|
args[_key8] = arguments[_key8];
|
447
219
|
}
|
448
|
-
return
|
220
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onAfterLoadData).call(_this2, ...args);
|
449
221
|
});
|
450
222
|
|
451
223
|
// The `updateData` hooks utilize the same logic as the `loadData` hooks.
|
@@ -453,97 +225,97 @@ export class Formulas extends BasePlugin {
|
|
453
225
|
for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
|
454
226
|
args[_key9] = arguments[_key9];
|
455
227
|
}
|
456
|
-
return
|
228
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onBeforeLoadData).call(_this2, ...args);
|
457
229
|
});
|
458
230
|
this.addHook('afterUpdateData', function () {
|
459
231
|
for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
|
460
232
|
args[_key10] = arguments[_key10];
|
461
233
|
}
|
462
|
-
return
|
234
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onAfterLoadData).call(_this2, ...args);
|
463
235
|
});
|
464
236
|
this.addHook('modifyData', function () {
|
465
237
|
for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
|
466
238
|
args[_key11] = arguments[_key11];
|
467
239
|
}
|
468
|
-
return
|
240
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onModifyData).call(_this2, ...args);
|
469
241
|
});
|
470
242
|
this.addHook('modifySourceData', function () {
|
471
243
|
for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
|
472
244
|
args[_key12] = arguments[_key12];
|
473
245
|
}
|
474
|
-
return
|
246
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onModifySourceData).call(_this2, ...args);
|
475
247
|
});
|
476
248
|
this.addHook('beforeValidate', function () {
|
477
249
|
for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {
|
478
250
|
args[_key13] = arguments[_key13];
|
479
251
|
}
|
480
|
-
return
|
252
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onBeforeValidate).call(_this2, ...args);
|
481
253
|
});
|
482
254
|
this.addHook('afterSetSourceDataAtCell', function () {
|
483
255
|
for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {
|
484
256
|
args[_key14] = arguments[_key14];
|
485
257
|
}
|
486
|
-
return
|
258
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onAfterSetSourceDataAtCell).call(_this2, ...args);
|
487
259
|
});
|
488
260
|
this.addHook('afterSetDataAtCell', function () {
|
489
261
|
for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {
|
490
262
|
args[_key15] = arguments[_key15];
|
491
263
|
}
|
492
|
-
return
|
264
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onAfterSetDataAtCell).call(_this2, ...args);
|
493
265
|
});
|
494
266
|
this.addHook('afterSetDataAtRowProp', function () {
|
495
267
|
for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {
|
496
268
|
args[_key16] = arguments[_key16];
|
497
269
|
}
|
498
|
-
return
|
270
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onAfterSetDataAtCell).call(_this2, ...args);
|
499
271
|
});
|
500
272
|
this.addHook('beforeCreateRow', function () {
|
501
273
|
for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) {
|
502
274
|
args[_key17] = arguments[_key17];
|
503
275
|
}
|
504
|
-
return
|
276
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onBeforeCreateRow).call(_this2, ...args);
|
505
277
|
});
|
506
278
|
this.addHook('beforeCreateCol', function () {
|
507
279
|
for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) {
|
508
280
|
args[_key18] = arguments[_key18];
|
509
281
|
}
|
510
|
-
return
|
282
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onBeforeCreateCol).call(_this2, ...args);
|
511
283
|
});
|
512
284
|
this.addHook('afterCreateRow', function () {
|
513
285
|
for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) {
|
514
286
|
args[_key19] = arguments[_key19];
|
515
287
|
}
|
516
|
-
return
|
288
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onAfterCreateRow).call(_this2, ...args);
|
517
289
|
});
|
518
290
|
this.addHook('afterCreateCol', function () {
|
519
291
|
for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) {
|
520
292
|
args[_key20] = arguments[_key20];
|
521
293
|
}
|
522
|
-
return
|
294
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onAfterCreateCol).call(_this2, ...args);
|
523
295
|
});
|
524
296
|
this.addHook('beforeRemoveRow', function () {
|
525
297
|
for (var _len21 = arguments.length, args = new Array(_len21), _key21 = 0; _key21 < _len21; _key21++) {
|
526
298
|
args[_key21] = arguments[_key21];
|
527
299
|
}
|
528
|
-
return
|
300
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onBeforeRemoveRow).call(_this2, ...args);
|
529
301
|
});
|
530
302
|
this.addHook('beforeRemoveCol', function () {
|
531
303
|
for (var _len22 = arguments.length, args = new Array(_len22), _key22 = 0; _key22 < _len22; _key22++) {
|
532
304
|
args[_key22] = arguments[_key22];
|
533
305
|
}
|
534
|
-
return
|
306
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onBeforeRemoveCol).call(_this2, ...args);
|
535
307
|
});
|
536
308
|
this.addHook('afterRemoveRow', function () {
|
537
309
|
for (var _len23 = arguments.length, args = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) {
|
538
310
|
args[_key23] = arguments[_key23];
|
539
311
|
}
|
540
|
-
return
|
312
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onAfterRemoveRow).call(_this2, ...args);
|
541
313
|
});
|
542
314
|
this.addHook('afterRemoveCol', function () {
|
543
315
|
for (var _len24 = arguments.length, args = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) {
|
544
316
|
args[_key24] = arguments[_key24];
|
545
317
|
}
|
546
|
-
return
|
318
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onAfterRemoveCol).call(_this2, ...args);
|
547
319
|
});
|
548
320
|
this.indexSyncer = new IndexSyncer(this.hot.rowIndexMapper, this.hot.columnIndexMapper, postponedAction => {
|
549
321
|
this.hot.addHookOnce('init', () => {
|
@@ -588,7 +360,7 @@ export class Formulas extends BasePlugin {
|
|
588
360
|
for (var _len25 = arguments.length, args = new Array(_len25), _key25 = 0; _key25 < _len25; _key25++) {
|
589
361
|
args[_key25] = arguments[_key25];
|
590
362
|
}
|
591
|
-
return
|
363
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onAfterCellMetaReset).call(_this2, ...args);
|
592
364
|
});
|
593
365
|
|
594
366
|
// Handling undo actions on data just using HyperFormula's UndoRedo mechanism
|
@@ -612,15 +384,15 @@ export class Formulas extends BasePlugin {
|
|
612
384
|
for (var _len26 = arguments.length, args = new Array(_len26), _key26 = 0; _key26 < _len26; _key26++) {
|
613
385
|
args[_key26] = arguments[_key26];
|
614
386
|
}
|
615
|
-
return
|
387
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onAfterDetachChild).call(_this2, ...args);
|
616
388
|
});
|
617
389
|
this.addHook('beforeAutofill', function () {
|
618
390
|
for (var _len27 = arguments.length, args = new Array(_len27), _key27 = 0; _key27 < _len27; _key27++) {
|
619
391
|
args[_key27] = arguments[_key27];
|
620
392
|
}
|
621
|
-
return
|
393
|
+
return _assertClassBrand(_Formulas_brand, _this2, _onBeforeAutofill).call(_this2, ...args);
|
622
394
|
});
|
623
|
-
_classPrivateFieldGet(
|
395
|
+
_classPrivateFieldGet(_engineListeners, this).forEach(_ref => {
|
624
396
|
let [eventName, listener] = _ref;
|
625
397
|
return this.engine.on(eventName, listener);
|
626
398
|
});
|
@@ -631,7 +403,7 @@ export class Formulas extends BasePlugin {
|
|
631
403
|
* Disables the plugin functionality for this Handsontable instance.
|
632
404
|
*/
|
633
405
|
disablePlugin() {
|
634
|
-
_classPrivateFieldGet(
|
406
|
+
_classPrivateFieldGet(_engineListeners, this).forEach(_ref2 => {
|
635
407
|
let [eventName, listener] = _ref2;
|
636
408
|
return this.engine.off(eventName, listener);
|
637
409
|
});
|
@@ -673,12 +445,12 @@ export class Formulas extends BasePlugin {
|
|
673
445
|
* Destroys the plugin instance.
|
674
446
|
*/
|
675
447
|
destroy() {
|
676
|
-
_classPrivateFieldGet(
|
448
|
+
_classPrivateFieldGet(_engineListeners, this).forEach(_ref3 => {
|
677
449
|
var _this$engine;
|
678
450
|
let [eventName, listener] = _ref3;
|
679
451
|
return (_this$engine = this.engine) === null || _this$engine === void 0 ? void 0 : _this$engine.off(eventName, listener);
|
680
452
|
});
|
681
|
-
_classPrivateFieldSet(
|
453
|
+
_classPrivateFieldSet(_engineListeners, this, null);
|
682
454
|
unregisterEngine(this.engine, this.hot);
|
683
455
|
this.engine = null;
|
684
456
|
super.destroy();
|
@@ -887,7 +659,7 @@ export class Formulas extends BasePlugin {
|
|
887
659
|
return this.engine.setCellContents(address, newValue);
|
888
660
|
}
|
889
661
|
}
|
890
|
-
function
|
662
|
+
function _onBeforeValidate(value, visualRow, prop) {
|
891
663
|
const visualColumn = this.hot.propToCol(prop);
|
892
664
|
if (this.isFormulaCellType(visualRow, visualColumn)) {
|
893
665
|
const address = {
|
@@ -907,7 +679,16 @@ function _onBeforeValidate2(value, visualRow, prop) {
|
|
907
679
|
}
|
908
680
|
return value;
|
909
681
|
}
|
910
|
-
|
682
|
+
/**
|
683
|
+
* `onBeforeAutofill` hook callback.
|
684
|
+
*
|
685
|
+
* @param {Array[]} fillData The data that was used to fill the `targetRange`. If `beforeAutofill` was used
|
686
|
+
* and returned `[[]]`, this will be the same object that was returned from `beforeAutofill`.
|
687
|
+
* @param {CellRange} sourceRange The range values will be filled from.
|
688
|
+
* @param {CellRange} targetRange The range new values will be filled into.
|
689
|
+
* @returns {boolean|*}
|
690
|
+
*/
|
691
|
+
function _onBeforeAutofill(fillData, sourceRange, targetRange) {
|
911
692
|
const {
|
912
693
|
row: sourceTopStartRow,
|
913
694
|
col: sourceTopStartColumn
|
@@ -984,7 +765,14 @@ function _onBeforeAutofill2(fillData, sourceRange, targetRange) {
|
|
984
765
|
}
|
985
766
|
return fillRangeData;
|
986
767
|
}
|
987
|
-
|
768
|
+
/**
|
769
|
+
* `beforeLoadData` hook callback.
|
770
|
+
*
|
771
|
+
* @param {Array} sourceData Array of arrays or array of objects containing data.
|
772
|
+
* @param {boolean} initialLoad Flag that determines whether the data has been loaded during the initialization.
|
773
|
+
* @param {string} [source] Source of the call.
|
774
|
+
*/
|
775
|
+
function _onBeforeLoadData(sourceData, initialLoad) {
|
988
776
|
let source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
989
777
|
if (source.includes(toUpperCaseFirst(PLUGIN_KEY))) {
|
990
778
|
return;
|
@@ -992,9 +780,12 @@ function _onBeforeLoadData2(sourceData, initialLoad) {
|
|
992
780
|
|
993
781
|
// This flag needs to be defined, because not passing data to HOT results in HOT auto-generating a `null`-filled
|
994
782
|
// initial dataset.
|
995
|
-
_classPrivateFieldSet(
|
783
|
+
_classPrivateFieldSet(_hotWasInitializedWithEmptyData, this, isUndefined(this.hot.getSettings().data));
|
996
784
|
}
|
997
|
-
|
785
|
+
/**
|
786
|
+
* Callback to `afterCellMetaReset` hook which is triggered after setting cell meta.
|
787
|
+
*/
|
788
|
+
function _onAfterCellMetaReset() {
|
998
789
|
const sourceDataArray = this.hot.getSourceDataArray();
|
999
790
|
let valueChanged = false;
|
1000
791
|
sourceDataArray.forEach((rowData, rowIndex) => {
|
@@ -1014,32 +805,48 @@ function _onAfterCellMetaReset2() {
|
|
1014
805
|
});
|
1015
806
|
});
|
1016
807
|
if (valueChanged === true) {
|
1017
|
-
_classPrivateFieldSet(
|
808
|
+
_classPrivateFieldSet(_internalOperationPending, this, true);
|
1018
809
|
this.engine.setSheetContent(this.sheetId, sourceDataArray);
|
1019
|
-
_classPrivateFieldSet(
|
810
|
+
_classPrivateFieldSet(_internalOperationPending, this, false);
|
1020
811
|
}
|
1021
812
|
}
|
1022
|
-
|
813
|
+
/**
|
814
|
+
* `afterLoadData` hook callback.
|
815
|
+
*
|
816
|
+
* @param {Array} sourceData Array of arrays or array of objects containing data.
|
817
|
+
* @param {boolean} initialLoad Flag that determines whether the data has been loaded during the initialization.
|
818
|
+
* @param {string} [source] Source of the call.
|
819
|
+
*/
|
820
|
+
function _onAfterLoadData(sourceData, initialLoad) {
|
1023
821
|
let source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
1024
822
|
if (source.includes(toUpperCaseFirst(PLUGIN_KEY))) {
|
1025
823
|
return;
|
1026
824
|
}
|
1027
825
|
this.sheetName = setupSheet(this.engine, this.hot.getSettings()[PLUGIN_KEY].sheetName);
|
1028
|
-
if (!_classPrivateFieldGet(
|
826
|
+
if (!_classPrivateFieldGet(_hotWasInitializedWithEmptyData, this)) {
|
1029
827
|
const sourceDataArray = this.hot.getSourceDataArray();
|
1030
828
|
if (this.engine.isItPossibleToReplaceSheetContent(this.sheetId, sourceDataArray)) {
|
1031
|
-
_classPrivateFieldSet(
|
829
|
+
_classPrivateFieldSet(_internalOperationPending, this, true);
|
1032
830
|
const dependentCells = this.engine.setSheetContent(this.sheetId, sourceDataArray);
|
1033
831
|
this.indexSyncer.setupSyncEndpoint(this.engine, this.sheetId);
|
1034
832
|
this.renderDependentSheets(dependentCells);
|
1035
|
-
_classPrivateFieldSet(
|
833
|
+
_classPrivateFieldSet(_internalOperationPending, this, false);
|
1036
834
|
}
|
1037
835
|
} else {
|
1038
836
|
this.switchSheet(this.sheetName);
|
1039
837
|
}
|
1040
838
|
}
|
1041
|
-
|
1042
|
-
|
839
|
+
/**
|
840
|
+
* `modifyData` hook callback.
|
841
|
+
*
|
842
|
+
* @param {number} physicalRow Physical row index.
|
843
|
+
* @param {number} visualColumn Visual column index.
|
844
|
+
* @param {object} valueHolder Object which contains original value which can be modified by overwriting `.value`
|
845
|
+
* property.
|
846
|
+
* @param {string} ioMode String which indicates for what operation hook is fired (`get` or `set`).
|
847
|
+
*/
|
848
|
+
function _onModifyData(physicalRow, visualColumn, valueHolder, ioMode) {
|
849
|
+
if (ioMode !== 'get' || _classPrivateFieldGet(_internalOperationPending, this) || this.sheetName === null || !this.engine.doesSheetExist(this.sheetName)) {
|
1043
850
|
return;
|
1044
851
|
}
|
1045
852
|
const visualRow = this.hot.toVisualRow(physicalRow);
|
@@ -1081,8 +888,17 @@ function _onModifyData2(physicalRow, visualColumn, valueHolder, ioMode) {
|
|
1081
888
|
const value = typeof cellValue === 'object' && cellValue !== null ? cellValue.value : cellValue;
|
1082
889
|
valueHolder.value = value;
|
1083
890
|
}
|
1084
|
-
|
1085
|
-
|
891
|
+
/**
|
892
|
+
* `modifySourceData` hook callback.
|
893
|
+
*
|
894
|
+
* @param {number} row Physical row index.
|
895
|
+
* @param {number|string} columnOrProp Physical column index or prop.
|
896
|
+
* @param {object} valueHolder Object which contains original value which can be modified by overwriting `.value`
|
897
|
+
* property.
|
898
|
+
* @param {string} ioMode String which indicates for what operation hook is fired (`get` or `set`).
|
899
|
+
*/
|
900
|
+
function _onModifySourceData(row, columnOrProp, valueHolder, ioMode) {
|
901
|
+
if (ioMode !== 'get' || _classPrivateFieldGet(_internalOperationPending, this) || this.sheetName === null || !this.engine.doesSheetExist(this.sheetName)) {
|
1086
902
|
return;
|
1087
903
|
}
|
1088
904
|
const visualRow = this.hot.toVisualRow(row);
|
@@ -1115,7 +931,14 @@ function _onModifySourceData2(row, columnOrProp, valueHolder, ioMode) {
|
|
1115
931
|
};
|
1116
932
|
valueHolder.value = this.engine.getCellSerialized(address);
|
1117
933
|
}
|
1118
|
-
|
934
|
+
/**
|
935
|
+
* `onAfterSetDataAtCell` hook callback.
|
936
|
+
*
|
937
|
+
* @param {Array[]} changes An array of changes in format [[row, prop, oldValue, value], ...].
|
938
|
+
* @param {string} [source] String that identifies source of hook call
|
939
|
+
* ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
|
940
|
+
*/
|
941
|
+
function _onAfterSetDataAtCell(changes, source) {
|
1119
942
|
if (isBlockedSource(source)) {
|
1120
943
|
return;
|
1121
944
|
}
|
@@ -1158,7 +981,14 @@ function _onAfterSetDataAtCell2(changes, source) {
|
|
1158
981
|
this.renderDependentSheets(dependentCells);
|
1159
982
|
this.validateDependentCells(dependentCells, changedCells);
|
1160
983
|
}
|
1161
|
-
|
984
|
+
/**
|
985
|
+
* `onAfterSetSourceDataAtCell` hook callback.
|
986
|
+
*
|
987
|
+
* @param {Array[]} changes An array of changes in format [[row, column, oldValue, value], ...].
|
988
|
+
* @param {string} [source] String that identifies source of hook call
|
989
|
+
* ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
|
990
|
+
*/
|
991
|
+
function _onAfterSetSourceDataAtCell(changes, source) {
|
1162
992
|
if (isBlockedSource(source)) {
|
1163
993
|
return;
|
1164
994
|
}
|
@@ -1187,7 +1017,14 @@ function _onAfterSetSourceDataAtCell2(changes, source) {
|
|
1187
1017
|
this.renderDependentSheets(dependentCells);
|
1188
1018
|
this.validateDependentCells(dependentCells, changedCells);
|
1189
1019
|
}
|
1190
|
-
|
1020
|
+
/**
|
1021
|
+
* `beforeCreateRow` hook callback.
|
1022
|
+
*
|
1023
|
+
* @param {number} visualRow Represents the visual index of first newly created row in the data source array.
|
1024
|
+
* @param {number} amount Number of newly created rows in the data source array.
|
1025
|
+
* @returns {*|boolean} If false is returned the action is canceled.
|
1026
|
+
*/
|
1027
|
+
function _onBeforeCreateRow(visualRow, amount) {
|
1191
1028
|
let hfRowIndex = this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow);
|
1192
1029
|
if (visualRow >= this.hot.countRows()) {
|
1193
1030
|
hfRowIndex = visualRow; // Row beyond the table boundaries.
|
@@ -1196,7 +1033,14 @@ function _onBeforeCreateRow2(visualRow, amount) {
|
|
1196
1033
|
return false;
|
1197
1034
|
}
|
1198
1035
|
}
|
1199
|
-
|
1036
|
+
/**
|
1037
|
+
* `beforeCreateCol` hook callback.
|
1038
|
+
*
|
1039
|
+
* @param {number} visualColumn Represents the visual index of first newly created column in the data source.
|
1040
|
+
* @param {number} amount Number of newly created columns in the data source.
|
1041
|
+
* @returns {*|boolean} If false is returned the action is canceled.
|
1042
|
+
*/
|
1043
|
+
function _onBeforeCreateCol(visualColumn, amount) {
|
1200
1044
|
let hfColumnIndex = this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn);
|
1201
1045
|
if (visualColumn >= this.hot.countCols()) {
|
1202
1046
|
hfColumnIndex = visualColumn; // Column beyond the table boundaries.
|
@@ -1205,35 +1049,76 @@ function _onBeforeCreateCol2(visualColumn, amount) {
|
|
1205
1049
|
return false;
|
1206
1050
|
}
|
1207
1051
|
}
|
1208
|
-
|
1052
|
+
/**
|
1053
|
+
* `beforeRemoveRow` hook callback.
|
1054
|
+
*
|
1055
|
+
* @param {number} row Visual index of starter row.
|
1056
|
+
* @param {number} amount Amount of rows to be removed.
|
1057
|
+
* @param {number[]} physicalRows An array of physical rows removed from the data source.
|
1058
|
+
* @returns {*|boolean} If false is returned the action is canceled.
|
1059
|
+
*/
|
1060
|
+
function _onBeforeRemoveRow(row, amount, physicalRows) {
|
1209
1061
|
const hfRows = this.rowAxisSyncer.setRemovedHfIndexes(physicalRows);
|
1210
1062
|
const possible = hfRows.every(hfRow => {
|
1211
1063
|
return this.engine.isItPossibleToRemoveRows(this.sheetId, [hfRow, 1]);
|
1212
1064
|
});
|
1213
1065
|
return possible === false ? false : undefined;
|
1214
1066
|
}
|
1215
|
-
|
1067
|
+
/**
|
1068
|
+
* `beforeRemoveCol` hook callback.
|
1069
|
+
*
|
1070
|
+
* @param {number} col Visual index of starter column.
|
1071
|
+
* @param {number} amount Amount of columns to be removed.
|
1072
|
+
* @param {number[]} physicalColumns An array of physical columns removed from the data source.
|
1073
|
+
* @returns {*|boolean} If false is returned the action is canceled.
|
1074
|
+
*/
|
1075
|
+
function _onBeforeRemoveCol(col, amount, physicalColumns) {
|
1216
1076
|
const hfColumns = this.columnAxisSyncer.setRemovedHfIndexes(physicalColumns);
|
1217
1077
|
const possible = hfColumns.every(hfColumn => {
|
1218
1078
|
return this.engine.isItPossibleToRemoveColumns(this.sheetId, [hfColumn, 1]);
|
1219
1079
|
});
|
1220
1080
|
return possible === false ? false : undefined;
|
1221
1081
|
}
|
1222
|
-
|
1082
|
+
/**
|
1083
|
+
* `afterCreateRow` hook callback.
|
1084
|
+
*
|
1085
|
+
* @param {number} visualRow Represents the visual index of first newly created row in the data source array.
|
1086
|
+
* @param {number} amount Number of newly created rows in the data source array.
|
1087
|
+
* @param {string} [source] String that identifies source of hook call
|
1088
|
+
* ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
|
1089
|
+
*/
|
1090
|
+
function _onAfterCreateRow(visualRow, amount, source) {
|
1223
1091
|
if (isBlockedSource(source)) {
|
1224
1092
|
return;
|
1225
1093
|
}
|
1226
1094
|
const changes = this.engine.addRows(this.sheetId, [this.rowAxisSyncer.getHfIndexFromVisualIndex(visualRow), amount]);
|
1227
1095
|
this.renderDependentSheets(changes);
|
1228
1096
|
}
|
1229
|
-
|
1097
|
+
/**
|
1098
|
+
* `afterCreateCol` hook callback.
|
1099
|
+
*
|
1100
|
+
* @param {number} visualColumn Represents the visual index of first newly created column in the data source.
|
1101
|
+
* @param {number} amount Number of newly created columns in the data source.
|
1102
|
+
* @param {string} [source] String that identifies source of hook call
|
1103
|
+
* ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
|
1104
|
+
*/
|
1105
|
+
function _onAfterCreateCol(visualColumn, amount, source) {
|
1230
1106
|
if (isBlockedSource(source)) {
|
1231
1107
|
return;
|
1232
1108
|
}
|
1233
1109
|
const changes = this.engine.addColumns(this.sheetId, [this.columnAxisSyncer.getHfIndexFromVisualIndex(visualColumn), amount]);
|
1234
1110
|
this.renderDependentSheets(changes);
|
1235
1111
|
}
|
1236
|
-
|
1112
|
+
/**
|
1113
|
+
* `afterRemoveRow` hook callback.
|
1114
|
+
*
|
1115
|
+
* @param {number} row Visual index of starter row.
|
1116
|
+
* @param {number} amount An amount of removed rows.
|
1117
|
+
* @param {number[]} physicalRows An array of physical rows removed from the data source.
|
1118
|
+
* @param {string} [source] String that identifies source of hook call
|
1119
|
+
* ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
|
1120
|
+
*/
|
1121
|
+
function _onAfterRemoveRow(row, amount, physicalRows, source) {
|
1237
1122
|
if (isBlockedSource(source)) {
|
1238
1123
|
return;
|
1239
1124
|
}
|
@@ -1245,7 +1130,16 @@ function _onAfterRemoveRow2(row, amount, physicalRows, source) {
|
|
1245
1130
|
});
|
1246
1131
|
this.renderDependentSheets(changes);
|
1247
1132
|
}
|
1248
|
-
|
1133
|
+
/**
|
1134
|
+
* `afterRemoveCol` hook callback.
|
1135
|
+
*
|
1136
|
+
* @param {number} col Visual index of starter column.
|
1137
|
+
* @param {number} amount An amount of removed columns.
|
1138
|
+
* @param {number[]} physicalColumns An array of physical columns removed from the data source.
|
1139
|
+
* @param {string} [source] String that identifies source of hook call
|
1140
|
+
* ([list of all available sources]{@link https://handsontable.com/docs/javascript-data-grid/events-and-hooks/#handsontable-hooks}).
|
1141
|
+
*/
|
1142
|
+
function _onAfterRemoveCol(col, amount, physicalColumns, source) {
|
1249
1143
|
if (isBlockedSource(source)) {
|
1250
1144
|
return;
|
1251
1145
|
}
|
@@ -1257,11 +1151,19 @@ function _onAfterRemoveCol2(col, amount, physicalColumns, source) {
|
|
1257
1151
|
});
|
1258
1152
|
this.renderDependentSheets(changes);
|
1259
1153
|
}
|
1260
|
-
|
1154
|
+
/**
|
1155
|
+
* `afterDetachChild` hook callback.
|
1156
|
+
* Used to sync the data of the rows detached in the Nested Rows plugin with the engine's dataset.
|
1157
|
+
*
|
1158
|
+
* @param {object} parent An object representing the parent from which the element was detached.
|
1159
|
+
* @param {object} element The detached element.
|
1160
|
+
* @param {number} finalElementRowIndex The final row index of the detached element.
|
1161
|
+
*/
|
1162
|
+
function _onAfterDetachChild(parent, element, finalElementRowIndex) {
|
1261
1163
|
var _element$__children;
|
1262
|
-
_classPrivateFieldSet(
|
1164
|
+
_classPrivateFieldSet(_internalOperationPending, this, true);
|
1263
1165
|
const rowsData = this.hot.getSourceDataArray(finalElementRowIndex, 0, finalElementRowIndex + (((_element$__children = element.__children) === null || _element$__children === void 0 ? void 0 : _element$__children.length) || 0), this.hot.countSourceCols());
|
1264
|
-
_classPrivateFieldSet(
|
1166
|
+
_classPrivateFieldSet(_internalOperationPending, this, false);
|
1265
1167
|
rowsData.forEach((row, relativeRowIndex) => {
|
1266
1168
|
row.forEach((value, colIndex) => {
|
1267
1169
|
this.engine.setCellContents({
|
@@ -1272,22 +1174,62 @@ function _onAfterDetachChild2(parent, element, finalElementRowIndex) {
|
|
1272
1174
|
});
|
1273
1175
|
});
|
1274
1176
|
}
|
1275
|
-
|
1177
|
+
/**
|
1178
|
+
* Called when a value is updated in the engine.
|
1179
|
+
*
|
1180
|
+
* @fires Hooks#afterFormulasValuesUpdate
|
1181
|
+
* @param {Array} changes The values and location of applied changes.
|
1182
|
+
*/
|
1183
|
+
function _onEngineValuesUpdated(changes) {
|
1276
1184
|
this.hot.runHooks('afterFormulasValuesUpdate', changes);
|
1277
1185
|
}
|
1278
|
-
|
1186
|
+
/**
|
1187
|
+
* Called when a named expression is added to the engine instance.
|
1188
|
+
*
|
1189
|
+
* @fires Hooks#afterNamedExpressionAdded
|
1190
|
+
* @param {string} namedExpressionName The name of the added expression.
|
1191
|
+
* @param {Array} changes The values and location of applied changes.
|
1192
|
+
*/
|
1193
|
+
function _onEngineNamedExpressionsAdded(namedExpressionName, changes) {
|
1279
1194
|
this.hot.runHooks('afterNamedExpressionAdded', namedExpressionName, changes);
|
1280
1195
|
}
|
1281
|
-
|
1196
|
+
/**
|
1197
|
+
* Called when a named expression is removed from the engine instance.
|
1198
|
+
*
|
1199
|
+
* @fires Hooks#afterNamedExpressionRemoved
|
1200
|
+
* @param {string} namedExpressionName The name of the removed expression.
|
1201
|
+
* @param {Array} changes The values and location of applied changes.
|
1202
|
+
*/
|
1203
|
+
function _onEngineNamedExpressionsRemoved(namedExpressionName, changes) {
|
1282
1204
|
this.hot.runHooks('afterNamedExpressionRemoved', namedExpressionName, changes);
|
1283
1205
|
}
|
1284
|
-
|
1206
|
+
/**
|
1207
|
+
* Called when a new sheet is added to the engine instance.
|
1208
|
+
*
|
1209
|
+
* @fires Hooks#afterSheetAdded
|
1210
|
+
* @param {string} addedSheetDisplayName The name of the added sheet.
|
1211
|
+
*/
|
1212
|
+
function _onEngineSheetAdded(addedSheetDisplayName) {
|
1285
1213
|
this.hot.runHooks('afterSheetAdded', addedSheetDisplayName);
|
1286
1214
|
}
|
1287
|
-
|
1215
|
+
/**
|
1216
|
+
* Called when a sheet in the engine instance is renamed.
|
1217
|
+
*
|
1218
|
+
* @fires Hooks#afterSheetRenamed
|
1219
|
+
* @param {string} oldDisplayName The old name of the sheet.
|
1220
|
+
* @param {string} newDisplayName The new name of the sheet.
|
1221
|
+
*/
|
1222
|
+
function _onEngineSheetRenamed(oldDisplayName, newDisplayName) {
|
1288
1223
|
this.sheetName = newDisplayName;
|
1289
1224
|
this.hot.runHooks('afterSheetRenamed', oldDisplayName, newDisplayName);
|
1290
1225
|
}
|
1291
|
-
|
1226
|
+
/**
|
1227
|
+
* Called when a sheet is removed from the engine instance.
|
1228
|
+
*
|
1229
|
+
* @fires Hooks#afterSheetRemoved
|
1230
|
+
* @param {string} removedSheetDisplayName The removed sheet name.
|
1231
|
+
* @param {Array} changes The values and location of applied changes.
|
1232
|
+
*/
|
1233
|
+
function _onEngineSheetRemoved(removedSheetDisplayName, changes) {
|
1292
1234
|
this.hot.runHooks('afterSheetRemoved', removedSheetDisplayName, changes);
|
1293
1235
|
}
|