suneditor 3.0.0-alpha.9 → 3.0.0-beta.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.
Files changed (315) hide show
  1. package/CONTRIBUTING.md +170 -22
  2. package/{LICENSE.txt → LICENSE} +9 -9
  3. package/README.md +168 -30
  4. package/dist/suneditor.min.css +1 -1
  5. package/dist/suneditor.min.js +1 -1
  6. package/package.json +47 -21
  7. package/src/assets/design/color.css +121 -0
  8. package/src/assets/design/index.css +3 -0
  9. package/src/assets/design/size.css +35 -0
  10. package/src/assets/design/typography.css +37 -0
  11. package/src/assets/icons/defaultIcons.js +232 -0
  12. package/src/assets/suneditor-contents.css +181 -46
  13. package/src/assets/suneditor.css +1403 -650
  14. package/src/core/base/eventHandlers/handler_toolbar.js +35 -14
  15. package/src/core/base/eventHandlers/handler_ww_clipboard.js +23 -4
  16. package/src/core/base/eventHandlers/handler_ww_dragDrop.js +49 -10
  17. package/src/core/base/eventHandlers/handler_ww_key_input.js +422 -224
  18. package/src/core/base/eventHandlers/handler_ww_mouse.js +83 -36
  19. package/src/core/base/eventManager.js +520 -179
  20. package/src/core/base/history.js +95 -41
  21. package/src/core/class/char.js +26 -11
  22. package/src/core/class/component.js +345 -137
  23. package/src/core/class/format.js +683 -519
  24. package/src/core/class/html.js +485 -305
  25. package/src/core/class/menu.js +133 -47
  26. package/src/core/class/nodeTransform.js +90 -71
  27. package/src/core/class/offset.js +408 -92
  28. package/src/core/class/selection.js +216 -106
  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 +422 -0
  32. package/src/core/class/viewer.js +178 -74
  33. package/src/core/editor.js +496 -389
  34. package/src/core/section/actives.js +123 -27
  35. package/src/core/section/constructor.js +615 -206
  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/events.js +622 -0
  42. package/src/helper/clipboard.js +59 -0
  43. package/src/helper/converter.js +202 -26
  44. package/src/helper/dom/domCheck.js +304 -0
  45. package/src/helper/dom/domQuery.js +669 -0
  46. package/src/helper/dom/domUtils.js +557 -0
  47. package/src/helper/dom/index.js +12 -0
  48. package/src/helper/env.js +46 -56
  49. package/src/helper/index.js +10 -4
  50. package/src/helper/keyCodeMap.js +183 -0
  51. package/src/helper/numbers.js +12 -8
  52. package/src/helper/unicode.js +9 -5
  53. package/src/langs/ckb.js +74 -4
  54. package/src/langs/cs.js +72 -2
  55. package/src/langs/da.js +73 -3
  56. package/src/langs/de.js +73 -4
  57. package/src/langs/en.js +23 -3
  58. package/src/langs/es.js +73 -4
  59. package/src/langs/fa.js +75 -3
  60. package/src/langs/fr.js +73 -3
  61. package/src/langs/he.js +73 -4
  62. package/src/langs/hu.js +230 -0
  63. package/src/langs/index.js +7 -3
  64. package/src/langs/it.js +70 -1
  65. package/src/langs/ja.js +72 -4
  66. package/src/langs/km.js +230 -0
  67. package/src/langs/ko.js +22 -2
  68. package/src/langs/lv.js +74 -5
  69. package/src/langs/nl.js +73 -4
  70. package/src/langs/pl.js +73 -4
  71. package/src/langs/pt_br.js +70 -1
  72. package/src/langs/ro.js +74 -5
  73. package/src/langs/ru.js +73 -4
  74. package/src/langs/se.js +73 -4
  75. package/src/langs/tr.js +73 -1
  76. package/src/langs/{ua.js → uk.js} +75 -6
  77. package/src/langs/ur.js +77 -8
  78. package/src/langs/zh_cn.js +74 -5
  79. package/src/modules/ApiManager.js +77 -54
  80. package/src/modules/Browser.js +667 -0
  81. package/src/modules/ColorPicker.js +162 -102
  82. package/src/modules/Controller.js +273 -142
  83. package/src/modules/Figure.js +925 -484
  84. package/src/modules/FileManager.js +121 -69
  85. package/src/modules/HueSlider.js +113 -61
  86. package/src/modules/Modal.js +291 -122
  87. package/src/modules/ModalAnchorEditor.js +383 -234
  88. package/src/modules/SelectMenu.js +270 -168
  89. package/src/modules/_DragHandle.js +2 -1
  90. package/src/modules/index.js +3 -3
  91. package/src/plugins/browser/audioGallery.js +83 -0
  92. package/src/plugins/browser/fileBrowser.js +103 -0
  93. package/src/plugins/browser/fileGallery.js +83 -0
  94. package/src/plugins/browser/imageGallery.js +81 -0
  95. package/src/plugins/browser/videoGallery.js +103 -0
  96. package/src/plugins/command/blockquote.js +40 -27
  97. package/src/plugins/command/exportPDF.js +134 -0
  98. package/src/plugins/command/fileUpload.js +229 -162
  99. package/src/plugins/command/list_bulleted.js +83 -47
  100. package/src/plugins/command/list_numbered.js +83 -47
  101. package/src/plugins/dropdown/align.js +66 -54
  102. package/src/plugins/dropdown/backgroundColor.js +63 -49
  103. package/src/plugins/dropdown/font.js +71 -47
  104. package/src/plugins/dropdown/fontColor.js +63 -48
  105. package/src/plugins/dropdown/formatBlock.js +70 -33
  106. package/src/plugins/dropdown/hr.js +92 -51
  107. package/src/plugins/dropdown/layout.js +37 -26
  108. package/src/plugins/dropdown/lineHeight.js +54 -38
  109. package/src/plugins/dropdown/list.js +60 -45
  110. package/src/plugins/dropdown/paragraphStyle.js +51 -30
  111. package/src/plugins/dropdown/table.js +2003 -813
  112. package/src/plugins/dropdown/template.js +38 -26
  113. package/src/plugins/dropdown/textStyle.js +43 -31
  114. package/src/plugins/field/mention.js +147 -86
  115. package/src/plugins/index.js +32 -6
  116. package/src/plugins/input/fontSize.js +161 -108
  117. package/src/plugins/input/pageNavigator.js +70 -0
  118. package/src/plugins/modal/audio.js +358 -173
  119. package/src/plugins/modal/drawing.js +531 -0
  120. package/src/plugins/modal/embed.js +886 -0
  121. package/src/plugins/modal/image.js +674 -362
  122. package/src/plugins/modal/link.js +100 -71
  123. package/src/plugins/modal/math.js +367 -167
  124. package/src/plugins/modal/video.js +691 -335
  125. package/src/plugins/popup/anchor.js +222 -0
  126. package/src/suneditor.js +50 -13
  127. package/src/themes/dark.css +122 -0
  128. package/src/typedef.js +130 -0
  129. package/types/assets/icons/defaultIcons.d.ts +153 -0
  130. package/types/core/base/eventHandlers/handler_toolbar.d.ts +41 -0
  131. package/types/core/base/eventHandlers/handler_ww_clipboard.d.ts +40 -0
  132. package/types/core/base/eventHandlers/handler_ww_dragDrop.d.ts +35 -0
  133. package/types/core/base/eventHandlers/handler_ww_key_input.d.ts +45 -0
  134. package/types/core/base/eventHandlers/handler_ww_mouse.d.ts +39 -0
  135. package/types/core/base/eventManager.d.ts +385 -0
  136. package/types/core/base/history.d.ts +81 -0
  137. package/types/core/class/char.d.ts +60 -0
  138. package/types/core/class/component.d.ts +212 -0
  139. package/types/core/class/format.d.ts +616 -0
  140. package/types/core/class/html.d.ts +422 -0
  141. package/types/core/class/menu.d.ts +126 -0
  142. package/types/core/class/nodeTransform.d.ts +93 -0
  143. package/types/core/class/offset.d.ts +522 -0
  144. package/types/core/class/selection.d.ts +188 -0
  145. package/types/core/class/shortcuts.d.ts +142 -0
  146. package/types/core/class/toolbar.d.ts +189 -0
  147. package/types/core/class/ui.d.ts +164 -0
  148. package/types/core/class/viewer.d.ts +140 -0
  149. package/types/core/editor.d.ts +610 -0
  150. package/types/core/section/actives.d.ts +46 -0
  151. package/types/core/section/constructor.d.ts +777 -0
  152. package/types/core/section/context.d.ts +45 -0
  153. package/types/core/section/documentType.d.ts +178 -0
  154. package/types/editorInjector/_classes.d.ts +41 -0
  155. package/types/editorInjector/_core.d.ts +92 -0
  156. package/types/editorInjector/index.d.ts +71 -0
  157. package/types/events.d.ts +273 -0
  158. package/types/helper/clipboard.d.ts +12 -0
  159. package/types/helper/converter.d.ts +197 -0
  160. package/types/helper/dom/domCheck.d.ts +189 -0
  161. package/types/helper/dom/domQuery.d.ts +223 -0
  162. package/types/helper/dom/domUtils.d.ts +226 -0
  163. package/types/helper/dom/index.d.ts +9 -0
  164. package/types/helper/env.d.ts +132 -0
  165. package/types/helper/index.d.ts +174 -0
  166. package/types/helper/keyCodeMap.d.ts +110 -0
  167. package/types/helper/numbers.d.ts +46 -0
  168. package/types/helper/unicode.d.ts +28 -0
  169. package/types/index.d.ts +120 -0
  170. package/{typings/Lang.d.ts → types/langs/_Lang.d.ts} +173 -103
  171. package/types/langs/ckb.d.ts +3 -0
  172. package/types/langs/cs.d.ts +3 -0
  173. package/types/langs/da.d.ts +3 -0
  174. package/types/langs/de.d.ts +3 -0
  175. package/types/langs/en.d.ts +3 -0
  176. package/types/langs/es.d.ts +3 -0
  177. package/types/langs/fa.d.ts +3 -0
  178. package/types/langs/fr.d.ts +3 -0
  179. package/types/langs/he.d.ts +3 -0
  180. package/types/langs/hu.d.ts +3 -0
  181. package/types/langs/index.d.ts +54 -0
  182. package/types/langs/it.d.ts +3 -0
  183. package/types/langs/ja.d.ts +3 -0
  184. package/types/langs/km.d.ts +3 -0
  185. package/types/langs/ko.d.ts +3 -0
  186. package/types/langs/lv.d.ts +3 -0
  187. package/types/langs/nl.d.ts +3 -0
  188. package/types/langs/pl.d.ts +3 -0
  189. package/types/langs/pt_br.d.ts +3 -0
  190. package/types/langs/ro.d.ts +3 -0
  191. package/types/langs/ru.d.ts +3 -0
  192. package/types/langs/se.d.ts +3 -0
  193. package/types/langs/tr.d.ts +3 -0
  194. package/types/langs/uk.d.ts +3 -0
  195. package/types/langs/ur.d.ts +3 -0
  196. package/types/langs/zh_cn.d.ts +3 -0
  197. package/types/modules/ApiManager.d.ts +125 -0
  198. package/types/modules/Browser.d.ts +326 -0
  199. package/types/modules/ColorPicker.d.ts +131 -0
  200. package/types/modules/Controller.d.ts +251 -0
  201. package/types/modules/Figure.d.ts +517 -0
  202. package/types/modules/FileManager.d.ts +202 -0
  203. package/types/modules/HueSlider.d.ts +136 -0
  204. package/types/modules/Modal.d.ts +111 -0
  205. package/types/modules/ModalAnchorEditor.d.ts +236 -0
  206. package/types/modules/SelectMenu.d.ts +194 -0
  207. package/types/modules/_DragHandle.d.ts +7 -0
  208. package/types/modules/index.d.ts +26 -0
  209. package/types/plugins/browser/audioGallery.d.ts +55 -0
  210. package/types/plugins/browser/fileBrowser.d.ts +64 -0
  211. package/types/plugins/browser/fileGallery.d.ts +55 -0
  212. package/types/plugins/browser/imageGallery.d.ts +51 -0
  213. package/types/plugins/browser/videoGallery.d.ts +57 -0
  214. package/types/plugins/command/blockquote.d.ts +28 -0
  215. package/types/plugins/command/exportPDF.d.ts +46 -0
  216. package/types/plugins/command/fileUpload.d.ts +156 -0
  217. package/types/plugins/command/list_bulleted.d.ts +46 -0
  218. package/types/plugins/command/list_numbered.d.ts +46 -0
  219. package/types/plugins/dropdown/align.d.ts +60 -0
  220. package/types/plugins/dropdown/backgroundColor.d.ts +63 -0
  221. package/types/plugins/dropdown/font.d.ts +54 -0
  222. package/types/plugins/dropdown/fontColor.d.ts +63 -0
  223. package/types/plugins/dropdown/formatBlock.d.ts +54 -0
  224. package/types/plugins/dropdown/hr.d.ts +71 -0
  225. package/types/plugins/dropdown/layout.d.ts +40 -0
  226. package/types/plugins/dropdown/lineHeight.d.ts +50 -0
  227. package/types/plugins/dropdown/list.d.ts +39 -0
  228. package/types/plugins/dropdown/paragraphStyle.d.ts +54 -0
  229. package/types/plugins/dropdown/table.d.ts +627 -0
  230. package/types/plugins/dropdown/template.d.ts +40 -0
  231. package/types/plugins/dropdown/textStyle.d.ts +41 -0
  232. package/types/plugins/field/mention.d.ts +102 -0
  233. package/types/plugins/index.d.ts +107 -0
  234. package/types/plugins/input/fontSize.d.ts +170 -0
  235. package/types/plugins/input/pageNavigator.d.ts +28 -0
  236. package/types/plugins/modal/audio.d.ts +269 -0
  237. package/types/plugins/modal/drawing.d.ts +246 -0
  238. package/types/plugins/modal/embed.d.ts +387 -0
  239. package/types/plugins/modal/image.d.ts +451 -0
  240. package/types/plugins/modal/link.d.ts +128 -0
  241. package/types/plugins/modal/math.d.ts +193 -0
  242. package/types/plugins/modal/video.d.ts +485 -0
  243. package/types/plugins/popup/anchor.d.ts +56 -0
  244. package/types/suneditor.d.ts +51 -0
  245. package/types/typedef.d.ts +233 -0
  246. package/.eslintignore +0 -7
  247. package/.eslintrc.json +0 -64
  248. package/src/assets/icons/_default.js +0 -194
  249. package/src/core/base/events.js +0 -320
  250. package/src/core/class/notice.js +0 -42
  251. package/src/helper/domUtils.js +0 -1177
  252. package/src/modules/FileBrowser.js +0 -271
  253. package/src/plugins/command/exportPdf.js +0 -168
  254. package/src/plugins/fileBrowser/imageGallery.js +0 -81
  255. package/src/themes/test.css +0 -61
  256. package/typings/CommandPlugin.d.ts +0 -8
  257. package/typings/DialogPlugin.d.ts +0 -20
  258. package/typings/FileBrowserPlugin.d.ts +0 -30
  259. package/typings/Module.d.ts +0 -15
  260. package/typings/Plugin.d.ts +0 -42
  261. package/typings/SubmenuPlugin.d.ts +0 -8
  262. package/typings/_classes.d.ts +0 -17
  263. package/typings/_colorPicker.d.ts +0 -60
  264. package/typings/_core.d.ts +0 -55
  265. package/typings/align.d.ts +0 -5
  266. package/typings/audio.d.ts +0 -5
  267. package/typings/backgroundColor.d.ts +0 -5
  268. package/typings/blockquote.d.ts +0 -5
  269. package/typings/char.d.ts +0 -39
  270. package/typings/component.d.ts +0 -38
  271. package/typings/context.d.ts +0 -39
  272. package/typings/converter.d.ts +0 -33
  273. package/typings/dialog.d.ts +0 -28
  274. package/typings/domUtils.d.ts +0 -361
  275. package/typings/editor.d.ts +0 -7
  276. package/typings/editor.ts +0 -542
  277. package/typings/env.d.ts +0 -70
  278. package/typings/eventManager.d.ts +0 -37
  279. package/typings/events.d.ts +0 -262
  280. package/typings/fileBrowser.d.ts +0 -42
  281. package/typings/fileManager.d.ts +0 -67
  282. package/typings/font.d.ts +0 -5
  283. package/typings/fontColor.d.ts +0 -5
  284. package/typings/fontSize.d.ts +0 -5
  285. package/typings/format.d.ts +0 -191
  286. package/typings/formatBlock.d.ts +0 -5
  287. package/typings/history.d.ts +0 -48
  288. package/typings/horizontalRule.d.ts +0 -5
  289. package/typings/image.d.ts +0 -5
  290. package/typings/imageGallery.d.ts +0 -5
  291. package/typings/index.d.ts +0 -21
  292. package/typings/index.modules.d.ts +0 -11
  293. package/typings/index.plugins.d.ts +0 -58
  294. package/typings/lineHeight.d.ts +0 -5
  295. package/typings/link.d.ts +0 -5
  296. package/typings/list.d.ts +0 -5
  297. package/typings/math.d.ts +0 -5
  298. package/typings/mediaContainer.d.ts +0 -25
  299. package/typings/mention.d.ts +0 -5
  300. package/typings/node.d.ts +0 -57
  301. package/typings/notice.d.ts +0 -16
  302. package/typings/numbers.d.ts +0 -29
  303. package/typings/offset.d.ts +0 -24
  304. package/typings/options.d.ts +0 -589
  305. package/typings/paragraphStyle.d.ts +0 -5
  306. package/typings/resizing.d.ts +0 -141
  307. package/typings/selection.d.ts +0 -94
  308. package/typings/shortcuts.d.ts +0 -13
  309. package/typings/suneditor.d.ts +0 -9
  310. package/typings/table.d.ts +0 -5
  311. package/typings/template.d.ts +0 -5
  312. package/typings/textStyle.d.ts +0 -5
  313. package/typings/toolbar.d.ts +0 -32
  314. package/typings/unicode.d.ts +0 -25
  315. package/typings/video.d.ts +0 -5
