handsontable 9.0.1 → 11.0.1
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/autoResize/autoResize.js +2 -0
- package/3rdparty/autoResize/autoResize.mjs +1 -0
- package/3rdparty/walkontable/src/border.js +3 -1
- package/3rdparty/walkontable/src/border.mjs +2 -1
- package/3rdparty/walkontable/src/calculator/constants.js +1 -1
- package/3rdparty/walkontable/src/calculator/index.js +2 -0
- package/3rdparty/walkontable/src/calculator/viewportColumns.d.ts +18 -0
- package/3rdparty/walkontable/src/cell/coords.d.ts +16 -0
- package/3rdparty/walkontable/src/cell/range.d.ts +51 -0
- package/3rdparty/walkontable/src/index.d.ts +1 -0
- package/3rdparty/walkontable/src/overlay/bottom.js +3 -3
- package/3rdparty/walkontable/src/overlay/bottom.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/bottomLeftCorner.js +3 -3
- package/3rdparty/walkontable/src/overlay/bottomLeftCorner.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/constants.js +1 -1
- package/3rdparty/walkontable/src/overlay/index.js +2 -0
- package/3rdparty/walkontable/src/overlay/left.js +3 -3
- package/3rdparty/walkontable/src/overlay/left.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/registerer.js +1 -1
- package/3rdparty/walkontable/src/overlay/top.js +3 -3
- package/3rdparty/walkontable/src/overlay/top.mjs +2 -2
- package/3rdparty/walkontable/src/overlay/topLeftCorner.js +3 -3
- package/3rdparty/walkontable/src/overlay/topLeftCorner.mjs +2 -2
- package/3rdparty/walkontable/src/overlays.js +2 -0
- package/3rdparty/walkontable/src/overlays.mjs +1 -0
- package/3rdparty/walkontable/src/renderer/cells.js +1 -1
- package/3rdparty/walkontable/src/renderer/cells.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/colGroup.js +3 -3
- package/3rdparty/walkontable/src/renderer/colGroup.mjs +2 -2
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +3 -3
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -2
- 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 +3 -3
- package/3rdparty/walkontable/src/renderer/rows.mjs +2 -2
- package/3rdparty/walkontable/src/selection.js +5 -3
- package/3rdparty/walkontable/src/selection.mjs +3 -2
- package/3rdparty/walkontable/src/table/bottom.js +3 -3
- package/3rdparty/walkontable/src/table/bottom.mjs +2 -2
- package/3rdparty/walkontable/src/table/bottomLeftCorner.js +3 -3
- package/3rdparty/walkontable/src/table/bottomLeftCorner.mjs +2 -2
- package/3rdparty/walkontable/src/table/left.js +3 -3
- package/3rdparty/walkontable/src/table/left.mjs +2 -2
- package/3rdparty/walkontable/src/table/master.js +3 -3
- package/3rdparty/walkontable/src/table/master.mjs +2 -2
- package/3rdparty/walkontable/src/table/top.js +3 -3
- package/3rdparty/walkontable/src/table/top.mjs +2 -2
- package/3rdparty/walkontable/src/table/topLeftCorner.js +3 -3
- package/3rdparty/walkontable/src/table/topLeftCorner.mjs +2 -2
- package/3rdparty/walkontable/src/table.js +5 -3
- package/3rdparty/walkontable/src/table.mjs +3 -2
- package/3rdparty/walkontable/src/utils/orderView/constants.js +1 -1
- package/3rdparty/walkontable/src/utils/orderView/sharedView.js +3 -3
- package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +2 -2
- package/CHANGELOG.md +72 -0
- package/LICENSE.txt +19 -22
- package/README.md +2 -1
- package/base.d.ts +1 -1
- package/base.js +16 -3
- package/base.mjs +14 -4
- package/cellTypes/autocompleteType/autocompleteType.d.ts +17 -0
- package/cellTypes/autocompleteType/autocompleteType.js +1 -1
- package/cellTypes/autocompleteType/index.d.ts +1 -0
- package/cellTypes/base.d.ts +14 -0
- package/cellTypes/checkboxType/checkboxType.d.ts +14 -0
- package/cellTypes/checkboxType/index.d.ts +1 -0
- package/cellTypes/dateType/dateType.d.ts +17 -0
- package/cellTypes/dateType/index.d.ts +1 -0
- package/cellTypes/dropdownType/dropdownType.d.ts +17 -0
- package/cellTypes/dropdownType/index.d.ts +1 -0
- package/cellTypes/handsontableType/handsontableType.d.ts +14 -0
- package/cellTypes/handsontableType/index.d.ts +1 -0
- package/cellTypes/index.d.ts +47 -0
- package/cellTypes/index.js +18 -2
- package/cellTypes/index.mjs +26 -9
- package/cellTypes/numericType/index.d.ts +1 -0
- package/cellTypes/numericType/numericType.d.ts +17 -0
- package/cellTypes/passwordType/index.d.ts +1 -0
- package/cellTypes/passwordType/passwordType.d.ts +14 -0
- package/cellTypes/registry.d.ts +18 -0
- package/cellTypes/registry.js +2 -2
- package/cellTypes/textType/index.d.ts +1 -0
- package/cellTypes/textType/textType.d.ts +14 -0
- package/cellTypes/timeType/index.d.ts +1 -0
- package/cellTypes/timeType/timeType.d.ts +17 -0
- package/common.d.ts +74 -0
- package/core.d.ts +159 -0
- package/core.js +143 -103
- package/core.mjs +141 -103
- package/{dataMap.js → dataMap/dataMap.js} +37 -35
- package/{dataMap.mjs → dataMap/dataMap.mjs} +37 -35
- package/dataMap/index.js +5 -1
- package/dataMap/index.mjs +3 -2
- package/dataMap/metaManager/index.js +54 -6
- package/dataMap/metaManager/index.mjs +51 -6
- package/dataMap/metaManager/lazyFactoryMap.js +3 -3
- package/dataMap/metaManager/lazyFactoryMap.mjs +3 -3
- package/dataMap/metaManager/metaLayers/cellMeta.js +2 -0
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -0
- package/dataMap/metaManager/metaLayers/globalMeta.js +2 -1
- package/dataMap/metaManager/metaLayers/globalMeta.mjs +2 -1
- package/dataMap/metaManager/metaSchema.js +2331 -871
- package/dataMap/metaManager/metaSchema.mjs +2331 -871
- package/dataMap/metaManager/mods/dynamicCellMeta.js +136 -0
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +119 -0
- package/dataMap/metaManager/utils.js +3 -3
- package/dataSource.js +2 -0
- package/dataSource.mjs +1 -0
- package/dist/handsontable.css +309 -303
- package/dist/handsontable.full.css +309 -303
- package/dist/handsontable.full.js +50435 -45020
- package/dist/handsontable.full.min.css +25 -28
- package/dist/handsontable.full.min.js +181 -164
- package/dist/handsontable.js +31234 -28030
- package/dist/handsontable.min.css +25 -28
- package/dist/handsontable.min.js +22 -25
- package/editorManager.js +15 -12
- package/editorManager.mjs +15 -13
- package/editors/autocompleteEditor/autocompleteEditor.d.ts +29 -0
- package/editors/autocompleteEditor/autocompleteEditor.js +91 -87
- package/editors/autocompleteEditor/autocompleteEditor.mjs +89 -84
- package/editors/autocompleteEditor/index.d.ts +1 -0
- package/editors/autocompleteEditor/index.js +1 -1
- package/editors/baseEditor/baseEditor.d.ts +45 -0
- package/editors/baseEditor/baseEditor.js +8 -7
- package/editors/baseEditor/baseEditor.mjs +5 -5
- package/editors/baseEditor/index.d.ts +1 -0
- package/editors/baseEditor/index.js +1 -1
- package/editors/checkboxEditor/checkboxEditor.d.ts +12 -0
- package/editors/checkboxEditor/checkboxEditor.js +4 -4
- package/editors/checkboxEditor/checkboxEditor.mjs +2 -2
- package/editors/checkboxEditor/index.d.ts +1 -0
- package/editors/checkboxEditor/index.js +1 -1
- package/editors/dateEditor/dateEditor.d.ts +18 -0
- package/editors/dateEditor/dateEditor.js +20 -20
- package/editors/dateEditor/dateEditor.mjs +19 -19
- package/editors/dateEditor/index.d.ts +1 -0
- package/editors/dateEditor/index.js +1 -1
- package/editors/dropdownEditor/dropdownEditor.d.ts +7 -0
- package/editors/dropdownEditor/dropdownEditor.js +5 -5
- package/editors/dropdownEditor/dropdownEditor.mjs +3 -3
- package/editors/dropdownEditor/index.d.ts +1 -0
- package/editors/dropdownEditor/index.js +1 -1
- package/editors/handsontableEditor/handsontableEditor.d.ts +10 -0
- package/editors/handsontableEditor/handsontableEditor.js +4 -4
- package/editors/handsontableEditor/handsontableEditor.mjs +3 -3
- package/editors/handsontableEditor/index.d.ts +1 -0
- package/editors/index.d.ts +53 -0
- package/editors/index.js +19 -2
- package/editors/index.mjs +28 -10
- package/editors/numericEditor/index.d.ts +1 -0
- package/editors/numericEditor/numericEditor.d.ts +7 -0
- package/editors/numericEditor/numericEditor.js +3 -3
- package/editors/numericEditor/numericEditor.mjs +2 -2
- package/editors/passwordEditor/index.d.ts +1 -0
- package/editors/passwordEditor/passwordEditor.d.ts +7 -0
- package/editors/passwordEditor/passwordEditor.js +4 -4
- package/editors/passwordEditor/passwordEditor.mjs +3 -3
- package/editors/registry.d.ts +29 -0
- package/editors/registry.js +2 -2
- package/editors/selectEditor/index.d.ts +1 -0
- package/editors/selectEditor/selectEditor.d.ts +16 -0
- package/editors/selectEditor/selectEditor.js +4 -4
- package/editors/selectEditor/selectEditor.mjs +3 -3
- package/editors/textEditor/index.d.ts +1 -0
- package/editors/textEditor/textEditor.d.ts +24 -0
- package/editors/textEditor/textEditor.js +4 -4
- package/editors/textEditor/textEditor.mjs +3 -3
- package/eventManager.d.ts +13 -0
- package/eventManager.js +1 -1
- package/handsontable-non-commercial-license.pdf +0 -0
- package/helpers/array.d.ts +18 -0
- package/helpers/array.js +10 -10
- package/helpers/array.mjs +1 -1
- package/helpers/browser.d.ts +25 -0
- package/helpers/browser.js +11 -9
- package/helpers/browser.mjs +1 -0
- package/helpers/console.d.ts +4 -0
- package/helpers/console.js +2 -2
- package/helpers/data.d.ts +13 -0
- package/helpers/data.js +7 -35
- package/helpers/data.mjs +1 -27
- package/helpers/date.d.ts +1 -0
- package/helpers/dom/element.d.ts +49 -0
- package/helpers/dom/element.js +44 -45
- package/helpers/dom/element.mjs +7 -8
- package/helpers/dom/event.d.ts +4 -0
- package/helpers/dom/event.js +2 -2
- package/helpers/dom/index.d.ts +2 -0
- package/helpers/feature.d.ts +11 -0
- package/helpers/feature.js +6 -6
- package/helpers/function.d.ts +10 -0
- package/helpers/function.js +43 -5
- package/helpers/function.mjs +35 -0
- package/helpers/index.d.ts +14 -0
- package/helpers/mixed.d.ts +5 -0
- package/helpers/mixed.js +5 -5
- package/helpers/mixed.mjs +2 -2
- package/helpers/number.d.ts +5 -0
- package/helpers/number.js +96 -17
- package/helpers/number.mjs +85 -17
- package/helpers/object.d.ts +16 -0
- package/helpers/object.js +11 -11
- package/helpers/string.d.ts +7 -0
- package/helpers/string.js +4 -4
- package/helpers/templateLiteralTag.d.ts +1 -0
- package/helpers/unicode.d.ts +73 -0
- package/helpers/unicode.js +49 -33
- package/helpers/unicode.mjs +44 -27
- package/i18n/constants.js +1 -1
- package/i18n/index.d.ts +2 -0
- package/i18n/index.js +2 -0
- package/i18n/languages/de-CH.d.ts +5 -0
- package/i18n/languages/de-DE.d.ts +5 -0
- package/i18n/languages/en-US.d.ts +5 -0
- package/i18n/languages/es-MX.d.ts +5 -0
- package/i18n/languages/fr-FR.d.ts +5 -0
- package/i18n/languages/index.d.ts +35 -0
- package/i18n/languages/it-IT.d.ts +5 -0
- package/i18n/languages/ja-JP.d.ts +5 -0
- package/i18n/languages/ko-KR.d.ts +5 -0
- package/i18n/languages/lv-LV.d.ts +5 -0
- package/i18n/languages/nb-NO.d.ts +5 -0
- package/i18n/languages/nl-NL.d.ts +5 -0
- package/i18n/languages/pl-PL.d.ts +5 -0
- package/i18n/languages/pt-BR.d.ts +5 -0
- package/i18n/languages/ru-RU.d.ts +5 -0
- package/i18n/languages/zh-CN.d.ts +5 -0
- package/i18n/languages/zh-TW.d.ts +5 -0
- package/i18n/phraseFormatters/index.js +1 -1
- package/i18n/registry.d.ts +13 -0
- package/i18n/registry.js +4 -4
- package/i18n/utils.js +1 -1
- package/index.d.ts +516 -0
- package/index.js +40 -112
- package/index.mjs +17 -90
- package/mixins/localHooks.js +17 -14
- package/mixins/localHooks.mjs +16 -13
- package/package.json +103 -10
- package/pluginHooks.d.ts +255 -0
- package/pluginHooks.js +132 -57
- package/pluginHooks.mjs +131 -57
- package/plugins/autoColumnSize/autoColumnSize.d.ts +27 -0
- package/plugins/autoColumnSize/autoColumnSize.js +20 -13
- package/plugins/autoColumnSize/autoColumnSize.mjs +18 -12
- package/plugins/autoColumnSize/index.d.ts +1 -0
- package/plugins/autoColumnSize/index.js +1 -1
- package/plugins/autoRowSize/autoRowSize.d.ts +27 -0
- package/plugins/autoRowSize/autoRowSize.js +22 -14
- package/plugins/autoRowSize/autoRowSize.mjs +19 -12
- package/plugins/autoRowSize/index.d.ts +1 -0
- package/plugins/autoRowSize/index.js +1 -1
- package/plugins/autofill/autofill.d.ts +18 -0
- package/plugins/autofill/autofill.js +10 -19
- package/plugins/autofill/autofill.mjs +7 -16
- package/plugins/autofill/index.d.ts +1 -0
- package/plugins/autofill/index.js +1 -1
- package/plugins/autofill/utils.js +1 -1
- package/plugins/base/base.d.ts +21 -0
- package/plugins/base/base.js +2 -2
- package/plugins/base/base.mjs +1 -1
- package/plugins/base/index.d.ts +1 -0
- package/plugins/base/index.js +1 -1
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.d.ts +9 -0
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +4 -3
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -2
- package/plugins/bindRowsWithHeaders/index.d.ts +1 -0
- package/plugins/bindRowsWithHeaders/index.js +1 -1
- package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +4 -4
- package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +3 -3
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +6 -4
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +4 -3
- package/plugins/collapsibleColumns/collapsibleColumns.d.ts +22 -0
- package/plugins/collapsibleColumns/collapsibleColumns.js +13 -6
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +11 -5
- package/plugins/collapsibleColumns/index.d.ts +1 -0
- package/plugins/collapsibleColumns/index.js +1 -1
- package/plugins/columnSorting/columnSorting.d.ts +30 -0
- package/plugins/columnSorting/columnSorting.js +19 -14
- package/plugins/columnSorting/columnSorting.mjs +16 -12
- package/plugins/columnSorting/columnStatesManager.js +5 -3
- package/plugins/columnSorting/columnStatesManager.mjs +4 -3
- package/plugins/columnSorting/index.d.ts +1 -0
- package/plugins/columnSorting/index.js +1 -1
- package/plugins/columnSorting/rootComparator.js +2 -0
- package/plugins/columnSorting/rootComparator.mjs +1 -0
- package/plugins/columnSorting/sortFunction/checkbox.js +1 -1
- package/plugins/columnSorting/sortFunction/date.js +1 -1
- package/plugins/columnSorting/sortFunction/default.js +4 -3
- package/plugins/columnSorting/sortFunction/default.mjs +3 -2
- package/plugins/columnSorting/sortFunction/numeric.js +1 -1
- package/plugins/columnSorting/sortService/engine.js +1 -1
- package/plugins/columnSorting/sortService/registry.js +1 -1
- package/plugins/columnSorting/utils.js +4 -4
- package/plugins/columnSorting/utils.mjs +1 -1
- package/plugins/columnSummary/columnSummary.d.ts +72 -0
- package/plugins/columnSummary/columnSummary.js +31 -12
- package/plugins/columnSummary/columnSummary.mjs +29 -10
- package/plugins/columnSummary/endpoints.js +6 -4
- package/plugins/columnSummary/endpoints.mjs +5 -4
- package/plugins/columnSummary/index.d.ts +1 -0
- package/plugins/columnSummary/index.js +1 -1
- package/plugins/comments/commentEditor.js +1 -1
- package/plugins/comments/commentEditor.mjs +1 -1
- package/plugins/comments/comments.d.ts +50 -0
- package/plugins/comments/comments.js +11 -6
- package/plugins/comments/comments.mjs +10 -5
- package/plugins/comments/displaySwitch.js +1 -1
- package/plugins/comments/displaySwitch.mjs +1 -1
- package/plugins/comments/index.d.ts +1 -0
- package/plugins/comments/index.js +1 -1
- package/plugins/contextMenu/commandExecutor.js +1 -1
- package/plugins/contextMenu/commandExecutor.mjs +1 -1
- package/plugins/contextMenu/contextMenu.d.ts +65 -0
- package/plugins/contextMenu/contextMenu.js +8 -7
- package/plugins/contextMenu/contextMenu.mjs +6 -5
- package/plugins/contextMenu/cursor.js +1 -1
- package/plugins/contextMenu/cursor.mjs +1 -1
- package/plugins/contextMenu/index.d.ts +1 -0
- package/plugins/contextMenu/index.js +1 -1
- package/plugins/contextMenu/itemsFactory.js +1 -1
- package/plugins/contextMenu/itemsFactory.mjs +1 -1
- package/plugins/contextMenu/menu.js +4 -4
- package/plugins/contextMenu/menu.mjs +3 -3
- 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/noItems.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 +4 -2
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +2 -1
- package/plugins/contextMenu/predefinedItems/removeRow.js +4 -2
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +2 -1
- package/plugins/contextMenu/predefinedItems/rowAbove.js +1 -1
- package/plugins/contextMenu/predefinedItems/rowBelow.js +1 -1
- package/plugins/contextMenu/predefinedItems/separator.js +1 -1
- package/plugins/contextMenu/predefinedItems/undo.js +1 -1
- package/plugins/contextMenu/predefinedItems.js +2 -2
- package/plugins/contextMenu/utils.js +10 -10
- package/plugins/copyPaste/clipboardData.js +3 -0
- package/plugins/copyPaste/clipboardData.mjs +3 -0
- package/plugins/copyPaste/copyPaste.d.ts +35 -0
- package/plugins/copyPaste/copyPaste.js +13 -10
- package/plugins/copyPaste/copyPaste.mjs +11 -9
- package/plugins/copyPaste/focusableElement.js +1 -2
- package/plugins/copyPaste/focusableElement.mjs +1 -2
- package/plugins/copyPaste/index.d.ts +1 -0
- package/plugins/copyPaste/index.js +1 -1
- package/plugins/copyPaste/pasteEvent.js +3 -0
- package/plugins/copyPaste/pasteEvent.mjs +3 -0
- package/plugins/customBorders/customBorders.d.ts +38 -0
- package/plugins/customBorders/customBorders.js +11 -9
- package/plugins/customBorders/customBorders.mjs +8 -7
- package/plugins/customBorders/index.d.ts +1 -0
- package/plugins/customBorders/index.js +1 -1
- package/plugins/customBorders/utils.js +3 -3
- package/plugins/dragToScroll/dragToScroll.d.ts +15 -0
- package/plugins/dragToScroll/dragToScroll.js +5 -5
- package/plugins/dragToScroll/dragToScroll.mjs +3 -3
- package/plugins/dragToScroll/index.d.ts +1 -0
- package/plugins/dragToScroll/index.js +1 -1
- package/plugins/dropdownMenu/dropdownMenu.d.ts +24 -0
- package/plugins/dropdownMenu/dropdownMenu.js +9 -9
- package/plugins/dropdownMenu/dropdownMenu.mjs +7 -7
- package/plugins/dropdownMenu/index.d.ts +1 -0
- package/plugins/dropdownMenu/index.js +1 -1
- package/plugins/exportFile/dataProvider.js +3 -5
- package/plugins/exportFile/dataProvider.mjs +3 -5
- package/plugins/exportFile/exportFile.d.ts +12 -0
- package/plugins/exportFile/exportFile.js +6 -5
- package/plugins/exportFile/exportFile.mjs +4 -3
- package/plugins/exportFile/index.d.ts +1 -0
- package/plugins/exportFile/index.js +1 -1
- package/plugins/exportFile/typeFactory.js +2 -1
- package/plugins/exportFile/typeFactory.mjs +1 -0
- package/plugins/exportFile/types/_base.js +0 -1
- package/plugins/exportFile/types/_base.mjs +0 -1
- package/plugins/exportFile/types/csv.js +3 -4
- package/plugins/exportFile/types/csv.mjs +2 -3
- package/plugins/filters/component/_base.js +1 -1
- package/plugins/filters/component/_base.mjs +1 -1
- package/plugins/filters/component/actionBar.js +4 -4
- package/plugins/filters/component/actionBar.mjs +3 -3
- package/plugins/filters/component/condition.js +7 -5
- package/plugins/filters/component/condition.mjs +5 -4
- package/plugins/filters/component/operators.js +4 -4
- package/plugins/filters/component/operators.mjs +3 -3
- package/plugins/filters/component/value.js +13 -6
- package/plugins/filters/component/value.mjs +11 -5
- package/plugins/filters/condition/beginsWith.js +5 -3
- package/plugins/filters/condition/beginsWith.mjs +3 -2
- package/plugins/filters/condition/between.js +4 -2
- package/plugins/filters/condition/between.mjs +2 -1
- package/plugins/filters/condition/byValue.js +4 -2
- package/plugins/filters/condition/byValue.mjs +2 -1
- package/plugins/filters/condition/contains.js +5 -3
- package/plugins/filters/condition/contains.mjs +3 -2
- package/plugins/filters/condition/date/after.js +4 -2
- package/plugins/filters/condition/date/after.mjs +2 -1
- package/plugins/filters/condition/date/before.js +4 -2
- package/plugins/filters/condition/date/before.mjs +2 -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 +5 -3
- package/plugins/filters/condition/endsWith.mjs +3 -2
- package/plugins/filters/condition/equal.js +5 -3
- package/plugins/filters/condition/equal.mjs +3 -2
- package/plugins/filters/condition/false.js +1 -1
- package/plugins/filters/condition/greaterThan.js +4 -2
- package/plugins/filters/condition/greaterThan.mjs +2 -1
- package/plugins/filters/condition/greaterThanOrEqual.js +4 -2
- package/plugins/filters/condition/greaterThanOrEqual.mjs +2 -1
- package/plugins/filters/condition/lessThan.js +4 -2
- package/plugins/filters/condition/lessThan.mjs +2 -1
- package/plugins/filters/condition/lessThanOrEqual.js +4 -2
- package/plugins/filters/condition/lessThanOrEqual.mjs +2 -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/condition/true.js +1 -1
- package/plugins/filters/conditionCollection.d.ts +32 -0
- package/plugins/filters/conditionCollection.js +8 -5
- package/plugins/filters/conditionCollection.mjs +6 -4
- package/plugins/filters/conditionRegisterer.js +1 -1
- package/plugins/filters/conditionUpdateObserver.d.ts +10 -0
- package/plugins/filters/conditionUpdateObserver.js +3 -1
- package/plugins/filters/conditionUpdateObserver.mjs +2 -1
- package/plugins/filters/constants.js +2 -1
- package/plugins/filters/constants.mjs +1 -0
- package/plugins/filters/dataFilter.js +1 -1
- package/plugins/filters/dataFilter.mjs +1 -1
- package/plugins/filters/filters.d.ts +56 -0
- package/plugins/filters/filters.js +19 -14
- package/plugins/filters/filters.mjs +17 -13
- package/plugins/filters/index.d.ts +1 -0
- package/plugins/filters/index.js +1 -1
- package/plugins/filters/logicalOperationRegisterer.js +1 -1
- package/plugins/filters/logicalOperations/conjunction.js +3 -3
- package/plugins/filters/logicalOperations/conjunction.mjs +1 -0
- package/plugins/filters/logicalOperations/disjunction.js +3 -3
- package/plugins/filters/logicalOperations/disjunction.mjs +1 -0
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +3 -3
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +1 -0
- package/plugins/filters/ui/_base.js +2 -3
- package/plugins/filters/ui/_base.mjs +2 -3
- 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 +31 -5
- package/plugins/filters/ui/multipleSelect.mjs +30 -5
- package/plugins/filters/ui/radioInput.js +3 -3
- package/plugins/filters/ui/radioInput.mjs +3 -3
- package/plugins/filters/ui/select.js +3 -3
- package/plugins/filters/ui/select.mjs +3 -3
- package/plugins/filters/utils.js +3 -3
- package/plugins/formulas/engine/register.js +3 -3
- package/plugins/formulas/engine/settings.js +4 -4
- package/plugins/formulas/engine/settings.mjs +2 -3
- package/plugins/formulas/formulas.d.ts +31 -0
- package/plugins/formulas/formulas.js +286 -89
- package/plugins/formulas/formulas.mjs +279 -86
- package/plugins/formulas/index.d.ts +1 -0
- package/plugins/formulas/index.js +1 -1
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +3 -1
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +2 -1
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +4 -2
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -1
- package/plugins/hiddenColumns/hiddenColumns.d.ts +21 -0
- package/plugins/hiddenColumns/hiddenColumns.js +37 -24
- package/plugins/hiddenColumns/hiddenColumns.mjs +36 -23
- package/plugins/hiddenColumns/index.d.ts +1 -0
- package/plugins/hiddenColumns/index.js +1 -1
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +3 -1
- package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +2 -1
- package/plugins/hiddenRows/contextMenuItem/showRow.js +4 -2
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -1
- package/plugins/hiddenRows/hiddenRows.d.ts +21 -0
- package/plugins/hiddenRows/hiddenRows.js +37 -25
- package/plugins/hiddenRows/hiddenRows.mjs +36 -24
- package/plugins/hiddenRows/index.d.ts +1 -0
- package/plugins/hiddenRows/index.js +1 -1
- package/plugins/index.d.ts +111 -0
- package/plugins/index.js +98 -58
- package/plugins/index.mjs +75 -34
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +3 -1
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +2 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +3 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +2 -1
- package/plugins/manualColumnFreeze/index.d.ts +1 -0
- package/plugins/manualColumnFreeze/index.js +1 -1
- package/plugins/manualColumnFreeze/manualColumnFreeze.d.ts +11 -0
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +11 -6
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +10 -5
- package/plugins/manualColumnMove/index.d.ts +1 -0
- package/plugins/manualColumnMove/index.js +1 -1
- package/plugins/manualColumnMove/manualColumnMove.d.ts +14 -0
- package/plugins/manualColumnMove/manualColumnMove.js +28 -23
- package/plugins/manualColumnMove/manualColumnMove.mjs +27 -22
- package/plugins/manualColumnMove/ui/_base.js +1 -1
- package/plugins/manualColumnMove/ui/_base.mjs +1 -1
- package/plugins/manualColumnMove/ui/backlight.js +4 -4
- package/plugins/manualColumnMove/ui/backlight.mjs +3 -3
- package/plugins/manualColumnMove/ui/guideline.js +4 -4
- package/plugins/manualColumnMove/ui/guideline.mjs +3 -3
- package/plugins/manualColumnResize/index.d.ts +1 -0
- package/plugins/manualColumnResize/index.js +1 -1
- package/plugins/manualColumnResize/manualColumnResize.d.ts +30 -0
- package/plugins/manualColumnResize/manualColumnResize.js +7 -6
- package/plugins/manualColumnResize/manualColumnResize.mjs +6 -5
- package/plugins/manualRowMove/index.d.ts +1 -0
- package/plugins/manualRowMove/index.js +1 -1
- package/plugins/manualRowMove/manualRowMove.d.ts +14 -0
- package/plugins/manualRowMove/manualRowMove.js +25 -22
- package/plugins/manualRowMove/manualRowMove.mjs +24 -21
- package/plugins/manualRowMove/ui/_base.js +1 -2
- package/plugins/manualRowMove/ui/_base.mjs +1 -2
- package/plugins/manualRowMove/ui/backlight.js +5 -5
- package/plugins/manualRowMove/ui/backlight.mjs +4 -4
- package/plugins/manualRowMove/ui/guideline.js +5 -5
- package/plugins/manualRowMove/ui/guideline.mjs +4 -4
- package/plugins/manualRowResize/index.d.ts +1 -0
- package/plugins/manualRowResize/index.js +1 -1
- package/plugins/manualRowResize/manualRowResize.d.ts +29 -0
- package/plugins/manualRowResize/manualRowResize.js +6 -5
- package/plugins/manualRowResize/manualRowResize.mjs +5 -4
- package/plugins/mergeCells/calculations/autofill.js +4 -3
- package/plugins/mergeCells/calculations/autofill.mjs +3 -3
- package/plugins/mergeCells/calculations/selection.js +1 -2
- package/plugins/mergeCells/calculations/selection.mjs +1 -2
- package/plugins/mergeCells/cellCoords.js +1 -1
- package/plugins/mergeCells/cellCoords.mjs +1 -1
- package/plugins/mergeCells/cellsCollection.js +5 -3
- package/plugins/mergeCells/cellsCollection.mjs +4 -3
- package/plugins/mergeCells/index.d.ts +1 -0
- package/plugins/mergeCells/index.js +1 -1
- package/plugins/mergeCells/mergeCells.d.ts +22 -0
- package/plugins/mergeCells/mergeCells.js +7 -4
- package/plugins/mergeCells/mergeCells.mjs +5 -3
- package/plugins/multiColumnSorting/domHelpers.js +2 -0
- package/plugins/multiColumnSorting/domHelpers.mjs +1 -0
- package/plugins/multiColumnSorting/index.d.ts +1 -0
- package/plugins/multiColumnSorting/index.js +1 -1
- package/plugins/multiColumnSorting/multiColumnSorting.d.ts +8 -0
- package/plugins/multiColumnSorting/multiColumnSorting.js +11 -8
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +9 -6
- package/plugins/multiColumnSorting/rootComparator.js +2 -0
- package/plugins/multiColumnSorting/rootComparator.mjs +1 -0
- package/plugins/multipleSelectionHandles/index.d.ts +1 -0
- package/plugins/multipleSelectionHandles/index.js +1 -1
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.d.ts +21 -0
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +7 -5
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +5 -3
- package/plugins/nestedHeaders/index.d.ts +1 -0
- package/plugins/nestedHeaders/index.js +1 -1
- package/plugins/nestedHeaders/nestedHeaders.d.ts +17 -0
- package/plugins/nestedHeaders/nestedHeaders.js +41 -21
- package/plugins/nestedHeaders/nestedHeaders.mjs +38 -19
- package/plugins/nestedHeaders/stateManager/headersTree.js +11 -5
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +10 -5
- package/plugins/nestedHeaders/stateManager/index.js +9 -6
- package/plugins/nestedHeaders/stateManager/index.mjs +9 -6
- package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.js +1 -1
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +2 -0
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +1 -0
- package/plugins/nestedHeaders/stateManager/sourceSettings.js +8 -4
- package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +8 -4
- package/plugins/nestedHeaders/utils/ghostTable.js +10 -2
- package/plugins/nestedHeaders/utils/ghostTable.mjs +10 -2
- package/plugins/nestedRows/data/dataManager.js +40 -14
- package/plugins/nestedRows/data/dataManager.mjs +38 -13
- package/plugins/nestedRows/index.d.ts +1 -0
- package/plugins/nestedRows/index.js +1 -1
- package/plugins/nestedRows/nestedRows.d.ts +12 -0
- package/plugins/nestedRows/nestedRows.js +48 -34
- package/plugins/nestedRows/nestedRows.mjs +43 -32
- package/plugins/nestedRows/ui/_base.js +1 -2
- package/plugins/nestedRows/ui/_base.mjs +1 -2
- package/plugins/nestedRows/ui/collapsing.js +6 -5
- package/plugins/nestedRows/ui/collapsing.mjs +4 -4
- package/plugins/nestedRows/ui/contextMenu.js +2 -3
- package/plugins/nestedRows/ui/contextMenu.mjs +2 -3
- package/plugins/nestedRows/ui/headers.js +4 -5
- package/plugins/nestedRows/ui/headers.mjs +3 -4
- package/plugins/nestedRows/utils/rowMoveController.js +10 -9
- package/plugins/nestedRows/utils/rowMoveController.mjs +8 -8
- package/plugins/persistentState/index.d.ts +1 -0
- package/plugins/persistentState/persistentState.d.ts +13 -0
- package/plugins/persistentState/persistentState.js +13 -4
- package/plugins/persistentState/persistentState.mjs +12 -3
- package/plugins/persistentState/storage.js +1 -1
- package/plugins/persistentState/storage.mjs +1 -1
- package/plugins/registry.d.ts +9 -0
- package/plugins/registry.js +4 -2
- package/plugins/registry.mjs +2 -1
- package/plugins/search/index.d.ts +1 -0
- package/plugins/search/search.d.ts +28 -0
- package/plugins/search/search.js +7 -6
- package/plugins/search/search.mjs +7 -6
- package/plugins/touchScroll/index.d.ts +1 -0
- package/plugins/touchScroll/touchScroll.d.ts +13 -0
- package/plugins/touchScroll/touchScroll.js +9 -9
- package/plugins/touchScroll/touchScroll.mjs +8 -8
- package/plugins/trimRows/index.d.ts +1 -0
- package/plugins/trimRows/trimRows.d.ts +17 -0
- package/plugins/trimRows/trimRows.js +3 -2
- package/plugins/trimRows/trimRows.mjs +3 -2
- package/plugins/undoRedo/index.d.ts +1 -0
- package/plugins/undoRedo/undoRedo.d.ts +49 -0
- package/plugins/undoRedo/undoRedo.js +28 -30
- package/plugins/undoRedo/undoRedo.mjs +26 -29
- package/registry.d.ts +6 -0
- package/registry.js +46 -0
- package/registry.mjs +27 -0
- package/renderers/autocompleteRenderer/autocompleteRenderer.d.ts +5 -0
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -1
- package/renderers/autocompleteRenderer/index.d.ts +1 -0
- package/renderers/base.d.ts +3 -0
- package/renderers/baseRenderer/baseRenderer.d.ts +5 -0
- package/renderers/baseRenderer/baseRenderer.js +1 -1
- package/renderers/baseRenderer/index.d.ts +1 -0
- package/renderers/checkboxRenderer/checkboxRenderer.d.ts +5 -0
- package/renderers/checkboxRenderer/checkboxRenderer.js +3 -5
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +3 -4
- package/renderers/checkboxRenderer/index.d.ts +1 -0
- package/renderers/htmlRenderer/htmlRenderer.d.ts +5 -0
- package/renderers/htmlRenderer/htmlRenderer.js +1 -1
- package/renderers/htmlRenderer/index.d.ts +1 -0
- package/renderers/index.d.ts +42 -0
- package/renderers/index.js +16 -2
- package/renderers/index.mjs +22 -7
- package/renderers/numericRenderer/index.d.ts +1 -0
- package/renderers/numericRenderer/numericRenderer.d.ts +5 -0
- package/renderers/numericRenderer/numericRenderer.js +1 -1
- package/renderers/passwordRenderer/index.d.ts +1 -0
- package/renderers/passwordRenderer/passwordRenderer.d.ts +5 -0
- package/renderers/passwordRenderer/passwordRenderer.js +1 -1
- package/renderers/registry.d.ts +18 -0
- package/renderers/registry.js +3 -2
- package/renderers/textRenderer/index.d.ts +1 -0
- package/renderers/textRenderer/textRenderer.d.ts +5 -0
- package/renderers/textRenderer/textRenderer.js +1 -1
- package/selection/highlight/constants.js +1 -1
- package/selection/highlight/highlight.js +7 -5
- package/selection/highlight/highlight.mjs +5 -4
- package/selection/highlight/types/activeHeader.js +2 -0
- package/selection/highlight/types/activeHeader.mjs +1 -0
- package/selection/highlight/types/area.js +2 -0
- package/selection/highlight/types/area.mjs +1 -0
- package/selection/highlight/types/cell.js +2 -0
- package/selection/highlight/types/cell.mjs +1 -0
- package/selection/highlight/types/customSelection.js +2 -0
- package/selection/highlight/types/customSelection.mjs +1 -0
- package/selection/highlight/types/fill.js +2 -0
- package/selection/highlight/types/fill.mjs +1 -0
- package/selection/highlight/types/header.js +2 -0
- package/selection/highlight/types/header.mjs +1 -0
- package/selection/highlight/types/index.js +2 -0
- package/selection/highlight/types/index.mjs +1 -0
- package/selection/highlight/visualSelection.js +7 -5
- package/selection/highlight/visualSelection.mjs +5 -4
- package/selection/index.d.ts +5 -0
- package/selection/index.js +2 -0
- package/selection/mouseEventHandler.js +4 -4
- package/selection/mouseEventHandler.mjs +3 -3
- package/selection/range.js +5 -5
- package/selection/range.mjs +4 -4
- package/selection/selection.js +18 -9
- package/selection/selection.mjs +17 -9
- package/selection/transformation.js +3 -2
- package/selection/transformation.mjs +3 -2
- package/selection/utils.js +6 -4
- package/selection/utils.mjs +3 -2
- package/settings.d.ts +208 -0
- package/tableView.js +20 -14
- package/tableView.mjs +19 -14
- package/translations/changesObservable/observable.js +10 -5
- package/translations/changesObservable/observable.mjs +10 -5
- package/translations/changesObservable/observer.js +6 -1
- package/translations/changesObservable/observer.mjs +6 -1
- package/translations/changesObservable/utils.js +1 -0
- package/translations/changesObservable/utils.mjs +1 -0
- package/translations/index.d.ts +1 -0
- package/translations/index.js +3 -1
- package/translations/indexMapper.d.ts +45 -0
- package/translations/indexMapper.js +8 -3
- package/translations/indexMapper.mjs +6 -2
- package/translations/mapCollections/aggregatedCollection.js +3 -3
- package/translations/mapCollections/aggregatedCollection.mjs +2 -2
- package/translations/mapCollections/index.js +2 -0
- package/translations/mapCollections/mapCollection.js +1 -1
- package/translations/maps/hidingMap.js +3 -3
- package/translations/maps/hidingMap.mjs +2 -2
- package/translations/maps/indexMap.d.ts +10 -0
- package/translations/maps/indexesSequence.js +4 -4
- package/translations/maps/indexesSequence.mjs +3 -3
- package/translations/maps/linkedPhysicalIndexToValueMap.js +4 -2
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +3 -2
- package/translations/maps/physicalIndexToValueMap.js +4 -4
- package/translations/maps/physicalIndexToValueMap.mjs +3 -3
- package/translations/maps/trimmingMap.js +3 -3
- package/translations/maps/trimmingMap.mjs +2 -2
- package/translations/maps/utils/actionsOnIndexes.js +2 -0
- package/translations/maps/utils/actionsOnIndexes.mjs +1 -0
- package/translations/maps/utils/indexesSequence.js +2 -0
- package/translations/maps/utils/indexesSequence.mjs +1 -0
- package/translations/maps/utils/physicallyIndexed.js +2 -0
- package/translations/maps/utils/physicallyIndexed.mjs +1 -0
- package/utils/dataStructures/priorityMap.js +4 -2
- package/utils/dataStructures/priorityMap.mjs +2 -1
- package/utils/dataStructures/tree.js +3 -1
- package/utils/dataStructures/tree.mjs +1 -0
- package/utils/dataStructures/uniqueMap.js +3 -1
- package/utils/dataStructures/uniqueMap.mjs +2 -1
- package/utils/dataStructures/uniqueSet.js +2 -0
- package/utils/dataStructures/uniqueSet.mjs +1 -0
- package/utils/ghostTable.js +5 -4
- package/utils/ghostTable.mjs +3 -3
- package/utils/interval.js +1 -2
- package/utils/interval.mjs +0 -1
- package/utils/parseTable.d.ts +5 -0
- package/utils/parseTable.js +2 -2
- package/utils/parseTable.mjs +1 -1
- package/utils/rootInstance.js +3 -2
- package/utils/samplesGenerator.js +0 -1
- package/utils/samplesGenerator.mjs +0 -1
- package/utils/staticRegister.js +3 -1
- package/utils/staticRegister.mjs +1 -0
- package/validators/autocompleteValidator/autocompleteValidator.d.ts +5 -0
- package/validators/autocompleteValidator/autocompleteValidator.js +1 -1
- package/validators/autocompleteValidator/index.d.ts +1 -0
- package/validators/base.d.ts +6 -0
- package/validators/dateValidator/dateValidator.d.ts +5 -0
- package/validators/dateValidator/dateValidator.js +2 -2
- package/validators/dateValidator/index.d.ts +1 -0
- package/validators/index.d.ts +33 -0
- package/validators/index.js +13 -2
- package/validators/index.mjs +16 -4
- package/validators/numericValidator/index.d.ts +1 -0
- package/validators/numericValidator/numericValidator.d.ts +5 -0
- package/validators/numericValidator/numericValidator.js +1 -1
- package/validators/registry.d.ts +18 -0
- package/validators/registry.js +3 -2
- package/validators/timeValidator/index.d.ts +1 -0
- package/validators/timeValidator/timeValidator.d.ts +5 -0
- package/validators/timeValidator/timeValidator.js +3 -1
- package/validators/timeValidator/timeValidator.mjs +1 -0
- package/handsontable-general-terms.pdf +0 -0
- package/handsontable.d.ts +0 -2616
- package/plugins/formulas/autofill.js +0 -180
- package/plugins/formulas/autofill.mjs +0 -172
@@ -6,6 +6,10 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
|
|
6
6
|
|
7
7
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
8
8
|
|
9
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
10
|
+
|
11
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
12
|
+
|
9
13
|
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
10
14
|
|
11
15
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
@@ -16,14 +20,14 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
16
20
|
|
17
21
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
18
22
|
|
19
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr
|
23
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
20
24
|
|
21
25
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
22
26
|
|
23
27
|
import "core-js/modules/es.array.concat.js";
|
28
|
+
import "core-js/modules/es.object.to-string.js";
|
24
29
|
import "core-js/modules/web.dom-collections.for-each.js";
|
25
30
|
import "core-js/modules/es.array.iterator.js";
|
26
|
-
import "core-js/modules/es.object.to-string.js";
|
27
31
|
import "core-js/modules/es.set.js";
|
28
32
|
import "core-js/modules/es.string.iterator.js";
|
29
33
|
import "core-js/modules/web.dom-collections.iterator.js";
|
@@ -44,6 +48,10 @@ import "core-js/modules/es.symbol.iterator.js";
|
|
44
48
|
import "core-js/modules/es.array.slice.js";
|
45
49
|
import "core-js/modules/es.function.name.js";
|
46
50
|
import "core-js/modules/es.array.from.js";
|
51
|
+
import "core-js/modules/es.regexp.exec.js";
|
52
|
+
import "core-js/modules/es.object.keys.js";
|
53
|
+
import "core-js/modules/es.array.filter.js";
|
54
|
+
import "core-js/modules/es.object.get-own-property-descriptors.js";
|
47
55
|
|
48
56
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
49
57
|
|
@@ -51,7 +59,7 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
|
|
51
59
|
|
52
60
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
53
61
|
|
54
|
-
function _get(
|
62
|
+
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); }
|
55
63
|
|
56
64
|
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
57
65
|
|
@@ -61,7 +69,7 @@ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || func
|
|
61
69
|
|
62
70
|
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); }; }
|
63
71
|
|
64
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
72
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
65
73
|
|
66
74
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
67
75
|
|
@@ -71,6 +79,10 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
|
|
71
79
|
|
72
80
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
73
81
|
|
82
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
83
|
+
|
84
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
85
|
+
|
74
86
|
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
75
87
|
|
76
88
|
function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
|
@@ -82,9 +94,9 @@ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!priva
|
|
82
94
|
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
83
95
|
|
84
96
|
import { BasePlugin } from "../base/index.mjs";
|
85
|
-
import { createAutofillHooks } from "./autofill.mjs";
|
86
97
|
import staticRegister from "../../utils/staticRegister.mjs";
|
87
98
|
import { error, warn } from "../../helpers/console.mjs";
|
99
|
+
import { isNumeric } from "../../helpers/number.mjs";
|
88
100
|
import { isDefined, isUndefined } from "../../helpers/mixed.mjs";
|
89
101
|
import { setupEngine, setupSheet, unregisterEngine, getRegisteredHotInstances } from "./engine/register.mjs";
|
90
102
|
import { isEscapedFormulaExpression, unescapeFormulaExpression } from "./utils.mjs";
|
@@ -94,20 +106,32 @@ import { toUpperCaseFirst } from "../../helpers/string.mjs";
|
|
94
106
|
import Hooks from "../../pluginHooks.mjs";
|
95
107
|
export var PLUGIN_KEY = 'formulas';
|
96
108
|
export var PLUGIN_PRIORITY = 260;
|
109
|
+
var ROW_MOVE_UNDO_REDO_NAME = 'row_move';
|
97
110
|
Hooks.getSingleton().register('afterNamedExpressionAdded');
|
98
111
|
Hooks.getSingleton().register('afterNamedExpressionRemoved');
|
99
112
|
Hooks.getSingleton().register('afterSheetAdded');
|
100
113
|
Hooks.getSingleton().register('afterSheetRemoved');
|
101
114
|
Hooks.getSingleton().register('afterSheetRenamed');
|
102
|
-
Hooks.getSingleton().register('afterFormulasValuesUpdate');
|
115
|
+
Hooks.getSingleton().register('afterFormulasValuesUpdate'); // This function will be used for detecting changes coming from the `UndoRedo` plugin. This kind of change won't be
|
116
|
+
// handled by whole body of listeners and therefore won't change undo/redo stack inside engine provided by HyperFormula.
|
117
|
+
// HyperFormula's `undo` and `redo` methods will do it instead. Please keep in mind that undo/redo stacks inside
|
118
|
+
// instances of Handsontable and HyperFormula should be synced (number of actions should be the same).
|
119
|
+
|
120
|
+
var isBlockedSource = function isBlockedSource(source) {
|
121
|
+
return source === 'UndoRedo.undo' || source === 'UndoRedo.redo' || source === 'auto';
|
122
|
+
};
|
103
123
|
/**
|
104
124
|
* This plugin allows you to perform Excel-like calculations in your business applications. It does it by an
|
105
125
|
* integration with our other product, [HyperFormula](https://github.com/handsontable/hyperformula/), which is a
|
106
126
|
* powerful calculation engine with an extensive number of features.
|
107
127
|
*
|
128
|
+
* To test out HyperFormula, see [this guide](@/guides/formulas/formula-calculation.md#available-functions).
|
129
|
+
*
|
108
130
|
* @plugin Formulas
|
131
|
+
* @class Formulas
|
109
132
|
*/
|
110
133
|
|
134
|
+
|
111
135
|
var _internalOperationPending = /*#__PURE__*/new WeakMap();
|
112
136
|
|
113
137
|
var _hotWasInitializedWithEmptyData = /*#__PURE__*/new WeakMap();
|
@@ -130,17 +154,17 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
130
154
|
|
131
155
|
_this = _super.call.apply(_super, [this].concat(_args));
|
132
156
|
|
133
|
-
|
157
|
+
_classPrivateFieldInitSpec(_assertThisInitialized(_this), _internalOperationPending, {
|
134
158
|
writable: true,
|
135
159
|
value: false
|
136
160
|
});
|
137
161
|
|
138
|
-
|
162
|
+
_classPrivateFieldInitSpec(_assertThisInitialized(_this), _hotWasInitializedWithEmptyData, {
|
139
163
|
writable: true,
|
140
164
|
value: false
|
141
165
|
});
|
142
166
|
|
143
|
-
|
167
|
+
_classPrivateFieldInitSpec(_assertThisInitialized(_this), _engineListeners, {
|
144
168
|
writable: true,
|
145
169
|
value: [['valuesUpdated', function () {
|
146
170
|
var _this2;
|
@@ -225,7 +249,11 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
225
249
|
|
226
250
|
|
227
251
|
if (this.sheetName !== null && !this.engine.doesSheetExist(this.sheetName)) {
|
228
|
-
|
252
|
+
var newSheetName = this.addSheet(this.sheetName, this.hot.getSourceDataArray());
|
253
|
+
|
254
|
+
if (newSheetName !== false) {
|
255
|
+
this.sheetName = newSheetName;
|
256
|
+
}
|
229
257
|
}
|
230
258
|
|
231
259
|
this.addHook('beforeLoadData', function () {
|
@@ -275,10 +303,31 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
275
303
|
});
|
276
304
|
this.addHook('afterRemoveCol', function () {
|
277
305
|
return _this8.onAfterRemoveCol.apply(_this8, arguments);
|
306
|
+
}); // Handling undo actions on data just using HyperFormula's UndoRedo mechanism
|
307
|
+
|
308
|
+
this.addHook('beforeUndo', function (action) {
|
309
|
+
// TODO: Move action isn't handled by HyperFormula.
|
310
|
+
if ((action === null || action === void 0 ? void 0 : action.actionType) === ROW_MOVE_UNDO_REDO_NAME) {
|
311
|
+
return;
|
312
|
+
}
|
313
|
+
|
314
|
+
_this8.engine.undo();
|
315
|
+
}); // Handling redo actions on data just using HyperFormula's UndoRedo mechanism
|
316
|
+
|
317
|
+
this.addHook('beforeRedo', function (action) {
|
318
|
+
// TODO: Move action isn't handled by HyperFormula.
|
319
|
+
if ((action === null || action === void 0 ? void 0 : action.actionType) === ROW_MOVE_UNDO_REDO_NAME) {
|
320
|
+
return;
|
321
|
+
}
|
322
|
+
|
323
|
+
_this8.engine.redo();
|
324
|
+
});
|
325
|
+
this.addHook('afterDetachChild', function () {
|
326
|
+
return _this8.onAfterDetachChild.apply(_this8, arguments);
|
327
|
+
});
|
328
|
+
this.addHook('beforeAutofill', function () {
|
329
|
+
return _this8.onBeforeAutofill.apply(_this8, arguments);
|
278
330
|
});
|
279
|
-
var autofillHooks = createAutofillHooks(this);
|
280
|
-
this.addHook('beforeAutofill', autofillHooks.beforeAutofill);
|
281
|
-
this.addHook('afterAutofill', autofillHooks.afterAutofill);
|
282
331
|
|
283
332
|
_classPrivateFieldGet(this, _engineListeners).forEach(function (_ref) {
|
284
333
|
var _ref2 = _slicedToArray(_ref, 2),
|
@@ -308,6 +357,7 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
308
357
|
});
|
309
358
|
|
310
359
|
unregisterEngine(this.engine, this.hot);
|
360
|
+
this.engine = null;
|
311
361
|
|
312
362
|
_get(_getPrototypeOf(Formulas.prototype), "disablePlugin", this).call(this);
|
313
363
|
}
|
@@ -364,6 +414,7 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
364
414
|
_classPrivateFieldSet(this, _engineListeners, null);
|
365
415
|
|
366
416
|
unregisterEngine(this.engine, this.hot);
|
417
|
+
this.engine = null;
|
367
418
|
|
368
419
|
_get(_getPrototypeOf(Formulas.prototype), "destroy", this).call(this);
|
369
420
|
}
|
@@ -453,7 +504,7 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
453
504
|
var actualSheetName = this.engine.addSheet(sheetName !== null && sheetName !== void 0 ? sheetName : void 0);
|
454
505
|
|
455
506
|
if (sheetData) {
|
456
|
-
this.engine.setSheetContent(actualSheetName, sheetData);
|
507
|
+
this.engine.setSheetContent(this.engine.getSheetId(actualSheetName), sheetData);
|
457
508
|
}
|
458
509
|
|
459
510
|
return actualSheetName;
|
@@ -490,18 +541,26 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
490
541
|
* @param {number} row Visual row index.
|
491
542
|
* @param {number} column Visual column index.
|
492
543
|
* @param {number} [sheet] The target sheet id, defaults to the current sheet.
|
493
|
-
* @returns {string} Possible values: 'FORMULA' | 'VALUE' | '
|
544
|
+
* @returns {string} Possible values: 'FORMULA' | 'VALUE' | 'ARRAYFORMULA' | 'EMPTY'.
|
494
545
|
*/
|
495
546
|
|
496
547
|
}, {
|
497
548
|
key: "getCellType",
|
498
549
|
value: function getCellType(row, column) {
|
499
550
|
var sheet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.sheetId;
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
551
|
+
var physicalRow = this.hot.toPhysicalRow(row);
|
552
|
+
var physicalColumn = this.hot.toPhysicalColumn(column);
|
553
|
+
|
554
|
+
if (physicalRow !== null && physicalColumn !== null) {
|
555
|
+
return this.engine.getCellType({
|
556
|
+
sheet: sheet,
|
557
|
+
row: physicalRow,
|
558
|
+
col: physicalColumn
|
559
|
+
});
|
560
|
+
} else {
|
561
|
+
// Should return `EMPTY` when out of bounds (according to the test cases).
|
562
|
+
return 'EMPTY';
|
563
|
+
}
|
505
564
|
}
|
506
565
|
/**
|
507
566
|
* Returns `true` if under specified visual coordinates is formula.
|
@@ -516,8 +575,18 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
516
575
|
key: "isFormulaCellType",
|
517
576
|
value: function isFormulaCellType(row, column) {
|
518
577
|
var sheet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.sheetId;
|
519
|
-
var
|
520
|
-
|
578
|
+
var physicalRow = this.hot.toPhysicalRow(row);
|
579
|
+
var physicalColumn = this.hot.toPhysicalColumn(column);
|
580
|
+
|
581
|
+
if (physicalRow === null || physicalColumn === null) {
|
582
|
+
return false;
|
583
|
+
}
|
584
|
+
|
585
|
+
return this.engine.doesCellHaveFormula({
|
586
|
+
sheet: sheet,
|
587
|
+
row: physicalRow,
|
588
|
+
col: physicalColumn
|
589
|
+
});
|
521
590
|
}
|
522
591
|
/**
|
523
592
|
* Renders dependent sheets (handsontable instances) based on the changes - list of the
|
@@ -666,6 +735,44 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
666
735
|
|
667
736
|
return value;
|
668
737
|
}
|
738
|
+
/**
|
739
|
+
* `onBeforeAutofill` hook callback.
|
740
|
+
*
|
741
|
+
* @private
|
742
|
+
* @param {Array[]} fillData The data that was used to fill the `targetRange`. If `beforeAutofill` was used
|
743
|
+
* and returned `[[]]`, this will be the same object that was returned from `beforeAutofill`.
|
744
|
+
* @param {CellRange} sourceRange The range values will be filled from.
|
745
|
+
* @param {CellRange} targetRange The range new values will be filled into.
|
746
|
+
* @returns {boolean|*}
|
747
|
+
*/
|
748
|
+
|
749
|
+
}, {
|
750
|
+
key: "onBeforeAutofill",
|
751
|
+
value: function onBeforeAutofill(fillData, sourceRange, targetRange) {
|
752
|
+
var _this13 = this;
|
753
|
+
|
754
|
+
var withSheetId = function withSheetId(range) {
|
755
|
+
return _objectSpread(_objectSpread({}, range), {}, {
|
756
|
+
sheet: _this13.sheetId
|
757
|
+
});
|
758
|
+
};
|
759
|
+
|
760
|
+
var engineSourceRange = {
|
761
|
+
start: withSheetId(sourceRange.getTopLeftCorner()),
|
762
|
+
end: withSheetId(sourceRange.getBottomRightCorner())
|
763
|
+
};
|
764
|
+
var engineTargetRange = {
|
765
|
+
start: withSheetId(targetRange.getTopLeftCorner()),
|
766
|
+
end: withSheetId(targetRange.getBottomRightCorner())
|
767
|
+
}; // Blocks the autofill operation if HyperFormula says that at least one of
|
768
|
+
// the underlying cell's contents cannot be set.
|
769
|
+
|
770
|
+
if (this.engine.isItPossibleToSetCellContents(engineTargetRange) === false) {
|
771
|
+
return false;
|
772
|
+
}
|
773
|
+
|
774
|
+
return this.engine.getFillRangeData(engineSourceRange, engineTargetRange);
|
775
|
+
}
|
669
776
|
/**
|
670
777
|
* `beforeLoadData` hook callback.
|
671
778
|
*
|
@@ -711,10 +818,10 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
711
818
|
if (!_classPrivateFieldGet(this, _hotWasInitializedWithEmptyData)) {
|
712
819
|
var sourceDataArray = this.hot.getSourceDataArray();
|
713
820
|
|
714
|
-
if (this.engine.isItPossibleToReplaceSheetContent(this.
|
821
|
+
if (this.engine.isItPossibleToReplaceSheetContent(this.sheetId, sourceDataArray)) {
|
715
822
|
_classPrivateFieldSet(this, _internalOperationPending, true);
|
716
823
|
|
717
|
-
var dependentCells = this.engine.setSheetContent(this.
|
824
|
+
var dependentCells = this.engine.setSheetContent(this.sheetId, this.hot.getSourceDataArray());
|
718
825
|
this.renderDependentSheets(dependentCells);
|
719
826
|
|
720
827
|
_classPrivateFieldSet(this, _internalOperationPending, false);
|
@@ -739,18 +846,23 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
739
846
|
value: function onModifyData(row, column, valueHolder, ioMode) {
|
740
847
|
if (ioMode !== 'get' || _classPrivateFieldGet(this, _internalOperationPending) || this.sheetName === null || !this.engine.doesSheetExist(this.sheetName)) {
|
741
848
|
return;
|
742
|
-
}
|
849
|
+
}
|
743
850
|
|
851
|
+
var visualRow = this.hot.toVisualRow(row); // `column` is here as visual index because of inconsistencies related to hook execution in `src/dataMap`.
|
744
852
|
|
745
|
-
var isFormulaCellType = this.isFormulaCellType(
|
853
|
+
var isFormulaCellType = this.isFormulaCellType(visualRow, column);
|
746
854
|
|
747
855
|
if (!isFormulaCellType) {
|
748
|
-
|
749
|
-
valueHolder.value = unescapeFormulaExpression(valueHolder.value);
|
750
|
-
}
|
856
|
+
var cellType = this.getCellType(visualRow, column);
|
751
857
|
|
752
|
-
|
753
|
-
|
858
|
+
if (cellType !== 'ARRAY') {
|
859
|
+
if (isEscapedFormulaExpression(valueHolder.value)) {
|
860
|
+
valueHolder.value = unescapeFormulaExpression(valueHolder.value);
|
861
|
+
}
|
862
|
+
|
863
|
+
return;
|
864
|
+
}
|
865
|
+
} // `toPhysicalColumn` is here because of inconsistencies related to hook execution in `DataMap`.
|
754
866
|
|
755
867
|
|
756
868
|
var address = {
|
@@ -781,12 +893,17 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
781
893
|
return;
|
782
894
|
}
|
783
895
|
|
896
|
+
var visualRow = this.hot.toVisualRow(row);
|
784
897
|
var visualColumn = this.hot.propToCol(columnOrProp); // `column` is here as visual index because of inconsistencies related to hook execution in `src/dataMap`.
|
785
898
|
|
786
|
-
var isFormulaCellType = this.isFormulaCellType(
|
899
|
+
var isFormulaCellType = this.isFormulaCellType(visualRow, visualColumn);
|
787
900
|
|
788
901
|
if (!isFormulaCellType) {
|
789
|
-
|
902
|
+
var cellType = this.getCellType(visualRow, visualColumn);
|
903
|
+
|
904
|
+
if (cellType !== 'ARRAY') {
|
905
|
+
return;
|
906
|
+
}
|
790
907
|
}
|
791
908
|
|
792
909
|
var dimensions = this.engine.getSheetDimensions(this.engine.getSheetId(this.sheetName)); // Don't actually change the source data if HyperFormula is not
|
@@ -811,42 +928,49 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
811
928
|
*
|
812
929
|
* @private
|
813
930
|
* @param {Array[]} changes An array of changes in format [[row, prop, oldValue, value], ...].
|
931
|
+
* @param {string} [source] String that identifies source of hook call
|
932
|
+
* ([list of all available sources]{@link http://docs.handsontable.com/tutorial-using-callbacks.html#page-source-definition}).
|
814
933
|
*/
|
815
934
|
|
816
935
|
}, {
|
817
936
|
key: "onAfterSetDataAtCell",
|
818
|
-
value: function onAfterSetDataAtCell(changes) {
|
819
|
-
var
|
937
|
+
value: function onAfterSetDataAtCell(changes, source) {
|
938
|
+
var _this14 = this;
|
939
|
+
|
940
|
+
if (isBlockedSource(source)) {
|
941
|
+
return;
|
942
|
+
}
|
820
943
|
|
821
|
-
var dependentCells = [];
|
822
944
|
var outOfBoundsChanges = [];
|
823
945
|
var changedCells = [];
|
824
|
-
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
|
946
|
+
var dependentCells = this.engine.batch(function () {
|
947
|
+
changes.forEach(function (_ref9) {
|
948
|
+
var _ref10 = _slicedToArray(_ref9, 4),
|
949
|
+
row = _ref10[0],
|
950
|
+
prop = _ref10[1],
|
951
|
+
newValue = _ref10[3];
|
829
952
|
|
830
|
-
|
953
|
+
var column = _this14.hot.propToCol(prop);
|
831
954
|
|
832
|
-
|
955
|
+
var physicalRow = _this14.hot.toPhysicalRow(row);
|
833
956
|
|
834
|
-
|
957
|
+
var physicalColumn = _this14.hot.toPhysicalColumn(column);
|
835
958
|
|
836
|
-
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
959
|
+
var address = {
|
960
|
+
row: physicalRow,
|
961
|
+
col: physicalColumn,
|
962
|
+
sheet: _this14.sheetId
|
963
|
+
};
|
841
964
|
|
842
|
-
|
843
|
-
|
844
|
-
|
845
|
-
|
846
|
-
|
965
|
+
if (physicalRow !== null && physicalColumn !== null) {
|
966
|
+
_this14.syncChangeWithEngine(row, column, newValue);
|
967
|
+
} else {
|
968
|
+
outOfBoundsChanges.push([row, column, newValue]);
|
969
|
+
}
|
847
970
|
|
848
|
-
|
849
|
-
|
971
|
+
changedCells.push({
|
972
|
+
address: address
|
973
|
+
});
|
850
974
|
});
|
851
975
|
});
|
852
976
|
|
@@ -854,17 +978,18 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
854
978
|
// Workaround for rows/columns being created two times (by HOT and the engine).
|
855
979
|
// (unfortunately, this requires an extra re-render)
|
856
980
|
this.hot.addHookOnce('afterChange', function () {
|
857
|
-
var outOfBoundsDependentCells =
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
864
|
-
|
981
|
+
var outOfBoundsDependentCells = _this14.engine.batch(function () {
|
982
|
+
outOfBoundsChanges.forEach(function (_ref11) {
|
983
|
+
var _ref12 = _slicedToArray(_ref11, 3),
|
984
|
+
row = _ref12[0],
|
985
|
+
column = _ref12[1],
|
986
|
+
newValue = _ref12[2];
|
987
|
+
|
988
|
+
_this14.syncChangeWithEngine(row, column, newValue);
|
989
|
+
});
|
865
990
|
});
|
866
991
|
|
867
|
-
|
992
|
+
_this14.renderDependentSheets(outOfBoundsDependentCells, true);
|
868
993
|
});
|
869
994
|
}
|
870
995
|
|
@@ -876,28 +1001,40 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
876
1001
|
*
|
877
1002
|
* @private
|
878
1003
|
* @param {Array[]} changes An array of changes in format [[row, column, oldValue, value], ...].
|
1004
|
+
* @param {string} [source] String that identifies source of hook call
|
1005
|
+
* ([list of all available sources]{@link http://docs.handsontable.com/tutorial-using-callbacks.html#page-source-definition}).
|
879
1006
|
*/
|
880
1007
|
|
881
1008
|
}, {
|
882
1009
|
key: "onAfterSetSourceDataAtCell",
|
883
|
-
value: function onAfterSetSourceDataAtCell(changes) {
|
884
|
-
var
|
1010
|
+
value: function onAfterSetSourceDataAtCell(changes, source) {
|
1011
|
+
var _this15 = this;
|
1012
|
+
|
1013
|
+
if (isBlockedSource(source)) {
|
1014
|
+
return;
|
1015
|
+
}
|
885
1016
|
|
886
1017
|
var dependentCells = [];
|
887
1018
|
var changedCells = [];
|
888
1019
|
changes.forEach(function (_ref13) {
|
889
1020
|
var _ref14 = _slicedToArray(_ref13, 4),
|
890
1021
|
row = _ref14[0],
|
891
|
-
|
1022
|
+
prop = _ref14[1],
|
892
1023
|
newValue = _ref14[3];
|
893
1024
|
|
1025
|
+
var column = _this15.hot.propToCol(prop);
|
1026
|
+
|
1027
|
+
if (!isNumeric(column)) {
|
1028
|
+
return;
|
1029
|
+
}
|
1030
|
+
|
894
1031
|
var address = {
|
895
1032
|
row: row,
|
896
|
-
col:
|
897
|
-
sheet:
|
1033
|
+
col: _this15.toPhysicalColumnPosition(column),
|
1034
|
+
sheet: _this15.sheetId
|
898
1035
|
};
|
899
1036
|
|
900
|
-
if (!
|
1037
|
+
if (!_this15.engine.isItPossibleToSetCellContents(address)) {
|
901
1038
|
warn("Not possible to set source cell data at ".concat(JSON.stringify(address)));
|
902
1039
|
return;
|
903
1040
|
}
|
@@ -905,7 +1042,7 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
905
1042
|
changedCells.push({
|
906
1043
|
address: address
|
907
1044
|
});
|
908
|
-
dependentCells.push.apply(dependentCells, _toConsumableArray(
|
1045
|
+
dependentCells.push.apply(dependentCells, _toConsumableArray(_this15.engine.setCellContents(address, newValue)));
|
909
1046
|
});
|
910
1047
|
this.renderDependentSheets(dependentCells);
|
911
1048
|
this.validateDependentCells(dependentCells, changedCells);
|
@@ -922,7 +1059,7 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
922
1059
|
}, {
|
923
1060
|
key: "onBeforeCreateRow",
|
924
1061
|
value: function onBeforeCreateRow(row, amount) {
|
925
|
-
if (!this.engine.isItPossibleToAddRows(this.sheetId, [this.toPhysicalRowPosition(row), amount])) {
|
1062
|
+
if (this.sheetId === null || !this.engine.doesSheetExist(this.sheetName) || !this.engine.isItPossibleToAddRows(this.sheetId, [this.toPhysicalRowPosition(row), amount])) {
|
926
1063
|
return false;
|
927
1064
|
}
|
928
1065
|
}
|
@@ -938,7 +1075,7 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
938
1075
|
}, {
|
939
1076
|
key: "onBeforeCreateCol",
|
940
1077
|
value: function onBeforeCreateCol(col, amount) {
|
941
|
-
if (!this.engine.isItPossibleToAddColumns(this.sheetId, [this.toPhysicalColumnPosition(col), amount])) {
|
1078
|
+
if (this.sheetId === null || !this.engine.doesSheetExist(this.sheetName) || !this.engine.isItPossibleToAddColumns(this.sheetId, [this.toPhysicalColumnPosition(col), amount])) {
|
942
1079
|
return false;
|
943
1080
|
}
|
944
1081
|
}
|
@@ -955,10 +1092,10 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
955
1092
|
}, {
|
956
1093
|
key: "onBeforeRemoveRow",
|
957
1094
|
value: function onBeforeRemoveRow(row, amount, physicalRows) {
|
958
|
-
var
|
1095
|
+
var _this16 = this;
|
959
1096
|
|
960
1097
|
var possible = physicalRows.every(function (physicalRow) {
|
961
|
-
return
|
1098
|
+
return _this16.engine.isItPossibleToRemoveRows(_this16.sheetId, [physicalRow, 1]);
|
962
1099
|
});
|
963
1100
|
return possible === false ? false : void 0;
|
964
1101
|
}
|
@@ -975,10 +1112,10 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
975
1112
|
}, {
|
976
1113
|
key: "onBeforeRemoveCol",
|
977
1114
|
value: function onBeforeRemoveCol(col, amount, physicalColumns) {
|
978
|
-
var
|
1115
|
+
var _this17 = this;
|
979
1116
|
|
980
1117
|
var possible = physicalColumns.every(function (physicalColumn) {
|
981
|
-
return
|
1118
|
+
return _this17.engine.isItPossibleToRemoveColumns(_this17.sheetId, [physicalColumn, 1]);
|
982
1119
|
});
|
983
1120
|
return possible === false ? false : void 0;
|
984
1121
|
}
|
@@ -988,11 +1125,17 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
988
1125
|
* @private
|
989
1126
|
* @param {number} row Represents the visual index of first newly created row in the data source array.
|
990
1127
|
* @param {number} amount Number of newly created rows in the data source array.
|
1128
|
+
* @param {string} [source] String that identifies source of hook call
|
1129
|
+
* ([list of all available sources]{@link http://docs.handsontable.com/tutorial-using-callbacks.html#page-source-definition}).
|
991
1130
|
*/
|
992
1131
|
|
993
1132
|
}, {
|
994
1133
|
key: "onAfterCreateRow",
|
995
|
-
value: function onAfterCreateRow(row, amount) {
|
1134
|
+
value: function onAfterCreateRow(row, amount, source) {
|
1135
|
+
if (isBlockedSource(source)) {
|
1136
|
+
return;
|
1137
|
+
}
|
1138
|
+
|
996
1139
|
var changes = this.engine.addRows(this.sheetId, [this.toPhysicalRowPosition(row), amount]);
|
997
1140
|
this.renderDependentSheets(changes);
|
998
1141
|
}
|
@@ -1002,11 +1145,17 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
1002
1145
|
* @private
|
1003
1146
|
* @param {number} col Represents the visual index of first newly created column in the data source.
|
1004
1147
|
* @param {number} amount Number of newly created columns in the data source.
|
1148
|
+
* @param {string} [source] String that identifies source of hook call
|
1149
|
+
* ([list of all available sources]{@link http://docs.handsontable.com/tutorial-using-callbacks.html#page-source-definition}).
|
1005
1150
|
*/
|
1006
1151
|
|
1007
1152
|
}, {
|
1008
1153
|
key: "onAfterCreateCol",
|
1009
|
-
value: function onAfterCreateCol(col, amount) {
|
1154
|
+
value: function onAfterCreateCol(col, amount, source) {
|
1155
|
+
if (isBlockedSource(source)) {
|
1156
|
+
return;
|
1157
|
+
}
|
1158
|
+
|
1010
1159
|
var changes = this.engine.addColumns(this.sheetId, [this.toPhysicalColumnPosition(col), amount]);
|
1011
1160
|
this.renderDependentSheets(changes);
|
1012
1161
|
}
|
@@ -1017,17 +1166,23 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
1017
1166
|
* @param {number} row Visual index of starter row.
|
1018
1167
|
* @param {number} amount An amount of removed rows.
|
1019
1168
|
* @param {number[]} physicalRows An array of physical rows removed from the data source.
|
1169
|
+
* @param {string} [source] String that identifies source of hook call
|
1170
|
+
* ([list of all available sources]{@link http://docs.handsontable.com/tutorial-using-callbacks.html#page-source-definition}).
|
1020
1171
|
*/
|
1021
1172
|
|
1022
1173
|
}, {
|
1023
1174
|
key: "onAfterRemoveRow",
|
1024
|
-
value: function onAfterRemoveRow(row, amount, physicalRows) {
|
1025
|
-
var
|
1175
|
+
value: function onAfterRemoveRow(row, amount, physicalRows, source) {
|
1176
|
+
var _this18 = this;
|
1177
|
+
|
1178
|
+
if (isBlockedSource(source)) {
|
1179
|
+
return;
|
1180
|
+
}
|
1026
1181
|
|
1027
1182
|
var descendingPhysicalRows = physicalRows.sort().reverse();
|
1028
1183
|
var changes = this.engine.batch(function () {
|
1029
1184
|
descendingPhysicalRows.forEach(function (physicalRow) {
|
1030
|
-
|
1185
|
+
_this18.engine.removeRows(_this18.sheetId, [physicalRow, 1]);
|
1031
1186
|
});
|
1032
1187
|
});
|
1033
1188
|
this.renderDependentSheets(changes);
|
@@ -1039,21 +1194,59 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
1039
1194
|
* @param {number} col Visual index of starter column.
|
1040
1195
|
* @param {number} amount An amount of removed columns.
|
1041
1196
|
* @param {number[]} physicalColumns An array of physical columns removed from the data source.
|
1197
|
+
* @param {string} [source] String that identifies source of hook call
|
1198
|
+
* ([list of all available sources]{@link http://docs.handsontable.com/tutorial-using-callbacks.html#page-source-definition}).
|
1042
1199
|
*/
|
1043
1200
|
|
1044
1201
|
}, {
|
1045
1202
|
key: "onAfterRemoveCol",
|
1046
|
-
value: function onAfterRemoveCol(col, amount, physicalColumns) {
|
1047
|
-
var
|
1203
|
+
value: function onAfterRemoveCol(col, amount, physicalColumns, source) {
|
1204
|
+
var _this19 = this;
|
1205
|
+
|
1206
|
+
if (isBlockedSource(source)) {
|
1207
|
+
return;
|
1208
|
+
}
|
1048
1209
|
|
1049
1210
|
var descendingPhysicalColumns = physicalColumns.sort().reverse();
|
1050
1211
|
var changes = this.engine.batch(function () {
|
1051
1212
|
descendingPhysicalColumns.forEach(function (physicalColumn) {
|
1052
|
-
|
1213
|
+
_this19.engine.removeColumns(_this19.sheetId, [physicalColumn, 1]);
|
1053
1214
|
});
|
1054
1215
|
});
|
1055
1216
|
this.renderDependentSheets(changes);
|
1056
1217
|
}
|
1218
|
+
/**
|
1219
|
+
* `afterDetachChild` hook callback.
|
1220
|
+
* Used to sync the data of the rows detached in the Nested Rows plugin with the engine's dataset.
|
1221
|
+
*
|
1222
|
+
* @private
|
1223
|
+
* @param {object} parent An object representing the parent from which the element was detached.
|
1224
|
+
* @param {object} element The detached element.
|
1225
|
+
* @param {number} finalElementRowIndex The final row index of the detached element.
|
1226
|
+
*/
|
1227
|
+
|
1228
|
+
}, {
|
1229
|
+
key: "onAfterDetachChild",
|
1230
|
+
value: function onAfterDetachChild(parent, element, finalElementRowIndex) {
|
1231
|
+
var _element$__children,
|
1232
|
+
_this20 = this;
|
1233
|
+
|
1234
|
+
_classPrivateFieldSet(this, _internalOperationPending, true);
|
1235
|
+
|
1236
|
+
var 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());
|
1237
|
+
|
1238
|
+
_classPrivateFieldSet(this, _internalOperationPending, false);
|
1239
|
+
|
1240
|
+
rowsData.forEach(function (row, relativeRowIndex) {
|
1241
|
+
row.forEach(function (value, colIndex) {
|
1242
|
+
_this20.engine.setCellContents({
|
1243
|
+
col: colIndex,
|
1244
|
+
row: finalElementRowIndex + relativeRowIndex,
|
1245
|
+
sheet: _this20.sheetId
|
1246
|
+
}, [[value]]);
|
1247
|
+
});
|
1248
|
+
});
|
1249
|
+
}
|
1057
1250
|
/**
|
1058
1251
|
* Called when a value is updated in the engine.
|
1059
1252
|
*
|