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