roosterjs 9.7.0 → 9.8.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.
@@ -1,4 +1,4 @@
1
- // Type definitions for roosterjs (Version 9.7.0)
1
+ // Type definitions for roosterjs (Version 9.8.1)
2
2
  // Generated by dts tool from roosterjs
3
3
  // Project: https://github.com/Microsoft/roosterjs
4
4
 
@@ -3466,7 +3466,11 @@ export type ExperimentalFeature = /**
3466
3466
  * When this feature is enabled, we will persist a content model in memory as long as we can,
3467
3467
  * and use cached element when write back if it is not changed.
3468
3468
  */
3469
- 'PersistCache';
3469
+ 'PersistCache'
3470
+ /**
3471
+ * Workaround for the Legacy Image Edit
3472
+ */
3473
+ | 'LegacyImageSelection';
3470
3474
 
3471
3475
  /**
3472
3476
  * Options for editor
@@ -5046,6 +5050,11 @@ export interface AnnounceData {
5046
5050
  * @optional if provided, will attempt to replace {n} with each of the values inside of the array.
5047
5051
  */
5048
5052
  formatStrings?: string[];
5053
+ /**
5054
+ * @optional if provided, will set the ariaLive property of the announce container element to the provided value.
5055
+ * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-live#values
5056
+ */
5057
+ ariaLiveMode?: 'assertive' | 'polite' | 'off';
5049
5058
  }
5050
5059
 
5051
5060
  /**
@@ -6195,6 +6204,15 @@ export function isElementOfType<Tag extends keyof HTMLElementTagNameMap>(element
6195
6204
  */
6196
6205
  export function getObjectKeys<T extends string | number | symbol>(obj: Record<T, any> | Partial<Record<T, any>>): T[];
6197
6206
 
6207
+ /**
6208
+ * Returns a safe Id to use in Native APIs.
6209
+ * IDs that start with number or hyphen can throw errors if used.
6210
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id
6211
+ * @param id
6212
+ * @returns
6213
+ */
6214
+ export function getSafeIdSelector(id: string): string;
6215
+
6198
6216
  /**
6199
6217
  * Convert a named node map to an array
6200
6218
  * @param collection The map to convert
@@ -8328,6 +8346,11 @@ export class PastePlugin implements EditorPlugin {
8328
8346
  private setEventSanitizers;
8329
8347
  }
8330
8348
 
8349
+ /**
8350
+ * Default style sanitizers for PastePlugin.
8351
+ */
8352
+ export const DefaultSanitizers: Record<string, ValueSanitizer>;
8353
+
8331
8354
  /**
8332
8355
  * Edit plugins helps editor to do editing operation on top of content model.
8333
8356
  * This includes:
@@ -3461,6 +3461,15 @@ function setListType(model, listType, removeMargins) {
3461
3461
  }
3462
3462
  (0, roosterjs_content_model_dom_1.mutateBlock)(parent).blocks.splice(index, 1, newListItem);
3463
3463
  existingListItems.push(newListItem);
3464
+ var levelIndex = newListItem.levels.length - 1;
3465
+ var level = (0, roosterjs_content_model_dom_1.mutateBlock)(newListItem).levels[levelIndex];
3466
+ if (level) {
3467
+ (0, roosterjs_content_model_dom_1.updateListMetadata)(level, function (metadata) {
3468
+ return Object.assign({}, metadata, {
3469
+ applyListStyleFromLevel: true,
3470
+ });
3471
+ });
3472
+ }
3464
3473
  }
3465
3474
  else {
3466
3475
  existingListItems.forEach(function (x) { return ((0, roosterjs_content_model_dom_1.mutateBlock)(x).levels[0].format.marginBottom = '0px'); });
@@ -8302,12 +8311,14 @@ exports.getPath = getPath;
8302
8311
  /*!********************************************************************************!*\
8303
8312
  !*** ./packages/roosterjs-content-model-core/lib/coreApi/announce/announce.ts ***!
8304
8313
  \********************************************************************************/
