suneditor 2.44.2 → 2.44.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +20 -20
- package/README.md +1585 -1585
- package/dist/css/suneditor.min.css +1 -1
- package/dist/suneditor.min.js +2 -2
- package/package.json +71 -71
- package/src/assets/css/suneditor-contents.css +556 -556
- package/src/assets/css/suneditor.css +0 -0
- package/src/assets/defaultIcons.js +103 -103
- package/src/lang/Lang.d.ts +143 -143
- package/src/lang/ckb.d.ts +4 -4
- package/src/lang/ckb.js +187 -187
- package/src/lang/da.d.ts +4 -4
- package/src/lang/da.js +191 -191
- package/src/lang/de.d.ts +4 -4
- package/src/lang/de.js +187 -187
- package/src/lang/en.d.ts +4 -4
- package/src/lang/en.js +187 -187
- package/src/lang/es.d.ts +4 -4
- package/src/lang/es.js +187 -187
- package/src/lang/fr.d.ts +4 -4
- package/src/lang/fr.js +188 -188
- package/src/lang/he.d.ts +4 -4
- package/src/lang/he.js +188 -188
- package/src/lang/index.d.ts +22 -21
- package/src/lang/index.js +25 -24
- package/src/lang/it.d.ts +4 -4
- package/src/lang/it.js +188 -188
- package/src/lang/ja.d.ts +4 -4
- package/src/lang/ja.js +187 -187
- package/src/lang/ko.d.ts +4 -4
- package/src/lang/ko.js +187 -187
- package/src/lang/lv.d.ts +4 -4
- package/src/lang/lv.js +187 -187
- package/src/lang/nl.d.ts +4 -4
- package/src/lang/nl.js +187 -187
- package/src/lang/pl.d.ts +4 -4
- package/src/lang/pl.js +187 -187
- package/src/lang/pt_br.d.ts +4 -4
- package/src/lang/pt_br.js +189 -189
- package/src/lang/ro.d.ts +4 -4
- package/src/lang/ro.js +187 -187
- package/src/lang/ru.d.ts +4 -4
- package/src/lang/ru.js +187 -187
- package/src/lang/se.d.ts +4 -4
- package/src/lang/se.js +191 -191
- package/src/lang/ua.d.ts +5 -5
- package/src/lang/ua.js +188 -188
- package/src/lang/ur.d.ts +5 -0
- package/src/lang/ur.js +188 -0
- package/src/lang/zh_cn.d.ts +4 -4
- package/src/lang/zh_cn.js +187 -187
- package/src/lib/constructor.js +1 -2
- package/src/lib/context.d.ts +42 -42
- package/src/lib/context.js +0 -0
- package/src/lib/core.d.ts +1101 -1101
- package/src/lib/core.js +220 -99
- package/src/lib/history.d.ts +48 -48
- package/src/lib/history.js +218 -218
- package/src/lib/util.d.ts +677 -677
- package/src/lib/util.js +38 -12
- package/src/options.d.ts +608 -608
- package/src/plugins/CommandPlugin.d.ts +7 -7
- package/src/plugins/DialogPlugin.d.ts +19 -19
- package/src/plugins/FileBrowserPlugin.d.ts +29 -29
- package/src/plugins/Module.d.ts +14 -14
- package/src/plugins/Plugin.d.ts +41 -41
- package/src/plugins/SubmenuPlugin.d.ts +7 -7
- package/src/plugins/command/blockquote.d.ts +4 -4
- package/src/plugins/command/blockquote.js +46 -46
- package/src/plugins/dialog/audio.d.ts +4 -4
- package/src/plugins/dialog/audio.js +556 -554
- package/src/plugins/dialog/image.d.ts +4 -4
- package/src/plugins/dialog/image.js +1122 -1107
- package/src/plugins/dialog/link.d.ts +4 -4
- package/src/plugins/dialog/link.js +223 -223
- package/src/plugins/dialog/math.d.ts +4 -4
- package/src/plugins/dialog/math.js +294 -294
- package/src/plugins/dialog/mention.d.ts +5 -5
- package/src/plugins/dialog/mention.js +242 -242
- package/src/plugins/dialog/video.d.ts +4 -4
- package/src/plugins/dialog/video.js +983 -981
- package/src/plugins/fileBrowser/imageGallery.d.ts +4 -4
- package/src/plugins/fileBrowser/imageGallery.js +63 -63
- package/src/plugins/index.d.ts +79 -79
- package/src/plugins/index.js +32 -32
- package/src/plugins/modules/_anchor.js +461 -462
- package/src/plugins/modules/_colorPicker.d.ts +59 -59
- package/src/plugins/modules/_colorPicker.js +0 -0
- package/src/plugins/modules/_notice.d.ts +20 -20
- package/src/plugins/modules/_notice.js +72 -72
- package/src/plugins/modules/_selectMenu.js +118 -118
- package/src/plugins/modules/component.d.ts +24 -24
- package/src/plugins/modules/component.js +82 -82
- package/src/plugins/modules/dialog.d.ts +27 -27
- package/src/plugins/modules/dialog.js +174 -174
- package/src/plugins/modules/fileBrowser.d.ts +41 -41
- package/src/plugins/modules/fileBrowser.js +373 -373
- package/src/plugins/modules/fileManager.d.ts +66 -66
- package/src/plugins/modules/fileManager.js +325 -324
- package/src/plugins/modules/index.d.ts +10 -10
- package/src/plugins/modules/index.js +8 -8
- package/src/plugins/modules/resizing.d.ts +153 -153
- package/src/plugins/modules/resizing.js +895 -895
- package/src/plugins/submenu/align.d.ts +4 -4
- package/src/plugins/submenu/align.js +160 -160
- package/src/plugins/submenu/font.d.ts +4 -4
- package/src/plugins/submenu/font.js +120 -120
- package/src/plugins/submenu/fontColor.d.ts +4 -4
- package/src/plugins/submenu/fontColor.js +0 -0
- package/src/plugins/submenu/fontSize.d.ts +4 -4
- package/src/plugins/submenu/fontSize.js +112 -112
- package/src/plugins/submenu/formatBlock.d.ts +4 -4
- package/src/plugins/submenu/formatBlock.js +273 -273
- package/src/plugins/submenu/hiliteColor.d.ts +4 -4
- package/src/plugins/submenu/hiliteColor.js +0 -0
- package/src/plugins/submenu/horizontalRule.d.ts +4 -4
- package/src/plugins/submenu/horizontalRule.js +98 -98
- package/src/plugins/submenu/lineHeight.d.ts +4 -4
- package/src/plugins/submenu/lineHeight.js +104 -104
- package/src/plugins/submenu/list.d.ts +4 -4
- package/src/plugins/submenu/list.js +456 -455
- package/src/plugins/submenu/paragraphStyle.d.ts +4 -4
- package/src/plugins/submenu/paragraphStyle.js +135 -135
- package/src/plugins/submenu/table.d.ts +4 -4
- package/src/plugins/submenu/template.d.ts +4 -4
- package/src/plugins/submenu/template.js +71 -71
- package/src/plugins/submenu/textStyle.d.ts +4 -4
- package/src/plugins/submenu/textStyle.js +167 -167
- package/src/suneditor.d.ts +9 -9
- package/src/suneditor.js +75 -75
- package/src/suneditor_build.js +17 -17
package/src/lib/util.js
CHANGED
|
@@ -17,6 +17,7 @@ const util = {
|
|
|
17
17
|
isIE_Edge: null,
|
|
18
18
|
isOSX_IOS: null,
|
|
19
19
|
isChromium: null,
|
|
20
|
+
isResizeObserverSupported: null,
|
|
20
21
|
_propertiesInit: function () {
|
|
21
22
|
if (this._d) return;
|
|
22
23
|
this._d = document;
|
|
@@ -25,6 +26,7 @@ const util = {
|
|
|
25
26
|
this.isIE_Edge = (navigator.userAgent.indexOf('Trident') > -1) || (navigator.appVersion.indexOf('Edge') > -1);
|
|
26
27
|
this.isOSX_IOS = /(Mac|iPhone|iPod|iPad)/.test(navigator.platform);
|
|
27
28
|
this.isChromium = !!window.chrome;
|
|
29
|
+
this.isResizeObserverSupported = (typeof ResizeObserver === 'function');
|
|
28
30
|
},
|
|
29
31
|
|
|
30
32
|
_allowedEmptyNodeList: '.se-component, pre, blockquote, hr, li, table, img, iframe, video, audio, canvas',
|
|
@@ -540,19 +542,25 @@ const util = {
|
|
|
540
542
|
* @description Add style and className of copyEl to originEl
|
|
541
543
|
* @param {Element} originEl Origin element
|
|
542
544
|
* @param {Element} copyEl Element to copy
|
|
545
|
+
* @param {Array|null} blacklist Blacklist array(LowerCase)
|
|
543
546
|
*/
|
|
544
|
-
copyTagAttributes: function (originEl, copyEl) {
|
|
547
|
+
copyTagAttributes: function (originEl, copyEl, blacklist) {
|
|
545
548
|
if (copyEl.style.cssText) {
|
|
546
549
|
originEl.style.cssText += copyEl.style.cssText;
|
|
547
550
|
}
|
|
548
551
|
|
|
549
|
-
const
|
|
550
|
-
for (let i = 0, len =
|
|
551
|
-
|
|
552
|
+
const attrs = copyEl.attributes;
|
|
553
|
+
for (let i = 0, len = attrs.length; i < len; i++) {
|
|
554
|
+
if (blacklist && blacklist.indexOf(attrs[i].name.toLowerCase()) > -1) continue;
|
|
555
|
+
originEl.setAttribute(attrs[i].name, attrs[i].value);
|
|
552
556
|
}
|
|
553
557
|
|
|
554
|
-
|
|
555
|
-
|
|
558
|
+
const originAttrs = originEl.attributes;
|
|
559
|
+
for (let i = 0, len = originAttrs.length; i < len; i++) {
|
|
560
|
+
if (!originAttrs[i].value) {
|
|
561
|
+
originEl.removeAttribute(originAttrs[i].name);
|
|
562
|
+
}
|
|
563
|
+
}
|
|
556
564
|
},
|
|
557
565
|
|
|
558
566
|
/**
|
|
@@ -773,7 +781,7 @@ const util = {
|
|
|
773
781
|
* @returns {Boolean}
|
|
774
782
|
*/
|
|
775
783
|
isEmptyLine: function (element) {
|
|
776
|
-
return !element || !element.parentNode || (!element.querySelector('IMG, IFRAME, AUDIO, VIDEO, CANVAS, TABLE') && this.onlyZeroWidthSpace(element.textContent));
|
|
784
|
+
return !element || !element.parentNode || (!element.querySelector('IMG, IFRAME, AUDIO, VIDEO, CANVAS, TABLE') && element.children.length === 0 && this.onlyZeroWidthSpace(element.textContent));
|
|
777
785
|
},
|
|
778
786
|
|
|
779
787
|
/**
|
|
@@ -1431,7 +1439,7 @@ const util = {
|
|
|
1431
1439
|
|
|
1432
1440
|
if (baseNode.nodeType === 3) {
|
|
1433
1441
|
index = this.getPositionIndex(baseNode);
|
|
1434
|
-
if (offset >= 0) {
|
|
1442
|
+
if (offset >= 0 && baseNode.length !== offset) {
|
|
1435
1443
|
baseNode.splitText(offset);
|
|
1436
1444
|
const after = this.getNodeFromPath([index + 1], bp);
|
|
1437
1445
|
if (this.onlyZeroWidthSpace(after)) after.data = this.zeroWidthSpace;
|
|
@@ -1656,11 +1664,12 @@ const util = {
|
|
|
1656
1664
|
},
|
|
1657
1665
|
|
|
1658
1666
|
/**
|
|
1659
|
-
* @description Delete a empty child node of argument element
|
|
1667
|
+
* @description Delete a empty child node of argument element.
|
|
1660
1668
|
* @param {Element} element Element node
|
|
1661
1669
|
* @param {Node|null} notRemoveNode Do not remove node
|
|
1670
|
+
* @param {boolean} forceDelete When all child nodes are deleted, the parent node is also deleted.
|
|
1662
1671
|
*/
|
|
1663
|
-
removeEmptyNode: function (element, notRemoveNode) {
|
|
1672
|
+
removeEmptyNode: function (element, notRemoveNode, forceDelete) {
|
|
1664
1673
|
const inst = this;
|
|
1665
1674
|
|
|
1666
1675
|
if (notRemoveNode) {
|
|
@@ -1687,7 +1696,13 @@ const util = {
|
|
|
1687
1696
|
return 0;
|
|
1688
1697
|
})(element);
|
|
1689
1698
|
|
|
1690
|
-
if (element.childNodes.length === 0)
|
|
1699
|
+
if (element.childNodes.length === 0) {
|
|
1700
|
+
if (forceDelete) {
|
|
1701
|
+
this.removeItem(element);
|
|
1702
|
+
} else {
|
|
1703
|
+
element.innerHTML = '<br>';
|
|
1704
|
+
}
|
|
1705
|
+
}
|
|
1691
1706
|
},
|
|
1692
1707
|
|
|
1693
1708
|
/**
|
|
@@ -1815,8 +1830,8 @@ const util = {
|
|
|
1815
1830
|
return false;
|
|
1816
1831
|
}
|
|
1817
1832
|
|
|
1818
|
-
const nrtag = !this.getParentElement(current, this.isNotCheckingNode);
|
|
1819
1833
|
// empty tags
|
|
1834
|
+
const nrtag = !this.getParentElement(current, this.isNotCheckingNode);
|
|
1820
1835
|
if ((!this.isTable(current) && !this.isListCell(current) && !this.isAnchor(current)) && (this.isFormatElement(current) || this.isRangeFormatElement(current) || this.isTextStyleElement(current)) && current.childNodes.length === 0 && nrtag) {
|
|
1821
1836
|
emptyTags.push(current);
|
|
1822
1837
|
return false;
|
|
@@ -1837,6 +1852,13 @@ const util = {
|
|
|
1837
1852
|
}
|
|
1838
1853
|
}
|
|
1839
1854
|
|
|
1855
|
+
// class filter
|
|
1856
|
+
if (lowLevelCheck && nrtag && current.className) {
|
|
1857
|
+
const className = new this._w.Array(current.classList).map(this._classNameFilter).join(' ').trim();
|
|
1858
|
+
if (className) current.className = className;
|
|
1859
|
+
else current.removeAttribute('class');
|
|
1860
|
+
}
|
|
1861
|
+
|
|
1840
1862
|
const result = current.parentNode !== documentFragment && nrtag &&
|
|
1841
1863
|
((this.isListCell(current) && !this.isList(current.parentNode)) ||
|
|
1842
1864
|
(lowLevelCheck && (this.isFormatElement(current) || this.isComponent(current)) && !this.isRangeFormatElement(current.parentNode) && !this.getParentElement(current, this.isComponent)));
|
|
@@ -1906,6 +1928,10 @@ const util = {
|
|
|
1906
1928
|
}
|
|
1907
1929
|
},
|
|
1908
1930
|
|
|
1931
|
+
_classNameFilter: function (v) {
|
|
1932
|
+
return /(^__se__|^se-|katex)/.test(v) ? v : '';
|
|
1933
|
+
},
|
|
1934
|
+
|
|
1909
1935
|
_setDefaultOptionStyle: function (options, defaultStyle) {
|
|
1910
1936
|
let optionStyle = '';
|
|
1911
1937
|
if (options.height) optionStyle += 'height:' + options.height + ';';
|