roosterjs 9.50.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.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Type definitions for roosterjs (Version 9.50.0)
1
+ // Type definitions for roosterjs (Version 9.50.1)
2
2
  // Generated by dts tool from roosterjs
3
3
  // Project: https://github.com/Microsoft/roosterjs
4
4
 
@@ -7425,15 +7425,6 @@ function normalizeParagraph(paragraph: ReadonlyContentModelParagraph): void;
7425
7425
  */
7426
7426
  function normalizeContentModel(group: ReadonlyContentModelBlockGroup): void;
7427
7427
 
7428
- /**
7429
- * Strip invisible Unicode characters from all text and link hrefs in a content model.
7430
- * This sanitizes the model at initialization time to prevent hidden content in links
7431
- * or text (e.g. zero-width chars, bidirectional marks, Unicode Tags).
7432
- * For General segments, all Text nodes under the element are also sanitized.
7433
- * @param model The content model document to sanitize in-place
7434
- */
7435
- function sanitizeInvisibleUnicode(model: ContentModelDocument): void;
7436
-
7437
7428
  /**
7438
7429
  * Check if the given block group is a general segment
7439
7430
  * @param group The group to check
@@ -7751,19 +7742,6 @@ function isSpace(char: string): boolean;
7751
7742
  */
7752
7743
  function normalizeText(txt: string, isForward: boolean): string;
7753
7744
 
7754
- /**
7755
- * Strip invisible Unicode characters from a string.
7756
- * This removes zero-width characters, bidirectional marks, Unicode Tags (U+E0001-U+E00FF),
7757
- * interlinear annotation anchors, Mongolian free variation selectors,
7758
- * and other invisible formatting characters that can be used to hide content in links.
7759
- *
7760
- * @remarks This function strips ZWJ (U+200D) which may affect emoji sequences.
7761
- * It should only be applied to href attributes, not to visible text content.
7762
- * @param value The string to strip invisible characters from
7763
- * @returns The string with invisible characters removed
7764
- */
7765
- function stripInvisibleUnicode(value: string): string;
7766
-
7767
7745
  /**
7768
7746
  * Parse a table into a two dimensions array of TD elements. For those merged cells, the value will be null.
7769
7747
  * @param table Input HTML Table element
package/dist/rooster.js CHANGED
@@ -7891,25 +7891,21 @@ exports.setTableCellShade = setTableCellShade;
7891
7891
  /*!******************************************************************************!*\
7892
7892
  !*** ./packages/roosterjs-content-model-api/lib/publicApi/utils/checkXss.ts ***!
7893
7893
  \******************************************************************************/
