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