@lotte-innovate/ui-component-test 0.0.106 → 0.0.108

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. package/dist/lib/components/Editor/index.js +1 -1
  2. package/dist/lib/components/Editor/index.mjs +1 -1
  3. package/dist/lib/tsconfig.tsbuildinfo +1 -1
  4. package/dist/public/tinymce/icons/default/icons.d.ts +0 -0
  5. package/dist/public/tinymce/icons/default/icons.js +195 -0
  6. package/dist/public/tinymce/icons/default/index.d.ts +1 -0
  7. package/dist/public/tinymce/icons/default/index.js +8 -0
  8. package/dist/public/tinymce/models/dom/index.d.ts +1 -0
  9. package/dist/public/tinymce/models/dom/index.js +8 -0
  10. package/dist/public/tinymce/models/dom/model.d.ts +0 -0
  11. package/dist/public/tinymce/models/dom/model.js +7988 -0
  12. package/dist/public/tinymce/plugins/advlist/index.d.ts +1 -0
  13. package/dist/public/tinymce/plugins/advlist/index.js +8 -0
  14. package/dist/public/tinymce/plugins/advlist/plugin.d.ts +0 -0
  15. package/dist/public/tinymce/plugins/advlist/plugin.js +255 -0
  16. package/dist/public/tinymce/plugins/autolink/index.d.ts +1 -0
  17. package/dist/public/tinymce/plugins/autolink/index.js +8 -0
  18. package/dist/public/tinymce/plugins/autolink/plugin.d.ts +0 -0
  19. package/dist/public/tinymce/plugins/autolink/plugin.js +221 -0
  20. package/dist/public/tinymce/plugins/code/index.d.ts +1 -0
  21. package/dist/public/tinymce/plugins/code/index.js +8 -0
  22. package/dist/public/tinymce/plugins/code/plugin.d.ts +0 -0
  23. package/dist/public/tinymce/plugins/code/plugin.js +77 -0
  24. package/dist/public/tinymce/plugins/codesample/index.d.ts +1 -0
  25. package/dist/public/tinymce/plugins/codesample/index.js +8 -0
  26. package/dist/public/tinymce/plugins/codesample/plugin.d.ts +45 -0
  27. package/dist/public/tinymce/plugins/codesample/plugin.js +2462 -0
  28. package/dist/public/tinymce/plugins/image/index.d.ts +1 -0
  29. package/dist/public/tinymce/plugins/image/index.js +8 -0
  30. package/dist/public/tinymce/plugins/image/plugin.d.ts +0 -0
  31. package/dist/public/tinymce/plugins/image/plugin.js +1523 -0
  32. package/dist/public/tinymce/plugins/link/index.d.ts +1 -0
  33. package/dist/public/tinymce/plugins/link/index.js +8 -0
  34. package/dist/public/tinymce/plugins/link/plugin.d.ts +0 -0
  35. package/dist/public/tinymce/plugins/link/plugin.js +1246 -0
  36. package/dist/public/tinymce/plugins/lists/index.d.ts +1 -0
  37. package/dist/public/tinymce/plugins/lists/index.js +8 -0
  38. package/dist/public/tinymce/plugins/lists/plugin.d.ts +0 -0
  39. package/dist/public/tinymce/plugins/lists/plugin.js +2191 -0
  40. package/dist/public/tinymce/plugins/table/index.d.ts +1 -0
  41. package/dist/public/tinymce/plugins/table/index.js +8 -0
  42. package/dist/public/tinymce/plugins/table/plugin.d.ts +0 -0
  43. package/dist/public/tinymce/plugins/table/plugin.js +3399 -0
  44. package/dist/public/tinymce/skins/content/default/content.d.ts +0 -0
  45. package/dist/public/tinymce/skins/content/default/content.js +3 -0
  46. package/dist/public/tinymce/skins/ui/oxide/content.d.ts +0 -0
  47. package/dist/public/tinymce/skins/ui/oxide/content.inline.d.ts +0 -0
  48. package/dist/public/tinymce/skins/ui/oxide/content.inline.js +3 -0
  49. package/dist/public/tinymce/skins/ui/oxide/content.js +3 -0
  50. package/dist/public/tinymce/skins/ui/oxide/skin.d.ts +0 -0
  51. package/dist/public/tinymce/skins/ui/oxide/skin.js +3 -0
  52. package/dist/public/tinymce/skins/ui/oxide/skin.shadowdom.d.ts +0 -0
  53. package/dist/public/tinymce/skins/ui/oxide/skin.shadowdom.js +3 -0
  54. package/dist/public/tinymce/skins/ui/oxide-dark/content.d.ts +0 -0
  55. package/dist/public/tinymce/skins/ui/oxide-dark/content.inline.d.ts +0 -0
  56. package/dist/public/tinymce/skins/ui/oxide-dark/content.inline.js +3 -0
  57. package/dist/public/tinymce/skins/ui/oxide-dark/content.js +3 -0
  58. package/dist/public/tinymce/skins/ui/oxide-dark/skin.d.ts +0 -0
  59. package/dist/public/tinymce/skins/ui/oxide-dark/skin.js +3 -0
  60. package/dist/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.d.ts +0 -0
  61. package/dist/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.js +3 -0
  62. package/dist/public/tinymce/themes/silver/index.d.ts +1 -0
  63. package/dist/public/tinymce/themes/silver/index.js +8 -0
  64. package/dist/public/tinymce/themes/silver/theme.d.ts +0 -0
  65. package/dist/public/tinymce/themes/silver/theme.js +29731 -0
  66. package/dist/public/tinymce/tinymce.d.ts +1 -0
  67. package/dist/public/tinymce/tinymce.js +31974 -0
  68. package/dist/tsconfig.tsbuildinfo +1 -1
  69. package/package.json +1 -1
