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