suneditor 2.46.2 → 3.0.0-alpha.1

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 (290) hide show
  1. package/.eslintignore +7 -0
  2. package/.eslintrc.json +64 -0
  3. package/CONTRIBUTING.md +36 -0
  4. package/LICENSE.txt +1 -1
  5. package/README.md +174 -805
  6. package/dist/suneditor.min.css +1 -0
  7. package/dist/suneditor.min.js +1 -2
  8. package/package.json +96 -69
  9. package/src/assets/icons/_default.js +194 -0
  10. package/src/assets/suneditor-content.css +646 -0
  11. package/src/assets/suneditor.css +3378 -0
  12. package/src/core/base/eventHandlers/handler_toolbar.js +114 -0
  13. package/src/core/base/eventHandlers/handler_ww_clipboard.js +31 -0
  14. package/src/core/base/eventHandlers/handler_ww_dragDrop.js +69 -0
  15. package/src/core/base/eventHandlers/handler_ww_key_input.js +975 -0
  16. package/src/core/base/eventHandlers/handler_ww_mouse.js +118 -0
  17. package/src/core/base/eventManager.js +1115 -0
  18. package/src/core/base/events.js +320 -0
  19. package/src/core/base/history.js +301 -0
  20. package/src/core/class/char.js +146 -0
  21. package/src/core/class/component.js +627 -0
  22. package/src/core/class/format.js +3255 -0
  23. package/src/core/class/html.js +1621 -0
  24. package/src/core/class/menu.js +260 -0
  25. package/src/core/class/nodeTransform.js +379 -0
  26. package/src/core/class/notice.js +42 -0
  27. package/src/core/class/offset.js +578 -0
  28. package/src/core/class/selection.js +508 -0
  29. package/src/core/class/shortcuts.js +38 -0
  30. package/src/core/class/toolbar.js +440 -0
  31. package/src/core/class/viewer.js +646 -0
  32. package/src/core/editor.js +1593 -0
  33. package/src/core/section/actives.js +107 -0
  34. package/src/core/section/constructor.js +1237 -0
  35. package/src/core/section/context.js +97 -0
  36. package/src/editorInjector/_classes.js +22 -0
  37. package/src/editorInjector/_core.js +28 -0
  38. package/src/editorInjector/index.js +13 -0
  39. package/src/helper/converter.js +313 -0
  40. package/src/helper/domUtils.js +1177 -0
  41. package/src/helper/env.js +250 -0
  42. package/src/helper/index.js +19 -0
  43. package/src/helper/numbers.js +68 -0
  44. package/src/helper/unicode.js +43 -0
  45. package/src/langs/ckb.js +161 -0
  46. package/src/langs/cs.js +161 -0
  47. package/src/langs/da.js +161 -0
  48. package/src/langs/de.js +162 -0
  49. package/src/langs/en.js +199 -0
  50. package/src/langs/es.js +162 -0
  51. package/src/langs/fa.js +159 -0
  52. package/src/langs/fr.js +161 -0
  53. package/src/langs/he.js +162 -0
  54. package/src/{lang → langs}/index.js +0 -2
  55. package/src/langs/it.js +162 -0
  56. package/src/langs/ja.js +162 -0
  57. package/src/langs/ko.js +162 -0
  58. package/src/langs/lv.js +162 -0
  59. package/src/langs/nl.js +162 -0
  60. package/src/langs/pl.js +162 -0
  61. package/src/langs/pt_br.js +162 -0
  62. package/src/langs/ro.js +162 -0
  63. package/src/langs/ru.js +162 -0
  64. package/src/langs/se.js +162 -0
  65. package/src/langs/tr.js +159 -0
  66. package/src/langs/ua.js +162 -0
  67. package/src/langs/ur.js +162 -0
  68. package/src/langs/zh_cn.js +162 -0
  69. package/src/modules/ApiManager.js +168 -0
  70. package/src/modules/ColorPicker.js +302 -0
  71. package/src/modules/Controller.js +315 -0
  72. package/src/modules/Figure.js +1160 -0
  73. package/src/modules/FileBrowser.js +271 -0
  74. package/src/modules/FileManager.js +290 -0
  75. package/src/modules/HueSlider.js +513 -0
  76. package/src/modules/Modal.js +177 -0
  77. package/src/modules/ModalAnchorEditor.js +494 -0
  78. package/src/modules/SelectMenu.js +447 -0
  79. package/src/modules/_DragHandle.js +16 -0
  80. package/src/modules/index.js +14 -0
  81. package/src/plugins/command/blockquote.js +47 -47
  82. package/src/plugins/command/exportPdf.js +168 -0
  83. package/src/plugins/command/fileUpload.js +389 -0
  84. package/src/plugins/command/list_bulleted.js +112 -0
  85. package/src/plugins/command/list_numbered.js +115 -0
  86. package/src/plugins/dropdown/align.js +143 -0
  87. package/src/plugins/dropdown/backgroundColor.js +73 -0
  88. package/src/plugins/dropdown/font.js +113 -0
  89. package/src/plugins/dropdown/fontColor.js +73 -0
  90. package/src/plugins/dropdown/formatBlock.js +141 -0
  91. package/src/plugins/dropdown/hr.js +111 -0
  92. package/src/plugins/dropdown/layout.js +72 -0
  93. package/src/plugins/dropdown/lineHeight.js +114 -0
  94. package/src/plugins/dropdown/list.js +107 -0
  95. package/src/plugins/dropdown/paragraphStyle.js +117 -0
  96. package/src/plugins/dropdown/table.js +2810 -0
  97. package/src/plugins/dropdown/template.js +71 -0
  98. package/src/plugins/dropdown/textStyle.js +137 -0
  99. package/src/plugins/field/mention.js +172 -0
  100. package/src/plugins/fileBrowser/imageGallery.js +76 -59
  101. package/src/plugins/index.js +86 -24
  102. package/src/plugins/input/fontSize.js +357 -0
  103. package/src/plugins/modal/audio.js +510 -0
  104. package/src/plugins/modal/image.js +1062 -0
  105. package/src/plugins/modal/link.js +211 -0
  106. package/src/plugins/modal/math.js +347 -0
  107. package/src/plugins/modal/video.js +870 -0
  108. package/src/suneditor.js +62 -67
  109. package/src/themes/test.css +61 -0
  110. package/typings/CommandPlugin.d.ts +8 -0
  111. package/typings/DialogPlugin.d.ts +20 -0
  112. package/typings/FileBrowserPlugin.d.ts +30 -0
  113. package/typings/Lang.d.ts +124 -0
  114. package/typings/Module.d.ts +15 -0
  115. package/typings/Plugin.d.ts +42 -0
  116. package/typings/SubmenuPlugin.d.ts +8 -0
  117. package/typings/_classes.d.ts +17 -0
  118. package/typings/_colorPicker.d.ts +60 -0
  119. package/typings/_core.d.ts +55 -0
  120. package/typings/align.d.ts +5 -0
  121. package/{src/plugins/dialog → typings}/audio.d.ts +1 -1
  122. package/typings/backgroundColor.d.ts +5 -0
  123. package/{src/plugins/command → typings}/blockquote.d.ts +1 -1
  124. package/typings/char.d.ts +39 -0
  125. package/typings/component.d.ts +38 -0
  126. package/typings/context.d.ts +39 -0
  127. package/typings/converter.d.ts +33 -0
  128. package/typings/dialog.d.ts +28 -0
  129. package/typings/domUtils.d.ts +361 -0
  130. package/typings/editor.d.ts +7 -0
  131. package/typings/editor.ts +542 -0
  132. package/typings/env.d.ts +70 -0
  133. package/typings/eventManager.d.ts +37 -0
  134. package/typings/events.d.ts +262 -0
  135. package/typings/fileBrowser.d.ts +42 -0
  136. package/typings/fileManager.d.ts +67 -0
  137. package/typings/font.d.ts +5 -0
  138. package/typings/fontColor.d.ts +5 -0
  139. package/typings/fontSize.d.ts +5 -0
  140. package/typings/format.d.ts +191 -0
  141. package/typings/formatBlock.d.ts +5 -0
  142. package/typings/history.d.ts +48 -0
  143. package/typings/horizontalRule.d.ts +5 -0
  144. package/{src/plugins/dialog → typings}/image.d.ts +1 -1
  145. package/{src/plugins/fileBrowser → typings}/imageGallery.d.ts +1 -1
  146. package/typings/index.d.ts +21 -0
  147. package/{src/plugins/modules/index.d.ts → typings/index.modules.d.ts} +3 -3
  148. package/typings/index.plugins.d.ts +58 -0
  149. package/typings/lineHeight.d.ts +5 -0
  150. package/{src/plugins/dialog → typings}/link.d.ts +1 -1
  151. package/typings/list.d.ts +5 -0
  152. package/{src/plugins/dialog → typings}/math.d.ts +1 -1
  153. package/typings/mediaContainer.d.ts +25 -0
  154. package/typings/node.d.ts +57 -0
  155. package/typings/notice.d.ts +16 -0
  156. package/typings/numbers.d.ts +29 -0
  157. package/typings/offset.d.ts +24 -0
  158. package/typings/options.d.ts +589 -0
  159. package/typings/paragraphStyle.d.ts +5 -0
  160. package/typings/resizing.d.ts +141 -0
  161. package/typings/selection.d.ts +94 -0
  162. package/typings/shortcuts.d.ts +13 -0
  163. package/typings/suneditor.d.ts +9 -0
  164. package/typings/table.d.ts +5 -0
  165. package/typings/template.d.ts +5 -0
  166. package/typings/textStyle.d.ts +5 -0
  167. package/typings/toolbar.d.ts +32 -0
  168. package/typings/unicode.d.ts +25 -0
  169. package/{src/plugins/dialog → typings}/video.d.ts +1 -1
  170. package/dist/css/suneditor.min.css +0 -1
  171. package/src/assets/css/suneditor-contents.css +0 -562
  172. package/src/assets/css/suneditor.css +0 -566
  173. package/src/assets/defaultIcons.js +0 -103
  174. package/src/lang/Lang.d.ts +0 -144
  175. package/src/lang/ckb.d.ts +0 -5
  176. package/src/lang/ckb.js +0 -188
  177. package/src/lang/cs.d.ts +0 -5
  178. package/src/lang/cs.js +0 -188
  179. package/src/lang/da.d.ts +0 -5
  180. package/src/lang/da.js +0 -191
  181. package/src/lang/de.d.ts +0 -5
  182. package/src/lang/de.js +0 -188
  183. package/src/lang/en.d.ts +0 -5
  184. package/src/lang/en.js +0 -188
  185. package/src/lang/es.d.ts +0 -5
  186. package/src/lang/es.js +0 -188
  187. package/src/lang/fa.d.ts +0 -5
  188. package/src/lang/fa.js +0 -188
  189. package/src/lang/fr.d.ts +0 -5
  190. package/src/lang/fr.js +0 -188
  191. package/src/lang/he.d.ts +0 -5
  192. package/src/lang/he.js +0 -188
  193. package/src/lang/index.d.ts +0 -23
  194. package/src/lang/it.d.ts +0 -5
  195. package/src/lang/it.js +0 -188
  196. package/src/lang/ja.d.ts +0 -5
  197. package/src/lang/ja.js +0 -188
  198. package/src/lang/ko.d.ts +0 -5
  199. package/src/lang/ko.js +0 -188
  200. package/src/lang/lv.d.ts +0 -5
  201. package/src/lang/lv.js +0 -188
  202. package/src/lang/nl.d.ts +0 -5
  203. package/src/lang/nl.js +0 -188
  204. package/src/lang/pl.d.ts +0 -5
  205. package/src/lang/pl.js +0 -188
  206. package/src/lang/pt_br.d.ts +0 -5
  207. package/src/lang/pt_br.js +0 -189
  208. package/src/lang/ro.d.ts +0 -5
  209. package/src/lang/ro.js +0 -188
  210. package/src/lang/ru.d.ts +0 -5
  211. package/src/lang/ru.js +0 -188
  212. package/src/lang/se.d.ts +0 -5
  213. package/src/lang/se.js +0 -191
  214. package/src/lang/tr.d.ts +0 -5
  215. package/src/lang/tr.js +0 -191
  216. package/src/lang/ua.d.ts +0 -5
  217. package/src/lang/ua.js +0 -188
  218. package/src/lang/ur.d.ts +0 -5
  219. package/src/lang/ur.js +0 -188
  220. package/src/lang/zh_cn.d.ts +0 -5
  221. package/src/lang/zh_cn.js +0 -187
  222. package/src/lib/constructor.js +0 -954
  223. package/src/lib/context.d.ts +0 -42
  224. package/src/lib/context.js +0 -71
  225. package/src/lib/core.d.ts +0 -1135
  226. package/src/lib/core.js +0 -9395
  227. package/src/lib/history.d.ts +0 -48
  228. package/src/lib/history.js +0 -219
  229. package/src/lib/util.d.ts +0 -678
  230. package/src/lib/util.js +0 -2131
  231. package/src/options.d.ts +0 -608
  232. package/src/plugins/CommandPlugin.d.ts +0 -8
  233. package/src/plugins/DialogPlugin.d.ts +0 -20
  234. package/src/plugins/FileBrowserPlugin.d.ts +0 -30
  235. package/src/plugins/Module.d.ts +0 -15
  236. package/src/plugins/Plugin.d.ts +0 -42
  237. package/src/plugins/SubmenuPlugin.d.ts +0 -8
  238. package/src/plugins/dialog/audio.js +0 -559
  239. package/src/plugins/dialog/image.js +0 -1126
  240. package/src/plugins/dialog/link.js +0 -223
  241. package/src/plugins/dialog/math.js +0 -295
  242. package/src/plugins/dialog/mention.js +0 -242
  243. package/src/plugins/dialog/video.js +0 -979
  244. package/src/plugins/index.d.ts +0 -79
  245. package/src/plugins/modules/_anchor.js +0 -461
  246. package/src/plugins/modules/_colorPicker.d.ts +0 -60
  247. package/src/plugins/modules/_colorPicker.js +0 -201
  248. package/src/plugins/modules/_notice.d.ts +0 -21
  249. package/src/plugins/modules/_notice.js +0 -72
  250. package/src/plugins/modules/_selectMenu.js +0 -119
  251. package/src/plugins/modules/component.d.ts +0 -25
  252. package/src/plugins/modules/component.js +0 -81
  253. package/src/plugins/modules/dialog.d.ts +0 -28
  254. package/src/plugins/modules/dialog.js +0 -175
  255. package/src/plugins/modules/fileBrowser.d.ts +0 -42
  256. package/src/plugins/modules/fileBrowser.js +0 -374
  257. package/src/plugins/modules/fileManager.d.ts +0 -67
  258. package/src/plugins/modules/fileManager.js +0 -326
  259. package/src/plugins/modules/index.js +0 -9
  260. package/src/plugins/modules/resizing.d.ts +0 -154
  261. package/src/plugins/modules/resizing.js +0 -903
  262. package/src/plugins/submenu/align.d.ts +0 -5
  263. package/src/plugins/submenu/align.js +0 -160
  264. package/src/plugins/submenu/font.d.ts +0 -5
  265. package/src/plugins/submenu/font.js +0 -123
  266. package/src/plugins/submenu/fontColor.d.ts +0 -5
  267. package/src/plugins/submenu/fontColor.js +0 -101
  268. package/src/plugins/submenu/fontSize.d.ts +0 -5
  269. package/src/plugins/submenu/fontSize.js +0 -112
  270. package/src/plugins/submenu/formatBlock.d.ts +0 -5
  271. package/src/plugins/submenu/formatBlock.js +0 -273
  272. package/src/plugins/submenu/hiliteColor.d.ts +0 -5
  273. package/src/plugins/submenu/hiliteColor.js +0 -102
  274. package/src/plugins/submenu/horizontalRule.d.ts +0 -5
  275. package/src/plugins/submenu/horizontalRule.js +0 -98
  276. package/src/plugins/submenu/lineHeight.d.ts +0 -5
  277. package/src/plugins/submenu/lineHeight.js +0 -104
  278. package/src/plugins/submenu/list.d.ts +0 -5
  279. package/src/plugins/submenu/list.js +0 -456
  280. package/src/plugins/submenu/paragraphStyle.d.ts +0 -5
  281. package/src/plugins/submenu/paragraphStyle.js +0 -135
  282. package/src/plugins/submenu/table.d.ts +0 -5
  283. package/src/plugins/submenu/table.js +0 -1431
  284. package/src/plugins/submenu/template.d.ts +0 -5
  285. package/src/plugins/submenu/template.js +0 -72
  286. package/src/plugins/submenu/textStyle.d.ts +0 -5
  287. package/src/plugins/submenu/textStyle.js +0 -167
  288. package/src/suneditor.d.ts +0 -9
  289. package/src/suneditor_build.js +0 -18
  290. /package/{src/plugins/dialog → typings}/mention.d.ts +0 -0
