handsontable 9.0.2 → 11.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/3rdparty/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
package/core.mjs
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
function _typeof(obj) { "@babel/helpers - typeof";
|
1
|
+
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); }
|
2
2
|
|
3
3
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
4
4
|
|
@@ -12,23 +12,25 @@ import "core-js/modules/es.array.sort.js";
|
|
12
12
|
import "core-js/modules/es.array.splice.js";
|
13
13
|
import "core-js/modules/es.number.is-integer.js";
|
14
14
|
import "core-js/modules/es.number.constructor.js";
|
15
|
+
import "core-js/modules/es.array.slice.js";
|
16
|
+
import "core-js/modules/es.array.concat.js";
|
17
|
+
import "core-js/modules/es.array.fill.js";
|
18
|
+
import "core-js/modules/es.array.map.js";
|
15
19
|
import "core-js/modules/es.regexp.exec.js";
|
16
20
|
import "core-js/modules/es.string.replace.js";
|
17
|
-
import "core-js/modules/es.array.concat.js";
|
18
21
|
import "core-js/modules/es.array.from.js";
|
19
22
|
import "core-js/modules/es.string.iterator.js";
|
20
23
|
import "core-js/modules/es.array.index-of.js";
|
21
24
|
import "core-js/modules/es.array.reverse.js";
|
25
|
+
import "core-js/modules/es.object.to-string.js";
|
22
26
|
import "core-js/modules/web.dom-collections.for-each.js";
|
23
27
|
import "core-js/modules/web.timers.js";
|
24
28
|
import "core-js/modules/web.immediate.js";
|
25
29
|
import "core-js/modules/es.symbol.js";
|
26
30
|
import "core-js/modules/es.symbol.description.js";
|
27
|
-
import "core-js/modules/es.object.to-string.js";
|
28
31
|
import "core-js/modules/es.symbol.iterator.js";
|
29
32
|
import "core-js/modules/es.array.iterator.js";
|
30
33
|
import "core-js/modules/web.dom-collections.iterator.js";
|
31
|
-
import "core-js/modules/es.array.slice.js";
|
32
34
|
import "core-js/modules/es.function.name.js";
|
33
35
|
|
34
36
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
@@ -49,17 +51,17 @@ import { isDefined, isUndefined, isRegExp, _injectProductInfo, isEmpty } from ".
|
|
49
51
|
import { isMobileBrowser, isIpadOS } from "./helpers/browser.mjs";
|
50
52
|
import EditorManager from "./editorManager.mjs";
|
51
53
|
import EventManager from "./eventManager.mjs";
|
52
|
-
import { deepClone, duckSchema, isObjectEqual, deepObjectSize, hasOwnProperty, createObjectPropListener, objectEach } from "./helpers/object.mjs";
|
53
|
-
import { arrayMap, arrayEach, arrayReduce, getDifferenceOfArrays, stringToArray } from "./helpers/array.mjs";
|
54
|
+
import { deepClone, duckSchema, isObjectEqual, isObject, deepObjectSize, hasOwnProperty, createObjectPropListener, objectEach } from "./helpers/object.mjs";
|
55
|
+
import { arrayMap, arrayEach, arrayReduce, getDifferenceOfArrays, stringToArray, pivot } from "./helpers/array.mjs";
|
54
56
|
import { instanceToHTML } from "./utils/parseTable.mjs";
|
55
57
|
import { getPlugin, getPluginsNames } from "./plugins/registry.mjs";
|
56
58
|
import { getRenderer } from "./renderers/registry.mjs";
|
57
59
|
import { getValidator } from "./validators/registry.mjs";
|
58
60
|
import { randomString, toUpperCaseFirst } from "./helpers/string.mjs";
|
59
|
-
import { rangeEach, rangeEachReverse } from "./helpers/number.mjs";
|
61
|
+
import { rangeEach, rangeEachReverse, isNumericLike } from "./helpers/number.mjs";
|
60
62
|
import TableView from "./tableView.mjs";
|
61
63
|
import DataSource from "./dataSource.mjs";
|
62
|
-
import {
|
64
|
+
import { cellMethodLookupFactory, spreadsheetColumnLabel } from "./helpers/data.mjs";
|
63
65
|
import { IndexMapper } from "./translations/index.mjs";
|
64
66
|
import { registerAsRootInstance, hasValidParameter, isRootInstance } from "./utils/rootInstance.mjs";
|
65
67
|
import { CellCoords, ViewportColumnsCalculator } from "./3rdparty/walkontable/src/index.mjs";
|
@@ -68,7 +70,7 @@ import { hasLanguageDictionary, getValidLanguageCode, getTranslatedPhrase } from
|
|
68
70
|
import { warnUserAboutLanguageRegistration, normalizeLanguageCode } from "./i18n/utils.mjs";
|
69
71
|
import { startObserving as keyStateStartObserving, stopObserving as keyStateStopObserving } from "./utils/keyStateObserver.mjs";
|
70
72
|
import { Selection } from "./selection/index.mjs";
|
71
|
-
import { MetaManager,
|
73
|
+
import { MetaManager, DynamicCellMetaMod, replaceData } from "./dataMap/index.mjs";
|
72
74
|
import { createUniqueMap } from "./utils/dataStructures/uniqueMap.mjs";
|
73
75
|
var activeGuid = null;
|
74
76
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
@@ -110,7 +112,7 @@ export default function Core(rootElement, userSettings) {
|
|
110
112
|
var editorManager;
|
111
113
|
var firstRun = true;
|
112
114
|
userSettings.language = getValidLanguageCode(userSettings.language);
|
113
|
-
var metaManager = new MetaManager(userSettings);
|
115
|
+
var metaManager = new MetaManager(instance, userSettings, [DynamicCellMetaMod]);
|
114
116
|
var tableMeta = metaManager.getTableMeta();
|
115
117
|
var globalMeta = metaManager.getGlobalMeta();
|
116
118
|
var pluginsRegistry = createUniqueMap();
|
@@ -128,8 +130,6 @@ export default function Core(rootElement, userSettings) {
|
|
128
130
|
|
129
131
|
|
130
132
|
this.rootElement = rootElement;
|
131
|
-
/* eslint-enable jsdoc/require-description-complete-sentence */
|
132
|
-
|
133
133
|
/**
|
134
134
|
* The nearest document over container.
|
135
135
|
*
|
@@ -395,8 +395,6 @@ export default function Core(rootElement, userSettings) {
|
|
395
395
|
/**
|
396
396
|
* Inserts or removes rows and columns.
|
397
397
|
*
|
398
|
-
* @memberof Core#
|
399
|
-
* @function alter
|
400
398
|
* @private
|
401
399
|
* @param {string} action Possible values: "insert_row", "insert_col", "remove_row", "remove_col".
|
402
400
|
* @param {number|Array} index Row or column visual index which from the alter action will be triggered.
|
@@ -675,6 +673,8 @@ export default function Core(rootElement, userSettings) {
|
|
675
673
|
|
676
674
|
/**
|
677
675
|
* Makes sure there are empty rows at the bottom of the table.
|
676
|
+
*
|
677
|
+
* @private
|
678
678
|
*/
|
679
679
|
adjustRowsAndCols: function adjustRowsAndCols() {
|
680
680
|
var minRows = tableMeta.minRows;
|
@@ -815,72 +815,91 @@ export default function Core(rootElement, userSettings) {
|
|
815
815
|
var clen;
|
816
816
|
var setData = [];
|
817
817
|
var current = {};
|
818
|
+
var newDataByColumns = [];
|
819
|
+
var startRow = start.row;
|
820
|
+
var startColumn = start.col;
|
818
821
|
rlen = input.length;
|
819
822
|
|
820
823
|
if (rlen === 0) {
|
821
824
|
return false;
|
822
825
|
}
|
823
826
|
|
824
|
-
var
|
825
|
-
var
|
826
|
-
|
827
|
-
|
828
|
-
|
829
|
-
|
827
|
+
var columnsPopulationEnd = 0;
|
828
|
+
var rowsPopulationEnd = 0;
|
829
|
+
|
830
|
+
if (isObject(end)) {
|
831
|
+
columnsPopulationEnd = end.col - startColumn + 1;
|
832
|
+
rowsPopulationEnd = end.row - startRow + 1;
|
833
|
+
} // insert data with specified pasteMode method
|
834
|
+
|
830
835
|
|
831
836
|
switch (method) {
|
832
837
|
case 'shift_down':
|
833
|
-
|
834
|
-
|
838
|
+
// translate data from a list of rows to a list of columns
|
839
|
+
var populatedDataByColumns = pivot(input);
|
840
|
+
var numberOfDataColumns = populatedDataByColumns.length; // method's argument can extend the range of data population (data would be repeated)
|
835
841
|
|
836
|
-
|
842
|
+
var numberOfColumnsToPopulate = Math.max(numberOfDataColumns, columnsPopulationEnd);
|
843
|
+
var pushedDownDataByRows = instance.getData().slice(startRow); // translate data from a list of rows to a list of columns
|
837
844
|
|
838
|
-
|
839
|
-
if (c < clen) {
|
840
|
-
var _instance;
|
845
|
+
var pushedDownDataByColumns = pivot(pushedDownDataByRows).slice(startColumn, startColumn + numberOfColumnsToPopulate);
|
841
846
|
|
842
|
-
|
843
|
-
|
847
|
+
for (c = 0; c < numberOfColumnsToPopulate; c += 1) {
|
848
|
+
if (c < numberOfDataColumns) {
|
849
|
+
for (r = 0, rlen = populatedDataByColumns[c].length; r < rowsPopulationEnd - rlen; r += 1) {
|
850
|
+
// repeating data for rows
|
851
|
+
populatedDataByColumns[c].push(populatedDataByColumns[c][r % rlen]);
|
844
852
|
}
|
845
853
|
|
846
|
-
|
847
|
-
|
848
|
-
|
854
|
+
if (c < pushedDownDataByColumns.length) {
|
855
|
+
newDataByColumns.push(populatedDataByColumns[c].concat(pushedDownDataByColumns[c]));
|
856
|
+
} else {
|
857
|
+
// if before data population, there was no data in the column
|
858
|
+
// we fill the required rows' newly-created cells with `null` values
|
859
|
+
newDataByColumns.push(populatedDataByColumns[c].concat(new Array(pushedDownDataByRows.length).fill(null)));
|
860
|
+
}
|
849
861
|
} else {
|
850
|
-
|
851
|
-
|
852
|
-
input[c % clen][0] = start.col + c;
|
853
|
-
|
854
|
-
(_instance2 = instance).spliceCol.apply(_instance2, _toConsumableArray(input[c % clen]));
|
862
|
+
// Repeating data for columns.
|
863
|
+
newDataByColumns.push(populatedDataByColumns[c % numberOfDataColumns].concat(pushedDownDataByColumns[c]));
|
855
864
|
}
|
856
865
|
}
|
857
866
|
|
867
|
+
instance.populateFromArray(startRow, startColumn, pivot(newDataByColumns));
|
858
868
|
break;
|
859
869
|
|
860
870
|
case 'shift_right':
|
861
|
-
|
862
|
-
repeatRow = end ? end.row - start.row + 1 : 0;
|
871
|
+
var numberOfDataRows = input.length; // method's argument can extend the range of data population (data would be repeated)
|
863
872
|
|
864
|
-
|
865
|
-
|
866
|
-
|
873
|
+
var numberOfRowsToPopulate = Math.max(numberOfDataRows, rowsPopulationEnd);
|
874
|
+
var pushedRightDataByRows = instance.getData().slice(startRow).map(function (rowData) {
|
875
|
+
return rowData.slice(startColumn);
|
876
|
+
});
|
867
877
|
|
868
|
-
|
878
|
+
for (r = 0; r < numberOfRowsToPopulate; r += 1) {
|
879
|
+
if (r < numberOfDataRows) {
|
880
|
+
for (c = 0, clen = input[r].length; c < columnsPopulationEnd - clen; c += 1) {
|
881
|
+
// repeating data for rows
|
869
882
|
input[r].push(input[r][c % clen]);
|
870
883
|
}
|
871
884
|
|
872
|
-
|
885
|
+
if (r < pushedRightDataByRows.length) {
|
886
|
+
for (var i = 0; i < pushedRightDataByRows[r].length; i += 1) {
|
887
|
+
input[r].push(pushedRightDataByRows[r][i]);
|
888
|
+
}
|
889
|
+
} else {
|
890
|
+
var _input$r;
|
873
891
|
|
874
|
-
|
892
|
+
// if before data population, there was no data in the row
|
893
|
+
// we fill the required columns' newly-created cells with `null` values
|
894
|
+
(_input$r = input[r]).push.apply(_input$r, _toConsumableArray(new Array(pushedRightDataByRows[0].length).fill(null)));
|
895
|
+
}
|
875
896
|
} else {
|
876
|
-
|
877
|
-
|
878
|
-
input[r % rlen][0] = start.row + r;
|
879
|
-
|
880
|
-
(_instance4 = instance).spliceRow.apply(_instance4, _toConsumableArray(input[r % rlen]));
|
897
|
+
// Repeating data for columns.
|
898
|
+
input.push(input[r % rlen].slice(0, numberOfRowsToPopulate).concat(pushedRightDataByRows[r]));
|
881
899
|
}
|
882
900
|
}
|
883
901
|
|
902
|
+
instance.populateFromArray(startRow, startColumn, input);
|
884
903
|
break;
|
885
904
|
|
886
905
|
case 'overwrite':
|
@@ -1182,10 +1201,6 @@ export default function Core(rootElement, userSettings) {
|
|
1182
1201
|
|
1183
1202
|
var waitingForValidator = new ValidatorsQueue();
|
1184
1203
|
|
1185
|
-
var isNumericData = function isNumericData(value) {
|
1186
|
-
return value.length > 0 && /^\s*[+-.]?\s*(?:(?:\d+(?:(\.|,)\d+)?(?:e[+-]?\d+)?)|(?:0x[a-f\d]+))\s*$/.test(value);
|
1187
|
-
};
|
1188
|
-
|
1189
1204
|
waitingForValidator.onQueueEmpty = function (isValid) {
|
1190
1205
|
if (activeEditor && shouldBeCanceled) {
|
1191
1206
|
activeEditor.cancelChanges();
|
@@ -1206,7 +1221,7 @@ export default function Core(rootElement, userSettings) {
|
|
1206
1221
|
var col = datamap.propToCol(prop);
|
1207
1222
|
var cellProperties = instance.getCellMeta(row, col);
|
1208
1223
|
|
1209
|
-
if (cellProperties.type === 'numeric' && typeof newValue === 'string' &&
|
1224
|
+
if (cellProperties.type === 'numeric' && typeof newValue === 'string' && isNumericLike(newValue)) {
|
1210
1225
|
changes[i][3] = getParsedNumber(newValue);
|
1211
1226
|
}
|
1212
1227
|
/* eslint-disable no-loop-func */
|
@@ -1330,6 +1345,8 @@ export default function Core(rootElement, userSettings) {
|
|
1330
1345
|
/**
|
1331
1346
|
* Validate a single cell.
|
1332
1347
|
*
|
1348
|
+
* @memberof Core#
|
1349
|
+
* @function validateCell
|
1333
1350
|
* @param {string|number} value The value to validate.
|
1334
1351
|
* @param {object} cellProperties The cell meta which corresponds with the value.
|
1335
1352
|
* @param {Function} callback The callback function.
|
@@ -1341,9 +1358,10 @@ export default function Core(rootElement, userSettings) {
|
|
1341
1358
|
var validator = instance.getCellValidator(cellProperties); // the `canBeValidated = false` argument suggests, that the cell passes validation by default.
|
1342
1359
|
|
1343
1360
|
/**
|
1361
|
+
* @private
|
1362
|
+
* @function done
|
1344
1363
|
* @param {boolean} valid Indicates if the validation was successful.
|
1345
1364
|
* @param {boolean} [canBeValidated=true] Flag which controls the validation process.
|
1346
|
-
* @private
|
1347
1365
|
*/
|
1348
1366
|
|
1349
1367
|
function done(valid) {
|
@@ -1564,7 +1582,7 @@ export default function Core(rootElement, userSettings) {
|
|
1564
1582
|
* Populate cells at position with 2D input array (e.g. `[[1, 2], [3, 4]]`). Use `endRow`, `endCol` when you
|
1565
1583
|
* want to cut input when a certain row is reached.
|
1566
1584
|
*
|
1567
|
-
* Optional `method` argument has the same effect as pasteMode option (see {@link
|
1585
|
+
* Optional `method` argument has the same effect as pasteMode option (see {@link Options#pasteMode}).
|
1568
1586
|
*
|
1569
1587
|
* @memberof Core#
|
1570
1588
|
* @function populateFromArray
|
@@ -1753,7 +1771,7 @@ export default function Core(rootElement, userSettings) {
|
|
1753
1771
|
}
|
1754
1772
|
};
|
1755
1773
|
/**
|
1756
|
-
* Checks if the table rendering process was suspended. See explanation in {@link
|
1774
|
+
* Checks if the table rendering process was suspended. See explanation in {@link Core#suspendRender}.
|
1757
1775
|
*
|
1758
1776
|
* @memberof Core#
|
1759
1777
|
* @function isRenderSuspended
|
@@ -1772,8 +1790,8 @@ export default function Core(rootElement, userSettings) {
|
|
1772
1790
|
* When the table is in the suspend state, most operations will have no visual
|
1773
1791
|
* effect until the rendering state is resumed. Resuming the state automatically
|
1774
1792
|
* invokes the table rendering. To make sure that after executing all operations,
|
1775
|
-
* the table will be rendered, it's highly recommended to use the {@link
|
1776
|
-
* method or {@link
|
1793
|
+
* the table will be rendered, it's highly recommended to use the {@link Core#batchRender}
|
1794
|
+
* method or {@link Core#batch}, which additionally aggregates the logic execution
|
1777
1795
|
* that happens behind the table.
|
1778
1796
|
*
|
1779
1797
|
* The method is intended to be used by advanced users. Suspending the rendering
|
@@ -1802,7 +1820,7 @@ export default function Core(rootElement, userSettings) {
|
|
1802
1820
|
this.renderSuspendedCounter += 1;
|
1803
1821
|
};
|
1804
1822
|
/**
|
1805
|
-
* Resumes the rendering process. In combination with the {@link
|
1823
|
+
* Resumes the rendering process. In combination with the {@link Core#suspendRender}
|
1806
1824
|
* method it allows aggregating the table render cycles triggered by API calls or UI
|
1807
1825
|
* actions (or both) and calls the "render" once in the end. When the table is in
|
1808
1826
|
* the suspend state, most operations will have no visual effect until the rendering
|
@@ -1904,7 +1922,7 @@ export default function Core(rootElement, userSettings) {
|
|
1904
1922
|
};
|
1905
1923
|
/**
|
1906
1924
|
* Checks if the table indexes recalculation process was suspended. See explanation
|
1907
|
-
* in {@link
|
1925
|
+
* in {@link Core#suspendExecution}.
|
1908
1926
|
*
|
1909
1927
|
* @memberof Core#
|
1910
1928
|
* @function isExecutionSuspended
|
@@ -1946,7 +1964,7 @@ export default function Core(rootElement, userSettings) {
|
|
1946
1964
|
this.rowIndexMapper.suspendOperations();
|
1947
1965
|
};
|
1948
1966
|
/**
|
1949
|
-
* Resumes the execution process. In combination with the {@link
|
1967
|
+
* Resumes the execution process. In combination with the {@link Core#suspendExecution}
|
1950
1968
|
* method it allows aggregating the table logic changes after which the cache is
|
1951
1969
|
* updated. Resuming the state automatically invokes the table cache updating process.
|
1952
1970
|
*
|
@@ -1957,7 +1975,7 @@ export default function Core(rootElement, userSettings) {
|
|
1957
1975
|
* @function resumeExecution
|
1958
1976
|
* @param {boolean} [forceFlushChanges=false] If `true`, the table internal data cache
|
1959
1977
|
* is recalculated after the execution of the batched operations. For nested
|
1960
|
-
* {@link
|
1978
|
+
* {@link Core#batchExecution} calls, it can be desire to recalculate the table
|
1961
1979
|
* after each batch.
|
1962
1980
|
* @since 8.3.0
|
1963
1981
|
* @example
|
@@ -2112,14 +2130,67 @@ export default function Core(rootElement, userSettings) {
|
|
2112
2130
|
}, isSizeChanged);
|
2113
2131
|
};
|
2114
2132
|
/**
|
2115
|
-
*
|
2116
|
-
*
|
2117
|
-
* (
|
2133
|
+
* The `updateData()` method replaces Handsontable's [`data`](@/api/options.md#data) with a new dataset.
|
2134
|
+
*
|
2135
|
+
* The `updateData()` method:
|
2136
|
+
* - Keeps cells' states (e.g. cells' [formatting](@/guides/cell-features/formatting-cells.md) and cells' [`readOnly`](@/api/options.md#readonly) states)
|
2137
|
+
* - Keeps rows' states (e.g. row order)
|
2138
|
+
* - Keeps columns' states (e.g. column order)
|
2139
|
+
*
|
2140
|
+
* To replace Handsontable's [`data`](@/api/options.md#data) and reset states, use the [`loadData()`](#loaddata) method.
|
2141
|
+
*
|
2142
|
+
* Read more:
|
2143
|
+
* - [Binding to data →](@/guides/getting-started/binding-to-data.md)
|
2144
|
+
* - [Saving data →](@/guides/getting-started/saving-data.md)
|
2145
|
+
*
|
2146
|
+
* @memberof Core#
|
2147
|
+
* @function updateData
|
2148
|
+
* @since 11.1.0
|
2149
|
+
* @param {Array} data An [array of arrays](@/guides/getting-started/binding-to-data.md#array-of-arrays), or an [array of objects](@/guides/getting-started/binding-to-data.md#array-of-objects), that contains Handsontable's data
|
2150
|
+
* @param {string} [source] The source of the `updateData()` call
|
2151
|
+
* @fires Hooks#beforeUpdateData
|
2152
|
+
* @fires Hooks#afterUpdateData
|
2153
|
+
* @fires Hooks#afterChange
|
2154
|
+
*/
|
2155
|
+
|
2156
|
+
|
2157
|
+
this.updateData = function (data, source) {
|
2158
|
+
var _this3 = this;
|
2159
|
+
|
2160
|
+
replaceData(data, function (newDataMap) {
|
2161
|
+
datamap = newDataMap;
|
2162
|
+
}, function (newDataMap) {
|
2163
|
+
datamap = newDataMap;
|
2164
|
+
instance.columnIndexMapper.fitToLength(_this3.getInitialColumnCount());
|
2165
|
+
instance.rowIndexMapper.fitToLength(_this3.countSourceRows());
|
2166
|
+
grid.adjustRowsAndCols();
|
2167
|
+
}, {
|
2168
|
+
hotInstance: instance,
|
2169
|
+
dataMap: datamap,
|
2170
|
+
dataSource: dataSource,
|
2171
|
+
internalSource: 'updateData',
|
2172
|
+
source: source,
|
2173
|
+
firstRun: firstRun
|
2174
|
+
});
|
2175
|
+
};
|
2176
|
+
/**
|
2177
|
+
* The `loadData()` method replaces Handsontable's [`data`](@/api/options.md#data) with a new dataset.
|
2178
|
+
*
|
2179
|
+
* Additionally, the `loadData()` method:
|
2180
|
+
* - Resets cells' states (e.g. cells' [formatting](@/guides/cell-features/formatting-cells.md) and cells' [`readOnly`](@/api/options.md#readonly) states)
|
2181
|
+
* - Resets rows' states (e.g. row order)
|
2182
|
+
* - Resets columns' states (e.g. column order)
|
2183
|
+
*
|
2184
|
+
* To replace Handsontable's [`data`](@/api/options.md#data) without resetting states, use the [`updateData()`](#updatedata) method.
|
2185
|
+
*
|
2186
|
+
* Read more:
|
2187
|
+
* - [Binding to data →](@/guides/getting-started/binding-to-data.md)
|
2188
|
+
* - [Saving data →](@/guides/getting-started/saving-data.md)
|
2118
2189
|
*
|
2119
2190
|
* @memberof Core#
|
2120
2191
|
* @function loadData
|
2121
|
-
* @param {Array} data
|
2122
|
-
* @param {string} [source]
|
2192
|
+
* @param {Array} data An [array of arrays](@/guides/getting-started/binding-to-data.md#array-of-arrays), or an [array of objects](@/guides/getting-started/binding-to-data.md#array-of-objects), that contains Handsontable's data
|
2193
|
+
* @param {string} [source] The source of the `loadData()` call
|
2123
2194
|
* @fires Hooks#beforeLoadData
|
2124
2195
|
* @fires Hooks#afterLoadData
|
2125
2196
|
* @fires Hooks#afterChange
|
@@ -2127,88 +2198,34 @@ export default function Core(rootElement, userSettings) {
|
|
2127
2198
|
|
2128
2199
|
|
2129
2200
|
this.loadData = function (data, source) {
|
2130
|
-
|
2131
|
-
|
2132
|
-
}
|
2133
|
-
|
2134
|
-
|
2135
|
-
|
2136
|
-
}
|
2137
|
-
|
2138
|
-
if (datamap) {
|
2139
|
-
datamap.destroy();
|
2140
|
-
}
|
2141
|
-
|
2142
|
-
data = instance.runHooks('beforeLoadData', data, firstRun, source);
|
2143
|
-
datamap = new DataMap(instance, data, tableMeta);
|
2144
|
-
|
2145
|
-
if (_typeof(data) === 'object' && data !== null) {
|
2146
|
-
if (!(data.push && data.splice)) {
|
2147
|
-
// check if data is array. Must use duck-type check so Backbone Collections also pass it
|
2148
|
-
// when data is not an array, attempt to make a single-row array of it
|
2149
|
-
// eslint-disable-next-line no-param-reassign
|
2150
|
-
data = [data];
|
2151
|
-
}
|
2152
|
-
} else if (data === null) {
|
2153
|
-
var dataSchema = datamap.getSchema(); // eslint-disable-next-line no-param-reassign
|
2154
|
-
|
2155
|
-
data = [];
|
2156
|
-
var row;
|
2157
|
-
var r = 0;
|
2158
|
-
var rlen = 0;
|
2159
|
-
|
2160
|
-
for (r = 0, rlen = tableMeta.startRows; r < rlen; r++) {
|
2161
|
-
if ((instance.dataType === 'object' || instance.dataType === 'function') && tableMeta.dataSchema) {
|
2162
|
-
row = deepClone(dataSchema);
|
2163
|
-
data.push(row);
|
2164
|
-
} else if (instance.dataType === 'array') {
|
2165
|
-
row = deepClone(dataSchema[0]);
|
2166
|
-
data.push(row);
|
2167
|
-
} else {
|
2168
|
-
row = [];
|
2169
|
-
|
2170
|
-
for (var c = 0, clen = tableMeta.startCols; c < clen; c++) {
|
2171
|
-
row.push(null);
|
2172
|
-
}
|
2201
|
+
replaceData(data, function (newDataMap) {
|
2202
|
+
datamap = newDataMap;
|
2203
|
+
}, function () {
|
2204
|
+
metaManager.clearCellsCache();
|
2205
|
+
instance.initIndexMappers();
|
2206
|
+
grid.adjustRowsAndCols();
|
2173
2207
|
|
2174
|
-
|
2175
|
-
|
2208
|
+
if (firstRun) {
|
2209
|
+
firstRun = [null, 'loadData'];
|
2176
2210
|
}
|
2177
|
-
}
|
2178
|
-
|
2179
|
-
|
2180
|
-
|
2181
|
-
|
2182
|
-
|
2183
|
-
|
2184
|
-
|
2185
|
-
tableMeta.data = data;
|
2186
|
-
datamap.dataSource = data;
|
2187
|
-
dataSource.data = data;
|
2188
|
-
dataSource.dataType = instance.dataType;
|
2189
|
-
dataSource.colToProp = datamap.colToProp.bind(datamap);
|
2190
|
-
dataSource.propToCol = datamap.propToCol.bind(datamap);
|
2191
|
-
dataSource.countCachedColumns = datamap.countCachedColumns.bind(datamap);
|
2192
|
-
metaManager.clearCellsCache();
|
2193
|
-
instance.initIndexMappers();
|
2194
|
-
grid.adjustRowsAndCols();
|
2195
|
-
instance.runHooks('afterLoadData', data, firstRun, source);
|
2196
|
-
|
2197
|
-
if (firstRun) {
|
2198
|
-
firstRun = [null, 'loadData'];
|
2199
|
-
} else {
|
2200
|
-
instance.runHooks('afterChange', null, 'loadData');
|
2201
|
-
instance.render();
|
2202
|
-
}
|
2211
|
+
}, {
|
2212
|
+
hotInstance: instance,
|
2213
|
+
dataMap: datamap,
|
2214
|
+
dataSource: dataSource,
|
2215
|
+
internalSource: 'loadData',
|
2216
|
+
source: source,
|
2217
|
+
firstRun: firstRun
|
2218
|
+
});
|
2203
2219
|
};
|
2204
2220
|
/**
|
2205
|
-
*
|
2221
|
+
* Gets the initial column count, calculated based on the `columns` setting.
|
2206
2222
|
*
|
2207
2223
|
* @private
|
2224
|
+
* @returns {number} The calculated number of columns.
|
2208
2225
|
*/
|
2209
2226
|
|
2210
2227
|
|
2211
|
-
this.
|
2228
|
+
this.getInitialColumnCount = function () {
|
2212
2229
|
var columnsSettings = tableMeta.columns;
|
2213
2230
|
var finalNrOfColumns = 0; // We will check number of columns when the `columns` property was defined as an array. Columns option may
|
2214
2231
|
// narrow down or expand displayed dataset in that case.
|
@@ -2238,13 +2255,23 @@ export default function Core(rootElement, userSettings) {
|
|
2238
2255
|
finalNrOfColumns = this.countSourceCols();
|
2239
2256
|
}
|
2240
2257
|
|
2241
|
-
|
2258
|
+
return finalNrOfColumns;
|
2259
|
+
};
|
2260
|
+
/**
|
2261
|
+
* Init index mapper which manage indexes assigned to the data.
|
2262
|
+
*
|
2263
|
+
* @private
|
2264
|
+
*/
|
2265
|
+
|
2266
|
+
|
2267
|
+
this.initIndexMappers = function () {
|
2268
|
+
this.columnIndexMapper.initToLength(this.getInitialColumnCount());
|
2242
2269
|
this.rowIndexMapper.initToLength(this.countSourceRows());
|
2243
2270
|
};
|
2244
2271
|
/**
|
2245
2272
|
* Returns the current data object (the same one that was passed by `data` configuration option or `loadData` method,
|
2246
2273
|
* unless some modifications have been applied (i.e. Sequence of rows/columns was changed, some row/column was skipped).
|
2247
|
-
* If that's the case - use the {@link
|
2274
|
+
* If that's the case - use the {@link Core#getSourceData} method.).
|
2248
2275
|
*
|
2249
2276
|
* Optionally you can provide cell range by defining `row`, `column`, `row2`, `column2` to get only a fragment of table data.
|
2250
2277
|
*
|
@@ -2330,7 +2357,7 @@ export default function Core(rootElement, userSettings) {
|
|
2330
2357
|
*
|
2331
2358
|
* @memberof Core#
|
2332
2359
|
* @function updateSettings
|
2333
|
-
* @param {object} settings New settings object (see {@link
|
2360
|
+
* @param {object} settings New settings object (see {@link Options}).
|
2334
2361
|
* @param {boolean} [init=false] Internally used for in initialization mode.
|
2335
2362
|
* @example
|
2336
2363
|
* ```js
|
@@ -2347,6 +2374,12 @@ export default function Core(rootElement, userSettings) {
|
|
2347
2374
|
|
2348
2375
|
this.updateSettings = function (settings) {
|
2349
2376
|
var init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
2377
|
+
// TODO: uncomment the next line with the next major version update
|
2378
|
+
// Do not forget to re-enable the pending tests that cover the change:
|
2379
|
+
// * https://github.com/handsontable/handsontable/blob/9f62c282a1c951b27cd8406aa27105bd32b05bb6/handsontable/test/e2e/core/toPhysicalColumn.spec.js#L70
|
2380
|
+
// * https://github.com/handsontable/handsontable/blob/9f62c282a1c951b27cd8406aa27105bd32b05bb6/handsontable/test/e2e/core/toVisualColumn.spec.js#L70
|
2381
|
+
// const dataUpdateFunction = (firstRun ? instance.loadData : instance.updateData).bind(this);
|
2382
|
+
var dataUpdateFunction = instance.loadData.bind(this);
|
2350
2383
|
var columnsAsFunc = false;
|
2351
2384
|
var i;
|
2352
2385
|
var j;
|
@@ -2391,9 +2424,9 @@ export default function Core(rootElement, userSettings) {
|
|
2391
2424
|
|
2392
2425
|
|
2393
2426
|
if (settings.data === void 0 && tableMeta.data === void 0) {
|
2394
|
-
|
2427
|
+
dataUpdateFunction(null, 'updateSettings'); // data source created just now
|
2395
2428
|
} else if (settings.data !== void 0) {
|
2396
|
-
|
2429
|
+
dataUpdateFunction(settings.data, 'updateSettings'); // data source given as option
|
2397
2430
|
} else if (settings.columns !== void 0) {
|
2398
2431
|
datamap.createMap(); // The `column` property has changed - dataset may be expanded or narrowed down. The `loadData` do the same.
|
2399
2432
|
|
@@ -2999,7 +3032,7 @@ export default function Core(rootElement, userSettings) {
|
|
2999
3032
|
};
|
3000
3033
|
/**
|
3001
3034
|
* @description
|
3002
|
-
* Returns a data type defined in the Handsontable settings under the `type` key ({@link
|
3035
|
+
* Returns a data type defined in the Handsontable settings under the `type` key ({@link Options#type}).
|
3003
3036
|
* If there are cells with different types in the selected range, it returns `'mixed'`.
|
3004
3037
|
*
|
3005
3038
|
* __Note__: If data is reordered, sorted or trimmed, the currently visible order will be used.
|
@@ -3015,7 +3048,7 @@ export default function Core(rootElement, userSettings) {
|
|
3015
3048
|
|
3016
3049
|
|
3017
3050
|
this.getDataType = function (rowFrom, columnFrom, rowTo, columnTo) {
|
3018
|
-
var
|
3051
|
+
var _this4 = this;
|
3019
3052
|
|
3020
3053
|
var coords = rowFrom === void 0 ? [0, 0, this.countRows(), this.countCols()] : [rowFrom, columnFrom, rowTo, columnTo];
|
3021
3054
|
var rowStart = coords[0],
|
@@ -3037,7 +3070,7 @@ export default function Core(rootElement, userSettings) {
|
|
3037
3070
|
rangeEach(Math.max(Math.min(rowStart, rowEnd), 0), Math.max(rowStart, rowEnd), function (row) {
|
3038
3071
|
var isTypeEqual = true;
|
3039
3072
|
rangeEach(Math.max(Math.min(columnStart, columnEnd), 0), Math.max(columnStart, columnEnd), function (column) {
|
3040
|
-
var cellType =
|
3073
|
+
var cellType = _this4.getCellMeta(row, column);
|
3041
3074
|
|
3042
3075
|
currentType = cellType.type;
|
3043
3076
|
|
@@ -3071,7 +3104,7 @@ export default function Core(rootElement, userSettings) {
|
|
3071
3104
|
var _ref19 = [this.toPhysicalRow(row), this.toPhysicalColumn(column)],
|
3072
3105
|
physicalRow = _ref19[0],
|
3073
3106
|
physicalColumn = _ref19[1];
|
3074
|
-
var cachedValue = metaManager.
|
3107
|
+
var cachedValue = metaManager.getCellMetaKeyValue(physicalRow, physicalColumn, key);
|
3075
3108
|
var hookResult = instance.runHooks('beforeRemoveCellMeta', row, column, key, cachedValue);
|
3076
3109
|
|
3077
3110
|
if (hookResult !== false) {
|
@@ -3094,7 +3127,7 @@ export default function Core(rootElement, userSettings) {
|
|
3094
3127
|
|
3095
3128
|
|
3096
3129
|
this.spliceCellsMeta = function (visualIndex) {
|
3097
|
-
var
|
3130
|
+
var _this5 = this;
|
3098
3131
|
|
3099
3132
|
var deleteAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
3100
3133
|
|
@@ -3112,12 +3145,14 @@ export default function Core(rootElement, userSettings) {
|
|
3112
3145
|
|
3113
3146
|
if (cellMetaRows.length > 0) {
|
3114
3147
|
arrayEach(cellMetaRows.reverse(), function (cellMetaRow) {
|
3115
|
-
metaManager.createRow(
|
3148
|
+
metaManager.createRow(_this5.toPhysicalRow(visualIndex));
|
3116
3149
|
arrayEach(cellMetaRow, function (cellMeta, columnIndex) {
|
3117
|
-
return
|
3150
|
+
return _this5.setCellMetaObject(visualIndex, columnIndex, cellMeta);
|
3118
3151
|
});
|
3119
3152
|
});
|
3120
3153
|
}
|
3154
|
+
|
3155
|
+
instance.render();
|
3121
3156
|
};
|
3122
3157
|
/**
|
3123
3158
|
* Set cell meta data object defined by `prop` to the corresponding params `row` and `column`.
|
@@ -3131,11 +3166,11 @@ export default function Core(rootElement, userSettings) {
|
|
3131
3166
|
|
3132
3167
|
|
3133
3168
|
this.setCellMetaObject = function (row, column, prop) {
|
3134
|
-
var
|
3169
|
+
var _this6 = this;
|
3135
3170
|
|
3136
3171
|
if (_typeof(prop) === 'object') {
|
3137
3172
|
objectEach(prop, function (value, key) {
|
3138
|
-
|
3173
|
+
_this6.setCellMeta(row, column, key, value);
|
3139
3174
|
});
|
3140
3175
|
}
|
3141
3176
|
};
|
@@ -3211,33 +3246,10 @@ export default function Core(rootElement, userSettings) {
|
|
3211
3246
|
physicalColumn = column;
|
3212
3247
|
}
|
3213
3248
|
|
3214
|
-
|
3215
|
-
|
3216
|
-
|
3217
|
-
|
3218
|
-
cellProperties.col = physicalColumn;
|
3219
|
-
cellProperties.visualRow = row;
|
3220
|
-
cellProperties.visualCol = column;
|
3221
|
-
cellProperties.prop = prop;
|
3222
|
-
cellProperties.instance = instance;
|
3223
|
-
instance.runHooks('beforeGetCellMeta', row, column, cellProperties); // for `type` added or changed in beforeGetCellMeta
|
3224
|
-
|
3225
|
-
if (instance.hasHook('beforeGetCellMeta') && hasOwnProperty(cellProperties, 'type')) {
|
3226
|
-
metaManager.updateCellMeta(physicalRow, physicalColumn, {
|
3227
|
-
type: cellProperties.type
|
3228
|
-
});
|
3229
|
-
}
|
3230
|
-
|
3231
|
-
if (cellProperties.cells) {
|
3232
|
-
var settings = cellProperties.cells(physicalRow, physicalColumn, prop);
|
3233
|
-
|
3234
|
-
if (settings) {
|
3235
|
-
metaManager.updateCellMeta(physicalRow, physicalColumn, settings);
|
3236
|
-
}
|
3237
|
-
}
|
3238
|
-
|
3239
|
-
instance.runHooks('afterGetCellMeta', row, column, cellProperties);
|
3240
|
-
return cellProperties;
|
3249
|
+
return metaManager.getCellMeta(physicalRow, physicalColumn, {
|
3250
|
+
visualRow: row,
|
3251
|
+
visualColumn: column
|
3252
|
+
});
|
3241
3253
|
};
|
3242
3254
|
/**
|
3243
3255
|
* Returns an array of cell meta objects for specified physical row index.
|
@@ -3271,7 +3283,7 @@ export default function Core(rootElement, userSettings) {
|
|
3271
3283
|
*
|
3272
3284
|
* @memberof Core#
|
3273
3285
|
* @function getCellRenderer
|
3274
|
-
* @param {number|object} row Visual row index or cell meta object (see {@link
|
3286
|
+
* @param {number|object} row Visual row index or cell meta object (see {@link Core#getCellMeta}).
|
3275
3287
|
* @param {number} column Visual column index.
|
3276
3288
|
* @returns {Function} The renderer function.
|
3277
3289
|
* @example
|
@@ -3291,7 +3303,7 @@ export default function Core(rootElement, userSettings) {
|
|
3291
3303
|
*
|
3292
3304
|
* @memberof Core#
|
3293
3305
|
* @function getCellEditor
|
3294
|
-
* @param {number} row Visual row index or cell meta object (see {@link
|
3306
|
+
* @param {number} row Visual row index or cell meta object (see {@link Core#getCellMeta}).
|
3295
3307
|
* @param {number} column Visual column index.
|
3296
3308
|
* @returns {Function} The editor class.
|
3297
3309
|
* @example
|
@@ -3311,7 +3323,7 @@ export default function Core(rootElement, userSettings) {
|
|
3311
3323
|
*
|
3312
3324
|
* @memberof Core#
|
3313
3325
|
* @function getCellValidator
|
3314
|
-
* @param {number|object} row Visual row index or cell meta object (see {@link
|
3326
|
+
* @param {number|object} row Visual row index or cell meta object (see {@link Core#getCellMeta}).
|
3315
3327
|
* @param {number} column Visual column index.
|
3316
3328
|
* @returns {Function|RegExp|undefined} The validator function.
|
3317
3329
|
* @example
|
@@ -3711,6 +3723,8 @@ export default function Core(rootElement, userSettings) {
|
|
3711
3723
|
/**
|
3712
3724
|
* Returns the row height.
|
3713
3725
|
*
|
3726
|
+
* Mind that this method is different from the [AutoRowSize](@/api/autoRowSize.md) plugin's [`getRowHeight()`](@/api/autoRowSize.md#getrowheight) method.
|
3727
|
+
*
|
3714
3728
|
* @memberof Core#
|
3715
3729
|
* @function getRowHeight
|
3716
3730
|
* @param {number} row Visual row index.
|
@@ -4307,7 +4321,7 @@ export default function Core(rootElement, userSettings) {
|
|
4307
4321
|
* @memberof Core#
|
4308
4322
|
* @function addHook
|
4309
4323
|
* @see Hooks#add
|
4310
|
-
* @param {string} key Hook name (see {@link
|
4324
|
+
* @param {string} key Hook name (see {@link Hooks}).
|
4311
4325
|
* @param {Function|Array} callback Function or array of functions.
|
4312
4326
|
* @example
|
4313
4327
|
* ```js
|
@@ -4321,7 +4335,7 @@ export default function Core(rootElement, userSettings) {
|
|
4321
4335
|
};
|
4322
4336
|
/**
|
4323
4337
|
* Check if for a specified hook name there are added listeners (only for this Handsontable instance). All available
|
4324
|
-
* hooks you will find {@link
|
4338
|
+
* hooks you will find {@link Hooks}.
|
4325
4339
|
*
|
4326
4340
|
* @memberof Core#
|
4327
4341
|
* @function hasHook
|
@@ -4346,7 +4360,7 @@ export default function Core(rootElement, userSettings) {
|
|
4346
4360
|
* @memberof Core#
|
4347
4361
|
* @function addHookOnce
|
4348
4362
|
* @see Hooks#once
|
4349
|
-
* @param {string} key Hook name (see {@link
|
4363
|
+
* @param {string} key Hook name (see {@link Hooks}).
|
4350
4364
|
* @param {Function|Array} callback Function or array of functions.
|
4351
4365
|
* @example
|
4352
4366
|
* ```js
|
@@ -4359,13 +4373,13 @@ export default function Core(rootElement, userSettings) {
|
|
4359
4373
|
Hooks.getSingleton().once(key, callback, instance);
|
4360
4374
|
};
|
4361
4375
|
/**
|
4362
|
-
* Removes the hook listener previously registered with {@link
|
4376
|
+
* Removes the hook listener previously registered with {@link Core#addHook}.
|
4363
4377
|
*
|
4364
4378
|
* @memberof Core#
|
4365
4379
|
* @function removeHook
|
4366
4380
|
* @see Hooks#remove
|
4367
4381
|
* @param {string} key Hook name.
|
4368
|
-
* @param {Function} callback Reference to the function which has been registered using {@link
|
4382
|
+
* @param {Function} callback Reference to the function which has been registered using {@link Core#addHook}.
|
4369
4383
|
*
|
4370
4384
|
* @example
|
4371
4385
|
* ```js
|
@@ -4525,6 +4539,45 @@ export default function Core(rootElement, userSettings) {
|
|
4525
4539
|
editorManager.prepareEditor();
|
4526
4540
|
}
|
4527
4541
|
};
|
4542
|
+
/**
|
4543
|
+
* Check if currently it is RTL direction.
|
4544
|
+
*
|
4545
|
+
* @private
|
4546
|
+
* @memberof Core#
|
4547
|
+
* @function isRtl
|
4548
|
+
* @returns {boolean} True if RTL.
|
4549
|
+
*/
|
4550
|
+
|
4551
|
+
|
4552
|
+
this.isRtl = function () {
|
4553
|
+
return instance.rootWindow.getComputedStyle(instance.rootElement).direction === 'rtl';
|
4554
|
+
};
|
4555
|
+
/**
|
4556
|
+
* Check if currently it is LTR direction.
|
4557
|
+
*
|
4558
|
+
* @private
|
4559
|
+
* @memberof Core#
|
4560
|
+
* @function isLtr
|
4561
|
+
* @returns {boolean} True if LTR.
|
4562
|
+
*/
|
4563
|
+
|
4564
|
+
|
4565
|
+
this.isLtr = function () {
|
4566
|
+
return !instance.isRtl();
|
4567
|
+
};
|
4568
|
+
/**
|
4569
|
+
* Returns 1 for LTR; -1 for RTL. Useful for calculations.
|
4570
|
+
*
|
4571
|
+
* @private
|
4572
|
+
* @memberof Core#
|
4573
|
+
* @function getDirectionFactor
|
4574
|
+
* @returns {number} Returns 1 for LTR; -1 for RTL.
|
4575
|
+
*/
|
4576
|
+
|
4577
|
+
|
4578
|
+
this.getDirectionFactor = function () {
|
4579
|
+
return instance.isLtr() ? 1 : -1;
|
4580
|
+
};
|
4528
4581
|
|
4529
4582
|
getPluginsNames().forEach(function (pluginName) {
|
4530
4583
|
var PluginClass = getPlugin(pluginName);
|