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