suneditor 3.0.0-alpha.2 → 3.0.0-alpha.20

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.
Files changed (306) hide show
  1. package/.eslintrc.json +4 -3
  2. package/CONTRIBUTING.md +4 -2
  3. package/README.md +19 -11
  4. package/README_V3_TEMP.md +705 -0
  5. package/dist/suneditor.min.css +1 -0
  6. package/dist/suneditor.min.js +1 -0
  7. package/example.md +587 -0
  8. package/package.json +15 -9
  9. package/src/assets/icons/_default.js +166 -131
  10. package/src/assets/{suneditor-content.css → suneditor-contents.css} +182 -45
  11. package/src/assets/suneditor.css +1195 -556
  12. package/src/assets/variables.css +138 -0
  13. package/src/core/base/eventHandlers/handler_toolbar.js +35 -14
  14. package/src/core/base/eventHandlers/handler_ww_clipboard.js +29 -4
  15. package/src/core/base/eventHandlers/handler_ww_dragDrop.js +59 -15
  16. package/src/core/base/eventHandlers/handler_ww_key_input.js +426 -212
  17. package/src/core/base/eventHandlers/handler_ww_mouse.js +108 -32
  18. package/src/core/base/eventManager.js +540 -209
  19. package/src/core/base/events.js +616 -320
  20. package/src/core/base/history.js +93 -39
  21. package/src/core/class/char.js +29 -13
  22. package/src/core/class/component.js +332 -145
  23. package/src/core/class/format.js +671 -509
  24. package/src/core/class/html.js +504 -290
  25. package/src/core/class/menu.js +114 -47
  26. package/src/core/class/nodeTransform.js +111 -66
  27. package/src/core/class/offset.js +409 -105
  28. package/src/core/class/selection.js +220 -108
  29. package/src/core/class/shortcuts.js +68 -8
  30. package/src/core/class/toolbar.js +106 -116
  31. package/src/core/class/ui.js +330 -0
  32. package/src/core/class/viewer.js +178 -74
  33. package/src/core/editor.js +489 -384
  34. package/src/core/section/actives.js +118 -22
  35. package/src/core/section/constructor.js +504 -170
  36. package/src/core/section/context.js +28 -23
  37. package/src/core/section/documentType.js +561 -0
  38. package/src/editorInjector/_classes.js +19 -5
  39. package/src/editorInjector/_core.js +71 -7
  40. package/src/editorInjector/index.js +63 -1
  41. package/src/helper/converter.js +137 -19
  42. package/src/helper/dom/domCheck.js +294 -0
  43. package/src/helper/dom/domQuery.js +609 -0
  44. package/src/helper/dom/domUtils.js +533 -0
  45. package/src/helper/dom/index.js +12 -0
  46. package/src/helper/env.js +42 -19
  47. package/src/helper/index.js +7 -4
  48. package/src/helper/keyCodeMap.js +183 -0
  49. package/src/helper/numbers.js +8 -8
  50. package/src/helper/unicode.js +5 -5
  51. package/src/langs/ckb.js +69 -3
  52. package/src/langs/cs.js +67 -1
  53. package/src/langs/da.js +68 -2
  54. package/src/langs/de.js +68 -3
  55. package/src/langs/en.js +29 -1
  56. package/src/langs/es.js +68 -3
  57. package/src/langs/fa.js +70 -2
  58. package/src/langs/fr.js +68 -2
  59. package/src/langs/he.js +68 -3
  60. package/src/langs/hu.js +226 -0
  61. package/src/langs/index.js +3 -2
  62. package/src/langs/it.js +65 -0
  63. package/src/langs/ja.js +68 -3
  64. package/src/langs/ko.js +66 -1
  65. package/src/langs/lv.js +68 -3
  66. package/src/langs/nl.js +68 -3
  67. package/src/langs/pl.js +68 -3
  68. package/src/langs/pt_br.js +65 -0
  69. package/src/langs/ro.js +69 -4
  70. package/src/langs/ru.js +68 -3
  71. package/src/langs/se.js +68 -3
  72. package/src/langs/tr.js +68 -0
  73. package/src/langs/ua.js +68 -3
  74. package/src/langs/ur.js +71 -6
  75. package/src/langs/zh_cn.js +69 -4
  76. package/src/modules/ApiManager.js +77 -54
  77. package/src/modules/Browser.js +667 -0
  78. package/src/modules/ColorPicker.js +162 -102
  79. package/src/modules/Controller.js +233 -136
  80. package/src/modules/Figure.js +913 -489
  81. package/src/modules/FileManager.js +141 -72
  82. package/src/modules/HueSlider.js +113 -61
  83. package/src/modules/Modal.js +292 -113
  84. package/src/modules/ModalAnchorEditor.js +380 -230
  85. package/src/modules/SelectMenu.js +270 -168
  86. package/src/modules/_DragHandle.js +2 -1
  87. package/src/modules/index.js +3 -3
  88. package/src/plugins/browser/audioGallery.js +83 -0
  89. package/src/plugins/browser/fileBrowser.js +103 -0
  90. package/src/plugins/browser/fileGallery.js +83 -0
  91. package/src/plugins/browser/imageGallery.js +81 -0
  92. package/src/plugins/browser/videoGallery.js +103 -0
  93. package/src/plugins/command/blockquote.js +40 -27
  94. package/src/plugins/command/exportPDF.js +134 -0
  95. package/src/plugins/command/fileUpload.js +226 -158
  96. package/src/plugins/command/list_bulleted.js +93 -47
  97. package/src/plugins/command/list_numbered.js +93 -47
  98. package/src/plugins/dropdown/align.js +66 -54
  99. package/src/plugins/dropdown/backgroundColor.js +76 -45
  100. package/src/plugins/dropdown/font.js +71 -47
  101. package/src/plugins/dropdown/fontColor.js +78 -46
  102. package/src/plugins/dropdown/formatBlock.js +74 -33
  103. package/src/plugins/dropdown/hr.js +102 -51
  104. package/src/plugins/dropdown/layout.js +37 -26
  105. package/src/plugins/dropdown/lineHeight.js +54 -38
  106. package/src/plugins/dropdown/list.js +60 -45
  107. package/src/plugins/dropdown/paragraphStyle.js +51 -30
  108. package/src/plugins/dropdown/table.js +1269 -777
  109. package/src/plugins/dropdown/template.js +38 -26
  110. package/src/plugins/dropdown/textStyle.js +43 -31
  111. package/src/plugins/field/mention.js +144 -82
  112. package/src/plugins/index.js +32 -6
  113. package/src/plugins/input/fontSize.js +161 -108
  114. package/src/plugins/input/pageNavigator.js +70 -0
  115. package/src/plugins/modal/audio.js +341 -169
  116. package/src/plugins/modal/drawing.js +530 -0
  117. package/src/plugins/modal/embed.js +886 -0
  118. package/src/plugins/modal/image.js +673 -358
  119. package/src/plugins/modal/link.js +100 -71
  120. package/src/plugins/modal/math.js +384 -168
  121. package/src/plugins/modal/video.js +693 -336
  122. package/src/plugins/popup/anchor.js +222 -0
  123. package/src/suneditor.js +54 -12
  124. package/src/themes/dark.css +85 -0
  125. package/src/typedef.js +86 -0
  126. package/types/assets/icons/_default.d.ts +152 -0
  127. package/types/core/base/eventHandlers/handler_toolbar.d.ts +41 -0
  128. package/types/core/base/eventHandlers/handler_ww_clipboard.d.ts +40 -0
  129. package/types/core/base/eventHandlers/handler_ww_dragDrop.d.ts +35 -0
  130. package/types/core/base/eventHandlers/handler_ww_key_input.d.ts +45 -0
  131. package/types/core/base/eventHandlers/handler_ww_mouse.d.ts +39 -0
  132. package/types/core/base/eventManager.d.ts +377 -0
  133. package/types/core/base/events.d.ts +297 -0
  134. package/types/core/base/history.d.ts +81 -0
  135. package/types/core/class/char.d.ts +60 -0
  136. package/types/core/class/component.d.ts +259 -0
  137. package/types/core/class/format.d.ts +615 -0
  138. package/types/core/class/html.d.ts +377 -0
  139. package/types/core/class/menu.d.ts +118 -0
  140. package/types/core/class/nodeTransform.d.ts +93 -0
  141. package/types/core/class/offset.d.ts +512 -0
  142. package/types/core/class/selection.d.ts +188 -0
  143. package/types/core/class/shortcuts.d.ts +142 -0
  144. package/types/core/class/toolbar.d.ts +189 -0
  145. package/types/core/class/ui.d.ts +144 -0
  146. package/types/core/class/viewer.d.ts +140 -0
  147. package/types/core/editor.d.ts +606 -0
  148. package/types/core/section/actives.d.ts +46 -0
  149. package/types/core/section/constructor.d.ts +748 -0
  150. package/types/core/section/context.d.ts +45 -0
  151. package/types/core/section/documentType.d.ts +178 -0
  152. package/types/editorInjector/_classes.d.ts +41 -0
  153. package/types/editorInjector/_core.d.ts +92 -0
  154. package/types/editorInjector/index.d.ts +71 -0
  155. package/types/helper/converter.d.ts +150 -0
  156. package/types/helper/dom/domCheck.d.ts +182 -0
  157. package/types/helper/dom/domQuery.d.ts +214 -0
  158. package/types/helper/dom/domUtils.d.ts +211 -0
  159. package/types/helper/dom/index.d.ts +9 -0
  160. package/types/helper/env.d.ts +149 -0
  161. package/types/helper/index.d.ts +163 -0
  162. package/types/helper/keyCodeMap.d.ts +110 -0
  163. package/types/helper/numbers.d.ts +43 -0
  164. package/types/helper/unicode.d.ts +28 -0
  165. package/types/index.d.ts +0 -0
  166. package/{typings/Lang.d.ts → types/langs/_Lang.d.ts} +170 -103
  167. package/types/langs/ckb.d.ts +384 -0
  168. package/types/langs/cs.d.ts +384 -0
  169. package/types/langs/da.d.ts +384 -0
  170. package/types/langs/de.d.ts +384 -0
  171. package/types/langs/en.d.ts +384 -0
  172. package/types/langs/es.d.ts +384 -0
  173. package/types/langs/fa.d.ts +384 -0
  174. package/types/langs/fr.d.ts +384 -0
  175. package/types/langs/he.d.ts +384 -0
  176. package/types/langs/hu.d.ts +384 -0
  177. package/types/langs/index.d.ts +48 -0
  178. package/types/langs/it.d.ts +384 -0
  179. package/types/langs/ja.d.ts +384 -0
  180. package/types/langs/ko.d.ts +384 -0
  181. package/types/langs/lv.d.ts +384 -0
  182. package/types/langs/nl.d.ts +384 -0
  183. package/types/langs/pl.d.ts +384 -0
  184. package/types/langs/pt_br.d.ts +384 -0
  185. package/types/langs/ro.d.ts +384 -0
  186. package/types/langs/ru.d.ts +384 -0
  187. package/types/langs/se.d.ts +384 -0
  188. package/types/langs/tr.d.ts +384 -0
  189. package/types/langs/ua.d.ts +384 -0
  190. package/types/langs/ur.d.ts +384 -0
  191. package/types/langs/zh_cn.d.ts +384 -0
  192. package/types/modules/ApiManager.d.ts +125 -0
  193. package/types/modules/Browser.d.ts +326 -0
  194. package/types/modules/ColorPicker.d.ts +131 -0
  195. package/types/modules/Controller.d.ts +231 -0
  196. package/types/modules/Figure.d.ts +504 -0
  197. package/types/modules/FileManager.d.ts +202 -0
  198. package/types/modules/HueSlider.d.ts +136 -0
  199. package/types/modules/Modal.d.ts +117 -0
  200. package/types/modules/ModalAnchorEditor.d.ts +236 -0
  201. package/types/modules/SelectMenu.d.ts +194 -0
  202. package/types/modules/_DragHandle.d.ts +7 -0
  203. package/types/modules/index.d.ts +26 -0
  204. package/types/plugins/browser/audioGallery.d.ts +55 -0
  205. package/types/plugins/browser/fileBrowser.d.ts +64 -0
  206. package/types/plugins/browser/fileGallery.d.ts +55 -0
  207. package/types/plugins/browser/imageGallery.d.ts +51 -0
  208. package/types/plugins/browser/videoGallery.d.ts +57 -0
  209. package/types/plugins/command/blockquote.d.ts +28 -0
  210. package/types/plugins/command/exportPDF.d.ts +46 -0
  211. package/types/plugins/command/fileUpload.d.ts +156 -0
  212. package/types/plugins/command/list_bulleted.d.ts +56 -0
  213. package/types/plugins/command/list_numbered.d.ts +56 -0
  214. package/types/plugins/dropdown/align.d.ts +60 -0
  215. package/types/plugins/dropdown/backgroundColor.d.ts +63 -0
  216. package/types/plugins/dropdown/font.d.ts +54 -0
  217. package/types/plugins/dropdown/fontColor.d.ts +63 -0
  218. package/types/plugins/dropdown/formatBlock.d.ts +58 -0
  219. package/types/plugins/dropdown/hr.d.ts +81 -0
  220. package/types/plugins/dropdown/layout.d.ts +40 -0
  221. package/types/plugins/dropdown/lineHeight.d.ts +50 -0
  222. package/types/plugins/dropdown/list.d.ts +39 -0
  223. package/types/plugins/dropdown/paragraphStyle.d.ts +54 -0
  224. package/types/plugins/dropdown/table.d.ts +579 -0
  225. package/types/plugins/dropdown/template.d.ts +40 -0
  226. package/types/plugins/dropdown/textStyle.d.ts +41 -0
  227. package/types/plugins/field/mention.d.ts +102 -0
  228. package/types/plugins/index.d.ts +107 -0
  229. package/types/plugins/input/fontSize.d.ts +170 -0
  230. package/types/plugins/input/pageNavigator.d.ts +28 -0
  231. package/types/plugins/modal/audio.d.ts +269 -0
  232. package/types/plugins/modal/drawing.d.ts +246 -0
  233. package/types/plugins/modal/embed.d.ts +387 -0
  234. package/types/plugins/modal/image.d.ts +451 -0
  235. package/types/plugins/modal/link.d.ts +128 -0
  236. package/types/plugins/modal/math.d.ts +193 -0
  237. package/types/plugins/modal/video.d.ts +485 -0
  238. package/types/plugins/popup/anchor.d.ts +56 -0
  239. package/types/suneditor.d.ts +51 -0
  240. package/types/typedef-global.d.ts +144 -0
  241. package/src/core/class/notice.js +0 -42
  242. package/src/helper/domUtils.js +0 -1177
  243. package/src/modules/FileBrowser.js +0 -271
  244. package/src/plugins/command/exportPdf.js +0 -168
  245. package/src/plugins/fileBrowser/imageGallery.js +0 -81
  246. package/src/themes/test.css +0 -61
  247. package/typings/CommandPlugin.d.ts +0 -8
  248. package/typings/DialogPlugin.d.ts +0 -20
  249. package/typings/FileBrowserPlugin.d.ts +0 -30
  250. package/typings/Module.d.ts +0 -15
  251. package/typings/Plugin.d.ts +0 -42
  252. package/typings/SubmenuPlugin.d.ts +0 -8
  253. package/typings/_classes.d.ts +0 -17
  254. package/typings/_colorPicker.d.ts +0 -60
  255. package/typings/_core.d.ts +0 -55
  256. package/typings/align.d.ts +0 -5
  257. package/typings/audio.d.ts +0 -5
  258. package/typings/backgroundColor.d.ts +0 -5
  259. package/typings/blockquote.d.ts +0 -5
  260. package/typings/char.d.ts +0 -39
  261. package/typings/component.d.ts +0 -38
  262. package/typings/context.d.ts +0 -39
  263. package/typings/converter.d.ts +0 -33
  264. package/typings/dialog.d.ts +0 -28
  265. package/typings/domUtils.d.ts +0 -361
  266. package/typings/editor.d.ts +0 -7
  267. package/typings/editor.ts +0 -542
  268. package/typings/env.d.ts +0 -70
  269. package/typings/eventManager.d.ts +0 -37
  270. package/typings/events.d.ts +0 -262
  271. package/typings/fileBrowser.d.ts +0 -42
  272. package/typings/fileManager.d.ts +0 -67
  273. package/typings/font.d.ts +0 -5
  274. package/typings/fontColor.d.ts +0 -5
  275. package/typings/fontSize.d.ts +0 -5
  276. package/typings/format.d.ts +0 -191
  277. package/typings/formatBlock.d.ts +0 -5
  278. package/typings/history.d.ts +0 -48
  279. package/typings/horizontalRule.d.ts +0 -5
  280. package/typings/image.d.ts +0 -5
  281. package/typings/imageGallery.d.ts +0 -5
  282. package/typings/index.d.ts +0 -21
  283. package/typings/index.modules.d.ts +0 -11
  284. package/typings/index.plugins.d.ts +0 -58
  285. package/typings/lineHeight.d.ts +0 -5
  286. package/typings/link.d.ts +0 -5
  287. package/typings/list.d.ts +0 -5
  288. package/typings/math.d.ts +0 -5
  289. package/typings/mediaContainer.d.ts +0 -25
  290. package/typings/mention.d.ts +0 -5
  291. package/typings/node.d.ts +0 -57
  292. package/typings/notice.d.ts +0 -16
  293. package/typings/numbers.d.ts +0 -29
  294. package/typings/offset.d.ts +0 -24
  295. package/typings/options.d.ts +0 -589
  296. package/typings/paragraphStyle.d.ts +0 -5
  297. package/typings/resizing.d.ts +0 -141
  298. package/typings/selection.d.ts +0 -94
  299. package/typings/shortcuts.d.ts +0 -13
  300. package/typings/suneditor.d.ts +0 -9
  301. package/typings/table.d.ts +0 -5
  302. package/typings/template.d.ts +0 -5
  303. package/typings/textStyle.d.ts +0 -5
  304. package/typings/toolbar.d.ts +0 -32
  305. package/typings/unicode.d.ts +0 -25
  306. package/typings/video.d.ts +0 -5
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @description Elements and variables you should have
3
+ * @param {{target: Element, key: *, options: __se__FrameOptions}} editorTarget Target textarea
4
+ * @param {HTMLElement} top Editor top area
5
+ * @param {HTMLElement} wwFrame Editor wysiwyg frame
6
+ * @param {HTMLElement} codeWrapper Editor code view wrapper
7
+ * @param {HTMLElement} codeFrame Editor code view frame
8
+ * @param {{inner: HTMLElement, page: HTMLElement, pageMirror: HTMLElement}} documentTypeInner Document type elements
9
+ * @param {?HTMLElement} statusbar Editor statusbar
10
+ * @param {*} key root key
11
+ * @returns {__se__FrameContext}
12
+ */
13
+ export function CreateFrameContext(
14
+ editorTarget: {
15
+ target: Element;
16
+ key: any;
17
+ options: __se__FrameOptions;
18
+ },
19
+ top: HTMLElement,
20
+ wwFrame: HTMLElement,
21
+ codeWrapper: HTMLElement,
22
+ codeFrame: HTMLElement,
23
+ statusbar: HTMLElement | null,
24
+ documentTypeInner: {
25
+ inner: HTMLElement;
26
+ page: HTMLElement;
27
+ pageMirror: HTMLElement;
28
+ },
29
+ key: any
30
+ ): __se__FrameContext;
31
+ /**
32
+ * @description Update statusbar context
33
+ * @param {HTMLElement} statusbar Statusbar element
34
+ * @param {__se__FrameContext} mapper FrameContext map
35
+ */
36
+ export function UpdateStatusbarContext(statusbar: HTMLElement, mapper: __se__FrameContext): void;
37
+ /**
38
+ * @description Common elements and variables you should have
39
+ * @param {HTMLElement} toolbar Toolbar frame
40
+ * @param {HTMLElement|null} toolbarContainer Toolbar container
41
+ * @param {HTMLElement} menuTray menu tray
42
+ * @param {HTMLElement|null} subbar sub toolbar
43
+ * @returns {__se__Context}
44
+ */
45
+ export function CreateContext(toolbar: HTMLElement, toolbarContainer: HTMLElement | null, menuTray: HTMLElement, subbar: HTMLElement | null, statusbarContainer: any): __se__Context;
@@ -0,0 +1,178 @@
1
+ export default DocumentType;
2
+ /**
3
+ * @constructor
4
+ * @description DocumentType, page, header management class
5
+ * @param {__se__EditorCore} editor - The root editor instance
6
+ * @param {__se__FrameContext} fc - frame context object
7
+ */
8
+ declare function DocumentType(editor: __se__EditorCore, fc: __se__FrameContext): void;
9
+ declare class DocumentType {
10
+ /**
11
+ * @constructor
12
+ * @description DocumentType, page, header management class
13
+ * @param {__se__EditorCore} editor - The root editor instance
14
+ * @param {__se__FrameContext} fc - frame context object
15
+ */
16
+ constructor(editor: __se__EditorCore, fc: __se__FrameContext);
17
+ editor: import('../editor').default;
18
+ context: __se__Context;
19
+ selection: import('../class/selection').default;
20
+ offset: import('../class/offset').default;
21
+ fc: __se__FrameContext;
22
+ ww: any;
23
+ wwFrame: any;
24
+ wwWidth: number;
25
+ wwHeight: number;
26
+ isAutoHeight: boolean;
27
+ displayPage: any;
28
+ innerHeaders: any;
29
+ _wwHeaders: any[];
30
+ documentTypeInner: any;
31
+ inner: any;
32
+ page: any;
33
+ totalPages: number;
34
+ pageNum: number;
35
+ pageHeight: number;
36
+ pageBreaksCnt: number;
37
+ pages: any[];
38
+ pages_line: any[];
39
+ prevScrollTop: number;
40
+ useHeader: any;
41
+ usePage: any;
42
+ navigatorButtons: any[];
43
+ pageNavigator: any;
44
+ _mirror: any;
45
+ _mirrorCache: number;
46
+ _positionCache: Map<any, any>;
47
+ _rePageTimeout: NodeJS.Timeout;
48
+ _paddingTop: number;
49
+ _paddingBottom: number;
50
+ /**
51
+ * @description Refresh the document header area
52
+ */
53
+ reHeader(): void;
54
+ /**
55
+ * @description Refresh the document page
56
+ * @param {boolean} force - Whether to force the page to be re-rendered
57
+ * @returns {Promise<void>}
58
+ */
59
+ rePage(force: boolean): Promise<void>;
60
+ /**
61
+ * @private
62
+ * @description Initializes the cache for document elements.
63
+ * @param {Array<HTMLElement>} mChr - List of mirrored elements.
64
+ */
65
+ _initializeCache(mChr: Array<HTMLElement>): void;
66
+ /**
67
+ * @private
68
+ * @description Retrieves the element at a given position.
69
+ * @param {number} pageTop - The vertical position to check.
70
+ * @param {NodeList} mChr - List of mirrored elements.
71
+ * @returns {{ci: number, cm: number, ch: number}} The closest element and its related data.
72
+ * - ci: The index of the closest element.
73
+ * - cm: The distance between the top of the closest element and the given position.
74
+ * - ch: The height of the closest element.
75
+ */
76
+ _getElementAtPosition(
77
+ pageTop: number,
78
+ mChr: NodeList
79
+ ): {
80
+ ci: number;
81
+ cm: number;
82
+ ch: number;
83
+ };
84
+ /**
85
+ * @description Resizes the document page dynamically.
86
+ */
87
+ resizePage(): void;
88
+ /**
89
+ * @description Scrolls the document page.
90
+ */
91
+ scrollPage(): void;
92
+ /**
93
+ * @description Scrolls the window to a specific position.
94
+ */
95
+ scrollWindow(): void;
96
+ /**
97
+ * @description Retrieves the current page number.
98
+ * @returns {number} The current page number.
99
+ */
100
+ getCurrentPageNumber(): number;
101
+ /**
102
+ * @description Moves to the previous page.
103
+ */
104
+ pageUp(): void;
105
+ /**
106
+ * @description Moves to the next page.
107
+ */
108
+ pageDown(): void;
109
+ /**
110
+ * @description Moves to a specific page.
111
+ * @param {number} pageNum - The target page number.
112
+ */
113
+ pageGo(pageNum: number): void;
114
+ /**
115
+ * @description Highlights the header of the current line.
116
+ * @param {Node} line - The "line" element to be highlighted.
117
+ */
118
+ on(line: Node): void;
119
+ /**
120
+ * @description Handles text changes in the document.
121
+ */
122
+ onChangeText(header: any): void;
123
+ /**
124
+ * @private
125
+ * @description Displays the current page number.
126
+ */
127
+ _displayCurrentPage(): void;
128
+ /**
129
+ * @private
130
+ * @description Retrieves the scroll position in WYSIWYG mode.
131
+ * @returns {number} The current scroll position.
132
+ */
133
+ _getWWScrollTop(): number;
134
+ /**
135
+ * @private
136
+ * @description Moves to a specific page and updates the view.
137
+ * @param {number} pageNum - The target page number.
138
+ */
139
+ _movePage(pageNum: number, force: any): void;
140
+ /**
141
+ * @private
142
+ * @description Applies smooth scrolling for page navigation.
143
+ */
144
+ _applyPageScroll(top: any, callback: any): void;
145
+ /**
146
+ * @private
147
+ * @description Retrieves the global top offset of an element.
148
+ * @returns {number} The top offset of the element.
149
+ */
150
+ _getGlobalTop(): number;
151
+ /**
152
+ * @private
153
+ * @description Finds an header element of innerHeaders element.
154
+ * @param {Node} header - H tag element to find.
155
+ * @returns {HTMLElement|null} The found element, or null if not found.
156
+ */
157
+ _findItem(header: Node): HTMLElement | null;
158
+ /**
159
+ * @private
160
+ * @description Finds the closest header element from a given line.
161
+ * @param {Node} line - The "line" to check.
162
+ * @returns {Node|null} The closest header element, or null if not found.
163
+ */
164
+ _findLinesHeader(line: Node): Node | null;
165
+ /**
166
+ * @private
167
+ * @description Checks if an element is a header.
168
+ * @param {Node} element - The element to check.
169
+ * @returns {boolean} True if the element is a header, otherwise false.
170
+ */
171
+ _is(element: Node): boolean;
172
+ /**
173
+ * @private
174
+ * @description Retrieves all headers in the document.
175
+ * @returns {Array<HTMLElement>} An array of header elements.
176
+ */
177
+ _getHeaders(): Array<HTMLElement>;
178
+ }
@@ -0,0 +1,41 @@
1
+ export default ClassInjector;
2
+ /**
3
+ * @private
4
+ * @description Add all inner classes to the editor instance.
5
+ * @param {__se__EditorCore} editor - The root editor instance
6
+ */
7
+ declare function ClassInjector(editor: __se__EditorCore): void;
8
+ declare class ClassInjector {
9
+ /**
10
+ * @private
11
+ * @description Add all inner classes to the editor instance.
12
+ * @param {__se__EditorCore} editor - The root editor instance
13
+ */
14
+ private constructor();
15
+ /** @description Toolbar class instance @type {__se__EditorCore['toolbar']} */
16
+ toolbar: __se__EditorCore['toolbar'];
17
+ /** @description Sub-Toolbar class instance @type {__se__EditorCore['subToolbar']|null} */
18
+ subToolbar: __se__EditorCore['subToolbar'] | null;
19
+ /** @description Char class instance @type {__se__EditorCore['char']} */
20
+ char: __se__EditorCore['char'];
21
+ /** @description Component class instance @type {__se__EditorCore['component']} */
22
+ component: __se__EditorCore['component'];
23
+ /** @description Format class instance @type {__se__EditorCore['format']} */
24
+ format: __se__EditorCore['format'];
25
+ /** @description HTML class instance @type {__se__EditorCore['html']} */
26
+ html: __se__EditorCore['html'];
27
+ /** @description Menu class instance @type {__se__EditorCore['menu']} */
28
+ menu: __se__EditorCore['menu'];
29
+ /** @description NodeTransform class instance @type {__se__EditorCore['nodeTransform']} */
30
+ nodeTransform: __se__EditorCore['nodeTransform'];
31
+ /** @description Offset class instance @type {__se__EditorCore['offset']} */
32
+ offset: __se__EditorCore['offset'];
33
+ /** @description Selection class instance @type {__se__EditorCore['selection']} */
34
+ selection: __se__EditorCore['selection'];
35
+ /** @description Shortcuts class instance @type {__se__EditorCore['shortcuts']} */
36
+ shortcuts: __se__EditorCore['shortcuts'];
37
+ /** @description UI class instance @type {__se__EditorCore['ui']} */
38
+ ui: __se__EditorCore['ui'];
39
+ /** @description Viewer class instance @type {__se__EditorCore['viewer']} */
40
+ viewer: __se__EditorCore['viewer'];
41
+ }
@@ -0,0 +1,92 @@
1
+ /**
2
+ * @description Add default properties to the editor core object.
3
+ * @param {__se__EditorCore} editor - The root editor instance
4
+ */
5
+ export default function CoreInjector(editor: __se__EditorCore): void;
6
+ export default class CoreInjector {
7
+ /**
8
+ * @description Add default properties to the editor core object.
9
+ * @param {__se__EditorCore} editor - The root editor instance
10
+ */
11
+ constructor(editor: __se__EditorCore);
12
+ /**
13
+ * @description The root editor instance.
14
+ * @type {__se__EditorCore}
15
+ */
16
+ editor: __se__EditorCore;
17
+ /**
18
+ * @description The event manager instance.
19
+ * @type {import('../core/base/eventManager').default}
20
+ */
21
+ eventManager: import('../core/base/eventManager').default;
22
+ /**
23
+ * @description The history manager instance.
24
+ * @type {__se__EditorCore['history']}
25
+ */
26
+ history: __se__EditorCore['history'];
27
+ /**
28
+ * @description The events instance.
29
+ * @type {__se__EditorCore['events']}
30
+ */
31
+ events: __se__EditorCore['events'];
32
+ /**
33
+ * @description The function to trigger an event.
34
+ * @type {__se__EditorCore['triggerEvent']}
35
+ */
36
+ triggerEvent: __se__EditorCore['triggerEvent'];
37
+ /**
38
+ * @description The wrapper element for carrying elements.
39
+ * @type {__se__EditorCore['carrierWrapper']}
40
+ */
41
+ carrierWrapper: __se__EditorCore['carrierWrapper'];
42
+ /**
43
+ * @description The plugins used by the editor.
44
+ * @type {__se__EditorCore['plugins']}
45
+ */
46
+ plugins: __se__EditorCore['plugins'];
47
+ /**
48
+ * @description The status of the editor.
49
+ * @type {__se__EditorStatus}
50
+ */
51
+ status: __se__EditorStatus;
52
+ /**
53
+ * @description The editor's context map.
54
+ * @type {__se__EditorCore['context']}
55
+ */
56
+ context: __se__EditorCore['context'];
57
+ /**
58
+ * @description The editor's options map.
59
+ * @type {__se__EditorCore['options']}
60
+ */
61
+ options: __se__EditorCore['options'];
62
+ /**
63
+ * @description The editor's icons.
64
+ * @type {__se__EditorCore['icons']}
65
+ */
66
+ icons: __se__EditorCore['icons'];
67
+ /**
68
+ * @description The language settings.
69
+ * @type {__se__EditorCore['lang']}
70
+ */
71
+ lang: __se__EditorCore['lang'];
72
+ /**
73
+ * @description editor.frameRoots map.
74
+ * @type {__se__EditorCore['frameRoots']}
75
+ */
76
+ frameRoots: __se__EditorCore['frameRoots'];
77
+ /**
78
+ * @description The window object.
79
+ * @type {Window}
80
+ */
81
+ _w: Window;
82
+ /**
83
+ * @description The document object.
84
+ * @type {Document}
85
+ */
86
+ _d: Document;
87
+ /**
88
+ * @description The shadow root object (if any).
89
+ * @type {__se__EditorCore['_shadowRoot']}
90
+ */
91
+ _shadowRoot: __se__EditorCore['_shadowRoot'];
92
+ }
@@ -0,0 +1,71 @@
1
+ export default EditorInjector;
2
+ /**
3
+ * @description Initializes and adds inner classes and default properties of the editor.
4
+ * @param {__se__EditorCore} editor - The root editor instance
5
+ */
6
+ declare function EditorInjector(editor: __se__EditorCore): void;
7
+ declare class EditorInjector {
8
+ /**
9
+ * @description Initializes and adds inner classes and default properties of the editor.
10
+ * @param {__se__EditorCore} editor - The root editor instance
11
+ */
12
+ constructor(editor: __se__EditorCore);
13
+ /** @type {__se__EditorCore} */
14
+ editor: __se__EditorCore;
15
+ /** @type {import('./_core').default['eventManager']} */
16
+ eventManager: import('./_core').default['eventManager'];
17
+ /** @type {import('./_core').default['history']} */
18
+ history: import('./_core').default['history'];
19
+ /** @type {import('./_core').default['events']} */
20
+ events: import('./_core').default['events'];
21
+ /** @type {import('./_core').default['triggerEvent']} */
22
+ triggerEvent: import('./_core').default['triggerEvent'];
23
+ /** @type {import('./_core').default['carrierWrapper']} */
24
+ carrierWrapper: import('./_core').default['carrierWrapper'];
25
+ /** @type {import('./_core').default['plugins']} */
26
+ plugins: import('./_core').default['plugins'];
27
+ /** @type {import('./_core').default['status']} */
28
+ status: import('./_core').default['status'];
29
+ /** @type {import('./_core').default['context']} */
30
+ context: import('./_core').default['context'];
31
+ /** @type {import('./_core').default['options']} */
32
+ options: import('./_core').default['options'];
33
+ /** @type {import('./_core').default['icons']} */
34
+ icons: import('./_core').default['icons'];
35
+ /** @type {import('./_core').default['lang']} */
36
+ lang: import('./_core').default['lang'];
37
+ /** @type {import('./_core').default['frameRoots']} */
38
+ frameRoots: import('./_core').default['frameRoots'];
39
+ /** @type {import('./_core').default['_w']} */
40
+ _w: import('./_core').default['_w'];
41
+ /** @type {import('./_core').default['_d']} */
42
+ _d: import('./_core').default['_d'];
43
+ /** @type {import('./_core').default['_shadowRoot']} */
44
+ _shadowRoot: import('./_core').default['_shadowRoot'];
45
+ /** @type {import('./_classes').default['toolbar']} */
46
+ toolbar: import('./_classes').default['toolbar'];
47
+ /** @type {import('./_classes').default['subToolbar']} */
48
+ subToolbar: import('./_classes').default['subToolbar'];
49
+ /** @type {import('./_classes').default['char']} */
50
+ char: import('./_classes').default['char'];
51
+ /** @type {import('./_classes').default['component']} */
52
+ component: import('./_classes').default['component'];
53
+ /** @type {import('./_classes').default['format']} */
54
+ format: import('./_classes').default['format'];
55
+ /** @type {import('./_classes').default['html']} */
56
+ html: import('./_classes').default['html'];
57
+ /** @type {import('./_classes').default['menu']} */
58
+ menu: import('./_classes').default['menu'];
59
+ /** @type {import('./_classes').default['nodeTransform']} */
60
+ nodeTransform: import('./_classes').default['nodeTransform'];
61
+ /** @type {import('./_classes').default['offset']} */
62
+ offset: import('./_classes').default['offset'];
63
+ /** @type {import('./_classes').default['selection']} */
64
+ selection: import('./_classes').default['selection'];
65
+ /** @type {import('./_classes').default['shortcuts']} */
66
+ shortcuts: import('./_classes').default['shortcuts'];
67
+ /** @type {import('./_classes').default['ui']} */
68
+ ui: import('./_classes').default['ui'];
69
+ /** @type {import('./_classes').default['viewer']} */
70
+ viewer: import('./_classes').default['viewer'];
71
+ }
@@ -0,0 +1,150 @@
1
+ /**
2
+ * @description Convert HTML string to HTML Entity
3
+ * @param {string} content
4
+ * @returns {string} Content string
5
+ * @private
6
+ */
7
+ export function htmlToEntity(content: string): string;
8
+ /**
9
+ * @description Convert HTML Entity to HTML string
10
+ * @param {string} content Content string
11
+ * @returns {string}
12
+ */
13
+ export function entityToHTML(content: string): string;
14
+ /**
15
+ * @description Debounce function
16
+ * @param {(...args: *) => void} func function
17
+ * @param {number} wait delay ms
18
+ * @returns {*} executedFunction
19
+ */
20
+ export function debounce(func: (...args: any) => void, wait: number): any;
21
+ /**
22
+ * @description Synchronizes two Map objects by updating the first Map with the values from the second,
23
+ * - and deleting any keys in the first Map that are not present in the second.
24
+ * @param {Map<*, *>} targetMap The Map to update (target).
25
+ * @param {Map<*, *>} referenceMap The Map providing the reference values (source).
26
+ */
27
+ export function syncMaps(targetMap: Map<any, any>, referenceMap: Map<any, any>): void;
28
+ /**
29
+ *
30
+ * @param {"em"|"rem"|"%"|"pt"|"px"} to Size units to be converted
31
+ * @param {string} size siSize to convert with units (ex: "15rem")
32
+ * @returns {string}
33
+ */
34
+ export function fontSize(to: 'em' | 'rem' | '%' | 'pt' | 'px', size: string): string;
35
+ /**
36
+ * @description Convert the node list to an array. If not, returns an empty array.
37
+ * @param {?__se__NodeCollection} nodeList
38
+ * @returns Array
39
+ */
40
+ export function nodeListToArray(nodeList: __se__NodeCollection | null): any;
41
+ /**
42
+ * @description Returns a new object with keys and values swapped.
43
+ * @param {Object<*, *>} obj object
44
+ * @returns {Object<*, *>}
45
+ */
46
+ export function swapKeyValue(obj: any): any;
47
+ /**
48
+ * @description Create whitelist RegExp object.
49
+ * @param {string} list Tags list ("br|p|div|pre...")
50
+ * @returns {RegExp} Return RegExp format: new RegExp("<\\/?\\b(?!" + list + ")\\b[^>^<]*+>", "gi")
51
+ */
52
+ export function createElementWhitelist(list: string): RegExp;
53
+ /**
54
+ * @description Create blacklist RegExp object.
55
+ * @param {string} list Tags list ("br|p|div|pre...")
56
+ * @returns {RegExp} Return RegExp format: new RegExp("<\\/?\\b(?:" + list + ")\\b[^>^<]*+>", "gi")
57
+ */
58
+ export function createElementBlacklist(list: string): RegExp;
59
+ /**
60
+ * @description Function to check hex format color
61
+ * @param {string} str Color value
62
+ */
63
+ export function isHexColor(str: string): boolean;
64
+ /**
65
+ * @description Function to convert hex format to a rgb color
66
+ * @param {string} rgba RGBA color format
67
+ * @returns {string}
68
+ */
69
+ export function rgb2hex(rgba: string): string;
70
+ /**
71
+ * @description Computes the width as a percentage of the parent's width, and returns this value rounded to two decimal places.
72
+ * @param {HTMLElement} target The target element for which to calculate the width percentage.
73
+ * @param {?HTMLElement=} parentTarget The parent element to use as the reference for the width calculation. If not provided, the target's parent element is used.
74
+ * @returns {number}
75
+ */
76
+ export function getWidthInPercentage(target: HTMLElement, parentTarget?: (HTMLElement | null) | undefined): number;
77
+ /**
78
+ * @description Convert url pattern text node to anchor node
79
+ * @param {Node} node Text node
80
+ * @returns {boolean} Return true if the text node is converted to an anchor node
81
+ */
82
+ export function textToAnchor(node: Node): boolean;
83
+ /**
84
+ * Converts styles within a <span> tag to corresponding HTML tags (e.g., <strong>, <em>, <u>, <s>).
85
+ * Maintains the original <span> tag and wraps its content with the new tags.
86
+ * @param {{ regex: RegExp, tag: string }} styleToTag An object mapping style properties to HTML tags. ex) {bold: { regex: /font-weight\s*:\s*bold/i, tag: 'strong' },}
87
+ * @param {Node} node Node
88
+ */
89
+ export function spanToStyleNode(
90
+ styleToTag: {
91
+ regex: RegExp;
92
+ tag: string;
93
+ },
94
+ node: Node
95
+ ): void;
96
+ /**
97
+ * Adds a query string to a URL. If the URL already contains a query string, the new query is appended to the existing one.
98
+ * @param {string} url The original URL to which the query string will be added.
99
+ * @param {string} query The query string to be added to the URL.
100
+ * @returns {string} The updated URL with the query string appended.
101
+ */
102
+ export function addUrlQuery(url: string, query: string): string;
103
+ /**
104
+ * @description Converts options-related styles and returns them for each frame.
105
+ * @param {Map<string, *>} fo editor.frameOptions
106
+ * @param {string} cssText Style string
107
+ * @returns {{top: string, frame: string, editor: string}}
108
+ * @private
109
+ */
110
+ export function _setDefaultOptionStyle(
111
+ fo: Map<string, any>,
112
+ cssText: string
113
+ ): {
114
+ top: string;
115
+ frame: string;
116
+ editor: string;
117
+ };
118
+ /**
119
+ * @description Set default style tag of the iframe
120
+ * @param {Array<string>} linkNames link names array of CSS files
121
+ * @returns {string} "<link rel="stylesheet" href=".." />.."
122
+ */
123
+ export function _setIframeStyleLinks(linkNames: Array<string>): string;
124
+ /**
125
+ * @description When iframe height options is "auto" return "<style>" tag that required.
126
+ * @param {string} frameHeight height
127
+ * @returns {string} "<style>...</style>"
128
+ */
129
+ export function _setAutoHeightStyle(frameHeight: string): string;
130
+ export default converter;
131
+ declare namespace converter {
132
+ export { htmlToEntity };
133
+ export { entityToHTML };
134
+ export { debounce };
135
+ export { syncMaps };
136
+ export { fontSize };
137
+ export { nodeListToArray };
138
+ export { swapKeyValue };
139
+ export { createElementWhitelist };
140
+ export { createElementBlacklist };
141
+ export { isHexColor };
142
+ export { rgb2hex };
143
+ export { getWidthInPercentage };
144
+ export { textToAnchor };
145
+ export { spanToStyleNode };
146
+ export { addUrlQuery };
147
+ export { _setDefaultOptionStyle };
148
+ export { _setIframeStyleLinks };
149
+ export { _setAutoHeightStyle };
150
+ }