@@ -0,0 +1,2191 @@
1
+ "use strict";
2
+ /**
3
+ * TinyMCE version 6.8.5 (TBD)
4
+ */
5
+ var __assign = (this && this.__assign) || function () {
6
+ __assign = Object.assign || function(t) {
7
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
8
+ s = arguments[i];
9
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
10
+ t[p] = s[p];
11
+ }
12
+ return t;
13
+ };
14
+ return __assign.apply(this, arguments);
15
+ };
16
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
17
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
18
+ if (ar || !(i in from)) {
19
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
20
+ ar[i] = from[i];
21
+ }
22
+ }
23
+ return to.concat(ar || Array.prototype.slice.call(from));
24
+ };
25
+ (function () {
26
+ 'use strict';
27
+ var global$7 = tinymce.util.Tools.resolve('tinymce.PluginManager');
28
+ var hasProto = function (v, constructor, predicate) {
29
+ var _a;
30
+ if (predicate(v, constructor.prototype)) {
31
+ return true;
32
+ }
33
+ else {
34
+ return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;
35
+ }
36
+ };
37
+ var typeOf = function (x) {
38
+ var t = typeof x;
39
+ if (x === null) {
40
+ return 'null';
41
+ }
42
+ else if (t === 'object' && Array.isArray(x)) {
43
+ return 'array';
44
+ }
45
+ else if (t === 'object' && hasProto(x, String, function (o, proto) { return proto.isPrototypeOf(o); })) {
46
+ return 'string';
47
+ }
48
+ else {
49
+ return t;
50
+ }
51
+ };
52
+ var isType$1 = function (type) { return function (value) { return typeOf(value) === type; }; };
53
+ var isSimpleType = function (type) { return function (value) { return typeof value === type; }; };
54
+ var isString = isType$1('string');
55
+ var isObject = isType$1('object');
56
+ var isArray = isType$1('array');
57
+ var isBoolean = isSimpleType('boolean');
58
+ var isNullable = function (a) { return a === null || a === undefined; };
59
+ var isNonNullable = function (a) { return !isNullable(a); };
60
+ var isFunction = isSimpleType('function');
61
+ var isNumber = isSimpleType('number');
62
+ var noop = function () {
63
+ };
64
+ var compose1 = function (fbc, fab) { return function (a) { return fbc(fab(a)); }; };
65
+ var constant = function (value) {
66
+ return function () {
67
+ return value;
68
+ };
69
+ };
70
+ var tripleEquals = function (a, b) {
71
+ return a === b;
72
+ };
73
+ function curry(fn) {
74
+ var initialArgs = [];
75
+ for (var _i = 1; _i < arguments.length; _i++) {
76
+ initialArgs[_i - 1] = arguments[_i];
77
+ }
78
+ return function () {
79
+ var restArgs = [];
80
+ for (var _i = 0; _i < arguments.length; _i++) {
81
+ restArgs[_i] = arguments[_i];
82
+ }
83
+ var all = initialArgs.concat(restArgs);
84
+ return fn.apply(null, all);
85
+ };
86
+ }
87
+ var not = function (f) { return function (t) { return !f(t); }; };
88
+ var never = constant(false);
89
+ var Optional = /** @class */ (function () {
90
+ function Optional(tag, value) {
91
+ this.tag = tag;
92
+ this.value = value;
93
+ }
94
+ Optional.some = function (value) {
95
+ return new Optional(true, value);
96
+ };
97
+ Optional.none = function () {
98
+ return Optional.singletonNone;
99
+ };
100
+ Optional.prototype.fold = function (onNone, onSome) {
101
+ if (this.tag) {
102
+ return onSome(this.value);
103
+ }
104
+ else {
105
+ return onNone();
106
+ }
107
+ };
108
+ Optional.prototype.isSome = function () {
109
+ return this.tag;
110
+ };
111
+ Optional.prototype.isNone = function () {
112
+ return !this.tag;
113
+ };
114
+ Optional.prototype.map = function (mapper) {
115
+ if (this.tag) {
116
+ return Optional.some(mapper(this.value));
117
+ }
118
+ else {
119
+ return Optional.none();
120
+ }
121
+ };
122
+ Optional.prototype.bind = function (binder) {
123
+ if (this.tag) {
124
+ return binder(this.value);
125
+ }
126
+ else {
127
+ return Optional.none();
128
+ }
129
+ };
130
+ Optional.prototype.exists = function (predicate) {
131
+ return this.tag && predicate(this.value);
132
+ };
133
+ Optional.prototype.forall = function (predicate) {
134
+ return !this.tag || predicate(this.value);
135
+ };
136
+ Optional.prototype.filter = function (predicate) {
137
+ if (!this.tag || predicate(this.value)) {
138
+ return this;
139
+ }
140
+ else {
141
+ return Optional.none();
142
+ }
143
+ };
144
+ Optional.prototype.getOr = function (replacement) {
145
+ return this.tag ? this.value : replacement;
146
+ };
147
+ Optional.prototype.or = function (replacement) {
148
+ return this.tag ? this : replacement;
149
+ };
150
+ Optional.prototype.getOrThunk = function (thunk) {
151
+ return this.tag ? this.value : thunk();
152
+ };
153
+ Optional.prototype.orThunk = function (thunk) {
154
+ return this.tag ? this : thunk();
155
+ };
156
+ Optional.prototype.getOrDie = function (message) {
157
+ if (!this.tag) {
158
+ throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');
159
+ }
160
+ else {
161
+ return this.value;
162
+ }
163
+ };
164
+ Optional.from = function (value) {
165
+ return isNonNullable(value) ? Optional.some(value) : Optional.none();
166
+ };
167
+ Optional.prototype.getOrNull = function () {
168
+ return this.tag ? this.value : null;
169
+ };
170
+ Optional.prototype.getOrUndefined = function () {
171
+ return this.value;
172
+ };
173
+ Optional.prototype.each = function (worker) {
174
+ if (this.tag) {
175
+ worker(this.value);
176
+ }
177
+ };
178
+ Optional.prototype.toArray = function () {
179
+ return this.tag ? [this.value] : [];
180
+ };
181
+ Optional.prototype.toString = function () {
182
+ return this.tag ? "some(".concat(this.value, ")") : 'none()';
183
+ };
184
+ return Optional;
185
+ }());
186
+ Optional.singletonNone = new Optional(false);
187
+ var nativeSlice = Array.prototype.slice;
188
+ var nativeIndexOf = Array.prototype.indexOf;
189
+ var nativePush = Array.prototype.push;
190
+ var rawIndexOf = function (ts, t) { return nativeIndexOf.call(ts, t); };
191
+ var contains$1 = function (xs, x) { return rawIndexOf(xs, x) > -1; };
192
+ var exists = function (xs, pred) {
193
+ for (var i = 0, len = xs.length; i < len; i++) {
194
+ var x = xs[i];
195
+ if (pred(x, i)) {
196
+ return true;
197
+ }
198
+ }
199
+ return false;
200
+ };
201
+ var map = function (xs, f) {
202
+ var len = xs.length;
203
+ var r = new Array(len);
204
+ for (var i = 0; i < len; i++) {
205
+ var x = xs[i];
206
+ r[i] = f(x, i);
207
+ }
208
+ return r;
209
+ };
210
+ var each$1 = function (xs, f) {
211
+ for (var i = 0, len = xs.length; i < len; i++) {
212
+ var x = xs[i];
213
+ f(x, i);
214
+ }
215
+ };
216
+ var filter$1 = function (xs, pred) {
217
+ var r = [];
218
+ for (var i = 0, len = xs.length; i < len; i++) {
219
+ var x = xs[i];
220
+ if (pred(x, i)) {
221
+ r.push(x);
222
+ }
223
+ }
224
+ return r;
225
+ };
226
+ var groupBy = function (xs, f) {
227
+ if (xs.length === 0) {
228
+ return [];
229
+ }
230
+ else {
231
+ var wasType = f(xs[0]);
232
+ var r = [];
233
+ var group = [];
234
+ for (var i = 0, len = xs.length; i < len; i++) {
235
+ var x = xs[i];
236
+ var type_1 = f(x);
237
+ if (type_1 !== wasType) {
238
+ r.push(group);
239
+ group = [];
240
+ }
241
+ wasType = type_1;
242
+ group.push(x);
243
+ }
244
+ if (group.length !== 0) {
245
+ r.push(group);
246
+ }
247
+ return r;
248
+ }
249
+ };
250
+ var foldl = function (xs, f, acc) {
251
+ each$1(xs, function (x, i) {
252
+ acc = f(acc, x, i);
253
+ });
254
+ return acc;
255
+ };
256
+ var findUntil = function (xs, pred, until) {
257
+ for (var i = 0, len = xs.length; i < len; i++) {
258
+ var x = xs[i];
259
+ if (pred(x, i)) {
260
+ return Optional.some(x);
261
+ }
262
+ else if (until(x, i)) {
263
+ break;
264
+ }
265
+ }
266
+ return Optional.none();
267
+ };
268
+ var find = function (xs, pred) {
269
+ return findUntil(xs, pred, never);
270
+ };
271
+ var flatten = function (xs) {
272
+ var r = [];
273
+ for (var i = 0, len = xs.length; i < len; ++i) {
274
+ if (!isArray(xs[i])) {
275
+ throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);
276
+ }
277
+ nativePush.apply(r, xs[i]);
278
+ }
279
+ return r;
280
+ };
281
+ var bind = function (xs, f) { return flatten(map(xs, f)); };
282
+ var reverse = function (xs) {
283
+ var r = nativeSlice.call(xs, 0);
284
+ r.reverse();
285
+ return r;
286
+ };
287
+ var get$1 = function (xs, i) { return i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none(); };
288
+ var head = function (xs) { return get$1(xs, 0); };
289
+ var last = function (xs) { return get$1(xs, xs.length - 1); };
290
+ var unique = function (xs, comparator) {
291
+ var r = [];
292
+ var isDuplicated = isFunction(comparator) ? function (x) { return exists(r, function (i) { return comparator(i, x); }); } : function (x) { return contains$1(r, x); };
293
+ for (var i = 0, len = xs.length; i < len; i++) {
294
+ var x = xs[i];
295
+ if (!isDuplicated(x)) {
296
+ r.push(x);
297
+ }
298
+ }
299
+ return r;
300
+ };
301
+ var is$2 = function (lhs, rhs, comparator) {
302
+ if (comparator === void 0) { comparator = tripleEquals; }
303
+ return lhs.exists(function (left) { return comparator(left, rhs); });
304
+ };
305
+ var equals = function (lhs, rhs, comparator) {
306
+ if (comparator === void 0) { comparator = tripleEquals; }
307
+ return lift2(lhs, rhs, comparator).getOr(lhs.isNone() && rhs.isNone());
308
+ };
309
+ var lift2 = function (oa, ob, f) { return oa.isSome() && ob.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie())) : Optional.none(); };
310
+ var COMMENT = 8;
311
+ var DOCUMENT = 9;
312
+ var DOCUMENT_FRAGMENT = 11;
313
+ var ELEMENT = 1;
314
+ var TEXT = 3;
315
+ var fromHtml = function (html, scope) {
316
+ var doc = scope || document;
317
+ var div = doc.createElement('div');
318
+ div.innerHTML = html;
319
+ if (!div.hasChildNodes() || div.childNodes.length > 1) {
320
+ var message = 'HTML does not have a single root node';
321
+ console.error(message, html);
322
+ throw new Error(message);
323
+ }
324
+ return fromDom$1(div.childNodes[0]);
325
+ };
326
+ var fromTag = function (tag, scope) {
327
+ var doc = scope || document;
328
+ var node = doc.createElement(tag);
329
+ return fromDom$1(node);
330
+ };
331
+ var fromText = function (text, scope) {
332
+ var doc = scope || document;
333
+ var node = doc.createTextNode(text);
334
+ return fromDom$1(node);
335
+ };
336
+ var fromDom$1 = function (node) {
337
+ if (node === null || node === undefined) {
338
+ throw new Error('Node cannot be null or undefined');
339
+ }
340
+ return { dom: node };
341
+ };
342
+ var fromPoint = function (docElm, x, y) { return Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom$1); };
343
+ var SugarElement = {
344
+ fromHtml: fromHtml,
345
+ fromTag: fromTag,
346
+ fromText: fromText,
347
+ fromDom: fromDom$1,
348
+ fromPoint: fromPoint
349
+ };
350
+ var is$1 = function (element, selector) {
351
+ var dom = element.dom;
352
+ if (dom.nodeType !== ELEMENT) {
353
+ return false;
354
+ }
355
+ else {
356
+ var elem = dom;
357
+ if (elem.matches !== undefined) {
358
+ return elem.matches(selector);
359
+ }
360
+ else if (elem.msMatchesSelector !== undefined) {
361
+ return elem.msMatchesSelector(selector);
362
+ }
363
+ else if (elem.webkitMatchesSelector !== undefined) {
364
+ return elem.webkitMatchesSelector(selector);
365
+ }
366
+ else if (elem.mozMatchesSelector !== undefined) {
367
+ return elem.mozMatchesSelector(selector);
368
+ }
369
+ else {
370
+ throw new Error('Browser lacks native selectors');
371
+ }
372
+ }
373
+ };
374
+ var eq = function (e1, e2) { return e1.dom === e2.dom; };
375
+ var contains = function (e1, e2) {
376
+ var d1 = e1.dom;
377
+ var d2 = e2.dom;
378
+ return d1 === d2 ? false : d1.contains(d2);
379
+ };
380
+ var is = is$1;
381
+ var Global = typeof window !== 'undefined' ? window : Function('return this;')();
382
+ var path = function (parts, scope) {
383
+ var o = scope !== undefined && scope !== null ? scope : Global;
384
+ for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i) {
385
+ o = o[parts[i]];
386
+ }
387
+ return o;
388
+ };
389
+ var resolve = function (p, scope) {
390
+ var parts = p.split('.');
391
+ return path(parts, scope);
392
+ };
393
+ var unsafe = function (name, scope) {
394
+ return resolve(name, scope);
395
+ };
396
+ var getOrDie = function (name, scope) {
397
+ var actual = unsafe(name, scope);
398
+ if (actual === undefined || actual === null) {
399
+ throw new Error(name + ' not available on this browser');
400
+ }
401
+ return actual;
402
+ };
403
+ var getPrototypeOf = Object.getPrototypeOf;
404
+ var sandHTMLElement = function (scope) {
405
+ return getOrDie('HTMLElement', scope);
406
+ };
407
+ var isPrototypeOf = function (x) {
408
+ var scope = resolve('ownerDocument.defaultView', x);
409
+ return isObject(x) && (sandHTMLElement(scope).prototype.isPrototypeOf(x) || /^HTML\w*Element$/.test(getPrototypeOf(x).constructor.name));
410
+ };
411
+ var name = function (element) {
412
+ var r = element.dom.nodeName;
413
+ return r.toLowerCase();
414
+ };
415
+ var type = function (element) { return element.dom.nodeType; };
416
+ var isType = function (t) { return function (element) { return type(element) === t; }; };
417
+ var isComment = function (element) { return type(element) === COMMENT || name(element) === '#comment'; };
418
+ var isHTMLElement = function (element) { return isElement$1(element) && isPrototypeOf(element.dom); };
419
+ var isElement$1 = isType(ELEMENT);
420
+ var isText = isType(TEXT);
421
+ var isDocument = isType(DOCUMENT);
422
+ var isDocumentFragment = isType(DOCUMENT_FRAGMENT);
423
+ var isTag = function (tag) { return function (e) { return isElement$1(e) && name(e) === tag; }; };
424
+ var owner = function (element) { return SugarElement.fromDom(element.dom.ownerDocument); };
425
+ var documentOrOwner = function (dos) { return isDocument(dos) ? dos : owner(dos); };
426
+ var parent = function (element) { return Optional.from(element.dom.parentNode).map(SugarElement.fromDom); };
427
+ var parentElement = function (element) { return Optional.from(element.dom.parentElement).map(SugarElement.fromDom); };
428
+ var nextSibling = function (element) { return Optional.from(element.dom.nextSibling).map(SugarElement.fromDom); };
429
+ var children = function (element) { return map(element.dom.childNodes, SugarElement.fromDom); };
430
+ var child = function (element, index) {
431
+ var cs = element.dom.childNodes;
432
+ return Optional.from(cs[index]).map(SugarElement.fromDom);
433
+ };
434
+ var firstChild = function (element) { return child(element, 0); };
435
+ var lastChild = function (element) { return child(element, element.dom.childNodes.length - 1); };
436
+ var isShadowRoot = function (dos) { return isDocumentFragment(dos) && isNonNullable(dos.dom.host); };
437
+ var supported = isFunction(Element.prototype.attachShadow) && isFunction(Node.prototype.getRootNode);
438
+ var getRootNode = supported ? function (e) { return SugarElement.fromDom(e.dom.getRootNode()); } : documentOrOwner;
439
+ var getShadowRoot = function (e) {
440
+ var r = getRootNode(e);
441
+ return isShadowRoot(r) ? Optional.some(r) : Optional.none();
442
+ };
443
+ var getShadowHost = function (e) { return SugarElement.fromDom(e.dom.host); };
444
+ var inBody = function (element) {
445
+ var dom = isText(element) ? element.dom.parentNode : element.dom;
446
+ if (dom === undefined || dom === null || dom.ownerDocument === null) {
447
+ return false;
448
+ }
449
+ var doc = dom.ownerDocument;
450
+ return getShadowRoot(SugarElement.fromDom(dom)).fold(function () { return doc.body.contains(dom); }, compose1(inBody, getShadowHost));
451
+ };
452
+ var ClosestOrAncestor = function (is, ancestor, scope, a, isRoot) {
453
+ if (is(scope, a)) {
454
+ return Optional.some(scope);
455
+ }
456
+ else if (isFunction(isRoot) && isRoot(scope)) {
457
+ return Optional.none();
458
+ }
459
+ else {
460
+ return ancestor(scope, a, isRoot);
461
+ }
462
+ };
463
+ var ancestor$3 = function (scope, predicate, isRoot) {
464
+ var element = scope.dom;
465
+ var stop = isFunction(isRoot) ? isRoot : never;
466
+ while (element.parentNode) {
467
+ element = element.parentNode;
468
+ var el = SugarElement.fromDom(element);
469
+ if (predicate(el)) {
470
+ return Optional.some(el);
471
+ }
472
+ else if (stop(el)) {
473
+ break;
474
+ }
475
+ }
476
+ return Optional.none();
477
+ };
478
+ var closest$2 = function (scope, predicate, isRoot) {
479
+ var is = function (s, test) { return test(s); };
480
+ return ClosestOrAncestor(is, ancestor$3, scope, predicate, isRoot);
481
+ };
482
+ var ancestor$2 = function (scope, selector, isRoot) { return ancestor$3(scope, function (e) { return is$1(e, selector); }, isRoot); };
483
+ var closest$1 = function (scope, selector, isRoot) {
484
+ var is = function (element, selector) { return is$1(element, selector); };
485
+ return ClosestOrAncestor(is, ancestor$2, scope, selector, isRoot);
486
+ };
487
+ var closest = function (target) { return closest$1(target, '[contenteditable]'); };
488
+ var isEditable = function (element, assumeEditable) {
489
+ if (assumeEditable === void 0) { assumeEditable = false; }
490
+ if (inBody(element)) {
491
+ return element.dom.isContentEditable;
492
+ }
493
+ else {
494
+ return closest(element).fold(constant(assumeEditable), function (editable) { return getRaw(editable) === 'true'; });
495
+ }
496
+ };
497
+ var getRaw = function (element) { return element.dom.contentEditable; };
498
+ var before$1 = function (marker, element) {
499
+ var parent$1 = parent(marker);
500
+ parent$1.each(function (v) {
501
+ v.dom.insertBefore(element.dom, marker.dom);
502
+ });
503
+ };
504
+ var after = function (marker, element) {
505
+ var sibling = nextSibling(marker);
506
+ sibling.fold(function () {
507
+ var parent$1 = parent(marker);
508
+ parent$1.each(function (v) {
509
+ append$1(v, element);
510
+ });
511
+ }, function (v) {
512
+ before$1(v, element);
513
+ });
514
+ };
515
+ var prepend = function (parent, element) {
516
+ var firstChild$1 = firstChild(parent);
517
+ firstChild$1.fold(function () {
518
+ append$1(parent, element);
519
+ }, function (v) {
520
+ parent.dom.insertBefore(element.dom, v.dom);
521
+ });
522
+ };
523
+ var append$1 = function (parent, element) {
524
+ parent.dom.appendChild(element.dom);
525
+ };
526
+ var before = function (marker, elements) {
527
+ each$1(elements, function (x) {
528
+ before$1(marker, x);
529
+ });
530
+ };
531
+ var append = function (parent, elements) {
532
+ each$1(elements, function (x) {
533
+ append$1(parent, x);
534
+ });
535
+ };
536
+ var empty = function (element) {
537
+ element.dom.textContent = '';
538
+ each$1(children(element), function (rogue) {
539
+ remove(rogue);
540
+ });
541
+ };
542
+ var remove = function (element) {
543
+ var dom = element.dom;
544
+ if (dom.parentNode !== null) {
545
+ dom.parentNode.removeChild(dom);
546
+ }
547
+ };
548
+ var global$6 = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils');
549
+ var global$5 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker');
550
+ var global$4 = tinymce.util.Tools.resolve('tinymce.util.VK');
551
+ var fromDom = function (nodes) { return map(nodes, SugarElement.fromDom); };
552
+ var keys = Object.keys;
553
+ var each = function (obj, f) {
554
+ var props = keys(obj);
555
+ for (var k = 0, len = props.length; k < len; k++) {
556
+ var i = props[k];
557
+ var x = obj[i];
558
+ f(x, i);
559
+ }
560
+ };
561
+ var objAcc = function (r) { return function (x, i) {
562
+ r[i] = x;
563
+ }; };
564
+ var internalFilter = function (obj, pred, onTrue, onFalse) {
565
+ each(obj, function (x, i) {
566
+ (pred(x, i) ? onTrue : onFalse)(x, i);
567
+ });
568
+ };
569
+ var filter = function (obj, pred) {
570
+ var t = {};
571
+ internalFilter(obj, pred, objAcc(t), noop);
572
+ return t;
573
+ };
574
+ var rawSet = function (dom, key, value) {
575
+ if (isString(value) || isBoolean(value) || isNumber(value)) {
576
+ dom.setAttribute(key, value + '');
577
+ }
578
+ else {
579
+ console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);
580
+ throw new Error('Attribute value was not simple');
581
+ }
582
+ };
583
+ var setAll = function (element, attrs) {
584
+ var dom = element.dom;
585
+ each(attrs, function (v, k) {
586
+ rawSet(dom, k, v);
587
+ });
588
+ };
589
+ var clone$1 = function (element) { return foldl(element.dom.attributes, function (acc, attr) {
590
+ acc[attr.name] = attr.value;
591
+ return acc;
592
+ }, {}); };
593
+ var clone = function (original, isDeep) { return SugarElement.fromDom(original.dom.cloneNode(isDeep)); };
594
+ var deep = function (original) { return clone(original, true); };
595
+ var shallowAs = function (original, tag) {
596
+ var nu = SugarElement.fromTag(tag);
597
+ var attributes = clone$1(original);
598
+ setAll(nu, attributes);
599
+ return nu;
600
+ };
601
+ var mutate = function (original, tag) {
602
+ var nu = shallowAs(original, tag);
603
+ after(original, nu);
604
+ var children$1 = children(original);
605
+ append(nu, children$1);
606
+ remove(original);
607
+ return nu;
608
+ };
609
+ var global$3 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
610
+ var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools');
611
+ var matchNodeName = function (name) { return function (node) { return isNonNullable(node) && node.nodeName.toLowerCase() === name; }; };
612
+ var matchNodeNames = function (regex) { return function (node) { return isNonNullable(node) && regex.test(node.nodeName); }; };
613
+ var isTextNode$1 = function (node) { return isNonNullable(node) && node.nodeType === 3; };
614
+ var isElement = function (node) { return isNonNullable(node) && node.nodeType === 1; };
615
+ var isListNode = matchNodeNames(/^(OL|UL|DL)$/);
616
+ var isOlUlNode = matchNodeNames(/^(OL|UL)$/);
617
+ var isOlNode = matchNodeName('ol');
618
+ var isListItemNode = matchNodeNames(/^(LI|DT|DD)$/);
619
+ var isDlItemNode = matchNodeNames(/^(DT|DD)$/);
620
+ var isTableCellNode = matchNodeNames(/^(TH|TD)$/);
621
+ var isBr = matchNodeName('br');
622
+ var isFirstChild = function (node) {
623
+ var _a;
624
+ return ((_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.firstChild) === node;
625
+ };
626
+ var isTextBlock = function (editor, node) { return isNonNullable(node) && node.nodeName in editor.schema.getTextBlockElements(); };
627
+ var isBlock = function (node, blockElements) { return isNonNullable(node) && node.nodeName in blockElements; };
628
+ var isVoid = function (editor, node) { return isNonNullable(node) && node.nodeName in editor.schema.getVoidElements(); };
629
+ var isBogusBr = function (dom, node) {
630
+ if (!isBr(node)) {
631
+ return false;
632
+ }
633
+ return dom.isBlock(node.nextSibling) && !isBr(node.previousSibling);
634
+ };
635
+ var isEmpty$2 = function (dom, elm, keepBookmarks) {
636
+ var empty = dom.isEmpty(elm);
637
+ if (keepBookmarks && dom.select('span[data-mce-type=bookmark]', elm).length > 0) {
638
+ return false;
639
+ }
640
+ return empty;
641
+ };
642
+ var isChildOfBody = function (dom, elm) { return dom.isChildOf(elm, dom.getRoot()); };
643
+ var option = function (name) { return function (editor) { return editor.options.get(name); }; };
644
+ var register$3 = function (editor) {
645
+ var registerOption = editor.options.register;
646
+ registerOption('lists_indent_on_tab', {
647
+ processor: 'boolean',
648
+ default: true
649
+ });
650
+ };
651
+ var shouldIndentOnTab = option('lists_indent_on_tab');
652
+ var getForcedRootBlock = option('forced_root_block');
653
+ var getForcedRootBlockAttrs = option('forced_root_block_attrs');
654
+ var createTextBlock = function (editor, contentNode) {
655
+ var dom = editor.dom;
656
+ var blockElements = editor.schema.getBlockElements();
657
+ var fragment = dom.createFragment();
658
+ var blockName = getForcedRootBlock(editor);
659
+ var blockAttrs = getForcedRootBlockAttrs(editor);
660
+ var node;
661
+ var textBlock;
662
+ var hasContentNode = false;
663
+ textBlock = dom.create(blockName, blockAttrs);
664
+ if (!isBlock(contentNode.firstChild, blockElements)) {
665
+ fragment.appendChild(textBlock);
666
+ }
667
+ while (node = contentNode.firstChild) {
668
+ var nodeName = node.nodeName;
669
+ if (!hasContentNode && (nodeName !== 'SPAN' || node.getAttribute('data-mce-type') !== 'bookmark')) {
670
+ hasContentNode = true;
671
+ }
672
+ if (isBlock(node, blockElements)) {
673
+ fragment.appendChild(node);
674
+ textBlock = null;
675
+ }
676
+ else {
677
+ if (!textBlock) {
678
+ textBlock = dom.create(blockName, blockAttrs);
679
+ fragment.appendChild(textBlock);
680
+ }
681
+ textBlock.appendChild(node);
682
+ }
683
+ }
684
+ if (!hasContentNode && textBlock) {
685
+ textBlock.appendChild(dom.create('br', { 'data-mce-bogus': '1' }));
686
+ }
687
+ return fragment;
688
+ };
689
+ var DOM$2 = global$3.DOM;
690
+ var splitList = function (editor, list, li) {
691
+ var removeAndKeepBookmarks = function (targetNode) {
692
+ var parent = targetNode.parentNode;
693
+ if (parent) {
694
+ global$2.each(bookmarks, function (node) {
695
+ parent.insertBefore(node, li.parentNode);
696
+ });
697
+ }
698
+ DOM$2.remove(targetNode);
699
+ };
700
+ var bookmarks = DOM$2.select('span[data-mce-type="bookmark"]', list);
701
+ var newBlock = createTextBlock(editor, li);
702
+ var tmpRng = DOM$2.createRng();
703
+ tmpRng.setStartAfter(li);
704
+ tmpRng.setEndAfter(list);
705
+ var fragment = tmpRng.extractContents();
706
+ for (var node = fragment.firstChild; node; node = node.firstChild) {
707
+ if (node.nodeName === 'LI' && editor.dom.isEmpty(node)) {
708
+ DOM$2.remove(node);
709
+ break;
710
+ }
711
+ }
712
+ if (!editor.dom.isEmpty(fragment)) {
713
+ DOM$2.insertAfter(fragment, list);
714
+ }
715
+ DOM$2.insertAfter(newBlock, list);
716
+ var parent = li.parentElement;
717
+ if (parent && isEmpty$2(editor.dom, parent)) {
718
+ removeAndKeepBookmarks(parent);
719
+ }
720
+ DOM$2.remove(li);
721
+ if (isEmpty$2(editor.dom, list)) {
722
+ DOM$2.remove(list);
723
+ }
724
+ };
725
+ var isDescriptionDetail = isTag('dd');
726
+ var isDescriptionTerm = isTag('dt');
727
+ var outdentDlItem = function (editor, item) {
728
+ if (isDescriptionDetail(item)) {
729
+ mutate(item, 'dt');
730
+ }
731
+ else if (isDescriptionTerm(item)) {
732
+ parentElement(item).each(function (dl) { return splitList(editor, dl.dom, item.dom); });
733
+ }
734
+ };
735
+ var indentDlItem = function (item) {
736
+ if (isDescriptionTerm(item)) {
737
+ mutate(item, 'dd');
738
+ }
739
+ };
740
+ var dlIndentation = function (editor, indentation, dlItems) {
741
+ if (indentation === 'Indent') {
742
+ each$1(dlItems, indentDlItem);
743
+ }
744
+ else {
745
+ each$1(dlItems, function (item) { return outdentDlItem(editor, item); });
746
+ }
747
+ };
748
+ var getNormalizedPoint = function (container, offset) {
749
+ if (isTextNode$1(container)) {
750
+ return {
751
+ container: container,
752
+ offset: offset
753
+ };
754
+ }
755
+ var node = global$6.getNode(container, offset);
756
+ if (isTextNode$1(node)) {
757
+ return {
758
+ container: node,
759
+ offset: offset >= container.childNodes.length ? node.data.length : 0
760
+ };
761
+ }
762
+ else if (node.previousSibling && isTextNode$1(node.previousSibling)) {
763
+ return {
764
+ container: node.previousSibling,
765
+ offset: node.previousSibling.data.length
766
+ };
767
+ }
768
+ else if (node.nextSibling && isTextNode$1(node.nextSibling)) {
769
+ return {
770
+ container: node.nextSibling,
771
+ offset: 0
772
+ };
773
+ }
774
+ return {
775
+ container: container,
776
+ offset: offset
777
+ };
778
+ };
779
+ var normalizeRange = function (rng) {
780
+ var outRng = rng.cloneRange();
781
+ var rangeStart = getNormalizedPoint(rng.startContainer, rng.startOffset);
782
+ outRng.setStart(rangeStart.container, rangeStart.offset);
783
+ var rangeEnd = getNormalizedPoint(rng.endContainer, rng.endOffset);
784
+ outRng.setEnd(rangeEnd.container, rangeEnd.offset);
785
+ return outRng;
786
+ };
787
+ var listNames = [
788
+ 'OL',
789
+ 'UL',
790
+ 'DL'
791
+ ];
792
+ var listSelector = listNames.join(',');
793
+ var getParentList = function (editor, node) {
794
+ var selectionStart = node || editor.selection.getStart(true);
795
+ return editor.dom.getParent(selectionStart, listSelector, getClosestListHost(editor, selectionStart));
796
+ };
797
+ var isParentListSelected = function (parentList, selectedBlocks) { return isNonNullable(parentList) && selectedBlocks.length === 1 && selectedBlocks[0] === parentList; };
798
+ var findSubLists = function (parentList) { return filter$1(parentList.querySelectorAll(listSelector), isListNode); };
799
+ var getSelectedSubLists = function (editor) {
800
+ var parentList = getParentList(editor);
801
+ var selectedBlocks = editor.selection.getSelectedBlocks();
802
+ if (isParentListSelected(parentList, selectedBlocks)) {
803
+ return findSubLists(parentList);
804
+ }
805
+ else {
806
+ return filter$1(selectedBlocks, function (elm) {
807
+ return isListNode(elm) && parentList !== elm;
808
+ });
809
+ }
810
+ };
811
+ var findParentListItemsNodes = function (editor, elms) {
812
+ var listItemsElms = global$2.map(elms, function (elm) {
813
+ var parentLi = editor.dom.getParent(elm, 'li,dd,dt', getClosestListHost(editor, elm));
814
+ return parentLi ? parentLi : elm;
815
+ });
816
+ return unique(listItemsElms);
817
+ };
818
+ var getSelectedListItems = function (editor) {
819
+ var selectedBlocks = editor.selection.getSelectedBlocks();
820
+ return filter$1(findParentListItemsNodes(editor, selectedBlocks), isListItemNode);
821
+ };
822
+ var getSelectedDlItems = function (editor) { return filter$1(getSelectedListItems(editor), isDlItemNode); };
823
+ var getClosestEditingHost = function (editor, elm) {
824
+ var parentTableCell = editor.dom.getParents(elm, 'TD,TH');
825
+ return parentTableCell.length > 0 ? parentTableCell[0] : editor.getBody();
826
+ };
827
+ var isListHost = function (schema, node) { return !isListNode(node) && !isListItemNode(node) && exists(listNames, function (listName) { return schema.isValidChild(node.nodeName, listName); }); };
828
+ var getClosestListHost = function (editor, elm) {
829
+ var parentBlocks = editor.dom.getParents(elm, editor.dom.isBlock);
830
+ var parentBlock = find(parentBlocks, function (elm) { return isListHost(editor.schema, elm); });
831
+ return parentBlock.getOr(editor.getBody());
832
+ };
833
+ var isListInsideAnLiWithFirstAndLastNotListElement = function (list) { return parent(list).exists(function (parent) { return isListItemNode(parent.dom) && firstChild(parent).exists(function (firstChild) { return !isListNode(firstChild.dom); }) && lastChild(parent).exists(function (lastChild) { return !isListNode(lastChild.dom); }); }); };
834
+ var findLastParentListNode = function (editor, elm) {
835
+ var parentLists = editor.dom.getParents(elm, 'ol,ul', getClosestListHost(editor, elm));
836
+ return last(parentLists);
837
+ };
838
+ var getSelectedLists = function (editor) {
839
+ var firstList = findLastParentListNode(editor, editor.selection.getStart());
840
+ var subsequentLists = filter$1(editor.selection.getSelectedBlocks(), isOlUlNode);
841
+ return firstList.toArray().concat(subsequentLists);
842
+ };
843
+ var getParentLists = function (editor) {
844
+ var elm = editor.selection.getStart();
845
+ return editor.dom.getParents(elm, 'ol,ul', getClosestListHost(editor, elm));
846
+ };
847
+ var getSelectedListRoots = function (editor) {
848
+ var selectedLists = getSelectedLists(editor);
849
+ var parentLists = getParentLists(editor);
850
+ return find(parentLists, function (p) { return isListInsideAnLiWithFirstAndLastNotListElement(SugarElement.fromDom(p)); }).fold(function () { return getUniqueListRoots(editor, selectedLists); }, function (l) { return [l]; });
851
+ };
852
+ var getUniqueListRoots = function (editor, lists) {
853
+ var listRoots = map(lists, function (list) { return findLastParentListNode(editor, list).getOr(list); });
854
+ return unique(listRoots);
855
+ };
856
+ var isCustomList = function (list) { return /\btox\-/.test(list.className); };
857
+ var inList = function (parents, listName) { return findUntil(parents, isListNode, isTableCellNode).exists(function (list) { return list.nodeName === listName && !isCustomList(list); }); };
858
+ var isWithinNonEditable = function (editor, element) { return element !== null && !editor.dom.isEditable(element); };
859
+ var selectionIsWithinNonEditableList = function (editor) {
860
+ var parentList = getParentList(editor);
861
+ return isWithinNonEditable(editor, parentList);
862
+ };
863
+ var isWithinNonEditableList = function (editor, element) {
864
+ var parentList = editor.dom.getParent(element, 'ol,ul,dl');
865
+ return isWithinNonEditable(editor, parentList);
866
+ };
867
+ var setNodeChangeHandler = function (editor, nodeChangeHandler) {
868
+ var initialNode = editor.selection.getNode();
869
+ nodeChangeHandler({
870
+ parents: editor.dom.getParents(initialNode),
871
+ element: initialNode
872
+ });
873
+ editor.on('NodeChange', nodeChangeHandler);
874
+ return function () { return editor.off('NodeChange', nodeChangeHandler); };
875
+ };
876
+ var fromElements = function (elements, scope) {
877
+ var doc = scope || document;
878
+ var fragment = doc.createDocumentFragment();
879
+ each$1(elements, function (element) {
880
+ fragment.appendChild(element.dom);
881
+ });
882
+ return SugarElement.fromDom(fragment);
883
+ };
884
+ var fireListEvent = function (editor, action, element) { return editor.dispatch('ListMutation', {
885
+ action: action,
886
+ element: element
887
+ }); };
888
+ var blank = function (r) { return function (s) { return s.replace(r, ''); }; };
889
+ var trim = blank(/^\s+|\s+$/g);
890
+ var isNotEmpty = function (s) { return s.length > 0; };
891
+ var isEmpty$1 = function (s) { return !isNotEmpty(s); };
892
+ var isSupported = function (dom) { return dom.style !== undefined && isFunction(dom.style.getPropertyValue); };
893
+ var internalSet = function (dom, property, value) {
894
+ if (!isString(value)) {
895
+ console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);
896
+ throw new Error('CSS value must be a string: ' + value);
897
+ }
898
+ if (isSupported(dom)) {
899
+ dom.style.setProperty(property, value);
900
+ }
901
+ };
902
+ var set = function (element, property, value) {
903
+ var dom = element.dom;
904
+ internalSet(dom, property, value);
905
+ };
906
+ var isList = function (el) { return is(el, 'OL,UL'); };
907
+ var isListItem = function (el) { return is(el, 'LI'); };
908
+ var hasFirstChildList = function (el) { return firstChild(el).exists(isList); };
909
+ var hasLastChildList = function (el) { return lastChild(el).exists(isList); };
910
+ var isEntryList = function (entry) { return 'listAttributes' in entry; };
911
+ var isEntryComment = function (entry) { return 'isComment' in entry; };
912
+ var isEntryFragment = function (entry) { return 'isFragment' in entry; };
913
+ var isIndented = function (entry) { return entry.depth > 0; };
914
+ var isSelected = function (entry) { return entry.isSelected; };
915
+ var cloneItemContent = function (li) {
916
+ var children$1 = children(li);
917
+ var content = hasLastChildList(li) ? children$1.slice(0, -1) : children$1;
918
+ return map(content, deep);
919
+ };
920
+ var createEntry = function (li, depth, isSelected) { return parent(li).filter(isElement$1).map(function (list) { return ({
921
+ depth: depth,
922
+ dirty: false,
923
+ isSelected: isSelected,
924
+ content: cloneItemContent(li),
925
+ itemAttributes: clone$1(li),
926
+ listAttributes: clone$1(list),
927
+ listType: name(list),
928
+ isInPreviousLi: false
929
+ }); }); };
930
+ var joinSegment = function (parent, child) {
931
+ append$1(parent.item, child.list);
932
+ };
933
+ var joinSegments = function (segments) {
934
+ for (var i = 1; i < segments.length; i++) {
935
+ joinSegment(segments[i - 1], segments[i]);
936
+ }
937
+ };
938
+ var appendSegments = function (head$1, tail) {
939
+ lift2(last(head$1), head(tail), joinSegment);
940
+ };
941
+ var createSegment = function (scope, listType) {
942
+ var segment = {
943
+ list: SugarElement.fromTag(listType, scope),
944
+ item: SugarElement.fromTag('li', scope)
945
+ };
946
+ append$1(segment.list, segment.item);
947
+ return segment;
948
+ };
949
+ var createSegments = function (scope, entry, size) {
950
+ var segments = [];
951
+ for (var i = 0; i < size; i++) {
952
+ segments.push(createSegment(scope, isEntryList(entry) ? entry.listType : entry.parentListType));
953
+ }
954
+ return segments;
955
+ };
956
+ var populateSegments = function (segments, entry) {
957
+ for (var i = 0; i < segments.length - 1; i++) {
958
+ set(segments[i].item, 'list-style-type', 'none');
959
+ }
960
+ last(segments).each(function (segment) {
961
+ if (isEntryList(entry)) {
962
+ setAll(segment.list, entry.listAttributes);
963
+ setAll(segment.item, entry.itemAttributes);
964
+ }
965
+ append(segment.item, entry.content);
966
+ });
967
+ };
968
+ var normalizeSegment = function (segment, entry) {
969
+ if (name(segment.list) !== entry.listType) {
970
+ segment.list = mutate(segment.list, entry.listType);
971
+ }
972
+ setAll(segment.list, entry.listAttributes);
973
+ };
974
+ var createItem = function (scope, attr, content) {
975
+ var item = SugarElement.fromTag('li', scope);
976
+ setAll(item, attr);
977
+ append(item, content);
978
+ return item;
979
+ };
980
+ var appendItem = function (segment, item) {
981
+ append$1(segment.list, item);
982
+ segment.item = item;
983
+ };
984
+ var writeShallow = function (scope, cast, entry) {
985
+ var newCast = cast.slice(0, entry.depth);
986
+ last(newCast).each(function (segment) {
987
+ if (isEntryList(entry)) {
988
+ var item = createItem(scope, entry.itemAttributes, entry.content);
989
+ appendItem(segment, item);
990
+ normalizeSegment(segment, entry);
991
+ }
992
+ else if (isEntryFragment(entry)) {
993
+ append(segment.item, entry.content);
994
+ }
995
+ else {
996
+ var item = SugarElement.fromHtml("<!--".concat(entry.content, "-->"));
997
+ append$1(segment.list, item);
998
+ }
999
+ });
1000
+ return newCast;
1001
+ };
1002
+ var writeDeep = function (scope, cast, entry) {
1003
+ var segments = createSegments(scope, entry, entry.depth - cast.length);
1004
+ joinSegments(segments);
1005
+ populateSegments(segments, entry);
1006
+ appendSegments(cast, segments);
1007
+ return cast.concat(segments);
1008
+ };
1009
+ var composeList = function (scope, entries) {
1010
+ var firstCommentEntryOpt = Optional.none();
1011
+ var cast = foldl(entries, function (cast, entry, i) {
1012
+ if (!isEntryComment(entry)) {
1013
+ return entry.depth > cast.length ? writeDeep(scope, cast, entry) : writeShallow(scope, cast, entry);
1014
+ }
1015
+ else {
1016
+ if (i === 0) {
1017
+ firstCommentEntryOpt = Optional.some(entry);
1018
+ return cast;
1019
+ }
1020
+ return writeShallow(scope, cast, entry);
1021
+ }
1022
+ }, []);
1023
+ firstCommentEntryOpt.each(function (firstCommentEntry) {
1024
+ var item = SugarElement.fromHtml("<!--".concat(firstCommentEntry.content, "-->"));
1025
+ head(cast).each(function (fistCast) {
1026
+ prepend(fistCast.list, item);
1027
+ });
1028
+ });
1029
+ return head(cast).map(function (segment) { return segment.list; });
1030
+ };
1031
+ var indentEntry = function (indentation, entry) {
1032
+ switch (indentation) {
1033
+ case 'Indent':
1034
+ entry.depth++;
1035
+ break;
1036
+ case 'Outdent':
1037
+ entry.depth--;
1038
+ break;
1039
+ case 'Flatten':
1040
+ entry.depth = 0;
1041
+ }
1042
+ entry.dirty = true;
1043
+ };
1044
+ var cloneListProperties = function (target, source) {
1045
+ if (isEntryList(target) && isEntryList(source)) {
1046
+ target.listType = source.listType;
1047
+ target.listAttributes = __assign({}, source.listAttributes);
1048
+ }
1049
+ };
1050
+ var cleanListProperties = function (entry) {
1051
+ entry.listAttributes = filter(entry.listAttributes, function (_value, key) { return key !== 'start'; });
1052
+ };
1053
+ var closestSiblingEntry = function (entries, start) {
1054
+ var depth = entries[start].depth;
1055
+ var matches = function (entry) { return entry.depth === depth && !entry.dirty; };
1056
+ var until = function (entry) { return entry.depth < depth; };
1057
+ return findUntil(reverse(entries.slice(0, start)), matches, until).orThunk(function () { return findUntil(entries.slice(start + 1), matches, until); });
1058
+ };
1059
+ var normalizeEntries = function (entries) {
1060
+ each$1(entries, function (entry, i) {
1061
+ closestSiblingEntry(entries, i).fold(function () {
1062
+ if (entry.dirty && isEntryList(entry)) {
1063
+ cleanListProperties(entry);
1064
+ }
1065
+ }, function (matchingEntry) { return cloneListProperties(entry, matchingEntry); });
1066
+ });
1067
+ return entries;
1068
+ };
1069
+ var Cell = function (initial) {
1070
+ var value = initial;
1071
+ var get = function () {
1072
+ return value;
1073
+ };
1074
+ var set = function (v) {
1075
+ value = v;
1076
+ };
1077
+ return {
1078
+ get: get,
1079
+ set: set
1080
+ };
1081
+ };
1082
+ var parseSingleItem = function (depth, itemSelection, selectionState, item) {
1083
+ var _a;
1084
+ if (isComment(item)) {
1085
+ return [{
1086
+ depth: depth + 1,
1087
+ content: (_a = item.dom.nodeValue) !== null && _a !== void 0 ? _a : '',
1088
+ dirty: false,
1089
+ isSelected: false,
1090
+ isComment: true
1091
+ }];
1092
+ }
1093
+ itemSelection.each(function (selection) {
1094
+ if (eq(selection.start, item)) {
1095
+ selectionState.set(true);
1096
+ }
1097
+ });
1098
+ var currentItemEntry = createEntry(item, depth, selectionState.get());
1099
+ itemSelection.each(function (selection) {
1100
+ if (eq(selection.end, item)) {
1101
+ selectionState.set(false);
1102
+ }
1103
+ });
1104
+ var childListEntries = lastChild(item).filter(isList).map(function (list) { return parseList(depth, itemSelection, selectionState, list); }).getOr([]);
1105
+ return currentItemEntry.toArray().concat(childListEntries);
1106
+ };
1107
+ var parseItem = function (depth, itemSelection, selectionState, item) { return firstChild(item).filter(isList).fold(function () { return parseSingleItem(depth, itemSelection, selectionState, item); }, function (list) {
1108
+ var parsedSiblings = foldl(children(item), function (acc, liChild, i) {
1109
+ if (i === 0) {
1110
+ return acc;
1111
+ }
1112
+ else {
1113
+ if (isListItem(liChild)) {
1114
+ return acc.concat(parseSingleItem(depth, itemSelection, selectionState, liChild));
1115
+ }
1116
+ else {
1117
+ var fragment = {
1118
+ isFragment: true,
1119
+ depth: depth,
1120
+ content: [liChild],
1121
+ isSelected: false,
1122
+ dirty: false,
1123
+ parentListType: name(list)
1124
+ };
1125
+ return acc.concat(fragment);
1126
+ }
1127
+ }
1128
+ }, []);
1129
+ return parseList(depth, itemSelection, selectionState, list).concat(parsedSiblings);
1130
+ }); };
1131
+ var parseList = function (depth, itemSelection, selectionState, list) { return bind(children(list), function (element) {
1132
+ var parser = isList(element) ? parseList : parseItem;
1133
+ var newDepth = depth + 1;
1134
+ return parser(newDepth, itemSelection, selectionState, element);
1135
+ }); };
1136
+ var parseLists = function (lists, itemSelection) {
1137
+ var selectionState = Cell(false);
1138
+ var initialDepth = 0;
1139
+ return map(lists, function (list) { return ({
1140
+ sourceList: list,
1141
+ entries: parseList(initialDepth, itemSelection, selectionState, list)
1142
+ }); });
1143
+ };
1144
+ var outdentedComposer = function (editor, entries) {
1145
+ var normalizedEntries = normalizeEntries(entries);
1146
+ return map(normalizedEntries, function (entry) {
1147
+ var content = !isEntryComment(entry) ? fromElements(entry.content) : fromElements([SugarElement.fromHtml("<!--".concat(entry.content, "-->"))]);
1148
+ return SugarElement.fromDom(createTextBlock(editor, content.dom));
1149
+ });
1150
+ };
1151
+ var indentedComposer = function (editor, entries) {
1152
+ var normalizedEntries = normalizeEntries(entries);
1153
+ return composeList(editor.contentDocument, normalizedEntries).toArray();
1154
+ };
1155
+ var composeEntries = function (editor, entries) { return bind(groupBy(entries, isIndented), function (entries) {
1156
+ var groupIsIndented = head(entries).exists(isIndented);
1157
+ return groupIsIndented ? indentedComposer(editor, entries) : outdentedComposer(editor, entries);
1158
+ }); };
1159
+ var indentSelectedEntries = function (entries, indentation) {
1160
+ each$1(filter$1(entries, isSelected), function (entry) { return indentEntry(indentation, entry); });
1161
+ };
1162
+ var getItemSelection = function (editor) {
1163
+ var selectedListItems = map(getSelectedListItems(editor), SugarElement.fromDom);
1164
+ return lift2(find(selectedListItems, not(hasFirstChildList)), find(reverse(selectedListItems), not(hasFirstChildList)), function (start, end) { return ({
1165
+ start: start,
1166
+ end: end
1167
+ }); });
1168
+ };
1169
+ var listIndentation = function (editor, lists, indentation) {
1170
+ var entrySets = parseLists(lists, getItemSelection(editor));
1171
+ each$1(entrySets, function (entrySet) {
1172
+ indentSelectedEntries(entrySet.entries, indentation);
1173
+ var composedLists = composeEntries(editor, entrySet.entries);
1174
+ each$1(composedLists, function (composedList) {
1175
+ fireListEvent(editor, indentation === 'Indent' ? 'IndentList' : 'OutdentList', composedList.dom);
1176
+ });
1177
+ before(entrySet.sourceList, composedLists);
1178
+ remove(entrySet.sourceList);
1179
+ });
1180
+ };
1181
+ var selectionIndentation = function (editor, indentation) {
1182
+ var lists = fromDom(getSelectedListRoots(editor));
1183
+ var dlItems = fromDom(getSelectedDlItems(editor));
1184
+ var isHandled = false;
1185
+ if (lists.length || dlItems.length) {
1186
+ var bookmark = editor.selection.getBookmark();
1187
+ listIndentation(editor, lists, indentation);
1188
+ dlIndentation(editor, indentation, dlItems);
1189
+ editor.selection.moveToBookmark(bookmark);
1190
+ editor.selection.setRng(normalizeRange(editor.selection.getRng()));
1191
+ editor.nodeChanged();
1192
+ isHandled = true;
1193
+ }
1194
+ return isHandled;
1195
+ };
1196
+ var handleIndentation = function (editor, indentation) { return !selectionIsWithinNonEditableList(editor) && selectionIndentation(editor, indentation); };
1197
+ var indentListSelection = function (editor) { return handleIndentation(editor, 'Indent'); };
1198
+ var outdentListSelection = function (editor) { return handleIndentation(editor, 'Outdent'); };
1199
+ var flattenListSelection = function (editor) { return handleIndentation(editor, 'Flatten'); };
1200
+ var zeroWidth = '\uFEFF';
1201
+ var isZwsp = function (char) { return char === zeroWidth; };
1202
+ var ancestor$1 = function (scope, predicate, isRoot) { return ancestor$3(scope, predicate, isRoot).isSome(); };
1203
+ var ancestor = function (element, target) { return ancestor$1(element, curry(eq, target)); };
1204
+ var global$1 = tinymce.util.Tools.resolve('tinymce.dom.BookmarkManager');
1205
+ var DOM$1 = global$3.DOM;
1206
+ var createBookmark = function (rng) {
1207
+ var bookmark = {};
1208
+ var setupEndPoint = function (start) {
1209
+ var container = rng[start ? 'startContainer' : 'endContainer'];
1210
+ var offset = rng[start ? 'startOffset' : 'endOffset'];
1211
+ if (isElement(container)) {
1212
+ var offsetNode = DOM$1.create('span', { 'data-mce-type': 'bookmark' });
1213
+ if (container.hasChildNodes()) {
1214
+ offset = Math.min(offset, container.childNodes.length - 1);
1215
+ if (start) {
1216
+ container.insertBefore(offsetNode, container.childNodes[offset]);
1217
+ }
1218
+ else {
1219
+ DOM$1.insertAfter(offsetNode, container.childNodes[offset]);
1220
+ }
1221
+ }
1222
+ else {
1223
+ container.appendChild(offsetNode);
1224
+ }
1225
+ container = offsetNode;
1226
+ offset = 0;
1227
+ }
1228
+ bookmark[start ? 'startContainer' : 'endContainer'] = container;
1229
+ bookmark[start ? 'startOffset' : 'endOffset'] = offset;
1230
+ };
1231
+ setupEndPoint(true);
1232
+ if (!rng.collapsed) {
1233
+ setupEndPoint();
1234
+ }
1235
+ return bookmark;
1236
+ };
1237
+ var resolveBookmark = function (bookmark) {
1238
+ var restoreEndPoint = function (start) {
1239
+ var nodeIndex = function (container) {
1240
+ var _a;
1241
+ var node = (_a = container.parentNode) === null || _a === void 0 ? void 0 : _a.firstChild;
1242
+ var idx = 0;
1243
+ while (node) {
1244
+ if (node === container) {
1245
+ return idx;
1246
+ }
1247
+ if (!isElement(node) || node.getAttribute('data-mce-type') !== 'bookmark') {
1248
+ idx++;
1249
+ }
1250
+ node = node.nextSibling;
1251
+ }
1252
+ return -1;
1253
+ };
1254
+ var container = bookmark[start ? 'startContainer' : 'endContainer'];
1255
+ var offset = bookmark[start ? 'startOffset' : 'endOffset'];
1256
+ if (!container) {
1257
+ return;
1258
+ }
1259
+ if (isElement(container) && container.parentNode) {
1260
+ var node = container;
1261
+ offset = nodeIndex(container);
1262
+ container = container.parentNode;
1263
+ DOM$1.remove(node);
1264
+ if (!container.hasChildNodes() && DOM$1.isBlock(container)) {
1265
+ container.appendChild(DOM$1.create('br'));
1266
+ }
1267
+ }
1268
+ bookmark[start ? 'startContainer' : 'endContainer'] = container;
1269
+ bookmark[start ? 'startOffset' : 'endOffset'] = offset;
1270
+ };
1271
+ restoreEndPoint(true);
1272
+ restoreEndPoint();
1273
+ var rng = DOM$1.createRng();
1274
+ rng.setStart(bookmark.startContainer, bookmark.startOffset);
1275
+ if (bookmark.endContainer) {
1276
+ rng.setEnd(bookmark.endContainer, bookmark.endOffset);
1277
+ }
1278
+ return normalizeRange(rng);
1279
+ };
1280
+ var listToggleActionFromListName = function (listName) {
1281
+ switch (listName) {
1282
+ case 'UL':
1283
+ return 'ToggleUlList';
1284
+ case 'OL':
1285
+ return 'ToggleOlList';
1286
+ case 'DL':
1287
+ return 'ToggleDLList';
1288
+ }
1289
+ };
1290
+ var updateListStyle = function (dom, el, detail) {
1291
+ var type = detail['list-style-type'] ? detail['list-style-type'] : null;
1292
+ dom.setStyle(el, 'list-style-type', type);
1293
+ };
1294
+ var setAttribs = function (elm, attrs) {
1295
+ global$2.each(attrs, function (value, key) {
1296
+ elm.setAttribute(key, value);
1297
+ });
1298
+ };
1299
+ var updateListAttrs = function (dom, el, detail) {
1300
+ setAttribs(el, detail['list-attributes']);
1301
+ global$2.each(dom.select('li', el), function (li) {
1302
+ setAttribs(li, detail['list-item-attributes']);
1303
+ });
1304
+ };
1305
+ var updateListWithDetails = function (dom, el, detail) {
1306
+ updateListStyle(dom, el, detail);
1307
+ updateListAttrs(dom, el, detail);
1308
+ };
1309
+ var removeStyles = function (dom, element, styles) {
1310
+ global$2.each(styles, function (style) { return dom.setStyle(element, style, ''); });
1311
+ };
1312
+ var isInline = function (editor, node) { return isNonNullable(node) && !isBlock(node, editor.schema.getBlockElements()); };
1313
+ var getEndPointNode = function (editor, rng, start, root) {
1314
+ var container = rng[start ? 'startContainer' : 'endContainer'];
1315
+ var offset = rng[start ? 'startOffset' : 'endOffset'];
1316
+ if (isElement(container)) {
1317
+ container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;
1318
+ }
1319
+ if (!start && isBr(container.nextSibling)) {
1320
+ container = container.nextSibling;
1321
+ }
1322
+ var findBlockAncestor = function (node) {
1323
+ while (!editor.dom.isBlock(node) && node.parentNode && root !== node) {
1324
+ node = node.parentNode;
1325
+ }
1326
+ return node;
1327
+ };
1328
+ var findBetterContainer = function (container, forward) {
1329
+ var _a;
1330
+ var walker = new global$5(container, findBlockAncestor(container));
1331
+ var dir = forward ? 'next' : 'prev';
1332
+ var node;
1333
+ while (node = walker[dir]()) {
1334
+ if (!(isVoid(editor, node) || isZwsp(node.textContent) || ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.length) === 0)) {
1335
+ return Optional.some(node);
1336
+ }
1337
+ }
1338
+ return Optional.none();
1339
+ };
1340
+ if (start && isTextNode$1(container)) {
1341
+ if (isZwsp(container.textContent)) {
1342
+ container = findBetterContainer(container, false).getOr(container);
1343
+ }
1344
+ else {
1345
+ if (container.parentNode !== null && isInline(editor, container.parentNode)) {
1346
+ container = container.parentNode;
1347
+ }
1348
+ while (container.previousSibling !== null && (isInline(editor, container.previousSibling) || isTextNode$1(container.previousSibling))) {
1349
+ container = container.previousSibling;
1350
+ }
1351
+ }
1352
+ }
1353
+ if (!start && isTextNode$1(container)) {
1354
+ if (isZwsp(container.textContent)) {
1355
+ container = findBetterContainer(container, true).getOr(container);
1356
+ }
1357
+ else {
1358
+ if (container.parentNode !== null && isInline(editor, container.parentNode)) {
1359
+ container = container.parentNode;
1360
+ }
1361
+ while (container.nextSibling !== null && (isInline(editor, container.nextSibling) || isTextNode$1(container.nextSibling))) {
1362
+ container = container.nextSibling;
1363
+ }
1364
+ }
1365
+ }
1366
+ while (container.parentNode !== root) {
1367
+ var parent_1 = container.parentNode;
1368
+ if (isTextBlock(editor, container)) {
1369
+ return container;
1370
+ }
1371
+ if (/^(TD|TH)$/.test(parent_1.nodeName)) {
1372
+ return container;
1373
+ }
1374
+ container = parent_1;
1375
+ }
1376
+ return container;
1377
+ };
1378
+ var getSelectedTextBlocks = function (editor, rng, root) {
1379
+ var textBlocks = [];
1380
+ var dom = editor.dom;
1381
+ var startNode = getEndPointNode(editor, rng, true, root);
1382
+ var endNode = getEndPointNode(editor, rng, false, root);
1383
+ var block;
1384
+ var siblings = [];
1385
+ for (var node = startNode; node; node = node.nextSibling) {
1386
+ siblings.push(node);
1387
+ if (node === endNode) {
1388
+ break;
1389
+ }
1390
+ }
1391
+ global$2.each(siblings, function (node) {
1392
+ var _a;
1393
+ if (isTextBlock(editor, node)) {
1394
+ textBlocks.push(node);
1395
+ block = null;
1396
+ return;
1397
+ }
1398
+ if (dom.isBlock(node) || isBr(node)) {
1399
+ if (isBr(node)) {
1400
+ dom.remove(node);
1401
+ }
1402
+ block = null;
1403
+ return;
1404
+ }
1405
+ var nextSibling = node.nextSibling;
1406
+ if (global$1.isBookmarkNode(node)) {
1407
+ if (isListNode(nextSibling) || isTextBlock(editor, nextSibling) || !nextSibling && node.parentNode === root) {
1408
+ block = null;
1409
+ return;
1410
+ }
1411
+ }
1412
+ if (!block) {
1413
+ block = dom.create('p');
1414
+ (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(block, node);
1415
+ textBlocks.push(block);
1416
+ }
1417
+ block.appendChild(node);
1418
+ });
1419
+ return textBlocks;
1420
+ };
1421
+ var hasCompatibleStyle = function (dom, sib, detail) {
1422
+ var sibStyle = dom.getStyle(sib, 'list-style-type');
1423
+ var detailStyle = detail ? detail['list-style-type'] : '';
1424
+ detailStyle = detailStyle === null ? '' : detailStyle;
1425
+ return sibStyle === detailStyle;
1426
+ };
1427
+ var getRootSearchStart = function (editor, range) {
1428
+ var start = editor.selection.getStart(true);
1429
+ var startPoint = getEndPointNode(editor, range, true, editor.getBody());
1430
+ if (ancestor(SugarElement.fromDom(startPoint), SugarElement.fromDom(range.commonAncestorContainer))) {
1431
+ return range.commonAncestorContainer;
1432
+ }
1433
+ else {
1434
+ return start;
1435
+ }
1436
+ };
1437
+ var applyList = function (editor, listName, detail) {
1438
+ var rng = editor.selection.getRng();
1439
+ var listItemName = 'LI';
1440
+ var root = getClosestListHost(editor, getRootSearchStart(editor, rng));
1441
+ var dom = editor.dom;
1442
+ if (dom.getContentEditable(editor.selection.getNode()) === 'false') {
1443
+ return;
1444
+ }
1445
+ listName = listName.toUpperCase();
1446
+ if (listName === 'DL') {
1447
+ listItemName = 'DT';
1448
+ }
1449
+ var bookmark = createBookmark(rng);
1450
+ var selectedTextBlocks = filter$1(getSelectedTextBlocks(editor, rng, root), editor.dom.isEditable);
1451
+ global$2.each(selectedTextBlocks, function (block) {
1452
+ var listBlock;
1453
+ var sibling = block.previousSibling;
1454
+ var parent = block.parentNode;
1455
+ if (!isListItemNode(parent)) {
1456
+ if (sibling && isListNode(sibling) && sibling.nodeName === listName && hasCompatibleStyle(dom, sibling, detail)) {
1457
+ listBlock = sibling;
1458
+ block = dom.rename(block, listItemName);
1459
+ sibling.appendChild(block);
1460
+ }
1461
+ else {
1462
+ listBlock = dom.create(listName);
1463
+ parent.insertBefore(listBlock, block);
1464
+ listBlock.appendChild(block);
1465
+ block = dom.rename(block, listItemName);
1466
+ }
1467
+ removeStyles(dom, block, [
1468
+ 'margin',
1469
+ 'margin-right',
1470
+ 'margin-bottom',
1471
+ 'margin-left',
1472
+ 'margin-top',
1473
+ 'padding',
1474
+ 'padding-right',
1475
+ 'padding-bottom',
1476
+ 'padding-left',
1477
+ 'padding-top'
1478
+ ]);
1479
+ updateListWithDetails(dom, listBlock, detail);
1480
+ mergeWithAdjacentLists(editor.dom, listBlock);
1481
+ }
1482
+ });
1483
+ editor.selection.setRng(resolveBookmark(bookmark));
1484
+ };
1485
+ var isValidLists = function (list1, list2) {
1486
+ return isListNode(list1) && list1.nodeName === (list2 === null || list2 === void 0 ? void 0 : list2.nodeName);
1487
+ };
1488
+ var hasSameListStyle = function (dom, list1, list2) {
1489
+ var targetStyle = dom.getStyle(list1, 'list-style-type', true);
1490
+ var style = dom.getStyle(list2, 'list-style-type', true);
1491
+ return targetStyle === style;
1492
+ };
1493
+ var hasSameClasses = function (elm1, elm2) {
1494
+ return elm1.className === elm2.className;
1495
+ };
1496
+ var shouldMerge = function (dom, list1, list2) {
1497
+ return isValidLists(list1, list2) && hasSameListStyle(dom, list1, list2) && hasSameClasses(list1, list2);
1498
+ };
1499
+ var mergeWithAdjacentLists = function (dom, listBlock) {
1500
+ var node;
1501
+ var sibling = listBlock.nextSibling;
1502
+ if (shouldMerge(dom, listBlock, sibling)) {
1503
+ var liSibling = sibling;
1504
+ while (node = liSibling.firstChild) {
1505
+ listBlock.appendChild(node);
1506
+ }
1507
+ dom.remove(liSibling);
1508
+ }
1509
+ sibling = listBlock.previousSibling;
1510
+ if (shouldMerge(dom, listBlock, sibling)) {
1511
+ var liSibling = sibling;
1512
+ while (node = liSibling.lastChild) {
1513
+ listBlock.insertBefore(node, listBlock.firstChild);
1514
+ }
1515
+ dom.remove(liSibling);
1516
+ }
1517
+ };
1518
+ var updateList$1 = function (editor, list, listName, detail) {
1519
+ if (list.nodeName !== listName) {
1520
+ var newList = editor.dom.rename(list, listName);
1521
+ updateListWithDetails(editor.dom, newList, detail);
1522
+ fireListEvent(editor, listToggleActionFromListName(listName), newList);
1523
+ }
1524
+ else {
1525
+ updateListWithDetails(editor.dom, list, detail);
1526
+ fireListEvent(editor, listToggleActionFromListName(listName), list);
1527
+ }
1528
+ };
1529
+ var updateCustomList = function (editor, list, listName, detail) {
1530
+ list.classList.forEach(function (cls, _, classList) {
1531
+ if (cls.startsWith('tox-')) {
1532
+ classList.remove(cls);
1533
+ if (classList.length === 0) {
1534
+ list.removeAttribute('class');
1535
+ }
1536
+ }
1537
+ });
1538
+ if (list.nodeName !== listName) {
1539
+ var newList = editor.dom.rename(list, listName);
1540
+ updateListWithDetails(editor.dom, newList, detail);
1541
+ fireListEvent(editor, listToggleActionFromListName(listName), newList);
1542
+ }
1543
+ else {
1544
+ updateListWithDetails(editor.dom, list, detail);
1545
+ fireListEvent(editor, listToggleActionFromListName(listName), list);
1546
+ }
1547
+ };
1548
+ var toggleMultipleLists = function (editor, parentList, lists, listName, detail) {
1549
+ var parentIsList = isListNode(parentList);
1550
+ if (parentIsList && parentList.nodeName === listName && !hasListStyleDetail(detail) && !isCustomList(parentList)) {
1551
+ flattenListSelection(editor);
1552
+ }
1553
+ else {
1554
+ applyList(editor, listName, detail);
1555
+ var bookmark = createBookmark(editor.selection.getRng());
1556
+ var allLists = parentIsList ? __spreadArray([
1557
+ parentList
1558
+ ], lists, true) : lists;
1559
+ var updateFunction_1 = parentIsList && isCustomList(parentList) ? updateCustomList : updateList$1;
1560
+ global$2.each(allLists, function (elm) {
1561
+ updateFunction_1(editor, elm, listName, detail);
1562
+ });
1563
+ editor.selection.setRng(resolveBookmark(bookmark));
1564
+ }
1565
+ };
1566
+ var hasListStyleDetail = function (detail) {
1567
+ return 'list-style-type' in detail;
1568
+ };
1569
+ var toggleSingleList = function (editor, parentList, listName, detail) {
1570
+ if (parentList === editor.getBody()) {
1571
+ return;
1572
+ }
1573
+ if (parentList) {
1574
+ if (parentList.nodeName === listName && !hasListStyleDetail(detail) && !isCustomList(parentList)) {
1575
+ flattenListSelection(editor);
1576
+ }
1577
+ else {
1578
+ var bookmark = createBookmark(editor.selection.getRng());
1579
+ if (isCustomList(parentList)) {
1580
+ parentList.classList.forEach(function (cls, _, classList) {
1581
+ if (cls.startsWith('tox-')) {
1582
+ classList.remove(cls);
1583
+ if (classList.length === 0) {
1584
+ parentList.removeAttribute('class');
1585
+ }
1586
+ }
1587
+ });
1588
+ }
1589
+ updateListWithDetails(editor.dom, parentList, detail);
1590
+ var newList = editor.dom.rename(parentList, listName);
1591
+ mergeWithAdjacentLists(editor.dom, newList);
1592
+ editor.selection.setRng(resolveBookmark(bookmark));
1593
+ applyList(editor, listName, detail);
1594
+ fireListEvent(editor, listToggleActionFromListName(listName), newList);
1595
+ }
1596
+ }
1597
+ else {
1598
+ applyList(editor, listName, detail);
1599
+ fireListEvent(editor, listToggleActionFromListName(listName), parentList);
1600
+ }
1601
+ };
1602
+ var toggleList = function (editor, listName, _detail) {
1603
+ var parentList = getParentList(editor);
1604
+ if (isWithinNonEditableList(editor, parentList)) {
1605
+ return;
1606
+ }
1607
+ var selectedSubLists = getSelectedSubLists(editor);
1608
+ var detail = isObject(_detail) ? _detail : {};
1609
+ if (selectedSubLists.length > 0) {
1610
+ toggleMultipleLists(editor, parentList, selectedSubLists, listName, detail);
1611
+ }
1612
+ else {
1613
+ toggleSingleList(editor, parentList, listName, detail);
1614
+ }
1615
+ };
1616
+ var DOM = global$3.DOM;
1617
+ var normalizeList = function (dom, list) {
1618
+ var parentNode = list.parentElement;
1619
+ if (parentNode && parentNode.nodeName === 'LI' && parentNode.firstChild === list) {
1620
+ var sibling = parentNode.previousSibling;
1621
+ if (sibling && sibling.nodeName === 'LI') {
1622
+ sibling.appendChild(list);
1623
+ if (isEmpty$2(dom, parentNode)) {
1624
+ DOM.remove(parentNode);
1625
+ }
1626
+ }
1627
+ else {
1628
+ DOM.setStyle(parentNode, 'listStyleType', 'none');
1629
+ }
1630
+ }
1631
+ if (isListNode(parentNode)) {
1632
+ var sibling = parentNode.previousSibling;
1633
+ if (sibling && sibling.nodeName === 'LI') {
1634
+ sibling.appendChild(list);
1635
+ }
1636
+ }
1637
+ };
1638
+ var normalizeLists = function (dom, element) {
1639
+ var lists = global$2.grep(dom.select('ol,ul', element));
1640
+ global$2.each(lists, function (list) {
1641
+ normalizeList(dom, list);
1642
+ });
1643
+ };
1644
+ var findNextCaretContainer = function (editor, rng, isForward, root) {
1645
+ var node = rng.startContainer;
1646
+ var offset = rng.startOffset;
1647
+ if (isTextNode$1(node) && (isForward ? offset < node.data.length : offset > 0)) {
1648
+ return node;
1649
+ }
1650
+ var nonEmptyBlocks = editor.schema.getNonEmptyElements();
1651
+ if (isElement(node)) {
1652
+ node = global$6.getNode(node, offset);
1653
+ }
1654
+ var walker = new global$5(node, root);
1655
+ if (isForward) {
1656
+ if (isBogusBr(editor.dom, node)) {
1657
+ walker.next();
1658
+ }
1659
+ }
1660
+ var walkFn = isForward ? walker.next.bind(walker) : walker.prev2.bind(walker);
1661
+ while (node = walkFn()) {
1662
+ if (node.nodeName === 'LI' && !node.hasChildNodes()) {
1663
+ return node;
1664
+ }
1665
+ if (nonEmptyBlocks[node.nodeName]) {
1666
+ return node;
1667
+ }
1668
+ if (isTextNode$1(node) && node.data.length > 0) {
1669
+ return node;
1670
+ }
1671
+ }
1672
+ return null;
1673
+ };
1674
+ var hasOnlyOneBlockChild = function (dom, elm) {
1675
+ var childNodes = elm.childNodes;
1676
+ return childNodes.length === 1 && !isListNode(childNodes[0]) && dom.isBlock(childNodes[0]);
1677
+ };
1678
+ var isUnwrappable = function (node) { return Optional.from(node).map(SugarElement.fromDom).filter(isHTMLElement).exists(function (el) { return isEditable(el) && !contains$1(['details'], name(el)); }); };
1679
+ var unwrapSingleBlockChild = function (dom, elm) {
1680
+ if (hasOnlyOneBlockChild(dom, elm) && isUnwrappable(elm.firstChild)) {
1681
+ dom.remove(elm.firstChild, true);
1682
+ }
1683
+ };
1684
+ var moveChildren = function (dom, fromElm, toElm) {
1685
+ var node;
1686
+ var targetElm = hasOnlyOneBlockChild(dom, toElm) ? toElm.firstChild : toElm;
1687
+ unwrapSingleBlockChild(dom, fromElm);
1688
+ if (!isEmpty$2(dom, fromElm, true)) {
1689
+ while (node = fromElm.firstChild) {
1690
+ targetElm.appendChild(node);
1691
+ }
1692
+ }
1693
+ };
1694
+ var mergeLiElements = function (dom, fromElm, toElm) {
1695
+ var listNode;
1696
+ var ul = fromElm.parentNode;
1697
+ if (!isChildOfBody(dom, fromElm) || !isChildOfBody(dom, toElm)) {
1698
+ return;
1699
+ }
1700
+ if (isListNode(toElm.lastChild)) {
1701
+ listNode = toElm.lastChild;
1702
+ }
1703
+ if (ul === toElm.lastChild) {
1704
+ if (isBr(ul.previousSibling)) {
1705
+ dom.remove(ul.previousSibling);
1706
+ }
1707
+ }
1708
+ var node = toElm.lastChild;
1709
+ if (node && isBr(node) && fromElm.hasChildNodes()) {
1710
+ dom.remove(node);
1711
+ }
1712
+ if (isEmpty$2(dom, toElm, true)) {
1713
+ empty(SugarElement.fromDom(toElm));
1714
+ }
1715
+ moveChildren(dom, fromElm, toElm);
1716
+ if (listNode) {
1717
+ toElm.appendChild(listNode);
1718
+ }
1719
+ var contains$1 = contains(SugarElement.fromDom(toElm), SugarElement.fromDom(fromElm));
1720
+ var nestedLists = contains$1 ? dom.getParents(fromElm, isListNode, toElm) : [];
1721
+ dom.remove(fromElm);
1722
+ each$1(nestedLists, function (list) {
1723
+ if (isEmpty$2(dom, list) && list !== dom.getRoot()) {
1724
+ dom.remove(list);
1725
+ }
1726
+ });
1727
+ };
1728
+ var mergeIntoEmptyLi = function (editor, fromLi, toLi) {
1729
+ empty(SugarElement.fromDom(toLi));
1730
+ mergeLiElements(editor.dom, fromLi, toLi);
1731
+ editor.selection.setCursorLocation(toLi, 0);
1732
+ };
1733
+ var mergeForward = function (editor, rng, fromLi, toLi) {
1734
+ var dom = editor.dom;
1735
+ if (dom.isEmpty(toLi)) {
1736
+ mergeIntoEmptyLi(editor, fromLi, toLi);
1737
+ }
1738
+ else {
1739
+ var bookmark = createBookmark(rng);
1740
+ mergeLiElements(dom, fromLi, toLi);
1741
+ editor.selection.setRng(resolveBookmark(bookmark));
1742
+ }
1743
+ };
1744
+ var mergeBackward = function (editor, rng, fromLi, toLi) {
1745
+ var bookmark = createBookmark(rng);
1746
+ mergeLiElements(editor.dom, fromLi, toLi);
1747
+ var resolvedBookmark = resolveBookmark(bookmark);
1748
+ editor.selection.setRng(resolvedBookmark);
1749
+ };
1750
+ var backspaceDeleteFromListToListCaret = function (editor, isForward) {
1751
+ var dom = editor.dom, selection = editor.selection;
1752
+ var selectionStartElm = selection.getStart();
1753
+ var root = getClosestEditingHost(editor, selectionStartElm);
1754
+ var li = dom.getParent(selection.getStart(), 'LI', root);
1755
+ if (li) {
1756
+ var ul = li.parentElement;
1757
+ if (ul === editor.getBody() && isEmpty$2(dom, ul)) {
1758
+ return true;
1759
+ }
1760
+ var rng_1 = normalizeRange(selection.getRng());
1761
+ var otherLi_1 = dom.getParent(findNextCaretContainer(editor, rng_1, isForward, root), 'LI', root);
1762
+ var willMergeParentIntoChild = otherLi_1 && (isForward ? dom.isChildOf(li, otherLi_1) : dom.isChildOf(otherLi_1, li));
1763
+ if (otherLi_1 && otherLi_1 !== li && !willMergeParentIntoChild) {
1764
+ editor.undoManager.transact(function () {
1765
+ if (isForward) {
1766
+ mergeForward(editor, rng_1, otherLi_1, li);
1767
+ }
1768
+ else {
1769
+ if (isFirstChild(li)) {
1770
+ outdentListSelection(editor);
1771
+ }
1772
+ else {
1773
+ mergeBackward(editor, rng_1, li, otherLi_1);
1774
+ }
1775
+ }
1776
+ });
1777
+ return true;
1778
+ }
1779
+ else if (willMergeParentIntoChild && !isForward && otherLi_1 !== li) {
1780
+ editor.undoManager.transact(function () {
1781
+ if (rng_1.commonAncestorContainer.parentElement) {
1782
+ var bookmark = createBookmark(rng_1);
1783
+ var oldParentElRef = rng_1.commonAncestorContainer.parentElement;
1784
+ moveChildren(dom, rng_1.commonAncestorContainer.parentElement, otherLi_1);
1785
+ oldParentElRef.remove();
1786
+ var resolvedBookmark = resolveBookmark(bookmark);
1787
+ editor.selection.setRng(resolvedBookmark);
1788
+ }
1789
+ });
1790
+ return true;
1791
+ }
1792
+ else if (!otherLi_1) {
1793
+ if (!isForward && rng_1.startOffset === 0 && rng_1.endOffset === 0) {
1794
+ editor.undoManager.transact(function () {
1795
+ flattenListSelection(editor);
1796
+ });
1797
+ return true;
1798
+ }
1799
+ }
1800
+ }
1801
+ return false;
1802
+ };
1803
+ var removeBlock = function (dom, block, root) {
1804
+ var parentBlock = dom.getParent(block.parentNode, dom.isBlock, root);
1805
+ dom.remove(block);
1806
+ if (parentBlock && dom.isEmpty(parentBlock)) {
1807
+ dom.remove(parentBlock);
1808
+ }
1809
+ };
1810
+ var backspaceDeleteIntoListCaret = function (editor, isForward) {
1811
+ var dom = editor.dom;
1812
+ var selectionStartElm = editor.selection.getStart();
1813
+ var root = getClosestEditingHost(editor, selectionStartElm);
1814
+ var block = dom.getParent(selectionStartElm, dom.isBlock, root);
1815
+ if (block && dom.isEmpty(block)) {
1816
+ var rng = normalizeRange(editor.selection.getRng());
1817
+ var otherLi_2 = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root);
1818
+ if (otherLi_2) {
1819
+ var findValidElement = function (element) { return contains$1([
1820
+ 'td',
1821
+ 'th',
1822
+ 'caption'
1823
+ ], name(element)); };
1824
+ var findRoot = function (node) { return node.dom === root; };
1825
+ var otherLiCell = closest$2(SugarElement.fromDom(otherLi_2), findValidElement, findRoot);
1826
+ var caretCell = closest$2(SugarElement.fromDom(rng.startContainer), findValidElement, findRoot);
1827
+ if (!equals(otherLiCell, caretCell, eq)) {
1828
+ return false;
1829
+ }
1830
+ editor.undoManager.transact(function () {
1831
+ var parentNode = otherLi_2.parentNode;
1832
+ removeBlock(dom, block, root);
1833
+ mergeWithAdjacentLists(dom, parentNode);
1834
+ editor.selection.select(otherLi_2, true);
1835
+ editor.selection.collapse(isForward);
1836
+ });
1837
+ return true;
1838
+ }
1839
+ }
1840
+ return false;
1841
+ };
1842
+ var backspaceDeleteCaret = function (editor, isForward) {
1843
+ return backspaceDeleteFromListToListCaret(editor, isForward) || backspaceDeleteIntoListCaret(editor, isForward);
1844
+ };
1845
+ var hasListSelection = function (editor) {
1846
+ var selectionStartElm = editor.selection.getStart();
1847
+ var root = getClosestEditingHost(editor, selectionStartElm);
1848
+ var startListParent = editor.dom.getParent(selectionStartElm, 'LI,DT,DD', root);
1849
+ return startListParent || getSelectedListItems(editor).length > 0;
1850
+ };
1851
+ var backspaceDeleteRange = function (editor) {
1852
+ if (hasListSelection(editor)) {
1853
+ editor.undoManager.transact(function () {
1854
+ editor.execCommand('Delete');
1855
+ normalizeLists(editor.dom, editor.getBody());
1856
+ });
1857
+ return true;
1858
+ }
1859
+ return false;
1860
+ };
1861
+ var backspaceDelete = function (editor, isForward) {
1862
+ var selection = editor.selection;
1863
+ return !isWithinNonEditableList(editor, selection.getNode()) && (selection.isCollapsed() ? backspaceDeleteCaret(editor, isForward) : backspaceDeleteRange(editor));
1864
+ };
1865
+ var setup$2 = function (editor) {
1866
+ editor.on('ExecCommand', function (e) {
1867
+ var cmd = e.command.toLowerCase();
1868
+ if ((cmd === 'delete' || cmd === 'forwarddelete') && hasListSelection(editor)) {
1869
+ normalizeLists(editor.dom, editor.getBody());
1870
+ }
1871
+ });
1872
+ editor.on('keydown', function (e) {
1873
+ if (e.keyCode === global$4.BACKSPACE) {
1874
+ if (backspaceDelete(editor, false)) {
1875
+ e.preventDefault();
1876
+ }
1877
+ }
1878
+ else if (e.keyCode === global$4.DELETE) {
1879
+ if (backspaceDelete(editor, true)) {
1880
+ e.preventDefault();
1881
+ }
1882
+ }
1883
+ });
1884
+ };
1885
+ var get = function (editor) { return ({
1886
+ backspaceDelete: function (isForward) {
1887
+ backspaceDelete(editor, isForward);
1888
+ }
1889
+ }); };
1890
+ var updateList = function (editor, update) {
1891
+ var parentList = getParentList(editor);
1892
+ if (parentList === null || isWithinNonEditableList(editor, parentList)) {
1893
+ return;
1894
+ }
1895
+ editor.undoManager.transact(function () {
1896
+ if (isObject(update.styles)) {
1897
+ editor.dom.setStyles(parentList, update.styles);
1898
+ }
1899
+ if (isObject(update.attrs)) {
1900
+ each(update.attrs, function (v, k) { return editor.dom.setAttrib(parentList, k, v); });
1901
+ }
1902
+ });
1903
+ };
1904
+ var parseAlphabeticBase26 = function (str) {
1905
+ var chars = reverse(trim(str).split(''));
1906
+ var values = map(chars, function (char, i) {
1907
+ var charValue = char.toUpperCase().charCodeAt(0) - 'A'.charCodeAt(0) + 1;
1908
+ return Math.pow(26, i) * charValue;
1909
+ });
1910
+ return foldl(values, function (sum, v) { return sum + v; }, 0);
1911
+ };
1912
+ var composeAlphabeticBase26 = function (value) {
1913
+ value--;
1914
+ if (value < 0) {
1915
+ return '';
1916
+ }
1917
+ else {
1918
+ var remainder = value % 26;
1919
+ var quotient = Math.floor(value / 26);
1920
+ var rest = composeAlphabeticBase26(quotient);
1921
+ var char = String.fromCharCode('A'.charCodeAt(0) + remainder);
1922
+ return rest + char;
1923
+ }
1924
+ };
1925
+ var isUppercase = function (str) { return /^[A-Z]+$/.test(str); };
1926
+ var isLowercase = function (str) { return /^[a-z]+$/.test(str); };
1927
+ var isNumeric = function (str) { return /^[0-9]+$/.test(str); };
1928
+ var deduceListType = function (start) {
1929
+ if (isNumeric(start)) {
1930
+ return 2;
1931
+ }
1932
+ else if (isUppercase(start)) {
1933
+ return 0;
1934
+ }
1935
+ else if (isLowercase(start)) {
1936
+ return 1;
1937
+ }
1938
+ else if (isEmpty$1(start)) {
1939
+ return 3;
1940
+ }
1941
+ else {
1942
+ return 4;
1943
+ }
1944
+ };
1945
+ var parseStartValue = function (start) {
1946
+ switch (deduceListType(start)) {
1947
+ case 2:
1948
+ return Optional.some({
1949
+ listStyleType: Optional.none(),
1950
+ start: start
1951
+ });
1952
+ case 0:
1953
+ return Optional.some({
1954
+ listStyleType: Optional.some('upper-alpha'),
1955
+ start: parseAlphabeticBase26(start).toString()
1956
+ });
1957
+ case 1:
1958
+ return Optional.some({
1959
+ listStyleType: Optional.some('lower-alpha'),
1960
+ start: parseAlphabeticBase26(start).toString()
1961
+ });
1962
+ case 3:
1963
+ return Optional.some({
1964
+ listStyleType: Optional.none(),
1965
+ start: ''
1966
+ });
1967
+ case 4:
1968
+ return Optional.none();
1969
+ }
1970
+ };
1971
+ var parseDetail = function (detail) {
1972
+ var start = parseInt(detail.start, 10);
1973
+ if (is$2(detail.listStyleType, 'upper-alpha')) {
1974
+ return composeAlphabeticBase26(start);
1975
+ }
1976
+ else if (is$2(detail.listStyleType, 'lower-alpha')) {
1977
+ return composeAlphabeticBase26(start).toLowerCase();
1978
+ }
1979
+ else {
1980
+ return detail.start;
1981
+ }
1982
+ };
1983
+ var open = function (editor) {
1984
+ var currentList = getParentList(editor);
1985
+ if (!isOlNode(currentList) || isWithinNonEditableList(editor, currentList)) {
1986
+ return;
1987
+ }
1988
+ editor.windowManager.open({
1989
+ title: 'List Properties',
1990
+ body: {
1991
+ type: 'panel',
1992
+ items: [{
1993
+ type: 'input',
1994
+ name: 'start',
1995
+ label: 'Start list at number',
1996
+ inputMode: 'numeric'
1997
+ }]
1998
+ },
1999
+ initialData: {
2000
+ start: parseDetail({
2001
+ start: editor.dom.getAttrib(currentList, 'start', '1'),
2002
+ listStyleType: Optional.from(editor.dom.getStyle(currentList, 'list-style-type'))
2003
+ })
2004
+ },
2005
+ buttons: [
2006
+ {
2007
+ type: 'cancel',
2008
+ name: 'cancel',
2009
+ text: 'Cancel'
2010
+ },
2011
+ {
2012
+ type: 'submit',
2013
+ name: 'save',
2014
+ text: 'Save',
2015
+ primary: true
2016
+ }
2017
+ ],
2018
+ onSubmit: function (api) {
2019
+ var data = api.getData();
2020
+ parseStartValue(data.start).each(function (detail) {
2021
+ editor.execCommand('mceListUpdate', false, {
2022
+ attrs: { start: detail.start === '1' ? '' : detail.start },
2023
+ styles: { 'list-style-type': detail.listStyleType.getOr('') }
2024
+ });
2025
+ });
2026
+ api.close();
2027
+ }
2028
+ });
2029
+ };
2030
+ var queryListCommandState = function (editor, listName) { return function () {
2031
+ var parentList = getParentList(editor);
2032
+ return isNonNullable(parentList) && parentList.nodeName === listName;
2033
+ }; };
2034
+ var registerDialog = function (editor) {
2035
+ editor.addCommand('mceListProps', function () {
2036
+ open(editor);
2037
+ });
2038
+ };
2039
+ var register$2 = function (editor) {
2040
+ editor.on('BeforeExecCommand', function (e) {
2041
+ var cmd = e.command.toLowerCase();
2042
+ if (cmd === 'indent') {
2043
+ indentListSelection(editor);
2044
+ }
2045
+ else if (cmd === 'outdent') {
2046
+ outdentListSelection(editor);
2047
+ }
2048
+ });
2049
+ editor.addCommand('InsertUnorderedList', function (ui, detail) {
2050
+ toggleList(editor, 'UL', detail);
2051
+ });
2052
+ editor.addCommand('InsertOrderedList', function (ui, detail) {
2053
+ toggleList(editor, 'OL', detail);
2054
+ });
2055
+ editor.addCommand('InsertDefinitionList', function (ui, detail) {
2056
+ toggleList(editor, 'DL', detail);
2057
+ });
2058
+ editor.addCommand('RemoveList', function () {
2059
+ flattenListSelection(editor);
2060
+ });
2061
+ registerDialog(editor);
2062
+ editor.addCommand('mceListUpdate', function (ui, detail) {
2063
+ if (isObject(detail)) {
2064
+ updateList(editor, detail);
2065
+ }
2066
+ });
2067
+ editor.addQueryStateHandler('InsertUnorderedList', queryListCommandState(editor, 'UL'));
2068
+ editor.addQueryStateHandler('InsertOrderedList', queryListCommandState(editor, 'OL'));
2069
+ editor.addQueryStateHandler('InsertDefinitionList', queryListCommandState(editor, 'DL'));
2070
+ };
2071
+ var global = tinymce.util.Tools.resolve('tinymce.html.Node');
2072
+ var isTextNode = function (node) { return node.type === 3; };
2073
+ var isEmpty = function (nodeBuffer) { return nodeBuffer.length === 0; };
2074
+ var wrapInvalidChildren = function (list) {
2075
+ var insertListItem = function (buffer, refNode) {
2076
+ var li = global.create('li');
2077
+ each$1(buffer, function (node) { return li.append(node); });
2078
+ if (refNode) {
2079
+ list.insert(li, refNode, true);
2080
+ }
2081
+ else {
2082
+ list.append(li);
2083
+ }
2084
+ };
2085
+ var reducer = function (buffer, node) {
2086
+ if (isTextNode(node)) {
2087
+ return __spreadArray(__spreadArray([], buffer, true), [
2088
+ node
2089
+ ], false);
2090
+ }
2091
+ else if (!isEmpty(buffer) && !isTextNode(node)) {
2092
+ insertListItem(buffer, node);
2093
+ return [];
2094
+ }
2095
+ else {
2096
+ return buffer;
2097
+ }
2098
+ };
2099
+ var restBuffer = foldl(list.children(), reducer, []);
2100
+ if (!isEmpty(restBuffer)) {
2101
+ insertListItem(restBuffer);
2102
+ }
2103
+ };
2104
+ var setup$1 = function (editor) {
2105
+ editor.on('PreInit', function () {
2106
+ var parser = editor.parser;
2107
+ parser.addNodeFilter('ul,ol', function (nodes) { return each$1(nodes, wrapInvalidChildren); });
2108
+ });
2109
+ };
2110
+ var setupTabKey = function (editor) {
2111
+ editor.on('keydown', function (e) {
2112
+ if (e.keyCode !== global$4.TAB || global$4.metaKeyPressed(e)) {
2113
+ return;
2114
+ }
2115
+ editor.undoManager.transact(function () {
2116
+ if (e.shiftKey ? outdentListSelection(editor) : indentListSelection(editor)) {
2117
+ e.preventDefault();
2118
+ }
2119
+ });
2120
+ });
2121
+ };
2122
+ var setup = function (editor) {
2123
+ if (shouldIndentOnTab(editor)) {
2124
+ setupTabKey(editor);
2125
+ }
2126
+ setup$2(editor);
2127
+ };
2128
+ var setupToggleButtonHandler = function (editor, listName) { return function (api) {
2129
+ var toggleButtonHandler = function (e) {
2130
+ api.setActive(inList(e.parents, listName));
2131
+ api.setEnabled(!isWithinNonEditableList(editor, e.element) && editor.selection.isEditable());
2132
+ };
2133
+ api.setEnabled(editor.selection.isEditable());
2134
+ return setNodeChangeHandler(editor, toggleButtonHandler);
2135
+ }; };
2136
+ var register$1 = function (editor) {
2137
+ var exec = function (command) { return function () { return editor.execCommand(command); }; };
2138
+ if (!editor.hasPlugin('advlist')) {
2139
+ editor.ui.registry.addToggleButton('numlist', {
2140
+ icon: 'ordered-list',
2141
+ active: false,
2142
+ tooltip: 'Numbered list',
2143
+ onAction: exec('InsertOrderedList'),
2144
+ onSetup: setupToggleButtonHandler(editor, 'OL')
2145
+ });
2146
+ editor.ui.registry.addToggleButton('bullist', {
2147
+ icon: 'unordered-list',
2148
+ active: false,
2149
+ tooltip: 'Bullet list',
2150
+ onAction: exec('InsertUnorderedList'),
2151
+ onSetup: setupToggleButtonHandler(editor, 'UL')
2152
+ });
2153
+ }
2154
+ };
2155
+ var setupMenuButtonHandler = function (editor, listName) { return function (api) {
2156
+ var menuButtonHandler = function (e) { return api.setEnabled(inList(e.parents, listName) && !isWithinNonEditableList(editor, e.element)); };
2157
+ return setNodeChangeHandler(editor, menuButtonHandler);
2158
+ }; };
2159
+ var register = function (editor) {
2160
+ var listProperties = {
2161
+ text: 'List properties...',
2162
+ icon: 'ordered-list',
2163
+ onAction: function () { return editor.execCommand('mceListProps'); },
2164
+ onSetup: setupMenuButtonHandler(editor, 'OL')
2165
+ };
2166
+ editor.ui.registry.addMenuItem('listprops', listProperties);
2167
+ editor.ui.registry.addContextMenu('lists', {
2168
+ update: function (node) {
2169
+ var parentList = getParentList(editor, node);
2170
+ return isOlNode(parentList) ? ['listprops'] : [];
2171
+ }
2172
+ });
2173
+ };
2174
+ var Plugin = function () {
2175
+ global$7.add('lists', function (editor) {
2176
+ register$3(editor);
2177
+ setup$1(editor);
2178
+ if (!editor.hasPlugin('rtc', true)) {
2179
+ setup(editor);
2180
+ register$2(editor);
2181
+ }
2182
+ else {
2183
+ registerDialog(editor);
2184
+ }
2185
+ register$1(editor);
2186
+ register(editor);
2187
+ return get(editor);
2188
+ });
2189
+ };
2190
+ Plugin();
2191
+ })();