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,57 +1,27 @@
|
|
1
1
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
2
|
-
|
3
2
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
4
|
-
|
5
3
|
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."); }
|
6
|
-
|
7
|
-
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; }
|
8
|
-
|
9
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
10
|
-
|
11
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
12
|
-
|
13
|
-
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."); }
|
14
|
-
|
15
4
|
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); }
|
16
|
-
|
17
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
18
|
-
|
19
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
20
|
-
|
21
5
|
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; }
|
22
|
-
|
6
|
+
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; }
|
7
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
23
8
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
24
|
-
|
25
9
|
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); } }
|
26
|
-
|
27
10
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
28
|
-
|
29
11
|
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); }
|
30
|
-
|
31
12
|
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
32
|
-
|
33
13
|
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); }
|
34
|
-
|
35
14
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
36
|
-
|
37
15
|
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); }; }
|
38
|
-
|
39
16
|
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); }
|
40
|
-
|
41
17
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
42
|
-
|
43
18
|
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; } }
|
44
|
-
|
45
19
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
46
|
-
|
47
20
|
import "core-js/modules/es.array.iterator.js";
|
48
21
|
import "core-js/modules/es.object.to-string.js";
|
49
22
|
import "core-js/modules/es.string.iterator.js";
|
50
23
|
import "core-js/modules/es.weak-map.js";
|
51
24
|
import "core-js/modules/web.dom-collections.iterator.js";
|
52
|
-
import "core-js/modules/es.array.filter.js";
|
53
|
-
import "core-js/modules/es.array.splice.js";
|
54
|
-
import "core-js/modules/es.array.concat.js";
|
55
25
|
import "core-js/modules/es.array.includes.js";
|
56
26
|
import "core-js/modules/es.string.includes.js";
|
57
27
|
import "core-js/modules/es.object.set-prototype-of.js";
|
@@ -62,9 +32,9 @@ import "core-js/modules/es.object.get-own-property-descriptor.js";
|
|
62
32
|
import "core-js/modules/es.symbol.js";
|
63
33
|
import "core-js/modules/es.symbol.description.js";
|
64
34
|
import "core-js/modules/es.symbol.iterator.js";
|
65
|
-
import "core-js/modules/es.array.from.js";
|
66
35
|
import "core-js/modules/es.array.slice.js";
|
67
36
|
import "core-js/modules/es.function.name.js";
|
37
|
+
import "core-js/modules/es.array.from.js";
|
68
38
|
import "core-js/modules/es.regexp.exec.js";
|
69
39
|
import { BasePlugin } from "../base/index.mjs";
|
70
40
|
import Hooks from "../../pluginHooks.mjs";
|
@@ -86,6 +56,7 @@ export var PLUGIN_KEY = 'mergeCells';
|
|
86
56
|
export var PLUGIN_PRIORITY = 150;
|
87
57
|
var privatePool = new WeakMap();
|
88
58
|
var SHORTCUTS_GROUP = PLUGIN_KEY;
|
59
|
+
|
89
60
|
/* eslint-disable jsdoc/require-description-complete-sentence */
|
90
61
|
|
91
62
|
/**
|
@@ -97,6 +68,7 @@ var SHORTCUTS_GROUP = PLUGIN_KEY;
|
|
97
68
|
*
|
98
69
|
* @example
|
99
70
|
*
|
71
|
+
* ::: only-for javascript
|
100
72
|
* ```js
|
101
73
|
* const hot = new Handsontable(document.getElementById('example'), {
|
102
74
|
* data: getData(),
|
@@ -106,29 +78,39 @@ var SHORTCUTS_GROUP = PLUGIN_KEY;
|
|
106
78
|
* {row: 4, col: 8, rowspan: 3, colspan: 3}
|
107
79
|
* ],
|
108
80
|
* ```
|
81
|
+
* :::
|
82
|
+
*
|
83
|
+
* ::: only-for react
|
84
|
+
* ```jsx
|
85
|
+
* <HotTable
|
86
|
+
* data={getData()}
|
87
|
+
* // enable plugin
|
88
|
+
* mergeCells={[
|
89
|
+
* {row: 0, col: 3, rowspan: 3, colspan: 3},
|
90
|
+
* {row: 2, col: 6, rowspan: 2, colspan: 2},
|
91
|
+
* {row: 4, col: 8, rowspan: 3, colspan: 3}
|
92
|
+
* ]}
|
93
|
+
* />
|
94
|
+
* ```
|
95
|
+
* :::
|
109
96
|
*/
|
110
|
-
|
111
97
|
export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
112
98
|
_inherits(MergeCells, _BasePlugin);
|
113
|
-
|
114
99
|
var _super = _createSuper(MergeCells);
|
115
|
-
|
116
100
|
function MergeCells(hotInstance) {
|
117
101
|
var _this;
|
118
|
-
|
119
102
|
_classCallCheck(this, MergeCells);
|
120
|
-
|
121
103
|
_this = _super.call(this, hotInstance);
|
122
104
|
privatePool.set(_assertThisInitialized(_this), {
|
123
105
|
lastDesiredCoords: null
|
124
106
|
});
|
107
|
+
|
125
108
|
/**
|
126
109
|
* A container for all the merged cells.
|
127
110
|
*
|
128
111
|
* @private
|
129
112
|
* @type {MergedCellsCollection}
|
130
113
|
*/
|
131
|
-
|
132
114
|
_this.mergedCellsCollection = null;
|
133
115
|
/**
|
134
116
|
* Instance of the class responsible for all the autofill-related calculations.
|
@@ -136,7 +118,6 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
136
118
|
* @private
|
137
119
|
* @type {AutofillCalculations}
|
138
120
|
*/
|
139
|
-
|
140
121
|
_this.autofillCalculations = null;
|
141
122
|
/**
|
142
123
|
* Instance of the class responsible for the selection-related calculations.
|
@@ -144,36 +125,32 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
144
125
|
* @private
|
145
126
|
* @type {SelectionCalculations}
|
146
127
|
*/
|
147
|
-
|
148
128
|
_this.selectionCalculations = null;
|
149
129
|
return _this;
|
150
130
|
}
|
131
|
+
|
151
132
|
/**
|
152
133
|
* Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
|
153
|
-
* hook and if it returns `true`
|
134
|
+
* hook and if it returns `true` then the {@link MergeCells#enablePlugin} method is called.
|
154
135
|
*
|
155
136
|
* @returns {boolean}
|
156
137
|
*/
|
157
|
-
|
158
|
-
|
159
138
|
_createClass(MergeCells, [{
|
160
139
|
key: "isEnabled",
|
161
140
|
value: function isEnabled() {
|
162
141
|
return !!this.hot.getSettings()[PLUGIN_KEY];
|
163
142
|
}
|
143
|
+
|
164
144
|
/**
|
165
145
|
* Enables the plugin functionality for this Handsontable instance.
|
166
146
|
*/
|
167
|
-
|
168
147
|
}, {
|
169
148
|
key: "enablePlugin",
|
170
149
|
value: function enablePlugin() {
|
171
150
|
var _this2 = this;
|
172
|
-
|
173
151
|
if (this.enabled) {
|
174
152
|
return;
|
175
153
|
}
|
176
|
-
|
177
154
|
this.mergedCellsCollection = new MergedCellsCollection(this);
|
178
155
|
this.autofillCalculations = new AutofillCalculations(this);
|
179
156
|
this.selectionCalculations = new SelectionCalculations(this);
|
@@ -252,29 +229,27 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
252
229
|
}
|
253
230
|
});
|
254
231
|
this.registerShortcuts();
|
255
|
-
|
256
232
|
_get(_getPrototypeOf(MergeCells.prototype), "enablePlugin", this).call(this);
|
257
233
|
}
|
234
|
+
|
258
235
|
/**
|
259
236
|
* Disables the plugin functionality for this Handsontable instance.
|
260
237
|
*/
|
261
|
-
|
262
238
|
}, {
|
263
239
|
key: "disablePlugin",
|
264
240
|
value: function disablePlugin() {
|
265
241
|
this.clearCollections();
|
266
242
|
this.unregisterShortcuts();
|
267
243
|
this.hot.render();
|
268
|
-
|
269
244
|
_get(_getPrototypeOf(MergeCells.prototype), "disablePlugin", this).call(this);
|
270
245
|
}
|
246
|
+
|
271
247
|
/**
|
272
248
|
* Updates the plugin's state.
|
273
249
|
*
|
274
250
|
* This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:
|
275
251
|
* - [`mergeCells`](@/api/options.md#mergecells)
|
276
252
|
*/
|
277
|
-
|
278
253
|
}, {
|
279
254
|
key: "updatePlugin",
|
280
255
|
value: function updatePlugin() {
|
@@ -282,9 +257,9 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
282
257
|
this.disablePlugin();
|
283
258
|
this.enablePlugin();
|
284
259
|
this.generateFromSettings(settings);
|
285
|
-
|
286
260
|
_get(_getPrototypeOf(MergeCells.prototype), "updatePlugin", this).call(this);
|
287
261
|
}
|
262
|
+
|
288
263
|
/**
|
289
264
|
* Validates a single setting object, represented by a single merged cell information object.
|
290
265
|
*
|
@@ -292,16 +267,13 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
292
267
|
* @param {object} setting An object with `row`, `col`, `rowspan` and `colspan` properties.
|
293
268
|
* @returns {boolean}
|
294
269
|
*/
|
295
|
-
|
296
270
|
}, {
|
297
271
|
key: "validateSetting",
|
298
272
|
value: function validateSetting(setting) {
|
299
273
|
var valid = true;
|
300
|
-
|
301
274
|
if (!setting) {
|
302
275
|
return false;
|
303
276
|
}
|
304
|
-
|
305
277
|
if (MergedCellCoords.containsNegativeValues(setting)) {
|
306
278
|
warn(MergedCellCoords.NEGATIVE_VALUES_WARNING(setting));
|
307
279
|
valid = false;
|
@@ -315,115 +287,58 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
315
287
|
warn(MergedCellCoords.ZERO_SPAN_WARNING(setting));
|
316
288
|
valid = false;
|
317
289
|
}
|
318
|
-
|
319
290
|
return valid;
|
320
291
|
}
|
292
|
+
|
321
293
|
/**
|
322
294
|
* Generates the merged cells from the settings provided to the plugin.
|
323
295
|
*
|
324
296
|
* @private
|
325
297
|
* @param {Array|boolean} settings The settings provided to the plugin.
|
326
298
|
*/
|
327
|
-
|
328
299
|
}, {
|
329
300
|
key: "generateFromSettings",
|
330
301
|
value: function generateFromSettings(settings) {
|
331
302
|
var _this3 = this;
|
332
|
-
|
333
303
|
if (Array.isArray(settings)) {
|
334
|
-
var
|
335
|
-
|
336
|
-
var populationArgumentsList = [];
|
304
|
+
var populatedNulls = [];
|
337
305
|
arrayEach(settings, function (setting) {
|
338
306
|
if (!_this3.validateSetting(setting)) {
|
339
307
|
return;
|
340
308
|
}
|
341
|
-
|
342
309
|
var highlight = _this3.hot._createCellCoords(setting.row, setting.col);
|
343
|
-
|
344
310
|
var rangeEnd = _this3.hot._createCellCoords(setting.row + setting.rowspan - 1, setting.col + setting.colspan - 1);
|
345
|
-
|
346
311
|
var mergeRange = _this3.hot._createCellRange(highlight, highlight, rangeEnd);
|
347
312
|
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
313
|
+
// Merging without data population.
|
314
|
+
_this3.mergeRange(mergeRange, true, true);
|
315
|
+
rangeEach(setting.row, setting.row + setting.rowspan - 1, function (rowIndex) {
|
316
|
+
rangeEach(setting.col, setting.col + setting.colspan - 1, function (columnIndex) {
|
317
|
+
// Not resetting a cell representing a merge area's value.
|
318
|
+
if ((rowIndex === setting.row && columnIndex === setting.col) === false) {
|
319
|
+
populatedNulls.push([rowIndex, columnIndex, null]);
|
320
|
+
}
|
321
|
+
});
|
322
|
+
});
|
353
323
|
});
|
354
|
-
var bulkPopulationData = this.getBulkCollectionData(populationArgumentsList);
|
355
324
|
|
356
|
-
|
325
|
+
// There are no merged cells. Thus, no data population is needed.
|
326
|
+
if (populatedNulls.length === 0) {
|
327
|
+
return;
|
328
|
+
}
|
329
|
+
this.hot.setDataAtCell(populatedNulls);
|
357
330
|
}
|
358
331
|
}
|
359
|
-
/**
|
360
|
-
* Generates a bulk set of all the data to be populated to fill the data "under" the added merged cells.
|
361
|
-
*
|
362
|
-
* @private
|
363
|
-
* @param {Array} populationArgumentsList Array in a form of `[row, column, dataUnderCollection]`.
|
364
|
-
* @returns {Array} Array in a form of `[row, column, dataOfAllCollections]`.
|
365
|
-
*/
|
366
|
-
|
367
|
-
}, {
|
368
|
-
key: "getBulkCollectionData",
|
369
|
-
value: function getBulkCollectionData(populationArgumentsList) {
|
370
|
-
var _this$hot2;
|
371
332
|
|
372
|
-
var populationDataRange = this.getBulkCollectionDataRange(populationArgumentsList);
|
373
|
-
|
374
|
-
var dataAtRange = (_this$hot2 = this.hot).getData.apply(_this$hot2, _toConsumableArray(populationDataRange));
|
375
|
-
|
376
|
-
var newDataAtRange = dataAtRange.splice(0);
|
377
|
-
arrayEach(populationArgumentsList, function (mergedCellArguments) {
|
378
|
-
var _mergedCellArguments = _slicedToArray(mergedCellArguments, 3),
|
379
|
-
mergedCellRowIndex = _mergedCellArguments[0],
|
380
|
-
mergedCellColumnIndex = _mergedCellArguments[1],
|
381
|
-
mergedCellData = _mergedCellArguments[2];
|
382
|
-
|
383
|
-
arrayEach(mergedCellData, function (mergedCellRow, rowIndex) {
|
384
|
-
arrayEach(mergedCellRow, function (mergedCellElement, columnIndex) {
|
385
|
-
newDataAtRange[mergedCellRowIndex - populationDataRange[0] + rowIndex][mergedCellColumnIndex - populationDataRange[1] + columnIndex] = mergedCellElement; // eslint-disable-line max-len
|
386
|
-
});
|
387
|
-
});
|
388
|
-
});
|
389
|
-
return [populationDataRange[0], populationDataRange[1], newDataAtRange];
|
390
|
-
}
|
391
|
-
/**
|
392
|
-
* Gets the range of combined data ranges provided in a form of an array of arrays ([row, column, dataUnderCollection]).
|
393
|
-
*
|
394
|
-
* @private
|
395
|
-
* @param {Array} populationArgumentsList Array containing argument lists for the `populateFromArray` method - row, column and data for population.
|
396
|
-
* @returns {Array[]} Start and end coordinates of the merged cell range. (in a form of [rowIndex, columnIndex]).
|
397
|
-
*/
|
398
|
-
|
399
|
-
}, {
|
400
|
-
key: "getBulkCollectionDataRange",
|
401
|
-
value: function getBulkCollectionDataRange(populationArgumentsList) {
|
402
|
-
var start = [0, 0];
|
403
|
-
var end = [0, 0];
|
404
|
-
var mergedCellRow = null;
|
405
|
-
var mergedCellColumn = null;
|
406
|
-
var mergedCellData = null;
|
407
|
-
arrayEach(populationArgumentsList, function (mergedCellArguments) {
|
408
|
-
mergedCellRow = mergedCellArguments[0];
|
409
|
-
mergedCellColumn = mergedCellArguments[1];
|
410
|
-
mergedCellData = mergedCellArguments[2];
|
411
|
-
start[0] = Math.min(mergedCellRow, start[0]);
|
412
|
-
start[1] = Math.min(mergedCellColumn, start[1]);
|
413
|
-
end[0] = Math.max(mergedCellRow + mergedCellData.length - 1, end[0]);
|
414
|
-
end[1] = Math.max(mergedCellColumn + mergedCellData[0].length - 1, end[1]);
|
415
|
-
});
|
416
|
-
return [].concat(start, end);
|
417
|
-
}
|
418
333
|
/**
|
419
334
|
* Clears the merged cells from the merged cell container.
|
420
335
|
*/
|
421
|
-
|
422
336
|
}, {
|
423
337
|
key: "clearCollections",
|
424
338
|
value: function clearCollections() {
|
425
339
|
this.mergedCellsCollection.clear();
|
426
340
|
}
|
341
|
+
|
427
342
|
/**
|
428
343
|
* Returns `true` if a range is mergeable.
|
429
344
|
*
|
@@ -432,76 +347,70 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
432
347
|
* @param {boolean} [auto=false] `true` if triggered at initialization.
|
433
348
|
* @returns {boolean}
|
434
349
|
*/
|
435
|
-
|
436
350
|
}, {
|
437
351
|
key: "canMergeRange",
|
438
352
|
value: function canMergeRange(newMergedCellInfo) {
|
439
353
|
var auto = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
440
354
|
return auto ? true : this.validateSetting(newMergedCellInfo);
|
441
355
|
}
|
356
|
+
|
442
357
|
/**
|
443
358
|
* Merge or unmerge, based on last selected range.
|
444
359
|
*
|
445
360
|
* @private
|
446
361
|
*/
|
447
|
-
|
448
362
|
}, {
|
449
363
|
key: "toggleMergeOnSelection",
|
450
364
|
value: function toggleMergeOnSelection() {
|
451
365
|
var currentRange = this.hot.getSelectedRangeLast();
|
452
|
-
|
453
366
|
if (!currentRange) {
|
454
367
|
return;
|
455
368
|
}
|
456
|
-
|
457
369
|
currentRange.setDirection(this.hot.isRtl() ? 'NE-SW' : 'NW-SE');
|
458
370
|
var from = currentRange.from,
|
459
|
-
|
371
|
+
to = currentRange.to;
|
460
372
|
this.toggleMerge(currentRange);
|
461
373
|
this.hot.selectCell(from.row, from.col, to.row, to.col, false);
|
462
374
|
}
|
375
|
+
|
463
376
|
/**
|
464
377
|
* Merges the selection provided as a cell range.
|
465
378
|
*
|
466
379
|
* @param {CellRange} [cellRange] Selection cell range.
|
467
380
|
*/
|
468
|
-
|
469
381
|
}, {
|
470
382
|
key: "mergeSelection",
|
471
383
|
value: function mergeSelection() {
|
472
384
|
var cellRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.hot.getSelectedRangeLast();
|
473
|
-
|
474
385
|
if (!cellRange) {
|
475
386
|
return;
|
476
387
|
}
|
477
|
-
|
478
388
|
cellRange.setDirection(this.hot.isRtl() ? 'NE-SW' : 'NW-SE');
|
479
389
|
var from = cellRange.from,
|
480
|
-
|
390
|
+
to = cellRange.to;
|
481
391
|
this.unmergeRange(cellRange, true);
|
482
392
|
this.mergeRange(cellRange);
|
483
393
|
this.hot.selectCell(from.row, from.col, to.row, to.col, false);
|
484
394
|
}
|
395
|
+
|
485
396
|
/**
|
486
397
|
* Unmerges the selection provided as a cell range.
|
487
398
|
*
|
488
399
|
* @param {CellRange} [cellRange] Selection cell range.
|
489
400
|
*/
|
490
|
-
|
491
401
|
}, {
|
492
402
|
key: "unmergeSelection",
|
493
403
|
value: function unmergeSelection() {
|
494
404
|
var cellRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.hot.getSelectedRangeLast();
|
495
|
-
|
496
405
|
if (!cellRange) {
|
497
406
|
return;
|
498
407
|
}
|
499
|
-
|
500
408
|
var from = cellRange.from,
|
501
|
-
|
409
|
+
to = cellRange.to;
|
502
410
|
this.unmergeRange(cellRange, true);
|
503
411
|
this.hot.selectCell(from.row, from.col, to.row, to.col, false);
|
504
412
|
}
|
413
|
+
|
505
414
|
/**
|
506
415
|
* Merges cells in the provided cell range.
|
507
416
|
*
|
@@ -513,12 +422,10 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
513
422
|
* @fires Hooks#beforeMergeCells
|
514
423
|
* @fires Hooks#afterMergeCells
|
515
424
|
*/
|
516
|
-
|
517
425
|
}, {
|
518
426
|
key: "mergeRange",
|
519
427
|
value: function mergeRange(cellRange) {
|
520
428
|
var _this4 = this;
|
521
|
-
|
522
429
|
var auto = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
523
430
|
var preventPopulation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
524
431
|
var topStart = cellRange.getTopStartCorner();
|
@@ -531,45 +438,38 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
531
438
|
};
|
532
439
|
var clearedData = [];
|
533
440
|
var populationInfo = null;
|
534
|
-
|
535
441
|
if (!this.canMergeRange(mergeParent, auto)) {
|
536
442
|
return false;
|
537
443
|
}
|
538
|
-
|
539
444
|
this.hot.runHooks('beforeMergeCells', cellRange, auto);
|
540
445
|
rangeEach(0, mergeParent.rowspan - 1, function (i) {
|
541
446
|
rangeEach(0, mergeParent.colspan - 1, function (j) {
|
542
447
|
var clearedValue = null;
|
543
|
-
|
544
448
|
if (!clearedData[i]) {
|
545
449
|
clearedData[i] = [];
|
546
450
|
}
|
547
|
-
|
548
451
|
if (i === 0 && j === 0) {
|
549
|
-
clearedValue = _this4.hot.
|
452
|
+
clearedValue = _this4.hot.getSourceDataAtCell(_this4.hot.toPhysicalRow(mergeParent.row), _this4.hot.toPhysicalColumn(mergeParent.col));
|
550
453
|
} else {
|
551
454
|
_this4.hot.setCellMeta(mergeParent.row + i, mergeParent.col + j, 'hidden', true);
|
552
455
|
}
|
553
|
-
|
554
456
|
clearedData[i][j] = clearedValue;
|
555
457
|
});
|
556
458
|
});
|
557
459
|
this.hot.setCellMeta(mergeParent.row, mergeParent.col, 'spanned', true);
|
558
460
|
var mergedCellAdded = this.mergedCellsCollection.add(mergeParent);
|
559
|
-
|
560
461
|
if (mergedCellAdded) {
|
561
462
|
if (preventPopulation) {
|
562
463
|
populationInfo = [mergeParent.row, mergeParent.col, clearedData];
|
563
464
|
} else {
|
564
465
|
this.hot.populateFromArray(mergeParent.row, mergeParent.col, clearedData, void 0, void 0, this.pluginName);
|
565
466
|
}
|
566
|
-
|
567
467
|
this.hot.runHooks('afterMergeCells', cellRange, mergeParent, auto);
|
568
468
|
return populationInfo;
|
569
469
|
}
|
570
|
-
|
571
470
|
return true;
|
572
471
|
}
|
472
|
+
|
573
473
|
/**
|
574
474
|
* Unmerges the selection provided as a cell range. If no cell range is provided, it uses the current selection.
|
575
475
|
*
|
@@ -580,53 +480,47 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
580
480
|
* @fires Hooks#beforeUnmergeCells
|
581
481
|
* @fires Hooks#afterUnmergeCells
|
582
482
|
*/
|
583
|
-
|
584
483
|
}, {
|
585
484
|
key: "unmergeRange",
|
586
485
|
value: function unmergeRange(cellRange) {
|
587
486
|
var _this5 = this;
|
588
|
-
|
589
487
|
var auto = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
590
488
|
var mergedCells = this.mergedCellsCollection.getWithinRange(cellRange);
|
591
|
-
|
592
489
|
if (!mergedCells) {
|
593
490
|
return;
|
594
491
|
}
|
595
|
-
|
596
492
|
this.hot.runHooks('beforeUnmergeCells', cellRange, auto);
|
597
493
|
arrayEach(mergedCells, function (currentCollection) {
|
598
494
|
_this5.mergedCellsCollection.remove(currentCollection.row, currentCollection.col);
|
599
|
-
|
600
495
|
rangeEach(0, currentCollection.rowspan - 1, function (i) {
|
601
496
|
rangeEach(0, currentCollection.colspan - 1, function (j) {
|
602
497
|
_this5.hot.removeCellMeta(currentCollection.row + i, currentCollection.col + j, 'hidden');
|
603
498
|
});
|
604
499
|
});
|
605
|
-
|
606
500
|
_this5.hot.removeCellMeta(currentCollection.row, currentCollection.col, 'spanned');
|
607
501
|
});
|
608
502
|
this.hot.runHooks('afterUnmergeCells', cellRange, auto);
|
609
503
|
this.hot.render();
|
610
504
|
}
|
505
|
+
|
611
506
|
/**
|
612
507
|
* Merges or unmerges, based on the cell range provided as `cellRange`.
|
613
508
|
*
|
614
509
|
* @private
|
615
510
|
* @param {CellRange} cellRange The cell range to merge or unmerged.
|
616
511
|
*/
|
617
|
-
|
618
512
|
}, {
|
619
513
|
key: "toggleMerge",
|
620
514
|
value: function toggleMerge(cellRange) {
|
621
515
|
var mergedCell = this.mergedCellsCollection.get(cellRange.from.row, cellRange.from.col);
|
622
516
|
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;
|
623
|
-
|
624
517
|
if (mergedCellCoversWholeRange) {
|
625
518
|
this.unmergeRange(cellRange);
|
626
519
|
} else {
|
627
520
|
this.mergeSelection(cellRange);
|
628
521
|
}
|
629
522
|
}
|
523
|
+
|
630
524
|
/**
|
631
525
|
* Merges the specified range.
|
632
526
|
*
|
@@ -637,16 +531,14 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
637
531
|
* @fires Hooks#beforeMergeCells
|
638
532
|
* @fires Hooks#afterMergeCells
|
639
533
|
*/
|
640
|
-
|
641
534
|
}, {
|
642
535
|
key: "merge",
|
643
536
|
value: function merge(startRow, startColumn, endRow, endColumn) {
|
644
537
|
var start = this.hot._createCellCoords(startRow, startColumn);
|
645
|
-
|
646
538
|
var end = this.hot._createCellCoords(endRow, endColumn);
|
647
|
-
|
648
539
|
this.mergeRange(this.hot._createCellRange(start, start, end));
|
649
540
|
}
|
541
|
+
|
650
542
|
/**
|
651
543
|
* Unmerges the merged cell in the provided range.
|
652
544
|
*
|
@@ -657,46 +549,41 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
657
549
|
* @fires Hooks#beforeUnmergeCells
|
658
550
|
* @fires Hooks#afterUnmergeCells
|
659
551
|
*/
|
660
|
-
|
661
552
|
}, {
|
662
553
|
key: "unmerge",
|
663
554
|
value: function unmerge(startRow, startColumn, endRow, endColumn) {
|
664
555
|
var start = this.hot._createCellCoords(startRow, startColumn);
|
665
|
-
|
666
556
|
var end = this.hot._createCellCoords(endRow, endColumn);
|
667
|
-
|
668
557
|
this.unmergeRange(this.hot._createCellRange(start, start, end));
|
669
558
|
}
|
559
|
+
|
670
560
|
/**
|
671
561
|
* `afterInit` hook callback.
|
672
562
|
*
|
673
563
|
* @private
|
674
564
|
*/
|
675
|
-
|
676
565
|
}, {
|
677
566
|
key: "onAfterInit",
|
678
567
|
value: function onAfterInit() {
|
679
568
|
this.generateFromSettings(this.hot.getSettings()[PLUGIN_KEY]);
|
680
569
|
this.hot.render();
|
681
570
|
}
|
571
|
+
|
682
572
|
/**
|
683
573
|
* Register shortcuts responsible for toggling a merge.
|
684
574
|
*
|
685
575
|
* @private
|
686
576
|
*/
|
687
|
-
|
688
577
|
}, {
|
689
578
|
key: "registerShortcuts",
|
690
579
|
value: function registerShortcuts() {
|
691
580
|
var _this6 = this;
|
692
|
-
|
693
581
|
var shortcutManager = this.hot.getShortcutManager();
|
694
582
|
var gridContext = shortcutManager.getContext('grid');
|
695
583
|
gridContext.addShortcut({
|
696
584
|
keys: [['Control', 'm']],
|
697
585
|
callback: function callback() {
|
698
586
|
_this6.toggleMerge(_this6.hot.getSelectedRangeLast());
|
699
|
-
|
700
587
|
_this6.hot.render();
|
701
588
|
},
|
702
589
|
runOnlyIf: function runOnlyIf(event) {
|
@@ -706,12 +593,12 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
706
593
|
group: SHORTCUTS_GROUP
|
707
594
|
});
|
708
595
|
}
|
596
|
+
|
709
597
|
/**
|
710
598
|
* Unregister shortcuts responsible for toggling a merge.
|
711
599
|
*
|
712
600
|
* @private
|
713
601
|
*/
|
714
|
-
|
715
602
|
}, {
|
716
603
|
key: "unregisterShortcuts",
|
717
604
|
value: function unregisterShortcuts() {
|
@@ -719,6 +606,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
719
606
|
var gridContext = shortcutManager.getContext('grid');
|
720
607
|
gridContext.removeShortcutsByGroup(SHORTCUTS_GROUP);
|
721
608
|
}
|
609
|
+
|
722
610
|
/**
|
723
611
|
* Modifies the information on whether the current selection contains multiple cells. The `afterIsMultipleSelection` hook callback.
|
724
612
|
*
|
@@ -726,30 +614,27 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
726
614
|
* @param {boolean} isMultiple Determines whether the current selection contains multiple cells.
|
727
615
|
* @returns {boolean}
|
728
616
|
*/
|
729
|
-
|
730
617
|
}, {
|
731
618
|
key: "onAfterIsMultipleSelection",
|
732
619
|
value: function onAfterIsMultipleSelection(isMultiple) {
|
733
620
|
if (isMultiple) {
|
734
621
|
var mergedCells = this.mergedCellsCollection.mergedCells;
|
735
622
|
var selectionRange = this.hot.getSelectedRangeLast();
|
736
|
-
|
737
623
|
for (var group = 0; group < mergedCells.length; group += 1) {
|
738
624
|
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) {
|
739
625
|
return false;
|
740
626
|
}
|
741
627
|
}
|
742
628
|
}
|
743
|
-
|
744
629
|
return isMultiple;
|
745
630
|
}
|
631
|
+
|
746
632
|
/**
|
747
633
|
* `modifyTransformStart` hook callback.
|
748
634
|
*
|
749
635
|
* @private
|
750
636
|
* @param {object} delta The transformation delta.
|
751
637
|
*/
|
752
|
-
|
753
638
|
}, {
|
754
639
|
key: "onModifyTransformStart",
|
755
640
|
value: function onModifyTransformStart(delta) {
|
@@ -760,30 +645,22 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
760
645
|
col: delta.col
|
761
646
|
};
|
762
647
|
var nextPosition = null;
|
763
|
-
|
764
648
|
var currentPosition = this.hot._createCellCoords(currentlySelectedRange.highlight.row, currentlySelectedRange.highlight.col);
|
765
|
-
|
766
649
|
var mergedParent = this.mergedCellsCollection.get(currentPosition.row, currentPosition.col);
|
767
|
-
|
768
650
|
if (!priv.lastDesiredCoords) {
|
769
651
|
priv.lastDesiredCoords = this.hot._createCellCoords(null, null);
|
770
652
|
}
|
771
|
-
|
772
653
|
if (mergedParent) {
|
773
654
|
// only merge selected
|
774
655
|
var mergeTopLeft = this.hot._createCellCoords(mergedParent.row, mergedParent.col);
|
775
|
-
|
776
656
|
var mergeBottomRight = this.hot._createCellCoords(mergedParent.row + mergedParent.rowspan - 1, mergedParent.col + mergedParent.colspan - 1);
|
777
|
-
|
778
657
|
var mergeRange = this.hot._createCellRange(mergeTopLeft, mergeTopLeft, mergeBottomRight);
|
779
|
-
|
780
658
|
if (!mergeRange.includes(priv.lastDesiredCoords)) {
|
781
659
|
priv.lastDesiredCoords = this.hot._createCellCoords(null, null); // reset outdated version of lastDesiredCoords
|
782
660
|
}
|
783
661
|
|
784
662
|
newDelta.row = priv.lastDesiredCoords.row ? priv.lastDesiredCoords.row - currentPosition.row : newDelta.row;
|
785
663
|
newDelta.col = priv.lastDesiredCoords.col ? priv.lastDesiredCoords.col - currentPosition.col : newDelta.col;
|
786
|
-
|
787
664
|
if (delta.row > 0) {
|
788
665
|
// moving down
|
789
666
|
newDelta.row = mergedParent.row + mergedParent.rowspan - 1 - currentPosition.row + delta.row;
|
@@ -791,7 +668,6 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
791
668
|
// moving up
|
792
669
|
newDelta.row = currentPosition.row - mergedParent.row + delta.row;
|
793
670
|
}
|
794
|
-
|
795
671
|
if (delta.col > 0) {
|
796
672
|
// moving right
|
797
673
|
newDelta.col = mergedParent.col + mergedParent.colspan - 1 - currentPosition.col + delta.col;
|
@@ -800,10 +676,8 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
800
676
|
newDelta.col = currentPosition.col - mergedParent.col + delta.col;
|
801
677
|
}
|
802
678
|
}
|
803
|
-
|
804
679
|
nextPosition = this.hot._createCellCoords(currentlySelectedRange.highlight.row + newDelta.row, currentlySelectedRange.highlight.col + newDelta.col);
|
805
680
|
var nextPositionMergedCell = this.mergedCellsCollection.get(nextPosition.row, nextPosition.col);
|
806
|
-
|
807
681
|
if (nextPositionMergedCell) {
|
808
682
|
// skipping the invisible cells in the merge range
|
809
683
|
var firstRenderableCoords = this.mergedCellsCollection.getFirstRenderableCoords(nextPositionMergedCell.row, nextPositionMergedCell.col);
|
@@ -813,33 +687,29 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
813
687
|
col: firstRenderableCoords.col - currentPosition.col
|
814
688
|
};
|
815
689
|
}
|
816
|
-
|
817
690
|
if (newDelta.row !== 0) {
|
818
691
|
delta.row = newDelta.row;
|
819
692
|
}
|
820
|
-
|
821
693
|
if (newDelta.col !== 0) {
|
822
694
|
delta.col = newDelta.col;
|
823
695
|
}
|
824
696
|
}
|
697
|
+
|
825
698
|
/**
|
826
699
|
* `modifyTransformEnd` hook callback. Needed to handle "jumping over" merged merged cells, while selecting.
|
827
700
|
*
|
828
701
|
* @private
|
829
702
|
* @param {object} delta The transformation delta.
|
830
703
|
*/
|
831
|
-
|
832
704
|
}, {
|
833
705
|
key: "onModifyTransformEnd",
|
834
706
|
value: function onModifyTransformEnd(delta) {
|
835
707
|
var _this7 = this;
|
836
|
-
|
837
708
|
var currentSelectionRange = this.hot.getSelectedRangeLast();
|
838
709
|
var newDelta = clone(delta);
|
839
710
|
var newSelectionRange = this.selectionCalculations.getUpdatedSelectionRange(currentSelectionRange, delta);
|
840
711
|
var tempDelta = clone(newDelta);
|
841
712
|
var mergedCellsWithinRange = this.mergedCellsCollection.getWithinRange(newSelectionRange, true);
|
842
|
-
|
843
713
|
do {
|
844
714
|
tempDelta = clone(newDelta);
|
845
715
|
this.selectionCalculations.getUpdatedSelectionRange(currentSelectionRange, newDelta);
|
@@ -847,10 +717,10 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
847
717
|
_this7.selectionCalculations.snapDelta(newDelta, currentSelectionRange, mergedCell);
|
848
718
|
});
|
849
719
|
} while (newDelta.row !== tempDelta.row || newDelta.col !== tempDelta.col);
|
850
|
-
|
851
720
|
delta.row = newDelta.row;
|
852
721
|
delta.col = newDelta.col;
|
853
722
|
}
|
723
|
+
|
854
724
|
/**
|
855
725
|
* `modifyGetCellCoords` hook callback. Swaps the `getCell` coords with the merged parent coords.
|
856
726
|
*
|
@@ -859,35 +729,33 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
859
729
|
* @param {number} column Visual column index.
|
860
730
|
* @returns {Array|undefined} Visual coordinates of the merge.
|
861
731
|
*/
|
862
|
-
|
863
732
|
}, {
|
864
733
|
key: "onModifyGetCellCoords",
|
865
734
|
value: function onModifyGetCellCoords(row, column) {
|
866
735
|
if (row < 0 || column < 0) {
|
867
736
|
return;
|
868
737
|
}
|
869
|
-
|
870
738
|
var mergeParent = this.mergedCellsCollection.get(row, column);
|
871
|
-
|
872
739
|
if (!mergeParent) {
|
873
740
|
return;
|
874
741
|
}
|
875
|
-
|
876
742
|
var mergeRow = mergeParent.row,
|
877
|
-
|
878
|
-
|
879
|
-
|
880
|
-
return [
|
881
|
-
|
743
|
+
mergeColumn = mergeParent.col,
|
744
|
+
colspan = mergeParent.colspan,
|
745
|
+
rowspan = mergeParent.rowspan;
|
746
|
+
return [
|
747
|
+
// Most top-left merged cell coords.
|
748
|
+
mergeRow, mergeColumn,
|
749
|
+
// Most bottom-right merged cell coords.
|
882
750
|
mergeRow + rowspan - 1, mergeColumn + colspan - 1];
|
883
751
|
}
|
752
|
+
|
884
753
|
/**
|
885
754
|
* `afterContextMenuDefaultOptions` hook callback.
|
886
755
|
*
|
887
756
|
* @private
|
888
757
|
* @param {object} defaultOptions The default context menu options.
|
889
758
|
*/
|
890
|
-
|
891
759
|
}, {
|
892
760
|
key: "addMergeActionsToContextMenu",
|
893
761
|
value: function addMergeActionsToContextMenu(defaultOptions) {
|
@@ -895,6 +763,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
895
763
|
name: '---------'
|
896
764
|
}, toggleMergeItem(this));
|
897
765
|
}
|
766
|
+
|
898
767
|
/**
|
899
768
|
* `afterRenderer` hook callback.
|
900
769
|
*
|
@@ -903,46 +772,41 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
903
772
|
* @param {number} row Row index.
|
904
773
|
* @param {number} col Visual column index.
|
905
774
|
*/
|
906
|
-
|
907
775
|
}, {
|
908
776
|
key: "onAfterRenderer",
|
909
777
|
value: function onAfterRenderer(TD, row, col) {
|
910
|
-
var mergedCell = this.mergedCellsCollection.get(row, col);
|
911
|
-
|
778
|
+
var mergedCell = this.mergedCellsCollection.get(row, col);
|
779
|
+
// We shouldn't override data in the collection.
|
912
780
|
var mergedCellCopy = isObject(mergedCell) ? clone(mergedCell) : void 0;
|
913
|
-
|
914
781
|
if (isObject(mergedCellCopy)) {
|
915
|
-
var _this$
|
916
|
-
|
917
|
-
|
782
|
+
var _this$hot = this.hot,
|
783
|
+
rowMapper = _this$hot.rowIndexMapper,
|
784
|
+
columnMapper = _this$hot.columnIndexMapper;
|
918
785
|
var mergeRow = mergedCellCopy.row,
|
919
|
-
|
920
|
-
|
921
|
-
|
922
|
-
|
786
|
+
mergeColumn = mergedCellCopy.col,
|
787
|
+
colspan = mergedCellCopy.colspan,
|
788
|
+
rowspan = mergedCellCopy.rowspan;
|
923
789
|
var _this$translateMerged = this.translateMergedCellToRenderable(mergeRow, rowspan, mergeColumn, colspan),
|
924
|
-
|
925
|
-
|
926
|
-
|
927
|
-
|
790
|
+
_this$translateMerged2 = _slicedToArray(_this$translateMerged, 2),
|
791
|
+
lastMergedRowIndex = _this$translateMerged2[0],
|
792
|
+
lastMergedColumnIndex = _this$translateMerged2[1];
|
928
793
|
var renderedRowIndex = rowMapper.getRenderableFromVisualIndex(row);
|
929
794
|
var renderedColumnIndex = columnMapper.getRenderableFromVisualIndex(col);
|
930
795
|
var maxRowSpan = lastMergedRowIndex - renderedRowIndex + 1; // Number of rendered columns.
|
931
|
-
|
932
796
|
var maxColSpan = lastMergedColumnIndex - renderedColumnIndex + 1; // Number of rendered columns.
|
933
|
-
// We just try to determine some values basing on the actual number of rendered indexes (some columns may be hidden).
|
934
|
-
|
935
|
-
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).
|
936
|
-
|
937
|
-
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.
|
938
|
-
|
939
|
-
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.
|
940
797
|
|
798
|
+
// We just try to determine some values basing on the actual number of rendered indexes (some columns may be hidden).
|
799
|
+
mergedCellCopy.row = rowMapper.getNearestNotHiddenIndex(mergedCellCopy.row, 1);
|
800
|
+
// We just try to determine some values basing on the actual number of rendered indexes (some columns may be hidden).
|
801
|
+
mergedCellCopy.col = columnMapper.getNearestNotHiddenIndex(mergedCellCopy.col, 1);
|
802
|
+
// The `rowSpan` property for a `TD` element should be at most equal to number of rendered rows in the merge area.
|
803
|
+
mergedCellCopy.rowspan = Math.min(mergedCellCopy.rowspan, maxRowSpan);
|
804
|
+
// The `colSpan` property for a `TD` element should be at most equal to number of rendered columns in the merge area.
|
941
805
|
mergedCellCopy.colspan = Math.min(mergedCellCopy.colspan, maxColSpan);
|
942
806
|
}
|
943
|
-
|
944
807
|
applySpanProperties(TD, mergedCellCopy, row, col);
|
945
808
|
}
|
809
|
+
|
946
810
|
/**
|
947
811
|
* `beforeSetRangeStart` and `beforeSetRangeStartOnly` hook callback.
|
948
812
|
* A selection within merge area should be rewritten to the start of merge area.
|
@@ -950,7 +814,6 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
950
814
|
* @private
|
951
815
|
* @param {object} coords Cell coords.
|
952
816
|
*/
|
953
|
-
|
954
817
|
}, {
|
955
818
|
key: "onBeforeSetRangeStart",
|
956
819
|
value: function onBeforeSetRangeStart(coords) {
|
@@ -966,6 +829,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
966
829
|
coords.col = _ref[1];
|
967
830
|
}
|
968
831
|
}
|
832
|
+
|
969
833
|
/**
|
970
834
|
* `beforeSetRangeEnd` hook callback.
|
971
835
|
* While selecting cells with keyboard or mouse, make sure that rectangular area is expanded to the extent of the merged cell.
|
@@ -975,27 +839,21 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
975
839
|
* @private
|
976
840
|
* @param {object} coords Cell coords.
|
977
841
|
*/
|
978
|
-
|
979
842
|
}, {
|
980
843
|
key: "onBeforeSetRangeEnd",
|
981
844
|
value: function onBeforeSetRangeEnd(coords) {
|
982
845
|
var selRange = this.hot.getSelectedRangeLast();
|
983
846
|
selRange.highlight = this.hot._createCellCoords(selRange.highlight.row, selRange.highlight.col); // clone in case we will modify its reference
|
984
|
-
|
985
847
|
selRange.to = coords;
|
986
848
|
var rangeExpanded = false;
|
987
|
-
|
988
849
|
if (this.hot.selection.isSelectedByColumnHeader() || this.hot.selection.isSelectedByRowHeader()) {
|
989
850
|
return;
|
990
851
|
}
|
991
|
-
|
992
852
|
do {
|
993
853
|
rangeExpanded = false;
|
994
|
-
|
995
854
|
for (var i = 0; i < this.mergedCellsCollection.mergedCells.length; i += 1) {
|
996
855
|
var cellInfo = this.mergedCellsCollection.mergedCells[i];
|
997
856
|
var mergedCellRange = cellInfo.getRange();
|
998
|
-
|
999
857
|
if (selRange.expandByRange(mergedCellRange)) {
|
1000
858
|
coords.row = selRange.to.row;
|
1001
859
|
coords.col = selRange.to.col;
|
@@ -1004,6 +862,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1004
862
|
}
|
1005
863
|
} while (rangeExpanded);
|
1006
864
|
}
|
865
|
+
|
1007
866
|
/**
|
1008
867
|
* The `afterGetCellMeta` hook callback.
|
1009
868
|
*
|
@@ -1012,12 +871,10 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1012
871
|
* @param {number} col Column index.
|
1013
872
|
* @param {object} cellProperties The cell properties object.
|
1014
873
|
*/
|
1015
|
-
|
1016
874
|
}, {
|
1017
875
|
key: "onAfterGetCellMeta",
|
1018
876
|
value: function onAfterGetCellMeta(row, col, cellProperties) {
|
1019
877
|
var mergeParent = this.mergedCellsCollection.get(row, col);
|
1020
|
-
|
1021
878
|
if (mergeParent) {
|
1022
879
|
if (mergeParent.row !== row || mergeParent.col !== col) {
|
1023
880
|
cellProperties.copyable = false;
|
@@ -1027,13 +884,13 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1027
884
|
}
|
1028
885
|
}
|
1029
886
|
}
|
887
|
+
|
1030
888
|
/**
|
1031
889
|
* `afterViewportRowCalculatorOverride` hook callback.
|
1032
890
|
*
|
1033
891
|
* @private
|
1034
892
|
* @param {object} calc The row calculator object.
|
1035
893
|
*/
|
1036
|
-
|
1037
894
|
}, {
|
1038
895
|
key: "onAfterViewportRowCalculatorOverride",
|
1039
896
|
value: function onAfterViewportRowCalculatorOverride(calc) {
|
@@ -1041,6 +898,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1041
898
|
this.modifyViewportRowStart(calc, nrOfColumns);
|
1042
899
|
this.modifyViewportRowEnd(calc, nrOfColumns);
|
1043
900
|
}
|
901
|
+
|
1044
902
|
/**
|
1045
903
|
* Modify viewport start when needed. We extend viewport when merged cells aren't fully visible.
|
1046
904
|
*
|
@@ -1048,23 +906,21 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1048
906
|
* @param {object} calc The row calculator object.
|
1049
907
|
* @param {number} nrOfColumns Number of visual columns.
|
1050
908
|
*/
|
1051
|
-
|
1052
909
|
}, {
|
1053
910
|
key: "modifyViewportRowStart",
|
1054
911
|
value: function modifyViewportRowStart(calc, nrOfColumns) {
|
1055
912
|
var rowMapper = this.hot.rowIndexMapper;
|
1056
913
|
var visualStartRow = rowMapper.getVisualFromRenderableIndex(calc.startRow);
|
1057
|
-
|
1058
914
|
for (var visualColumnIndex = 0; visualColumnIndex < nrOfColumns; visualColumnIndex += 1) {
|
1059
915
|
var mergeParentForViewportStart = this.mergedCellsCollection.get(visualStartRow, visualColumnIndex);
|
1060
|
-
|
1061
916
|
if (isObject(mergeParentForViewportStart)) {
|
1062
|
-
var renderableIndexAtMergeStart = rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(mergeParentForViewportStart.row, 1));
|
917
|
+
var renderableIndexAtMergeStart = rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(mergeParentForViewportStart.row, 1));
|
1063
918
|
|
919
|
+
// Merge start is out of the viewport (i.e. when we scrolled to the bottom and we can see just part of a merge).
|
1064
920
|
if (renderableIndexAtMergeStart < calc.startRow) {
|
1065
921
|
// We extend viewport when some rows have been merged.
|
1066
|
-
calc.startRow = renderableIndexAtMergeStart;
|
1067
|
-
|
922
|
+
calc.startRow = renderableIndexAtMergeStart;
|
923
|
+
// We are looking for next merges inside already extended viewport (starting again from row equal to 0).
|
1068
924
|
this.modifyViewportRowStart(calc, nrOfColumns); // recursively search upwards
|
1069
925
|
|
1070
926
|
return; // Finish the current loop. Everything will be checked from the beginning by above recursion.
|
@@ -1072,6 +928,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1072
928
|
}
|
1073
929
|
}
|
1074
930
|
}
|
931
|
+
|
1075
932
|
/**
|
1076
933
|
* Modify viewport end when needed. We extend viewport when merged cells aren't fully visible.
|
1077
934
|
*
|
@@ -1079,24 +936,22 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1079
936
|
* @param {object} calc The row calculator object.
|
1080
937
|
* @param {number} nrOfColumns Number of visual columns.
|
1081
938
|
*/
|
1082
|
-
|
1083
939
|
}, {
|
1084
940
|
key: "modifyViewportRowEnd",
|
1085
941
|
value: function modifyViewportRowEnd(calc, nrOfColumns) {
|
1086
942
|
var rowMapper = this.hot.rowIndexMapper;
|
1087
943
|
var visualEndRow = rowMapper.getVisualFromRenderableIndex(calc.endRow);
|
1088
|
-
|
1089
944
|
for (var visualColumnIndex = 0; visualColumnIndex < nrOfColumns; visualColumnIndex += 1) {
|
1090
945
|
var mergeParentForViewportEnd = this.mergedCellsCollection.get(visualEndRow, visualColumnIndex);
|
1091
|
-
|
1092
946
|
if (isObject(mergeParentForViewportEnd)) {
|
1093
947
|
var mergeEnd = mergeParentForViewportEnd.row + mergeParentForViewportEnd.rowspan - 1;
|
1094
|
-
var renderableIndexAtMergeEnd = rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(mergeEnd, -1));
|
948
|
+
var renderableIndexAtMergeEnd = rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(mergeEnd, -1));
|
1095
949
|
|
950
|
+
// Merge end is out of the viewport.
|
1096
951
|
if (renderableIndexAtMergeEnd > calc.endRow) {
|
1097
952
|
// We extend the viewport when some rows have been merged.
|
1098
|
-
calc.endRow = renderableIndexAtMergeEnd;
|
1099
|
-
|
953
|
+
calc.endRow = renderableIndexAtMergeEnd;
|
954
|
+
// We are looking for next merges inside already extended viewport (starting again from row equal to 0).
|
1100
955
|
this.modifyViewportRowEnd(calc, nrOfColumns); // recursively search upwards
|
1101
956
|
|
1102
957
|
return; // Finish the current loop. Everything will be checked from the beginning by above recursion.
|
@@ -1104,13 +959,13 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1104
959
|
}
|
1105
960
|
}
|
1106
961
|
}
|
962
|
+
|
1107
963
|
/**
|
1108
964
|
* `afterViewportColumnCalculatorOverride` hook callback.
|
1109
965
|
*
|
1110
966
|
* @private
|
1111
967
|
* @param {object} calc The column calculator object.
|
1112
968
|
*/
|
1113
|
-
|
1114
969
|
}, {
|
1115
970
|
key: "onAfterViewportColumnCalculatorOverride",
|
1116
971
|
value: function onAfterViewportColumnCalculatorOverride(calc) {
|
@@ -1118,6 +973,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1118
973
|
this.modifyViewportColumnStart(calc, nrOfRows);
|
1119
974
|
this.modifyViewportColumnEnd(calc, nrOfRows);
|
1120
975
|
}
|
976
|
+
|
1121
977
|
/**
|
1122
978
|
* Modify viewport start when needed. We extend viewport when merged cells aren't fully visible.
|
1123
979
|
*
|
@@ -1125,23 +981,21 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1125
981
|
* @param {object} calc The column calculator object.
|
1126
982
|
* @param {number} nrOfRows Number of visual rows.
|
1127
983
|
*/
|
1128
|
-
|
1129
984
|
}, {
|
1130
985
|
key: "modifyViewportColumnStart",
|
1131
986
|
value: function modifyViewportColumnStart(calc, nrOfRows) {
|
1132
987
|
var columnMapper = this.hot.columnIndexMapper;
|
1133
988
|
var visualStartCol = columnMapper.getVisualFromRenderableIndex(calc.startColumn);
|
1134
|
-
|
1135
989
|
for (var visualRowIndex = 0; visualRowIndex < nrOfRows; visualRowIndex += 1) {
|
1136
990
|
var mergeParentForViewportStart = this.mergedCellsCollection.get(visualRowIndex, visualStartCol);
|
1137
|
-
|
1138
991
|
if (isObject(mergeParentForViewportStart)) {
|
1139
|
-
var renderableIndexAtMergeStart = columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(mergeParentForViewportStart.col, 1));
|
992
|
+
var renderableIndexAtMergeStart = columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(mergeParentForViewportStart.col, 1));
|
1140
993
|
|
994
|
+
// Merge start is out of the viewport (i.e. when we scrolled to the right and we can see just part of a merge).
|
1141
995
|
if (renderableIndexAtMergeStart < calc.startColumn) {
|
1142
996
|
// We extend viewport when some columns have been merged.
|
1143
|
-
calc.startColumn = renderableIndexAtMergeStart;
|
1144
|
-
|
997
|
+
calc.startColumn = renderableIndexAtMergeStart;
|
998
|
+
// We are looking for next merges inside already extended viewport (starting again from column equal to 0).
|
1145
999
|
this.modifyViewportColumnStart(calc, nrOfRows); // recursively search upwards
|
1146
1000
|
|
1147
1001
|
return; // Finish the current loop. Everything will be checked from the beginning by above recursion.
|
@@ -1149,6 +1003,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1149
1003
|
}
|
1150
1004
|
}
|
1151
1005
|
}
|
1006
|
+
|
1152
1007
|
/**
|
1153
1008
|
* Modify viewport end when needed. We extend viewport when merged cells aren't fully visible.
|
1154
1009
|
*
|
@@ -1156,24 +1011,22 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1156
1011
|
* @param {object} calc The column calculator object.
|
1157
1012
|
* @param {number} nrOfRows Number of visual rows.
|
1158
1013
|
*/
|
1159
|
-
|
1160
1014
|
}, {
|
1161
1015
|
key: "modifyViewportColumnEnd",
|
1162
1016
|
value: function modifyViewportColumnEnd(calc, nrOfRows) {
|
1163
1017
|
var columnMapper = this.hot.columnIndexMapper;
|
1164
1018
|
var visualEndCol = columnMapper.getVisualFromRenderableIndex(calc.endColumn);
|
1165
|
-
|
1166
1019
|
for (var visualRowIndex = 0; visualRowIndex < nrOfRows; visualRowIndex += 1) {
|
1167
1020
|
var mergeParentForViewportEnd = this.mergedCellsCollection.get(visualRowIndex, visualEndCol);
|
1168
|
-
|
1169
1021
|
if (isObject(mergeParentForViewportEnd)) {
|
1170
1022
|
var mergeEnd = mergeParentForViewportEnd.col + mergeParentForViewportEnd.colspan - 1;
|
1171
|
-
var renderableIndexAtMergeEnd = columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(mergeEnd, -1));
|
1023
|
+
var renderableIndexAtMergeEnd = columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(mergeEnd, -1));
|
1172
1024
|
|
1025
|
+
// Merge end is out of the viewport.
|
1173
1026
|
if (renderableIndexAtMergeEnd > calc.endColumn) {
|
1174
1027
|
// We extend the viewport when some columns have been merged.
|
1175
|
-
calc.endColumn = renderableIndexAtMergeEnd;
|
1176
|
-
|
1028
|
+
calc.endColumn = renderableIndexAtMergeEnd;
|
1029
|
+
// We are looking for next merges inside already extended viewport (starting again from column equal to 0).
|
1177
1030
|
this.modifyViewportColumnEnd(calc, nrOfRows); // recursively search upwards
|
1178
1031
|
|
1179
1032
|
return; // Finish the current loop. Everything will be checked from the beginning by above recursion.
|
@@ -1181,6 +1034,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1181
1034
|
}
|
1182
1035
|
}
|
1183
1036
|
}
|
1037
|
+
|
1184
1038
|
/**
|
1185
1039
|
* Translates merged cell coordinates to renderable indexes.
|
1186
1040
|
*
|
@@ -1197,32 +1051,29 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1197
1051
|
* index position.
|
1198
1052
|
* @returns {number[]}
|
1199
1053
|
*/
|
1200
|
-
|
1201
1054
|
}, {
|
1202
1055
|
key: "translateMergedCellToRenderable",
|
1203
1056
|
value: function translateMergedCellToRenderable(parentRow, rowspan, parentColumn, colspan) {
|
1204
|
-
var _this$
|
1205
|
-
|
1206
|
-
|
1057
|
+
var _this$hot2 = this.hot,
|
1058
|
+
rowMapper = _this$hot2.rowIndexMapper,
|
1059
|
+
columnMapper = _this$hot2.columnIndexMapper;
|
1207
1060
|
var firstNonHiddenRow;
|
1208
1061
|
var firstNonHiddenColumn;
|
1209
|
-
|
1210
1062
|
if (rowspan === 0) {
|
1211
1063
|
firstNonHiddenRow = rowMapper.getNearestNotHiddenIndex(parentRow, 1);
|
1212
1064
|
} else {
|
1213
1065
|
firstNonHiddenRow = rowMapper.getNearestNotHiddenIndex(parentRow + rowspan - 1, -1);
|
1214
1066
|
}
|
1215
|
-
|
1216
1067
|
if (colspan === 0) {
|
1217
1068
|
firstNonHiddenColumn = columnMapper.getNearestNotHiddenIndex(parentColumn, 1);
|
1218
1069
|
} else {
|
1219
1070
|
firstNonHiddenColumn = columnMapper.getNearestNotHiddenIndex(parentColumn + colspan - 1, -1);
|
1220
1071
|
}
|
1221
|
-
|
1222
1072
|
var renderableRow = parentRow >= 0 ? rowMapper.getRenderableFromVisualIndex(firstNonHiddenRow) : parentRow;
|
1223
1073
|
var renderableColumn = parentColumn >= 0 ? columnMapper.getRenderableFromVisualIndex(firstNonHiddenColumn) : parentColumn;
|
1224
1074
|
return [renderableRow, renderableColumn];
|
1225
1075
|
}
|
1076
|
+
|
1226
1077
|
/**
|
1227
1078
|
* The `modifyAutofillRange` hook callback.
|
1228
1079
|
*
|
@@ -1231,19 +1082,16 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1231
1082
|
* @param {Array} select The selection information.
|
1232
1083
|
* @returns {Array} The new drag area.
|
1233
1084
|
*/
|
1234
|
-
|
1235
1085
|
}, {
|
1236
1086
|
key: "onModifyAutofillRange",
|
1237
1087
|
value: function onModifyAutofillRange(drag, select) {
|
1238
1088
|
this.autofillCalculations.correctSelectionAreaSize(select);
|
1239
1089
|
var dragDirection = this.autofillCalculations.getDirection(select, drag);
|
1240
1090
|
var dragArea = drag;
|
1241
|
-
|
1242
1091
|
if (this.autofillCalculations.dragAreaOverlapsCollections(select, dragArea, dragDirection)) {
|
1243
1092
|
dragArea = select;
|
1244
1093
|
return dragArea;
|
1245
1094
|
}
|
1246
|
-
|
1247
1095
|
var mergedCellsWithinSelectionArea = this.mergedCellsCollection.getWithinRange({
|
1248
1096
|
from: {
|
1249
1097
|
row: select[0],
|
@@ -1254,14 +1102,13 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1254
1102
|
col: select[3]
|
1255
1103
|
}
|
1256
1104
|
});
|
1257
|
-
|
1258
1105
|
if (!mergedCellsWithinSelectionArea) {
|
1259
1106
|
return dragArea;
|
1260
1107
|
}
|
1261
|
-
|
1262
1108
|
dragArea = this.autofillCalculations.snapDragArea(select, dragArea, dragDirection, mergedCellsWithinSelectionArea);
|
1263
1109
|
return dragArea;
|
1264
1110
|
}
|
1111
|
+
|
1265
1112
|
/**
|
1266
1113
|
* `afterCreateCol` hook callback.
|
1267
1114
|
*
|
@@ -1269,12 +1116,12 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1269
1116
|
* @param {number} column Column index.
|
1270
1117
|
* @param {number} count Number of created columns.
|
1271
1118
|
*/
|
1272
|
-
|
1273
1119
|
}, {
|
1274
1120
|
key: "onAfterCreateCol",
|
1275
1121
|
value: function onAfterCreateCol(column, count) {
|
1276
1122
|
this.mergedCellsCollection.shiftCollections('right', column, count);
|
1277
1123
|
}
|
1124
|
+
|
1278
1125
|
/**
|
1279
1126
|
* `afterRemoveCol` hook callback.
|
1280
1127
|
*
|
@@ -1282,12 +1129,12 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1282
1129
|
* @param {number} column Column index.
|
1283
1130
|
* @param {number} count Number of removed columns.
|
1284
1131
|
*/
|
1285
|
-
|
1286
1132
|
}, {
|
1287
1133
|
key: "onAfterRemoveCol",
|
1288
1134
|
value: function onAfterRemoveCol(column, count) {
|
1289
1135
|
this.mergedCellsCollection.shiftCollections('left', column, count);
|
1290
1136
|
}
|
1137
|
+
|
1291
1138
|
/**
|
1292
1139
|
* `afterCreateRow` hook callback.
|
1293
1140
|
*
|
@@ -1296,16 +1143,15 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1296
1143
|
* @param {number} count Number of created rows.
|
1297
1144
|
* @param {string} source Source of change.
|
1298
1145
|
*/
|
1299
|
-
|
1300
1146
|
}, {
|
1301
1147
|
key: "onAfterCreateRow",
|
1302
1148
|
value: function onAfterCreateRow(row, count, source) {
|
1303
1149
|
if (source === 'auto') {
|
1304
1150
|
return;
|
1305
1151
|
}
|
1306
|
-
|
1307
1152
|
this.mergedCellsCollection.shiftCollections('down', row, count);
|
1308
1153
|
}
|
1154
|
+
|
1309
1155
|
/**
|
1310
1156
|
* `afterRemoveRow` hook callback.
|
1311
1157
|
*
|
@@ -1313,12 +1159,12 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1313
1159
|
* @param {number} row Row index.
|
1314
1160
|
* @param {number} count Number of removed rows.
|
1315
1161
|
*/
|
1316
|
-
|
1317
1162
|
}, {
|
1318
1163
|
key: "onAfterRemoveRow",
|
1319
1164
|
value: function onAfterRemoveRow(row, count) {
|
1320
1165
|
this.mergedCellsCollection.shiftCollections('up', row, count);
|
1321
1166
|
}
|
1167
|
+
|
1322
1168
|
/**
|
1323
1169
|
* `afterChange` hook callback. Used to propagate merged cells after using Autofill.
|
1324
1170
|
*
|
@@ -1326,16 +1172,15 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1326
1172
|
* @param {Array} changes The changes array.
|
1327
1173
|
* @param {string} source Determines the source of the change.
|
1328
1174
|
*/
|
1329
|
-
|
1330
1175
|
}, {
|
1331
1176
|
key: "onAfterChange",
|
1332
1177
|
value: function onAfterChange(changes, source) {
|
1333
1178
|
if (source !== 'Autofill.fill') {
|
1334
1179
|
return;
|
1335
1180
|
}
|
1336
|
-
|
1337
1181
|
this.autofillCalculations.recreateAfterDataPopulation(changes);
|
1338
1182
|
}
|
1183
|
+
|
1339
1184
|
/**
|
1340
1185
|
* `beforeDrawAreaBorders` hook callback.
|
1341
1186
|
*
|
@@ -1343,7 +1188,6 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1343
1188
|
* @param {Array} corners Visual coordinates of the area corners.
|
1344
1189
|
* @param {string} className Class name for the area.
|
1345
1190
|
*/
|
1346
|
-
|
1347
1191
|
}, {
|
1348
1192
|
key: "onBeforeDrawAreaBorders",
|
1349
1193
|
value: function onBeforeDrawAreaBorders(corners, className) {
|
@@ -1358,6 +1202,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1358
1202
|
});
|
1359
1203
|
}
|
1360
1204
|
}
|
1205
|
+
|
1361
1206
|
/**
|
1362
1207
|
* `afterModifyTransformStart` hook callback. Fixes a problem with navigating through merged cells at the edges of the table
|
1363
1208
|
* with the ENTER/SHIFT+ENTER/TAB/SHIFT+TAB keys.
|
@@ -1367,20 +1212,16 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1367
1212
|
* @param {number} rowTransformDir Row transformation direction (negative value = up, 0 = none, positive value = down).
|
1368
1213
|
* @param {number} colTransformDir Column transformation direction (negative value = up, 0 = none, positive value = down).
|
1369
1214
|
*/
|
1370
|
-
|
1371
1215
|
}, {
|
1372
1216
|
key: "onAfterModifyTransformStart",
|
1373
1217
|
value: function onAfterModifyTransformStart(coords, rowTransformDir, colTransformDir) {
|
1374
1218
|
if (!this.enabled) {
|
1375
1219
|
return;
|
1376
1220
|
}
|
1377
|
-
|
1378
1221
|
var mergedCellAtCoords = this.mergedCellsCollection.get(coords.row, coords.col);
|
1379
|
-
|
1380
1222
|
if (!mergedCellAtCoords) {
|
1381
1223
|
return;
|
1382
1224
|
}
|
1383
|
-
|
1384
1225
|
var goingDown = rowTransformDir > 0;
|
1385
1226
|
var goingUp = rowTransformDir < 0;
|
1386
1227
|
var goingLeft = colTransformDir < 0;
|
@@ -1389,12 +1230,12 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1389
1230
|
var mergedCellOnTopEdge = mergedCellAtCoords.row === 0;
|
1390
1231
|
var mergedCellOnRightEdge = mergedCellAtCoords.col + mergedCellAtCoords.colspan - 1 === this.hot.countCols() - 1;
|
1391
1232
|
var mergedCellOnLeftEdge = mergedCellAtCoords.col === 0;
|
1392
|
-
|
1393
1233
|
if (goingDown && mergedCellOnBottomEdge || goingUp && mergedCellOnTopEdge || goingRight && mergedCellOnRightEdge || goingLeft && mergedCellOnLeftEdge) {
|
1394
1234
|
coords.row = mergedCellAtCoords.row;
|
1395
1235
|
coords.col = mergedCellAtCoords.col;
|
1396
1236
|
}
|
1397
1237
|
}
|
1238
|
+
|
1398
1239
|
/**
|
1399
1240
|
* `afterDrawSelection` hook callback. Used to add the additional class name for the entirely-selected merged cells.
|
1400
1241
|
*
|
@@ -1405,7 +1246,6 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1405
1246
|
* @param {number|undefined} layerLevel Number indicating which layer of selection is currently processed.
|
1406
1247
|
* @returns {string|undefined} A `String`, which will act as an additional `className` to be added to the currently processed cell.
|
1407
1248
|
*/
|
1408
|
-
|
1409
1249
|
}, {
|
1410
1250
|
key: "onAfterDrawSelection",
|
1411
1251
|
value: function onAfterDrawSelection(currentRow, currentColumn, cornersOfSelection, layerLevel) {
|
@@ -1413,16 +1253,15 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1413
1253
|
if (!cornersOfSelection) {
|
1414
1254
|
return;
|
1415
1255
|
}
|
1416
|
-
|
1417
1256
|
return this.selectionCalculations.getSelectedMergedCellClassName(currentRow, currentColumn, cornersOfSelection, layerLevel);
|
1418
1257
|
}
|
1258
|
+
|
1419
1259
|
/**
|
1420
1260
|
* `beforeRemoveCellClassNames` hook callback. Used to remove additional class name from all cells in the table.
|
1421
1261
|
*
|
1422
1262
|
* @private
|
1423
1263
|
* @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.
|
1424
1264
|
*/
|
1425
|
-
|
1426
1265
|
}, {
|
1427
1266
|
key: "onBeforeRemoveCellClassNames",
|
1428
1267
|
value: function onBeforeRemoveCellClassNames() {
|
@@ -1439,6 +1278,5 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
|
|
1439
1278
|
return PLUGIN_PRIORITY;
|
1440
1279
|
}
|
1441
1280
|
}]);
|
1442
|
-
|
1443
1281
|
return MergeCells;
|
1444
1282
|
}(BasePlugin);
|