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,579 @@
1
+ export default Table;
2
+ export type TableCtrlProps = {
3
+ html: HTMLElement;
4
+ controller_props_title: HTMLElement;
5
+ borderButton: HTMLButtonElement;
6
+ borderFormatButton: HTMLButtonElement;
7
+ cell_alignment: HTMLElement;
8
+ cell_alignment_vertical: HTMLElement;
9
+ cell_alignment_table_text: HTMLElement;
10
+ border_style: HTMLButtonElement;
11
+ border_color: HTMLInputElement;
12
+ border_width: HTMLInputElement;
13
+ back_color: HTMLInputElement;
14
+ font_color: HTMLInputElement;
15
+ palette_border_button: HTMLButtonElement;
16
+ font_bold: HTMLButtonElement;
17
+ font_underline: HTMLButtonElement;
18
+ font_italic: HTMLButtonElement;
19
+ font_strike: HTMLButtonElement;
20
+ };
21
+ /**
22
+ * @class
23
+ * @description Table Plugin
24
+ */
25
+ declare class Table extends EditorInjector {
26
+ static key: string;
27
+ static type: string;
28
+ static className: string;
29
+ static options: {
30
+ isInputComponent: boolean;
31
+ };
32
+ /**
33
+ * @this {Table}
34
+ * @param {HTMLElement} node - The node to check.
35
+ * @returns {HTMLElement|null} Returns a node if the node is a valid component.
36
+ */
37
+ static component(this: Table, node: HTMLElement): HTMLElement | null;
38
+ /**
39
+ * @constructor
40
+ * @param {__se__EditorCore} editor - The root editor instance
41
+ * @param {Object} pluginOptions
42
+ * @param {"x"|"y"|"xy"} [pluginOptions.scrollType='x'] - Scroll type ('x', 'y', 'xy')
43
+ * @param {"top"|"bottom"} [pluginOptions.captionPosition='bottom'] - Caption position ('top', 'bottom')
44
+ * @param {"cell"|"table"} [pluginOptions.cellControllerPosition='cell'] - Cell controller position ('cell', 'table')
45
+ * @param {Array} [pluginOptions.colorList] - Color list, used in cell color picker
46
+ */
47
+ constructor(
48
+ editor: __se__EditorCore,
49
+ pluginOptions: {
50
+ scrollType?: 'x' | 'y' | 'xy';
51
+ captionPosition?: 'top' | 'bottom';
52
+ cellControllerPosition?: 'cell' | 'table';
53
+ colorList?: any[];
54
+ }
55
+ );
56
+ title: any;
57
+ icon: string;
58
+ figureScrollList: string[];
59
+ figureScroll: string;
60
+ captionPosition: string;
61
+ cellControllerTop: boolean;
62
+ controller_table: Controller;
63
+ controller_cell: Controller;
64
+ controller_props: Controller;
65
+ controller_props_title: HTMLElement;
66
+ colorPicker: ColorPicker;
67
+ controller_colorPicker: Controller;
68
+ figure: Figure;
69
+ sliderType: string;
70
+ splitButton: HTMLButtonElement;
71
+ selectMenu_split: SelectMenu;
72
+ selectMenu_column: SelectMenu;
73
+ selectMenu_row: SelectMenu;
74
+ selectMenu_props_border: SelectMenu;
75
+ selectMenu_props_border_format: SelectMenu;
76
+ selectMenu_props_border_format_oneCell: SelectMenu;
77
+ maxText: any;
78
+ minText: any;
79
+ propTargets: {
80
+ cell_alignment: HTMLElement;
81
+ cell_alignment_vertical: HTMLElement;
82
+ cell_alignment_table_text: HTMLElement;
83
+ border_format: HTMLButtonElement;
84
+ border_style: HTMLButtonElement;
85
+ border_color: HTMLInputElement;
86
+ border_width: HTMLInputElement;
87
+ back_color: HTMLInputElement;
88
+ font_color: HTMLInputElement;
89
+ palette_border_button: HTMLButtonElement;
90
+ font_bold: HTMLButtonElement;
91
+ font_underline: HTMLButtonElement;
92
+ font_italic: HTMLButtonElement;
93
+ font_strike: HTMLButtonElement;
94
+ };
95
+ _propsCache: any[];
96
+ _currentFontStyles: any[];
97
+ _propsAlignCache: string;
98
+ _propsVerticalAlignCache: string;
99
+ _typeCache: string;
100
+ /** @type {HTMLElement} */
101
+ tableHighlight: HTMLElement;
102
+ /** @type {HTMLElement} */
103
+ tableUnHighlight: HTMLElement;
104
+ /** @type {HTMLElement} */
105
+ tableDisplay: HTMLElement;
106
+ /** @type {HTMLButtonElement} */
107
+ resizeButton: HTMLButtonElement;
108
+ /** @type {HTMLSpanElement} */
109
+ resizeText: HTMLSpanElement;
110
+ /** @type {HTMLButtonElement} */
111
+ columnFixedButton: HTMLButtonElement;
112
+ /** @type {HTMLButtonElement} */
113
+ headerButton: HTMLButtonElement;
114
+ /** @type {HTMLButtonElement} */
115
+ captionButton: HTMLButtonElement;
116
+ /** @type {HTMLButtonElement} */
117
+ mergeButton: HTMLButtonElement;
118
+ _resizing: boolean;
119
+ _resizeLine: any;
120
+ _resizeLinePrev: any;
121
+ /** @type {HTMLElement} */
122
+ _figure: HTMLElement;
123
+ /** @type {HTMLTableElement} */
124
+ _element: HTMLTableElement;
125
+ /** @type {HTMLTableCellElement} */
126
+ _tdElement: HTMLTableCellElement;
127
+ /** @type {HTMLTableRowElement} */
128
+ _trElement: HTMLTableRowElement;
129
+ /** @type {HTMLTableRowElement[]|HTMLCollectionOf<HTMLTableRowElement>} */
130
+ _trElements: HTMLTableRowElement[] | HTMLCollectionOf<HTMLTableRowElement>;
131
+ _tableXY: any[];
132
+ _maxWidth: boolean;
133
+ _fixedColumn: boolean;
134
+ _physical_cellCnt: number;
135
+ _logical_cellCnt: number;
136
+ _rowCnt: number;
137
+ _rowIndex: number;
138
+ _physical_cellIndex: number;
139
+ _logical_cellIndex: number;
140
+ _current_colSpan: number;
141
+ _current_rowSpan: number;
142
+ /** @type {HTMLTableElement} */
143
+ _selectedTable: HTMLTableElement;
144
+ /** @type {HTMLTableCellElement} */
145
+ _fixedCell: HTMLTableCellElement;
146
+ /** @type {HTMLTableCellElement} */
147
+ _selectedCell: HTMLTableCellElement;
148
+ /** @type {HTMLTableCellElement[]} */
149
+ _selectedCells: HTMLTableCellElement[];
150
+ _shift: boolean;
151
+ __s: boolean;
152
+ _fixedCellName: string;
153
+ _ref: {
154
+ _i: number;
155
+ cs: any;
156
+ ce: any;
157
+ rs: any;
158
+ re: any;
159
+ };
160
+ _bindMultiOn: any;
161
+ _bindMultiOff: any;
162
+ _bindShiftOff: any;
163
+ _bindTouchOff: any;
164
+ __globalEvents: {
165
+ on: any;
166
+ off: any;
167
+ shiftOff: any;
168
+ touchOff: any;
169
+ resize: any;
170
+ resizeStop: any;
171
+ resizeKeyDown: any;
172
+ };
173
+ /**
174
+ * @editorMethod Editor.core
175
+ * @description Executes the main execution method of the plugin.
176
+ * - Called when an item in the "dropdown" menu is clicked.
177
+ */
178
+ action(): void;
179
+ /**
180
+ * @editorMethod Modules.Component
181
+ * @description Executes the method that is called when a component of a plugin is selected.
182
+ * @param {HTMLElement} target Target component element
183
+ */
184
+ select(target: HTMLElement): void;
185
+ /**
186
+ * @editorMethod Editor.core
187
+ * @description This method is used to validate and preserve the format of the component within the editor.
188
+ * - It ensures that the structure and attributes of the element are maintained and secure.
189
+ * - The method checks if the element is already wrapped in a valid container and updates its attributes if necessary.
190
+ * - If the element isn't properly contained, a new container is created to retain the format.
191
+ * @returns {{query: string, method: (element: HTMLTableElement) => void}} The format retention object containing the query and method to process the element.
192
+ * - query: The selector query to identify the relevant elements (in this case, 'audio').
193
+ * - method:The function to execute on the element to validate and preserve its format.
194
+ * - The function takes the element as an argument, checks if it is contained correctly, and applies necessary adjustments.
195
+ */
196
+ retainFormat(): {
197
+ query: string;
198
+ method: (element: HTMLTableElement) => void;
199
+ };
200
+ /**
201
+ * @editorMethod Editor.core
202
+ * @description Executes the method called when the rtl, ltr mode changes. ("editor.setDir")
203
+ * @param {string} dir Direction ("rtl" or "ltr")
204
+ */
205
+ setDir(dir: string): void;
206
+ /**
207
+ * @editorMethod Editor.EventManager
208
+ * @description Executes the event function of "mousemove".
209
+ * @param {__se__PluginMouseEventInfo} params
210
+ */
211
+ onMouseMove({ event }: __se__PluginMouseEventInfo): void;
212
+ /**
213
+ * @editorMethod Editor.EventManager
214
+ * @description Executes the event function of "scroll".
215
+ */
216
+ onScroll(): void;
217
+ /**
218
+ * @editorMethod Editor.EventManager
219
+ * @description Executes the event function of "mousedown".
220
+ * @param {__se__PluginMouseEventInfo} params
221
+ */
222
+ onMouseDown({ event }: __se__PluginMouseEventInfo): void;
223
+ /**
224
+ * @editorMethod Editor.EventManager
225
+ * @description Executes the event function of "mouseup".
226
+ */
227
+ onMouseUp(): void;
228
+ /**
229
+ * @editorMethod Editor.EventManager
230
+ * @description Executes the event function of "mouseleave".
231
+ */
232
+ onMouseLeave(): void;
233
+ /**
234
+ * @editorMethod Editor.EventManager
235
+ * @description Executes the event function of "keydown".
236
+ * @param {__se__PluginKeyEventInfo} params
237
+ */
238
+ onKeyDown({ event, range, line }: __se__PluginKeyEventInfo): boolean;
239
+ /**
240
+ * @editorMethod Editor.EventManager
241
+ * @description Executes the event function of "keyup".
242
+ * @param {__se__PluginKeyEventInfo} params
243
+ */
244
+ onKeyUp({ line }: __se__PluginKeyEventInfo): void;
245
+ /**
246
+ * @editorMethod Modules.ColorPicker
247
+ * @description Executes the method called when a button of "ColorPicker" module is clicked.
248
+ * @param {string} color - Color code (hex)
249
+ */
250
+ colorPickerAction(color: string): void;
251
+ /**
252
+ * @editorMethod Modules.Controller
253
+ * @description Executes the method that is called when a button is clicked in the "controller".
254
+ * @param {HTMLButtonElement} target Target button element
255
+ */
256
+ controllerAction(target: HTMLButtonElement): void;
257
+ /**
258
+ * @editorMethod Modules.Controller
259
+ * @description Executes the method called when the "controller" is closed.
260
+ */
261
+ close(): void;
262
+ /**
263
+ * @description Selects cells in a table, handling single and multi-cell selection, and managing shift key behavior for extended selection.
264
+ * @param {HTMLTableCellElement} tdElement The target table cell (`<td>`) element that is being selected.
265
+ * @param {boolean} shift A flag indicating whether the shift key is held down for multi-cell selection.
266
+ * If `true`, the selection will extend to include adjacent cells, otherwise it selects only the provided cell.
267
+ */
268
+ selectCells(tdElement: HTMLTableCellElement, shift: boolean): void;
269
+ /**
270
+ * @description Sets the table and figure elements based on the provided cell element, and stores references to them for later use.
271
+ * @param {Node} element The target table cell (`<td>`) element from which the table info will be extracted.
272
+ * @returns {HTMLTableElement} The `<table>` element that is the parent of the provided `element`.
273
+ */
274
+ setTableInfo(element: Node): HTMLTableElement;
275
+ /**
276
+ * @description Sets various table-related information based on the provided table cell element (`<td>`). This includes updating cell, row, and table attributes, handling spanning cells, and adjusting the UI for elements like headers and captions.
277
+ * @param {HTMLTableCellElement} tdElement The target table cell (`<td>`) element from which table information will be extracted.
278
+ * @param {boolean} reset A flag indicating whether to reset the cell information. If `true`, the cell information will be reset and recalculated.
279
+ */
280
+ setCellInfo(tdElement: HTMLTableCellElement, reset: boolean): void;
281
+ /**
282
+ * @description Sets row-related information based on the provided table row element (`<tr>`). This includes updating the row count and the index of the selected row.
283
+ * @param {HTMLTableRowElement} trElement The target table row (`<tr>`) element from which row information will be extracted.
284
+ */
285
+ setRowInfo(trElement: HTMLTableRowElement): void;
286
+ /**
287
+ * @description Edits the table by adding, removing, or modifying rows and cells, based on the provided options. Supports both single and multi-cell/row editing.
288
+ * @param {"row"|"cell"} type The type of element to edit ('row' or 'cell').
289
+ * @param {?"up"|"down"|"left"|"right"} option The action to perform: 'up', 'down', 'left', 'right', or `null` for removing.
290
+ */
291
+ editTable(type: 'row' | 'cell', option: ('up' | 'down' | 'left' | 'right') | null): void;
292
+ /**
293
+ * @description Edits a table row, either adding, removing, the row
294
+ * @param {?string} option The action to perform on the row ("up"|"down"|null)
295
+ * - null: to remove the row
296
+ * - 'up': to insert the row up
297
+ * - 'down': to insert the row down, or null to remove.
298
+ * @param {?HTMLTableCellElement=} [positionResetElement] The element to reset the position of (optional). This can be the cell that triggered the row edit.
299
+ */
300
+ editRow(option: string | null, positionResetElement?: (HTMLTableCellElement | null) | undefined): void;
301
+ /**
302
+ * @description Edits a table cell(column), either adding, removing, or modifying the cell based on the provided option.
303
+ * @param {?string} option The action to perform on the cell ("left"|"right"|null)
304
+ * - null: to remove the cell
305
+ * - left: to insert a new cell to the left
306
+ * - right: to insert a new cell to the right
307
+ * @param {?HTMLTableCellElement=} [positionResetElement] The element to reset the position of (optional). This can be the cell that triggered the column edit.
308
+ */
309
+ editCell(option: string | null, positionResetElement?: (HTMLTableCellElement | null) | undefined): void;
310
+ /**
311
+ * @description Inserts a new row into the table at the specified index to it.
312
+ * @param {HTMLTableElement} table The table element to insert the row into.
313
+ * @param {number} rowIndex The index at which to insert the new row.
314
+ * @param {number} cellCnt The number of cells to create in the new row.
315
+ * @returns {HTMLTableRowElement} The newly inserted row element.
316
+ */
317
+ insertBodyRow(table: HTMLTableElement, rowIndex: number, cellCnt: number): HTMLTableRowElement;
318
+ /**
319
+ * @description Merges the selected table cells into one cell by combining their contents and adjusting their row and column spans.
320
+ * - This method removes the selected cells, consolidates their contents, and applies the appropriate row and column spans to the merged cell.
321
+ */
322
+ mergeCells(): void;
323
+ /**
324
+ * @description Toggles the visibility of the table header (`<thead>`). If the header is present, it is removed; if absent, it is added.
325
+ */
326
+ toggleHeader(): void;
327
+ /**
328
+ * @description Toggles the visibility of the table caption (`<caption>`). If the caption is present, it is removed; if absent, it is added.
329
+ */
330
+ toggleCaption(): void;
331
+ /**
332
+ * @private
333
+ * @description Updates table styles.
334
+ * @param {string} styles - Styles to update.
335
+ * @param {boolean} ondisplay - Whether to update display.
336
+ */
337
+ private _setTableStyle;
338
+ /**
339
+ * @private
340
+ * @description Sets the merge/split button visibility.
341
+ * @param {boolean} fixedCell - Whether a single cell is selected.
342
+ * @param {boolean} selectedCell - Whether multiple cells are selected.
343
+ */
344
+ private _setMergeSplitButton;
345
+ /**
346
+ * @private
347
+ * @description Sets the controller position for a cell.
348
+ * @param {HTMLTableCellElement} tdElement - The target table cell.
349
+ */
350
+ private _setController;
351
+ /**
352
+ * @private
353
+ * @description Sets the position of the cell controller.
354
+ * @param {HTMLTableCellElement} tdElement - The target table cell.
355
+ * @param {boolean} reset - Whether to reset the controller position.
356
+ */
357
+ private _setCellControllerPosition;
358
+ /**
359
+ * @private
360
+ * @description Adds a new entry to the history stack.
361
+ */
362
+ private _historyPush;
363
+ /**
364
+ * @private
365
+ * @description Opens the figure.
366
+ * @param {Node} target - The target figure element.
367
+ */
368
+ private _figureOpen;
369
+ /**
370
+ * @private
371
+ * @description Starts resizing a table cell.
372
+ * @param {HTMLElement} col The column element.
373
+ * @param {number} startX The starting X position.
374
+ * @param {number} startWidth The initial width of the column.
375
+ * @param {boolean} isLeftEdge Whether the resizing is on the left edge.
376
+ */
377
+ private _startCellResizing;
378
+ /**
379
+ * @private
380
+ * @description Resizes a table cell.
381
+ * @param {HTMLElement} col The column element.
382
+ * @param {HTMLElement} nextCol The next column element.
383
+ * @param {HTMLElement} figure The table figure element.
384
+ * @param {HTMLElement} tdEl The table cell element.
385
+ * @param {HTMLElement} resizeLine The resize line element.
386
+ * @param {boolean} isLeftEdge Whether the resizing is on the left edge.
387
+ * @param {number} startX The starting X position.
388
+ * @param {number} startWidth The initial width of the column.
389
+ * @param {number} prevWidthPercent The previous width percentage.
390
+ * @param {number} nextColWidthPercent The next column's width percentage.
391
+ * @param {number} tableWidth The total width of the table.
392
+ * @param {MouseEvent} e The mouse event.
393
+ */
394
+ private _cellResize;
395
+ /**
396
+ * @private
397
+ * @description Starts resizing a table row.
398
+ * @param {HTMLElement} row The table row element.
399
+ * @param {number} startY The starting Y position.
400
+ * @param {number} startHeight The initial height of the row.
401
+ */
402
+ private _startRowResizing;
403
+ /**
404
+ * @private
405
+ * @description Resizes a table row.
406
+ * @param {HTMLElement} row The table row element.
407
+ * @param {HTMLElement} figure The table figure element.
408
+ * @param {HTMLElement} resizeLine The resize line element.
409
+ * @param {number} startY The starting Y position.
410
+ * @param {number} startHeight The initial height of the row.
411
+ * @param {MouseEvent} e The mouse event.
412
+ */
413
+ private _rowResize;
414
+ /**
415
+ * @private
416
+ * @description Starts resizing the table figure.
417
+ * @param {number} startX The starting X position.
418
+ * @param {boolean} isLeftEdge Whether the resizing is on the left edge.
419
+ */
420
+ private _startFigureResizing;
421
+ /**
422
+ * @private
423
+ * @description Resizes the table figure.
424
+ * @param {HTMLElement} figure The table figure element.
425
+ * @param {HTMLElement} resizeLine The resize line element.
426
+ * @param {boolean} isLeftEdge Whether the resizing is on the left edge.
427
+ * @param {number} startX The starting X position.
428
+ * @param {number} startWidth The initial width of the figure.
429
+ * @param {number} constNum A constant number used for width calculation.
430
+ * @param {MouseEvent} e The mouse event.
431
+ */
432
+ private _figureResize;
433
+ /**
434
+ * @private
435
+ * @description Sets the resize line position.
436
+ * @param {HTMLElement} figure The table figure element.
437
+ * @param {HTMLElement} target The target element.
438
+ * @param {HTMLElement} resizeLine The resize line element.
439
+ * @param {boolean} isLeftEdge Whether the resizing is on the left edge.
440
+ */
441
+ private _setResizeLinePosition;
442
+ /**
443
+ * @private
444
+ * @description Sets the resize row position.
445
+ * @param {HTMLElement} figure The table figure element.
446
+ * @param {HTMLElement} target The target row element.
447
+ * @param {HTMLElement} resizeLine The resize line element.
448
+ */
449
+ private _setResizeRowPosition;
450
+ /**
451
+ * @private
452
+ * @description Stops resizing the table.
453
+ * @param {HTMLElement} target The target element.
454
+ * @param {string} prevValue The previous style value.
455
+ * @param {string} styleProp The CSS property being changed.
456
+ * @param {KeyboardEvent} e The keyboard event.
457
+ */
458
+ private _stopResize;
459
+ /**
460
+ * @private
461
+ * @description Deletes styles from selected table cells.
462
+ */
463
+ private _deleteStyleSelectedCells;
464
+ /**
465
+ * @private
466
+ * @description Restores styles for selected table cells.
467
+ */
468
+ private _recallStyleSelectedCells;
469
+ /**
470
+ * @private
471
+ * @description Adds global event listeners for resizing.
472
+ * @param {(...args: *) => void} resizeFn The function handling the resize event.
473
+ * @param {(...args: *) => void} stopFn The function handling the stop event.
474
+ * @param {(...args: *) => void} keyDownFn The function handling the keydown event.
475
+ */
476
+ private _addResizeGlobalEvents;
477
+ /**
478
+ * @private
479
+ * @description Enables or disables editor mode.
480
+ * @param {boolean} enabled Whether to enable or disable the editor.
481
+ */
482
+ private _toggleEditor;
483
+ /**
484
+ * @private
485
+ * @description Updates control properties.
486
+ * @param {string} type The type of control property.
487
+ */
488
+ private _setCtrlProps;
489
+ /**
490
+ * @private
491
+ * @description Sets text alignment properties.
492
+ * @param {Element} el The element to apply alignment to.
493
+ * @param {string} align The alignment value.
494
+ * @param {boolean} reset Whether to reset the alignment.
495
+ */
496
+ private _setAlignProps;
497
+ /**
498
+ * @private
499
+ * @description Disables or enables border properties.
500
+ * @param {boolean} disabled Whether to disable or enable border properties.
501
+ */
502
+ private _disableBorderProps;
503
+ /**
504
+ * @private
505
+ * @description Gets the border style.
506
+ * @param {string} borderStyle The border style string.
507
+ * @returns {{w: string, s: string, c: string}} The parsed border style object.
508
+ * - w: The border width.
509
+ * - s: The border style.
510
+ * - c: The border color.
511
+ */
512
+ private _getBorderStyle;
513
+ /**
514
+ * @private
515
+ * @description Applies properties to table cells.
516
+ * @param {HTMLButtonElement} target The target element.
517
+ */
518
+ private _submitProps;
519
+ /**
520
+ * @private
521
+ * @description Sets font styles.
522
+ * @param {CSSStyleDeclaration} styles The style object to modify.
523
+ */
524
+ private _setFontStyle;
525
+ /**
526
+ * @private
527
+ * @description Sets border format and styles.
528
+ * @param {{left: Node[], top: Node[], right: Node[], bottom: Node[], all: Node[]}} cells The table cells categorized by border positions.
529
+ * @param {string} borderKey Border style ("all"|"inside"|"horizon"|"vertical"|"outside"|"left"|"top"|"right"|"bottom")
530
+ * @param {string} s The border style value.
531
+ */
532
+ private _setBorderStyles;
533
+ /**
534
+ * @private
535
+ * @description Selects multiple table cells and applies selection styles.
536
+ * @param {Node} startCell The first cell in the selection.
537
+ * @param {Node} endCell The last cell in the selection.
538
+ */
539
+ private _setMultiCells;
540
+ /**
541
+ * @private
542
+ * @description Resets the table picker display.
543
+ */
544
+ private _resetTablePicker;
545
+ /**
546
+ * @private
547
+ * @description Resets the alignment properties for table cells.
548
+ */
549
+ private _resetPropsAlign;
550
+ /**
551
+ * @private
552
+ * @description Handles color selection from the color palette.
553
+ * @param {Node} button The button triggering the color palette.
554
+ * @param {string} type The type of color selection.
555
+ * @param {HTMLInputElement} color Color text input element.
556
+ */
557
+ private _onColorPalette;
558
+ /**
559
+ * @private
560
+ * @description Closes table-related controllers.
561
+ */
562
+ private _closeController;
563
+ /**
564
+ * @private
565
+ * @description Hides the resize line if it is visible.
566
+ */
567
+ private __hideResizeLine;
568
+ /**
569
+ * @private
570
+ * @description Removes global event listeners and resets resize-related properties.
571
+ */
572
+ private __removeGlobalEvents;
573
+ #private;
574
+ }
575
+ import EditorInjector from '../../editorInjector';
576
+ import { Controller } from '../../modules';
577
+ import { ColorPicker } from '../../modules';
578
+ import { Figure } from '../../modules';
579
+ import { SelectMenu } from '../../modules';
@@ -0,0 +1,40 @@
1
+ export default Template;
2
+ /**
3
+ * @class
4
+ * @description Template Plugin, Apply a template to the selection.
5
+ */
6
+ declare class Template extends EditorInjector {
7
+ static key: string;
8
+ static type: string;
9
+ static className: string;
10
+ /**
11
+ * @constructor
12
+ * @param {__se__EditorCore} editor - The root editor instance
13
+ * @param {Object} pluginOptions
14
+ * @param {Array<{name: string, html: string}>} pluginOptions.items - Template list
15
+ */
16
+ constructor(
17
+ editor: __se__EditorCore,
18
+ pluginOptions: {
19
+ items: Array<{
20
+ name: string;
21
+ html: string;
22
+ }>;
23
+ }
24
+ );
25
+ title: any;
26
+ icon: string;
27
+ selectedIndex: number;
28
+ items: {
29
+ name: string;
30
+ html: string;
31
+ }[];
32
+ /**
33
+ * @editorMethod Editor.core
34
+ * @description Executes the main execution method of the plugin.
35
+ * - Called when an item in the "dropdown" menu is clicked.
36
+ * @param {HTMLElement} target - The plugin's toolbar button element
37
+ */
38
+ action(target: HTMLElement): void;
39
+ }
40
+ import EditorInjector from '../../editorInjector';
@@ -0,0 +1,41 @@
1
+ export default TextStyle;
2
+ /**
3
+ * @class
4
+ * @description Text style Plugin, Applies a tag that specifies text styles to a selection.
5
+ */
6
+ declare class TextStyle extends EditorInjector {
7
+ static key: string;
8
+ static type: string;
9
+ static className: string;
10
+ /**
11
+ * @constructor
12
+ * @param {__se__EditorCore} editor - The root editor instance
13
+ * @param {Object} pluginOptions
14
+ * @param {Array<{name: string, html: string}>} pluginOptions.items - Template list
15
+ */
16
+ constructor(
17
+ editor: __se__EditorCore,
18
+ pluginOptions: {
19
+ items: Array<{
20
+ name: string;
21
+ html: string;
22
+ }>;
23
+ }
24
+ );
25
+ title: any;
26
+ icon: string;
27
+ styleList: NodeListOf<Element>;
28
+ /**
29
+ * @editorMethod Modules.Dropdown
30
+ * @description Executes the method that is called when a plugin's dropdown menu is opened.
31
+ */
32
+ on(): void;
33
+ /**
34
+ * @editorMethod Editor.core
35
+ * @description Executes the main execution method of the plugin.
36
+ * - Called when an item in the "dropdown" menu is clicked.
37
+ * @param {HTMLElement} target - The plugin's toolbar button element
38
+ */
39
+ action(target: HTMLElement): void;
40
+ }
41
+ import EditorInjector from '../../editorInjector';