roosterjs 9.55.0 → 9.56.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- // Type definitions for roosterjs (Version 9.55.0)
1
+ // Type definitions for roosterjs (Version 9.56.0)
2
2
  // Generated by dts tool from roosterjs
3
3
  // Project: https://github.com/Microsoft/roosterjs
4
4
 
@@ -102,6 +102,11 @@ export type ContentModelHyperLinkFormat = LinkFormat & TextColorFormat & Backgro
102
102
  */
103
103
  export type ContentModelCodeFormat = FontFamilyFormat & DisplayFormat;
104
104
 
105
+ /**
106
+ * The format object for a data element (<data>) in Content Model
107
+ */
108
+ export type ContentModelDataFormat = DataValueFormat;
109
+
105
110
  /**
106
111
  * Type for FormatContainer
107
112
  */
@@ -216,6 +221,10 @@ export interface ContentModelFormatMap {
216
221
  * Format type for code
217
222
  */
218
223
  code: FontFamilyFormat;
224
+ /**
225
+ * Format type for data, used by HTML <data> element
226
+ */
227
+ data: ContentModelDataFormat;
219
228
  /**
220
229
  * Format type for dataset
221
230
  */
@@ -284,6 +293,10 @@ export interface FormatHandlerTypeMap {
284
293
  * Format for DatasetFormat
285
294
  */
286
295
  dataset: DatasetFormat;
296
+ /**
297
+ * Format for DataValueFormat, used by HTML <data> element
298
+ */
299
+ dataValue: DataValueFormat;
287
300
  /**
288
301
  * Format for DirectionFormat
289
302
  */
@@ -505,6 +518,16 @@ export type LetterSpacingFormat = {
505
518
  letterSpacing?: string;
506
519
  };
507
520
 
521
+ /**
522
+ * Format of the value of a HTML "data" element
523
+ */
524
+ export type DataValueFormat = {
525
+ /**
526
+ * The machine-readable value, represented by the "value" attribute of a HTML "data" element
527
+ */
528
+ dataValue?: string;
529
+ };
530
+
508
531
  /**
509
532
  * Format of line height
510
533
  */
@@ -2170,6 +2193,10 @@ export interface ContentModelSegmentBase<T extends ContentModelSegmentType, TFor
2170
2193
  * Code info
2171
2194
  */
2172
2195
  code?: ContentModelCode;
2196
+ /**
2197
+ * Data info, used by HTML &lt;data&gt; element
2198
+ */
2199
+ data?: ContentModelData;
2173
2200
  }
2174
2201
 
2175
2202
  /**
@@ -2194,6 +2221,10 @@ export interface ReadonlyContentModelSegmentBase<T extends ContentModelSegmentTy
2194
2221
  * Code info
2195
2222
  */
2196
2223
  readonly code?: ReadonlyContentModelCode;
2224
+ /**
2225
+ * Data info, used by HTML &lt;data&gt; element
2226
+ */
2227
+ readonly data?: ReadonlyContentModelData;
2197
2228
  }
2198
2229
 
2199
2230
  /**
@@ -2208,6 +2239,10 @@ export interface ShallowMutableContentModelSegmentBase<T extends ContentModelSeg
2208
2239
  * Code info
2209
2240
  */
2210
2241
  code?: ContentModelCode;
2242
+ /**
2243
+ * Data info, used by HTML &lt;data&gt; element
2244
+ */
2245
+ data?: ContentModelData;
2211
2246
  }
2212
2247
 
2213
2248
  /**
@@ -2241,6 +2276,22 @@ export interface ContentModelCode extends MutableMark, ContentModelWithFormat<Co
2241
2276
  export interface ReadonlyContentModelCode extends ReadonlyMark, ReadonlyContentModelWithFormat<ContentModelCodeFormat> {
2242
2277
  }
2243
2278
 
2279
+ /**
2280
+ * Represent data info of Content Model, used by HTML &lt;data&gt; element.
2281
+ * ContentModelData is a decorator but not a standalone model type, instead it need to be put inside a ContentModelSegment
2282
+ * since the &lt;data&gt; element is also a kind of segment, with some extra information
2283
+ */
2284
+ export interface ContentModelData extends MutableMark, ContentModelWithFormat<ContentModelDataFormat> {
2285
+ }
2286
+
2287
+ /**
2288
+ * Represent data info of Content Model, used by HTML &lt;data&gt; element. (Readonly)
2289
+ * ContentModelData is a decorator but not a standalone model type, instead it need to be put inside a ContentModelSegment
2290
+ * since the &lt;data&gt; element is also a kind of segment, with some extra information
2291
+ */
2292
+ export interface ReadonlyContentModelData extends ReadonlyMark, ReadonlyContentModelWithFormat<ContentModelDataFormat> {
2293
+ }
2294
+
2244
2295
  /**
2245
2296
  * Represent link info of Content Model.
2246
2297
  * ContentModelLink is not a standalone model type, instead it need to be put inside a ContentModelSegment
@@ -2286,12 +2337,12 @@ export interface ReadonlyContentModelParagraphDecorator extends ReadonlyMark, Re
2286
2337
  /**
2287
2338
  * Union type for segment decorators
2288
2339
  */
