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
@@ -1,3 +1,5 @@
1
+ // Simplified Chinese, Mainland China
2
+ // 중국어 (간체)
1
3
  (function (global, factory) {
2
4
  if (typeof module === 'object' && typeof module.exports === 'object') {
3
5
  module.exports = global.document
@@ -15,29 +17,75 @@
15
17
  const lang = {
16
18
  code: 'zh_cn',
17
19
  align: '对齐方式',
20
+ alignBottom: '底部对齐',
18
21
  alignCenter: '居中',
19
22
  alignJustify: '两端对齐',
20
23
  alignLeft: '左对齐',
24
+ alignMiddle: '中间对齐',
21
25
  alignRight: '右对齐',
26
+ alignTop: '顶部对齐',
27
+ anchor: '锚点',
28
+ asBlock: '作为块',
29
+ asInline: '作为内联',
30
+ asLink: '作为链接',
22
31
  audio: '音讯',
32
+ audioGallery: '音频库',
23
33
  audio_modal_file: '上传图片',
24
34
  audio_modal_title: '插入音频',
25
35
  audio_modal_url: '音频网址',
26
- autoSize: 'Auto size',
36
+ autoSize: '自动调整大小',
27
37
  backgroundColor: '背景颜色',
28
38
  basic: '基本',
39
+ blockStyle: '块样式',
29
40
  bold: '粗体',
41
+ border: '边框',
42
+ border_all: '全部边框',
43
+ border_inside: '内侧边框',
44
+ border_horizontal: '水平边框',
45
+ border_vertical: '垂直边框',
46
+ border_outside: '外侧边框',
47
+ border_left: '左侧边框',
48
+ border_top: '顶部边框',
49
+ border_right: '右侧边框',
50
+ border_bottom: '底部边框',
51
+ border_none: '无边框',
30
52
  bulletedList: '无序列表',
53
+ cancel: '取消',
31
54
  caption: '标题',
55
+ cellProperties: '单元格属性',
32
56
  center: '居中',
33
57
  close: '取消',
34
58
  codeView: '代码视图',
59
+ color: '颜色',
60
+ colorPicker: '颜色选择器',
61
+ column: '列',
62
+ comment: '评论',
63
+ commentAdd: '添加评论',
64
+ commentShow: '显示评论',
65
+ copy: '复制',
66
+ copyFormat: '绘画格式',
67
+ cut: '剪切',
35
68
  default: '默认',
36
69
  deleteColumn: '删除列',
37
70
  deleteRow: '删除行',
38
71
  dir_ltr: '左到右',
39
72
  dir_rtl: '右到左',
73
+ download: '下载',
74
+ drag: '拖动',
75
+ drawing: '绘图',
76
+ drawing_modal_title: '绘图',
40
77
  edit: '编辑',
78
+ embed: '嵌入',
79
+ embed_modal_title: '嵌入',
80
+ embed_modal_source: '嵌入源 / URL',
81
+ exportPDF: '导出为 PDF',
82
+ exportWord: '导出为 Word',
83
+ find: '查找',
84
+ decrease: '减少',
85
+ increase: '增加',
86
+ fileBrowser: '文件浏览器',
87
+ fileGallery: '文件库',
88
+ fileUpload: '文件上传',
41
89
  fixedColumnWidth: '固定列宽',
42
90
  font: '字体',
43
91
  fontColor: '字体颜色',
@@ -50,19 +98,23 @@
50
98
  hr_dashed: '虚线',
51
99
  hr_dotted: '点线',
52
100
  hr_solid: '实线',
101
+ id: 'ID',
53
102
  image: '图片',
54
103
  imageGallery: '图片库',
55
104
  image_modal_altText: '替换文字',
56
105
  image_modal_file: '上传图片',
57
106
  image_modal_title: '插入图片',
58
107
  image_modal_url: '图片网址',
108
+ importWord: '从 Word 导入',
59
109
  indent: '增加缩进',
110
+ inlineStyle: '内联样式',
60
111
  insertColumnAfter: '在右侧插入',
61
112
  insertColumnBefore: '在左侧插入',
62
113
  insertRowAbove: '在上方插入',
63
114
  insertRowBelow: '在下方插入',
115
+ insertLine: '插入行',
64
116
  italic: '斜体',
65
- layout: 'Layout',
117
+ layout: '布局',
66
118
  left: '左',
67
119
  lineHeight: '行高',
68
120
  link: '超链接',
@@ -72,6 +124,7 @@
72
124
  link_modal_text: '要显示的文字',
73
125
  link_modal_title: '插入超链接',
74
126
  link_modal_url: '网址',
127
+ link_modal_relAttribute: 'Rel 属性',
75
128
  list: '列表',
76
129
  math: '数学',
77
130
  math_modal_fontSizeLabel: '字号',
@@ -79,6 +132,7 @@
79
132
  math_modal_previewLabel: '预览',
80
133
  math_modal_title: '数学',
81
134
  maxSize: '最大尺寸',
135
+ mediaGallery: '媒体库',
82
136
  mention: '提到',
83
137
  menu_bordered: '边界线',
84
138
  menu_code: '代码',
@@ -90,8 +144,13 @@
90
144
  minSize: '最小尺寸',
91
145
  mirrorHorizontal: '翻转左右',
92
146
  mirrorVertical: '翻转上下',
147
+ newDocument: '新文档',
93
148
  numberedList: '有序列表',
94
149
  outdent: '减少缩进',
150
+ pageBreak: '分页符',
151
+ pageDown: '向下翻页',
152
+ pageNumber: '页码',
153
+ pageUp: '向上翻页',
95
154
  paragraphStyle: '段落样式',
96
155
  preview: '预览',
97
156
  print: '打印',
@@ -100,17 +159,22 @@
100
159
  redo: '恢复',
101
160
  remove: '删除',
102
161
  removeFormat: '清除格式',
162
+ replace: '替换',
163
+ replaceAll: '全部替换',
103
164
  resize100: '放大 100%',
104
165
  resize25: '放大 25%',
105
166
  resize50: '放大 50%',
106
167
  resize75: '放大 75%',
107
- resize: 'Resize',
168
+ resize: '调整大小',
108
169
  revert: '恢复',
170
+ revisionHistory: '修订历史',
109
171
  right: '右',
110
172
  rotateLeft: '向左旋转',
111
173
  rotateRight: '向右旋转',
174
+ row: '行',
112
175
  save: '保存',
113
176
  search: '搜索',
177
+ selectAll: '全选',
114
178
  showBlocks: '显示块区域',
115
179
  size: '尺寸',
116
180
  splitCells: '分割单元格',
@@ -120,6 +184,7 @@
120
184
  superscript: '上标',
121
185
  table: '表格',
122
186
  tableHeader: '表格标题',
187
+ tableProperties: '表格属性',
123
188
  tags: '标签',
124
189
  tag_blockquote: '引用',
125
190
  tag_div: '正文 (DIV)',
@@ -128,16 +193,20 @@
128
193
  tag_pre: '代码',
129
194
  template: '模板',
130
195
  textStyle: '文字样式',
131
- title: 'Title',
196
+ title: '标题',
132
197
  underline: '下划线',
133
198
  undo: '撤消',
199
+ unmergeCells: '取消合并单元格',
134
200
  unlink: '去除链接',
135
201
  verticalSplit: '垂直分割',
136
202
  video: '视频',
203
+ videoGallery: '视频库',
137
204
  video_modal_file: '上传图片',
138
205
  video_modal_title: '插入视频',
139
206
  video_modal_url: '嵌入网址, Youtube,Vimeo',
140
- width: '宽度'
207
+ width: '宽度',
208
+ message_copy_success: '已复制到剪贴板',
209
+ message_copy_fail: '复制失败,请手动复制。'
141
210
  };
142
211
 
143
212
  if (typeof noGlobal === typeof undefined) {
@@ -1,44 +1,60 @@
1
1
  import { env } from '../helper';
2
2
 
3
3
  /**
4
- *
5
- * @param {*} inst
6
- * @param {Object|null=} params
7
- * @param {string|null=} params.method - HTTP method (GET, POST, PUT, DELETE...)
8
- * @param {string|null=} params.url - API's URL
9
- * @param {Object|null=} params.headers - HTTP headers
10
- * @param {Object|null=} params.data - API data
11
- * @param {Function|null=} params.callBack - API success callback
12
- * @param {Function|null=} params.errorCallBack - API fail callback
13
- * @param {string|null=} params.responseType - XMLHttpRequest.responseType
4
+ * @typedef ApiManagerParams
5
+ * @property {string=} method - HTTP method (GET, POST, PUT, DELETE...)
6
+ * @property {string=} url - API's URL
7
+ * @property {Object<string, string>=} headers - HTTP headers
8
+ * @property {*=} data - API data
9
+ * @property {(xmlHttp: XMLHttpRequest) => boolean=} callBack - API success callback
10
+ * @property {(res: *, xmlHttp: XMLHttpRequest) => string=} errorCallBack - API fail callback
11
+ * @property {XMLHttpRequestResponseType=} responseType - XMLHttpRequest.responseType
14
12
  */
15
- const ApiManager = function (inst, params) {
16
- this.editor = inst.editor;
17
- this.kind = inst.constructor.key || inst.constructor.name;
18
-
19
- // members
20
- this._xhr = env.getXMLHttpRequest();
21
- // members - option
22
- this.method = params?.method;
23
- this.url = params?.url;
24
- this.headers = params?.headers;
25
- this.data = params?.data;
26
- this.callBack = params?.callBack;
27
- this.errorCallBack = params?.errorCallBack;
28
- this.responseType = params?.responseType;
29
- };
30
-
31
- ApiManager.prototype = {
13
+
14
+ /**
15
+ * @class
16
+ * @description API Manager
17
+ */
18
+ class ApiManager {
19
+ /**
20
+ * @constructor
21
+ * @param {*} inst The instance object that called the constructor.
22
+ * @param {ApiManagerParams=} params API options
23
+ */
24
+ constructor(inst, params) {
25
+ /**
26
+ * @description Editor instance
27
+ * @type {__se__EditorCore}
28
+ */
29
+ this.editor = inst.editor;
30
+
31
+ /**
32
+ * @description UI class
33
+ * @type {__se__EditorCore["ui"]}
34
+ */
35
+ this.ui = this.editor.ui;
36
+
37
+ /**
38
+ * @description Caller instance key name
39
+ * @type {string}
40
+ */
41
+ this.kind = inst.constructor.key || inst.constructor.name;
42
+
43
+ // members
44
+ this._xhr = env.getXMLHttpRequest();
45
+ // members - option
46
+ this.method = params?.method;
47
+ this.url = params?.url;
48
+ this.headers = params?.headers;
49
+ this.data = params?.data;
50
+ this.callBack = params?.callBack;
51
+ this.errorCallBack = params?.errorCallBack;
52
+ this.responseType = params?.responseType;
53
+ }
54
+
32
55
  /**
33
56
  * @description Call API
34
- * @param {Object|null=} params
35
- * @param {string|null=} params.method - HTTP method (GET, POST, PUT, DELETE...)
36
- * @param {string|null=} params.url - API's URL
37
- * @param {Object|null=} params.headers - HTTP headers
38
- * @param {Object|null=} params.data - API data
39
- * @param {Function|null=} params.callBack - API success callback
40
- * @param {Function|null=} params.errorCallBack - API fail callback
41
- * @param {string|null=} params.responseType - XMLHttpRequest.responseType
57
+ * @param {ApiManagerParams} params
42
58
  */
43
59
  call({ method, url, headers, data, callBack, errorCallBack, responseType }) {
44
60
  this.cancel();
@@ -62,16 +78,17 @@ ApiManager.prototype = {
62
78
  }
63
79
 
64
80
  xhr.send(data);
65
- },
81
+ }
66
82
 
67
83
  /**
68
84
  * @description Call Async API
69
- * @param {Object|null=} params
70
- * @param {string|null=} params.method - HTTP method (GET, POST, PUT, DELETE...)
71
- * @param {string|null=} params.url - API's URL
72
- * @param {Object|null=} params.headers - HTTP headers
73
- * @param {Object|null=} params.data - API data
74
- * @param {string|null=} params.responseType - XMLHttpRequest.responseType
85
+ * @param {Object} params
86
+ * @param {string=} params.method - HTTP method (GET, POST, PUT, DELETE...)
87
+ * @param {string=} params.url - API's URL
88
+ * @param {Object<string, string>=} params.headers - HTTP headers
89
+ * @param {*=} params.data - API data
90
+ * @param {XMLHttpRequestResponseType=} params.responseType - XMLHttpRequest.responseType
91
+ * @returns {Promise<XMLHttpRequest>}
75
92
  */
76
93
  asyncCall({ method, url, headers, data, responseType }) {
77
94
  this.cancel();
@@ -84,6 +101,7 @@ ApiManager.prototype = {
84
101
 
85
102
  const xhr = this._xhr;
86
103
  if (responseType) xhr.responseType = responseType;
104
+
87
105
  return new Promise((resolve, reject) => {
88
106
  xhr.open(method, url, true);
89
107
  if (headers !== null && typeof headers === 'object' && Object.keys(headers).length > 0) {
@@ -96,14 +114,14 @@ ApiManager.prototype = {
96
114
  try {
97
115
  resolve(xhr);
98
116
  } finally {
99
- this.editor.hideLoading();
117
+ this.ui.hideLoading();
100
118
  }
101
119
  } else {
102
120
  try {
103
121
  const res = !xhr.responseText ? xhr : JSON.parse(xhr.responseText);
104
- reject(res, xhr);
122
+ reject(res);
105
123
  } finally {
106
- this.editor.hideLoading();
124
+ this.ui.hideLoading();
107
125
  }
108
126
  }
109
127
  };
@@ -114,27 +132,32 @@ ApiManager.prototype = {
114
132
 
115
133
  xhr.send(data);
116
134
  });
117
- },
135
+ }
118
136
 
119
137
  /**
120
138
  * @description Cancel API (xhr.abort())
121
139
  */
122
140
  cancel() {
123
141
  if (this._xhr) this._xhr.abort();
124
- },
142
+ }
125
143
 
126
144
  /**
145
+ * @private
127
146
  * @description Remove unnecessary slashes in API URL.
128
147
  * @param {string} url url
129
148
  * @returns
130
149
  */
131
150
  _normalizeUrl(url) {
132
151
  return url.replace(/([^:])\/+/g, '$1/').replace(/\/(\?|#|$)/, '$1');
133
- },
134
-
135
- constructor: ApiManager
136
- };
152
+ }
153
+ }
137
154
 
155
+ /**
156
+ * @description API callback
157
+ * @param {XMLHttpRequest} xmlHttp - XMLHttpRequest
158
+ * @param {(xmlHttp: XMLHttpRequest) => Promise<void>} callBack - Callback function
159
+ * @param {(res: *, xmlHttp: XMLHttpRequest) => Promise<string>} errorCallBack - Error callback function
160
+ */
138
161
  async function CallBackApi(xmlHttp, callBack, errorCallBack) {
139
162
  if (xmlHttp.readyState === 4) {
140
163
  if (xmlHttp.status === 200) {
@@ -143,7 +166,7 @@ async function CallBackApi(xmlHttp, callBack, errorCallBack) {
143
166
  } catch (error) {
144
167
  throw Error(`[SUNEDITOR.ApiManager[${this.kind}].upload.callBack.fail] ${error.message}`);
145
168
  } finally {
146
- this.editor.hideLoading();
169
+ this.ui.hideLoading();
147
170
  }
148
171
  } else {
149
172
  // exception
@@ -155,11 +178,11 @@ async function CallBackApi(xmlHttp, callBack, errorCallBack) {
155
178
  message = await errorCallBack(res, xmlHttp);
156
179
  }
157
180
  const err = `[SUNEDITOR.ApiManager[${this.kind}].upload.serverException] status: ${xmlHttp.status}, response: ${message || res.errorMessage || xmlHttp.responseText}`;
158
- this.editor.notice.open(err);
181
+ this.ui.alertOpen(err, 'error');
159
182
  } catch (error) {
160
183
  throw Error(`[SUNEDITOR.ApiManager[${this.kind}].upload.errorCallBack.fail] ${error.message}`);
161
184
  } finally {
162
- this.editor.hideLoading();
185
+ this.ui.hideLoading();
163
186
  }
164
187
  }
165
188
  }