@@ -0,0 +1,226 @@
1
+ /**
2
+ * @template {Node} T
3
+ * @description Clones a node while preserving its type.
4
+ * @param {T} node - The node to clone.
5
+ * @param {boolean} [deep=false] - Whether to perform a deep clone.
6
+ * @returns {T} - The cloned node.
7
+ */
8
+ export function clone<T extends Node>(node: T, deep?: boolean): T;
9
+ /**
10
+ * @template {HTMLElement} T
11
+ * @description Create Element node
12
+ * @param {string} elementName Element name
13
+ * @param {?Object<string, string>=} attributes The attributes of the tag. {style: 'font-size:12px;..', class: 'el_class',..}
14
+ * @param {?string|Node=} inner A innerHTML string or inner node.
15
+ * @returns {T}
16
+ */
17
+ export function createElement<T extends HTMLElement>(
18
+ elementName: string,
19
+ attributes?:
20
+ | ({
21
+ [x: string]: string;
22
+ } | null)
23
+ | undefined,
24
+ inner?: ((string | Node) | null) | undefined
25
+ ): T;
26
+ /**
27
+ * @description Create text node
28
+ * @param {string} text text content
29
+ * @returns {Text}
30
+ */
31
+ export function createTextNode(text: string): Text;
32
+ /**
33
+ * @description Get attributes of argument element to string ('class="---" name="---" ')
34
+ * @param {Node} element Element object
35
+ * @param {Array<string>|null} exceptAttrs Array of attribute names to exclude from the result
36
+ * @returns {string}
37
+ */
38
+ export function getAttributesToString(element: Node, exceptAttrs: Array<string> | null): string;
39
+ /**
40
+ * @description Get the items array from the array that matches the condition.
41
+ * @param {__se__NodeCollection} array Array to get item
42
+ * @param {?(current: *) => boolean} validation Conditional function
43
+ * @returns {Array<Node>|null}
44
+ */
45
+ export function arrayFilter(array: __se__NodeCollection, validation: ((current: any) => boolean) | null): Array<Node> | null;
46
+ /**
47
+ * @description Get the item from the array that matches the condition.
48
+ * @param {__se__NodeCollection} array Array to get item
49
+ * @param {?(current: *) => boolean} validation Conditional function
50
+ * @returns {Node|null}
51
+ */
52
+ export function arrayFind(array: __se__NodeCollection, validation: ((current: any) => boolean) | null): Node | null;
53
+ /**
54
+ * @description Check if an array contains an element
55
+ * @param {__se__NodeCollection} array element array
56
+ * @param {Node} node The node to check for
57
+ * @returns {boolean}
58
+ */
59
+ export function arrayIncludes(array: __se__NodeCollection, node: Node): boolean;
60
+ /**
61
+ * @description Get the index of the argument value in the element array
62
+ * @param {__se__NodeCollection} array element array
63
+ * @param {Node} node The element to find index
64
+ * @returns {number}
65
+ */
66
+ export function getArrayIndex(array: __se__NodeCollection, node: Node): number;
67
+ /**
68
+ * @description Get the next index of the argument value in the element array
69
+ * @param {__se__NodeCollection} array element array
70
+ * @param {Node} item The element to find index
71
+ * @returns {number}
72
+ */
73
+ export function nextIndex(array: __se__NodeCollection, item: Node): number;
74
+ /**
75
+ * @description Get the previous index of the argument value in the element array
76
+ * @param {__se__NodeCollection} array Element array
77
+ * @param {Node} item The element to find index
78
+ * @returns {number}
79
+ */
80
+ export function prevIndex(array: __se__NodeCollection, item: Node): number;
81
+ /**
82
+ * @description Add style and className of copyEl to originEl
83
+ * @param {Node} originEl Origin element
84
+ * @param {Node} copyEl Element to copy
85
+ * @param {?Array<string>=} blacklist Blacklist array(LowerCase)
86
+ */
87
+ export function copyTagAttributes(originEl: Node, copyEl: Node, blacklist?: (Array<string> | null) | undefined): void;
88
+ /**
89
+ * @description Copy and apply attributes of format tag that should be maintained. (style, class) Ignore "__se__format__" class
90
+ * @param {Node} originEl Origin element
91
+ * @param {Node} copyEl Element to copy
92
+ */
93
+ export function copyFormatAttributes(originEl: Node, copyEl: Node): void;
94
+ /**
95
+ * @description Delete argumenu value element
96
+ * @param {Node} item Node to be remove
97
+ */
98
+ export function removeItem(item: Node): void;
99
+ /**
100
+ * @description Replace element
101
+ * @param {Node} element Target element
102
+ * @param {string|Node} newElement String or element of the new element to apply
103
+ */
104
+ export function changeElement(element: Node, newElement: string | Node): void;
105
+ /**
106
+ * @description Set the text content value of the argument value element
107
+ * @param {Node} node Element to replace text content
108
+ * @param {string} txt Text to be applied
109
+ */
110
+ export function changeTxt(node: Node, txt: string): void;
111
+ /**
112
+ * @description Set style, if all styles are deleted, the style properties are deleted.
113
+ * @param {Node|Node[]} elements Element to set style
114
+ * @param {string} styleName Style attribute name (marginLeft, textAlign...)
115
+ * @param {string|number} value Style value
116
+ */
117
+ export function setStyle(elements: Node | Node[], styleName: string, value: string | number): void;
118
+ /**
119
+ * @description In the predefined code view mode, the buttons except the executable button are changed to the 'disabled' state.
120
+ * @param {Array<HTMLButtonElement|HTMLInputElement>} buttonList (Button | Input) Element array
121
+ * @param {boolean} disabled Disabled value
122
+ * @param {boolean} [important=false] If priveleged mode should be used (Necessary to switch importantDisabled buttons)
123
+ */
124
+ export function setDisabled(buttonList: Array<HTMLButtonElement | HTMLInputElement>, disabled: boolean, important?: boolean): void;
125
+ /**
126
+ * @description Determine whether any of the matched elements are assigned the given class
127
+ * @param {?Node} element Elements to search class name
128
+ * @param {string} className Class name to search for
129
+ * @returns {boolean}
130
+ */
131
+ export function hasClass(element: Node | null, className: string): boolean;
132
+ /**
133
+ * @description Append the className value of the argument value element
134
+ * @param {Node|__se__NodeCollection} element Elements to add class name
135
+ * @param {string} className Class name to be add
136
+ */
137
+ export function addClass(element: Node | __se__NodeCollection, className: string): void;
138
+ /**
139
+ * @description Delete the className value of the argument value element
140
+ * @param {Node|__se__NodeCollection} element Elements to remove class name
141
+ * @param {string} className Class name to be remove
142
+ */
143
+ export function removeClass(element: Node | __se__NodeCollection, className: string): void;
144
+ /**
145
+ * @description Argument value If there is no class name, insert it and delete the class name if it exists
146
+ * @param {Node} element Element to replace class name
147
+ * @param {string} className Class name to be change
148
+ * @returns {boolean|undefined}
149
+ */
150
+ export function toggleClass(element: Node, className: string): boolean | undefined;
151
+ /**
152
+ * @description Flash the class name of the argument value element for a certain time
153
+ * @param {Node} element Element to flash class name
154
+ * @param {string} className class name
155
+ * @param {number} [duration=120] duration milliseconds
156
+ */
157
+ export function flashClass(element: Node, className: string, duration?: number): void;
158
+ /**
159
+ * @description Gets the size of the documentElement client size.
160
+ * @param {Document} doc Document object
161
+ * @returns {{w: number, h: number}} documentElement.clientWidth, documentElement.clientHeight
162
+ */
163
+ export function getClientSize(doc?: Document): {
164
+ w: number;
165
+ h: number;
166
+ };
167
+ /**
168
+ * @description Gets the size of the window visualViewport size
169
+ * @returns {{top: number, left: number, scale: number}}
170
+ */
171
+ export function getViewportSize(): {
172
+ top: number;
173
+ left: number;
174
+ scale: number;
175
+ };
176
+ /**
177
+ * @description Copies the "wwTarget" element and returns it with inline all styles applied.
178
+ * @param {Node} wwTarget Target element to copy(.sun-editor.sun-editor-editable)
179
+ * @param {boolean} includeWW Include the "wwTarget" element in the copy
180
+ * @param {Array<string>} styles Style list - kamel case
181
+ * @returns
182
+ */
183
+ export function applyInlineStylesAll(wwTarget: Node, includeWW: boolean, styles: Array<string>): HTMLElement;
184
+ /**
185
+ * @description Wait for media elements to load
186
+ * @param {Node} target Target element
187
+ * @param {number} timeout Timeout milliseconds
188
+ * @returns {Promise<void>}
189
+ */
190
+ export function waitForMediaLoad(target: Node, timeout?: number): Promise<void>;
191
+ /**
192
+ * @description Create tooltip HTML
193
+ * @param {string} text Tooltip text
194
+ * @returns {string} Tooltip HTML
195
+ */
196
+ export function createTooltipInner(text: string): string;
197
+ export default utils;
198
+ declare namespace utils {
199
+ export { clone };
200
+ export { createElement };
201
+ export { createTextNode };
202
+ export { getAttributesToString };
203
+ export { arrayFilter };
204
+ export { arrayFind };
205
+ export { arrayIncludes };
206
+ export { getArrayIndex };
207
+ export { nextIndex };
208
+ export { prevIndex };
209
+ export { copyTagAttributes };
210
+ export { copyFormatAttributes };
211
+ export { removeItem };
212
+ export { changeElement };
213
+ export { changeTxt };
214
+ export { setStyle };
215
+ export { setDisabled };
216
+ export { hasClass };
217
+ export { addClass };
218
+ export { removeClass };
219
+ export { toggleClass };
220
+ export { flashClass };
221
+ export { getClientSize };
222
+ export { getViewportSize };
223
+ export { applyInlineStylesAll };
224
+ export { waitForMediaLoad };
225
+ export { createTooltipInner };
226
+ }
@@ -0,0 +1,9 @@
1
+ export default dom;
2
+ declare namespace dom {
3
+ export { query };
4
+ export { check };
5
+ export { utils };
6
+ }
7
+ import query from './domQuery';
8
+ import check from './domCheck';
9
+ import utils from './domUtils';
@@ -0,0 +1,132 @@
1
+ /**
2
+ * @description Gets XMLHttpRequest object
3
+ * @returns {XMLHttpRequest}
4
+ */
5
+ export function getXMLHttpRequest(): XMLHttpRequest;
6
+ /**
7
+ * @deprecated
8
+ * @description Returns the CSS text that has been applied to the current page.
9
+ * @param {Document|null} doc To get the CSS text of an document. If null get the current document.
10
+ * @returns {string} Styles string
11
+ */
12
+ export function getPageStyle(doc: Document | null): string;
13
+ /**
14
+ * @deprecated
15
+ * @description Get the the tag path of the arguments value
16
+ * @param {Array<string>} nameArray File name array
17
+ * @param {string} extension js, css
18
+ * @returns {string} If not found, return the first found value
19
+ */
20
+ export function getIncludePath(nameArray: Array<string>, extension: string): string;
21
+ /**
22
+ * @fileoverview Environment helper functions
23
+ */
24
+ /** @type {Window} */
25
+ export const _w: Window;
26
+ /** @type {Document} */
27
+ export const _d: Document;
28
+ /**
29
+ * @description No event symbol
30
+ * @type {Symbol}
31
+ */
32
+ export const NO_EVENT: symbol;
33
+ /**
34
+ * @description On over component symbol
35
+ * @type {Symbol}
36
+ */
37
+ export const ON_OVER_COMPONENT: symbol;
38
+ /** --- Check browser --- */
39
+ /**
40
+ * @description Check if support ResizeObserver function
41
+ * @returns {boolean} Whether support ResizeObserver function or not.
42
+ */
43
+ export const isResizeObserverSupported: boolean;
44
+ /**
45
+ * @description Check if support navigator.clipboard
46
+ * @returns {boolean} Whether support navigator.clipboard or not.
47
+ */
48
+ export const isClipboardSupported: boolean;
49
+ /**
50
+ * @description Check if User Agent is Edge
51
+ * @returns {boolean} Whether User Agent is Edge or not.
52
+ */
53
+ export const isEdge: boolean;
54
+ /**
55
+ * @description Check if User Agent is OSX or IOS
56
+ * @type {boolean}
57
+ */
58
+ export const isOSX_IOS: boolean;
59
+ /**
60
+ * @description Check if User Agent Blink engine.
61
+ * @type {boolean}
62
+ */
63
+ export const isBlink: boolean;
64
+ /**
65
+ * @description Check if User Agent is Firefox (Gecko).
66
+ * @type {boolean}
67
+ */
68
+ export const isGecko: boolean;
69
+ /**
70
+ * @description Check if User Agent is Chromium browser.
71
+ * @type {boolean}
72
+ */
73
+ export const isChromium: boolean;
74
+ /**
75
+ * @description Check if User Agent is Safari.
76
+ * @type {boolean}
77
+ */
78
+ export const isSafari: boolean;
79
+ /**
80
+ * @description Check if User Agent is Mobile device.
81
+ * - when the device is touchable, it is judged as a mobile device.
82
+ * @type {boolean}
83
+ */
84
+ export const isMobile: boolean;
85
+ /**
86
+ * @description Check if User Agent is Android mobile device.
87
+ * @type {boolean}
88
+ */
89
+ export const isAndroid: boolean;
90
+ /**
91
+ * @description Command(Mac) or CTRL(Window) icon.
92
+ * @type {string}
93
+ */
94
+ export const cmdIcon: string;
95
+ /**
96
+ * @description SHIFT(Mac, Window) icon.
97
+ * @type {string}
98
+ */
99
+ export const shiftIcon: string;
100
+ /**
101
+ * @description Device pixel ratio
102
+ * @type {number}
103
+ */
104
+ export const DPI: number;
105
+ /** --- editor env --- */
106
+ export const KATEX_WEBSITE: 'https://katex.org/docs/supported.html';
107
+ export const MATHJAX_WEBSITE: 'https://www.mathjax.org/';
108
+ export default env;
109
+ declare namespace env {
110
+ export { _w };
111
+ export { _d };
112
+ export { NO_EVENT };
113
+ export { ON_OVER_COMPONENT };
114
+ export { getXMLHttpRequest };
115
+ export { getPageStyle };
116
+ export { getIncludePath };
117
+ export { isResizeObserverSupported };
118
+ export { isClipboardSupported };
119
+ export { isEdge };
120
+ export { isBlink };
121
+ export { isGecko };
122
+ export { isChromium };
123
+ export { isSafari };
124
+ export { isOSX_IOS };
125
+ export { isAndroid };
126
+ export { isMobile };
127
+ export { cmdIcon };
128
+ export { shiftIcon };
129
+ export { DPI };
130
+ export { KATEX_WEBSITE };
131
+ export { MATHJAX_WEBSITE };
132
+ }
@@ -0,0 +1,174 @@
1
+ export const env: {
2
+ _w: Window;
3
+ _d: Document;
4
+ NO_EVENT: symbol;
5
+ ON_OVER_COMPONENT: symbol;
6
+ getXMLHttpRequest: typeof import('./env').getXMLHttpRequest;
7
+ getPageStyle: typeof import('./env').getPageStyle;
8
+ getIncludePath: typeof import('./env').getIncludePath;
9
+ isResizeObserverSupported: boolean;
10
+ isClipboardSupported: boolean;
11
+ isEdge: boolean;
12
+ isBlink: boolean;
13
+ isGecko: boolean;
14
+ isChromium: boolean;
15
+ isSafari: boolean;
16
+ isOSX_IOS: boolean;
17
+ isAndroid: boolean;
18
+ isMobile: boolean;
19
+ cmdIcon: string;
20
+ shiftIcon: string;
21
+ DPI: number;
22
+ KATEX_WEBSITE: string;
23
+ MATHJAX_WEBSITE: string;
24
+ };
25
+ export const unicode: {
26
+ zeroWidthSpace: string;
27
+ zeroWidthRegExp: RegExp;
28
+ onlyZeroWidthRegExp: RegExp;
29
+ escapeStringRegexp: typeof import('./unicode').escapeStringRegexp;
30
+ };
31
+ export const converter: {
32
+ htmlToJson: typeof import('./converter').htmlToJson;
33
+ jsonToHtml: typeof import('./converter').jsonToHtml;
34
+ htmlToEntity: typeof import('./converter').htmlToEntity;
35
+ entityToHTML: typeof import('./converter').entityToHTML;
36
+ debounce: typeof import('./converter').debounce;
37
+ syncMaps: typeof import('./converter').syncMaps;
38
+ getValues: typeof import('./converter').getValues;
39
+ camelToKebabCase: typeof import('./converter').camelToKebabCase;
40
+ kebabToCamelCase: typeof import('./converter').kebabToCamelCase;
41
+ toFontUnit: typeof import('./converter').toFontUnit;
42
+ nodeListToArray: typeof import('./converter').nodeListToArray;
43
+ swapKeyValue: typeof import('./converter').swapKeyValue;
44
+ createElementWhitelist: typeof import('./converter').createElementWhitelist;
45
+ createElementBlacklist: typeof import('./converter').createElementBlacklist;
46
+ isHexColor: typeof import('./converter').isHexColor;
47
+ rgb2hex: typeof import('./converter').rgb2hex;
48
+ getWidthInPercentage: typeof import('./converter').getWidthInPercentage;
49
+ textToAnchor: typeof import('./converter').textToAnchor;
50
+ spanToStyleNode: typeof import('./converter').spanToStyleNode;
51
+ addUrlQuery: typeof import('./converter').addUrlQuery;
52
+ _setDefaultOptionStyle: typeof import('./converter')._setDefaultOptionStyle;
53
+ _setIframeStyleLinks: typeof import('./converter')._setIframeStyleLinks;
54
+ _setAutoHeightStyle: typeof import('./converter')._setAutoHeightStyle;
55
+ };
56
+ export const dom: {
57
+ query: {
58
+ getPositionIndex: typeof import('./dom/domQuery').getPositionIndex;
59
+ getNodePath: typeof import('./dom/domQuery').getNodePath;
60
+ getNodeFromPath: typeof import('./dom/domQuery').getNodeFromPath;
61
+ getListChildren: typeof import('./dom/domQuery').getListChildren;
62
+ getListChildNodes: typeof import('./dom/domQuery').getListChildNodes;
63
+ getNodeDepth: typeof import('./dom/domQuery').getNodeDepth;
64
+ sortNodeByDepth: typeof import('./dom/domQuery').sortNodeByDepth;
65
+ compareElements: typeof import('./dom/domQuery').compareElements;
66
+ getParentElement: typeof import('./dom/domQuery').getParentElement;
67
+ getParentElements: typeof import('./dom/domQuery').getParentElements;
68
+ getCommandTarget: typeof import('./dom/domQuery').getCommandTarget;
69
+ getEventTarget: typeof import('./dom/domQuery').getEventTarget;
70
+ getEdgeChild: typeof import('./dom/domQuery').getEdgeChild;
71
+ getEdgeChildNodes: typeof import('./dom/domQuery').getEdgeChildNodes;
72
+ getPreviousDeepestNode: typeof import('./dom/domQuery').getPreviousDeepestNode;
73
+ getNextDeepestNode: typeof import('./dom/domQuery').getNextDeepestNode;
74
+ findTextIndexOnLine: typeof import('./dom/domQuery').findTextIndexOnLine;
75
+ findTabEndIndex: typeof import('./dom/domQuery').findTabEndIndex;
76
+ findVisualLastCell: typeof import('./dom/domQuery').findVisualLastCell;
77
+ getScrollParent: typeof import('./dom/domQuery').getScrollParent;
78
+ getIframeDocument: typeof import('./dom/domQuery').getIframeDocument;
79
+ };
80
+ check: {
81
+ isZeroWidth: typeof import('./dom/domCheck').isZeroWidth;
82
+ isEdgePoint: typeof import('./dom/domCheck').isEdgePoint;
83
+ isText: typeof import('./dom/domCheck').isText;
84
+ isElement: typeof import('./dom/domCheck').isElement;
85
+ isInputElement: typeof import('./dom/domCheck').isInputElement;
86
+ isButtonElement: typeof import('./dom/domCheck').isButtonElement;
87
+ isList: typeof import('./dom/domCheck').isList;
88
+ isListCell: typeof import('./dom/domCheck').isListCell;
89
+ isTable: typeof import('./dom/domCheck').isTable;
90
+ isTableElements: typeof import('./dom/domCheck').isTableElements;
91
+ isTableCell: typeof import('./dom/domCheck').isTableCell;
92
+ isTableRow: typeof import('./dom/domCheck').isTableRow;
93
+ isBreak: typeof import('./dom/domCheck').isBreak;
94
+ isAnchor: typeof import('./dom/domCheck').isAnchor;
95
+ isMedia: typeof import('./dom/domCheck').isMedia;
96
+ isIFrame: typeof import('./dom/domCheck').isIFrame;
97
+ isFigure: typeof import('./dom/domCheck').isFigure;
98
+ isContentLess: typeof import('./dom/domCheck').isContentLess;
99
+ isEmptyLine: typeof import('./dom/domCheck').isEmptyLine;
100
+ isWysiwygFrame: typeof import('./dom/domCheck').isWysiwygFrame;
101
+ isNonEditable: typeof import('./dom/domCheck').isNonEditable;
102
+ isSpanWithoutAttr: typeof import('./dom/domCheck').isSpanWithoutAttr;
103
+ isSameAttributes: typeof import('./dom/domCheck').isSameAttributes;
104
+ isExcludeFormat: typeof import('./dom/domCheck').isExcludeFormat;
105
+ isUneditable: typeof import('./dom/domCheck').isUneditable;
106
+ isImportantDisabled: typeof import('./dom/domCheck').isImportantDisabled;
107
+ };
108
+ utils: {
109
+ clone: typeof import('./dom/domUtils').clone;
110
+ createElement: typeof import('./dom/domUtils').createElement;
111
+ createTextNode: typeof import('./dom/domUtils').createTextNode;
112
+ getAttributesToString: typeof import('./dom/domUtils').getAttributesToString;
113
+ arrayFilter: typeof import('./dom/domUtils').arrayFilter;
114
+ arrayFind: typeof import('./dom/domUtils').arrayFind;
115
+ arrayIncludes: typeof import('./dom/domUtils').arrayIncludes;
116
+ getArrayIndex: typeof import('./dom/domUtils').getArrayIndex;
117
+ nextIndex: typeof import('./dom/domUtils').nextIndex;
118
+ prevIndex: typeof import('./dom/domUtils').prevIndex;
119
+ copyTagAttributes: typeof import('./dom/domUtils').copyTagAttributes;
120
+ copyFormatAttributes: typeof import('./dom/domUtils').copyFormatAttributes;
121
+ removeItem: typeof import('./dom/domUtils').removeItem;
122
+ changeElement: typeof import('./dom/domUtils').changeElement;
123
+ changeTxt: typeof import('./dom/domUtils').changeTxt;
124
+ setStyle: typeof import('./dom/domUtils').setStyle;
125
+ setDisabled: typeof import('./dom/domUtils').setDisabled;
126
+ hasClass: typeof import('./dom/domUtils').hasClass;
127
+ addClass: typeof import('./dom/domUtils').addClass;
128
+ removeClass: typeof import('./dom/domUtils').removeClass;
129
+ toggleClass: typeof import('./dom/domUtils').toggleClass;
130
+ flashClass: typeof import('./dom/domUtils').flashClass;
131
+ getClientSize: typeof import('./dom/domUtils').getClientSize;
132
+ getViewportSize: typeof import('./dom/domUtils').getViewportSize;
133
+ applyInlineStylesAll: typeof import('./dom/domUtils').applyInlineStylesAll;
134
+ waitForMediaLoad: typeof import('./dom/domUtils').waitForMediaLoad;
135
+ createTooltipInner: typeof import('./dom/domUtils').createTooltipInner;
136
+ };
137
+ };
138
+ export const numbers: {
139
+ is: typeof import('./numbers').is;
140
+ get: typeof import('./numbers').get;
141
+ getOverlapRangeAtIndex: typeof import('./numbers').getOverlapRangeAtIndex;
142
+ isEven: typeof import('./numbers').isEven;
143
+ isOdd: typeof import('./numbers').isOdd;
144
+ };
145
+ export const keyCodeMap: {
146
+ isShift: typeof import('./keyCodeMap').isShift;
147
+ isCtrl: typeof import('./keyCodeMap').isCtrl;
148
+ isAlt: typeof import('./keyCodeMap').isAlt;
149
+ isComposing: typeof import('./keyCodeMap').isComposing;
150
+ isBackspace: typeof import('./keyCodeMap').isBackspace;
151
+ isTab: typeof import('./keyCodeMap').isTab;
152
+ isEnter: typeof import('./keyCodeMap').isEnter;
153
+ isEsc: typeof import('./keyCodeMap').isEsc;
154
+ isSpace: typeof import('./keyCodeMap').isSpace;
155
+ isDirectionKey: typeof import('./keyCodeMap').isDirectionKey;
156
+ isRemoveKey: typeof import('./keyCodeMap').isRemoveKey;
157
+ isNonTextKey: typeof import('./keyCodeMap').isNonTextKey;
158
+ isHistoryRelevantKey: typeof import('./keyCodeMap').isHistoryRelevantKey;
159
+ isDocumentTypeObserverKey: typeof import('./keyCodeMap').isDocumentTypeObserverKey;
160
+ isNonResponseKey: typeof import('./keyCodeMap').isNonResponseKey;
161
+ };
162
+ export const clipboard: {
163
+ write: typeof import('./clipboard').write;
164
+ };
165
+ declare namespace _default {
166
+ export { env };
167
+ export { unicode };
168
+ export { converter };
169
+ export { dom };
170
+ export { numbers };
171
+ export { keyCodeMap };
172
+ export { clipboard };
173
+ }
174
+ export default _default;
@@ -0,0 +1,110 @@
1
+ /** ------------------------------------------------------- [meta] ------------------------------------------------------- */
2
+ /**
3
+ * @description Shift check
4
+ * @param {KeyboardEvent} e Event object
5
+ * @returns {boolean}
6
+ */
7
+ export function isShift(e: KeyboardEvent): boolean;
8
+ /**
9
+ * @description [Ctrl|Meta] check
10
+ * @param {KeyboardEvent} e Event object
11
+ * @returns {boolean}
12
+ */
13
+ export function isCtrl(e: KeyboardEvent): boolean;
14
+ /**
15
+ * @description Alt check
16
+ * @param {KeyboardEvent} e Event object
17
+ * @returns {boolean}
18
+ */
19
+ export function isAlt(e: KeyboardEvent): boolean;
20
+ /**
21
+ * @description event.isComposing check
22
+ * @param {KeyboardEvent} e Event object
23
+ * @returns {boolean}
24
+ */
25
+ export function isComposing(e: KeyboardEvent): boolean;
26
+ /**
27
+ * @description Backspace key check
28
+ * @param {string} code Event.code
29
+ * @returns {boolean}
30
+ */
31
+ export function isBackspace(code: string): boolean;
32
+ /**
33
+ * @description Tab key check
34
+ * @param {string} code Event.code
35
+ * @returns {boolean}
36
+ */
37
+ export function isTab(code: string): boolean;
38
+ /**
39
+ * @description Enter key check
40
+ * @param {string} code Event.code
41
+ * @returns {boolean}
42
+ */
43
+ export function isEnter(code: string): boolean;
44
+ /**
45
+ * @description ESC key check
46
+ * @param {string} code Event.code
47
+ * @returns {boolean}
48
+ */
49
+ export function isEsc(code: string): boolean;
50
+ /**
51
+ * @description Space key check
52
+ * @param {string} code Event.code
53
+ * @returns {boolean}
54
+ */
55
+ export function isSpace(code: string): boolean;
56
+ /** ------------------------------------------------------- [key] ------------------------------------------------------- */
57
+ /**
58
+ * @description Direction key check
59
+ * @param {string} code Event.code
60
+ * @returns {boolean}
61
+ */
62
+ export function isDirectionKey(code: string): boolean;
63
+ /**
64
+ * @description [delete, backspace] key check
65
+ * @param {string} code Event.code
66
+ * @returns {boolean}
67
+ */
68
+ export function isRemoveKey(code: string): boolean;
69
+ /**
70
+ * @description Non-text key check
71
+ * @param {string} code Event.code
72
+ * @returns {boolean}
73
+ */
74
+ export function isNonTextKey(code: string): boolean;
75
+ /**
76
+ * @description Check if the given key is relevant for history push
77
+ * @param {string} code - Event.code
78
+ * @returns {boolean}
79
+ */
80
+ export function isHistoryRelevantKey(code: string): boolean;
81
+ /**
82
+ * @description Document type observer key check
83
+ * @param {string} code Event.code
84
+ * @returns {boolean}
85
+ */
86
+ export function isDocumentTypeObserverKey(code: string): boolean;
87
+ /**
88
+ * @description Non-response key check
89
+ * @param {string} code Event.code
90
+ * @returns {boolean}
91
+ */
92
+ export function isNonResponseKey(code: string): boolean;
93
+ export default keyCodeMap;
94
+ declare namespace keyCodeMap {
95
+ export { isShift };
96
+ export { isCtrl };
97
+ export { isAlt };
98
+ export { isComposing };
99
+ export { isBackspace };
100
+ export { isTab };
101
+ export { isEnter };
102
+ export { isEsc };
103
+ export { isSpace };
104
+ export { isDirectionKey };
105
+ export { isRemoveKey };
106
+ export { isNonTextKey };
107
+ export { isHistoryRelevantKey };
108
+ export { isDocumentTypeObserverKey };
109
+ export { isNonResponseKey };
110
+ }