roosterjs 9.49.0 → 9.50.1
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 +63 -25
- package/dist/rooster-amd.js +257 -198
- package/dist/rooster-amd.js.map +1 -1
- package/dist/rooster-min.js +1 -1
- package/dist/rooster-min.js.map +1 -1
- package/dist/rooster-react.js +53 -53
- package/dist/rooster-react.js.map +1 -1
- package/dist/rooster.d.ts +63 -25
- package/dist/rooster.js +257 -198
- package/dist/rooster.js.map +1 -1
- package/package.json +7 -7
package/dist/rooster-amd.js
CHANGED
|
@@ -7890,25 +7890,21 @@ exports.setTableCellShade = setTableCellShade;
|
|
|
7890
7890
|
/*!******************************************************************************!*\
|
|
7891
7891
|
!*** ./packages/roosterjs-content-model-api/lib/publicApi/utils/checkXss.ts ***!
|
|
7892
7892
|
\******************************************************************************/
|
|
7893
|
-
(__unused_webpack_module, exports
|
|
7893
|
+
(__unused_webpack_module, exports) {
|
|
7894
7894
|
|
|
7895
7895
|
"use strict";
|
|
7896
7896
|
|
|
7897
7897
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
7898
7898
|
exports.checkXss = void 0;
|
|
7899
|
-
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
7900
7899
|
/**
|
|
7901
7900
|
* @internal Check if there is XSS attack in the link
|
|
7902
7901
|
* @param link The link to be checked
|
|
7903
|
-
* @returns The safe link
|
|
7904
|
-
* @remarks This function
|
|
7905
|
-
* and checks for patterns like s\nc\nr\ni\np\nt: to prevent XSS attacks. This may block some valid links,
|
|
7902
|
+
* @returns The safe link, or empty string if there is XSS attack
|
|
7903
|
+
* @remarks This function checks for patterns like s\nc\nr\ni\np\nt: to prevent XSS attacks. This may block some valid links,
|
|
7906
7904
|
* but it is necessary for security reasons. We treat the word "script" as safe if there are "/" before it.
|
|
7907
7905
|
*/
|
|
7908
7906
|
function checkXss(link) {
|
|
7909
|
-
|
|
7910
|
-
var sanitized = (0, roosterjs_content_model_dom_1.stripInvisibleUnicode)(link);
|
|
7911
|
-
return sanitized.match(/^[^\/]*s\n*c\n*r\n*i\n*p\n*t\n*:/i) ? '' : sanitized;
|
|
7907
|
+
return link.match(/^[^\/]*s\n*c\n*r\n*i\n*p\n*t\n*:/i) ? '' : link;
|
|
7912
7908
|
}
|
|
7913
7909
|
exports.checkXss = checkXss;
|
|
7914
7910
|
|
|
@@ -12997,17 +12993,24 @@ var DOMEventPlugin = /** @class */ (function () {
|
|
|
12997
12993
|
dragEvent.preventDefault();
|
|
12998
12994
|
}
|
|
12999
12995
|
};
|
|
13000
|
-
this.onDrop = function () {
|
|
13001
|
-
var _a
|
|
13002
|
-
|
|
13003
|
-
|
|
13004
|
-
|
|
13005
|
-
|
|
13006
|
-
|
|
13007
|
-
|
|
12996
|
+
this.onDrop = function (e) {
|
|
12997
|
+
var _a;
|
|
12998
|
+
if (_this.editor) {
|
|
12999
|
+
var beforeDropEvent = _this.editor.triggerEvent('beforeDrop', {
|
|
13000
|
+
rawEvent: e,
|
|
13001
|
+
});
|
|
13002
|
+
if (!(beforeDropEvent === null || beforeDropEvent === void 0 ? void 0 : beforeDropEvent.rawEvent.defaultPrevented)) {
|
|
13003
|
+
var doc = _this.editor.getDocument();
|
|
13004
|
+
(_a = doc === null || doc === void 0 ? void 0 : doc.defaultView) === null || _a === void 0 ? void 0 : _a.requestAnimationFrame(function () {
|
|
13005
|
+
if (_this.editor) {
|
|
13006
|
+
_this.editor.takeSnapshot();
|
|
13007
|
+
_this.editor.triggerEvent('contentChanged', {
|
|
13008
|
+
source: roosterjs_content_model_dom_1.ChangeSource.Drop,
|
|
13009
|
+
});
|
|
13010
|
+
}
|
|
13008
13011
|
});
|
|
13009
13012
|
}
|
|
13010
|
-
}
|
|
13013
|
+
}
|
|
13011
13014
|
};
|
|
13012
13015
|
this.onScroll = function (e) {
|
|
13013
13016
|
var _a;
|
|
@@ -13143,7 +13146,7 @@ var DOMEventPlugin = /** @class */ (function () {
|
|
|
13143
13146
|
compositionend: { beforeDispatch: this.onCompositionEnd },
|
|
13144
13147
|
// 4. Drag and Drop event
|
|
13145
13148
|
dragstart: { beforeDispatch: this.onDragStart },
|
|
13146
|
-
drop: { beforeDispatch:
|
|
13149
|
+
drop: { beforeDispatch: function (event) { return _this.onDrop(event); } },
|
|
13147
13150
|
// 5. Pointer event
|
|
13148
13151
|
pointerdown: { beforeDispatch: function (event) { return _this.onPointerDown(event); } },
|
|
13149
13152
|
};
|
|
@@ -15626,7 +15629,6 @@ var Editor = /** @class */ (function () {
|
|
|
15626
15629
|
};
|
|
15627
15630
|
this.core = (0, createEditorCore_1.createEditorCore)(contentDiv, options);
|
|
15628
15631
|
var initialModel = (_a = options.initialModel) !== null && _a !== void 0 ? _a : (0, roosterjs_content_model_dom_1.createEmptyModel)(this.core.format.defaultFormat);
|
|
15629
|
-
(0, roosterjs_content_model_dom_1.sanitizeInvisibleUnicode)(initialModel);
|
|
15630
15632
|
this.core.api.setContentModel(this.core, initialModel, { ignoreSelection: true }, undefined /*onNodeCreated*/, true /*isInitializing*/);
|
|
15631
15633
|
this.core.plugins.forEach(function (plugin) { return plugin.initialize(_this); });
|
|
15632
15634
|
}
|
|
@@ -20800,38 +20802,6 @@ function normalizeText(txt, isForward) {
|
|
|
20800
20802
|
exports.normalizeText = normalizeText;
|
|
20801
20803
|
|
|
20802
20804
|
|
|
20803
|
-
/***/ },
|
|
20804
|
-
|
|
20805
|
-
/***/ "./packages/roosterjs-content-model-dom/lib/domUtils/stripInvisibleUnicode.ts"
|
|
20806
|
-
/*!************************************************************************************!*\
|
|
20807
|
-
!*** ./packages/roosterjs-content-model-dom/lib/domUtils/stripInvisibleUnicode.ts ***!
|
|
20808
|
-
\************************************************************************************/
|
|
20809
|
-
(__unused_webpack_module, exports) {
|
|
20810
|
-
|
|
20811
|
-
"use strict";
|
|
20812
|
-
|
|
20813
|
-
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
20814
|
-
exports.stripInvisibleUnicode = void 0;
|
|
20815
|
-
var INVISIBLE_UNICODE_REGEX =
|
|
20816
|
-
// eslint-disable-next-line no-misleading-character-class
|
|
20817
|
-
/[\u00AD\u034F\u061C\u115F\u1160\u17B4\u17B5\u180B-\u180E\u200B-\u200F\u202A-\u202E\u2028\u2029\u2060-\u2064\u2066-\u2069\u3164\uFEFF\uFFA0\uFFF9-\uFFFB]|\uDB40[\uDC01-\uDCFF]/g;
|
|
20818
|
-
/**
|
|
20819
|
-
* Strip invisible Unicode characters from a string.
|
|
20820
|
-
* This removes zero-width characters, bidirectional marks, Unicode Tags (U+E0001-U+E00FF),
|
|
20821
|
-
* interlinear annotation anchors, Mongolian free variation selectors,
|
|
20822
|
-
* and other invisible formatting characters that can be used to hide content in links.
|
|
20823
|
-
*
|
|
20824
|
-
* @remarks This function strips ZWJ (U+200D) which may affect emoji sequences.
|
|
20825
|
-
* It should only be applied to href attributes, not to visible text content.
|
|
20826
|
-
* @param value The string to strip invisible characters from
|
|
20827
|
-
* @returns The string with invisible characters removed
|
|
20828
|
-
*/
|
|
20829
|
-
function stripInvisibleUnicode(value) {
|
|
20830
|
-
return value.replace(INVISIBLE_UNICODE_REGEX, '');
|
|
20831
|
-
}
|
|
20832
|
-
exports.stripInvisibleUnicode = stripInvisibleUnicode;
|
|
20833
|
-
|
|
20834
|
-
|
|
20835
20805
|
/***/ },
|
|
20836
20806
|
|
|
20837
20807
|
/***/ "./packages/roosterjs-content-model-dom/lib/domUtils/style/borderValues.ts"
|
|
@@ -23628,9 +23598,9 @@ exports.shouldSetValue = shouldSetValue;
|
|
|
23628
23598
|
|
|
23629
23599
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
23630
23600
|
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;
|
|
23631
|
-
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.
|
|
23632
|
-
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.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.
|
|
23633
|
-
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 =
|
|
23601
|
+
exports.trimModelForSelection = 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.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;
|
|
23602
|
+
exports.runEditSteps = exports.getClosestAncestorBlockGroupIndex = 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.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 = void 0;
|
|
23603
|
+
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 = void 0;
|
|
23634
23604
|
var domToContentModel_1 = __webpack_require__(/*! ./domToModel/domToContentModel */ "./packages/roosterjs-content-model-dom/lib/domToModel/domToContentModel.ts");
|
|
23635
23605
|
Object.defineProperty(exports, "domToContentModel", ({ enumerable: true, get: function () { return domToContentModel_1.domToContentModel; } }));
|
|
23636
23606
|
var contentModelToDom_1 = __webpack_require__(/*! ./modelToDom/contentModelToDom */ "./packages/roosterjs-content-model-dom/lib/modelToDom/contentModelToDom.ts");
|
|
@@ -23751,8 +23721,6 @@ var normalizeParagraph_1 = __webpack_require__(/*! ./modelApi/common/normalizePa
|
|
|
23751
23721
|
Object.defineProperty(exports, "normalizeParagraph", ({ enumerable: true, get: function () { return normalizeParagraph_1.normalizeParagraph; } }));
|
|
23752
23722
|
var normalizeContentModel_1 = __webpack_require__(/*! ./modelApi/common/normalizeContentModel */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/normalizeContentModel.ts");
|
|
23753
23723
|
Object.defineProperty(exports, "normalizeContentModel", ({ enumerable: true, get: function () { return normalizeContentModel_1.normalizeContentModel; } }));
|
|
23754
|
-
var sanitizeInvisibleUnicode_1 = __webpack_require__(/*! ./modelApi/common/sanitizeInvisibleUnicode */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/sanitizeInvisibleUnicode.ts");
|
|
23755
|
-
Object.defineProperty(exports, "sanitizeInvisibleUnicode", ({ enumerable: true, get: function () { return sanitizeInvisibleUnicode_1.sanitizeInvisibleUnicode; } }));
|
|
23756
23724
|
var isGeneralSegment_1 = __webpack_require__(/*! ./modelApi/typeCheck/isGeneralSegment */ "./packages/roosterjs-content-model-dom/lib/modelApi/typeCheck/isGeneralSegment.ts");
|
|
23757
23725
|
Object.defineProperty(exports, "isGeneralSegment", ({ enumerable: true, get: function () { return isGeneralSegment_1.isGeneralSegment; } }));
|
|
23758
23726
|
var unwrapBlock_1 = __webpack_require__(/*! ./modelApi/common/unwrapBlock */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/unwrapBlock.ts");
|
|
@@ -23818,8 +23786,6 @@ var stringUtil_1 = __webpack_require__(/*! ./domUtils/stringUtil */ "./packages/
|
|
|
23818
23786
|
Object.defineProperty(exports, "isPunctuation", ({ enumerable: true, get: function () { return stringUtil_1.isPunctuation; } }));
|
|
23819
23787
|
Object.defineProperty(exports, "isSpace", ({ enumerable: true, get: function () { return stringUtil_1.isSpace; } }));
|
|
23820
23788
|
Object.defineProperty(exports, "normalizeText", ({ enumerable: true, get: function () { return stringUtil_1.normalizeText; } }));
|
|
23821
|
-
var stripInvisibleUnicode_1 = __webpack_require__(/*! ./domUtils/stripInvisibleUnicode */ "./packages/roosterjs-content-model-dom/lib/domUtils/stripInvisibleUnicode.ts");
|
|
23822
|
-
Object.defineProperty(exports, "stripInvisibleUnicode", ({ enumerable: true, get: function () { return stripInvisibleUnicode_1.stripInvisibleUnicode; } }));
|
|
23823
23789
|
var parseTableCells_1 = __webpack_require__(/*! ./domUtils/table/parseTableCells */ "./packages/roosterjs-content-model-dom/lib/domUtils/table/parseTableCells.ts");
|
|
23824
23790
|
Object.defineProperty(exports, "parseTableCells", ({ enumerable: true, get: function () { return parseTableCells_1.parseTableCells; } }));
|
|
23825
23791
|
var readFile_1 = __webpack_require__(/*! ./domUtils/readFile */ "./packages/roosterjs-content-model-dom/lib/domUtils/readFile.ts");
|
|
@@ -24818,134 +24784,6 @@ function normalizeSegmentFormat(format, environment) {
|
|
|
24818
24784
|
exports.normalizeSegmentFormat = normalizeSegmentFormat;
|
|
24819
24785
|
|
|
24820
24786
|
|
|
24821
|
-
/***/ },
|
|
24822
|
-
|
|
24823
|
-
/***/ "./packages/roosterjs-content-model-dom/lib/modelApi/common/sanitizeInvisibleUnicode.ts"
|
|
24824
|
-
/*!**********************************************************************************************!*\
|
|
24825
|
-
!*** ./packages/roosterjs-content-model-dom/lib/modelApi/common/sanitizeInvisibleUnicode.ts ***!
|
|
24826
|
-
\**********************************************************************************************/
|
|
24827
|
-
(__unused_webpack_module, exports, __webpack_require__) {
|
|
24828
|
-
|
|
24829
|
-
"use strict";
|
|
24830
|
-
|
|
24831
|
-
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
24832
|
-
exports.sanitizeInvisibleUnicode = void 0;
|
|
24833
|
-
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
24834
|
-
var stripInvisibleUnicode_1 = __webpack_require__(/*! ../../domUtils/stripInvisibleUnicode */ "./packages/roosterjs-content-model-dom/lib/domUtils/stripInvisibleUnicode.ts");
|
|
24835
|
-
/**
|
|
24836
|
-
* Strip invisible Unicode characters from all text and link hrefs in a content model.
|
|
24837
|
-
* This sanitizes the model at initialization time to prevent hidden content in links
|
|
24838
|
-
* or text (e.g. zero-width chars, bidirectional marks, Unicode Tags).
|
|
24839
|
-
* For General segments, all Text nodes under the element are also sanitized.
|
|
24840
|
-
* @param model The content model document to sanitize in-place
|
|
24841
|
-
*/
|
|
24842
|
-
function sanitizeInvisibleUnicode(model) {
|
|
24843
|
-
sanitizeBlockGroup(model);
|
|
24844
|
-
}
|
|
24845
|
-
exports.sanitizeInvisibleUnicode = sanitizeInvisibleUnicode;
|
|
24846
|
-
function sanitizeBlockGroup(group) {
|
|
24847
|
-
var e_1, _a;
|
|
24848
|
-
try {
|
|
24849
|
-
for (var _b = (0, tslib_1.__values)(group.blocks), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
24850
|
-
var block = _c.value;
|
|
24851
|
-
sanitizeBlock(block);
|
|
24852
|
-
}
|
|
24853
|
-
}
|
|
24854
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
24855
|
-
finally {
|
|
24856
|
-
try {
|
|
24857
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
24858
|
-
}
|
|
24859
|
-
finally { if (e_1) throw e_1.error; }
|
|
24860
|
-
}
|
|
24861
|
-
}
|
|
24862
|
-
function sanitizeBlock(block) {
|
|
24863
|
-
var e_2, _a, e_3, _b, e_4, _c;
|
|
24864
|
-
switch (block.blockType) {
|
|
24865
|
-
case 'Paragraph':
|
|
24866
|
-
try {
|
|
24867
|
-
for (var _d = (0, tslib_1.__values)(block.segments), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
24868
|
-
var segment = _e.value;
|
|
24869
|
-
sanitizeSegment(segment);
|
|
24870
|
-
}
|
|
24871
|
-
}
|
|
24872
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
24873
|
-
finally {
|
|
24874
|
-
try {
|
|
24875
|
-
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
24876
|
-
}
|
|
24877
|
-
finally { if (e_2) throw e_2.error; }
|
|
24878
|
-
}
|
|
24879
|
-
break;
|
|
24880
|
-
case 'Table':
|
|
24881
|
-
try {
|
|
24882
|
-
for (var _f = (0, tslib_1.__values)(block.rows), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
24883
|
-
var row = _g.value;
|
|
24884
|
-
try {
|
|
24885
|
-
for (var _h = (e_4 = void 0, (0, tslib_1.__values)(row.cells)), _j = _h.next(); !_j.done; _j = _h.next()) {
|
|
24886
|
-
var cell = _j.value;
|
|
24887
|
-
sanitizeBlockGroup(cell);
|
|
24888
|
-
}
|
|
24889
|
-
}
|
|
24890
|
-
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
24891
|
-
finally {
|
|
24892
|
-
try {
|
|
24893
|
-
if (_j && !_j.done && (_c = _h.return)) _c.call(_h);
|
|
24894
|
-
}
|
|
24895
|
-
finally { if (e_4) throw e_4.error; }
|
|
24896
|
-
}
|
|
24897
|
-
}
|
|
24898
|
-
}
|
|
24899
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
24900
|
-
finally {
|
|
24901
|
-
try {
|
|
24902
|
-
if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
|
|
24903
|
-
}
|
|
24904
|
-
finally { if (e_3) throw e_3.error; }
|
|
24905
|
-
}
|
|
24906
|
-
break;
|
|
24907
|
-
case 'BlockGroup':
|
|
24908
|
-
sanitizeBlockGroup(block);
|
|
24909
|
-
if (block.blockGroupType === 'General' && block.element) {
|
|
24910
|
-
sanitizeTextNodes(block.element);
|
|
24911
|
-
}
|
|
24912
|
-
break;
|
|
24913
|
-
case 'Entity':
|
|
24914
|
-
case 'Divider':
|
|
24915
|
-
break;
|
|
24916
|
-
}
|
|
24917
|
-
}
|
|
24918
|
-
function sanitizeSegment(segment) {
|
|
24919
|
-
var _a;
|
|
24920
|
-
if ((_a = segment.link) === null || _a === void 0 ? void 0 : _a.format.href) {
|
|
24921
|
-
segment.link.format.href = (0, stripInvisibleUnicode_1.stripInvisibleUnicode)(segment.link.format.href);
|
|
24922
|
-
}
|
|
24923
|
-
switch (segment.segmentType) {
|
|
24924
|
-
case 'Text':
|
|
24925
|
-
segment.text = (0, stripInvisibleUnicode_1.stripInvisibleUnicode)(segment.text);
|
|
24926
|
-
break;
|
|
24927
|
-
case 'General':
|
|
24928
|
-
sanitizeTextNodes(segment.element);
|
|
24929
|
-
sanitizeBlockGroup(segment);
|
|
24930
|
-
break;
|
|
24931
|
-
case 'Image':
|
|
24932
|
-
case 'Entity':
|
|
24933
|
-
case 'Br':
|
|
24934
|
-
case 'SelectionMarker':
|
|
24935
|
-
break;
|
|
24936
|
-
}
|
|
24937
|
-
}
|
|
24938
|
-
function sanitizeTextNodes(element) {
|
|
24939
|
-
var walker = element.ownerDocument.createTreeWalker(element, NodeFilter.SHOW_TEXT);
|
|
24940
|
-
var node;
|
|
24941
|
-
while ((node = walker.nextNode())) {
|
|
24942
|
-
if (node.nodeValue) {
|
|
24943
|
-
node.nodeValue = (0, stripInvisibleUnicode_1.stripInvisibleUnicode)(node.nodeValue);
|
|
24944
|
-
}
|
|
24945
|
-
}
|
|
24946
|
-
}
|
|
24947
|
-
|
|
24948
|
-
|
|
24949
24787
|
/***/ },
|
|
24950
24788
|
|
|
24951
24789
|
/***/ "./packages/roosterjs-content-model-dom/lib/modelApi/common/unwrapBlock.ts"
|
|
@@ -31532,16 +31370,43 @@ exports.isMarkdownTable = isMarkdownTable;
|
|
|
31532
31370
|
|
|
31533
31371
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
31534
31372
|
exports.splitParagraphSegments = void 0;
|
|
31535
|
-
|
|
31373
|
+
// Matches markdown links and images in a string.
|
|
31374
|
+
// Group 1 (full link): [text](url) e.g. [Click here](https://example.com)
|
|
31375
|
+
// Group 2: link text e.g. "Click here"
|
|
31376
|
+
// Group 3: link url e.g. "https://example.com"
|
|
31377
|
+
// Group 4 (full image):  e.g. 
|
|
31378
|
+
// Group 5: alt text e.g. "Logo"
|
|
31379
|
+
// Group 6: image url e.g. "https://example.com/logo.png"
|
|
31380
|
+
var linkRegex = /(\[([^\[]+)\]\(([^\)]+)\))|(\!\[([^\[]+)\]\(([^\)]+)\))/g;
|
|
31536
31381
|
var isValidUrl = function (url) {
|
|
31537
|
-
|
|
31538
|
-
|
|
31382
|
+
if (!url) {
|
|
31383
|
+
return false;
|
|
31384
|
+
}
|
|
31385
|
+
// Accept common non-http schemes and relative paths
|
|
31386
|
+
if (url.startsWith('data:') ||
|
|
31387
|
+
url.startsWith('blob:') ||
|
|
31388
|
+
url.startsWith('/') ||
|
|
31389
|
+
url.startsWith('./') ||
|
|
31390
|
+
url.startsWith('../')) {
|
|
31539
31391
|
return true;
|
|
31540
31392
|
}
|
|
31393
|
+
try {
|
|
31394
|
+
var parsed = new URL(url);
|
|
31395
|
+
return parsed.protocol === 'http:' || parsed.protocol === 'https:';
|
|
31396
|
+
}
|
|
31541
31397
|
catch (_) {
|
|
31542
31398
|
return false;
|
|
31543
31399
|
}
|
|
31544
31400
|
};
|
|
31401
|
+
function pushText(result, text) {
|
|
31402
|
+
var last = result[result.length - 1];
|
|
31403
|
+
if (last && last.type === 'text') {
|
|
31404
|
+
last.text += text;
|
|
31405
|
+
}
|
|
31406
|
+
else {
|
|
31407
|
+
result.push({ type: 'text', text: text, url: '' });
|
|
31408
|
+
}
|
|
31409
|
+
}
|
|
31545
31410
|
/**
|
|
31546
31411
|
* @internal
|
|
31547
31412
|
*/
|
|
@@ -31551,22 +31416,28 @@ function splitParagraphSegments(text) {
|
|
|
31551
31416
|
var match = null;
|
|
31552
31417
|
while ((match = linkRegex.exec(text)) !== null) {
|
|
31553
31418
|
if (match.index > lastIndex) {
|
|
31554
|
-
result
|
|
31419
|
+
pushText(result, text.slice(lastIndex, match.index));
|
|
31555
31420
|
}
|
|
31556
31421
|
if (match[2] && match[3]) {
|
|
31557
|
-
|
|
31558
|
-
|
|
31559
|
-
|
|
31422
|
+
if (isValidUrl(match[3])) {
|
|
31423
|
+
result.push({ type: 'link', text: match[2], url: match[3] });
|
|
31424
|
+
}
|
|
31425
|
+
else {
|
|
31426
|
+
pushText(result, match[0]);
|
|
31427
|
+
}
|
|
31560
31428
|
}
|
|
31561
31429
|
else if (match[5] && match[6]) {
|
|
31562
|
-
|
|
31563
|
-
|
|
31564
|
-
|
|
31430
|
+
if (isValidUrl(match[6])) {
|
|
31431
|
+
result.push({ type: 'image', text: match[5], url: match[6] });
|
|
31432
|
+
}
|
|
31433
|
+
else {
|
|
31434
|
+
pushText(result, match[0]);
|
|
31435
|
+
}
|
|
31565
31436
|
}
|
|
31566
31437
|
lastIndex = linkRegex.lastIndex;
|
|
31567
31438
|
}
|
|
31568
31439
|
if (lastIndex < text.length) {
|
|
31569
|
-
result
|
|
31440
|
+
pushText(result, text.slice(lastIndex));
|
|
31570
31441
|
}
|
|
31571
31442
|
return result;
|
|
31572
31443
|
}
|
|
@@ -33391,6 +33262,192 @@ var CustomReplacePlugin = /** @class */ (function () {
|
|
|
33391
33262
|
exports.CustomReplacePlugin = CustomReplacePlugin;
|
|
33392
33263
|
|
|
33393
33264
|
|
|
33265
|
+
/***/ },
|
|
33266
|
+
|
|
33267
|
+
/***/ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/DragAndDropPlugin.ts"
|
|
33268
|
+
/*!***************************************************************************************!*\
|
|
33269
|
+
!*** ./packages/roosterjs-content-model-plugins/lib/dragAndDrop/DragAndDropPlugin.ts ***!
|
|
33270
|
+
\***************************************************************************************/
|
|
33271
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
33272
|
+
|
|
33273
|
+
"use strict";
|
|
33274
|
+
|
|
33275
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
33276
|
+
exports.DragAndDropPlugin = void 0;
|
|
33277
|
+
var handleDroppedContent_1 = __webpack_require__(/*! ./utils/handleDroppedContent */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/handleDroppedContent.ts");
|
|
33278
|
+
var DefaultOptions = {
|
|
33279
|
+
forbiddenElements: ['iframe'],
|
|
33280
|
+
};
|
|
33281
|
+
/**
|
|
33282
|
+
* DragAndDrop plugin, handles ContentChanged event when change source is "Drop"
|
|
33283
|
+
* to sanitize dropped content, similar to how PastePlugin sanitizes pasted content.
|
|
33284
|
+
*/
|
|
33285
|
+
var DragAndDropPlugin = /** @class */ (function () {
|
|
33286
|
+
/**
|
|
33287
|
+
* Construct a new instance of DragAndDropPlugin
|
|
33288
|
+
*/
|
|
33289
|
+
function DragAndDropPlugin(options) {
|
|
33290
|
+
if (options === void 0) { options = DefaultOptions; }
|
|
33291
|
+
var _a;
|
|
33292
|
+
this.editor = null;
|
|
33293
|
+
this.forbiddenElements = [];
|
|
33294
|
+
this.isInternalDragging = false;
|
|
33295
|
+
this.disposer = null;
|
|
33296
|
+
this.forbiddenElements = (_a = options.forbiddenElements) !== null && _a !== void 0 ? _a : [];
|
|
33297
|
+
}
|
|
33298
|
+
/**
|
|
33299
|
+
* Get name of this plugin
|
|
33300
|
+
*/
|
|
33301
|
+
DragAndDropPlugin.prototype.getName = function () {
|
|
33302
|
+
return 'DragAndDrop';
|
|
33303
|
+
};
|
|
33304
|
+
/**
|
|
33305
|
+
* The first method that editor will call to a plugin when editor is initializing.
|
|
33306
|
+
* It will pass in the editor instance, plugin should take this chance to save the
|
|
33307
|
+
* editor reference so that it can call to any editor method or format API later.
|
|
33308
|
+
* @param editor The editor object
|
|
33309
|
+
*/
|
|
33310
|
+
DragAndDropPlugin.prototype.initialize = function (editor) {
|
|
33311
|
+
var _this = this;
|
|
33312
|
+
this.editor = editor;
|
|
33313
|
+
this.disposer = editor.attachDomEvent({
|
|
33314
|
+
dragstart: {
|
|
33315
|
+
beforeDispatch: function (_ev) {
|
|
33316
|
+
_this.isInternalDragging = true;
|
|
33317
|
+
},
|
|
33318
|
+
},
|
|
33319
|
+
});
|
|
33320
|
+
};
|
|
33321
|
+
/**
|
|
33322
|
+
* The last method that editor will call to a plugin before it is disposed.
|
|
33323
|
+
* Plugin can take this chance to clear the reference to editor. After this method is
|
|
33324
|
+
* called, plugin should not call to any editor method since it will result in error.
|
|
33325
|
+
*/
|
|
33326
|
+
DragAndDropPlugin.prototype.dispose = function () {
|
|
33327
|
+
this.editor = null;
|
|
33328
|
+
if (this.disposer) {
|
|
33329
|
+
this.disposer();
|
|
33330
|
+
this.disposer = null;
|
|
33331
|
+
}
|
|
33332
|
+
this.isInternalDragging = false;
|
|
33333
|
+
this.forbiddenElements = [];
|
|
33334
|
+
};
|
|
33335
|
+
/**
|
|
33336
|
+
* Core method for a plugin. Once an event happens in editor, editor will call this
|
|
33337
|
+
* method of each plugin to handle the event as long as the event is not handled
|
|
33338
|
+
* exclusively by another plugin.
|
|
33339
|
+
* @param event The event to handle:
|
|
33340
|
+
*/
|
|
33341
|
+
DragAndDropPlugin.prototype.onPluginEvent = function (event) {
|
|
33342
|
+
var _a;
|
|
33343
|
+
if (this.editor && event.eventType == 'beforeDrop') {
|
|
33344
|
+
if (this.isInternalDragging) {
|
|
33345
|
+
this.isInternalDragging = false;
|
|
33346
|
+
}
|
|
33347
|
+
else {
|
|
33348
|
+
var dropEvent = event.rawEvent;
|
|
33349
|
+
var html = (_a = dropEvent.dataTransfer) === null || _a === void 0 ? void 0 : _a.getData('text/html');
|
|
33350
|
+
if (html) {
|
|
33351
|
+
(0, handleDroppedContent_1.handleDroppedContent)(this.editor, dropEvent, html, this.forbiddenElements);
|
|
33352
|
+
}
|
|
33353
|
+
}
|
|
33354
|
+
return;
|
|
33355
|
+
}
|
|
33356
|
+
};
|
|
33357
|
+
return DragAndDropPlugin;
|
|
33358
|
+
}());
|
|
33359
|
+
exports.DragAndDropPlugin = DragAndDropPlugin;
|
|
33360
|
+
|
|
33361
|
+
|
|
33362
|
+
/***/ },
|
|
33363
|
+
|
|
33364
|
+
/***/ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/cleanForbiddenElements.ts"
|
|
33365
|
+
/*!**************************************************************************************************!*\
|
|
33366
|
+
!*** ./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/cleanForbiddenElements.ts ***!
|
|
33367
|
+
\**************************************************************************************************/
|
|
33368
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
33369
|
+
|
|
33370
|
+
"use strict";
|
|
33371
|
+
|
|
33372
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
33373
|
+
exports.cleanForbiddenElements = void 0;
|
|
33374
|
+
var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
|
|
33375
|
+
/**
|
|
33376
|
+
* @internal
|
|
33377
|
+
* Remove all forbidden elements from a parsed HTML document
|
|
33378
|
+
* @param doc The parsed HTML document to clean
|
|
33379
|
+
* @param forbiddenElements Array of tag names to remove (e.g., ['iframe', 'script'])
|
|
33380
|
+
*/
|
|
33381
|
+
function cleanForbiddenElements(doc, forbiddenElements) {
|
|
33382
|
+
var e_1, _a;
|
|
33383
|
+
var _b;
|
|
33384
|
+
if (forbiddenElements.length === 0) {
|
|
33385
|
+
return;
|
|
33386
|
+
}
|
|
33387
|
+
var selector = forbiddenElements.join(',');
|
|
33388
|
+
var elements = Array.from(doc.body.querySelectorAll(selector));
|
|
33389
|
+
try {
|
|
33390
|
+
for (var elements_1 = (0, tslib_1.__values)(elements), elements_1_1 = elements_1.next(); !elements_1_1.done; elements_1_1 = elements_1.next()) {
|
|
33391
|
+
var element = elements_1_1.value;
|
|
33392
|
+
(_b = element.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(element);
|
|
33393
|
+
}
|
|
33394
|
+
}
|
|
33395
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
33396
|
+
finally {
|
|
33397
|
+
try {
|
|
33398
|
+
if (elements_1_1 && !elements_1_1.done && (_a = elements_1.return)) _a.call(elements_1);
|
|
33399
|
+
}
|
|
33400
|
+
finally { if (e_1) throw e_1.error; }
|
|
33401
|
+
}
|
|
33402
|
+
}
|
|
33403
|
+
exports.cleanForbiddenElements = cleanForbiddenElements;
|
|
33404
|
+
|
|
33405
|
+
|
|
33406
|
+
/***/ },
|
|
33407
|
+
|
|
33408
|
+
/***/ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/handleDroppedContent.ts"
|
|
33409
|
+
/*!************************************************************************************************!*\
|
|
33410
|
+
!*** ./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/handleDroppedContent.ts ***!
|
|
33411
|
+
\************************************************************************************************/
|
|
33412
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
33413
|
+
|
|
33414
|
+
"use strict";
|
|
33415
|
+
|
|
33416
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
33417
|
+
exports.handleDroppedContent = void 0;
|
|
33418
|
+
var cleanForbiddenElements_1 = __webpack_require__(/*! ./cleanForbiddenElements */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/utils/cleanForbiddenElements.ts");
|
|
33419
|
+
var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
|
|
33420
|
+
/**
|
|
33421
|
+
* @internal
|
|
33422
|
+
* Handle dropped HTML content by inserting it at the drop position
|
|
33423
|
+
*/
|
|
33424
|
+
function handleDroppedContent(editor, event, html, forbiddenElements) {
|
|
33425
|
+
var doc = editor.getDocument();
|
|
33426
|
+
var domPosition = (0, roosterjs_content_model_dom_1.getNodePositionFromEvent)(doc, editor.getDOMHelper(), event.x, event.y);
|
|
33427
|
+
if (domPosition) {
|
|
33428
|
+
event.preventDefault();
|
|
33429
|
+
event.stopPropagation();
|
|
33430
|
+
var range = doc.createRange();
|
|
33431
|
+
range.setStart(domPosition.node, domPosition.offset);
|
|
33432
|
+
range.collapse(true);
|
|
33433
|
+
var parsedHtml = editor.getDOMCreator().htmlToDOM(html);
|
|
33434
|
+
(0, cleanForbiddenElements_1.cleanForbiddenElements)(parsedHtml, forbiddenElements);
|
|
33435
|
+
var droppedModel_1 = (0, roosterjs_content_model_dom_1.domToContentModel)(parsedHtml.body, (0, roosterjs_content_model_dom_1.createDomToModelContext)());
|
|
33436
|
+
editor.formatContentModel(function (model, context) {
|
|
33437
|
+
(0, roosterjs_content_model_dom_1.mergeModel)(model, droppedModel_1, context);
|
|
33438
|
+
return true;
|
|
33439
|
+
}, {
|
|
33440
|
+
selectionOverride: {
|
|
33441
|
+
type: 'range',
|
|
33442
|
+
range: range,
|
|
33443
|
+
isReverted: false,
|
|
33444
|
+
},
|
|
33445
|
+
});
|
|
33446
|
+
}
|
|
33447
|
+
}
|
|
33448
|
+
exports.handleDroppedContent = handleDroppedContent;
|
|
33449
|
+
|
|
33450
|
+
|
|
33394
33451
|
/***/ },
|
|
33395
33452
|
|
|
33396
33453
|
/***/ "./packages/roosterjs-content-model-plugins/lib/edit/EditPlugin.ts"
|
|
@@ -38395,7 +38452,7 @@ exports.updateWrapper = updateWrapper;
|
|
|
38395
38452
|
"use strict";
|
|
38396
38453
|
|
|
38397
38454
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
38398
|
-
exports.AnnouncePlugin = exports.moveHighlight = exports.replace = exports.find = exports.createFindReplaceContext = exports.FindReplacePlugin = exports.TouchPlugin = exports.HiddenPropertyPlugin = exports.ImageEditPlugin = exports.CustomReplacePlugin = exports.PickerPlugin = exports.HyperlinkPlugin = exports.MarkdownPlugin = exports.isModelEmptyFast = exports.WatermarkPlugin = exports.ContextMenuPluginBase = exports.ShortcutPlugin = exports.ShortcutOutdentList = exports.ShortcutIndentList = exports.ShortcutDecreaseFont = exports.ShortcutIncreaseFont = exports.ShortcutNumbering = exports.ShortcutBullet = exports.ShortcutRedoMacOS = exports.ShortcutRedoAlt = exports.ShortcutRedo = exports.ShortcutUndo2 = exports.ShortcutUndo = exports.ShortcutClearFormat = exports.ShortcutUnderline = exports.ShortcutItalic = exports.ShortcutBold = exports.AutoFormatPlugin = exports.EditPlugin = exports.DefaultSanitizers = exports.PastePlugin = exports.TableEditPlugin = void 0;
|
|
38455
|
+
exports.DragAndDropPlugin = exports.AnnouncePlugin = exports.moveHighlight = exports.replace = exports.find = exports.createFindReplaceContext = exports.FindReplacePlugin = exports.TouchPlugin = exports.HiddenPropertyPlugin = exports.ImageEditPlugin = exports.CustomReplacePlugin = exports.PickerPlugin = exports.HyperlinkPlugin = exports.MarkdownPlugin = exports.isModelEmptyFast = exports.WatermarkPlugin = exports.ContextMenuPluginBase = exports.ShortcutPlugin = exports.ShortcutOutdentList = exports.ShortcutIndentList = exports.ShortcutDecreaseFont = exports.ShortcutIncreaseFont = exports.ShortcutNumbering = exports.ShortcutBullet = exports.ShortcutRedoMacOS = exports.ShortcutRedoAlt = exports.ShortcutRedo = exports.ShortcutUndo2 = exports.ShortcutUndo = exports.ShortcutClearFormat = exports.ShortcutUnderline = exports.ShortcutItalic = exports.ShortcutBold = exports.AutoFormatPlugin = exports.EditPlugin = exports.DefaultSanitizers = exports.PastePlugin = exports.TableEditPlugin = void 0;
|
|
38399
38456
|
var TableEditPlugin_1 = __webpack_require__(/*! ./tableEdit/TableEditPlugin */ "./packages/roosterjs-content-model-plugins/lib/tableEdit/TableEditPlugin.ts");
|
|
38400
38457
|
Object.defineProperty(exports, "TableEditPlugin", ({ enumerable: true, get: function () { return TableEditPlugin_1.TableEditPlugin; } }));
|
|
38401
38458
|
var PastePlugin_1 = __webpack_require__(/*! ./paste/PastePlugin */ "./packages/roosterjs-content-model-plugins/lib/paste/PastePlugin.ts");
|
|
@@ -38456,6 +38513,8 @@ var moveHighlight_1 = __webpack_require__(/*! ./findReplace/moveHighlight */ "./
|
|
|
38456
38513
|
Object.defineProperty(exports, "moveHighlight", ({ enumerable: true, get: function () { return moveHighlight_1.moveHighlight; } }));
|
|
38457
38514
|
var AnnouncePlugin_1 = __webpack_require__(/*! ./announce/AnnouncePlugin */ "./packages/roosterjs-content-model-plugins/lib/announce/AnnouncePlugin.ts");
|
|
38458
38515
|
Object.defineProperty(exports, "AnnouncePlugin", ({ enumerable: true, get: function () { return AnnouncePlugin_1.AnnouncePlugin; } }));
|
|
38516
|
+
var DragAndDropPlugin_1 = __webpack_require__(/*! ./dragAndDrop/DragAndDropPlugin */ "./packages/roosterjs-content-model-plugins/lib/dragAndDrop/DragAndDropPlugin.ts");
|
|
38517
|
+
Object.defineProperty(exports, "DragAndDropPlugin", ({ enumerable: true, get: function () { return DragAndDropPlugin_1.DragAndDropPlugin; } }));
|
|
38459
38518
|
|
|
38460
38519
|
|
|
38461
38520
|
/***/ },
|