suneditor 2.44.7 → 2.44.9

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 (130) hide show
  1. package/LICENSE.txt +20 -20
  2. package/README.md +1585 -1585
  3. package/dist/suneditor.min.js +2 -2
  4. package/package.json +71 -71
  5. package/src/assets/css/suneditor-contents.css +556 -556
  6. package/src/assets/css/suneditor.css +0 -0
  7. package/src/assets/defaultIcons.js +103 -103
  8. package/src/lang/Lang.d.ts +143 -143
  9. package/src/lang/ckb.d.ts +4 -4
  10. package/src/lang/ckb.js +187 -187
  11. package/src/lang/da.d.ts +4 -4
  12. package/src/lang/da.js +191 -191
  13. package/src/lang/de.d.ts +4 -4
  14. package/src/lang/de.js +187 -187
  15. package/src/lang/en.d.ts +4 -4
  16. package/src/lang/en.js +187 -187
  17. package/src/lang/es.d.ts +4 -4
  18. package/src/lang/es.js +187 -187
  19. package/src/lang/fr.d.ts +4 -4
  20. package/src/lang/fr.js +188 -188
  21. package/src/lang/he.d.ts +4 -4
  22. package/src/lang/he.js +188 -188
  23. package/src/lang/index.d.ts +22 -22
  24. package/src/lang/index.js +25 -25
  25. package/src/lang/it.d.ts +4 -4
  26. package/src/lang/it.js +188 -188
  27. package/src/lang/ja.d.ts +4 -4
  28. package/src/lang/ja.js +187 -187
  29. package/src/lang/ko.d.ts +4 -4
  30. package/src/lang/ko.js +187 -187
  31. package/src/lang/lv.d.ts +4 -4
  32. package/src/lang/lv.js +187 -187
  33. package/src/lang/nl.d.ts +4 -4
  34. package/src/lang/nl.js +187 -187
  35. package/src/lang/pl.d.ts +4 -4
  36. package/src/lang/pl.js +187 -187
  37. package/src/lang/pt_br.d.ts +4 -4
  38. package/src/lang/pt_br.js +189 -189
  39. package/src/lang/ro.d.ts +4 -4
  40. package/src/lang/ro.js +187 -187
  41. package/src/lang/ru.d.ts +4 -4
  42. package/src/lang/ru.js +187 -187
  43. package/src/lang/se.d.ts +4 -4
  44. package/src/lang/se.js +191 -191
  45. package/src/lang/ua.d.ts +5 -5
  46. package/src/lang/ua.js +188 -188
  47. package/src/lang/ur.d.ts +4 -4
  48. package/src/lang/ur.js +187 -187
  49. package/src/lang/zh_cn.d.ts +4 -4
  50. package/src/lang/zh_cn.js +187 -187
  51. package/src/lib/constructor.js +1 -1
  52. package/src/lib/context.d.ts +42 -42
  53. package/src/lib/context.js +0 -0
  54. package/src/lib/core.d.ts +1101 -1101
  55. package/src/lib/core.js +146 -97
  56. package/src/lib/history.d.ts +48 -48
  57. package/src/lib/history.js +218 -218
  58. package/src/lib/util.d.ts +677 -677
  59. package/src/lib/util.js +9 -11
  60. package/src/options.d.ts +608 -608
  61. package/src/plugins/CommandPlugin.d.ts +7 -7
  62. package/src/plugins/DialogPlugin.d.ts +19 -19
  63. package/src/plugins/FileBrowserPlugin.d.ts +29 -29
  64. package/src/plugins/Module.d.ts +14 -14
  65. package/src/plugins/Plugin.d.ts +41 -41
  66. package/src/plugins/SubmenuPlugin.d.ts +7 -7
  67. package/src/plugins/command/blockquote.d.ts +4 -4
  68. package/src/plugins/command/blockquote.js +46 -46
  69. package/src/plugins/dialog/audio.d.ts +4 -4
  70. package/src/plugins/dialog/audio.js +556 -556
  71. package/src/plugins/dialog/image.d.ts +4 -4
  72. package/src/plugins/dialog/image.js +1122 -1122
  73. package/src/plugins/dialog/link.d.ts +4 -4
  74. package/src/plugins/dialog/link.js +223 -223
  75. package/src/plugins/dialog/math.d.ts +4 -4
  76. package/src/plugins/dialog/math.js +294 -294
  77. package/src/plugins/dialog/mention.d.ts +5 -5
  78. package/src/plugins/dialog/mention.js +242 -242
  79. package/src/plugins/dialog/video.d.ts +4 -4
  80. package/src/plugins/dialog/video.js +983 -983
  81. package/src/plugins/fileBrowser/imageGallery.d.ts +4 -4
  82. package/src/plugins/fileBrowser/imageGallery.js +63 -63
  83. package/src/plugins/index.d.ts +79 -79
  84. package/src/plugins/index.js +32 -32
  85. package/src/plugins/modules/_anchor.js +461 -461
  86. package/src/plugins/modules/_colorPicker.d.ts +59 -59
  87. package/src/plugins/modules/_colorPicker.js +0 -0
  88. package/src/plugins/modules/_notice.d.ts +20 -20
  89. package/src/plugins/modules/_notice.js +72 -72
  90. package/src/plugins/modules/_selectMenu.js +118 -118
  91. package/src/plugins/modules/component.d.ts +24 -24
  92. package/src/plugins/modules/component.js +82 -82
  93. package/src/plugins/modules/dialog.d.ts +27 -27
  94. package/src/plugins/modules/dialog.js +174 -174
  95. package/src/plugins/modules/fileBrowser.d.ts +41 -41
  96. package/src/plugins/modules/fileBrowser.js +373 -373
  97. package/src/plugins/modules/fileManager.d.ts +66 -66
  98. package/src/plugins/modules/fileManager.js +325 -325
  99. package/src/plugins/modules/index.d.ts +10 -10
  100. package/src/plugins/modules/index.js +8 -8
  101. package/src/plugins/modules/resizing.d.ts +153 -153
  102. package/src/plugins/modules/resizing.js +895 -895
  103. package/src/plugins/submenu/align.d.ts +4 -4
  104. package/src/plugins/submenu/align.js +160 -160
  105. package/src/plugins/submenu/font.d.ts +4 -4
  106. package/src/plugins/submenu/font.js +120 -120
  107. package/src/plugins/submenu/fontColor.d.ts +4 -4
  108. package/src/plugins/submenu/fontColor.js +0 -0
  109. package/src/plugins/submenu/fontSize.d.ts +4 -4
  110. package/src/plugins/submenu/fontSize.js +112 -112
  111. package/src/plugins/submenu/formatBlock.d.ts +4 -4
  112. package/src/plugins/submenu/formatBlock.js +273 -273
  113. package/src/plugins/submenu/hiliteColor.d.ts +4 -4
  114. package/src/plugins/submenu/hiliteColor.js +0 -0
  115. package/src/plugins/submenu/horizontalRule.d.ts +4 -4
  116. package/src/plugins/submenu/horizontalRule.js +98 -98
  117. package/src/plugins/submenu/lineHeight.d.ts +4 -4
  118. package/src/plugins/submenu/lineHeight.js +104 -104
  119. package/src/plugins/submenu/list.d.ts +4 -4
  120. package/src/plugins/submenu/list.js +456 -456
  121. package/src/plugins/submenu/paragraphStyle.d.ts +4 -4
  122. package/src/plugins/submenu/paragraphStyle.js +135 -135
  123. package/src/plugins/submenu/table.d.ts +4 -4
  124. package/src/plugins/submenu/template.d.ts +4 -4
  125. package/src/plugins/submenu/template.js +71 -71
  126. package/src/plugins/submenu/textStyle.d.ts +4 -4
  127. package/src/plugins/submenu/textStyle.js +167 -167
  128. package/src/suneditor.d.ts +9 -9
  129. package/src/suneditor.js +75 -75
  130. package/src/suneditor_build.js +17 -17