8305
- /***/ ((__unused_webpack_module, exports) => {
8314
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8306
8315
 
8307
8316
  "use strict";
8308
8317
 
8309
8318
  Object.defineProperty(exports, "__esModule", ({ value: true }));
8310
8319
  exports.announce = void 0;
8320
+ var createAriaLiveElement_1 = __webpack_require__(/*! ../../utils/createAriaLiveElement */ "./packages/roosterjs-content-model-core/lib/utils/createAriaLiveElement.ts");
8321
+ var DOT_STRING = '.';
8311
8322
  /**
8312
8323
  * @internal
8313
8324
  * Announce the given data
@@ -8315,17 +8326,20 @@ exports.announce = void 0;
8315
8326
  * @param announceData Data to announce
8316
8327
  */
8317
8328
  var announce = function (core, announceData) {
8318
- var _a;
8319
- var text = announceData.text, defaultStrings = announceData.defaultStrings, _b = announceData.formatStrings, formatStrings = _b === void 0 ? [] : _b;
8329
+ var text = announceData.text, defaultStrings = announceData.defaultStrings, _a = announceData.formatStrings, formatStrings = _a === void 0 ? [] : _a, _b = announceData.ariaLiveMode, ariaLiveMode = _b === void 0 ? 'assertive' : _b;
8320
8330
  var announcerStringGetter = core.lifecycle.announcerStringGetter;
8321
8331
  var template = defaultStrings && (announcerStringGetter === null || announcerStringGetter === void 0 ? void 0 : announcerStringGetter(defaultStrings));
8322
8332
  var textToAnnounce = formatString(template || text, formatStrings);
8323
- if (textToAnnounce) {
8333
+ if (!core.lifecycle.announceContainer) {
8334
+ core.lifecycle.announceContainer = (0, createAriaLiveElement_1.createAriaLiveElement)(core.physicalRoot.ownerDocument);
8335
+ }
8336
+ if (textToAnnounce && core.lifecycle.announceContainer) {
8324
8337
  var announceContainer = core.lifecycle.announceContainer;
8325
- if (!announceContainer || textToAnnounce == announceContainer.textContent) {
8326
- (_a = announceContainer === null || announceContainer === void 0 ? void 0 : announceContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(announceContainer);
8327
- announceContainer = createAriaLiveElement(core.physicalRoot.ownerDocument);
8328
- core.lifecycle.announceContainer = announceContainer;
8338
+ if (announceContainer.ariaLive != ariaLiveMode) {
8339
+ announceContainer.ariaLive = ariaLiveMode;
8340
+ }
8341
+ if (textToAnnounce == announceContainer.textContent) {
8342
+ textToAnnounce += DOT_STRING;
8329
8343
  }
8330
8344
  if (announceContainer) {
8331
8345
  announceContainer.textContent = textToAnnounce;
@@ -8344,19 +8358,6 @@ function formatString(text, formatStrings) {
8344
8358
  });
8345
8359
  return text;
8346
8360
  }
8347
- function createAriaLiveElement(document) {
8348
- var div = document.createElement('div');
8349
- div.style.clip = 'rect(0px, 0px, 0px, 0px)';
8350
- div.style.clipPath = 'inset(100%)';
8351
- div.style.height = '1px';
8352
- div.style.overflow = 'hidden';
8353
- div.style.position = 'absolute';
8354
- div.style.whiteSpace = 'nowrap';
8355
- div.style.width = '1px';
8356
- div.ariaLive = 'assertive';
8357
- document.body.appendChild(div);
8358
- return div;
8359
- }
8360
8361
 
8361
8362
 
8362
8363
  /***/ }),
@@ -9091,6 +9092,7 @@ exports.restoreSnapshotLogicalRoot = restoreSnapshotLogicalRoot;
9091
9092
  Object.defineProperty(exports, "__esModule", ({ value: true }));
9092
9093
  exports.restoreSnapshotSelection = void 0;
9093
9094
  var getPositionFromPath_1 = __webpack_require__(/*! ./getPositionFromPath */ "./packages/roosterjs-content-model-core/lib/coreApi/restoreUndoSnapshot/getPositionFromPath.ts");
9095
+ var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
9094
9096
  /**
9095
9097
  * @internal
9096
9098
  */
@@ -9115,7 +9117,7 @@ function restoreSnapshotSelection(core, snapshot) {
9115
9117
  };
9116
9118
  break;
9117
9119
  case 'table':
9118
- var table = physicalRoot.querySelector('#' + snapshotSelection.tableId);
9120
+ var table = physicalRoot.querySelector((0, roosterjs_content_model_dom_1.getSafeIdSelector)(snapshotSelection.tableId));
9119
9121
  if (table) {
9120
9122
  domSelection = {
9121
9123
  type: 'table',
@@ -9128,7 +9130,7 @@ function restoreSnapshotSelection(core, snapshot) {
9128
9130
  }
9129
9131
  break;
9130
9132
  case 'image':
9131
- var image = physicalRoot.querySelector('#' + snapshotSelection.imageId);
9133
+ var image = physicalRoot.querySelector((0, roosterjs_content_model_dom_1.getSafeIdSelector)(snapshotSelection.imageId));
9132
9134
  if (image) {
9133
9135
  domSelection = {
9134
9136
  type: 'image',
@@ -9419,7 +9421,7 @@ var setDOMSelection = function (core, selection, skipSelectionChangedEvent) {
9419
9421
  var imageSelectionColor = isDarkMode
9420
9422
  ? core.selection.imageSelectionBorderColorDark
9421
9423
  : core.selection.imageSelectionBorderColor;
9422
- core.api.setEditorStyle(core, DOM_SELECTION_CSS_KEY, "outline-style:solid!important; outline-color:" + (imageSelectionColor || DEFAULT_SELECTION_BORDER_COLOR) + "!important;", ["#" + (0, ensureUniqueId_1.ensureUniqueId)(image, IMAGE_ID)]);
9424
+ core.api.setEditorStyle(core, DOM_SELECTION_CSS_KEY, "outline-style:solid!important; outline-color:" + (imageSelectionColor || DEFAULT_SELECTION_BORDER_COLOR) + "!important;", [(0, roosterjs_content_model_dom_1.getSafeIdSelector)((0, ensureUniqueId_1.ensureUniqueId)(image, IMAGE_ID))]);
9423
9425
  core.api.setEditorStyle(core, HIDE_SELECTION_CSS_KEY, TRANSPARENT_SELECTION_CSS_RULE, [SELECTION_SELECTOR]);
9424
9426
  setRangeSelection(doc, image, false /* collapse */);
9425
9427
  break;
@@ -9452,12 +9454,13 @@ var setDOMSelection = function (core, selection, skipSelectionChangedEvent) {
9452
9454
  lastColumn: lastCell.col,
9453
9455
  };
9454
9456
  var tableId = (0, ensureUniqueId_1.ensureUniqueId)(table, TABLE_ID);
9457
+ var tableSelector = (0, roosterjs_content_model_dom_1.getSafeIdSelector)(tableId);
9455
9458
  var tableSelectors = firstCell.row == 0 &&
9456
9459
  firstCell.col == 0 &&
9457
9460
  lastCell.row == parsedTable.length - 1 &&
9458
9461
  lastCell.col == ((_b = (_a = parsedTable[lastCell.row]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) - 1
9459
- ? ["#" + tableId, "#" + tableId + " *"]
9460
- : handleTableSelected(parsedTable, tableId, table, firstCell, lastCell);
9462
+ ? [tableSelector, tableSelector + " *"]
9463
+ : handleTableSelected(parsedTable, tableSelector, table, firstCell, lastCell);
9461
9464
  core.selection.selection = selection;
9462
9465
  var tableSelectionColor = isDarkMode
9463
9466
  ? core.selection.tableCellSelectionBackgroundColorDark
@@ -9490,7 +9493,7 @@ var setDOMSelection = function (core, selection, skipSelectionChangedEvent) {
9490
9493
  }
9491
9494
  };
9492
9495
  exports.setDOMSelection = setDOMSelection;
9493
- function handleTableSelected(parsedTable, tableId, table, firstCell, lastCell) {
9496
+ function handleTableSelected(parsedTable, tableSelector, table, firstCell, lastCell) {
9494
9497
  var selectors = [];
9495
9498
  // Get whether table has thead, tbody or tfoot, then Set the start and end of each of the table children,
9496
9499
  // so we can build the selector according the element between the table and the row.
@@ -9524,7 +9527,7 @@ function handleTableSelected(parsedTable, tableId, table, firstCell, lastCell) {
9524
9527
  rowIndex <= lastCell.row &&
9525
9528
  cellIndex >= firstCell.col &&
9526
9529
  cellIndex <= lastCell.col) {
9527
- var selector = "#" + tableId + middleElSelector + " tr:nth-child(" + currentRow + ")>" + cell.tagName + ":nth-child(" + tdCount + ")";
9530
+ var selector = "" + tableSelector + middleElSelector + " tr:nth-child(" + currentRow + ")>" + cell.tagName + ":nth-child(" + tdCount + ")";
9528
9531
  selectors.push(selector, selector + ' *');
9529
9532
  }
9530
9533
  }
@@ -9561,12 +9564,13 @@ function setRangeSelection(doc, element, collapse) {
9561
9564
  /*!********************************************************************************************!*\
9562
9565
  !*** ./packages/roosterjs-content-model-core/lib/coreApi/setEditorStyle/ensureUniqueId.ts ***!
9563
9566
  \********************************************************************************************/
9564
- /***/ ((__unused_webpack_module, exports) => {
9567
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9565
9568
 
9566
9569
  "use strict";
9567
9570
 
9568
9571
  Object.defineProperty(exports, "__esModule", ({ value: true }));
9569
9572
  exports.ensureUniqueId = void 0;
9573
+ var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
9570
9574
  /**
9571
9575
  * @internal
9572
9576
  */
@@ -9574,7 +9578,7 @@ function ensureUniqueId(element, idPrefix) {
9574
9578
  idPrefix = element.id || idPrefix;
9575
9579
  var doc = element.ownerDocument;
9576
9580
  var i = 0;
9577
- while (!element.id || doc.querySelectorAll('#' + element.id).length > 1) {
9581
+ while (!element.id || doc.querySelectorAll((0, roosterjs_content_model_dom_1.getSafeIdSelector)(element.id)).length > 1) {
9578
9582
  element.id = idPrefix + '_' + i++;
9579
9583
  }
9580
9584
  return element.id;
@@ -9595,6 +9599,7 @@ exports.ensureUniqueId = ensureUniqueId;
9595
9599
  Object.defineProperty(exports, "__esModule", ({ value: true }));
9596
9600
  exports.setEditorStyle = void 0;
9597
9601
  var ensureUniqueId_1 = __webpack_require__(/*! ./ensureUniqueId */ "./packages/roosterjs-content-model-core/lib/coreApi/setEditorStyle/ensureUniqueId.ts");
9602
+ var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
9598
9603
  var MAX_RULE_SELECTOR_LENGTH = 9000;
9599
9604
  var CONTENT_DIV_ID = 'contentDiv';
9600
9605
  /**
@@ -9616,7 +9621,7 @@ var setEditorStyle = function (core, key, cssRule, subSelectors, maxRuleLength)
9616
9621
  sheet.deleteRule(i);
9617
9622
  }
9618
9623
  if (cssRule) {
9619
- var rootSelector = '#' + (0, ensureUniqueId_1.ensureUniqueId)(core.physicalRoot, CONTENT_DIV_ID);
9624
+ var rootSelector = (0, roosterjs_content_model_dom_1.getSafeIdSelector)((0, ensureUniqueId_1.ensureUniqueId)(core.physicalRoot, CONTENT_DIV_ID));
9620
9625
  var selectors = !subSelectors
9621
9626
  ? [rootSelector]
9622
9627
  : typeof subSelectors === 'string'
@@ -12277,6 +12282,7 @@ exports.applyPendingFormat = applyPendingFormat;
12277
12282
  Object.defineProperty(exports, "__esModule", ({ value: true }));
12278
12283
  exports.createLifecyclePlugin = void 0;
12279
12284
  var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
12285
+ var createAriaLiveElement_1 = __webpack_require__(/*! ../../utils/createAriaLiveElement */ "./packages/roosterjs-content-model-core/lib/utils/createAriaLiveElement.ts");
12280
12286
  var ContentEditableAttributeName = 'contenteditable';
12281
12287
  var DefaultTextColor = '#000000';
12282
12288
  var DefaultBackColor = '#ffffff';
@@ -12336,6 +12342,8 @@ var LifecyclePlugin = /** @class */ (function () {
12336
12342
  this.adjustColor();
12337
12343
  // Let other plugins know that we are ready
12338
12344
  this.editor.triggerEvent('editorReady', {}, true /*broadcast*/);
12345
+ // Initialize the Announce container.
12346
+ this.state.announceContainer = (0, createAriaLiveElement_1.createAriaLiveElement)(editor.getDocument());
12339
12347
  };
12340
12348
  /**
12341
12349
  * Dispose this plugin
@@ -12419,6 +12427,7 @@ var isSingleImageInSelection_1 = __webpack_require__(/*! ./isSingleImageInSelect
12419
12427
  var normalizePos_1 = __webpack_require__(/*! ./normalizePos */ "./packages/roosterjs-content-model-core/lib/corePlugin/selection/normalizePos.ts");
12420
12428
  var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
12421
12429
  var MouseLeftButton = 0;
12430
+ var MouseMiddleButton = 1;
12422
12431
  var MouseRightButton = 2;
12423
12432
  var Up = 'ArrowUp';
12424
12433
  var Down = 'ArrowDown';
@@ -12625,7 +12634,7 @@ var SelectionPlugin = /** @class */ (function () {
12625
12634
  this.onMouseDown(this.editor, event.rawEvent);
12626
12635
  break;
12627
12636
  case 'mouseUp':
12628
- this.onMouseUp();
12637
+ this.onMouseUp(this.editor, event);
12629
12638
  break;
12630
12639
  case 'keyDown':
12631
12640
  this.onKeyDown(this.editor, event.rawEvent);
@@ -12641,25 +12650,40 @@ var SelectionPlugin = /** @class */ (function () {
12641
12650
  }
12642
12651
  };
12643
12652
  SelectionPlugin.prototype.onMouseDown = function (editor, rawEvent) {
12644
- var _a;
12653
+ var _a, _b;
12645
12654
  var selection = editor.getDOMSelection();
12646
12655
  var image;
12647
12656
  // Image selection
12648
- if ((selection === null || selection === void 0 ? void 0 : selection.type) == 'image' &&
12649
- (rawEvent.button == MouseLeftButton ||
12650
- (rawEvent.button == MouseRightButton &&
12651
- !this.getClickingImage(rawEvent) &&
12652
- !this.getContainedTargetImage(rawEvent, selection)))) {
12653
- this.setDOMSelection(null /*domSelection*/, null /*tableSelection*/);
12657
+ if (editor.isExperimentalFeatureEnabled('LegacyImageSelection')) {
12658
+ if (rawEvent.button === MouseRightButton &&
12659
+ (image =
12660
+ (_a = this.getClickingImage(rawEvent)) !== null && _a !== void 0 ? _a : this.getContainedTargetImage(rawEvent, selection)) &&
12661
+ image.isContentEditable) {
12662
+ this.selectImageWithRange(image, rawEvent);
12663
+ return;
12664
+ }
12665
+ else if ((selection === null || selection === void 0 ? void 0 : selection.type) == 'image' && selection.image !== rawEvent.target) {
12666
+ this.selectBeforeOrAfterElement(editor, selection.image);
12667
+ return;
12668
+ }
12654
12669
  }
12655
- if ((image =
12656
- (_a = this.getClickingImage(rawEvent)) !== null && _a !== void 0 ? _a : this.getContainedTargetImage(rawEvent, selection)) &&
12657
- image.isContentEditable) {
12658
- this.setDOMSelection({
12659
- type: 'image',
12660
- image: image,
12661
- }, null);
12662
- return;
12670
+ else {
12671
+ if ((selection === null || selection === void 0 ? void 0 : selection.type) == 'image' &&
12672
+ (rawEvent.button == MouseLeftButton ||
12673
+ (rawEvent.button == MouseRightButton &&
12674
+ !this.getClickingImage(rawEvent) &&
12675
+ !this.getContainedTargetImage(rawEvent, selection)))) {
12676
+ this.setDOMSelection(null /*domSelection*/, null /*tableSelection*/);
12677
+ }
12678
+ if ((image =
12679
+ (_b = this.getClickingImage(rawEvent)) !== null && _b !== void 0 ? _b : this.getContainedTargetImage(rawEvent, selection)) &&
12680
+ image.isContentEditable) {
12681
+ this.setDOMSelection({
12682
+ type: 'image',
12683
+ image: image,
12684
+ }, null);
12685
+ return;
12686
+ }
12663
12687
  }
12664
12688
  // Table selection
12665
12689
  if ((selection === null || selection === void 0 ? void 0 : selection.type) == 'table' && rawEvent.button == MouseLeftButton) {
@@ -12687,7 +12711,33 @@ var SelectionPlugin = /** @class */ (function () {
12687
12711
  });
12688
12712
  }
12689
12713
  };
12690
- SelectionPlugin.prototype.onMouseUp = function () {
12714
+ SelectionPlugin.prototype.selectImageWithRange = function (image, event) {
12715
+ var _a;
12716
+ var range = image.ownerDocument.createRange();
12717
+ range.selectNode(image);
12718
+ var domSelection = (_a = this.editor) === null || _a === void 0 ? void 0 : _a.getDOMSelection();
12719
+ if ((domSelection === null || domSelection === void 0 ? void 0 : domSelection.type) == 'image' && image == domSelection.image) {
12720
+ event.preventDefault();
12721
+ }
12722
+ else {
12723
+ this.setDOMSelection({
12724
+ type: 'range',
12725
+ isReverted: false,
12726
+ range: range,
12727
+ }, null);
12728
+ }
12729
+ };
12730
+ SelectionPlugin.prototype.onMouseUp = function (editor, event) {
12731
+ var image;
12732
+ if (editor.isExperimentalFeatureEnabled('LegacyImageSelection') &&
12733
+ (image = this.getClickingImage(event.rawEvent)) &&
12734
+ image.isContentEditable &&
12735
+ event.rawEvent.button != MouseMiddleButton &&
12736
+ (event.rawEvent.button ==
12737
+ MouseRightButton /* it's not possible to drag using right click */ ||
12738
+ event.isClicking)) {
12739
+ this.selectImageWithRange(image, event.rawEvent);
12740
+ }
12691
12741
  this.detachMouseEvent();
12692
12742
  };
12693
12743
  SelectionPlugin.prototype.onKeyDown = function (editor, rawEvent) {
@@ -14471,6 +14521,37 @@ function shouldUseTableProcessor(element, context) {
14471
14521
  }
14472
14522
 
14473
14523
 
14524
+ /***/ }),
14525
+
14526
+ /***/ "./packages/roosterjs-content-model-core/lib/utils/createAriaLiveElement.ts":
14527
+ /*!**********************************************************************************!*\
14528
+ !*** ./packages/roosterjs-content-model-core/lib/utils/createAriaLiveElement.ts ***!
14529
+ \**********************************************************************************/
14530
+ /***/ ((__unused_webpack_module, exports) => {
14531
+
14532
+ "use strict";
14533
+
14534
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
14535
+ exports.createAriaLiveElement = void 0;
14536
+ /**
14537
+ * @internal
14538
+ */
14539
+ function createAriaLiveElement(document) {
14540
+ var div = document.createElement('div');
14541
+ div.style.clip = 'rect(0px, 0px, 0px, 0px)';
14542
+ div.style.clipPath = 'inset(100%)';
14543
+ div.style.height = '1px';
14544
+ div.style.overflow = 'hidden';
14545
+ div.style.position = 'absolute';
14546
+ div.style.whiteSpace = 'nowrap';
14547
+ div.style.width = '1px';
14548
+ div.ariaLive = 'assertive';
14549
+ document.body.appendChild(div);
14550
+ return div;
14551
+ }
14552
+ exports.createAriaLiveElement = createAriaLiveElement;
14553
+
14554
+
14474
14555
  /***/ }),
14475
14556
 
14476
14557
  /***/ "./packages/roosterjs-content-model-dom/lib/config/defaultContentModelFormatMap.ts":
@@ -17310,6 +17391,40 @@ function getObjectKeys(obj) {
17310
17391
  exports.getObjectKeys = getObjectKeys;
17311
17392
 
17312
17393
 
17394
+ /***/ }),
17395
+
17396
+ /***/ "./packages/roosterjs-content-model-dom/lib/domUtils/getSafeIdSelector.ts":
17397
+ /*!********************************************************************************!*\
17398
+ !*** ./packages/roosterjs-content-model-dom/lib/domUtils/getSafeIdSelector.ts ***!
17399
+ \********************************************************************************/
17400
+ /***/ ((__unused_webpack_module, exports) => {
17401
+
17402
+ "use strict";
17403
+
17404
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
17405
+ exports.getSafeIdSelector = void 0;
17406
+ var StartsWithUnsupportedCharacter = /^[.|\-|_|\d]/;
17407
+ /**
17408
+ * Returns a safe Id to use in Native APIs.
17409
+ * IDs that start with number or hyphen can throw errors if used.
17410
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id
17411
+ * @param id
17412
+ * @returns
17413
+ */
17414
+ function getSafeIdSelector(id) {
17415
+ if (!id) {
17416
+ return id;
17417
+ }
17418
+ if (id.match(StartsWithUnsupportedCharacter)) {
17419
+ return "[id=\"" + id + "\"]";
17420
+ }
17421
+ else {
17422
+ return "#" + id;
17423
+ }
17424
+ }
17425
+ exports.getSafeIdSelector = getSafeIdSelector;
17426
+
17427
+
17313
17428
  /***/ }),
17314
17429
 
17315
17430
  /***/ "./packages/roosterjs-content-model-dom/lib/domUtils/isElementOfType.ts":
@@ -20025,9 +20140,9 @@ exports.shouldSetValue = shouldSetValue;
20025
20140
  "use strict";
20026
20141
 
20027
20142
  Object.defineProperty(exports, "__esModule", ({ value: true }));
20028
- exports.createEntity = exports.createGeneralBlock = exports.createGeneralSegment = exports.createParagraphDecorator = exports.createContentModelDocument = exports.createImage = exports.createText = exports.createTableCell = exports.createTable = exports.createSelectionMarker = exports.createParagraph = exports.createFormatContainer = exports.createListItem = exports.createBr = 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.getObjectKeys = exports.isElementOfType = exports.isNodeOfType = exports.hasMetadata = exports.getMetadata = exports.updateMetadata = exports.buildSelectionMarker = exports.isBlockElement = exports.areSameFormats = exports.parseFormat = exports.getRegularSelectionOffsets = exports.tableProcessor = exports.entityProcessor = exports.processChildNode = exports.handleRegularSelection = exports.childProcessor = exports.contentModelToText = exports.contentModelToDom = exports.domToContentModel = void 0;
20029
- exports.cacheGetEventData = exports.extractClipboardItems = exports.transformColor = exports.readFile = exports.parseTableCells = exports.normalizeText = exports.isSpace = exports.isPunctuation = exports.extractBorderValues = exports.combineBorderValue = exports.isCursorMovingKey = exports.isModifierKey = exports.isCharacterValue = 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.setParagraphNotImplicit = 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 = void 0;
20030
- 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 = 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 = void 0;
20143
+ exports.createGeneralBlock = exports.createGeneralSegment = exports.createParagraphDecorator = exports.createContentModelDocument = exports.createImage = exports.createText = exports.createTableCell = exports.createTable = exports.createSelectionMarker = exports.createParagraph = exports.createFormatContainer = exports.createListItem = exports.createBr = 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.tableProcessor = exports.entityProcessor = exports.processChildNode = exports.handleRegularSelection = exports.childProcessor = exports.contentModelToText = exports.contentModelToDom = exports.domToContentModel = void 0;
20144
+ exports.extractClipboardItems = exports.transformColor = exports.readFile = exports.parseTableCells = exports.normalizeText = exports.isSpace = exports.isPunctuation = exports.extractBorderValues = exports.combineBorderValue = exports.isCursorMovingKey = exports.isModifierKey = exports.isCharacterValue = 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.setParagraphNotImplicit = 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 = void 0;
20145
+ 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 = 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.cacheGetEventData = void 0;
20031
20146
  var domToContentModel_1 = __webpack_require__(/*! ./domToModel/domToContentModel */ "./packages/roosterjs-content-model-dom/lib/domToModel/domToContentModel.ts");
20032
20147
  Object.defineProperty(exports, "domToContentModel", ({ enumerable: true, get: function () { return domToContentModel_1.domToContentModel; } }));
20033
20148
  var contentModelToDom_1 = __webpack_require__(/*! ./modelToDom/contentModelToDom */ "./packages/roosterjs-content-model-dom/lib/modelToDom/contentModelToDom.ts");
@@ -20062,6 +20177,8 @@ var isElementOfType_1 = __webpack_require__(/*! ./domUtils/isElementOfType */ ".
20062
20177
  Object.defineProperty(exports, "isElementOfType", ({ enumerable: true, get: function () { return isElementOfType_1.isElementOfType; } }));
20063
20178
  var getObjectKeys_1 = __webpack_require__(/*! ./domUtils/getObjectKeys */ "./packages/roosterjs-content-model-dom/lib/domUtils/getObjectKeys.ts");
20064
20179
  Object.defineProperty(exports, "getObjectKeys", ({ enumerable: true, get: function () { return getObjectKeys_1.getObjectKeys; } }));
20180
+ var getSafeIdSelector_1 = __webpack_require__(/*! ./domUtils/getSafeIdSelector */ "./packages/roosterjs-content-model-dom/lib/domUtils/getSafeIdSelector.ts");
20181
+ Object.defineProperty(exports, "getSafeIdSelector", ({ enumerable: true, get: function () { return getSafeIdSelector_1.getSafeIdSelector; } }));
20065
20182
  var toArray_1 = __webpack_require__(/*! ./domUtils/toArray */ "./packages/roosterjs-content-model-dom/lib/domUtils/toArray.ts");
20066
20183
  Object.defineProperty(exports, "toArray", ({ enumerable: true, get: function () { return toArray_1.toArray; } }));
20067
20184
  var moveChildNodes_1 = __webpack_require__(/*! ./domUtils/moveChildNodes */ "./packages/roosterjs-content-model-dom/lib/domUtils/moveChildNodes.ts");
@@ -26813,7 +26930,9 @@ function canAppendList(index, previousListIndex) {
26813
26930
 
26814
26931
  Object.defineProperty(exports, "__esModule", ({ value: true }));
26815
26932
  exports.keyboardListTrigger = void 0;
26933
+ var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
26816
26934
  var getListTypeStyle_1 = __webpack_require__(/*! ./getListTypeStyle */ "./packages/roosterjs-content-model-plugins/lib/autoFormat/list/getListTypeStyle.ts");
26935
+ var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
26817
26936
  var roosterjs_content_model_api_1 = __webpack_require__(/*! roosterjs-content-model-api */ "./packages/roosterjs-content-model-api/lib/index.ts");
26818
26937
  /**
26819
26938
  * @internal
@@ -26827,6 +26946,7 @@ function keyboardListTrigger(model, paragraph, context, shouldSearchForBullet, s
26827
26946
  var listType = listStyleType.listType, styleType = listStyleType.styleType, index = listStyleType.index;
26828
26947
  triggerList(model, listType, styleType, index);
26829
26948
  context.canUndoByBackspace = true;
26949
+ setAnnounceData(model, context);
26830
26950
  return true;
26831
26951
  }
26832
26952
  return false;
@@ -26841,11 +26961,21 @@ var triggerList = function (model, listType, styleType, index) {
26841
26961
  (0, roosterjs_content_model_api_1.setModelListStyle)(model, isOrderedList
26842
26962
  ? {
26843
26963
  orderedStyleType: styleType,
26964
+ applyListStyleFromLevel: false,
26844
26965
  }
26845
26966
  : {
26846
26967
  unorderedStyleType: styleType,
26968
+ applyListStyleFromLevel: false,
26847
26969
  });
26848
26970
  };
26971
+ function setAnnounceData(model, context) {
26972
+ var _a = (0, tslib_1.__read)((0, roosterjs_content_model_dom_1.getOperationalBlocks)(model, ['ListItem'], [] // Set stop types to be empty so we can find list items even cross the boundary of table, then we can always operation on the list item if any
26973
+ ), 1), paragraphOrListItems = _a[0];
26974
+ if (paragraphOrListItems && (0, roosterjs_content_model_dom_1.isBlockGroupOfType)(paragraphOrListItems.block, 'ListItem')) {
26975
+ var path = paragraphOrListItems.path, block = paragraphOrListItems.block;
26976
+ context.announceData = (0, roosterjs_content_model_api_1.getListAnnounceData)((0, tslib_1.__spreadArray)([block], (0, tslib_1.__read)(path), false));
26977
+ }
26978
+ }
26849
26979
 
26850
26980
 
26851
26981
  /***/ }),
@@ -28937,6 +29067,7 @@ var getHTMLImageOptions_1 = __webpack_require__(/*! ./utils/getHTMLImageOptions
28937
29067
  var getSelectedImage_1 = __webpack_require__(/*! ./utils/getSelectedImage */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/getSelectedImage.ts");
28938
29068
  var updateImageEditInfo_1 = __webpack_require__(/*! ./utils/updateImageEditInfo */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/updateImageEditInfo.ts");
28939
29069
  var ImageEditElementClass_1 = __webpack_require__(/*! ./types/ImageEditElementClass */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/types/ImageEditElementClass.ts");
29070
+ var normalizeImageSelection_1 = __webpack_require__(/*! ./utils/normalizeImageSelection */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/normalizeImageSelection.ts");
28940
29071
  var resizerContext_1 = __webpack_require__(/*! ./Resizer/resizerContext */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/Resizer/resizerContext.ts");
28941
29072
  var rotatorContext_1 = __webpack_require__(/*! ./Rotator/rotatorContext */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/Rotator/rotatorContext.ts");
28942
29073
  var updateRotateHandle_1 = __webpack_require__(/*! ./Rotator/updateRotateHandle */ "./packages/roosterjs-content-model-plugins/lib/imageEdit/Rotator/updateRotateHandle.ts");
@@ -29119,6 +29250,9 @@ var ImageEditPlugin = /** @class */ (function () {
29119
29250
  image.isSelected = shouldSelectImage;
29120
29251
  image.isSelectedAsImageSelection = shouldSelectImage;
29121
29252
  });
29253
+ if (shouldSelectImage) {
29254
+ (0, normalizeImageSelection_1.normalizeImageSelection)(previousSelectedImage);
29255
+ }
29122
29256
  _this.cleanInfo();
29123
29257
  result = true;
29124
29258
  }
@@ -29176,7 +29310,7 @@ var ImageEditPlugin = /** @class */ (function () {
29176
29310
  this.croppers = croppers;
29177
29311
  this.zoomScale = editor.getDOMHelper().calculateZoomScale();
29178
29312
  editor.setEditorStyle('imageEdit', "outline-style:none!important;", [
29179
- "span:has(>img#" + this.selectedImage.id + ")",
29313
+ "span:has(>img" + (0, roosterjs_content_model_dom_1.getSafeIdSelector)(this.selectedImage.id) + ")",
29180
29314
  ]);
29181
29315
  };
29182
29316
  ImageEditPlugin.prototype.startRotateAndResize = function (editor, image) {
@@ -30601,6 +30735,48 @@ function isFixedNumberValue(value) {
30601
30735
  }
30602
30736
 
30603
30737
 
30738
+ /***/ }),
30739
+
30740
+ /***/ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/normalizeImageSelection.ts":
30741
+ /*!*************************************************************************************************!*\
30742
+ !*** ./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/normalizeImageSelection.ts ***!
30743
+ \*************************************************************************************************/
30744
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
30745
+
30746
+ "use strict";
30747
+
30748
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
30749
+ exports.normalizeImageSelection = void 0;
30750
+ var roosterjs_content_model_dom_1 = __webpack_require__(/*! roosterjs-content-model-dom */ "./packages/roosterjs-content-model-dom/lib/index.ts");
30751
+ /**
30752
+ * Selecting directly on the image will only capture the image segment.
30753
+ * However, if the selection is made while the image is within a wrapper, it will capture the span that encloses the image.
30754
+ * In the last case, the selection will be marked as <---SelectionMarker---><---Image---><---SelectionMarker--->.
30755
+ * To fix this behavior the extra selection markers are removed.
30756
+ * @internal
30757
+ */
30758
+ function normalizeImageSelection(imageAndParagraph) {
30759
+ var paragraph = imageAndParagraph.paragraph;
30760
+ var index = paragraph.segments.indexOf(imageAndParagraph.image);
30761
+ if (index > 0) {
30762
+ var markerBefore = paragraph.segments[index - 1];
30763
+ var markerAfter = paragraph.segments[index + 1];
30764
+ if (markerBefore &&
30765
+ markerAfter &&
30766
+ markerAfter.segmentType == 'SelectionMarker' &&
30767
+ markerBefore.segmentType == 'SelectionMarker' &&
30768
+ markerAfter.isSelected &&
30769
+ markerBefore.isSelected) {
30770
+ var mutatedParagraph = (0, roosterjs_content_model_dom_1.mutateBlock)(paragraph);
30771
+ mutatedParagraph.segments.splice(index - 1, 1);
30772
+ mutatedParagraph.segments.splice(index, 1);
30773
+ }
30774
+ return imageAndParagraph;
30775
+ }
30776
+ }
30777
+ exports.normalizeImageSelection = normalizeImageSelection;
30778
+
30779
+
30604
30780
  /***/ }),
30605
30781
 
30606
30782
  /***/ "./packages/roosterjs-content-model-plugins/lib/imageEdit/utils/updateHandleCursor.ts":
@@ -30816,11 +30992,13 @@ exports.updateWrapper = updateWrapper;
30816
30992
  "use strict";
30817
30993
 
30818
30994
  Object.defineProperty(exports, "__esModule", ({ value: true }));
30819
- exports.ImageEditPlugin = exports.CustomReplacePlugin = exports.PickerPlugin = exports.HyperlinkPlugin = exports.MarkdownPlugin = 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.PastePlugin = exports.TableEditPlugin = void 0;
30995
+ exports.ImageEditPlugin = exports.CustomReplacePlugin = exports.PickerPlugin = exports.HyperlinkPlugin = exports.MarkdownPlugin = 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;
30820
30996
  var TableEditPlugin_1 = __webpack_require__(/*! ./tableEdit/TableEditPlugin */ "./packages/roosterjs-content-model-plugins/lib/tableEdit/TableEditPlugin.ts");
30821
30997
  Object.defineProperty(exports, "TableEditPlugin", ({ enumerable: true, get: function () { return TableEditPlugin_1.TableEditPlugin; } }));
30822
30998
  var PastePlugin_1 = __webpack_require__(/*! ./paste/PastePlugin */ "./packages/roosterjs-content-model-plugins/lib/paste/PastePlugin.ts");
30823
30999
  Object.defineProperty(exports, "PastePlugin", ({ enumerable: true, get: function () { return PastePlugin_1.PastePlugin; } }));
31000
+ var DefaultSanitizers_1 = __webpack_require__(/*! ./paste/DefaultSanitizers */ "./packages/roosterjs-content-model-plugins/lib/paste/DefaultSanitizers.ts");
31001
+ Object.defineProperty(exports, "DefaultSanitizers", ({ enumerable: true, get: function () { return DefaultSanitizers_1.DefaultSanitizers; } }));
30824
31002
  var EditPlugin_1 = __webpack_require__(/*! ./edit/EditPlugin */ "./packages/roosterjs-content-model-plugins/lib/edit/EditPlugin.ts");
30825
31003
  Object.defineProperty(exports, "EditPlugin", ({ enumerable: true, get: function () { return EditPlugin_1.EditPlugin; } }));
30826
31004
  var AutoFormatPlugin_1 = __webpack_require__(/*! ./autoFormat/AutoFormatPlugin */ "./packages/roosterjs-content-model-plugins/lib/autoFormat/AutoFormatPlugin.ts");
@@ -31125,7 +31303,7 @@ exports.setFormat = setFormat;
31125
31303
  Object.defineProperty(exports, "__esModule", ({ value: true }));
31126
31304
  exports.divParagraphSanitizer = exports.DefaultSanitizers = void 0;
31127
31305
  /**
31128
- * @internal
31306
+ * Default style sanitizers for PastePlugin.
31129
31307
  */
31130
31308
  exports.DefaultSanitizers = {
31131
31309
  width: divParagraphSanitizer,