@lotte-innovate/ui-component-test 0.1.117 → 0.1.119
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +2 -1
- package/public/tinymce/CHANGELOG.md +3453 -0
- package/public/tinymce/README.md +73 -0
- package/public/tinymce/bower.json +27 -0
- package/public/tinymce/composer.json +52 -0
- package/public/tinymce/icons/default/icons.js +194 -0
- package/public/tinymce/icons/default/icons.min.js +1 -0
- package/public/tinymce/icons/default/index.js +7 -0
- package/public/tinymce/license.txt +21 -0
- package/public/tinymce/models/dom/index.js +7 -0
- package/public/tinymce/models/dom/model.js +8040 -0
- package/public/tinymce/models/dom/model.min.js +4 -0
- package/public/tinymce/package.json +32 -0
- package/public/tinymce/plugins/advlist/index.js +7 -0
- package/public/tinymce/plugins/advlist/plugin.js +259 -0
- package/public/tinymce/plugins/advlist/plugin.min.js +4 -0
- package/public/tinymce/plugins/autolink/index.js +7 -0
- package/public/tinymce/plugins/autolink/plugin.js +228 -0
- package/public/tinymce/plugins/autolink/plugin.min.js +4 -0
- package/public/tinymce/plugins/code/index.js +7 -0
- package/public/tinymce/plugins/code/plugin.js +85 -0
- package/public/tinymce/plugins/code/plugin.min.js +4 -0
- package/public/tinymce/plugins/codesample/index.js +7 -0
- package/public/tinymce/plugins/codesample/plugin.js +2463 -0
- package/public/tinymce/plugins/codesample/plugin.min.js +4 -0
- package/public/tinymce/plugins/image/index.js +7 -0
- package/public/tinymce/plugins/image/plugin.js +1505 -0
- package/public/tinymce/plugins/image/plugin.min.js +4 -0
- package/public/tinymce/plugins/link/index.js +7 -0
- package/public/tinymce/plugins/link/plugin.js +1242 -0
- package/public/tinymce/plugins/link/plugin.min.js +4 -0
- package/public/tinymce/plugins/lists/index.js +7 -0
- package/public/tinymce/plugins/lists/plugin.js +2172 -0
- package/public/tinymce/plugins/lists/plugin.min.js +4 -0
- package/public/tinymce/plugins/table/index.js +7 -0
- package/public/tinymce/plugins/table/plugin.js +3462 -0
- package/public/tinymce/plugins/table/plugin.min.js +4 -0
- package/public/tinymce/skins/content/default/content.css +61 -0
- package/public/tinymce/skins/content/default/content.js +2 -0
- package/public/tinymce/skins/content/default/content.min.css +1 -0
- package/public/tinymce/skins/ui/oxide/content.css +785 -0
- package/public/tinymce/skins/ui/oxide/content.inline.css +779 -0
- package/public/tinymce/skins/ui/oxide/content.inline.js +2 -0
- package/public/tinymce/skins/ui/oxide/content.inline.min.css +1 -0
- package/public/tinymce/skins/ui/oxide/content.js +2 -0
- package/public/tinymce/skins/ui/oxide/content.min.css +1 -0
- package/public/tinymce/skins/ui/oxide/skin.css +3763 -0
- package/public/tinymce/skins/ui/oxide/skin.js +2 -0
- package/public/tinymce/skins/ui/oxide/skin.min.css +1 -0
- package/public/tinymce/skins/ui/oxide/skin.shadowdom.css +30 -0
- package/public/tinymce/skins/ui/oxide/skin.shadowdom.js +2 -0
- package/public/tinymce/skins/ui/oxide/skin.shadowdom.min.css +1 -0
- package/public/tinymce/skins/ui/oxide-dark/content.css +766 -0
- package/public/tinymce/skins/ui/oxide-dark/content.inline.css +779 -0
- package/public/tinymce/skins/ui/oxide-dark/content.inline.js +2 -0
- package/public/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -0
- package/public/tinymce/skins/ui/oxide-dark/content.js +2 -0
- package/public/tinymce/skins/ui/oxide-dark/content.min.css +1 -0
- package/public/tinymce/skins/ui/oxide-dark/skin.css +3766 -0
- package/public/tinymce/skins/ui/oxide-dark/skin.js +2 -0
- package/public/tinymce/skins/ui/oxide-dark/skin.min.css +1 -0
- package/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css +30 -0
- package/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.js +2 -0
- package/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +1 -0
- package/public/tinymce/themes/silver/index.js +7 -0
- package/public/tinymce/themes/silver/theme.js +30775 -0
- package/public/tinymce/themes/silver/theme.min.js +384 -0
- package/public/tinymce/tinymce.d.ts +3238 -0
- package/public/tinymce/tinymce.js +31779 -0
- package/public/tinymce/tinymce.min.js +384 -0
- package/dist/lib/components/Editor/index copy.d.ts +0 -26
- package/dist/lib/components/Editor/index copy.js +0 -120
- /package/dist/{lib/_virtual → _virtual}/icons.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/icons.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index10.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index10.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index11.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index11.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index12.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index12.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index13.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index13.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index14.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index14.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index15.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index15.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index16.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index16.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index17.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index17.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index18.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index18.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index19.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index19.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index2.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index2.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index20.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index20.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index3.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index3.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index4.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index4.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index5.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index5.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index6.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index6.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index7.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index7.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index8.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index8.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/index9.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/index9.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/model.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/model.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/plugin.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/plugin.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/plugin2.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/plugin2.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/plugin3.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/plugin3.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/plugin4.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/plugin4.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/plugin5.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/plugin5.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/plugin6.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/plugin6.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/plugin7.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/plugin7.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/theme.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/theme.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/tinymce.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/tinymce.mjs.map +0 -0
- /package/dist/{lib/_virtual → _virtual}/tinymce2.mjs +0 -0
- /package/dist/{lib/_virtual → _virtual}/tinymce2.mjs.map +0 -0
@@ -0,0 +1,228 @@
|
|
1
|
+
/**
|
2
|
+
* TinyMCE version 6.8.5 (TBD)
|
3
|
+
*/
|
4
|
+
|
5
|
+
(function () {
|
6
|
+
'use strict';
|
7
|
+
|
8
|
+
var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager');
|
9
|
+
|
10
|
+
const link = () => /(?:[A-Za-z][A-Za-z\d.+-]{0,14}:\/\/(?:[-.~*+=!&;:'%@?^${}(),\w]+@)?|www\.|[-;:&=+$,.\w]+@)[A-Za-z\d-]+(?:\.[A-Za-z\d-]+)*(?::\d+)?(?:\/(?:[-.~*+=!;:'%@$(),\/\w]*[-~*+=%@$()\/\w])?)?(?:\?(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?(?:#(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?/g;
|
11
|
+
|
12
|
+
const option = name => editor => editor.options.get(name);
|
13
|
+
const register = editor => {
|
14
|
+
const registerOption = editor.options.register;
|
15
|
+
registerOption('autolink_pattern', {
|
16
|
+
processor: 'regexp',
|
17
|
+
default: new RegExp('^' + link().source + '$', 'i')
|
18
|
+
});
|
19
|
+
registerOption('link_default_target', { processor: 'string' });
|
20
|
+
registerOption('link_default_protocol', {
|
21
|
+
processor: 'string',
|
22
|
+
default: 'https'
|
23
|
+
});
|
24
|
+
};
|
25
|
+
const getAutoLinkPattern = option('autolink_pattern');
|
26
|
+
const getDefaultLinkTarget = option('link_default_target');
|
27
|
+
const getDefaultLinkProtocol = option('link_default_protocol');
|
28
|
+
const allowUnsafeLinkTarget = option('allow_unsafe_link_target');
|
29
|
+
|
30
|
+
const hasProto = (v, constructor, predicate) => {
|
31
|
+
var _a;
|
32
|
+
if (predicate(v, constructor.prototype)) {
|
33
|
+
return true;
|
34
|
+
} else {
|
35
|
+
return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;
|
36
|
+
}
|
37
|
+
};
|
38
|
+
const typeOf = x => {
|
39
|
+
const t = typeof x;
|
40
|
+
if (x === null) {
|
41
|
+
return 'null';
|
42
|
+
} else if (t === 'object' && Array.isArray(x)) {
|
43
|
+
return 'array';
|
44
|
+
} else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {
|
45
|
+
return 'string';
|
46
|
+
} else {
|
47
|
+
return t;
|
48
|
+
}
|
49
|
+
};
|
50
|
+
const isType = type => value => typeOf(value) === type;
|
51
|
+
const eq = t => a => t === a;
|
52
|
+
const isString = isType('string');
|
53
|
+
const isUndefined = eq(undefined);
|
54
|
+
const isNullable = a => a === null || a === undefined;
|
55
|
+
const isNonNullable = a => !isNullable(a);
|
56
|
+
|
57
|
+
const not = f => t => !f(t);
|
58
|
+
|
59
|
+
const hasOwnProperty = Object.hasOwnProperty;
|
60
|
+
const has = (obj, key) => hasOwnProperty.call(obj, key);
|
61
|
+
|
62
|
+
const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;
|
63
|
+
const contains = (str, substr, start = 0, end) => {
|
64
|
+
const idx = str.indexOf(substr, start);
|
65
|
+
if (idx !== -1) {
|
66
|
+
return isUndefined(end) ? true : idx + substr.length <= end;
|
67
|
+
} else {
|
68
|
+
return false;
|
69
|
+
}
|
70
|
+
};
|
71
|
+
const startsWith = (str, prefix) => {
|
72
|
+
return checkRange(str, prefix, 0);
|
73
|
+
};
|
74
|
+
|
75
|
+
const zeroWidth = '\uFEFF';
|
76
|
+
const isZwsp = char => char === zeroWidth;
|
77
|
+
const removeZwsp = s => s.replace(/\uFEFF/g, '');
|
78
|
+
|
79
|
+
var global = tinymce.util.Tools.resolve('tinymce.dom.TextSeeker');
|
80
|
+
|
81
|
+
const isTextNode = node => node.nodeType === 3;
|
82
|
+
const isElement = node => node.nodeType === 1;
|
83
|
+
const isBracketOrSpace = char => /^[(\[{ \u00a0]$/.test(char);
|
84
|
+
const hasProtocol = url => /^([A-Za-z][A-Za-z\d.+-]*:\/\/)|mailto:/.test(url);
|
85
|
+
const isPunctuation = char => /[?!,.;:]/.test(char);
|
86
|
+
const findChar = (text, index, predicate) => {
|
87
|
+
for (let i = index - 1; i >= 0; i--) {
|
88
|
+
const char = text.charAt(i);
|
89
|
+
if (!isZwsp(char) && predicate(char)) {
|
90
|
+
return i;
|
91
|
+
}
|
92
|
+
}
|
93
|
+
return -1;
|
94
|
+
};
|
95
|
+
const freefallRtl = (container, offset) => {
|
96
|
+
let tempNode = container;
|
97
|
+
let tempOffset = offset;
|
98
|
+
while (isElement(tempNode) && tempNode.childNodes[tempOffset]) {
|
99
|
+
tempNode = tempNode.childNodes[tempOffset];
|
100
|
+
tempOffset = isTextNode(tempNode) ? tempNode.data.length : tempNode.childNodes.length;
|
101
|
+
}
|
102
|
+
return {
|
103
|
+
container: tempNode,
|
104
|
+
offset: tempOffset
|
105
|
+
};
|
106
|
+
};
|
107
|
+
|
108
|
+
const parseCurrentLine = (editor, offset) => {
|
109
|
+
var _a;
|
110
|
+
const voidElements = editor.schema.getVoidElements();
|
111
|
+
const autoLinkPattern = getAutoLinkPattern(editor);
|
112
|
+
const {dom, selection} = editor;
|
113
|
+
if (dom.getParent(selection.getNode(), 'a[href]') !== null) {
|
114
|
+
return null;
|
115
|
+
}
|
116
|
+
const rng = selection.getRng();
|
117
|
+
const textSeeker = global(dom, node => {
|
118
|
+
return dom.isBlock(node) || has(voidElements, node.nodeName.toLowerCase()) || dom.getContentEditable(node) === 'false';
|
119
|
+
});
|
120
|
+
const {
|
121
|
+
container: endContainer,
|
122
|
+
offset: endOffset
|
123
|
+
} = freefallRtl(rng.endContainer, rng.endOffset);
|
124
|
+
const root = (_a = dom.getParent(endContainer, dom.isBlock)) !== null && _a !== void 0 ? _a : dom.getRoot();
|
125
|
+
const endSpot = textSeeker.backwards(endContainer, endOffset + offset, (node, offset) => {
|
126
|
+
const text = node.data;
|
127
|
+
const idx = findChar(text, offset, not(isBracketOrSpace));
|
128
|
+
return idx === -1 || isPunctuation(text[idx]) ? idx : idx + 1;
|
129
|
+
}, root);
|
130
|
+
if (!endSpot) {
|
131
|
+
return null;
|
132
|
+
}
|
133
|
+
let lastTextNode = endSpot.container;
|
134
|
+
const startSpot = textSeeker.backwards(endSpot.container, endSpot.offset, (node, offset) => {
|
135
|
+
lastTextNode = node;
|
136
|
+
const idx = findChar(node.data, offset, isBracketOrSpace);
|
137
|
+
return idx === -1 ? idx : idx + 1;
|
138
|
+
}, root);
|
139
|
+
const newRng = dom.createRng();
|
140
|
+
if (!startSpot) {
|
141
|
+
newRng.setStart(lastTextNode, 0);
|
142
|
+
} else {
|
143
|
+
newRng.setStart(startSpot.container, startSpot.offset);
|
144
|
+
}
|
145
|
+
newRng.setEnd(endSpot.container, endSpot.offset);
|
146
|
+
const rngText = removeZwsp(newRng.toString());
|
147
|
+
const matches = rngText.match(autoLinkPattern);
|
148
|
+
if (matches) {
|
149
|
+
let url = matches[0];
|
150
|
+
if (startsWith(url, 'www.')) {
|
151
|
+
const protocol = getDefaultLinkProtocol(editor);
|
152
|
+
url = protocol + '://' + url;
|
153
|
+
} else if (contains(url, '@') && !hasProtocol(url)) {
|
154
|
+
url = 'mailto:' + url;
|
155
|
+
}
|
156
|
+
return {
|
157
|
+
rng: newRng,
|
158
|
+
url
|
159
|
+
};
|
160
|
+
} else {
|
161
|
+
return null;
|
162
|
+
}
|
163
|
+
};
|
164
|
+
const convertToLink = (editor, result) => {
|
165
|
+
const {dom, selection} = editor;
|
166
|
+
const {rng, url} = result;
|
167
|
+
const bookmark = selection.getBookmark();
|
168
|
+
selection.setRng(rng);
|
169
|
+
const command = 'createlink';
|
170
|
+
const args = {
|
171
|
+
command,
|
172
|
+
ui: false,
|
173
|
+
value: url
|
174
|
+
};
|
175
|
+
const beforeExecEvent = editor.dispatch('BeforeExecCommand', args);
|
176
|
+
if (!beforeExecEvent.isDefaultPrevented()) {
|
177
|
+
editor.getDoc().execCommand(command, false, url);
|
178
|
+
editor.dispatch('ExecCommand', args);
|
179
|
+
const defaultLinkTarget = getDefaultLinkTarget(editor);
|
180
|
+
if (isString(defaultLinkTarget)) {
|
181
|
+
const anchor = selection.getNode();
|
182
|
+
dom.setAttrib(anchor, 'target', defaultLinkTarget);
|
183
|
+
if (defaultLinkTarget === '_blank' && !allowUnsafeLinkTarget(editor)) {
|
184
|
+
dom.setAttrib(anchor, 'rel', 'noopener');
|
185
|
+
}
|
186
|
+
}
|
187
|
+
}
|
188
|
+
selection.moveToBookmark(bookmark);
|
189
|
+
editor.nodeChanged();
|
190
|
+
};
|
191
|
+
const handleSpacebar = editor => {
|
192
|
+
const result = parseCurrentLine(editor, -1);
|
193
|
+
if (isNonNullable(result)) {
|
194
|
+
convertToLink(editor, result);
|
195
|
+
}
|
196
|
+
};
|
197
|
+
const handleBracket = handleSpacebar;
|
198
|
+
const handleEnter = editor => {
|
199
|
+
const result = parseCurrentLine(editor, 0);
|
200
|
+
if (isNonNullable(result)) {
|
201
|
+
convertToLink(editor, result);
|
202
|
+
}
|
203
|
+
};
|
204
|
+
const setup = editor => {
|
205
|
+
editor.on('keydown', e => {
|
206
|
+
if (e.keyCode === 13 && !e.isDefaultPrevented()) {
|
207
|
+
handleEnter(editor);
|
208
|
+
}
|
209
|
+
});
|
210
|
+
editor.on('keyup', e => {
|
211
|
+
if (e.keyCode === 32) {
|
212
|
+
handleSpacebar(editor);
|
213
|
+
} else if (e.keyCode === 48 && e.shiftKey || e.keyCode === 221) {
|
214
|
+
handleBracket(editor);
|
215
|
+
}
|
216
|
+
});
|
217
|
+
};
|
218
|
+
|
219
|
+
var Plugin = () => {
|
220
|
+
global$1.add('autolink', editor => {
|
221
|
+
register(editor);
|
222
|
+
setup(editor);
|
223
|
+
});
|
224
|
+
};
|
225
|
+
|
226
|
+
Plugin();
|
227
|
+
|
228
|
+
})();
|
@@ -0,0 +1,4 @@
|
|
1
|
+
/**
|
2
|
+
* TinyMCE version 6.8.5 (TBD)
|
3
|
+
*/
|
4
|
+
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>t.options.get(e),n=t("autolink_pattern"),o=t("link_default_target"),r=t("link_default_protocol"),a=t("allow_unsafe_link_target"),s=("string",e=>"string"===(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=o=e,(r=String).prototype.isPrototypeOf(n)||(null===(a=o.constructor)||void 0===a?void 0:a.name)===r.name)?"string":t;var n,o,r,a})(e));const l=(void 0,e=>undefined===e);const i=e=>!(e=>null==e)(e),c=Object.hasOwnProperty,d=e=>"\ufeff"===e;var u=tinymce.util.Tools.resolve("tinymce.dom.TextSeeker");const f=e=>/^[(\[{ \u00a0]$/.test(e),g=(e,t,n)=>{for(let o=t-1;o>=0;o--){const t=e.charAt(o);if(!d(t)&&n(t))return o}return-1},m=(e,t)=>{var o;const a=e.schema.getVoidElements(),s=n(e),{dom:i,selection:d}=e;if(null!==i.getParent(d.getNode(),"a[href]"))return null;const m=d.getRng(),k=u(i,(e=>{return i.isBlock(e)||(t=a,n=e.nodeName.toLowerCase(),c.call(t,n))||"false"===i.getContentEditable(e);var t,n})),{container:p,offset:y}=((e,t)=>{let n=e,o=t;for(;1===n.nodeType&&n.childNodes[o];)n=n.childNodes[o],o=3===n.nodeType?n.data.length:n.childNodes.length;return{container:n,offset:o}})(m.endContainer,m.endOffset),w=null!==(o=i.getParent(p,i.isBlock))&&void 0!==o?o:i.getRoot(),h=k.backwards(p,y+t,((e,t)=>{const n=e.data,o=g(n,t,(r=f,e=>!r(e)));var r,a;return-1===o||(a=n[o],/[?!,.;:]/.test(a))?o:o+1}),w);if(!h)return null;let v=h.container;const _=k.backwards(h.container,h.offset,((e,t)=>{v=e;const n=g(e.data,t,f);return-1===n?n:n+1}),w),A=i.createRng();_?A.setStart(_.container,_.offset):A.setStart(v,0),A.setEnd(h.container,h.offset);const C=A.toString().replace(/\uFEFF/g,"").match(s);if(C){let t=C[0];return $="www.",(b=t).length>=4&&b.substr(0,4)===$?t=r(e)+"://"+t:((e,t,n=0,o)=>{const r=e.indexOf(t,n);return-1!==r&&(!!l(o)||r+t.length<=o)})(t,"@")&&!(e=>/^([A-Za-z][A-Za-z\d.+-]*:\/\/)|mailto:/.test(e))(t)&&(t="mailto:"+t),{rng:A,url:t}}var b,$;return null},k=(e,t)=>{const{dom:n,selection:r}=e,{rng:l,url:i}=t,c=r.getBookmark();r.setRng(l);const d="createlink",u={command:d,ui:!1,value:i};if(!e.dispatch("BeforeExecCommand",u).isDefaultPrevented()){e.getDoc().execCommand(d,!1,i),e.dispatch("ExecCommand",u);const t=o(e);if(s(t)){const o=r.getNode();n.setAttrib(o,"target",t),"_blank"!==t||a(e)||n.setAttrib(o,"rel","noopener")}}r.moveToBookmark(c),e.nodeChanged()},p=e=>{const t=m(e,-1);i(t)&&k(e,t)},y=p;e.add("autolink",(e=>{(e=>{const t=e.options.register;t("autolink_pattern",{processor:"regexp",default:new RegExp("^"+/(?:[A-Za-z][A-Za-z\d.+-]{0,14}:\/\/(?:[-.~*+=!&;:'%@?^${}(),\w]+@)?|www\.|[-;:&=+$,.\w]+@)[A-Za-z\d-]+(?:\.[A-Za-z\d-]+)*(?::\d+)?(?:\/(?:[-.~*+=!;:'%@$(),\/\w]*[-~*+=%@$()\/\w])?)?(?:\?(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?(?:#(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?/g.source+"$","i")}),t("link_default_target",{processor:"string"}),t("link_default_protocol",{processor:"string",default:"https"})})(e),(e=>{e.on("keydown",(t=>{13!==t.keyCode||t.isDefaultPrevented()||(e=>{const t=m(e,0);i(t)&&k(e,t)})(e)})),e.on("keyup",(t=>{32===t.keyCode?p(e):(48===t.keyCode&&t.shiftKey||221===t.keyCode)&&y(e)}))})(e)}))}();
|
@@ -0,0 +1,85 @@
|
|
1
|
+
/**
|
2
|
+
* TinyMCE version 6.8.5 (TBD)
|
3
|
+
*/
|
4
|
+
|
5
|
+
(function () {
|
6
|
+
'use strict';
|
7
|
+
|
8
|
+
var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
|
9
|
+
|
10
|
+
const setContent = (editor, html) => {
|
11
|
+
editor.focus();
|
12
|
+
editor.undoManager.transact(() => {
|
13
|
+
editor.setContent(html);
|
14
|
+
});
|
15
|
+
editor.selection.setCursorLocation();
|
16
|
+
editor.nodeChanged();
|
17
|
+
};
|
18
|
+
const getContent = editor => {
|
19
|
+
return editor.getContent({ source_view: true });
|
20
|
+
};
|
21
|
+
|
22
|
+
const open = editor => {
|
23
|
+
const editorContent = getContent(editor);
|
24
|
+
editor.windowManager.open({
|
25
|
+
title: 'Source Code',
|
26
|
+
size: 'large',
|
27
|
+
body: {
|
28
|
+
type: 'panel',
|
29
|
+
items: [{
|
30
|
+
type: 'textarea',
|
31
|
+
name: 'code'
|
32
|
+
}]
|
33
|
+
},
|
34
|
+
buttons: [
|
35
|
+
{
|
36
|
+
type: 'cancel',
|
37
|
+
name: 'cancel',
|
38
|
+
text: 'Cancel'
|
39
|
+
},
|
40
|
+
{
|
41
|
+
type: 'submit',
|
42
|
+
name: 'save',
|
43
|
+
text: 'Save',
|
44
|
+
primary: true
|
45
|
+
}
|
46
|
+
],
|
47
|
+
initialData: { code: editorContent },
|
48
|
+
onSubmit: api => {
|
49
|
+
setContent(editor, api.getData().code);
|
50
|
+
api.close();
|
51
|
+
}
|
52
|
+
});
|
53
|
+
};
|
54
|
+
|
55
|
+
const register$1 = editor => {
|
56
|
+
editor.addCommand('mceCodeEditor', () => {
|
57
|
+
open(editor);
|
58
|
+
});
|
59
|
+
};
|
60
|
+
|
61
|
+
const register = editor => {
|
62
|
+
const onAction = () => editor.execCommand('mceCodeEditor');
|
63
|
+
editor.ui.registry.addButton('code', {
|
64
|
+
icon: 'sourcecode',
|
65
|
+
tooltip: 'Source code',
|
66
|
+
onAction
|
67
|
+
});
|
68
|
+
editor.ui.registry.addMenuItem('code', {
|
69
|
+
icon: 'sourcecode',
|
70
|
+
text: 'Source code',
|
71
|
+
onAction
|
72
|
+
});
|
73
|
+
};
|
74
|
+
|
75
|
+
var Plugin = () => {
|
76
|
+
global.add('code', editor => {
|
77
|
+
register$1(editor);
|
78
|
+
register(editor);
|
79
|
+
return {};
|
80
|
+
});
|
81
|
+
};
|
82
|
+
|
83
|
+
Plugin();
|
84
|
+
|
85
|
+
})();
|
@@ -0,0 +1,4 @@
|
|
1
|
+
/**
|
2
|
+
* TinyMCE version 6.8.5 (TBD)
|
3
|
+
*/
|
4
|
+
!function(){"use strict";tinymce.util.Tools.resolve("tinymce.PluginManager").add("code",(e=>((e=>{e.addCommand("mceCodeEditor",(()=>{(e=>{const o=(e=>e.getContent({source_view:!0}))(e);e.windowManager.open({title:"Source Code",size:"large",body:{type:"panel",items:[{type:"textarea",name:"code"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{code:o},onSubmit:o=>{((e,o)=>{e.focus(),e.undoManager.transact((()=>{e.setContent(o)})),e.selection.setCursorLocation(),e.nodeChanged()})(e,o.getData().code),o.close()}})})(e)}))})(e),(e=>{const o=()=>e.execCommand("mceCodeEditor");e.ui.registry.addButton("code",{icon:"sourcecode",tooltip:"Source code",onAction:o}),e.ui.registry.addMenuItem("code",{icon:"sourcecode",text:"Source code",onAction:o})})(e),{})))}();
|