tinymce-rails 5.5.1 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/source/tinymce/tinymce.js +780 -450
- data/lib/tinymce/rails/version.rb +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/advlist/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/anchor/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/autolink/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/autoresize/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/autosave/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/bbcode/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/charmap/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/code/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/codesample/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/colorpicker/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/contextmenu/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/directionality/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/emoticons/js/emojiimages.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/emoticons/js/emojis.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/emoticons/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/fullpage/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/fullscreen/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/help/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/hr/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/image/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/imagetools/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/importcss/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/insertdatetime/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/legacyoutput/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/link/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/lists/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/media/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/nonbreaking/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/noneditable/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/pagebreak/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/paste/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/preview/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/print/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/quickbars/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/save/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/searchreplace/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/spellchecker/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/tabfocus/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/table/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/template/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/textcolor/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/textpattern/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/toc/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/visualblocks/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/visualchars/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/wordcount/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.inline.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.shadowdom.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.inline.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.inline.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.shadowdom.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.shadowdom.min.css +7 -0
- data/vendor/assets/javascripts/tinymce/themes/mobile/theme.js +2 -2
- data/vendor/assets/javascripts/tinymce/themes/silver/theme.js +2 -2
- data/vendor/assets/javascripts/tinymce/tinymce.d.ts +174 -78
- data/vendor/assets/javascripts/tinymce/tinymce.js +2 -2
- metadata +7 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 159f4e2fdda26948b13381017ab9afdb2d87015b6614135910505a7536d7e46f
|
|
4
|
+
data.tar.gz: 7a23784af13bed8369f6dd42e1b8c0de9b1791cabfa511889df796557b32666a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d36b43a193e73f2d63120bbea00e6cbb253b5fa225dcdce7e05e1d8cd803f2d3226458a4d4a85c0cc5f6df67235db160c83b8c6a26b0c95b6219d6c2925e1e39
|
|
7
|
+
data.tar.gz: 933b751478bcf2b5d2fcc6010311bccefb8bc1e65af5580d7c7ff1057cd0ec45e7e57135025b565ca17ce685263794e91945b50bc072f3f20b3cc9f8e0492eb5
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* For LGPL see License.txt in the project root for license information.
|
|
5
5
|
* For commercial licenses see https://www.tiny.cloud/
|
|
6
6
|
*
|
|
7
|
-
* Version: 5.
|
|
7
|
+
* Version: 5.6.0 (2020-11-18)
|
|
8
8
|
*/
|
|
9
9
|
(function () {
|
|
10
10
|
'use strict';
|
|
@@ -157,6 +157,9 @@
|
|
|
157
157
|
throw new Error(msg);
|
|
158
158
|
};
|
|
159
159
|
};
|
|
160
|
+
var call = function (f) {
|
|
161
|
+
f();
|
|
162
|
+
};
|
|
160
163
|
var never = constant(false);
|
|
161
164
|
var always = constant(true);
|
|
162
165
|
|
|
@@ -454,15 +457,27 @@
|
|
|
454
457
|
copy.sort(comparator);
|
|
455
458
|
return copy;
|
|
456
459
|
};
|
|
460
|
+
var get = function (xs, i) {
|
|
461
|
+
return i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();
|
|
462
|
+
};
|
|
457
463
|
var head = function (xs) {
|
|
458
|
-
return xs
|
|
464
|
+
return get(xs, 0);
|
|
459
465
|
};
|
|
460
466
|
var last = function (xs) {
|
|
461
|
-
return xs
|
|
467
|
+
return get(xs, xs.length - 1);
|
|
462
468
|
};
|
|
463
469
|
var from$1 = isFunction(Array.from) ? Array.from : function (x) {
|
|
464
470
|
return nativeSlice.call(x);
|
|
465
471
|
};
|
|
472
|
+
var findMap = function (arr, f) {
|
|
473
|
+
for (var i = 0; i < arr.length; i++) {
|
|
474
|
+
var r = f(arr[i], i);
|
|
475
|
+
if (r.isSome()) {
|
|
476
|
+
return r;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
return Optional.none();
|
|
480
|
+
};
|
|
466
481
|
|
|
467
482
|
var keys = Object.keys;
|
|
468
483
|
var hasOwnProperty = Object.hasOwnProperty;
|
|
@@ -528,12 +543,15 @@
|
|
|
528
543
|
return v;
|
|
529
544
|
});
|
|
530
545
|
};
|
|
531
|
-
var get = function (obj, key) {
|
|
546
|
+
var get$1 = function (obj, key) {
|
|
532
547
|
return has(obj, key) ? Optional.from(obj[key]) : Optional.none();
|
|
533
548
|
};
|
|
534
549
|
var has = function (obj, key) {
|
|
535
550
|
return hasOwnProperty.call(obj, key);
|
|
536
551
|
};
|
|
552
|
+
var hasNonNullableKey = function (obj, key) {
|
|
553
|
+
return has(obj, key) && obj[key] !== undefined && obj[key] !== null;
|
|
554
|
+
};
|
|
537
555
|
var equal = function (a1, a2, eq) {
|
|
538
556
|
if (eq === void 0) {
|
|
539
557
|
eq = eqAny;
|
|
@@ -766,9 +784,16 @@
|
|
|
766
784
|
detectOs: detectOs
|
|
767
785
|
};
|
|
768
786
|
|
|
787
|
+
var removeFromStart = function (str, numChars) {
|
|
788
|
+
return str.substring(numChars);
|
|
789
|
+
};
|
|
790
|
+
|
|
769
791
|
var checkRange = function (str, substr, start) {
|
|
770
792
|
return substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;
|
|
771
793
|
};
|
|
794
|
+
var removeLeading = function (str, prefix) {
|
|
795
|
+
return startsWith(str, prefix) ? removeFromStart(str, prefix.length) : str;
|
|
796
|
+
};
|
|
772
797
|
var contains$1 = function (str, substr) {
|
|
773
798
|
return str.indexOf(substr) !== -1;
|
|
774
799
|
};
|
|
@@ -1617,7 +1642,7 @@
|
|
|
1617
1642
|
return boxPosition(dom);
|
|
1618
1643
|
};
|
|
1619
1644
|
|
|
1620
|
-
var get$
|
|
1645
|
+
var get$2 = function (_DOC) {
|
|
1621
1646
|
var doc = _DOC !== undefined ? _DOC.dom : document;
|
|
1622
1647
|
var x = doc.body.scrollLeft || doc.documentElement.scrollLeft;
|
|
1623
1648
|
var y = doc.body.scrollTop || doc.documentElement.scrollTop;
|
|
@@ -1639,7 +1664,7 @@
|
|
|
1639
1664
|
}
|
|
1640
1665
|
};
|
|
1641
1666
|
|
|
1642
|
-
var get$
|
|
1667
|
+
var get$3 = function (_win) {
|
|
1643
1668
|
var win = _win === undefined ? window : _win;
|
|
1644
1669
|
return Optional.from(win['visualViewport']);
|
|
1645
1670
|
};
|
|
@@ -1656,8 +1681,8 @@
|
|
|
1656
1681
|
var getBounds = function (_win) {
|
|
1657
1682
|
var win = _win === undefined ? window : _win;
|
|
1658
1683
|
var doc = win.document;
|
|
1659
|
-
var scroll = get$
|
|
1660
|
-
return get$
|
|
1684
|
+
var scroll = get$2(SugarElement.fromDom(doc));
|
|
1685
|
+
return get$3(win).fold(function () {
|
|
1661
1686
|
var html = win.document.documentElement;
|
|
1662
1687
|
var width = html.clientWidth;
|
|
1663
1688
|
var height = html.clientHeight;
|
|
@@ -1780,12 +1805,12 @@
|
|
|
1780
1805
|
rawSet(dom, k, v);
|
|
1781
1806
|
});
|
|
1782
1807
|
};
|
|
1783
|
-
var get$
|
|
1808
|
+
var get$4 = function (element, key) {
|
|
1784
1809
|
var v = element.dom.getAttribute(key);
|
|
1785
1810
|
return v === null ? undefined : v;
|
|
1786
1811
|
};
|
|
1787
1812
|
var getOpt = function (element, key) {
|
|
1788
|
-
return Optional.from(get$
|
|
1813
|
+
return Optional.from(get$4(element, key));
|
|
1789
1814
|
};
|
|
1790
1815
|
var has$1 = function (element, key) {
|
|
1791
1816
|
var dom = element.dom;
|
|
@@ -1816,7 +1841,7 @@
|
|
|
1816
1841
|
internalSet(dom, k, v);
|
|
1817
1842
|
});
|
|
1818
1843
|
};
|
|
1819
|
-
var get$
|
|
1844
|
+
var get$5 = function (element, property) {
|
|
1820
1845
|
var dom = element.dom;
|
|
1821
1846
|
var styles = window.getComputedStyle(dom);
|
|
1822
1847
|
var r = styles.getPropertyValue(property);
|
|
@@ -1876,7 +1901,7 @@
|
|
|
1876
1901
|
var pos;
|
|
1877
1902
|
rootElm = rootElm ? rootElm : body;
|
|
1878
1903
|
if (elm) {
|
|
1879
|
-
if (rootElm === body && elm.getBoundingClientRect && get$
|
|
1904
|
+
if (rootElm === body && elm.getBoundingClientRect && get$5(SugarElement.fromDom(body), 'position') === 'static') {
|
|
1880
1905
|
pos = elm.getBoundingClientRect();
|
|
1881
1906
|
x = pos.left + (doc.documentElement.scrollLeft || body.scrollLeft) - doc.documentElement.clientLeft;
|
|
1882
1907
|
y = pos.top + (doc.documentElement.scrollTop || body.scrollTop) - doc.documentElement.clientTop;
|
|
@@ -2757,7 +2782,13 @@
|
|
|
2757
2782
|
};
|
|
2758
2783
|
|
|
2759
2784
|
function ClosestOrAncestor (is, ancestor, scope, a, isRoot) {
|
|
2760
|
-
|
|
2785
|
+
if (is(scope, a)) {
|
|
2786
|
+
return Optional.some(scope);
|
|
2787
|
+
} else if (isFunction(isRoot) && isRoot(scope)) {
|
|
2788
|
+
return Optional.none();
|
|
2789
|
+
} else {
|
|
2790
|
+
return ancestor(scope, a, isRoot);
|
|
2791
|
+
}
|
|
2761
2792
|
}
|
|
2762
2793
|
|
|
2763
2794
|
var ancestor = function (scope, predicate, isRoot) {
|
|
@@ -2780,6 +2811,22 @@
|
|
|
2780
2811
|
};
|
|
2781
2812
|
return ClosestOrAncestor(is, ancestor, scope, predicate, isRoot);
|
|
2782
2813
|
};
|
|
2814
|
+
var sibling = function (scope, predicate) {
|
|
2815
|
+
var element = scope.dom;
|
|
2816
|
+
if (!element.parentNode) {
|
|
2817
|
+
return Optional.none();
|
|
2818
|
+
}
|
|
2819
|
+
return child$1(SugarElement.fromDom(element.parentNode), function (x) {
|
|
2820
|
+
return !eq$2(scope, x) && predicate(x);
|
|
2821
|
+
});
|
|
2822
|
+
};
|
|
2823
|
+
var child$1 = function (scope, predicate) {
|
|
2824
|
+
var pred = function (node) {
|
|
2825
|
+
return predicate(SugarElement.fromDom(node));
|
|
2826
|
+
};
|
|
2827
|
+
var result = find(scope.dom.childNodes, pred);
|
|
2828
|
+
return result.map(SugarElement.fromDom);
|
|
2829
|
+
};
|
|
2783
2830
|
|
|
2784
2831
|
var ancestor$1 = function (scope, selector, isRoot) {
|
|
2785
2832
|
return ancestor(scope, function (e) {
|
|
@@ -3078,7 +3125,7 @@
|
|
|
3078
3125
|
descendant(styleContainer, '#' + id).each(remove);
|
|
3079
3126
|
};
|
|
3080
3127
|
var getOrCreateState = function (url) {
|
|
3081
|
-
return get(loadedStates, url).getOrThunk(function () {
|
|
3128
|
+
return get$1(loadedStates, url).getOrThunk(function () {
|
|
3082
3129
|
return {
|
|
3083
3130
|
id: 'mce-u' + idCount++,
|
|
3084
3131
|
passed: [],
|
|
@@ -3193,7 +3240,7 @@
|
|
|
3193
3240
|
};
|
|
3194
3241
|
var unload = function (url) {
|
|
3195
3242
|
var urlWithSuffix = Tools._addCacheSuffix(url);
|
|
3196
|
-
get(loadedStates, urlWithSuffix).each(function (state) {
|
|
3243
|
+
get$1(loadedStates, urlWithSuffix).each(function (state) {
|
|
3197
3244
|
var count = --state.count;
|
|
3198
3245
|
if (count === 0) {
|
|
3199
3246
|
delete loadedStates[urlWithSuffix];
|
|
@@ -4392,7 +4439,7 @@
|
|
|
4392
4439
|
elements[items[1]].outputName = items[0];
|
|
4393
4440
|
});
|
|
4394
4441
|
}
|
|
4395
|
-
each$3(split('ol ul sub sup blockquote span font a table tbody
|
|
4442
|
+
each$3(split('ol ul sub sup blockquote span font a table tbody strong em b i'), function (name) {
|
|
4396
4443
|
if (elements[name]) {
|
|
4397
4444
|
elements[name].removeEmpty = true;
|
|
4398
4445
|
}
|
|
@@ -4873,13 +4920,16 @@
|
|
|
4873
4920
|
eventUtils.domLoaded = true;
|
|
4874
4921
|
callback(event);
|
|
4875
4922
|
}
|
|
4923
|
+
win = null;
|
|
4876
4924
|
};
|
|
4877
4925
|
if (isDocReady()) {
|
|
4878
4926
|
readyHandler();
|
|
4879
4927
|
} else {
|
|
4880
4928
|
addEvent(win, 'DOMContentLoaded', readyHandler);
|
|
4881
4929
|
}
|
|
4882
|
-
|
|
4930
|
+
if (!eventUtils.domLoaded) {
|
|
4931
|
+
addEvent(win, 'load', readyHandler);
|
|
4932
|
+
}
|
|
4883
4933
|
};
|
|
4884
4934
|
var EventUtils = function () {
|
|
4885
4935
|
function EventUtils() {
|
|
@@ -6778,7 +6828,7 @@
|
|
|
6778
6828
|
}
|
|
6779
6829
|
return matched;
|
|
6780
6830
|
};
|
|
6781
|
-
var sibling = function (node, siblingName, nodeType, until) {
|
|
6831
|
+
var sibling$1 = function (node, siblingName, nodeType, until) {
|
|
6782
6832
|
var result = [];
|
|
6783
6833
|
if (until instanceof DomQuery) {
|
|
6784
6834
|
until = until[0];
|
|
@@ -6822,7 +6872,7 @@
|
|
|
6822
6872
|
return firstSibling(node, 'previousSibling', 1);
|
|
6823
6873
|
},
|
|
6824
6874
|
children: function (node) {
|
|
6825
|
-
return sibling(node.firstChild, 'nextSibling', 1);
|
|
6875
|
+
return sibling$1(node.firstChild, 'nextSibling', 1);
|
|
6826
6876
|
},
|
|
6827
6877
|
contents: function (node) {
|
|
6828
6878
|
return Tools.toArray((node.nodeName === 'iframe' ? node.contentDocument || node.contentWindow.document : node).childNodes);
|
|
@@ -6861,10 +6911,10 @@
|
|
|
6861
6911
|
return dir(node, 'parentNode', until);
|
|
6862
6912
|
},
|
|
6863
6913
|
nextUntil: function (node, until) {
|
|
6864
|
-
return sibling(node, 'nextSibling', 1, until).slice(1);
|
|
6914
|
+
return sibling$1(node, 'nextSibling', 1, until).slice(1);
|
|
6865
6915
|
},
|
|
6866
6916
|
prevUntil: function (node, until) {
|
|
6867
|
-
return sibling(node, 'previousSibling', 1, until).slice(1);
|
|
6917
|
+
return sibling$1(node, 'previousSibling', 1, until).slice(1);
|
|
6868
6918
|
}
|
|
6869
6919
|
}, function (name, fn) {
|
|
6870
6920
|
DomQueryConstructor.fn[name] = function (selector, filter) {
|
|
@@ -7201,7 +7251,7 @@
|
|
|
7201
7251
|
}
|
|
7202
7252
|
}
|
|
7203
7253
|
while (node) {
|
|
7204
|
-
if (node === root ||
|
|
7254
|
+
if (node === root || isNullable(node.nodeType) || isDocument$1(node) || isDocumentFragment$1(node)) {
|
|
7205
7255
|
break;
|
|
7206
7256
|
}
|
|
7207
7257
|
if (!selector || typeof selector === 'function' && selector(node)) {
|
|
@@ -7795,14 +7845,18 @@
|
|
|
7795
7845
|
ScriptLoader.prototype.loadScript = function (url, success, failure) {
|
|
7796
7846
|
var dom = DOM;
|
|
7797
7847
|
var elm;
|
|
7798
|
-
var
|
|
7848
|
+
var cleanup = function () {
|
|
7799
7849
|
dom.remove(id);
|
|
7800
7850
|
if (elm) {
|
|
7801
|
-
elm.
|
|
7851
|
+
elm.onerror = elm.onload = elm = null;
|
|
7802
7852
|
}
|
|
7853
|
+
};
|
|
7854
|
+
var done = function () {
|
|
7855
|
+
cleanup();
|
|
7803
7856
|
success();
|
|
7804
7857
|
};
|
|
7805
7858
|
var error = function () {
|
|
7859
|
+
cleanup();
|
|
7806
7860
|
if (isFunction(failure)) {
|
|
7807
7861
|
failure();
|
|
7808
7862
|
} else {
|
|
@@ -7831,8 +7885,8 @@
|
|
|
7831
7885
|
};
|
|
7832
7886
|
ScriptLoader.prototype.add = function (url, success, scope, failure) {
|
|
7833
7887
|
var state = this.states[url];
|
|
7888
|
+
this.queue.push(url);
|
|
7834
7889
|
if (state === undefined) {
|
|
7835
|
-
this.queue.push(url);
|
|
7836
7890
|
this.states[url] = QUEUED;
|
|
7837
7891
|
}
|
|
7838
7892
|
if (success) {
|
|
@@ -7946,7 +8000,7 @@
|
|
|
7946
8000
|
var data = {};
|
|
7947
8001
|
var currentCode = Cell('en');
|
|
7948
8002
|
var getLanguageData = function () {
|
|
7949
|
-
return get(data, currentCode.get());
|
|
8003
|
+
return get$1(data, currentCode.get());
|
|
7950
8004
|
};
|
|
7951
8005
|
var getData = function () {
|
|
7952
8006
|
return map$1(data, function (value) {
|
|
@@ -7983,7 +8037,7 @@
|
|
|
7983
8037
|
};
|
|
7984
8038
|
var getLangData = function (text) {
|
|
7985
8039
|
var textstr = toString(text);
|
|
7986
|
-
return get(langData, textstr.toLowerCase()).map(toString).getOr(textstr);
|
|
8040
|
+
return get$1(langData, textstr.toLowerCase()).map(toString).getOr(textstr);
|
|
7987
8041
|
};
|
|
7988
8042
|
var removeContext = function (str) {
|
|
7989
8043
|
return str.replace(/{context:\w+}$/, '');
|
|
@@ -8005,7 +8059,7 @@
|
|
|
8005
8059
|
};
|
|
8006
8060
|
var isRtl = function () {
|
|
8007
8061
|
return getLanguageData().bind(function (items) {
|
|
8008
|
-
return get(items, '_dir');
|
|
8062
|
+
return get$1(items, '_dir');
|
|
8009
8063
|
}).exists(function (dir) {
|
|
8010
8064
|
return dir === 'rtl';
|
|
8011
8065
|
});
|
|
@@ -8220,7 +8274,7 @@
|
|
|
8220
8274
|
};
|
|
8221
8275
|
|
|
8222
8276
|
var read = function (element, attr) {
|
|
8223
|
-
var value = get$
|
|
8277
|
+
var value = get$4(element, attr);
|
|
8224
8278
|
return value === undefined || value === '' ? [] : value.split(' ');
|
|
8225
8279
|
};
|
|
8226
8280
|
var add$1 = function (element, attr, id) {
|
|
@@ -8244,7 +8298,7 @@
|
|
|
8244
8298
|
var supports = function (element) {
|
|
8245
8299
|
return element.dom.classList !== undefined;
|
|
8246
8300
|
};
|
|
8247
|
-
var get$
|
|
8301
|
+
var get$6 = function (element) {
|
|
8248
8302
|
return read(element, 'class');
|
|
8249
8303
|
};
|
|
8250
8304
|
var add$2 = function (element, clazz) {
|
|
@@ -8262,7 +8316,7 @@
|
|
|
8262
8316
|
}
|
|
8263
8317
|
};
|
|
8264
8318
|
var cleanClass = function (element) {
|
|
8265
|
-
var classList = supports(element) ? element.dom.classList : get$
|
|
8319
|
+
var classList = supports(element) ? element.dom.classList : get$6(element);
|
|
8266
8320
|
if (classList.length === 0) {
|
|
8267
8321
|
remove$1(element, 'class');
|
|
8268
8322
|
}
|
|
@@ -8314,7 +8368,7 @@
|
|
|
8314
8368
|
});
|
|
8315
8369
|
var getAttr = function (c, property) {
|
|
8316
8370
|
if (has$1(c, property)) {
|
|
8317
|
-
return Optional.some(get$
|
|
8371
|
+
return Optional.some(get$4(c, property));
|
|
8318
8372
|
} else {
|
|
8319
8373
|
return Optional.none();
|
|
8320
8374
|
}
|
|
@@ -8344,7 +8398,7 @@
|
|
|
8344
8398
|
var markers = descendants$1(body, '[' + dataAnnotation() + '="' + name + '"]');
|
|
8345
8399
|
var directory = {};
|
|
8346
8400
|
each(markers, function (m) {
|
|
8347
|
-
var uid = get$
|
|
8401
|
+
var uid = get$4(m, dataAnnotationId());
|
|
8348
8402
|
var nodesAlready = directory.hasOwnProperty(uid) ? directory[uid] : [];
|
|
8349
8403
|
directory[uid] = nodesAlready.concat([m]);
|
|
8350
8404
|
});
|
|
@@ -8491,7 +8545,7 @@
|
|
|
8491
8545
|
return children(SugarElement.fromDom(div));
|
|
8492
8546
|
};
|
|
8493
8547
|
|
|
8494
|
-
var get$
|
|
8548
|
+
var get$7 = function (element) {
|
|
8495
8549
|
return element.dom.innerHTML;
|
|
8496
8550
|
};
|
|
8497
8551
|
var set$1 = function (element, content) {
|
|
@@ -9493,6 +9547,9 @@
|
|
|
9493
9547
|
return '';
|
|
9494
9548
|
}
|
|
9495
9549
|
};
|
|
9550
|
+
var canFormatEmptyLines = function (editor) {
|
|
9551
|
+
return editor.getParam('format_empty_lines', false, 'boolean');
|
|
9552
|
+
};
|
|
9496
9553
|
var getCustomUiSelector = function (editor) {
|
|
9497
9554
|
return editor.getParam('custom_ui_selector', '', 'string');
|
|
9498
9555
|
};
|
|
@@ -9541,6 +9598,15 @@
|
|
|
9541
9598
|
var shouldBlockUnsupportedDrop = function (editor) {
|
|
9542
9599
|
return editor.getParam('block_unsupported_drop', true, 'boolean');
|
|
9543
9600
|
};
|
|
9601
|
+
var isVisualAidsEnabled = function (editor) {
|
|
9602
|
+
return editor.getParam('visual', true, 'boolean');
|
|
9603
|
+
};
|
|
9604
|
+
var getVisualAidsTableClass = function (editor) {
|
|
9605
|
+
return editor.getParam('visual_table_class', 'mce-item-table', 'string');
|
|
9606
|
+
};
|
|
9607
|
+
var getVisualAidsAnchorClass = function (editor) {
|
|
9608
|
+
return editor.getParam('visual_anchor_class', 'mce-item-anchor', 'string');
|
|
9609
|
+
};
|
|
9544
9610
|
|
|
9545
9611
|
var isElement$4 = isElement$1;
|
|
9546
9612
|
var isText$6 = isText$1;
|
|
@@ -10528,11 +10594,19 @@
|
|
|
10528
10594
|
var isValid = function (ed, parent, child) {
|
|
10529
10595
|
return ed.schema.isValidChild(parent, child);
|
|
10530
10596
|
};
|
|
10531
|
-
var isWhiteSpaceNode = function (node) {
|
|
10532
|
-
|
|
10597
|
+
var isWhiteSpaceNode = function (node, allowSpaces) {
|
|
10598
|
+
if (allowSpaces === void 0) {
|
|
10599
|
+
allowSpaces = false;
|
|
10600
|
+
}
|
|
10601
|
+
if (isNonNullable(node) && isText$1(node)) {
|
|
10602
|
+
var data = allowSpaces ? node.data.replace(/ /g, '\xA0') : node.data;
|
|
10603
|
+
return isWhitespaceText(data);
|
|
10604
|
+
} else {
|
|
10605
|
+
return false;
|
|
10606
|
+
}
|
|
10533
10607
|
};
|
|
10534
10608
|
var isEmptyTextNode = function (node) {
|
|
10535
|
-
return node && isText$1(node) && node.length === 0;
|
|
10609
|
+
return isNonNullable(node) && isText$1(node) && node.length === 0;
|
|
10536
10610
|
};
|
|
10537
10611
|
var replaceVars = function (value, vars) {
|
|
10538
10612
|
if (typeof value !== 'string') {
|
|
@@ -10586,7 +10660,7 @@
|
|
|
10586
10660
|
'styles',
|
|
10587
10661
|
'attributes'
|
|
10588
10662
|
], function (key) {
|
|
10589
|
-
return get(format, key).exists(function (field) {
|
|
10663
|
+
return get$1(format, key).exists(function (field) {
|
|
10590
10664
|
var fieldValues = isArray(field) ? field : values(field);
|
|
10591
10665
|
return exists(fieldValues, isVariableValue);
|
|
10592
10666
|
});
|
|
@@ -10618,13 +10692,22 @@
|
|
|
10618
10692
|
});
|
|
10619
10693
|
});
|
|
10620
10694
|
};
|
|
10695
|
+
var isBlockFormat = function (format) {
|
|
10696
|
+
return hasNonNullableKey(format, 'block');
|
|
10697
|
+
};
|
|
10698
|
+
var isSelectorFormat = function (format) {
|
|
10699
|
+
return hasNonNullableKey(format, 'selector');
|
|
10700
|
+
};
|
|
10701
|
+
var isInlineFormat = function (format) {
|
|
10702
|
+
return hasNonNullableKey(format, 'inline');
|
|
10703
|
+
};
|
|
10621
10704
|
|
|
10622
10705
|
var isBookmarkNode$2 = isBookmarkNode$1;
|
|
10623
10706
|
var getParents$2 = getParents$1;
|
|
10624
10707
|
var isWhiteSpaceNode$1 = isWhiteSpaceNode;
|
|
10625
10708
|
var isTextBlock$2 = isTextBlock$1;
|
|
10626
10709
|
var isBogusBr = function (node) {
|
|
10627
|
-
return node
|
|
10710
|
+
return isBr(node) && node.getAttribute('data-mce-bogus') && !node.nextSibling;
|
|
10628
10711
|
};
|
|
10629
10712
|
var findParentContentEditable = function (dom, node) {
|
|
10630
10713
|
var parent = node;
|
|
@@ -10723,13 +10806,23 @@
|
|
|
10723
10806
|
}
|
|
10724
10807
|
return node || container;
|
|
10725
10808
|
};
|
|
10726
|
-
var
|
|
10727
|
-
var
|
|
10728
|
-
container
|
|
10809
|
+
var isAtBlockBoundary = function (dom, root, container, siblingName) {
|
|
10810
|
+
var parent = container.parentNode;
|
|
10811
|
+
if (isNonNullable(container[siblingName])) {
|
|
10812
|
+
return false;
|
|
10813
|
+
} else if (parent === root || isNullable(parent) || dom.isBlock(parent)) {
|
|
10814
|
+
return true;
|
|
10815
|
+
} else {
|
|
10816
|
+
return isAtBlockBoundary(dom, root, parent, siblingName);
|
|
10817
|
+
}
|
|
10818
|
+
};
|
|
10819
|
+
var findParentContainer = function (dom, format, container, offset, start) {
|
|
10820
|
+
var parent = container;
|
|
10821
|
+
var sibling;
|
|
10729
10822
|
var siblingName = start ? 'previousSibling' : 'nextSibling';
|
|
10730
10823
|
var root = dom.getRoot();
|
|
10731
10824
|
if (isText$1(container) && !isWhiteSpaceNode$1(container)) {
|
|
10732
|
-
if (start ?
|
|
10825
|
+
if (start ? offset > 0 : offset < container.data.length) {
|
|
10733
10826
|
return container;
|
|
10734
10827
|
}
|
|
10735
10828
|
}
|
|
@@ -10738,7 +10831,8 @@
|
|
|
10738
10831
|
return parent;
|
|
10739
10832
|
}
|
|
10740
10833
|
for (sibling = parent[siblingName]; sibling; sibling = sibling[siblingName]) {
|
|
10741
|
-
|
|
10834
|
+
var allowSpaces = isText$1(sibling) && !isAtBlockBoundary(dom, root, sibling, siblingName);
|
|
10835
|
+
if (!isBookmarkNode$2(sibling) && !isBogusBr(sibling) && !isWhiteSpaceNode$1(sibling, allowSpaces)) {
|
|
10742
10836
|
return parent;
|
|
10743
10837
|
}
|
|
10744
10838
|
}
|
|
@@ -10750,6 +10844,9 @@
|
|
|
10750
10844
|
}
|
|
10751
10845
|
return container;
|
|
10752
10846
|
};
|
|
10847
|
+
var isSelfOrParentBookmark = function (container) {
|
|
10848
|
+
return isBookmarkNode$2(container.parentNode) || isBookmarkNode$2(container);
|
|
10849
|
+
};
|
|
10753
10850
|
var expandRng = function (editor, rng, format, includeTrailingSpace) {
|
|
10754
10851
|
if (includeTrailingSpace === void 0) {
|
|
10755
10852
|
includeTrailingSpace = false;
|
|
@@ -10770,7 +10867,7 @@
|
|
|
10770
10867
|
}
|
|
10771
10868
|
startContainer = findParentContentEditable(dom, startContainer);
|
|
10772
10869
|
endContainer = findParentContentEditable(dom, endContainer);
|
|
10773
|
-
if (
|
|
10870
|
+
if (isSelfOrParentBookmark(startContainer)) {
|
|
10774
10871
|
startContainer = isBookmarkNode$2(startContainer) ? startContainer : startContainer.parentNode;
|
|
10775
10872
|
if (rng.collapsed) {
|
|
10776
10873
|
startContainer = startContainer.previousSibling || startContainer;
|
|
@@ -10781,7 +10878,7 @@
|
|
|
10781
10878
|
startOffset = rng.collapsed ? startContainer.length : 0;
|
|
10782
10879
|
}
|
|
10783
10880
|
}
|
|
10784
|
-
if (
|
|
10881
|
+
if (isSelfOrParentBookmark(endContainer)) {
|
|
10785
10882
|
endContainer = isBookmarkNode$2(endContainer) ? endContainer : endContainer.parentNode;
|
|
10786
10883
|
if (rng.collapsed) {
|
|
10787
10884
|
endContainer = endContainer.nextSibling || endContainer;
|
|
@@ -10808,10 +10905,10 @@
|
|
|
10808
10905
|
}
|
|
10809
10906
|
if (format[0].inline || format[0].block_expand) {
|
|
10810
10907
|
if (!format[0].inline || (!isText$1(startContainer) || startOffset === 0)) {
|
|
10811
|
-
startContainer = findParentContainer(dom, format, startContainer, startOffset,
|
|
10908
|
+
startContainer = findParentContainer(dom, format, startContainer, startOffset, true);
|
|
10812
10909
|
}
|
|
10813
10910
|
if (!format[0].inline || (!isText$1(endContainer) || endOffset === endContainer.nodeValue.length)) {
|
|
10814
|
-
endContainer = findParentContainer(dom, format,
|
|
10911
|
+
endContainer = findParentContainer(dom, format, endContainer, endOffset, false);
|
|
10815
10912
|
}
|
|
10816
10913
|
}
|
|
10817
10914
|
if (format[0].selector && format[0].expand !== false && !format[0].inline) {
|
|
@@ -10823,10 +10920,10 @@
|
|
|
10823
10920
|
endContainer = findBlockEndPoint(editor, format, endContainer, 'nextSibling');
|
|
10824
10921
|
if (format[0].block) {
|
|
10825
10922
|
if (!dom.isBlock(startContainer)) {
|
|
10826
|
-
startContainer = findParentContainer(dom, format, startContainer, startOffset,
|
|
10923
|
+
startContainer = findParentContainer(dom, format, startContainer, startOffset, true);
|
|
10827
10924
|
}
|
|
10828
10925
|
if (!dom.isBlock(endContainer)) {
|
|
10829
|
-
endContainer = findParentContainer(dom, format,
|
|
10926
|
+
endContainer = findParentContainer(dom, format, endContainer, endOffset, false);
|
|
10830
10927
|
}
|
|
10831
10928
|
}
|
|
10832
10929
|
}
|
|
@@ -11098,12 +11195,12 @@
|
|
|
11098
11195
|
}
|
|
11099
11196
|
|
|
11100
11197
|
var api = NodeValue(isText, 'text');
|
|
11101
|
-
var get$
|
|
11198
|
+
var get$8 = function (element) {
|
|
11102
11199
|
return api.get(element);
|
|
11103
11200
|
};
|
|
11104
11201
|
|
|
11105
11202
|
var isZeroWidth = function (elem) {
|
|
11106
|
-
return isText(elem) && get$
|
|
11203
|
+
return isText(elem) && get$8(elem) === ZWSP;
|
|
11107
11204
|
};
|
|
11108
11205
|
var context = function (editor, elem, wrapName, nodeName) {
|
|
11109
11206
|
return parent(elem).fold(function () {
|
|
@@ -12052,7 +12149,7 @@
|
|
|
12052
12149
|
var get = function (element) {
|
|
12053
12150
|
var r = getOffset(element);
|
|
12054
12151
|
if (r <= 0 || r === null) {
|
|
12055
|
-
var css = get$
|
|
12152
|
+
var css = get$5(element, name);
|
|
12056
12153
|
return parseFloat(css) || 0;
|
|
12057
12154
|
}
|
|
12058
12155
|
return r;
|
|
@@ -12060,7 +12157,7 @@
|
|
|
12060
12157
|
var getOuter = get;
|
|
12061
12158
|
var aggregate = function (element, properties) {
|
|
12062
12159
|
return foldl(properties, function (acc, property) {
|
|
12063
|
-
var val = get$
|
|
12160
|
+
var val = get$5(element, property);
|
|
12064
12161
|
var value = val === undefined ? 0 : parseInt(val, 10);
|
|
12065
12162
|
return isNaN(value) ? acc : acc + value;
|
|
12066
12163
|
}, 0);
|
|
@@ -12083,7 +12180,7 @@
|
|
|
12083
12180
|
var dom = element.dom;
|
|
12084
12181
|
return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;
|
|
12085
12182
|
});
|
|
12086
|
-
var get$
|
|
12183
|
+
var get$9 = function (element) {
|
|
12087
12184
|
return api$1.get(element);
|
|
12088
12185
|
};
|
|
12089
12186
|
|
|
@@ -12117,7 +12214,7 @@
|
|
|
12117
12214
|
|
|
12118
12215
|
var find$2 = function (element) {
|
|
12119
12216
|
var doc = SugarElement.fromDom(document);
|
|
12120
|
-
var scroll = get$
|
|
12217
|
+
var scroll = get$2(doc);
|
|
12121
12218
|
var frames = pathTo(element, Navigation);
|
|
12122
12219
|
var offset = viewport(element);
|
|
12123
12220
|
var r = foldr(frames, function (b, a) {
|
|
@@ -12171,7 +12268,7 @@
|
|
|
12171
12268
|
} else if (isText(last)) {
|
|
12172
12269
|
return {
|
|
12173
12270
|
element: last,
|
|
12174
|
-
offset: get$
|
|
12271
|
+
offset: get$8(last).length
|
|
12175
12272
|
};
|
|
12176
12273
|
} else {
|
|
12177
12274
|
return {
|
|
@@ -12184,7 +12281,7 @@
|
|
|
12184
12281
|
};
|
|
12185
12282
|
var markerInfo = function (element, cleanupFun) {
|
|
12186
12283
|
var pos = absolute(element);
|
|
12187
|
-
var height = get$
|
|
12284
|
+
var height = get$9(element);
|
|
12188
12285
|
return {
|
|
12189
12286
|
element: element,
|
|
12190
12287
|
bottom: pos.top + height,
|
|
@@ -12217,7 +12314,7 @@
|
|
|
12217
12314
|
if (fireScrollIntoViewEvent(editor, data)) {
|
|
12218
12315
|
return;
|
|
12219
12316
|
}
|
|
12220
|
-
var scrollTop = get$
|
|
12317
|
+
var scrollTop = get$2(doc).top;
|
|
12221
12318
|
f(doc, scrollTop, marker, alignToTop);
|
|
12222
12319
|
fireAfterScrollIntoViewEvent(editor, data);
|
|
12223
12320
|
};
|
|
@@ -12415,7 +12512,7 @@
|
|
|
12415
12512
|
|
|
12416
12513
|
var browser$3 = detect$3().browser;
|
|
12417
12514
|
var clamp = function (offset, element) {
|
|
12418
|
-
var max = isText(element) ? get$
|
|
12515
|
+
var max = isText(element) ? get$8(element).length : children(element).length + 1;
|
|
12419
12516
|
if (offset > max) {
|
|
12420
12517
|
return max;
|
|
12421
12518
|
} else if (offset < 0) {
|
|
@@ -12841,6 +12938,200 @@
|
|
|
12841
12938
|
});
|
|
12842
12939
|
};
|
|
12843
12940
|
|
|
12941
|
+
var ensureIsRoot = function (isRoot) {
|
|
12942
|
+
return isFunction(isRoot) ? isRoot : never;
|
|
12943
|
+
};
|
|
12944
|
+
var ancestor$3 = function (scope, transform, isRoot) {
|
|
12945
|
+
var element = scope.dom;
|
|
12946
|
+
var stop = ensureIsRoot(isRoot);
|
|
12947
|
+
while (element.parentNode) {
|
|
12948
|
+
element = element.parentNode;
|
|
12949
|
+
var el = SugarElement.fromDom(element);
|
|
12950
|
+
var transformed = transform(el);
|
|
12951
|
+
if (transformed.isSome()) {
|
|
12952
|
+
return transformed;
|
|
12953
|
+
} else if (stop(el)) {
|
|
12954
|
+
break;
|
|
12955
|
+
}
|
|
12956
|
+
}
|
|
12957
|
+
return Optional.none();
|
|
12958
|
+
};
|
|
12959
|
+
var closest$2 = function (scope, transform, isRoot) {
|
|
12960
|
+
var current = transform(scope);
|
|
12961
|
+
var stop = ensureIsRoot(isRoot);
|
|
12962
|
+
return current.orThunk(function () {
|
|
12963
|
+
return stop(scope) ? Optional.none() : ancestor$3(scope, transform, stop);
|
|
12964
|
+
});
|
|
12965
|
+
};
|
|
12966
|
+
|
|
12967
|
+
var isEq$2 = isEq;
|
|
12968
|
+
var matchesUnInheritedFormatSelector = function (ed, node, name) {
|
|
12969
|
+
var formatList = ed.formatter.get(name);
|
|
12970
|
+
if (formatList) {
|
|
12971
|
+
for (var i = 0; i < formatList.length; i++) {
|
|
12972
|
+
if (formatList[i].inherit === false && ed.dom.is(node, formatList[i].selector)) {
|
|
12973
|
+
return true;
|
|
12974
|
+
}
|
|
12975
|
+
}
|
|
12976
|
+
}
|
|
12977
|
+
return false;
|
|
12978
|
+
};
|
|
12979
|
+
var matchParents = function (editor, node, name, vars) {
|
|
12980
|
+
var root = editor.dom.getRoot();
|
|
12981
|
+
if (node === root) {
|
|
12982
|
+
return false;
|
|
12983
|
+
}
|
|
12984
|
+
node = editor.dom.getParent(node, function (node) {
|
|
12985
|
+
if (matchesUnInheritedFormatSelector(editor, node, name)) {
|
|
12986
|
+
return true;
|
|
12987
|
+
}
|
|
12988
|
+
return node.parentNode === root || !!matchNode(editor, node, name, vars, true);
|
|
12989
|
+
});
|
|
12990
|
+
return matchNode(editor, node, name, vars);
|
|
12991
|
+
};
|
|
12992
|
+
var matchName = function (dom, node, format) {
|
|
12993
|
+
if (isEq$2(node, format.inline)) {
|
|
12994
|
+
return true;
|
|
12995
|
+
}
|
|
12996
|
+
if (isEq$2(node, format.block)) {
|
|
12997
|
+
return true;
|
|
12998
|
+
}
|
|
12999
|
+
if (format.selector) {
|
|
13000
|
+
return node.nodeType === 1 && dom.is(node, format.selector);
|
|
13001
|
+
}
|
|
13002
|
+
};
|
|
13003
|
+
var matchItems = function (dom, node, format, itemName, similar, vars) {
|
|
13004
|
+
var key, value;
|
|
13005
|
+
var items = format[itemName];
|
|
13006
|
+
var i;
|
|
13007
|
+
if (format.onmatch) {
|
|
13008
|
+
return format.onmatch(node, format, itemName);
|
|
13009
|
+
}
|
|
13010
|
+
if (items) {
|
|
13011
|
+
if (typeof items.length === 'undefined') {
|
|
13012
|
+
for (key in items) {
|
|
13013
|
+
if (items.hasOwnProperty(key)) {
|
|
13014
|
+
if (itemName === 'attributes') {
|
|
13015
|
+
value = dom.getAttrib(node, key);
|
|
13016
|
+
} else {
|
|
13017
|
+
value = getStyle(dom, node, key);
|
|
13018
|
+
}
|
|
13019
|
+
if (similar && !value && !format.exact) {
|
|
13020
|
+
return;
|
|
13021
|
+
}
|
|
13022
|
+
if ((!similar || format.exact) && !isEq$2(value, normalizeStyleValue(dom, replaceVars(items[key], vars), key))) {
|
|
13023
|
+
return;
|
|
13024
|
+
}
|
|
13025
|
+
}
|
|
13026
|
+
}
|
|
13027
|
+
} else {
|
|
13028
|
+
for (i = 0; i < items.length; i++) {
|
|
13029
|
+
if (itemName === 'attributes' ? dom.getAttrib(node, items[i]) : getStyle(dom, node, items[i])) {
|
|
13030
|
+
return format;
|
|
13031
|
+
}
|
|
13032
|
+
}
|
|
13033
|
+
}
|
|
13034
|
+
}
|
|
13035
|
+
return format;
|
|
13036
|
+
};
|
|
13037
|
+
var matchNode = function (ed, node, name, vars, similar) {
|
|
13038
|
+
var formatList = ed.formatter.get(name);
|
|
13039
|
+
var format, i, x, classes;
|
|
13040
|
+
var dom = ed.dom;
|
|
13041
|
+
if (formatList && node) {
|
|
13042
|
+
for (i = 0; i < formatList.length; i++) {
|
|
13043
|
+
format = formatList[i];
|
|
13044
|
+
if (matchName(ed.dom, node, format) && matchItems(dom, node, format, 'attributes', similar, vars) && matchItems(dom, node, format, 'styles', similar, vars)) {
|
|
13045
|
+
if (classes = format.classes) {
|
|
13046
|
+
for (x = 0; x < classes.length; x++) {
|
|
13047
|
+
if (!ed.dom.hasClass(node, classes[x])) {
|
|
13048
|
+
return;
|
|
13049
|
+
}
|
|
13050
|
+
}
|
|
13051
|
+
}
|
|
13052
|
+
return format;
|
|
13053
|
+
}
|
|
13054
|
+
}
|
|
13055
|
+
}
|
|
13056
|
+
};
|
|
13057
|
+
var match = function (editor, name, vars, node) {
|
|
13058
|
+
if (node) {
|
|
13059
|
+
return matchParents(editor, node, name, vars);
|
|
13060
|
+
}
|
|
13061
|
+
node = editor.selection.getNode();
|
|
13062
|
+
if (matchParents(editor, node, name, vars)) {
|
|
13063
|
+
return true;
|
|
13064
|
+
}
|
|
13065
|
+
var startNode = editor.selection.getStart();
|
|
13066
|
+
if (startNode !== node) {
|
|
13067
|
+
if (matchParents(editor, startNode, name, vars)) {
|
|
13068
|
+
return true;
|
|
13069
|
+
}
|
|
13070
|
+
}
|
|
13071
|
+
return false;
|
|
13072
|
+
};
|
|
13073
|
+
var matchAll = function (editor, names, vars) {
|
|
13074
|
+
var matchedFormatNames = [];
|
|
13075
|
+
var checkedMap = {};
|
|
13076
|
+
var startElement = editor.selection.getStart();
|
|
13077
|
+
editor.dom.getParent(startElement, function (node) {
|
|
13078
|
+
for (var i = 0; i < names.length; i++) {
|
|
13079
|
+
var name_1 = names[i];
|
|
13080
|
+
if (!checkedMap[name_1] && matchNode(editor, node, name_1, vars)) {
|
|
13081
|
+
checkedMap[name_1] = true;
|
|
13082
|
+
matchedFormatNames.push(name_1);
|
|
13083
|
+
}
|
|
13084
|
+
}
|
|
13085
|
+
}, editor.dom.getRoot());
|
|
13086
|
+
return matchedFormatNames;
|
|
13087
|
+
};
|
|
13088
|
+
var closest$3 = function (editor, names) {
|
|
13089
|
+
var isRoot = function (elm) {
|
|
13090
|
+
return eq$2(elm, SugarElement.fromDom(editor.getBody()));
|
|
13091
|
+
};
|
|
13092
|
+
var match = function (elm, name) {
|
|
13093
|
+
return matchNode(editor, elm.dom, name) ? Optional.some(name) : Optional.none();
|
|
13094
|
+
};
|
|
13095
|
+
return Optional.from(editor.selection.getStart(true)).bind(function (rawElm) {
|
|
13096
|
+
return closest$2(SugarElement.fromDom(rawElm), function (elm) {
|
|
13097
|
+
return findMap(names, function (name) {
|
|
13098
|
+
return match(elm, name);
|
|
13099
|
+
});
|
|
13100
|
+
}, isRoot);
|
|
13101
|
+
}).getOrNull();
|
|
13102
|
+
};
|
|
13103
|
+
var canApply = function (editor, name) {
|
|
13104
|
+
var formatList = editor.formatter.get(name);
|
|
13105
|
+
var startNode, parents, i, x, selector;
|
|
13106
|
+
var dom = editor.dom;
|
|
13107
|
+
if (formatList) {
|
|
13108
|
+
startNode = editor.selection.getStart();
|
|
13109
|
+
parents = getParents$1(dom, startNode);
|
|
13110
|
+
for (x = formatList.length - 1; x >= 0; x--) {
|
|
13111
|
+
selector = formatList[x].selector;
|
|
13112
|
+
if (!selector || formatList[x].defaultBlock) {
|
|
13113
|
+
return true;
|
|
13114
|
+
}
|
|
13115
|
+
for (i = parents.length - 1; i >= 0; i--) {
|
|
13116
|
+
if (dom.is(parents[i], selector)) {
|
|
13117
|
+
return true;
|
|
13118
|
+
}
|
|
13119
|
+
}
|
|
13120
|
+
}
|
|
13121
|
+
}
|
|
13122
|
+
return false;
|
|
13123
|
+
};
|
|
13124
|
+
var matchAllOnNode = function (editor, node, formatNames) {
|
|
13125
|
+
return foldl(formatNames, function (acc, name) {
|
|
13126
|
+
var matchSimilar = isVariableFormatName(editor, name);
|
|
13127
|
+
if (editor.formatter.matchNode(node, name, {}, matchSimilar)) {
|
|
13128
|
+
return acc.concat([name]);
|
|
13129
|
+
} else {
|
|
13130
|
+
return acc;
|
|
13131
|
+
}
|
|
13132
|
+
}, []);
|
|
13133
|
+
};
|
|
13134
|
+
|
|
12844
13135
|
var typeLookup = {
|
|
12845
13136
|
'#text': 3,
|
|
12846
13137
|
'#comment': 8,
|
|
@@ -13340,7 +13631,7 @@
|
|
|
13340
13631
|
};
|
|
13341
13632
|
var restoreDataUris = function (html, result) {
|
|
13342
13633
|
return html.replace(new RegExp(result.prefix + '_[0-9]+', 'g'), function (imageId) {
|
|
13343
|
-
return get(result.uris, imageId).getOr(imageId);
|
|
13634
|
+
return get$1(result.uris, imageId).getOr(imageId);
|
|
13344
13635
|
});
|
|
13345
13636
|
};
|
|
13346
13637
|
var parseDataUri = function (uri) {
|
|
@@ -13355,14 +13646,22 @@
|
|
|
13355
13646
|
}
|
|
13356
13647
|
};
|
|
13357
13648
|
|
|
13649
|
+
var safeSvgDataUrlElements = [
|
|
13650
|
+
'img',
|
|
13651
|
+
'video'
|
|
13652
|
+
];
|
|
13358
13653
|
var isValidPrefixAttrName = function (name) {
|
|
13359
13654
|
return name.indexOf('data-') === 0 || name.indexOf('aria-') === 0;
|
|
13360
13655
|
};
|
|
13361
|
-
var
|
|
13656
|
+
var blockSvgDataUris = function (allowSvgDataUrls, tagName) {
|
|
13657
|
+
var allowed = isNullable(allowSvgDataUrls) ? contains(safeSvgDataUrlElements, tagName) : allowSvgDataUrls;
|
|
13658
|
+
return !allowed;
|
|
13659
|
+
};
|
|
13660
|
+
var isInvalidUri = function (settings, uri, tagName) {
|
|
13362
13661
|
if (settings.allow_html_data_urls) {
|
|
13363
13662
|
return false;
|
|
13364
13663
|
} else if (/^data:image\//i.test(uri)) {
|
|
13365
|
-
return settings.allow_svg_data_urls
|
|
13664
|
+
return blockSvgDataUris(settings.allow_svg_data_urls, tagName) && /^data:image\/svg\+xml/i.test(uri);
|
|
13366
13665
|
} else {
|
|
13367
13666
|
return /^data:/i.test(uri);
|
|
13368
13667
|
}
|
|
@@ -13488,7 +13787,7 @@
|
|
|
13488
13787
|
comment(restoreDataUris(value, base64Extract));
|
|
13489
13788
|
};
|
|
13490
13789
|
var processAttr = function (value) {
|
|
13491
|
-
return get(base64Extract.uris, value).getOr(value);
|
|
13790
|
+
return get$1(base64Extract.uris, value).getOr(value);
|
|
13492
13791
|
};
|
|
13493
13792
|
var processMalformedComment = function (value, startIndex) {
|
|
13494
13793
|
var startTag = value || '';
|
|
@@ -13498,7 +13797,7 @@
|
|
|
13498
13797
|
processComment(isBogus ? startTag + value : value);
|
|
13499
13798
|
return endIndex + 1;
|
|
13500
13799
|
};
|
|
13501
|
-
var parseAttribute = function (
|
|
13800
|
+
var parseAttribute = function (tagName, name, value, val2, val3) {
|
|
13502
13801
|
var attrRule, i;
|
|
13503
13802
|
var trimRegExp = /[\s\u0000-\u001F]+/g;
|
|
13504
13803
|
name = name.toLowerCase();
|
|
@@ -13534,7 +13833,7 @@
|
|
|
13534
13833
|
if (scriptUriRegExp.test(uri)) {
|
|
13535
13834
|
return;
|
|
13536
13835
|
}
|
|
13537
|
-
if (isInvalidUri(settings, uri)) {
|
|
13836
|
+
if (isInvalidUri(settings, uri, tagName)) {
|
|
13538
13837
|
return;
|
|
13539
13838
|
}
|
|
13540
13839
|
}
|
|
@@ -13604,7 +13903,10 @@
|
|
|
13604
13903
|
}
|
|
13605
13904
|
attrList = [];
|
|
13606
13905
|
attrList.map = {};
|
|
13607
|
-
attribsValue.replace(attrRegExp,
|
|
13906
|
+
attribsValue.replace(attrRegExp, function (match, name, val, val2, val3) {
|
|
13907
|
+
parseAttribute(value, name, val, val2, val3);
|
|
13908
|
+
return '';
|
|
13909
|
+
});
|
|
13608
13910
|
} else {
|
|
13609
13911
|
attrList = [];
|
|
13610
13912
|
attrList.map = {};
|
|
@@ -13800,13 +14102,16 @@
|
|
|
13800
14102
|
if (args.format === 'raw') {
|
|
13801
14103
|
content = Tools.trim(trimExternal(editor.serializer, body.innerHTML));
|
|
13802
14104
|
} else if (args.format === 'text') {
|
|
13803
|
-
content = trim$2(body.innerText || body.textContent);
|
|
14105
|
+
content = editor.dom.isEmpty(body) ? '' : trim$2(body.innerText || body.textContent);
|
|
13804
14106
|
} else if (args.format === 'tree') {
|
|
13805
|
-
|
|
14107
|
+
content = editor.serializer.serialize(body, args);
|
|
13806
14108
|
} else {
|
|
13807
14109
|
content = trimEmptyContents(editor, editor.serializer.serialize(body, args));
|
|
13808
14110
|
}
|
|
13809
|
-
if (
|
|
14111
|
+
if (!contains([
|
|
14112
|
+
'text',
|
|
14113
|
+
'tree'
|
|
14114
|
+
], args.format) && !isWsPreserveElement(SugarElement.fromDom(body))) {
|
|
13810
14115
|
args.content = Tools.trim(content);
|
|
13811
14116
|
} else {
|
|
13812
14117
|
args.content = content;
|
|
@@ -13887,7 +14192,7 @@
|
|
|
13887
14192
|
};
|
|
13888
14193
|
};
|
|
13889
14194
|
var isImageBlock = function (node) {
|
|
13890
|
-
return isImg(node) && get$
|
|
14195
|
+
return isImg(node) && get$5(SugarElement.fromDom(node), 'display') === 'block';
|
|
13891
14196
|
};
|
|
13892
14197
|
var isCefNode = function (node) {
|
|
13893
14198
|
return isContentEditableFalse(node) && !isBogusAll(node);
|
|
@@ -13965,7 +14270,7 @@
|
|
|
13965
14270
|
});
|
|
13966
14271
|
});
|
|
13967
14272
|
};
|
|
13968
|
-
var isAtBlockBoundary = function (forward, root, pos) {
|
|
14273
|
+
var isAtBlockBoundary$1 = function (forward, root, pos) {
|
|
13969
14274
|
return getClosestBlock(root, pos).fold(function () {
|
|
13970
14275
|
return navigateIgnoreEmptyTextNodes(forward, root.dom, pos).forall(function (newPos) {
|
|
13971
14276
|
return isInSameBlock(newPos, pos, root.dom) === false;
|
|
@@ -13974,8 +14279,8 @@
|
|
|
13974
14279
|
return navigateIgnoreEmptyTextNodes(forward, parent.dom, pos).isNone();
|
|
13975
14280
|
});
|
|
13976
14281
|
};
|
|
13977
|
-
var isAtStartOfBlock = curry(isAtBlockBoundary, false);
|
|
13978
|
-
var isAtEndOfBlock = curry(isAtBlockBoundary, true);
|
|
14282
|
+
var isAtStartOfBlock = curry(isAtBlockBoundary$1, false);
|
|
14283
|
+
var isAtEndOfBlock = curry(isAtBlockBoundary$1, true);
|
|
13979
14284
|
var isBeforeBlock = curry(isAtBeforeAfterBlockBoundary, false);
|
|
13980
14285
|
var isAfterBlock = curry(isAtBeforeAfterBlockBoundary, true);
|
|
13981
14286
|
|
|
@@ -14027,7 +14332,7 @@
|
|
|
14027
14332
|
return getElementFromPosition(pos).bind(function (elm) {
|
|
14028
14333
|
return closest(elm, isElement);
|
|
14029
14334
|
}).exists(function (elm) {
|
|
14030
|
-
return isPreValue(get$
|
|
14335
|
+
return isPreValue(get$5(elm, 'white-space'));
|
|
14031
14336
|
});
|
|
14032
14337
|
};
|
|
14033
14338
|
var isAtBeginningOfBody = function (root, pos) {
|
|
@@ -15132,8 +15437,10 @@
|
|
|
15132
15437
|
args.format = args.format ? args.format : defaultFormat;
|
|
15133
15438
|
args.set = true;
|
|
15134
15439
|
args.content = isTreeNode(content) ? '' : content;
|
|
15135
|
-
if (!
|
|
15440
|
+
if (!args.no_events) {
|
|
15136
15441
|
editor.fire('BeforeSetContent', args);
|
|
15442
|
+
}
|
|
15443
|
+
if (!isTreeNode(content)) {
|
|
15137
15444
|
content = args.content;
|
|
15138
15445
|
}
|
|
15139
15446
|
return Optional.from(editor.getBody()).fold(constant(content), function (body) {
|
|
@@ -15141,157 +15448,44 @@
|
|
|
15141
15448
|
});
|
|
15142
15449
|
};
|
|
15143
15450
|
|
|
15144
|
-
var
|
|
15145
|
-
|
|
15146
|
-
var
|
|
15147
|
-
if (
|
|
15148
|
-
|
|
15149
|
-
|
|
15150
|
-
|
|
15451
|
+
var addVisualInternal = function (editor, elm) {
|
|
15452
|
+
var dom = editor.dom;
|
|
15453
|
+
var scope = isNonNullable(elm) ? elm : editor.getBody();
|
|
15454
|
+
if (isUndefined(editor.hasVisual)) {
|
|
15455
|
+
editor.hasVisual = isVisualAidsEnabled(editor);
|
|
15456
|
+
}
|
|
15457
|
+
each(dom.select('table,a', scope), function (matchedElm) {
|
|
15458
|
+
switch (matchedElm.nodeName) {
|
|
15459
|
+
case 'TABLE':
|
|
15460
|
+
var cls = getVisualAidsTableClass(editor);
|
|
15461
|
+
var value = dom.getAttrib(matchedElm, 'border');
|
|
15462
|
+
if ((!value || value === '0') && editor.hasVisual) {
|
|
15463
|
+
dom.addClass(matchedElm, cls);
|
|
15464
|
+
} else {
|
|
15465
|
+
dom.removeClass(matchedElm, cls);
|
|
15466
|
+
}
|
|
15467
|
+
break;
|
|
15468
|
+
case 'A':
|
|
15469
|
+
if (!dom.getAttrib(matchedElm, 'href')) {
|
|
15470
|
+
var value_1 = dom.getAttrib(matchedElm, 'name') || matchedElm.id;
|
|
15471
|
+
var cls_1 = getVisualAidsAnchorClass(editor);
|
|
15472
|
+
if (value_1 && editor.hasVisual) {
|
|
15473
|
+
dom.addClass(matchedElm, cls_1);
|
|
15474
|
+
} else {
|
|
15475
|
+
dom.removeClass(matchedElm, cls_1);
|
|
15476
|
+
}
|
|
15151
15477
|
}
|
|
15478
|
+
break;
|
|
15152
15479
|
}
|
|
15153
|
-
}
|
|
15154
|
-
return false;
|
|
15155
|
-
};
|
|
15156
|
-
var matchParents = function (editor, node, name, vars) {
|
|
15157
|
-
var root = editor.dom.getRoot();
|
|
15158
|
-
if (node === root) {
|
|
15159
|
-
return false;
|
|
15160
|
-
}
|
|
15161
|
-
node = editor.dom.getParent(node, function (node) {
|
|
15162
|
-
if (matchesUnInheritedFormatSelector(editor, node, name)) {
|
|
15163
|
-
return true;
|
|
15164
|
-
}
|
|
15165
|
-
return node.parentNode === root || !!matchNode(editor, node, name, vars, true);
|
|
15166
15480
|
});
|
|
15167
|
-
|
|
15168
|
-
|
|
15169
|
-
|
|
15170
|
-
|
|
15171
|
-
return true;
|
|
15172
|
-
}
|
|
15173
|
-
if (isEq$2(node, format.block)) {
|
|
15174
|
-
return true;
|
|
15175
|
-
}
|
|
15176
|
-
if (format.selector) {
|
|
15177
|
-
return node.nodeType === 1 && dom.is(node, format.selector);
|
|
15178
|
-
}
|
|
15179
|
-
};
|
|
15180
|
-
var matchItems = function (dom, node, format, itemName, similar, vars) {
|
|
15181
|
-
var key, value;
|
|
15182
|
-
var items = format[itemName];
|
|
15183
|
-
var i;
|
|
15184
|
-
if (format.onmatch) {
|
|
15185
|
-
return format.onmatch(node, format, itemName);
|
|
15186
|
-
}
|
|
15187
|
-
if (items) {
|
|
15188
|
-
if (typeof items.length === 'undefined') {
|
|
15189
|
-
for (key in items) {
|
|
15190
|
-
if (items.hasOwnProperty(key)) {
|
|
15191
|
-
if (itemName === 'attributes') {
|
|
15192
|
-
value = dom.getAttrib(node, key);
|
|
15193
|
-
} else {
|
|
15194
|
-
value = getStyle(dom, node, key);
|
|
15195
|
-
}
|
|
15196
|
-
if (similar && !value && !format.exact) {
|
|
15197
|
-
return;
|
|
15198
|
-
}
|
|
15199
|
-
if ((!similar || format.exact) && !isEq$2(value, normalizeStyleValue(dom, replaceVars(items[key], vars), key))) {
|
|
15200
|
-
return;
|
|
15201
|
-
}
|
|
15202
|
-
}
|
|
15203
|
-
}
|
|
15204
|
-
} else {
|
|
15205
|
-
for (i = 0; i < items.length; i++) {
|
|
15206
|
-
if (itemName === 'attributes' ? dom.getAttrib(node, items[i]) : getStyle(dom, node, items[i])) {
|
|
15207
|
-
return format;
|
|
15208
|
-
}
|
|
15209
|
-
}
|
|
15210
|
-
}
|
|
15211
|
-
}
|
|
15212
|
-
return format;
|
|
15213
|
-
};
|
|
15214
|
-
var matchNode = function (ed, node, name, vars, similar) {
|
|
15215
|
-
var formatList = ed.formatter.get(name);
|
|
15216
|
-
var format, i, x, classes;
|
|
15217
|
-
var dom = ed.dom;
|
|
15218
|
-
if (formatList && node) {
|
|
15219
|
-
for (i = 0; i < formatList.length; i++) {
|
|
15220
|
-
format = formatList[i];
|
|
15221
|
-
if (matchName(ed.dom, node, format) && matchItems(dom, node, format, 'attributes', similar, vars) && matchItems(dom, node, format, 'styles', similar, vars)) {
|
|
15222
|
-
if (classes = format.classes) {
|
|
15223
|
-
for (x = 0; x < classes.length; x++) {
|
|
15224
|
-
if (!ed.dom.hasClass(node, classes[x])) {
|
|
15225
|
-
return;
|
|
15226
|
-
}
|
|
15227
|
-
}
|
|
15228
|
-
}
|
|
15229
|
-
return format;
|
|
15230
|
-
}
|
|
15231
|
-
}
|
|
15232
|
-
}
|
|
15233
|
-
};
|
|
15234
|
-
var match = function (editor, name, vars, node) {
|
|
15235
|
-
if (node) {
|
|
15236
|
-
return matchParents(editor, node, name, vars);
|
|
15237
|
-
}
|
|
15238
|
-
node = editor.selection.getNode();
|
|
15239
|
-
if (matchParents(editor, node, name, vars)) {
|
|
15240
|
-
return true;
|
|
15241
|
-
}
|
|
15242
|
-
var startNode = editor.selection.getStart();
|
|
15243
|
-
if (startNode !== node) {
|
|
15244
|
-
if (matchParents(editor, startNode, name, vars)) {
|
|
15245
|
-
return true;
|
|
15246
|
-
}
|
|
15247
|
-
}
|
|
15248
|
-
return false;
|
|
15249
|
-
};
|
|
15250
|
-
var matchAll = function (editor, names, vars) {
|
|
15251
|
-
var matchedFormatNames = [];
|
|
15252
|
-
var checkedMap = {};
|
|
15253
|
-
var startElement = editor.selection.getStart();
|
|
15254
|
-
editor.dom.getParent(startElement, function (node) {
|
|
15255
|
-
for (var i = 0; i < names.length; i++) {
|
|
15256
|
-
var name_1 = names[i];
|
|
15257
|
-
if (!checkedMap[name_1] && matchNode(editor, node, name_1, vars)) {
|
|
15258
|
-
checkedMap[name_1] = true;
|
|
15259
|
-
matchedFormatNames.push(name_1);
|
|
15260
|
-
}
|
|
15261
|
-
}
|
|
15262
|
-
}, editor.dom.getRoot());
|
|
15263
|
-
return matchedFormatNames;
|
|
15264
|
-
};
|
|
15265
|
-
var canApply = function (editor, name) {
|
|
15266
|
-
var formatList = editor.formatter.get(name);
|
|
15267
|
-
var startNode, parents, i, x, selector;
|
|
15268
|
-
var dom = editor.dom;
|
|
15269
|
-
if (formatList) {
|
|
15270
|
-
startNode = editor.selection.getStart();
|
|
15271
|
-
parents = getParents$1(dom, startNode);
|
|
15272
|
-
for (x = formatList.length - 1; x >= 0; x--) {
|
|
15273
|
-
selector = formatList[x].selector;
|
|
15274
|
-
if (!selector || formatList[x].defaultBlock) {
|
|
15275
|
-
return true;
|
|
15276
|
-
}
|
|
15277
|
-
for (i = parents.length - 1; i >= 0; i--) {
|
|
15278
|
-
if (dom.is(parents[i], selector)) {
|
|
15279
|
-
return true;
|
|
15280
|
-
}
|
|
15281
|
-
}
|
|
15282
|
-
}
|
|
15283
|
-
}
|
|
15284
|
-
return false;
|
|
15481
|
+
editor.fire('VisualAid', {
|
|
15482
|
+
element: elm,
|
|
15483
|
+
hasVisual: editor.hasVisual
|
|
15484
|
+
});
|
|
15285
15485
|
};
|
|
15286
|
-
|
|
15287
|
-
|
|
15288
|
-
|
|
15289
|
-
if (editor.formatter.matchNode(node, name, {}, matchSimilar)) {
|
|
15290
|
-
return acc.concat([name]);
|
|
15291
|
-
} else {
|
|
15292
|
-
return acc;
|
|
15293
|
-
}
|
|
15294
|
-
}, []);
|
|
15486
|
+
|
|
15487
|
+
var sibling$2 = function (scope, predicate) {
|
|
15488
|
+
return sibling(scope, predicate).isSome();
|
|
15295
15489
|
};
|
|
15296
15490
|
|
|
15297
15491
|
var ZWSP$1 = ZWSP, CARET_ID$1 = '_mce_caret';
|
|
@@ -15985,7 +16179,7 @@
|
|
|
15985
16179
|
};
|
|
15986
16180
|
var removeRngStyle = function (rng) {
|
|
15987
16181
|
var startContainer, endContainer;
|
|
15988
|
-
var expandedRng = expandRng(ed, rng, formatList,
|
|
16182
|
+
var expandedRng = expandRng(ed, rng, formatList, rng.collapsed);
|
|
15989
16183
|
if (format.split) {
|
|
15990
16184
|
expandedRng = split$1(expandedRng);
|
|
15991
16185
|
startContainer = getContainer(ed, expandedRng, true);
|
|
@@ -16153,15 +16347,39 @@
|
|
|
16153
16347
|
};
|
|
16154
16348
|
|
|
16155
16349
|
var each$c = Tools.each;
|
|
16350
|
+
var hasFormatProperty = function (format, prop) {
|
|
16351
|
+
return hasNonNullableKey(format, prop);
|
|
16352
|
+
};
|
|
16156
16353
|
var isElementNode$1 = function (node) {
|
|
16157
16354
|
return node && node.nodeType === 1 && !isBookmarkNode$1(node) && !isCaretNode(node) && !isBogus(node);
|
|
16158
16355
|
};
|
|
16356
|
+
var canFormatBR = function (editor, format, node, parentName) {
|
|
16357
|
+
if (canFormatEmptyLines(editor) && isInlineFormat(format)) {
|
|
16358
|
+
var validBRParentElements = __assign(__assign({}, editor.schema.getTextBlockElements()), {
|
|
16359
|
+
td: {},
|
|
16360
|
+
th: {},
|
|
16361
|
+
li: {},
|
|
16362
|
+
dt: {},
|
|
16363
|
+
dd: {},
|
|
16364
|
+
figcaption: {},
|
|
16365
|
+
caption: {},
|
|
16366
|
+
details: {},
|
|
16367
|
+
summary: {}
|
|
16368
|
+
});
|
|
16369
|
+
var hasCaretNodeSibling = sibling$2(SugarElement.fromDom(node), function (sibling) {
|
|
16370
|
+
return isCaretNode(sibling.dom);
|
|
16371
|
+
});
|
|
16372
|
+
return hasNonNullableKey(validBRParentElements, parentName) && isEmpty(SugarElement.fromDom(node.parentNode), false) && !hasCaretNodeSibling;
|
|
16373
|
+
} else {
|
|
16374
|
+
return false;
|
|
16375
|
+
}
|
|
16376
|
+
};
|
|
16159
16377
|
var applyFormat = function (ed, name, vars, node) {
|
|
16160
16378
|
var formatList = ed.formatter.get(name);
|
|
16161
16379
|
var format = formatList[0];
|
|
16162
|
-
var rng;
|
|
16163
16380
|
var isCollapsed = !node && ed.selection.isCollapsed();
|
|
16164
|
-
var dom = ed.dom
|
|
16381
|
+
var dom = ed.dom;
|
|
16382
|
+
var selection = ed.selection;
|
|
16165
16383
|
var setElementFormat = function (elm, fmt) {
|
|
16166
16384
|
fmt = fmt || format;
|
|
16167
16385
|
if (elm) {
|
|
@@ -16190,7 +16408,7 @@
|
|
|
16190
16408
|
};
|
|
16191
16409
|
var applyNodeStyle = function (formatList, node) {
|
|
16192
16410
|
var found = false;
|
|
16193
|
-
if (!format
|
|
16411
|
+
if (!isSelectorFormat(format)) {
|
|
16194
16412
|
return false;
|
|
16195
16413
|
}
|
|
16196
16414
|
each$c(formatList, function (format) {
|
|
@@ -16223,32 +16441,32 @@
|
|
|
16223
16441
|
contentEditable = dom.getContentEditable(node) === 'true';
|
|
16224
16442
|
hasContentEditableState = true;
|
|
16225
16443
|
}
|
|
16226
|
-
if (
|
|
16227
|
-
currentWrapElm =
|
|
16228
|
-
if (format
|
|
16444
|
+
if (isBr(node) && !canFormatBR(ed, format, node, parentName)) {
|
|
16445
|
+
currentWrapElm = null;
|
|
16446
|
+
if (isBlockFormat(format)) {
|
|
16229
16447
|
dom.remove(node);
|
|
16230
16448
|
}
|
|
16231
16449
|
return;
|
|
16232
16450
|
}
|
|
16233
16451
|
if (format.wrapper && matchNode(ed, node, name, vars)) {
|
|
16234
|
-
currentWrapElm =
|
|
16452
|
+
currentWrapElm = null;
|
|
16235
16453
|
return;
|
|
16236
16454
|
}
|
|
16237
|
-
if (contentEditable && !hasContentEditableState && format
|
|
16455
|
+
if (contentEditable && !hasContentEditableState && isBlockFormat(format) && !format.wrapper && isTextBlock$1(ed, nodeName) && isValid(ed, parentName, wrapName)) {
|
|
16238
16456
|
var elm = dom.rename(node, wrapName);
|
|
16239
16457
|
setElementFormat(elm);
|
|
16240
16458
|
newWrappers.push(elm);
|
|
16241
|
-
currentWrapElm =
|
|
16459
|
+
currentWrapElm = null;
|
|
16242
16460
|
return;
|
|
16243
16461
|
}
|
|
16244
|
-
if (format
|
|
16462
|
+
if (isSelectorFormat(format)) {
|
|
16245
16463
|
var found = applyNodeStyle(formatList, node);
|
|
16246
|
-
if (!format
|
|
16247
|
-
currentWrapElm =
|
|
16464
|
+
if (!hasFormatProperty(format, 'inline') || found) {
|
|
16465
|
+
currentWrapElm = null;
|
|
16248
16466
|
return;
|
|
16249
16467
|
}
|
|
16250
16468
|
}
|
|
16251
|
-
if (contentEditable && !hasContentEditableState && isValid(ed, wrapName, nodeName) && isValid(ed, parentName, wrapName) && !(!nodeSpecific && node.nodeType === 3 && node.nodeValue.length === 1 && node.nodeValue.charCodeAt(0) === 65279) && !isCaretNode(node) && (!format
|
|
16469
|
+
if (contentEditable && !hasContentEditableState && isValid(ed, wrapName, nodeName) && isValid(ed, parentName, wrapName) && !(!nodeSpecific && node.nodeType === 3 && node.nodeValue.length === 1 && node.nodeValue.charCodeAt(0) === 65279) && !isCaretNode(node) && (!hasFormatProperty(format, 'inline') || !dom.isBlock(node))) {
|
|
16252
16470
|
if (!currentWrapElm) {
|
|
16253
16471
|
currentWrapElm = dom.clone(wrapElm, false);
|
|
16254
16472
|
node.parentNode.insertBefore(currentWrapElm, node);
|
|
@@ -16256,12 +16474,12 @@
|
|
|
16256
16474
|
}
|
|
16257
16475
|
currentWrapElm.appendChild(node);
|
|
16258
16476
|
} else {
|
|
16259
|
-
currentWrapElm =
|
|
16477
|
+
currentWrapElm = null;
|
|
16260
16478
|
each$c(Tools.grep(node.childNodes), process);
|
|
16261
16479
|
if (hasContentEditableState) {
|
|
16262
16480
|
contentEditable = lastContentEditable;
|
|
16263
16481
|
}
|
|
16264
|
-
currentWrapElm =
|
|
16482
|
+
currentWrapElm = null;
|
|
16265
16483
|
}
|
|
16266
16484
|
};
|
|
16267
16485
|
each$c(nodes, process);
|
|
@@ -16313,7 +16531,7 @@
|
|
|
16313
16531
|
dom.remove(node, true);
|
|
16314
16532
|
return;
|
|
16315
16533
|
}
|
|
16316
|
-
if (format
|
|
16534
|
+
if (isInlineFormat(format) || format.wrapper) {
|
|
16317
16535
|
if (!format.exact && childCount === 1) {
|
|
16318
16536
|
node = mergeStyles(node);
|
|
16319
16537
|
}
|
|
@@ -16329,8 +16547,9 @@
|
|
|
16329
16547
|
if (dom.getContentEditable(selection.getNode()) === 'false') {
|
|
16330
16548
|
node = selection.getNode();
|
|
16331
16549
|
for (var i = 0, l = formatList.length; i < l; i++) {
|
|
16332
|
-
|
|
16333
|
-
|
|
16550
|
+
var formatItem = formatList[i];
|
|
16551
|
+
if (formatItem.ceFalseOverride && isSelectorFormat(formatItem) && dom.is(node, formatItem.selector)) {
|
|
16552
|
+
setElementFormat(node, formatItem);
|
|
16334
16553
|
return;
|
|
16335
16554
|
}
|
|
16336
16555
|
}
|
|
@@ -16340,7 +16559,7 @@
|
|
|
16340
16559
|
if (node) {
|
|
16341
16560
|
if (isNode(node)) {
|
|
16342
16561
|
if (!applyNodeStyle(formatList, node)) {
|
|
16343
|
-
rng = dom.createRng();
|
|
16562
|
+
var rng = dom.createRng();
|
|
16344
16563
|
rng.setStartBefore(node);
|
|
16345
16564
|
rng.setEndAfter(node);
|
|
16346
16565
|
applyRngStyle(dom, expandRng(ed, rng, formatList), null, true);
|
|
@@ -16349,10 +16568,11 @@
|
|
|
16349
16568
|
applyRngStyle(dom, node, null, true);
|
|
16350
16569
|
}
|
|
16351
16570
|
} else {
|
|
16352
|
-
if (!isCollapsed || !format
|
|
16571
|
+
if (!isCollapsed || !isInlineFormat(format) || getCellsFromEditor(ed).length) {
|
|
16353
16572
|
var curSelNode = selection.getNode();
|
|
16354
|
-
|
|
16355
|
-
|
|
16573
|
+
var firstFormat = formatList[0];
|
|
16574
|
+
if (!ed.settings.forced_root_block && firstFormat.defaultBlock && !dom.getParent(curSelNode, dom.isBlock)) {
|
|
16575
|
+
applyFormat(ed, firstFormat.defaultBlock);
|
|
16356
16576
|
}
|
|
16357
16577
|
selection.setRng(normalize$2(selection.getRng()));
|
|
16358
16578
|
preserve(selection, true, function (bookmark) {
|
|
@@ -16371,6 +16591,97 @@
|
|
|
16371
16591
|
}
|
|
16372
16592
|
};
|
|
16373
16593
|
|
|
16594
|
+
var setup$4 = function (registeredFormatListeners, editor) {
|
|
16595
|
+
var currentFormats = Cell({});
|
|
16596
|
+
registeredFormatListeners.set({});
|
|
16597
|
+
editor.on('NodeChange', function (e) {
|
|
16598
|
+
updateAndFireChangeCallbacks(editor, e.element, currentFormats, registeredFormatListeners.get());
|
|
16599
|
+
});
|
|
16600
|
+
};
|
|
16601
|
+
var updateAndFireChangeCallbacks = function (editor, elm, currentFormats, formatChangeData) {
|
|
16602
|
+
var formatsList = keys(currentFormats.get());
|
|
16603
|
+
var newFormats = {};
|
|
16604
|
+
var matchedFormats = {};
|
|
16605
|
+
var parents = filter(getParents$1(editor.dom, elm), function (node) {
|
|
16606
|
+
return node.nodeType === 1 && !node.getAttribute('data-mce-bogus');
|
|
16607
|
+
});
|
|
16608
|
+
each$1(formatChangeData, function (data, format) {
|
|
16609
|
+
Tools.each(parents, function (node) {
|
|
16610
|
+
if (editor.formatter.matchNode(node, format, {}, data.similar)) {
|
|
16611
|
+
if (formatsList.indexOf(format) === -1) {
|
|
16612
|
+
each(data.callbacks, function (callback) {
|
|
16613
|
+
callback(true, {
|
|
16614
|
+
node: node,
|
|
16615
|
+
format: format,
|
|
16616
|
+
parents: parents
|
|
16617
|
+
});
|
|
16618
|
+
});
|
|
16619
|
+
newFormats[format] = data.callbacks;
|
|
16620
|
+
}
|
|
16621
|
+
matchedFormats[format] = data.callbacks;
|
|
16622
|
+
return false;
|
|
16623
|
+
}
|
|
16624
|
+
if (matchesUnInheritedFormatSelector(editor, node, format)) {
|
|
16625
|
+
return false;
|
|
16626
|
+
}
|
|
16627
|
+
});
|
|
16628
|
+
});
|
|
16629
|
+
var remainingFormats = filterRemainingFormats(currentFormats.get(), matchedFormats, elm, parents);
|
|
16630
|
+
currentFormats.set(__assign(__assign({}, newFormats), remainingFormats));
|
|
16631
|
+
};
|
|
16632
|
+
var filterRemainingFormats = function (currentFormats, matchedFormats, elm, parents) {
|
|
16633
|
+
return bifilter(currentFormats, function (callbacks, format) {
|
|
16634
|
+
if (!has(matchedFormats, format)) {
|
|
16635
|
+
each(callbacks, function (callback) {
|
|
16636
|
+
callback(false, {
|
|
16637
|
+
node: elm,
|
|
16638
|
+
format: format,
|
|
16639
|
+
parents: parents
|
|
16640
|
+
});
|
|
16641
|
+
});
|
|
16642
|
+
return false;
|
|
16643
|
+
} else {
|
|
16644
|
+
return true;
|
|
16645
|
+
}
|
|
16646
|
+
}).t;
|
|
16647
|
+
};
|
|
16648
|
+
var addListeners = function (registeredFormatListeners, formats, callback, similar) {
|
|
16649
|
+
var formatChangeItems = registeredFormatListeners.get();
|
|
16650
|
+
each(formats.split(','), function (format) {
|
|
16651
|
+
if (!formatChangeItems[format]) {
|
|
16652
|
+
formatChangeItems[format] = {
|
|
16653
|
+
similar: similar,
|
|
16654
|
+
callbacks: []
|
|
16655
|
+
};
|
|
16656
|
+
}
|
|
16657
|
+
formatChangeItems[format].callbacks.push(callback);
|
|
16658
|
+
});
|
|
16659
|
+
registeredFormatListeners.set(formatChangeItems);
|
|
16660
|
+
};
|
|
16661
|
+
var removeListeners = function (registeredFormatListeners, formats, callback) {
|
|
16662
|
+
var formatChangeItems = registeredFormatListeners.get();
|
|
16663
|
+
each(formats.split(','), function (format) {
|
|
16664
|
+
formatChangeItems[format].callbacks = filter(formatChangeItems[format].callbacks, function (c) {
|
|
16665
|
+
return c !== callback;
|
|
16666
|
+
});
|
|
16667
|
+
if (formatChangeItems[format].callbacks.length === 0) {
|
|
16668
|
+
delete formatChangeItems[format];
|
|
16669
|
+
}
|
|
16670
|
+
});
|
|
16671
|
+
registeredFormatListeners.set(formatChangeItems);
|
|
16672
|
+
};
|
|
16673
|
+
var formatChangedInternal = function (editor, registeredFormatListeners, formats, callback, similar) {
|
|
16674
|
+
if (registeredFormatListeners.get() === null) {
|
|
16675
|
+
setup$4(registeredFormatListeners, editor);
|
|
16676
|
+
}
|
|
16677
|
+
addListeners(registeredFormatListeners, formats, callback, similar);
|
|
16678
|
+
return {
|
|
16679
|
+
unbind: function () {
|
|
16680
|
+
return removeListeners(registeredFormatListeners, formats, callback);
|
|
16681
|
+
}
|
|
16682
|
+
};
|
|
16683
|
+
};
|
|
16684
|
+
|
|
16374
16685
|
var toggle = function (editor, name, vars, node) {
|
|
16375
16686
|
var fmt = editor.formatter.get(name);
|
|
16376
16687
|
if (match(editor, name, vars, node) && (!('toggle' in fmt[0]) || fmt[0].toggle)) {
|
|
@@ -16409,7 +16720,7 @@
|
|
|
16409
16720
|
};
|
|
16410
16721
|
};
|
|
16411
16722
|
var getSpan = function (td, key) {
|
|
16412
|
-
var value = parseInt(get$
|
|
16723
|
+
var value = parseInt(get$4(td, key), 10);
|
|
16413
16724
|
return isNaN(value) ? 1 : value;
|
|
16414
16725
|
};
|
|
16415
16726
|
var fillout = function (table, x, y, tr, td) {
|
|
@@ -16594,29 +16905,38 @@
|
|
|
16594
16905
|
var isCollapsibleWhitespace = function (text, index) {
|
|
16595
16906
|
return index >= 0 && index < text.length && isWhiteSpace$1(text.charAt(index));
|
|
16596
16907
|
};
|
|
16597
|
-
var getInnerText = function (bin) {
|
|
16908
|
+
var getInnerText = function (bin, shouldTrim) {
|
|
16598
16909
|
var text = trim$2(bin.innerText);
|
|
16599
|
-
return
|
|
16910
|
+
return shouldTrim ? trimLeadingCollapsibleText(text) : text;
|
|
16911
|
+
};
|
|
16912
|
+
var getContextNodeName = function (parentBlockOpt) {
|
|
16913
|
+
return parentBlockOpt.map(function (block) {
|
|
16914
|
+
return block.nodeName;
|
|
16915
|
+
}).getOr('div').toLowerCase();
|
|
16600
16916
|
};
|
|
16601
16917
|
var getTextContent = function (editor) {
|
|
16602
16918
|
return Optional.from(editor.selection.getRng()).map(function (rng) {
|
|
16603
|
-
var
|
|
16919
|
+
var parentBlockOpt = Optional.from(editor.dom.getParent(rng.commonAncestorContainer, editor.dom.isBlock));
|
|
16920
|
+
var body = editor.getBody();
|
|
16921
|
+
var contextNodeName = getContextNodeName(parentBlockOpt);
|
|
16922
|
+
var shouldTrimSpaces = Env.browser.isIE() && contextNodeName !== 'pre';
|
|
16923
|
+
var bin = editor.dom.add(body, contextNodeName, {
|
|
16604
16924
|
'data-mce-bogus': 'all',
|
|
16605
16925
|
'style': 'overflow: hidden; opacity: 0;'
|
|
16606
16926
|
}, rng.cloneContents());
|
|
16607
|
-
var text = getInnerText(bin);
|
|
16927
|
+
var text = getInnerText(bin, shouldTrimSpaces);
|
|
16608
16928
|
var nonRenderedText = trim$2(bin.textContent);
|
|
16609
16929
|
editor.dom.remove(bin);
|
|
16610
16930
|
if (isCollapsibleWhitespace(nonRenderedText, 0) || isCollapsibleWhitespace(nonRenderedText, nonRenderedText.length - 1)) {
|
|
16611
|
-
var parentBlock =
|
|
16612
|
-
var parentBlockText = getInnerText(parentBlock);
|
|
16931
|
+
var parentBlock = parentBlockOpt.getOr(body);
|
|
16932
|
+
var parentBlockText = getInnerText(parentBlock, shouldTrimSpaces);
|
|
16613
16933
|
var textIndex = parentBlockText.indexOf(text);
|
|
16614
|
-
if (textIndex
|
|
16934
|
+
if (textIndex === -1) {
|
|
16935
|
+
return text;
|
|
16936
|
+
} else {
|
|
16615
16937
|
var hasProceedingSpace = isCollapsibleWhitespace(parentBlockText, textIndex - 1);
|
|
16616
16938
|
var hasTrailingSpace = isCollapsibleWhitespace(parentBlockText, textIndex + text.length);
|
|
16617
16939
|
return (hasProceedingSpace ? ' ' : '') + text + (hasTrailingSpace ? ' ' : '');
|
|
16618
|
-
} else {
|
|
16619
|
-
return text;
|
|
16620
16940
|
}
|
|
16621
16941
|
} else {
|
|
16622
16942
|
return text;
|
|
@@ -16891,7 +17211,7 @@
|
|
|
16891
17211
|
var elm = SugarElement.fromTag('body', lazyTempDocument());
|
|
16892
17212
|
set$1(elm, getLevelContent(level));
|
|
16893
17213
|
each(descendants$1(elm, '*[data-mce-bogus]'), unwrap);
|
|
16894
|
-
return get$
|
|
17214
|
+
return get$7(elm);
|
|
16895
17215
|
};
|
|
16896
17216
|
var hasEqualContent = function (level1, level2) {
|
|
16897
17217
|
return getLevelContent(level1) === getLevelContent(level2);
|
|
@@ -17115,6 +17435,21 @@
|
|
|
17115
17435
|
}
|
|
17116
17436
|
},
|
|
17117
17437
|
formatter: {
|
|
17438
|
+
match: function (name, vars, node) {
|
|
17439
|
+
return match(editor, name, vars, node);
|
|
17440
|
+
},
|
|
17441
|
+
matchAll: function (names, vars) {
|
|
17442
|
+
return matchAll(editor, names, vars);
|
|
17443
|
+
},
|
|
17444
|
+
matchNode: function (node, name, vars, similar) {
|
|
17445
|
+
return matchNode(editor, node, name, vars, similar);
|
|
17446
|
+
},
|
|
17447
|
+
canApply: function (name) {
|
|
17448
|
+
return canApply(editor, name);
|
|
17449
|
+
},
|
|
17450
|
+
closest: function (names) {
|
|
17451
|
+
return closest$3(editor, names);
|
|
17452
|
+
},
|
|
17118
17453
|
apply: function (name, vars, node) {
|
|
17119
17454
|
return applyFormat(editor, name, vars, node);
|
|
17120
17455
|
},
|
|
@@ -17123,6 +17458,9 @@
|
|
|
17123
17458
|
},
|
|
17124
17459
|
toggle: function (name, vars, node) {
|
|
17125
17460
|
return toggle(editor, name, vars, node);
|
|
17461
|
+
},
|
|
17462
|
+
formatChanged: function (registeredFormatListeners, formats, callback, similar) {
|
|
17463
|
+
return formatChangedInternal(editor, registeredFormatListeners, formats, callback, similar);
|
|
17126
17464
|
}
|
|
17127
17465
|
},
|
|
17128
17466
|
editor: {
|
|
@@ -17134,6 +17472,9 @@
|
|
|
17134
17472
|
},
|
|
17135
17473
|
insertContent: function (value, details) {
|
|
17136
17474
|
return insertHtmlAtCaret(editor, value, details);
|
|
17475
|
+
},
|
|
17476
|
+
addVisual: function (elm) {
|
|
17477
|
+
return addVisualInternal(editor, elm);
|
|
17137
17478
|
}
|
|
17138
17479
|
},
|
|
17139
17480
|
selection: {
|
|
@@ -17182,6 +17523,17 @@
|
|
|
17182
17523
|
extra: unsupported
|
|
17183
17524
|
},
|
|
17184
17525
|
formatter: {
|
|
17526
|
+
match: function (name, vars, _node) {
|
|
17527
|
+
return rtcEditor.matchFormat(name, defaultVars(vars));
|
|
17528
|
+
},
|
|
17529
|
+
matchAll: unsupported,
|
|
17530
|
+
matchNode: unsupported,
|
|
17531
|
+
canApply: function (name) {
|
|
17532
|
+
return rtcEditor.canApplyFormat(name);
|
|
17533
|
+
},
|
|
17534
|
+
closest: function (names) {
|
|
17535
|
+
return rtcEditor.closestFormat(names);
|
|
17536
|
+
},
|
|
17185
17537
|
apply: function (name, vars, _node) {
|
|
17186
17538
|
return rtcEditor.applyFormat(name, defaultVars(vars));
|
|
17187
17539
|
},
|
|
@@ -17190,6 +17542,9 @@
|
|
|
17190
17542
|
},
|
|
17191
17543
|
toggle: function (name, vars, _node) {
|
|
17192
17544
|
return rtcEditor.toggleFormat(name, defaultVars(vars));
|
|
17545
|
+
},
|
|
17546
|
+
formatChanged: function (_rfl, formats, callback, similar) {
|
|
17547
|
+
return rtcEditor.formatChanged(formats, callback, similar);
|
|
17193
17548
|
}
|
|
17194
17549
|
},
|
|
17195
17550
|
editor: {
|
|
@@ -17219,6 +17574,8 @@
|
|
|
17219
17574
|
});
|
|
17220
17575
|
var fragment = isTreeNode$1(value) ? value : tinymceEditor.parser.parse(value, __assign(__assign({}, contextArgs), { insert: true }));
|
|
17221
17576
|
rtcEditor.insertContent(fragment);
|
|
17577
|
+
},
|
|
17578
|
+
addVisual: function (_elm) {
|
|
17222
17579
|
}
|
|
17223
17580
|
},
|
|
17224
17581
|
selection: {
|
|
@@ -17243,9 +17600,9 @@
|
|
|
17243
17600
|
var isRtc = function (editor) {
|
|
17244
17601
|
return has(editor.plugins, 'rtc');
|
|
17245
17602
|
};
|
|
17246
|
-
var setup$
|
|
17603
|
+
var setup$5 = function (editor) {
|
|
17247
17604
|
var editorCast = editor;
|
|
17248
|
-
return get(editor.plugins, 'rtc').fold(function () {
|
|
17605
|
+
return get$1(editor.plugins, 'rtc').fold(function () {
|
|
17249
17606
|
editorCast.rtcInstance = makePlainAdaptor(editor);
|
|
17250
17607
|
return Optional.none();
|
|
17251
17608
|
}, function (rtc) {
|
|
@@ -17299,6 +17656,21 @@
|
|
|
17299
17656
|
var extra$1 = function (editor, undoManager, index, callback1, callback2) {
|
|
17300
17657
|
getRtcInstanceWithError(editor).undoManager.extra(undoManager, index, callback1, callback2);
|
|
17301
17658
|
};
|
|
17659
|
+
var matchFormat = function (editor, name, vars, node) {
|
|
17660
|
+
return getRtcInstanceWithError(editor).formatter.match(name, vars, node);
|
|
17661
|
+
};
|
|
17662
|
+
var matchAllFormats = function (editor, names, vars) {
|
|
17663
|
+
return getRtcInstanceWithError(editor).formatter.matchAll(names, vars);
|
|
17664
|
+
};
|
|
17665
|
+
var matchNodeFormat = function (editor, node, name, vars, similar) {
|
|
17666
|
+
return getRtcInstanceWithError(editor).formatter.matchNode(node, name, vars, similar);
|
|
17667
|
+
};
|
|
17668
|
+
var canApplyFormat = function (editor, name) {
|
|
17669
|
+
return getRtcInstanceWithError(editor).formatter.canApply(name);
|
|
17670
|
+
};
|
|
17671
|
+
var closestFormat = function (editor, names) {
|
|
17672
|
+
return getRtcInstanceWithError(editor).formatter.closest(names);
|
|
17673
|
+
};
|
|
17302
17674
|
var applyFormat$1 = function (editor, name, vars, node) {
|
|
17303
17675
|
getRtcInstanceWithError(editor).formatter.apply(name, vars, node);
|
|
17304
17676
|
};
|
|
@@ -17308,6 +17680,12 @@
|
|
|
17308
17680
|
var toggleFormat = function (editor, name, vars, node) {
|
|
17309
17681
|
getRtcInstanceWithError(editor).formatter.toggle(name, vars, node);
|
|
17310
17682
|
};
|
|
17683
|
+
var formatChanged = function (editor, registeredFormatListeners, formats, callback, similar) {
|
|
17684
|
+
if (similar === void 0) {
|
|
17685
|
+
similar = false;
|
|
17686
|
+
}
|
|
17687
|
+
return getRtcInstanceWithError(editor).formatter.formatChanged(registeredFormatListeners, formats, callback, similar);
|
|
17688
|
+
};
|
|
17311
17689
|
var getContent = function (editor, args, format) {
|
|
17312
17690
|
return getRtcInstanceWithFallback(editor).editor.getContent(args, format);
|
|
17313
17691
|
};
|
|
@@ -17320,6 +17698,9 @@
|
|
|
17320
17698
|
var getSelectedContent = function (editor, format, args) {
|
|
17321
17699
|
return getRtcInstanceWithError(editor).selection.getContent(format, args);
|
|
17322
17700
|
};
|
|
17701
|
+
var addVisual = function (editor, elm) {
|
|
17702
|
+
return getRtcInstanceWithError(editor).editor.addVisual(elm);
|
|
17703
|
+
};
|
|
17323
17704
|
|
|
17324
17705
|
var getContent$1 = function (editor, args) {
|
|
17325
17706
|
if (args === void 0) {
|
|
@@ -18531,6 +18912,7 @@
|
|
|
18531
18912
|
var parser = SaxParser$1({
|
|
18532
18913
|
validate: validate,
|
|
18533
18914
|
allow_html_data_urls: settings.allow_html_data_urls,
|
|
18915
|
+
allow_svg_data_urls: settings.allow_svg_data_urls,
|
|
18534
18916
|
allow_script_urls: settings.allow_script_urls,
|
|
18535
18917
|
allow_conditional_comments: settings.allow_conditional_comments,
|
|
18536
18918
|
preserve_cdata: settings.preserve_cdata,
|
|
@@ -19176,8 +19558,8 @@
|
|
|
19176
19558
|
return hasSection(sectionResult, name) ? sectionResult.sections()[name] : {};
|
|
19177
19559
|
};
|
|
19178
19560
|
var getToolbarMode = function (settings, defaultVal) {
|
|
19179
|
-
return get(settings, 'toolbar_mode').orThunk(function () {
|
|
19180
|
-
return get(settings, 'toolbar_drawer').map(function (val) {
|
|
19561
|
+
return get$1(settings, 'toolbar_mode').orThunk(function () {
|
|
19562
|
+
return get$1(settings, 'toolbar_drawer').map(function (val) {
|
|
19181
19563
|
return val === false ? 'wrap' : val;
|
|
19182
19564
|
});
|
|
19183
19565
|
}).getOr(defaultVal);
|
|
@@ -19232,13 +19614,25 @@
|
|
|
19232
19614
|
var combinePlugins = function (forcedPlugins, plugins) {
|
|
19233
19615
|
return [].concat(normalizePlugins(forcedPlugins)).concat(normalizePlugins(plugins));
|
|
19234
19616
|
};
|
|
19617
|
+
var getPlatformPlugins = function (isMobileDevice, sectionResult, desktopPlugins, mobilePlugins) {
|
|
19618
|
+
if (isMobileDevice && isSectionTheme(sectionResult, 'mobile', 'mobile')) {
|
|
19619
|
+
return filterLegacyMobilePlugins(mobilePlugins);
|
|
19620
|
+
} else if (isMobileDevice && hasSection(sectionResult, 'mobile')) {
|
|
19621
|
+
return mobilePlugins;
|
|
19622
|
+
} else {
|
|
19623
|
+
return desktopPlugins;
|
|
19624
|
+
}
|
|
19625
|
+
};
|
|
19235
19626
|
var processPlugins = function (isMobileDevice, sectionResult, defaultOverrideSettings, settings) {
|
|
19236
19627
|
var forcedPlugins = normalizePlugins(defaultOverrideSettings.forced_plugins);
|
|
19237
19628
|
var desktopPlugins = normalizePlugins(settings.plugins);
|
|
19238
19629
|
var mobileConfig = getSectionConfig(sectionResult, 'mobile');
|
|
19239
19630
|
var mobilePlugins = mobileConfig.plugins ? normalizePlugins(mobileConfig.plugins) : desktopPlugins;
|
|
19240
|
-
var platformPlugins = isMobileDevice
|
|
19631
|
+
var platformPlugins = getPlatformPlugins(isMobileDevice, sectionResult, desktopPlugins, mobilePlugins);
|
|
19241
19632
|
var combinedPlugins = combinePlugins(forcedPlugins, platformPlugins);
|
|
19633
|
+
if (Env.browser.isIE() && contains(combinedPlugins, 'rtc')) {
|
|
19634
|
+
throw new Error('RTC plugin is not supported on IE 11.');
|
|
19635
|
+
}
|
|
19242
19636
|
return Tools.extend(settings, { plugins: combinedPlugins.join(' ') });
|
|
19243
19637
|
};
|
|
19244
19638
|
var isOnMobile = function (isMobileDevice, sectionResult) {
|
|
@@ -19331,7 +19725,7 @@
|
|
|
19331
19725
|
return rawElm[propName];
|
|
19332
19726
|
};
|
|
19333
19727
|
var getComputedSizeProp = function (propName, elm) {
|
|
19334
|
-
return parseInt(get$
|
|
19728
|
+
return parseInt(get$5(elm, propName), 10);
|
|
19335
19729
|
};
|
|
19336
19730
|
var getClientWidth = curry(getProp, 'clientWidth');
|
|
19337
19731
|
var getClientHeight = curry(getProp, 'clientHeight');
|
|
@@ -19409,10 +19803,16 @@
|
|
|
19409
19803
|
notifications.splice(index, 1);
|
|
19410
19804
|
});
|
|
19411
19805
|
};
|
|
19412
|
-
var open = function (spec) {
|
|
19806
|
+
var open = function (spec, fireEvent) {
|
|
19807
|
+
if (fireEvent === void 0) {
|
|
19808
|
+
fireEvent = true;
|
|
19809
|
+
}
|
|
19413
19810
|
if (editor.removed || !isEditorAttachedToDom(editor)) {
|
|
19414
19811
|
return;
|
|
19415
19812
|
}
|
|
19813
|
+
if (fireEvent) {
|
|
19814
|
+
editor.fire('BeforeOpenNotification', { notification: spec });
|
|
19815
|
+
}
|
|
19416
19816
|
return find(notifications, function (notification) {
|
|
19417
19817
|
return isEqual(getImplementation().getArgs(notification), spec);
|
|
19418
19818
|
}).getOrThunk(function () {
|
|
@@ -19428,6 +19828,7 @@
|
|
|
19428
19828
|
});
|
|
19429
19829
|
addNotification(notification);
|
|
19430
19830
|
reposition();
|
|
19831
|
+
editor.fire('OpenNotification', __assign({}, notification));
|
|
19431
19832
|
return notification;
|
|
19432
19833
|
});
|
|
19433
19834
|
};
|
|
@@ -19449,7 +19850,7 @@
|
|
|
19449
19850
|
text: serviceMessage,
|
|
19450
19851
|
type: 'warning',
|
|
19451
19852
|
timeout: 0
|
|
19452
|
-
});
|
|
19853
|
+
}, false);
|
|
19453
19854
|
}
|
|
19454
19855
|
});
|
|
19455
19856
|
editor.on('ResizeEditor ResizeWindow NodeChange', function () {
|
|
@@ -19841,16 +20242,23 @@
|
|
|
19841
20242
|
'image/jpeg': 'jpg',
|
|
19842
20243
|
'image/jpg': 'jpg',
|
|
19843
20244
|
'image/gif': 'gif',
|
|
19844
|
-
'image/png': 'png'
|
|
20245
|
+
'image/png': 'png',
|
|
20246
|
+
'image/apng': 'apng',
|
|
20247
|
+
'image/avif': 'avif',
|
|
20248
|
+
'image/svg+xml': 'svg',
|
|
20249
|
+
'image/webp': 'webp',
|
|
20250
|
+
'image/bmp': 'bmp',
|
|
20251
|
+
'image/tiff': 'tiff'
|
|
19845
20252
|
};
|
|
19846
20253
|
return mimes[mime.toLowerCase()] || 'dat';
|
|
19847
20254
|
};
|
|
19848
|
-
var create = function (o, blob, base64, filename) {
|
|
20255
|
+
var create = function (o, blob, base64, name, filename) {
|
|
19849
20256
|
if (isString(o)) {
|
|
19850
20257
|
var id = o;
|
|
19851
20258
|
return toBlobInfo({
|
|
19852
20259
|
id: id,
|
|
19853
|
-
name:
|
|
20260
|
+
name: name,
|
|
20261
|
+
filename: filename,
|
|
19854
20262
|
blob: blob,
|
|
19855
20263
|
base64: base64
|
|
19856
20264
|
});
|
|
@@ -19866,13 +20274,14 @@
|
|
|
19866
20274
|
}
|
|
19867
20275
|
var id = o.id || uuid('blobid');
|
|
19868
20276
|
var name = o.name || id;
|
|
20277
|
+
var blob = o.blob;
|
|
19869
20278
|
return {
|
|
19870
20279
|
id: constant(id),
|
|
19871
20280
|
name: constant(name),
|
|
19872
|
-
filename: constant(name + '.' + mimeToExt(
|
|
19873
|
-
blob: constant(
|
|
20281
|
+
filename: constant(o.filename || name + '.' + mimeToExt(blob.type)),
|
|
20282
|
+
blob: constant(blob),
|
|
19874
20283
|
base64: constant(o.base64),
|
|
19875
|
-
blobUri: constant(o.blobUri || URL.createObjectURL(
|
|
20284
|
+
blobUri: constant(o.blobUri || URL.createObjectURL(blob)),
|
|
19876
20285
|
uri: constant(o.uri)
|
|
19877
20286
|
};
|
|
19878
20287
|
};
|
|
@@ -19926,11 +20335,31 @@
|
|
|
19926
20335
|
};
|
|
19927
20336
|
};
|
|
19928
20337
|
|
|
20338
|
+
var UploadChangeHandler = function (editor) {
|
|
20339
|
+
var lastChangedLevel = Cell(null);
|
|
20340
|
+
editor.on('change AddUndo', function (e) {
|
|
20341
|
+
lastChangedLevel.set(__assign({}, e.level));
|
|
20342
|
+
});
|
|
20343
|
+
var fireIfChanged = function () {
|
|
20344
|
+
var data = editor.undoManager.data;
|
|
20345
|
+
last(data).filter(function (level) {
|
|
20346
|
+
return !isEq$4(lastChangedLevel.get(), level);
|
|
20347
|
+
}).each(function (level) {
|
|
20348
|
+
editor.setDirty(true);
|
|
20349
|
+
editor.fire('change', {
|
|
20350
|
+
level: level,
|
|
20351
|
+
lastLevel: get(data, data.length - 2).getOrNull()
|
|
20352
|
+
});
|
|
20353
|
+
});
|
|
20354
|
+
};
|
|
20355
|
+
return { fireIfChanged: fireIfChanged };
|
|
20356
|
+
};
|
|
19929
20357
|
var EditorUpload = function (editor) {
|
|
19930
20358
|
var blobCache = BlobCache();
|
|
19931
20359
|
var uploader, imageScanner;
|
|
19932
20360
|
var uploadStatus = UploadStatus();
|
|
19933
20361
|
var urlFilters = [];
|
|
20362
|
+
var changeHandler = UploadChangeHandler(editor);
|
|
19934
20363
|
var aliveGuard = function (callback) {
|
|
19935
20364
|
return function (result) {
|
|
19936
20365
|
if (editor.selection) {
|
|
@@ -20021,6 +20450,9 @@
|
|
|
20021
20450
|
blobInfo: blobInfo
|
|
20022
20451
|
};
|
|
20023
20452
|
});
|
|
20453
|
+
if (filteredResult.length > 0) {
|
|
20454
|
+
changeHandler.fireIfChanged();
|
|
20455
|
+
}
|
|
20024
20456
|
if (imagesToRemove.length > 0) {
|
|
20025
20457
|
if (isRtc(editor)) {
|
|
20026
20458
|
console.error('Removing images on failed uploads is currently unsupported for RTC');
|
|
@@ -20115,7 +20547,7 @@
|
|
|
20115
20547
|
e.content = replaceBlobUris(e.content);
|
|
20116
20548
|
});
|
|
20117
20549
|
editor.on('GetContent', function (e) {
|
|
20118
|
-
if (e.source_view || e.format === 'raw') {
|
|
20550
|
+
if (e.source_view || e.format === 'raw' || e.format === 'tree') {
|
|
20119
20551
|
return;
|
|
20120
20552
|
}
|
|
20121
20553
|
e.content = replaceBlobUris(e.content);
|
|
@@ -20144,98 +20576,7 @@
|
|
|
20144
20576
|
};
|
|
20145
20577
|
};
|
|
20146
20578
|
|
|
20147
|
-
var
|
|
20148
|
-
var currentFormats = Cell({});
|
|
20149
|
-
registeredFormatListeners.set({});
|
|
20150
|
-
editor.on('NodeChange', function (e) {
|
|
20151
|
-
updateAndFireChangeCallbacks(editor, e.element, currentFormats, registeredFormatListeners.get());
|
|
20152
|
-
});
|
|
20153
|
-
};
|
|
20154
|
-
var updateAndFireChangeCallbacks = function (editor, elm, currentFormats, formatChangeData) {
|
|
20155
|
-
var formatsList = keys(currentFormats.get());
|
|
20156
|
-
var newFormats = {};
|
|
20157
|
-
var matchedFormats = {};
|
|
20158
|
-
var parents = filter(getParents$1(editor.dom, elm), function (node) {
|
|
20159
|
-
return node.nodeType === 1 && !node.getAttribute('data-mce-bogus');
|
|
20160
|
-
});
|
|
20161
|
-
each$1(formatChangeData, function (data, format) {
|
|
20162
|
-
Tools.each(parents, function (node) {
|
|
20163
|
-
if (editor.formatter.matchNode(node, format, {}, data.similar)) {
|
|
20164
|
-
if (formatsList.indexOf(format) === -1) {
|
|
20165
|
-
each(data.callbacks, function (callback) {
|
|
20166
|
-
callback(true, {
|
|
20167
|
-
node: node,
|
|
20168
|
-
format: format,
|
|
20169
|
-
parents: parents
|
|
20170
|
-
});
|
|
20171
|
-
});
|
|
20172
|
-
newFormats[format] = data.callbacks;
|
|
20173
|
-
}
|
|
20174
|
-
matchedFormats[format] = data.callbacks;
|
|
20175
|
-
return false;
|
|
20176
|
-
}
|
|
20177
|
-
if (matchesUnInheritedFormatSelector(editor, node, format)) {
|
|
20178
|
-
return false;
|
|
20179
|
-
}
|
|
20180
|
-
});
|
|
20181
|
-
});
|
|
20182
|
-
var remainingFormats = filterRemainingFormats(currentFormats.get(), matchedFormats, elm, parents);
|
|
20183
|
-
currentFormats.set(__assign(__assign({}, newFormats), remainingFormats));
|
|
20184
|
-
};
|
|
20185
|
-
var filterRemainingFormats = function (currentFormats, matchedFormats, elm, parents) {
|
|
20186
|
-
return bifilter(currentFormats, function (callbacks, format) {
|
|
20187
|
-
if (!has(matchedFormats, format)) {
|
|
20188
|
-
each(callbacks, function (callback) {
|
|
20189
|
-
callback(false, {
|
|
20190
|
-
node: elm,
|
|
20191
|
-
format: format,
|
|
20192
|
-
parents: parents
|
|
20193
|
-
});
|
|
20194
|
-
});
|
|
20195
|
-
return false;
|
|
20196
|
-
} else {
|
|
20197
|
-
return true;
|
|
20198
|
-
}
|
|
20199
|
-
}).t;
|
|
20200
|
-
};
|
|
20201
|
-
var addListeners = function (registeredFormatListeners, formats, callback, similar) {
|
|
20202
|
-
var formatChangeItems = registeredFormatListeners.get();
|
|
20203
|
-
each(formats.split(','), function (format) {
|
|
20204
|
-
if (!formatChangeItems[format]) {
|
|
20205
|
-
formatChangeItems[format] = {
|
|
20206
|
-
similar: similar,
|
|
20207
|
-
callbacks: []
|
|
20208
|
-
};
|
|
20209
|
-
}
|
|
20210
|
-
formatChangeItems[format].callbacks.push(callback);
|
|
20211
|
-
});
|
|
20212
|
-
registeredFormatListeners.set(formatChangeItems);
|
|
20213
|
-
};
|
|
20214
|
-
var removeListeners = function (registeredFormatListeners, formats, callback) {
|
|
20215
|
-
var formatChangeItems = registeredFormatListeners.get();
|
|
20216
|
-
each(formats.split(','), function (format) {
|
|
20217
|
-
formatChangeItems[format].callbacks = filter(formatChangeItems[format].callbacks, function (c) {
|
|
20218
|
-
return c !== callback;
|
|
20219
|
-
});
|
|
20220
|
-
if (formatChangeItems[format].callbacks.length === 0) {
|
|
20221
|
-
delete formatChangeItems[format];
|
|
20222
|
-
}
|
|
20223
|
-
});
|
|
20224
|
-
registeredFormatListeners.set(formatChangeItems);
|
|
20225
|
-
};
|
|
20226
|
-
var formatChanged = function (editor, registeredFormatListeners, formats, callback, similar) {
|
|
20227
|
-
if (registeredFormatListeners.get() === null) {
|
|
20228
|
-
setup$5(registeredFormatListeners, editor);
|
|
20229
|
-
}
|
|
20230
|
-
addListeners(registeredFormatListeners, formats, callback, similar);
|
|
20231
|
-
return {
|
|
20232
|
-
unbind: function () {
|
|
20233
|
-
return removeListeners(registeredFormatListeners, formats, callback);
|
|
20234
|
-
}
|
|
20235
|
-
};
|
|
20236
|
-
};
|
|
20237
|
-
|
|
20238
|
-
var get$9 = function (dom) {
|
|
20579
|
+
var get$a = function (dom) {
|
|
20239
20580
|
var formats = {
|
|
20240
20581
|
valigntop: [{
|
|
20241
20582
|
selector: 'td,th',
|
|
@@ -20554,7 +20895,7 @@
|
|
|
20554
20895
|
}
|
|
20555
20896
|
return formats;
|
|
20556
20897
|
};
|
|
20557
|
-
register(get$
|
|
20898
|
+
register(get$a(editor.dom));
|
|
20558
20899
|
register(getFormats(editor));
|
|
20559
20900
|
return {
|
|
20560
20901
|
get: get,
|
|
@@ -20706,7 +21047,7 @@
|
|
|
20706
21047
|
format = format[0];
|
|
20707
21048
|
}
|
|
20708
21049
|
if ('preview' in format) {
|
|
20709
|
-
var previewOpt = get(format, 'preview');
|
|
21050
|
+
var previewOpt = get$1(format, 'preview');
|
|
20710
21051
|
if (previewOpt.is(false)) {
|
|
20711
21052
|
return '';
|
|
20712
21053
|
} else {
|
|
@@ -20830,11 +21171,24 @@
|
|
|
20830
21171
|
toggle: function (name, vars, node) {
|
|
20831
21172
|
toggleFormat(editor, name, vars, node);
|
|
20832
21173
|
},
|
|
20833
|
-
match:
|
|
20834
|
-
|
|
20835
|
-
|
|
20836
|
-
|
|
20837
|
-
|
|
21174
|
+
match: function (name, vars, node) {
|
|
21175
|
+
return matchFormat(editor, name, vars, node);
|
|
21176
|
+
},
|
|
21177
|
+
closest: function (names) {
|
|
21178
|
+
return closestFormat(editor, names);
|
|
21179
|
+
},
|
|
21180
|
+
matchAll: function (names, vars) {
|
|
21181
|
+
return matchAllFormats(editor, names, vars);
|
|
21182
|
+
},
|
|
21183
|
+
matchNode: function (node, names, vars, similar) {
|
|
21184
|
+
return matchNodeFormat(editor, node, names, vars, similar);
|
|
21185
|
+
},
|
|
21186
|
+
canApply: function (name) {
|
|
21187
|
+
return canApplyFormat(editor, name);
|
|
21188
|
+
},
|
|
21189
|
+
formatChanged: function (formats, callback, similar) {
|
|
21190
|
+
return formatChanged(editor, formatChangeState, formats, callback, similar);
|
|
21191
|
+
},
|
|
20838
21192
|
getCssText: curry(getCssText, editor)
|
|
20839
21193
|
};
|
|
20840
21194
|
};
|
|
@@ -22147,7 +22501,7 @@
|
|
|
22147
22501
|
};
|
|
22148
22502
|
var getIndentStyleName = function (useMargin, element) {
|
|
22149
22503
|
var indentStyleName = useMargin || isTable$1(element) ? 'margin' : 'padding';
|
|
22150
|
-
var suffix = get$
|
|
22504
|
+
var suffix = get$5(element, 'direction') === 'rtl' ? '-right' : '-left';
|
|
22151
22505
|
return indentStyleName + suffix;
|
|
22152
22506
|
};
|
|
22153
22507
|
var indentElement = function (dom, command, useMargin, value, unit, element) {
|
|
@@ -24731,6 +25085,7 @@
|
|
|
24731
25085
|
editor._selectionOverrides.hideFakeCaret();
|
|
24732
25086
|
editor.selection.placeCaretAt(clientX, clientY);
|
|
24733
25087
|
}, 0);
|
|
25088
|
+
editor.on('remove', throttledPlaceCaretAt.stop);
|
|
24734
25089
|
return function (e) {
|
|
24735
25090
|
return state.on(function (state) {
|
|
24736
25091
|
var movement = Math.max(Math.abs(e.screenX - state.screenX), Math.abs(e.screenY - state.screenY));
|
|
@@ -24924,7 +25279,7 @@
|
|
|
24924
25279
|
return dom.hasClass(node, 'mce-offscreen-selection');
|
|
24925
25280
|
};
|
|
24926
25281
|
var isFakeSelectionTargetElement = function (node) {
|
|
24927
|
-
return isContentEditableFalse$b(node) || isMedia(node);
|
|
25282
|
+
return node !== rootNode && (isContentEditableFalse$b(node) || isMedia(node)) && dom.isChildOf(node, rootNode);
|
|
24928
25283
|
};
|
|
24929
25284
|
var isNearFakeSelectionElement = function (pos) {
|
|
24930
25285
|
return isBeforeContentEditableFalse(pos) || isAfterContentEditableFalse(pos) || isBeforeMedia(pos) || isAfterMedia(pos);
|
|
@@ -25710,6 +26065,7 @@
|
|
|
25710
26065
|
return removeUndefined({
|
|
25711
26066
|
allow_conditional_comments: settings.allow_conditional_comments,
|
|
25712
26067
|
allow_html_data_urls: settings.allow_html_data_urls,
|
|
26068
|
+
allow_svg_data_urls: settings.allow_svg_data_urls,
|
|
25713
26069
|
allow_html_in_named_anchor: settings.allow_html_in_named_anchor,
|
|
25714
26070
|
allow_script_urls: settings.allow_script_urls,
|
|
25715
26071
|
allow_unsafe_link_target: settings.allow_unsafe_link_target,
|
|
@@ -25987,7 +26343,7 @@
|
|
|
25987
26343
|
setup$a(editor);
|
|
25988
26344
|
setup$7(editor);
|
|
25989
26345
|
firePreInit(editor);
|
|
25990
|
-
setup$
|
|
26346
|
+
setup$5(editor).fold(function () {
|
|
25991
26347
|
preInit(editor, false);
|
|
25992
26348
|
}, function (loadingRtc) {
|
|
25993
26349
|
editor.setProgressState(true);
|
|
@@ -26163,13 +26519,27 @@
|
|
|
26163
26519
|
return renderThemeFalse(editor);
|
|
26164
26520
|
}
|
|
26165
26521
|
};
|
|
26522
|
+
var augmentEditorUiApi = function (editor, api) {
|
|
26523
|
+
var uiApiFacade = {
|
|
26524
|
+
show: Optional.from(api.show).getOr(noop),
|
|
26525
|
+
hide: Optional.from(api.hide).getOr(noop),
|
|
26526
|
+
disable: Optional.from(api.disable).getOr(noop),
|
|
26527
|
+
isDisabled: Optional.from(api.isDisabled).getOr(never),
|
|
26528
|
+
enable: function () {
|
|
26529
|
+
if (!editor.mode.isReadOnly()) {
|
|
26530
|
+
Optional.from(api.enable).map(call);
|
|
26531
|
+
}
|
|
26532
|
+
}
|
|
26533
|
+
};
|
|
26534
|
+
editor.ui = __assign(__assign({}, editor.ui), uiApiFacade);
|
|
26535
|
+
};
|
|
26166
26536
|
var init$2 = function (editor) {
|
|
26167
26537
|
editor.fire('ScriptsLoaded');
|
|
26168
26538
|
initIcons(editor);
|
|
26169
26539
|
initTheme(editor);
|
|
26170
26540
|
initPlugins(editor);
|
|
26171
26541
|
var renderInfo = renderThemeUi(editor);
|
|
26172
|
-
editor
|
|
26542
|
+
augmentEditorUiApi(editor, Optional.from(renderInfo.api).getOr({}));
|
|
26173
26543
|
var boxInfo = {
|
|
26174
26544
|
editorContainer: renderInfo.editorContainer,
|
|
26175
26545
|
iframeContainer: renderInfo.iframeContainer
|
|
@@ -26399,30 +26769,8 @@
|
|
|
26399
26769
|
loadScripts(editor, editor.suffix);
|
|
26400
26770
|
};
|
|
26401
26771
|
|
|
26402
|
-
var
|
|
26403
|
-
return
|
|
26404
|
-
};
|
|
26405
|
-
var ancestor$3 = function (scope, transform, isRoot) {
|
|
26406
|
-
var element = scope.dom;
|
|
26407
|
-
var stop = ensureIsRoot(isRoot);
|
|
26408
|
-
while (element.parentNode) {
|
|
26409
|
-
element = element.parentNode;
|
|
26410
|
-
var el = SugarElement.fromDom(element);
|
|
26411
|
-
var transformed = transform(el);
|
|
26412
|
-
if (transformed.isSome()) {
|
|
26413
|
-
return transformed;
|
|
26414
|
-
} else if (stop(el)) {
|
|
26415
|
-
break;
|
|
26416
|
-
}
|
|
26417
|
-
}
|
|
26418
|
-
return Optional.none();
|
|
26419
|
-
};
|
|
26420
|
-
var closest$2 = function (scope, transform, isRoot) {
|
|
26421
|
-
var current = transform(scope);
|
|
26422
|
-
var stop = ensureIsRoot(isRoot);
|
|
26423
|
-
return current.orThunk(function () {
|
|
26424
|
-
return stop(scope) ? Optional.none() : ancestor$3(scope, transform, stop);
|
|
26425
|
-
});
|
|
26772
|
+
var addVisual$1 = function (editor, elm) {
|
|
26773
|
+
return addVisual(editor, elm);
|
|
26426
26774
|
};
|
|
26427
26775
|
|
|
26428
26776
|
var legacyPropNames = {
|
|
@@ -26433,7 +26781,7 @@
|
|
|
26433
26781
|
var getProperty = function (elm) {
|
|
26434
26782
|
return getRaw(elm, propName).orThunk(function () {
|
|
26435
26783
|
if (name(elm) === 'font') {
|
|
26436
|
-
return get(legacyPropNames, propName).bind(function (legacyPropName) {
|
|
26784
|
+
return get$1(legacyPropNames, propName).bind(function (legacyPropName) {
|
|
26437
26785
|
return getOpt(elm, legacyPropName);
|
|
26438
26786
|
});
|
|
26439
26787
|
} else {
|
|
@@ -26536,8 +26884,8 @@
|
|
|
26536
26884
|
return getRaw(elm, 'line-height');
|
|
26537
26885
|
}, curry(eq$2, root));
|
|
26538
26886
|
var computedStyle = function () {
|
|
26539
|
-
var lineHeight = parseFloat(get$
|
|
26540
|
-
var fontSize = parseFloat(get$
|
|
26887
|
+
var lineHeight = parseFloat(get$5(elm, 'line-height'));
|
|
26888
|
+
var fontSize = parseFloat(get$5(elm, 'font-size'));
|
|
26541
26889
|
return String(lineHeight / fontSize);
|
|
26542
26890
|
};
|
|
26543
26891
|
return specifiedStyle.getOrThunk(computedStyle);
|
|
@@ -27070,13 +27418,28 @@
|
|
|
27070
27418
|
var isClickEvent = function (e) {
|
|
27071
27419
|
return e.type === 'click';
|
|
27072
27420
|
};
|
|
27073
|
-
var
|
|
27074
|
-
|
|
27421
|
+
var getAnchorHrefOpt = function (editor, elm) {
|
|
27422
|
+
var isRoot = function (elm) {
|
|
27423
|
+
return eq$2(elm, SugarElement.fromDom(editor.getBody()));
|
|
27424
|
+
};
|
|
27425
|
+
return closest$1(elm, 'a', isRoot).bind(function (a) {
|
|
27426
|
+
return getOpt(a, 'href');
|
|
27427
|
+
});
|
|
27075
27428
|
};
|
|
27076
|
-
var
|
|
27077
|
-
|
|
27078
|
-
|
|
27079
|
-
|
|
27429
|
+
var processReadonlyEvents = function (editor, e) {
|
|
27430
|
+
if (isClickEvent(e) && !VK.metaKeyPressed(e)) {
|
|
27431
|
+
var elm = SugarElement.fromDom(e.target);
|
|
27432
|
+
getAnchorHrefOpt(editor, elm).each(function (href) {
|
|
27433
|
+
e.preventDefault();
|
|
27434
|
+
if (/^#/.test(href)) {
|
|
27435
|
+
var targetEl = editor.dom.select(href + ',[name="' + removeLeading(href, '#') + '"]');
|
|
27436
|
+
if (targetEl.length) {
|
|
27437
|
+
editor.selection.scrollIntoView(targetEl[0], true);
|
|
27438
|
+
}
|
|
27439
|
+
} else {
|
|
27440
|
+
window.open(href, '_blank', 'rel=noopener noreferrer,menubar=yes,toolbar=yes,location=yes,status=yes,resizable=yes,scrollbars=yes');
|
|
27441
|
+
}
|
|
27442
|
+
});
|
|
27080
27443
|
}
|
|
27081
27444
|
};
|
|
27082
27445
|
var registerReadOnlySelectionBlockers = function (editor) {
|
|
@@ -27292,7 +27655,7 @@
|
|
|
27292
27655
|
if (isListening(editor)) {
|
|
27293
27656
|
editor.fire(eventName, e);
|
|
27294
27657
|
} else if (isReadOnly$1(editor)) {
|
|
27295
|
-
|
|
27658
|
+
processReadonlyEvents(editor, e);
|
|
27296
27659
|
}
|
|
27297
27660
|
};
|
|
27298
27661
|
var bindEventDelegate = function (editor, eventName) {
|
|
@@ -27985,7 +28348,10 @@
|
|
|
27985
28348
|
registry: registry(),
|
|
27986
28349
|
styleSheetLoader: undefined,
|
|
27987
28350
|
show: noop,
|
|
27988
|
-
hide: noop
|
|
28351
|
+
hide: noop,
|
|
28352
|
+
enable: noop,
|
|
28353
|
+
disable: noop,
|
|
28354
|
+
isDisabled: never
|
|
27989
28355
|
};
|
|
27990
28356
|
var self = this;
|
|
27991
28357
|
var modeInstance = create$5(self);
|
|
@@ -28265,43 +28631,7 @@
|
|
|
28265
28631
|
return url;
|
|
28266
28632
|
};
|
|
28267
28633
|
Editor.prototype.addVisual = function (elm) {
|
|
28268
|
-
|
|
28269
|
-
var settings = self.settings;
|
|
28270
|
-
var dom = self.dom;
|
|
28271
|
-
var cls;
|
|
28272
|
-
elm = elm || self.getBody();
|
|
28273
|
-
if (self.hasVisual === undefined) {
|
|
28274
|
-
self.hasVisual = settings.visual;
|
|
28275
|
-
}
|
|
28276
|
-
each$i(dom.select('table,a', elm), function (elm) {
|
|
28277
|
-
var value;
|
|
28278
|
-
switch (elm.nodeName) {
|
|
28279
|
-
case 'TABLE':
|
|
28280
|
-
cls = settings.visual_table_class || 'mce-item-table';
|
|
28281
|
-
value = dom.getAttrib(elm, 'border');
|
|
28282
|
-
if ((!value || value === '0') && self.hasVisual) {
|
|
28283
|
-
dom.addClass(elm, cls);
|
|
28284
|
-
} else {
|
|
28285
|
-
dom.removeClass(elm, cls);
|
|
28286
|
-
}
|
|
28287
|
-
return;
|
|
28288
|
-
case 'A':
|
|
28289
|
-
if (!dom.getAttrib(elm, 'href')) {
|
|
28290
|
-
value = dom.getAttrib(elm, 'name') || elm.id;
|
|
28291
|
-
cls = settings.visual_anchor_class || 'mce-item-anchor';
|
|
28292
|
-
if (value && self.hasVisual) {
|
|
28293
|
-
dom.addClass(elm, cls);
|
|
28294
|
-
} else {
|
|
28295
|
-
dom.removeClass(elm, cls);
|
|
28296
|
-
}
|
|
28297
|
-
}
|
|
28298
|
-
return;
|
|
28299
|
-
}
|
|
28300
|
-
});
|
|
28301
|
-
self.fire('VisualAid', {
|
|
28302
|
-
element: elm,
|
|
28303
|
-
hasVisual: self.hasVisual
|
|
28304
|
-
});
|
|
28634
|
+
addVisual$1(this, elm);
|
|
28305
28635
|
};
|
|
28306
28636
|
Editor.prototype.remove = function () {
|
|
28307
28637
|
remove$7(this);
|
|
@@ -28401,8 +28731,8 @@
|
|
|
28401
28731
|
suffix: null,
|
|
28402
28732
|
$: DomQuery,
|
|
28403
28733
|
majorVersion: '5',
|
|
28404
|
-
minorVersion: '
|
|
28405
|
-
releaseDate: '2020-
|
|
28734
|
+
minorVersion: '6.0',
|
|
28735
|
+
releaseDate: '2020-11-18',
|
|
28406
28736
|
editors: legacyEditors,
|
|
28407
28737
|
i18n: I18n,
|
|
28408
28738
|
activeEditor: null,
|
|
@@ -28479,7 +28809,7 @@
|
|
|
28479
28809
|
var createId = function (elm) {
|
|
28480
28810
|
var id = elm.id;
|
|
28481
28811
|
if (!id) {
|
|
28482
|
-
id = get(elm, 'name').filter(function (name) {
|
|
28812
|
+
id = get$1(elm, 'name').filter(function (name) {
|
|
28483
28813
|
return !DOM$a.get(name);
|
|
28484
28814
|
}).getOrThunk(DOM$a.uniqueId);
|
|
28485
28815
|
elm.setAttribute('id', id);
|