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,72 +1,74 @@
|
|
1
1
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
2
|
-
|
3
2
|
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."); }
|
4
|
-
|
5
3
|
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); }
|
6
|
-
|
7
4
|
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; }
|
8
|
-
|
9
|
-
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; }
|
10
|
-
|
5
|
+
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; } }
|
11
6
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
12
|
-
|
13
7
|
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); }
|
14
|
-
|
15
8
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
16
|
-
|
17
|
-
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); } }
|
18
|
-
|
9
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
19
10
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
20
|
-
|
21
11
|
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
22
|
-
|
23
12
|
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
24
|
-
|
25
13
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
26
|
-
|
27
14
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
28
|
-
|
29
15
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
30
|
-
|
31
16
|
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
32
|
-
|
33
17
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
34
|
-
|
35
18
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
36
|
-
|
37
19
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
38
|
-
|
20
|
+
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
21
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
22
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
23
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
24
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
25
|
+
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); }
|
26
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
27
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
28
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
29
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
30
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
31
|
+
function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
|
32
|
+
import "core-js/modules/es.array.join.js";
|
33
|
+
import "core-js/modules/es.array.concat.js";
|
39
34
|
import "core-js/modules/es.array.iterator.js";
|
35
|
+
import "core-js/modules/es.map.js";
|
40
36
|
import "core-js/modules/es.object.to-string.js";
|
41
37
|
import "core-js/modules/es.string.iterator.js";
|
42
|
-
import "core-js/modules/es.weak-map.js";
|
43
38
|
import "core-js/modules/web.dom-collections.iterator.js";
|
44
|
-
import "core-js/modules/es.array.
|
45
|
-
import "core-js/modules/es.array.
|
39
|
+
import "core-js/modules/es.array.map.js";
|
40
|
+
import "core-js/modules/es.array.filter.js";
|
41
|
+
import "core-js/modules/es.array.from.js";
|
46
42
|
import "core-js/modules/es.regexp.exec.js";
|
47
|
-
import "core-js/modules/es.
|
43
|
+
import "core-js/modules/es.weak-map.js";
|
44
|
+
import "core-js/modules/es.weak-set.js";
|
45
|
+
import "core-js/modules/es.symbol.to-primitive.js";
|
46
|
+
import "core-js/modules/es.date.to-primitive.js";
|
47
|
+
import "core-js/modules/es.symbol.js";
|
48
|
+
import "core-js/modules/es.symbol.description.js";
|
49
|
+
import "core-js/modules/es.number.constructor.js";
|
48
50
|
import "core-js/modules/es.object.set-prototype-of.js";
|
49
51
|
import "core-js/modules/es.object.get-prototype-of.js";
|
50
52
|
import "core-js/modules/es.reflect.construct.js";
|
51
53
|
import "core-js/modules/es.reflect.get.js";
|
52
54
|
import "core-js/modules/es.object.get-own-property-descriptor.js";
|
53
|
-
import "core-js/modules/es.symbol.js";
|
54
|
-
import "core-js/modules/es.symbol.description.js";
|
55
55
|
import "core-js/modules/es.symbol.iterator.js";
|
56
56
|
import "core-js/modules/es.array.slice.js";
|
57
57
|
import "core-js/modules/es.function.name.js";
|
58
|
-
import "core-js/modules/es.array.from.js";
|
59
58
|
import { BasePlugin } from "../base/index.mjs";
|
60
59
|
import Hooks from "../../pluginHooks.mjs";
|
61
60
|
import { stringify, parse } from "../../3rdparty/SheetClip/index.mjs";
|
62
61
|
import { arrayEach } from "../../helpers/array.mjs";
|
63
|
-
import { rangeEach } from "../../helpers/number.mjs";
|
64
62
|
import { sanitize } from "../../helpers/string.mjs";
|
65
63
|
import { getSelectionText } from "../../helpers/dom/element.mjs";
|
66
64
|
import copyItem from "./contextMenuItem/copy.mjs";
|
65
|
+
import copyColumnHeadersOnlyItem from "./contextMenuItem/copyColumnHeadersOnly.mjs";
|
66
|
+
import copyWithColumnGroupHeadersItem from "./contextMenuItem/copyWithColumnGroupHeaders.mjs";
|
67
|
+
import copyWithColumnHeadersItem from "./contextMenuItem/copyWithColumnHeaders.mjs";
|
67
68
|
import cutItem from "./contextMenuItem/cut.mjs";
|
68
69
|
import PasteEvent from "./pasteEvent.mjs";
|
69
70
|
import { createElement, destroyElement } from "./focusableElement.mjs";
|
71
|
+
import { CopyableRangesFactory, normalizeRanges } from "./copyableRanges.mjs";
|
70
72
|
import { _dataToHTML, htmlToGridSettings } from "../../utils/parseTable.mjs";
|
71
73
|
Hooks.getSingleton().register('afterCopyLimit');
|
72
74
|
Hooks.getSingleton().register('modifyCopyableRange');
|
@@ -79,153 +81,151 @@ Hooks.getSingleton().register('afterCopy');
|
|
79
81
|
export var PLUGIN_KEY = 'copyPaste';
|
80
82
|
export var PLUGIN_PRIORITY = 80;
|
81
83
|
var SETTING_KEYS = ['fragmentSelection'];
|
82
|
-
var ROWS_LIMIT = Infinity;
|
83
|
-
var COLUMNS_LIMIT = Infinity;
|
84
|
-
var privatePool = new WeakMap();
|
85
84
|
var META_HEAD = ['<meta name="generator" content="Handsontable"/>', '<style type="text/css">td{white-space:normal}br{mso-data-placement:same-cell}</style>'].join('');
|
86
|
-
/* eslint-disable jsdoc/require-description-complete-sentence */
|
87
85
|
|
86
|
+
/* eslint-disable jsdoc/require-description-complete-sentence */
|
88
87
|
/**
|
89
88
|
* @description
|
90
|
-
*
|
91
|
-
*
|
92
|
-
*
|
93
|
-
* * `true` (to enable default options),
|
94
|
-
* * `false` (to disable completely).
|
89
|
+
* Copy, cut, and paste data by using the `CopyPaste` plugin.
|
90
|
+
*
|
91
|
+
* Control the `CopyPaste` plugin programmatically through its [API methods](#methods).
|
95
92
|
*
|
96
|
-
*
|
97
|
-
*
|
98
|
-
*
|
99
|
-
*
|
100
|
-
* * `'uiContainer'` (see {@link CopyPaste#uiContainer}).
|
93
|
+
* The user can access the copy-paste features through:
|
94
|
+
* - The [context menu](@/guides/cell-features/clipboard.md#context-menu).
|
95
|
+
* - The [keyboard shortcuts](@/guides/cell-features/clipboard.md#related-keyboard-shortcuts).
|
96
|
+
* - The browser's menu bar.
|
101
97
|
*
|
102
|
-
*
|
98
|
+
* Read more:
|
99
|
+
* - [Guides: Clipboard](@/guides/cell-features/clipboard.md)
|
100
|
+
* - [Configuration options: `copyPaste`](@/api/options.md#copypaste)
|
103
101
|
*
|
104
102
|
* @example
|
105
103
|
* ```js
|
106
|
-
* //
|
104
|
+
* // enable the plugin with the default configuration
|
107
105
|
* copyPaste: true,
|
108
|
-
*
|
106
|
+
*
|
107
|
+
* // or, enable the plugin with a custom configuration
|
109
108
|
* copyPaste: {
|
110
109
|
* columnsLimit: 25,
|
111
110
|
* rowsLimit: 50,
|
112
111
|
* pasteMode: 'shift_down',
|
112
|
+
* copyColumnHeaders: true,
|
113
|
+
* copyColumnGroupHeaders: true,
|
114
|
+
* copyColumnHeadersOnly: true,
|
113
115
|
* uiContainer: document.body,
|
114
116
|
* },
|
115
117
|
* ```
|
116
118
|
* @class CopyPaste
|
117
119
|
* @plugin CopyPaste
|
118
120
|
*/
|
119
|
-
|
121
|
+
var _enableCopyColumnHeaders = /*#__PURE__*/new WeakMap();
|
122
|
+
var _enableCopyColumnGroupHeaders = /*#__PURE__*/new WeakMap();
|
123
|
+
var _enableCopyColumnHeadersOnly = /*#__PURE__*/new WeakMap();
|
124
|
+
var _copyMode = /*#__PURE__*/new WeakMap();
|
125
|
+
var _isTriggeredByCopy = /*#__PURE__*/new WeakMap();
|
126
|
+
var _isTriggeredByCut = /*#__PURE__*/new WeakMap();
|
127
|
+
var _copyableRangesFactory = /*#__PURE__*/new WeakMap();
|
128
|
+
var _countCopiedHeaders = /*#__PURE__*/new WeakSet();
|
120
129
|
export var CopyPaste = /*#__PURE__*/function (_BasePlugin) {
|
121
130
|
_inherits(CopyPaste, _BasePlugin);
|
122
|
-
|
123
131
|
var _super = _createSuper(CopyPaste);
|
124
|
-
|
125
|
-
function CopyPaste(hotInstance) {
|
132
|
+
function CopyPaste() {
|
126
133
|
var _this;
|
127
|
-
|
128
134
|
_classCallCheck(this, CopyPaste);
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
_this
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
_this.copyableRanges = [];
|
147
|
-
/**
|
148
|
-
* Provides focusable element to support IME and copy/paste/cut actions.
|
149
|
-
*
|
150
|
-
* @private
|
151
|
-
* @type {FocusableWrapper}
|
152
|
-
*/
|
153
|
-
|
154
|
-
_this.focusableElement = void 0;
|
155
|
-
/**
|
156
|
-
* Defines paste (<kbd>**Ctrl**</kbd>/<kbd>**Cmd**</kbd> + <kbd>**V**</kbd>) behavior.
|
157
|
-
* * Default value `"overwrite"` will paste clipboard value over current selection.
|
158
|
-
* * When set to `"shift_down"`, clipboard data will be pasted in place of current selection, while all selected cells are moved down.
|
159
|
-
* * When set to `"shift_right"`, clipboard data will be pasted in place of current selection, while all selected cells are moved right.
|
160
|
-
*
|
161
|
-
* @type {string}
|
162
|
-
* @default 'overwrite'
|
163
|
-
*/
|
164
|
-
|
165
|
-
_this.pasteMode = 'overwrite';
|
166
|
-
/**
|
167
|
-
* Maximum number of rows than can be copied to clipboard using <kbd>**Ctrl**</kbd>/<kbd>**Cmd**</kbd> + <kbd>**C**</kbd>.
|
168
|
-
*
|
169
|
-
* @type {number}
|
170
|
-
* @default Infinity
|
171
|
-
*/
|
172
|
-
|
173
|
-
_this.rowsLimit = ROWS_LIMIT;
|
174
|
-
/**
|
175
|
-
* UI container for the secondary focusable element.
|
176
|
-
*
|
177
|
-
* @type {HTMLElement}
|
178
|
-
*/
|
179
|
-
|
180
|
-
_this.uiContainer = _this.hot.rootDocument.body;
|
181
|
-
privatePool.set(_assertThisInitialized(_this), {
|
182
|
-
isTriggeredByCopy: false,
|
183
|
-
isTriggeredByCut: false,
|
184
|
-
isBeginEditing: false,
|
185
|
-
isFragmentSelectionEnabled: false
|
135
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
136
|
+
args[_key] = arguments[_key];
|
137
|
+
}
|
138
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
139
|
+
_classPrivateMethodInitSpec(_assertThisInitialized(_this), _countCopiedHeaders);
|
140
|
+
_defineProperty(_assertThisInitialized(_this), "columnsLimit", Infinity);
|
141
|
+
_defineProperty(_assertThisInitialized(_this), "rowsLimit", Infinity);
|
142
|
+
_defineProperty(_assertThisInitialized(_this), "pasteMode", 'overwrite');
|
143
|
+
_defineProperty(_assertThisInitialized(_this), "uiContainer", _this.hot.rootDocument.body);
|
144
|
+
_classPrivateFieldInitSpec(_assertThisInitialized(_this), _enableCopyColumnHeaders, {
|
145
|
+
writable: true,
|
146
|
+
value: false
|
147
|
+
});
|
148
|
+
_classPrivateFieldInitSpec(_assertThisInitialized(_this), _enableCopyColumnGroupHeaders, {
|
149
|
+
writable: true,
|
150
|
+
value: false
|
186
151
|
});
|
152
|
+
_classPrivateFieldInitSpec(_assertThisInitialized(_this), _enableCopyColumnHeadersOnly, {
|
153
|
+
writable: true,
|
154
|
+
value: false
|
155
|
+
});
|
156
|
+
_classPrivateFieldInitSpec(_assertThisInitialized(_this), _copyMode, {
|
157
|
+
writable: true,
|
158
|
+
value: 'cells-only'
|
159
|
+
});
|
160
|
+
_classPrivateFieldInitSpec(_assertThisInitialized(_this), _isTriggeredByCopy, {
|
161
|
+
writable: true,
|
162
|
+
value: false
|
163
|
+
});
|
164
|
+
_classPrivateFieldInitSpec(_assertThisInitialized(_this), _isTriggeredByCut, {
|
165
|
+
writable: true,
|
166
|
+
value: false
|
167
|
+
});
|
168
|
+
_classPrivateFieldInitSpec(_assertThisInitialized(_this), _copyableRangesFactory, {
|
169
|
+
writable: true,
|
170
|
+
value: new CopyableRangesFactory({
|
171
|
+
countRows: function countRows() {
|
172
|
+
return _this.hot.countRows();
|
173
|
+
},
|
174
|
+
countColumns: function countColumns() {
|
175
|
+
return _this.hot.countCols();
|
176
|
+
},
|
177
|
+
rowsLimit: function rowsLimit() {
|
178
|
+
return _this.rowsLimit;
|
179
|
+
},
|
180
|
+
columnsLimit: function columnsLimit() {
|
181
|
+
return _this.columnsLimit;
|
182
|
+
},
|
183
|
+
countColumnHeaders: function countColumnHeaders() {
|
184
|
+
return _this.hot.view.getColumnHeadersCount();
|
185
|
+
}
|
186
|
+
})
|
187
|
+
});
|
188
|
+
_defineProperty(_assertThisInitialized(_this), "copyableRanges", []);
|
189
|
+
_defineProperty(_assertThisInitialized(_this), "focusableElement", void 0);
|
187
190
|
return _this;
|
188
191
|
}
|
189
|
-
/**
|
190
|
-
* Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
|
191
|
-
* hook and if it returns `true` than the {@link CopyPaste#enablePlugin} method is called.
|
192
|
-
*
|
193
|
-
* @returns {boolean}
|
194
|
-
*/
|
195
|
-
|
196
|
-
|
197
192
|
_createClass(CopyPaste, [{
|
198
193
|
key: "isEnabled",
|
199
|
-
value:
|
194
|
+
value:
|
195
|
+
/**
|
196
|
+
* Checks if the [`CopyPaste`](#copypaste) plugin is enabled.
|
197
|
+
*
|
198
|
+
* This method gets called by Handsontable's [`beforeInit`](@/api/hooks.md#beforeinit) hook.
|
199
|
+
* If it returns `true`, the [`enablePlugin()`](#enableplugin) method gets called.
|
200
|
+
*
|
201
|
+
* @returns {boolean}
|
202
|
+
*/
|
203
|
+
function isEnabled() {
|
200
204
|
return !!this.hot.getSettings()[PLUGIN_KEY];
|
201
205
|
}
|
206
|
+
|
202
207
|
/**
|
203
|
-
* Enables the plugin
|
208
|
+
* Enables the [`CopyPaste`](#copypaste) plugin for your Handsontable instance.
|
204
209
|
*/
|
205
|
-
|
206
210
|
}, {
|
207
211
|
key: "enablePlugin",
|
208
212
|
value: function enablePlugin() {
|
209
213
|
var _this2 = this;
|
210
|
-
|
211
214
|
if (this.enabled) {
|
212
215
|
return;
|
213
216
|
}
|
214
|
-
|
215
217
|
var _this$hot$getSettings = this.hot.getSettings(),
|
216
|
-
|
217
|
-
fragmentSelection = _this$hot$getSettings.fragmentSelection;
|
218
|
-
|
219
|
-
var priv = privatePool.get(this);
|
220
|
-
priv.isFragmentSelectionEnabled = !!fragmentSelection;
|
221
|
-
|
218
|
+
settings = _this$hot$getSettings[PLUGIN_KEY];
|
222
219
|
if (_typeof(settings) === 'object') {
|
223
|
-
|
220
|
+
var _settings$pasteMode, _settings$uiContainer;
|
221
|
+
this.pasteMode = (_settings$pasteMode = settings.pasteMode) !== null && _settings$pasteMode !== void 0 ? _settings$pasteMode : this.pasteMode;
|
224
222
|
this.rowsLimit = isNaN(settings.rowsLimit) ? this.rowsLimit : settings.rowsLimit;
|
225
223
|
this.columnsLimit = isNaN(settings.columnsLimit) ? this.columnsLimit : settings.columnsLimit;
|
226
|
-
this
|
224
|
+
_classPrivateFieldSet(this, _enableCopyColumnHeaders, !!settings.copyColumnHeaders);
|
225
|
+
_classPrivateFieldSet(this, _enableCopyColumnGroupHeaders, !!settings.copyColumnGroupHeaders);
|
226
|
+
_classPrivateFieldSet(this, _enableCopyColumnHeadersOnly, !!settings.copyColumnHeadersOnly);
|
227
|
+
this.uiContainer = (_settings$uiContainer = settings.uiContainer) !== null && _settings$uiContainer !== void 0 ? _settings$uiContainer : this.uiContainer;
|
227
228
|
}
|
228
|
-
|
229
229
|
this.addHook('afterContextMenuDefaultOptions', function (options) {
|
230
230
|
return _this2.onAfterContextMenuDefaultOptions(options);
|
231
231
|
});
|
@@ -246,238 +246,266 @@ export var CopyPaste = /*#__PURE__*/function (_BasePlugin) {
|
|
246
246
|
}).addLocalHook('paste', function (event) {
|
247
247
|
return _this2.onPaste(event);
|
248
248
|
});
|
249
|
-
|
250
249
|
_get(_getPrototypeOf(CopyPaste.prototype), "enablePlugin", this).call(this);
|
251
250
|
}
|
251
|
+
|
252
252
|
/**
|
253
|
-
* Updates the plugin
|
253
|
+
* Updates the state of the [`CopyPaste`](#copypaste) plugin.
|
254
254
|
*
|
255
|
-
*
|
255
|
+
* Gets called when [`updateSettings()`](@/api/core.md#updatesettings)
|
256
|
+
* is invoked with any of the following configuration options:
|
256
257
|
* - [`copyPaste`](@/api/options.md#copypaste)
|
257
258
|
* - [`fragmentSelection`](@/api/options.md#fragmentselection)
|
258
259
|
*/
|
259
|
-
|
260
260
|
}, {
|
261
261
|
key: "updatePlugin",
|
262
262
|
value: function updatePlugin() {
|
263
263
|
this.disablePlugin();
|
264
264
|
this.enablePlugin();
|
265
265
|
this.getOrCreateFocusableElement();
|
266
|
-
|
267
266
|
_get(_getPrototypeOf(CopyPaste.prototype), "updatePlugin", this).call(this);
|
268
267
|
}
|
268
|
+
|
269
269
|
/**
|
270
|
-
* Disables the plugin
|
270
|
+
* Disables the [`CopyPaste`](#copypaste) plugin for your Handsontable instance.
|
271
271
|
*/
|
272
|
-
|
273
272
|
}, {
|
274
273
|
key: "disablePlugin",
|
275
274
|
value: function disablePlugin() {
|
276
275
|
if (this.focusableElement) {
|
277
276
|
destroyElement(this.focusableElement);
|
278
277
|
}
|
279
|
-
|
280
278
|
_get(_getPrototypeOf(CopyPaste.prototype), "disablePlugin", this).call(this);
|
281
279
|
}
|
280
|
+
|
282
281
|
/**
|
283
|
-
* Copies the selected
|
282
|
+
* Copies the contents of the selected cells (and/or their related column headers) to the system clipboard.
|
283
|
+
*
|
284
|
+
* Takes an optional parameter (`copyMode`) that defines the scope of copying:
|
285
|
+
*
|
286
|
+
* | `copyMode` value | Description |
|
287
|
+
* | --------------------------- | --------------------------------------------------------------- |
|
288
|
+
* | `'cells-only'` (default) | Copy the selected cells |
|
289
|
+
* | `'with-column-headers'` | - Copy the selected cells<br>- Copy the nearest column headers |
|
290
|
+
* | `'with-all-column-headers'` | - Copy the selected cells<br>- Copy all related columns headers |
|
291
|
+
* | `'column-headers-only'` | Copy the nearest column headers (without copying cells) |
|
292
|
+
*
|
293
|
+
* @param {string} [copyMode='cells-only'] Copy mode.
|
284
294
|
*/
|
285
|
-
|
286
295
|
}, {
|
287
296
|
key: "copy",
|
288
297
|
value: function copy() {
|
289
|
-
var
|
290
|
-
|
298
|
+
var copyMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'cells-only';
|
299
|
+
_classPrivateFieldSet(this, _copyMode, copyMode);
|
300
|
+
_classPrivateFieldSet(this, _isTriggeredByCopy, true);
|
291
301
|
this.getOrCreateFocusableElement();
|
292
302
|
this.focusableElement.focus();
|
293
303
|
this.hot.rootDocument.execCommand('copy');
|
294
304
|
}
|
305
|
+
|
306
|
+
/**
|
307
|
+
* Copies the contents of the selected cells.
|
308
|
+
*/
|
309
|
+
}, {
|
310
|
+
key: "copyCellsOnly",
|
311
|
+
value: function copyCellsOnly() {
|
312
|
+
this.copy('cells-only');
|
313
|
+
}
|
295
314
|
/**
|
296
|
-
*
|
315
|
+
* Copies the contents of column headers that are nearest to the selected cells.
|
297
316
|
*/
|
317
|
+
}, {
|
318
|
+
key: "copyColumnHeadersOnly",
|
319
|
+
value: function copyColumnHeadersOnly() {
|
320
|
+
this.copy('column-headers-only');
|
321
|
+
}
|
322
|
+
/**
|
323
|
+
* Copies the contents of the selected cells and all their related column headers.
|
324
|
+
*/
|
325
|
+
}, {
|
326
|
+
key: "copyWithAllColumnHeaders",
|
327
|
+
value: function copyWithAllColumnHeaders() {
|
328
|
+
this.copy('with-column-group-headers');
|
329
|
+
}
|
330
|
+
/**
|
331
|
+
* Copies the contents of the selected cells and their nearest column headers.
|
332
|
+
*/
|
333
|
+
}, {
|
334
|
+
key: "copyWithColumnHeaders",
|
335
|
+
value: function copyWithColumnHeaders() {
|
336
|
+
this.copy('with-column-headers');
|
337
|
+
}
|
298
338
|
|
339
|
+
/**
|
340
|
+
* Cuts the contents of the selected cells to the system clipboard.
|
341
|
+
*/
|
299
342
|
}, {
|
300
343
|
key: "cut",
|
301
344
|
value: function cut() {
|
302
|
-
|
303
|
-
priv.isTriggeredByCut = true;
|
345
|
+
_classPrivateFieldSet(this, _isTriggeredByCut, true);
|
304
346
|
this.getOrCreateFocusableElement();
|
305
347
|
this.focusableElement.focus();
|
306
348
|
this.hot.rootDocument.execCommand('cut');
|
307
349
|
}
|
350
|
+
|
308
351
|
/**
|
309
|
-
*
|
352
|
+
* Converts the contents of multiple ranges (`ranges`) into a single string.
|
310
353
|
*
|
311
|
-
* @param {
|
312
|
-
* @returns {string}
|
354
|
+
* @param {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>} ranges Array of objects with properties `startRow`, `endRow`, `startCol` and `endCol`.
|
355
|
+
* @returns {string} A string that will be copied to the clipboard.
|
313
356
|
*/
|
314
|
-
|
315
357
|
}, {
|
316
358
|
key: "getRangedCopyableData",
|
317
359
|
value: function getRangedCopyableData(ranges) {
|
318
|
-
|
319
|
-
|
320
|
-
var dataSet = [];
|
321
|
-
var copyableRows = [];
|
322
|
-
var copyableColumns = []; // Count all copyable rows and columns
|
323
|
-
|
324
|
-
arrayEach(ranges, function (range) {
|
325
|
-
rangeEach(range.startRow, range.endRow, function (row) {
|
326
|
-
if (copyableRows.indexOf(row) === -1) {
|
327
|
-
copyableRows.push(row);
|
328
|
-
}
|
329
|
-
});
|
330
|
-
rangeEach(range.startCol, range.endCol, function (column) {
|
331
|
-
if (copyableColumns.indexOf(column) === -1) {
|
332
|
-
copyableColumns.push(column);
|
333
|
-
}
|
334
|
-
});
|
335
|
-
}); // Concat all rows and columns data defined in ranges into one copyable string
|
336
|
-
|
337
|
-
arrayEach(copyableRows, function (row) {
|
338
|
-
var rowSet = [];
|
339
|
-
arrayEach(copyableColumns, function (column) {
|
340
|
-
rowSet.push(_this3.hot.getCopyableData(row, column));
|
341
|
-
});
|
342
|
-
dataSet.push(rowSet);
|
343
|
-
});
|
344
|
-
return stringify(dataSet);
|
360
|
+
return stringify(this.getRangedData(ranges));
|
345
361
|
}
|
362
|
+
|
346
363
|
/**
|
347
|
-
*
|
364
|
+
* Converts the contents of multiple ranges (`ranges`) into an array of arrays.
|
348
365
|
*
|
349
|
-
* @param {
|
350
|
-
* @returns {Array[]}
|
366
|
+
* @param {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>} ranges Array of objects with properties `startRow`, `startCol`, `endRow` and `endCol`.
|
367
|
+
* @returns {Array[]} An array of arrays that will be copied to the clipboard.
|
351
368
|
*/
|
352
|
-
|
353
369
|
}, {
|
354
370
|
key: "getRangedData",
|
355
371
|
value: function getRangedData(ranges) {
|
356
|
-
var
|
357
|
-
|
358
|
-
var
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
arrayEach(ranges, function (range) {
|
363
|
-
rangeEach(range.startRow, range.endRow, function (row) {
|
364
|
-
if (copyableRows.indexOf(row) === -1) {
|
365
|
-
copyableRows.push(row);
|
366
|
-
}
|
367
|
-
});
|
368
|
-
rangeEach(range.startCol, range.endCol, function (column) {
|
369
|
-
if (copyableColumns.indexOf(column) === -1) {
|
370
|
-
copyableColumns.push(column);
|
371
|
-
}
|
372
|
-
});
|
373
|
-
}); // Concat all rows and columns data defined in ranges into one copyable string
|
372
|
+
var _this3 = this;
|
373
|
+
var data = [];
|
374
|
+
var _normalizeRanges = normalizeRanges(ranges),
|
375
|
+
rows = _normalizeRanges.rows,
|
376
|
+
columns = _normalizeRanges.columns;
|
374
377
|
|
375
|
-
|
378
|
+
// concatenate all rows and columns data defined in ranges into one copyable string
|
379
|
+
arrayEach(rows, function (row) {
|
376
380
|
var rowSet = [];
|
377
|
-
arrayEach(
|
378
|
-
|
381
|
+
arrayEach(columns, function (column) {
|
382
|
+
if (row < 0) {
|
383
|
+
// `row` as the second argument acts here as the `headerLevel` argument
|
384
|
+
rowSet.push(_this3.hot.getColHeader(column, row));
|
385
|
+
} else {
|
386
|
+
rowSet.push(_this3.hot.getCopyableData(row, column));
|
387
|
+
}
|
379
388
|
});
|
380
|
-
|
389
|
+
data.push(rowSet);
|
381
390
|
});
|
382
|
-
return
|
391
|
+
return data;
|
383
392
|
}
|
393
|
+
|
384
394
|
/**
|
385
395
|
* Simulates the paste action.
|
386
396
|
*
|
387
|
-
*
|
397
|
+
* For security reasons, modern browsers don't allow reading from the system clipboard.
|
388
398
|
*
|
389
|
-
* @param {string} pastableText
|
390
|
-
* @param {string} [pastableHtml='']
|
399
|
+
* @param {string} pastableText The value to paste, as a raw string.
|
400
|
+
* @param {string} [pastableHtml=''] The value to paste, as HTML.
|
391
401
|
*/
|
392
|
-
|
393
402
|
}, {
|
394
403
|
key: "paste",
|
395
404
|
value: function paste() {
|
396
405
|
var pastableText = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
397
406
|
var pastableHtml = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : pastableText;
|
398
|
-
|
399
407
|
if (!pastableText && !pastableHtml) {
|
400
408
|
return;
|
401
409
|
}
|
402
|
-
|
403
410
|
var pasteData = new PasteEvent();
|
404
|
-
|
405
411
|
if (pastableText) {
|
406
412
|
pasteData.clipboardData.setData('text/plain', pastableText);
|
407
413
|
}
|
408
|
-
|
409
414
|
if (pastableHtml) {
|
410
415
|
pasteData.clipboardData.setData('text/html', pastableHtml);
|
411
416
|
}
|
412
|
-
|
413
417
|
this.getOrCreateFocusableElement();
|
414
418
|
this.onPaste(pasteData);
|
415
419
|
}
|
420
|
+
|
416
421
|
/**
|
417
422
|
* Prepares copyable text from the cells selection in the invisible textarea.
|
418
423
|
*/
|
419
|
-
|
420
424
|
}, {
|
421
425
|
key: "setCopyableText",
|
422
426
|
value: function setCopyableText() {
|
423
|
-
var
|
424
|
-
|
425
|
-
if (!selRange) {
|
427
|
+
var selectionRange = this.hot.getSelectedRangeLast();
|
428
|
+
if (!selectionRange) {
|
426
429
|
return;
|
427
430
|
}
|
428
|
-
|
429
|
-
var
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
431
|
+
_classPrivateFieldGet(this, _copyableRangesFactory).setSelectedRange(selectionRange);
|
432
|
+
var groupedRanges = new Map([['headers', null], ['cells', null]]);
|
433
|
+
if (_classPrivateFieldGet(this, _copyMode) === 'column-headers-only') {
|
434
|
+
groupedRanges.set('headers', _classPrivateFieldGet(this, _copyableRangesFactory).getMostBottomColumnHeadersRange());
|
435
|
+
} else {
|
436
|
+
if (_classPrivateFieldGet(this, _copyMode) === 'with-column-headers') {
|
437
|
+
groupedRanges.set('headers', _classPrivateFieldGet(this, _copyableRangesFactory).getMostBottomColumnHeadersRange());
|
438
|
+
} else if (_classPrivateFieldGet(this, _copyMode) === 'with-column-group-headers') {
|
439
|
+
groupedRanges.set('headers', _classPrivateFieldGet(this, _copyableRangesFactory).getAllColumnHeadersRange());
|
440
|
+
}
|
441
|
+
groupedRanges.set('cells', _classPrivateFieldGet(this, _copyableRangesFactory).getCellsRange());
|
442
|
+
}
|
443
|
+
this.copyableRanges = Array.from(groupedRanges.values()).filter(function (range) {
|
444
|
+
return range !== null;
|
445
|
+
}).map(function (_ref) {
|
446
|
+
var startRow = _ref.startRow,
|
447
|
+
startCol = _ref.startCol,
|
448
|
+
endRow = _ref.endRow,
|
449
|
+
endCol = _ref.endCol;
|
450
|
+
return {
|
451
|
+
startRow: startRow,
|
452
|
+
startCol: startCol,
|
453
|
+
endRow: endRow,
|
454
|
+
endCol: endCol
|
455
|
+
};
|
443
456
|
});
|
444
457
|
this.copyableRanges = this.hot.runHooks('modifyCopyableRange', this.copyableRanges);
|
445
|
-
|
446
|
-
if (
|
458
|
+
var cellsRange = groupedRanges.get('cells');
|
459
|
+
if (cellsRange !== null && cellsRange.isRangeTrimmed) {
|
460
|
+
var startRow = cellsRange.startRow,
|
461
|
+
startCol = cellsRange.startCol,
|
462
|
+
endRow = cellsRange.endRow,
|
463
|
+
endCol = cellsRange.endCol;
|
447
464
|
this.hot.runHooks('afterCopyLimit', endRow - startRow + 1, endCol - startCol + 1, this.rowsLimit, this.columnsLimit);
|
448
465
|
}
|
449
466
|
}
|
467
|
+
|
450
468
|
/**
|
451
469
|
* Force focus on editable element.
|
452
470
|
*
|
453
471
|
* @private
|
454
472
|
*/
|
455
|
-
|
456
473
|
}, {
|
457
474
|
key: "getOrCreateFocusableElement",
|
458
475
|
value: function getOrCreateFocusableElement() {
|
459
|
-
var
|
460
|
-
var editableElement =
|
461
|
-
|
476
|
+
var _this$hot$getActiveEd;
|
477
|
+
var editableElement = (_this$hot$getActiveEd = this.hot.getActiveEditor()) === null || _this$hot$getActiveEd === void 0 ? void 0 : _this$hot$getActiveEd.TEXTAREA;
|
462
478
|
if (editableElement) {
|
463
479
|
this.focusableElement.setFocusableElement(editableElement);
|
464
480
|
} else {
|
465
481
|
this.focusableElement.useSecondaryElement();
|
466
482
|
}
|
467
483
|
}
|
484
|
+
|
468
485
|
/**
|
469
486
|
* Verifies if editor exists and is open.
|
470
487
|
*
|
471
488
|
* @private
|
472
489
|
* @returns {boolean}
|
473
490
|
*/
|
474
|
-
|
475
491
|
}, {
|
476
492
|
key: "isEditorOpened",
|
477
493
|
value: function isEditorOpened() {
|
478
|
-
var
|
479
|
-
return
|
494
|
+
var _this$hot$getActiveEd2;
|
495
|
+
return (_this$hot$getActiveEd2 = this.hot.getActiveEditor()) === null || _this$hot$getActiveEd2 === void 0 ? void 0 : _this$hot$getActiveEd2.isOpened();
|
480
496
|
}
|
497
|
+
|
498
|
+
/**
|
499
|
+
* Counts how many column headers will be copied based on the passed range.
|
500
|
+
*
|
501
|
+
* @private
|
502
|
+
* @param {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>} ranges Array of objects with properties `startRow`, `startCol`, `endRow` and `endCol`.
|
503
|
+
* @returns {{ columnHeadersCount: number }} Returns an object with keys that holds
|
504
|
+
* information with the number of copied headers.
|
505
|
+
*/
|
506
|
+
}, {
|
507
|
+
key: "populateValues",
|
508
|
+
value:
|
481
509
|
/**
|
482
510
|
* Prepares new values to populate them into datasource.
|
483
511
|
*
|
@@ -486,179 +514,145 @@ export var CopyPaste = /*#__PURE__*/function (_BasePlugin) {
|
|
486
514
|
* @param {Array} [selection] The selection which indicates from what position the data will be populated.
|
487
515
|
* @returns {Array} Range coordinates after populate data.
|
488
516
|
*/
|
489
|
-
|
490
|
-
}, {
|
491
|
-
key: "populateValues",
|
492
|
-
value: function populateValues(inputArray) {
|
517
|
+
function populateValues(inputArray) {
|
493
518
|
var selection = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.hot.getSelectedRangeLast();
|
494
|
-
|
495
519
|
if (!inputArray.length) {
|
496
520
|
return;
|
497
521
|
}
|
498
|
-
|
499
522
|
var populatedRowsLength = inputArray.length;
|
500
523
|
var populatedColumnsLength = inputArray[0].length;
|
501
524
|
var newRows = [];
|
502
|
-
|
503
525
|
var _selection$getTopStar = selection.getTopStartCorner(),
|
504
|
-
|
505
|
-
|
506
|
-
|
526
|
+
startRow = _selection$getTopStar.row,
|
527
|
+
startColumn = _selection$getTopStar.col;
|
507
528
|
var _selection$getBottomE = selection.getBottomEndCorner(),
|
508
|
-
|
509
|
-
|
510
|
-
|
529
|
+
endRowFromSelection = _selection$getBottomE.row,
|
530
|
+
endColumnFromSelection = _selection$getBottomE.col;
|
511
531
|
var visualRowForPopulatedData = startRow;
|
512
532
|
var visualColumnForPopulatedData = startColumn;
|
513
533
|
var lastVisualRow = startRow;
|
514
|
-
var lastVisualColumn = startColumn;
|
534
|
+
var lastVisualColumn = startColumn;
|
535
|
+
|
536
|
+
// We try to populate just all copied data or repeat copied data within a selection. Please keep in mind that we
|
515
537
|
// don't know whether populated data is bigger than selection on start as there are some cells for which values
|
516
538
|
// should be not inserted (it's known right after getting cell meta).
|
517
|
-
|
518
539
|
while (newRows.length < populatedRowsLength || visualRowForPopulatedData <= endRowFromSelection) {
|
519
540
|
var _this$hot$getCellMeta = this.hot.getCellMeta(visualRowForPopulatedData, startColumn),
|
520
|
-
|
521
|
-
|
522
|
-
|
541
|
+
skipRowOnPaste = _this$hot$getCellMeta.skipRowOnPaste,
|
542
|
+
visualRow = _this$hot$getCellMeta.visualRow;
|
523
543
|
visualRowForPopulatedData = visualRow + 1;
|
524
|
-
|
525
544
|
if (skipRowOnPaste === true) {
|
526
545
|
/* eslint-disable no-continue */
|
527
546
|
continue;
|
528
547
|
}
|
529
|
-
|
530
548
|
lastVisualRow = visualRow;
|
531
549
|
visualColumnForPopulatedData = startColumn;
|
532
550
|
var newRow = [];
|
533
551
|
var insertedRow = newRows.length % populatedRowsLength;
|
534
|
-
|
535
552
|
while (newRow.length < populatedColumnsLength || visualColumnForPopulatedData <= endColumnFromSelection) {
|
536
553
|
var _this$hot$getCellMeta2 = this.hot.getCellMeta(startRow, visualColumnForPopulatedData),
|
537
|
-
|
538
|
-
|
539
|
-
|
554
|
+
skipColumnOnPaste = _this$hot$getCellMeta2.skipColumnOnPaste,
|
555
|
+
visualCol = _this$hot$getCellMeta2.visualCol;
|
540
556
|
visualColumnForPopulatedData = visualCol + 1;
|
541
|
-
|
542
557
|
if (skipColumnOnPaste === true) {
|
543
558
|
/* eslint-disable no-continue */
|
544
559
|
continue;
|
545
560
|
}
|
546
|
-
|
547
561
|
lastVisualColumn = visualCol;
|
548
562
|
var insertedColumn = newRow.length % populatedColumnsLength;
|
549
563
|
newRow.push(inputArray[insertedRow][insertedColumn]);
|
550
564
|
}
|
551
|
-
|
552
565
|
newRows.push(newRow);
|
553
566
|
}
|
554
|
-
|
555
567
|
this.hot.populateFromArray(startRow, startColumn, newRows, void 0, void 0, 'CopyPaste.paste', this.pasteMode);
|
556
568
|
return [startRow, startColumn, lastVisualRow, lastVisualColumn];
|
557
569
|
}
|
570
|
+
|
558
571
|
/**
|
559
572
|
* `copy` event callback on textarea element.
|
560
573
|
*
|
561
574
|
* @param {Event} event ClipboardEvent.
|
562
575
|
* @private
|
563
576
|
*/
|
564
|
-
|
565
577
|
}, {
|
566
578
|
key: "onCopy",
|
567
579
|
value: function onCopy(event) {
|
568
|
-
|
569
|
-
|
570
|
-
if (!this.hot.isListening() && !priv.isTriggeredByCopy || this.isEditorOpened()) {
|
580
|
+
if (!this.hot.isListening() && !_classPrivateFieldGet(this, _isTriggeredByCopy) || this.isEditorOpened()) {
|
571
581
|
return;
|
572
582
|
}
|
573
|
-
|
574
583
|
this.setCopyableText();
|
575
|
-
|
576
|
-
var
|
577
|
-
var
|
578
|
-
|
584
|
+
_classPrivateFieldSet(this, _isTriggeredByCopy, false);
|
585
|
+
var data = this.getRangedData(this.copyableRanges);
|
586
|
+
var copiedHeadersCount = _classPrivateMethodGet(this, _countCopiedHeaders, _countCopiedHeaders2).call(this, this.copyableRanges);
|
587
|
+
var allowCopying = !!this.hot.runHooks('beforeCopy', data, this.copyableRanges, copiedHeadersCount);
|
579
588
|
if (allowCopying) {
|
580
|
-
var textPlain = stringify(
|
581
|
-
|
589
|
+
var textPlain = stringify(data);
|
582
590
|
if (event && event.clipboardData) {
|
583
|
-
var textHTML = _dataToHTML(
|
584
|
-
|
591
|
+
var textHTML = _dataToHTML(data, this.hot.rootDocument);
|
585
592
|
event.clipboardData.setData('text/plain', textPlain);
|
586
593
|
event.clipboardData.setData('text/html', [META_HEAD, textHTML].join(''));
|
587
594
|
} else if (typeof ClipboardEvent === 'undefined') {
|
588
595
|
this.hot.rootWindow.clipboardData.setData('Text', textPlain);
|
589
596
|
}
|
590
|
-
|
591
|
-
this.hot.runHooks('afterCopy', rangedData, this.copyableRanges);
|
597
|
+
this.hot.runHooks('afterCopy', data, this.copyableRanges, copiedHeadersCount);
|
592
598
|
}
|
593
|
-
|
599
|
+
_classPrivateFieldSet(this, _copyMode, 'cells-only');
|
594
600
|
event.preventDefault();
|
595
601
|
}
|
602
|
+
|
596
603
|
/**
|
597
604
|
* `cut` event callback on textarea element.
|
598
605
|
*
|
599
606
|
* @param {Event} event ClipboardEvent.
|
600
607
|
* @private
|
601
608
|
*/
|
602
|
-
|
603
609
|
}, {
|
604
610
|
key: "onCut",
|
605
611
|
value: function onCut(event) {
|
606
|
-
|
607
|
-
|
608
|
-
if (!this.hot.isListening() && !priv.isTriggeredByCut || this.isEditorOpened()) {
|
612
|
+
if (!this.hot.isListening() && !_classPrivateFieldGet(this, _isTriggeredByCut) || this.isEditorOpened()) {
|
609
613
|
return;
|
610
614
|
}
|
611
|
-
|
612
615
|
this.setCopyableText();
|
613
|
-
|
616
|
+
_classPrivateFieldSet(this, _isTriggeredByCut, false);
|
614
617
|
var rangedData = this.getRangedData(this.copyableRanges);
|
615
618
|
var allowCuttingOut = !!this.hot.runHooks('beforeCut', rangedData, this.copyableRanges);
|
616
|
-
|
617
619
|
if (allowCuttingOut) {
|
618
620
|
var textPlain = stringify(rangedData);
|
619
|
-
|
620
621
|
if (event && event.clipboardData) {
|
621
622
|
var textHTML = _dataToHTML(rangedData, this.hot.rootDocument);
|
622
|
-
|
623
623
|
event.clipboardData.setData('text/plain', textPlain);
|
624
624
|
event.clipboardData.setData('text/html', [META_HEAD, textHTML].join(''));
|
625
625
|
} else if (typeof ClipboardEvent === 'undefined') {
|
626
626
|
this.hot.rootWindow.clipboardData.setData('Text', textPlain);
|
627
627
|
}
|
628
|
-
|
629
628
|
this.hot.emptySelectedCells('CopyPaste.cut');
|
630
629
|
this.hot.runHooks('afterCut', rangedData, this.copyableRanges);
|
631
630
|
}
|
632
|
-
|
633
631
|
event.preventDefault();
|
634
632
|
}
|
633
|
+
|
635
634
|
/**
|
636
635
|
* `paste` event callback on textarea element.
|
637
636
|
*
|
638
637
|
* @param {Event} event ClipboardEvent or pseudo ClipboardEvent, if paste was called manually.
|
639
638
|
* @private
|
640
639
|
*/
|
641
|
-
|
642
640
|
}, {
|
643
641
|
key: "onPaste",
|
644
642
|
value: function onPaste(event) {
|
645
643
|
if (!this.hot.isListening() || this.isEditorOpened()) {
|
646
644
|
return;
|
647
645
|
}
|
648
|
-
|
649
646
|
if (event && event.preventDefault) {
|
650
647
|
event.preventDefault();
|
651
648
|
}
|
652
|
-
|
653
649
|
var pastedData;
|
654
|
-
|
655
650
|
if (event && typeof event.clipboardData !== 'undefined') {
|
656
651
|
var textHTML = sanitize(event.clipboardData.getData('text/html'), {
|
657
652
|
ADD_TAGS: ['meta'],
|
658
653
|
ADD_ATTR: ['content'],
|
659
654
|
FORCE_BODY: true
|
660
655
|
});
|
661
|
-
|
662
656
|
if (textHTML && /(<table)|(<TABLE)/g.test(textHTML)) {
|
663
657
|
var parsedConfig = htmlToGridSettings(textHTML, this.hot.rootDocument);
|
664
658
|
pastedData = parsedConfig.data;
|
@@ -668,49 +662,54 @@ export var CopyPaste = /*#__PURE__*/function (_BasePlugin) {
|
|
668
662
|
} else if (typeof ClipboardEvent === 'undefined' && typeof this.hot.rootWindow.clipboardData !== 'undefined') {
|
669
663
|
pastedData = this.hot.rootWindow.clipboardData.getData('Text');
|
670
664
|
}
|
671
|
-
|
672
665
|
if (typeof pastedData === 'string') {
|
673
666
|
pastedData = parse(pastedData);
|
674
667
|
}
|
675
|
-
|
676
668
|
if (pastedData && pastedData.length === 0) {
|
677
669
|
return;
|
678
670
|
}
|
679
|
-
|
680
671
|
if (this.hot.runHooks('beforePaste', pastedData, this.copyableRanges) === false) {
|
681
672
|
return;
|
682
673
|
}
|
683
|
-
|
684
674
|
var _this$populateValues = this.populateValues(pastedData),
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
675
|
+
_this$populateValues2 = _slicedToArray(_this$populateValues, 4),
|
676
|
+
startRow = _this$populateValues2[0],
|
677
|
+
startColumn = _this$populateValues2[1],
|
678
|
+
endRow = _this$populateValues2[2],
|
679
|
+
endColumn = _this$populateValues2[3];
|
691
680
|
this.hot.selectCell(startRow, startColumn, Math.min(this.hot.countRows() - 1, endRow), Math.min(this.hot.countCols() - 1, endColumn));
|
692
681
|
this.hot.runHooks('afterPaste', pastedData, this.copyableRanges);
|
693
682
|
}
|
683
|
+
|
694
684
|
/**
|
695
685
|
* Add copy and cut options to the Context Menu.
|
696
686
|
*
|
697
687
|
* @private
|
698
688
|
* @param {object} options Contains default added options of the Context Menu.
|
699
689
|
*/
|
700
|
-
|
701
690
|
}, {
|
702
691
|
key: "onAfterContextMenuDefaultOptions",
|
703
692
|
value: function onAfterContextMenuDefaultOptions(options) {
|
704
693
|
options.items.push({
|
705
694
|
name: '---------'
|
706
|
-
}, copyItem(this)
|
695
|
+
}, copyItem(this));
|
696
|
+
if (_classPrivateFieldGet(this, _enableCopyColumnHeaders)) {
|
697
|
+
options.items.push(copyWithColumnHeadersItem(this));
|
698
|
+
}
|
699
|
+
if (_classPrivateFieldGet(this, _enableCopyColumnGroupHeaders)) {
|
700
|
+
options.items.push(copyWithColumnGroupHeadersItem(this));
|
701
|
+
}
|
702
|
+
if (_classPrivateFieldGet(this, _enableCopyColumnHeadersOnly)) {
|
703
|
+
options.items.push(copyColumnHeadersOnlyItem(this));
|
704
|
+
}
|
705
|
+
options.items.push(cutItem(this));
|
707
706
|
}
|
707
|
+
|
708
708
|
/**
|
709
709
|
* Force focus on focusableElement.
|
710
710
|
*
|
711
711
|
* @private
|
712
712
|
*/
|
713
|
-
|
714
713
|
}, {
|
715
714
|
key: "onAfterOnCellMouseUp",
|
716
715
|
value: function onAfterOnCellMouseUp() {
|
@@ -719,62 +718,52 @@ export var CopyPaste = /*#__PURE__*/function (_BasePlugin) {
|
|
719
718
|
if (!this.hot.isListening() || this.isEditorOpened() || this.hot.getSettings().fragmentSelection) {
|
720
719
|
return;
|
721
720
|
}
|
722
|
-
|
723
721
|
this.getOrCreateFocusableElement();
|
724
722
|
this.focusableElement.focus();
|
725
723
|
}
|
724
|
+
|
726
725
|
/**
|
727
726
|
* Force focus on focusableElement after end of the selection.
|
728
727
|
*
|
729
728
|
* @private
|
730
729
|
*/
|
731
|
-
|
732
730
|
}, {
|
733
731
|
key: "onAfterSelectionEnd",
|
734
732
|
value: function onAfterSelectionEnd() {
|
735
|
-
var _privatePool$get = privatePool.get(this),
|
736
|
-
isFragmentSelectionEnabled = _privatePool$get.isFragmentSelectionEnabled;
|
737
|
-
|
738
733
|
if (this.isEditorOpened()) {
|
739
734
|
return;
|
740
735
|
}
|
741
|
-
|
742
736
|
this.getOrCreateFocusableElement();
|
743
|
-
|
744
|
-
if (isFragmentSelectionEnabled && this.focusableElement.getFocusableElement() !== this.hot.rootDocument.activeElement && getSelectionText()) {
|
737
|
+
if (this.hot.getSettings().fragmentSelection && this.focusableElement.getFocusableElement() !== this.hot.rootDocument.activeElement && getSelectionText()) {
|
745
738
|
return;
|
746
739
|
}
|
747
|
-
|
748
740
|
this.setCopyableText();
|
749
741
|
this.focusableElement.focus();
|
750
742
|
}
|
743
|
+
|
751
744
|
/**
|
752
745
|
* `beforeKeyDown` listener to force focus of focusableElement.
|
753
746
|
*
|
754
747
|
* @private
|
755
748
|
*/
|
756
|
-
|
757
749
|
}, {
|
758
750
|
key: "onBeforeKeyDown",
|
759
751
|
value: function onBeforeKeyDown() {
|
760
752
|
if (!this.hot.isListening() || this.isEditorOpened()) {
|
761
753
|
return;
|
762
754
|
}
|
763
|
-
|
764
755
|
var activeElement = this.hot.rootDocument.activeElement;
|
765
756
|
var activeEditor = this.hot.getActiveEditor();
|
766
|
-
|
767
757
|
if (!activeEditor || activeElement !== this.focusableElement.getFocusableElement() && activeElement !== activeEditor.select) {
|
768
758
|
return;
|
769
759
|
}
|
770
|
-
|
771
760
|
this.getOrCreateFocusableElement();
|
772
761
|
this.focusableElement.focus();
|
773
762
|
}
|
763
|
+
|
774
764
|
/**
|
775
|
-
* Destroys the plugin instance.
|
765
|
+
* Destroys the `CopyPaste` plugin instance.
|
776
766
|
*/
|
777
|
-
|
778
767
|
}, {
|
779
768
|
key: "destroy",
|
780
769
|
value: function destroy() {
|
@@ -782,7 +771,6 @@ export var CopyPaste = /*#__PURE__*/function (_BasePlugin) {
|
|
782
771
|
destroyElement(this.focusableElement);
|
783
772
|
this.focusableElement = null;
|
784
773
|
}
|
785
|
-
|
786
774
|
_get(_getPrototypeOf(CopyPaste.prototype), "destroy", this).call(this);
|
787
775
|
}
|
788
776
|
}], [{
|
@@ -800,7 +788,27 @@ export var CopyPaste = /*#__PURE__*/function (_BasePlugin) {
|
|
800
788
|
get: function get() {
|
801
789
|
return PLUGIN_PRIORITY;
|
802
790
|
}
|
803
|
-
}]);
|
804
791
|
|
792
|
+
/**
|
793
|
+
* The maximum number of columns than can be copied to the clipboard.
|
794
|
+
*
|
795
|
+
* @type {number}
|
796
|
+
* @default Infinity
|
797
|
+
*/
|
798
|
+
}]);
|
805
799
|
return CopyPaste;
|
806
|
-
}(BasePlugin);
|
800
|
+
}(BasePlugin);
|
801
|
+
function _countCopiedHeaders2(ranges) {
|
802
|
+
var _normalizeRanges2 = normalizeRanges(ranges),
|
803
|
+
rows = _normalizeRanges2.rows;
|
804
|
+
var columnHeadersCount = 0;
|
805
|
+
for (var row = 0; row < rows.length; row++) {
|
806
|
+
if (rows[row] >= 0) {
|
807
|
+
break;
|
808
|
+
}
|
809
|
+
columnHeadersCount += 1;
|
810
|
+
}
|
811
|
+
return {
|
812
|
+
columnHeadersCount: columnHeadersCount
|
813
|
+
};
|
814
|
+
}
|