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