2289
- export type ContentModelDecorator = ContentModelLink | ContentModelCode | ContentModelListLevel;
2340
+ export type ContentModelDecorator = ContentModelLink | ContentModelCode | ContentModelData | ContentModelListLevel;
2290
2341
 
2291
2342
  /**
2292
2343
  * Union type for segment decorators (Readonly)
2293
2344
  */
2294
- export type ReadonlyContentModelDecorator = ReadonlyContentModelLink | ReadonlyContentModelCode | ReadonlyContentModelListLevel;
2345
+ export type ReadonlyContentModelDecorator = ReadonlyContentModelLink | ReadonlyContentModelCode | ReadonlyContentModelData | ReadonlyContentModelListLevel;
2295
2346
 
2296
2347
  /**
2297
2348
  * Content Model of List Level
@@ -3047,6 +3098,10 @@ export interface DomToModelDecoratorContext {
3047
3098
  * Context of code info
3048
3099
  */
3049
3100
  code: ContentModelCode;
3101
+ /**
3102
+ * Context of data info, used by HTML &lt;data&gt; element
3103
+ */
3104
+ data: ContentModelData;
3050
3105
  /**
3051
3106
  * Context for paragraph decorator
3052
3107
  */
@@ -7362,9 +7417,10 @@ export function createTableCell(spanLeftOrColSpan?: boolean | number, spanAboveO
7362
7417
  * @param text Text of this model
7363
7418
  * @param format @optional The format of this model
7364
7419
  * @param link @optional The link decorator
7365
- * @param code @option The code decorator
7420
+ * @param code @optional The code decorator
7421
+ * @param data @optional The data decorator
7366
7422
  */
7367
- export function createText(text: string, format?: Readonly<ContentModelSegmentFormat>, link?: ReadonlyContentModelLink, code?: ReadonlyContentModelCode): ContentModelText;
7423
+ export function createText(text: string, format?: Readonly<ContentModelSegmentFormat>, link?: ReadonlyContentModelLink, code?: ReadonlyContentModelCode, data?: ReadonlyContentModelData): ContentModelText;
7368
7424
 
7369
7425
  /**
7370
7426
  * Create a ContentModelImage model
@@ -16811,6 +16811,8 @@ function createAriaLiveElement(document) {
16811
16811
  div.style.height = '1px';
16812
16812
  div.style.overflow = 'hidden';
16813
16813
  div.style.position = 'absolute';
16814
+ div.style.top = '0';
16815
+ div.style.left = '0';
16814
16816
  div.style.whiteSpace = 'nowrap';
16815
16817
  div.style.width = '1px';
16816
16818
  div.ariaLive = 'assertive';
@@ -17612,6 +17614,9 @@ function createDomToModelDecoratorContext() {
17612
17614
  code: {
17613
17615
  format: {},
17614
17616
  },
17617
+ data: {
17618
+ format: {},
17619
+ },
17615
17620
  blockDecorator: {
17616
17621
  format: {},
17617
17622
  tagName: '',
@@ -17683,6 +17688,7 @@ exports.defaultProcessorMap = void 0;
17683
17688
  var brProcessor_1 = __webpack_require__(/*! ../processors/brProcessor */ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/brProcessor.ts");
17684
17689
  var childProcessor_1 = __webpack_require__(/*! ../processors/childProcessor */ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/childProcessor.ts");
17685
17690
  var codeProcessor_1 = __webpack_require__(/*! ../processors/codeProcessor */ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/codeProcessor.ts");
17691
+ var dataProcessor_1 = __webpack_require__(/*! ../processors/dataProcessor */ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/dataProcessor.ts");
17686
17692
  var delimiterProcessor_1 = __webpack_require__(/*! ../processors/delimiterProcessor */ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/delimiterProcessor.ts");
17687
17693
  var elementProcessor_1 = __webpack_require__(/*! ../processors/elementProcessor */ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/elementProcessor.ts");
17688
17694
  var entityProcessor_1 = __webpack_require__(/*! ../processors/entityProcessor */ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/entityProcessor.ts");
@@ -17709,6 +17715,7 @@ exports.defaultProcessorMap = {
17709
17715
  blockquote: knownElementProcessor_1.knownElementProcessor,
17710
17716
  br: brProcessor_1.brProcessor,
17711
17717
  code: codeProcessor_1.codeProcessor,
17718
+ data: dataProcessor_1.dataProcessor,
17712
17719
  dd: formatContainerProcessor_1.formatContainerProcessor,
17713
17720
  del: knownElementProcessor_1.knownElementProcessor,
17714
17721
  div: knownElementProcessor_1.knownElementProcessor,
@@ -17964,6 +17971,33 @@ var codeProcessor = function (group, element, context) {
17964
17971
  exports.codeProcessor = codeProcessor;
17965
17972
 
17966
17973
 
17974
+ /***/ },
17975
+
17976
+ /***/ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/dataProcessor.ts"
17977
+ /*!*****************************************************************************************!*\
17978
+ !*** ./packages/roosterjs-content-model-dom/lib/domToModel/processors/dataProcessor.ts ***!
17979
+ \*****************************************************************************************/
17980
+ (__unused_webpack_module, exports, __webpack_require__) {
17981
+
17982
+ "use strict";
17983
+
17984
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
17985
+ exports.dataProcessor = void 0;
17986
+ var knownElementProcessor_1 = __webpack_require__(/*! ./knownElementProcessor */ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/knownElementProcessor.ts");
17987
+ var parseFormat_1 = __webpack_require__(/*! ../utils/parseFormat */ "./packages/roosterjs-content-model-dom/lib/domToModel/utils/parseFormat.ts");
17988
+ var stackFormat_1 = __webpack_require__(/*! ../utils/stackFormat */ "./packages/roosterjs-content-model-dom/lib/domToModel/utils/stackFormat.ts");
17989
+ /**
17990
+ * @internal
17991
+ */
17992
+ var dataProcessor = function (group, element, context) {
17993
+ (0, stackFormat_1.stackFormat)(context, { data: 'empty' }, function () {
17994
+ (0, parseFormat_1.parseFormat)(element, context.formatParsers.data, context.data.format, context);
17995
+ (0, knownElementProcessor_1.knownElementProcessor)(group, element, context);
17996
+ });
17997
+ };
17998
+ exports.dataProcessor = dataProcessor;
17999
+
18000
+
17967
18001
  /***/ },
17968
18002
 
17969
18003
  /***/ "./packages/roosterjs-content-model-dom/lib/domToModel/processors/delimiterProcessor.ts"
@@ -19402,13 +19436,14 @@ var SkippedStylesForTable = [
19402
19436
  * @internal
19403
19437
  */
19404
19438
  function stackFormat(context, options, callback) {
19405
- var segmentFormat = context.segmentFormat, blockFormat = context.blockFormat, linkFormat = context.link, codeFormat = context.code, decoratorFormat = context.blockDecorator;
19406
- var segment = options.segment, paragraph = options.paragraph, link = options.link, code = options.code, blockDecorator = options.blockDecorator;
19439
+ var segmentFormat = context.segmentFormat, blockFormat = context.blockFormat, linkFormat = context.link, codeFormat = context.code, dataFormat = context.data, decoratorFormat = context.blockDecorator;
19440
+ var segment = options.segment, paragraph = options.paragraph, link = options.link, code = options.code, data = options.data, blockDecorator = options.blockDecorator;
19407
19441
  try {
19408
19442
  context.segmentFormat = stackFormatInternal(segmentFormat, segment);
19409
19443
  context.blockFormat = stackFormatInternal(blockFormat, paragraph);
19410
19444
  context.link = stackLinkInternal(linkFormat, link);
19411
19445
  context.code = stackCodeInternal(codeFormat, code);
19446
+ context.data = stackDataInternal(dataFormat, data);
19412
19447
  context.blockDecorator = stackDecoratorInternal(decoratorFormat, blockDecorator);
19413
19448
  callback();
19414
19449
  }
@@ -19417,6 +19452,7 @@ function stackFormat(context, options, callback) {
19417
19452
  context.blockFormat = blockFormat;
19418
19453
  context.link = linkFormat;
19419
19454
  context.code = codeFormat;
19455
+ context.data = dataFormat;
19420
19456
  context.blockDecorator = decoratorFormat;
19421
19457
  }
19422
19458
  }
@@ -19459,6 +19495,16 @@ function stackCodeInternal(codeFormat, code) {
19459
19495
  return codeFormat;
19460
19496
  }
19461
19497
  }
19498
+ function stackDataInternal(dataFormat, data) {
19499
+ switch (data) {
19500
+ case 'empty':
19501
+ return {
19502
+ format: {},
19503
+ };
19504
+ default:
19505
+ return dataFormat;
19506
+ }
19507
+ }
19462
19508
  function stackDecoratorInternal(format, decorator) {
19463
19509
  switch (decorator) {
19464
19510
  case 'empty':
@@ -22241,6 +22287,7 @@ var borderColorFormatHandler_1 = __webpack_require__(/*! ./common/borderColorFor
22241
22287
  var borderFormatHandler_1 = __webpack_require__(/*! ./common/borderFormatHandler */ "./packages/roosterjs-content-model-dom/lib/formatHandlers/common/borderFormatHandler.ts");
22242
22288
  var boxShadowFormatHandler_1 = __webpack_require__(/*! ./common/boxShadowFormatHandler */ "./packages/roosterjs-content-model-dom/lib/formatHandlers/common/boxShadowFormatHandler.ts");
22243
22289
  var datasetFormatHandler_1 = __webpack_require__(/*! ./common/datasetFormatHandler */ "./packages/roosterjs-content-model-dom/lib/formatHandlers/common/datasetFormatHandler.ts");
22290
+ var dataValueFormatHandler_1 = __webpack_require__(/*! ./segment/dataValueFormatHandler */ "./packages/roosterjs-content-model-dom/lib/formatHandlers/segment/dataValueFormatHandler.ts");
22244
22291
  var directionFormatHandler_1 = __webpack_require__(/*! ./block/directionFormatHandler */ "./packages/roosterjs-content-model-dom/lib/formatHandlers/block/directionFormatHandler.ts");
22245
22292
  var displayFormatHandler_1 = __webpack_require__(/*! ./block/displayFormatHandler */ "./packages/roosterjs-content-model-dom/lib/formatHandlers/block/displayFormatHandler.ts");
22246
22293
  var entityFormatHandler_1 = __webpack_require__(/*! ./entity/entityFormatHandler */ "./packages/roosterjs-content-model-dom/lib/formatHandlers/entity/entityFormatHandler.ts");
@@ -22286,6 +22333,7 @@ var defaultFormatHandlerMap = {
22286
22333
  borderColor: borderColorFormatHandler_1.borderColorFormatHandler,
22287
22334
  boxShadow: boxShadowFormatHandler_1.boxShadowFormatHandler,
22288
22335
  dataset: datasetFormatHandler_1.datasetFormatHandler,
22336
+ dataValue: dataValueFormatHandler_1.dataValueFormatHandler,
22289
22337
  direction: directionFormatHandler_1.directionFormatHandler,
22290
22338
  display: displayFormatHandler_1.displayFormatHandler,
22291
22339
  float: floatFormatHandler_1.floatFormatHandler,
@@ -22427,6 +22475,7 @@ exports.defaultFormatKeysPerCategory = {
22427
22475
  ],
22428
22476
  segmentUnderLink: ['textColor'],
22429
22477
  code: ['fontFamily', 'display'],
22478
+ data: ['dataValue'],
22430
22479
  dataset: ['dataset'],
22431
22480
  divider: (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(sharedBlockFormats), false), (0, tslib_1.__read)(sharedContainerFormats), false), ['display', 'size', 'htmlAlign'], false),
22432
22481
  container: (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(sharedContainerFormats), false), ['htmlAlign', 'size', 'display', 'id'], false),
@@ -22717,6 +22766,37 @@ exports.boldFormatHandler = {
22717
22766
  };
22718
22767
 
22719
22768
 
22769
+ /***/ },
22770
+
22771
+ /***/ "./packages/roosterjs-content-model-dom/lib/formatHandlers/segment/dataValueFormatHandler.ts"
22772
+ /*!***************************************************************************************************!*\
22773
+ !*** ./packages/roosterjs-content-model-dom/lib/formatHandlers/segment/dataValueFormatHandler.ts ***!
22774
+ \***************************************************************************************************/
22775
+ (__unused_webpack_module, exports) {
22776
+
22777
+ "use strict";
22778
+
22779
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
22780
+ exports.dataValueFormatHandler = void 0;
22781
+ /**
22782
+ * @internal
22783
+ * Format handler for the "value" attribute of a HTML &lt;data&gt; element
22784
+ */
22785
+ exports.dataValueFormatHandler = {
22786
+ parse: function (format, element) {
22787
+ var _a;
22788
+ if (element.hasAttribute('value')) {
22789
+ format.dataValue = (_a = element.getAttribute('value')) !== null && _a !== void 0 ? _a : '';
22790
+ }
22791
+ },
22792
+ apply: function (format, element) {
22793
+ if (format.dataValue != undefined) {
22794
+ element.setAttribute('value', format.dataValue);
22795
+ }
22796
+ },
22797
+ };
22798
+
22799
+
22720
22800
  /***/ },
22721
22801
 
22722
22802
  /***/ "./packages/roosterjs-content-model-dom/lib/formatHandlers/segment/fontFamilyFormatHandler.ts"
@@ -23757,9 +23837,9 @@ exports.shouldSetValue = shouldSetValue;
23757
23837
 
23758
23838
  Object.defineProperty(exports, "__esModule", ({ value: true }));
23759
23839
  exports.createImage = exports.createText = exports.createTableCell = exports.createTable = exports.createSelectionMarker = exports.createParagraph = exports.createFormatContainer = exports.createListItem = exports.createBr = exports.isLinkUndeletable = exports.setLinkUndeletable = exports.scrollRectIntoView = exports.normalizeRect = exports.isWhiteSpacePreserved = exports.reuseCachedElement = exports.findClosestBlockEntityContainer = exports.isBlockEntityContainer = exports.isEntityDelimiter = exports.addDelimiters = exports.generateEntityClassNames = exports.parseEntityFormat = exports.getAllEntityWrappers = exports.findClosestEntityWrapper = exports.isEntityElement = exports.unwrap = exports.wrap = exports.wrapAllChildNodes = exports.moveChildNodes = exports.toArray = exports.getSafeIdSelector = exports.getObjectKeys = exports.isElementOfType = exports.isNodeOfType = exports.hasMetadata = exports.getMetadata = exports.updateMetadata = exports.buildSelectionMarker = exports.isBlockElement = exports.areSameFormats = exports.parseFormat = exports.getRegularSelectionOffsets = exports.formatContainerProcessor = exports.tableProcessor = exports.entityProcessor = exports.processChildNode = exports.handleRegularSelection = exports.childProcessor = exports.contentModelToText = exports.contentModelToDom = exports.domToContentModel = void 0;
23760
- exports.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;
23761
- 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.cloneModelForPaste = exports.cloneModel = exports.setSelection = exports.hasSelectionInBlockGroup = exports.hasSelectionInSegment = exports.hasSelectionInBlock = exports.getSelectedCells = exports.getSelectedSegmentsAndParagraphs = exports.getSelectedSegments = exports.getSelectedParagraphs = exports.getOperationalBlocks = exports.getFirstSelectedTable = exports.getFirstSelectedListItem = exports.iterateSelections = exports.isBlockGroupOfType = exports.getRangesByText = exports.getImageState = exports.setImageState = exports.getParagraphMarker = exports.setParagraphMarker = exports.cacheGetEventData = exports.extractClipboardItems = exports.normalizeFontFamily = exports.transformColor = exports.retrieveDocumentMetadata = exports.readFile = exports.parseTableCells = exports.normalizeText = exports.isSpace = exports.isPunctuation = exports.extractBorderValues = exports.combineBorderValue = exports.getNodePositionFromEvent = exports.isCursorMovingKey = exports.isModifierKey = exports.isCharacterValue = void 0;
23762
- exports.EmptySegmentFormat = exports.UnorderedListStyleMap = exports.OrderedListStyleMap = exports.TableBorderFormat = exports.NumberingListType = exports.BulletListType = exports.ChangeSource = exports.ListMetadataDefinition = exports.getListMetadata = exports.updateListMetadata = exports.getTableMetadata = exports.updateTableMetadata = exports.getTableCellMetadata = exports.updateTableCellMetadata = exports.getImageMetadata = exports.updateImageMetadata = exports.runEditSteps = void 0;
23840
+ exports.getDOMInsertPointRect = exports.getSelectionRootNode = exports.isBold = exports.createModelToDomConfig = exports.createModelToDomContextWithConfig = exports.createModelToDomContext = exports.createDomToModelConfig = exports.createDomToModelContextWithConfig = exports.createDomToModelContext = exports.defaultGenerateColorKey = exports.parseColor = exports.setColor = exports.getColor = exports.DeprecatedColors = exports.BorderKeys = exports.parseValueWithUnit = exports.getAutoListStyleType = exports.getOrderedListNumberStr = exports.ParagraphFormats = exports.ListFormatsToMove = exports.ListFormatsToKeep = exports.ListFormats = exports.copyFormat = exports.setParagraphNotImplicit = exports.normalizeSegmentFormat = exports.mergeTextSegments = exports.normalizeSingleSegment = exports.isEmpty = exports.addSegment = exports.unwrapBlock = exports.isGeneralSegment = exports.normalizeContentModel = exports.normalizeParagraph = exports.addTextSegment = exports.addLink = exports.addData = exports.addCode = exports.addBlock = exports.mutateSegment = exports.mutateSegments = exports.mutateBlock = exports.createTableRow = exports.createEmptyModel = exports.createListLevel = exports.createDivider = exports.createEntity = exports.createGeneralBlock = exports.createGeneralSegment = exports.createParagraphDecorator = exports.createContentModelDocument = void 0;
23841
+ exports.getSegmentTextFormat = exports.getListStyleTypeFromString = exports.retrieveModelFormatState = exports.setTableCellBackgroundColor = exports.MIN_ALLOWED_TABLE_CELL_HEIGHT = exports.MIN_ALLOWED_TABLE_CELL_WIDTH = exports.normalizeTable = exports.setFirstColumnFormatBorders = exports.applyTableFormat = exports.deleteBlock = exports.deleteSegment = exports.deleteSelection = exports.mergeModel = exports.cloneModelForPaste = exports.cloneModel = exports.setSelection = exports.hasSelectionInBlockGroup = exports.hasSelectionInSegment = exports.hasSelectionInBlock = exports.getSelectedCells = exports.getSelectedSegmentsAndParagraphs = exports.getSelectedSegments = exports.getSelectedParagraphs = exports.getOperationalBlocks = exports.getFirstSelectedTable = exports.getFirstSelectedListItem = exports.iterateSelections = exports.isBlockGroupOfType = exports.getRangesByText = exports.getImageState = exports.setImageState = exports.getParagraphMarker = exports.setParagraphMarker = exports.cacheGetEventData = exports.extractClipboardItems = exports.normalizeFontFamily = exports.transformColor = exports.retrieveDocumentMetadata = exports.readFile = exports.parseTableCells = exports.normalizeText = exports.isSpace = exports.isPunctuation = exports.extractBorderValues = exports.combineBorderValue = exports.getNodePositionFromEvent = exports.isCursorMovingKey = exports.isModifierKey = exports.isCharacterValue = exports.trimModelForSelection = void 0;
23842
+ exports.EmptySegmentFormat = exports.UnorderedListStyleMap = exports.OrderedListStyleMap = exports.TableBorderFormat = exports.NumberingListType = exports.BulletListType = exports.ChangeSource = exports.ListMetadataDefinition = exports.getListMetadata = exports.updateListMetadata = exports.getTableMetadata = exports.updateTableMetadata = exports.getTableCellMetadata = exports.updateTableCellMetadata = exports.getImageMetadata = exports.updateImageMetadata = exports.runEditSteps = exports.getClosestAncestorBlockGroupIndex = void 0;
23763
23843
  var domToContentModel_1 = __webpack_require__(/*! ./domToModel/domToContentModel */ "./packages/roosterjs-content-model-dom/lib/domToModel/domToContentModel.ts");
23764
23844
  Object.defineProperty(exports, "domToContentModel", ({ enumerable: true, get: function () { return domToContentModel_1.domToContentModel; } }));
23765
23845
  var contentModelToDom_1 = __webpack_require__(/*! ./modelToDom/contentModelToDom */ "./packages/roosterjs-content-model-dom/lib/modelToDom/contentModelToDom.ts");
@@ -23873,7 +23953,9 @@ Object.defineProperty(exports, "addBlock", ({ enumerable: true, get: function ()
23873
23953
  var addDecorators_1 = __webpack_require__(/*! ./modelApi/common/addDecorators */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addDecorators.ts");
23874
23954
  Object.defineProperty(exports, "addCode", ({ enumerable: true, get: function () { return addDecorators_1.addCode; } }));
23875
23955
  var addDecorators_2 = __webpack_require__(/*! ./modelApi/common/addDecorators */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addDecorators.ts");
23876
- Object.defineProperty(exports, "addLink", ({ enumerable: true, get: function () { return addDecorators_2.addLink; } }));
23956
+ Object.defineProperty(exports, "addData", ({ enumerable: true, get: function () { return addDecorators_2.addData; } }));
23957
+ var addDecorators_3 = __webpack_require__(/*! ./modelApi/common/addDecorators */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addDecorators.ts");
23958
+ Object.defineProperty(exports, "addLink", ({ enumerable: true, get: function () { return addDecorators_3.addLink; } }));
23877
23959
  var addTextSegment_1 = __webpack_require__(/*! ./modelApi/common/addTextSegment */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/addTextSegment.ts");
23878
23960
  Object.defineProperty(exports, "addTextSegment", ({ enumerable: true, get: function () { return addTextSegment_1.addTextSegment; } }));
23879
23961
  var normalizeParagraph_1 = __webpack_require__(/*! ./modelApi/common/normalizeParagraph */ "./packages/roosterjs-content-model-dom/lib/modelApi/common/normalizeParagraph.ts");
@@ -24194,7 +24276,7 @@ exports.addBlock = addBlock;
24194
24276
  "use strict";
24195
24277
 
24196
24278
  Object.defineProperty(exports, "__esModule", ({ value: true }));
24197
- exports.addDecorators = exports.addCode = exports.addLink = void 0;
24279
+ exports.addDecorators = exports.addData = exports.addCode = exports.addLink = void 0;
24198
24280
  var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.mjs");
24199
24281
  /**
24200
24282
  * @internal
@@ -24221,12 +24303,27 @@ function addCode(segment, code) {
24221
24303
  }
24222
24304
  }
24223
24305
  exports.addCode = addCode;
24306
+ /**
24307
+ * @internal
24308
+ * Add a data decorator into segment if any
24309
+ * @param segment The segment to add decorator to
24310
+ * @param data The data decorator to add
24311
+ */
24312
+ function addData(segment, data) {
24313
+ if (data.format.dataValue != undefined) {
24314
+ segment.data = {
24315
+ format: (0, tslib_1.__assign)({}, data.format),
24316
+ };
24317
+ }
24318
+ }
24319
+ exports.addData = addData;
24224
24320
  /**
24225
24321
  * @internal
24226
24322
  */
24227
24323
  function addDecorators(segment, context) {
24228
24324
  addLink(segment, context.link);
24229
24325
  addCode(segment, context.code);
24326
+ addData(segment, context.data);
24230
24327
  }
24231
24328
  exports.addDecorators = addDecorators;
24232
24329
 
@@ -24511,7 +24608,8 @@ function segmentsWithSameFormat(seg1, seg2) {
24511
24608
  return (!!seg1.isSelected == !!seg2.isSelected &&
24512
24609
  (0, areSameFormats_1.areSameFormats)(seg1.format, seg2.format) &&
24513
24610
  areSameLinks(seg1.link, seg2.link) &&
24514
- areSameCodes(seg1.code, seg2.code));
24611
+ areSameCodes(seg1.code, seg2.code) &&
24612
+ areSameData(seg1.data, seg2.data));
24515
24613
  }
24516
24614
  function areSameLinks(link1, link2) {
24517
24615
  return ((!link1 && !link2) ||
@@ -24523,6 +24621,9 @@ function areSameLinks(link1, link2) {
24523
24621
  function areSameCodes(code1, code2) {
24524
24622
  return (!code1 && !code2) || (code1 && code2 && (0, areSameFormats_1.areSameFormats)(code1.format, code2.format));
24525
24623
  }
24624
+ function areSameData(data1, data2) {
24625
+ return (!data1 && !data2) || (data1 && data2 && (0, areSameFormats_1.areSameFormats)(data1.format, data2.format));
24626
+ }
24526
24627
 
24527
24628
 
24528
24629
  /***/ },
@@ -25608,9 +25709,10 @@ var addDecorators_1 = __webpack_require__(/*! ../common/addDecorators */ "./pack
25608
25709
  * @param text Text of this model
25609
25710
  * @param format @optional The format of this model
25610
25711
  * @param link @optional The link decorator
25611
- * @param code @option The code decorator
25712
+ * @param code @optional The code decorator
25713
+ * @param data @optional The data decorator
25612
25714
  */
25613
- function createText(text, format, link, code) {
25715
+ function createText(text, format, link, code, data) {
25614
25716
  var result = {
25615
25717
  segmentType: 'Text',
25616
25718
  text: text,
@@ -25622,6 +25724,9 @@ function createText(text, format, link, code) {
25622
25724
  if (code) {
25623
25725
  (0, addDecorators_1.addCode)(result, code);
25624
25726
  }
25727
+ if (data) {
25728
+ (0, addDecorators_1.addData)(result, data);
25729
+ }
25625
25730
  return result;
25626
25731
  }
25627
25732
  exports.createText = createText;
@@ -26089,7 +26194,7 @@ function cloneBlockGroupBase(group, options) {
26089
26194
  };
26090
26195
  }
26091
26196
  function cloneSegmentBase(segment) {
26092
- var segmentType = segment.segmentType, isSelected = segment.isSelected, code = segment.code, link = segment.link;
26197
+ var segmentType = segment.segmentType, isSelected = segment.isSelected, code = segment.code, link = segment.link, data = segment.data;
26093
26198
  var newSegment = Object.assign({
26094
26199
  segmentType: segmentType,
26095
26200
  isSelected: isSelected,
@@ -26100,6 +26205,9 @@ function cloneSegmentBase(segment) {
26100
26205
  if (link) {
26101
26206
  newSegment.link = Object.assign(cloneModelWithFormat(link), cloneModelWithDataset(link));
26102
26207
  }
26208
+ if (data) {
26209
+ newSegment.data = cloneModelWithFormat(data);
26210
+ }
26103
26211
  return newSegment;
26104
26212
  }
26105
26213
  function cloneEntity(entity, options) {
@@ -30135,7 +30243,7 @@ var moveChildNodes_1 = __webpack_require__(/*! ../../domUtils/moveChildNodes */
30135
30243
  * @internal
30136
30244
  */
30137
30245
  var handleSegmentDecorator = function (_, parent, segment, context) {
30138
- var code = segment.code, link = segment.link;
30246
+ var code = segment.code, link = segment.link, data = segment.data;
30139
30247
  if ((0, isNodeOfType_1.isNodeOfType)(parent, 'ELEMENT_NODE')) {
30140
30248
  if (link) {
30141
30249
  (0, stackFormat_1.stackFormat)(context, 'a', function () {
@@ -30154,6 +30262,14 @@ var handleSegmentDecorator = function (_, parent, segment, context) {
30154
30262
  (_a = context.onNodeCreated) === null || _a === void 0 ? void 0 : _a.call(context, code, codeNode);
30155
30263
  });
30156
30264
  }
30265
+ if (data) {
30266
+ (0, stackFormat_1.stackFormat)(context, 'data', function () {
30267
+ var _a;
30268
+ var dataNode = (0, moveChildNodes_1.wrapAllChildNodes)(parent, 'data');
30269
+ (0, applyFormat_1.applyFormat)(dataNode, context.formatAppliers.data, data.format, context);
30270
+ (_a = context.onNodeCreated) === null || _a === void 0 ? void 0 : _a.call(context, data, dataNode);
30271
+ });
30272
+ }
30157
30273
  }
30158
30274
  };
30159
30275
  exports.handleSegmentDecorator = handleSegmentDecorator;
@@ -30338,7 +30454,20 @@ exports.handleText = handleText;
30338
30454
  Object.defineProperty(exports, "__esModule", ({ value: true }));
30339
30455
  exports.mergeNode = void 0;
30340
30456
  var isNodeOfType_1 = __webpack_require__(/*! ../../domUtils/isNodeOfType */ "./packages/roosterjs-content-model-dom/lib/domUtils/isNodeOfType.ts");
30341
- var OptimizeTags = ['SPAN', 'B', 'EM', 'I', 'U', 'SUB', 'SUP', 'STRIKE', 'S', 'A', 'CODE'];
30457
+ var OptimizeTags = [
30458
+ 'SPAN',
30459
+ 'B',
30460
+ 'EM',
30461
+ 'I',
30462
+ 'U',
30463
+ 'SUB',
30464
+ 'SUP',
30465
+ 'STRIKE',
30466
+ 'S',
30467
+ 'A',
30468
+ 'CODE',
30469
+ 'DATA',
30470
+ ];
30342
30471
  /**
30343
30472
  * @internal
30344
30473
  */