@@ -1,201 +0,0 @@
1
- /*
2
- * wysiwyg web editor
3
- *
4
- * suneditor.js
5
- * Copyright 2018 JiHong Lee.
6
- * MIT license.
7
- */
8
- 'use strict';
9
-
10
- export default {
11
- name: 'colorPicker',
12
- /**
13
- * @description Constructor
14
- * @param {Object} core Core object
15
- */
16
- add: function (core) {
17
- const context = core.context;
18
- context.colorPicker = {
19
- colorListHTML: '',
20
- _colorInput: '',
21
- _defaultColor: '#000',
22
- _styleProperty: 'color',
23
- _currentColor: '',
24
- _colorList: []
25
- };
26
-
27
- /** set submenu */
28
- context.colorPicker.colorListHTML = this.createColorList(core, this._makeColorList);
29
- },
30
-
31
- /**
32
- * @description Create color list
33
- * @param {Object} core Core object
34
- * @param {Function} makeColor this._makeColorList
35
- * @returns {String} HTML string
36
- */
37
- createColorList: function (core, makeColor) {
38
- const option = core.options;
39
- const lang = core.lang;
40
- const colorList = !option.colorList || option.colorList.length === 0 ?
41
- [
42
- '#ff0000', '#ff5e00', '#ffe400', '#abf200', '#00d8ff', '#0055ff', '#6600ff', '#ff00dd', '#000000',
43
- '#ffd8d8', '#fae0d4', '#faf4c0', '#e4f7ba', '#d4f4fa', '#d9e5ff', '#e8d9ff', '#ffd9fa', '#f1f1f1',
44
- '#ffa7a7', '#ffc19e', '#faed7d', '#cef279', '#b2ebf4', '#b2ccff', '#d1b2ff', '#ffb2f5', '#bdbdbd',
45
- '#f15f5f', '#f29661', '#e5d85c', '#bce55c', '#5cd1e5', '#6699ff', '#a366ff', '#f261df', '#8c8c8c',
46
- '#980000', '#993800', '#998a00', '#6b9900', '#008299', '#003399', '#3d0099', '#990085', '#353535',
47
- '#670000', '#662500', '#665c00', '#476600', '#005766', '#002266', '#290066', '#660058', '#222222'
48
- ] : option.colorList;
49
-
50
- let colorArr = [];
51
- let list = '<div class="se-list-inner">';
52
- for (let i = 0, len = colorList.length, color; i < len; i++) {
53
- color = colorList[i];
54
- if (!color) continue;
55
-
56
- if (typeof color === 'string') {
57
- colorArr.push(color);
58
- if (i < len - 1) continue;
59
- }
60
- if (colorArr.length > 0) {
61
- list += '<div class="se-selector-color">' + makeColor(colorArr) + '</div>';
62
- colorArr = [];
63
- }
64
- if (typeof color === 'object') {
65
- list += '<div class="se-selector-color">' + makeColor(color) + '</div>';
66
- }
67
- }
68
- list += '' +
69
- '<form class="se-form-group">' +
70
- '<input type="text" maxlength="9" class="_se_color_picker_input se-color-input"/>' +
71
- '<button type="submit" class="se-btn-primary _se_color_picker_submit" title="' + lang.dialogBox.submitButton + '" aria-label="' + lang.dialogBox.submitButton + '">' +
72
- core.icons.checked +
73
- '</button>' +
74
- '<button type="button" class="se-btn _se_color_picker_remove" title="' + lang.toolbar.removeFormat + '" aria-label="' + lang.toolbar.removeFormat + '">' +
75
- core.icons.erase +
76
- '</button>' +
77
- '</form>' +
78
- '</div>';
79
-
80
- return list;
81
- },
82
-
83
- /**
84
- * @description Internal function used by this.createColorList
85
- * @param {Array} colorList Color list
86
- * @private
87
- */
88
- _makeColorList: function (colorList) {
89
- let list = '';
90
-
91
- list += '<ul class="se-color-pallet">';
92
- for (let i = 0, len = colorList.length, color; i < len; i++) {
93
- color = colorList[i];
94
- if (typeof color === 'string') {
95
- list += '<li>' +
96
- '<button type="button" data-value="' + color + '" title="' + color + '" aria-label="' + color + '" style="background-color:' + color + ';"></button>' +
97
- '</li>';
98
- }
99
- }
100
- list += '</ul>';
101
-
102
- return list;
103
- },
104
-
105
- /**
106
- * @description Displays or resets the currently selected color at color list.
107
- * @param {Node} node Current Selected node
108
- * @param {String|null} color Color value
109
- */
110
- init: function (node, color) {
111
- const colorPicker = this.plugins.colorPicker;
112
- let fillColor = color ? color : colorPicker.getColorInNode.call(this, node) || this.context.colorPicker._defaultColor;
113
- fillColor = colorPicker.isHexColor(fillColor) ? fillColor : colorPicker.rgb2hex(fillColor) || fillColor;
114
-
115
- const colorList = this.context.colorPicker._colorList;
116
- if (colorList) {
117
- for (let i = 0, len = colorList.length; i < len; i++) {
118
- if (fillColor.toLowerCase() === colorList[i].getAttribute('data-value').toLowerCase()) {
119
- this.util.addClass(colorList[i], 'active');
120
- } else {
121
- this.util.removeClass(colorList[i], 'active');
122
- }
123
- }
124
- }
125
-
126
- colorPicker.setInputText.call(this, colorPicker.colorName2hex.call(this, fillColor));
127
- },
128
-
129
- /**
130
- * @description Store color values
131
- * @param {String} hexColorStr Hax color value
132
- */
133
- setCurrentColor: function (hexColorStr) {
134
- this.context.colorPicker._currentColor = hexColorStr;
135
- this.context.colorPicker._colorInput.style.borderColor = hexColorStr;
136
- },
137
-
138
- /**
139
- * @description Set color at input element
140
- * @param {String} hexColorStr Hax color value
141
- */
142
- setInputText: function (hexColorStr) {
143
- hexColorStr = /^#/.test(hexColorStr) ? hexColorStr : '#' + hexColorStr;
144
- this.context.colorPicker._colorInput.value = hexColorStr;
145
- this.plugins.colorPicker.setCurrentColor.call(this, hexColorStr);
146
- },
147
-
148
- /**
149
- * @description Gets color value at color property of node
150
- * @param {Node} node Selected node
151
- * @returns {String}
152
- */
153
- getColorInNode: function (node) {
154
- let findColor = '';
155
- const styleProperty = this.context.colorPicker._styleProperty;
156
-
157
- while (node && !this.util.isWysiwygDiv(node) && findColor.length === 0) {
158
- if (node.nodeType === 1 && node.style[styleProperty]) findColor = node.style[styleProperty];
159
- node = node.parentNode;
160
- }
161
-
162
- return findColor;
163
- },
164
-
165
- /**
166
- * @description Function to check hex format color
167
- * @param {String} str Color value
168
- */
169
- isHexColor: function (str) {
170
- return /^#[0-9a-f]{3}(?:[0-9a-f]{3})?$/i.test(str);
171
- },
172
-
173
- /**
174
- * @description Function to convert hex format to a rgb color
175
- * @param {String} rgb RGB color format
176
- * @returns {String}
177
- */
178
- rgb2hex: function (rgb) {
179
- const rgbMatch = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
180
-
181
- return (rgbMatch && rgbMatch.length === 4) ? "#" +
182
- ("0" + parseInt(rgbMatch[1],10).toString(16)).slice(-2) +
183
- ("0" + parseInt(rgbMatch[2],10).toString(16)).slice(-2) +
184
- ("0" + parseInt(rgbMatch[3],10).toString(16)).slice(-2) : '';
185
- },
186
-
187
- /**
188
- * @description Converts color values of other formats to hex color values and returns.
189
- * @param {String} colorName Color value
190
- * @returns {String}
191
- */
192
- colorName2hex: function (colorName) {
193
- if (/^#/.test(colorName)) return colorName;
194
- var temp = this.util.createElement('div');
195
- temp.style.display = 'none';
196
- temp.style.color = colorName;
197
- var colors = this._w.getComputedStyle(this._d.body.appendChild(temp)).color.match(/\d+/g).map(function (a) { return parseInt(a,10); });
198
- this.util.removeItem(temp);
199
- return (colors.length >= 3) ? '#' + (((1 << 24) + (colors[0] << 16) + (colors[1] << 8) + colors[2]).toString(16).substr(1)) : false;
200
- }
201
- };
@@ -1,21 +0,0 @@
1
- import { Module } from '../Module';
2
-
3
- declare interface _notice extends Module {
4
- /**
5
- * @description Event when clicking the cancel button
6
- * @param e Event object
7
- */
8
- onClick_cancel(e: MouseEvent): void;
9
- /**
10
- * @description Open the notice panel
11
- * @param text Notice message
12
- */
13
- open(text: string): void;
14
-
15
- /**
16
- * @description Open the notice panel
17
- */
18
- close(): void;
19
- }
20
-
21
- export default _notice;
@@ -1,72 +0,0 @@
1
- /*
2
- * wysiwyg web editor
3
- *
4
- * suneditor.js
5
- * Copyright 2017 JiHong Lee.
6
- * MIT license.
7
- */
8
- 'use strict';
9
-
10
- export default {
11
- name: 'notice',
12
- /**
13
- * @description Constructor
14
- * @param {Object} core Core object
15
- */
16
- add: function (core) {
17
- const context = core.context;
18
- context.notice = {};
19
-
20
- /** dialog */
21
- let notice_div = core.util.createElement('DIV');
22
- let notice_span = core.util.createElement('SPAN');
23
- let notice_button = core.util.createElement('BUTTON');
24
-
25
- notice_div.className = 'se-notice';
26
- notice_button.className = 'close';
27
- notice_button.setAttribute('aria-label', 'Close');
28
- notice_button.setAttribute('title', core.lang.dialogBox.close);
29
- notice_button.innerHTML = core.icons.cancel;
30
-
31
- notice_div.appendChild(notice_span);
32
- notice_div.appendChild(notice_button);
33
-
34
- context.notice.modal = notice_div;
35
- context.notice.message = notice_span;
36
-
37
- /** add event listeners */
38
- notice_button.addEventListener('click', this.onClick_cancel.bind(core));
39
-
40
- /** append html */
41
- context.element.editorArea.appendChild(notice_div);
42
-
43
- /** empty memory */
44
- notice_div = null;
45
- },
46
-
47
- /**
48
- * @description Event when clicking the cancel button
49
- * @param {MouseEvent} e Event object
50
- */
51
- onClick_cancel: function (e) {
52
- e.preventDefault();
53
- e.stopPropagation();
54
- this.plugins.notice.close.call(this);
55
- },
56
-
57
- /**
58
- * @description Open the notice panel
59
- * @param {String} text Notice message
60
- */
61
- open: function (text) {
62
- this.context.notice.message.textContent = text;
63
- this.context.notice.modal.style.display = 'block';
64
- },
65
-
66
- /**
67
- * @description Open the notice panel
68
- */
69
- close: function () {
70
- this.context.notice.modal.style.display = 'none';
71
- }
72
- };
@@ -1,119 +0,0 @@
1
- /*
2
- * wysiwyg web editor
3
- *
4
- * suneditor.js
5
- * Copyright 2018 JiHong Lee.
6
- * MIT license.
7
- */
8
- 'use strict';
9
-
10
- export default {
11
- name: 'selectMenu',
12
- add: function (core) {
13
- core.context.selectMenu = {
14
- caller: {},
15
- callerContext: null
16
- };
17
- },
18
-
19
- setForm: function () {
20
- return '<div class="se-select-list"></div>';
21
- },
22
-
23
- createList: function (listContext, items, html) {
24
- listContext.form.innerHTML = '<ul>' + html + '</ul>';
25
- listContext.items = items;
26
- listContext.menus = listContext.form.querySelectorAll('li');
27
- },
28
-
29
- initEvent: function (pluginName, forms) {
30
- const form = forms.querySelector('.se-select-list');
31
- const context = this.context.selectMenu.caller[pluginName] = {
32
- form: form,
33
- items: [],
34
- menus: [],
35
- index: -1,
36
- item: null,
37
- clickMethod: null,
38
- callerName: pluginName
39
- };
40
-
41
- form.addEventListener('mousedown', this.plugins.selectMenu.onMousedown_list);
42
- form.addEventListener('mousemove', this.plugins.selectMenu.onMouseMove_list.bind(this, context));
43
- form.addEventListener('click', this.plugins.selectMenu.onClick_list.bind(this, context));
44
- },
45
-
46
- onMousedown_list: function (e) {
47
- e.preventDefault();
48
- e.stopPropagation();
49
- },
50
-
51
- onMouseMove_list: function (context, e) {
52
- this.util.addClass(context.form, '__se_select-menu-mouse-move');
53
- const index = e.target.getAttribute('data-index');
54
- if (!index) return;
55
- context.index = index * 1;
56
- },
57
-
58
- onClick_list: function (context, e) {
59
- const index = e.target.getAttribute('data-index');
60
- if (!index) return;
61
- context.clickMethod.call(this, context.items[index]);
62
- },
63
-
64
- moveItem: function (listContext, num) {
65
- this.util.removeClass(listContext.form, '__se_select-menu-mouse-move');
66
- num = listContext.index + num;
67
- const menus = listContext.menus;
68
- const len = menus.length;
69
- const selectIndex = listContext.index = num >= len ? 0 : num < 0 ? len - 1 : num;
70
-
71
- for (let i = 0; i < len; i++) {
72
- if (i === selectIndex) {
73
- this.util.addClass(menus[i], 'active');
74
- } else {
75
- this.util.removeClass(menus[i], 'active');
76
- }
77
- }
78
-
79
- listContext.item = listContext.items[selectIndex];
80
- },
81
-
82
- getItem: function (listContext, index) {
83
- index = (!index || index < 0) ? listContext.index : index;
84
- return listContext.items[index];
85
- },
86
-
87
- on: function (callerName, clickMethod) {
88
- const listContext = this.context.selectMenu.caller[callerName];
89
- this.context.selectMenu.callerContext = listContext;
90
- listContext.clickMethod = clickMethod;
91
- listContext.callerName = callerName;
92
- },
93
-
94
- open: function (listContext, positionHandler) {
95
- const form = listContext.form;
96
- form.style.visibility = 'hidden';
97
- form.style.display = 'block';
98
- positionHandler(form);
99
- form.style.visibility = '';
100
- },
101
-
102
- close: function (listContext) {
103
- listContext.form.style.display = 'none';
104
- listContext.items = [];
105
- listContext.menus = [];
106
- listContext.index = -1;
107
- listContext.item = null;
108
- },
109
-
110
- init: function (listContext) {
111
- if (!listContext) return;
112
- listContext.items = [];
113
- listContext.menus = [];
114
- listContext.index = -1;
115
- listContext.item = null;
116
- listContext.callerName = '';
117
- this.context.selectMenu.callerContext = null;
118
- }
119
- };
@@ -1,25 +0,0 @@
1
- import { Module } from '../Module';
2
-
3
- declare interface component extends Module {
4
- /**
5
- * @description Create a container for the resizing component and insert the element.
6
- * @param cover Cover element (FIGURE)
7
- * @param className Class name of container (fixed: se-component)
8
- * @returns Created container element
9
- */
10
- set_container(cover: Element, className: string): Element;
11
-
12
- /**
13
- * @description Cover the target element with a FIGURE element.
14
- * @param element Target element
15
- */
16
- set_cover(element: Element): void;
17
-
18
- /**
19
- * @description Return HTML string of caption(FIGCAPTION) element
20
- * @returns
21
- */
22
- create_caption(): string;
23
- }
24
-
25
- export default component;
@@ -1,81 +0,0 @@
1
- /*
2
- * wysiwyg web editor
3
- *
4
- * suneditor.js
5
- * Copyright 2017 JiHong Lee.
6
- * MIT license.
7
- */
8
- 'use strict';
9
-
10
- (function (global, factory) {
11
- if (typeof module === 'object' && typeof module.exports === 'object') {
12
- module.exports = global.document ?
13
- factory(global, true) :
14
- function (w) {
15
- if (!w.document) {
16
- throw new Error('SUNEDITOR_MODULES a window with a document');
17
- }
18
- return factory(w);
19
- };
20
- } else {
21
- factory(global);
22
- }
23
- }(typeof window !== 'undefined' ? window : this, function (window, noGlobal) {
24
- const component = {
25
- name: 'component',
26
- /**
27
- * @description Create a container for the resizing component and insert the element.
28
- * @param {Element} cover Cover element (FIGURE)
29
- * @param {String} className Class name of container (fixed: se-component)
30
- * @returns {Element} Created container element
31
- */
32
- set_container: function (cover, className) {
33
- const container = this.util.createElement('DIV');
34
- container.className = 'se-component ' + className;
35
- container.appendChild(cover);
36
-
37
- return container;
38
- },
39
-
40
- /**
41
- * @description Cover the target element with a FIGURE element.
42
- * @param {Element} element Target element
43
- */
44
- set_cover: function (element) {
45
- const cover = this.util.createElement('FIGURE');
46
- cover.appendChild(element);
47
-
48
- return cover;
49
- },
50
-
51
- /**
52
- * @description Return HTML string of caption(FIGCAPTION) element
53
- * @returns {String}
54
- */
55
- create_caption: function () {
56
- const caption = this.util.createElement('FIGCAPTION');
57
- caption.innerHTML = '<div>' + this.lang.dialogBox.caption + '</div>';
58
- return caption;
59
- }
60
- };
61
-
62
- if (typeof noGlobal === typeof undefined) {
63
- if (!window.SUNEDITOR_MODULES) {
64
- Object.defineProperty(window, 'SUNEDITOR_MODULES', {
65
- enumerable: true,
66
- writable: false,
67
- configurable: false,
68
- value: {}
69
- });
70
- }
71
-
72
- Object.defineProperty(window.SUNEDITOR_MODULES, 'component', {
73
- enumerable: true,
74
- writable: false,
75
- configurable: false,
76
- value: component
77
- });
78
- }
79
-
80
- return component;
81
- }));
@@ -1,28 +0,0 @@
1
- import { Module } from '../Module';
2
-
3
- /**
4
- * @description This is a required module of dialog plugin.
5
- */
6
- declare interface dialog extends Module {
7
- /**
8
- * @description Open a Dialog plugin
9
- * @param kind Dialog plugin name
10
- * @param update Whether it will open for update ('image' === this.currentControllerName)
11
- * @example this.plugins.dialog.open.call(this, 'image', 'image' === this.currentControllerName);
12
- */
13
- open(kind: string, update: boolean): void;
14
-
15
- /**
16
- * @description Called after the submenu has been rendered
17
- */
18
- on?: () => void;
19
-
20
- /**
21
- * @description Close a Dialog plugin
22
- * The plugin's "init" method is called.
23
- * @example this.plugins.dialog.close.call(this);
24
- */
25
- close(): void;
26
- }
27
-
28
- export default dialog;