tinymce-rails 7.6.1 → 7.7.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 +91 -74
- data/lib/tinymce/rails/version.rb +2 -2
- data/vendor/assets/javascripts/tinymce/models/dom/model.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/accordion/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/advlist/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/anchor/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/autolink/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/autoresize/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/autosave/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/charmap/plugin.js +2 -2
- 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/directionality/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/emoticons/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/fullscreen/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/help/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/image/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/importcss/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/insertdatetime/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/pagebreak/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/preview/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/quickbars/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/save/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/searchreplace/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/table/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/visualblocks/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/visualchars/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/wordcount/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.css +3 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.inline.css +3 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.inline.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.inline.min.css +3 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.min.css +3 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.css +3 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.inline.css +3 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.inline.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.inline.min.css +3 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.min.css +3 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5/content.css +3 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5/content.inline.css +3 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5/content.inline.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5/content.inline.min.css +3 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5/content.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5/content.min.css +3 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5/skin.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5/skin.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5/skin.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5-dark/content.css +3 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5-dark/content.inline.css +3 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5-dark/content.inline.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +3 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5-dark/content.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5-dark/content.min.css +3 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5-dark/skin.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5-dark/skin.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/themes/silver/theme.js +69 -69
- data/vendor/assets/javascripts/tinymce/tinymce.d.ts +127 -127
- data/vendor/assets/javascripts/tinymce/tinymce.js +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7466b9263f71c8bf26b42f49bed34814bab1766c14134c319ac65118863ff8f6
|
|
4
|
+
data.tar.gz: b756d96a935a5ceab211ccc5d4777a62fd5094ff55126d63ab41f5aff4f430e9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0bc72a704bbf315f70b2b12c6e2e85dee0b0d9e95d4d5dfc82345a2580904e40dba2af1f3248e74ff511af10d618240b107ac2cea32205dab4442e0de7b4d80a
|
|
7
|
+
data.tar.gz: 990d704b28c0cb6cb131f1fefdf1d20763dbad39388892a13154d2ce9986fa8ec347ab511f6428ea92f2047b32f1280c437bb4582fab75d9e5ef89922b3720d2
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* TinyMCE version 7.
|
|
2
|
+
* TinyMCE version 7.7.0 (TBD)
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
(function () {
|
|
@@ -1999,6 +1999,7 @@
|
|
|
1999
1999
|
const isImg = matchNodeName('img');
|
|
2000
2000
|
const isContentEditableTrue$3 = hasContentEditableState('true');
|
|
2001
2001
|
const isContentEditableFalse$b = hasContentEditableState('false');
|
|
2002
|
+
const isEditingHost = node => isHTMLElement(node) && node.isContentEditable && isNonNullable(node.parentElement) && !node.parentElement.isContentEditable;
|
|
2002
2003
|
const isTableCell$3 = matchNodeNames([
|
|
2003
2004
|
'td',
|
|
2004
2005
|
'th'
|
|
@@ -4067,7 +4068,7 @@
|
|
|
4067
4068
|
delete this.events[id];
|
|
4068
4069
|
try {
|
|
4069
4070
|
delete target[this.expando];
|
|
4070
|
-
} catch (
|
|
4071
|
+
} catch (_a) {
|
|
4071
4072
|
target[this.expando] = null;
|
|
4072
4073
|
}
|
|
4073
4074
|
}
|
|
@@ -7364,7 +7365,7 @@
|
|
|
7364
7365
|
});
|
|
7365
7366
|
registerOption('iframe_aria_text', {
|
|
7366
7367
|
processor: 'string',
|
|
7367
|
-
default: 'Rich Text Area. Press ALT-0 for help.'
|
|
7368
|
+
default: 'Rich Text Area'.concat(editor.hasPlugin('help') ? '. Press ALT-0 for help.' : '')
|
|
7368
7369
|
});
|
|
7369
7370
|
registerOption('setup', { processor: 'function' });
|
|
7370
7371
|
registerOption('init_instance_callback', { processor: 'function' });
|
|
@@ -8076,8 +8077,8 @@
|
|
|
8076
8077
|
const isElement$2 = isElement$6;
|
|
8077
8078
|
const isText$4 = isText$b;
|
|
8078
8079
|
const isCaretCandidate$1 = isCaretCandidate$3;
|
|
8079
|
-
const isForwards = direction => direction
|
|
8080
|
-
const isBackwards = direction => direction
|
|
8080
|
+
const isForwards = direction => direction === 1;
|
|
8081
|
+
const isBackwards = direction => direction === -1;
|
|
8081
8082
|
const skipCaretContainers = (walk, shallow) => {
|
|
8082
8083
|
let node;
|
|
8083
8084
|
while (node = walk(shallow)) {
|
|
@@ -8290,11 +8291,6 @@
|
|
|
8290
8291
|
return inSameBlock;
|
|
8291
8292
|
};
|
|
8292
8293
|
|
|
8293
|
-
var HDirection;
|
|
8294
|
-
(function (HDirection) {
|
|
8295
|
-
HDirection[HDirection['Backwards'] = -1] = 'Backwards';
|
|
8296
|
-
HDirection[HDirection['Forwards'] = 1] = 'Forwards';
|
|
8297
|
-
}(HDirection || (HDirection = {})));
|
|
8298
8294
|
const isContentEditableFalse$6 = isContentEditableFalse$b;
|
|
8299
8295
|
const isText$3 = isText$b;
|
|
8300
8296
|
const isElement$1 = isElement$6;
|
|
@@ -8351,7 +8347,7 @@
|
|
|
8351
8347
|
return CaretPosition.before(nextSibling);
|
|
8352
8348
|
}
|
|
8353
8349
|
} else {
|
|
8354
|
-
return findCaretPosition$1(
|
|
8350
|
+
return findCaretPosition$1(1, CaretPosition.after(nextNode), root);
|
|
8355
8351
|
}
|
|
8356
8352
|
};
|
|
8357
8353
|
const findCaretPosition$1 = (direction, startPos, root) => {
|
|
@@ -8445,10 +8441,10 @@
|
|
|
8445
8441
|
};
|
|
8446
8442
|
const CaretWalker = root => ({
|
|
8447
8443
|
next: caretPosition => {
|
|
8448
|
-
return findCaretPosition$1(
|
|
8444
|
+
return findCaretPosition$1(1, caretPosition, root);
|
|
8449
8445
|
},
|
|
8450
8446
|
prev: caretPosition => {
|
|
8451
|
-
return findCaretPosition$1(
|
|
8447
|
+
return findCaretPosition$1(-1, caretPosition, root);
|
|
8452
8448
|
}
|
|
8453
8449
|
});
|
|
8454
8450
|
|
|
@@ -9121,7 +9117,8 @@
|
|
|
9121
9117
|
const findContent = (start, node, offset) => walkText(start, node, offset, isContent);
|
|
9122
9118
|
const findWordEndPoint = (dom, body, container, offset, start, includeTrailingSpaces) => {
|
|
9123
9119
|
let lastTextNode;
|
|
9124
|
-
const
|
|
9120
|
+
const closestRoot = dom.getParent(container, node => isEditingHost(node) || dom.isBlock(node));
|
|
9121
|
+
const rootNode = isNonNullable(closestRoot) ? closestRoot : body;
|
|
9125
9122
|
const walk = (container, offset, pred) => {
|
|
9126
9123
|
const textSeeker = TextSeeker(dom);
|
|
9127
9124
|
const walker = start ? textSeeker.backwards : textSeeker.forwards;
|
|
@@ -9195,7 +9192,7 @@
|
|
|
9195
9192
|
return isAtBlockBoundary$1(dom, root, parent, siblingName);
|
|
9196
9193
|
}
|
|
9197
9194
|
};
|
|
9198
|
-
const findParentContainer = (dom, formatList, container, offset, start) => {
|
|
9195
|
+
const findParentContainer = (dom, formatList, container, offset, start, expandToBlock) => {
|
|
9199
9196
|
let parent = container;
|
|
9200
9197
|
const siblingName = start ? 'previousSibling' : 'nextSibling';
|
|
9201
9198
|
const root = dom.getRoot();
|
|
@@ -9205,8 +9202,11 @@
|
|
|
9205
9202
|
}
|
|
9206
9203
|
}
|
|
9207
9204
|
while (parent) {
|
|
9205
|
+
if (isEditingHost(parent)) {
|
|
9206
|
+
return container;
|
|
9207
|
+
}
|
|
9208
9208
|
if (!formatList[0].block_expand && dom.isBlock(parent)) {
|
|
9209
|
-
return parent;
|
|
9209
|
+
return expandToBlock ? parent : container;
|
|
9210
9210
|
}
|
|
9211
9211
|
for (let sibling = parent[siblingName]; sibling; sibling = sibling[siblingName]) {
|
|
9212
9212
|
const allowSpaces = isText$b(sibling) && !isAtBlockBoundary$1(dom, root, sibling, siblingName);
|
|
@@ -9223,7 +9223,10 @@
|
|
|
9223
9223
|
return container;
|
|
9224
9224
|
};
|
|
9225
9225
|
const isSelfOrParentBookmark = container => isBookmarkNode(container.parentNode) || isBookmarkNode(container);
|
|
9226
|
-
const expandRng = (dom, rng, formatList,
|
|
9226
|
+
const expandRng = (dom, rng, formatList, expandOptions = {}) => {
|
|
9227
|
+
const {includeTrailingSpace = false, expandToBlock = true} = expandOptions;
|
|
9228
|
+
const editableHost = dom.getParent(rng.commonAncestorContainer, node => isEditingHost(node));
|
|
9229
|
+
const root = isNonNullable(editableHost) ? editableHost : dom.getRoot();
|
|
9227
9230
|
let {startContainer, startOffset, endContainer, endOffset} = rng;
|
|
9228
9231
|
const format = formatList[0];
|
|
9229
9232
|
if (isElement$6(startContainer) && startContainer.hasChildNodes()) {
|
|
@@ -9263,12 +9266,12 @@
|
|
|
9263
9266
|
}
|
|
9264
9267
|
}
|
|
9265
9268
|
if (rng.collapsed) {
|
|
9266
|
-
const startPoint = findWordEndPoint(dom,
|
|
9269
|
+
const startPoint = findWordEndPoint(dom, root, startContainer, startOffset, true, includeTrailingSpace);
|
|
9267
9270
|
startPoint.each(({container, offset}) => {
|
|
9268
9271
|
startContainer = container;
|
|
9269
9272
|
startOffset = offset;
|
|
9270
9273
|
});
|
|
9271
|
-
const endPoint = findWordEndPoint(dom,
|
|
9274
|
+
const endPoint = findWordEndPoint(dom, root, endContainer, endOffset, false, includeTrailingSpace);
|
|
9272
9275
|
endPoint.each(({container, offset}) => {
|
|
9273
9276
|
endContainer = container;
|
|
9274
9277
|
endOffset = offset;
|
|
@@ -9276,10 +9279,10 @@
|
|
|
9276
9279
|
}
|
|
9277
9280
|
if (isInlineFormat(format) || format.block_expand) {
|
|
9278
9281
|
if (!isInlineFormat(format) || (!isText$b(startContainer) || startOffset === 0)) {
|
|
9279
|
-
startContainer = findParentContainer(dom, formatList, startContainer, startOffset, true);
|
|
9282
|
+
startContainer = findParentContainer(dom, formatList, startContainer, startOffset, true, expandToBlock);
|
|
9280
9283
|
}
|
|
9281
9284
|
if (!isInlineFormat(format) || (!isText$b(endContainer) || endOffset === endContainer.data.length)) {
|
|
9282
|
-
endContainer = findParentContainer(dom, formatList, endContainer, endOffset, false);
|
|
9285
|
+
endContainer = findParentContainer(dom, formatList, endContainer, endOffset, false, expandToBlock);
|
|
9283
9286
|
}
|
|
9284
9287
|
}
|
|
9285
9288
|
if (shouldExpandToSelector(format)) {
|
|
@@ -9291,13 +9294,13 @@
|
|
|
9291
9294
|
endContainer = findBlockEndPoint(dom, formatList, endContainer, 'nextSibling');
|
|
9292
9295
|
if (isBlockFormat(format)) {
|
|
9293
9296
|
if (!dom.isBlock(startContainer)) {
|
|
9294
|
-
startContainer = findParentContainer(dom, formatList, startContainer, startOffset, true);
|
|
9297
|
+
startContainer = findParentContainer(dom, formatList, startContainer, startOffset, true, expandToBlock);
|
|
9295
9298
|
if (isText$b(startContainer)) {
|
|
9296
9299
|
startOffset = 0;
|
|
9297
9300
|
}
|
|
9298
9301
|
}
|
|
9299
9302
|
if (!dom.isBlock(endContainer)) {
|
|
9300
|
-
endContainer = findParentContainer(dom, formatList, endContainer, endOffset, false);
|
|
9303
|
+
endContainer = findParentContainer(dom, formatList, endContainer, endOffset, false, expandToBlock);
|
|
9301
9304
|
if (isText$b(endContainer)) {
|
|
9302
9305
|
endOffset = endContainer.data.length;
|
|
9303
9306
|
}
|
|
@@ -9690,7 +9693,7 @@
|
|
|
9690
9693
|
rng.setStart(bookmark.start.dom, bookmark.soffset);
|
|
9691
9694
|
rng.setEnd(bookmark.finish.dom, bookmark.foffset);
|
|
9692
9695
|
return Optional.some(rng);
|
|
9693
|
-
} catch (
|
|
9696
|
+
} catch (_a) {
|
|
9694
9697
|
return Optional.none();
|
|
9695
9698
|
}
|
|
9696
9699
|
};
|
|
@@ -9808,7 +9811,7 @@
|
|
|
9808
9811
|
try {
|
|
9809
9812
|
const root = getRootNode(SugarElement.fromDom(editor.getElement()));
|
|
9810
9813
|
return active$1(root).fold(() => document.body, x => x.dom);
|
|
9811
|
-
} catch (
|
|
9814
|
+
} catch (_a) {
|
|
9812
9815
|
return document.body;
|
|
9813
9816
|
}
|
|
9814
9817
|
};
|
|
@@ -9903,7 +9906,7 @@
|
|
|
9903
9906
|
if (body.setActive) {
|
|
9904
9907
|
try {
|
|
9905
9908
|
body.setActive();
|
|
9906
|
-
} catch (
|
|
9909
|
+
} catch (_a) {
|
|
9907
9910
|
body.focus();
|
|
9908
9911
|
}
|
|
9909
9912
|
} else {
|
|
@@ -10033,7 +10036,7 @@
|
|
|
10033
10036
|
const rootDocument = document;
|
|
10034
10037
|
const rootElement = editor.getBody();
|
|
10035
10038
|
let selectedElm, selectedElmGhost, resizeHelper, selectedHandle, resizeBackdrop;
|
|
10036
|
-
let startX, startY,
|
|
10039
|
+
let startX, startY, startW, startH, ratio, resizeStarted;
|
|
10037
10040
|
let width;
|
|
10038
10041
|
let height;
|
|
10039
10042
|
let startScrollWidth;
|
|
@@ -10150,12 +10153,6 @@
|
|
|
10150
10153
|
display: 'block'
|
|
10151
10154
|
});
|
|
10152
10155
|
resizeHelper.innerHTML = width + ' × ' + height;
|
|
10153
|
-
if (selectedHandle[2] < 0 && selectedElmGhost.clientWidth <= width) {
|
|
10154
|
-
dom.setStyle(selectedElmGhost, 'left', selectedElmX + (startW - width));
|
|
10155
|
-
}
|
|
10156
|
-
if (selectedHandle[3] < 0 && selectedElmGhost.clientHeight <= height) {
|
|
10157
|
-
dom.setStyle(selectedElmGhost, 'top', selectedElmY + (startH - height));
|
|
10158
|
-
}
|
|
10159
10156
|
deltaX = rootElement.scrollWidth - startScrollWidth;
|
|
10160
10157
|
deltaY = rootElement.scrollHeight - startScrollHeight;
|
|
10161
10158
|
if (deltaX + deltaY !== 0) {
|
|
@@ -10331,7 +10328,7 @@
|
|
|
10331
10328
|
const disableGeckoResize = () => {
|
|
10332
10329
|
try {
|
|
10333
10330
|
editor.getDoc().execCommand('enableObjectResizing', false, 'false');
|
|
10334
|
-
} catch (
|
|
10331
|
+
} catch (_a) {
|
|
10335
10332
|
}
|
|
10336
10333
|
};
|
|
10337
10334
|
editor.on('init', () => {
|
|
@@ -10792,7 +10789,10 @@
|
|
|
10792
10789
|
};
|
|
10793
10790
|
const expand = (rng, options = { type: 'word' }) => {
|
|
10794
10791
|
if (options.type === 'word') {
|
|
10795
|
-
const rangeLike = expandRng(dom, rng, [{ inline: 'span' }]
|
|
10792
|
+
const rangeLike = expandRng(dom, rng, [{ inline: 'span' }], {
|
|
10793
|
+
includeTrailingSpace: false,
|
|
10794
|
+
expandToBlock: false
|
|
10795
|
+
});
|
|
10796
10796
|
const newRange = dom.createRng();
|
|
10797
10797
|
newRange.setStart(rangeLike.startContainer, rangeLike.startOffset);
|
|
10798
10798
|
newRange.setEnd(rangeLike.endContainer, rangeLike.endOffset);
|
|
@@ -13095,14 +13095,20 @@
|
|
|
13095
13095
|
return false;
|
|
13096
13096
|
}
|
|
13097
13097
|
};
|
|
13098
|
+
const isEditableEmptyBlock = (dom, node) => {
|
|
13099
|
+
if (dom.isBlock(node) && dom.isEditable(node)) {
|
|
13100
|
+
const childNodes = node.childNodes;
|
|
13101
|
+
return childNodes.length === 1 && isBr$6(childNodes[0]) || childNodes.length === 0;
|
|
13102
|
+
} else {
|
|
13103
|
+
return false;
|
|
13104
|
+
}
|
|
13105
|
+
};
|
|
13098
13106
|
const validInsertion = (editor, value, parentNode) => {
|
|
13099
13107
|
var _a;
|
|
13100
13108
|
if (parentNode.getAttribute('data-mce-bogus') === 'all') {
|
|
13101
13109
|
(_a = parentNode.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(editor.dom.createFragment(value), parentNode);
|
|
13102
13110
|
} else {
|
|
13103
|
-
|
|
13104
|
-
const node2 = parentNode.lastChild;
|
|
13105
|
-
if (!node || node === node2 && node.nodeName === 'BR') {
|
|
13111
|
+
if (isEditableEmptyBlock(editor.dom, parentNode)) {
|
|
13106
13112
|
editor.dom.setHTML(parentNode, value);
|
|
13107
13113
|
} else {
|
|
13108
13114
|
editor.selection.setContent(value, { no_events: true });
|
|
@@ -13809,7 +13815,7 @@
|
|
|
13809
13815
|
if (hasContentAfter) {
|
|
13810
13816
|
const bookmark = selection.getBookmark();
|
|
13811
13817
|
rng.collapse(true);
|
|
13812
|
-
let expandedRng = expandRng(dom, rng, formatList, true);
|
|
13818
|
+
let expandedRng = expandRng(dom, rng, formatList, { includeTrailingSpace: true });
|
|
13813
13819
|
expandedRng = split(expandedRng);
|
|
13814
13820
|
editor.formatter.remove(name, vars, expandedRng, similar);
|
|
13815
13821
|
selection.moveToBookmark(bookmark);
|
|
@@ -14371,7 +14377,7 @@
|
|
|
14371
14377
|
const removeRngStyle = rng => {
|
|
14372
14378
|
let startContainer;
|
|
14373
14379
|
let endContainer;
|
|
14374
|
-
let expandedRng = expandRng(dom, rng, formatList, rng.collapsed);
|
|
14380
|
+
let expandedRng = expandRng(dom, rng, formatList, { includeTrailingSpace: rng.collapsed });
|
|
14375
14381
|
if (format.split) {
|
|
14376
14382
|
expandedRng = split(expandedRng);
|
|
14377
14383
|
startContainer = getContainer(ed, expandedRng, true);
|
|
@@ -15056,7 +15062,7 @@
|
|
|
15056
15062
|
if (base64Encoded) {
|
|
15057
15063
|
try {
|
|
15058
15064
|
str = atob(data);
|
|
15059
|
-
} catch (
|
|
15065
|
+
} catch (_a) {
|
|
15060
15066
|
return Optional.none();
|
|
15061
15067
|
}
|
|
15062
15068
|
}
|
|
@@ -16901,7 +16907,7 @@
|
|
|
16901
16907
|
const decodeUri = encodedUri => {
|
|
16902
16908
|
try {
|
|
16903
16909
|
return decodeURIComponent(encodedUri);
|
|
16904
|
-
} catch (
|
|
16910
|
+
} catch (_a) {
|
|
16905
16911
|
return unescape(encodedUri);
|
|
16906
16912
|
}
|
|
16907
16913
|
};
|
|
@@ -17334,14 +17340,23 @@
|
|
|
17334
17340
|
USE_PROFILES: { mathMl: true }
|
|
17335
17341
|
};
|
|
17336
17342
|
const purify$1 = purify();
|
|
17343
|
+
const allowedEncodings = settings.allow_mathml_annotation_encodings;
|
|
17344
|
+
const hasAllowedEncodings = isArray$1(allowedEncodings) && allowedEncodings.length > 0;
|
|
17345
|
+
const hasValidEncoding = el => {
|
|
17346
|
+
const encoding = el.getAttribute('encoding');
|
|
17347
|
+
return hasAllowedEncodings && isString(encoding) && contains$2(allowedEncodings, encoding);
|
|
17348
|
+
};
|
|
17337
17349
|
purify$1.addHook('uponSanitizeElement', (node, evt) => {
|
|
17338
17350
|
var _a;
|
|
17339
17351
|
const lcTagName = (_a = evt.tagName) !== null && _a !== void 0 ? _a : node.nodeName.toLowerCase();
|
|
17340
|
-
|
|
17341
|
-
|
|
17342
|
-
|
|
17343
|
-
|
|
17344
|
-
|
|
17352
|
+
if (hasAllowedEncodings && lcTagName === 'semantics') {
|
|
17353
|
+
evt.allowedTags[lcTagName] = true;
|
|
17354
|
+
}
|
|
17355
|
+
if (lcTagName === 'annotation') {
|
|
17356
|
+
const keepElement = hasValidEncoding(node);
|
|
17357
|
+
evt.allowedTags[lcTagName] = keepElement;
|
|
17358
|
+
if (!keepElement) {
|
|
17359
|
+
node.remove();
|
|
17345
17360
|
}
|
|
17346
17361
|
}
|
|
17347
17362
|
});
|
|
@@ -18857,7 +18872,7 @@
|
|
|
18857
18872
|
const tryCompareBoundaryPoints = (how, sourceRange, destinationRange) => {
|
|
18858
18873
|
try {
|
|
18859
18874
|
return sourceRange.compareBoundaryPoints(how, destinationRange);
|
|
18860
|
-
} catch (
|
|
18875
|
+
} catch (_a) {
|
|
18861
18876
|
return -1;
|
|
18862
18877
|
}
|
|
18863
18878
|
};
|
|
@@ -18878,7 +18893,7 @@
|
|
|
18878
18893
|
}
|
|
18879
18894
|
rng = processRanges(editor, [rng])[0];
|
|
18880
18895
|
}
|
|
18881
|
-
} catch (
|
|
18896
|
+
} catch (_a) {
|
|
18882
18897
|
}
|
|
18883
18898
|
if (!rng) {
|
|
18884
18899
|
rng = doc.createRange();
|
|
@@ -18913,7 +18928,7 @@
|
|
|
18913
18928
|
try {
|
|
18914
18929
|
sel.removeAllRanges();
|
|
18915
18930
|
sel.addRange(rng);
|
|
18916
|
-
} catch (
|
|
18931
|
+
} catch (_a) {
|
|
18917
18932
|
}
|
|
18918
18933
|
if (forward === false && sel.extend) {
|
|
18919
18934
|
sel.collapse(rng.endContainer, rng.endOffset);
|
|
@@ -18959,7 +18974,7 @@
|
|
|
18959
18974
|
anchorRange.collapse(true);
|
|
18960
18975
|
focusRange.setStart(focusNode, sel.focusOffset);
|
|
18961
18976
|
focusRange.collapse(true);
|
|
18962
|
-
} catch (
|
|
18977
|
+
} catch (_a) {
|
|
18963
18978
|
return true;
|
|
18964
18979
|
}
|
|
18965
18980
|
return anchorRange.compareBoundaryPoints(anchorRange.START_TO_START, focusRange) <= 0;
|
|
@@ -19878,7 +19893,7 @@
|
|
|
19878
19893
|
const setEditorCommandState = (editor, cmd, state) => {
|
|
19879
19894
|
try {
|
|
19880
19895
|
editor.getDoc().execCommand(cmd, false, String(state));
|
|
19881
|
-
} catch (
|
|
19896
|
+
} catch (_a) {
|
|
19882
19897
|
}
|
|
19883
19898
|
};
|
|
19884
19899
|
const setCommonEditorCommands = (editor, state) => {
|
|
@@ -21790,7 +21805,7 @@
|
|
|
21790
21805
|
if (!isText$b(range.commonAncestorContainer)) {
|
|
21791
21806
|
return Optional.none();
|
|
21792
21807
|
}
|
|
21793
|
-
const direction = forward ?
|
|
21808
|
+
const direction = forward ? 1 : -1;
|
|
21794
21809
|
const caretWalker = CaretWalker(editor.getBody());
|
|
21795
21810
|
const getNextPosFn = curry(getVisualCaretPosition, forward ? caretWalker.next : caretWalker.prev);
|
|
21796
21811
|
const isBeforeFn = forward ? isBeforeBoundary : isAfterBoundary;
|
|
@@ -22280,10 +22295,10 @@
|
|
|
22280
22295
|
BreakType[BreakType['Wrap'] = 2] = 'Wrap';
|
|
22281
22296
|
BreakType[BreakType['Eol'] = 3] = 'Eol';
|
|
22282
22297
|
}(BreakType || (BreakType = {})));
|
|
22283
|
-
const flip = (direction, positions) => direction ===
|
|
22284
|
-
const walk$1 = (direction, caretWalker, pos) => direction ===
|
|
22298
|
+
const flip = (direction, positions) => direction === -1 ? reverse(positions) : positions;
|
|
22299
|
+
const walk$1 = (direction, caretWalker, pos) => direction === 1 ? caretWalker.next(pos) : caretWalker.prev(pos);
|
|
22285
22300
|
const getBreakType = (scope, direction, currentPos, nextPos) => {
|
|
22286
|
-
if (isBr$6(nextPos.getNode(direction ===
|
|
22301
|
+
if (isBr$6(nextPos.getNode(direction === 1))) {
|
|
22287
22302
|
return BreakType.Br;
|
|
22288
22303
|
} else if (isInSameBlock(currentPos, nextPos) === false) {
|
|
22289
22304
|
return BreakType.Block;
|
|
@@ -22301,7 +22316,7 @@
|
|
|
22301
22316
|
break;
|
|
22302
22317
|
}
|
|
22303
22318
|
if (isBr$6(nextPos.getNode(false))) {
|
|
22304
|
-
if (direction ===
|
|
22319
|
+
if (direction === 1) {
|
|
22305
22320
|
return {
|
|
22306
22321
|
positions: flip(direction, positions).concat([nextPos]),
|
|
22307
22322
|
breakType: BreakType.Br,
|
|
@@ -22338,7 +22353,7 @@
|
|
|
22338
22353
|
};
|
|
22339
22354
|
const getAdjacentLinePositions = (direction, getPositionsUntilBreak, scope, start) => getPositionsUntilBreak(scope, start).breakAt.map(pos => {
|
|
22340
22355
|
const positions = getPositionsUntilBreak(scope, pos).positions;
|
|
22341
|
-
return direction ===
|
|
22356
|
+
return direction === -1 ? positions.concat(pos) : [pos].concat(positions);
|
|
22342
22357
|
}).getOr([]);
|
|
22343
22358
|
const findClosestHorizontalPositionFromPoint = (positions, x) => foldl(positions, (acc, newPos) => acc.fold(() => Optional.some(newPos), lastPos => lift2(head(lastPos.getClientRects()), head(newPos.getClientRects()), (lastRect, newRect) => {
|
|
22344
22359
|
const lastDist = Math.abs(x - lastRect.left);
|
|
@@ -22412,7 +22427,7 @@
|
|
|
22412
22427
|
const result = [];
|
|
22413
22428
|
const add = node => {
|
|
22414
22429
|
let clientRects = getClientRects([node]);
|
|
22415
|
-
if (direction ===
|
|
22430
|
+
if (direction === VDirection.Up) {
|
|
22416
22431
|
clientRects = clientRects.reverse();
|
|
22417
22432
|
}
|
|
22418
22433
|
for (let i = 0; i < clientRects.length; i++) {
|
|
@@ -22457,7 +22472,7 @@
|
|
|
22457
22472
|
let caretPosition;
|
|
22458
22473
|
const result = [];
|
|
22459
22474
|
let line = 0;
|
|
22460
|
-
if (direction ===
|
|
22475
|
+
if (direction === VDirection.Down) {
|
|
22461
22476
|
walkFn = caretWalker.next;
|
|
22462
22477
|
isBelowFn = isBelow$1;
|
|
22463
22478
|
isAboveFn = isAbove$1;
|
|
@@ -22499,17 +22514,17 @@
|
|
|
22499
22514
|
};
|
|
22500
22515
|
const renderRangeCaretOpt = (editor, range, scrollIntoView) => Optional.some(renderRangeCaret(editor, range, scrollIntoView));
|
|
22501
22516
|
const moveHorizontally = (editor, direction, range, isBefore, isAfter, isElement) => {
|
|
22502
|
-
const forwards = direction ===
|
|
22517
|
+
const forwards = direction === 1;
|
|
22503
22518
|
const caretWalker = CaretWalker(editor.getBody());
|
|
22504
22519
|
const getNextPosFn = curry(getVisualCaretPosition, forwards ? caretWalker.next : caretWalker.prev);
|
|
22505
22520
|
const isBeforeFn = forwards ? isBefore : isAfter;
|
|
22506
22521
|
if (!range.collapsed) {
|
|
22507
22522
|
const node = getSelectedNode(range);
|
|
22508
22523
|
if (isElement(node)) {
|
|
22509
|
-
return showCaret(direction, editor, node, direction ===
|
|
22524
|
+
return showCaret(direction, editor, node, direction === -1, false);
|
|
22510
22525
|
} else if (isCefAtEdgeSelected(editor)) {
|
|
22511
22526
|
const newRange = range.cloneRange();
|
|
22512
|
-
newRange.collapse(direction ===
|
|
22527
|
+
newRange.collapse(direction === -1);
|
|
22513
22528
|
return Optional.from(newRange);
|
|
22514
22529
|
}
|
|
22515
22530
|
}
|
|
@@ -22875,7 +22890,7 @@
|
|
|
22875
22890
|
};
|
|
22876
22891
|
const deleteCaret = (editor, forward) => {
|
|
22877
22892
|
const isNearMedia = forward ? isBeforeMedia : isAfterMedia;
|
|
22878
|
-
const direction = forward ?
|
|
22893
|
+
const direction = forward ? 1 : -1;
|
|
22879
22894
|
const fromPos = getNormalizedRangeEndPoint(direction, editor.getBody(), editor.selection.getRng());
|
|
22880
22895
|
if (isNearMedia(fromPos)) {
|
|
22881
22896
|
return deleteElement(editor, forward, fromPos.getNode(!forward));
|
|
@@ -23301,7 +23316,7 @@
|
|
|
23301
23316
|
}
|
|
23302
23317
|
};
|
|
23303
23318
|
const getHorizontalRange = (editor, forward) => {
|
|
23304
|
-
const direction = forward ?
|
|
23319
|
+
const direction = forward ? 1 : -1;
|
|
23305
23320
|
const range = editor.selection.getRng();
|
|
23306
23321
|
return moveToCeFalseHorizontally(direction, editor, range).orThunk(() => {
|
|
23307
23322
|
exitPreBlock(editor, direction, range);
|
|
@@ -23428,7 +23443,7 @@
|
|
|
23428
23443
|
const executeWithDelayedAction = (patterns, evt) => findMap(matchDelayed(patterns, evt), pattern => pattern.action());
|
|
23429
23444
|
|
|
23430
23445
|
const moveH$1 = (editor, forward) => {
|
|
23431
|
-
const direction = forward ?
|
|
23446
|
+
const direction = forward ? 1 : -1;
|
|
23432
23447
|
const range = editor.selection.getRng();
|
|
23433
23448
|
return moveHorizontally(editor, direction, range, isBeforeMedia, isAfterMedia, isMedia$2).exists(newRange => {
|
|
23434
23449
|
moveToRange(editor, newRange);
|
|
@@ -26756,7 +26771,7 @@
|
|
|
26756
26771
|
const contentType = dataTransfer.types[i];
|
|
26757
26772
|
try {
|
|
26758
26773
|
items[contentType] = dataTransfer.getData(contentType);
|
|
26759
|
-
} catch (
|
|
26774
|
+
} catch (_a) {
|
|
26760
26775
|
items[contentType] = '';
|
|
26761
26776
|
}
|
|
26762
26777
|
}
|
|
@@ -26949,7 +26964,7 @@
|
|
|
26949
26964
|
clipboardData.setData('text/plain', text);
|
|
26950
26965
|
clipboardData.setData(internalHtmlMime(), html);
|
|
26951
26966
|
return true;
|
|
26952
|
-
} catch (
|
|
26967
|
+
} catch (_a) {
|
|
26953
26968
|
return false;
|
|
26954
26969
|
}
|
|
26955
26970
|
} else {
|
|
@@ -27488,6 +27503,8 @@
|
|
|
27488
27503
|
clientX: 0,
|
|
27489
27504
|
clientY: 0,
|
|
27490
27505
|
ctrlKey: false,
|
|
27506
|
+
layerX: 0,
|
|
27507
|
+
layerY: 0,
|
|
27491
27508
|
metaKey: false,
|
|
27492
27509
|
movementX: 0,
|
|
27493
27510
|
movementY: 0,
|
|
@@ -28738,7 +28755,7 @@
|
|
|
28738
28755
|
const setEditorCommandState = (cmd, state) => {
|
|
28739
28756
|
try {
|
|
28740
28757
|
editor.getDoc().execCommand(cmd, false, String(state));
|
|
28741
|
-
} catch (
|
|
28758
|
+
} catch (_a) {
|
|
28742
28759
|
}
|
|
28743
28760
|
};
|
|
28744
28761
|
const isDefaultPrevented = e => {
|
|
@@ -30063,7 +30080,7 @@
|
|
|
30063
30080
|
let failed;
|
|
30064
30081
|
try {
|
|
30065
30082
|
doc.execCommand(command);
|
|
30066
|
-
} catch (
|
|
30083
|
+
} catch (_a) {
|
|
30067
30084
|
failed = true;
|
|
30068
30085
|
}
|
|
30069
30086
|
if (command === 'paste' && !doc.queryCommandEnabled(command)) {
|
|
@@ -31836,8 +31853,8 @@
|
|
|
31836
31853
|
documentBaseURL: null,
|
|
31837
31854
|
suffix: null,
|
|
31838
31855
|
majorVersion: '7',
|
|
31839
|
-
minorVersion: '
|
|
31840
|
-
releaseDate: '
|
|
31856
|
+
minorVersion: '7.0',
|
|
31857
|
+
releaseDate: 'TBD',
|
|
31841
31858
|
i18n: I18n,
|
|
31842
31859
|
activeEditor: null,
|
|
31843
31860
|
focusedEditor: null,
|
|
@@ -32359,7 +32376,7 @@
|
|
|
32359
32376
|
localStorage = window.localStorage;
|
|
32360
32377
|
localStorage.setItem(test, test);
|
|
32361
32378
|
localStorage.removeItem(test);
|
|
32362
|
-
} catch (
|
|
32379
|
+
} catch (_a) {
|
|
32363
32380
|
localStorage = create();
|
|
32364
32381
|
}
|
|
32365
32382
|
var LocalStorage = localStorage;
|
|
@@ -32442,7 +32459,7 @@
|
|
|
32442
32459
|
if (typeof module === 'object') {
|
|
32443
32460
|
try {
|
|
32444
32461
|
module.exports = tinymce;
|
|
32445
|
-
} catch (
|
|
32462
|
+
} catch (_a) {
|
|
32446
32463
|
}
|
|
32447
32464
|
}
|
|
32448
32465
|
};
|