roosterjs 8.29.3 → 8.30.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.
- package/README.md +0 -22
- package/dist/rooster-amd-min.js +1 -1
- package/dist/rooster-amd-min.js.map +1 -1
- package/dist/rooster-amd.d.ts +53 -10
- package/dist/rooster-amd.js +162 -129
- package/dist/rooster-amd.js.map +1 -1
- package/dist/rooster-min.js +1 -1
- package/dist/rooster-min.js.map +1 -1
- package/dist/rooster.d.ts +53 -10
- package/dist/rooster.js +162 -129
- package/dist/rooster.js.map +1 -1
- package/package.json +7 -7
- package/tsconfig.child.tsbuildinfo +1 -1
package/dist/rooster-amd.js
CHANGED
|
@@ -1336,13 +1336,12 @@ module.exports = {
|
|
|
1336
1336
|
/* MIT license */
|
|
1337
1337
|
var colorNames = __webpack_require__(/*! color-name */ "./node_modules/color-name/index.js");
|
|
1338
1338
|
var swizzle = __webpack_require__(/*! simple-swizzle */ "./node_modules/simple-swizzle/index.js");
|
|
1339
|
-
var hasOwnProperty = Object.hasOwnProperty;
|
|
1340
1339
|
|
|
1341
|
-
var reverseNames =
|
|
1340
|
+
var reverseNames = {};
|
|
1342
1341
|
|
|
1343
1342
|
// create a list of reverse color names
|
|
1344
1343
|
for (var name in colorNames) {
|
|
1345
|
-
if (hasOwnProperty
|
|
1344
|
+
if (colorNames.hasOwnProperty(name)) {
|
|
1346
1345
|
reverseNames[colorNames[name]] = name;
|
|
1347
1346
|
}
|
|
1348
1347
|
}
|
|
@@ -1385,9 +1384,9 @@ cs.get.rgb = function (string) {
|
|
|
1385
1384
|
|
|
1386
1385
|
var abbr = /^#([a-f0-9]{3,4})$/i;
|
|
1387
1386
|
var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;
|
|
1388
|
-
var rgba = /^rgba?\(\s*([+-]?\d+)
|
|
1389
|
-
var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s
|
|
1390
|
-
var keyword =
|
|
1387
|
+
var rgba = /^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/;
|
|
1388
|
+
var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/;
|
|
1389
|
+
var keyword = /(\D+)/;
|
|
1391
1390
|
|
|
1392
1391
|
var rgb = [0, 0, 0, 1];
|
|
1393
1392
|
var match;
|
|
@@ -1424,11 +1423,7 @@ cs.get.rgb = function (string) {
|
|
|
1424
1423
|
}
|
|
1425
1424
|
|
|
1426
1425
|
if (match[4]) {
|
|
1427
|
-
|
|
1428
|
-
rgb[3] = parseFloat(match[4]) * 0.01;
|
|
1429
|
-
} else {
|
|
1430
|
-
rgb[3] = parseFloat(match[4]);
|
|
1431
|
-
}
|
|
1426
|
+
rgb[3] = parseFloat(match[4]);
|
|
1432
1427
|
}
|
|
1433
1428
|
} else if (match = string.match(per)) {
|
|
1434
1429
|
for (i = 0; i < 3; i++) {
|
|
@@ -1436,22 +1431,19 @@ cs.get.rgb = function (string) {
|
|
|
1436
1431
|
}
|
|
1437
1432
|
|
|
1438
1433
|
if (match[4]) {
|
|
1439
|
-
|
|
1440
|
-
rgb[3] = parseFloat(match[4]) * 0.01;
|
|
1441
|
-
} else {
|
|
1442
|
-
rgb[3] = parseFloat(match[4]);
|
|
1443
|
-
}
|
|
1434
|
+
rgb[3] = parseFloat(match[4]);
|
|
1444
1435
|
}
|
|
1445
1436
|
} else if (match = string.match(keyword)) {
|
|
1446
1437
|
if (match[1] === 'transparent') {
|
|
1447
1438
|
return [0, 0, 0, 0];
|
|
1448
1439
|
}
|
|
1449
1440
|
|
|
1450
|
-
|
|
1441
|
+
rgb = colorNames[match[1]];
|
|
1442
|
+
|
|
1443
|
+
if (!rgb) {
|
|
1451
1444
|
return null;
|
|
1452
1445
|
}
|
|
1453
1446
|
|
|
1454
|
-
rgb = colorNames[match[1]];
|
|
1455
1447
|
rgb[3] = 1;
|
|
1456
1448
|
|
|
1457
1449
|
return rgb;
|
|
@@ -1472,12 +1464,12 @@ cs.get.hsl = function (string) {
|
|
|
1472
1464
|
return null;
|
|
1473
1465
|
}
|
|
1474
1466
|
|
|
1475
|
-
var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s
|
|
1467
|
+
var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/;
|
|
1476
1468
|
var match = string.match(hsl);
|
|
1477
1469
|
|
|
1478
1470
|
if (match) {
|
|
1479
1471
|
var alpha = parseFloat(match[4]);
|
|
1480
|
-
var h = (
|
|
1472
|
+
var h = (parseFloat(match[1]) + 360) % 360;
|
|
1481
1473
|
var s = clamp(parseFloat(match[2]), 0, 100);
|
|
1482
1474
|
var l = clamp(parseFloat(match[3]), 0, 100);
|
|
1483
1475
|
var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);
|
|
@@ -1493,7 +1485,7 @@ cs.get.hwb = function (string) {
|
|
|
1493
1485
|
return null;
|
|
1494
1486
|
}
|
|
1495
1487
|
|
|
1496
|
-
var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?
|
|
1488
|
+
var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/;
|
|
1497
1489
|
var match = string.match(hwb);
|
|
1498
1490
|
|
|
1499
1491
|
if (match) {
|
|
@@ -1572,7 +1564,7 @@ function clamp(num, min, max) {
|
|
|
1572
1564
|
}
|
|
1573
1565
|
|
|
1574
1566
|
function hexDouble(num) {
|
|
1575
|
-
var str =
|
|
1567
|
+
var str = num.toString(16).toUpperCase();
|
|
1576
1568
|
return (str.length < 2) ? '0' + str : str;
|
|
1577
1569
|
}
|
|
1578
1570
|
|
|
@@ -2814,9 +2806,14 @@ function getElementBasedFormatState(editor, event) {
|
|
|
2814
2806
|
if (range && !range.collapsed) {
|
|
2815
2807
|
var startingBlock = editor.getBlockElementAtNode(range.startContainer);
|
|
2816
2808
|
var endingBlock = editor.getBlockElementAtNode(range.endContainer);
|
|
2817
|
-
multiline = endingBlock ? !endingBlock.equals(startingBlock) : false;
|
|
2809
|
+
multiline = endingBlock && startingBlock ? !endingBlock.equals(startingBlock) : false;
|
|
2818
2810
|
}
|
|
2819
2811
|
var headerTag = (0, roosterjs_editor_dom_1.getTagOfNode)(editor.getElementAtCursor('H1,H2,H3,H4,H5,H6', null /*startFrom*/, event));
|
|
2812
|
+
var table = editor.queryElements('table', 1 /* OnSelection */)[0];
|
|
2813
|
+
var tableFormat = table ? (0, roosterjs_editor_dom_1.getTableFormatInfo)(table) : undefined;
|
|
2814
|
+
var hasHeader = (table === null || table === void 0 ? void 0 : table.rows[0])
|
|
2815
|
+
? (0, roosterjs_editor_dom_1.toArray)(table.rows[0].cells).every(function (cell) { return (0, roosterjs_editor_dom_1.getTagOfNode)(cell) == 'TH'; })
|
|
2816
|
+
: undefined;
|
|
2820
2817
|
return {
|
|
2821
2818
|
isBullet: listTag == 'UL',
|
|
2822
2819
|
isNumbering: listTag == 'OL',
|
|
@@ -2825,7 +2822,9 @@ function getElementBasedFormatState(editor, event) {
|
|
|
2825
2822
|
canUnlink: !!editor.queryElements('a[href]', 1 /* OnSelection */)[0],
|
|
2826
2823
|
canAddImageAltText: !!editor.queryElements('img', 1 /* OnSelection */)[0],
|
|
2827
2824
|
isBlockQuote: !!editor.queryElements('blockquote', 1 /* OnSelection */)[0],
|
|
2828
|
-
isInTable: !!
|
|
2825
|
+
isInTable: !!table,
|
|
2826
|
+
tableFormat: tableFormat,
|
|
2827
|
+
tableHasHeader: hasHeader,
|
|
2829
2828
|
};
|
|
2830
2829
|
}
|
|
2831
2830
|
exports.getElementBasedFormatState = getElementBasedFormatState;
|
|
@@ -5835,7 +5834,6 @@ function buildCss(table, coordinates, contentDivSelector) {
|
|
|
5835
5834
|
});
|
|
5836
5835
|
(_a = vTable.cells) === null || _a === void 0 ? void 0 : _a.forEach(function (row, rowIndex) {
|
|
5837
5836
|
var tdCount = 0;
|
|
5838
|
-
var thCount = 0;
|
|
5839
5837
|
firstSelected = null;
|
|
5840
5838
|
lastSelected = null;
|
|
5841
5839
|
//Get current TBODY/THEAD/TFOOT
|
|
@@ -5848,12 +5846,7 @@ function buildCss(table, coordinates, contentDivSelector) {
|
|
|
5848
5846
|
var cell = row[cellIndex].td;
|
|
5849
5847
|
if (cell) {
|
|
5850
5848
|
var tag = (0, roosterjs_editor_dom_1.getTagOfNode)(cell);
|
|
5851
|
-
|
|
5852
|
-
tdCount++;
|
|
5853
|
-
}
|
|
5854
|
-
if (tag == 'TH') {
|
|
5855
|
-
thCount++;
|
|
5856
|
-
}
|
|
5849
|
+
tdCount++;
|
|
5857
5850
|
if (rowIndex >= tr1 && rowIndex <= tr2 && cellIndex >= td1 && cellIndex <= td2) {
|
|
5858
5851
|
if (isFirst) {
|
|
5859
5852
|
isFirst = false;
|
|
@@ -5862,7 +5855,7 @@ function buildCss(table, coordinates, contentDivSelector) {
|
|
|
5862
5855
|
css += ',';
|
|
5863
5856
|
}
|
|
5864
5857
|
removeImportant(cell);
|
|
5865
|
-
var selector = generateCssFromCell(contentDivSelector, table.id, middleElSelector, currentRow, tag,
|
|
5858
|
+
var selector = generateCssFromCell(contentDivSelector, table.id, middleElSelector, currentRow, tag, tdCount);
|
|
5866
5859
|
css += selector;
|
|
5867
5860
|
firstSelected = firstSelected || table.querySelector(selector);
|
|
5868
5861
|
lastSelected = table.querySelector(selector);
|
|
@@ -6327,10 +6320,9 @@ var CopyPastePlugin = /** @class */ (function () {
|
|
|
6327
6320
|
function CopyPastePlugin(options) {
|
|
6328
6321
|
var _this = this;
|
|
6329
6322
|
this.onPaste = function (event) {
|
|
6330
|
-
var _a
|
|
6323
|
+
var _a;
|
|
6331
6324
|
var range;
|
|
6332
6325
|
(0, roosterjs_editor_dom_1.extractClipboardEvent)(event, function (clipboardData) { var _a; return (_a = _this.editor) === null || _a === void 0 ? void 0 : _a.paste(clipboardData); }, {
|
|
6333
|
-
allowLinkPreview: (_a = _this.editor) === null || _a === void 0 ? void 0 : _a.isFeatureEnabled("PasteWithLinkPreview" /* PasteWithLinkPreview */),
|
|
6334
6326
|
allowedCustomPasteType: _this.state.allowedCustomPasteType,
|
|
6335
6327
|
getTempDiv: function () {
|
|
6336
6328
|
var _a;
|
|
@@ -6340,7 +6332,7 @@ var CopyPastePlugin = /** @class */ (function () {
|
|
|
6340
6332
|
removeTempDiv: function (div) {
|
|
6341
6333
|
_this.cleanUpAndRestoreSelection(div, range, false /* isCopy */);
|
|
6342
6334
|
},
|
|
6343
|
-
}, (
|
|
6335
|
+
}, (_a = _this.editor) === null || _a === void 0 ? void 0 : _a.getSelectionRange());
|
|
6344
6336
|
};
|
|
6345
6337
|
this.state = {
|
|
6346
6338
|
allowedCustomPasteType: options.allowedCustomPasteType || [],
|
|
@@ -6385,16 +6377,19 @@ var CopyPastePlugin = /** @class */ (function () {
|
|
|
6385
6377
|
if (selection && !selection.areAllCollapsed) {
|
|
6386
6378
|
var html = this.editor.getContent(2 /* RawHTMLWithSelection */);
|
|
6387
6379
|
var tempDiv_1 = this.getTempDiv(true /*forceInLightMode*/);
|
|
6388
|
-
var
|
|
6389
|
-
|
|
6390
|
-
(0, roosterjs_editor_dom_1.
|
|
6391
|
-
|
|
6380
|
+
var metadata = (0, roosterjs_editor_dom_1.setHtmlWithMetadata)(tempDiv_1, html, this.editor.getTrustedHTMLHandler());
|
|
6381
|
+
var newRange = (metadata === null || metadata === void 0 ? void 0 : metadata.type) === 0 /* Normal */
|
|
6382
|
+
? (0, roosterjs_editor_dom_1.createRange)(tempDiv_1, metadata.start, metadata.end)
|
|
6383
|
+
: null;
|
|
6392
6384
|
this.editor.triggerPluginEvent(9 /* BeforeCutCopy */, {
|
|
6393
6385
|
clonedRoot: tempDiv_1,
|
|
6394
6386
|
range: newRange,
|
|
6395
6387
|
rawEvent: event,
|
|
6396
6388
|
isCut: isCut,
|
|
6397
6389
|
});
|
|
6390
|
+
if (newRange) {
|
|
6391
|
+
(0, roosterjs_editor_dom_1.addRangeToSelection)(newRange);
|
|
6392
|
+
}
|
|
6398
6393
|
this.editor.runAsync(function (editor) {
|
|
6399
6394
|
_this.cleanUpAndRestoreSelection(tempDiv_1, selection, !isCut /* isCopy */);
|
|
6400
6395
|
if (isCut) {
|
|
@@ -7413,6 +7408,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7413
7408
|
var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./packages/roosterjs-editor-dom/lib/index.ts");
|
|
7414
7409
|
/**
|
|
7415
7410
|
* @internal
|
|
7411
|
+
* TODO: Rename this plugin since it is not only for table now
|
|
7412
|
+
*
|
|
7416
7413
|
* NormalizeTable plugin makes sure each table in editor has TBODY/THEAD/TFOOT tag around TR tags
|
|
7417
7414
|
*
|
|
7418
7415
|
* When we retrieve HTML content using innerHTML, browser will always add TBODY around TR nodes if there is not.
|
|
@@ -7469,6 +7466,11 @@ var NormalizeTablePlugin = /** @class */ (function () {
|
|
|
7469
7466
|
this.normalizeTableFromEvent(event.rawEvent);
|
|
7470
7467
|
}
|
|
7471
7468
|
break;
|
|
7469
|
+
case 8 /* ExtractContentWithDom */:
|
|
7470
|
+
if (this.editor.isFeatureEnabled("NormalizeList" /* NormalizeList */)) {
|
|
7471
|
+
normalizeListsForExport(event.clonedRoot);
|
|
7472
|
+
}
|
|
7473
|
+
break;
|
|
7472
7474
|
}
|
|
7473
7475
|
};
|
|
7474
7476
|
NormalizeTablePlugin.prototype.normalizeTableFromEvent = function (event) {
|
|
@@ -7540,6 +7542,15 @@ function normalizeTables(tables) {
|
|
|
7540
7542
|
});
|
|
7541
7543
|
return isDOMChanged;
|
|
7542
7544
|
}
|
|
7545
|
+
function normalizeListsForExport(root) {
|
|
7546
|
+
(0, roosterjs_editor_dom_1.toArray)(root.querySelectorAll('li')).forEach(function (li) {
|
|
7547
|
+
var prevElement = li.previousSibling;
|
|
7548
|
+
if (li.style.display == 'block' && (0, roosterjs_editor_dom_1.safeInstanceOf)(prevElement, 'HTMLLIElement')) {
|
|
7549
|
+
delete li.style.display;
|
|
7550
|
+
prevElement.appendChild((0, roosterjs_editor_dom_1.changeElementTag)(li, 'div'));
|
|
7551
|
+
}
|
|
7552
|
+
});
|
|
7553
|
+
}
|
|
7543
7554
|
|
|
7544
7555
|
|
|
7545
7556
|
/***/ }),
|
|
@@ -9208,17 +9219,6 @@ function removeContents(range) {
|
|
|
9208
9219
|
|
|
9209
9220
|
"use strict";
|
|
9210
9221
|
|
|
9211
|
-
var __assign = (this && this.__assign) || function () {
|
|
9212
|
-
__assign = Object.assign || function(t) {
|
|
9213
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
9214
|
-
s = arguments[i];
|
|
9215
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
9216
|
-
t[p] = s[p];
|
|
9217
|
-
}
|
|
9218
|
-
return t;
|
|
9219
|
-
};
|
|
9220
|
-
return __assign.apply(this, arguments);
|
|
9221
|
-
};
|
|
9222
9222
|
var _a;
|
|
9223
9223
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9224
9224
|
var readFile_1 = __webpack_require__(/*! ../utils/readFile */ "./packages/roosterjs-editor-dom/lib/utils/readFile.ts");
|
|
@@ -9241,6 +9241,7 @@ var ContentHandlers = (_a = {},
|
|
|
9241
9241
|
},
|
|
9242
9242
|
_a["text/plain" /* PlainText */] = function (data, value) { return (data.text = value); },
|
|
9243
9243
|
_a[OTHER_TEXT_TYPE] = function (data, value, type) { return !!type && (data.customValues[type] = value); },
|
|
9244
|
+
_a["text/" /* Text */ + EDGE_LINK_PREVIEW] = tryParseLinkPreview,
|
|
9244
9245
|
_a);
|
|
9245
9246
|
/**
|
|
9246
9247
|
* Extract clipboard items to be a ClipboardData object for IE
|
|
@@ -9263,10 +9264,6 @@ function extractClipboardItems(items, options) {
|
|
|
9263
9264
|
rawHtml: null,
|
|
9264
9265
|
customValues: {},
|
|
9265
9266
|
};
|
|
9266
|
-
var contentHandlers = __assign({}, ContentHandlers);
|
|
9267
|
-
if (options === null || options === void 0 ? void 0 : options.allowLinkPreview) {
|
|
9268
|
-
contentHandlers["text/" /* Text */ + EDGE_LINK_PREVIEW] = tryParseLinkPreview;
|
|
9269
|
-
}
|
|
9270
9267
|
return Promise.all((items || []).map(function (item) {
|
|
9271
9268
|
var type = item.type;
|
|
9272
9269
|
if (type.indexOf("image/" /* Image */) == 0 && !data.image && item.kind == 'file') {
|
|
@@ -9296,7 +9293,7 @@ function extractClipboardItems(items, options) {
|
|
|
9296
9293
|
}
|
|
9297
9294
|
else {
|
|
9298
9295
|
var customType_1 = getAllowedCustomType(type, options === null || options === void 0 ? void 0 : options.allowedCustomPasteType);
|
|
9299
|
-
var handler_1 =
|
|
9296
|
+
var handler_1 = ContentHandlers[type] || (customType_1 ? ContentHandlers[OTHER_TEXT_TYPE] : null);
|
|
9300
9297
|
return new Promise(function (resolve) {
|
|
9301
9298
|
return handler_1
|
|
9302
9299
|
? item.getAsString(function (value) {
|
|
@@ -10324,21 +10321,23 @@ function adjustInsertPositionForTable(root, nodeToInsert, position, range) {
|
|
|
10324
10321
|
var rangeToTraverse = (0, createRange_1.default)(posBefore, position);
|
|
10325
10322
|
var contentTraverser = ContentTraverser_1.default.createSelectionTraverser(root, rangeToTraverse);
|
|
10326
10323
|
var blockElement = contentTraverser && contentTraverser.currentBlockElement;
|
|
10327
|
-
|
|
10328
|
-
|
|
10329
|
-
|
|
10330
|
-
|
|
10331
|
-
|
|
10324
|
+
if (blockElement) {
|
|
10325
|
+
var nextBlockElement = blockElement;
|
|
10326
|
+
while (!nextBlockElement) {
|
|
10327
|
+
nextBlockElement = contentTraverser.getNextBlockElement();
|
|
10328
|
+
if (nextBlockElement) {
|
|
10329
|
+
blockElement = nextBlockElement;
|
|
10330
|
+
}
|
|
10331
|
+
}
|
|
10332
|
+
var prevElement = blockElement === null || blockElement === void 0 ? void 0 : blockElement.getEndNode();
|
|
10333
|
+
if (prevElement && (0, findClosestElementAncestor_1.default)(prevElement, root, 'TABLE')) {
|
|
10334
|
+
var tempRange = (0, createRange_1.default)(position);
|
|
10335
|
+
tempRange.collapse(false /* toStart */);
|
|
10336
|
+
var br = root.ownerDocument.createElement('br');
|
|
10337
|
+
tempRange.insertNode(br);
|
|
10338
|
+
tempRange = (0, createRange_1.default)(br);
|
|
10339
|
+
position = Position_1.default.getEnd(tempRange);
|
|
10332
10340
|
}
|
|
10333
|
-
}
|
|
10334
|
-
var prevElement = blockElement === null || blockElement === void 0 ? void 0 : blockElement.getEndNode();
|
|
10335
|
-
if (prevElement && (0, findClosestElementAncestor_1.default)(prevElement, root, 'TABLE')) {
|
|
10336
|
-
var tempRange = (0, createRange_1.default)(position);
|
|
10337
|
-
tempRange.collapse(false /* toStart */);
|
|
10338
|
-
var br = root.ownerDocument.createElement('br');
|
|
10339
|
-
tempRange.insertNode(br);
|
|
10340
|
-
tempRange = (0, createRange_1.default)(br);
|
|
10341
|
-
position = Position_1.default.getEnd(tempRange);
|
|
10342
10341
|
}
|
|
10343
10342
|
}
|
|
10344
10343
|
return position;
|
|
@@ -11548,8 +11547,8 @@ exports.default = getPredefinedCssForElement;
|
|
|
11548
11547
|
|
|
11549
11548
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11550
11549
|
exports.VTable = exports.moveChildNodes = exports.KnownCreateElementData = exports.createElement = exports.matchesSelector = exports.setColor = exports.getInnerHTML = exports.readFile = exports.safeInstanceOf = exports.normalizeRect = exports.splitTextNode = exports.getLastLeafNode = exports.getFirstLeafNode = exports.getPreviousLeafSibling = exports.getNextLeafSibling = exports.wrap = exports.unwrap = exports.splitBalancedNodeRange = exports.splitParentNode = exports.queryElements = exports.matchLink = exports.isVoidHtmlElement = exports.isNodeEmpty = exports.isBlockElement = exports.getTagOfNode = exports.PendableFormatCommandMap = exports.getPendableFormatState = exports.getComputedStyle = exports.getComputedStyles = exports.fromHtml = exports.findClosestElementAncestor = exports.contains = exports.collapseNodes = exports.changeElementTag = exports.applyFormat = exports.getBrowserInfo = exports.Browser = exports.extractClipboardItemsForIE = exports.extractClipboardItems = exports.extractClipboardEvent = exports.applyTextStyle = exports.PartialInlineElement = exports.NodeInlineElement = exports.LinkInlineElement = exports.ImageInlineElement = exports.getInlineElementAtNode = exports.PositionContentSearcher = exports.ContentTraverser = exports.getFirstLastBlockElement = exports.getBlockElementAtNode = void 0;
|
|
11551
|
-
exports.
|
|
11552
|
-
exports.toArray = exports.getObjectKeys = exports.arrayPush = exports.removeMetadata = exports.setMetadata = exports.getMetadata = exports.createObjectDefinition = exports.createArrayDefinition = exports.createStringDefinition = void 0;
|
|
11550
|
+
exports.createNumberDefinition = exports.validate = exports.getTextContent = exports.deleteSelectedContent = exports.adjustInsertPosition = exports.setStyles = exports.getStyles = exports.isCtrlOrMetaPressed = exports.isCharacterValue = exports.isModifierKey = exports.clearEventDataCache = exports.cacheGetEventData = exports.getEntitySelector = exports.getEntityFromElement = exports.commitEntity = exports.chainSanitizerCallback = exports.createDefaultHtmlSanitizerOptions = exports.getInheritableStyles = exports.HtmlSanitizer = exports.canUndoAutoComplete = exports.createSnapshots = exports.moveCurrentSnapsnot = exports.moveCurrentSnapshot = exports.clearProceedingSnapshotsV2 = exports.clearProceedingSnapshots = exports.canMoveCurrentSnapshot = exports.addSnapshotV2 = exports.addSnapshot = exports.addRangeToSelection = exports.setHtmlWithMetadata = exports.setHtmlWithSelectionPath = exports.getHtmlWithSelectionPath = exports.getSelectionPath = exports.isPositionAtBeginningOf = exports.getPositionRect = exports.createRange = exports.Position = exports.mergeBlocksInRegion = exports.getSelectionRangeInRegion = exports.isNodeInRegion = exports.collapseNodesInRegion = exports.getSelectedBlockElementsInRegion = exports.getRegionsFromRange = exports.getTableFormatInfo = exports.setListItemStyle = exports.VListChain = exports.createVListFromRegion = exports.VListItem = exports.VList = exports.isWholeTableSelected = void 0;
|
|
11551
|
+
exports.toArray = exports.getObjectKeys = exports.arrayPush = exports.removeMetadata = exports.setMetadata = exports.getMetadata = exports.createObjectDefinition = exports.createArrayDefinition = exports.createStringDefinition = exports.createBooleanDefinition = void 0;
|
|
11553
11552
|
var getBlockElementAtNode_1 = __webpack_require__(/*! ./blockElements/getBlockElementAtNode */ "./packages/roosterjs-editor-dom/lib/blockElements/getBlockElementAtNode.ts");
|
|
11554
11553
|
Object.defineProperty(exports, "getBlockElementAtNode", { enumerable: true, get: function () { return getBlockElementAtNode_1.default; } });
|
|
11555
11554
|
var getFirstLastBlockElement_1 = __webpack_require__(/*! ./blockElements/getFirstLastBlockElement */ "./packages/roosterjs-editor-dom/lib/blockElements/getFirstLastBlockElement.ts");
|
|
@@ -11655,6 +11654,8 @@ var VListChain_1 = __webpack_require__(/*! ./list/VListChain */ "./packages/roos
|
|
|
11655
11654
|
Object.defineProperty(exports, "VListChain", { enumerable: true, get: function () { return VListChain_1.default; } });
|
|
11656
11655
|
var setListItemStyle_1 = __webpack_require__(/*! ./list/setListItemStyle */ "./packages/roosterjs-editor-dom/lib/list/setListItemStyle.ts");
|
|
11657
11656
|
Object.defineProperty(exports, "setListItemStyle", { enumerable: true, get: function () { return setListItemStyle_1.default; } });
|
|
11657
|
+
var tableFormatInfo_1 = __webpack_require__(/*! ./table/tableFormatInfo */ "./packages/roosterjs-editor-dom/lib/table/tableFormatInfo.ts");
|
|
11658
|
+
Object.defineProperty(exports, "getTableFormatInfo", { enumerable: true, get: function () { return tableFormatInfo_1.getTableFormatInfo; } });
|
|
11658
11659
|
var getRegionsFromRange_1 = __webpack_require__(/*! ./region/getRegionsFromRange */ "./packages/roosterjs-editor-dom/lib/region/getRegionsFromRange.ts");
|
|
11659
11660
|
Object.defineProperty(exports, "getRegionsFromRange", { enumerable: true, get: function () { return getRegionsFromRange_1.default; } });
|
|
11660
11661
|
var getSelectedBlockElementsInRegion_1 = __webpack_require__(/*! ./region/getSelectedBlockElementsInRegion */ "./packages/roosterjs-editor-dom/lib/region/getSelectedBlockElementsInRegion.ts");
|
|
@@ -16593,7 +16594,6 @@ var TableFormatMetadata = (0, definitionCreators_1.createObjectDefinition)({
|
|
|
16593
16594
|
keepCellShade: BooleanDefinition,
|
|
16594
16595
|
}, false /* isOptional */, true /** allowNull */);
|
|
16595
16596
|
/**
|
|
16596
|
-
* @internal
|
|
16597
16597
|
* Get the format info of a table
|
|
16598
16598
|
* If the table does not have a info saved, it will be retrieved from the css styles
|
|
16599
16599
|
* @param table The table that has the info
|
|
@@ -18677,23 +18677,21 @@ var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./
|
|
|
18677
18677
|
/**
|
|
18678
18678
|
* Generate event names and getXY function based on different platforms to be compatible with desktop and mobile browsers
|
|
18679
18679
|
*/
|
|
18680
|
-
var
|
|
18681
|
-
|
|
18682
|
-
|
|
18683
|
-
|
|
18684
|
-
|
|
18685
|
-
|
|
18686
|
-
|
|
18687
|
-
|
|
18688
|
-
|
|
18689
|
-
|
|
18690
|
-
|
|
18691
|
-
|
|
18692
|
-
|
|
18693
|
-
|
|
18694
|
-
|
|
18695
|
-
};
|
|
18696
|
-
}
|
|
18680
|
+
var MOUSE_EVENT_INFO_DESKTOP = (function () {
|
|
18681
|
+
return {
|
|
18682
|
+
MOUSEDOWN: 'mousedown',
|
|
18683
|
+
MOUSEMOVE: 'mousemove',
|
|
18684
|
+
MOUSEUP: 'mouseup',
|
|
18685
|
+
getPageXY: getMouseEventPageXY,
|
|
18686
|
+
};
|
|
18687
|
+
})();
|
|
18688
|
+
var MOUSE_EVENT_INFO_MOBILE = (function () {
|
|
18689
|
+
return {
|
|
18690
|
+
MOUSEDOWN: 'touchstart',
|
|
18691
|
+
MOUSEMOVE: 'touchmove',
|
|
18692
|
+
MOUSEUP: 'touchend',
|
|
18693
|
+
getPageXY: getTouchEventPageXY,
|
|
18694
|
+
};
|
|
18697
18695
|
})();
|
|
18698
18696
|
function getMouseEventPageXY(e) {
|
|
18699
18697
|
return [e.pageX, e.pageY];
|
|
@@ -18721,8 +18719,10 @@ var DragAndDropHelper = /** @class */ (function () {
|
|
|
18721
18719
|
* so that the handler object knows which element it is triggered from.
|
|
18722
18720
|
* @param onSubmit A callback that will be invoked when event handler in handler object returns true
|
|
18723
18721
|
* @param handler The event handler object, see DragAndDropHandler interface for more information
|
|
18722
|
+
* @param zoomScale The zoom scale of the editor
|
|
18723
|
+
* @param forceMobile A boolean to force the use of touch controls for the helper
|
|
18724
18724
|
*/
|
|
18725
|
-
function DragAndDropHelper(trigger, context, onSubmit, handler, zoomScale) {
|
|
18725
|
+
function DragAndDropHelper(trigger, context, onSubmit, handler, zoomScale, forceMobile) {
|
|
18726
18726
|
var _this = this;
|
|
18727
18727
|
this.trigger = trigger;
|
|
18728
18728
|
this.context = context;
|
|
@@ -18735,13 +18735,13 @@ var DragAndDropHelper = /** @class */ (function () {
|
|
|
18735
18735
|
e.preventDefault();
|
|
18736
18736
|
e.stopPropagation();
|
|
18737
18737
|
_this.addDocumentEvents();
|
|
18738
|
-
_a =
|
|
18738
|
+
_a = _this.dndMouse.getPageXY(e), _this.initX = _a[0], _this.initY = _a[1];
|
|
18739
18739
|
_this.initValue = (_c = (_b = _this.handler).onDragStart) === null || _c === void 0 ? void 0 : _c.call(_b, _this.context, e);
|
|
18740
18740
|
};
|
|
18741
18741
|
this.onMouseMove = function (e) {
|
|
18742
18742
|
var _a, _b, _c;
|
|
18743
18743
|
e.preventDefault();
|
|
18744
|
-
var _d =
|
|
18744
|
+
var _d = _this.dndMouse.getPageXY(e), pageX = _d[0], pageY = _d[1];
|
|
18745
18745
|
var deltaX = (pageX - _this.initX) / _this.zoomScale;
|
|
18746
18746
|
var deltaY = (pageY - _this.initY) / _this.zoomScale;
|
|
18747
18747
|
if ((_b = (_a = _this.handler).onDragging) === null || _b === void 0 ? void 0 : _b.call(_a, _this.context, e, _this.initValue, deltaX, deltaY)) {
|
|
@@ -18756,24 +18756,28 @@ var DragAndDropHelper = /** @class */ (function () {
|
|
|
18756
18756
|
(_c = _this.onSubmit) === null || _c === void 0 ? void 0 : _c.call(_this, _this.context, _this.trigger);
|
|
18757
18757
|
}
|
|
18758
18758
|
};
|
|
18759
|
-
|
|
18759
|
+
this.dndMouse =
|
|
18760
|
+
forceMobile || roosterjs_editor_dom_1.Browser.isMobileOrTablet
|
|
18761
|
+
? MOUSE_EVENT_INFO_MOBILE
|
|
18762
|
+
: MOUSE_EVENT_INFO_DESKTOP;
|
|
18763
|
+
trigger.addEventListener(this.dndMouse.MOUSEDOWN, this.onMouseDown);
|
|
18760
18764
|
}
|
|
18761
18765
|
/**
|
|
18762
18766
|
* Dispose this object, remove all event listeners that has been attached
|
|
18763
18767
|
*/
|
|
18764
18768
|
DragAndDropHelper.prototype.dispose = function () {
|
|
18765
|
-
this.trigger.removeEventListener(
|
|
18769
|
+
this.trigger.removeEventListener(this.dndMouse.MOUSEDOWN, this.onMouseDown);
|
|
18766
18770
|
this.removeDocumentEvents();
|
|
18767
18771
|
};
|
|
18768
18772
|
DragAndDropHelper.prototype.addDocumentEvents = function () {
|
|
18769
18773
|
var doc = this.trigger.ownerDocument;
|
|
18770
|
-
doc.addEventListener(
|
|
18771
|
-
doc.addEventListener(
|
|
18774
|
+
doc.addEventListener(this.dndMouse.MOUSEMOVE, this.onMouseMove, true /*useCapture*/);
|
|
18775
|
+
doc.addEventListener(this.dndMouse.MOUSEUP, this.onMouseUp, true /*useCapture*/);
|
|
18772
18776
|
};
|
|
18773
18777
|
DragAndDropHelper.prototype.removeDocumentEvents = function () {
|
|
18774
18778
|
var doc = this.trigger.ownerDocument;
|
|
18775
|
-
doc.removeEventListener(
|
|
18776
|
-
doc.removeEventListener(
|
|
18779
|
+
doc.removeEventListener(this.dndMouse.MOUSEMOVE, this.onMouseMove, true /*useCapture*/);
|
|
18780
|
+
doc.removeEventListener(this.dndMouse.MOUSEUP, this.onMouseUp, true /*useCapture*/);
|
|
18777
18781
|
};
|
|
18778
18782
|
return DragAndDropHelper;
|
|
18779
18783
|
}());
|
|
@@ -21143,7 +21147,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
21143
21147
|
}
|
|
21144
21148
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
21145
21149
|
};
|
|
21146
|
-
var _a
|
|
21150
|
+
var _a;
|
|
21147
21151
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21148
21152
|
var applyChange_1 = __webpack_require__(/*! ./editInfoUtils/applyChange */ "./packages/roosterjs-editor-plugins/lib/plugins/ImageEdit/editInfoUtils/applyChange.ts");
|
|
21149
21153
|
var canRegenerateImage_1 = __webpack_require__(/*! ./api/canRegenerateImage */ "./packages/roosterjs-editor-plugins/lib/plugins/ImageEdit/api/canRegenerateImage.ts");
|
|
@@ -21161,14 +21165,6 @@ var ALT_KEYCODE = 18;
|
|
|
21161
21165
|
var DIRECTIONS = 8;
|
|
21162
21166
|
var DirectionRad = (Math.PI * 2) / DIRECTIONS;
|
|
21163
21167
|
var DirectionOrder = ['nw', 'n', 'ne', 'e', 'se', 's', 'sw', 'w'];
|
|
21164
|
-
/**
|
|
21165
|
-
* Map the experimental features to image edit operations to help determine which operation is allowed
|
|
21166
|
-
*/
|
|
21167
|
-
var FeatureToOperationMap = (_a = {},
|
|
21168
|
-
_a["SingleDirectionResize" /* SingleDirectionResize */] = 2 /* SideResize */,
|
|
21169
|
-
_a["ImageRotate" /* ImageRotate */] = 4 /* Rotate */,
|
|
21170
|
-
_a["ImageCrop" /* ImageCrop */] = 8 /* Crop */,
|
|
21171
|
-
_a);
|
|
21172
21168
|
/**
|
|
21173
21169
|
* Default image edit options
|
|
21174
21170
|
*/
|
|
@@ -21180,17 +21176,20 @@ var DefaultOptions = {
|
|
|
21180
21176
|
minRotateDeg: 5,
|
|
21181
21177
|
imageSelector: 'img',
|
|
21182
21178
|
rotateIconHTML: null,
|
|
21179
|
+
disableCrop: false,
|
|
21180
|
+
disableRotate: false,
|
|
21181
|
+
disableSideResize: false,
|
|
21183
21182
|
};
|
|
21184
21183
|
/**
|
|
21185
21184
|
* Map the image edit operation to a function that returns editing elements HTML to help
|
|
21186
21185
|
* build image editing UI
|
|
21187
21186
|
*/
|
|
21188
|
-
var ImageEditHTMLMap = (
|
|
21189
|
-
|
|
21190
|
-
|
|
21191
|
-
|
|
21192
|
-
|
|
21193
|
-
|
|
21187
|
+
var ImageEditHTMLMap = (_a = {},
|
|
21188
|
+
_a[1 /* CornerResize */] = Resizer_1.getCornerResizeHTML,
|
|
21189
|
+
_a[2 /* SideResize */] = Resizer_1.getSideResizeHTML,
|
|
21190
|
+
_a[4 /* Rotate */] = Rotator_1.getRotateHTML,
|
|
21191
|
+
_a[8 /* Crop */] = Cropper_1.getCropHTML,
|
|
21192
|
+
_a);
|
|
21194
21193
|
/**
|
|
21195
21194
|
* Image edit entity name
|
|
21196
21195
|
*/
|
|
@@ -21218,8 +21217,6 @@ var ImageEdit = /** @class */ (function () {
|
|
|
21218
21217
|
function ImageEdit(options, onShowResizeHandle) {
|
|
21219
21218
|
var _this = this;
|
|
21220
21219
|
this.onShowResizeHandle = onShowResizeHandle;
|
|
21221
|
-
// Allowed editing operations
|
|
21222
|
-
this.allowedOperations = 1 /* CornerResize */;
|
|
21223
21220
|
/**
|
|
21224
21221
|
* quit editing mode when editor lose focus
|
|
21225
21222
|
*/
|
|
@@ -21303,6 +21300,11 @@ var ImageEdit = /** @class */ (function () {
|
|
|
21303
21300
|
}
|
|
21304
21301
|
};
|
|
21305
21302
|
this.options = __assign(__assign({}, DefaultOptions), (options || {}));
|
|
21303
|
+
this.allowedOperations =
|
|
21304
|
+
1 /* CornerResize */ |
|
|
21305
|
+
(this.options.disableCrop ? 0 : 8 /* Crop */) |
|
|
21306
|
+
(this.options.disableRotate ? 0 : 4 /* Rotate */) |
|
|
21307
|
+
(this.options.disableSideResize ? 0 : 2 /* SideResize */);
|
|
21306
21308
|
}
|
|
21307
21309
|
/**
|
|
21308
21310
|
* Get a friendly name of this plugin
|
|
@@ -21315,15 +21317,8 @@ var ImageEdit = /** @class */ (function () {
|
|
|
21315
21317
|
* @param editor Editor instance
|
|
21316
21318
|
*/
|
|
21317
21319
|
ImageEdit.prototype.initialize = function (editor) {
|
|
21318
|
-
var _this = this;
|
|
21319
21320
|
this.editor = editor;
|
|
21320
21321
|
this.disposer = editor.addDomEventHandler('blur', this.onBlur);
|
|
21321
|
-
// Read current enabled features from editor to determine which editing operations are allowed
|
|
21322
|
-
(0, roosterjs_editor_dom_1.getObjectKeys)(FeatureToOperationMap).forEach(function (key) {
|
|
21323
|
-
_this.allowedOperations |= _this.editor.isFeatureEnabled(key)
|
|
21324
|
-
? FeatureToOperationMap[key]
|
|
21325
|
-
: 0;
|
|
21326
|
-
});
|
|
21327
21322
|
};
|
|
21328
21323
|
/**
|
|
21329
21324
|
* Dispose this plugin
|
|
@@ -21396,6 +21391,14 @@ var ImageEdit = /** @class */ (function () {
|
|
|
21396
21391
|
break;
|
|
21397
21392
|
}
|
|
21398
21393
|
};
|
|
21394
|
+
/**
|
|
21395
|
+
* Check if the given image edit operation is allowed by this pluign
|
|
21396
|
+
* @param operation The image edit operation to check
|
|
21397
|
+
* @returns True means it is allowed, otherwise false
|
|
21398
|
+
*/
|
|
21399
|
+
ImageEdit.prototype.isOperationAllowed = function (operation) {
|
|
21400
|
+
return !!(this.allowedOperations & operation);
|
|
21401
|
+
};
|
|
21399
21402
|
ImageEdit.prototype.setEditingImage = function (image, operationOrSelect) {
|
|
21400
21403
|
var _this = this;
|
|
21401
21404
|
var operation = typeof operationOrSelect === 'number' ? operationOrSelect : 0 /* None */;
|
|
@@ -21448,7 +21451,9 @@ var ImageEdit = /** @class */ (function () {
|
|
|
21448
21451
|
wrapper.style.position = 'relative';
|
|
21449
21452
|
wrapper.style.maxWidth = '100%';
|
|
21450
21453
|
// keep the same vertical align
|
|
21451
|
-
var originalVerticalAlign = this.image.ownerDocument.defaultView
|
|
21454
|
+
var originalVerticalAlign = this.image.ownerDocument.defaultView
|
|
21455
|
+
.getComputedStyle(this.image)
|
|
21456
|
+
.getPropertyValue('vertical-align');
|
|
21452
21457
|
if (originalVerticalAlign) {
|
|
21453
21458
|
wrapper.style.verticalAlign = originalVerticalAlign;
|
|
21454
21459
|
}
|
|
@@ -23110,6 +23115,12 @@ var roosterjs_editor_dom_1 = __webpack_require__(/*! roosterjs-editor-dom */ "./
|
|
|
23110
23115
|
var WORD_ONLINE_IDENTIFYING_SELECTOR = 'div.ListContainerWrapper>ul[class^="BulletListStyle"],div.ListContainerWrapper>ol[class^="NumberListStyle"],span.WACImageContainer > img';
|
|
23111
23116
|
var LIST_CONTAINER_ELEMENT_CLASS_NAME = 'ListContainerWrapper';
|
|
23112
23117
|
var IMAGE_CONTAINER_ELEMENT_CLASS_NAME = 'WACImageContainer';
|
|
23118
|
+
//When the list style is a symbol and the value is not in the clipboard, WordOnline
|
|
23119
|
+
var VALID_LIST_STYLE_CHAR_CODES = [
|
|
23120
|
+
'111',
|
|
23121
|
+
'9643',
|
|
23122
|
+
'9830', //'♦'
|
|
23123
|
+
];
|
|
23113
23124
|
/**
|
|
23114
23125
|
* @internal
|
|
23115
23126
|
*/
|
|
@@ -23191,7 +23202,7 @@ function convertPastedContentFromWordOnline(fragment) {
|
|
|
23191
23202
|
var listType = getContainerListType(listItemContainer); // list type that is contained by iterator.
|
|
23192
23203
|
// Initialize processed element with proper listType if this is the first element
|
|
23193
23204
|
if (!convertedListElement) {
|
|
23194
|
-
convertedListElement = doc
|
|
23205
|
+
convertedListElement = createNewList(listItemContainer, doc, listType);
|
|
23195
23206
|
}
|
|
23196
23207
|
// Get all list items(<li>) in the current iterator element.
|
|
23197
23208
|
var currentListItems = (0, roosterjs_editor_dom_1.toArray)(listItemContainer.querySelectorAll('li'));
|
|
@@ -23205,7 +23216,7 @@ function convertPastedContentFromWordOnline(fragment) {
|
|
|
23205
23216
|
// and keep the processing going.
|
|
23206
23217
|
if ((0, roosterjs_editor_dom_1.getTagOfNode)(convertedListElement) != listType && itemLevel == 1) {
|
|
23207
23218
|
insertConvertedListToDoc(convertedListElement, fragment, itemBlock);
|
|
23208
|
-
convertedListElement = doc
|
|
23219
|
+
convertedListElement = createNewList(listItemContainer, doc, listType);
|
|
23209
23220
|
}
|
|
23210
23221
|
insertListItem(convertedListElement, item, listType, doc);
|
|
23211
23222
|
});
|
|
@@ -23242,6 +23253,15 @@ function convertPastedContentFromWordOnline(fragment) {
|
|
|
23242
23253
|
});
|
|
23243
23254
|
}
|
|
23244
23255
|
exports.default = convertPastedContentFromWordOnline;
|
|
23256
|
+
function createNewList(listItemContainer, doc, tag) {
|
|
23257
|
+
var _a;
|
|
23258
|
+
var newList = doc.createElement(tag);
|
|
23259
|
+
var startAttribute = (_a = listItemContainer.firstElementChild) === null || _a === void 0 ? void 0 : _a.getAttribute('start');
|
|
23260
|
+
if (startAttribute) {
|
|
23261
|
+
newList.setAttribute('start', startAttribute);
|
|
23262
|
+
}
|
|
23263
|
+
return newList;
|
|
23264
|
+
}
|
|
23245
23265
|
/**
|
|
23246
23266
|
* The node processing is based on the premise of only ol/ul is in ListContainerWrapper class
|
|
23247
23267
|
* However the html might be malformed, this function is to split all the other elements out of ListContainerWrapper
|
|
@@ -23324,11 +23344,19 @@ function getContainerListType(listItemContainer) {
|
|
|
23324
23344
|
* @param listType Type of list(ul/ol)
|
|
23325
23345
|
*/
|
|
23326
23346
|
function insertListItem(listRootElement, itemToInsert, listType, doc) {
|
|
23347
|
+
var _a;
|
|
23327
23348
|
if (!listType) {
|
|
23328
23349
|
return;
|
|
23329
23350
|
}
|
|
23330
23351
|
// Get item level from 'data-aria-level' attribute
|
|
23331
|
-
var itemLevel = parseInt(itemToInsert.getAttribute('data-aria-level'));
|
|
23352
|
+
var itemLevel = parseInt((_a = itemToInsert.getAttribute('data-aria-level')) !== null && _a !== void 0 ? _a : '');
|
|
23353
|
+
// Try to reuse the List Marker
|
|
23354
|
+
var style = itemToInsert.getAttribute('data-leveltext');
|
|
23355
|
+
if (listType == 'UL' &&
|
|
23356
|
+
style &&
|
|
23357
|
+
VALID_LIST_STYLE_CHAR_CODES.indexOf(style.charCodeAt(0).toString()) > -1) {
|
|
23358
|
+
itemToInsert.style.listStyleType = "\"" + style + " \"";
|
|
23359
|
+
}
|
|
23332
23360
|
var curListLevel = listRootElement; // Level iterator to find the correct place for the current element.
|
|
23333
23361
|
// if the itemLevel is 1 it means the level iterator is at the correct place.
|
|
23334
23362
|
while (itemLevel > 1) {
|
|
@@ -27497,15 +27525,15 @@ var CompatibleExperimentalFeatures;
|
|
|
27497
27525
|
*/
|
|
27498
27526
|
CompatibleExperimentalFeatures["MergePastedLine"] = "MergePastedLine";
|
|
27499
27527
|
/**
|
|
27500
|
-
*
|
|
27528
|
+
* @deprecated This feature is always enabled
|
|
27501
27529
|
*/
|
|
27502
27530
|
CompatibleExperimentalFeatures["SingleDirectionResize"] = "SingleDirectionResize";
|
|
27503
27531
|
/**
|
|
27504
|
-
*
|
|
27532
|
+
* @deprecated This feature is always enabled
|
|
27505
27533
|
*/
|
|
27506
27534
|
CompatibleExperimentalFeatures["PasteWithLinkPreview"] = "PasteWithLinkPreview";
|
|
27507
27535
|
/**
|
|
27508
|
-
*
|
|
27536
|
+
* @deprecated This feature is always enabled
|
|
27509
27537
|
*/
|
|
27510
27538
|
CompatibleExperimentalFeatures["ImageRotate"] = "ImageRotate";
|
|
27511
27539
|
/**
|
|
@@ -27552,6 +27580,11 @@ var CompatibleExperimentalFeatures;
|
|
|
27552
27580
|
* when selection is collapsed. Instead, we will hold the pending format in memory and only apply it when type something
|
|
27553
27581
|
*/
|
|
27554
27582
|
CompatibleExperimentalFeatures["PendingStyleBasedFormat"] = "PendingStyleBasedFormat";
|
|
27583
|
+
/**
|
|
27584
|
+
* Normalize list to make sure it can be displayed correctly in other client
|
|
27585
|
+
* e.g. We will move list items with "display: block" into previous list item and change tag to be DIV
|
|
27586
|
+
*/
|
|
27587
|
+
CompatibleExperimentalFeatures["NormalizeList"] = "NormalizeList";
|
|
27555
27588
|
})(CompatibleExperimentalFeatures = exports.CompatibleExperimentalFeatures || (exports.CompatibleExperimentalFeatures = {}));
|
|
27556
27589
|
|
|
27557
27590
|
|