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.
- package/.eslintignore +7 -0
- package/.eslintrc.json +64 -0
- package/CONTRIBUTING.md +36 -0
- package/LICENSE.txt +1 -1
- package/README.md +11 -1560
- package/package.json +94 -70
- package/src/assets/icons/_default.js +194 -0
- package/src/assets/suneditor-content.css +642 -0
- package/src/assets/suneditor.css +3378 -0
- package/src/core/base/eventHandlers/handler_toolbar.js +114 -0
- package/src/core/base/eventHandlers/handler_ww_clipboard.js +31 -0
- package/src/core/base/eventHandlers/handler_ww_dragDrop.js +69 -0
- package/src/core/base/eventHandlers/handler_ww_key_input.js +978 -0
- package/src/core/base/eventHandlers/handler_ww_mouse.js +118 -0
- package/src/core/base/eventManager.js +1129 -0
- package/src/core/base/events.js +320 -0
- package/src/core/base/history.js +301 -0
- package/src/core/class/char.js +146 -0
- package/src/core/class/component.js +624 -0
- package/src/core/class/format.js +3255 -0
- package/src/core/class/html.js +1621 -0
- package/src/core/class/menu.js +260 -0
- package/src/core/class/nodeTransform.js +379 -0
- package/src/core/class/notice.js +42 -0
- package/src/core/class/offset.js +578 -0
- package/src/core/class/selection.js +508 -0
- package/src/core/class/shortcuts.js +38 -0
- package/src/core/class/toolbar.js +440 -0
- package/src/core/class/viewer.js +646 -0
- package/src/core/editor.js +1588 -0
- package/src/core/section/actives.js +107 -0
- package/src/core/section/constructor.js +1237 -0
- package/src/core/section/context.js +97 -0
- package/src/editorInjector/_classes.js +22 -0
- package/src/editorInjector/_core.js +28 -0
- package/src/editorInjector/index.js +13 -0
- package/src/helper/converter.js +313 -0
- package/src/helper/domUtils.js +1177 -0
- package/src/helper/env.js +250 -0
- package/src/helper/index.js +19 -0
- package/src/helper/numbers.js +68 -0
- package/src/helper/unicode.js +43 -0
- package/src/langs/ckb.js +161 -0
- package/src/langs/cs.js +161 -0
- package/src/langs/da.js +161 -0
- package/src/langs/de.js +162 -0
- package/src/langs/en.js +199 -0
- package/src/langs/es.js +162 -0
- package/src/langs/fa.js +159 -0
- package/src/langs/fr.js +161 -0
- package/src/langs/he.js +162 -0
- package/src/{lang → langs}/index.js +0 -2
- package/src/langs/it.js +162 -0
- package/src/langs/ja.js +162 -0
- package/src/langs/ko.js +162 -0
- package/src/langs/lv.js +162 -0
- package/src/langs/nl.js +162 -0
- package/src/langs/pl.js +162 -0
- package/src/langs/pt_br.js +162 -0
- package/src/langs/ro.js +162 -0
- package/src/langs/ru.js +162 -0
- package/src/langs/se.js +162 -0
- package/src/langs/tr.js +159 -0
- package/src/langs/ua.js +162 -0
- package/src/langs/ur.js +162 -0
- package/src/langs/zh_cn.js +162 -0
- package/src/modules/ApiManager.js +168 -0
- package/src/modules/ColorPicker.js +302 -0
- package/src/modules/Controller.js +315 -0
- package/src/modules/Figure.js +1174 -0
- package/src/modules/FileBrowser.js +271 -0
- package/src/modules/FileManager.js +290 -0
- package/src/modules/HueSlider.js +513 -0
- package/src/modules/Modal.js +177 -0
- package/src/modules/ModalAnchorEditor.js +494 -0
- package/src/modules/SelectMenu.js +447 -0
- package/src/modules/_DragHandle.js +16 -0
- package/src/modules/index.js +14 -0
- package/src/plugins/command/blockquote.js +47 -47
- package/src/plugins/command/exportPdf.js +168 -0
- package/src/plugins/command/fileUpload.js +389 -0
- package/src/plugins/command/list_bulleted.js +112 -0
- package/src/plugins/command/list_numbered.js +115 -0
- package/src/plugins/dropdown/align.js +143 -0
- package/src/plugins/dropdown/backgroundColor.js +73 -0
- package/src/plugins/dropdown/font.js +113 -0
- package/src/plugins/dropdown/fontColor.js +73 -0
- package/src/plugins/dropdown/formatBlock.js +141 -0
- package/src/plugins/dropdown/hr.js +111 -0
- package/src/plugins/dropdown/layout.js +72 -0
- package/src/plugins/dropdown/lineHeight.js +114 -0
- package/src/plugins/dropdown/list.js +107 -0
- package/src/plugins/dropdown/paragraphStyle.js +117 -0
- package/src/plugins/dropdown/table.js +2810 -0
- package/src/plugins/dropdown/template.js +71 -0
- package/src/plugins/dropdown/textStyle.js +137 -0
- package/src/plugins/field/mention.js +172 -0
- package/src/plugins/fileBrowser/imageGallery.js +76 -59
- package/src/plugins/index.js +86 -24
- package/src/plugins/input/fontSize.js +357 -0
- package/src/plugins/modal/audio.js +492 -0
- package/src/plugins/modal/image.js +1062 -0
- package/src/plugins/modal/link.js +211 -0
- package/src/plugins/modal/math.js +347 -0
- package/src/plugins/modal/video.js +870 -0
- package/src/suneditor.js +62 -67
- package/src/themes/test.css +61 -0
- package/typings/CommandPlugin.d.ts +8 -0
- package/typings/DialogPlugin.d.ts +20 -0
- package/typings/FileBrowserPlugin.d.ts +30 -0
- package/typings/Lang.d.ts +124 -0
- package/typings/Module.d.ts +15 -0
- package/typings/Plugin.d.ts +42 -0
- package/typings/SubmenuPlugin.d.ts +8 -0
- package/typings/_classes.d.ts +17 -0
- package/typings/_colorPicker.d.ts +60 -0
- package/typings/_core.d.ts +55 -0
- package/typings/align.d.ts +5 -0
- package/{src/plugins/dialog → typings}/audio.d.ts +1 -1
- package/typings/backgroundColor.d.ts +5 -0
- package/{src/plugins/command → typings}/blockquote.d.ts +1 -1
- package/typings/char.d.ts +39 -0
- package/typings/component.d.ts +38 -0
- package/typings/context.d.ts +39 -0
- package/typings/converter.d.ts +33 -0
- package/typings/dialog.d.ts +28 -0
- package/typings/domUtils.d.ts +361 -0
- package/typings/editor.d.ts +7 -0
- package/typings/editor.ts +542 -0
- package/typings/env.d.ts +70 -0
- package/typings/eventManager.d.ts +37 -0
- package/typings/events.d.ts +262 -0
- package/typings/fileBrowser.d.ts +42 -0
- package/typings/fileManager.d.ts +67 -0
- package/typings/font.d.ts +5 -0
- package/typings/fontColor.d.ts +5 -0
- package/typings/fontSize.d.ts +5 -0
- package/typings/format.d.ts +191 -0
- package/typings/formatBlock.d.ts +5 -0
- package/typings/history.d.ts +48 -0
- package/typings/horizontalRule.d.ts +5 -0
- package/{src/plugins/dialog → typings}/image.d.ts +1 -1
- package/{src/plugins/fileBrowser → typings}/imageGallery.d.ts +1 -1
- package/typings/index.d.ts +21 -0
- package/{src/plugins/modules/index.d.ts → typings/index.modules.d.ts} +3 -3
- package/typings/index.plugins.d.ts +58 -0
- package/typings/lineHeight.d.ts +5 -0
- package/{src/plugins/dialog → typings}/link.d.ts +1 -1
- package/typings/list.d.ts +5 -0
- package/{src/plugins/dialog → typings}/math.d.ts +1 -1
- package/typings/mediaContainer.d.ts +25 -0
- package/typings/node.d.ts +57 -0
- package/typings/notice.d.ts +16 -0
- package/typings/numbers.d.ts +29 -0
- package/typings/offset.d.ts +24 -0
- package/typings/options.d.ts +589 -0
- package/typings/paragraphStyle.d.ts +5 -0
- package/typings/resizing.d.ts +141 -0
- package/typings/selection.d.ts +94 -0
- package/typings/shortcuts.d.ts +13 -0
- package/typings/suneditor.d.ts +9 -0
- package/typings/table.d.ts +5 -0
- package/typings/template.d.ts +5 -0
- package/typings/textStyle.d.ts +5 -0
- package/typings/toolbar.d.ts +32 -0
- package/typings/unicode.d.ts +25 -0
- package/{src/plugins/dialog → typings}/video.d.ts +1 -1
- package/dist/css/suneditor.min.css +0 -1
- package/dist/suneditor.min.js +0 -2
- package/src/assets/css/suneditor-contents.css +0 -562
- package/src/assets/css/suneditor.css +0 -566
- package/src/assets/defaultIcons.js +0 -103
- package/src/lang/Lang.d.ts +0 -144
- package/src/lang/ckb.d.ts +0 -5
- package/src/lang/ckb.js +0 -188
- package/src/lang/cs.d.ts +0 -5
- package/src/lang/cs.js +0 -188
- package/src/lang/da.d.ts +0 -5
- package/src/lang/da.js +0 -191
- package/src/lang/de.d.ts +0 -5
- package/src/lang/de.js +0 -188
- package/src/lang/en.d.ts +0 -5
- package/src/lang/en.js +0 -188
- package/src/lang/es.d.ts +0 -5
- package/src/lang/es.js +0 -188
- package/src/lang/fa.d.ts +0 -5
- package/src/lang/fa.js +0 -188
- package/src/lang/fr.d.ts +0 -5
- package/src/lang/fr.js +0 -188
- package/src/lang/he.d.ts +0 -5
- package/src/lang/he.js +0 -188
- package/src/lang/index.d.ts +0 -23
- package/src/lang/it.d.ts +0 -5
- package/src/lang/it.js +0 -188
- package/src/lang/ja.d.ts +0 -5
- package/src/lang/ja.js +0 -188
- package/src/lang/ko.d.ts +0 -5
- package/src/lang/ko.js +0 -188
- package/src/lang/lv.d.ts +0 -5
- package/src/lang/lv.js +0 -188
- package/src/lang/nl.d.ts +0 -5
- package/src/lang/nl.js +0 -188
- package/src/lang/pl.d.ts +0 -5
- package/src/lang/pl.js +0 -188
- package/src/lang/pt_br.d.ts +0 -5
- package/src/lang/pt_br.js +0 -189
- package/src/lang/ro.d.ts +0 -5
- package/src/lang/ro.js +0 -188
- package/src/lang/ru.d.ts +0 -5
- package/src/lang/ru.js +0 -188
- package/src/lang/se.d.ts +0 -5
- package/src/lang/se.js +0 -191
- package/src/lang/tr.d.ts +0 -5
- package/src/lang/tr.js +0 -191
- package/src/lang/ua.d.ts +0 -5
- package/src/lang/ua.js +0 -188
- package/src/lang/ur.d.ts +0 -5
- package/src/lang/ur.js +0 -188
- package/src/lang/zh_cn.d.ts +0 -5
- package/src/lang/zh_cn.js +0 -187
- package/src/lib/constructor.js +0 -954
- package/src/lib/context.d.ts +0 -42
- package/src/lib/context.js +0 -71
- package/src/lib/core.d.ts +0 -1135
- package/src/lib/core.js +0 -9395
- package/src/lib/history.d.ts +0 -48
- package/src/lib/history.js +0 -219
- package/src/lib/util.d.ts +0 -678
- package/src/lib/util.js +0 -2131
- package/src/options.d.ts +0 -608
- package/src/plugins/CommandPlugin.d.ts +0 -8
- package/src/plugins/DialogPlugin.d.ts +0 -20
- package/src/plugins/FileBrowserPlugin.d.ts +0 -30
- package/src/plugins/Module.d.ts +0 -15
- package/src/plugins/Plugin.d.ts +0 -42
- package/src/plugins/SubmenuPlugin.d.ts +0 -8
- package/src/plugins/dialog/audio.js +0 -559
- package/src/plugins/dialog/image.js +0 -1126
- package/src/plugins/dialog/link.js +0 -223
- package/src/plugins/dialog/math.js +0 -295
- package/src/plugins/dialog/mention.js +0 -242
- package/src/plugins/dialog/video.js +0 -979
- package/src/plugins/index.d.ts +0 -79
- package/src/plugins/modules/_anchor.js +0 -461
- package/src/plugins/modules/_colorPicker.d.ts +0 -60
- package/src/plugins/modules/_colorPicker.js +0 -201
- package/src/plugins/modules/_notice.d.ts +0 -21
- package/src/plugins/modules/_notice.js +0 -72
- package/src/plugins/modules/_selectMenu.js +0 -119
- package/src/plugins/modules/component.d.ts +0 -25
- package/src/plugins/modules/component.js +0 -81
- package/src/plugins/modules/dialog.d.ts +0 -28
- package/src/plugins/modules/dialog.js +0 -175
- package/src/plugins/modules/fileBrowser.d.ts +0 -42
- package/src/plugins/modules/fileBrowser.js +0 -374
- package/src/plugins/modules/fileManager.d.ts +0 -67
- package/src/plugins/modules/fileManager.js +0 -326
- package/src/plugins/modules/index.js +0 -9
- package/src/plugins/modules/resizing.d.ts +0 -154
- package/src/plugins/modules/resizing.js +0 -903
- package/src/plugins/submenu/align.d.ts +0 -5
- package/src/plugins/submenu/align.js +0 -160
- package/src/plugins/submenu/font.d.ts +0 -5
- package/src/plugins/submenu/font.js +0 -123
- package/src/plugins/submenu/fontColor.d.ts +0 -5
- package/src/plugins/submenu/fontColor.js +0 -101
- package/src/plugins/submenu/fontSize.d.ts +0 -5
- package/src/plugins/submenu/fontSize.js +0 -112
- package/src/plugins/submenu/formatBlock.d.ts +0 -5
- package/src/plugins/submenu/formatBlock.js +0 -273
- package/src/plugins/submenu/hiliteColor.d.ts +0 -5
- package/src/plugins/submenu/hiliteColor.js +0 -102
- package/src/plugins/submenu/horizontalRule.d.ts +0 -5
- package/src/plugins/submenu/horizontalRule.js +0 -98
- package/src/plugins/submenu/lineHeight.d.ts +0 -5
- package/src/plugins/submenu/lineHeight.js +0 -104
- package/src/plugins/submenu/list.d.ts +0 -5
- package/src/plugins/submenu/list.js +0 -456
- package/src/plugins/submenu/paragraphStyle.d.ts +0 -5
- package/src/plugins/submenu/paragraphStyle.js +0 -135
- package/src/plugins/submenu/table.d.ts +0 -5
- package/src/plugins/submenu/table.js +0 -1431
- package/src/plugins/submenu/template.d.ts +0 -5
- package/src/plugins/submenu/template.js +0 -72
- package/src/plugins/submenu/textStyle.d.ts +0 -5
- package/src/plugins/submenu/textStyle.js +0 -167
- package/src/suneditor.d.ts +0 -9
- package/src/suneditor_build.js +0 -18
- /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;
|