roosterjs 9.32.0 → 9.34.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/dist/rooster-adapter-amd-min.js +1 -1
- package/dist/rooster-adapter-amd-min.js.map +1 -1
- package/dist/rooster-adapter-amd.js +11 -4
- package/dist/rooster-adapter-amd.js.map +1 -1
- package/dist/rooster-adapter-min.js +1 -1
- package/dist/rooster-adapter-min.js.map +1 -1
- package/dist/rooster-adapter.js +11 -4
- package/dist/rooster-adapter.js.map +1 -1
- package/dist/rooster-amd-min.js +1 -1
- package/dist/rooster-amd-min.js.map +1 -1
- package/dist/rooster-amd.d.ts +94 -9
- package/dist/rooster-amd.js +385 -69
- 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 +94 -9
- package/dist/rooster.js +385 -69
- package/dist/rooster.js.map +1 -1
- package/package.json +7 -7
package/dist/rooster-amd.js
CHANGED
|
@@ -2432,9 +2432,9 @@ exports.setModelIndentation = void 0;
|
|
|
2432
2432
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
2433
2433
|
var findListItemsInSameThread_1 = __webpack_require__(/*! ../list/findListItemsInSameThread */ "./packages/roosterjs-content-model-api/lib/modelApi/list/findListItemsInSameThread.ts");
|
|
2434
2434
|
var getListAnnounceData_1 = __webpack_require__(/*! ../list/getListAnnounceData */ "./packages/roosterjs-content-model-api/lib/modelApi/list/getListAnnounceData.ts");
|
|
2435
|
+
var adjustIndentation_1 = __webpack_require__(/*! ../common/adjustIndentation */ "./packages/roosterjs-content-model-api/lib/modelApi/common/adjustIndentation.ts");
|
|
2435
2436
|
var splitSelectedParagraphByBr_1 = __webpack_require__(/*! ./splitSelectedParagraphByBr */ "./packages/roosterjs-content-model-api/lib/modelApi/block/splitSelectedParagraphByBr.ts");
|
|
2436
2437
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
2437
|
-
var IndentStepInPixel = 40;
|
|
2438
2438
|
/**
|
|
2439
2439
|
* @param model The content model to set indentation
|
|
2440
2440
|
* @param indentation The indentation type, 'indent' to indent, 'outdent' to outdent
|
|
@@ -2442,7 +2442,7 @@ var IndentStepInPixel = 40;
|
|
|
2442
2442
|
* Set indentation for selected list items or paragraphs
|
|
2443
2443
|
*/
|
|
2444
2444
|
function setModelIndentation(model, indentation, length, context) {
|
|
2445
|
-
if (length === void 0) { length = IndentStepInPixel; }
|
|
2445
|
+
if (length === void 0) { length = adjustIndentation_1.IndentStepInPixel; }
|
|
2446
2446
|
(0, splitSelectedParagraphByBr_1.splitSelectedParagraphByBr)(model);
|
|
2447
2447
|
var paragraphOrListItem = (0, roosterjs_content_model_dom_1.getOperationalBlocks)(model, ['ListItem'], ['TableCell']);
|
|
2448
2448
|
var isIndent = indentation == 'indent';
|
|
@@ -2562,7 +2562,7 @@ function isMultilevelSelection(model, listItem, parent) {
|
|
|
2562
2562
|
return false;
|
|
2563
2563
|
}
|
|
2564
2564
|
function calculateMarginValue(format, isIndent, length) {
|
|
2565
|
-
if (length === void 0) { length = IndentStepInPixel; }
|
|
2565
|
+
if (length === void 0) { length = adjustIndentation_1.IndentStepInPixel; }
|
|
2566
2566
|
var marginLeft = format.marginLeft, marginRight = format.marginRight, direction = format.direction;
|
|
2567
2567
|
var isRtl = direction == 'rtl';
|
|
2568
2568
|
var originalValue = (0, roosterjs_content_model_dom_1.parseValueWithUnit)(isRtl ? marginRight : marginLeft);
|
|
@@ -2724,6 +2724,131 @@ function areAllBlockQuotes(blockAndParents) {
|
|
|
2724
2724
|
}
|
|
2725
2725
|
|
|
2726
2726
|
|
|
2727
|
+
/***/ }),
|
|
2728
|
+
|
|
2729
|
+
/***/ "./packages/roosterjs-content-model-api/lib/modelApi/common/adjustIndentation.ts":
|
|
2730
|
+
/*!***************************************************************************************!*\
|
|
2731
|
+
!*** ./packages/roosterjs-content-model-api/lib/modelApi/common/adjustIndentation.ts ***!
|
|
2732
|
+
\***************************************************************************************/
|
|
2733
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
2734
|
+
|
|
2735
|
+
"use strict";
|
|
2736
|
+
|
|
2737
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2738
|
+
exports.adjustTableIndentation = exports.adjustListIndentation = exports.IndentStepInPixel = void 0;
|
|
2739
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
2740
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
2741
|
+
var EN_SPACE = '\u2002';
|
|
2742
|
+
var REGULAR_SPACE = '\u0020';
|
|
2743
|
+
var NON_BREAK_SPACES = '\u00A0';
|
|
2744
|
+
/**
|
|
2745
|
+
* @internal
|
|
2746
|
+
*/
|
|
2747
|
+
exports.IndentStepInPixel = 40;
|
|
2748
|
+
function countTabsSpaces(text) {
|
|
2749
|
+
var spaces = countSpacesBeforeText(text);
|
|
2750
|
+
var tabSpaces = Math.floor(spaces / 4);
|
|
2751
|
+
return tabSpaces;
|
|
2752
|
+
}
|
|
2753
|
+
function countSpacesBeforeText(str) {
|
|
2754
|
+
var e_1, _a;
|
|
2755
|
+
var count = 0;
|
|
2756
|
+
try {
|
|
2757
|
+
for (var str_1 = (0, tslib_1.__values)(str), str_1_1 = str_1.next(); !str_1_1.done; str_1_1 = str_1.next()) {
|
|
2758
|
+
var char = str_1_1.value;
|
|
2759
|
+
if (char === EN_SPACE || char === NON_BREAK_SPACES || char == REGULAR_SPACE) {
|
|
2760
|
+
count++;
|
|
2761
|
+
}
|
|
2762
|
+
else {
|
|
2763
|
+
break;
|
|
2764
|
+
}
|
|
2765
|
+
}
|
|
2766
|
+
}
|
|
2767
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
2768
|
+
finally {
|
|
2769
|
+
try {
|
|
2770
|
+
if (str_1_1 && !str_1_1.done && (_a = str_1.return)) _a.call(str_1);
|
|
2771
|
+
}
|
|
2772
|
+
finally { if (e_1) throw e_1.error; }
|
|
2773
|
+
}
|
|
2774
|
+
return count;
|
|
2775
|
+
}
|
|
2776
|
+
/**
|
|
2777
|
+
* @internal
|
|
2778
|
+
*/
|
|
2779
|
+
function adjustListIndentation(listItem) {
|
|
2780
|
+
var block = listItem.blocks[0];
|
|
2781
|
+
if (block.blockType == 'Paragraph' &&
|
|
2782
|
+
block.segments.length > 0 &&
|
|
2783
|
+
block.segments[0].segmentType == 'Text') {
|
|
2784
|
+
var tabSpaces_1 = countTabsSpaces(block.segments[0].text);
|
|
2785
|
+
if (tabSpaces_1 > 0) {
|
|
2786
|
+
(0, roosterjs_content_model_dom_1.mutateSegment)(block, block.segments[0], function (textSegment) {
|
|
2787
|
+
textSegment.text = textSegment.text.substring(tabSpaces_1 * 4);
|
|
2788
|
+
});
|
|
2789
|
+
listItem.levels[0].format.marginLeft = tabSpaces_1 * exports.IndentStepInPixel + 'px';
|
|
2790
|
+
}
|
|
2791
|
+
}
|
|
2792
|
+
}
|
|
2793
|
+
exports.adjustListIndentation = adjustListIndentation;
|
|
2794
|
+
/**
|
|
2795
|
+
* @internal
|
|
2796
|
+
*/
|
|
2797
|
+
function adjustTableIndentation(insertPoint, table) {
|
|
2798
|
+
var paragraph = insertPoint.paragraph, marker = insertPoint.marker;
|
|
2799
|
+
var indentationMargin = getTableIndentation(paragraph);
|
|
2800
|
+
if (indentationMargin) {
|
|
2801
|
+
insertPoint.paragraph.segments = [marker];
|
|
2802
|
+
if (insertPoint.paragraph.format.direction == 'rtl') {
|
|
2803
|
+
table.format.marginRight = indentationMargin * exports.IndentStepInPixel + 'px';
|
|
2804
|
+
}
|
|
2805
|
+
else {
|
|
2806
|
+
table.format.marginLeft = indentationMargin * exports.IndentStepInPixel + 'px';
|
|
2807
|
+
}
|
|
2808
|
+
}
|
|
2809
|
+
}
|
|
2810
|
+
exports.adjustTableIndentation = adjustTableIndentation;
|
|
2811
|
+
var getTableIndentation = function (paragraph) {
|
|
2812
|
+
var e_2, _a;
|
|
2813
|
+
var tabsNumber = 0;
|
|
2814
|
+
var segments = paragraph.segments;
|
|
2815
|
+
var isEmptyLine = paragraph.segments.every(function (s) {
|
|
2816
|
+
return (s.segmentType == 'Text' && s.text.trim().length == 0) ||
|
|
2817
|
+
s.segmentType == 'SelectionMarker' ||
|
|
2818
|
+
s.segmentType == 'Br';
|
|
2819
|
+
});
|
|
2820
|
+
if (!isEmptyLine) {
|
|
2821
|
+
return;
|
|
2822
|
+
}
|
|
2823
|
+
var numberOfSegments = 0;
|
|
2824
|
+
try {
|
|
2825
|
+
for (var segments_1 = (0, tslib_1.__values)(segments), segments_1_1 = segments_1.next(); !segments_1_1.done; segments_1_1 = segments_1.next()) {
|
|
2826
|
+
var seg = segments_1_1.value;
|
|
2827
|
+
if (seg.segmentType === 'Text') {
|
|
2828
|
+
tabsNumber = tabsNumber + countTabsSpaces(seg.text);
|
|
2829
|
+
numberOfSegments++;
|
|
2830
|
+
}
|
|
2831
|
+
else {
|
|
2832
|
+
break;
|
|
2833
|
+
}
|
|
2834
|
+
}
|
|
2835
|
+
}
|
|
2836
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
2837
|
+
finally {
|
|
2838
|
+
try {
|
|
2839
|
+
if (segments_1_1 && !segments_1_1.done && (_a = segments_1.return)) _a.call(segments_1);
|
|
2840
|
+
}
|
|
2841
|
+
finally { if (e_2) throw e_2.error; }
|
|
2842
|
+
}
|
|
2843
|
+
// Text segments must be >= (total segments - 2) to apply margin.
|
|
2844
|
+
// If not, the selection marker is likely between texts segment, so skip margin adjustment.
|
|
2845
|
+
if (segments.length - 2 <= numberOfSegments) {
|
|
2846
|
+
return tabsNumber;
|
|
2847
|
+
}
|
|
2848
|
+
return;
|
|
2849
|
+
};
|
|
2850
|
+
|
|
2851
|
+
|
|
2727
2852
|
/***/ }),
|
|
2728
2853
|
|
|
2729
2854
|
/***/ "./packages/roosterjs-content-model-api/lib/modelApi/common/clearModelFormat.ts":
|
|
@@ -3697,6 +3822,7 @@ function getListNumber(path, listItem) {
|
|
|
3697
3822
|
|
|
3698
3823
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
3699
3824
|
exports.setListType = void 0;
|
|
3825
|
+
var adjustIndentation_1 = __webpack_require__(/*! ../common/adjustIndentation */ "./packages/roosterjs-content-model-api/lib/modelApi/common/adjustIndentation.ts");
|
|
3700
3826
|
var splitSelectedParagraphByBr_1 = __webpack_require__(/*! ../block/splitSelectedParagraphByBr */ "./packages/roosterjs-content-model-api/lib/modelApi/block/splitSelectedParagraphByBr.ts");
|
|
3701
3827
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
3702
3828
|
/**
|
|
@@ -3725,6 +3851,11 @@ function setListType(model, listType, removeMargins) {
|
|
|
3725
3851
|
var level = block.levels.pop();
|
|
3726
3852
|
if (!alreadyInExpectedType && level) {
|
|
3727
3853
|
level.listType = listType;
|
|
3854
|
+
(0, roosterjs_content_model_dom_1.updateListMetadata)(level, function (metadata) {
|
|
3855
|
+
return Object.assign({}, metadata, {
|
|
3856
|
+
applyListStyleFromLevel: true,
|
|
3857
|
+
});
|
|
3858
|
+
});
|
|
3728
3859
|
block.levels.push(level);
|
|
3729
3860
|
}
|
|
3730
3861
|
else if (block.blocks.length == 1) {
|
|
@@ -3768,6 +3899,7 @@ function setListType(model, listType, removeMargins) {
|
|
|
3768
3899
|
}
|
|
3769
3900
|
var mutableBlock = (0, roosterjs_content_model_dom_1.mutateBlock)(block);
|
|
3770
3901
|
newListItem.blocks.push(mutableBlock);
|
|
3902
|
+
(0, adjustIndentation_1.adjustListIndentation)(newListItem);
|
|
3771
3903
|
(0, roosterjs_content_model_dom_1.copyFormat)(newListItem.format, mutableBlock.format, roosterjs_content_model_dom_1.ListFormatsToMove, true /*deleteOriginalFormat*/);
|
|
3772
3904
|
(0, roosterjs_content_model_dom_1.copyFormat)(newListItem.format, mutableBlock.format, roosterjs_content_model_dom_1.ListFormatsToKeep);
|
|
3773
3905
|
(0, roosterjs_content_model_dom_1.mutateBlock)(parent).blocks.splice(index, 1, newListItem);
|
|
@@ -5306,7 +5438,7 @@ function getFormatState(editor, conflictSolution) {
|
|
|
5306
5438
|
isDarkMode: editor.isDarkMode(),
|
|
5307
5439
|
};
|
|
5308
5440
|
editor.formatContentModel(function (model) {
|
|
5309
|
-
(0, roosterjs_content_model_dom_1.retrieveModelFormatState)(model, pendingFormat, result, conflictSolution, editor.getDOMHelper());
|
|
5441
|
+
(0, roosterjs_content_model_dom_1.retrieveModelFormatState)(model, pendingFormat, result, conflictSolution, editor.getDOMHelper(), editor.isDarkMode(), editor.getColorManager());
|
|
5310
5442
|
return false;
|
|
5311
5443
|
}, undefined /*options*/, {
|
|
5312
5444
|
processorOverride: {
|
|
@@ -6940,6 +7072,7 @@ exports.formatTable = formatTable;
|
|
|
6940
7072
|
|
|
6941
7073
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
6942
7074
|
exports.insertTable = void 0;
|
|
7075
|
+
var adjustIndentation_1 = __webpack_require__(/*! ../../modelApi/common/adjustIndentation */ "./packages/roosterjs-content-model-api/lib/modelApi/common/adjustIndentation.ts");
|
|
6943
7076
|
var createTableStructure_1 = __webpack_require__(/*! ../../modelApi/table/createTableStructure */ "./packages/roosterjs-content-model-api/lib/modelApi/table/createTableStructure.ts");
|
|
6944
7077
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
6945
7078
|
/**
|
|
@@ -6960,6 +7093,7 @@ function insertTable(editor, columns, rows, format) {
|
|
|
6960
7093
|
var doc = (0, roosterjs_content_model_dom_1.createContentModelDocument)();
|
|
6961
7094
|
var table = (0, createTableStructure_1.createTableStructure)(doc, columns, rows);
|
|
6962
7095
|
(0, roosterjs_content_model_dom_1.normalizeTable)(table, editor.getPendingFormat() || insertPosition.marker.format);
|
|
7096
|
+
(0, adjustIndentation_1.adjustTableIndentation)(insertPosition, table);
|
|
6963
7097
|
// Assign default vertical align
|
|
6964
7098
|
format = format || { verticalAlign: 'top' };
|
|
6965
7099
|
(0, roosterjs_content_model_dom_1.applyTableFormat)(table, format);
|
|
@@ -7616,6 +7750,7 @@ var DefaultSanitizingOption = {
|
|
|
7616
7750
|
additionalDisallowedTags: [],
|
|
7617
7751
|
styleSanitizers: {},
|
|
7618
7752
|
attributeSanitizers: {},
|
|
7753
|
+
processNonVisibleElements: false,
|
|
7619
7754
|
};
|
|
7620
7755
|
/**
|
|
7621
7756
|
* @internal
|
|
@@ -8055,26 +8190,37 @@ function isCssVariable(value) {
|
|
|
8055
8190
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
8056
8191
|
exports.exportContent = void 0;
|
|
8057
8192
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
8193
|
+
// Here I didn't add 'HTMLFast' to ExportContentMode type because it will make this a breaking change and EditorAdapter will see build time error without bumping version
|
|
8194
|
+
// Once we are confident that 'HTMLFast' is stable, we can fully switch 'HTML' to use the 'HTMLFast' approach
|
|
8058
8195
|
function exportContent(editor, mode, optionsOrCallbacks) {
|
|
8059
8196
|
if (mode === void 0) { mode = 'HTML'; }
|
|
8060
|
-
|
|
8061
|
-
|
|
8062
|
-
|
|
8063
|
-
|
|
8064
|
-
|
|
8065
|
-
|
|
8197
|
+
var model;
|
|
8198
|
+
switch (mode) {
|
|
8199
|
+
case 'PlainTextFast':
|
|
8200
|
+
return editor.getDOMHelper().getTextContent();
|
|
8201
|
+
case 'PlainText':
|
|
8202
|
+
model = editor.getContentModelCopy('clean');
|
|
8066
8203
|
return (0, roosterjs_content_model_dom_1.contentModelToText)(model, undefined /*separator*/, optionsOrCallbacks);
|
|
8067
|
-
|
|
8068
|
-
|
|
8204
|
+
case 'HTMLFast':
|
|
8205
|
+
var clonedRoot = editor.getDOMHelper().getClonedRoot();
|
|
8206
|
+
if (editor.isDarkMode()) {
|
|
8207
|
+
(0, roosterjs_content_model_dom_1.transformColor)(clonedRoot, false /*includeSelf*/, 'darkToLight', editor.getColorManager());
|
|
8208
|
+
}
|
|
8209
|
+
return getHTMLFromDOM(editor, clonedRoot);
|
|
8210
|
+
case 'HTML':
|
|
8211
|
+
default:
|
|
8212
|
+
model = editor.getContentModelCopy('clean');
|
|
8069
8213
|
var doc = editor.getDocument();
|
|
8070
8214
|
var div = doc.createElement('div');
|
|
8071
8215
|
(0, roosterjs_content_model_dom_1.contentModelToDom)(doc, div, model, (0, roosterjs_content_model_dom_1.createModelToDomContext)(undefined /*editorContext*/, optionsOrCallbacks));
|
|
8072
|
-
editor
|
|
8073
|
-
return div.innerHTML;
|
|
8074
|
-
}
|
|
8216
|
+
return getHTMLFromDOM(editor, div);
|
|
8075
8217
|
}
|
|
8076
8218
|
}
|
|
8077
8219
|
exports.exportContent = exportContent;
|
|
8220
|
+
function getHTMLFromDOM(editor, root) {
|
|
8221
|
+
editor.triggerEvent('extractContentWithDom', { clonedRoot: root }, true /*broadcast*/);
|
|
8222
|
+
return root.innerHTML;
|
|
8223
|
+
}
|
|
8078
8224
|
|
|
8079
8225
|
|
|
8080
8226
|
/***/ }),
|
|
@@ -8249,6 +8395,8 @@ function generatePasteOptionFromPlugins(editor, clipboardData, fragment, htmlFro
|
|
|
8249
8395
|
processorOverride: {},
|
|
8250
8396
|
styleSanitizers: {},
|
|
8251
8397
|
attributeSanitizers: {},
|
|
8398
|
+
processNonVisibleElements: !!editor.getEnvironment().domToModelSettings.customized
|
|
8399
|
+
.processNonVisibleElements,
|
|
8252
8400
|
};
|
|
8253
8401
|
var event = {
|
|
8254
8402
|
eventType: 'beforePaste',
|
|
@@ -8930,7 +9078,7 @@ var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-mo
|
|
|
8930
9078
|
*/
|
|
8931
9079
|
var attachDomEvent = function (core, eventMap) {
|
|
8932
9080
|
var disposers = (0, roosterjs_content_model_dom_1.getObjectKeys)(eventMap || {}).map(function (key) {
|
|
8933
|
-
var _a = eventMap[key], pluginEventType = _a.pluginEventType, beforeDispatch = _a.beforeDispatch;
|
|
9081
|
+
var _a = eventMap[key], pluginEventType = _a.pluginEventType, beforeDispatch = _a.beforeDispatch, capture = _a.capture;
|
|
8934
9082
|
var eventName = key;
|
|
8935
9083
|
var onEvent = function (event) {
|
|
8936
9084
|
if (beforeDispatch) {
|
|
@@ -8943,9 +9091,11 @@ var attachDomEvent = function (core, eventMap) {
|
|
|
8943
9091
|
}, false /*broadcast*/);
|
|
8944
9092
|
}
|
|
8945
9093
|
};
|
|
8946
|
-
core.logicalRoot.addEventListener(eventName, onEvent);
|
|
9094
|
+
core.logicalRoot.addEventListener(eventName, onEvent, { capture: capture });
|
|
8947
9095
|
return function () {
|
|
8948
|
-
core.logicalRoot.removeEventListener(eventName, onEvent
|
|
9096
|
+
core.logicalRoot.removeEventListener(eventName, onEvent, {
|
|
9097
|
+
capture: capture,
|
|
9098
|
+
});
|
|
8949
9099
|
};
|
|
8950
9100
|
});
|
|
8951
9101
|
return function () { return disposers.forEach(function (disposers) { return disposers(); }); };
|
|
@@ -15165,8 +15315,10 @@ var DOMHelperImpl = /** @class */ (function () {
|
|
|
15165
15315
|
};
|
|
15166
15316
|
/**
|
|
15167
15317
|
* Get format of the container element
|
|
15318
|
+
* @param isInDarkMode Optional flag to indicate if the environment is in dark mode
|
|
15319
|
+
* @param darkColorHandler Optional DarkColorHandler to retrieve dark mode colors
|
|
15168
15320
|
*/
|
|
15169
|
-
DOMHelperImpl.prototype.getContainerFormat = function () {
|
|
15321
|
+
DOMHelperImpl.prototype.getContainerFormat = function (isInDarkMode, darkColorHandler) {
|
|
15170
15322
|
var _a, _b;
|
|
15171
15323
|
var window = this.contentDiv.ownerDocument.defaultView;
|
|
15172
15324
|
var style = window === null || window === void 0 ? void 0 : window.getComputedStyle(this.contentDiv);
|
|
@@ -15175,8 +15327,8 @@ var DOMHelperImpl = /** @class */ (function () {
|
|
|
15175
15327
|
fontSize: style.fontSize,
|
|
15176
15328
|
fontFamily: style.fontFamily,
|
|
15177
15329
|
fontWeight: style.fontWeight,
|
|
15178
|
-
textColor: style.color,
|
|
15179
|
-
backgroundColor: style.backgroundColor,
|
|
15330
|
+
textColor: (0, roosterjs_content_model_dom_1.getColor)(this.contentDiv, false /*isBackgroundColor*/, !!isInDarkMode, darkColorHandler, style.color),
|
|
15331
|
+
backgroundColor: (0, roosterjs_content_model_dom_1.getColor)(this.contentDiv, true /*isBackgroundColor*/, !!isInDarkMode, darkColorHandler, style.backgroundColor),
|
|
15180
15332
|
italic: style.fontStyle == 'italic',
|
|
15181
15333
|
letterSpacing: style.letterSpacing,
|
|
15182
15334
|
lineHeight: style.lineHeight,
|
|
@@ -15862,6 +16014,13 @@ exports.defaultContentModelFormatMap = {
|
|
|
15862
16014
|
code: {
|
|
15863
16015
|
fontFamily: 'monospace',
|
|
15864
16016
|
},
|
|
16017
|
+
dd: {
|
|
16018
|
+
marginLeft: '40px',
|
|
16019
|
+
},
|
|
16020
|
+
dl: {
|
|
16021
|
+
marginTop: '1em',
|
|
16022
|
+
marginBottom: '1em',
|
|
16023
|
+
},
|
|
15865
16024
|
h1: {
|
|
15866
16025
|
fontWeight: 'bold',
|
|
15867
16026
|
fontSize: '2em',
|
|
@@ -15940,9 +16099,13 @@ exports.defaultHTMLStyleMap = {
|
|
|
15940
16099
|
display: 'block',
|
|
15941
16100
|
textAlign: 'center',
|
|
15942
16101
|
},
|
|
15943
|
-
dd:
|
|
16102
|
+
dd: { display: 'block', marginInlineStart: '40px' },
|
|
15944
16103
|
div: blockElement,
|
|
15945
|
-
dl:
|
|
16104
|
+
dl: {
|
|
16105
|
+
display: 'block',
|
|
16106
|
+
marginTop: '1em',
|
|
16107
|
+
marginBottom: '1em',
|
|
16108
|
+
},
|
|
15946
16109
|
dt: blockElement,
|
|
15947
16110
|
em: {
|
|
15948
16111
|
fontStyle: 'italic',
|
|
@@ -16576,6 +16739,7 @@ function createDomToModelConfig(options) {
|
|
|
16576
16739
|
formatParsers: buildFormatParsers(options.map(function (x) { return x === null || x === void 0 ? void 0 : x.formatParserOverride; }), options.map(function (x) { return x === null || x === void 0 ? void 0 : x.additionalFormatParsers; })),
|
|
16577
16740
|
defaultElementProcessors: defaultProcessors_1.defaultProcessorMap,
|
|
16578
16741
|
defaultFormatParsers: defaultFormatHandlers_1.defaultFormatParsers,
|
|
16742
|
+
processNonVisibleElements: options.some(function (x) { return !!(x === null || x === void 0 ? void 0 : x.processNonVisibleElements); }),
|
|
16579
16743
|
};
|
|
16580
16744
|
}
|
|
16581
16745
|
exports.createDomToModelConfig = createDomToModelConfig;
|
|
@@ -16655,8 +16819,11 @@ exports.defaultProcessorMap = {
|
|
|
16655
16819
|
blockquote: knownElementProcessor_1.knownElementProcessor,
|
|
16656
16820
|
br: brProcessor_1.brProcessor,
|
|
16657
16821
|
code: codeProcessor_1.codeProcessor,
|
|
16822
|
+
dd: formatContainerProcessor_1.formatContainerProcessor,
|
|
16658
16823
|
del: knownElementProcessor_1.knownElementProcessor,
|
|
16659
16824
|
div: knownElementProcessor_1.knownElementProcessor,
|
|
16825
|
+
dl: formatContainerProcessor_1.formatContainerProcessor,
|
|
16826
|
+
dt: formatContainerProcessor_1.formatContainerProcessor,
|
|
16660
16827
|
em: knownElementProcessor_1.knownElementProcessor,
|
|
16661
16828
|
font: fontProcessor_1.fontProcessor,
|
|
16662
16829
|
i: knownElementProcessor_1.knownElementProcessor,
|
|
@@ -16848,10 +17015,10 @@ exports.childProcessor = childProcessor;
|
|
|
16848
17015
|
* @param group The parent block group
|
|
16849
17016
|
* @param parent Parent DOM node to process
|
|
16850
17017
|
* @param context DOM to Content Model context
|
|
16851
|
-
*
|
|
16852
17018
|
*/
|
|
16853
17019
|
function processChildNode(group, child, context) {
|
|
16854
|
-
if ((0, isNodeOfType_1.isNodeOfType)(child, 'ELEMENT_NODE') &&
|
|
17020
|
+
if ((0, isNodeOfType_1.isNodeOfType)(child, 'ELEMENT_NODE') &&
|
|
17021
|
+
(child.style.display != 'none' || context.processNonVisibleElements)) {
|
|
16855
17022
|
context.elementProcessors.element(group, child, context);
|
|
16856
17023
|
}
|
|
16857
17024
|
else if ((0, isNodeOfType_1.isNodeOfType)(child, 'TEXT_NODE')) {
|
|
@@ -18202,8 +18369,9 @@ var BLOCK_DISPLAY_STYLES = ['block', 'list-item', 'table', 'table-cell', 'flex']
|
|
|
18202
18369
|
* @param context The context of DOM to Content Model conversion
|
|
18203
18370
|
*/
|
|
18204
18371
|
function isBlockElement(element) {
|
|
18205
|
-
var display = element.style.display
|
|
18206
|
-
|
|
18372
|
+
var display = element.style.display == 'none' ? null : element.style.display;
|
|
18373
|
+
var effectiveDisplay = display || (0, getDefaultStyle_1.getDefaultStyle)(element).display || '';
|
|
18374
|
+
return BLOCK_DISPLAY_STYLES.indexOf(effectiveDisplay) >= 0;
|
|
18207
18375
|
}
|
|
18208
18376
|
exports.isBlockElement = isBlockElement;
|
|
18209
18377
|
|
|
@@ -19651,12 +19819,13 @@ exports.wrap = wrap;
|
|
|
19651
19819
|
/*!*************************************************************************************************!*\
|
|
19652
19820
|
!*** ./packages/roosterjs-content-model-dom/lib/formatHandlers/block/directionFormatHandler.ts ***!
|
|
19653
19821
|
\*************************************************************************************************/
|
|
19654
|
-
/***/ ((__unused_webpack_module, exports) => {
|
|
19822
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
19655
19823
|
|
|
19656
19824
|
"use strict";
|
|
19657
19825
|
|
|
19658
19826
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
19659
19827
|
exports.directionFormatHandler = void 0;
|
|
19828
|
+
var isElementOfType_1 = __webpack_require__(/*! ../../domUtils/isElementOfType */ "./packages/roosterjs-content-model-dom/lib/domUtils/isElementOfType.ts");
|
|
19660
19829
|
/**
|
|
19661
19830
|
* @internal
|
|
19662
19831
|
*/
|
|
@@ -19671,6 +19840,9 @@ exports.directionFormatHandler = {
|
|
|
19671
19840
|
if (format.direction) {
|
|
19672
19841
|
element.style.direction = format.direction;
|
|
19673
19842
|
}
|
|
19843
|
+
if (format.direction == 'rtl' && (0, isElementOfType_1.isElementOfType)(element, 'table')) {
|
|
19844
|
+
element.style.justifySelf = 'flex-end';
|
|
19845
|
+
}
|
|
19674
19846
|
},
|
|
19675
19847
|
};
|
|
19676
19848
|
|
|
@@ -19793,13 +19965,33 @@ var MarginKeys = [
|
|
|
19793
19965
|
'marginBottom',
|
|
19794
19966
|
'marginLeft',
|
|
19795
19967
|
];
|
|
19968
|
+
var DefaultMarginKey = {
|
|
19969
|
+
ltr: {
|
|
19970
|
+
marginRight: 'marginInlineEnd',
|
|
19971
|
+
marginLeft: 'marginInlineStart',
|
|
19972
|
+
},
|
|
19973
|
+
rtl: {
|
|
19974
|
+
marginRight: 'marginInlineStart',
|
|
19975
|
+
marginLeft: 'marginInlineEnd',
|
|
19976
|
+
},
|
|
19977
|
+
};
|
|
19978
|
+
var LTR = {
|
|
19979
|
+
marginLeft: 'marginRight',
|
|
19980
|
+
marginRight: 'marginLeft',
|
|
19981
|
+
marginTop: 'marginTop',
|
|
19982
|
+
marginBottom: 'marginBottom',
|
|
19983
|
+
};
|
|
19796
19984
|
/**
|
|
19797
19985
|
* @internal
|
|
19798
19986
|
*/
|
|
19799
19987
|
exports.marginFormatHandler = {
|
|
19800
19988
|
parse: function (format, element, _, defaultStyle) {
|
|
19801
19989
|
MarginKeys.forEach(function (key) {
|
|
19802
|
-
var
|
|
19990
|
+
var _a, _b;
|
|
19991
|
+
var alternativeKey = DefaultMarginKey[(_a = format.direction) !== null && _a !== void 0 ? _a : 'ltr'][key];
|
|
19992
|
+
var value = element.style[key] ||
|
|
19993
|
+
defaultStyle[key] ||
|
|
19994
|
+
(alternativeKey ? (_b = defaultStyle[alternativeKey]) === null || _b === void 0 ? void 0 : _b.toString() : '');
|
|
19803
19995
|
if (value) {
|
|
19804
19996
|
switch (key) {
|
|
19805
19997
|
case 'marginTop':
|
|
@@ -19821,7 +20013,8 @@ exports.marginFormatHandler = {
|
|
|
19821
20013
|
apply: function (format, element, context) {
|
|
19822
20014
|
MarginKeys.forEach(function (key) {
|
|
19823
20015
|
var value = format[key];
|
|
19824
|
-
|
|
20016
|
+
var ltrKey = format.direction == 'rtl' ? LTR[key] : key;
|
|
20017
|
+
if (value != context.implicitFormat[ltrKey]) {
|
|
19825
20018
|
element.style[key] = value || '0';
|
|
19826
20019
|
}
|
|
19827
20020
|
});
|
|
@@ -20624,6 +20817,7 @@ exports.defaultFormatKeysPerCategory = {
|
|
|
20624
20817
|
'size',
|
|
20625
20818
|
'tableLayout',
|
|
20626
20819
|
'textColor',
|
|
20820
|
+
'direction',
|
|
20627
20821
|
],
|
|
20628
20822
|
tableBorder: ['borderBox', 'tableSpacing'],
|
|
20629
20823
|
tableCellBorder: ['borderBox'],
|
|
@@ -21549,11 +21743,12 @@ var COLOR_VAR_PREFIX = '--darkColor';
|
|
|
21549
21743
|
* @param isBackground True to get background color, false to get text color
|
|
21550
21744
|
* @param isDarkMode Whether element is in dark mode now
|
|
21551
21745
|
* @param darkColorHandler @optional The dark color handler object to help manager dark mode color
|
|
21746
|
+
* @param fallback @optional Fallback color to use if no color is found from the element
|
|
21552
21747
|
*/
|
|
21553
|
-
function getColor(element, isBackground, isDarkMode, darkColorHandler) {
|
|
21748
|
+
function getColor(element, isBackground, isDarkMode, darkColorHandler, fallback) {
|
|
21554
21749
|
var color = (isBackground ? element.style.backgroundColor : element.style.color) ||
|
|
21555
21750
|
element.getAttribute(isBackground ? 'bgcolor' : 'color') ||
|
|
21556
|
-
|
|
21751
|
+
fallback;
|
|
21557
21752
|
if (color && exports.DeprecatedColors.indexOf(color) > -1) {
|
|
21558
21753
|
color = isBackground ? undefined : BlackColor;
|
|
21559
21754
|
}
|
|
@@ -25181,8 +25376,12 @@ var parseValueWithUnit_1 = __webpack_require__(/*! ../../formatHandlers/utils/pa
|
|
|
25181
25376
|
* @param pendingFormat Existing pending format, if any
|
|
25182
25377
|
* @param formatState Existing format state object, used for receiving the result
|
|
25183
25378
|
* @param conflictSolution The strategy for handling format conflicts
|
|
25379
|
+
* @param domHelper Optional DOMHelper to retrieve container format
|
|
25380
|
+
* @param isInDarkMode Optional flag to indicate if the environment is in dark mode
|
|
25381
|
+
* @param colorHandler Optional DarkColorHandler to handle dark mode colors
|
|
25382
|
+
*
|
|
25184
25383
|
*/
|
|
25185
|
-
function retrieveModelFormatState(model, pendingFormat, formatState, conflictSolution, domHelper) {
|
|
25384
|
+
function retrieveModelFormatState(model, pendingFormat, formatState, conflictSolution, domHelper, isInDarkMode, colorHandler) {
|
|
25186
25385
|
if (conflictSolution === void 0) { conflictSolution = 'remove'; }
|
|
25187
25386
|
var firstTableContext;
|
|
25188
25387
|
var firstBlock;
|
|
@@ -25219,7 +25418,8 @@ function retrieveModelFormatState(model, pendingFormat, formatState, conflictSol
|
|
|
25219
25418
|
// to make sure the current format contains all required format.
|
|
25220
25419
|
if (!hasAllRequiredFormat(currentFormat)) {
|
|
25221
25420
|
if (!containerFormat) {
|
|
25222
|
-
containerFormat =
|
|
25421
|
+
containerFormat =
|
|
25422
|
+
(_d = domHelper === null || domHelper === void 0 ? void 0 : domHelper.getContainerFormat(isInDarkMode, colorHandler)) !== null && _d !== void 0 ? _d : modelFormat;
|
|
25223
25423
|
}
|
|
25224
25424
|
currentFormat = Object.assign({}, containerFormat, currentFormat);
|
|
25225
25425
|
}
|
|
@@ -26953,6 +27153,7 @@ function calcPosition(pos) {
|
|
|
26953
27153
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
26954
27154
|
exports.buildFormatAppliers = exports.createModelToDomConfig = exports.createModelToDomContextWithConfig = exports.createModelToDomContext = void 0;
|
|
26955
27155
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
27156
|
+
var defaultContentModelFormatMap_1 = __webpack_require__(/*! ../../config/defaultContentModelFormatMap */ "./packages/roosterjs-content-model-dom/lib/config/defaultContentModelFormatMap.ts");
|
|
26956
27157
|
var defaultContentModelHandlers_1 = __webpack_require__(/*! ./defaultContentModelHandlers */ "./packages/roosterjs-content-model-dom/lib/modelToDom/context/defaultContentModelHandlers.ts");
|
|
26957
27158
|
var getObjectKeys_1 = __webpack_require__(/*! ../../domUtils/getObjectKeys */ "./packages/roosterjs-content-model-dom/lib/domUtils/getObjectKeys.ts");
|
|
26958
27159
|
var defaultFormatHandlers_1 = __webpack_require__(/*! ../../formatHandlers/defaultFormatHandlers */ "./packages/roosterjs-content-model-dom/lib/formatHandlers/defaultFormatHandlers.ts");
|
|
@@ -27017,6 +27218,8 @@ function createModelToDomConfig(options) {
|
|
|
27017
27218
|
defaultModelHandlers: defaultContentModelHandlers_1.defaultContentModelHandlers,
|
|
27018
27219
|
defaultFormatAppliers: defaultFormatHandlers_1.defaultFormatAppliers,
|
|
27019
27220
|
metadataAppliers: Object.assign.apply(Object, (0, tslib_1.__spreadArray)([{}], (0, tslib_1.__read)(options.map(function (x) { return x === null || x === void 0 ? void 0 : x.metadataAppliers; })), false)),
|
|
27221
|
+
defaultContentModelFormatMap: Object.assign.apply(Object, (0, tslib_1.__spreadArray)([{},
|
|
27222
|
+
defaultContentModelFormatMap_1.defaultContentModelFormatMap], (0, tslib_1.__read)(options.map(function (x) { return x === null || x === void 0 ? void 0 : x.defaultContentModelFormatOverride; })), false)),
|
|
27020
27223
|
};
|
|
27021
27224
|
}
|
|
27022
27225
|
exports.createModelToDomConfig = createModelToDomConfig;
|
|
@@ -28270,13 +28473,12 @@ exports.handleSegmentCommon = handleSegmentCommon;
|
|
|
28270
28473
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
28271
28474
|
exports.stackFormat = void 0;
|
|
28272
28475
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
28273
|
-
var defaultContentModelFormatMap_1 = __webpack_require__(/*! ../../config/defaultContentModelFormatMap */ "./packages/roosterjs-content-model-dom/lib/config/defaultContentModelFormatMap.ts");
|
|
28274
28476
|
/**
|
|
28275
28477
|
* @internal
|
|
28276
28478
|
*/
|
|
28277
28479
|
function stackFormat(context, tagNameOrFormat, callback) {
|
|
28278
28480
|
var newFormat = typeof tagNameOrFormat === 'string'
|
|
28279
|
-
?
|
|
28481
|
+
? context.defaultContentModelFormatMap[tagNameOrFormat]
|
|
28280
28482
|
: tagNameOrFormat;
|
|
28281
28483
|
if (newFormat) {
|
|
28282
28484
|
var implicitFormat = context.implicitFormat;
|
|
@@ -28555,7 +28757,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
28555
28757
|
exports.applyTextFormatting = void 0;
|
|
28556
28758
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
28557
28759
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
28558
|
-
var SPLIT_PATTERN = /(
|
|
28760
|
+
var SPLIT_PATTERN = /(\*\*\*.*?\*\*\*|\*\*.*?\*\*|\*.*?\*|\~\~.*?\~\~)/;
|
|
28559
28761
|
/**
|
|
28560
28762
|
* @internal
|
|
28561
28763
|
*/
|
|
@@ -28598,6 +28800,10 @@ function createFormattedSegment(text, format, link) {
|
|
|
28598
28800
|
text = text.replace(/\*/g, '');
|
|
28599
28801
|
text = text + ' ';
|
|
28600
28802
|
}
|
|
28803
|
+
else if (text.startsWith('~~') && text.endsWith('~~')) {
|
|
28804
|
+
format = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, format), { strikethrough: true });
|
|
28805
|
+
text = text.replace(/\~\~/g, '');
|
|
28806
|
+
}
|
|
28601
28807
|
return (0, roosterjs_content_model_dom_1.createText)(text, format, link);
|
|
28602
28808
|
}
|
|
28603
28809
|
|
|
@@ -29462,6 +29668,9 @@ function textProcessor(text) {
|
|
|
29462
29668
|
if (text.format.fontWeight == 'bold') {
|
|
29463
29669
|
markdownString = "**" + markdownString + "**";
|
|
29464
29670
|
}
|
|
29671
|
+
if (text.format.strikethrough) {
|
|
29672
|
+
markdownString = "~~" + markdownString + "~~";
|
|
29673
|
+
}
|
|
29465
29674
|
if (text.format.italic) {
|
|
29466
29675
|
markdownString = "*" + markdownString + "*";
|
|
29467
29676
|
}
|
|
@@ -30616,7 +30825,10 @@ function getNumericValue(text, checkFullText) {
|
|
|
30616
30825
|
var number = checkFullText ? text : text.substring(0, text.length - ORDINAL_LENGTH);
|
|
30617
30826
|
var isNumber = /^-?\d+$/.test(number);
|
|
30618
30827
|
if (isNumber) {
|
|
30619
|
-
|
|
30828
|
+
var numericValue = parseInt(number);
|
|
30829
|
+
return Math.abs(numericValue) < 20
|
|
30830
|
+
? numericValue
|
|
30831
|
+
: parseInt(number.substring(number.length - 1));
|
|
30620
30832
|
}
|
|
30621
30833
|
return null;
|
|
30622
30834
|
}
|
|
@@ -31320,6 +31532,38 @@ var deleteList = function (context) {
|
|
|
31320
31532
|
exports.deleteList = deleteList;
|
|
31321
31533
|
|
|
31322
31534
|
|
|
31535
|
+
/***/ }),
|
|
31536
|
+
|
|
31537
|
+
/***/ "./packages/roosterjs-content-model-plugins/lib/edit/deleteSteps/deleteParagraphStyle.ts":
|
|
31538
|
+
/*!***********************************************************************************************!*\
|
|
31539
|
+
!*** ./packages/roosterjs-content-model-plugins/lib/edit/deleteSteps/deleteParagraphStyle.ts ***!
|
|
31540
|
+
\***********************************************************************************************/
|
|
31541
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
31542
|
+
|
|
31543
|
+
"use strict";
|
|
31544
|
+
|
|
31545
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
31546
|
+
exports.deleteParagraphStyle = void 0;
|
|
31547
|
+
/**
|
|
31548
|
+
* @internal
|
|
31549
|
+
*/
|
|
31550
|
+
var deleteParagraphStyle = function (context) {
|
|
31551
|
+
if (context.deleteResult === 'nothingToDelete') {
|
|
31552
|
+
var insertPoint = context.insertPoint;
|
|
31553
|
+
var paragraph = insertPoint.paragraph;
|
|
31554
|
+
// If the paragraph is empty, we will delete any style in it
|
|
31555
|
+
// This is to ensure the paragraph style is reset to default when there is no content in the paragraph
|
|
31556
|
+
if (paragraph.segments.every(function (s) { return s.segmentType === 'SelectionMarker' || s.segmentType === 'Br'; }) &&
|
|
31557
|
+
paragraph.segments.filter(function (s) { return s.segmentType === 'Br'; }).length <= 1 &&
|
|
31558
|
+
Object.keys(paragraph.format).length > 0) {
|
|
31559
|
+
paragraph.format = {};
|
|
31560
|
+
context.deleteResult = 'range';
|
|
31561
|
+
}
|
|
31562
|
+
}
|
|
31563
|
+
};
|
|
31564
|
+
exports.deleteParagraphStyle = deleteParagraphStyle;
|
|
31565
|
+
|
|
31566
|
+
|
|
31323
31567
|
/***/ }),
|
|
31324
31568
|
|
|
31325
31569
|
/***/ "./packages/roosterjs-content-model-plugins/lib/edit/deleteSteps/deleteWordSelection.ts":
|
|
@@ -31765,6 +32009,7 @@ exports.keyboardDelete = void 0;
|
|
|
31765
32009
|
var deleteAllSegmentBefore_1 = __webpack_require__(/*! ./deleteSteps/deleteAllSegmentBefore */ "./packages/roosterjs-content-model-plugins/lib/edit/deleteSteps/deleteAllSegmentBefore.ts");
|
|
31766
32010
|
var deleteEmptyQuote_1 = __webpack_require__(/*! ./deleteSteps/deleteEmptyQuote */ "./packages/roosterjs-content-model-plugins/lib/edit/deleteSteps/deleteEmptyQuote.ts");
|
|
31767
32011
|
var deleteList_1 = __webpack_require__(/*! ./deleteSteps/deleteList */ "./packages/roosterjs-content-model-plugins/lib/edit/deleteSteps/deleteList.ts");
|
|
32012
|
+
var deleteParagraphStyle_1 = __webpack_require__(/*! ./deleteSteps/deleteParagraphStyle */ "./packages/roosterjs-content-model-plugins/lib/edit/deleteSteps/deleteParagraphStyle.ts");
|
|
31768
32013
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
31769
32014
|
var handleKeyboardEventCommon_1 = __webpack_require__(/*! ./handleKeyboardEventCommon */ "./packages/roosterjs-content-model-plugins/lib/edit/handleKeyboardEventCommon.ts");
|
|
31770
32015
|
var deleteWordSelection_1 = __webpack_require__(/*! ./deleteSteps/deleteWordSelection */ "./packages/roosterjs-content-model-plugins/lib/edit/deleteSteps/deleteWordSelection.ts");
|
|
@@ -31815,6 +32060,7 @@ function getDeleteSteps(rawEvent, isMac) {
|
|
|
31815
32060
|
isForward ? null : deleteList_1.deleteList,
|
|
31816
32061
|
deleteCollapsedSelection,
|
|
31817
32062
|
deleteQuote,
|
|
32063
|
+
deleteParagraphStyle_1.deleteParagraphStyle,
|
|
31818
32064
|
];
|
|
31819
32065
|
}
|
|
31820
32066
|
function shouldDeleteWithContentModel(selection, rawEvent, handleExpandedSelection) {
|
|
@@ -32919,6 +33165,7 @@ var imageEditUtils_1 = __webpack_require__(/*! ./utils/imageEditUtils */ "./pack
|
|
|
32919
33165
|
var createImageWrapper_1 = __webpack_require__(/*! ./utils/createImageWrapper */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/createImageWrapper.ts");
|
|
32920
33166
|
var cropperContext_1 = __webpack_require__(/*! ./Cropper/cropperContext */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/Cropper/cropperContext.ts");
|
|
32921
33167
|
var findEditingImage_1 = __webpack_require__(/*! ./utils/findEditingImage */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/findEditingImage.ts");
|
|
33168
|
+
var filterInnerResizerHandles_1 = __webpack_require__(/*! ./utils/filterInnerResizerHandles */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/filterInnerResizerHandles.ts");
|
|
32922
33169
|
var getDropAndDragHelpers_1 = __webpack_require__(/*! ./utils/getDropAndDragHelpers */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/getDropAndDragHelpers.ts");
|
|
32923
33170
|
var getHTMLImageOptions_1 = __webpack_require__(/*! ./utils/getHTMLImageOptions */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/getHTMLImageOptions.ts");
|
|
32924
33171
|
var getSelectedImage_1 = __webpack_require__(/*! ./utils/getSelectedImage */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/getSelectedImage.ts");
|
|
@@ -32927,6 +33174,7 @@ var ImageEditElementClass_1 = __webpack_require__(/*! ./types/ImageEditElementCl
|
|
|
32927
33174
|
var normalizeImageSelection_1 = __webpack_require__(/*! ./utils/normalizeImageSelection */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/normalizeImageSelection.ts");
|
|
32928
33175
|
var resizerContext_1 = __webpack_require__(/*! ./Resizer/resizerContext */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/Resizer/resizerContext.ts");
|
|
32929
33176
|
var rotatorContext_1 = __webpack_require__(/*! ./Rotator/rotatorContext */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/Rotator/rotatorContext.ts");
|
|
33177
|
+
var updateHandleCursor_1 = __webpack_require__(/*! ./utils/updateHandleCursor */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/updateHandleCursor.ts");
|
|
32930
33178
|
var updateRotateHandle_1 = __webpack_require__(/*! ./Rotator/updateRotateHandle */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/Rotator/updateRotateHandle.ts");
|
|
32931
33179
|
var updateWrapper_1 = __webpack_require__(/*! ./utils/updateWrapper */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/updateWrapper.ts");
|
|
32932
33180
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
@@ -32953,8 +33201,6 @@ var IMAGE_EDIT_FORMAT_EVENT = 'ImageEditEvent';
|
|
|
32953
33201
|
*/
|
|
32954
33202
|
var ImageEditPlugin = /** @class */ (function () {
|
|
32955
33203
|
function ImageEditPlugin(options) {
|
|
32956
|
-
if (options === void 0) { options = DefaultOptions; }
|
|
32957
|
-
this.options = options;
|
|
32958
33204
|
this.editor = null;
|
|
32959
33205
|
this.shadowSpan = null;
|
|
32960
33206
|
this.selectedImage = null;
|
|
@@ -32972,6 +33218,7 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
32972
33218
|
this.zoomScale = 1;
|
|
32973
33219
|
this.disposer = null;
|
|
32974
33220
|
this.isEditing = false;
|
|
33221
|
+
this.options = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, DefaultOptions), options);
|
|
32975
33222
|
}
|
|
32976
33223
|
/**
|
|
32977
33224
|
* Get name of this plugin
|
|
@@ -33254,11 +33501,42 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
33254
33501
|
});
|
|
33255
33502
|
};
|
|
33256
33503
|
ImageEditPlugin.prototype.startEditing = function (editor, image, apiOperation) {
|
|
33504
|
+
var _this = this;
|
|
33505
|
+
if (!this.imageEditInfo) {
|
|
33506
|
+
this.imageEditInfo = (0, updateImageEditInfo_1.getSelectedImageMetadata)(editor, image);
|
|
33507
|
+
}
|
|
33508
|
+
if ((this.imageEditInfo.widthPx == 0 || this.imageEditInfo.heightPx == 0) &&
|
|
33509
|
+
!image.complete) {
|
|
33510
|
+
// Image dimensions are zero and loading is incomplete, wait for image to load.
|
|
33511
|
+
image.onload = function () {
|
|
33512
|
+
_this.updateImageDimensionsIfZero(image);
|
|
33513
|
+
_this.startEditingInternal(editor, image, apiOperation);
|
|
33514
|
+
image.onload = null;
|
|
33515
|
+
image.onerror = null;
|
|
33516
|
+
};
|
|
33517
|
+
image.onerror = function () {
|
|
33518
|
+
image.onload = null;
|
|
33519
|
+
image.onerror = null;
|
|
33520
|
+
};
|
|
33521
|
+
}
|
|
33522
|
+
else {
|
|
33523
|
+
this.updateImageDimensionsIfZero(image);
|
|
33524
|
+
this.startEditingInternal(editor, image, apiOperation);
|
|
33525
|
+
}
|
|
33526
|
+
};
|
|
33527
|
+
ImageEditPlugin.prototype.updateImageDimensionsIfZero = function (image) {
|
|
33528
|
+
var _a, _b;
|
|
33529
|
+
if (((_a = this.imageEditInfo) === null || _a === void 0 ? void 0 : _a.widthPx) === 0 || ((_b = this.imageEditInfo) === null || _b === void 0 ? void 0 : _b.heightPx) === 0) {
|
|
33530
|
+
this.imageEditInfo.widthPx = image.clientWidth;
|
|
33531
|
+
this.imageEditInfo.heightPx = image.clientHeight;
|
|
33532
|
+
}
|
|
33533
|
+
};
|
|
33534
|
+
ImageEditPlugin.prototype.startEditingInternal = function (editor, image, apiOperation) {
|
|
33257
33535
|
if (!this.imageEditInfo) {
|
|
33258
33536
|
this.imageEditInfo = (0, updateImageEditInfo_1.getSelectedImageMetadata)(editor, image);
|
|
33259
33537
|
}
|
|
33260
|
-
this.lastSrc = image.getAttribute('src');
|
|
33261
33538
|
this.imageHTMLOptions = (0, getHTMLImageOptions_1.getHTMLImageOptions)(editor, this.options, this.imageEditInfo);
|
|
33539
|
+
this.lastSrc = image.getAttribute('src');
|
|
33262
33540
|
var _a = (0, createImageWrapper_1.createImageWrapper)(editor, image, this.options, this.imageEditInfo, this.imageHTMLOptions, apiOperation), resizers = _a.resizers, rotators = _a.rotators, wrapper = _a.wrapper, shadowSpan = _a.shadowSpan, imageClone = _a.imageClone, croppers = _a.croppers;
|
|
33263
33541
|
this.shadowSpan = shadowSpan;
|
|
33264
33542
|
this.selectedImage = image;
|
|
@@ -33276,7 +33554,7 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
33276
33554
|
};
|
|
33277
33555
|
ImageEditPlugin.prototype.startRotateAndResize = function (editor, image) {
|
|
33278
33556
|
var _this = this;
|
|
33279
|
-
var _a;
|
|
33557
|
+
var _a, _b;
|
|
33280
33558
|
if (this.imageEditInfo) {
|
|
33281
33559
|
this.startEditing(editor, image, ['resize', 'rotate']);
|
|
33282
33560
|
if (this.selectedImage && this.imageEditInfo && this.wrapper && this.clonedImage) {
|
|
@@ -33290,21 +33568,28 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
33290
33568
|
_this.wasImageResized = true;
|
|
33291
33569
|
}
|
|
33292
33570
|
}, 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 () {
|
|
33293
|
-
var _a;
|
|
33571
|
+
var _a, _b;
|
|
33294
33572
|
if (_this.imageEditInfo &&
|
|
33295
33573
|
_this.selectedImage &&
|
|
33296
33574
|
_this.wrapper &&
|
|
33297
33575
|
_this.clonedImage) {
|
|
33298
33576
|
(0, updateWrapper_1.updateWrapper)(_this.imageEditInfo, _this.options, _this.selectedImage, _this.clonedImage, _this.wrapper);
|
|
33299
|
-
_this.updateRotateHandleState(editor, _this.selectedImage, _this.wrapper, _this.rotators, (_a = _this.imageEditInfo) === null || _a === void 0 ? void 0 : _a.angleRad);
|
|
33577
|
+
_this.updateRotateHandleState(editor, _this.selectedImage, _this.wrapper, _this.rotators, (_a = _this.imageEditInfo) === null || _a === void 0 ? void 0 : _a.angleRad, !!((_b = _this.options) === null || _b === void 0 ? void 0 : _b.disableSideResize));
|
|
33578
|
+
_this.updateResizeHandleDirection(_this.resizers, _this.imageEditInfo.angleRad);
|
|
33300
33579
|
}
|
|
33301
33580
|
}, this.zoomScale, isMobileOrTable)), false);
|
|
33302
33581
|
(0, updateWrapper_1.updateWrapper)(this.imageEditInfo, this.options, this.selectedImage, this.clonedImage, this.wrapper, this.resizers);
|
|
33303
|
-
this.updateRotateHandleState(editor, this.selectedImage, this.wrapper, this.rotators, (_a = this.imageEditInfo) === null || _a === void 0 ? void 0 : _a.angleRad);
|
|
33582
|
+
this.updateRotateHandleState(editor, this.selectedImage, this.wrapper, this.rotators, (_a = this.imageEditInfo) === null || _a === void 0 ? void 0 : _a.angleRad, !!((_b = this.options) === null || _b === void 0 ? void 0 : _b.disableSideResize));
|
|
33304
33583
|
}
|
|
33305
33584
|
}
|
|
33306
33585
|
};
|
|
33307
|
-
ImageEditPlugin.prototype.
|
|
33586
|
+
ImageEditPlugin.prototype.updateResizeHandleDirection = function (resizers, angleRad) {
|
|
33587
|
+
var resizeHandles = (0, filterInnerResizerHandles_1.filterInnerResizerHandles)(resizers);
|
|
33588
|
+
if (angleRad !== undefined) {
|
|
33589
|
+
(0, updateHandleCursor_1.updateHandleCursor)(resizeHandles, angleRad);
|
|
33590
|
+
}
|
|
33591
|
+
};
|
|
33592
|
+
ImageEditPlugin.prototype.updateRotateHandleState = function (editor, image, wrapper, rotators, angleRad, disableSideResize) {
|
|
33308
33593
|
var viewport = editor.getVisibleViewport();
|
|
33309
33594
|
var smallImage = (0, imageEditUtils_1.isASmallImage)(image.width, image.height);
|
|
33310
33595
|
if (viewport && rotators && rotators.length > 0) {
|
|
@@ -33312,7 +33597,7 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
33312
33597
|
var rotatorHandle = rotator.firstElementChild;
|
|
33313
33598
|
if ((0, roosterjs_content_model_dom_1.isNodeOfType)(rotatorHandle, 'ELEMENT_NODE') &&
|
|
33314
33599
|
(0, roosterjs_content_model_dom_1.isElementOfType)(rotatorHandle, 'div')) {
|
|
33315
|
-
(0, updateRotateHandle_1.updateRotateHandle)(viewport, angleRad !== null && angleRad !== void 0 ? angleRad : 0, wrapper, rotator, rotatorHandle, smallImage);
|
|
33600
|
+
(0, updateRotateHandle_1.updateRotateHandle)(viewport, angleRad !== null && angleRad !== void 0 ? angleRad : 0, wrapper, rotator, rotatorHandle, smallImage, disableSideResize);
|
|
33316
33601
|
}
|
|
33317
33602
|
}
|
|
33318
33603
|
};
|
|
@@ -33461,7 +33746,6 @@ exports.ImageEditPlugin = ImageEditPlugin;
|
|
|
33461
33746
|
|
|
33462
33747
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
33463
33748
|
exports.createImageResizer = void 0;
|
|
33464
|
-
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
33465
33749
|
var createElement_1 = __webpack_require__(/*! ../../pluginUtils/CreateElement/createElement */ "./packages/roosterjs-content-model-plugins/lib/pluginUtils/CreateElement/createElement.ts");
|
|
33466
33750
|
var ImageEditElementClass_1 = __webpack_require__(/*! ../types/ImageEditElementClass */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/types/ImageEditElementClass.ts");
|
|
33467
33751
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
@@ -33471,17 +33755,18 @@ var RESIZE_HANDLE_SIZE = 10;
|
|
|
33471
33755
|
/**
|
|
33472
33756
|
* @internal
|
|
33473
33757
|
*/
|
|
33474
|
-
function createImageResizer(doc, onShowResizeHandle) {
|
|
33758
|
+
function createImageResizer(doc, disableSideResize, onShowResizeHandle) {
|
|
33475
33759
|
var cornerElements = getCornerResizeHTML(onShowResizeHandle);
|
|
33476
33760
|
var sideElements = getSideResizeHTML(onShowResizeHandle);
|
|
33477
|
-
var handles =
|
|
33761
|
+
var handles = disableSideResize ? cornerElements : cornerElements.concat(sideElements);
|
|
33762
|
+
return handles
|
|
33763
|
+
.map(function (element) {
|
|
33478
33764
|
var handle = (0, createElement_1.createElement)(element, doc);
|
|
33479
33765
|
if ((0, roosterjs_content_model_dom_1.isNodeOfType)(handle, 'ELEMENT_NODE') && (0, roosterjs_content_model_dom_1.isElementOfType)(handle, 'div')) {
|
|
33480
33766
|
return handle;
|
|
33481
33767
|
}
|
|
33482
33768
|
})
|
|
33483
33769
|
.filter(function (element) { return !!element; });
|
|
33484
|
-
return handles;
|
|
33485
33770
|
}
|
|
33486
33771
|
exports.createImageResizer = createImageResizer;
|
|
33487
33772
|
/**
|
|
@@ -33683,13 +33968,13 @@ exports.createImageRotator = createImageRotator;
|
|
|
33683
33968
|
*
|
|
33684
33969
|
*/
|
|
33685
33970
|
function getRotateHTML(_a) {
|
|
33686
|
-
var borderColor = _a.borderColor, rotateHandleBackColor = _a.rotateHandleBackColor;
|
|
33971
|
+
var borderColor = _a.borderColor, rotateHandleBackColor = _a.rotateHandleBackColor, disableSideResize = _a.disableSideResize;
|
|
33687
33972
|
var handleLeft = constants_1.ROTATE_SIZE / 2;
|
|
33688
33973
|
return [
|
|
33689
33974
|
{
|
|
33690
33975
|
tag: 'div',
|
|
33691
33976
|
className: ImageEditElementClass_1.ImageEditElementClass.RotateCenter,
|
|
33692
|
-
style: "position:absolute;left:50%;width:1px;background-color:" + borderColor + ";top:" + -constants_1.ROTATE_HANDLE_TOP + "px;height:" + constants_1.ROTATE_GAP + "px;margin-left:" + -constants_1.ROTATE_WIDTH + "px;",
|
|
33977
|
+
style: "position:absolute;left:50%;width:1px;background-color:" + borderColor + ";top:" + (disableSideResize ? -constants_1.ROTATE_HANDLE_TOP_NO_SIDE_RESIZE : -constants_1.ROTATE_HANDLE_TOP) + "px;height:" + constants_1.ROTATE_GAP + "px;margin-left:" + -constants_1.ROTATE_WIDTH + "px;",
|
|
33693
33978
|
children: [
|
|
33694
33979
|
{
|
|
33695
33980
|
tag: 'div',
|
|
@@ -33796,7 +34081,7 @@ var constants_1 = __webpack_require__(/*! ../constants/constants */ "./packages/
|
|
|
33796
34081
|
* Move rotate handle. When image is very close to the border of editor, rotate handle may not be visible.
|
|
33797
34082
|
* Fix it by reduce the distance from image to rotate handle
|
|
33798
34083
|
*/
|
|
33799
|
-
function updateRotateHandle(editorRect, angleRad, wrapper, rotateCenter, rotateHandle, isSmallImage) {
|
|
34084
|
+
function updateRotateHandle(editorRect, angleRad, wrapper, rotateCenter, rotateHandle, isSmallImage, disableSideResize) {
|
|
33800
34085
|
if (isSmallImage) {
|
|
33801
34086
|
rotateCenter.style.display = 'none';
|
|
33802
34087
|
rotateHandle.style.display = 'none';
|
|
@@ -33834,7 +34119,8 @@ function updateRotateHandle(editorRect, angleRad, wrapper, rotateCenter, rotateH
|
|
|
33834
34119
|
}
|
|
33835
34120
|
var rotateGap = Math.max(Math.min(constants_1.ROTATE_GAP, adjustedDistance), 0);
|
|
33836
34121
|
var rotateTop = Math.max(Math.min(constants_1.ROTATE_SIZE, adjustedDistance - rotateGap), 0);
|
|
33837
|
-
rotateCenter.style.top =
|
|
34122
|
+
rotateCenter.style.top =
|
|
34123
|
+
-rotateGap - (disableSideResize ? 0 : constants_1.RESIZE_HANDLE_MARGIN) + 'px';
|
|
33838
34124
|
rotateCenter.style.height = rotateGap + 'px';
|
|
33839
34125
|
rotateHandle.style.top = -rotateTop + 'px';
|
|
33840
34126
|
}
|
|
@@ -33854,7 +34140,7 @@ exports.updateRotateHandle = updateRotateHandle;
|
|
|
33854
34140
|
"use strict";
|
|
33855
34141
|
|
|
33856
34142
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
33857
|
-
exports.RESIZE_IMAGE = exports.MIN_HEIGHT_WIDTH = exports.YS_CROP = exports.XS_CROP = exports.CROP_HANDLE_WIDTH = exports.CROP_HANDLE_SIZE = exports.ROTATE_HANDLE_TOP = exports.ROTATE_WIDTH = exports.Ys = exports.Xs = exports.ROTATION = exports.ROTATE_ICON_MARGIN = exports.DEFAULT_ROTATE_HANDLE_HEIGHT = exports.DEG_PER_RAD = exports.ROTATE_GAP = exports.ROTATE_SIZE = exports.RESIZE_HANDLE_MARGIN = exports.RESIZE_HANDLE_SIZE = void 0;
|
|
34143
|
+
exports.RESIZE_IMAGE = exports.MIN_HEIGHT_WIDTH = exports.YS_CROP = exports.XS_CROP = exports.CROP_HANDLE_WIDTH = exports.CROP_HANDLE_SIZE = exports.ROTATE_HANDLE_TOP_NO_SIDE_RESIZE = exports.ROTATE_HANDLE_TOP = exports.ROTATE_WIDTH = exports.Ys = exports.Xs = exports.ROTATION = exports.ROTATE_ICON_MARGIN = exports.DEFAULT_ROTATE_HANDLE_HEIGHT = exports.DEG_PER_RAD = exports.ROTATE_GAP = exports.ROTATE_SIZE = exports.RESIZE_HANDLE_MARGIN = exports.RESIZE_HANDLE_SIZE = void 0;
|
|
33858
34144
|
/**
|
|
33859
34145
|
* @internal
|
|
33860
34146
|
*/
|
|
@@ -33908,6 +34194,10 @@ exports.ROTATE_WIDTH = 1;
|
|
|
33908
34194
|
* @internal
|
|
33909
34195
|
*/
|
|
33910
34196
|
exports.ROTATE_HANDLE_TOP = exports.ROTATE_GAP + exports.RESIZE_HANDLE_MARGIN;
|
|
34197
|
+
/**
|
|
34198
|
+
* @internal
|
|
34199
|
+
*/
|
|
34200
|
+
exports.ROTATE_HANDLE_TOP_NO_SIDE_RESIZE = exports.ROTATE_GAP;
|
|
33911
34201
|
/**
|
|
33912
34202
|
* @internal
|
|
33913
34203
|
*/
|
|
@@ -34197,7 +34487,7 @@ function createImageWrapper(editor, image, options, editInfo, htmlOptions, opera
|
|
|
34197
34487
|
}
|
|
34198
34488
|
var resizers = [];
|
|
34199
34489
|
if (operation.indexOf('resize') > -1) {
|
|
34200
|
-
resizers = (0, createImageResizer_1.createImageResizer)(doc);
|
|
34490
|
+
resizers = (0, createImageResizer_1.createImageResizer)(doc, !!options.disableSideResize);
|
|
34201
34491
|
}
|
|
34202
34492
|
var croppers = [];
|
|
34203
34493
|
if (operation.indexOf('crop') > -1) {
|
|
@@ -34214,7 +34504,6 @@ var createShadowSpan = function (wrapper, imageSpan) {
|
|
|
34214
34504
|
mode: 'open',
|
|
34215
34505
|
});
|
|
34216
34506
|
imageSpan.id = IMAGE_EDIT_SHADOW_ROOT;
|
|
34217
|
-
wrapper.style.verticalAlign = 'bottom';
|
|
34218
34507
|
shadowRoot.appendChild(wrapper);
|
|
34219
34508
|
return imageSpan;
|
|
34220
34509
|
};
|
|
@@ -34317,6 +34606,36 @@ function doubleCheckResize(editInfo, preserveRatio, actualWidth, actualHeight) {
|
|
|
34317
34606
|
exports.doubleCheckResize = doubleCheckResize;
|
|
34318
34607
|
|
|
34319
34608
|
|
|
34609
|
+
/***/ }),
|
|
34610
|
+
|
|
34611
|
+
/***/ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/filterInnerResizerHandles.ts":
|
|
34612
|
+
/*!***************************************************************************************************!*\
|
|
34613
|
+
!*** ./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/filterInnerResizerHandles.ts ***!
|
|
34614
|
+
\***************************************************************************************************/
|
|
34615
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
34616
|
+
|
|
34617
|
+
"use strict";
|
|
34618
|
+
|
|
34619
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
34620
|
+
exports.filterInnerResizerHandles = void 0;
|
|
34621
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
34622
|
+
/**
|
|
34623
|
+
* @internal
|
|
34624
|
+
*/
|
|
34625
|
+
function filterInnerResizerHandles(resizeHandles) {
|
|
34626
|
+
return resizeHandles
|
|
34627
|
+
.map(function (resizer) {
|
|
34628
|
+
var resizeHandle = resizer.firstElementChild;
|
|
34629
|
+
if ((0, roosterjs_content_model_dom_1.isNodeOfType)(resizeHandle, 'ELEMENT_NODE') &&
|
|
34630
|
+
(0, roosterjs_content_model_dom_1.isElementOfType)(resizeHandle, 'div')) {
|
|
34631
|
+
return resizeHandle;
|
|
34632
|
+
}
|
|
34633
|
+
})
|
|
34634
|
+
.filter(function (handle) { return !!handle; });
|
|
34635
|
+
}
|
|
34636
|
+
exports.filterInnerResizerHandles = filterInnerResizerHandles;
|
|
34637
|
+
|
|
34638
|
+
|
|
34320
34639
|
/***/ }),
|
|
34321
34640
|
|
|
34322
34641
|
/***/ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/findEditingImage.ts":
|
|
@@ -34544,6 +34863,7 @@ var getHTMLImageOptions = function (editor, options, editInfo) {
|
|
|
34544
34863
|
borderColor: options.borderColor || (editor.isDarkMode() ? DARK_MODE_BGCOLOR : LIGHT_MODE_BGCOLOR),
|
|
34545
34864
|
rotateHandleBackColor: editor.isDarkMode() ? DARK_MODE_BGCOLOR : LIGHT_MODE_BGCOLOR,
|
|
34546
34865
|
isSmallImage: (0, imageEditUtils_1.isASmallImage)((_a = editInfo.widthPx) !== null && _a !== void 0 ? _a : 0, (_b = editInfo.heightPx) !== null && _b !== void 0 ? _b : 0),
|
|
34866
|
+
disableSideResize: !!options.disableSideResize,
|
|
34547
34867
|
};
|
|
34548
34868
|
};
|
|
34549
34869
|
exports.getHTMLImageOptions = getHTMLImageOptions;
|
|
@@ -34854,6 +35174,7 @@ exports.getSelectedImageMetadata = getSelectedImageMetadata;
|
|
|
34854
35174
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
34855
35175
|
exports.updateWrapper = void 0;
|
|
34856
35176
|
var doubleCheckResize_1 = __webpack_require__(/*! ./doubleCheckResize */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/doubleCheckResize.ts");
|
|
35177
|
+
var filterInnerResizerHandles_1 = __webpack_require__(/*! ./filterInnerResizerHandles */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/filterInnerResizerHandles.ts");
|
|
34857
35178
|
var generateImageSize_1 = __webpack_require__(/*! ./generateImageSize */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/generateImageSize.ts");
|
|
34858
35179
|
var ImageEditElementClass_1 = __webpack_require__(/*! ../types/ImageEditElementClass */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/types/ImageEditElementClass.ts");
|
|
34859
35180
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
@@ -34877,9 +35198,13 @@ function updateWrapper(editInfo, options, image, clonedImage, wrapper, resizers,
|
|
|
34877
35198
|
var cropTopPx = originalHeight * (topPercent || 0);
|
|
34878
35199
|
var cropBottomPx = originalHeight * (bottomPercent || 0);
|
|
34879
35200
|
// Update size and margin of the wrapper
|
|
34880
|
-
wrapper.style.
|
|
35201
|
+
wrapper.style.marginTop = marginVertical + "px";
|
|
35202
|
+
wrapper.style.marginBottom = marginVertical + 5 + "px "; // 5px to adjust the image on top of the handles
|
|
35203
|
+
wrapper.style.marginLeft = marginHorizontal + "px";
|
|
35204
|
+
wrapper.style.marginRight = marginHorizontal + "px";
|
|
34881
35205
|
wrapper.style.transform = "rotate(" + angleRad + "rad)";
|
|
34882
35206
|
(0, imageEditUtils_1.setWrapperSizeDimensions)(wrapper, image, visibleWidth, visibleHeight);
|
|
35207
|
+
wrapper.style.verticalAlign = 'text-bottom';
|
|
34883
35208
|
// Update the text-alignment to avoid the image to overflow if the parent element have align center or right
|
|
34884
35209
|
// or if the direction is Right To Left
|
|
34885
35210
|
if ((0, imageEditUtils_1.isRTL)(clonedImage)) {
|
|
@@ -34895,7 +35220,6 @@ function updateWrapper(editInfo, options, image, clonedImage, wrapper, resizers,
|
|
|
34895
35220
|
// Update size of the image
|
|
34896
35221
|
clonedImage.style.width = (0, imageEditUtils_1.getPx)(originalWidth);
|
|
34897
35222
|
clonedImage.style.height = (0, imageEditUtils_1.getPx)(originalHeight);
|
|
34898
|
-
clonedImage.style.verticalAlign = 'bottom';
|
|
34899
35223
|
clonedImage.style.position = 'absolute';
|
|
34900
35224
|
//Update flip direction
|
|
34901
35225
|
(0, imageEditUtils_1.setFlipped)(clonedImage.parentElement, flippedHorizontal, flippedVertical);
|
|
@@ -34921,15 +35245,7 @@ function updateWrapper(editInfo, options, image, clonedImage, wrapper, resizers,
|
|
|
34921
35245
|
var clientWidth = wrapper.clientWidth;
|
|
34922
35246
|
var clientHeight = wrapper.clientHeight;
|
|
34923
35247
|
(0, doubleCheckResize_1.doubleCheckResize)(editInfo, options.preserveRatio || false, clientWidth, clientHeight);
|
|
34924
|
-
var resizeHandles = resizers
|
|
34925
|
-
.map(function (resizer) {
|
|
34926
|
-
var resizeHandle = resizer.firstElementChild;
|
|
34927
|
-
if ((0, roosterjs_content_model_dom_1.isNodeOfType)(resizeHandle, 'ELEMENT_NODE') &&
|
|
34928
|
-
(0, roosterjs_content_model_dom_1.isElementOfType)(resizeHandle, 'div')) {
|
|
34929
|
-
return resizeHandle;
|
|
34930
|
-
}
|
|
34931
|
-
})
|
|
34932
|
-
.filter(function (handle) { return !!handle; });
|
|
35248
|
+
var resizeHandles = (0, filterInnerResizerHandles_1.filterInnerResizerHandles)(resizers);
|
|
34933
35249
|
if (angleRad !== undefined) {
|
|
34934
35250
|
(0, updateHandleCursor_1.updateHandleCursor)(resizeHandles, angleRad);
|
|
34935
35251
|
}
|