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