handsontable 9.0.2 → 11.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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/calculator/viewportColumns.js +1 -1
- package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +1 -1
- package/3rdparty/walkontable/src/calculator/viewportRows.js +1 -1
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +1 -1
- package/3rdparty/walkontable/src/cell/coords.d.ts +16 -0
- package/3rdparty/walkontable/src/cell/coords.js +1 -1
- package/3rdparty/walkontable/src/cell/coords.mjs +1 -1
- package/3rdparty/walkontable/src/cell/range.d.ts +51 -0
- package/3rdparty/walkontable/src/cell/range.js +1 -1
- package/3rdparty/walkontable/src/cell/range.mjs +1 -1
- package/3rdparty/walkontable/src/core.js +1 -1
- package/3rdparty/walkontable/src/core.mjs +1 -1
- package/3rdparty/walkontable/src/event.js +1 -1
- package/3rdparty/walkontable/src/event.mjs +1 -1
- 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.d.ts +1 -0
- 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 +6 -6
- package/3rdparty/walkontable/src/overlay/bottom.mjs +5 -5
- package/3rdparty/walkontable/src/overlay/bottomLeftCorner.js +6 -6
- package/3rdparty/walkontable/src/overlay/bottomLeftCorner.mjs +5 -5
- 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 +6 -6
- package/3rdparty/walkontable/src/overlay/left.mjs +5 -5
- package/3rdparty/walkontable/src/overlay/registerer.js +1 -1
- package/3rdparty/walkontable/src/overlay/top.js +6 -17
- package/3rdparty/walkontable/src/overlay/top.mjs +5 -16
- package/3rdparty/walkontable/src/overlay/topLeftCorner.js +6 -6
- package/3rdparty/walkontable/src/overlay/topLeftCorner.mjs +5 -5
- package/3rdparty/walkontable/src/overlays.js +3 -1
- package/3rdparty/walkontable/src/overlays.mjs +2 -1
- 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 +4 -4
- package/3rdparty/walkontable/src/renderer/cells.mjs +4 -4
- package/3rdparty/walkontable/src/renderer/colGroup.js +6 -6
- package/3rdparty/walkontable/src/renderer/colGroup.mjs +5 -5
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +6 -6
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +5 -5
- package/3rdparty/walkontable/src/renderer/index.js +1 -1
- package/3rdparty/walkontable/src/renderer/index.mjs +1 -1
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +4 -4
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +4 -4
- package/3rdparty/walkontable/src/renderer/rows.js +6 -6
- package/3rdparty/walkontable/src/renderer/rows.mjs +5 -5
- package/3rdparty/walkontable/src/renderer/table.js +1 -1
- package/3rdparty/walkontable/src/renderer/table.mjs +1 -1
- package/3rdparty/walkontable/src/scroll.js +1 -1
- package/3rdparty/walkontable/src/scroll.mjs +1 -1
- package/3rdparty/walkontable/src/selection.js +6 -4
- package/3rdparty/walkontable/src/selection.mjs +4 -3
- package/3rdparty/walkontable/src/settings.js +1 -1
- package/3rdparty/walkontable/src/settings.mjs +1 -1
- package/3rdparty/walkontable/src/table/bottom.js +10 -6
- package/3rdparty/walkontable/src/table/bottom.mjs +9 -5
- package/3rdparty/walkontable/src/table/bottomLeftCorner.js +10 -6
- package/3rdparty/walkontable/src/table/bottomLeftCorner.mjs +9 -5
- package/3rdparty/walkontable/src/table/left.js +10 -6
- package/3rdparty/walkontable/src/table/left.mjs +9 -5
- package/3rdparty/walkontable/src/table/master.js +6 -6
- package/3rdparty/walkontable/src/table/master.mjs +5 -5
- package/3rdparty/walkontable/src/table/top.js +10 -6
- package/3rdparty/walkontable/src/table/top.mjs +9 -5
- package/3rdparty/walkontable/src/table/topLeftCorner.js +10 -6
- package/3rdparty/walkontable/src/table/topLeftCorner.mjs +9 -5
- package/3rdparty/walkontable/src/table.js +5 -3
- package/3rdparty/walkontable/src/table.mjs +3 -2
- package/3rdparty/walkontable/src/utils/column.js +2 -2
- package/3rdparty/walkontable/src/utils/column.mjs +2 -2
- package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
- package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
- package/3rdparty/walkontable/src/utils/orderView/constants.js +1 -1
- package/3rdparty/walkontable/src/utils/orderView/sharedView.js +6 -6
- package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +5 -5
- package/3rdparty/walkontable/src/utils/orderView/view.js +1 -1
- package/3rdparty/walkontable/src/utils/orderView/view.mjs +1 -1
- 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/3rdparty/walkontable/src/viewport.js +1 -1
- package/3rdparty/walkontable/src/viewport.mjs +1 -1
- package/CHANGELOG.md +92 -7
- package/LICENSE.txt +19 -22
- package/README.md +13 -8
- 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 +160 -0
- package/core.js +244 -189
- package/core.mjs +243 -190
- package/{dataMap.js → dataMap/dataMap.js} +39 -37
- package/{dataMap.mjs → dataMap/dataMap.mjs} +39 -37
- package/dataMap/index.js +9 -1
- package/dataMap/index.mjs +4 -2
- package/dataMap/metaManager/index.js +55 -7
- package/dataMap/metaManager/index.mjs +52 -7
- package/dataMap/metaManager/lazyFactoryMap.js +4 -4
- package/dataMap/metaManager/lazyFactoryMap.mjs +4 -4
- package/dataMap/metaManager/metaLayers/cellMeta.js +3 -1
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +2 -1
- package/dataMap/metaManager/metaLayers/columnMeta.js +1 -1
- package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
- package/dataMap/metaManager/metaLayers/globalMeta.js +5 -4
- package/dataMap/metaManager/metaLayers/globalMeta.mjs +5 -4
- package/dataMap/metaManager/metaLayers/tableMeta.js +1 -1
- package/dataMap/metaManager/metaLayers/tableMeta.mjs +1 -1
- package/dataMap/metaManager/metaSchema.js +3213 -1712
- package/dataMap/metaManager/metaSchema.mjs +3213 -1712
- package/dataMap/metaManager/mods/dynamicCellMeta.js +136 -0
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +119 -0
- package/dataMap/metaManager/utils.js +3 -3
- package/dataMap/replaceData.js +154 -0
- package/dataMap/replaceData.mjs +138 -0
- package/dataSource.js +3 -1
- package/dataSource.mjs +2 -1
- package/dist/README.md +2 -2
- package/dist/handsontable.css +508 -420
- package/dist/handsontable.full.css +621 -530
- package/dist/handsontable.full.js +54025 -48518
- package/dist/handsontable.full.min.css +27 -35
- package/dist/handsontable.full.min.js +181 -164
- package/dist/handsontable.js +37028 -33780
- package/dist/handsontable.min.css +27 -33
- package/dist/handsontable.min.js +22 -25
- package/dist/languages/all.js +2 -4
- package/dist/languages/all.min.js +1 -1
- package/dist/languages/de-CH.js +2 -4
- package/dist/languages/de-CH.min.js +1 -1
- package/dist/languages/de-DE.js +2 -4
- package/dist/languages/de-DE.min.js +1 -1
- package/dist/languages/en-US.js +2 -4
- package/dist/languages/en-US.min.js +1 -1
- package/dist/languages/es-MX.js +2 -4
- package/dist/languages/es-MX.min.js +1 -1
- package/dist/languages/fr-FR.js +2 -4
- package/dist/languages/fr-FR.min.js +1 -1
- package/dist/languages/it-IT.js +2 -4
- package/dist/languages/it-IT.min.js +1 -1
- package/dist/languages/ja-JP.js +2 -4
- package/dist/languages/ja-JP.min.js +1 -1
- package/dist/languages/ko-KR.js +2 -4
- package/dist/languages/ko-KR.min.js +1 -1
- package/dist/languages/lv-LV.js +2 -4
- package/dist/languages/lv-LV.min.js +1 -1
- package/dist/languages/nb-NO.js +2 -4
- package/dist/languages/nb-NO.min.js +1 -1
- package/dist/languages/nl-NL.js +2 -4
- package/dist/languages/nl-NL.min.js +1 -1
- package/dist/languages/pl-PL.js +2 -4
- package/dist/languages/pl-PL.min.js +1 -1
- package/dist/languages/pt-BR.js +2 -4
- package/dist/languages/pt-BR.min.js +1 -1
- package/dist/languages/ru-RU.js +2 -4
- package/dist/languages/ru-RU.min.js +1 -1
- package/dist/languages/zh-CN.js +2 -4
- package/dist/languages/zh-CN.min.js +1 -1
- package/dist/languages/zh-TW.js +2 -4
- package/dist/languages/zh-TW.min.js +1 -1
- package/editorManager.js +9 -7
- package/editorManager.mjs +8 -7
- package/editors/autocompleteEditor/autocompleteEditor.d.ts +29 -0
- package/editors/autocompleteEditor/autocompleteEditor.js +99 -91
- package/editors/autocompleteEditor/autocompleteEditor.mjs +97 -88
- 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 +11 -10
- package/editors/baseEditor/baseEditor.mjs +8 -8
- 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 +7 -7
- package/editors/checkboxEditor/checkboxEditor.mjs +5 -5
- 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 +21 -21
- 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 +8 -8
- package/editors/dropdownEditor/dropdownEditor.mjs +6 -6
- 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 +7 -7
- package/editors/handsontableEditor/handsontableEditor.mjs +6 -6
- 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 +6 -6
- package/editors/numericEditor/numericEditor.mjs +5 -5
- package/editors/passwordEditor/index.d.ts +1 -0
- package/editors/passwordEditor/passwordEditor.d.ts +7 -0
- package/editors/passwordEditor/passwordEditor.js +7 -7
- package/editors/passwordEditor/passwordEditor.mjs +6 -6
- 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 +7 -7
- package/editors/selectEditor/selectEditor.mjs +6 -6
- package/editors/textEditor/index.d.ts +1 -0
- package/editors/textEditor/textEditor.d.ts +24 -0
- package/editors/textEditor/textEditor.js +7 -7
- package/editors/textEditor/textEditor.mjs +6 -6
- package/eventManager.d.ts +13 -0
- package/eventManager.js +8 -4
- package/eventManager.mjs +7 -3
- 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 +8 -36
- package/helpers/data.mjs +2 -28
- package/helpers/date.d.ts +1 -0
- package/helpers/dom/element.d.ts +49 -0
- package/helpers/dom/element.js +45 -46
- package/helpers/dom/element.mjs +8 -9
- 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 +7 -7
- package/helpers/feature.mjs +1 -1
- 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 +6 -6
- package/helpers/mixed.mjs +3 -3
- package/helpers/number.d.ts +5 -0
- package/helpers/number.js +98 -19
- package/helpers/number.mjs +87 -19
- package/helpers/object.d.ts +16 -0
- package/helpers/object.js +12 -12
- package/helpers/object.mjs +1 -1
- 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 +3 -3
- 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-CH.js +1 -1
- package/i18n/languages/de-DE.d.ts +5 -0
- package/i18n/languages/de-DE.js +1 -1
- package/i18n/languages/en-US.d.ts +5 -0
- package/i18n/languages/en-US.js +1 -1
- package/i18n/languages/es-MX.d.ts +5 -0
- package/i18n/languages/es-MX.js +1 -1
- package/i18n/languages/fr-FR.d.ts +5 -0
- package/i18n/languages/fr-FR.js +1 -1
- package/i18n/languages/index.d.ts +35 -0
- package/i18n/languages/it-IT.d.ts +5 -0
- package/i18n/languages/it-IT.js +1 -1
- package/i18n/languages/ja-JP.d.ts +5 -0
- package/i18n/languages/ja-JP.js +1 -1
- package/i18n/languages/ko-KR.d.ts +5 -0
- package/i18n/languages/ko-KR.js +1 -1
- package/i18n/languages/lv-LV.d.ts +5 -0
- package/i18n/languages/lv-LV.js +1 -1
- package/i18n/languages/nb-NO.d.ts +5 -0
- package/i18n/languages/nb-NO.js +1 -1
- package/i18n/languages/nl-NL.d.ts +5 -0
- package/i18n/languages/nl-NL.js +1 -1
- package/i18n/languages/pl-PL.d.ts +5 -0
- package/i18n/languages/pl-PL.js +1 -1
- package/i18n/languages/pt-BR.d.ts +5 -0
- package/i18n/languages/pt-BR.js +1 -1
- package/i18n/languages/ru-RU.d.ts +5 -0
- package/i18n/languages/ru-RU.js +1 -1
- package/i18n/languages/zh-CN.d.ts +5 -0
- package/i18n/languages/zh-CN.js +1 -1
- package/i18n/languages/zh-TW.d.ts +5 -0
- package/i18n/languages/zh-TW.js +1 -1
- package/i18n/phraseFormatters/index.js +1 -1
- package/i18n/registry.d.ts +13 -0
- package/i18n/registry.js +5 -5
- package/i18n/utils.js +1 -1
- package/index.d.ts +516 -0
- package/index.js +41 -113
- package/index.mjs +17 -90
- package/languages/all.js +2 -4
- package/languages/de-CH.js +2 -4
- package/languages/de-DE.js +2 -4
- package/languages/en-US.js +2 -4
- package/languages/es-MX.js +2 -4
- package/languages/fr-FR.js +2 -4
- package/languages/index.js +2 -4
- package/languages/it-IT.js +2 -4
- package/languages/ja-JP.js +2 -4
- package/languages/ko-KR.js +2 -4
- package/languages/lv-LV.js +2 -4
- package/languages/nb-NO.js +2 -4
- package/languages/nl-NL.js +2 -4
- package/languages/pl-PL.js +2 -4
- package/languages/pt-BR.js +2 -4
- package/languages/ru-RU.js +2 -4
- package/languages/zh-CN.js +2 -4
- package/languages/zh-TW.js +2 -4
- package/mixins/localHooks.js +17 -14
- package/mixins/localHooks.mjs +16 -13
- package/package.json +106 -15
- package/pluginHooks.d.ts +257 -0
- package/pluginHooks.js +216 -141
- package/pluginHooks.mjs +215 -141
- package/plugins/autoColumnSize/autoColumnSize.d.ts +27 -0
- package/plugins/autoColumnSize/autoColumnSize.js +24 -22
- package/plugins/autoColumnSize/autoColumnSize.mjs +22 -21
- 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 +29 -21
- package/plugins/autoRowSize/autoRowSize.mjs +26 -19
- 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 +12 -21
- package/plugins/autofill/autofill.mjs +9 -18
- 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 +6 -6
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +5 -5
- package/plugins/bindRowsWithHeaders/index.d.ts +1 -0
- package/plugins/bindRowsWithHeaders/index.js +1 -1
- package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +7 -7
- package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +6 -6
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +9 -7
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +7 -6
- package/plugins/collapsibleColumns/collapsibleColumns.d.ts +22 -0
- package/plugins/collapsibleColumns/collapsibleColumns.js +34 -27
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +32 -26
- 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 +21 -19
- package/plugins/columnSorting/columnSorting.mjs +18 -17
- package/plugins/columnSorting/columnStatesManager.js +6 -4
- package/plugins/columnSorting/columnStatesManager.mjs +5 -4
- 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 +32 -14
- package/plugins/columnSummary/columnSummary.mjs +30 -12
- package/plugins/columnSummary/endpoints.js +7 -5
- package/plugins/columnSummary/endpoints.mjs +6 -5
- package/plugins/columnSummary/index.d.ts +1 -0
- package/plugins/columnSummary/index.js +1 -1
- package/plugins/comments/commentEditor.js +7 -3
- package/plugins/comments/commentEditor.mjs +7 -3
- package/plugins/comments/comments.d.ts +50 -0
- package/plugins/comments/comments.js +49 -88
- package/plugins/comments/comments.mjs +49 -87
- package/plugins/comments/displaySwitch.js +2 -2
- package/plugins/comments/displaySwitch.mjs +2 -2
- package/plugins/comments/index.d.ts +1 -0
- package/plugins/comments/index.js +1 -1
- package/plugins/contextMenu/commandExecutor.js +2 -2
- package/plugins/contextMenu/commandExecutor.mjs +2 -2
- package/plugins/contextMenu/contextMenu.d.ts +65 -0
- package/plugins/contextMenu/contextMenu.js +9 -8
- package/plugins/contextMenu/contextMenu.mjs +7 -6
- package/plugins/contextMenu/cursor.js +2 -2
- package/plugins/contextMenu/cursor.mjs +2 -2
- package/plugins/contextMenu/index.d.ts +1 -0
- package/plugins/contextMenu/index.js +1 -1
- package/plugins/contextMenu/itemsFactory.js +2 -2
- package/plugins/contextMenu/itemsFactory.mjs +2 -2
- package/plugins/contextMenu/menu.js +5 -5
- package/plugins/contextMenu/menu.mjs +4 -4
- package/plugins/contextMenu/predefinedItems/alignment.js +2 -2
- package/plugins/contextMenu/predefinedItems/clearColumn.js +2 -2
- package/plugins/contextMenu/predefinedItems/columnLeft.js +2 -2
- package/plugins/contextMenu/predefinedItems/columnRight.js +2 -2
- package/plugins/contextMenu/predefinedItems/noItems.js +1 -1
- package/plugins/contextMenu/predefinedItems/readOnly.js +2 -2
- package/plugins/contextMenu/predefinedItems/redo.js +2 -2
- package/plugins/contextMenu/predefinedItems/removeColumn.js +4 -2
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +1 -0
- package/plugins/contextMenu/predefinedItems/removeRow.js +4 -2
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +1 -0
- package/plugins/contextMenu/predefinedItems/rowAbove.js +2 -2
- package/plugins/contextMenu/predefinedItems/rowBelow.js +2 -2
- package/plugins/contextMenu/predefinedItems/separator.js +1 -1
- package/plugins/contextMenu/predefinedItems/undo.js +2 -2
- package/plugins/contextMenu/predefinedItems.js +3 -3
- package/plugins/contextMenu/utils.js +10 -10
- package/plugins/copyPaste/clipboardData.js +4 -1
- package/plugins/copyPaste/clipboardData.mjs +4 -1
- package/plugins/copyPaste/contextMenuItem/copy.js +1 -1
- package/plugins/copyPaste/contextMenuItem/cut.js +1 -1
- package/plugins/copyPaste/copyPaste.d.ts +35 -0
- package/plugins/copyPaste/copyPaste.js +14 -11
- package/plugins/copyPaste/copyPaste.mjs +12 -10
- package/plugins/copyPaste/focusableElement.js +2 -3
- package/plugins/copyPaste/focusableElement.mjs +2 -3
- package/plugins/copyPaste/index.d.ts +1 -0
- package/plugins/copyPaste/index.js +1 -1
- package/plugins/copyPaste/pasteEvent.js +9 -2
- package/plugins/copyPaste/pasteEvent.mjs +9 -2
- 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.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 +8 -8
- package/plugins/dragToScroll/dragToScroll.mjs +6 -6
- 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 +8 -8
- package/plugins/dropdownMenu/dropdownMenu.mjs +6 -6
- 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 +9 -9
- package/plugins/exportFile/exportFile.mjs +7 -7
- 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 +1 -2
- package/plugins/exportFile/types/_base.mjs +1 -2
- package/plugins/exportFile/types/csv.js +6 -7
- package/plugins/exportFile/types/csv.mjs +5 -6
- package/plugins/filters/component/_base.js +2 -2
- package/plugins/filters/component/_base.mjs +2 -2
- package/plugins/filters/component/actionBar.js +7 -7
- package/plugins/filters/component/actionBar.mjs +6 -6
- package/plugins/filters/component/condition.js +10 -8
- package/plugins/filters/component/condition.mjs +8 -7
- package/plugins/filters/component/operators.js +7 -7
- package/plugins/filters/component/operators.mjs +6 -6
- package/plugins/filters/component/value.js +15 -8
- package/plugins/filters/component/value.mjs +13 -7
- package/plugins/filters/condition/beginsWith.js +5 -3
- package/plugins/filters/condition/beginsWith.mjs +2 -1
- package/plugins/filters/condition/between.js +4 -2
- package/plugins/filters/condition/between.mjs +1 -0
- package/plugins/filters/condition/byValue.js +3 -1
- package/plugins/filters/condition/byValue.mjs +1 -0
- package/plugins/filters/condition/contains.js +5 -3
- package/plugins/filters/condition/contains.mjs +2 -1
- package/plugins/filters/condition/date/after.js +4 -2
- package/plugins/filters/condition/date/after.mjs +1 -0
- package/plugins/filters/condition/date/before.js +4 -2
- package/plugins/filters/condition/date/before.mjs +1 -0
- package/plugins/filters/condition/date/today.js +2 -2
- package/plugins/filters/condition/date/tomorrow.js +2 -2
- package/plugins/filters/condition/date/yesterday.js +2 -2
- package/plugins/filters/condition/empty.js +2 -2
- package/plugins/filters/condition/endsWith.js +5 -3
- package/plugins/filters/condition/endsWith.mjs +2 -1
- package/plugins/filters/condition/equal.js +5 -3
- package/plugins/filters/condition/equal.mjs +2 -1
- package/plugins/filters/condition/false.js +1 -1
- package/plugins/filters/condition/greaterThan.js +4 -2
- package/plugins/filters/condition/greaterThan.mjs +1 -0
- package/plugins/filters/condition/greaterThanOrEqual.js +4 -2
- package/plugins/filters/condition/greaterThanOrEqual.mjs +1 -0
- package/plugins/filters/condition/lessThan.js +4 -2
- package/plugins/filters/condition/lessThan.mjs +1 -0
- package/plugins/filters/condition/lessThanOrEqual.js +4 -2
- package/plugins/filters/condition/lessThanOrEqual.mjs +1 -0
- package/plugins/filters/condition/none.js +2 -2
- package/plugins/filters/condition/notBetween.js +2 -2
- package/plugins/filters/condition/notContains.js +2 -2
- package/plugins/filters/condition/notEmpty.js +2 -2
- package/plugins/filters/condition/notEqual.js +2 -2
- 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 +4 -2
- package/plugins/filters/conditionUpdateObserver.mjs +3 -2
- package/plugins/filters/constants.js +2 -1
- package/plugins/filters/constants.mjs +1 -0
- package/plugins/filters/dataFilter.js +2 -2
- package/plugins/filters/dataFilter.mjs +2 -2
- package/plugins/filters/filters.d.ts +56 -0
- package/plugins/filters/filters.js +15 -11
- package/plugins/filters/filters.mjs +13 -10
- 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 +4 -4
- package/plugins/filters/logicalOperations/conjunction.mjs +1 -0
- package/plugins/filters/logicalOperations/disjunction.js +4 -4
- package/plugins/filters/logicalOperations/disjunction.mjs +1 -0
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +4 -4
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +1 -0
- package/plugins/filters/ui/_base.js +4 -5
- package/plugins/filters/ui/_base.mjs +3 -4
- package/plugins/filters/ui/input.js +6 -6
- package/plugins/filters/ui/input.mjs +6 -6
- package/plugins/filters/ui/link.js +6 -6
- package/plugins/filters/ui/link.mjs +6 -6
- package/plugins/filters/ui/multipleSelect.js +34 -8
- package/plugins/filters/ui/multipleSelect.mjs +33 -8
- package/plugins/filters/ui/radioInput.js +6 -6
- package/plugins/filters/ui/radioInput.mjs +6 -6
- package/plugins/filters/ui/select.js +6 -6
- package/plugins/filters/ui/select.mjs +6 -6
- package/plugins/filters/utils.js +3 -3
- package/plugins/formulas/engine/register.js +4 -4
- package/plugins/formulas/engine/register.mjs +1 -1
- package/plugins/formulas/engine/settings.js +6 -6
- package/plugins/formulas/engine/settings.mjs +4 -5
- package/plugins/formulas/formulas.d.ts +31 -0
- package/plugins/formulas/formulas.js +287 -91
- package/plugins/formulas/formulas.mjs +280 -88
- 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 +1 -0
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +5 -3
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -1
- package/plugins/hiddenColumns/hiddenColumns.d.ts +21 -0
- package/plugins/hiddenColumns/hiddenColumns.js +39 -27
- package/plugins/hiddenColumns/hiddenColumns.mjs +38 -26
- 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 +1 -0
- package/plugins/hiddenRows/contextMenuItem/showRow.js +5 -3
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -1
- package/plugins/hiddenRows/hiddenRows.d.ts +21 -0
- package/plugins/hiddenRows/hiddenRows.js +39 -28
- package/plugins/hiddenRows/hiddenRows.mjs +38 -27
- 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 +1 -0
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +3 -1
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -0
- 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 -8
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +10 -7
- 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 +27 -25
- package/plugins/manualColumnMove/manualColumnMove.mjs +26 -24
- package/plugins/manualColumnMove/ui/_base.js +2 -2
- package/plugins/manualColumnMove/ui/_base.mjs +2 -2
- package/plugins/manualColumnMove/ui/backlight.js +7 -7
- package/plugins/manualColumnMove/ui/backlight.mjs +6 -6
- package/plugins/manualColumnMove/ui/guideline.js +7 -7
- package/plugins/manualColumnMove/ui/guideline.mjs +6 -6
- 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 +10 -10
- package/plugins/manualColumnResize/manualColumnResize.mjs +9 -9
- 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 +24 -22
- package/plugins/manualRowMove/manualRowMove.mjs +23 -21
- package/plugins/manualRowMove/ui/_base.js +2 -3
- package/plugins/manualRowMove/ui/_base.mjs +2 -3
- package/plugins/manualRowMove/ui/backlight.js +8 -8
- package/plugins/manualRowMove/ui/backlight.mjs +7 -7
- package/plugins/manualRowMove/ui/guideline.js +8 -8
- package/plugins/manualRowMove/ui/guideline.mjs +7 -7
- 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 -6
- package/plugins/manualRowResize/manualRowResize.mjs +5 -5
- package/plugins/mergeCells/calculations/autofill.js +4 -3
- package/plugins/mergeCells/calculations/autofill.mjs +3 -3
- package/plugins/mergeCells/calculations/selection.js +2 -3
- package/plugins/mergeCells/calculations/selection.mjs +2 -3
- package/plugins/mergeCells/cellCoords.js +2 -2
- package/plugins/mergeCells/cellCoords.mjs +2 -2
- package/plugins/mergeCells/cellsCollection.js +6 -4
- package/plugins/mergeCells/cellsCollection.mjs +5 -4
- package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -1
- 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 +8 -6
- package/plugins/mergeCells/mergeCells.mjs +6 -5
- 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 +8 -8
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +6 -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 +9 -8
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +7 -6
- 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 +24 -20
- package/plugins/nestedHeaders/nestedHeaders.mjs +22 -18
- package/plugins/nestedHeaders/stateManager/headersTree.js +13 -7
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +12 -7
- package/plugins/nestedHeaders/stateManager/index.js +10 -7
- package/plugins/nestedHeaders/stateManager/index.mjs +10 -7
- 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 +11 -7
- package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +11 -7
- package/plugins/nestedHeaders/utils/ghostTable.js +4 -1
- package/plugins/nestedHeaders/utils/ghostTable.mjs +4 -1
- package/plugins/nestedRows/data/dataManager.js +42 -16
- package/plugins/nestedRows/data/dataManager.mjs +40 -15
- 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 +34 -35
- package/plugins/nestedRows/nestedRows.mjs +31 -33
- package/plugins/nestedRows/ui/_base.js +7 -4
- package/plugins/nestedRows/ui/_base.mjs +7 -4
- package/plugins/nestedRows/ui/collapsing.js +9 -8
- package/plugins/nestedRows/ui/collapsing.mjs +7 -7
- package/plugins/nestedRows/ui/contextMenu.js +5 -6
- package/plugins/nestedRows/ui/contextMenu.mjs +5 -6
- package/plugins/nestedRows/ui/headers.js +7 -8
- package/plugins/nestedRows/ui/headers.mjs +6 -7
- package/plugins/nestedRows/utils/rowMoveController.js +7 -6
- package/plugins/nestedRows/utils/rowMoveController.mjs +5 -5
- package/plugins/persistentState/index.d.ts +1 -0
- package/plugins/persistentState/persistentState.d.ts +13 -0
- package/plugins/persistentState/persistentState.js +15 -7
- package/plugins/persistentState/persistentState.mjs +14 -6
- package/plugins/persistentState/storage.js +2 -2
- package/plugins/persistentState/storage.mjs +2 -2
- package/plugins/registry.d.ts +9 -0
- package/plugins/registry.js +3 -1
- package/plugins/registry.mjs +1 -0
- package/plugins/search/index.d.ts +1 -0
- package/plugins/search/search.d.ts +28 -0
- package/plugins/search/search.js +10 -10
- package/plugins/search/search.mjs +10 -10
- package/plugins/touchScroll/index.d.ts +1 -0
- package/plugins/touchScroll/touchScroll.d.ts +13 -0
- package/plugins/touchScroll/touchScroll.js +16 -16
- package/plugins/touchScroll/touchScroll.mjs +15 -14
- package/plugins/trimRows/index.d.ts +1 -0
- package/plugins/trimRows/trimRows.d.ts +17 -0
- package/plugins/trimRows/trimRows.js +6 -6
- package/plugins/trimRows/trimRows.mjs +6 -6
- package/plugins/undoRedo/index.d.ts +1 -0
- package/plugins/undoRedo/index.js +1 -1
- package/plugins/undoRedo/undoRedo.d.ts +49 -0
- package/plugins/undoRedo/undoRedo.js +30 -32
- package/plugins/undoRedo/undoRedo.mjs +28 -31
- 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 +10 -8
- package/selection/highlight/highlight.mjs +8 -7
- package/selection/highlight/types/activeHeader.js +4 -2
- package/selection/highlight/types/activeHeader.mjs +3 -2
- package/selection/highlight/types/area.js +4 -2
- package/selection/highlight/types/area.mjs +3 -2
- package/selection/highlight/types/cell.js +4 -2
- package/selection/highlight/types/cell.mjs +3 -2
- package/selection/highlight/types/customSelection.js +4 -2
- package/selection/highlight/types/customSelection.mjs +3 -2
- package/selection/highlight/types/fill.js +4 -2
- package/selection/highlight/types/fill.mjs +3 -2
- package/selection/highlight/types/header.js +4 -2
- package/selection/highlight/types/header.mjs +3 -2
- package/selection/highlight/types/index.js +4 -2
- package/selection/highlight/types/index.mjs +3 -2
- package/selection/highlight/visualSelection.js +9 -7
- package/selection/highlight/visualSelection.mjs +7 -6
- 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 +6 -6
- package/selection/range.mjs +5 -5
- package/selection/selection.js +18 -9
- package/selection/selection.mjs +17 -9
- package/selection/transformation.js +4 -3
- package/selection/transformation.mjs +4 -3
- package/selection/utils.js +6 -4
- package/selection/utils.mjs +3 -2
- package/settings.d.ts +208 -0
- package/tableView.js +21 -15
- package/tableView.mjs +19 -14
- package/translations/changesObservable/observable.js +11 -6
- package/translations/changesObservable/observable.mjs +11 -6
- package/translations/changesObservable/observer.js +7 -2
- package/translations/changesObservable/observer.mjs +7 -2
- 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 +46 -0
- package/translations/indexMapper.js +38 -13
- package/translations/indexMapper.mjs +35 -12
- package/translations/mapCollections/aggregatedCollection.js +6 -6
- package/translations/mapCollections/aggregatedCollection.mjs +5 -5
- package/translations/mapCollections/index.js +2 -0
- package/translations/mapCollections/mapCollection.js +2 -2
- package/translations/mapCollections/mapCollection.mjs +1 -1
- package/translations/maps/hidingMap.js +6 -6
- package/translations/maps/hidingMap.mjs +5 -5
- package/translations/maps/indexMap.d.ts +10 -0
- package/translations/maps/indexMap.js +1 -1
- package/translations/maps/indexMap.mjs +1 -1
- package/translations/maps/indexesSequence.js +7 -7
- package/translations/maps/indexesSequence.mjs +6 -6
- package/translations/maps/linkedPhysicalIndexToValueMap.js +7 -5
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +6 -5
- package/translations/maps/physicalIndexToValueMap.js +7 -7
- package/translations/maps/physicalIndexToValueMap.mjs +6 -6
- package/translations/maps/trimmingMap.js +6 -6
- package/translations/maps/trimmingMap.mjs +5 -5
- 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/linkedList.js +3 -3
- package/utils/dataStructures/linkedList.mjs +3 -3
- package/utils/dataStructures/priorityMap.js +3 -1
- package/utils/dataStructures/priorityMap.mjs +1 -0
- package/utils/dataStructures/queue.js +1 -1
- package/utils/dataStructures/queue.mjs +1 -1
- package/utils/dataStructures/stack.js +1 -1
- package/utils/dataStructures/stack.mjs +1 -1
- package/utils/dataStructures/tree.js +6 -4
- package/utils/dataStructures/tree.mjs +4 -3
- package/utils/dataStructures/uniqueMap.js +2 -0
- package/utils/dataStructures/uniqueMap.mjs +1 -0
- package/utils/dataStructures/uniqueSet.js +2 -0
- package/utils/dataStructures/uniqueSet.mjs +1 -0
- package/utils/ghostTable.js +17 -5
- package/utils/ghostTable.mjs +16 -5
- package/utils/interval.js +2 -3
- package/utils/interval.mjs +1 -2
- package/utils/parseTable.d.ts +5 -0
- package/utils/parseTable.js +1 -1
- package/utils/rootInstance.js +3 -2
- package/utils/samplesGenerator.js +1 -2
- package/utils/samplesGenerator.mjs +1 -2
- 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,7 +6,11 @@ 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
|
9
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
12
|
+
|
13
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
10
14
|
|
11
15
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
12
16
|
|
@@ -21,9 +25,9 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
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,24 +48,28 @@ 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
|
|
50
58
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
51
59
|
|
52
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
60
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); 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
|
|
58
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
66
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
59
67
|
|
60
68
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
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,21 +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
|
109
131
|
* @class Formulas
|
110
132
|
*/
|
111
133
|
|
134
|
+
|
112
135
|
var _internalOperationPending = /*#__PURE__*/new WeakMap();
|
113
136
|
|
114
137
|
var _hotWasInitializedWithEmptyData = /*#__PURE__*/new WeakMap();
|
@@ -131,17 +154,17 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
131
154
|
|
132
155
|
_this = _super.call.apply(_super, [this].concat(_args));
|
133
156
|
|
134
|
-
|
157
|
+
_classPrivateFieldInitSpec(_assertThisInitialized(_this), _internalOperationPending, {
|
135
158
|
writable: true,
|
136
159
|
value: false
|
137
160
|
});
|
138
161
|
|
139
|
-
|
162
|
+
_classPrivateFieldInitSpec(_assertThisInitialized(_this), _hotWasInitializedWithEmptyData, {
|
140
163
|
writable: true,
|
141
164
|
value: false
|
142
165
|
});
|
143
166
|
|
144
|
-
|
167
|
+
_classPrivateFieldInitSpec(_assertThisInitialized(_this), _engineListeners, {
|
145
168
|
writable: true,
|
146
169
|
value: [['valuesUpdated', function () {
|
147
170
|
var _this2;
|
@@ -226,7 +249,11 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
226
249
|
|
227
250
|
|
228
251
|
if (this.sheetName !== null && !this.engine.doesSheetExist(this.sheetName)) {
|
229
|
-
|
252
|
+
var newSheetName = this.addSheet(this.sheetName, this.hot.getSourceDataArray());
|
253
|
+
|
254
|
+
if (newSheetName !== false) {
|
255
|
+
this.sheetName = newSheetName;
|
256
|
+
}
|
230
257
|
}
|
231
258
|
|
232
259
|
this.addHook('beforeLoadData', function () {
|
@@ -276,10 +303,31 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
276
303
|
});
|
277
304
|
this.addHook('afterRemoveCol', function () {
|
278
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);
|
279
330
|
});
|
280
|
-
var autofillHooks = createAutofillHooks(this);
|
281
|
-
this.addHook('beforeAutofill', autofillHooks.beforeAutofill);
|
282
|
-
this.addHook('afterAutofill', autofillHooks.afterAutofill);
|
283
331
|
|
284
332
|
_classPrivateFieldGet(this, _engineListeners).forEach(function (_ref) {
|
285
333
|
var _ref2 = _slicedToArray(_ref, 2),
|
@@ -309,6 +357,7 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
309
357
|
});
|
310
358
|
|
311
359
|
unregisterEngine(this.engine, this.hot);
|
360
|
+
this.engine = null;
|
312
361
|
|
313
362
|
_get(_getPrototypeOf(Formulas.prototype), "disablePlugin", this).call(this);
|
314
363
|
}
|
@@ -365,6 +414,7 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
365
414
|
_classPrivateFieldSet(this, _engineListeners, null);
|
366
415
|
|
367
416
|
unregisterEngine(this.engine, this.hot);
|
417
|
+
this.engine = null;
|
368
418
|
|
369
419
|
_get(_getPrototypeOf(Formulas.prototype), "destroy", this).call(this);
|
370
420
|
}
|
@@ -454,7 +504,7 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
454
504
|
var actualSheetName = this.engine.addSheet(sheetName !== null && sheetName !== void 0 ? sheetName : void 0);
|
455
505
|
|
456
506
|
if (sheetData) {
|
457
|
-
this.engine.setSheetContent(actualSheetName, sheetData);
|
507
|
+
this.engine.setSheetContent(this.engine.getSheetId(actualSheetName), sheetData);
|
458
508
|
}
|
459
509
|
|
460
510
|
return actualSheetName;
|
@@ -491,18 +541,26 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
491
541
|
* @param {number} row Visual row index.
|
492
542
|
* @param {number} column Visual column index.
|
493
543
|
* @param {number} [sheet] The target sheet id, defaults to the current sheet.
|
494
|
-
* @returns {string} Possible values: 'FORMULA' | 'VALUE' | '
|
544
|
+
* @returns {string} Possible values: 'FORMULA' | 'VALUE' | 'ARRAYFORMULA' | 'EMPTY'.
|
495
545
|
*/
|
496
546
|
|
497
547
|
}, {
|
498
548
|
key: "getCellType",
|
499
549
|
value: function getCellType(row, column) {
|
500
550
|
var sheet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.sheetId;
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
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
|
+
}
|
506
564
|
}
|
507
565
|
/**
|
508
566
|
* Returns `true` if under specified visual coordinates is formula.
|
@@ -517,8 +575,18 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
517
575
|
key: "isFormulaCellType",
|
518
576
|
value: function isFormulaCellType(row, column) {
|
519
577
|
var sheet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.sheetId;
|
520
|
-
var
|
521
|
-
|
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
|
+
});
|
522
590
|
}
|
523
591
|
/**
|
524
592
|
* Renders dependent sheets (handsontable instances) based on the changes - list of the
|
@@ -667,6 +735,44 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
667
735
|
|
668
736
|
return value;
|
669
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
|
+
}
|
670
776
|
/**
|
671
777
|
* `beforeLoadData` hook callback.
|
672
778
|
*
|
@@ -712,10 +818,10 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
712
818
|
if (!_classPrivateFieldGet(this, _hotWasInitializedWithEmptyData)) {
|
713
819
|
var sourceDataArray = this.hot.getSourceDataArray();
|
714
820
|
|
715
|
-
if (this.engine.isItPossibleToReplaceSheetContent(this.
|
821
|
+
if (this.engine.isItPossibleToReplaceSheetContent(this.sheetId, sourceDataArray)) {
|
716
822
|
_classPrivateFieldSet(this, _internalOperationPending, true);
|
717
823
|
|
718
|
-
var dependentCells = this.engine.setSheetContent(this.
|
824
|
+
var dependentCells = this.engine.setSheetContent(this.sheetId, this.hot.getSourceDataArray());
|
719
825
|
this.renderDependentSheets(dependentCells);
|
720
826
|
|
721
827
|
_classPrivateFieldSet(this, _internalOperationPending, false);
|
@@ -740,18 +846,23 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
740
846
|
value: function onModifyData(row, column, valueHolder, ioMode) {
|
741
847
|
if (ioMode !== 'get' || _classPrivateFieldGet(this, _internalOperationPending) || this.sheetName === null || !this.engine.doesSheetExist(this.sheetName)) {
|
742
848
|
return;
|
743
|
-
}
|
849
|
+
}
|
744
850
|
|
851
|
+
var visualRow = this.hot.toVisualRow(row); // `column` is here as visual index because of inconsistencies related to hook execution in `src/dataMap`.
|
745
852
|
|
746
|
-
var isFormulaCellType = this.isFormulaCellType(
|
853
|
+
var isFormulaCellType = this.isFormulaCellType(visualRow, column);
|
747
854
|
|
748
855
|
if (!isFormulaCellType) {
|
749
|
-
|
750
|
-
valueHolder.value = unescapeFormulaExpression(valueHolder.value);
|
751
|
-
}
|
856
|
+
var cellType = this.getCellType(visualRow, column);
|
752
857
|
|
753
|
-
|
754
|
-
|
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`.
|
755
866
|
|
756
867
|
|
757
868
|
var address = {
|
@@ -782,12 +893,17 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
782
893
|
return;
|
783
894
|
}
|
784
895
|
|
896
|
+
var visualRow = this.hot.toVisualRow(row);
|
785
897
|
var visualColumn = this.hot.propToCol(columnOrProp); // `column` is here as visual index because of inconsistencies related to hook execution in `src/dataMap`.
|
786
898
|
|
787
|
-
var isFormulaCellType = this.isFormulaCellType(
|
899
|
+
var isFormulaCellType = this.isFormulaCellType(visualRow, visualColumn);
|
788
900
|
|
789
901
|
if (!isFormulaCellType) {
|
790
|
-
|
902
|
+
var cellType = this.getCellType(visualRow, visualColumn);
|
903
|
+
|
904
|
+
if (cellType !== 'ARRAY') {
|
905
|
+
return;
|
906
|
+
}
|
791
907
|
}
|
792
908
|
|
793
909
|
var dimensions = this.engine.getSheetDimensions(this.engine.getSheetId(this.sheetName)); // Don't actually change the source data if HyperFormula is not
|
@@ -812,42 +928,49 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
812
928
|
*
|
813
929
|
* @private
|
814
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}).
|
815
933
|
*/
|
816
934
|
|
817
935
|
}, {
|
818
936
|
key: "onAfterSetDataAtCell",
|
819
|
-
value: function onAfterSetDataAtCell(changes) {
|
820
|
-
var
|
937
|
+
value: function onAfterSetDataAtCell(changes, source) {
|
938
|
+
var _this14 = this;
|
939
|
+
|
940
|
+
if (isBlockedSource(source)) {
|
941
|
+
return;
|
942
|
+
}
|
821
943
|
|
822
|
-
var dependentCells = [];
|
823
944
|
var outOfBoundsChanges = [];
|
824
945
|
var changedCells = [];
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
|
829
|
-
|
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];
|
830
952
|
|
831
|
-
|
953
|
+
var column = _this14.hot.propToCol(prop);
|
832
954
|
|
833
|
-
|
955
|
+
var physicalRow = _this14.hot.toPhysicalRow(row);
|
834
956
|
|
835
|
-
|
957
|
+
var physicalColumn = _this14.hot.toPhysicalColumn(column);
|
836
958
|
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
841
|
-
|
959
|
+
var address = {
|
960
|
+
row: physicalRow,
|
961
|
+
col: physicalColumn,
|
962
|
+
sheet: _this14.sheetId
|
963
|
+
};
|
842
964
|
|
843
|
-
|
844
|
-
|
845
|
-
|
846
|
-
|
847
|
-
|
965
|
+
if (physicalRow !== null && physicalColumn !== null) {
|
966
|
+
_this14.syncChangeWithEngine(row, column, newValue);
|
967
|
+
} else {
|
968
|
+
outOfBoundsChanges.push([row, column, newValue]);
|
969
|
+
}
|
848
970
|
|
849
|
-
|
850
|
-
|
971
|
+
changedCells.push({
|
972
|
+
address: address
|
973
|
+
});
|
851
974
|
});
|
852
975
|
});
|
853
976
|
|
@@ -855,17 +978,18 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
855
978
|
// Workaround for rows/columns being created two times (by HOT and the engine).
|
856
979
|
// (unfortunately, this requires an extra re-render)
|
857
980
|
this.hot.addHookOnce('afterChange', function () {
|
858
|
-
var outOfBoundsDependentCells =
|
859
|
-
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
864
|
-
|
865
|
-
|
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
|
+
});
|
866
990
|
});
|
867
991
|
|
868
|
-
|
992
|
+
_this14.renderDependentSheets(outOfBoundsDependentCells, true);
|
869
993
|
});
|
870
994
|
}
|
871
995
|
|
@@ -877,28 +1001,40 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
877
1001
|
*
|
878
1002
|
* @private
|
879
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}).
|
880
1006
|
*/
|
881
1007
|
|
882
1008
|
}, {
|
883
1009
|
key: "onAfterSetSourceDataAtCell",
|
884
|
-
value: function onAfterSetSourceDataAtCell(changes) {
|
885
|
-
var
|
1010
|
+
value: function onAfterSetSourceDataAtCell(changes, source) {
|
1011
|
+
var _this15 = this;
|
1012
|
+
|
1013
|
+
if (isBlockedSource(source)) {
|
1014
|
+
return;
|
1015
|
+
}
|
886
1016
|
|
887
1017
|
var dependentCells = [];
|
888
1018
|
var changedCells = [];
|
889
1019
|
changes.forEach(function (_ref13) {
|
890
1020
|
var _ref14 = _slicedToArray(_ref13, 4),
|
891
1021
|
row = _ref14[0],
|
892
|
-
|
1022
|
+
prop = _ref14[1],
|
893
1023
|
newValue = _ref14[3];
|
894
1024
|
|
1025
|
+
var column = _this15.hot.propToCol(prop);
|
1026
|
+
|
1027
|
+
if (!isNumeric(column)) {
|
1028
|
+
return;
|
1029
|
+
}
|
1030
|
+
|
895
1031
|
var address = {
|
896
1032
|
row: row,
|
897
|
-
col:
|
898
|
-
sheet:
|
1033
|
+
col: _this15.toPhysicalColumnPosition(column),
|
1034
|
+
sheet: _this15.sheetId
|
899
1035
|
};
|
900
1036
|
|
901
|
-
if (!
|
1037
|
+
if (!_this15.engine.isItPossibleToSetCellContents(address)) {
|
902
1038
|
warn("Not possible to set source cell data at ".concat(JSON.stringify(address)));
|
903
1039
|
return;
|
904
1040
|
}
|
@@ -906,7 +1042,7 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
906
1042
|
changedCells.push({
|
907
1043
|
address: address
|
908
1044
|
});
|
909
|
-
dependentCells.push.apply(dependentCells, _toConsumableArray(
|
1045
|
+
dependentCells.push.apply(dependentCells, _toConsumableArray(_this15.engine.setCellContents(address, newValue)));
|
910
1046
|
});
|
911
1047
|
this.renderDependentSheets(dependentCells);
|
912
1048
|
this.validateDependentCells(dependentCells, changedCells);
|
@@ -923,7 +1059,7 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
923
1059
|
}, {
|
924
1060
|
key: "onBeforeCreateRow",
|
925
1061
|
value: function onBeforeCreateRow(row, amount) {
|
926
|
-
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])) {
|
927
1063
|
return false;
|
928
1064
|
}
|
929
1065
|
}
|
@@ -939,7 +1075,7 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
939
1075
|
}, {
|
940
1076
|
key: "onBeforeCreateCol",
|
941
1077
|
value: function onBeforeCreateCol(col, amount) {
|
942
|
-
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])) {
|
943
1079
|
return false;
|
944
1080
|
}
|
945
1081
|
}
|
@@ -956,10 +1092,10 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
956
1092
|
}, {
|
957
1093
|
key: "onBeforeRemoveRow",
|
958
1094
|
value: function onBeforeRemoveRow(row, amount, physicalRows) {
|
959
|
-
var
|
1095
|
+
var _this16 = this;
|
960
1096
|
|
961
1097
|
var possible = physicalRows.every(function (physicalRow) {
|
962
|
-
return
|
1098
|
+
return _this16.engine.isItPossibleToRemoveRows(_this16.sheetId, [physicalRow, 1]);
|
963
1099
|
});
|
964
1100
|
return possible === false ? false : void 0;
|
965
1101
|
}
|
@@ -976,10 +1112,10 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
976
1112
|
}, {
|
977
1113
|
key: "onBeforeRemoveCol",
|
978
1114
|
value: function onBeforeRemoveCol(col, amount, physicalColumns) {
|
979
|
-
var
|
1115
|
+
var _this17 = this;
|
980
1116
|
|
981
1117
|
var possible = physicalColumns.every(function (physicalColumn) {
|
982
|
-
return
|
1118
|
+
return _this17.engine.isItPossibleToRemoveColumns(_this17.sheetId, [physicalColumn, 1]);
|
983
1119
|
});
|
984
1120
|
return possible === false ? false : void 0;
|
985
1121
|
}
|
@@ -989,11 +1125,17 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
989
1125
|
* @private
|
990
1126
|
* @param {number} row Represents the visual index of first newly created row in the data source array.
|
991
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}).
|
992
1130
|
*/
|
993
1131
|
|
994
1132
|
}, {
|
995
1133
|
key: "onAfterCreateRow",
|
996
|
-
value: function onAfterCreateRow(row, amount) {
|
1134
|
+
value: function onAfterCreateRow(row, amount, source) {
|
1135
|
+
if (isBlockedSource(source)) {
|
1136
|
+
return;
|
1137
|
+
}
|
1138
|
+
|
997
1139
|
var changes = this.engine.addRows(this.sheetId, [this.toPhysicalRowPosition(row), amount]);
|
998
1140
|
this.renderDependentSheets(changes);
|
999
1141
|
}
|
@@ -1003,11 +1145,17 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
1003
1145
|
* @private
|
1004
1146
|
* @param {number} col Represents the visual index of first newly created column in the data source.
|
1005
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}).
|
1006
1150
|
*/
|
1007
1151
|
|
1008
1152
|
}, {
|
1009
1153
|
key: "onAfterCreateCol",
|
1010
|
-
value: function onAfterCreateCol(col, amount) {
|
1154
|
+
value: function onAfterCreateCol(col, amount, source) {
|
1155
|
+
if (isBlockedSource(source)) {
|
1156
|
+
return;
|
1157
|
+
}
|
1158
|
+
|
1011
1159
|
var changes = this.engine.addColumns(this.sheetId, [this.toPhysicalColumnPosition(col), amount]);
|
1012
1160
|
this.renderDependentSheets(changes);
|
1013
1161
|
}
|
@@ -1018,17 +1166,23 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
1018
1166
|
* @param {number} row Visual index of starter row.
|
1019
1167
|
* @param {number} amount An amount of removed rows.
|
1020
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}).
|
1021
1171
|
*/
|
1022
1172
|
|
1023
1173
|
}, {
|
1024
1174
|
key: "onAfterRemoveRow",
|
1025
|
-
value: function onAfterRemoveRow(row, amount, physicalRows) {
|
1026
|
-
var
|
1175
|
+
value: function onAfterRemoveRow(row, amount, physicalRows, source) {
|
1176
|
+
var _this18 = this;
|
1177
|
+
|
1178
|
+
if (isBlockedSource(source)) {
|
1179
|
+
return;
|
1180
|
+
}
|
1027
1181
|
|
1028
1182
|
var descendingPhysicalRows = physicalRows.sort().reverse();
|
1029
1183
|
var changes = this.engine.batch(function () {
|
1030
1184
|
descendingPhysicalRows.forEach(function (physicalRow) {
|
1031
|
-
|
1185
|
+
_this18.engine.removeRows(_this18.sheetId, [physicalRow, 1]);
|
1032
1186
|
});
|
1033
1187
|
});
|
1034
1188
|
this.renderDependentSheets(changes);
|
@@ -1040,21 +1194,59 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
|
|
1040
1194
|
* @param {number} col Visual index of starter column.
|
1041
1195
|
* @param {number} amount An amount of removed columns.
|
1042
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}).
|
1043
1199
|
*/
|
1044
1200
|
|
1045
1201
|
}, {
|
1046
1202
|
key: "onAfterRemoveCol",
|
1047
|
-
value: function onAfterRemoveCol(col, amount, physicalColumns) {
|
1048
|
-
var
|
1203
|
+
value: function onAfterRemoveCol(col, amount, physicalColumns, source) {
|
1204
|
+
var _this19 = this;
|
1205
|
+
|
1206
|
+
if (isBlockedSource(source)) {
|
1207
|
+
return;
|
1208
|
+
}
|
1049
1209
|
|
1050
1210
|
var descendingPhysicalColumns = physicalColumns.sort().reverse();
|
1051
1211
|
var changes = this.engine.batch(function () {
|
1052
1212
|
descendingPhysicalColumns.forEach(function (physicalColumn) {
|
1053
|
-
|
1213
|
+
_this19.engine.removeColumns(_this19.sheetId, [physicalColumn, 1]);
|
1054
1214
|
});
|
1055
1215
|
});
|
1056
1216
|
this.renderDependentSheets(changes);
|
1057
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
|
+
}
|
1058
1250
|
/**
|
1059
1251
|
* Called when a value is updated in the engine.
|
1060
1252
|
*
|