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
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);
|