suneditor 3.0.0-beta.9 → 3.0.0-rc.2
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/README.md +65 -57
- package/dist/suneditor-contents.min.css +1 -0
- package/dist/suneditor.min.css +1 -1
- package/dist/suneditor.min.js +1 -1
- package/package.json +110 -61
- package/src/assets/design/color.css +36 -17
- package/src/assets/design/size.css +2 -0
- package/src/assets/icons/defaultIcons.js +17 -2
- package/src/assets/suneditor-contents.css +51 -16
- package/src/assets/suneditor.css +116 -43
- package/src/core/config/contextProvider.js +288 -0
- package/src/core/config/eventManager.js +188 -0
- package/src/core/config/instanceCheck.js +59 -0
- package/src/core/config/optionProvider.js +452 -0
- package/src/core/editor.js +166 -1637
- package/src/core/event/actions/index.js +229 -0
- package/src/core/event/effects/common.registry.js +74 -0
- package/src/core/event/effects/keydown.registry.js +573 -0
- package/src/core/event/effects/ruleHelpers.js +148 -0
- package/src/core/event/eventOrchestrator.js +944 -0
- package/src/core/event/executor.js +27 -0
- package/src/core/{base/eventHandlers → event/handlers}/handler_toolbar.js +27 -28
- package/src/core/{base/eventHandlers → event/handlers}/handler_ww_clipboard.js +10 -8
- package/src/core/{base/eventHandlers → event/handlers}/handler_ww_dragDrop.js +22 -23
- package/src/core/event/handlers/handler_ww_input.js +75 -0
- package/src/core/event/handlers/handler_ww_key.js +228 -0
- package/src/core/event/handlers/handler_ww_mouse.js +166 -0
- package/src/core/event/ports.js +211 -0
- package/src/core/event/reducers/keydown.reducer.js +97 -0
- package/src/core/event/rules/keydown.rule.arrow.js +63 -0
- package/src/core/event/rules/keydown.rule.backspace.js +208 -0
- package/src/core/event/rules/keydown.rule.delete.js +132 -0
- package/src/core/event/rules/keydown.rule.enter.js +150 -0
- package/src/core/event/rules/keydown.rule.tab.js +35 -0
- package/src/core/event/support/defaultLineManager.js +136 -0
- package/src/core/event/support/selectionState.js +204 -0
- package/src/core/kernel/coreKernel.js +320 -0
- package/src/core/kernel/kernelInjector.js +19 -0
- package/src/core/kernel/store.js +173 -0
- package/src/core/{class → logic/dom}/char.js +42 -45
- package/src/core/logic/dom/format.js +1075 -0
- package/src/core/{class → logic/dom}/html.js +743 -624
- package/src/core/logic/dom/inline.js +1847 -0
- package/src/core/logic/dom/listFormat.js +601 -0
- package/src/core/{class → logic/dom}/nodeTransform.js +92 -72
- package/src/core/{class → logic/dom}/offset.js +254 -317
- package/src/core/logic/dom/selection.js +754 -0
- package/src/core/logic/panel/menu.js +389 -0
- package/src/core/logic/panel/toolbar.js +449 -0
- package/src/core/logic/panel/viewer.js +761 -0
- package/src/core/logic/shell/_commandExecutor.js +380 -0
- package/src/core/logic/shell/commandDispatcher.js +241 -0
- package/src/core/logic/shell/component.js +970 -0
- package/src/core/logic/shell/focusManager.js +110 -0
- package/src/core/{base → logic/shell}/history.js +110 -60
- package/src/core/logic/shell/pluginManager.js +363 -0
- package/src/core/logic/shell/shortcuts.js +130 -0
- package/src/core/logic/shell/ui.js +904 -0
- package/src/core/schema/context.js +66 -0
- package/src/core/schema/frameContext.js +160 -0
- package/src/core/schema/options.js +628 -0
- package/src/core/section/constructor.js +194 -500
- package/src/core/section/documentType.js +297 -222
- package/src/events.js +808 -543
- package/src/helper/clipboard.js +27 -16
- package/src/helper/converter.js +100 -78
- package/src/helper/dom/domCheck.js +56 -30
- package/src/helper/dom/domQuery.js +159 -89
- package/src/helper/dom/domUtils.js +114 -49
- package/src/helper/dom/index.js +5 -1
- package/src/helper/env.js +26 -26
- package/src/helper/index.js +1 -1
- package/src/helper/keyCodeMap.js +25 -28
- package/src/helper/numbers.js +4 -8
- package/src/helper/unicode.js +4 -8
- package/src/hooks/base.js +307 -0
- package/src/hooks/params.js +130 -0
- package/src/interfaces/contracts.js +227 -0
- package/src/interfaces/index.js +7 -0
- package/src/interfaces/plugins.js +239 -0
- package/src/langs/ckb.js +4 -4
- package/src/langs/cs.js +4 -4
- package/src/langs/da.js +4 -4
- package/src/langs/de.js +4 -4
- package/src/langs/en.js +4 -4
- package/src/langs/es.js +4 -4
- package/src/langs/fa.js +4 -4
- package/src/langs/fr.js +4 -4
- package/src/langs/he.js +4 -4
- package/src/langs/hu.js +4 -4
- package/src/langs/it.js +4 -4
- package/src/langs/ja.js +4 -4
- package/src/langs/km.js +4 -4
- package/src/langs/ko.js +4 -4
- package/src/langs/lv.js +4 -4
- package/src/langs/nl.js +4 -4
- package/src/langs/pl.js +4 -4
- package/src/langs/pt_br.js +13 -13
- package/src/langs/ro.js +4 -4
- package/src/langs/ru.js +4 -4
- package/src/langs/se.js +4 -4
- package/src/langs/tr.js +4 -4
- package/src/langs/uk.js +4 -4
- package/src/langs/ur.js +4 -4
- package/src/langs/zh_cn.js +4 -4
- package/src/modules/{Browser.js → contract/Browser.js} +119 -128
- package/src/modules/{ColorPicker.js → contract/ColorPicker.js} +132 -142
- package/src/modules/contract/Controller.js +589 -0
- package/src/modules/{Figure.js → contract/Figure.js} +591 -411
- package/src/modules/{HueSlider.js → contract/HueSlider.js} +125 -86
- package/src/modules/contract/Modal.js +357 -0
- package/src/modules/contract/index.js +9 -0
- package/src/modules/manager/ApiManager.js +197 -0
- package/src/modules/{FileManager.js → manager/FileManager.js} +128 -160
- package/src/modules/manager/index.js +5 -0
- package/src/modules/{ModalAnchorEditor.js → ui/ModalAnchorEditor.js} +108 -138
- package/src/modules/{SelectMenu.js → ui/SelectMenu.js} +119 -120
- package/src/modules/{_DragHandle.js → ui/_DragHandle.js} +1 -1
- package/src/modules/ui/index.js +6 -0
- package/src/plugins/browser/audioGallery.js +23 -26
- package/src/plugins/browser/fileBrowser.js +25 -28
- package/src/plugins/browser/fileGallery.js +20 -23
- package/src/plugins/browser/imageGallery.js +24 -23
- package/src/plugins/browser/videoGallery.js +27 -29
- package/src/plugins/command/blockquote.js +11 -17
- package/src/plugins/command/exportPDF.js +26 -26
- package/src/plugins/command/fileUpload.js +138 -133
- package/src/plugins/command/list_bulleted.js +48 -44
- package/src/plugins/command/list_numbered.js +48 -44
- package/src/plugins/dropdown/align.js +64 -50
- package/src/plugins/dropdown/backgroundColor.js +34 -35
- package/src/plugins/dropdown/{formatBlock.js → blockStyle.js} +43 -37
- package/src/plugins/dropdown/font.js +50 -36
- package/src/plugins/dropdown/fontColor.js +34 -35
- package/src/plugins/dropdown/hr.js +55 -50
- package/src/plugins/dropdown/layout.js +20 -15
- package/src/plugins/dropdown/lineHeight.js +46 -30
- package/src/plugins/dropdown/list.js +32 -33
- package/src/plugins/dropdown/paragraphStyle.js +40 -34
- package/src/plugins/dropdown/table/index.js +915 -0
- package/src/plugins/dropdown/table/render/table.html.js +308 -0
- package/src/plugins/dropdown/table/render/table.menu.js +121 -0
- package/src/plugins/dropdown/table/services/table.cell.js +465 -0
- package/src/plugins/dropdown/table/services/table.clipboard.js +414 -0
- package/src/plugins/dropdown/table/services/table.grid.js +504 -0
- package/src/plugins/dropdown/table/services/table.resize.js +463 -0
- package/src/plugins/dropdown/table/services/table.selection.js +466 -0
- package/src/plugins/dropdown/table/services/table.style.js +844 -0
- package/src/plugins/dropdown/table/shared/table.constants.js +109 -0
- package/src/plugins/dropdown/table/shared/table.utils.js +219 -0
- package/src/plugins/dropdown/template.js +20 -15
- package/src/plugins/dropdown/textStyle.js +28 -22
- package/src/plugins/field/mention.js +54 -49
- package/src/plugins/index.js +5 -5
- package/src/plugins/input/fontSize.js +100 -97
- package/src/plugins/input/pageNavigator.js +13 -10
- package/src/plugins/modal/audio.js +208 -219
- package/src/plugins/modal/drawing.js +99 -104
- package/src/plugins/modal/embed.js +323 -312
- package/src/plugins/modal/image/index.js +942 -0
- package/src/plugins/modal/image/render/image.html.js +150 -0
- package/src/plugins/modal/image/services/image.size.js +198 -0
- package/src/plugins/modal/image/services/image.upload.js +216 -0
- package/src/plugins/modal/image/shared/image.constants.js +20 -0
- package/src/plugins/modal/link.js +74 -54
- package/src/plugins/modal/math.js +126 -119
- package/src/plugins/modal/video/index.js +858 -0
- package/src/plugins/modal/video/render/video.html.js +131 -0
- package/src/plugins/modal/video/services/video.size.js +281 -0
- package/src/plugins/modal/video/services/video.upload.js +92 -0
- package/src/plugins/popup/anchor.js +57 -49
- package/src/suneditor.js +73 -61
- package/src/themes/cobalt.css +155 -0
- package/src/themes/dark.css +143 -120
- package/src/typedef.js +214 -63
- package/types/assets/icons/defaultIcons.d.ts +8 -0
- package/types/assets/suneditor-contents.css.d.ts +1 -0
- package/types/assets/suneditor.css.d.ts +1 -0
- package/types/core/config/contextProvider.d.ts +148 -0
- package/types/core/config/eventManager.d.ts +68 -0
- package/types/core/config/instanceCheck.d.ts +33 -0
- package/types/core/config/optionProvider.d.ts +147 -0
- package/types/core/editor.d.ts +27 -586
- package/types/core/event/actions/index.d.ts +50 -0
- package/types/core/event/effects/common.registry.d.ts +56 -0
- package/types/core/event/effects/keydown.registry.d.ts +80 -0
- package/types/core/event/effects/ruleHelpers.d.ts +36 -0
- package/types/core/event/eventOrchestrator.d.ts +191 -0
- package/types/core/event/executor.d.ts +13 -0
- package/types/core/event/handlers/handler_toolbar.d.ts +38 -0
- package/types/core/event/handlers/handler_ww_clipboard.d.ts +36 -0
- package/types/core/event/handlers/handler_ww_dragDrop.d.ts +26 -0
- package/types/core/event/handlers/handler_ww_input.d.ts +38 -0
- package/types/core/event/handlers/handler_ww_key.d.ts +40 -0
- package/types/core/event/handlers/handler_ww_mouse.d.ts +47 -0
- package/types/core/event/ports.d.ts +256 -0
- package/types/core/event/reducers/keydown.reducer.d.ts +84 -0
- package/types/core/event/rules/keydown.rule.arrow.d.ts +19 -0
- package/types/core/event/rules/keydown.rule.backspace.d.ts +18 -0
- package/types/core/event/rules/keydown.rule.delete.d.ts +18 -0
- package/types/core/event/rules/keydown.rule.enter.d.ts +18 -0
- package/types/core/event/rules/keydown.rule.tab.d.ts +18 -0
- package/types/core/event/support/defaultLineManager.d.ts +22 -0
- package/types/core/event/support/selectionState.d.ts +29 -0
- package/types/core/kernel/coreKernel.d.ts +219 -0
- package/types/core/kernel/kernelInjector.d.ts +16 -0
- package/types/core/kernel/store.d.ts +170 -0
- package/types/core/logic/dom/char.d.ts +46 -0
- package/types/core/logic/dom/format.d.ts +234 -0
- package/types/core/logic/dom/html.d.ts +290 -0
- package/types/core/logic/dom/inline.d.ts +93 -0
- package/types/core/logic/dom/listFormat.d.ts +101 -0
- package/types/core/logic/dom/nodeTransform.d.ts +110 -0
- package/types/core/logic/dom/offset.d.ts +335 -0
- package/types/core/logic/dom/selection.d.ts +165 -0
- package/types/core/logic/panel/menu.d.ts +93 -0
- package/types/core/logic/panel/toolbar.d.ts +128 -0
- package/types/core/logic/panel/viewer.d.ts +89 -0
- package/types/core/logic/shell/_commandExecutor.d.ts +18 -0
- package/types/core/logic/shell/commandDispatcher.d.ts +65 -0
- package/types/core/logic/shell/component.d.ts +182 -0
- package/types/core/logic/shell/focusManager.d.ts +31 -0
- package/types/core/{base → logic/shell}/history.d.ts +13 -12
- package/types/core/logic/shell/pluginManager.d.ts +115 -0
- package/types/core/logic/shell/shortcuts.d.ts +131 -0
- package/types/core/logic/shell/ui.d.ts +261 -0
- package/types/core/schema/context.d.ts +104 -0
- package/types/core/schema/frameContext.d.ts +320 -0
- package/types/core/schema/options.d.ts +1241 -0
- package/types/core/section/constructor.d.ts +117 -652
- package/types/core/section/documentType.d.ts +43 -61
- package/types/events.d.ts +796 -65
- package/types/helper/clipboard.d.ts +5 -4
- package/types/helper/converter.d.ts +55 -43
- package/types/helper/dom/domCheck.d.ts +27 -19
- package/types/helper/dom/domQuery.d.ts +76 -57
- package/types/helper/dom/domUtils.d.ts +62 -39
- package/types/helper/dom/index.d.ts +87 -1
- package/types/helper/env.d.ts +16 -13
- package/types/helper/index.d.ts +8 -2
- package/types/helper/keyCodeMap.d.ts +24 -23
- package/types/helper/numbers.d.ts +4 -6
- package/types/helper/unicode.d.ts +4 -3
- package/types/hooks/base.d.ts +239 -0
- package/types/hooks/params.d.ts +65 -0
- package/types/index.d.ts +20 -117
- package/types/interfaces/contracts.d.ts +183 -0
- package/types/interfaces/index.d.ts +3 -0
- package/types/interfaces/plugins.d.ts +168 -0
- package/types/langs/_Lang.d.ts +2 -2
- package/types/langs/index.d.ts +2 -2
- package/types/modules/contract/Browser.d.ts +262 -0
- package/types/modules/contract/ColorPicker.d.ts +99 -0
- package/types/modules/contract/Controller.d.ts +204 -0
- package/types/modules/contract/Figure.d.ts +529 -0
- package/types/modules/{HueSlider.d.ts → contract/HueSlider.d.ts} +39 -28
- package/types/modules/contract/Modal.d.ts +62 -0
- package/types/modules/contract/index.d.ts +7 -0
- package/types/modules/manager/ApiManager.d.ts +106 -0
- package/types/modules/manager/FileManager.d.ts +124 -0
- package/types/modules/manager/index.d.ts +3 -0
- package/types/modules/ui/ModalAnchorEditor.d.ts +152 -0
- package/types/modules/ui/SelectMenu.d.ts +107 -0
- package/types/modules/{_DragHandle.d.ts → ui/_DragHandle.d.ts} +1 -0
- package/types/modules/ui/index.d.ts +4 -0
- package/types/plugins/browser/audioGallery.d.ts +33 -41
- package/types/plugins/browser/fileBrowser.d.ts +42 -50
- package/types/plugins/browser/fileGallery.d.ts +33 -41
- package/types/plugins/browser/imageGallery.d.ts +30 -37
- package/types/plugins/browser/videoGallery.d.ts +33 -41
- package/types/plugins/command/blockquote.d.ts +4 -21
- package/types/plugins/command/exportPDF.d.ts +23 -33
- package/types/plugins/command/fileUpload.d.ts +80 -100
- package/types/plugins/command/list_bulleted.d.ts +9 -35
- package/types/plugins/command/list_numbered.d.ts +9 -35
- package/types/plugins/dropdown/align.d.ts +23 -46
- package/types/plugins/dropdown/backgroundColor.d.ts +35 -53
- package/types/plugins/dropdown/blockStyle.d.ts +45 -0
- package/types/plugins/dropdown/font.d.ts +18 -41
- package/types/plugins/dropdown/fontColor.d.ts +35 -53
- package/types/plugins/dropdown/hr.d.ts +26 -52
- package/types/plugins/dropdown/layout.d.ts +19 -25
- package/types/plugins/dropdown/lineHeight.d.ts +21 -39
- package/types/plugins/dropdown/list.d.ts +6 -34
- package/types/plugins/dropdown/paragraphStyle.d.ts +34 -45
- package/types/plugins/dropdown/table/index.d.ts +158 -0
- package/types/plugins/dropdown/table/render/table.html.d.ts +71 -0
- package/types/plugins/dropdown/table/render/table.menu.d.ts +59 -0
- package/types/plugins/dropdown/table/services/table.cell.d.ts +76 -0
- package/types/plugins/dropdown/table/services/table.clipboard.d.ts +26 -0
- package/types/plugins/dropdown/table/services/table.grid.d.ts +77 -0
- package/types/plugins/dropdown/table/services/table.resize.d.ts +72 -0
- package/types/plugins/dropdown/table/services/table.selection.d.ts +59 -0
- package/types/plugins/dropdown/table/services/table.style.d.ts +162 -0
- package/types/plugins/dropdown/table/shared/table.constants.d.ts +134 -0
- package/types/plugins/dropdown/table/shared/table.utils.d.ts +91 -0
- package/types/plugins/dropdown/template.d.ts +19 -25
- package/types/plugins/dropdown/textStyle.d.ts +23 -30
- package/types/plugins/field/mention.d.ts +66 -72
- package/types/plugins/index.d.ts +41 -40
- package/types/plugins/input/fontSize.d.ts +57 -96
- package/types/plugins/input/pageNavigator.d.ts +5 -8
- package/types/plugins/modal/audio.d.ts +60 -153
- package/types/plugins/modal/drawing.d.ts +16 -118
- package/types/plugins/modal/embed.d.ts +46 -166
- package/types/plugins/modal/image/index.d.ts +281 -0
- package/types/plugins/modal/image/render/image.html.d.ts +45 -0
- package/types/plugins/modal/image/services/image.size.d.ts +55 -0
- package/types/plugins/modal/image/services/image.upload.d.ts +24 -0
- package/types/plugins/modal/image/shared/image.constants.d.ts +17 -0
- package/types/plugins/modal/link.d.ts +46 -66
- package/types/plugins/modal/math.d.ts +17 -86
- package/types/plugins/modal/{video.d.ts → video/index.d.ts} +89 -221
- package/types/plugins/modal/video/render/video.html.d.ts +37 -0
- package/types/plugins/modal/video/services/video.size.d.ts +74 -0
- package/types/plugins/modal/video/services/video.upload.d.ts +19 -0
- package/types/plugins/popup/anchor.d.ts +8 -38
- package/types/suneditor.d.ts +55 -24
- package/types/typedef.d.ts +344 -228
- package/CONTRIBUTING.md +0 -186
- package/src/core/base/eventHandlers/handler_ww_key_input.js +0 -1200
- package/src/core/base/eventHandlers/handler_ww_mouse.js +0 -194
- package/src/core/base/eventManager.js +0 -1523
- package/src/core/class/component.js +0 -856
- package/src/core/class/format.js +0 -3433
- package/src/core/class/menu.js +0 -346
- package/src/core/class/selection.js +0 -610
- package/src/core/class/shortcuts.js +0 -98
- package/src/core/class/toolbar.js +0 -431
- package/src/core/class/ui.js +0 -424
- package/src/core/class/viewer.js +0 -750
- package/src/core/section/actives.js +0 -266
- package/src/core/section/context.js +0 -102
- package/src/editorInjector/_classes.js +0 -36
- package/src/editorInjector/_core.js +0 -87
- package/src/editorInjector/index.js +0 -73
- package/src/modules/ApiManager.js +0 -191
- package/src/modules/Controller.js +0 -474
- package/src/modules/Modal.js +0 -346
- package/src/modules/index.js +0 -14
- package/src/plugins/dropdown/table.js +0 -4034
- package/src/plugins/modal/image.js +0 -1376
- package/src/plugins/modal/video.js +0 -1226
- package/types/core/base/eventHandlers/handler_toolbar.d.ts +0 -41
- package/types/core/base/eventHandlers/handler_ww_clipboard.d.ts +0 -40
- package/types/core/base/eventHandlers/handler_ww_dragDrop.d.ts +0 -35
- package/types/core/base/eventHandlers/handler_ww_key_input.d.ts +0 -45
- package/types/core/base/eventHandlers/handler_ww_mouse.d.ts +0 -39
- package/types/core/base/eventManager.d.ts +0 -401
- package/types/core/class/char.d.ts +0 -61
- package/types/core/class/component.d.ts +0 -213
- package/types/core/class/format.d.ts +0 -623
- package/types/core/class/html.d.ts +0 -430
- package/types/core/class/menu.d.ts +0 -126
- package/types/core/class/nodeTransform.d.ts +0 -93
- package/types/core/class/offset.d.ts +0 -522
- package/types/core/class/selection.d.ts +0 -188
- package/types/core/class/shortcuts.d.ts +0 -142
- package/types/core/class/toolbar.d.ts +0 -189
- package/types/core/class/ui.d.ts +0 -164
- package/types/core/class/viewer.d.ts +0 -140
- package/types/core/section/actives.d.ts +0 -46
- package/types/core/section/context.d.ts +0 -45
- package/types/editorInjector/_classes.d.ts +0 -41
- package/types/editorInjector/_core.d.ts +0 -87
- package/types/editorInjector/index.d.ts +0 -69
- package/types/modules/ApiManager.d.ts +0 -125
- package/types/modules/Browser.d.ts +0 -326
- package/types/modules/ColorPicker.d.ts +0 -135
- package/types/modules/Controller.d.ts +0 -251
- package/types/modules/Figure.d.ts +0 -517
- package/types/modules/FileManager.d.ts +0 -202
- package/types/modules/Modal.d.ts +0 -111
- package/types/modules/ModalAnchorEditor.d.ts +0 -236
- package/types/modules/SelectMenu.d.ts +0 -194
- package/types/modules/index.d.ts +0 -26
- package/types/plugins/dropdown/formatBlock.d.ts +0 -55
- package/types/plugins/dropdown/table.d.ts +0 -627
- package/types/plugins/modal/image.d.ts +0 -451
- /package/{LICENSE → LICENSE.txt} +0 -0
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* @fileoverview Implements Helper for querying the DOM.
|
|
3
|
-
*/
|
|
4
|
-
|
|
1
|
+
import { _w } from '../env';
|
|
5
2
|
import { zeroWidthRegExp } from '../unicode';
|
|
6
3
|
import domUtils from './domUtils';
|
|
7
4
|
import domCheck from './domCheck';
|
|
@@ -20,12 +17,12 @@ export function getPositionIndex(node) {
|
|
|
20
17
|
}
|
|
21
18
|
|
|
22
19
|
/**
|
|
23
|
-
* @description Returns the position of the
|
|
20
|
+
* @description Returns the position of the `node` in the `parentNode` in a numerical array.
|
|
24
21
|
* - e.g.) <p><span>aa</span><span>bb</span></p> : getNodePath(node: "bb", parentNode: "<P>") -> [1, 0]
|
|
25
22
|
* @param {Node} node The Node to find position path
|
|
26
|
-
* @param {?Node} parentNode Parent node. If null
|
|
27
|
-
* @param {?{s: number, e: number}
|
|
28
|
-
*
|
|
23
|
+
* @param {?Node} parentNode Parent node. If `null`, wysiwyg `div` area
|
|
24
|
+
* @param {?{s: number, e: number}} [_newOffsets] If you send an object of the form `{s: 0, e: 0}`, the text nodes that are attached together are merged into one, centered on the `node` argument.
|
|
25
|
+
* `_newOffsets.s` stores the length of the combined characters after `node` and `_newOffsets.e` stores the length of the combined characters before `node`.
|
|
29
26
|
* Do not use unless absolutely necessary.
|
|
30
27
|
* @returns {Array<number>}
|
|
31
28
|
*/
|
|
@@ -74,8 +71,8 @@ export function getNodePath(node, parentNode, _newOffsets) {
|
|
|
74
71
|
|
|
75
72
|
/**
|
|
76
73
|
* @template {Node} T
|
|
77
|
-
* @description Returns the node in the location of the path array obtained from
|
|
78
|
-
* @param {Array<number>} offsets Position array, array obtained from
|
|
74
|
+
* @description Returns the node in the location of the path array obtained from `helper.dom.getNodePath`.
|
|
75
|
+
* @param {Array<number>} offsets Position array, array obtained from `helper.dom.getNodePath`
|
|
79
76
|
* @param {Node} parentNode Base parent element
|
|
80
77
|
* @returns {T}
|
|
81
78
|
*/
|
|
@@ -98,74 +95,111 @@ export function getNodeFromPath(offsets, parentNode) {
|
|
|
98
95
|
|
|
99
96
|
/**
|
|
100
97
|
* @template {HTMLElement} T
|
|
101
|
-
* @description Get all
|
|
98
|
+
* @description Get all `child node` of the argument value element
|
|
99
|
+
* @param {Node} element element to get child node
|
|
100
|
+
* @param {?(current: *) => boolean} validation Conditional function
|
|
101
|
+
* @returns {T|null}
|
|
102
|
+
*/
|
|
103
|
+
export function getChildNode(element, validation) {
|
|
104
|
+
let child = null;
|
|
105
|
+
if (!element) return child;
|
|
106
|
+
|
|
107
|
+
const el = /** @type {Element} */ (element);
|
|
108
|
+
if (!el.children || el.children.length === 0) return child;
|
|
109
|
+
|
|
110
|
+
validation ||= () => true;
|
|
111
|
+
|
|
112
|
+
(function recursionFunc(current) {
|
|
113
|
+
if (el !== current && validation(current)) {
|
|
114
|
+
child = current;
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
if (current.children) {
|
|
119
|
+
for (let i = 0, len = current.children.length; i < len; i++) {
|
|
120
|
+
recursionFunc(current.children[i]);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
})(el);
|
|
124
|
+
|
|
125
|
+
return /** @type {T} */ (child);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* @template {HTMLElement} T
|
|
130
|
+
* @description Get all `children` of the argument value element (Without text nodes)
|
|
102
131
|
* @param {Node} element element to get child node
|
|
103
132
|
* @param {?(current: *) => boolean} validation Conditional function
|
|
133
|
+
* @param {?number} depth Number of child levels to depth.
|
|
104
134
|
* @returns {Array<T>}
|
|
105
135
|
*/
|
|
106
|
-
export function getListChildren(element, validation) {
|
|
136
|
+
export function getListChildren(element, validation, depth) {
|
|
107
137
|
/** @type {Array<T>} */
|
|
108
138
|
const children = [];
|
|
109
|
-
|
|
139
|
+
depth ??= Infinity;
|
|
140
|
+
if (!element || depth <= 0) return /** @type {Array<T>} */ (children);
|
|
110
141
|
|
|
111
142
|
const el = /** @type {Element} */ (element);
|
|
112
143
|
if (!el.children || el.children.length === 0) return children;
|
|
113
144
|
|
|
114
|
-
validation
|
|
115
|
-
validation ||
|
|
116
|
-
function () {
|
|
117
|
-
return true;
|
|
118
|
-
};
|
|
145
|
+
validation ||= () => true;
|
|
119
146
|
|
|
120
|
-
(function recursionFunc(current) {
|
|
121
|
-
if (
|
|
147
|
+
(function recursionFunc(current, level) {
|
|
148
|
+
if (level > depth) return;
|
|
149
|
+
|
|
150
|
+
if (level > 0 && el !== current && validation(current)) {
|
|
122
151
|
children.push(/** @type {T} */ (current));
|
|
123
152
|
}
|
|
124
153
|
|
|
154
|
+
if (level === depth) return;
|
|
155
|
+
|
|
125
156
|
if (current.children) {
|
|
126
157
|
for (let i = 0, len = current.children.length; i < len; i++) {
|
|
127
|
-
recursionFunc(current.children[i]);
|
|
158
|
+
recursionFunc(current.children[i], level + 1);
|
|
128
159
|
}
|
|
129
160
|
}
|
|
130
|
-
})(el);
|
|
161
|
+
})(el, 0);
|
|
131
162
|
|
|
132
163
|
return /** @type {Array<T>} */ (children);
|
|
133
164
|
}
|
|
134
165
|
|
|
135
166
|
/**
|
|
136
167
|
* @template {Node} T
|
|
137
|
-
* @description Get all
|
|
168
|
+
* @description Get all `childNodes` of the argument value element (Include text nodes)
|
|
138
169
|
* @param {Node} element element to get child node
|
|
139
170
|
* @param {?(current: *) => boolean} validation Conditional function
|
|
171
|
+
* @param {?number} depth Number of child levels to depth.
|
|
140
172
|
* @returns {Array<T>}
|
|
141
173
|
*/
|
|
142
|
-
export function getListChildNodes(element, validation) {
|
|
174
|
+
export function getListChildNodes(element, validation, depth) {
|
|
143
175
|
const children = [];
|
|
144
|
-
|
|
176
|
+
depth ??= Infinity;
|
|
177
|
+
if (!element || depth <= 0 || element.childNodes.length === 0) return /** @type {Array<T>} */ (children);
|
|
145
178
|
|
|
146
|
-
validation
|
|
147
|
-
validation ||
|
|
148
|
-
function () {
|
|
149
|
-
return true;
|
|
150
|
-
};
|
|
179
|
+
validation ||= () => true;
|
|
151
180
|
|
|
152
|
-
(function recursionFunc(current) {
|
|
153
|
-
if (
|
|
181
|
+
(function recursionFunc(current, level) {
|
|
182
|
+
if (level > depth) return;
|
|
183
|
+
|
|
184
|
+
if (level > 0 && validation(current)) {
|
|
154
185
|
children.push(current);
|
|
155
186
|
}
|
|
156
187
|
|
|
157
|
-
|
|
158
|
-
|
|
188
|
+
if (level === depth) return;
|
|
189
|
+
|
|
190
|
+
const nodes = current.childNodes;
|
|
191
|
+
for (let i = 0, len = nodes.length; i < len; i++) {
|
|
192
|
+
recursionFunc(nodes[i], level + 1);
|
|
159
193
|
}
|
|
160
|
-
})(element);
|
|
194
|
+
})(element, 0);
|
|
161
195
|
|
|
162
196
|
return /** @type {Array<T>} */ (children);
|
|
163
197
|
}
|
|
164
198
|
|
|
165
199
|
/**
|
|
166
200
|
* @description Returns the number of parents nodes.
|
|
167
|
-
* -
|
|
168
|
-
* -
|
|
201
|
+
* - `0` when the parent node is the WYSIWYG area.
|
|
202
|
+
* - `-1` when the element argument is the WYSIWYG area.
|
|
169
203
|
* @param {Node} node The element to check
|
|
170
204
|
* @returns {number}
|
|
171
205
|
*/
|
|
@@ -186,7 +220,7 @@ export function getNodeDepth(node) {
|
|
|
186
220
|
/**
|
|
187
221
|
* @description Sort a node array by depth of element.
|
|
188
222
|
* @param {Array<Node>} array Node array
|
|
189
|
-
* @param {boolean} des true
|
|
223
|
+
* @param {boolean} des `true`: descending order / `false`: ascending order
|
|
190
224
|
*/
|
|
191
225
|
export function sortNodeByDepth(array, des) {
|
|
192
226
|
const t = !des ? -1 : 1;
|
|
@@ -204,22 +238,41 @@ export function sortNodeByDepth(array, des) {
|
|
|
204
238
|
* @description Compares two elements to find a common ancestor, and returns the order of the two elements.
|
|
205
239
|
* @param {Node} a Node to compare.
|
|
206
240
|
* @param {Node} b Node to compare.
|
|
207
|
-
* @returns {{ancestor: HTMLElement
|
|
241
|
+
* @returns {{ancestor: ?HTMLElement, a: Node, b: Node, result: number}} { ancesstor, a, b, result: (a > b ? 1 : a < b ? -1 : 0) };
|
|
208
242
|
*/
|
|
209
243
|
export function compareElements(a, b) {
|
|
210
244
|
let aNode = a,
|
|
211
245
|
bNode = b;
|
|
246
|
+
|
|
247
|
+
// Equalize depth
|
|
248
|
+
const aDepth = getNodeDepth(a);
|
|
249
|
+
const bDepth = getNodeDepth(b);
|
|
250
|
+
|
|
251
|
+
if (aDepth > bDepth) {
|
|
252
|
+
let diff = aDepth - bDepth;
|
|
253
|
+
while (diff > 0 && aNode) {
|
|
254
|
+
aNode = aNode.parentElement;
|
|
255
|
+
diff--;
|
|
256
|
+
}
|
|
257
|
+
} else if (bDepth > aDepth) {
|
|
258
|
+
let diff = bDepth - aDepth;
|
|
259
|
+
while (diff > 0 && bNode) {
|
|
260
|
+
bNode = bNode.parentElement;
|
|
261
|
+
diff--;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
|
|
212
265
|
while (aNode && bNode && aNode.parentElement !== bNode.parentElement) {
|
|
213
266
|
aNode = aNode.parentElement;
|
|
214
267
|
bNode = bNode.parentElement;
|
|
215
268
|
}
|
|
216
269
|
|
|
217
|
-
if (!aNode || !bNode)
|
|
270
|
+
if (!aNode?.parentNode || !bNode?.parentNode)
|
|
218
271
|
return {
|
|
219
272
|
ancestor: null,
|
|
220
273
|
a: a,
|
|
221
274
|
b: b,
|
|
222
|
-
result: 0
|
|
275
|
+
result: 0,
|
|
223
276
|
};
|
|
224
277
|
|
|
225
278
|
const children = aNode.parentNode.childNodes;
|
|
@@ -230,7 +283,7 @@ export function compareElements(a, b) {
|
|
|
230
283
|
ancestor: aNode.parentElement,
|
|
231
284
|
a: aNode,
|
|
232
285
|
b: bNode,
|
|
233
|
-
result: aIndex > bIndex ? 1 : aIndex < bIndex ? -1 : 0
|
|
286
|
+
result: aIndex > bIndex ? 1 : aIndex < bIndex ? -1 : 0,
|
|
234
287
|
};
|
|
235
288
|
}
|
|
236
289
|
|
|
@@ -238,12 +291,21 @@ export function compareElements(a, b) {
|
|
|
238
291
|
* @template {HTMLElement} T
|
|
239
292
|
* @description Get the parent element of the argument value.
|
|
240
293
|
* - A tag that satisfies the query condition is imported.
|
|
294
|
+
* @example
|
|
295
|
+
* // Find by tag name
|
|
296
|
+
* const table = dom.query.getParentElement(cell, 'TABLE');
|
|
297
|
+
*
|
|
298
|
+
* // Find by CSS class
|
|
299
|
+
* const wrapper = dom.query.getParentElement(node, '.se-wrapper');
|
|
300
|
+
*
|
|
301
|
+
* // Find by validation function
|
|
302
|
+
* const line = dom.query.getParentElement(node, (el) => el.nodeType === 1);
|
|
241
303
|
* @param {Node} element Reference element
|
|
242
|
-
* @param {string|((current: *) => boolean)|Node} query Query String (nodeName
|
|
304
|
+
* @param {string|((current: *) => boolean)|Node} query Query String (`nodeName`, `.className`, `#ID`, `:name`) or validation function.
|
|
243
305
|
* - Not use it like jquery.
|
|
244
306
|
* - Only one condition can be entered at a time.
|
|
245
|
-
* @param {?number
|
|
246
|
-
* @returns {T|null} Not found: null
|
|
307
|
+
* @param {?number} [depth] Number of parent levels to depth.
|
|
308
|
+
* @returns {T|null} Not found: `null`
|
|
247
309
|
*/
|
|
248
310
|
export function getParentElement(element, query, depth) {
|
|
249
311
|
let valid;
|
|
@@ -274,7 +336,7 @@ export function getParentElement(element, query, depth) {
|
|
|
274
336
|
valid = (el) => regExp.test(el[attr]);
|
|
275
337
|
}
|
|
276
338
|
|
|
277
|
-
|
|
339
|
+
depth ||= Infinity;
|
|
278
340
|
let index = 0;
|
|
279
341
|
while (element && !valid(element)) {
|
|
280
342
|
if (index >= depth || domCheck.isWysiwygFrame(element)) {
|
|
@@ -292,10 +354,10 @@ export function getParentElement(element, query, depth) {
|
|
|
292
354
|
* @description Gets all ancestors of the argument value.
|
|
293
355
|
* - Get all tags that satisfy the query condition.
|
|
294
356
|
* @param {Node} element Reference element
|
|
295
|
-
* @param {string|((current: *) => boolean)|Node} query Query String (nodeName
|
|
357
|
+
* @param {string|((current: *) => boolean)|Node} query Query String (`nodeName`, `.className`, `#ID`, `:name`) or validation function.
|
|
296
358
|
* Not use it like jquery.
|
|
297
359
|
* Only one condition can be entered at a time.
|
|
298
|
-
* @param {?number
|
|
360
|
+
* @param {?number} [depth] Number of parent levels to depth.
|
|
299
361
|
* @returns {Array<T>} Returned in an array in order.
|
|
300
362
|
*/
|
|
301
363
|
export function getParentElements(element, query, depth) {
|
|
@@ -328,7 +390,7 @@ export function getParentElements(element, query, depth) {
|
|
|
328
390
|
}
|
|
329
391
|
|
|
330
392
|
const elementList = [];
|
|
331
|
-
|
|
393
|
+
depth ||= Infinity;
|
|
332
394
|
let index = 0;
|
|
333
395
|
while (index <= depth && element && !domCheck.isWysiwygFrame(element)) {
|
|
334
396
|
if (valid(element)) {
|
|
@@ -343,7 +405,7 @@ export function getParentElements(element, query, depth) {
|
|
|
343
405
|
|
|
344
406
|
/**
|
|
345
407
|
* @template {HTMLElement} T
|
|
346
|
-
* @description Gets the element with
|
|
408
|
+
* @description Gets the element with `data-command` attribute among the parent elements.
|
|
347
409
|
* @param {Node} target Target element
|
|
348
410
|
* @returns {T|null}
|
|
349
411
|
*/
|
|
@@ -372,11 +434,11 @@ export function getEventTarget(event) {
|
|
|
372
434
|
* @description Get the child element of the argument value.
|
|
373
435
|
* - A tag that satisfies the query condition is imported.
|
|
374
436
|
* @param {Node} node Reference element
|
|
375
|
-
* @param {string|((current: *) => boolean)|Node} query Query String (nodeName
|
|
376
|
-
* @param {boolean} last If true returns the last node among the found child nodes. (default: first node)
|
|
437
|
+
* @param {string|((current: *) => boolean)|Node} query Query String (`nodeName`, `.className`, `#ID`, `:name`) or validation function.
|
|
438
|
+
* @param {boolean} last If `true` returns the last node among the found child nodes. (default: first node)
|
|
377
439
|
* Not use it like jquery.
|
|
378
440
|
* Only one condition can be entered at a time.
|
|
379
|
-
* @returns {T|null} Not found: null
|
|
441
|
+
* @returns {T|null} Not found: `null`
|
|
380
442
|
*/
|
|
381
443
|
export function getEdgeChild(node, query, last) {
|
|
382
444
|
let valid;
|
|
@@ -409,30 +471,30 @@ export function getEdgeChild(node, query, last) {
|
|
|
409
471
|
};
|
|
410
472
|
}
|
|
411
473
|
|
|
412
|
-
const childList = getListChildNodes(node, (current) => valid(current));
|
|
474
|
+
const childList = getListChildNodes(node, (current) => valid(current), null);
|
|
413
475
|
|
|
414
476
|
return /** @type {T} */ (childList[last ? childList.length - 1 : 0]);
|
|
415
477
|
}
|
|
416
478
|
|
|
417
479
|
/**
|
|
418
480
|
* @description Get edge child nodes of the argument value.
|
|
419
|
-
* - 1. The first node of all the child nodes of the
|
|
420
|
-
* - 2. The last node of all the child nodes of the
|
|
421
|
-
* - 3. When there is no
|
|
481
|
+
* - 1. The first node of all the child nodes of the `first` element is returned.
|
|
482
|
+
* - 2. The last node of all the child nodes of the `last` element is returned.
|
|
483
|
+
* - 3. When there is no `last` element, the first and last nodes of all the children of the `first` element are returned.
|
|
422
484
|
* @param {Node} first First element
|
|
423
|
-
* @param {Node
|
|
424
|
-
* @returns {{sc: Node, ec: Node}} { sc:
|
|
485
|
+
* @param {?Node} last Last element
|
|
486
|
+
* @returns {{sc: Node, ec: Node}} { sc: `first`, ec: `last` }
|
|
425
487
|
*/
|
|
426
488
|
export function getEdgeChildNodes(first, last) {
|
|
427
489
|
if (!first) return;
|
|
428
|
-
|
|
490
|
+
last ||= first;
|
|
429
491
|
|
|
430
492
|
while (first && first.nodeType === 1 && first.childNodes.length > 0 && !domCheck.isBreak(first)) first = first.firstChild;
|
|
431
493
|
while (last && last.nodeType === 1 && last.childNodes.length > 0 && !domCheck.isBreak(last)) last = last.lastChild;
|
|
432
494
|
|
|
433
495
|
return {
|
|
434
496
|
sc: first,
|
|
435
|
-
ec: last || first
|
|
497
|
+
ec: last || first,
|
|
436
498
|
};
|
|
437
499
|
}
|
|
438
500
|
|
|
@@ -440,8 +502,8 @@ export function getEdgeChildNodes(first, last) {
|
|
|
440
502
|
* @template {Node} T
|
|
441
503
|
* @description Gets the previous sibling last child. If there is no sibling, then it'll take it from the closest ancestor with child
|
|
442
504
|
* @param {Node} node Reference element
|
|
443
|
-
* @param {?Node
|
|
444
|
-
* @returns {T|null} Not found: null
|
|
505
|
+
* @param {?Node} [ceiling] Highest boundary allowed
|
|
506
|
+
* @returns {T|null} Not found: `null`
|
|
445
507
|
*/
|
|
446
508
|
export function getPreviousDeepestNode(node, ceiling) {
|
|
447
509
|
let previousNode = node.previousSibling;
|
|
@@ -467,8 +529,8 @@ export function getPreviousDeepestNode(node, ceiling) {
|
|
|
467
529
|
* @template {Node} T
|
|
468
530
|
* @description Gets the next sibling first child. If there is no sibling, then it'll take it from the closest ancestor with child
|
|
469
531
|
* @param {Node} node Reference element
|
|
470
|
-
* @param {?Node
|
|
471
|
-
* @returns {T|null} Not found: null
|
|
532
|
+
* @param {?Node} [ceiling] Highest boundary allowed
|
|
533
|
+
* @returns {T|null} Not found: `null`
|
|
472
534
|
*/
|
|
473
535
|
export function getNextDeepestNode(node, ceiling) {
|
|
474
536
|
let nextNode = node.nextSibling;
|
|
@@ -491,16 +553,16 @@ export function getNextDeepestNode(node, ceiling) {
|
|
|
491
553
|
}
|
|
492
554
|
|
|
493
555
|
/**
|
|
494
|
-
* @description Find the index of the text node in the line element.
|
|
495
|
-
* @param {Node} line
|
|
556
|
+
* @description Find the index of the text node in the `line` element.
|
|
557
|
+
* @param {Node} line `line` element (p, div, etc.)
|
|
496
558
|
* @param {Node} offsetContainer Base node to start searching
|
|
497
559
|
* @param {number} offset Base offset to start searching
|
|
498
|
-
* @param {?(current: *) => boolean
|
|
560
|
+
* @param {?(current: *) => boolean} [validate] Validation function
|
|
499
561
|
* @returns {number}
|
|
500
562
|
*/
|
|
501
563
|
export function findTextIndexOnLine(line, offsetContainer, offset, validate) {
|
|
502
564
|
if (!line) return 0;
|
|
503
|
-
|
|
565
|
+
validate ||= () => true;
|
|
504
566
|
|
|
505
567
|
let index = 0;
|
|
506
568
|
let found = false;
|
|
@@ -531,7 +593,7 @@ export function findTextIndexOnLine(line, offsetContainer, offset, validate) {
|
|
|
531
593
|
/**
|
|
532
594
|
* @description Find the end index of a sequence of at least minTabSize consecutive non-breaking spaces or spaces
|
|
533
595
|
* - which are interpreted as a tab key, occurring after a given base index in a text string.
|
|
534
|
-
* @param {Node} line
|
|
596
|
+
* @param {Node} line `line` element (p, div, etc.)
|
|
535
597
|
* @param {number} baseIndex Base index to start searching
|
|
536
598
|
* @param {number} minTabSize Minimum number of consecutive spaces to consider as a tab
|
|
537
599
|
* @returns {number} The adjusted index within the line element accounting for non-space characters
|
|
@@ -558,7 +620,7 @@ export function findTabEndIndex(line, baseIndex, minTabSize) {
|
|
|
558
620
|
|
|
559
621
|
/**
|
|
560
622
|
* @description Finds the table cell that appears visually at the bottom-right position,
|
|
561
|
-
* considering both rowSpan and colSpan
|
|
623
|
+
* considering both `rowSpan` and `colSpan`, even if smaller cells are placed after large merged cells.
|
|
562
624
|
*
|
|
563
625
|
* @param {HTMLTableCellElement[]} cells
|
|
564
626
|
* @returns {HTMLTableCellElement|null}
|
|
@@ -583,7 +645,7 @@ export function findVisualLastCell(cells) {
|
|
|
583
645
|
const colSpan = cell.colSpan || 1;
|
|
584
646
|
|
|
585
647
|
// 현재 행에서 visual column index 찾기
|
|
586
|
-
|
|
648
|
+
occupied[rowIndex] ||= [];
|
|
587
649
|
|
|
588
650
|
let colIndex = 0;
|
|
589
651
|
const rowOcc = occupied[rowIndex];
|
|
@@ -595,7 +657,7 @@ export function findVisualLastCell(cells) {
|
|
|
595
657
|
|
|
596
658
|
for (let r = 1; r < rowSpan; r++) {
|
|
597
659
|
const nextRow = rowIndex + r;
|
|
598
|
-
|
|
660
|
+
occupied[nextRow] ||= [];
|
|
599
661
|
for (let i = 0; i < colSpan; i++) {
|
|
600
662
|
occupied[nextRow][colIndex + i] = true;
|
|
601
663
|
}
|
|
@@ -616,26 +678,33 @@ export function findVisualLastCell(cells) {
|
|
|
616
678
|
}
|
|
617
679
|
|
|
618
680
|
/**
|
|
619
|
-
* @description
|
|
620
|
-
* @param {
|
|
621
|
-
* @returns {HTMLElement
|
|
681
|
+
* @description Finds and returns parent containers that are scrollable.
|
|
682
|
+
* @param {HTMLElement} element - Element to start with
|
|
683
|
+
* @returns {HTMLElement[]} - Array (in descending order)
|
|
622
684
|
*/
|
|
623
|
-
export function
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
}
|
|
685
|
+
export function getScrollParents(element) {
|
|
686
|
+
const scrollable = [];
|
|
687
|
+
let parent = element?.parentElement;
|
|
627
688
|
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
689
|
+
while (parent && !/^(body|html)$/i.test(parent.nodeName)) {
|
|
690
|
+
const style = _w.getComputedStyle(parent);
|
|
691
|
+
const { overflow, overflowX, overflowY } = style;
|
|
692
|
+
|
|
693
|
+
const canScroll = [overflow, overflowX, overflowY].some((prop) => ['auto', 'scroll', 'overlay'].includes(prop));
|
|
694
|
+
|
|
695
|
+
if (canScroll) {
|
|
696
|
+
scrollable.push(parent);
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
parent = parent.parentElement;
|
|
633
700
|
}
|
|
701
|
+
|
|
702
|
+
return scrollable;
|
|
634
703
|
}
|
|
635
704
|
|
|
636
705
|
/**
|
|
637
|
-
* @description Get the argument iframe's document object if use the
|
|
638
|
-
* @param {HTMLIFrameElement} iframe Iframe element (this.
|
|
706
|
+
* @description Get the argument iframe's document object if use the `iframe` or `fullPage` options
|
|
707
|
+
* @param {HTMLIFrameElement} iframe Iframe element (`this.frameContext.get('wysiwygFrame')`)
|
|
639
708
|
* @returns {Document}
|
|
640
709
|
*/
|
|
641
710
|
export function getIframeDocument(iframe) {
|
|
@@ -646,6 +715,7 @@ const query = {
|
|
|
646
715
|
getPositionIndex,
|
|
647
716
|
getNodePath,
|
|
648
717
|
getNodeFromPath,
|
|
718
|
+
getChildNode,
|
|
649
719
|
getListChildren,
|
|
650
720
|
getListChildNodes,
|
|
651
721
|
getNodeDepth,
|
|
@@ -662,8 +732,8 @@ const query = {
|
|
|
662
732
|
findTextIndexOnLine,
|
|
663
733
|
findTabEndIndex,
|
|
664
734
|
findVisualLastCell,
|
|
665
|
-
|
|
666
|
-
getIframeDocument
|
|
735
|
+
getScrollParents,
|
|
736
|
+
getIframeDocument,
|
|
667
737
|
};
|
|
668
738
|
|
|
669
739
|
export default query;
|