7894
- (__unused_webpack_module, exports, __webpack_require__) {
7894
+ (__unused_webpack_module, exports) {
7895
7895
 
7896
7896
  "use strict";
7897
7897
 
7898
7898
  Object.defineProperty(exports, "__esModule", ({ value: true }));
7899
7899
  exports.checkXss = void 0;
7900
- var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
7901
7900
  /**
7902
7901
  * @internal Check if there is XSS attack in the link
7903
7902
  * @param link The link to be checked
7904
- * @returns The safe link with invisible Unicode characters stripped, or empty string if there is XSS attack
7905
- * @remarks This function strips invisible Unicode characters (zero-width chars, Unicode Tags, etc.)
7906
- * and checks for patterns like s\nc\nr\ni\np\nt: to prevent XSS attacks. This may block some valid links,
7903
+ * @returns The safe link, or empty string if there is XSS attack
7904
+ * @remarks This function checks for patterns like s\nc\nr\ni\np\nt: to prevent XSS attacks. This may block some valid links,
7907
7905
  * but it is necessary for security reasons. We treat the word "script" as safe if there are "/" before it.
7908
7906
  */
7909
7907
  function checkXss(link) {
7910
- // Defense-in-depth: strip invisible Unicode even if already handled elsewhere
7911
- var sanitized = (0, roosterjs_content_model_dom_1.stripInvisibleUnicode)(link);
7912
- return sanitized.match(/^[^\/]*s\n*c\n*r\n*i\n*p\n*t\n*:/i) ? '' : sanitized;
7908
+ return link.match(/^[^\/]*s\n*c\n*r\n*i\n*p\n*t\n*:/i) ? '' : link;
7913
7909
  }
7914
7910
  exports.checkXss = checkXss;
7915
7911
 
@@ -15634,7 +15630,6 @@ var Editor = /** @class */ (function () {
15634
15630
  };
15635
15631
  this.core = (0, createEditorCore_1.createEditorCore)(contentDiv, options);
15636
15632
  var initialModel = (_a = options.initialModel) !== null && _a !== void 0 ? _a : (0, roosterjs_content_model_dom_1.createEmptyModel)(this.core.format.defaultFormat);
15637
- (0, roosterjs_content_model_dom_1.sanitizeInvisibleUnicode)(initialModel);
15638
15633
  this.core.api.setContentModel(this.core, initialModel, { ignoreSelection: true }, undefined /*onNodeCreated*/, true /*isInitializing*/);
15639
15634
  this.core.plugins.forEach(function (plugin) { return plugin.initialize(_this); });
15640
15635
  }
@@ -20808,38 +20803,6 @@ function normalizeText(txt, isForward) {
20808
20803
  exports.normalizeText = normalizeText;
20809
20804
 
20810
20805
 
20811
- /***/ },
20812
-
20813
- /***/ "./packages/roosterjs-content-model-dom/lib/domUtils/stripInvisibleUnicode.ts"
20814
- /*!************************************************************************************!*\
20815
- !*** ./packages/roosterjs-content-model-dom/lib/domUtils/stripInvisibleUnicode.ts ***!
20816
- \************************************************************************************/
20817
- (__unused_webpack_module, exports) {
20818
-
20819
- "use strict";
20820
-
20821
- Object.defineProperty(exports, "__esModule", ({ value: true }));
20822
- exports.stripInvisibleUnicode = void 0;
20823
- var INVISIBLE_UNICODE_REGEX =
20824
- // eslint-disable-next-line no-misleading-character-class
20825
- /[\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;
20826
- /**
20827
- * Strip invisible Unicode characters from a string.
20828
- * This removes zero-width characters, bidirectional marks, Unicode Tags (U+E0001-U+E00FF),
20829
- * interlinear annotation anchors, Mongolian free variation selectors,
20830
- * and other invisible formatting characters that can be used to hide content in links.
20831
- *
20832
- * @remarks This function strips ZWJ (U+200D) which may affect emoji sequences.
20833
- * It should only be applied to href attributes, not to visible text content.
20834
- * @param value The string to strip invisible characters from
20835
- * @returns The string with invisible characters removed
20836
- */
20837
- function stripInvisibleUnicode(value) {
20838
- return value.replace(INVISIBLE_UNICODE_REGEX, '');
20839
- }
20840
- exports.stripInvisibleUnicode = stripInvisibleUnicode;
20841
-
20842
-
20843
20806
  /***/ },
20844
20807
 
20845
20808
  /***/ "./packages/roosterjs-content-model-dom/lib/domUtils/style/borderValues.ts"
@@ -23636,9 +23599,9 @@ exports.shouldSetValue = shouldSetValue;
23636
23599
 
23637
23600
  Object.defineProperty(exports, "__esModule", ({ value: true }));
23638
23601
  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;
23639
- 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.sanitizeInvisibleUnicode = 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;
23640
- 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.stripInvisibleUnicode = exports.normalizeText = exports.isSpace = exports.isPunctuation = exports.extractBorderValues = exports.combineBorderValue = exports.getNodePositionFromEvent = exports.isCursorMovingKey = exports.isModifierKey = exports.isCharacterValue = exports.trimModelForSelection = void 0;
23641
- 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;
23602
+ 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;
23603
+ 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;
23604
+ 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;
23642
23605
  var domToContentModel_1 = __webpack_require__(/*! ./domToModel/domToContentModel */ "./packages/roosterjs-content-model-dom/lib/domToModel/domToContentModel.ts");
23643
23606
  Object.defineProperty(exports, "domToContentModel", ({ enumerable: true, get: function () { return domToContentModel_1.domToContentModel; } }));
23644
23607
  var contentModelToDom_1 = __webpack_require__(/*! ./modelToDom/contentModelToDom */ "./packages/roosterjs-content-model-dom/lib/modelToDom/contentModelToDom.ts");
@@ -23759,8 +23722,6 @@ var normalizeParagraph_1 = __webpack_require__(/*! ./modelApi/common/normalizePa
23759
23722
  Object.defineProperty(exports, "normalizeParagraph", ({ enumerable: true, get: function () { return normalizeParagraph_1.normalizeParagraph; } }));
23760
23723
  var normalizeContentModel_1 = __webpack_require__(/*! ./modelApi/common/normalizeContentModel */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/normalizeContentModel.ts");
23761
23724
  Object.defineProperty(exports, "normalizeContentModel", ({ enumerable: true, get: function () { return normalizeContentModel_1.normalizeContentModel; } }));
23762
- var sanitizeInvisibleUnicode_1 = __webpack_require__(/*! ./modelApi/common/sanitizeInvisibleUnicode */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/sanitizeInvisibleUnicode.ts");
23763
- Object.defineProperty(exports, "sanitizeInvisibleUnicode", ({ enumerable: true, get: function () { return sanitizeInvisibleUnicode_1.sanitizeInvisibleUnicode; } }));
23764
23725
  var isGeneralSegment_1 = __webpack_require__(/*! ./modelApi/typeCheck/isGeneralSegment */ "./packages/roosterjs-content-model-dom/lib/modelApi/typeCheck/isGeneralSegment.ts");
23765
23726
  Object.defineProperty(exports, "isGeneralSegment", ({ enumerable: true, get: function () { return isGeneralSegment_1.isGeneralSegment; } }));
23766
23727
  var unwrapBlock_1 = __webpack_require__(/*! ./modelApi/common/unwrapBlock */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/unwrapBlock.ts");
@@ -23826,8 +23787,6 @@ var stringUtil_1 = __webpack_require__(/*! ./domUtils/stringUtil */ "./packages/
23826
23787
  Object.defineProperty(exports, "isPunctuation", ({ enumerable: true, get: function () { return stringUtil_1.isPunctuation; } }));
23827
23788
  Object.defineProperty(exports, "isSpace", ({ enumerable: true, get: function () { return stringUtil_1.isSpace; } }));
23828
23789
  Object.defineProperty(exports, "normalizeText", ({ enumerable: true, get: function () { return stringUtil_1.normalizeText; } }));
23829
- var stripInvisibleUnicode_1 = __webpack_require__(/*! ./domUtils/stripInvisibleUnicode */ "./packages/roosterjs-content-model-dom/lib/domUtils/stripInvisibleUnicode.ts");
23830
- Object.defineProperty(exports, "stripInvisibleUnicode", ({ enumerable: true, get: function () { return stripInvisibleUnicode_1.stripInvisibleUnicode; } }));
23831
23790
  var parseTableCells_1 = __webpack_require__(/*! ./domUtils/table/parseTableCells */ "./packages/roosterjs-content-model-dom/lib/domUtils/table/parseTableCells.ts");
23832
23791
  Object.defineProperty(exports, "parseTableCells", ({ enumerable: true, get: function () { return parseTableCells_1.parseTableCells; } }));
23833
23792
  var readFile_1 = __webpack_require__(/*! ./domUtils/readFile */ "./packages/roosterjs-content-model-dom/lib/domUtils/readFile.ts");
@@ -24826,134 +24785,6 @@ function normalizeSegmentFormat(format, environment) {
24826
24785
  exports.normalizeSegmentFormat = normalizeSegmentFormat;
24827
24786
 
24828
24787
 
24829
- /***/ },
24830
-
24831
- /***/ "./packages/roosterjs-content-model-dom/lib/modelApi/common/sanitizeInvisibleUnicode.ts"
24832
- /*!**********************************************************************************************!*\
24833
- !*** ./packages/roosterjs-content-model-dom/lib/modelApi/common/sanitizeInvisibleUnicode.ts ***!
24834
- \**********************************************************************************************/
24835
- (__unused_webpack_module, exports, __webpack_require__) {
24836
-
24837
- "use strict";
24838
-
24839
- Object.defineProperty(exports, "__esModule", ({ value: true }));
24840
- exports.sanitizeInvisibleUnicode = void 0;
24841
- var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
24842
- var stripInvisibleUnicode_1 = __webpack_require__(/*! ../../domUtils/stripInvisibleUnicode */ "./packages/roosterjs-content-model-dom/lib/domUtils/stripInvisibleUnicode.ts");
24843
- /**
24844
- * Strip invisible Unicode characters from all text and link hrefs in a content model.
24845
- * This sanitizes the model at initialization time to prevent hidden content in links
24846
- * or text (e.g. zero-width chars, bidirectional marks, Unicode Tags).
24847
- * For General segments, all Text nodes under the element are also sanitized.
24848
- * @param model The content model document to sanitize in-place
24849
- */
24850
- function sanitizeInvisibleUnicode(model) {
24851
- sanitizeBlockGroup(model);
24852
- }
24853
- exports.sanitizeInvisibleUnicode = sanitizeInvisibleUnicode;
24854
- function sanitizeBlockGroup(group) {
24855
- var e_1, _a;
24856
- try {
24857
- for (var _b = (0, tslib_1.__values)(group.blocks), _c = _b.next(); !_c.done; _c = _b.next()) {
24858
- var block = _c.value;
24859
- sanitizeBlock(block);
24860
- }
24861
- }
24862
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
24863
- finally {
24864
- try {
24865
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
24866
- }
24867
- finally { if (e_1) throw e_1.error; }
24868
- }
24869
- }
24870
- function sanitizeBlock(block) {
24871
- var e_2, _a, e_3, _b, e_4, _c;
24872
- switch (block.blockType) {
24873
- case 'Paragraph':
24874
- try {
24875
- for (var _d = (0, tslib_1.__values)(block.segments), _e = _d.next(); !_e.done; _e = _d.next()) {
24876
- var segment = _e.value;
24877
- sanitizeSegment(segment);
24878
- }
24879
- }
24880
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
24881
- finally {
24882
- try {
24883
- if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
24884
- }
24885
- finally { if (e_2) throw e_2.error; }
24886
- }
24887
- break;
24888
- case 'Table':
24889
- try {
24890
- for (var _f = (0, tslib_1.__values)(block.rows), _g = _f.next(); !_g.done; _g = _f.next()) {
24891
- var row = _g.value;
24892
- try {
24893
- for (var _h = (e_4 = void 0, (0, tslib_1.__values)(row.cells)), _j = _h.next(); !_j.done; _j = _h.next()) {
24894
- var cell = _j.value;
24895
- sanitizeBlockGroup(cell);
24896
- }
24897
- }
24898
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
24899
- finally {
24900
- try {
24901
- if (_j && !_j.done && (_c = _h.return)) _c.call(_h);
24902
- }
24903
- finally { if (e_4) throw e_4.error; }
24904
- }
24905
- }
24906
- }
24907
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
24908
- finally {
24909
- try {
24910
- if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
24911
- }
24912
- finally { if (e_3) throw e_3.error; }
24913
- }
24914
- break;
24915
- case 'BlockGroup':
24916
- sanitizeBlockGroup(block);
24917
- if (block.blockGroupType === 'General' && block.element) {
24918
- sanitizeTextNodes(block.element);
24919
- }
24920
- break;
24921
- case 'Entity':
24922
- case 'Divider':
24923
- break;
24924
- }
24925
- }
24926
- function sanitizeSegment(segment) {
24927
- var _a;
24928
- if ((_a = segment.link) === null || _a === void 0 ? void 0 : _a.format.href) {
24929
- segment.link.format.href = (0, stripInvisibleUnicode_1.stripInvisibleUnicode)(segment.link.format.href);
24930
- }
24931
- switch (segment.segmentType) {
24932
- case 'Text':
24933
- segment.text = (0, stripInvisibleUnicode_1.stripInvisibleUnicode)(segment.text);
24934
- break;
24935
- case 'General':
24936
- sanitizeTextNodes(segment.element);
24937
- sanitizeBlockGroup(segment);
24938
- break;
24939
- case 'Image':
24940
- case 'Entity':
24941
- case 'Br':
24942
- case 'SelectionMarker':
24943
- break;
24944
- }
24945
- }
24946
- function sanitizeTextNodes(element) {
24947
- var walker = element.ownerDocument.createTreeWalker(element, NodeFilter.SHOW_TEXT);
24948
- var node;
24949
- while ((node = walker.nextNode())) {
24950
- if (node.nodeValue) {
24951
- node.nodeValue = (0, stripInvisibleUnicode_1.stripInvisibleUnicode)(node.nodeValue);
24952
- }
24953
- }
24954
- }
24955
-
24956
-
24957
24788
  /***/ },
24958
24789
 
24959
24790
  /***/ "./packages/roosterjs-content-model-dom/lib/modelApi/common/unwrapBlock.ts"