roosterjs 9.55.0 → 9.57.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-amd-min.js +1 -1
- package/dist/rooster-amd-min.js.map +1 -1
- package/dist/rooster-amd.d.ts +97 -9
- package/dist/rooster-amd.js +301 -78
- 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-amd-min.js +1 -1
- package/dist/rooster-react-amd-min.js.map +1 -1
- package/dist/rooster-react-amd.d.ts +1 -1
- package/dist/rooster-react-amd.js +5 -3
- package/dist/rooster-react-amd.js.map +1 -1
- package/dist/rooster-react-min.js +1 -1
- package/dist/rooster-react-min.js.map +1 -1
- package/dist/rooster-react.d.ts +1 -1
- package/dist/rooster-react.js +58 -56
- package/dist/rooster-react.js.map +1 -1
- package/dist/rooster.d.ts +97 -9
- package/dist/rooster.js +301 -78
- package/dist/rooster.js.map +1 -1
- package/package.json +7 -7
package/dist/rooster.js
CHANGED
|
@@ -8545,9 +8545,9 @@ var DefaultSanitizingOption = {
|
|
|
8545
8545
|
/**
|
|
8546
8546
|
* @internal
|
|
8547
8547
|
*/
|
|
8548
|
-
function createDomToModelContextForSanitizing(document, defaultFormat, defaultOption, additionalSanitizingOption, domHelper) {
|
|
8548
|
+
function createDomToModelContextForSanitizing(document, defaultFormat, defaultOption, additionalSanitizingOption, domHelper, experimentalFeatures) {
|
|
8549
8549
|
var sanitizingOption = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, DefaultSanitizingOption), additionalSanitizingOption);
|
|
8550
|
-
return (0, roosterjs_content_model_dom_1.createDomToModelContext)((0, tslib_1.__assign)((0, tslib_1.__assign)({ defaultFormat: defaultFormat }, (0, getRootComputedStyleForContext_1.getRootComputedStyleForContext)(document)), { experimentalFeatures: [], editorViewWidth: domHelper === null || domHelper === void 0 ? void 0 : domHelper.getClientWidth() }), defaultOption, {
|
|
8550
|
+
return (0, roosterjs_content_model_dom_1.createDomToModelContext)((0, tslib_1.__assign)((0, tslib_1.__assign)({ defaultFormat: defaultFormat }, (0, getRootComputedStyleForContext_1.getRootComputedStyleForContext)(document)), { experimentalFeatures: experimentalFeatures !== null && experimentalFeatures !== void 0 ? experimentalFeatures : [], editorViewWidth: domHelper === null || domHelper === void 0 ? void 0 : domHelper.getClientWidth() }), defaultOption, {
|
|
8551
8551
|
processorOverride: {
|
|
8552
8552
|
'#text': pasteTextProcessor_1.pasteTextProcessor,
|
|
8553
8553
|
entity: (0, pasteEntityProcessor_1.createPasteEntityProcessor)(sanitizingOption),
|
|
@@ -9389,12 +9389,13 @@ var BlackColor = 'rgb(0,0,0)';
|
|
|
9389
9389
|
*/
|
|
9390
9390
|
function mergePasteContent(editor, eventResult, isFirstPaste) {
|
|
9391
9391
|
var fragment = eventResult.fragment, domToModelOption = eventResult.domToModelOption, customizedMerge = eventResult.customizedMerge, pasteType = eventResult.pasteType, clipboardData = eventResult.clipboardData, containsBlockElements = eventResult.containsBlockElements;
|
|
9392
|
+
var shouldScrollCaretIntoView = !isImageOnlyFragment(fragment);
|
|
9392
9393
|
editor.formatContentModel(function (model, context) {
|
|
9393
9394
|
if (!isFirstPaste && clipboardData.modelBeforePaste) {
|
|
9394
9395
|
var clonedModel = (0, roosterjs_content_model_dom_1.cloneModelForPaste)(clipboardData.modelBeforePaste);
|
|
9395
9396
|
model.blocks = clonedModel.blocks;
|
|
9396
9397
|
}
|
|
9397
|
-
var domToModelContext = (0, createDomToModelContextForSanitizing_1.createDomToModelContextForSanitizing)(editor.getDocument(), undefined /*defaultFormat*/, editor.getEnvironment().domToModelSettings.customized, domToModelOption, editor.getDOMHelper());
|
|
9398
|
+
var domToModelContext = (0, createDomToModelContextForSanitizing_1.createDomToModelContextForSanitizing)(editor.getDocument(), undefined /*defaultFormat*/, editor.getEnvironment().domToModelSettings.customized, domToModelOption, editor.getDOMHelper(), editor.getExperimentalFeatures());
|
|
9398
9399
|
domToModelContext.segmentFormat = getSegmentFormatForPaste(model, pasteType);
|
|
9399
9400
|
var pasteModel = (0, roosterjs_content_model_dom_1.domToContentModel)(fragment, domToModelContext);
|
|
9400
9401
|
var mergeOption = {
|
|
@@ -9414,7 +9415,7 @@ function mergePasteContent(editor, eventResult, isFirstPaste) {
|
|
|
9414
9415
|
}, {
|
|
9415
9416
|
changeSource: roosterjs_content_model_dom_1.ChangeSource.Paste,
|
|
9416
9417
|
getChangeData: function () { return clipboardData; },
|
|
9417
|
-
scrollCaretIntoView:
|
|
9418
|
+
scrollCaretIntoView: shouldScrollCaretIntoView,
|
|
9418
9419
|
apiName: 'paste',
|
|
9419
9420
|
});
|
|
9420
9421
|
}
|
|
@@ -9455,6 +9456,13 @@ function getLastSegmentFormat(pasteModel) {
|
|
|
9455
9456
|
}
|
|
9456
9457
|
return {};
|
|
9457
9458
|
}
|
|
9459
|
+
function isImageOnlyFragment(pasteFragment) {
|
|
9460
|
+
var _a;
|
|
9461
|
+
var images = pasteFragment.querySelectorAll('img');
|
|
9462
|
+
return (images.length === 1 &&
|
|
9463
|
+
pasteFragment.childNodes.length === 1 &&
|
|
9464
|
+
((_a = pasteFragment.textContent) === null || _a === void 0 ? void 0 : _a.trim()) === '');
|
|
9465
|
+
}
|
|
9458
9466
|
|
|
9459
9467
|
|
|
9460
9468
|
/***/ },
|
|
@@ -9500,11 +9508,11 @@ function paste(editor, clipboardData, pasteTypeOrGetter) {
|
|
|
9500
9508
|
clipboardData.rawHtml = (0, cleanHtmlComments_1.cleanHtmlComments)(clipboardData.rawHtml);
|
|
9501
9509
|
}
|
|
9502
9510
|
var doc = createDOMFromHtml(clipboardData.rawHtml, domCreator);
|
|
9503
|
-
var pasteType = typeof pasteTypeOrGetter == 'function'
|
|
9504
|
-
? pasteTypeOrGetter(doc, clipboardData)
|
|
9505
|
-
: pasteTypeOrGetter;
|
|
9506
9511
|
// 2. Handle HTML from clipboard
|
|
9507
9512
|
var htmlFromClipboard = (0, retrieveHtmlInfo_1.retrieveHtmlInfo)(doc, clipboardData);
|
|
9513
|
+
var pasteType = typeof pasteTypeOrGetter == 'function'
|
|
9514
|
+
? pasteTypeOrGetter(doc, clipboardData, editor.getEnvironment(), htmlFromClipboard.metadata)
|
|
9515
|
+
: pasteTypeOrGetter;
|
|
9508
9516
|
// 3. Create target fragment
|
|
9509
9517
|
var sourceFragment = (0, createPasteFragment_1.createPasteFragment)(editor.getDocument(), clipboardData, pasteType, (_a = (clipboardData.rawHtml == clipboardData.html
|
|
9510
9518
|
? doc
|
|
@@ -10289,7 +10297,7 @@ var formatContentModel = function (core, formatter, options, domToModelOptions)
|
|
|
10289
10297
|
try {
|
|
10290
10298
|
handleImages(core, context);
|
|
10291
10299
|
selection =
|
|
10292
|
-
(_a = core.api.setContentModel(core, model, hasFocus ? undefined : { ignoreSelection: true }, // If editor did not have focus before format, do not set focus after format
|
|
10300
|
+
(_a = core.api.setContentModel(core, model, hasFocus && !(options === null || options === void 0 ? void 0 : options.skipDOMSelection) ? undefined : { ignoreSelection: true }, // If editor did not have focus before format, do not set focus after format
|
|
10293
10301
|
onNodeCreated)) !== null && _a !== void 0 ? _a : undefined;
|
|
10294
10302
|
handlePendingFormat(core, context, selection);
|
|
10295
10303
|
if (scroll && ((selection === null || selection === void 0 ? void 0 : selection.type) == 'range' || (selection === null || selection === void 0 ? void 0 : selection.type) == 'image')) {
|
|
@@ -14491,6 +14499,7 @@ var Down = 'ArrowDown';
|
|
|
14491
14499
|
var Left = 'ArrowLeft';
|
|
14492
14500
|
var Right = 'ArrowRight';
|
|
14493
14501
|
var Tab = 'Tab';
|
|
14502
|
+
var F10 = 'F10';
|
|
14494
14503
|
/**
|
|
14495
14504
|
* @internal
|
|
14496
14505
|
*/
|
|
@@ -14507,7 +14516,6 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14507
14516
|
this.disposer = null;
|
|
14508
14517
|
this.logicalRootDisposer = null;
|
|
14509
14518
|
this.isSafari = false;
|
|
14510
|
-
this.isMac = false;
|
|
14511
14519
|
this.scrollTopCache = 0;
|
|
14512
14520
|
this.onMouseMove = function (event) {
|
|
14513
14521
|
var _a, _b, _c;
|
|
@@ -14559,7 +14567,7 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14559
14567
|
// MacOS will not create a mouseUp event if contextMenu event is not prevent defaulted.
|
|
14560
14568
|
// Make sure we capture image target even if image is wrapped
|
|
14561
14569
|
this.getContainedTargetImage = function (event, previousSelection) {
|
|
14562
|
-
if (!
|
|
14570
|
+
if (!previousSelection || previousSelection.type !== 'image') {
|
|
14563
14571
|
return null;
|
|
14564
14572
|
}
|
|
14565
14573
|
var target = event.target;
|
|
@@ -14599,11 +14607,11 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14599
14607
|
if (((_a = _this.editor) === null || _a === void 0 ? void 0 : _a.hasFocus()) && !_this.editor.isInShadowEdit()) {
|
|
14600
14608
|
var newSelection = _this.editor.getDOMSelection();
|
|
14601
14609
|
var domHelper = _this.editor.getDOMHelper();
|
|
14602
|
-
//If
|
|
14610
|
+
// If an image selection changed to a wider range due to a keyboard event, we should update the selection
|
|
14603
14611
|
var range = domHelper.getSelectionRange();
|
|
14604
14612
|
if (range) {
|
|
14605
14613
|
var image = (0, isSingleImageInSelection_1.isSingleImageInSelection)(range);
|
|
14606
|
-
if ((newSelection === null || newSelection === void 0 ? void 0 : newSelection.type) == 'image' && !image) {
|
|
14614
|
+
if ((newSelection === null || newSelection === void 0 ? void 0 : newSelection.type) == 'image' && !image && !range.collapsed) {
|
|
14607
14615
|
var sel = (_b = _this.editor.getDocument().defaultView) === null || _b === void 0 ? void 0 : _b.getSelection();
|
|
14608
14616
|
var isReverted = sel
|
|
14609
14617
|
? sel.focusNode != range.endContainer || sel.focusOffset != range.endOffset
|
|
@@ -14662,7 +14670,6 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14662
14670
|
var env = this.editor.getEnvironment();
|
|
14663
14671
|
var document = this.editor.getDocument();
|
|
14664
14672
|
this.isSafari = !!env.isSafari;
|
|
14665
|
-
this.isMac = !!env.isMac;
|
|
14666
14673
|
document.addEventListener('selectionchange', this.onSelectionChange);
|
|
14667
14674
|
if (this.isSafari) {
|
|
14668
14675
|
this.disposer = this.editor.attachDomEvent({
|
|
@@ -14815,6 +14822,7 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14815
14822
|
}
|
|
14816
14823
|
break;
|
|
14817
14824
|
case 'range':
|
|
14825
|
+
var image = void 0;
|
|
14818
14826
|
if (key == Up || key == Down || key == Left || key == Right || key == Tab) {
|
|
14819
14827
|
var start = selection.range.startContainer;
|
|
14820
14828
|
this.state.tableSelection = this.parseTableSelection(start, start, editor.getDOMHelper());
|
|
@@ -14830,6 +14838,14 @@ var SelectionPlugin = /** @class */ (function () {
|
|
|
14830
14838
|
}
|
|
14831
14839
|
}
|
|
14832
14840
|
}
|
|
14841
|
+
else if (key == F10 &&
|
|
14842
|
+
rawEvent.shiftKey &&
|
|
14843
|
+
(image = (0, isSingleImageInSelection_1.isSingleImageInSelection)(selection.range))) {
|
|
14844
|
+
this.setDOMSelection({
|
|
14845
|
+
type: 'image',
|
|
14846
|
+
image: image,
|
|
14847
|
+
}, null /* tableSelection */);
|
|
14848
|
+
}
|
|
14833
14849
|
break;
|
|
14834
14850
|
case 'table':
|
|
14835
14851
|
// After a content change event is handled tableSelection state is reset to null
|
|
@@ -15973,6 +15989,13 @@ var Editor = /** @class */ (function () {
|
|
|
15973
15989
|
Editor.prototype.isExperimentalFeatureEnabled = function (featureName) {
|
|
15974
15990
|
return this.getCore().experimentalFeatures.indexOf(featureName) >= 0;
|
|
15975
15991
|
};
|
|
15992
|
+
/**
|
|
15993
|
+
* Get all experimental features enabled in this editor
|
|
15994
|
+
* @returns An array of experimental feature names
|
|
15995
|
+
* */
|
|
15996
|
+
Editor.prototype.getExperimentalFeatures = function () {
|
|
15997
|
+
return this.getCore().experimentalFeatures;
|
|
15998
|
+
};
|
|
15976
15999
|
/**
|
|
15977
16000
|
* @returns the current EditorCore object
|
|
15978
16001
|
* @throws a standard Error if there's no core object
|
|
@@ -16812,6 +16835,8 @@ function createAriaLiveElement(document) {
|
|
|
16812
16835
|
div.style.height = '1px';
|
|
16813
16836
|
div.style.overflow = 'hidden';
|
|
16814
16837
|
div.style.position = 'absolute';
|
|
16838
|
+
div.style.top = '0';
|
|
16839
|
+
div.style.left = '0';
|
|
16815
16840
|
div.style.whiteSpace = 'nowrap';
|
|
16816
16841
|
div.style.width = '1px';
|
|
16817
16842
|
div.ariaLive = 'assertive';
|
|
@@ -17202,6 +17227,10 @@ exports.ChangeSource = {
|
|
|
17202
17227
|
* Content changed by paste
|
|
17203
17228
|
*/
|
|
17204
17229
|
Paste: 'Paste',
|
|
17230
|
+
/**
|
|
17231
|
+
* Content changed by auto markdown conversion
|
|
17232
|
+
*/
|
|
17233
|
+
AutoMarkdownConversion: 'AutoMarkdownConversion',
|
|
17205
17234
|
/**
|
|
17206
17235
|
* Content changed by setContent API
|
|
17207
17236
|
*/
|
|
@@ -17613,6 +17642,9 @@ function createDomToModelDecoratorContext() {
|
|
|
17613
17642
|
code: {
|
|
17614
17643
|
format: {},
|
|
17615
17644
|
},
|
|
17645
|
+
data: {
|
|
17646
|
+
format: {},
|
|
17647
|
+
},
|
|
17616
17648
|
blockDecorator: {
|
|
17617
17649
|
format: {},
|
|
17618
17650
|
tagName: '',
|
|
@@ -17684,6 +17716,7 @@ exports.defaultProcessorMap = void 0;
|
|
|
17684
17716
|
var brProcessor_1 = __webpack_require__(/*! ../processors/brProcessor */ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/brProcessor.ts");
|
|
17685
17717
|
var childProcessor_1 = __webpack_require__(/*! ../processors/childProcessor */ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/childProcessor.ts");
|
|
17686
17718
|
var codeProcessor_1 = __webpack_require__(/*! ../processors/codeProcessor */ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/codeProcessor.ts");
|
|
17719
|
+
var dataProcessor_1 = __webpack_require__(/*! ../processors/dataProcessor */ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/dataProcessor.ts");
|
|
17687
17720
|
var delimiterProcessor_1 = __webpack_require__(/*! ../processors/delimiterProcessor */ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/delimiterProcessor.ts");
|
|
17688
17721
|
var elementProcessor_1 = __webpack_require__(/*! ../processors/elementProcessor */ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/elementProcessor.ts");
|
|
17689
17722
|
var entityProcessor_1 = __webpack_require__(/*! ../processors/entityProcessor */ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/entityProcessor.ts");
|
|
@@ -17710,6 +17743,7 @@ exports.defaultProcessorMap = {
|
|
|
17710
17743
|
blockquote: knownElementProcessor_1.knownElementProcessor,
|
|
17711
17744
|
br: brProcessor_1.brProcessor,
|
|
17712
17745
|
code: codeProcessor_1.codeProcessor,
|
|
17746
|
+
data: dataProcessor_1.dataProcessor,
|
|
17713
17747
|
dd: formatContainerProcessor_1.formatContainerProcessor,
|
|
17714
17748
|
del: knownElementProcessor_1.knownElementProcessor,
|
|
17715
17749
|
div: knownElementProcessor_1.knownElementProcessor,
|
|
@@ -17965,6 +17999,33 @@ var codeProcessor = function (group, element, context) {
|
|
|
17965
17999
|
exports.codeProcessor = codeProcessor;
|
|
17966
18000
|
|
|
17967
18001
|
|
|
18002
|
+
/***/ },
|
|
18003
|
+
|
|
18004
|
+
/***/ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/dataProcessor.ts"
|
|
18005
|
+
/*!*****************************************************************************************!*\
|
|
18006
|
+
!*** ./packages/roosterjs-content-model-dom/lib/domToModel/processors/dataProcessor.ts ***!
|
|
18007
|
+
\*****************************************************************************************/
|
|
18008
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
18009
|
+
|
|
18010
|
+
"use strict";
|
|
18011
|
+
|
|
18012
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
18013
|
+
exports.dataProcessor = void 0;
|
|
18014
|
+
var knownElementProcessor_1 = __webpack_require__(/*! ./knownElementProcessor */ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/knownElementProcessor.ts");
|
|
18015
|
+
var parseFormat_1 = __webpack_require__(/*! ../utils/parseFormat */ "./packages/roosterjs-content-model-dom/lib/domToModel/utils/parseFormat.ts");
|
|
18016
|
+
var stackFormat_1 = __webpack_require__(/*! ../utils/stackFormat */ "./packages/roosterjs-content-model-dom/lib/domToModel/utils/stackFormat.ts");
|
|
18017
|
+
/**
|
|
18018
|
+
* @internal
|
|
18019
|
+
*/
|
|
18020
|
+
var dataProcessor = function (group, element, context) {
|
|
18021
|
+
(0, stackFormat_1.stackFormat)(context, { data: 'empty' }, function () {
|
|
18022
|
+
(0, parseFormat_1.parseFormat)(element, context.formatParsers.data, context.data.format, context);
|
|
18023
|
+
(0, knownElementProcessor_1.knownElementProcessor)(group, element, context);
|
|
18024
|
+
});
|
|
18025
|
+
};
|
|
18026
|
+
exports.dataProcessor = dataProcessor;
|
|
18027
|
+
|
|
18028
|
+
|
|
17968
18029
|
/***/ },
|
|
17969
18030
|
|
|
17970
18031
|
/***/ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/delimiterProcessor.ts"
|
|
@@ -19403,13 +19464,14 @@ var SkippedStylesForTable = [
|
|
|
19403
19464
|
* @internal
|
|
19404
19465
|
*/
|
|
19405
19466
|
function stackFormat(context, options, callback) {
|
|
19406
|
-
var segmentFormat = context.segmentFormat, blockFormat = context.blockFormat, linkFormat = context.link, codeFormat = context.code, decoratorFormat = context.blockDecorator;
|
|
19407
|
-
var segment = options.segment, paragraph = options.paragraph, link = options.link, code = options.code, blockDecorator = options.blockDecorator;
|
|
19467
|
+
var segmentFormat = context.segmentFormat, blockFormat = context.blockFormat, linkFormat = context.link, codeFormat = context.code, dataFormat = context.data, decoratorFormat = context.blockDecorator;
|
|
19468
|
+
var segment = options.segment, paragraph = options.paragraph, link = options.link, code = options.code, data = options.data, blockDecorator = options.blockDecorator;
|
|
19408
19469
|
try {
|
|
19409
19470
|
context.segmentFormat = stackFormatInternal(segmentFormat, segment);
|
|
19410
19471
|
context.blockFormat = stackFormatInternal(blockFormat, paragraph);
|
|
19411
19472
|
context.link = stackLinkInternal(linkFormat, link);
|
|
19412
19473
|
context.code = stackCodeInternal(codeFormat, code);
|
|
19474
|
+
context.data = stackDataInternal(dataFormat, data);
|
|
19413
19475
|
context.blockDecorator = stackDecoratorInternal(decoratorFormat, blockDecorator);
|
|
19414
19476
|
callback();
|
|
19415
19477
|
}
|
|
@@ -19418,6 +19480,7 @@ function stackFormat(context, options, callback) {
|
|
|
19418
19480
|
context.blockFormat = blockFormat;
|
|
19419
19481
|
context.link = linkFormat;
|
|
19420
19482
|
context.code = codeFormat;
|
|
19483
|
+
context.data = dataFormat;
|
|
19421
19484
|
context.blockDecorator = decoratorFormat;
|
|
19422
19485
|
}
|
|
19423
19486
|
}
|
|
@@ -19460,6 +19523,16 @@ function stackCodeInternal(codeFormat, code) {
|
|
|
19460
19523
|
return codeFormat;
|
|
19461
19524
|
}
|
|
19462
19525
|
}
|
|
19526
|
+
function stackDataInternal(dataFormat, data) {
|
|
19527
|
+
switch (data) {
|
|
19528
|
+
case 'empty':
|
|
19529
|
+
return {
|
|
19530
|
+
format: {},
|
|
19531
|
+
};
|
|
19532
|
+
default:
|
|
19533
|
+
return dataFormat;
|
|
19534
|
+
}
|
|
19535
|
+
}
|
|
19463
19536
|
function stackDecoratorInternal(format, decorator) {
|
|
19464
19537
|
switch (decorator) {
|
|
19465
19538
|
case 'empty':
|
|
@@ -22242,6 +22315,7 @@ var borderColorFormatHandler_1 = __webpack_require__(/*! ./common/borderColorFor
|
|
|
22242
22315
|
var borderFormatHandler_1 = __webpack_require__(/*! ./common/borderFormatHandler */ "./packages/roosterjs-content-model-dom/lib/formatHandlers/common/borderFormatHandler.ts");
|
|
22243
22316
|
var boxShadowFormatHandler_1 = __webpack_require__(/*! ./common/boxShadowFormatHandler */ "./packages/roosterjs-content-model-dom/lib/formatHandlers/common/boxShadowFormatHandler.ts");
|
|
22244
22317
|
var datasetFormatHandler_1 = __webpack_require__(/*! ./common/datasetFormatHandler */ "./packages/roosterjs-content-model-dom/lib/formatHandlers/common/datasetFormatHandler.ts");
|
|
22318
|
+
var dataValueFormatHandler_1 = __webpack_require__(/*! ./segment/dataValueFormatHandler */ "./packages/roosterjs-content-model-dom/lib/formatHandlers/segment/dataValueFormatHandler.ts");
|
|
22245
22319
|
var directionFormatHandler_1 = __webpack_require__(/*! ./block/directionFormatHandler */ "./packages/roosterjs-content-model-dom/lib/formatHandlers/block/directionFormatHandler.ts");
|
|
22246
22320
|
var displayFormatHandler_1 = __webpack_require__(/*! ./block/displayFormatHandler */ "./packages/roosterjs-content-model-dom/lib/formatHandlers/block/displayFormatHandler.ts");
|
|
22247
22321
|
var entityFormatHandler_1 = __webpack_require__(/*! ./entity/entityFormatHandler */ "./packages/roosterjs-content-model-dom/lib/formatHandlers/entity/entityFormatHandler.ts");
|
|
@@ -22287,6 +22361,7 @@ var defaultFormatHandlerMap = {
|
|
|
22287
22361
|
borderColor: borderColorFormatHandler_1.borderColorFormatHandler,
|
|
22288
22362
|
boxShadow: boxShadowFormatHandler_1.boxShadowFormatHandler,
|
|
22289
22363
|
dataset: datasetFormatHandler_1.datasetFormatHandler,
|
|
22364
|
+
dataValue: dataValueFormatHandler_1.dataValueFormatHandler,
|
|
22290
22365
|
direction: directionFormatHandler_1.directionFormatHandler,
|
|
22291
22366
|
display: displayFormatHandler_1.displayFormatHandler,
|
|
22292
22367
|
float: floatFormatHandler_1.floatFormatHandler,
|
|
@@ -22428,6 +22503,7 @@ exports.defaultFormatKeysPerCategory = {
|
|
|
22428
22503
|
],
|
|
22429
22504
|
segmentUnderLink: ['textColor'],
|
|
22430
22505
|
code: ['fontFamily', 'display'],
|
|
22506
|
+
data: ['dataValue'],
|
|
22431
22507
|
dataset: ['dataset'],
|
|
22432
22508
|
divider: (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(sharedBlockFormats), false), (0, tslib_1.__read)(sharedContainerFormats), false), ['display', 'size', 'htmlAlign'], false),
|
|
22433
22509
|
container: (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(sharedContainerFormats), false), ['htmlAlign', 'size', 'display', 'id'], false),
|
|
@@ -22718,6 +22794,37 @@ exports.boldFormatHandler = {
|
|
|
22718
22794
|
};
|
|
22719
22795
|
|
|
22720
22796
|
|
|
22797
|
+
/***/ },
|
|
22798
|
+
|
|
22799
|
+
/***/ "./packages/roosterjs-content-model-dom/lib/formatHandlers/segment/dataValueFormatHandler.ts"
|
|
22800
|
+
/*!***************************************************************************************************!*\
|
|
22801
|
+
!*** ./packages/roosterjs-content-model-dom/lib/formatHandlers/segment/dataValueFormatHandler.ts ***!
|
|
22802
|
+
\***************************************************************************************************/
|
|
22803
|
+
(__unused_webpack_module, exports) {
|
|
22804
|
+
|
|
22805
|
+
"use strict";
|
|
22806
|
+
|
|
22807
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
22808
|
+
exports.dataValueFormatHandler = void 0;
|
|
22809
|
+
/**
|
|
22810
|
+
* @internal
|
|
22811
|
+
* Format handler for the "value" attribute of a HTML <data> element
|
|
22812
|
+
*/
|
|
22813
|
+
exports.dataValueFormatHandler = {
|
|
22814
|
+
parse: function (format, element) {
|
|
22815
|
+
var _a;
|
|
22816
|
+
if (element.hasAttribute('value')) {
|
|
22817
|
+
format.dataValue = (_a = element.getAttribute('value')) !== null && _a !== void 0 ? _a : '';
|
|
22818
|
+
}
|
|
22819
|
+
},
|
|
22820
|
+
apply: function (format, element) {
|
|
22821
|
+
if (format.dataValue != undefined) {
|
|
22822
|
+
element.setAttribute('value', format.dataValue);
|
|
22823
|
+
}
|
|
22824
|
+
},
|
|
22825
|
+
};
|
|
22826
|
+
|
|
22827
|
+
|
|
22721
22828
|
/***/ },
|
|
22722
22829
|
|
|
22723
22830
|
/***/ "./packages/roosterjs-content-model-dom/lib/formatHandlers/segment/fontFamilyFormatHandler.ts"
|
|
@@ -23758,9 +23865,9 @@ exports.shouldSetValue = shouldSetValue;
|
|
|
23758
23865
|
|
|
23759
23866
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
23760
23867
|
exports.createImage = exports.createText = exports.createTableCell = exports.createTable = exports.createSelectionMarker = exports.createParagraph = exports.createFormatContainer = exports.createListItem = exports.createBr = exports.isLinkUndeletable = exports.setLinkUndeletable = exports.scrollRectIntoView = exports.normalizeRect = exports.isWhiteSpacePreserved = exports.reuseCachedElement = exports.findClosestBlockEntityContainer = exports.isBlockEntityContainer = exports.isEntityDelimiter = exports.addDelimiters = exports.generateEntityClassNames = exports.parseEntityFormat = exports.getAllEntityWrappers = exports.findClosestEntityWrapper = exports.isEntityElement = exports.unwrap = exports.wrap = exports.wrapAllChildNodes = exports.moveChildNodes = exports.toArray = exports.getSafeIdSelector = exports.getObjectKeys = exports.isElementOfType = exports.isNodeOfType = exports.hasMetadata = exports.getMetadata = exports.updateMetadata = exports.buildSelectionMarker = exports.isBlockElement = exports.areSameFormats = exports.parseFormat = exports.getRegularSelectionOffsets = exports.formatContainerProcessor = exports.tableProcessor = exports.entityProcessor = exports.processChildNode = exports.handleRegularSelection = exports.childProcessor = exports.contentModelToText = exports.contentModelToDom = exports.domToContentModel = void 0;
|
|
23761
|
-
exports.
|
|
23762
|
-
exports.
|
|
23763
|
-
exports.EmptySegmentFormat = exports.UnorderedListStyleMap = exports.OrderedListStyleMap = exports.TableBorderFormat = exports.NumberingListType = exports.BulletListType = exports.ChangeSource = exports.ListMetadataDefinition = exports.getListMetadata = exports.updateListMetadata = exports.getTableMetadata = exports.updateTableMetadata = exports.getTableCellMetadata = exports.updateTableCellMetadata = exports.getImageMetadata = exports.updateImageMetadata = exports.runEditSteps = void 0;
|
|
23868
|
+
exports.getDOMInsertPointRect = exports.getSelectionRootNode = exports.isBold = exports.createModelToDomConfig = exports.createModelToDomContextWithConfig = exports.createModelToDomContext = exports.createDomToModelConfig = exports.createDomToModelContextWithConfig = exports.createDomToModelContext = exports.defaultGenerateColorKey = exports.parseColor = exports.setColor = exports.getColor = exports.DeprecatedColors = exports.BorderKeys = exports.parseValueWithUnit = exports.getAutoListStyleType = exports.getOrderedListNumberStr = exports.ParagraphFormats = exports.ListFormatsToMove = exports.ListFormatsToKeep = exports.ListFormats = exports.copyFormat = exports.setParagraphNotImplicit = exports.normalizeSegmentFormat = exports.mergeTextSegments = exports.normalizeSingleSegment = exports.isEmpty = exports.addSegment = exports.unwrapBlock = exports.isGeneralSegment = exports.normalizeContentModel = exports.normalizeParagraph = exports.addTextSegment = exports.addLink = exports.addData = exports.addCode = exports.addBlock = exports.mutateSegment = exports.mutateSegments = exports.mutateBlock = exports.createTableRow = exports.createEmptyModel = exports.createListLevel = exports.createDivider = exports.createEntity = exports.createGeneralBlock = exports.createGeneralSegment = exports.createParagraphDecorator = exports.createContentModelDocument = void 0;
|
|
23869
|
+
exports.getSegmentTextFormat = exports.getListStyleTypeFromString = exports.retrieveModelFormatState = exports.setTableCellBackgroundColor = exports.MIN_ALLOWED_TABLE_CELL_HEIGHT = exports.MIN_ALLOWED_TABLE_CELL_WIDTH = exports.normalizeTable = exports.setFirstColumnFormatBorders = exports.applyTableFormat = exports.deleteBlock = exports.deleteSegment = exports.deleteSelection = exports.mergeModel = exports.cloneModelForPaste = exports.cloneModel = exports.setSelection = exports.hasSelectionInBlockGroup = exports.hasSelectionInSegment = exports.hasSelectionInBlock = exports.getSelectedCells = exports.getSelectedSegmentsAndParagraphs = exports.getSelectedSegments = exports.getSelectedParagraphs = exports.getOperationalBlocks = exports.getFirstSelectedTable = exports.getFirstSelectedListItem = exports.iterateSelections = exports.isBlockGroupOfType = exports.getRangesByText = exports.getImageState = exports.setImageState = exports.getParagraphMarker = exports.setParagraphMarker = exports.cacheGetEventData = exports.extractClipboardItems = exports.normalizeFontFamily = exports.transformColor = exports.retrieveDocumentMetadata = exports.readFile = exports.parseTableCells = exports.normalizeText = exports.isSpace = exports.isPunctuation = exports.extractBorderValues = exports.combineBorderValue = exports.getNodePositionFromEvent = exports.isCursorMovingKey = exports.isModifierKey = exports.isCharacterValue = exports.trimModelForSelection = void 0;
|
|
23870
|
+
exports.EmptySegmentFormat = exports.UnorderedListStyleMap = exports.OrderedListStyleMap = exports.TableBorderFormat = exports.NumberingListType = exports.BulletListType = exports.ChangeSource = exports.ListMetadataDefinition = exports.getListMetadata = exports.updateListMetadata = exports.getTableMetadata = exports.updateTableMetadata = exports.getTableCellMetadata = exports.updateTableCellMetadata = exports.getImageMetadata = exports.updateImageMetadata = exports.runEditSteps = exports.getClosestAncestorBlockGroupIndex = void 0;
|
|
23764
23871
|
var domToContentModel_1 = __webpack_require__(/*! ./domToModel/domToContentModel */ "./packages/roosterjs-content-model-dom/lib/domToModel/domToContentModel.ts");
|
|
23765
23872
|
Object.defineProperty(exports, "domToContentModel", ({ enumerable: true, get: function () { return domToContentModel_1.domToContentModel; } }));
|
|
23766
23873
|
var contentModelToDom_1 = __webpack_require__(/*! ./modelToDom/contentModelToDom */ "./packages/roosterjs-content-model-dom/lib/modelToDom/contentModelToDom.ts");
|
|
@@ -23874,7 +23981,9 @@ Object.defineProperty(exports, "addBlock", ({ enumerable: true, get: function ()
|
|
|
23874
23981
|
var addDecorators_1 = __webpack_require__(/*! ./modelApi/common/addDecorators */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addDecorators.ts");
|
|
23875
23982
|
Object.defineProperty(exports, "addCode", ({ enumerable: true, get: function () { return addDecorators_1.addCode; } }));
|
|
23876
23983
|
var addDecorators_2 = __webpack_require__(/*! ./modelApi/common/addDecorators */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addDecorators.ts");
|
|
23877
|
-
Object.defineProperty(exports, "
|
|
23984
|
+
Object.defineProperty(exports, "addData", ({ enumerable: true, get: function () { return addDecorators_2.addData; } }));
|
|
23985
|
+
var addDecorators_3 = __webpack_require__(/*! ./modelApi/common/addDecorators */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addDecorators.ts");
|
|
23986
|
+
Object.defineProperty(exports, "addLink", ({ enumerable: true, get: function () { return addDecorators_3.addLink; } }));
|
|
23878
23987
|
var addTextSegment_1 = __webpack_require__(/*! ./modelApi/common/addTextSegment */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addTextSegment.ts");
|
|
23879
23988
|
Object.defineProperty(exports, "addTextSegment", ({ enumerable: true, get: function () { return addTextSegment_1.addTextSegment; } }));
|
|
23880
23989
|
var normalizeParagraph_1 = __webpack_require__(/*! ./modelApi/common/normalizeParagraph */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/normalizeParagraph.ts");
|
|
@@ -24195,7 +24304,7 @@ exports.addBlock = addBlock;
|
|
|
24195
24304
|
"use strict";
|
|
24196
24305
|
|
|
24197
24306
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
24198
|
-
exports.addDecorators = exports.addCode = exports.addLink = void 0;
|
|
24307
|
+
exports.addDecorators = exports.addData = exports.addCode = exports.addLink = void 0;
|
|
24199
24308
|
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
24200
24309
|
/**
|
|
24201
24310
|
* @internal
|
|
@@ -24222,12 +24331,27 @@ function addCode(segment, code) {
|
|
|
24222
24331
|
}
|
|
24223
24332
|
}
|
|
24224
24333
|
exports.addCode = addCode;
|
|
24334
|
+
/**
|
|
24335
|
+
* @internal
|
|
24336
|
+
* Add a data decorator into segment if any
|
|
24337
|
+
* @param segment The segment to add decorator to
|
|
24338
|
+
* @param data The data decorator to add
|
|
24339
|
+
*/
|
|
24340
|
+
function addData(segment, data) {
|
|
24341
|
+
if (data.format.dataValue != undefined) {
|
|
24342
|
+
segment.data = {
|
|
24343
|
+
format: (0, tslib_1.__assign)({}, data.format),
|
|
24344
|
+
};
|
|
24345
|
+
}
|
|
24346
|
+
}
|
|
24347
|
+
exports.addData = addData;
|
|
24225
24348
|
/**
|
|
24226
24349
|
* @internal
|
|
24227
24350
|
*/
|
|
24228
24351
|
function addDecorators(segment, context) {
|
|
24229
24352
|
addLink(segment, context.link);
|
|
24230
24353
|
addCode(segment, context.code);
|
|
24354
|
+
addData(segment, context.data);
|
|
24231
24355
|
}
|
|
24232
24356
|
exports.addDecorators = addDecorators;
|
|
24233
24357
|
|
|
@@ -24512,7 +24636,8 @@ function segmentsWithSameFormat(seg1, seg2) {
|
|
|
24512
24636
|
return (!!seg1.isSelected == !!seg2.isSelected &&
|
|
24513
24637
|
(0, areSameFormats_1.areSameFormats)(seg1.format, seg2.format) &&
|
|
24514
24638
|
areSameLinks(seg1.link, seg2.link) &&
|
|
24515
|
-
areSameCodes(seg1.code, seg2.code)
|
|
24639
|
+
areSameCodes(seg1.code, seg2.code) &&
|
|
24640
|
+
areSameData(seg1.data, seg2.data));
|
|
24516
24641
|
}
|
|
24517
24642
|
function areSameLinks(link1, link2) {
|
|
24518
24643
|
return ((!link1 && !link2) ||
|
|
@@ -24524,6 +24649,9 @@ function areSameLinks(link1, link2) {
|
|
|
24524
24649
|
function areSameCodes(code1, code2) {
|
|
24525
24650
|
return (!code1 && !code2) || (code1 && code2 && (0, areSameFormats_1.areSameFormats)(code1.format, code2.format));
|
|
24526
24651
|
}
|
|
24652
|
+
function areSameData(data1, data2) {
|
|
24653
|
+
return (!data1 && !data2) || (data1 && data2 && (0, areSameFormats_1.areSameFormats)(data1.format, data2.format));
|
|
24654
|
+
}
|
|
24527
24655
|
|
|
24528
24656
|
|
|
24529
24657
|
/***/ },
|
|
@@ -25609,9 +25737,10 @@ var addDecorators_1 = __webpack_require__(/*! ../common/addDecorators */ "./pack
|
|
|
25609
25737
|
* @param text Text of this model
|
|
25610
25738
|
* @param format @optional The format of this model
|
|
25611
25739
|
* @param link @optional The link decorator
|
|
25612
|
-
* @param code @
|
|
25740
|
+
* @param code @optional The code decorator
|
|
25741
|
+
* @param data @optional The data decorator
|
|
25613
25742
|
*/
|
|
25614
|
-
function createText(text, format, link, code) {
|
|
25743
|
+
function createText(text, format, link, code, data) {
|
|
25615
25744
|
var result = {
|
|
25616
25745
|
segmentType: 'Text',
|
|
25617
25746
|
text: text,
|
|
@@ -25623,6 +25752,9 @@ function createText(text, format, link, code) {
|
|
|
25623
25752
|
if (code) {
|
|
25624
25753
|
(0, addDecorators_1.addCode)(result, code);
|
|
25625
25754
|
}
|
|
25755
|
+
if (data) {
|
|
25756
|
+
(0, addDecorators_1.addData)(result, data);
|
|
25757
|
+
}
|
|
25626
25758
|
return result;
|
|
25627
25759
|
}
|
|
25628
25760
|
exports.createText = createText;
|
|
@@ -26090,7 +26222,7 @@ function cloneBlockGroupBase(group, options) {
|
|
|
26090
26222
|
};
|
|
26091
26223
|
}
|
|
26092
26224
|
function cloneSegmentBase(segment) {
|
|
26093
|
-
var segmentType = segment.segmentType, isSelected = segment.isSelected, code = segment.code, link = segment.link;
|
|
26225
|
+
var segmentType = segment.segmentType, isSelected = segment.isSelected, code = segment.code, link = segment.link, data = segment.data;
|
|
26094
26226
|
var newSegment = Object.assign({
|
|
26095
26227
|
segmentType: segmentType,
|
|
26096
26228
|
isSelected: isSelected,
|
|
@@ -26101,6 +26233,9 @@ function cloneSegmentBase(segment) {
|
|
|
26101
26233
|
if (link) {
|
|
26102
26234
|
newSegment.link = Object.assign(cloneModelWithFormat(link), cloneModelWithDataset(link));
|
|
26103
26235
|
}
|
|
26236
|
+
if (data) {
|
|
26237
|
+
newSegment.data = cloneModelWithFormat(data);
|
|
26238
|
+
}
|
|
26104
26239
|
return newSegment;
|
|
26105
26240
|
}
|
|
26106
26241
|
function cloneEntity(entity, options) {
|
|
@@ -26905,6 +27040,11 @@ function mergeTables(markerPosition, newTable, source) {
|
|
|
26905
27040
|
var newTableRowCount = newTable.rows.length;
|
|
26906
27041
|
var lastTargetColIndex = getTargetColIndex(table, rowIndex, colIndex, newTableColCount);
|
|
26907
27042
|
var extraColsNeeded = lastTargetColIndex - table.rows[0].cells.length;
|
|
27043
|
+
newTable.rows.forEach(function (row) {
|
|
27044
|
+
row.cells.forEach(function (cell) {
|
|
27045
|
+
cell.spanAbove = false;
|
|
27046
|
+
});
|
|
27047
|
+
});
|
|
26908
27048
|
if (extraColsNeeded > 0) {
|
|
26909
27049
|
var currentColCount = table.rows[0].cells.length;
|
|
26910
27050
|
for (var col = 0; col < extraColsNeeded; col++) {
|
|
@@ -30136,7 +30276,7 @@ var moveChildNodes_1 = __webpack_require__(/*! ../../domUtils/moveChildNodes */
|
|
|
30136
30276
|
* @internal
|
|
30137
30277
|
*/
|
|
30138
30278
|
var handleSegmentDecorator = function (_, parent, segment, context) {
|
|
30139
|
-
var code = segment.code, link = segment.link;
|
|
30279
|
+
var code = segment.code, link = segment.link, data = segment.data;
|
|
30140
30280
|
if ((0, isNodeOfType_1.isNodeOfType)(parent, 'ELEMENT_NODE')) {
|
|
30141
30281
|
if (link) {
|
|
30142
30282
|
(0, stackFormat_1.stackFormat)(context, 'a', function () {
|
|
@@ -30155,6 +30295,14 @@ var handleSegmentDecorator = function (_, parent, segment, context) {
|
|
|
30155
30295
|
(_a = context.onNodeCreated) === null || _a === void 0 ? void 0 : _a.call(context, code, codeNode);
|
|
30156
30296
|
});
|
|
30157
30297
|
}
|
|
30298
|
+
if (data) {
|
|
30299
|
+
(0, stackFormat_1.stackFormat)(context, 'data', function () {
|
|
30300
|
+
var _a;
|
|
30301
|
+
var dataNode = (0, moveChildNodes_1.wrapAllChildNodes)(parent, 'data');
|
|
30302
|
+
(0, applyFormat_1.applyFormat)(dataNode, context.formatAppliers.data, data.format, context);
|
|
30303
|
+
(_a = context.onNodeCreated) === null || _a === void 0 ? void 0 : _a.call(context, data, dataNode);
|
|
30304
|
+
});
|
|
30305
|
+
}
|
|
30158
30306
|
}
|
|
30159
30307
|
};
|
|
30160
30308
|
exports.handleSegmentDecorator = handleSegmentDecorator;
|
|
@@ -30339,7 +30487,20 @@ exports.handleText = handleText;
|
|
|
30339
30487
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
30340
30488
|
exports.mergeNode = void 0;
|
|
30341
30489
|
var isNodeOfType_1 = __webpack_require__(/*! ../../domUtils/isNodeOfType */ "./packages/roosterjs-content-model-dom/lib/domUtils/isNodeOfType.ts");
|
|
30342
|
-
var OptimizeTags = [
|
|
30490
|
+
var OptimizeTags = [
|
|
30491
|
+
'SPAN',
|
|
30492
|
+
'B',
|
|
30493
|
+
'EM',
|
|
30494
|
+
'I',
|
|
30495
|
+
'U',
|
|
30496
|
+
'SUB',
|
|
30497
|
+
'SUP',
|
|
30498
|
+
'STRIKE',
|
|
30499
|
+
'S',
|
|
30500
|
+
'A',
|
|
30501
|
+
'CODE',
|
|
30502
|
+
'DATA',
|
|
30503
|
+
];
|
|
30343
30504
|
/**
|
|
30344
30505
|
* @internal
|
|
30345
30506
|
*/
|
|
@@ -30915,9 +31076,9 @@ var MarkdownBlockGroupType = {
|
|
|
30915
31076
|
/**
|
|
30916
31077
|
* @internal
|
|
30917
31078
|
*/
|
|
30918
|
-
function createBlockGroupFromMarkdown(text, patternName, options, group) {
|
|
31079
|
+
function createBlockGroupFromMarkdown(text, patternName, options, group, list) {
|
|
30919
31080
|
if (MarkdownBlockGroupType[patternName] === 'ListItem') {
|
|
30920
|
-
return (0, createListFromMarkdown_1.createListFromMarkdown)(text, patternName === 'ordered_list' ? 'OL' : 'UL', options);
|
|
31081
|
+
return (0, createListFromMarkdown_1.createListFromMarkdown)(text, patternName === 'ordered_list' ? 'OL' : 'UL', options, list);
|
|
30921
31082
|
}
|
|
30922
31083
|
else {
|
|
30923
31084
|
return (0, createBlockQuoteFromMarkdown_1.createBlockQuoteFromMarkdown)(text, options, group);
|
|
@@ -31005,12 +31166,13 @@ var createParagraphFromMarkdown_1 = __webpack_require__(/*! ./createParagraphFro
|
|
|
31005
31166
|
/**
|
|
31006
31167
|
* @internal
|
|
31007
31168
|
*/
|
|
31008
|
-
function createListFromMarkdown(text, listType, options) {
|
|
31169
|
+
function createListFromMarkdown(text, listType, options, list) {
|
|
31009
31170
|
var marker = text.trim().split(' ')[0];
|
|
31010
31171
|
var isDummy = isDummyListItem(marker);
|
|
31172
|
+
var startNumber = listType === 'OL' && !list ? parseInt(marker, 10) : undefined;
|
|
31011
31173
|
var itemText = isDummy ? text : text.trim().substring(marker.length);
|
|
31012
31174
|
var paragraph = (0, createParagraphFromMarkdown_1.createParagraphFromMarkdown)(itemText.trim(), options);
|
|
31013
|
-
var levels = createLevels(text, listType, isDummy, options);
|
|
31175
|
+
var levels = createLevels(text, listType, isDummy, options, startNumber);
|
|
31014
31176
|
var listModel = (0, roosterjs_content_model_dom_1.createListItem)(levels);
|
|
31015
31177
|
if (options.direction) {
|
|
31016
31178
|
listModel.format.direction = options.direction;
|
|
@@ -31019,8 +31181,11 @@ function createListFromMarkdown(text, listType, options) {
|
|
|
31019
31181
|
return listModel;
|
|
31020
31182
|
}
|
|
31021
31183
|
exports.createListFromMarkdown = createListFromMarkdown;
|
|
31022
|
-
function createLevels(text, listType, isDummy, options) {
|
|
31184
|
+
function createLevels(text, listType, isDummy, options, startNumberOverride) {
|
|
31023
31185
|
var level = (0, roosterjs_content_model_dom_1.createListLevel)(listType, options.direction ? { direction: options.direction } : undefined);
|
|
31186
|
+
if (startNumberOverride) {
|
|
31187
|
+
level.format.startNumberOverride = startNumberOverride;
|
|
31188
|
+
}
|
|
31024
31189
|
if (isDummy) {
|
|
31025
31190
|
level.format.displayForDummyItem = 'block';
|
|
31026
31191
|
}
|
|
@@ -31309,7 +31474,7 @@ function addMarkdownBlockToModel(model, blockType, markdown, patternName, markdo
|
|
|
31309
31474
|
model.blocks.push(divider);
|
|
31310
31475
|
break;
|
|
31311
31476
|
case 'BlockGroup':
|
|
31312
|
-
var blockGroup = (0, createBlockGroupFromMarkdown_1.createBlockGroupFromMarkdown)(markdown, patternName, options, markdownContext.lastQuote);
|
|
31477
|
+
var blockGroup = (0, createBlockGroupFromMarkdown_1.createBlockGroupFromMarkdown)(markdown, patternName, options, markdownContext.lastQuote, markdownContext.lastList);
|
|
31313
31478
|
if (!markdownContext.lastQuote) {
|
|
31314
31479
|
model.blocks.push(blockGroup);
|
|
31315
31480
|
}
|
|
@@ -32161,6 +32326,7 @@ var MarkdownPastePlugin = /** @class */ (function () {
|
|
|
32161
32326
|
return true;
|
|
32162
32327
|
}, {
|
|
32163
32328
|
apiName: 'MarkdownConversion',
|
|
32329
|
+
changeSource: roosterjs_content_model_dom_1.ChangeSource.AutoMarkdownConversion,
|
|
32164
32330
|
scrollCaretIntoView: true,
|
|
32165
32331
|
});
|
|
32166
32332
|
}
|
|
@@ -33742,7 +33908,8 @@ exports.CustomReplacePlugin = CustomReplacePlugin;
|
|
|
33742
33908
|
|
|
33743
33909
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
33744
33910
|
exports.DragAndDropPlugin = void 0;
|
|
33745
|
-
var
|
|
33911
|
+
var handleDroppedExternalContent_1 = __webpack_require__(/*! ./utils/handleDroppedExternalContent */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/handleDroppedExternalContent.ts");
|
|
33912
|
+
var handleDroppedInternalContent_1 = __webpack_require__(/*! ./utils/handleDroppedInternalContent */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/handleDroppedInternalContent.ts");
|
|
33746
33913
|
var DefaultOptions = {
|
|
33747
33914
|
forbiddenElements: ['iframe'],
|
|
33748
33915
|
};
|
|
@@ -33759,7 +33926,7 @@ var DragAndDropPlugin = /** @class */ (function () {
|
|
|
33759
33926
|
var _a;
|
|
33760
33927
|
this.editor = null;
|
|
33761
33928
|
this.forbiddenElements = [];
|
|
33762
|
-
this.
|
|
33929
|
+
this.internalDrag = false;
|
|
33763
33930
|
this.disposer = null;
|
|
33764
33931
|
this.forbiddenElements = (_a = options.forbiddenElements) !== null && _a !== void 0 ? _a : [];
|
|
33765
33932
|
}
|
|
@@ -33781,7 +33948,7 @@ var DragAndDropPlugin = /** @class */ (function () {
|
|
|
33781
33948
|
this.disposer = editor.attachDomEvent({
|
|
33782
33949
|
dragstart: {
|
|
33783
33950
|
beforeDispatch: function (_ev) {
|
|
33784
|
-
_this.
|
|
33951
|
+
_this.internalDrag = true;
|
|
33785
33952
|
},
|
|
33786
33953
|
},
|
|
33787
33954
|
});
|
|
@@ -33797,7 +33964,6 @@ var DragAndDropPlugin = /** @class */ (function () {
|
|
|
33797
33964
|
this.disposer();
|
|
33798
33965
|
this.disposer = null;
|
|
33799
33966
|
}
|
|
33800
|
-
this.isInternalDragging = false;
|
|
33801
33967
|
this.forbiddenElements = [];
|
|
33802
33968
|
};
|
|
33803
33969
|
/**
|
|
@@ -33809,17 +33975,18 @@ var DragAndDropPlugin = /** @class */ (function () {
|
|
|
33809
33975
|
DragAndDropPlugin.prototype.onPluginEvent = function (event) {
|
|
33810
33976
|
var _a;
|
|
33811
33977
|
if (this.editor && event.eventType == 'beforeDrop') {
|
|
33812
|
-
|
|
33813
|
-
|
|
33978
|
+
var dropEvent = event.rawEvent;
|
|
33979
|
+
if (this.internalDrag &&
|
|
33980
|
+
this.editor.isExperimentalFeatureEnabled('HandleDropInternalContent')) {
|
|
33981
|
+
(0, handleDroppedInternalContent_1.handleDroppedInternalContent)(this.editor, dropEvent);
|
|
33814
33982
|
}
|
|
33815
|
-
else {
|
|
33816
|
-
var dropEvent = event.rawEvent;
|
|
33983
|
+
else if (!this.internalDrag) {
|
|
33817
33984
|
var html = (_a = dropEvent.dataTransfer) === null || _a === void 0 ? void 0 : _a.getData('text/html');
|
|
33818
33985
|
if (html) {
|
|
33819
|
-
(0,
|
|
33986
|
+
(0, handleDroppedExternalContent_1.handleDroppedExternalContent)(this.editor, dropEvent, html, this.forbiddenElements);
|
|
33820
33987
|
}
|
|
33821
33988
|
}
|
|
33822
|
-
|
|
33989
|
+
this.internalDrag = false;
|
|
33823
33990
|
}
|
|
33824
33991
|
};
|
|
33825
33992
|
return DragAndDropPlugin;
|
|
@@ -33873,23 +34040,23 @@ exports.cleanForbiddenElements = cleanForbiddenElements;
|
|
|
33873
34040
|
|
|
33874
34041
|
/***/ },
|
|
33875
34042
|
|
|
33876
|
-
/***/ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/
|
|
33877
|
-
|
|
33878
|
-
!*** ./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/
|
|
33879
|
-
|
|
34043
|
+
/***/ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/handleDroppedExternalContent.ts"
|
|
34044
|
+
/*!********************************************************************************************************!*\
|
|
34045
|
+
!*** ./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/handleDroppedExternalContent.ts ***!
|
|
34046
|
+
\********************************************************************************************************/
|
|
33880
34047
|
(__unused_webpack_module, exports, __webpack_require__) {
|
|
33881
34048
|
|
|
33882
34049
|
"use strict";
|
|
33883
34050
|
|
|
33884
34051
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
33885
|
-
exports.
|
|
34052
|
+
exports.handleDroppedExternalContent = void 0;
|
|
33886
34053
|
var cleanForbiddenElements_1 = __webpack_require__(/*! ./cleanForbiddenElements */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/cleanForbiddenElements.ts");
|
|
33887
34054
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
33888
34055
|
/**
|
|
33889
34056
|
* @internal
|
|
33890
34057
|
* Handle dropped HTML content by inserting it at the drop position
|
|
33891
34058
|
*/
|
|
33892
|
-
function
|
|
34059
|
+
function handleDroppedExternalContent(editor, event, html, forbiddenElements) {
|
|
33893
34060
|
var doc = editor.getDocument();
|
|
33894
34061
|
var domPosition = (0, roosterjs_content_model_dom_1.getNodePositionFromEvent)(doc, editor.getDOMHelper(), event.x, event.y);
|
|
33895
34062
|
if (domPosition) {
|
|
@@ -33913,7 +34080,56 @@ function handleDroppedContent(editor, event, html, forbiddenElements) {
|
|
|
33913
34080
|
});
|
|
33914
34081
|
}
|
|
33915
34082
|
}
|
|
33916
|
-
exports.
|
|
34083
|
+
exports.handleDroppedExternalContent = handleDroppedExternalContent;
|
|
34084
|
+
|
|
34085
|
+
|
|
34086
|
+
/***/ },
|
|
34087
|
+
|
|
34088
|
+
/***/ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/handleDroppedInternalContent.ts"
|
|
34089
|
+
/*!********************************************************************************************************!*\
|
|
34090
|
+
!*** ./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/handleDroppedInternalContent.ts ***!
|
|
34091
|
+
\********************************************************************************************************/
|
|
34092
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
34093
|
+
|
|
34094
|
+
"use strict";
|
|
34095
|
+
|
|
34096
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
34097
|
+
exports.handleDroppedInternalContent = void 0;
|
|
34098
|
+
var roosterjs_content_model_api_1 = __webpack_require__(/*! roosterjs-content-model-api */ "./packages/roosterjs-content-model-api/lib/index.ts");
|
|
34099
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
34100
|
+
/**
|
|
34101
|
+
* @internal
|
|
34102
|
+
* Handle dropped internal HTML content by inserting it at the drop position
|
|
34103
|
+
*/
|
|
34104
|
+
function handleDroppedInternalContent(editor, event) {
|
|
34105
|
+
var doc = editor.getDocument();
|
|
34106
|
+
var domPosition = (0, roosterjs_content_model_dom_1.getNodePositionFromEvent)(doc, editor.getDOMHelper(), event.x, event.y);
|
|
34107
|
+
var selection = editor.getDOMSelection();
|
|
34108
|
+
if (domPosition && selection) {
|
|
34109
|
+
event.preventDefault();
|
|
34110
|
+
event.stopPropagation();
|
|
34111
|
+
(0, roosterjs_content_model_api_1.formatInsertPointWithContentModel)(editor, domPosition, function (model, context, insertPoint) {
|
|
34112
|
+
if (insertPoint) {
|
|
34113
|
+
var cloneModel = (0, roosterjs_content_model_dom_1.cloneModelForPaste)(model);
|
|
34114
|
+
(0, roosterjs_content_model_dom_1.trimModelForSelection)(cloneModel, selection);
|
|
34115
|
+
if ((0, roosterjs_content_model_dom_1.deleteSelection)(model, [], context).deleteResult == 'range') {
|
|
34116
|
+
(0, roosterjs_content_model_dom_1.normalizeContentModel)(model);
|
|
34117
|
+
}
|
|
34118
|
+
var startMarker = (0, roosterjs_content_model_dom_1.createSelectionMarker)(insertPoint.marker.format);
|
|
34119
|
+
var startParagraph = (0, roosterjs_content_model_dom_1.mutateBlock)(insertPoint.paragraph);
|
|
34120
|
+
var startIndex = startParagraph.segments.indexOf(insertPoint.marker);
|
|
34121
|
+
startParagraph.segments.splice(startIndex, 0, startMarker);
|
|
34122
|
+
var newInsertPoint = (0, roosterjs_content_model_dom_1.mergeModel)(model, cloneModel, context, {
|
|
34123
|
+
insertPosition: insertPoint,
|
|
34124
|
+
});
|
|
34125
|
+
if (newInsertPoint) {
|
|
34126
|
+
(0, roosterjs_content_model_dom_1.setSelection)(model, startMarker, newInsertPoint.marker);
|
|
34127
|
+
}
|
|
34128
|
+
}
|
|
34129
|
+
});
|
|
34130
|
+
}
|
|
34131
|
+
}
|
|
34132
|
+
exports.handleDroppedInternalContent = handleDroppedInternalContent;
|
|
33917
34133
|
|
|
33918
34134
|
|
|
33919
34135
|
/***/ },
|
|
@@ -36987,7 +37203,7 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
36987
37203
|
if (event.rawEvent.key == 'Enter' && this.isCropMode) {
|
|
36988
37204
|
event.rawEvent.preventDefault();
|
|
36989
37205
|
}
|
|
36990
|
-
this.applyFormatWithContentModel(editor, this.isCropMode,
|
|
37206
|
+
this.applyFormatWithContentModel(editor, this.isCropMode, false /** should selectImage */, false /* isApiOperation */);
|
|
36991
37207
|
}
|
|
36992
37208
|
}
|
|
36993
37209
|
};
|
|
@@ -37027,6 +37243,28 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
37027
37243
|
var editingImageModel;
|
|
37028
37244
|
var selection = editor.getDOMSelection();
|
|
37029
37245
|
var isRTL = false;
|
|
37246
|
+
var formatContentModelOptions = {
|
|
37247
|
+
onNodeCreated: function (model, node) {
|
|
37248
|
+
var _a;
|
|
37249
|
+
if (!isApiOperation &&
|
|
37250
|
+
editingImageModel &&
|
|
37251
|
+
editingImageModel == model &&
|
|
37252
|
+
editingImageModel.format.imageState == findEditingImage_1.EDITING_MARKER &&
|
|
37253
|
+
(0, roosterjs_content_model_dom_1.isNodeOfType)(node, 'ELEMENT_NODE') &&
|
|
37254
|
+
(0, roosterjs_content_model_dom_1.isElementOfType)(node, 'img')) {
|
|
37255
|
+
if (_this.isCropMode) {
|
|
37256
|
+
_this.startCropMode(editor, node, isRTL);
|
|
37257
|
+
}
|
|
37258
|
+
else {
|
|
37259
|
+
(_a = editor.getDocument().defaultView) === null || _a === void 0 ? void 0 : _a.requestAnimationFrame(function () {
|
|
37260
|
+
_this.startRotateAndResize(editor, node, isRTL);
|
|
37261
|
+
});
|
|
37262
|
+
}
|
|
37263
|
+
}
|
|
37264
|
+
},
|
|
37265
|
+
apiName: IMAGE_EDIT_FORMAT_EVENT,
|
|
37266
|
+
skipDOMSelection: false,
|
|
37267
|
+
};
|
|
37030
37268
|
editor.formatContentModel(function (model, context) {
|
|
37031
37269
|
var editingImage = (0, getSelectedImage_1.getSelectedImage)(model);
|
|
37032
37270
|
var previousSelectedImage = isApiOperation
|
|
@@ -37085,28 +37323,12 @@ var ImageEditPlugin = /** @class */ (function () {
|
|
|
37085
37323
|
_this.imageEditInfo = (0, updateImageEditInfo_1.updateImageEditInfo)(image, selection.image);
|
|
37086
37324
|
image.format.imageState = 'isEditing';
|
|
37087
37325
|
});
|
|
37326
|
+
formatContentModelOptions.skipDOMSelection = !isCropMode;
|
|
37088
37327
|
result = true;
|
|
37089
37328
|
}
|
|
37090
37329
|
}
|
|
37091
37330
|
return result;
|
|
37092
|
-
}, {
|
|
37093
|
-
onNodeCreated: function (model, node) {
|
|
37094
|
-
if (!isApiOperation &&
|
|
37095
|
-
editingImageModel &&
|
|
37096
|
-
editingImageModel == model &&
|
|
37097
|
-
editingImageModel.format.imageState == findEditingImage_1.EDITING_MARKER &&
|
|
37098
|
-
(0, roosterjs_content_model_dom_1.isNodeOfType)(node, 'ELEMENT_NODE') &&
|
|
37099
|
-
(0, roosterjs_content_model_dom_1.isElementOfType)(node, 'img')) {
|
|
37100
|
-
if (isCropMode) {
|
|
37101
|
-
_this.startCropMode(editor, node, isRTL);
|
|
37102
|
-
}
|
|
37103
|
-
else {
|
|
37104
|
-
_this.startRotateAndResize(editor, node, isRTL);
|
|
37105
|
-
}
|
|
37106
|
-
}
|
|
37107
|
-
},
|
|
37108
|
-
apiName: IMAGE_EDIT_FORMAT_EVENT,
|
|
37109
|
-
}, {
|
|
37331
|
+
}, formatContentModelOptions, {
|
|
37110
37332
|
tryGetFromCache: true,
|
|
37111
37333
|
});
|
|
37112
37334
|
};
|
|
@@ -38092,7 +38314,6 @@ var createImageCropper_1 = __webpack_require__(/*! ../Cropper/createImageCropper
|
|
|
38092
38314
|
var createImageResizer_1 = __webpack_require__(/*! ../Resizer/createImageResizer */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/Resizer/createImageResizer.ts");
|
|
38093
38315
|
var createImageRotator_1 = __webpack_require__(/*! ../Rotator/createImageRotator */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/Rotator/createImageRotator.ts");
|
|
38094
38316
|
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
38095
|
-
var IMAGE_EDIT_SHADOW_ROOT = 'ImageEditShadowRoot';
|
|
38096
38317
|
/**
|
|
38097
38318
|
* @internal
|
|
38098
38319
|
*/
|
|
@@ -38125,15 +38346,8 @@ var createShadowSpan = function (wrapper, imageSpan, imageWidth, imageHeight) {
|
|
|
38125
38346
|
var shadowRoot = imageSpan.attachShadow({
|
|
38126
38347
|
mode: 'open',
|
|
38127
38348
|
});
|
|
38128
|
-
imageSpan.id = IMAGE_EDIT_SHADOW_ROOT;
|
|
38129
|
-
// Pin the shadow host to the original image's box so that wrapping the image does not grow the
|
|
38130
|
-
// surrounding line box. Without this, the taller edit wrapper enlarges the line and the browser
|
|
38131
|
-
// scrolls the selection back into view, making the editor jump. The wrapper and handles still
|
|
38132
|
-
// overflow the host visually because overflow is left visible.
|
|
38133
38349
|
if (imageWidth > 0 && imageHeight > 0) {
|
|
38134
38350
|
imageSpan.style.display = 'inline-block';
|
|
38135
|
-
imageSpan.style.width = imageWidth + "px";
|
|
38136
|
-
imageSpan.style.height = imageHeight + "px";
|
|
38137
38351
|
imageSpan.style.verticalAlign = 'bottom';
|
|
38138
38352
|
imageSpan.style.overflow = 'visible';
|
|
38139
38353
|
}
|
|
@@ -38807,7 +39021,7 @@ function getSelectedImageMetadata(editor, image) {
|
|
|
38807
39021
|
(0, roosterjs_content_model_dom_1.mutateSegment)(selectedImage.paragraph, selectedImage === null || selectedImage === void 0 ? void 0 : selectedImage.image, function (modelImage) {
|
|
38808
39022
|
imageMetadata = updateImageEditInfo(modelImage, image);
|
|
38809
39023
|
});
|
|
38810
|
-
return
|
|
39024
|
+
return false;
|
|
38811
39025
|
}
|
|
38812
39026
|
return false;
|
|
38813
39027
|
});
|
|
@@ -39617,6 +39831,7 @@ var BulletSelector = '* > span > span[style*=mso-special-format]';
|
|
|
39617
39831
|
var MsOfficeSpecialFormat = 'mso-special-format';
|
|
39618
39832
|
var CssStyleKey = 'style';
|
|
39619
39833
|
var MsoSpecialFormatRegex = /mso-special-format:\s*([^;]*)/;
|
|
39834
|
+
var TableElementTags = new Set(['TABLE', 'THEAD', 'TBODY', 'TFOOT', 'TR', 'TD', 'TH']);
|
|
39620
39835
|
var clearListItemStyles = function (format) {
|
|
39621
39836
|
delete format.textAlign;
|
|
39622
39837
|
delete format.marginLeft;
|
|
@@ -39643,7 +39858,9 @@ function processPastedContentFromPowerPoint(event, domCreator) {
|
|
|
39643
39858
|
if (style.includes(MsOfficeSpecialFormat) && context.listFormat.levels.length > 0) {
|
|
39644
39859
|
return;
|
|
39645
39860
|
}
|
|
39646
|
-
var bulletElement = element.
|
|
39861
|
+
var bulletElement = !TableElementTags.has(element.tagName)
|
|
39862
|
+
? element.querySelector(BulletSelector)
|
|
39863
|
+
: null;
|
|
39647
39864
|
if (bulletElement) {
|
|
39648
39865
|
var _c = extractPowerPointListInfo(element, bulletElement), depth = _c.depth, unorderedBulletType = _c.unorderedBulletType, orderedBulletType = _c.orderedBulletType, startNumberOverrideOrBullet_1 = _c.startNumberOverrideOrBullet, isOrderedList = _c.isOrderedList, isNewList_1 = _c.isNewList;
|
|
39649
39866
|
// Setup the listformat with the metadata extracted from the bullet element
|
|
@@ -39664,6 +39881,12 @@ function processPastedContentFromPowerPoint(event, domCreator) {
|
|
|
39664
39881
|
}
|
|
39665
39882
|
clearListItemStyles(listItem.levels[listItem.levels.length - 1].format);
|
|
39666
39883
|
clearListItemStyles(listItem.format);
|
|
39884
|
+
// When the list is inside a table cell, remove the font size from the
|
|
39885
|
+
// list marker so it does not inherit the list's font size. Otherwise a
|
|
39886
|
+
// large marker may be rendered outside of the table cell.
|
|
39887
|
+
if (element.closest('td,th')) {
|
|
39888
|
+
delete listItem.formatHolder.format.fontSize;
|
|
39889
|
+
}
|
|
39667
39890
|
});
|
|
39668
39891
|
}
|
|
39669
39892
|
else {
|