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