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