handsontable 12.1.3 → 12.2.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/SheetClip/SheetClip.js +3 -32
- package/3rdparty/SheetClip/SheetClip.mjs +3 -23
- package/3rdparty/SheetClip/index.js +0 -2
- package/3rdparty/autoResize/autoResize.js +119 -145
- package/3rdparty/autoResize/autoResize.mjs +119 -143
- package/3rdparty/autoResize/index.js +0 -2
- package/3rdparty/walkontable/src/border.js +34 -151
- package/3rdparty/walkontable/src/border.mjs +36 -138
- package/3rdparty/walkontable/src/calculator/constants.js +0 -3
- package/3rdparty/walkontable/src/calculator/constants.mjs +0 -2
- package/3rdparty/walkontable/src/calculator/index.js +0 -10
- package/3rdparty/walkontable/src/calculator/viewportColumns.js +26 -76
- package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +26 -69
- package/3rdparty/walkontable/src/calculator/viewportRows.js +20 -48
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +20 -41
- package/3rdparty/walkontable/src/cell/coords.js +13 -43
- package/3rdparty/walkontable/src/cell/coords.mjs +13 -38
- package/3rdparty/walkontable/src/cell/range.js +55 -130
- package/3rdparty/walkontable/src/cell/range.mjs +60 -126
- package/3rdparty/walkontable/src/core/_base.js +16 -74
- package/3rdparty/walkontable/src/core/_base.mjs +19 -70
- package/3rdparty/walkontable/src/core/clone.js +1 -40
- package/3rdparty/walkontable/src/core/clone.mjs +3 -30
- package/3rdparty/walkontable/src/core/core.js +3 -57
- package/3rdparty/walkontable/src/core/core.mjs +5 -41
- package/3rdparty/walkontable/src/event.js +31 -78
- package/3rdparty/walkontable/src/event.mjs +31 -65
- package/3rdparty/walkontable/src/facade/core.js +1 -17
- package/3rdparty/walkontable/src/facade/core.mjs +7 -20
- package/3rdparty/walkontable/src/filter/column.js +9 -18
- package/3rdparty/walkontable/src/filter/column.mjs +9 -17
- package/3rdparty/walkontable/src/filter/row.js +9 -18
- package/3rdparty/walkontable/src/filter/row.mjs +9 -17
- package/3rdparty/walkontable/src/index.js +0 -31
- package/3rdparty/walkontable/src/overlay/_base.js +24 -69
- package/3rdparty/walkontable/src/overlay/_base.mjs +31 -68
- package/3rdparty/walkontable/src/overlay/bottom.js +28 -99
- package/3rdparty/walkontable/src/overlay/bottom.mjs +30 -86
- package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.js +7 -53
- package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.mjs +9 -40
- package/3rdparty/walkontable/src/overlay/constants.js +0 -6
- package/3rdparty/walkontable/src/overlay/constants.mjs +0 -1
- package/3rdparty/walkontable/src/overlay/index.js +0 -17
- package/3rdparty/walkontable/src/overlay/inlineStart.js +21 -91
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +23 -78
- package/3rdparty/walkontable/src/overlay/top.js +27 -100
- package/3rdparty/walkontable/src/overlay/top.mjs +29 -87
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +4 -51
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +6 -38
- package/3rdparty/walkontable/src/overlays.js +58 -129
- package/3rdparty/walkontable/src/overlays.mjs +60 -121
- package/3rdparty/walkontable/src/renderer/_base.js +4 -20
- package/3rdparty/walkontable/src/renderer/_base.mjs +8 -22
- package/3rdparty/walkontable/src/renderer/cells.js +10 -54
- package/3rdparty/walkontable/src/renderer/cells.mjs +22 -52
- package/3rdparty/walkontable/src/renderer/colGroup.js +10 -47
- package/3rdparty/walkontable/src/renderer/colGroup.mjs +21 -46
- package/3rdparty/walkontable/src/renderer/columnHeaders.js +8 -50
- package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +19 -49
- package/3rdparty/walkontable/src/renderer/index.js +13 -36
- package/3rdparty/walkontable/src/renderer/index.mjs +17 -27
- package/3rdparty/walkontable/src/renderer/rowHeaders.js +8 -50
- package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +20 -49
- package/3rdparty/walkontable/src/renderer/rows.js +3 -46
- package/3rdparty/walkontable/src/renderer/rows.mjs +3 -29
- package/3rdparty/walkontable/src/renderer/table.js +22 -49
- package/3rdparty/walkontable/src/renderer/table.mjs +22 -48
- package/3rdparty/walkontable/src/scroll.js +56 -86
- package/3rdparty/walkontable/src/scroll.mjs +58 -86
- package/3rdparty/walkontable/src/selection.js +20 -101
- package/3rdparty/walkontable/src/selection.mjs +22 -85
- package/3rdparty/walkontable/src/settings.js +9 -29
- package/3rdparty/walkontable/src/settings.mjs +9 -27
- package/3rdparty/walkontable/src/table/bottom.js +1 -35
- package/3rdparty/walkontable/src/table/bottom.mjs +6 -25
- package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +1 -35
- package/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs +7 -26
- package/3rdparty/walkontable/src/table/inlineStart.js +1 -35
- package/3rdparty/walkontable/src/table/inlineStart.mjs +3 -22
- package/3rdparty/walkontable/src/table/master.js +10 -55
- package/3rdparty/walkontable/src/table/master.mjs +15 -44
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +7 -28
- package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +7 -26
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +7 -28
- package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +7 -26
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +7 -22
- package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +7 -20
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +7 -23
- package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +7 -21
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +7 -22
- package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +7 -20
- package/3rdparty/walkontable/src/table/top.js +1 -35
- package/3rdparty/walkontable/src/table/top.mjs +6 -25
- package/3rdparty/walkontable/src/table/topInlineStartCorner.js +1 -35
- package/3rdparty/walkontable/src/table/topInlineStartCorner.mjs +7 -26
- package/3rdparty/walkontable/src/table.js +63 -230
- package/3rdparty/walkontable/src/table.mjs +73 -219
- package/3rdparty/walkontable/src/types.js +0 -5
- package/3rdparty/walkontable/src/types.mjs +0 -5
- package/3rdparty/walkontable/src/utils/column.js +9 -31
- package/3rdparty/walkontable/src/utils/column.mjs +13 -30
- package/3rdparty/walkontable/src/utils/nodesPool.js +3 -12
- package/3rdparty/walkontable/src/utils/nodesPool.mjs +3 -11
- package/3rdparty/walkontable/src/utils/orderView/constants.js +0 -3
- package/3rdparty/walkontable/src/utils/orderView/constants.mjs +0 -2
- package/3rdparty/walkontable/src/utils/orderView/index.js +0 -5
- package/3rdparty/walkontable/src/utils/orderView/sharedView.js +2 -33
- package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +6 -26
- package/3rdparty/walkontable/src/utils/orderView/view.js +14 -46
- package/3rdparty/walkontable/src/utils/orderView/view.mjs +21 -50
- package/3rdparty/walkontable/src/utils/orderView/viewSize.js +3 -15
- package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +3 -14
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +8 -22
- package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +23 -34
- package/3rdparty/walkontable/src/utils/row.js +2 -13
- package/3rdparty/walkontable/src/utils/row.mjs +2 -12
- package/3rdparty/walkontable/src/viewport.js +38 -100
- package/3rdparty/walkontable/src/viewport.mjs +40 -99
- package/CHANGELOG.md +76 -1
- package/base.js +6 -17
- package/base.mjs +6 -12
- package/cellTypes/autocompleteType/autocompleteType.js +0 -4
- package/cellTypes/autocompleteType/index.js +0 -2
- package/cellTypes/checkboxType/checkboxType.js +0 -3
- package/cellTypes/checkboxType/index.js +0 -2
- package/cellTypes/dateType/dateType.js +0 -4
- package/cellTypes/dateType/index.js +0 -2
- package/cellTypes/dropdownType/dropdownType.js +0 -4
- package/cellTypes/dropdownType/index.js +0 -2
- package/cellTypes/handsontableType/handsontableType.js +0 -3
- package/cellTypes/handsontableType/index.js +0 -2
- package/cellTypes/index.js +0 -21
- package/cellTypes/index.mjs +3 -5
- package/cellTypes/numericType/index.js +0 -2
- package/cellTypes/numericType/numericType.js +0 -4
- package/cellTypes/passwordType/index.js +0 -2
- package/cellTypes/passwordType/passwordType.js +0 -3
- package/cellTypes/registry.js +10 -25
- package/cellTypes/registry.mjs +10 -20
- package/cellTypes/textType/index.js +0 -2
- package/cellTypes/textType/textType.js +0 -3
- package/cellTypes/timeType/index.js +0 -2
- package/cellTypes/timeType/timeType.js +0 -4
- package/core.d.ts +5 -1
- package/core.js +505 -973
- package/core.mjs +510 -920
- package/dataMap/dataMap.js +106 -210
- package/dataMap/dataMap.mjs +106 -184
- package/{dataSource.js → dataMap/dataSource.js} +18 -66
- package/{dataSource.mjs → dataMap/dataSource.mjs} +20 -60
- package/dataMap/index.js +0 -13
- package/dataMap/metaManager/index.js +21 -46
- package/dataMap/metaManager/index.mjs +47 -64
- package/dataMap/metaManager/lazyFactoryMap.js +10 -61
- package/dataMap/metaManager/lazyFactoryMap.mjs +10 -45
- package/dataMap/metaManager/metaLayers/cellMeta.js +16 -52
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +16 -37
- package/dataMap/metaManager/metaLayers/columnMeta.js +8 -22
- package/dataMap/metaManager/metaLayers/columnMeta.mjs +14 -25
- package/dataMap/metaManager/metaLayers/globalMeta.js +4 -19
- package/dataMap/metaManager/metaLayers/globalMeta.mjs +4 -15
- package/dataMap/metaManager/metaLayers/tableMeta.js +4 -15
- package/dataMap/metaManager/metaLayers/tableMeta.mjs +28 -37
- package/dataMap/metaManager/metaSchema.js +86 -179
- package/dataMap/metaManager/metaSchema.mjs +86 -170
- package/dataMap/metaManager/mods/dynamicCellMeta.js +6 -36
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +20 -39
- package/dataMap/metaManager/mods/extendMetaProperties.js +5 -28
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +4 -18
- package/dataMap/metaManager/utils.js +11 -20
- package/dataMap/metaManager/utils.mjs +21 -23
- package/dataMap/replaceData.js +14 -35
- package/dataMap/replaceData.mjs +35 -45
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +8478 -20043
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +55 -55
- package/dist/handsontable.js +7995 -19560
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +3 -3
- package/dist/languages/all.js +0 -175
- package/dist/languages/ar-AR.js +0 -10
- package/dist/languages/cs-CZ.js +0 -10
- package/dist/languages/de-CH.js +0 -10
- package/dist/languages/de-DE.js +0 -10
- package/dist/languages/en-US.js +0 -10
- package/dist/languages/es-MX.js +0 -10
- package/dist/languages/fr-FR.js +0 -10
- package/dist/languages/it-IT.js +0 -10
- package/dist/languages/ja-JP.js +0 -10
- package/dist/languages/ko-KR.js +0 -10
- package/dist/languages/lv-LV.js +0 -10
- package/dist/languages/nb-NO.js +0 -10
- package/dist/languages/nl-NL.js +0 -10
- package/dist/languages/pl-PL.js +0 -10
- package/dist/languages/pt-BR.js +0 -10
- package/dist/languages/ru-RU.js +0 -10
- package/dist/languages/sr-SP.js +0 -10
- package/dist/languages/zh-CN.js +0 -10
- package/dist/languages/zh-TW.js +0 -10
- package/editorManager.js +36 -105
- package/editorManager.mjs +36 -85
- package/editors/autocompleteEditor/autocompleteEditor.js +26 -133
- package/editors/autocompleteEditor/autocompleteEditor.mjs +26 -104
- package/editors/autocompleteEditor/index.js +0 -2
- package/editors/baseEditor/baseEditor.js +44 -154
- package/editors/baseEditor/baseEditor.mjs +44 -128
- package/editors/baseEditor/index.js +0 -2
- package/editors/checkboxEditor/checkboxEditor.js +2 -33
- package/editors/checkboxEditor/checkboxEditor.mjs +2 -19
- package/editors/checkboxEditor/index.js +0 -2
- package/editors/dateEditor/dateEditor.js +20 -96
- package/editors/dateEditor/dateEditor.mjs +20 -75
- package/editors/dateEditor/index.js +0 -2
- package/editors/dropdownEditor/dropdownEditor.js +1 -41
- package/editors/dropdownEditor/dropdownEditor.mjs +1 -22
- package/editors/dropdownEditor/index.js +0 -2
- package/editors/handsontableEditor/handsontableEditor.js +13 -85
- package/editors/handsontableEditor/handsontableEditor.mjs +13 -66
- package/editors/handsontableEditor/index.js +0 -2
- package/editors/index.js +0 -25
- package/editors/index.mjs +3 -5
- package/editors/numericEditor/index.js +0 -2
- package/editors/numericEditor/numericEditor.js +1 -31
- package/editors/numericEditor/numericEditor.mjs +1 -18
- package/editors/passwordEditor/index.js +0 -2
- package/editors/passwordEditor/passwordEditor.js +1 -38
- package/editors/passwordEditor/passwordEditor.mjs +1 -22
- package/editors/registry.js +10 -36
- package/editors/registry.mjs +10 -28
- package/editors/selectEditor/index.js +0 -2
- package/editors/selectEditor/selectEditor.js +21 -73
- package/editors/selectEditor/selectEditor.mjs +21 -56
- package/editors/textEditor/caretPositioner.js +0 -8
- package/editors/textEditor/caretPositioner.mjs +10 -18
- package/editors/textEditor/index.js +0 -2
- package/editors/textEditor/textEditor.js +38 -137
- package/editors/textEditor/textEditor.mjs +38 -106
- package/editors/timeEditor/index.js +0 -2
- package/editors/timeEditor/timeEditor.js +1 -36
- package/editors/timeEditor/timeEditor.mjs +1 -21
- package/eventManager.js +20 -56
- package/eventManager.mjs +23 -56
- package/helpers/array.js +22 -88
- package/helpers/array.mjs +22 -58
- package/helpers/browser.js +25 -51
- package/helpers/browser.mjs +25 -32
- package/helpers/console.js +3 -13
- package/helpers/console.mjs +8 -16
- package/helpers/data.d.ts +0 -1
- package/helpers/data.js +10 -55
- package/helpers/data.mjs +10 -33
- package/helpers/date.js +2 -3
- package/helpers/date.mjs +2 -2
- package/helpers/dom/element.js +66 -256
- package/helpers/dom/element.mjs +73 -192
- package/helpers/dom/event.js +3 -7
- package/helpers/dom/event.mjs +3 -3
- package/helpers/feature.js +13 -47
- package/helpers/feature.mjs +13 -31
- package/helpers/function.js +14 -59
- package/helpers/function.mjs +20 -52
- package/helpers/mixed.js +9 -64
- package/helpers/mixed.mjs +15 -50
- package/helpers/number.js +4 -46
- package/helpers/number.mjs +4 -23
- package/helpers/object.js +15 -68
- package/helpers/object.mjs +21 -50
- package/helpers/string.js +6 -28
- package/helpers/string.mjs +12 -21
- package/helpers/templateLiteralTag.js +0 -6
- package/helpers/templateLiteralTag.mjs +7 -10
- package/helpers/unicode.js +17 -22
- package/helpers/unicode.mjs +17 -13
- package/helpers/wrappers/jquery.js +4 -14
- package/helpers/wrappers/jquery.mjs +4 -13
- package/i18n/constants.js +1 -3
- package/i18n/constants.mjs +1 -1
- package/i18n/index.js +0 -7
- package/i18n/languages/ar-AR.js +0 -16
- package/i18n/languages/ar-AR.mjs +1 -4
- package/i18n/languages/cs-CZ.js +0 -16
- package/i18n/languages/cs-CZ.mjs +1 -4
- package/i18n/languages/de-CH.js +0 -16
- package/i18n/languages/de-CH.mjs +1 -4
- package/i18n/languages/de-DE.js +0 -16
- package/i18n/languages/de-DE.mjs +1 -4
- package/i18n/languages/en-US.js +0 -16
- package/i18n/languages/en-US.mjs +1 -4
- package/i18n/languages/es-MX.js +0 -16
- package/i18n/languages/es-MX.mjs +1 -4
- package/i18n/languages/fr-FR.js +0 -16
- package/i18n/languages/fr-FR.mjs +1 -4
- package/i18n/languages/index.js +0 -39
- package/i18n/languages/it-IT.js +0 -16
- package/i18n/languages/it-IT.mjs +1 -4
- package/i18n/languages/ja-JP.js +0 -16
- package/i18n/languages/ja-JP.mjs +1 -4
- package/i18n/languages/ko-KR.js +0 -16
- package/i18n/languages/ko-KR.mjs +1 -4
- package/i18n/languages/lv-LV.js +0 -16
- package/i18n/languages/lv-LV.mjs +1 -4
- package/i18n/languages/nb-NO.js +0 -16
- package/i18n/languages/nb-NO.mjs +1 -4
- package/i18n/languages/nl-NL.js +0 -16
- package/i18n/languages/nl-NL.mjs +1 -4
- package/i18n/languages/pl-PL.js +0 -16
- package/i18n/languages/pl-PL.mjs +1 -4
- package/i18n/languages/pt-BR.js +0 -16
- package/i18n/languages/pt-BR.mjs +1 -4
- package/i18n/languages/ru-RU.js +0 -16
- package/i18n/languages/ru-RU.mjs +1 -4
- package/i18n/languages/sr-SP.js +0 -16
- package/i18n/languages/sr-SP.mjs +1 -4
- package/i18n/languages/zh-CN.js +0 -16
- package/i18n/languages/zh-CN.mjs +1 -4
- package/i18n/languages/zh-TW.js +0 -16
- package/i18n/languages/zh-TW.mjs +1 -4
- package/i18n/phraseFormatters/index.js +4 -11
- package/i18n/phraseFormatters/index.mjs +4 -6
- package/i18n/phraseFormatters/pluralize.js +0 -5
- package/i18n/phraseFormatters/pluralize.mjs +0 -3
- package/i18n/phraseFormatters/substituteVariables.js +0 -4
- package/i18n/phraseFormatters/substituteVariables.mjs +8 -11
- package/i18n/registry.js +18 -59
- package/i18n/registry.mjs +18 -30
- package/i18n/utils.js +4 -22
- package/i18n/utils.mjs +13 -21
- package/index.js +19 -56
- package/index.mjs +19 -15
- package/languages/all.js +0 -175
- package/languages/ar-AR.js +0 -10
- package/languages/ar-AR.mjs +1 -4
- package/languages/cs-CZ.js +0 -10
- package/languages/cs-CZ.mjs +1 -4
- package/languages/de-CH.js +0 -10
- package/languages/de-CH.mjs +1 -4
- package/languages/de-DE.js +0 -10
- package/languages/de-DE.mjs +1 -4
- package/languages/en-US.js +0 -10
- package/languages/en-US.mjs +1 -4
- package/languages/es-MX.js +0 -10
- package/languages/es-MX.mjs +1 -4
- package/languages/fr-FR.js +0 -10
- package/languages/fr-FR.mjs +1 -4
- package/languages/index.js +0 -175
- package/languages/it-IT.js +0 -10
- package/languages/it-IT.mjs +1 -4
- package/languages/ja-JP.js +0 -10
- package/languages/ja-JP.mjs +1 -4
- package/languages/ko-KR.js +0 -10
- package/languages/ko-KR.mjs +1 -4
- package/languages/lv-LV.js +0 -10
- package/languages/lv-LV.mjs +1 -4
- package/languages/nb-NO.js +0 -10
- package/languages/nb-NO.mjs +1 -4
- package/languages/nl-NL.js +0 -10
- package/languages/nl-NL.mjs +1 -4
- package/languages/pl-PL.js +0 -10
- package/languages/pl-PL.mjs +1 -4
- package/languages/pt-BR.js +0 -10
- package/languages/pt-BR.mjs +1 -4
- package/languages/ru-RU.js +0 -10
- package/languages/ru-RU.mjs +1 -4
- package/languages/sr-SP.js +0 -10
- package/languages/sr-SP.mjs +1 -4
- package/languages/zh-CN.js +0 -10
- package/languages/zh-CN.mjs +1 -4
- package/languages/zh-TW.js +0 -10
- package/languages/zh-TW.mjs +1 -4
- package/mixins/hooksRefRegisterer.js +4 -18
- package/mixins/hooksRefRegisterer.mjs +4 -15
- package/mixins/localHooks.js +7 -17
- package/mixins/localHooks.mjs +7 -14
- package/package.json +1 -1
- package/pluginHooks.d.ts +3 -3
- package/pluginHooks.js +271 -96
- package/pluginHooks.mjs +270 -83
- package/plugins/autoColumnSize/autoColumnSize.js +74 -172
- package/plugins/autoColumnSize/autoColumnSize.mjs +74 -137
- package/plugins/autoColumnSize/index.js +0 -2
- package/plugins/autoRowSize/autoRowSize.js +73 -153
- package/plugins/autoRowSize/autoRowSize.mjs +73 -124
- package/plugins/autoRowSize/index.js +0 -2
- package/plugins/autofill/autofill.js +46 -163
- package/plugins/autofill/autofill.mjs +46 -131
- package/plugins/autofill/index.js +0 -2
- package/plugins/autofill/utils.js +4 -26
- package/plugins/autofill/utils.mjs +4 -18
- package/plugins/base/base.js +20 -89
- package/plugins/base/base.mjs +20 -61
- package/plugins/base/index.js +0 -2
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +19 -52
- package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +19 -33
- package/plugins/bindRowsWithHeaders/index.js +0 -2
- package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +5 -41
- package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +5 -29
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +6 -53
- package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +6 -37
- package/plugins/collapsibleColumns/collapsibleColumns.js +96 -188
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +97 -158
- package/plugins/collapsibleColumns/index.js +0 -2
- package/plugins/columnSorting/columnSorting.js +50 -188
- package/plugins/columnSorting/columnSorting.mjs +50 -143
- package/plugins/columnSorting/columnStatesManager.js +15 -71
- package/plugins/columnSorting/columnStatesManager.mjs +15 -48
- package/plugins/columnSorting/domHelpers.js +2 -18
- package/plugins/columnSorting/domHelpers.mjs +2 -7
- package/plugins/columnSorting/index.js +0 -2
- package/plugins/columnSorting/rootComparator.js +5 -24
- package/plugins/columnSorting/rootComparator.mjs +12 -21
- package/plugins/columnSorting/sortFunction/checkbox.js +8 -16
- package/plugins/columnSorting/sortFunction/checkbox.mjs +16 -21
- package/plugins/columnSorting/sortFunction/date.js +2 -19
- package/plugins/columnSorting/sortFunction/date.mjs +10 -23
- package/plugins/columnSorting/sortFunction/default.js +2 -17
- package/plugins/columnSorting/sortFunction/default.mjs +10 -23
- package/plugins/columnSorting/sortFunction/numeric.js +2 -11
- package/plugins/columnSorting/sortFunction/numeric.mjs +10 -17
- package/plugins/columnSorting/sortService/engine.js +1 -7
- package/plugins/columnSorting/sortService/engine.mjs +1 -3
- package/plugins/columnSorting/sortService/index.js +0 -5
- package/plugins/columnSorting/sortService/registry.js +6 -18
- package/plugins/columnSorting/sortService/registry.mjs +6 -10
- package/plugins/columnSorting/utils.js +9 -34
- package/plugins/columnSorting/utils.mjs +9 -15
- package/plugins/columnSummary/columnSummary.js +52 -118
- package/plugins/columnSummary/columnSummary.mjs +52 -93
- package/plugins/columnSummary/endpoints.js +21 -98
- package/plugins/columnSummary/endpoints.mjs +26 -99
- package/plugins/columnSummary/index.js +0 -2
- package/plugins/columnSummary/utils.js +0 -1
- package/plugins/comments/commentEditor.js +16 -28
- package/plugins/comments/commentEditor.mjs +21 -32
- package/plugins/comments/comments.js +92 -175
- package/plugins/comments/comments.mjs +92 -149
- package/plugins/comments/displaySwitch.js +6 -23
- package/plugins/comments/displaySwitch.mjs +6 -18
- package/plugins/comments/index.js +0 -2
- package/plugins/contextMenu/commandExecutor.js +9 -36
- package/plugins/contextMenu/commandExecutor.mjs +14 -39
- package/plugins/contextMenu/contextMenu.js +21 -104
- package/plugins/contextMenu/contextMenu.mjs +21 -74
- package/plugins/contextMenu/cursor.js +6 -20
- package/plugins/contextMenu/cursor.mjs +11 -24
- package/plugins/contextMenu/index.js +0 -2
- package/plugins/contextMenu/itemsFactory.js +14 -43
- package/plugins/contextMenu/itemsFactory.mjs +19 -44
- package/plugins/contextMenu/menu.js +57 -177
- package/plugins/contextMenu/menu.mjs +57 -149
- package/plugins/contextMenu/predefinedItems/alignment.js +1 -55
- package/plugins/contextMenu/predefinedItems/alignment.mjs +1 -37
- package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -20
- package/plugins/contextMenu/predefinedItems/clearColumn.mjs +1 -4
- package/plugins/contextMenu/predefinedItems/columnLeft.js +6 -43
- package/plugins/contextMenu/predefinedItems/columnLeft.mjs +6 -26
- package/plugins/contextMenu/predefinedItems/columnRight.js +4 -42
- package/plugins/contextMenu/predefinedItems/columnRight.mjs +4 -25
- package/plugins/contextMenu/predefinedItems/noItems.js +1 -4
- package/plugins/contextMenu/predefinedItems/noItems.mjs +1 -1
- package/plugins/contextMenu/predefinedItems/readOnly.js +1 -25
- package/plugins/contextMenu/predefinedItems/readOnly.mjs +1 -8
- package/plugins/contextMenu/predefinedItems/redo.js +1 -16
- package/plugins/contextMenu/predefinedItems/redo.mjs +1 -1
- package/plugins/contextMenu/predefinedItems/removeColumn.js +3 -38
- package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -18
- package/plugins/contextMenu/predefinedItems/removeRow.js +3 -37
- package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -17
- package/plugins/contextMenu/predefinedItems/rowAbove.js +6 -35
- package/plugins/contextMenu/predefinedItems/rowAbove.mjs +6 -19
- package/plugins/contextMenu/predefinedItems/rowBelow.js +4 -42
- package/plugins/contextMenu/predefinedItems/rowBelow.mjs +4 -25
- package/plugins/contextMenu/predefinedItems/separator.js +1 -2
- package/plugins/contextMenu/predefinedItems/separator.mjs +1 -1
- package/plugins/contextMenu/predefinedItems/undo.js +1 -16
- package/plugins/contextMenu/predefinedItems/undo.mjs +1 -1
- package/plugins/contextMenu/predefinedItems.js +2 -48
- package/plugins/contextMenu/predefinedItems.mjs +2 -7
- package/plugins/contextMenu/utils.js +17 -57
- package/plugins/contextMenu/utils.mjs +21 -39
- package/plugins/copyPaste/clipboardData.js +1 -10
- package/plugins/copyPaste/clipboardData.mjs +1 -9
- package/plugins/copyPaste/contextMenuItem/copy.js +2 -17
- package/plugins/copyPaste/contextMenuItem/copy.mjs +6 -9
- package/plugins/copyPaste/contextMenuItem/cut.js +2 -17
- package/plugins/copyPaste/contextMenuItem/cut.mjs +6 -9
- package/plugins/copyPaste/copyPaste.js +51 -185
- package/plugins/copyPaste/copyPaste.mjs +51 -144
- package/plugins/copyPaste/focusableElement.js +12 -56
- package/plugins/copyPaste/focusableElement.mjs +15 -49
- package/plugins/copyPaste/index.js +0 -2
- package/plugins/copyPaste/pasteEvent.js +1 -10
- package/plugins/copyPaste/pasteEvent.mjs +3 -10
- package/plugins/customBorders/contextMenuItem/bottom.js +0 -17
- package/plugins/customBorders/contextMenuItem/bottom.mjs +4 -8
- package/plugins/customBorders/contextMenuItem/index.js +0 -11
- package/plugins/customBorders/contextMenuItem/left.js +0 -17
- package/plugins/customBorders/contextMenuItem/left.mjs +4 -8
- package/plugins/customBorders/contextMenuItem/noBorders.js +0 -15
- package/plugins/customBorders/contextMenuItem/noBorders.mjs +4 -6
- package/plugins/customBorders/contextMenuItem/right.js +0 -17
- package/plugins/customBorders/contextMenuItem/right.mjs +4 -8
- package/plugins/customBorders/contextMenuItem/top.js +0 -17
- package/plugins/customBorders/contextMenuItem/top.mjs +4 -8
- package/plugins/customBorders/customBorders.js +52 -181
- package/plugins/customBorders/customBorders.mjs +52 -147
- package/plugins/customBorders/index.js +0 -2
- package/plugins/customBorders/utils.js +13 -52
- package/plugins/customBorders/utils.mjs +20 -39
- package/plugins/dragToScroll/dragToScroll.js +17 -74
- package/plugins/dragToScroll/dragToScroll.mjs +17 -55
- package/plugins/dragToScroll/index.js +0 -2
- package/plugins/dropdownMenu/dropdownMenu.js +43 -126
- package/plugins/dropdownMenu/dropdownMenu.mjs +43 -95
- package/plugins/dropdownMenu/index.js +0 -2
- package/plugins/exportFile/dataProvider.js +24 -69
- package/plugins/exportFile/dataProvider.mjs +26 -60
- package/plugins/exportFile/exportFile.js +48 -58
- package/plugins/exportFile/exportFile.mjs +48 -36
- package/plugins/exportFile/index.js +0 -2
- package/plugins/exportFile/typeFactory.js +1 -11
- package/plugins/exportFile/typeFactory.mjs +1 -4
- package/plugins/exportFile/types/_base.js +2 -16
- package/plugins/exportFile/types/_base.mjs +4 -16
- package/plugins/exportFile/types/csv.js +2 -50
- package/plugins/exportFile/types/csv.mjs +2 -29
- package/plugins/filters/component/_base.js +12 -32
- package/plugins/filters/component/_base.mjs +15 -30
- package/plugins/filters/component/actionBar.js +6 -55
- package/plugins/filters/component/actionBar.mjs +9 -38
- package/plugins/filters/component/condition.js +15 -94
- package/plugins/filters/component/condition.mjs +18 -67
- package/plugins/filters/component/operators.js +10 -68
- package/plugins/filters/component/operators.mjs +10 -45
- package/plugins/filters/component/value.js +16 -97
- package/plugins/filters/component/value.mjs +19 -70
- package/plugins/filters/condition/beginsWith.js +2 -32
- package/plugins/filters/condition/beginsWith.mjs +2 -10
- package/plugins/filters/condition/between.js +3 -37
- package/plugins/filters/condition/between.mjs +3 -15
- package/plugins/filters/condition/byValue.js +3 -27
- package/plugins/filters/condition/byValue.mjs +3 -12
- package/plugins/filters/condition/contains.js +2 -32
- package/plugins/filters/condition/contains.mjs +2 -10
- package/plugins/filters/condition/date/after.js +2 -34
- package/plugins/filters/condition/date/after.mjs +2 -12
- package/plugins/filters/condition/date/before.js +2 -34
- package/plugins/filters/condition/date/before.mjs +2 -12
- package/plugins/filters/condition/date/today.js +1 -22
- package/plugins/filters/condition/date/today.mjs +1 -3
- package/plugins/filters/condition/date/tomorrow.js +1 -22
- package/plugins/filters/condition/date/tomorrow.mjs +1 -3
- package/plugins/filters/condition/date/yesterday.js +1 -22
- package/plugins/filters/condition/date/yesterday.mjs +1 -3
- package/plugins/filters/condition/empty.js +1 -19
- package/plugins/filters/condition/empty.mjs +1 -1
- package/plugins/filters/condition/endsWith.js +2 -32
- package/plugins/filters/condition/endsWith.mjs +2 -10
- package/plugins/filters/condition/equal.js +2 -31
- package/plugins/filters/condition/equal.mjs +2 -10
- package/plugins/filters/condition/false.js +1 -5
- package/plugins/filters/condition/false.mjs +1 -1
- package/plugins/filters/condition/greaterThan.js +2 -32
- package/plugins/filters/condition/greaterThan.mjs +2 -12
- package/plugins/filters/condition/greaterThanOrEqual.js +2 -32
- package/plugins/filters/condition/greaterThanOrEqual.mjs +2 -12
- package/plugins/filters/condition/lessThan.js +2 -32
- package/plugins/filters/condition/lessThan.mjs +2 -12
- package/plugins/filters/condition/lessThanOrEqual.js +2 -32
- package/plugins/filters/condition/lessThanOrEqual.mjs +2 -12
- package/plugins/filters/condition/none.js +1 -18
- package/plugins/filters/condition/none.mjs +1 -1
- package/plugins/filters/condition/notBetween.js +1 -19
- package/plugins/filters/condition/notBetween.mjs +1 -1
- package/plugins/filters/condition/notContains.js +1 -19
- package/plugins/filters/condition/notContains.mjs +1 -1
- package/plugins/filters/condition/notEmpty.js +1 -19
- package/plugins/filters/condition/notEmpty.mjs +1 -1
- package/plugins/filters/condition/notEqual.js +1 -19
- package/plugins/filters/condition/notEqual.mjs +1 -1
- package/plugins/filters/condition/true.js +1 -5
- package/plugins/filters/condition/true.mjs +1 -1
- package/plugins/filters/conditionCollection.js +21 -80
- package/plugins/filters/conditionCollection.mjs +21 -57
- package/plugins/filters/conditionRegisterer.js +5 -14
- package/plugins/filters/conditionRegisterer.mjs +5 -9
- package/plugins/filters/conditionUpdateObserver.js +17 -57
- package/plugins/filters/conditionUpdateObserver.mjs +25 -53
- package/plugins/filters/constants.js +1 -66
- package/plugins/filters/constants.mjs +1 -8
- package/plugins/filters/dataFilter.js +4 -21
- package/plugins/filters/dataFilter.mjs +7 -23
- package/plugins/filters/filters.js +103 -208
- package/plugins/filters/filters.mjs +103 -163
- package/plugins/filters/index.js +0 -2
- package/plugins/filters/logicalOperationRegisterer.js +3 -9
- package/plugins/filters/logicalOperationRegisterer.mjs +3 -4
- package/plugins/filters/logicalOperations/conjunction.js +2 -19
- package/plugins/filters/logicalOperations/conjunction.mjs +2 -2
- package/plugins/filters/logicalOperations/disjunction.js +2 -19
- package/plugins/filters/logicalOperations/disjunction.mjs +2 -2
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -21
- package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -3
- package/plugins/filters/ui/_base.js +12 -55
- package/plugins/filters/ui/_base.mjs +12 -35
- package/plugins/filters/ui/input.js +7 -52
- package/plugins/filters/ui/input.mjs +7 -34
- package/plugins/filters/ui/link.js +3 -43
- package/plugins/filters/ui/link.mjs +3 -25
- package/plugins/filters/ui/multipleSelect.js +26 -120
- package/plugins/filters/ui/multipleSelect.mjs +20 -76
- package/plugins/filters/ui/radioInput.js +6 -47
- package/plugins/filters/ui/radioInput.mjs +6 -30
- package/plugins/filters/ui/select.js +14 -76
- package/plugins/filters/ui/select.mjs +14 -52
- package/plugins/filters/utils.js +6 -39
- package/plugins/filters/utils.mjs +6 -23
- package/plugins/formulas/engine/register.js +24 -74
- package/plugins/formulas/engine/register.mjs +29 -51
- package/plugins/formulas/engine/settings.js +4 -24
- package/plugins/formulas/engine/settings.mjs +4 -12
- package/plugins/formulas/formulas.js +103 -295
- package/plugins/formulas/formulas.mjs +104 -248
- package/plugins/formulas/index.js +0 -2
- package/plugins/formulas/utils.js +1 -3
- package/plugins/formulas/utils.mjs +1 -1
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +4 -38
- package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +8 -25
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +17 -45
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +21 -29
- package/plugins/hiddenColumns/hiddenColumns.js +72 -149
- package/plugins/hiddenColumns/hiddenColumns.mjs +72 -108
- package/plugins/hiddenColumns/index.js +0 -2
- package/plugins/hiddenRows/contextMenuItem/hideRow.js +4 -38
- package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +8 -25
- package/plugins/hiddenRows/contextMenuItem/showRow.js +17 -45
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +21 -29
- package/plugins/hiddenRows/hiddenRows.js +70 -148
- package/plugins/hiddenRows/hiddenRows.mjs +70 -107
- package/plugins/hiddenRows/index.js +0 -2
- package/plugins/index.js +0 -71
- package/plugins/index.mjs +3 -5
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -28
- package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +5 -17
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -28
- package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +5 -17
- package/plugins/manualColumnFreeze/index.js +0 -2
- package/plugins/manualColumnFreeze/manualColumnFreeze.js +21 -78
- package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +21 -54
- package/plugins/manualColumnMove/index.js +0 -2
- package/plugins/manualColumnMove/manualColumnMove.js +45 -134
- package/plugins/manualColumnMove/manualColumnMove.mjs +45 -106
- package/plugins/manualColumnMove/ui/_base.js +12 -30
- package/plugins/manualColumnMove/ui/_base.mjs +12 -27
- package/plugins/manualColumnMove/ui/backlight.js +1 -37
- package/plugins/manualColumnMove/ui/backlight.mjs +1 -22
- package/plugins/manualColumnMove/ui/guideline.js +1 -37
- package/plugins/manualColumnMove/ui/guideline.mjs +1 -22
- package/plugins/manualColumnResize/index.js +0 -2
- package/plugins/manualColumnResize/manualColumnResize.js +44 -143
- package/plugins/manualColumnResize/manualColumnResize.mjs +43 -118
- package/plugins/manualRowMove/index.js +0 -2
- package/plugins/manualRowMove/manualRowMove.js +45 -137
- package/plugins/manualRowMove/manualRowMove.mjs +45 -109
- package/plugins/manualRowMove/ui/_base.js +12 -27
- package/plugins/manualRowMove/ui/_base.mjs +12 -26
- package/plugins/manualRowMove/ui/backlight.js +1 -37
- package/plugins/manualRowMove/ui/backlight.mjs +1 -22
- package/plugins/manualRowMove/ui/guideline.js +1 -37
- package/plugins/manualRowMove/ui/guideline.mjs +1 -22
- package/plugins/manualRowResize/index.js +0 -2
- package/plugins/manualRowResize/manualRowResize.js +42 -138
- package/plugins/manualRowResize/manualRowResize.mjs +41 -112
- package/plugins/mergeCells/calculations/autofill.js +39 -130
- package/plugins/mergeCells/calculations/autofill.mjs +44 -122
- package/plugins/mergeCells/calculations/selection.js +9 -40
- package/plugins/mergeCells/calculations/selection.mjs +9 -37
- package/plugins/mergeCells/cellCoords.js +30 -51
- package/plugins/mergeCells/cellCoords.mjs +35 -54
- package/plugins/mergeCells/cellsCollection.js +13 -84
- package/plugins/mergeCells/cellsCollection.mjs +18 -69
- package/plugins/mergeCells/contextMenuItem/toggleMerge.js +0 -22
- package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +4 -11
- package/plugins/mergeCells/index.js +0 -2
- package/plugins/mergeCells/mergeCells.js +130 -333
- package/plugins/mergeCells/mergeCells.mjs +130 -292
- package/plugins/mergeCells/utils.js +0 -3
- package/plugins/mergeCells/utils.mjs +0 -1
- package/plugins/multiColumnSorting/domHelpers.js +2 -12
- package/plugins/multiColumnSorting/domHelpers.mjs +2 -5
- package/plugins/multiColumnSorting/index.js +0 -2
- package/plugins/multiColumnSorting/multiColumnSorting.js +14 -66
- package/plugins/multiColumnSorting/multiColumnSorting.mjs +14 -44
- package/plugins/multiColumnSorting/rootComparator.js +2 -26
- package/plugins/multiColumnSorting/rootComparator.mjs +9 -23
- package/plugins/multiColumnSorting/utils.js +0 -7
- package/plugins/multiColumnSorting/utils.mjs +3 -8
- package/plugins/multipleSelectionHandles/index.js +0 -2
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +6 -109
- package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +6 -87
- package/plugins/nestedHeaders/index.js +0 -2
- package/plugins/nestedHeaders/nestedHeaders.js +79 -200
- package/plugins/nestedHeaders/nestedHeaders.mjs +80 -173
- package/plugins/nestedHeaders/stateManager/headersTree.js +16 -93
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +16 -73
- package/plugins/nestedHeaders/stateManager/index.js +24 -107
- package/plugins/nestedHeaders/stateManager/index.mjs +51 -115
- package/plugins/nestedHeaders/stateManager/matrixGenerator.js +7 -25
- package/plugins/nestedHeaders/stateManager/matrixGenerator.mjs +38 -51
- package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +12 -27
- package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +29 -35
- package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.js +10 -25
- package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs +26 -32
- package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.js +3 -19
- package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.mjs +9 -20
- package/plugins/nestedHeaders/stateManager/nodeModifiers/index.js +2 -12
- package/plugins/nestedHeaders/stateManager/nodeModifiers/index.mjs +2 -5
- package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.js +3 -22
- package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.mjs +9 -21
- package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.js +3 -10
- package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.mjs +3 -7
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -36
- package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +44 -61
- package/plugins/nestedHeaders/stateManager/sourceSettings.js +16 -78
- package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +21 -68
- package/plugins/nestedHeaders/stateManager/utils.js +19 -22
- package/plugins/nestedHeaders/stateManager/utils.mjs +19 -20
- package/plugins/nestedHeaders/utils/ghostTable.js +9 -37
- package/plugins/nestedHeaders/utils/ghostTable.mjs +16 -43
- package/plugins/nestedRows/data/dataManager.js +40 -161
- package/plugins/nestedRows/data/dataManager.mjs +44 -148
- package/plugins/nestedRows/index.js +0 -2
- package/plugins/nestedRows/nestedRows.js +40 -118
- package/plugins/nestedRows/nestedRows.mjs +40 -85
- package/plugins/nestedRows/ui/_base.js +1 -9
- package/plugins/nestedRows/ui/_base.mjs +1 -8
- package/plugins/nestedRows/ui/collapsing.js +28 -134
- package/plugins/nestedRows/ui/collapsing.mjs +34 -118
- package/plugins/nestedRows/ui/contextMenu.js +2 -53
- package/plugins/nestedRows/ui/contextMenu.mjs +2 -32
- package/plugins/nestedRows/ui/headers.js +5 -50
- package/plugins/nestedRows/ui/headers.mjs +11 -41
- package/plugins/nestedRows/utils/rowMoveController.js +28 -78
- package/plugins/nestedRows/utils/rowMoveController.mjs +33 -66
- package/plugins/persistentState/index.js +0 -2
- package/plugins/persistentState/persistentState.js +10 -58
- package/plugins/persistentState/persistentState.mjs +10 -37
- package/plugins/persistentState/storage.js +9 -25
- package/plugins/persistentState/storage.mjs +12 -26
- package/plugins/registry.js +7 -51
- package/plugins/registry.mjs +8 -34
- package/plugins/search/index.js +0 -2
- package/plugins/search/search.js +16 -96
- package/plugins/search/search.mjs +16 -67
- package/plugins/touchScroll/index.js +0 -2
- package/plugins/touchScroll/touchScroll.js +15 -76
- package/plugins/touchScroll/touchScroll.mjs +15 -58
- package/plugins/trimRows/index.js +0 -2
- package/plugins/trimRows/trimRows.js +59 -85
- package/plugins/trimRows/trimRows.mjs +59 -62
- package/plugins/undoRedo/index.js +0 -14
- package/plugins/undoRedo/undoRedo.js +48 -218
- package/plugins/undoRedo/undoRedo.mjs +48 -188
- package/registry.js +0 -11
- package/registry.mjs +2 -4
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +5 -14
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +5 -6
- package/renderers/autocompleteRenderer/index.js +0 -2
- package/renderers/baseRenderer/baseRenderer.js +2 -11
- package/renderers/baseRenderer/baseRenderer.mjs +2 -9
- package/renderers/baseRenderer/index.js +0 -2
- package/renderers/checkboxRenderer/checkboxRenderer.js +22 -103
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +22 -81
- package/renderers/checkboxRenderer/index.js +0 -2
- package/renderers/htmlRenderer/htmlRenderer.js +1 -7
- package/renderers/htmlRenderer/htmlRenderer.mjs +1 -1
- package/renderers/htmlRenderer/index.js +0 -2
- package/renderers/index.js +0 -19
- package/renderers/index.mjs +3 -5
- package/renderers/numericRenderer/index.js +0 -2
- package/renderers/numericRenderer/numericRenderer.js +1 -21
- package/renderers/numericRenderer/numericRenderer.mjs +1 -9
- package/renderers/passwordRenderer/index.js +0 -2
- package/renderers/passwordRenderer/passwordRenderer.js +1 -8
- package/renderers/passwordRenderer/passwordRenderer.mjs +1 -1
- package/renderers/registry.js +7 -16
- package/renderers/registry.mjs +7 -14
- package/renderers/textRenderer/index.js +0 -2
- package/renderers/textRenderer/textRenderer.js +1 -13
- package/renderers/textRenderer/textRenderer.mjs +1 -5
- package/renderers/timeRenderer/index.js +0 -2
- package/renderers/timeRenderer/timeRenderer.js +1 -6
- package/renderers/timeRenderer/timeRenderer.mjs +1 -1
- package/selection/highlight/highlight.js +17 -73
- package/selection/highlight/highlight.mjs +31 -64
- package/selection/highlight/types/activeHeader.js +1 -21
- package/selection/highlight/types/activeHeader.mjs +6 -16
- package/selection/highlight/types/area.js +2 -22
- package/selection/highlight/types/area.mjs +10 -20
- package/selection/highlight/types/cell.js +1 -21
- package/selection/highlight/types/cell.mjs +9 -19
- package/selection/highlight/types/customSelection.js +2 -22
- package/selection/highlight/types/customSelection.mjs +11 -21
- package/selection/highlight/types/fill.js +2 -17
- package/selection/highlight/types/fill.mjs +9 -14
- package/selection/highlight/types/header.js +3 -23
- package/selection/highlight/types/header.mjs +13 -23
- package/selection/highlight/types/index.js +3 -24
- package/selection/highlight/types/index.mjs +3 -10
- package/selection/highlight/visualSelection.js +24 -74
- package/selection/highlight/visualSelection.mjs +24 -62
- package/selection/index.js +0 -14
- package/selection/mouseEventHandler.js +19 -30
- package/selection/mouseEventHandler.mjs +32 -36
- package/selection/range.js +11 -31
- package/selection/range.mjs +11 -22
- package/selection/selection.js +62 -157
- package/selection/selection.mjs +65 -132
- package/selection/transformation.js +10 -40
- package/selection/transformation.mjs +18 -45
- package/selection/utils.js +22 -70
- package/selection/utils.mjs +22 -47
- package/shortcuts/context.js +23 -78
- package/shortcuts/context.mjs +23 -55
- package/shortcuts/index.js +0 -2
- package/shortcuts/keyObserver.js +4 -17
- package/shortcuts/keyObserver.mjs +4 -12
- package/shortcuts/manager.js +16 -36
- package/shortcuts/manager.mjs +16 -33
- package/shortcuts/recorder.js +9 -40
- package/shortcuts/recorder.mjs +9 -31
- package/shortcuts/utils.js +5 -20
- package/shortcuts/utils.mjs +5 -6
- package/tableView.js +100 -270
- package/tableView.mjs +100 -248
- package/translations/changesObservable/observable.js +5 -54
- package/translations/changesObservable/observable.mjs +12 -51
- package/translations/changesObservable/observer.js +4 -32
- package/translations/changesObservable/observer.mjs +9 -29
- package/translations/changesObservable/utils.js +1 -5
- package/translations/changesObservable/utils.mjs +1 -4
- package/translations/index.js +0 -11
- package/translations/indexMapper.js +68 -156
- package/translations/indexMapper.mjs +68 -123
- package/translations/mapCollections/aggregatedCollection.js +9 -51
- package/translations/mapCollections/aggregatedCollection.mjs +12 -41
- package/translations/mapCollections/index.js +0 -7
- package/translations/mapCollections/mapCollection.js +10 -33
- package/translations/mapCollections/mapCollection.mjs +10 -22
- package/translations/maps/hidingMap.js +2 -35
- package/translations/maps/hidingMap.mjs +7 -28
- package/translations/maps/index.js +1 -24
- package/translations/maps/index.mjs +1 -3
- package/translations/maps/indexMap.js +12 -34
- package/translations/maps/indexMap.mjs +16 -32
- package/translations/maps/indexesSequence.js +3 -41
- package/translations/maps/indexesSequence.mjs +9 -32
- package/translations/maps/linkedPhysicalIndexToValueMap.js +9 -78
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +16 -59
- package/translations/maps/physicalIndexToValueMap.js +2 -39
- package/translations/maps/physicalIndexToValueMap.mjs +8 -31
- package/translations/maps/trimmingMap.js +2 -35
- package/translations/maps/trimmingMap.mjs +7 -28
- package/translations/maps/utils/actionsOnIndexes.js +1 -7
- package/translations/maps/utils/actionsOnIndexes.mjs +9 -12
- package/translations/maps/utils/index.js +0 -13
- package/translations/maps/utils/index.mjs +0 -3
- package/translations/maps/utils/indexesSequence.js +1 -24
- package/translations/maps/utils/indexesSequence.mjs +10 -19
- package/translations/maps/utils/physicallyIndexed.js +1 -27
- package/translations/maps/utils/physicallyIndexed.mjs +11 -21
- package/utils/dataStructures/linkedList.js +15 -56
- package/utils/dataStructures/linkedList.mjs +15 -54
- package/utils/dataStructures/priorityMap.js +8 -46
- package/utils/dataStructures/priorityMap.mjs +8 -29
- package/utils/dataStructures/queue.js +6 -17
- package/utils/dataStructures/queue.mjs +6 -16
- package/utils/dataStructures/stack.js +6 -17
- package/utils/dataStructures/stack.mjs +6 -16
- package/utils/dataStructures/tree.js +11 -75
- package/utils/dataStructures/tree.mjs +11 -54
- package/utils/dataStructures/uniqueMap.js +17 -56
- package/utils/dataStructures/uniqueMap.mjs +17 -42
- package/utils/dataStructures/uniqueSet.js +5 -32
- package/utils/dataStructures/uniqueSet.mjs +5 -19
- package/utils/ghostTable.js +33 -104
- package/utils/ghostTable.mjs +35 -92
- package/utils/interval.js +10 -37
- package/utils/interval.mjs +7 -29
- package/utils/parseTable.js +11 -92
- package/utils/parseTable.mjs +11 -62
- package/utils/rootInstance.js +3 -14
- package/utils/rootInstance.mjs +3 -3
- package/utils/samplesGenerator.js +15 -51
- package/utils/samplesGenerator.mjs +17 -44
- package/utils/staticRegister.js +6 -33
- package/utils/staticRegister.mjs +6 -19
- package/validators/autocompleteValidator/autocompleteValidator.js +2 -10
- package/validators/autocompleteValidator/autocompleteValidator.mjs +2 -8
- package/validators/autocompleteValidator/index.js +0 -2
- package/validators/dateValidator/dateValidator.js +2 -21
- package/validators/dateValidator/dateValidator.mjs +2 -11
- package/validators/dateValidator/index.js +0 -2
- package/validators/index.js +0 -11
- package/validators/index.mjs +3 -5
- package/validators/numericValidator/index.js +0 -2
- package/validators/numericValidator/numericValidator.js +1 -7
- package/validators/numericValidator/numericValidator.mjs +1 -3
- package/validators/registry.js +7 -16
- package/validators/registry.mjs +7 -14
- package/validators/timeValidator/index.js +0 -2
- package/validators/timeValidator/timeValidator.js +6 -18
- package/validators/timeValidator/timeValidator.mjs +8 -13
@@ -1,138 +1,69 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
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); }
|
4
|
-
|
5
4
|
require("core-js/modules/es.object.set-prototype-of.js");
|
6
|
-
|
7
5
|
require("core-js/modules/es.object.get-prototype-of.js");
|
8
|
-
|
9
6
|
require("core-js/modules/es.reflect.construct.js");
|
10
|
-
|
11
7
|
require("core-js/modules/es.reflect.get.js");
|
12
|
-
|
13
8
|
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
14
|
-
|
15
9
|
require("core-js/modules/es.symbol.js");
|
16
|
-
|
17
10
|
require("core-js/modules/es.symbol.description.js");
|
18
|
-
|
19
11
|
require("core-js/modules/es.symbol.iterator.js");
|
20
|
-
|
21
|
-
require("core-js/modules/es.array.from.js");
|
22
|
-
|
23
12
|
require("core-js/modules/es.array.slice.js");
|
24
|
-
|
25
13
|
require("core-js/modules/es.function.name.js");
|
26
|
-
|
14
|
+
require("core-js/modules/es.array.from.js");
|
27
15
|
require("core-js/modules/es.regexp.exec.js");
|
28
|
-
|
29
16
|
exports.__esModule = true;
|
30
17
|
exports.PLUGIN_PRIORITY = exports.PLUGIN_KEY = exports.MergeCells = void 0;
|
31
|
-
|
32
18
|
require("core-js/modules/es.array.iterator.js");
|
33
|
-
|
34
19
|
require("core-js/modules/es.object.to-string.js");
|
35
|
-
|
36
20
|
require("core-js/modules/es.string.iterator.js");
|
37
|
-
|
38
21
|
require("core-js/modules/es.weak-map.js");
|
39
|
-
|
40
22
|
require("core-js/modules/web.dom-collections.iterator.js");
|
41
|
-
|
42
|
-
require("core-js/modules/es.array.filter.js");
|
43
|
-
|
44
|
-
require("core-js/modules/es.array.splice.js");
|
45
|
-
|
46
|
-
require("core-js/modules/es.array.concat.js");
|
47
|
-
|
48
23
|
require("core-js/modules/es.array.includes.js");
|
49
|
-
|
50
24
|
require("core-js/modules/es.string.includes.js");
|
51
|
-
|
52
25
|
var _base = require("../base");
|
53
|
-
|
54
26
|
var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
|
55
|
-
|
56
27
|
var _cellsCollection = _interopRequireDefault(require("./cellsCollection"));
|
57
|
-
|
58
28
|
var _cellCoords = _interopRequireDefault(require("./cellCoords"));
|
59
|
-
|
60
29
|
var _autofill = _interopRequireDefault(require("./calculations/autofill"));
|
61
|
-
|
62
30
|
var _selection = _interopRequireDefault(require("./calculations/selection"));
|
63
|
-
|
64
31
|
var _toggleMerge = _interopRequireDefault(require("./contextMenuItem/toggleMerge"));
|
65
|
-
|
66
32
|
var _array = require("../../helpers/array");
|
67
|
-
|
68
33
|
var _object = require("../../helpers/object");
|
69
|
-
|
70
34
|
var _console = require("../../helpers/console");
|
71
|
-
|
72
35
|
var _number = require("../../helpers/number");
|
73
|
-
|
74
36
|
var _utils = require("./utils");
|
75
|
-
|
76
37
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
77
|
-
|
78
38
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
79
|
-
|
80
39
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
81
|
-
|
82
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
83
|
-
|
84
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
85
|
-
|
86
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
87
|
-
|
88
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
89
|
-
|
90
40
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
91
|
-
|
92
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
93
|
-
|
94
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
95
|
-
|
96
41
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
97
|
-
|
42
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
43
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
98
44
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
99
|
-
|
100
45
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
101
|
-
|
102
46
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
103
|
-
|
104
47
|
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
105
|
-
|
106
48
|
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
107
|
-
|
108
49
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
109
|
-
|
110
50
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
111
|
-
|
112
51
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
113
|
-
|
114
52
|
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
115
|
-
|
116
53
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
117
|
-
|
118
54
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
119
|
-
|
120
55
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
121
|
-
|
122
56
|
_pluginHooks.default.getSingleton().register('beforeMergeCells');
|
123
|
-
|
124
57
|
_pluginHooks.default.getSingleton().register('afterMergeCells');
|
125
|
-
|
126
58
|
_pluginHooks.default.getSingleton().register('beforeUnmergeCells');
|
127
|
-
|
128
59
|
_pluginHooks.default.getSingleton().register('afterUnmergeCells');
|
129
|
-
|
130
60
|
var PLUGIN_KEY = 'mergeCells';
|
131
61
|
exports.PLUGIN_KEY = PLUGIN_KEY;
|
132
62
|
var PLUGIN_PRIORITY = 150;
|
133
63
|
exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
|
134
64
|
var privatePool = new WeakMap();
|
135
65
|
var SHORTCUTS_GROUP = PLUGIN_KEY;
|
66
|
+
|
136
67
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
137
68
|
|
138
69
|
/**
|
@@ -144,6 +75,7 @@ var SHORTCUTS_GROUP = PLUGIN_KEY;
|
|
144
75
|
*
|
145
76
|
* @example
|
146
77
|
*
|
78
|
+
* ::: only-for javascript
|
147
79
|
* ```js
|
148
80
|
* const hot = new Handsontable(document.getElementById('example'), {
|
149
81
|
* data: getData(),
|
@@ -153,29 +85,39 @@ var SHORTCUTS_GROUP = PLUGIN_KEY;
|
|
153
85
|
* {row: 4, col: 8, rowspan: 3, colspan: 3}
|
154
86
|
* ],
|
155
87
|
* ```
|
88
|
+
* :::
|
89
|
+
*
|
90
|
+
* ::: only-for react
|
91
|
+
* ```jsx
|
92
|
+
* <HotTable
|
93
|
+
* data={getData()}
|
94
|
+
* // enable plugin
|
95
|
+
* mergeCells={[
|
96
|
+
* {row: 0, col: 3, rowspan: 3, colspan: 3},
|
97
|
+
* {row: 2, col: 6, rowspan: 2, colspan: 2},
|
98
|
+
* {row: 4, col: 8, rowspan: 3, colspan: 3}
|
99
|
+
* ]}
|
100
|
+
* />
|
101
|
+
* ```
|
102
|
+
* :::
|
156
103
|
*/
|
157
|
-
|
158
104
|
var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
159
105
|
_inherits(MergeCells, _BasePlugin);
|
160
|
-
|
161
106
|
var _super = _createSuper(MergeCells);
|
162
|
-
|
163
107
|
function MergeCells(hotInstance) {
|
164
108
|
var _this;
|
165
|
-
|
166
109
|
_classCallCheck(this, MergeCells);
|
167
|
-
|
168
110
|
_this = _super.call(this, hotInstance);
|
169
111
|
privatePool.set(_assertThisInitialized(_this), {
|
170
112
|
lastDesiredCoords: null
|
171
113
|
});
|
114
|
+
|
172
115
|
/**
|
173
116
|
* A container for all the merged cells.
|
174
117
|
*
|
175
118
|
* @private
|
176
119
|
* @type {MergedCellsCollection}
|
177
120
|
*/
|
178
|
-
|
179
121
|
_this.mergedCellsCollection = null;
|
180
122
|
/**
|
181
123
|
* Instance of the class responsible for all the autofill-related calculations.
|
@@ -183,7 +125,6 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
183
125
|
* @private
|
184
126
|
* @type {AutofillCalculations}
|
185
127
|
*/
|
186
|
-
|
187
128
|
_this.autofillCalculations = null;
|
188
129
|
/**
|
189
130
|
* Instance of the class responsible for the selection-related calculations.
|
@@ -191,36 +132,32 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
191
132
|
* @private
|
192
133
|
* @type {SelectionCalculations}
|
193
134
|
*/
|
194
|
-
|
195
135
|
_this.selectionCalculations = null;
|
196
136
|
return _this;
|
197
137
|
}
|
138
|
+
|
198
139
|
/**
|
199
140
|
* Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
|
200
|
-
* hook and if it returns `true`
|
141
|
+
* hook and if it returns `true` then the {@link MergeCells#enablePlugin} method is called.
|
201
142
|
*
|
202
143
|
* @returns {boolean}
|
203
144
|
*/
|
204
|
-
|
205
|
-
|
206
145
|
_createClass(MergeCells, [{
|
207
146
|
key: "isEnabled",
|
208
147
|
value: function isEnabled() {
|
209
148
|
return !!this.hot.getSettings()[PLUGIN_KEY];
|
210
149
|
}
|
150
|
+
|
211
151
|
/**
|
212
152
|
* Enables the plugin functionality for this Handsontable instance.
|
213
153
|
*/
|
214
|
-
|
215
154
|
}, {
|
216
155
|
key: "enablePlugin",
|
217
156
|
value: function enablePlugin() {
|
218
157
|
var _this2 = this;
|
219
|
-
|
220
158
|
if (this.enabled) {
|
221
159
|
return;
|
222
160
|
}
|
223
|
-
|
224
161
|
this.mergedCellsCollection = new _cellsCollection.default(this);
|
225
162
|
this.autofillCalculations = new _autofill.default(this);
|
226
163
|
this.selectionCalculations = new _selection.default(this);
|
@@ -299,29 +236,27 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
299
236
|
}
|
300
237
|
});
|
301
238
|
this.registerShortcuts();
|
302
|
-
|
303
239
|
_get(_getPrototypeOf(MergeCells.prototype), "enablePlugin", this).call(this);
|
304
240
|
}
|
241
|
+
|
305
242
|
/**
|
306
243
|
* Disables the plugin functionality for this Handsontable instance.
|
307
244
|
*/
|
308
|
-
|
309
245
|
}, {
|
310
246
|
key: "disablePlugin",
|
311
247
|
value: function disablePlugin() {
|
312
248
|
this.clearCollections();
|
313
249
|
this.unregisterShortcuts();
|
314
250
|
this.hot.render();
|
315
|
-
|
316
251
|
_get(_getPrototypeOf(MergeCells.prototype), "disablePlugin", this).call(this);
|
317
252
|
}
|
253
|
+
|
318
254
|
/**
|
319
255
|
* Updates the plugin's state.
|
320
256
|
*
|
321
257
|
* This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:
|
322
258
|
* - [`mergeCells`](@/api/options.md#mergecells)
|
323
259
|
*/
|
324
|
-
|
325
260
|
}, {
|
326
261
|
key: "updatePlugin",
|
327
262
|
value: function updatePlugin() {
|
@@ -329,9 +264,9 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
329
264
|
this.disablePlugin();
|
330
265
|
this.enablePlugin();
|
331
266
|
this.generateFromSettings(settings);
|
332
|
-
|
333
267
|
_get(_getPrototypeOf(MergeCells.prototype), "updatePlugin", this).call(this);
|
334
268
|
}
|
269
|
+
|
335
270
|
/**
|
336
271
|
* Validates a single setting object, represented by a single merged cell information object.
|
337
272
|
*
|
@@ -339,16 +274,13 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
339
274
|
* @param {object} setting An object with `row`, `col`, `rowspan` and `colspan` properties.
|
340
275
|
* @returns {boolean}
|
341
276
|
*/
|
342
|
-
|
343
277
|
}, {
|
344
278
|
key: "validateSetting",
|
345
279
|
value: function validateSetting(setting) {
|
346
280
|
var valid = true;
|
347
|
-
|
348
281
|
if (!setting) {
|
349
282
|
return false;
|
350
283
|
}
|
351
|
-
|
352
284
|
if (_cellCoords.default.containsNegativeValues(setting)) {
|
353
285
|
(0, _console.warn)(_cellCoords.default.NEGATIVE_VALUES_WARNING(setting));
|
354
286
|
valid = false;
|
@@ -362,115 +294,58 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
362
294
|
(0, _console.warn)(_cellCoords.default.ZERO_SPAN_WARNING(setting));
|
363
295
|
valid = false;
|
364
296
|
}
|
365
|
-
|
366
297
|
return valid;
|
367
298
|
}
|
299
|
+
|
368
300
|
/**
|
369
301
|
* Generates the merged cells from the settings provided to the plugin.
|
370
302
|
*
|
371
303
|
* @private
|
372
304
|
* @param {Array|boolean} settings The settings provided to the plugin.
|
373
305
|
*/
|
374
|
-
|
375
306
|
}, {
|
376
307
|
key: "generateFromSettings",
|
377
308
|
value: function generateFromSettings(settings) {
|
378
309
|
var _this3 = this;
|
379
|
-
|
380
310
|
if (Array.isArray(settings)) {
|
381
|
-
var
|
382
|
-
|
383
|
-
var populationArgumentsList = [];
|
311
|
+
var populatedNulls = [];
|
384
312
|
(0, _array.arrayEach)(settings, function (setting) {
|
385
313
|
if (!_this3.validateSetting(setting)) {
|
386
314
|
return;
|
387
315
|
}
|
388
|
-
|
389
316
|
var highlight = _this3.hot._createCellCoords(setting.row, setting.col);
|
390
|
-
|
391
317
|
var rangeEnd = _this3.hot._createCellCoords(setting.row + setting.rowspan - 1, setting.col + setting.colspan - 1);
|
392
|
-
|
393
318
|
var mergeRange = _this3.hot._createCellRange(highlight, highlight, rangeEnd);
|
394
319
|
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
320
|
+
// Merging without data population.
|
321
|
+
_this3.mergeRange(mergeRange, true, true);
|
322
|
+
(0, _number.rangeEach)(setting.row, setting.row + setting.rowspan - 1, function (rowIndex) {
|
323
|
+
(0, _number.rangeEach)(setting.col, setting.col + setting.colspan - 1, function (columnIndex) {
|
324
|
+
// Not resetting a cell representing a merge area's value.
|
325
|
+
if ((rowIndex === setting.row && columnIndex === setting.col) === false) {
|
326
|
+
populatedNulls.push([rowIndex, columnIndex, null]);
|
327
|
+
}
|
328
|
+
});
|
329
|
+
});
|
400
330
|
});
|
401
|
-
var bulkPopulationData = this.getBulkCollectionData(populationArgumentsList);
|
402
331
|
|
403
|
-
|
332
|
+
// There are no merged cells. Thus, no data population is needed.
|
333
|
+
if (populatedNulls.length === 0) {
|
334
|
+
return;
|
335
|
+
}
|
336
|
+
this.hot.setDataAtCell(populatedNulls);
|
404
337
|
}
|
405
338
|
}
|
406
|
-
/**
|
407
|
-
* Generates a bulk set of all the data to be populated to fill the data "under" the added merged cells.
|
408
|
-
*
|
409
|
-
* @private
|
410
|
-
* @param {Array} populationArgumentsList Array in a form of `[row, column, dataUnderCollection]`.
|
411
|
-
* @returns {Array} Array in a form of `[row, column, dataOfAllCollections]`.
|
412
|
-
*/
|
413
|
-
|
414
|
-
}, {
|
415
|
-
key: "getBulkCollectionData",
|
416
|
-
value: function getBulkCollectionData(populationArgumentsList) {
|
417
|
-
var _this$hot2;
|
418
|
-
|
419
|
-
var populationDataRange = this.getBulkCollectionDataRange(populationArgumentsList);
|
420
|
-
|
421
|
-
var dataAtRange = (_this$hot2 = this.hot).getData.apply(_this$hot2, _toConsumableArray(populationDataRange));
|
422
|
-
|
423
|
-
var newDataAtRange = dataAtRange.splice(0);
|
424
|
-
(0, _array.arrayEach)(populationArgumentsList, function (mergedCellArguments) {
|
425
|
-
var _mergedCellArguments = _slicedToArray(mergedCellArguments, 3),
|
426
|
-
mergedCellRowIndex = _mergedCellArguments[0],
|
427
|
-
mergedCellColumnIndex = _mergedCellArguments[1],
|
428
|
-
mergedCellData = _mergedCellArguments[2];
|
429
|
-
|
430
|
-
(0, _array.arrayEach)(mergedCellData, function (mergedCellRow, rowIndex) {
|
431
|
-
(0, _array.arrayEach)(mergedCellRow, function (mergedCellElement, columnIndex) {
|
432
|
-
newDataAtRange[mergedCellRowIndex - populationDataRange[0] + rowIndex][mergedCellColumnIndex - populationDataRange[1] + columnIndex] = mergedCellElement; // eslint-disable-line max-len
|
433
|
-
});
|
434
|
-
});
|
435
|
-
});
|
436
|
-
return [populationDataRange[0], populationDataRange[1], newDataAtRange];
|
437
|
-
}
|
438
|
-
/**
|
439
|
-
* Gets the range of combined data ranges provided in a form of an array of arrays ([row, column, dataUnderCollection]).
|
440
|
-
*
|
441
|
-
* @private
|
442
|
-
* @param {Array} populationArgumentsList Array containing argument lists for the `populateFromArray` method - row, column and data for population.
|
443
|
-
* @returns {Array[]} Start and end coordinates of the merged cell range. (in a form of [rowIndex, columnIndex]).
|
444
|
-
*/
|
445
339
|
|
446
|
-
}, {
|
447
|
-
key: "getBulkCollectionDataRange",
|
448
|
-
value: function getBulkCollectionDataRange(populationArgumentsList) {
|
449
|
-
var start = [0, 0];
|
450
|
-
var end = [0, 0];
|
451
|
-
var mergedCellRow = null;
|
452
|
-
var mergedCellColumn = null;
|
453
|
-
var mergedCellData = null;
|
454
|
-
(0, _array.arrayEach)(populationArgumentsList, function (mergedCellArguments) {
|
455
|
-
mergedCellRow = mergedCellArguments[0];
|
456
|
-
mergedCellColumn = mergedCellArguments[1];
|
457
|
-
mergedCellData = mergedCellArguments[2];
|
458
|
-
start[0] = Math.min(mergedCellRow, start[0]);
|
459
|
-
start[1] = Math.min(mergedCellColumn, start[1]);
|
460
|
-
end[0] = Math.max(mergedCellRow + mergedCellData.length - 1, end[0]);
|
461
|
-
end[1] = Math.max(mergedCellColumn + mergedCellData[0].length - 1, end[1]);
|
462
|
-
});
|
463
|
-
return [].concat(start, end);
|
464
|
-
}
|
465
340
|
/**
|
466
341
|
* Clears the merged cells from the merged cell container.
|
467
342
|
*/
|
468
|
-
|
469
343
|
}, {
|
470
344
|
key: "clearCollections",
|
471
345
|
value: function clearCollections() {
|
472
346
|
this.mergedCellsCollection.clear();
|
473
347
|
}
|
348
|
+
|
474
349
|
/**
|
475
350
|
* Returns `true` if a range is mergeable.
|
476
351
|
*
|
@@ -479,76 +354,70 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
479
354
|
* @param {boolean} [auto=false] `true` if triggered at initialization.
|
480
355
|
* @returns {boolean}
|
481
356
|
*/
|
482
|
-
|
483
357
|
}, {
|
484
358
|
key: "canMergeRange",
|
485
359
|
value: function canMergeRange(newMergedCellInfo) {
|
486
360
|
var auto = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
487
361
|
return auto ? true : this.validateSetting(newMergedCellInfo);
|
488
362
|
}
|
363
|
+
|
489
364
|
/**
|
490
365
|
* Merge or unmerge, based on last selected range.
|
491
366
|
*
|
492
367
|
* @private
|
493
368
|
*/
|
494
|
-
|
495
369
|
}, {
|
496
370
|
key: "toggleMergeOnSelection",
|
497
371
|
value: function toggleMergeOnSelection() {
|
498
372
|
var currentRange = this.hot.getSelectedRangeLast();
|
499
|
-
|
500
373
|
if (!currentRange) {
|
501
374
|
return;
|
502
375
|
}
|
503
|
-
|
504
376
|
currentRange.setDirection(this.hot.isRtl() ? 'NE-SW' : 'NW-SE');
|
505
377
|
var from = currentRange.from,
|
506
|
-
|
378
|
+
to = currentRange.to;
|
507
379
|
this.toggleMerge(currentRange);
|
508
380
|
this.hot.selectCell(from.row, from.col, to.row, to.col, false);
|
509
381
|
}
|
382
|
+
|
510
383
|
/**
|
511
384
|
* Merges the selection provided as a cell range.
|
512
385
|
*
|
513
386
|
* @param {CellRange} [cellRange] Selection cell range.
|
514
387
|
*/
|
515
|
-
|
516
388
|
}, {
|
517
389
|
key: "mergeSelection",
|
518
390
|
value: function mergeSelection() {
|
519
391
|
var cellRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.hot.getSelectedRangeLast();
|
520
|
-
|
521
392
|
if (!cellRange) {
|
522
393
|
return;
|
523
394
|
}
|
524
|
-
|
525
395
|
cellRange.setDirection(this.hot.isRtl() ? 'NE-SW' : 'NW-SE');
|
526
396
|
var from = cellRange.from,
|
527
|
-
|
397
|
+
to = cellRange.to;
|
528
398
|
this.unmergeRange(cellRange, true);
|
529
399
|
this.mergeRange(cellRange);
|
530
400
|
this.hot.selectCell(from.row, from.col, to.row, to.col, false);
|
531
401
|
}
|
402
|
+
|
532
403
|
/**
|
533
404
|
* Unmerges the selection provided as a cell range.
|
534
405
|
*
|
535
406
|
* @param {CellRange} [cellRange] Selection cell range.
|
536
407
|
*/
|
537
|
-
|
538
408
|
}, {
|
539
409
|
key: "unmergeSelection",
|
540
410
|
value: function unmergeSelection() {
|
541
411
|
var cellRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.hot.getSelectedRangeLast();
|
542
|
-
|
543
412
|
if (!cellRange) {
|
544
413
|
return;
|
545
414
|
}
|
546
|
-
|
547
415
|
var from = cellRange.from,
|
548
|
-
|
416
|
+
to = cellRange.to;
|
549
417
|
this.unmergeRange(cellRange, true);
|
550
418
|
this.hot.selectCell(from.row, from.col, to.row, to.col, false);
|
551
419
|
}
|
420
|
+
|
552
421
|
/**
|
553
422
|
* Merges cells in the provided cell range.
|
554
423
|
*
|
@@ -560,12 +429,10 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
560
429
|
* @fires Hooks#beforeMergeCells
|
561
430
|
* @fires Hooks#afterMergeCells
|
562
431
|
*/
|
563
|
-
|
564
432
|
}, {
|
565
433
|
key: "mergeRange",
|
566
434
|
value: function mergeRange(cellRange) {
|
567
435
|
var _this4 = this;
|
568
|
-
|
569
436
|
var auto = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
570
437
|
var preventPopulation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
571
438
|
var topStart = cellRange.getTopStartCorner();
|
@@ -578,45 +445,38 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
578
445
|
};
|
579
446
|
var clearedData = [];
|
580
447
|
var populationInfo = null;
|
581
|
-
|
582
448
|
if (!this.canMergeRange(mergeParent, auto)) {
|
583
449
|
return false;
|
584
450
|
}
|
585
|
-
|
586
451
|
this.hot.runHooks('beforeMergeCells', cellRange, auto);
|
587
452
|
(0, _number.rangeEach)(0, mergeParent.rowspan - 1, function (i) {
|
588
453
|
(0, _number.rangeEach)(0, mergeParent.colspan - 1, function (j) {
|
589
454
|
var clearedValue = null;
|
590
|
-
|
591
455
|
if (!clearedData[i]) {
|
592
456
|
clearedData[i] = [];
|
593
457
|
}
|
594
|
-
|
595
458
|
if (i === 0 && j === 0) {
|
596
|
-
clearedValue = _this4.hot.
|
459
|
+
clearedValue = _this4.hot.getSourceDataAtCell(_this4.hot.toPhysicalRow(mergeParent.row), _this4.hot.toPhysicalColumn(mergeParent.col));
|
597
460
|
} else {
|
598
461
|
_this4.hot.setCellMeta(mergeParent.row + i, mergeParent.col + j, 'hidden', true);
|
599
462
|
}
|
600
|
-
|
601
463
|
clearedData[i][j] = clearedValue;
|
602
464
|
});
|
603
465
|
});
|
604
466
|
this.hot.setCellMeta(mergeParent.row, mergeParent.col, 'spanned', true);
|
605
467
|
var mergedCellAdded = this.mergedCellsCollection.add(mergeParent);
|
606
|
-
|
607
468
|
if (mergedCellAdded) {
|
608
469
|
if (preventPopulation) {
|
609
470
|
populationInfo = [mergeParent.row, mergeParent.col, clearedData];
|
610
471
|
} else {
|
611
472
|
this.hot.populateFromArray(mergeParent.row, mergeParent.col, clearedData, void 0, void 0, this.pluginName);
|
612
473
|
}
|
613
|
-
|
614
474
|
this.hot.runHooks('afterMergeCells', cellRange, mergeParent, auto);
|
615
475
|
return populationInfo;
|
616
476
|
}
|
617
|
-
|
618
477
|
return true;
|
619
478
|
}
|
479
|
+
|
620
480
|
/**
|
621
481
|
* Unmerges the selection provided as a cell range. If no cell range is provided, it uses the current selection.
|
622
482
|
*
|
@@ -627,53 +487,47 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
627
487
|
* @fires Hooks#beforeUnmergeCells
|
628
488
|
* @fires Hooks#afterUnmergeCells
|
629
489
|
*/
|
630
|
-
|
631
490
|
}, {
|
632
491
|
key: "unmergeRange",
|
633
492
|
value: function unmergeRange(cellRange) {
|
634
493
|
var _this5 = this;
|
635
|
-
|
636
494
|
var auto = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
637
495
|
var mergedCells = this.mergedCellsCollection.getWithinRange(cellRange);
|
638
|
-
|
639
496
|
if (!mergedCells) {
|
640
497
|
return;
|
641
498
|
}
|
642
|
-
|
643
499
|
this.hot.runHooks('beforeUnmergeCells', cellRange, auto);
|
644
500
|
(0, _array.arrayEach)(mergedCells, function (currentCollection) {
|
645
501
|
_this5.mergedCellsCollection.remove(currentCollection.row, currentCollection.col);
|
646
|
-
|
647
502
|
(0, _number.rangeEach)(0, currentCollection.rowspan - 1, function (i) {
|
648
503
|
(0, _number.rangeEach)(0, currentCollection.colspan - 1, function (j) {
|
649
504
|
_this5.hot.removeCellMeta(currentCollection.row + i, currentCollection.col + j, 'hidden');
|
650
505
|
});
|
651
506
|
});
|
652
|
-
|
653
507
|
_this5.hot.removeCellMeta(currentCollection.row, currentCollection.col, 'spanned');
|
654
508
|
});
|
655
509
|
this.hot.runHooks('afterUnmergeCells', cellRange, auto);
|
656
510
|
this.hot.render();
|
657
511
|
}
|
512
|
+
|
658
513
|
/**
|
659
514
|
* Merges or unmerges, based on the cell range provided as `cellRange`.
|
660
515
|
*
|
661
516
|
* @private
|
662
517
|
* @param {CellRange} cellRange The cell range to merge or unmerged.
|
663
518
|
*/
|
664
|
-
|
665
519
|
}, {
|
666
520
|
key: "toggleMerge",
|
667
521
|
value: function toggleMerge(cellRange) {
|
668
522
|
var mergedCell = this.mergedCellsCollection.get(cellRange.from.row, cellRange.from.col);
|
669
523
|
var mergedCellCoversWholeRange = mergedCell.row === cellRange.from.row && mergedCell.col === cellRange.from.col && mergedCell.row + mergedCell.rowspan - 1 === cellRange.to.row && mergedCell.col + mergedCell.colspan - 1 === cellRange.to.col;
|
670
|
-
|
671
524
|
if (mergedCellCoversWholeRange) {
|
672
525
|
this.unmergeRange(cellRange);
|
673
526
|
} else {
|
674
527
|
this.mergeSelection(cellRange);
|
675
528
|
}
|
676
529
|
}
|
530
|
+
|
677
531
|
/**
|
678
532
|
* Merges the specified range.
|
679
533
|
*
|
@@ -684,16 +538,14 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
684
538
|
* @fires Hooks#beforeMergeCells
|
685
539
|
* @fires Hooks#afterMergeCells
|
686
540
|
*/
|
687
|
-
|
688
541
|
}, {
|
689
542
|
key: "merge",
|
690
543
|
value: function merge(startRow, startColumn, endRow, endColumn) {
|
691
544
|
var start = this.hot._createCellCoords(startRow, startColumn);
|
692
|
-
|
693
545
|
var end = this.hot._createCellCoords(endRow, endColumn);
|
694
|
-
|
695
546
|
this.mergeRange(this.hot._createCellRange(start, start, end));
|
696
547
|
}
|
548
|
+
|
697
549
|
/**
|
698
550
|
* Unmerges the merged cell in the provided range.
|
699
551
|
*
|
@@ -704,46 +556,41 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
704
556
|
* @fires Hooks#beforeUnmergeCells
|
705
557
|
* @fires Hooks#afterUnmergeCells
|
706
558
|
*/
|
707
|
-
|
708
559
|
}, {
|
709
560
|
key: "unmerge",
|
710
561
|
value: function unmerge(startRow, startColumn, endRow, endColumn) {
|
711
562
|
var start = this.hot._createCellCoords(startRow, startColumn);
|
712
|
-
|
713
563
|
var end = this.hot._createCellCoords(endRow, endColumn);
|
714
|
-
|
715
564
|
this.unmergeRange(this.hot._createCellRange(start, start, end));
|
716
565
|
}
|
566
|
+
|
717
567
|
/**
|
718
568
|
* `afterInit` hook callback.
|
719
569
|
*
|
720
570
|
* @private
|
721
571
|
*/
|
722
|
-
|
723
572
|
}, {
|
724
573
|
key: "onAfterInit",
|
725
574
|
value: function onAfterInit() {
|
726
575
|
this.generateFromSettings(this.hot.getSettings()[PLUGIN_KEY]);
|
727
576
|
this.hot.render();
|
728
577
|
}
|
578
|
+
|
729
579
|
/**
|
730
580
|
* Register shortcuts responsible for toggling a merge.
|
731
581
|
*
|
732
582
|
* @private
|
733
583
|
*/
|
734
|
-
|
735
584
|
}, {
|
736
585
|
key: "registerShortcuts",
|
737
586
|
value: function registerShortcuts() {
|
738
587
|
var _this6 = this;
|
739
|
-
|
740
588
|
var shortcutManager = this.hot.getShortcutManager();
|
741
589
|
var gridContext = shortcutManager.getContext('grid');
|
742
590
|
gridContext.addShortcut({
|
743
591
|
keys: [['Control', 'm']],
|
744
592
|
callback: function callback() {
|
745
593
|
_this6.toggleMerge(_this6.hot.getSelectedRangeLast());
|
746
|
-
|
747
594
|
_this6.hot.render();
|
748
595
|
},
|
749
596
|
runOnlyIf: function runOnlyIf(event) {
|
@@ -753,12 +600,12 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
753
600
|
group: SHORTCUTS_GROUP
|
754
601
|
});
|
755
602
|
}
|
603
|
+
|
756
604
|
/**
|
757
605
|
* Unregister shortcuts responsible for toggling a merge.
|
758
606
|
*
|
759
607
|
* @private
|
760
608
|
*/
|
761
|
-
|
762
609
|
}, {
|
763
610
|
key: "unregisterShortcuts",
|
764
611
|
value: function unregisterShortcuts() {
|
@@ -766,6 +613,7 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
766
613
|
var gridContext = shortcutManager.getContext('grid');
|
767
614
|
gridContext.removeShortcutsByGroup(SHORTCUTS_GROUP);
|
768
615
|
}
|
616
|
+
|
769
617
|
/**
|
770
618
|
* Modifies the information on whether the current selection contains multiple cells. The `afterIsMultipleSelection` hook callback.
|
771
619
|
*
|
@@ -773,30 +621,27 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
773
621
|
* @param {boolean} isMultiple Determines whether the current selection contains multiple cells.
|
774
622
|
* @returns {boolean}
|
775
623
|
*/
|
776
|
-
|
777
624
|
}, {
|
778
625
|
key: "onAfterIsMultipleSelection",
|
779
626
|
value: function onAfterIsMultipleSelection(isMultiple) {
|
780
627
|
if (isMultiple) {
|
781
628
|
var mergedCells = this.mergedCellsCollection.mergedCells;
|
782
629
|
var selectionRange = this.hot.getSelectedRangeLast();
|
783
|
-
|
784
630
|
for (var group = 0; group < mergedCells.length; group += 1) {
|
785
631
|
if (selectionRange.from.row === mergedCells[group].row && selectionRange.from.col === mergedCells[group].col && selectionRange.to.row === mergedCells[group].row + mergedCells[group].rowspan - 1 && selectionRange.to.col === mergedCells[group].col + mergedCells[group].colspan - 1) {
|
786
632
|
return false;
|
787
633
|
}
|
788
634
|
}
|
789
635
|
}
|
790
|
-
|
791
636
|
return isMultiple;
|
792
637
|
}
|
638
|
+
|
793
639
|
/**
|
794
640
|
* `modifyTransformStart` hook callback.
|
795
641
|
*
|
796
642
|
* @private
|
797
643
|
* @param {object} delta The transformation delta.
|
798
644
|
*/
|
799
|
-
|
800
645
|
}, {
|
801
646
|
key: "onModifyTransformStart",
|
802
647
|
value: function onModifyTransformStart(delta) {
|
@@ -807,30 +652,22 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
807
652
|
col: delta.col
|
808
653
|
};
|
809
654
|
var nextPosition = null;
|
810
|
-
|
811
655
|
var currentPosition = this.hot._createCellCoords(currentlySelectedRange.highlight.row, currentlySelectedRange.highlight.col);
|
812
|
-
|
813
656
|
var mergedParent = this.mergedCellsCollection.get(currentPosition.row, currentPosition.col);
|
814
|
-
|
815
657
|
if (!priv.lastDesiredCoords) {
|
816
658
|
priv.lastDesiredCoords = this.hot._createCellCoords(null, null);
|
817
659
|
}
|
818
|
-
|
819
660
|
if (mergedParent) {
|
820
661
|
// only merge selected
|
821
662
|
var mergeTopLeft = this.hot._createCellCoords(mergedParent.row, mergedParent.col);
|
822
|
-
|
823
663
|
var mergeBottomRight = this.hot._createCellCoords(mergedParent.row + mergedParent.rowspan - 1, mergedParent.col + mergedParent.colspan - 1);
|
824
|
-
|
825
664
|
var mergeRange = this.hot._createCellRange(mergeTopLeft, mergeTopLeft, mergeBottomRight);
|
826
|
-
|
827
665
|
if (!mergeRange.includes(priv.lastDesiredCoords)) {
|
828
666
|
priv.lastDesiredCoords = this.hot._createCellCoords(null, null); // reset outdated version of lastDesiredCoords
|
829
667
|
}
|
830
668
|
|
831
669
|
newDelta.row = priv.lastDesiredCoords.row ? priv.lastDesiredCoords.row - currentPosition.row : newDelta.row;
|
832
670
|
newDelta.col = priv.lastDesiredCoords.col ? priv.lastDesiredCoords.col - currentPosition.col : newDelta.col;
|
833
|
-
|
834
671
|
if (delta.row > 0) {
|
835
672
|
// moving down
|
836
673
|
newDelta.row = mergedParent.row + mergedParent.rowspan - 1 - currentPosition.row + delta.row;
|
@@ -838,7 +675,6 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
838
675
|
// moving up
|
839
676
|
newDelta.row = currentPosition.row - mergedParent.row + delta.row;
|
840
677
|
}
|
841
|
-
|
842
678
|
if (delta.col > 0) {
|
843
679
|
// moving right
|
844
680
|
newDelta.col = mergedParent.col + mergedParent.colspan - 1 - currentPosition.col + delta.col;
|
@@ -847,10 +683,8 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
847
683
|
newDelta.col = currentPosition.col - mergedParent.col + delta.col;
|
848
684
|
}
|
849
685
|
}
|
850
|
-
|
851
686
|
nextPosition = this.hot._createCellCoords(currentlySelectedRange.highlight.row + newDelta.row, currentlySelectedRange.highlight.col + newDelta.col);
|
852
687
|
var nextPositionMergedCell = this.mergedCellsCollection.get(nextPosition.row, nextPosition.col);
|
853
|
-
|
854
688
|
if (nextPositionMergedCell) {
|
855
689
|
// skipping the invisible cells in the merge range
|
856
690
|
var firstRenderableCoords = this.mergedCellsCollection.getFirstRenderableCoords(nextPositionMergedCell.row, nextPositionMergedCell.col);
|
@@ -860,33 +694,29 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
860
694
|
col: firstRenderableCoords.col - currentPosition.col
|
861
695
|
};
|
862
696
|
}
|
863
|
-
|
864
697
|
if (newDelta.row !== 0) {
|
865
698
|
delta.row = newDelta.row;
|
866
699
|
}
|
867
|
-
|
868
700
|
if (newDelta.col !== 0) {
|
869
701
|
delta.col = newDelta.col;
|
870
702
|
}
|
871
703
|
}
|
704
|
+
|
872
705
|
/**
|
873
706
|
* `modifyTransformEnd` hook callback. Needed to handle "jumping over" merged merged cells, while selecting.
|
874
707
|
*
|
875
708
|
* @private
|
876
709
|
* @param {object} delta The transformation delta.
|
877
710
|
*/
|
878
|
-
|
879
711
|
}, {
|
880
712
|
key: "onModifyTransformEnd",
|
881
713
|
value: function onModifyTransformEnd(delta) {
|
882
714
|
var _this7 = this;
|
883
|
-
|
884
715
|
var currentSelectionRange = this.hot.getSelectedRangeLast();
|
885
716
|
var newDelta = (0, _object.clone)(delta);
|
886
717
|
var newSelectionRange = this.selectionCalculations.getUpdatedSelectionRange(currentSelectionRange, delta);
|
887
718
|
var tempDelta = (0, _object.clone)(newDelta);
|
888
719
|
var mergedCellsWithinRange = this.mergedCellsCollection.getWithinRange(newSelectionRange, true);
|
889
|
-
|
890
720
|
do {
|
891
721
|
tempDelta = (0, _object.clone)(newDelta);
|
892
722
|
this.selectionCalculations.getUpdatedSelectionRange(currentSelectionRange, newDelta);
|
@@ -894,10 +724,10 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
894
724
|
_this7.selectionCalculations.snapDelta(newDelta, currentSelectionRange, mergedCell);
|
895
725
|
});
|
896
726
|
} while (newDelta.row !== tempDelta.row || newDelta.col !== tempDelta.col);
|
897
|
-
|
898
727
|
delta.row = newDelta.row;
|
899
728
|
delta.col = newDelta.col;
|
900
729
|
}
|
730
|
+
|
901
731
|
/**
|
902
732
|
* `modifyGetCellCoords` hook callback. Swaps the `getCell` coords with the merged parent coords.
|
903
733
|
*
|
@@ -906,35 +736,33 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
906
736
|
* @param {number} column Visual column index.
|
907
737
|
* @returns {Array|undefined} Visual coordinates of the merge.
|
908
738
|
*/
|
909
|
-
|
910
739
|
}, {
|
911
740
|
key: "onModifyGetCellCoords",
|
912
741
|
value: function onModifyGetCellCoords(row, column) {
|
913
742
|
if (row < 0 || column < 0) {
|
914
743
|
return;
|
915
744
|
}
|
916
|
-
|
917
745
|
var mergeParent = this.mergedCellsCollection.get(row, column);
|
918
|
-
|
919
746
|
if (!mergeParent) {
|
920
747
|
return;
|
921
748
|
}
|
922
|
-
|
923
749
|
var mergeRow = mergeParent.row,
|
924
|
-
|
925
|
-
|
926
|
-
|
927
|
-
return [
|
928
|
-
|
750
|
+
mergeColumn = mergeParent.col,
|
751
|
+
colspan = mergeParent.colspan,
|
752
|
+
rowspan = mergeParent.rowspan;
|
753
|
+
return [
|
754
|
+
// Most top-left merged cell coords.
|
755
|
+
mergeRow, mergeColumn,
|
756
|
+
// Most bottom-right merged cell coords.
|
929
757
|
mergeRow + rowspan - 1, mergeColumn + colspan - 1];
|
930
758
|
}
|
759
|
+
|
931
760
|
/**
|
932
761
|
* `afterContextMenuDefaultOptions` hook callback.
|
933
762
|
*
|
934
763
|
* @private
|
935
764
|
* @param {object} defaultOptions The default context menu options.
|
936
765
|
*/
|
937
|
-
|
938
766
|
}, {
|
939
767
|
key: "addMergeActionsToContextMenu",
|
940
768
|
value: function addMergeActionsToContextMenu(defaultOptions) {
|
@@ -942,6 +770,7 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
942
770
|
name: '---------'
|
943
771
|
}, (0, _toggleMerge.default)(this));
|
944
772
|
}
|
773
|
+
|
945
774
|
/**
|
946
775
|
* `afterRenderer` hook callback.
|
947
776
|
*
|
@@ -950,46 +779,41 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
950
779
|
* @param {number} row Row index.
|
951
780
|
* @param {number} col Visual column index.
|
952
781
|
*/
|
953
|
-
|
954
782
|
}, {
|
955
783
|
key: "onAfterRenderer",
|
956
784
|
value: function onAfterRenderer(TD, row, col) {
|
957
|
-
var mergedCell = this.mergedCellsCollection.get(row, col);
|
958
|
-
|
785
|
+
var mergedCell = this.mergedCellsCollection.get(row, col);
|
786
|
+
// We shouldn't override data in the collection.
|
959
787
|
var mergedCellCopy = (0, _object.isObject)(mergedCell) ? (0, _object.clone)(mergedCell) : void 0;
|
960
|
-
|
961
788
|
if ((0, _object.isObject)(mergedCellCopy)) {
|
962
|
-
var _this$
|
963
|
-
|
964
|
-
|
789
|
+
var _this$hot = this.hot,
|
790
|
+
rowMapper = _this$hot.rowIndexMapper,
|
791
|
+
columnMapper = _this$hot.columnIndexMapper;
|
965
792
|
var mergeRow = mergedCellCopy.row,
|
966
|
-
|
967
|
-
|
968
|
-
|
969
|
-
|
793
|
+
mergeColumn = mergedCellCopy.col,
|
794
|
+
colspan = mergedCellCopy.colspan,
|
795
|
+
rowspan = mergedCellCopy.rowspan;
|
970
796
|
var _this$translateMerged = this.translateMergedCellToRenderable(mergeRow, rowspan, mergeColumn, colspan),
|
971
|
-
|
972
|
-
|
973
|
-
|
974
|
-
|
797
|
+
_this$translateMerged2 = _slicedToArray(_this$translateMerged, 2),
|
798
|
+
lastMergedRowIndex = _this$translateMerged2[0],
|
799
|
+
lastMergedColumnIndex = _this$translateMerged2[1];
|
975
800
|
var renderedRowIndex = rowMapper.getRenderableFromVisualIndex(row);
|
976
801
|
var renderedColumnIndex = columnMapper.getRenderableFromVisualIndex(col);
|
977
802
|
var maxRowSpan = lastMergedRowIndex - renderedRowIndex + 1; // Number of rendered columns.
|
978
|
-
|
979
803
|
var maxColSpan = lastMergedColumnIndex - renderedColumnIndex + 1; // Number of rendered columns.
|
980
|
-
// We just try to determine some values basing on the actual number of rendered indexes (some columns may be hidden).
|
981
|
-
|
982
|
-
mergedCellCopy.row = rowMapper.getNearestNotHiddenIndex(mergedCellCopy.row, 1); // We just try to determine some values basing on the actual number of rendered indexes (some columns may be hidden).
|
983
|
-
|
984
|
-
mergedCellCopy.col = columnMapper.getNearestNotHiddenIndex(mergedCellCopy.col, 1); // The `rowSpan` property for a `TD` element should be at most equal to number of rendered rows in the merge area.
|
985
|
-
|
986
|
-
mergedCellCopy.rowspan = Math.min(mergedCellCopy.rowspan, maxRowSpan); // The `colSpan` property for a `TD` element should be at most equal to number of rendered columns in the merge area.
|
987
804
|
|
805
|
+
// We just try to determine some values basing on the actual number of rendered indexes (some columns may be hidden).
|
806
|
+
mergedCellCopy.row = rowMapper.getNearestNotHiddenIndex(mergedCellCopy.row, 1);
|
807
|
+
// We just try to determine some values basing on the actual number of rendered indexes (some columns may be hidden).
|
808
|
+
mergedCellCopy.col = columnMapper.getNearestNotHiddenIndex(mergedCellCopy.col, 1);
|
809
|
+
// The `rowSpan` property for a `TD` element should be at most equal to number of rendered rows in the merge area.
|
810
|
+
mergedCellCopy.rowspan = Math.min(mergedCellCopy.rowspan, maxRowSpan);
|
811
|
+
// The `colSpan` property for a `TD` element should be at most equal to number of rendered columns in the merge area.
|
988
812
|
mergedCellCopy.colspan = Math.min(mergedCellCopy.colspan, maxColSpan);
|
989
813
|
}
|
990
|
-
|
991
814
|
(0, _utils.applySpanProperties)(TD, mergedCellCopy, row, col);
|
992
815
|
}
|
816
|
+
|
993
817
|
/**
|
994
818
|
* `beforeSetRangeStart` and `beforeSetRangeStartOnly` hook callback.
|
995
819
|
* A selection within merge area should be rewritten to the start of merge area.
|
@@ -997,7 +821,6 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
997
821
|
* @private
|
998
822
|
* @param {object} coords Cell coords.
|
999
823
|
*/
|
1000
|
-
|
1001
824
|
}, {
|
1002
825
|
key: "onBeforeSetRangeStart",
|
1003
826
|
value: function onBeforeSetRangeStart(coords) {
|
@@ -1013,6 +836,7 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1013
836
|
coords.col = _ref[1];
|
1014
837
|
}
|
1015
838
|
}
|
839
|
+
|
1016
840
|
/**
|
1017
841
|
* `beforeSetRangeEnd` hook callback.
|
1018
842
|
* While selecting cells with keyboard or mouse, make sure that rectangular area is expanded to the extent of the merged cell.
|
@@ -1022,27 +846,21 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1022
846
|
* @private
|
1023
847
|
* @param {object} coords Cell coords.
|
1024
848
|
*/
|
1025
|
-
|
1026
849
|
}, {
|
1027
850
|
key: "onBeforeSetRangeEnd",
|
1028
851
|
value: function onBeforeSetRangeEnd(coords) {
|
1029
852
|
var selRange = this.hot.getSelectedRangeLast();
|
1030
853
|
selRange.highlight = this.hot._createCellCoords(selRange.highlight.row, selRange.highlight.col); // clone in case we will modify its reference
|
1031
|
-
|
1032
854
|
selRange.to = coords;
|
1033
855
|
var rangeExpanded = false;
|
1034
|
-
|
1035
856
|
if (this.hot.selection.isSelectedByColumnHeader() || this.hot.selection.isSelectedByRowHeader()) {
|
1036
857
|
return;
|
1037
858
|
}
|
1038
|
-
|
1039
859
|
do {
|
1040
860
|
rangeExpanded = false;
|
1041
|
-
|
1042
861
|
for (var i = 0; i < this.mergedCellsCollection.mergedCells.length; i += 1) {
|
1043
862
|
var cellInfo = this.mergedCellsCollection.mergedCells[i];
|
1044
863
|
var mergedCellRange = cellInfo.getRange();
|
1045
|
-
|
1046
864
|
if (selRange.expandByRange(mergedCellRange)) {
|
1047
865
|
coords.row = selRange.to.row;
|
1048
866
|
coords.col = selRange.to.col;
|
@@ -1051,6 +869,7 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1051
869
|
}
|
1052
870
|
} while (rangeExpanded);
|
1053
871
|
}
|
872
|
+
|
1054
873
|
/**
|
1055
874
|
* The `afterGetCellMeta` hook callback.
|
1056
875
|
*
|
@@ -1059,12 +878,10 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1059
878
|
* @param {number} col Column index.
|
1060
879
|
* @param {object} cellProperties The cell properties object.
|
1061
880
|
*/
|
1062
|
-
|
1063
881
|
}, {
|
1064
882
|
key: "onAfterGetCellMeta",
|
1065
883
|
value: function onAfterGetCellMeta(row, col, cellProperties) {
|
1066
884
|
var mergeParent = this.mergedCellsCollection.get(row, col);
|
1067
|
-
|
1068
885
|
if (mergeParent) {
|
1069
886
|
if (mergeParent.row !== row || mergeParent.col !== col) {
|
1070
887
|
cellProperties.copyable = false;
|
@@ -1074,13 +891,13 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1074
891
|
}
|
1075
892
|
}
|
1076
893
|
}
|
894
|
+
|
1077
895
|
/**
|
1078
896
|
* `afterViewportRowCalculatorOverride` hook callback.
|
1079
897
|
*
|
1080
898
|
* @private
|
1081
899
|
* @param {object} calc The row calculator object.
|
1082
900
|
*/
|
1083
|
-
|
1084
901
|
}, {
|
1085
902
|
key: "onAfterViewportRowCalculatorOverride",
|
1086
903
|
value: function onAfterViewportRowCalculatorOverride(calc) {
|
@@ -1088,6 +905,7 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1088
905
|
this.modifyViewportRowStart(calc, nrOfColumns);
|
1089
906
|
this.modifyViewportRowEnd(calc, nrOfColumns);
|
1090
907
|
}
|
908
|
+
|
1091
909
|
/**
|
1092
910
|
* Modify viewport start when needed. We extend viewport when merged cells aren't fully visible.
|
1093
911
|
*
|
@@ -1095,23 +913,21 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1095
913
|
* @param {object} calc The row calculator object.
|
1096
914
|
* @param {number} nrOfColumns Number of visual columns.
|
1097
915
|
*/
|
1098
|
-
|
1099
916
|
}, {
|
1100
917
|
key: "modifyViewportRowStart",
|
1101
918
|
value: function modifyViewportRowStart(calc, nrOfColumns) {
|
1102
919
|
var rowMapper = this.hot.rowIndexMapper;
|
1103
920
|
var visualStartRow = rowMapper.getVisualFromRenderableIndex(calc.startRow);
|
1104
|
-
|
1105
921
|
for (var visualColumnIndex = 0; visualColumnIndex < nrOfColumns; visualColumnIndex += 1) {
|
1106
922
|
var mergeParentForViewportStart = this.mergedCellsCollection.get(visualStartRow, visualColumnIndex);
|
1107
|
-
|
1108
923
|
if ((0, _object.isObject)(mergeParentForViewportStart)) {
|
1109
|
-
var renderableIndexAtMergeStart = rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(mergeParentForViewportStart.row, 1));
|
924
|
+
var renderableIndexAtMergeStart = rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(mergeParentForViewportStart.row, 1));
|
1110
925
|
|
926
|
+
// Merge start is out of the viewport (i.e. when we scrolled to the bottom and we can see just part of a merge).
|
1111
927
|
if (renderableIndexAtMergeStart < calc.startRow) {
|
1112
928
|
// We extend viewport when some rows have been merged.
|
1113
|
-
calc.startRow = renderableIndexAtMergeStart;
|
1114
|
-
|
929
|
+
calc.startRow = renderableIndexAtMergeStart;
|
930
|
+
// We are looking for next merges inside already extended viewport (starting again from row equal to 0).
|
1115
931
|
this.modifyViewportRowStart(calc, nrOfColumns); // recursively search upwards
|
1116
932
|
|
1117
933
|
return; // Finish the current loop. Everything will be checked from the beginning by above recursion.
|
@@ -1119,6 +935,7 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1119
935
|
}
|
1120
936
|
}
|
1121
937
|
}
|
938
|
+
|
1122
939
|
/**
|
1123
940
|
* Modify viewport end when needed. We extend viewport when merged cells aren't fully visible.
|
1124
941
|
*
|
@@ -1126,24 +943,22 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1126
943
|
* @param {object} calc The row calculator object.
|
1127
944
|
* @param {number} nrOfColumns Number of visual columns.
|
1128
945
|
*/
|
1129
|
-
|
1130
946
|
}, {
|
1131
947
|
key: "modifyViewportRowEnd",
|
1132
948
|
value: function modifyViewportRowEnd(calc, nrOfColumns) {
|
1133
949
|
var rowMapper = this.hot.rowIndexMapper;
|
1134
950
|
var visualEndRow = rowMapper.getVisualFromRenderableIndex(calc.endRow);
|
1135
|
-
|
1136
951
|
for (var visualColumnIndex = 0; visualColumnIndex < nrOfColumns; visualColumnIndex += 1) {
|
1137
952
|
var mergeParentForViewportEnd = this.mergedCellsCollection.get(visualEndRow, visualColumnIndex);
|
1138
|
-
|
1139
953
|
if ((0, _object.isObject)(mergeParentForViewportEnd)) {
|
1140
954
|
var mergeEnd = mergeParentForViewportEnd.row + mergeParentForViewportEnd.rowspan - 1;
|
1141
|
-
var renderableIndexAtMergeEnd = rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(mergeEnd, -1));
|
955
|
+
var renderableIndexAtMergeEnd = rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(mergeEnd, -1));
|
1142
956
|
|
957
|
+
// Merge end is out of the viewport.
|
1143
958
|
if (renderableIndexAtMergeEnd > calc.endRow) {
|
1144
959
|
// We extend the viewport when some rows have been merged.
|
1145
|
-
calc.endRow = renderableIndexAtMergeEnd;
|
1146
|
-
|
960
|
+
calc.endRow = renderableIndexAtMergeEnd;
|
961
|
+
// We are looking for next merges inside already extended viewport (starting again from row equal to 0).
|
1147
962
|
this.modifyViewportRowEnd(calc, nrOfColumns); // recursively search upwards
|
1148
963
|
|
1149
964
|
return; // Finish the current loop. Everything will be checked from the beginning by above recursion.
|
@@ -1151,13 +966,13 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1151
966
|
}
|
1152
967
|
}
|
1153
968
|
}
|
969
|
+
|
1154
970
|
/**
|
1155
971
|
* `afterViewportColumnCalculatorOverride` hook callback.
|
1156
972
|
*
|
1157
973
|
* @private
|
1158
974
|
* @param {object} calc The column calculator object.
|
1159
975
|
*/
|
1160
|
-
|
1161
976
|
}, {
|
1162
977
|
key: "onAfterViewportColumnCalculatorOverride",
|
1163
978
|
value: function onAfterViewportColumnCalculatorOverride(calc) {
|
@@ -1165,6 +980,7 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1165
980
|
this.modifyViewportColumnStart(calc, nrOfRows);
|
1166
981
|
this.modifyViewportColumnEnd(calc, nrOfRows);
|
1167
982
|
}
|
983
|
+
|
1168
984
|
/**
|
1169
985
|
* Modify viewport start when needed. We extend viewport when merged cells aren't fully visible.
|
1170
986
|
*
|
@@ -1172,23 +988,21 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1172
988
|
* @param {object} calc The column calculator object.
|
1173
989
|
* @param {number} nrOfRows Number of visual rows.
|
1174
990
|
*/
|
1175
|
-
|
1176
991
|
}, {
|
1177
992
|
key: "modifyViewportColumnStart",
|
1178
993
|
value: function modifyViewportColumnStart(calc, nrOfRows) {
|
1179
994
|
var columnMapper = this.hot.columnIndexMapper;
|
1180
995
|
var visualStartCol = columnMapper.getVisualFromRenderableIndex(calc.startColumn);
|
1181
|
-
|
1182
996
|
for (var visualRowIndex = 0; visualRowIndex < nrOfRows; visualRowIndex += 1) {
|
1183
997
|
var mergeParentForViewportStart = this.mergedCellsCollection.get(visualRowIndex, visualStartCol);
|
1184
|
-
|
1185
998
|
if ((0, _object.isObject)(mergeParentForViewportStart)) {
|
1186
|
-
var renderableIndexAtMergeStart = columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(mergeParentForViewportStart.col, 1));
|
999
|
+
var renderableIndexAtMergeStart = columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(mergeParentForViewportStart.col, 1));
|
1187
1000
|
|
1001
|
+
// Merge start is out of the viewport (i.e. when we scrolled to the right and we can see just part of a merge).
|
1188
1002
|
if (renderableIndexAtMergeStart < calc.startColumn) {
|
1189
1003
|
// We extend viewport when some columns have been merged.
|
1190
|
-
calc.startColumn = renderableIndexAtMergeStart;
|
1191
|
-
|
1004
|
+
calc.startColumn = renderableIndexAtMergeStart;
|
1005
|
+
// We are looking for next merges inside already extended viewport (starting again from column equal to 0).
|
1192
1006
|
this.modifyViewportColumnStart(calc, nrOfRows); // recursively search upwards
|
1193
1007
|
|
1194
1008
|
return; // Finish the current loop. Everything will be checked from the beginning by above recursion.
|
@@ -1196,6 +1010,7 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1196
1010
|
}
|
1197
1011
|
}
|
1198
1012
|
}
|
1013
|
+
|
1199
1014
|
/**
|
1200
1015
|
* Modify viewport end when needed. We extend viewport when merged cells aren't fully visible.
|
1201
1016
|
*
|
@@ -1203,24 +1018,22 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1203
1018
|
* @param {object} calc The column calculator object.
|
1204
1019
|
* @param {number} nrOfRows Number of visual rows.
|
1205
1020
|
*/
|
1206
|
-
|
1207
1021
|
}, {
|
1208
1022
|
key: "modifyViewportColumnEnd",
|
1209
1023
|
value: function modifyViewportColumnEnd(calc, nrOfRows) {
|
1210
1024
|
var columnMapper = this.hot.columnIndexMapper;
|
1211
1025
|
var visualEndCol = columnMapper.getVisualFromRenderableIndex(calc.endColumn);
|
1212
|
-
|
1213
1026
|
for (var visualRowIndex = 0; visualRowIndex < nrOfRows; visualRowIndex += 1) {
|
1214
1027
|
var mergeParentForViewportEnd = this.mergedCellsCollection.get(visualRowIndex, visualEndCol);
|
1215
|
-
|
1216
1028
|
if ((0, _object.isObject)(mergeParentForViewportEnd)) {
|
1217
1029
|
var mergeEnd = mergeParentForViewportEnd.col + mergeParentForViewportEnd.colspan - 1;
|
1218
|
-
var renderableIndexAtMergeEnd = columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(mergeEnd, -1));
|
1030
|
+
var renderableIndexAtMergeEnd = columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(mergeEnd, -1));
|
1219
1031
|
|
1032
|
+
// Merge end is out of the viewport.
|
1220
1033
|
if (renderableIndexAtMergeEnd > calc.endColumn) {
|
1221
1034
|
// We extend the viewport when some columns have been merged.
|
1222
|
-
calc.endColumn = renderableIndexAtMergeEnd;
|
1223
|
-
|
1035
|
+
calc.endColumn = renderableIndexAtMergeEnd;
|
1036
|
+
// We are looking for next merges inside already extended viewport (starting again from column equal to 0).
|
1224
1037
|
this.modifyViewportColumnEnd(calc, nrOfRows); // recursively search upwards
|
1225
1038
|
|
1226
1039
|
return; // Finish the current loop. Everything will be checked from the beginning by above recursion.
|
@@ -1228,6 +1041,7 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1228
1041
|
}
|
1229
1042
|
}
|
1230
1043
|
}
|
1044
|
+
|
1231
1045
|
/**
|
1232
1046
|
* Translates merged cell coordinates to renderable indexes.
|
1233
1047
|
*
|
@@ -1244,32 +1058,29 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1244
1058
|
* index position.
|
1245
1059
|
* @returns {number[]}
|
1246
1060
|
*/
|
1247
|
-
|
1248
1061
|
}, {
|
1249
1062
|
key: "translateMergedCellToRenderable",
|
1250
1063
|
value: function translateMergedCellToRenderable(parentRow, rowspan, parentColumn, colspan) {
|
1251
|
-
var _this$
|
1252
|
-
|
1253
|
-
|
1064
|
+
var _this$hot2 = this.hot,
|
1065
|
+
rowMapper = _this$hot2.rowIndexMapper,
|
1066
|
+
columnMapper = _this$hot2.columnIndexMapper;
|
1254
1067
|
var firstNonHiddenRow;
|
1255
1068
|
var firstNonHiddenColumn;
|
1256
|
-
|
1257
1069
|
if (rowspan === 0) {
|
1258
1070
|
firstNonHiddenRow = rowMapper.getNearestNotHiddenIndex(parentRow, 1);
|
1259
1071
|
} else {
|
1260
1072
|
firstNonHiddenRow = rowMapper.getNearestNotHiddenIndex(parentRow + rowspan - 1, -1);
|
1261
1073
|
}
|
1262
|
-
|
1263
1074
|
if (colspan === 0) {
|
1264
1075
|
firstNonHiddenColumn = columnMapper.getNearestNotHiddenIndex(parentColumn, 1);
|
1265
1076
|
} else {
|
1266
1077
|
firstNonHiddenColumn = columnMapper.getNearestNotHiddenIndex(parentColumn + colspan - 1, -1);
|
1267
1078
|
}
|
1268
|
-
|
1269
1079
|
var renderableRow = parentRow >= 0 ? rowMapper.getRenderableFromVisualIndex(firstNonHiddenRow) : parentRow;
|
1270
1080
|
var renderableColumn = parentColumn >= 0 ? columnMapper.getRenderableFromVisualIndex(firstNonHiddenColumn) : parentColumn;
|
1271
1081
|
return [renderableRow, renderableColumn];
|
1272
1082
|
}
|
1083
|
+
|
1273
1084
|
/**
|
1274
1085
|
* The `modifyAutofillRange` hook callback.
|
1275
1086
|
*
|
@@ -1278,19 +1089,16 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1278
1089
|
* @param {Array} select The selection information.
|
1279
1090
|
* @returns {Array} The new drag area.
|
1280
1091
|
*/
|
1281
|
-
|
1282
1092
|
}, {
|
1283
1093
|
key: "onModifyAutofillRange",
|
1284
1094
|
value: function onModifyAutofillRange(drag, select) {
|
1285
1095
|
this.autofillCalculations.correctSelectionAreaSize(select);
|
1286
1096
|
var dragDirection = this.autofillCalculations.getDirection(select, drag);
|
1287
1097
|
var dragArea = drag;
|
1288
|
-
|
1289
1098
|
if (this.autofillCalculations.dragAreaOverlapsCollections(select, dragArea, dragDirection)) {
|
1290
1099
|
dragArea = select;
|
1291
1100
|
return dragArea;
|
1292
1101
|
}
|
1293
|
-
|
1294
1102
|
var mergedCellsWithinSelectionArea = this.mergedCellsCollection.getWithinRange({
|
1295
1103
|
from: {
|
1296
1104
|
row: select[0],
|
@@ -1301,14 +1109,13 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1301
1109
|
col: select[3]
|
1302
1110
|
}
|
1303
1111
|
});
|
1304
|
-
|
1305
1112
|
if (!mergedCellsWithinSelectionArea) {
|
1306
1113
|
return dragArea;
|
1307
1114
|
}
|
1308
|
-
|
1309
1115
|
dragArea = this.autofillCalculations.snapDragArea(select, dragArea, dragDirection, mergedCellsWithinSelectionArea);
|
1310
1116
|
return dragArea;
|
1311
1117
|
}
|
1118
|
+
|
1312
1119
|
/**
|
1313
1120
|
* `afterCreateCol` hook callback.
|
1314
1121
|
*
|
@@ -1316,12 +1123,12 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1316
1123
|
* @param {number} column Column index.
|
1317
1124
|
* @param {number} count Number of created columns.
|
1318
1125
|
*/
|
1319
|
-
|
1320
1126
|
}, {
|
1321
1127
|
key: "onAfterCreateCol",
|
1322
1128
|
value: function onAfterCreateCol(column, count) {
|
1323
1129
|
this.mergedCellsCollection.shiftCollections('right', column, count);
|
1324
1130
|
}
|
1131
|
+
|
1325
1132
|
/**
|
1326
1133
|
* `afterRemoveCol` hook callback.
|
1327
1134
|
*
|
@@ -1329,12 +1136,12 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1329
1136
|
* @param {number} column Column index.
|
1330
1137
|
* @param {number} count Number of removed columns.
|
1331
1138
|
*/
|
1332
|
-
|
1333
1139
|
}, {
|
1334
1140
|
key: "onAfterRemoveCol",
|
1335
1141
|
value: function onAfterRemoveCol(column, count) {
|
1336
1142
|
this.mergedCellsCollection.shiftCollections('left', column, count);
|
1337
1143
|
}
|
1144
|
+
|
1338
1145
|
/**
|
1339
1146
|
* `afterCreateRow` hook callback.
|
1340
1147
|
*
|
@@ -1343,16 +1150,15 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1343
1150
|
* @param {number} count Number of created rows.
|
1344
1151
|
* @param {string} source Source of change.
|
1345
1152
|
*/
|
1346
|
-
|
1347
1153
|
}, {
|
1348
1154
|
key: "onAfterCreateRow",
|
1349
1155
|
value: function onAfterCreateRow(row, count, source) {
|
1350
1156
|
if (source === 'auto') {
|
1351
1157
|
return;
|
1352
1158
|
}
|
1353
|
-
|
1354
1159
|
this.mergedCellsCollection.shiftCollections('down', row, count);
|
1355
1160
|
}
|
1161
|
+
|
1356
1162
|
/**
|
1357
1163
|
* `afterRemoveRow` hook callback.
|
1358
1164
|
*
|
@@ -1360,12 +1166,12 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1360
1166
|
* @param {number} row Row index.
|
1361
1167
|
* @param {number} count Number of removed rows.
|
1362
1168
|
*/
|
1363
|
-
|
1364
1169
|
}, {
|
1365
1170
|
key: "onAfterRemoveRow",
|
1366
1171
|
value: function onAfterRemoveRow(row, count) {
|
1367
1172
|
this.mergedCellsCollection.shiftCollections('up', row, count);
|
1368
1173
|
}
|
1174
|
+
|
1369
1175
|
/**
|
1370
1176
|
* `afterChange` hook callback. Used to propagate merged cells after using Autofill.
|
1371
1177
|
*
|
@@ -1373,16 +1179,15 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1373
1179
|
* @param {Array} changes The changes array.
|
1374
1180
|
* @param {string} source Determines the source of the change.
|
1375
1181
|
*/
|
1376
|
-
|
1377
1182
|
}, {
|
1378
1183
|
key: "onAfterChange",
|
1379
1184
|
value: function onAfterChange(changes, source) {
|
1380
1185
|
if (source !== 'Autofill.fill') {
|
1381
1186
|
return;
|
1382
1187
|
}
|
1383
|
-
|
1384
1188
|
this.autofillCalculations.recreateAfterDataPopulation(changes);
|
1385
1189
|
}
|
1190
|
+
|
1386
1191
|
/**
|
1387
1192
|
* `beforeDrawAreaBorders` hook callback.
|
1388
1193
|
*
|
@@ -1390,7 +1195,6 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1390
1195
|
* @param {Array} corners Visual coordinates of the area corners.
|
1391
1196
|
* @param {string} className Class name for the area.
|
1392
1197
|
*/
|
1393
|
-
|
1394
1198
|
}, {
|
1395
1199
|
key: "onBeforeDrawAreaBorders",
|
1396
1200
|
value: function onBeforeDrawAreaBorders(corners, className) {
|
@@ -1405,6 +1209,7 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1405
1209
|
});
|
1406
1210
|
}
|
1407
1211
|
}
|
1212
|
+
|
1408
1213
|
/**
|
1409
1214
|
* `afterModifyTransformStart` hook callback. Fixes a problem with navigating through merged cells at the edges of the table
|
1410
1215
|
* with the ENTER/SHIFT+ENTER/TAB/SHIFT+TAB keys.
|
@@ -1414,20 +1219,16 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1414
1219
|
* @param {number} rowTransformDir Row transformation direction (negative value = up, 0 = none, positive value = down).
|
1415
1220
|
* @param {number} colTransformDir Column transformation direction (negative value = up, 0 = none, positive value = down).
|
1416
1221
|
*/
|
1417
|
-
|
1418
1222
|
}, {
|
1419
1223
|
key: "onAfterModifyTransformStart",
|
1420
1224
|
value: function onAfterModifyTransformStart(coords, rowTransformDir, colTransformDir) {
|
1421
1225
|
if (!this.enabled) {
|
1422
1226
|
return;
|
1423
1227
|
}
|
1424
|
-
|
1425
1228
|
var mergedCellAtCoords = this.mergedCellsCollection.get(coords.row, coords.col);
|
1426
|
-
|
1427
1229
|
if (!mergedCellAtCoords) {
|
1428
1230
|
return;
|
1429
1231
|
}
|
1430
|
-
|
1431
1232
|
var goingDown = rowTransformDir > 0;
|
1432
1233
|
var goingUp = rowTransformDir < 0;
|
1433
1234
|
var goingLeft = colTransformDir < 0;
|
@@ -1436,12 +1237,12 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1436
1237
|
var mergedCellOnTopEdge = mergedCellAtCoords.row === 0;
|
1437
1238
|
var mergedCellOnRightEdge = mergedCellAtCoords.col + mergedCellAtCoords.colspan - 1 === this.hot.countCols() - 1;
|
1438
1239
|
var mergedCellOnLeftEdge = mergedCellAtCoords.col === 0;
|
1439
|
-
|
1440
1240
|
if (goingDown && mergedCellOnBottomEdge || goingUp && mergedCellOnTopEdge || goingRight && mergedCellOnRightEdge || goingLeft && mergedCellOnLeftEdge) {
|
1441
1241
|
coords.row = mergedCellAtCoords.row;
|
1442
1242
|
coords.col = mergedCellAtCoords.col;
|
1443
1243
|
}
|
1444
1244
|
}
|
1245
|
+
|
1445
1246
|
/**
|
1446
1247
|
* `afterDrawSelection` hook callback. Used to add the additional class name for the entirely-selected merged cells.
|
1447
1248
|
*
|
@@ -1452,7 +1253,6 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1452
1253
|
* @param {number|undefined} layerLevel Number indicating which layer of selection is currently processed.
|
1453
1254
|
* @returns {string|undefined} A `String`, which will act as an additional `className` to be added to the currently processed cell.
|
1454
1255
|
*/
|
1455
|
-
|
1456
1256
|
}, {
|
1457
1257
|
key: "onAfterDrawSelection",
|
1458
1258
|
value: function onAfterDrawSelection(currentRow, currentColumn, cornersOfSelection, layerLevel) {
|
@@ -1460,16 +1260,15 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1460
1260
|
if (!cornersOfSelection) {
|
1461
1261
|
return;
|
1462
1262
|
}
|
1463
|
-
|
1464
1263
|
return this.selectionCalculations.getSelectedMergedCellClassName(currentRow, currentColumn, cornersOfSelection, layerLevel);
|
1465
1264
|
}
|
1265
|
+
|
1466
1266
|
/**
|
1467
1267
|
* `beforeRemoveCellClassNames` hook callback. Used to remove additional class name from all cells in the table.
|
1468
1268
|
*
|
1469
1269
|
* @private
|
1470
1270
|
* @returns {string[]} An `Array` of `String`s. Each of these strings will act like class names to be removed from all the cells in the table.
|
1471
1271
|
*/
|
1472
|
-
|
1473
1272
|
}, {
|
1474
1273
|
key: "onBeforeRemoveCellClassNames",
|
1475
1274
|
value: function onBeforeRemoveCellClassNames() {
|
@@ -1486,8 +1285,6 @@ var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1486
1285
|
return PLUGIN_PRIORITY;
|
1487
1286
|
}
|
1488
1287
|
}]);
|
1489
|
-
|
1490
1288
|
return MergeCells;
|
1491
1289
|
}(_base.BasePlugin);
|
1492
|
-
|
1493
1290
|
exports.MergeCells = MergeCells;
|