suneditor 2.46.2 → 3.0.0-alpha.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 (289) 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 +11 -1560
  6. package/package.json +94 -70
  7. package/src/assets/icons/_default.js +194 -0
  8. package/src/assets/suneditor-content.css +642 -0
  9. package/src/assets/suneditor.css +3378 -0
  10. package/src/core/base/eventHandlers/handler_toolbar.js +114 -0
  11. package/src/core/base/eventHandlers/handler_ww_clipboard.js +31 -0
  12. package/src/core/base/eventHandlers/handler_ww_dragDrop.js +69 -0
  13. package/src/core/base/eventHandlers/handler_ww_key_input.js +978 -0
  14. package/src/core/base/eventHandlers/handler_ww_mouse.js +118 -0
  15. package/src/core/base/eventManager.js +1129 -0
  16. package/src/core/base/events.js +320 -0
  17. package/src/core/base/history.js +301 -0
  18. package/src/core/class/char.js +146 -0
  19. package/src/core/class/component.js +624 -0
  20. package/src/core/class/format.js +3255 -0
  21. package/src/core/class/html.js +1621 -0
  22. package/src/core/class/menu.js +260 -0
  23. package/src/core/class/nodeTransform.js +379 -0
  24. package/src/core/class/notice.js +42 -0
  25. package/src/core/class/offset.js +578 -0
  26. package/src/core/class/selection.js +508 -0
  27. package/src/core/class/shortcuts.js +38 -0
  28. package/src/core/class/toolbar.js +440 -0
  29. package/src/core/class/viewer.js +646 -0
  30. package/src/core/editor.js +1588 -0
  31. package/src/core/section/actives.js +107 -0
  32. package/src/core/section/constructor.js +1237 -0
  33. package/src/core/section/context.js +97 -0
  34. package/src/editorInjector/_classes.js +22 -0
  35. package/src/editorInjector/_core.js +28 -0
  36. package/src/editorInjector/index.js +13 -0
  37. package/src/helper/converter.js +313 -0
  38. package/src/helper/domUtils.js +1177 -0
  39. package/src/helper/env.js +250 -0
  40. package/src/helper/index.js +19 -0
  41. package/src/helper/numbers.js +68 -0
  42. package/src/helper/unicode.js +43 -0
  43. package/src/langs/ckb.js +161 -0
  44. package/src/langs/cs.js +161 -0
  45. package/src/langs/da.js +161 -0
  46. package/src/langs/de.js +162 -0
  47. package/src/langs/en.js +199 -0
  48. package/src/langs/es.js +162 -0
  49. package/src/langs/fa.js +159 -0
  50. package/src/langs/fr.js +161 -0
  51. package/src/langs/he.js +162 -0
  52. package/src/{lang → langs}/index.js +0 -2
  53. package/src/langs/it.js +162 -0
  54. package/src/langs/ja.js +162 -0
  55. package/src/langs/ko.js +162 -0
  56. package/src/langs/lv.js +162 -0
  57. package/src/langs/nl.js +162 -0
  58. package/src/langs/pl.js +162 -0
  59. package/src/langs/pt_br.js +162 -0
  60. package/src/langs/ro.js +162 -0
  61. package/src/langs/ru.js +162 -0
  62. package/src/langs/se.js +162 -0
  63. package/src/langs/tr.js +159 -0
  64. package/src/langs/ua.js +162 -0
  65. package/src/langs/ur.js +162 -0
  66. package/src/langs/zh_cn.js +162 -0
  67. package/src/modules/ApiManager.js +168 -0
  68. package/src/modules/ColorPicker.js +302 -0
  69. package/src/modules/Controller.js +315 -0
  70. package/src/modules/Figure.js +1174 -0
  71. package/src/modules/FileBrowser.js +271 -0
  72. package/src/modules/FileManager.js +290 -0
  73. package/src/modules/HueSlider.js +513 -0
  74. package/src/modules/Modal.js +177 -0
  75. package/src/modules/ModalAnchorEditor.js +494 -0
  76. package/src/modules/SelectMenu.js +447 -0
  77. package/src/modules/_DragHandle.js +16 -0
  78. package/src/modules/index.js +14 -0
  79. package/src/plugins/command/blockquote.js +47 -47
  80. package/src/plugins/command/exportPdf.js +168 -0
  81. package/src/plugins/command/fileUpload.js +389 -0
  82. package/src/plugins/command/list_bulleted.js +112 -0
  83. package/src/plugins/command/list_numbered.js +115 -0
  84. package/src/plugins/dropdown/align.js +143 -0
  85. package/src/plugins/dropdown/backgroundColor.js +73 -0
  86. package/src/plugins/dropdown/font.js +113 -0
  87. package/src/plugins/dropdown/fontColor.js +73 -0
  88. package/src/plugins/dropdown/formatBlock.js +141 -0
  89. package/src/plugins/dropdown/hr.js +111 -0
  90. package/src/plugins/dropdown/layout.js +72 -0
  91. package/src/plugins/dropdown/lineHeight.js +114 -0
  92. package/src/plugins/dropdown/list.js +107 -0
  93. package/src/plugins/dropdown/paragraphStyle.js +117 -0
  94. package/src/plugins/dropdown/table.js +2810 -0
  95. package/src/plugins/dropdown/template.js +71 -0
  96. package/src/plugins/dropdown/textStyle.js +137 -0
  97. package/src/plugins/field/mention.js +172 -0
  98. package/src/plugins/fileBrowser/imageGallery.js +76 -59
  99. package/src/plugins/index.js +86 -24
  100. package/src/plugins/input/fontSize.js +357 -0
  101. package/src/plugins/modal/audio.js +492 -0
  102. package/src/plugins/modal/image.js +1062 -0
  103. package/src/plugins/modal/link.js +211 -0
  104. package/src/plugins/modal/math.js +347 -0
  105. package/src/plugins/modal/video.js +870 -0
  106. package/src/suneditor.js +62 -67
  107. package/src/themes/test.css +61 -0
  108. package/typings/CommandPlugin.d.ts +8 -0
  109. package/typings/DialogPlugin.d.ts +20 -0
  110. package/typings/FileBrowserPlugin.d.ts +30 -0
  111. package/typings/Lang.d.ts +124 -0
  112. package/typings/Module.d.ts +15 -0
  113. package/typings/Plugin.d.ts +42 -0
  114. package/typings/SubmenuPlugin.d.ts +8 -0
  115. package/typings/_classes.d.ts +17 -0
  116. package/typings/_colorPicker.d.ts +60 -0
  117. package/typings/_core.d.ts +55 -0
  118. package/typings/align.d.ts +5 -0
  119. package/{src/plugins/dialog → typings}/audio.d.ts +1 -1
  120. package/typings/backgroundColor.d.ts +5 -0
  121. package/{src/plugins/command → typings}/blockquote.d.ts +1 -1
  122. package/typings/char.d.ts +39 -0
  123. package/typings/component.d.ts +38 -0
  124. package/typings/context.d.ts +39 -0
  125. package/typings/converter.d.ts +33 -0
  126. package/typings/dialog.d.ts +28 -0
  127. package/typings/domUtils.d.ts +361 -0
  128. package/typings/editor.d.ts +7 -0
  129. package/typings/editor.ts +542 -0
  130. package/typings/env.d.ts +70 -0
  131. package/typings/eventManager.d.ts +37 -0
  132. package/typings/events.d.ts +262 -0
  133. package/typings/fileBrowser.d.ts +42 -0
  134. package/typings/fileManager.d.ts +67 -0
  135. package/typings/font.d.ts +5 -0
  136. package/typings/fontColor.d.ts +5 -0
  137. package/typings/fontSize.d.ts +5 -0
  138. package/typings/format.d.ts +191 -0
  139. package/typings/formatBlock.d.ts +5 -0
  140. package/typings/history.d.ts +48 -0
  141. package/typings/horizontalRule.d.ts +5 -0
  142. package/{src/plugins/dialog → typings}/image.d.ts +1 -1
  143. package/{src/plugins/fileBrowser → typings}/imageGallery.d.ts +1 -1
  144. package/typings/index.d.ts +21 -0
  145. package/{src/plugins/modules/index.d.ts → typings/index.modules.d.ts} +3 -3
  146. package/typings/index.plugins.d.ts +58 -0
  147. package/typings/lineHeight.d.ts +5 -0
  148. package/{src/plugins/dialog → typings}/link.d.ts +1 -1
  149. package/typings/list.d.ts +5 -0
  150. package/{src/plugins/dialog → typings}/math.d.ts +1 -1
  151. package/typings/mediaContainer.d.ts +25 -0
  152. package/typings/node.d.ts +57 -0
  153. package/typings/notice.d.ts +16 -0
  154. package/typings/numbers.d.ts +29 -0
  155. package/typings/offset.d.ts +24 -0
  156. package/typings/options.d.ts +589 -0
  157. package/typings/paragraphStyle.d.ts +5 -0
  158. package/typings/resizing.d.ts +141 -0
  159. package/typings/selection.d.ts +94 -0
  160. package/typings/shortcuts.d.ts +13 -0
  161. package/typings/suneditor.d.ts +9 -0
  162. package/typings/table.d.ts +5 -0
  163. package/typings/template.d.ts +5 -0
  164. package/typings/textStyle.d.ts +5 -0
  165. package/typings/toolbar.d.ts +32 -0
  166. package/typings/unicode.d.ts +25 -0
  167. package/{src/plugins/dialog → typings}/video.d.ts +1 -1
  168. package/dist/css/suneditor.min.css +0 -1
  169. package/dist/suneditor.min.js +0 -2
  170. package/src/assets/css/suneditor-contents.css +0 -562
  171. package/src/assets/css/suneditor.css +0 -566
  172. package/src/assets/defaultIcons.js +0 -103
  173. package/src/lang/Lang.d.ts +0 -144
  174. package/src/lang/ckb.d.ts +0 -5
  175. package/src/lang/ckb.js +0 -188
  176. package/src/lang/cs.d.ts +0 -5
  177. package/src/lang/cs.js +0 -188
  178. package/src/lang/da.d.ts +0 -5
  179. package/src/lang/da.js +0 -191
  180. package/src/lang/de.d.ts +0 -5
  181. package/src/lang/de.js +0 -188
  182. package/src/lang/en.d.ts +0 -5
  183. package/src/lang/en.js +0 -188
  184. package/src/lang/es.d.ts +0 -5
  185. package/src/lang/es.js +0 -188
  186. package/src/lang/fa.d.ts +0 -5
  187. package/src/lang/fa.js +0 -188
  188. package/src/lang/fr.d.ts +0 -5
  189. package/src/lang/fr.js +0 -188
  190. package/src/lang/he.d.ts +0 -5
  191. package/src/lang/he.js +0 -188
  192. package/src/lang/index.d.ts +0 -23
  193. package/src/lang/it.d.ts +0 -5
  194. package/src/lang/it.js +0 -188
  195. package/src/lang/ja.d.ts +0 -5
  196. package/src/lang/ja.js +0 -188
  197. package/src/lang/ko.d.ts +0 -5
  198. package/src/lang/ko.js +0 -188
  199. package/src/lang/lv.d.ts +0 -5
  200. package/src/lang/lv.js +0 -188
  201. package/src/lang/nl.d.ts +0 -5
  202. package/src/lang/nl.js +0 -188
  203. package/src/lang/pl.d.ts +0 -5
  204. package/src/lang/pl.js +0 -188
  205. package/src/lang/pt_br.d.ts +0 -5
  206. package/src/lang/pt_br.js +0 -189
  207. package/src/lang/ro.d.ts +0 -5
  208. package/src/lang/ro.js +0 -188
  209. package/src/lang/ru.d.ts +0 -5
  210. package/src/lang/ru.js +0 -188
  211. package/src/lang/se.d.ts +0 -5
  212. package/src/lang/se.js +0 -191
  213. package/src/lang/tr.d.ts +0 -5
  214. package/src/lang/tr.js +0 -191
  215. package/src/lang/ua.d.ts +0 -5
  216. package/src/lang/ua.js +0 -188
  217. package/src/lang/ur.d.ts +0 -5
  218. package/src/lang/ur.js +0 -188
  219. package/src/lang/zh_cn.d.ts +0 -5
  220. package/src/lang/zh_cn.js +0 -187
  221. package/src/lib/constructor.js +0 -954
  222. package/src/lib/context.d.ts +0 -42
  223. package/src/lib/context.js +0 -71
  224. package/src/lib/core.d.ts +0 -1135
  225. package/src/lib/core.js +0 -9395
  226. package/src/lib/history.d.ts +0 -48
  227. package/src/lib/history.js +0 -219
  228. package/src/lib/util.d.ts +0 -678
  229. package/src/lib/util.js +0 -2131
  230. package/src/options.d.ts +0 -608
  231. package/src/plugins/CommandPlugin.d.ts +0 -8
  232. package/src/plugins/DialogPlugin.d.ts +0 -20
  233. package/src/plugins/FileBrowserPlugin.d.ts +0 -30
  234. package/src/plugins/Module.d.ts +0 -15
  235. package/src/plugins/Plugin.d.ts +0 -42
  236. package/src/plugins/SubmenuPlugin.d.ts +0 -8
  237. package/src/plugins/dialog/audio.js +0 -559
  238. package/src/plugins/dialog/image.js +0 -1126
  239. package/src/plugins/dialog/link.js +0 -223
  240. package/src/plugins/dialog/math.js +0 -295
  241. package/src/plugins/dialog/mention.js +0 -242
  242. package/src/plugins/dialog/video.js +0 -979
  243. package/src/plugins/index.d.ts +0 -79
  244. package/src/plugins/modules/_anchor.js +0 -461
  245. package/src/plugins/modules/_colorPicker.d.ts +0 -60
  246. package/src/plugins/modules/_colorPicker.js +0 -201
  247. package/src/plugins/modules/_notice.d.ts +0 -21
  248. package/src/plugins/modules/_notice.js +0 -72
  249. package/src/plugins/modules/_selectMenu.js +0 -119
  250. package/src/plugins/modules/component.d.ts +0 -25
  251. package/src/plugins/modules/component.js +0 -81
  252. package/src/plugins/modules/dialog.d.ts +0 -28
  253. package/src/plugins/modules/dialog.js +0 -175
  254. package/src/plugins/modules/fileBrowser.d.ts +0 -42
  255. package/src/plugins/modules/fileBrowser.js +0 -374
  256. package/src/plugins/modules/fileManager.d.ts +0 -67
  257. package/src/plugins/modules/fileManager.js +0 -326
  258. package/src/plugins/modules/index.js +0 -9
  259. package/src/plugins/modules/resizing.d.ts +0 -154
  260. package/src/plugins/modules/resizing.js +0 -903
  261. package/src/plugins/submenu/align.d.ts +0 -5
  262. package/src/plugins/submenu/align.js +0 -160
  263. package/src/plugins/submenu/font.d.ts +0 -5
  264. package/src/plugins/submenu/font.js +0 -123
  265. package/src/plugins/submenu/fontColor.d.ts +0 -5
  266. package/src/plugins/submenu/fontColor.js +0 -101
  267. package/src/plugins/submenu/fontSize.d.ts +0 -5
  268. package/src/plugins/submenu/fontSize.js +0 -112
  269. package/src/plugins/submenu/formatBlock.d.ts +0 -5
  270. package/src/plugins/submenu/formatBlock.js +0 -273
  271. package/src/plugins/submenu/hiliteColor.d.ts +0 -5
  272. package/src/plugins/submenu/hiliteColor.js +0 -102
  273. package/src/plugins/submenu/horizontalRule.d.ts +0 -5
  274. package/src/plugins/submenu/horizontalRule.js +0 -98
  275. package/src/plugins/submenu/lineHeight.d.ts +0 -5
  276. package/src/plugins/submenu/lineHeight.js +0 -104
  277. package/src/plugins/submenu/list.d.ts +0 -5
  278. package/src/plugins/submenu/list.js +0 -456
  279. package/src/plugins/submenu/paragraphStyle.d.ts +0 -5
  280. package/src/plugins/submenu/paragraphStyle.js +0 -135
  281. package/src/plugins/submenu/table.d.ts +0 -5
  282. package/src/plugins/submenu/table.js +0 -1431
  283. package/src/plugins/submenu/template.d.ts +0 -5
  284. package/src/plugins/submenu/template.js +0 -72
  285. package/src/plugins/submenu/textStyle.d.ts +0 -5
  286. package/src/plugins/submenu/textStyle.js +0 -167
  287. package/src/suneditor.d.ts +0 -9
  288. package/src/suneditor_build.js +0 -18
  289. /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;