roosterjs 9.10.0 → 9.11.2
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/dist/rooster-amd-min.js +1 -1
- package/dist/rooster-amd-min.js.map +1 -1
- package/dist/rooster-amd.d.ts +49 -19
- package/dist/rooster-amd.js +224 -58
- 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-react.js +53 -53
- package/dist/rooster-react.js.map +1 -1
- package/dist/rooster.d.ts +49 -19
- package/dist/rooster.js +224 -58
- package/dist/rooster.js.map +1 -1
- package/package.json +6 -6
package/dist/rooster-amd.js
CHANGED
|
@@ -2426,8 +2426,16 @@ function setModelIndentation(model, indentation, length, context) {
|
|
|
2426
2426
|
}
|
|
2427
2427
|
else if (block.levels.length == 1 || !isMultilevelSelection(model, block, parent)) {
|
|
2428
2428
|
if (isIndent) {
|
|
2429
|
-
var
|
|
2430
|
-
var
|
|
2429
|
+
var threadIdx = thread.indexOf(block);
|
|
2430
|
+
var previousItem = thread[threadIdx - 1];
|
|
2431
|
+
var nextItem = thread[threadIdx + 1];
|
|
2432
|
+
var levelLength = block.levels.length;
|
|
2433
|
+
var lastLevel = block.levels[levelLength - 1];
|
|
2434
|
+
var newLevel = (0, roosterjs_content_model_dom_1.createListLevel)((lastLevel === null || lastLevel === void 0 ? void 0 : lastLevel.listType) || 'UL', lastLevel === null || lastLevel === void 0 ? void 0 : lastLevel.format, previousItem && previousItem.levels.length > levelLength
|
|
2435
|
+
? previousItem.levels[levelLength].dataset
|
|
2436
|
+
: nextItem && nextItem.levels.length > levelLength
|
|
2437
|
+
? nextItem.levels[levelLength].dataset
|
|
2438
|
+
: undefined);
|
|
2431
2439
|
(0, roosterjs_content_model_dom_1.updateListMetadata)(newLevel, function (metadata) {
|
|
2432
2440
|
metadata = metadata || {};
|
|
2433
2441
|
metadata.applyListStyleFromLevel = true;
|
|
@@ -2602,6 +2610,7 @@ var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-mo
|
|
|
2602
2610
|
* @internal
|
|
2603
2611
|
*/
|
|
2604
2612
|
function clearModelFormat(model, blocksToClear, segmentsToClear, tablesToClear) {
|
|
2613
|
+
var pendingStructureChange = false;
|
|
2605
2614
|
(0, roosterjs_content_model_dom_1.iterateSelections)(model, function (path, tableContext, block, segments) {
|
|
2606
2615
|
if (segments) {
|
|
2607
2616
|
if ((block === null || block === void 0 ? void 0 : block.blockType) == 'Paragraph') {
|
|
@@ -2633,14 +2642,14 @@ function clearModelFormat(model, blocksToClear, segmentsToClear, tablesToClear)
|
|
|
2633
2642
|
isOnlySelectionMarkerSelected(blocksToClear[0][1]) &&
|
|
2634
2643
|
blocksToClear.length == 1) {
|
|
2635
2644
|
segmentsToClear.splice.apply(segmentsToClear, (0, tslib_1.__spreadArray)([0, segmentsToClear.length], (0, tslib_1.__read)((0, adjustWordSelection_1.adjustWordSelection)(model, marker)), false));
|
|
2636
|
-
clearListFormat(blocksToClear[0][0]);
|
|
2645
|
+
pendingStructureChange = clearListFormat(blocksToClear[0][0]) || pendingStructureChange;
|
|
2637
2646
|
}
|
|
2638
2647
|
else if (blocksToClear.length > 1 || blocksToClear.some(function (x) { return isWholeBlockSelected(x[1]); })) {
|
|
2639
2648
|
// 2. If a full block or multiple blocks are selected, clear block format
|
|
2640
2649
|
for (var i = blocksToClear.length - 1; i >= 0; i--) {
|
|
2641
2650
|
var _a = (0, tslib_1.__read)(blocksToClear[i], 2), path = _a[0], block = _a[1];
|
|
2642
2651
|
clearBlockFormat(path, block);
|
|
2643
|
-
clearListFormat(path);
|
|
2652
|
+
pendingStructureChange = clearListFormat(path) || pendingStructureChange;
|
|
2644
2653
|
clearContainerFormat(path, block);
|
|
2645
2654
|
}
|
|
2646
2655
|
}
|
|
@@ -2648,6 +2657,7 @@ function clearModelFormat(model, blocksToClear, segmentsToClear, tablesToClear)
|
|
|
2648
2657
|
clearSegmentsFormat(segmentsToClear, model.format);
|
|
2649
2658
|
// 4. Clear format for table if any
|
|
2650
2659
|
createTablesFormat(tablesToClear);
|
|
2660
|
+
return pendingStructureChange;
|
|
2651
2661
|
}
|
|
2652
2662
|
exports.clearModelFormat = clearModelFormat;
|
|
2653
2663
|
function createTablesFormat(tablesToClear) {
|
|
@@ -2707,6 +2717,10 @@ function clearListFormat(path) {
|
|
|
2707
2717
|
var listItem = path[(0, roosterjs_content_model_dom_1.getClosestAncestorBlockGroupIndex)(path, ['ListItem'], ['TableCell'])];
|
|
2708
2718
|
if (listItem) {
|
|
2709
2719
|
(0, roosterjs_content_model_dom_1.mutateBlock)(listItem).levels = [];
|
|
2720
|
+
return true;
|
|
2721
|
+
}
|
|
2722
|
+
else {
|
|
2723
|
+
return false;
|
|
2710
2724
|
}
|
|
2711
2725
|
}
|
|
2712
2726
|
function clearBlockFormat(path, block) {
|
|
@@ -4929,6 +4943,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
4929
4943
|
exports.clearFormat = void 0;
|
|
4930
4944
|
var clearModelFormat_1 = __webpack_require__(/*! ../../modelApi/common/clearModelFormat */ "./packages/roosterjs-content-model-api/lib/modelApi/common/clearModelFormat.ts");
|
|
4931
4945
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
4946
|
+
var MAX_TRY = 3;
|
|
4932
4947
|
/**
|
|
4933
4948
|
* Clear format of selection
|
|
4934
4949
|
* @param editor The editor to clear format from
|
|
@@ -4936,12 +4951,22 @@ var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-mo
|
|
|
4936
4951
|
function clearFormat(editor) {
|
|
4937
4952
|
editor.focus();
|
|
4938
4953
|
editor.formatContentModel(function (model) {
|
|
4939
|
-
var
|
|
4940
|
-
var
|
|
4941
|
-
var
|
|
4942
|
-
|
|
4943
|
-
|
|
4944
|
-
|
|
4954
|
+
var changed = false;
|
|
4955
|
+
var needtoRun = true;
|
|
4956
|
+
var triedTimes = 0;
|
|
4957
|
+
while (needtoRun && triedTimes++ < MAX_TRY) {
|
|
4958
|
+
var blocksToClear = [];
|
|
4959
|
+
var segmentsToClear = [];
|
|
4960
|
+
var tablesToClear = [];
|
|
4961
|
+
needtoRun = (0, clearModelFormat_1.clearModelFormat)(model, blocksToClear, segmentsToClear, tablesToClear);
|
|
4962
|
+
(0, roosterjs_content_model_dom_1.normalizeContentModel)(model);
|
|
4963
|
+
changed =
|
|
4964
|
+
changed ||
|
|
4965
|
+
blocksToClear.length > 0 ||
|
|
4966
|
+
segmentsToClear.length > 0 ||
|
|
4967
|
+
tablesToClear.length > 0;
|
|
4968
|
+
}
|
|
4969
|
+
return changed;
|
|
4945
4970
|
}, {
|
|
4946
4971
|
apiName: 'clearFormat',
|
|
4947
4972
|
});
|
|
@@ -10371,8 +10396,8 @@ var DomIndexerImpl = /** @class */ (function () {
|
|
|
10371
10396
|
};
|
|
10372
10397
|
DomIndexerImpl.prototype.reconcileTextSelection = function (textNode, startOffset, endOffset) {
|
|
10373
10398
|
var _a;
|
|
10374
|
-
var _b;
|
|
10375
|
-
var
|
|
10399
|
+
var _b, _c;
|
|
10400
|
+
var _d = textNode.__roosterjsContentModel, paragraph = _d.paragraph, segments = _d.segments;
|
|
10376
10401
|
var first = segments[0];
|
|
10377
10402
|
var last = segments[segments.length - 1];
|
|
10378
10403
|
var selectable;
|
|
@@ -10394,6 +10419,14 @@ var DomIndexerImpl = /** @class */ (function () {
|
|
|
10394
10419
|
if (endOffset === undefined) {
|
|
10395
10420
|
var marker = (0, roosterjs_content_model_dom_1.createSelectionMarker)(first.format);
|
|
10396
10421
|
newSegments.push(marker);
|
|
10422
|
+
if (startOffset < ((_b = textNode.nodeValue) !== null && _b !== void 0 ? _b : '').length) {
|
|
10423
|
+
if (first.link) {
|
|
10424
|
+
(0, roosterjs_content_model_dom_1.addLink)(marker, first.link);
|
|
10425
|
+
}
|
|
10426
|
+
if (first.code) {
|
|
10427
|
+
(0, roosterjs_content_model_dom_1.addCode)(marker, first.code);
|
|
10428
|
+
}
|
|
10429
|
+
}
|
|
10397
10430
|
selectable = marker;
|
|
10398
10431
|
endOffset = startOffset;
|
|
10399
10432
|
}
|
|
@@ -10435,7 +10468,7 @@ var DomIndexerImpl = /** @class */ (function () {
|
|
|
10435
10468
|
var isBefore = wrapper.previousSibling == delimiter;
|
|
10436
10469
|
var isAfter = wrapper.nextSibling == delimiter;
|
|
10437
10470
|
if (index >= 0 && delimiter && (0, roosterjs_content_model_dom_1.isEntityDelimiter)(delimiter) && (isBefore || isAfter)) {
|
|
10438
|
-
var marker = (0, roosterjs_content_model_dom_1.createSelectionMarker)(((
|
|
10471
|
+
var marker = (0, roosterjs_content_model_dom_1.createSelectionMarker)(((_c = paragraph.segments[isAfter ? index + 1 : index - 1]) !== null && _c !== void 0 ? _c : first).format);
|
|
10439
10472
|
paragraph.segments.splice(isAfter ? index + 1 : index, 0, marker);
|
|
10440
10473
|
selectable = marker;
|
|
10441
10474
|
}
|
|
@@ -10848,10 +10881,12 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
10848
10881
|
exports.createCopyPastePlugin = exports.preprocessTable = exports.onNodeCreated = exports.adjustSelectionForCopyCut = void 0;
|
|
10849
10882
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
10850
10883
|
var addRangeToSelection_1 = __webpack_require__(/*! ../../coreApi/setDOMSelection/addRangeToSelection */ "./packages/roosterjs-content-model-core/lib/coreApi/setDOMSelection/addRangeToSelection.ts");
|
|
10851
|
-
var
|
|
10884
|
+
var adjustImageSelectionOnSafari_1 = __webpack_require__(/*! ./utils/adjustImageSelectionOnSafari */ "./packages/roosterjs-content-model-core/lib/corePlugin/copyPaste/utils/adjustImageSelectionOnSafari.ts");
|
|
10885
|
+
var deleteEmptyList_1 = __webpack_require__(/*! ./utils/deleteEmptyList */ "./packages/roosterjs-content-model-core/lib/corePlugin/copyPaste/utils/deleteEmptyList.ts");
|
|
10852
10886
|
var pasteCopyBlockEntityParser_1 = __webpack_require__(/*! ../../override/pasteCopyBlockEntityParser */ "./packages/roosterjs-content-model-core/lib/override/pasteCopyBlockEntityParser.ts");
|
|
10853
10887
|
var paste_1 = __webpack_require__(/*! ../../command/paste/paste */ "./packages/roosterjs-content-model-core/lib/command/paste/paste.ts");
|
|
10854
10888
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
10889
|
+
var TEMP_DIV_ID = 'roosterJS_copyCutTempDiv';
|
|
10855
10890
|
/**
|
|
10856
10891
|
* Copy and paste plugin for handling onCopy and onPaste event
|
|
10857
10892
|
*/
|
|
@@ -10938,6 +10973,7 @@ var CopyPastePlugin = /** @class */ (function () {
|
|
|
10938
10973
|
}
|
|
10939
10974
|
var doc = this.editor.getDocument();
|
|
10940
10975
|
var selection = this.editor.getDOMSelection();
|
|
10976
|
+
(0, adjustImageSelectionOnSafari_1.adjustImageSelectionOnSafari)(this.editor, selection);
|
|
10941
10977
|
if (selection && (selection.type != 'range' || !selection.range.collapsed)) {
|
|
10942
10978
|
var pasteModel = this.editor.getContentModelCopy('disconnected');
|
|
10943
10979
|
if (selection.type === 'table') {
|
|
@@ -11014,6 +11050,7 @@ var CopyPastePlugin = /** @class */ (function () {
|
|
|
11014
11050
|
div.style.color = 'black';
|
|
11015
11051
|
div.childNodes.forEach(function (node) { return div.removeChild(node); });
|
|
11016
11052
|
div.style.display = '';
|
|
11053
|
+
div.id = TEMP_DIV_ID;
|
|
11017
11054
|
div.focus();
|
|
11018
11055
|
return div;
|
|
11019
11056
|
};
|
|
@@ -11115,10 +11152,41 @@ exports.createCopyPastePlugin = createCopyPastePlugin;
|
|
|
11115
11152
|
|
|
11116
11153
|
/***/ }),
|
|
11117
11154
|
|
|
11118
|
-
/***/ "./packages/roosterjs-content-model-core/lib/corePlugin/copyPaste/
|
|
11119
|
-
|
|
11120
|
-
!*** ./packages/roosterjs-content-model-core/lib/corePlugin/copyPaste/
|
|
11121
|
-
|
|
11155
|
+
/***/ "./packages/roosterjs-content-model-core/lib/corePlugin/copyPaste/utils/adjustImageSelectionOnSafari.ts":
|
|
11156
|
+
/*!**************************************************************************************************************!*\
|
|
11157
|
+
!*** ./packages/roosterjs-content-model-core/lib/corePlugin/copyPaste/utils/adjustImageSelectionOnSafari.ts ***!
|
|
11158
|
+
\**************************************************************************************************************/
|
|
11159
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
11160
|
+
|
|
11161
|
+
"use strict";
|
|
11162
|
+
|
|
11163
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
11164
|
+
exports.adjustImageSelectionOnSafari = void 0;
|
|
11165
|
+
/**
|
|
11166
|
+
* @internal
|
|
11167
|
+
* Adjust Image selection, so the copy by keyboard does not remove image selection.
|
|
11168
|
+
*/
|
|
11169
|
+
function adjustImageSelectionOnSafari(editor, selection) {
|
|
11170
|
+
if (editor.getEnvironment().isSafari && (selection === null || selection === void 0 ? void 0 : selection.type) == 'image') {
|
|
11171
|
+
var range = new Range();
|
|
11172
|
+
range.setStartBefore(selection.image);
|
|
11173
|
+
range.setEndAfter(selection.image);
|
|
11174
|
+
editor.setDOMSelection({
|
|
11175
|
+
range: range,
|
|
11176
|
+
type: 'range',
|
|
11177
|
+
isReverted: false,
|
|
11178
|
+
});
|
|
11179
|
+
}
|
|
11180
|
+
}
|
|
11181
|
+
exports.adjustImageSelectionOnSafari = adjustImageSelectionOnSafari;
|
|
11182
|
+
|
|
11183
|
+
|
|
11184
|
+
/***/ }),
|
|
11185
|
+
|
|
11186
|
+
/***/ "./packages/roosterjs-content-model-core/lib/corePlugin/copyPaste/utils/deleteEmptyList.ts":
|
|
11187
|
+
/*!*************************************************************************************************!*\
|
|
11188
|
+
!*** ./packages/roosterjs-content-model-core/lib/corePlugin/copyPaste/utils/deleteEmptyList.ts ***!
|
|
11189
|
+
\*************************************************************************************************/
|
|
11122
11190
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
11123
11191
|
|
|
11124
11192
|
"use strict";
|
|
@@ -14151,6 +14219,12 @@ var DOMHelperImpl = /** @class */ (function () {
|
|
|
14151
14219
|
var paddingRight = (0, roosterjs_content_model_dom_1.parseValueWithUnit)(style === null || style === void 0 ? void 0 : style.paddingRight);
|
|
14152
14220
|
return this.contentDiv.clientWidth - (paddingLeft + paddingRight);
|
|
14153
14221
|
};
|
|
14222
|
+
/**
|
|
14223
|
+
* Get a deep cloned root element
|
|
14224
|
+
*/
|
|
14225
|
+
DOMHelperImpl.prototype.getClonedRoot = function () {
|
|
14226
|
+
return this.contentDiv.cloneNode(true /*deep*/);
|
|
14227
|
+
};
|
|
14154
14228
|
return DOMHelperImpl;
|
|
14155
14229
|
}());
|
|
14156
14230
|
/**
|
|
@@ -15691,18 +15765,27 @@ exports.blockProcessor = blockProcessor;
|
|
|
15691
15765
|
|
|
15692
15766
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
15693
15767
|
exports.brProcessor = void 0;
|
|
15768
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
15694
15769
|
var addSegment_1 = __webpack_require__(/*! ../../modelApi/common/addSegment */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addSegment.ts");
|
|
15695
15770
|
var createBr_1 = __webpack_require__(/*! ../../modelApi/creators/createBr */ "./packages/roosterjs-content-model-dom/lib/modelApi/creators/createBr.ts");
|
|
15771
|
+
var getRegularSelectionOffsets_1 = __webpack_require__(/*! ../utils/getRegularSelectionOffsets */ "./packages/roosterjs-content-model-dom/lib/domToModel/utils/getRegularSelectionOffsets.ts");
|
|
15696
15772
|
/**
|
|
15697
15773
|
* @internal
|
|
15698
15774
|
*/
|
|
15699
15775
|
var brProcessor = function (group, element, context) {
|
|
15700
15776
|
var _a;
|
|
15701
15777
|
var br = (0, createBr_1.createBr)(context.segmentFormat);
|
|
15778
|
+
var _b = (0, tslib_1.__read)((0, getRegularSelectionOffsets_1.getRegularSelectionOffsets)(context, element), 2), start = _b[0], end = _b[1];
|
|
15779
|
+
if (start >= 0) {
|
|
15780
|
+
context.isInSelection = true;
|
|
15781
|
+
}
|
|
15702
15782
|
if (context.isInSelection) {
|
|
15703
15783
|
br.isSelected = true;
|
|
15704
15784
|
}
|
|
15705
15785
|
var paragraph = (0, addSegment_1.addSegment)(group, br, context.blockFormat);
|
|
15786
|
+
if (end >= 0) {
|
|
15787
|
+
context.isInSelection = false;
|
|
15788
|
+
}
|
|
15706
15789
|
(_a = context.domIndexer) === null || _a === void 0 ? void 0 : _a.onSegment(element, paragraph, [br]);
|
|
15707
15790
|
};
|
|
15708
15791
|
exports.brProcessor = brProcessor;
|
|
@@ -20904,8 +20987,6 @@ function isSegmentEmpty(segment) {
|
|
|
20904
20987
|
switch (segment.segmentType) {
|
|
20905
20988
|
case 'Text':
|
|
20906
20989
|
return !segment.text;
|
|
20907
|
-
case 'Image':
|
|
20908
|
-
return !segment.src;
|
|
20909
20990
|
default:
|
|
20910
20991
|
return false;
|
|
20911
20992
|
}
|
|
@@ -21119,6 +21200,7 @@ function normalizeParagraph(paragraph) {
|
|
|
21119
21200
|
(0, mutate_1.mutateBlock)(paragraph).segments.pop();
|
|
21120
21201
|
}
|
|
21121
21202
|
}
|
|
21203
|
+
normalizeParagraphStyle(paragraph);
|
|
21122
21204
|
}
|
|
21123
21205
|
if (!(0, isWhiteSpacePreserved_1.isWhiteSpacePreserved)(paragraph.format.whiteSpace)) {
|
|
21124
21206
|
(0, normalizeSegment_1.normalizeAllSegments)(paragraph);
|
|
@@ -21128,6 +21210,13 @@ function normalizeParagraph(paragraph) {
|
|
|
21128
21210
|
moveUpSegmentFormat(paragraph);
|
|
21129
21211
|
}
|
|
21130
21212
|
exports.normalizeParagraph = normalizeParagraph;
|
|
21213
|
+
function normalizeParagraphStyle(paragraph) {
|
|
21214
|
+
// New paragraph should not have white-space style
|
|
21215
|
+
if (paragraph.format.whiteSpace &&
|
|
21216
|
+
paragraph.segments.every(function (seg) { return seg.segmentType == 'Br' || seg.segmentType == 'SelectionMarker'; })) {
|
|
21217
|
+
delete (0, mutate_1.mutateBlock)(paragraph).format.whiteSpace;
|
|
21218
|
+
}
|
|
21219
|
+
}
|
|
21131
21220
|
function removeEmptySegments(block) {
|
|
21132
21221
|
for (var j = block.segments.length - 1; j >= 0; j--) {
|
|
21133
21222
|
if ((0, isEmpty_1.isSegmentEmpty)(block.segments[j])) {
|
|
@@ -22947,15 +23036,16 @@ var KeysOfSegmentFormat = (0, getObjectKeys_1.getObjectKeys)(EmptySegmentFormat_
|
|
|
22947
23036
|
function mergeModel(target, source, context, options) {
|
|
22948
23037
|
var _a;
|
|
22949
23038
|
var insertPosition = (_a = options === null || options === void 0 ? void 0 : options.insertPosition) !== null && _a !== void 0 ? _a : (0, deleteSelection_1.deleteSelection)(target, [], context).insertPoint;
|
|
22950
|
-
|
|
22951
|
-
|
|
23039
|
+
var _b = options || {}, addParagraphAfterMergedContent = _b.addParagraphAfterMergedContent, mergeFormat = _b.mergeFormat, mergeTable = _b.mergeTable;
|
|
23040
|
+
if (addParagraphAfterMergedContent && !mergeTable) {
|
|
23041
|
+
var _c = insertPosition || {}, paragraph = _c.paragraph, marker = _c.marker;
|
|
22952
23042
|
var newPara = (0, createParagraph_1.createParagraph)(false /* isImplicit */, paragraph === null || paragraph === void 0 ? void 0 : paragraph.format, marker === null || marker === void 0 ? void 0 : marker.format);
|
|
22953
23043
|
(0, addBlock_1.addBlock)(source, newPara);
|
|
22954
23044
|
}
|
|
22955
23045
|
if (insertPosition) {
|
|
22956
|
-
if (
|
|
23046
|
+
if (mergeFormat && mergeFormat != 'none') {
|
|
22957
23047
|
var newFormat = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, (target.format || {})), insertPosition.marker.format);
|
|
22958
|
-
applyDefaultFormat(source, newFormat,
|
|
23048
|
+
applyDefaultFormat(source, newFormat, mergeFormat);
|
|
22959
23049
|
}
|
|
22960
23050
|
for (var i = 0; i < source.blocks.length; i++) {
|
|
22961
23051
|
var block = source.blocks[i];
|
|
@@ -22971,8 +23061,8 @@ function mergeModel(target, source, context, options) {
|
|
|
22971
23061
|
context === null || context === void 0 ? void 0 : context.newEntities.push(block);
|
|
22972
23062
|
break;
|
|
22973
23063
|
case 'Table':
|
|
22974
|
-
if (source.blocks.length == 1 &&
|
|
22975
|
-
|
|
23064
|
+
if (source.blocks.length == 1 && mergeTable) {
|
|
23065
|
+
mergeTables(insertPosition, block, source);
|
|
22976
23066
|
}
|
|
22977
23067
|
else {
|
|
22978
23068
|
insertBlock(insertPosition, block);
|
|
@@ -23042,7 +23132,7 @@ function mergeParagraph(markerPosition, newPara, mergeToCurrentParagraph, contex
|
|
|
23042
23132
|
newParagraph.format = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, newParagraph.format), newPara.format);
|
|
23043
23133
|
}
|
|
23044
23134
|
}
|
|
23045
|
-
function
|
|
23135
|
+
function mergeTables(markerPosition, newTable, source) {
|
|
23046
23136
|
var _a, _b;
|
|
23047
23137
|
var tableContext = markerPosition.tableContext, marker = markerPosition.marker;
|
|
23048
23138
|
if (tableContext && source.blocks.length == 1 && source.blocks[0] == newTable) {
|
|
@@ -26540,11 +26630,13 @@ var AutoFormatPlugin = /** @class */ (function () {
|
|
|
26540
26630
|
* @param options An optional parameter that takes in an object of type AutoFormatOptions, which includes the following properties:
|
|
26541
26631
|
* - autoBullet: A boolean that enables or disables automatic bullet list formatting. Defaults to false.
|
|
26542
26632
|
* - autoNumbering: A boolean that enables or disables automatic numbering formatting. Defaults to false.
|
|
26543
|
-
* - autoLink: A boolean that enables or disables automatic hyperlink creation when pasting or typing content. Defaults to false.
|
|
26544
|
-
* - autoUnlink: A boolean that enables or disables automatic hyperlink removal when pressing backspace. Defaults to false.
|
|
26545
26633
|
* - autoHyphen: A boolean that enables or disables automatic hyphen transformation. Defaults to false.
|
|
26546
26634
|
* - autoFraction: A boolean that enables or disables automatic fraction transformation. Defaults to false.
|
|
26547
26635
|
* - autoOrdinals: A boolean that enables or disables automatic ordinal number transformation. Defaults to false.
|
|
26636
|
+
* - autoLink: A boolean that enables or disables automatic hyperlink url address creation when pasting or typing content. Defaults to false.
|
|
26637
|
+
* - autoUnlink: A boolean that enables or disables automatic hyperlink removal when pressing backspace. Defaults to false.
|
|
26638
|
+
* - autoTel: A boolean that enables or disables automatic hyperlink telephone numbers transformation. Defaults to false.
|
|
26639
|
+
* - autoMailto: A boolean that enables or disables automatic hyperlink email address transformation. Defaults to false.
|
|
26548
26640
|
*/
|
|
26549
26641
|
function AutoFormatPlugin(options) {
|
|
26550
26642
|
if (options === void 0) { options = DefaultOptions; }
|
|
@@ -26610,7 +26702,7 @@ var AutoFormatPlugin = /** @class */ (function () {
|
|
|
26610
26702
|
apiName: '',
|
|
26611
26703
|
};
|
|
26612
26704
|
(0, roosterjs_content_model_api_1.formatTextSegmentBeforeSelectionMarker)(editor, function (model, previousSegment, paragraph, _markerFormat, context) {
|
|
26613
|
-
var _a = _this.options, autoBullet = _a.autoBullet, autoNumbering = _a.autoNumbering, autoLink = _a.autoLink, autoHyphen = _a.autoHyphen, autoFraction = _a.autoFraction, autoOrdinals = _a.autoOrdinals;
|
|
26705
|
+
var _a = _this.options, autoBullet = _a.autoBullet, autoNumbering = _a.autoNumbering, autoLink = _a.autoLink, autoHyphen = _a.autoHyphen, autoFraction = _a.autoFraction, autoOrdinals = _a.autoOrdinals, autoMailto = _a.autoMailto, autoTel = _a.autoTel;
|
|
26614
26706
|
var shouldHyphen = false;
|
|
26615
26707
|
var shouldLink = false;
|
|
26616
26708
|
var shouldList = false;
|
|
@@ -26619,8 +26711,12 @@ var AutoFormatPlugin = /** @class */ (function () {
|
|
|
26619
26711
|
if (autoBullet || autoNumbering) {
|
|
26620
26712
|
shouldList = (0, keyboardListTrigger_1.keyboardListTrigger)(model, paragraph, context, autoBullet, autoNumbering);
|
|
26621
26713
|
}
|
|
26622
|
-
if (autoLink) {
|
|
26623
|
-
shouldLink = (0, createLinkAfterSpace_1.createLinkAfterSpace)(previousSegment, paragraph, context
|
|
26714
|
+
if (autoLink || autoTel || autoMailto) {
|
|
26715
|
+
shouldLink = (0, createLinkAfterSpace_1.createLinkAfterSpace)(previousSegment, paragraph, context, {
|
|
26716
|
+
autoLink: autoLink,
|
|
26717
|
+
autoTel: autoTel,
|
|
26718
|
+
autoMailto: autoMailto,
|
|
26719
|
+
});
|
|
26624
26720
|
}
|
|
26625
26721
|
if (autoHyphen) {
|
|
26626
26722
|
shouldHyphen = (0, transformHyphen_1.transformHyphen)(previousSegment, paragraph, context);
|
|
@@ -26656,9 +26752,13 @@ var AutoFormatPlugin = /** @class */ (function () {
|
|
|
26656
26752
|
}
|
|
26657
26753
|
};
|
|
26658
26754
|
AutoFormatPlugin.prototype.handleContentChangedEvent = function (editor, event) {
|
|
26659
|
-
var
|
|
26660
|
-
if (event.source == 'Paste' && autoLink) {
|
|
26661
|
-
(0, createLink_1.createLink)(editor
|
|
26755
|
+
var _a = this.options, autoLink = _a.autoLink, autoTel = _a.autoTel, autoMailto = _a.autoMailto;
|
|
26756
|
+
if (event.source == 'Paste' && (autoLink || autoTel || autoMailto)) {
|
|
26757
|
+
(0, createLink_1.createLink)(editor, {
|
|
26758
|
+
autoLink: autoLink,
|
|
26759
|
+
autoTel: autoTel,
|
|
26760
|
+
autoMailto: autoMailto,
|
|
26761
|
+
});
|
|
26662
26762
|
}
|
|
26663
26763
|
};
|
|
26664
26764
|
return AutoFormatPlugin;
|
|
@@ -26735,10 +26835,11 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
26735
26835
|
exports.createLink = void 0;
|
|
26736
26836
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
26737
26837
|
var roosterjs_content_model_api_1 = __webpack_require__(/*! roosterjs-content-model-api */ "./packages/roosterjs-content-model-api/lib/index.ts");
|
|
26838
|
+
var getLinkUrl_1 = __webpack_require__(/*! ./getLinkUrl */ "./packages/roosterjs-content-model-plugins/lib/autoFormat/link/getLinkUrl.ts");
|
|
26738
26839
|
/**
|
|
26739
26840
|
* @internal
|
|
26740
26841
|
*/
|
|
26741
|
-
function createLink(editor) {
|
|
26842
|
+
function createLink(editor, autoLinkOptions) {
|
|
26742
26843
|
var anchorNode = null;
|
|
26743
26844
|
var links = [];
|
|
26744
26845
|
(0, roosterjs_content_model_api_1.formatTextSegmentBeforeSelectionMarker)(editor, function (_model, linkSegment, _paragraph) {
|
|
@@ -26746,11 +26847,11 @@ function createLink(editor) {
|
|
|
26746
26847
|
links.push(linkSegment.link);
|
|
26747
26848
|
return true;
|
|
26748
26849
|
}
|
|
26749
|
-
var
|
|
26750
|
-
if (!linkSegment.link && (
|
|
26850
|
+
var linkUrl = undefined;
|
|
26851
|
+
if (!linkSegment.link && (linkUrl = (0, getLinkUrl_1.getLinkUrl)(linkSegment.text, autoLinkOptions))) {
|
|
26751
26852
|
(0, roosterjs_content_model_dom_1.addLink)(linkSegment, {
|
|
26752
26853
|
format: {
|
|
26753
|
-
href:
|
|
26854
|
+
href: linkUrl,
|
|
26754
26855
|
underline: true,
|
|
26755
26856
|
},
|
|
26756
26857
|
dataset: {},
|
|
@@ -26786,19 +26887,20 @@ exports.createLink = createLink;
|
|
|
26786
26887
|
|
|
26787
26888
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
26788
26889
|
exports.createLinkAfterSpace = void 0;
|
|
26890
|
+
var getLinkUrl_1 = __webpack_require__(/*! ./getLinkUrl */ "./packages/roosterjs-content-model-plugins/lib/autoFormat/link/getLinkUrl.ts");
|
|
26789
26891
|
var roosterjs_content_model_api_1 = __webpack_require__(/*! roosterjs-content-model-api */ "./packages/roosterjs-content-model-api/lib/index.ts");
|
|
26790
26892
|
/**
|
|
26791
26893
|
* @internal
|
|
26792
26894
|
*/
|
|
26793
|
-
function createLinkAfterSpace(previousSegment, paragraph, context) {
|
|
26895
|
+
function createLinkAfterSpace(previousSegment, paragraph, context, autoLinkOptions) {
|
|
26794
26896
|
var link = previousSegment.text.split(' ').pop();
|
|
26795
26897
|
var url = link === null || link === void 0 ? void 0 : link.trim();
|
|
26796
|
-
var
|
|
26797
|
-
if (url && link && (
|
|
26898
|
+
var linkUrl = undefined;
|
|
26899
|
+
if (url && link && (linkUrl = (0, getLinkUrl_1.getLinkUrl)(url, autoLinkOptions))) {
|
|
26798
26900
|
var linkSegment = (0, roosterjs_content_model_api_1.splitTextSegment)(previousSegment, paragraph, previousSegment.text.length - link.trimLeft().length, previousSegment.text.trimRight().length);
|
|
26799
26901
|
linkSegment.link = {
|
|
26800
26902
|
format: {
|
|
26801
|
-
href:
|
|
26903
|
+
href: linkUrl,
|
|
26802
26904
|
underline: true,
|
|
26803
26905
|
},
|
|
26804
26906
|
dataset: {},
|
|
@@ -26811,6 +26913,42 @@ function createLinkAfterSpace(previousSegment, paragraph, context) {
|
|
|
26811
26913
|
exports.createLinkAfterSpace = createLinkAfterSpace;
|
|
26812
26914
|
|
|
26813
26915
|
|
|
26916
|
+
/***/ }),
|
|
26917
|
+
|
|
26918
|
+
/***/ "./packages/roosterjs-content-model-plugins/lib/autoFormat/link/getLinkUrl.ts":
|
|
26919
|
+
/*!************************************************************************************!*\
|
|
26920
|
+
!*** ./packages/roosterjs-content-model-plugins/lib/autoFormat/link/getLinkUrl.ts ***!
|
|
26921
|
+
\************************************************************************************/
|
|
26922
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
26923
|
+
|
|
26924
|
+
"use strict";
|
|
26925
|
+
|
|
26926
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
26927
|
+
exports.getLinkUrl = void 0;
|
|
26928
|
+
var roosterjs_content_model_api_1 = __webpack_require__(/*! roosterjs-content-model-api */ "./packages/roosterjs-content-model-api/lib/index.ts");
|
|
26929
|
+
var COMMON_REGEX = "[s]*[a-zA-Z0-9+][s]*";
|
|
26930
|
+
var TELEPHONE_REGEX = "(T|t)el:" + COMMON_REGEX;
|
|
26931
|
+
var MAILTO_REGEX = "(M|m)ailto:" + COMMON_REGEX;
|
|
26932
|
+
/**
|
|
26933
|
+
* @internal
|
|
26934
|
+
*/
|
|
26935
|
+
function getLinkUrl(text, autoLinkOptions) {
|
|
26936
|
+
var _a;
|
|
26937
|
+
var autoLink = autoLinkOptions.autoLink, autoMailto = autoLinkOptions.autoMailto, autoTel = autoLinkOptions.autoTel;
|
|
26938
|
+
var linkMatch = autoLink ? (_a = (0, roosterjs_content_model_api_1.matchLink)(text)) === null || _a === void 0 ? void 0 : _a.normalizedUrl : undefined;
|
|
26939
|
+
var telMatch = autoTel ? matchTel(text) : undefined;
|
|
26940
|
+
var mailtoMatch = autoMailto ? matchMailTo(text) : undefined;
|
|
26941
|
+
return linkMatch || telMatch || mailtoMatch;
|
|
26942
|
+
}
|
|
26943
|
+
exports.getLinkUrl = getLinkUrl;
|
|
26944
|
+
function matchTel(text) {
|
|
26945
|
+
return text.match(TELEPHONE_REGEX) ? text.toLocaleLowerCase() : undefined;
|
|
26946
|
+
}
|
|
26947
|
+
function matchMailTo(text) {
|
|
26948
|
+
return text.match(MAILTO_REGEX) ? text.toLocaleLowerCase() : undefined;
|
|
26949
|
+
}
|
|
26950
|
+
|
|
26951
|
+
|
|
26814
26952
|
/***/ }),
|
|
26815
26953
|
|
|
26816
26954
|
/***/ "./packages/roosterjs-content-model-plugins/lib/autoFormat/link/unlink.ts":
|
|
@@ -27562,7 +27700,7 @@ var EditPlugin = /** @class */ (function () {
|
|
|
27562
27700
|
EditPlugin.prototype.initialize = function (editor) {
|
|
27563
27701
|
var _this = this;
|
|
27564
27702
|
this.editor = editor;
|
|
27565
|
-
this.handleNormalEnter = this.editor.isExperimentalFeatureEnabled('
|
|
27703
|
+
this.handleNormalEnter = this.editor.isExperimentalFeatureEnabled('HandleEnterKey');
|
|
27566
27704
|
if (editor.getEnvironment().isAndroid) {
|
|
27567
27705
|
this.disposer = this.editor.attachDomEvent({
|
|
27568
27706
|
beforeinput: {
|
|
@@ -28457,9 +28595,9 @@ function canDeleteAfter(rawEvent, range) {
|
|
|
28457
28595
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
28458
28596
|
exports.keyboardEnter = void 0;
|
|
28459
28597
|
var deleteEmptyQuote_1 = __webpack_require__(/*! ./deleteSteps/deleteEmptyQuote */ "./packages/roosterjs-content-model-plugins/lib/edit/deleteSteps/deleteEmptyQuote.ts");
|
|
28460
|
-
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
28461
28598
|
var handleEnterOnList_1 = __webpack_require__(/*! ./inputSteps/handleEnterOnList */ "./packages/roosterjs-content-model-plugins/lib/edit/inputSteps/handleEnterOnList.ts");
|
|
28462
28599
|
var handleEnterOnParagraph_1 = __webpack_require__(/*! ./inputSteps/handleEnterOnParagraph */ "./packages/roosterjs-content-model-plugins/lib/edit/inputSteps/handleEnterOnParagraph.ts");
|
|
28600
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
28463
28601
|
/**
|
|
28464
28602
|
* @internal
|
|
28465
28603
|
*/
|
|
@@ -28493,6 +28631,7 @@ function keyboardEnter(editor, rawEvent, handleNormalEnter) {
|
|
|
28493
28631
|
}, {
|
|
28494
28632
|
rawEvent: rawEvent,
|
|
28495
28633
|
scrollCaretIntoView: true,
|
|
28634
|
+
changeSource: roosterjs_content_model_dom_1.ChangeSource.Keyboard,
|
|
28496
28635
|
});
|
|
28497
28636
|
}
|
|
28498
28637
|
exports.keyboardEnter = keyboardEnter;
|
|
@@ -28536,6 +28675,7 @@ function keyboardInput(editor, rawEvent) {
|
|
|
28536
28675
|
}, {
|
|
28537
28676
|
scrollCaretIntoView: true,
|
|
28538
28677
|
rawEvent: rawEvent,
|
|
28678
|
+
changeSource: roosterjs_content_model_dom_1.ChangeSource.Keyboard,
|
|
28539
28679
|
});
|
|
28540
28680
|
return true;
|
|
28541
28681
|
}
|
|
@@ -28566,12 +28706,12 @@ function shouldInputWithContentModel(selection, rawEvent) {
|
|
|
28566
28706
|
|
|
28567
28707
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
28568
28708
|
exports.keyboardTab = void 0;
|
|
28569
|
-
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
28570
28709
|
var handleTabOnList_1 = __webpack_require__(/*! ./tabUtils/handleTabOnList */ "./packages/roosterjs-content-model-plugins/lib/edit/tabUtils/handleTabOnList.ts");
|
|
28571
28710
|
var handleTabOnParagraph_1 = __webpack_require__(/*! ./tabUtils/handleTabOnParagraph */ "./packages/roosterjs-content-model-plugins/lib/edit/tabUtils/handleTabOnParagraph.ts");
|
|
28572
28711
|
var handleTabOnTable_1 = __webpack_require__(/*! ./tabUtils/handleTabOnTable */ "./packages/roosterjs-content-model-plugins/lib/edit/tabUtils/handleTabOnTable.ts");
|
|
28573
28712
|
var handleTabOnTableCell_1 = __webpack_require__(/*! ./tabUtils/handleTabOnTableCell */ "./packages/roosterjs-content-model-plugins/lib/edit/tabUtils/handleTabOnTableCell.ts");
|
|
28574
28713
|
var roosterjs_content_model_api_1 = __webpack_require__(/*! roosterjs-content-model-api */ "./packages/roosterjs-content-model-api/lib/index.ts");
|
|
28714
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
28575
28715
|
/**
|
|
28576
28716
|
* @internal
|
|
28577
28717
|
*/
|
|
@@ -28590,6 +28730,7 @@ function keyboardTab(editor, rawEvent) {
|
|
|
28590
28730
|
return (0, handleTabOnTable_1.handleTabOnTable)(model, rawEvent);
|
|
28591
28731
|
}, {
|
|
28592
28732
|
apiName: 'handleTabKey',
|
|
28733
|
+
changeSource: roosterjs_content_model_dom_1.ChangeSource.Keyboard,
|
|
28593
28734
|
});
|
|
28594
28735
|
return true;
|
|
28595
28736
|
}
|
|
@@ -29343,6 +29484,8 @@ var DefaultOptions = {
|
|
|
29343
29484
|
};
|
|
29344
29485
|
var MouseRightButton = 2;
|
|
29345
29486
|
var DRAG_ID = '_dragging';
|
|
29487
|
+
var IMAGE_EDIT_CLASS = 'imageEdit';
|
|
29488
|
+
var IMAGE_EDIT_CLASS_CARET = 'imageEditCaretColor';
|
|
29346
29489
|
/**
|
|
29347
29490
|
* ImageEdit plugin handles the following image editing features:
|
|
29348
29491
|
* - Resize image
|
|
@@ -29494,14 +29637,22 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
29494
29637
|
};
|
|
29495
29638
|
ImageEditPlugin.prototype.keyDownHandler = function (editor, event) {
|
|
29496
29639
|
if (this.isEditing) {
|
|
29497
|
-
if (event.rawEvent.key === 'Escape'
|
|
29498
|
-
|
|
29640
|
+
if (event.rawEvent.key === 'Escape' ||
|
|
29641
|
+
event.rawEvent.key === 'Delete' ||
|
|
29642
|
+
event.rawEvent.key === 'Backspace') {
|
|
29643
|
+
if (event.rawEvent.key === 'Escape') {
|
|
29644
|
+
this.removeImageWrapper();
|
|
29645
|
+
}
|
|
29646
|
+
this.cleanInfo();
|
|
29499
29647
|
}
|
|
29500
29648
|
else {
|
|
29501
29649
|
this.applyFormatWithContentModel(editor, this.isCropMode, true /** should selectImage */, false /* isApiOperation */);
|
|
29502
29650
|
}
|
|
29503
29651
|
}
|
|
29504
29652
|
};
|
|
29653
|
+
/**
|
|
29654
|
+
* EXPOSED FOR TESTING PURPOSE ONLY
|
|
29655
|
+
*/
|
|
29505
29656
|
ImageEditPlugin.prototype.applyFormatWithContentModel = function (editor, isCropMode, shouldSelectImage, isApiOperation) {
|
|
29506
29657
|
var _this = this;
|
|
29507
29658
|
var editingImageModel;
|
|
@@ -29528,6 +29679,15 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
29528
29679
|
image.isSelected = shouldSelectImage;
|
|
29529
29680
|
image.isSelectedAsImageSelection = shouldSelectImage;
|
|
29530
29681
|
delete image.dataset.isEditing;
|
|
29682
|
+
if ((selection === null || selection === void 0 ? void 0 : selection.type) == 'range' && !selection.range.collapsed) {
|
|
29683
|
+
var selectedParagraphs = (0, roosterjs_content_model_dom_1.getSelectedParagraphs)(model, true);
|
|
29684
|
+
var isImageInRange = selectedParagraphs.some(function (paragraph) {
|
|
29685
|
+
return paragraph.segments.includes(image);
|
|
29686
|
+
});
|
|
29687
|
+
if (isImageInRange) {
|
|
29688
|
+
image.isSelected = true;
|
|
29689
|
+
}
|
|
29690
|
+
}
|
|
29531
29691
|
});
|
|
29532
29692
|
if (shouldSelectImage) {
|
|
29533
29693
|
(0, normalizeImageSelection_1.normalizeImageSelection)(previousSelectedImage);
|
|
@@ -29588,9 +29748,10 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
29588
29748
|
this.rotators = rotators;
|
|
29589
29749
|
this.croppers = croppers;
|
|
29590
29750
|
this.zoomScale = editor.getDOMHelper().calculateZoomScale();
|
|
29591
|
-
editor.setEditorStyle(
|
|
29751
|
+
editor.setEditorStyle(IMAGE_EDIT_CLASS, "outline-style:none!important;", [
|
|
29592
29752
|
"span:has(>img" + (0, roosterjs_content_model_dom_1.getSafeIdSelector)(this.selectedImage.id) + ")",
|
|
29593
29753
|
]);
|
|
29754
|
+
editor.setEditorStyle(IMAGE_EDIT_CLASS_CARET, "caret-color: transparent;");
|
|
29594
29755
|
};
|
|
29595
29756
|
ImageEditPlugin.prototype.startRotateAndResize = function (editor, image) {
|
|
29596
29757
|
var _this = this;
|
|
@@ -29598,6 +29759,7 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
29598
29759
|
if (this.imageEditInfo) {
|
|
29599
29760
|
this.startEditing(editor, image, ['resize', 'rotate']);
|
|
29600
29761
|
if (this.selectedImage && this.imageEditInfo && this.wrapper && this.clonedImage) {
|
|
29762
|
+
var isMobileOrTable = !!editor.getEnvironment().isMobileOrTablet;
|
|
29601
29763
|
this.dndHelpers = (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], (0, tslib_1.__read)((0, getDropAndDragHelpers_1.getDropAndDragHelpers)(this.wrapper, this.imageEditInfo, this.options, ImageEditElementClass_1.ImageEditElementClass.ResizeHandle, resizerContext_1.Resizer, function () {
|
|
29602
29764
|
if (_this.imageEditInfo &&
|
|
29603
29765
|
_this.selectedImage &&
|
|
@@ -29606,7 +29768,7 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
29606
29768
|
(0, updateWrapper_1.updateWrapper)(_this.imageEditInfo, _this.options, _this.selectedImage, _this.clonedImage, _this.wrapper, _this.resizers);
|
|
29607
29769
|
_this.wasImageResized = true;
|
|
29608
29770
|
}
|
|
29609
|
-
}, this.zoomScale)), false), (0, tslib_1.__read)((0, getDropAndDragHelpers_1.getDropAndDragHelpers)(this.wrapper, this.imageEditInfo, this.options, ImageEditElementClass_1.ImageEditElementClass.RotateHandle, rotatorContext_1.Rotator, function () {
|
|
29771
|
+
}, this.zoomScale, isMobileOrTable)), false), (0, tslib_1.__read)((0, getDropAndDragHelpers_1.getDropAndDragHelpers)(this.wrapper, this.imageEditInfo, this.options, ImageEditElementClass_1.ImageEditElementClass.RotateHandle, rotatorContext_1.Rotator, function () {
|
|
29610
29772
|
var _a;
|
|
29611
29773
|
if (_this.imageEditInfo &&
|
|
29612
29774
|
_this.selectedImage &&
|
|
@@ -29615,7 +29777,7 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
29615
29777
|
(0, updateWrapper_1.updateWrapper)(_this.imageEditInfo, _this.options, _this.selectedImage, _this.clonedImage, _this.wrapper);
|
|
29616
29778
|
_this.updateRotateHandleState(editor, _this.selectedImage, _this.wrapper, _this.rotators, (_a = _this.imageEditInfo) === null || _a === void 0 ? void 0 : _a.angleRad);
|
|
29617
29779
|
}
|
|
29618
|
-
}, this.zoomScale)), false);
|
|
29780
|
+
}, this.zoomScale, isMobileOrTable)), false);
|
|
29619
29781
|
(0, updateWrapper_1.updateWrapper)(this.imageEditInfo, this.options, this.selectedImage, this.clonedImage, this.wrapper, this.resizers);
|
|
29620
29782
|
this.updateRotateHandleState(editor, this.selectedImage, this.wrapper, this.rotators, (_a = this.imageEditInfo) === null || _a === void 0 ? void 0 : _a.angleRad);
|
|
29621
29783
|
}
|
|
@@ -29655,7 +29817,7 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
29655
29817
|
(0, updateWrapper_1.updateWrapper)(_this.imageEditInfo, _this.options, _this.selectedImage, _this.clonedImage, _this.wrapper, undefined, _this.croppers);
|
|
29656
29818
|
_this.isCropMode = true;
|
|
29657
29819
|
}
|
|
29658
|
-
}, this.zoomScale)), false);
|
|
29820
|
+
}, this.zoomScale, !!editor.getEnvironment().isMobileOrTablet)), false);
|
|
29659
29821
|
(0, updateWrapper_1.updateWrapper)(this.imageEditInfo, this.options, this.selectedImage, this.clonedImage, this.wrapper, undefined, this.croppers);
|
|
29660
29822
|
}
|
|
29661
29823
|
}
|
|
@@ -29681,9 +29843,13 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
29681
29843
|
(0, updateWrapper_1.updateWrapper)(this.imageEditInfo, this.options, this.selectedImage, this.clonedImage, this.wrapper);
|
|
29682
29844
|
this.applyFormatWithContentModel(editor, false /* isCrop */, true /* shouldSelect*/, true /* isApiOperation */);
|
|
29683
29845
|
};
|
|
29846
|
+
/**
|
|
29847
|
+
* Exported for testing purpose only
|
|
29848
|
+
*/
|
|
29684
29849
|
ImageEditPlugin.prototype.cleanInfo = function () {
|
|
29685
|
-
var _a;
|
|
29686
|
-
(_a = this.editor) === null || _a === void 0 ? void 0 : _a.setEditorStyle(
|
|
29850
|
+
var _a, _b;
|
|
29851
|
+
(_a = this.editor) === null || _a === void 0 ? void 0 : _a.setEditorStyle(IMAGE_EDIT_CLASS, null);
|
|
29852
|
+
(_b = this.editor) === null || _b === void 0 ? void 0 : _b.setEditorStyle(IMAGE_EDIT_CLASS_CARET, null);
|
|
29687
29853
|
this.selectedImage = null;
|
|
29688
29854
|
this.shadowSpan = null;
|
|
29689
29855
|
this.wrapper = null;
|
|
@@ -30659,8 +30825,8 @@ function findEditingImage(group, imageId) {
|
|
|
30659
30825
|
var segment = block.segments[j];
|
|
30660
30826
|
switch (segment.segmentType) {
|
|
30661
30827
|
case 'Image':
|
|
30662
|
-
if ((segment.
|
|
30663
|
-
segment.
|
|
30828
|
+
if ((imageId && segment.format.id == imageId) ||
|
|
30829
|
+
segment.dataset.isEditing) {
|
|
30664
30830
|
return {
|
|
30665
30831
|
paragraph: block,
|
|
30666
30832
|
image: segment,
|
|
@@ -30854,7 +31020,7 @@ var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-mo
|
|
|
30854
31020
|
/**
|
|
30855
31021
|
* @internal
|
|
30856
31022
|
*/
|
|
30857
|
-
function getDropAndDragHelpers(wrapper, editInfo, options, elementClass, helper, updateWrapper, zoomScale) {
|
|
31023
|
+
function getDropAndDragHelpers(wrapper, editInfo, options, elementClass, helper, updateWrapper, zoomScale, useTouch) {
|
|
30858
31024
|
return getEditElements(wrapper, elementClass).map(function (element) {
|
|
30859
31025
|
return new DragAndDropHelper_1.DragAndDropHelper(element, {
|
|
30860
31026
|
editInfo: editInfo,
|
|
@@ -30862,7 +31028,7 @@ function getDropAndDragHelpers(wrapper, editInfo, options, elementClass, helper,
|
|
|
30862
31028
|
elementClass: elementClass,
|
|
30863
31029
|
x: element.dataset.x,
|
|
30864
31030
|
y: element.dataset.y,
|
|
30865
|
-
}, updateWrapper, helper, zoomScale);
|
|
31031
|
+
}, updateWrapper, helper, zoomScale, useTouch);
|
|
30866
31032
|
});
|
|
30867
31033
|
}
|
|
30868
31034
|
exports.getDropAndDragHelpers = getDropAndDragHelpers;
|