@@ -1,242 +1,242 @@
1
- /*
2
- * wysiwyg web editor
3
- *
4
- * suneditor.js
5
- * Copyright 2017 JiHong Lee.
6
- * MIT license.
7
- */
8
- "use strict";
9
-
10
- import dialog from "../modules/dialog";
11
-
12
-
13
- function insertAt(parent, child, index) {
14
- if (!index) index = 0;
15
- if (index >= parent.children.length) {
16
- parent.appendChild(child);
17
- } else {
18
- parent.insertBefore(child, parent.children[index]);
19
- }
20
- }
21
-
22
- export default {
23
- name: "mention",
24
- display: "dialog",
25
-
26
- renderItem: function(item) {
27
- return `<span>${item}</span>`;
28
- },
29
-
30
- getItems: function(term) {
31
- return Promise.resolve(
32
- ["overwite", "the", "mention", "plugin", "getItems", "method"].filter(
33
- (w) => w.includes(term.toLowerCase())
34
- )
35
- );
36
- },
37
-
38
- renderList: function(term) {
39
- const { mention } = this.context;
40
- let promise = Promise.resolve();
41
- if (mention.term !== term) {
42
- mention.focussed = 0;
43
- mention.term = term;
44
- promise = mention.getItems(term).then((items) => {
45
- mention._items = items;
46
-
47
- Object.keys(mention._itemElements).forEach((id) => {
48
- if (!items.find((i) => mention.getId(i) === id)) {
49
- const child = mention._itemElements[id];
50
- child.parentNode.removeChild(child);
51
- delete mention._itemElements[id];
52
- }
53
- });
54
-
55
- items.forEach((item, idx) => {
56
- const id = mention.getId(item);
57
- if (!mention._itemElements[id]) {
58
- const el = this.util.createElement("LI");
59
- el.setAttribute("data-mention", id);
60
- this.util.addClass(el, 'se-mention-item');
61
- el.innerHTML = mention.renderItem(item);
62
- el.addEventListener("click", () => {
63
- mention._addMention(item);
64
- });
65
- insertAt(mention._list, el, idx);
66
- mention._itemElements[id] = el;
67
- }
68
- });
69
- });
70
- }
71
-
72
- promise.then(() => {
73
- const current = mention._list.querySelectorAll(".se-mention-item")[
74
- mention.focussed
75
- ];
76
- if (current && !this.util.hasClass(current, "se-mention-active")) {
77
- const prev = mention._list.querySelector(".se-mention-active");
78
- if (prev) this.util.removeClass(prev, "se-mention-active");
79
- this.util.addClass(current, "se-mention-active");
80
- }
81
- });
82
- },
83
-
84
- setDialog: function(core) {
85
- const mention_dialog = core.util.createElement("DIV");
86
- const lang = core.lang;
87
- mention_dialog.className = "se-dialog-content";
88
- mention_dialog.style.display = "none";
89
- const html = `
90
- <form class="se-dialog-form">
91
- <div class="se-dialog-header">
92
- <button type="button" data-command="close" class="se-btn se-dialog-close" title="${lang.dialogBox.close}" aria-label="${lang.dialogBox.close}">
93
- ${core.icons.cancel}
94
- </button>
95
- <span class="se-modal-title">${lang.dialogBox.mentionBox.title}</span>
96
- </div>
97
- <div class="se-dialog-body">
98
- <input class="se-input-form se-mention-search" type="text" placeholder="${lang.dialogBox.browser.search}" />
99
- <ul class="se-mention-list">
100
- </ul>
101
- </div>
102
- </form>
103
- `;
104
- mention_dialog.innerHTML = html;
105
- return mention_dialog;
106
- },
107
-
108
- getId(mention) {
109
- return mention;
110
- },
111
-
112
- getValue(mention) {
113
- return `@${mention}`;
114
- },
115
-
116
- getLinkHref(/*mention*/) {
117
- return "";
118
- },
119
-
120
- open: function() {
121
- const { mention } = this.context;
122
- this.plugins.dialog.open.call(
123
- this,
124
- "mention",
125
- "mention" === this.currentControllerName
126
- );
127
- mention._search.focus();
128
- mention.renderList("");
129
- },
130
-
131
- on: function(update) {
132
- if (update) return;
133
- this.plugins.mention.init.call(this);
134
- },
135
-
136
- init: function() {
137
- const { mention } = this.context;
138
- mention._search.value = "";
139
- mention.focussed = 0;
140
- mention._items = [];
141
- mention._itemElements = {};
142
- mention._list.innerHTML = "";
143
- delete mention.term;
144
- },
145
-
146
- onKeyPress: function(e) {
147
- const { mention } = this.context;
148
- switch (e.key) {
149
- case "ArrowDown":
150
- mention.focussed += 1;
151
- e.preventDefault();
152
- e.stopPropagation();
153
- break;
154
-
155
- case "ArrowUp":
156
- if (mention.focussed > 0) {
157
- mention.focussed -= 1;
158
- }
159
- e.preventDefault();
160
- e.stopPropagation();
161
- break;
162
-
163
- case "Enter":
164
- mention._addMention();
165
- e.preventDefault();
166
- e.stopPropagation();
167
- break;
168
-
169
- default:
170
- }
171
- },
172
-
173
- onKeyUp: function(e) {
174
- const { mention } = this.context;
175
- mention.renderList(e.target.value);
176
- },
177
-
178
- getMentions: function(core) {
179
- const { mentions, getId } = core.context.mention;
180
- return mentions.filter((mention) => {
181
- const id = getId(mention);
182
- return core.context.element.wysiwyg.querySelector(
183
- `[data-mention="${id}"]`
184
- );
185
- });
186
- },
187
-
188
- _addMention: function(item) {
189
- const { mention } = this.context;
190
- const new_mention = item || mention._items[mention.focussed];
191
- if (new_mention) {
192
- if (
193
- !mention.mentions.find(
194
- (m) => mention.getId(m) === mention.getId(new_mention)
195
- )
196
- ) {
197
- mention.mentions.push(new_mention);
198
- }
199
- const el = this.util.createElement("A");
200
- el.href = mention.getLinkHref(new_mention);
201
- el.target = "_blank";
202
- el.innerHTML = mention.getValue(new_mention);
203
- el.setAttribute("data-mention", mention.getId(new_mention));
204
- this.insertNode(el, null, false);
205
- const spacer = this.util.createElement("SPAN");
206
- spacer.innerHTML = " ";
207
- this.insertNode(spacer, el, false);
208
- }
209
- this.plugins.dialog.close.call(this);
210
- },
211
- add: function(core) {
212
- core.addModule([dialog]);
213
- this.title = core.lang.toolbar.mention;
214
- const _dialog = this.setDialog(core);
215
- core.getMentions = this.getMentions(core);
216
-
217
- const _search = _dialog.querySelector(".se-mention-search");
218
- _search.addEventListener("keyup", this.onKeyUp.bind(core));
219
- _search.addEventListener("keydown", this.onKeyPress.bind(core));
220
- const _list = _dialog.querySelector(".se-mention-list");
221
-
222
- core.context.mention = {
223
- _addMention: this._addMention.bind(core),
224
- _itemElements: {},
225
- _items: [],
226
- _list,
227
- _search,
228
- focussed: 0,
229
- getId: this.getId.bind(core),
230
- getItems: this.getItems,
231
- getLinkHref: this.getLinkHref.bind(core),
232
- getValue: this.getValue.bind(core),
233
- mentions: [],
234
- modal: _dialog,
235
- open: this.open.bind(core),
236
- renderItem: this.renderItem,
237
- renderList: this.renderList.bind(core),
238
- };
239
- core.context.dialog.modal.appendChild(_dialog);
240
- },
241
- action: function() {},
242
- };
1
+ /*
2
+ * wysiwyg web editor
3
+ *
4
+ * suneditor.js
5
+ * Copyright 2017 JiHong Lee.
6
+ * MIT license.
7
+ */
8
+ "use strict";
9
+
10
+ import dialog from "../modules/dialog";
11
+
12
+
13
+ function insertAt(parent, child, index) {
14
+ if (!index) index = 0;
15
+ if (index >= parent.children.length) {
16
+ parent.appendChild(child);
17
+ } else {
18
+ parent.insertBefore(child, parent.children[index]);
19
+ }
20
+ }
21
+
22
+ export default {
23
+ name: "mention",
24
+ display: "dialog",
25
+
26
+ renderItem: function(item) {
27
+ return `<span>${item}</span>`;
28
+ },
29
+
30
+ getItems: function(term) {
31
+ return Promise.resolve(
32
+ ["overwite", "the", "mention", "plugin", "getItems", "method"].filter(
33
+ (w) => w.includes(term.toLowerCase())
34
+ )
35
+ );
36
+ },
37
+
38
+ renderList: function(term) {
39
+ const { mention } = this.context;
40
+ let promise = Promise.resolve();
41
+ if (mention.term !== term) {
42
+ mention.focussed = 0;
43
+ mention.term = term;
44
+ promise = mention.getItems(term).then((items) => {
45
+ mention._items = items;
46
+
47
+ Object.keys(mention._itemElements).forEach((id) => {
48
+ if (!items.find((i) => mention.getId(i) === id)) {
49
+ const child = mention._itemElements[id];
50
+ child.parentNode.removeChild(child);
51
+ delete mention._itemElements[id];
52
+ }
53
+ });
54
+
55
+ items.forEach((item, idx) => {
56
+ const id = mention.getId(item);
57
+ if (!mention._itemElements[id]) {
58
+ const el = this.util.createElement("LI");
59
+ el.setAttribute("data-mention", id);
60
+ this.util.addClass(el, 'se-mention-item');
61
+ el.innerHTML = mention.renderItem(item);
62
+ el.addEventListener("click", () => {
63
+ mention._addMention(item);
64
+ });
65
+ insertAt(mention._list, el, idx);
66
+ mention._itemElements[id] = el;
67
+ }
68
+ });
69
+ });
70
+ }
71
+
72
+ promise.then(() => {
73
+ const current = mention._list.querySelectorAll(".se-mention-item")[
74
+ mention.focussed
75
+ ];
76
+ if (current && !this.util.hasClass(current, "se-mention-active")) {
77
+ const prev = mention._list.querySelector(".se-mention-active");
78
+ if (prev) this.util.removeClass(prev, "se-mention-active");
79
+ this.util.addClass(current, "se-mention-active");
80
+ }
81
+ });
82
+ },
83
+
84
+ setDialog: function(core) {
85
+ const mention_dialog = core.util.createElement("DIV");
86
+ const lang = core.lang;
87
+ mention_dialog.className = "se-dialog-content";
88
+ mention_dialog.style.display = "none";
89
+ const html = `
90
+ <form class="se-dialog-form">
91
+ <div class="se-dialog-header">
92
+ <button type="button" data-command="close" class="se-btn se-dialog-close" title="${lang.dialogBox.close}" aria-label="${lang.dialogBox.close}">
93
+ ${core.icons.cancel}
94
+ </button>
95
+ <span class="se-modal-title">${lang.dialogBox.mentionBox.title}</span>
96
+ </div>
97
+ <div class="se-dialog-body">
98
+ <input class="se-input-form se-mention-search" type="text" placeholder="${lang.dialogBox.browser.search}" />
99
+ <ul class="se-mention-list">
100
+ </ul>
101
+ </div>
102
+ </form>
103
+ `;
104
+ mention_dialog.innerHTML = html;
105
+ return mention_dialog;
106
+ },
107
+
108
+ getId(mention) {
109
+ return mention;
110
+ },
111
+
112
+ getValue(mention) {
113
+ return `@${mention}`;
114
+ },
115
+
116
+ getLinkHref(/*mention*/) {
117
+ return "";
118
+ },
119
+
120
+ open: function() {
121
+ const { mention } = this.context;
122
+ this.plugins.dialog.open.call(
123
+ this,
124
+ "mention",
125
+ "mention" === this.currentControllerName
126
+ );
127
+ mention._search.focus();
128
+ mention.renderList("");
129
+ },
130
+
131
+ on: function(update) {
132
+ if (update) return;
133
+ this.plugins.mention.init.call(this);
134
+ },
135
+
136
+ init: function() {
137
+ const { mention } = this.context;
138
+ mention._search.value = "";
139
+ mention.focussed = 0;
140
+ mention._items = [];
141
+ mention._itemElements = {};
142
+ mention._list.innerHTML = "";
143
+ delete mention.term;
144
+ },
145
+
146
+ onKeyPress: function(e) {
147
+ const { mention } = this.context;
148
+ switch (e.key) {
149
+ case "ArrowDown":
150
+ mention.focussed += 1;
151
+ e.preventDefault();
152
+ e.stopPropagation();
153
+ break;
154
+
155
+ case "ArrowUp":
156
+ if (mention.focussed > 0) {
157
+ mention.focussed -= 1;
158
+ }
159
+ e.preventDefault();
160
+ e.stopPropagation();
161
+ break;
162
+
163
+ case "Enter":
164
+ mention._addMention();
165
+ e.preventDefault();
166
+ e.stopPropagation();
167
+ break;
168
+
169
+ default:
170
+ }
171
+ },
172
+
173
+ onKeyUp: function(e) {
174
+ const { mention } = this.context;
175
+ mention.renderList(e.target.value);
176
+ },
177
+
178
+ getMentions: function(core) {
179
+ const { mentions, getId } = core.context.mention;
180
+ return mentions.filter((mention) => {
181
+ const id = getId(mention);
182
+ return core.context.element.wysiwyg.querySelector(
183
+ `[data-mention="${id}"]`
184
+ );
185
+ });
186
+ },
187
+
188
+ _addMention: function(item) {
189
+ const { mention } = this.context;
190
+ const new_mention = item || mention._items[mention.focussed];
191
+ if (new_mention) {
192
+ if (
193
+ !mention.mentions.find(
194
+ (m) => mention.getId(m) === mention.getId(new_mention)
195
+ )
196
+ ) {
197
+ mention.mentions.push(new_mention);
198
+ }
199
+ const el = this.util.createElement("A");
200
+ el.href = mention.getLinkHref(new_mention);
201
+ el.target = "_blank";
202
+ el.innerHTML = mention.getValue(new_mention);
203
+ el.setAttribute("data-mention", mention.getId(new_mention));
204
+ this.insertNode(el, null, false);
205
+ const spacer = this.util.createElement("SPAN");
206
+ spacer.innerHTML = " ";
207
+ this.insertNode(spacer, el, false);
208
+ }
209
+ this.plugins.dialog.close.call(this);
210
+ },
211
+ add: function(core) {
212
+ core.addModule([dialog]);
213
+ this.title = core.lang.toolbar.mention;
214
+ const _dialog = this.setDialog(core);
215
+ core.getMentions = this.getMentions(core);
216
+
217
+ const _search = _dialog.querySelector(".se-mention-search");
218
+ _search.addEventListener("keyup", this.onKeyUp.bind(core));
219
+ _search.addEventListener("keydown", this.onKeyPress.bind(core));
220
+ const _list = _dialog.querySelector(".se-mention-list");
221
+
222
+ core.context.mention = {
223
+ _addMention: this._addMention.bind(core),
224
+ _itemElements: {},
225
+ _items: [],
226
+ _list,
227
+ _search,
228
+ focussed: 0,
229
+ getId: this.getId.bind(core),
230
+ getItems: this.getItems,
231
+ getLinkHref: this.getLinkHref.bind(core),
232
+ getValue: this.getValue.bind(core),
233
+ mentions: [],
234
+ modal: _dialog,
235
+ open: this.open.bind(core),
236
+ renderItem: this.renderItem,
237
+ renderList: this.renderList.bind(core),
238
+ };
239
+ core.context.dialog.modal.appendChild(_dialog);
240
+ },
241
+ action: function() {},
242
+ };
@@ -1,5 +1,5 @@
1
- import { DialogPlugin } from '../DialogPlugin';
2
-
3
- declare const video: DialogPlugin;
4
-
1
+ import { DialogPlugin } from '../DialogPlugin';
2
+
3
+ declare const video: DialogPlugin;
4
+
5
5
  export default video;