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
package/helpers/dom/element.mjs
CHANGED
@@ -1,15 +1,9 @@
|
|
1
1
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
2
|
-
|
3
2
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
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 _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
8
|
-
|
9
5
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
10
|
-
|
11
6
|
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; }
|
12
|
-
|
13
7
|
import "core-js/modules/es.object.get-prototype-of.js";
|
14
8
|
import "core-js/modules/es.array.includes.js";
|
15
9
|
import "core-js/modules/es.string.includes.js";
|
@@ -24,6 +18,7 @@ import "core-js/modules/es.array.join.js";
|
|
24
18
|
import "core-js/modules/es.string.trim.js";
|
25
19
|
import "core-js/modules/es.string.replace.js";
|
26
20
|
import "core-js/modules/es.array.concat.js";
|
21
|
+
import "core-js/modules/web.dom-collections.for-each.js";
|
27
22
|
import "core-js/modules/es.symbol.js";
|
28
23
|
import "core-js/modules/es.symbol.description.js";
|
29
24
|
import "core-js/modules/es.symbol.iterator.js";
|
@@ -42,19 +37,16 @@ import { sanitize } from "../string.mjs";
|
|
42
37
|
* @param {number} [level=0] Traversing deep level.
|
43
38
|
* @returns {HTMLElement|null}
|
44
39
|
*/
|
45
|
-
|
46
40
|
export function getParent(element) {
|
47
41
|
var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
48
42
|
var iteration = -1;
|
49
43
|
var parent = null;
|
50
44
|
var elementToCheck = element;
|
51
|
-
|
52
45
|
while (elementToCheck !== null) {
|
53
46
|
if (iteration === level) {
|
54
47
|
parent = elementToCheck;
|
55
48
|
break;
|
56
49
|
}
|
57
|
-
|
58
50
|
if (elementToCheck.host && elementToCheck.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
|
59
51
|
elementToCheck = elementToCheck.host;
|
60
52
|
} else {
|
@@ -62,39 +54,39 @@ export function getParent(element) {
|
|
62
54
|
elementToCheck = elementToCheck.parentNode;
|
63
55
|
}
|
64
56
|
}
|
65
|
-
|
66
57
|
return parent;
|
67
58
|
}
|
59
|
+
|
68
60
|
/**
|
69
61
|
* Gets `frameElement` of the specified frame. Returns null if it is a top frame or if script has no access to read property.
|
70
62
|
*
|
71
63
|
* @param {Window} frame Frame from which should be get frameElement in safe way.
|
72
64
|
* @returns {HTMLIFrameElement|null}
|
73
65
|
*/
|
74
|
-
|
75
66
|
export function getFrameElement(frame) {
|
76
67
|
return Object.getPrototypeOf(frame.parent) && frame.frameElement;
|
77
68
|
}
|
69
|
+
|
78
70
|
/**
|
79
71
|
* Gets parent frame of the specified frame. Returns null if it is a top frame or if script has no access to read property.
|
80
72
|
*
|
81
73
|
* @param {Window} frame Frame from which should be get frameElement in safe way.
|
82
74
|
* @returns {Window|null}
|
83
75
|
*/
|
84
|
-
|
85
76
|
export function getParentWindow(frame) {
|
86
77
|
return getFrameElement(frame) && frame.parent;
|
87
78
|
}
|
79
|
+
|
88
80
|
/**
|
89
81
|
* Checks if script has access to read from parent frame of specified frame.
|
90
82
|
*
|
91
83
|
* @param {Window} frame Frame from which should be get frameElement in safe way.
|
92
84
|
* @returns {boolean}
|
93
85
|
*/
|
94
|
-
|
95
86
|
export function hasAccessToParentWindow(frame) {
|
96
87
|
return !!Object.getPrototypeOf(frame.parent);
|
97
88
|
}
|
89
|
+
|
98
90
|
/**
|
99
91
|
* Goes up the DOM tree (including given element) until it finds an parent element that matches the nodes or nodes name.
|
100
92
|
* This method goes up through web components.
|
@@ -104,36 +96,31 @@ export function hasAccessToParentWindow(frame) {
|
|
104
96
|
* @param {Node} [until] The element until the traversing ends.
|
105
97
|
* @returns {Node|null}
|
106
98
|
*/
|
107
|
-
|
108
99
|
export function closest(element) {
|
109
100
|
var nodes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
110
101
|
var until = arguments.length > 2 ? arguments[2] : undefined;
|
111
102
|
var _Node = Node,
|
112
|
-
|
113
|
-
|
103
|
+
ELEMENT_NODE = _Node.ELEMENT_NODE,
|
104
|
+
DOCUMENT_FRAGMENT_NODE = _Node.DOCUMENT_FRAGMENT_NODE;
|
114
105
|
var elementToCheck = element;
|
115
|
-
|
116
106
|
while (elementToCheck !== null && elementToCheck !== void 0 && elementToCheck !== until) {
|
117
107
|
var _elementToCheck = elementToCheck,
|
118
|
-
|
119
|
-
|
120
|
-
|
108
|
+
nodeType = _elementToCheck.nodeType,
|
109
|
+
nodeName = _elementToCheck.nodeName;
|
121
110
|
if (nodeType === ELEMENT_NODE && (nodes.includes(nodeName) || nodes.includes(elementToCheck))) {
|
122
111
|
return elementToCheck;
|
123
112
|
}
|
124
|
-
|
125
113
|
var _elementToCheck2 = elementToCheck,
|
126
|
-
|
127
|
-
|
114
|
+
host = _elementToCheck2.host;
|
128
115
|
if (host && nodeType === DOCUMENT_FRAGMENT_NODE) {
|
129
116
|
elementToCheck = host;
|
130
117
|
} else {
|
131
118
|
elementToCheck = elementToCheck.parentNode;
|
132
119
|
}
|
133
120
|
}
|
134
|
-
|
135
121
|
return null;
|
136
122
|
}
|
123
|
+
|
137
124
|
/**
|
138
125
|
* Goes "down" the DOM tree (including given element) until it finds an element that matches the nodes or nodes name.
|
139
126
|
*
|
@@ -142,30 +129,25 @@ export function closest(element) {
|
|
142
129
|
* @param {HTMLElement} [until] The list of elements until the traversing ends.
|
143
130
|
* @returns {HTMLElement|null}
|
144
131
|
*/
|
145
|
-
|
146
132
|
export function closestDown(element, nodes, until) {
|
147
133
|
var matched = [];
|
148
134
|
var elementToCheck = element;
|
149
|
-
|
150
135
|
while (elementToCheck) {
|
151
136
|
elementToCheck = closest(elementToCheck, nodes, until);
|
152
|
-
|
153
137
|
if (!elementToCheck || until && !until.contains(elementToCheck)) {
|
154
138
|
break;
|
155
139
|
}
|
156
|
-
|
157
140
|
matched.push(elementToCheck);
|
158
|
-
|
159
141
|
if (elementToCheck.host && elementToCheck.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
|
160
142
|
elementToCheck = elementToCheck.host;
|
161
143
|
} else {
|
162
144
|
elementToCheck = elementToCheck.parentNode;
|
163
145
|
}
|
164
146
|
}
|
165
|
-
|
166
147
|
var length = matched.length;
|
167
148
|
return length ? matched[length - 1] : null;
|
168
149
|
}
|
150
|
+
|
169
151
|
/**
|
170
152
|
* Goes up the DOM tree and checks if element is child of another element.
|
171
153
|
*
|
@@ -174,11 +156,9 @@ export function closestDown(element, nodes, until) {
|
|
174
156
|
* If string provided, function returns `true` for the first occurrence of element with that class.
|
175
157
|
* @returns {boolean}
|
176
158
|
*/
|
177
|
-
|
178
159
|
export function isChildOf(child, parent) {
|
179
160
|
var node = child.parentNode;
|
180
161
|
var queriedParents = [];
|
181
|
-
|
182
162
|
if (typeof parent === 'string') {
|
183
163
|
if (child.defaultView) {
|
184
164
|
queriedParents = Array.prototype.slice.call(child.querySelectorAll(parent), 0);
|
@@ -188,17 +168,15 @@ export function isChildOf(child, parent) {
|
|
188
168
|
} else {
|
189
169
|
queriedParents.push(parent);
|
190
170
|
}
|
191
|
-
|
192
171
|
while (node !== null) {
|
193
172
|
if (queriedParents.indexOf(node) > -1) {
|
194
173
|
return true;
|
195
174
|
}
|
196
|
-
|
197
175
|
node = node.parentNode;
|
198
176
|
}
|
199
|
-
|
200
177
|
return false;
|
201
178
|
}
|
179
|
+
|
202
180
|
/**
|
203
181
|
* Counts index of element within its parent.
|
204
182
|
* WARNING: for performance reasons, assumes there are only element nodes (no text nodes). This is true
|
@@ -208,20 +186,18 @@ export function isChildOf(child, parent) {
|
|
208
186
|
* @param {Element} element The element to check.
|
209
187
|
* @returns {number}
|
210
188
|
*/
|
211
|
-
|
212
189
|
export function index(element) {
|
213
190
|
var i = 0;
|
214
191
|
var elementToCheck = element;
|
215
|
-
|
216
192
|
if (elementToCheck.previousSibling) {
|
217
193
|
/* eslint-disable no-cond-assign */
|
218
194
|
while (elementToCheck = elementToCheck.previousSibling) {
|
219
195
|
i += 1;
|
220
196
|
}
|
221
197
|
}
|
222
|
-
|
223
198
|
return i;
|
224
199
|
}
|
200
|
+
|
225
201
|
/**
|
226
202
|
* Check if the provided overlay contains the provided element.
|
227
203
|
*
|
@@ -230,66 +206,51 @@ export function index(element) {
|
|
230
206
|
* @param {HTMLElement} root The root element.
|
231
207
|
* @returns {boolean}
|
232
208
|
*/
|
233
|
-
|
234
209
|
export function overlayContainsElement(overlayType, element, root) {
|
235
210
|
var overlayElement = root.parentElement.querySelector(".ht_clone_".concat(overlayType));
|
236
211
|
return overlayElement ? overlayElement.contains(element) : null;
|
237
212
|
}
|
238
|
-
|
239
213
|
var _hasClass;
|
240
|
-
|
241
214
|
var _addClass;
|
242
|
-
|
243
215
|
var _removeClass;
|
216
|
+
|
244
217
|
/**
|
245
218
|
* @param {string} classNames The element "class" attribute string.
|
246
219
|
* @returns {string[]}
|
247
220
|
*/
|
248
|
-
|
249
|
-
|
250
221
|
function filterEmptyClassNames(classNames) {
|
251
222
|
if (!classNames || !classNames.length) {
|
252
223
|
return [];
|
253
224
|
}
|
254
|
-
|
255
225
|
return classNames.filter(function (x) {
|
256
226
|
return !!x;
|
257
227
|
});
|
258
228
|
}
|
259
|
-
|
260
229
|
if (isClassListSupported()) {
|
261
230
|
var isSupportMultipleClassesArg = function isSupportMultipleClassesArg(rootDocument) {
|
262
231
|
var element = rootDocument.createElement('div');
|
263
232
|
element.classList.add('test', 'test2');
|
264
233
|
return element.classList.contains('test2');
|
265
234
|
};
|
266
|
-
|
267
235
|
_hasClass = function _hasClass(element, className) {
|
268
236
|
if (element.classList === void 0 || typeof className !== 'string' || className === '') {
|
269
237
|
return false;
|
270
238
|
}
|
271
|
-
|
272
239
|
return element.classList.contains(className);
|
273
240
|
};
|
274
|
-
|
275
241
|
_addClass = function _addClass(element, classes) {
|
276
242
|
var rootDocument = element.ownerDocument;
|
277
243
|
var className = classes;
|
278
|
-
|
279
244
|
if (typeof className === 'string') {
|
280
245
|
className = className.split(' ');
|
281
246
|
}
|
282
|
-
|
283
247
|
className = filterEmptyClassNames(className);
|
284
|
-
|
285
248
|
if (className.length > 0) {
|
286
249
|
if (isSupportMultipleClassesArg(rootDocument)) {
|
287
250
|
var _element$classList;
|
288
|
-
|
289
251
|
(_element$classList = element.classList).add.apply(_element$classList, _toConsumableArray(className));
|
290
252
|
} else {
|
291
253
|
var len = 0;
|
292
|
-
|
293
254
|
while (className[len]) {
|
294
255
|
element.classList.add(className[len]);
|
295
256
|
len += 1;
|
@@ -297,25 +258,19 @@ if (isClassListSupported()) {
|
|
297
258
|
}
|
298
259
|
}
|
299
260
|
};
|
300
|
-
|
301
261
|
_removeClass = function _removeClass(element, classes) {
|
302
262
|
var rootDocument = element.ownerDocument;
|
303
263
|
var className = classes;
|
304
|
-
|
305
264
|
if (typeof className === 'string') {
|
306
265
|
className = className.split(' ');
|
307
266
|
}
|
308
|
-
|
309
267
|
className = filterEmptyClassNames(className);
|
310
|
-
|
311
268
|
if (className.length > 0) {
|
312
269
|
if (isSupportMultipleClassesArg(rootDocument)) {
|
313
270
|
var _element$classList2;
|
314
|
-
|
315
271
|
(_element$classList2 = element.classList).remove.apply(_element$classList2, _toConsumableArray(className));
|
316
272
|
} else {
|
317
273
|
var len = 0;
|
318
|
-
|
319
274
|
while (className[len]) {
|
320
275
|
element.classList.remove(className[len]);
|
321
276
|
len += 1;
|
@@ -327,22 +282,17 @@ if (isClassListSupported()) {
|
|
327
282
|
var createClassNameRegExp = function createClassNameRegExp(className) {
|
328
283
|
return new RegExp("(\\s|^)".concat(className, "(\\s|$)"));
|
329
284
|
};
|
330
|
-
|
331
285
|
_hasClass = function _hasClass(element, className) {
|
332
286
|
// http://snipplr.com/view/3561/addclass-removeclass-hasclass/
|
333
287
|
return element.className !== void 0 && createClassNameRegExp(className).test(element.className);
|
334
288
|
};
|
335
|
-
|
336
289
|
_addClass = function _addClass(element, classes) {
|
337
290
|
var _className = element.className;
|
338
291
|
var className = classes;
|
339
|
-
|
340
292
|
if (typeof className === 'string') {
|
341
293
|
className = className.split(' ');
|
342
294
|
}
|
343
|
-
|
344
295
|
className = filterEmptyClassNames(className);
|
345
|
-
|
346
296
|
if (_className === '') {
|
347
297
|
_className = className.join(' ');
|
348
298
|
} else {
|
@@ -352,32 +302,27 @@ if (isClassListSupported()) {
|
|
352
302
|
}
|
353
303
|
}
|
354
304
|
}
|
355
|
-
|
356
305
|
element.className = _className;
|
357
306
|
};
|
358
|
-
|
359
307
|
_removeClass = function _removeClass(element, classes) {
|
360
308
|
var len = 0;
|
361
309
|
var _className = element.className;
|
362
310
|
var className = classes;
|
363
|
-
|
364
311
|
if (typeof className === 'string') {
|
365
312
|
className = className.split(' ');
|
366
313
|
}
|
367
|
-
|
368
314
|
className = filterEmptyClassNames(className);
|
369
|
-
|
370
315
|
while (className[len]) {
|
371
316
|
// String.prototype.trim is defined in polyfill.js
|
372
317
|
_className = _className.replace(createClassNameRegExp(className[len]), ' ').trim();
|
373
318
|
len += 1;
|
374
319
|
}
|
375
|
-
|
376
320
|
if (element.className !== _className) {
|
377
321
|
element.className = _className;
|
378
322
|
}
|
379
323
|
};
|
380
324
|
}
|
325
|
+
|
381
326
|
/**
|
382
327
|
* Checks if element has class name.
|
383
328
|
*
|
@@ -385,46 +330,44 @@ if (isClassListSupported()) {
|
|
385
330
|
* @param {string} className Class name to check.
|
386
331
|
* @returns {boolean}
|
387
332
|
*/
|
388
|
-
|
389
|
-
|
390
333
|
export function hasClass(element, className) {
|
391
334
|
return _hasClass(element, className);
|
392
335
|
}
|
336
|
+
|
393
337
|
/**
|
394
338
|
* Add class name to an element.
|
395
339
|
*
|
396
340
|
* @param {HTMLElement} element An element to process.
|
397
341
|
* @param {string|Array} className Class name as string or array of strings.
|
398
342
|
*/
|
399
|
-
|
400
343
|
export function addClass(element, className) {
|
401
344
|
_addClass(element, className);
|
402
345
|
}
|
346
|
+
|
403
347
|
/**
|
404
348
|
* Remove class name from an element.
|
405
349
|
*
|
406
350
|
* @param {HTMLElement} element An element to process.
|
407
351
|
* @param {string|Array} className Class name as string or array of strings.
|
408
352
|
*/
|
409
|
-
|
410
353
|
export function removeClass(element, className) {
|
411
354
|
_removeClass(element, className);
|
412
355
|
}
|
356
|
+
|
413
357
|
/**
|
414
358
|
* @param {HTMLElement} element An element from the text is removed.
|
415
359
|
*/
|
416
|
-
|
417
360
|
export function removeTextNodes(element) {
|
418
361
|
if (element.nodeType === 3) {
|
419
362
|
element.parentNode.removeChild(element); // bye text nodes!
|
420
363
|
} else if (['TABLE', 'THEAD', 'TBODY', 'TFOOT', 'TR'].indexOf(element.nodeName) > -1) {
|
421
364
|
var childs = element.childNodes;
|
422
|
-
|
423
365
|
for (var i = childs.length - 1; i >= 0; i--) {
|
424
366
|
removeTextNodes(childs[i]);
|
425
367
|
}
|
426
368
|
}
|
427
369
|
}
|
370
|
+
|
428
371
|
/**
|
429
372
|
* Remove childs function
|
430
373
|
* WARNING - this doesn't unload events and data attached by jQuery
|
@@ -433,16 +376,16 @@ export function removeTextNodes(element) {
|
|
433
376
|
*
|
434
377
|
* @param {HTMLElement} element An element to clear.
|
435
378
|
*/
|
436
|
-
|
437
379
|
export function empty(element) {
|
438
380
|
var child;
|
439
|
-
/* eslint-disable no-cond-assign */
|
440
381
|
|
382
|
+
/* eslint-disable no-cond-assign */
|
441
383
|
while (child = element.lastChild) {
|
442
384
|
element.removeChild(child);
|
443
385
|
}
|
444
386
|
}
|
445
387
|
export var HTML_CHARACTERS = /(<(.*)>|&(.*);)/;
|
388
|
+
|
446
389
|
/**
|
447
390
|
* Insert content into element trying avoid innerHTML method.
|
448
391
|
*
|
@@ -450,28 +393,26 @@ export var HTML_CHARACTERS = /(<(.*)>|&(.*);)/;
|
|
450
393
|
* @param {string} content The text to write.
|
451
394
|
* @param {boolean} [sanitizeContent=true] If `true`, the content will be sanitized before writing to the element.
|
452
395
|
*/
|
453
|
-
|
454
396
|
export function fastInnerHTML(element, content) {
|
455
397
|
var sanitizeContent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
456
|
-
|
457
398
|
if (HTML_CHARACTERS.test(content)) {
|
458
399
|
element.innerHTML = sanitizeContent ? sanitize(content) : content;
|
459
400
|
} else {
|
460
401
|
fastInnerText(element, content);
|
461
402
|
}
|
462
403
|
}
|
404
|
+
|
463
405
|
/**
|
464
406
|
* Insert text content into element.
|
465
407
|
*
|
466
408
|
* @param {HTMLElement} element An element to write into.
|
467
409
|
* @param {string} content The text to write.
|
468
410
|
*/
|
469
|
-
|
470
411
|
export function fastInnerText(element, content) {
|
471
412
|
var child = element.firstChild;
|
472
|
-
|
473
413
|
if (child && child.nodeType === 3 && child.nextSibling === null) {
|
474
414
|
// fast lane - replace existing text node
|
415
|
+
|
475
416
|
if (isTextContentSupported) {
|
476
417
|
// http://jsperf.com/replace-text-vs-reuse
|
477
418
|
child.textContent = content;
|
@@ -485,17 +426,16 @@ export function fastInnerText(element, content) {
|
|
485
426
|
element.appendChild(element.ownerDocument.createTextNode(content));
|
486
427
|
}
|
487
428
|
}
|
429
|
+
|
488
430
|
/**
|
489
431
|
* Returns true if element is attached to the DOM and visible, false otherwise.
|
490
432
|
*
|
491
433
|
* @param {HTMLElement} element An element to check.
|
492
434
|
* @returns {boolean}
|
493
435
|
*/
|
494
|
-
|
495
436
|
export function isVisible(element) {
|
496
437
|
var documentElement = element.ownerDocument.documentElement;
|
497
438
|
var next = element;
|
498
|
-
|
499
439
|
while (next !== documentElement) {
|
500
440
|
// until <html> reached
|
501
441
|
if (next === null) {
|
@@ -513,7 +453,6 @@ export function isVisible(element) {
|
|
513
453
|
// Chrome 33.0.1723.0 canary (2013-11-29) Web Platform features enabled
|
514
454
|
return isVisible(next.host);
|
515
455
|
}
|
516
|
-
|
517
456
|
throw new Error('Lost in Web Components world');
|
518
457
|
} else {
|
519
458
|
return false; // this is a node detached from document in IE8
|
@@ -521,19 +460,17 @@ export function isVisible(element) {
|
|
521
460
|
} else if (next.style && next.style.display === 'none') {
|
522
461
|
return false;
|
523
462
|
}
|
524
|
-
|
525
463
|
next = next.parentNode;
|
526
464
|
}
|
527
|
-
|
528
465
|
return true;
|
529
466
|
}
|
467
|
+
|
530
468
|
/**
|
531
469
|
* Returns elements top and left offset relative to the document. Function is not compatible with jQuery offset.
|
532
470
|
*
|
533
471
|
* @param {HTMLElement} element An element to get the offset position from.
|
534
472
|
* @returns {object} Returns object with `top` and `left` props.
|
535
473
|
*/
|
536
|
-
|
537
474
|
export function offset(element) {
|
538
475
|
var rootDocument = element.ownerDocument;
|
539
476
|
var rootWindow = rootDocument.defaultView;
|
@@ -543,7 +480,6 @@ export function offset(element) {
|
|
543
480
|
var offsetTop;
|
544
481
|
var lastElem;
|
545
482
|
var box;
|
546
|
-
|
547
483
|
if (hasCaptionProblem() && elementToCheck.firstChild && elementToCheck.firstChild.nodeName === 'CAPTION') {
|
548
484
|
// fixes problem with Firefox ignoring <caption> in TABLE offset (see also export outerHeight)
|
549
485
|
// http://jsperf.com/offset-vs-getboundingclientrect/8
|
@@ -553,35 +489,33 @@ export function offset(element) {
|
|
553
489
|
left: box.left + (rootWindow.pageXOffset || documentElement.scrollLeft) - (documentElement.clientLeft || 0)
|
554
490
|
};
|
555
491
|
}
|
556
|
-
|
557
492
|
offsetLeft = elementToCheck.offsetLeft;
|
558
493
|
offsetTop = elementToCheck.offsetTop;
|
559
494
|
lastElem = elementToCheck;
|
560
|
-
/* eslint-disable no-cond-assign */
|
561
495
|
|
496
|
+
/* eslint-disable no-cond-assign */
|
562
497
|
while (elementToCheck = elementToCheck.offsetParent) {
|
563
498
|
// from my observation, document.body always has scrollLeft/scrollTop == 0
|
564
499
|
if (elementToCheck === rootDocument.body) {
|
565
500
|
break;
|
566
501
|
}
|
567
|
-
|
568
502
|
offsetLeft += elementToCheck.offsetLeft;
|
569
503
|
offsetTop += elementToCheck.offsetTop;
|
570
504
|
lastElem = elementToCheck;
|
571
|
-
}
|
572
|
-
|
505
|
+
}
|
573
506
|
|
507
|
+
// slow - http://jsperf.com/offset-vs-getboundingclientrect/6
|
574
508
|
if (lastElem && lastElem.style.position === 'fixed') {
|
575
509
|
// if(lastElem !== document.body) { //faster but does gives false positive in Firefox
|
576
510
|
offsetLeft += rootWindow.pageXOffset || documentElement.scrollLeft;
|
577
511
|
offsetTop += rootWindow.pageYOffset || documentElement.scrollTop;
|
578
512
|
}
|
579
|
-
|
580
513
|
return {
|
581
514
|
left: offsetLeft,
|
582
515
|
top: offsetTop
|
583
516
|
};
|
584
517
|
}
|
518
|
+
|
585
519
|
/**
|
586
520
|
* Returns the document's scrollTop property.
|
587
521
|
*
|
@@ -589,18 +523,16 @@ export function offset(element) {
|
|
589
523
|
* @returns {number}
|
590
524
|
*/
|
591
525
|
// eslint-disable-next-line no-restricted-globals
|
592
|
-
|
593
526
|
export function getWindowScrollTop() {
|
594
527
|
var rootWindow = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
|
595
528
|
var res = rootWindow.scrollY;
|
596
|
-
|
597
529
|
if (res === void 0) {
|
598
530
|
// IE8-11
|
599
531
|
res = rootWindow.document.documentElement.scrollTop;
|
600
532
|
}
|
601
|
-
|
602
533
|
return res;
|
603
534
|
}
|
535
|
+
|
604
536
|
/**
|
605
537
|
* Returns the document's scrollLeft property.
|
606
538
|
*
|
@@ -608,18 +540,16 @@ export function getWindowScrollTop() {
|
|
608
540
|
* @returns {number}
|
609
541
|
*/
|
610
542
|
// eslint-disable-next-line no-restricted-globals
|
611
|
-
|
612
543
|
export function getWindowScrollLeft() {
|
613
544
|
var rootWindow = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
|
614
545
|
var res = rootWindow.scrollX;
|
615
|
-
|
616
546
|
if (res === void 0) {
|
617
547
|
// IE8-11
|
618
548
|
res = rootWindow.document.documentElement.scrollLeft;
|
619
549
|
}
|
620
|
-
|
621
550
|
return res;
|
622
551
|
}
|
552
|
+
|
623
553
|
/**
|
624
554
|
* Returns the provided element's scrollTop property.
|
625
555
|
*
|
@@ -628,16 +558,14 @@ export function getWindowScrollLeft() {
|
|
628
558
|
* @returns {number}
|
629
559
|
*/
|
630
560
|
// eslint-disable-next-line no-restricted-globals
|
631
|
-
|
632
561
|
export function getScrollTop(element) {
|
633
562
|
var rootWindow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;
|
634
|
-
|
635
563
|
if (element === rootWindow) {
|
636
564
|
return getWindowScrollTop(rootWindow);
|
637
565
|
}
|
638
|
-
|
639
566
|
return element.scrollTop;
|
640
567
|
}
|
568
|
+
|
641
569
|
/**
|
642
570
|
* Returns the provided element's scrollLeft property.
|
643
571
|
*
|
@@ -646,102 +574,86 @@ export function getScrollTop(element) {
|
|
646
574
|
* @returns {number}
|
647
575
|
*/
|
648
576
|
// eslint-disable-next-line no-restricted-globals
|
649
|
-
|
650
577
|
export function getScrollLeft(element) {
|
651
578
|
var rootWindow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;
|
652
|
-
|
653
579
|
if (element === rootWindow) {
|
654
580
|
return getWindowScrollLeft(rootWindow);
|
655
581
|
}
|
656
|
-
|
657
582
|
return element.scrollLeft;
|
658
583
|
}
|
584
|
+
|
659
585
|
/**
|
660
586
|
* Returns a DOM element responsible for scrolling of the provided element.
|
661
587
|
*
|
662
588
|
* @param {HTMLElement} element An element to get the scrollable element from.
|
663
589
|
* @returns {HTMLElement} Element's scrollable parent.
|
664
590
|
*/
|
665
|
-
|
666
591
|
export function getScrollableElement(element) {
|
667
592
|
var rootDocument = element.ownerDocument;
|
668
593
|
var rootWindow = rootDocument ? rootDocument.defaultView : void 0;
|
669
|
-
|
670
594
|
if (!rootDocument) {
|
671
595
|
rootDocument = element.document ? element.document : element;
|
672
596
|
rootWindow = rootDocument.defaultView;
|
673
597
|
}
|
674
|
-
|
675
598
|
var props = ['auto', 'scroll'];
|
676
599
|
var supportedGetComputedStyle = isGetComputedStyleSupported();
|
677
600
|
var el = element.parentNode;
|
678
|
-
|
679
601
|
while (el && el.style && rootDocument.body !== el) {
|
680
602
|
var _el$style = el.style,
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
603
|
+
overflow = _el$style.overflow,
|
604
|
+
overflowX = _el$style.overflowX,
|
605
|
+
overflowY = _el$style.overflowY;
|
685
606
|
if ([overflow, overflowX, overflowY].includes('scroll')) {
|
686
607
|
return el;
|
687
608
|
} else if (supportedGetComputedStyle) {
|
688
609
|
var _rootWindow$getComput = rootWindow.getComputedStyle(el);
|
689
|
-
|
690
610
|
overflow = _rootWindow$getComput.overflow;
|
691
611
|
overflowX = _rootWindow$getComput.overflowX;
|
692
612
|
overflowY = _rootWindow$getComput.overflowY;
|
693
|
-
|
694
613
|
if (props.includes(overflow) || props.includes(overflowX) || props.includes(overflowY)) {
|
695
614
|
return el;
|
696
615
|
}
|
697
|
-
}
|
698
|
-
|
616
|
+
}
|
699
617
|
|
618
|
+
// The '+ 1' after the scrollHeight/scrollWidth is to prevent problems with zoomed out Chrome.
|
700
619
|
if (el.clientHeight <= el.scrollHeight + 1 && (props.includes(overflowY) || props.includes(overflow))) {
|
701
620
|
return el;
|
702
621
|
}
|
703
|
-
|
704
622
|
if (el.clientWidth <= el.scrollWidth + 1 && (props.includes(overflowX) || props.includes(overflow))) {
|
705
623
|
return el;
|
706
624
|
}
|
707
|
-
|
708
625
|
el = el.parentNode;
|
709
626
|
}
|
710
|
-
|
711
627
|
return rootWindow;
|
712
628
|
}
|
629
|
+
|
713
630
|
/**
|
714
631
|
* Returns a DOM element responsible for trimming the provided element.
|
715
632
|
*
|
716
633
|
* @param {HTMLElement} base Base element.
|
717
634
|
* @returns {HTMLElement} Base element's trimming parent.
|
718
635
|
*/
|
719
|
-
|
720
636
|
export function getTrimmingContainer(base) {
|
721
637
|
var rootDocument = base.ownerDocument;
|
722
638
|
var rootWindow = rootDocument.defaultView;
|
723
639
|
var el = base.parentNode;
|
724
|
-
|
725
640
|
while (el && el.style && rootDocument.body !== el) {
|
726
641
|
if (el.style.overflow !== 'visible' && el.style.overflow !== '') {
|
727
642
|
return el;
|
728
643
|
}
|
729
|
-
|
730
644
|
var computedStyle = getComputedStyle(el, rootWindow);
|
731
645
|
var allowedProperties = ['scroll', 'hidden', 'auto'];
|
732
646
|
var property = computedStyle.getPropertyValue('overflow');
|
733
647
|
var propertyY = computedStyle.getPropertyValue('overflow-y');
|
734
648
|
var propertyX = computedStyle.getPropertyValue('overflow-x');
|
735
|
-
|
736
649
|
if (allowedProperties.includes(property) || allowedProperties.includes(propertyY) || allowedProperties.includes(propertyX)) {
|
737
650
|
return el;
|
738
651
|
}
|
739
|
-
|
740
652
|
el = el.parentNode;
|
741
653
|
}
|
742
|
-
|
743
654
|
return rootWindow;
|
744
655
|
}
|
656
|
+
|
745
657
|
/**
|
746
658
|
* Returns a style property for the provided element. (Be it an inline or external style).
|
747
659
|
*
|
@@ -751,10 +663,8 @@ export function getTrimmingContainer(base) {
|
|
751
663
|
* @returns {string|undefined} Element's style property.
|
752
664
|
*/
|
753
665
|
// eslint-disable-next-line no-restricted-globals
|
754
|
-
|
755
666
|
export function getStyle(element, prop) {
|
756
667
|
var rootWindow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : window;
|
757
|
-
|
758
668
|
if (!element) {
|
759
669
|
return;
|
760
670
|
} else if (element === rootWindow) {
|
@@ -763,22 +673,18 @@ export function getStyle(element, prop) {
|
|
763
673
|
} else if (prop === 'height') {
|
764
674
|
return "".concat(rootWindow.innerHeight, "px");
|
765
675
|
}
|
766
|
-
|
767
676
|
return;
|
768
677
|
}
|
769
|
-
|
770
678
|
var styleProp = element.style[prop];
|
771
|
-
|
772
679
|
if (styleProp !== '' && styleProp !== void 0) {
|
773
680
|
return styleProp;
|
774
681
|
}
|
775
|
-
|
776
682
|
var computedStyle = getComputedStyle(element, rootWindow);
|
777
|
-
|
778
683
|
if (computedStyle[prop] !== '' && computedStyle[prop] !== void 0) {
|
779
684
|
return computedStyle[prop];
|
780
685
|
}
|
781
686
|
}
|
687
|
+
|
782
688
|
/**
|
783
689
|
* Verifies if element fit to provided CSSRule.
|
784
690
|
*
|
@@ -786,11 +692,9 @@ export function getStyle(element, prop) {
|
|
786
692
|
* @param {CSSRule} rule Selector text from CSSRule.
|
787
693
|
* @returns {boolean}
|
788
694
|
*/
|
789
|
-
|
790
695
|
export function matchesCSSRules(element, rule) {
|
791
696
|
var selectorText = rule.selectorText;
|
792
697
|
var result = false;
|
793
|
-
|
794
698
|
if (rule.type === CSSRule.STYLE_RULE && selectorText) {
|
795
699
|
if (element.msMatchesSelector) {
|
796
700
|
result = element.msMatchesSelector(selectorText);
|
@@ -798,9 +702,9 @@ export function matchesCSSRules(element, rule) {
|
|
798
702
|
result = element.matches(selectorText);
|
799
703
|
}
|
800
704
|
}
|
801
|
-
|
802
705
|
return result;
|
803
706
|
}
|
707
|
+
|
804
708
|
/**
|
805
709
|
* Returns a computed style object for the provided element. (Needed if style is declared in external stylesheet).
|
806
710
|
*
|
@@ -809,28 +713,27 @@ export function matchesCSSRules(element, rule) {
|
|
809
713
|
* @returns {IEElementStyle|CssStyle} Elements computed style object.
|
810
714
|
*/
|
811
715
|
// eslint-disable-next-line no-restricted-globals
|
812
|
-
|
813
716
|
export function getComputedStyle(element) {
|
814
717
|
var rootWindow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;
|
815
718
|
return element.currentStyle || rootWindow.getComputedStyle(element);
|
816
719
|
}
|
720
|
+
|
817
721
|
/**
|
818
722
|
* Returns the element's outer width.
|
819
723
|
*
|
820
724
|
* @param {HTMLElement} element An element to get the width from.
|
821
725
|
* @returns {number} Element's outer width.
|
822
726
|
*/
|
823
|
-
|
824
727
|
export function outerWidth(element) {
|
825
728
|
return element.offsetWidth;
|
826
729
|
}
|
730
|
+
|
827
731
|
/**
|
828
732
|
* Returns the element's outer height.
|
829
733
|
*
|
830
734
|
* @param {HTMLElement} element An element to get the height from.
|
831
735
|
* @returns {number} Element's outer height.
|
832
736
|
*/
|
833
|
-
|
834
737
|
export function outerHeight(element) {
|
835
738
|
if (hasCaptionProblem() && element.firstChild && element.firstChild.nodeName === 'CAPTION') {
|
836
739
|
// fixes problem with Firefox ignoring <caption> in TABLE.offsetHeight
|
@@ -842,47 +745,47 @@ export function outerHeight(element) {
|
|
842
745
|
// http://lists.w3.org/Archives/Public/www-style/2009Oct/0140.html#start140
|
843
746
|
return element.offsetHeight + element.firstChild.offsetHeight;
|
844
747
|
}
|
845
|
-
|
846
748
|
return element.offsetHeight;
|
847
749
|
}
|
750
|
+
|
848
751
|
/**
|
849
752
|
* Returns the element's inner height.
|
850
753
|
*
|
851
754
|
* @param {HTMLElement} element An element to get the height from.
|
852
755
|
* @returns {number} Element's inner height.
|
853
756
|
*/
|
854
|
-
|
855
757
|
export function innerHeight(element) {
|
856
758
|
return element.clientHeight || element.innerHeight;
|
857
759
|
}
|
760
|
+
|
858
761
|
/**
|
859
762
|
* Returns the element's inner width.
|
860
763
|
*
|
861
764
|
* @param {HTMLElement} element An element to get the width from.
|
862
765
|
* @returns {number} Element's inner width.
|
863
766
|
*/
|
864
|
-
|
865
767
|
export function innerWidth(element) {
|
866
768
|
return element.clientWidth || element.innerWidth;
|
867
769
|
}
|
770
|
+
|
868
771
|
/**
|
869
772
|
* @param {HTMLElement} element An element to which the event is added.
|
870
773
|
* @param {string} event The event name.
|
871
774
|
* @param {Function} callback The callback to add.
|
872
775
|
*/
|
873
|
-
|
874
776
|
export function addEvent(element, event, callback) {
|
875
777
|
element.addEventListener(event, callback, false);
|
876
778
|
}
|
779
|
+
|
877
780
|
/**
|
878
781
|
* @param {HTMLElement} element An element from which the event is removed.
|
879
782
|
* @param {string} event The event name.
|
880
783
|
* @param {Function} callback The function reference to remove.
|
881
784
|
*/
|
882
|
-
|
883
785
|
export function removeEvent(element, event, callback) {
|
884
786
|
element.removeEventListener(event, callback, false);
|
885
787
|
}
|
788
|
+
|
886
789
|
/**
|
887
790
|
* Returns caret position in text input.
|
888
791
|
*
|
@@ -890,56 +793,48 @@ export function removeEvent(element, event, callback) {
|
|
890
793
|
* @param {HTMLElement} el An element to check.
|
891
794
|
* @returns {number}
|
892
795
|
*/
|
893
|
-
|
894
796
|
export function getCaretPosition(el) {
|
895
797
|
var rootDocument = el.ownerDocument;
|
896
|
-
|
897
798
|
if (el.selectionStart) {
|
898
799
|
return el.selectionStart;
|
899
800
|
} else if (rootDocument.selection) {
|
900
801
|
// IE8
|
901
802
|
el.focus();
|
902
803
|
var r = rootDocument.selection.createRange();
|
903
|
-
|
904
804
|
if (r === null) {
|
905
805
|
return 0;
|
906
806
|
}
|
907
|
-
|
908
807
|
var re = el.createTextRange();
|
909
808
|
var rc = re.duplicate();
|
910
809
|
re.moveToBookmark(r.getBookmark());
|
911
810
|
rc.setEndPoint('EndToStart', re);
|
912
811
|
return rc.text.length;
|
913
812
|
}
|
914
|
-
|
915
813
|
return 0;
|
916
814
|
}
|
815
|
+
|
917
816
|
/**
|
918
817
|
* Returns end of the selection in text input.
|
919
818
|
*
|
920
819
|
* @param {HTMLElement} el An element to check.
|
921
820
|
* @returns {number}
|
922
821
|
*/
|
923
|
-
|
924
822
|
export function getSelectionEndPosition(el) {
|
925
823
|
var rootDocument = el.ownerDocument;
|
926
|
-
|
927
824
|
if (el.selectionEnd) {
|
928
825
|
return el.selectionEnd;
|
929
826
|
} else if (rootDocument.selection) {
|
930
827
|
// IE8
|
931
828
|
var r = rootDocument.selection.createRange();
|
932
|
-
|
933
829
|
if (r === null) {
|
934
830
|
return 0;
|
935
831
|
}
|
936
|
-
|
937
832
|
var re = el.createTextRange();
|
938
833
|
return re.text.indexOf(r.text) + r.text.length;
|
939
834
|
}
|
940
|
-
|
941
835
|
return 0;
|
942
836
|
}
|
837
|
+
|
943
838
|
/**
|
944
839
|
* Returns text under selection.
|
945
840
|
*
|
@@ -947,31 +842,29 @@ export function getSelectionEndPosition(el) {
|
|
947
842
|
* @returns {string}
|
948
843
|
*/
|
949
844
|
// eslint-disable-next-line no-restricted-globals
|
950
|
-
|
951
845
|
export function getSelectionText() {
|
952
846
|
var rootWindow = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
|
953
847
|
var rootDocument = rootWindow.document;
|
954
848
|
var text = '';
|
955
|
-
|
956
849
|
if (rootWindow.getSelection) {
|
957
850
|
text = rootWindow.getSelection().toString();
|
958
851
|
} else if (rootDocument.selection && rootDocument.selection.type !== 'Control') {
|
959
852
|
text = rootDocument.selection.createRange().text;
|
960
853
|
}
|
961
|
-
|
962
854
|
return text;
|
963
855
|
}
|
856
|
+
|
964
857
|
/**
|
965
858
|
* Cross-platform helper to clear text selection.
|
966
859
|
*
|
967
860
|
* @param {Window} [rootWindow] The document window owner.
|
968
861
|
*/
|
969
862
|
// eslint-disable-next-line no-restricted-globals
|
970
|
-
|
971
863
|
export function clearTextSelection() {
|
972
864
|
var rootWindow = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
|
973
|
-
var rootDocument = rootWindow.document;
|
865
|
+
var rootDocument = rootWindow.document;
|
974
866
|
|
867
|
+
// http://stackoverflow.com/questions/3169786/clear-text-selection-with-javascript
|
975
868
|
if (rootWindow.getSelection) {
|
976
869
|
if (rootWindow.getSelection().empty) {
|
977
870
|
// Chrome
|
@@ -985,6 +878,7 @@ export function clearTextSelection() {
|
|
985
878
|
rootDocument.selection.empty();
|
986
879
|
}
|
987
880
|
}
|
881
|
+
|
988
882
|
/**
|
989
883
|
* Sets caret position in text input.
|
990
884
|
*
|
@@ -993,15 +887,12 @@ export function clearTextSelection() {
|
|
993
887
|
* @param {number} pos The selection start position.
|
994
888
|
* @param {number} endPos The selection end position.
|
995
889
|
*/
|
996
|
-
|
997
890
|
export function setCaretPosition(element, pos, endPos) {
|
998
891
|
if (endPos === void 0) {
|
999
892
|
endPos = pos;
|
1000
893
|
}
|
1001
|
-
|
1002
894
|
if (element.setSelectionRange) {
|
1003
895
|
element.focus();
|
1004
|
-
|
1005
896
|
try {
|
1006
897
|
element.setSelectionRange(pos, endPos);
|
1007
898
|
} catch (err) {
|
@@ -1014,6 +905,7 @@ export function setCaretPosition(element, pos, endPos) {
|
|
1014
905
|
}
|
1015
906
|
}
|
1016
907
|
var cachedScrollbarWidth;
|
908
|
+
|
1017
909
|
/**
|
1018
910
|
* Helper to calculate scrollbar width.
|
1019
911
|
* Source: https://stackoverflow.com/questions/986937/how-can-i-get-the-browsers-scrollbar-sizes.
|
@@ -1023,7 +915,6 @@ var cachedScrollbarWidth;
|
|
1023
915
|
* @returns {number}
|
1024
916
|
*/
|
1025
917
|
// eslint-disable-next-line no-restricted-globals
|
1026
|
-
|
1027
918
|
function walkontableCalculateScrollbarWidth() {
|
1028
919
|
var rootDocument = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;
|
1029
920
|
var inner = rootDocument.createElement('div');
|
@@ -1043,14 +934,13 @@ function walkontableCalculateScrollbarWidth() {
|
|
1043
934
|
var w1 = inner.offsetWidth;
|
1044
935
|
outer.style.overflow = 'scroll';
|
1045
936
|
var w2 = inner.offsetWidth;
|
1046
|
-
|
1047
937
|
if (w1 === w2) {
|
1048
938
|
w2 = outer.clientWidth;
|
1049
939
|
}
|
1050
|
-
|
1051
940
|
(rootDocument.body || rootDocument.documentElement).removeChild(outer);
|
1052
941
|
return w1 - w2;
|
1053
942
|
}
|
943
|
+
|
1054
944
|
/**
|
1055
945
|
* Returns the computed width of the native browser scroll bar.
|
1056
946
|
*
|
@@ -1058,37 +948,34 @@ function walkontableCalculateScrollbarWidth() {
|
|
1058
948
|
* @returns {number} Width.
|
1059
949
|
*/
|
1060
950
|
// eslint-disable-next-line no-restricted-globals
|
1061
|
-
|
1062
|
-
|
1063
951
|
export function getScrollbarWidth() {
|
1064
952
|
var rootDocument = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;
|
1065
|
-
|
1066
953
|
if (cachedScrollbarWidth === void 0) {
|
1067
954
|
cachedScrollbarWidth = walkontableCalculateScrollbarWidth(rootDocument);
|
1068
955
|
}
|
1069
|
-
|
1070
956
|
return cachedScrollbarWidth;
|
1071
957
|
}
|
958
|
+
|
1072
959
|
/**
|
1073
960
|
* Checks if the provided element has a vertical scrollbar.
|
1074
961
|
*
|
1075
962
|
* @param {HTMLElement} element An element to check.
|
1076
963
|
* @returns {boolean}
|
1077
964
|
*/
|
1078
|
-
|
1079
965
|
export function hasVerticalScrollbar(element) {
|
1080
966
|
return element.offsetWidth !== element.clientWidth;
|
1081
967
|
}
|
968
|
+
|
1082
969
|
/**
|
1083
970
|
* Checks if the provided element has a vertical scrollbar.
|
1084
971
|
*
|
1085
972
|
* @param {HTMLElement} element An element to check.
|
1086
973
|
* @returns {boolean}
|
1087
974
|
*/
|
1088
|
-
|
1089
975
|
export function hasHorizontalScrollbar(element) {
|
1090
976
|
return element.offsetHeight !== element.clientHeight;
|
1091
977
|
}
|
978
|
+
|
1092
979
|
/**
|
1093
980
|
* Sets overlay position depending on it's type and used browser.
|
1094
981
|
*
|
@@ -1096,7 +983,6 @@ export function hasHorizontalScrollbar(element) {
|
|
1096
983
|
* @param {number|string} left The left position of the overlay.
|
1097
984
|
* @param {number|string} top The top position of the overlay.
|
1098
985
|
*/
|
1099
|
-
|
1100
986
|
export function setOverlayPosition(overlayElem, left, top) {
|
1101
987
|
if (isIE9()) {
|
1102
988
|
overlayElem.style.top = top;
|
@@ -1107,26 +993,24 @@ export function setOverlayPosition(overlayElem, left, top) {
|
|
1107
993
|
overlayElem.style.transform = "translate3d(".concat(left, ",").concat(top, ",0)");
|
1108
994
|
}
|
1109
995
|
}
|
996
|
+
|
1110
997
|
/**
|
1111
998
|
* @param {HTMLElement} element An element to process.
|
1112
999
|
* @returns {number|Array}
|
1113
1000
|
*/
|
1114
|
-
|
1115
1001
|
export function getCssTransform(element) {
|
1116
1002
|
var transform;
|
1117
|
-
|
1118
1003
|
if (element.style.transform && (transform = element.style.transform) !== '') {
|
1119
1004
|
return ['transform', transform];
|
1120
1005
|
} else if (element.style['-webkit-transform'] && (transform = element.style['-webkit-transform']) !== '') {
|
1121
1006
|
return ['-webkit-transform', transform];
|
1122
1007
|
}
|
1123
|
-
|
1124
1008
|
return -1;
|
1125
1009
|
}
|
1010
|
+
|
1126
1011
|
/**
|
1127
1012
|
* @param {HTMLElement} element An element to process.
|
1128
1013
|
*/
|
1129
|
-
|
1130
1014
|
export function resetCssTransform(element) {
|
1131
1015
|
if (element.style.transform && element.style.transform !== '') {
|
1132
1016
|
element.style.transform = '';
|
@@ -1134,6 +1018,7 @@ export function resetCssTransform(element) {
|
|
1134
1018
|
element.style['-webkit-transform'] = '';
|
1135
1019
|
}
|
1136
1020
|
}
|
1021
|
+
|
1137
1022
|
/**
|
1138
1023
|
* Determines if the given DOM element is an input field.
|
1139
1024
|
* Notice: By 'input' we mean input, textarea and select nodes.
|
@@ -1141,11 +1026,11 @@ export function resetCssTransform(element) {
|
|
1141
1026
|
* @param {HTMLElement} element - DOM element.
|
1142
1027
|
* @returns {boolean}
|
1143
1028
|
*/
|
1144
|
-
|
1145
1029
|
export function isInput(element) {
|
1146
1030
|
var inputs = ['INPUT', 'SELECT', 'TEXTAREA'];
|
1147
1031
|
return element && (inputs.indexOf(element.nodeName) > -1 || element.contentEditable === 'true');
|
1148
1032
|
}
|
1033
|
+
|
1149
1034
|
/**
|
1150
1035
|
* Determines if the given DOM element is an input field placed OUTSIDE of HOT.
|
1151
1036
|
* Notice: By 'input' we mean input, textarea and select nodes which have defined 'data-hot-input' attribute.
|
@@ -1153,30 +1038,49 @@ export function isInput(element) {
|
|
1153
1038
|
* @param {HTMLElement} element - DOM element.
|
1154
1039
|
* @returns {boolean}
|
1155
1040
|
*/
|
1156
|
-
|
1157
1041
|
export function isOutsideInput(element) {
|
1158
1042
|
return isInput(element) && element.hasAttribute('data-hot-input') === false;
|
1159
1043
|
}
|
1044
|
+
|
1160
1045
|
/**
|
1161
1046
|
* Check if the given DOM element can be focused (by using "select" method).
|
1162
1047
|
*
|
1163
1048
|
* @param {HTMLElement} element - DOM element.
|
1164
1049
|
*/
|
1165
|
-
|
1166
1050
|
export function selectElementIfAllowed(element) {
|
1167
1051
|
var activeElement = element.ownerDocument.activeElement;
|
1168
|
-
|
1169
1052
|
if (!isOutsideInput(activeElement)) {
|
1170
1053
|
element.select();
|
1171
1054
|
}
|
1172
1055
|
}
|
1056
|
+
|
1173
1057
|
/**
|
1174
1058
|
* Check if the provided element is detached from DOM.
|
1175
1059
|
*
|
1176
1060
|
* @param {HTMLElement} element HTML element to be checked.
|
1177
1061
|
* @returns {boolean} `true` if the element is detached, `false` otherwise.
|
1178
1062
|
*/
|
1179
|
-
|
1180
1063
|
export function isDetached(element) {
|
1181
1064
|
return !element.parentNode;
|
1065
|
+
}
|
1066
|
+
|
1067
|
+
/**
|
1068
|
+
* Set up an observer to recognize when the provided element first becomes visible and trigger a callback when it
|
1069
|
+
* happens.
|
1070
|
+
*
|
1071
|
+
* @param {HTMLElement} elementToBeObserved Element to be observed.
|
1072
|
+
* @param {Function} callback The callback function.
|
1073
|
+
*/
|
1074
|
+
export function observeVisibilityChangeOnce(elementToBeObserved, callback) {
|
1075
|
+
var visibilityObserver = new IntersectionObserver(function (entries, observer) {
|
1076
|
+
entries.forEach(function (entry) {
|
1077
|
+
if (entry.isIntersecting && elementToBeObserved.offsetParent !== null) {
|
1078
|
+
callback();
|
1079
|
+
observer.unobserve(elementToBeObserved);
|
1080
|
+
}
|
1081
|
+
});
|
1082
|
+
}, {
|
1083
|
+
root: elementToBeObserved.ownerDocument.body
|
1084
|
+
});
|
1085
|
+
visibilityObserver.observe(elementToBeObserved);
|
1182
1086
|
}
|