roosterjs-content-model-dom 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.
Files changed (97) hide show
  1. package/lib/domToModel/context/createDomToModelContext.js +3 -0
  2. package/lib/domToModel/context/createDomToModelContext.js.map +1 -1
  3. package/lib/domToModel/context/defaultProcessors.js +2 -0
  4. package/lib/domToModel/context/defaultProcessors.js.map +1 -1
  5. package/lib/domToModel/processors/dataProcessor.d.ts +5 -0
  6. package/lib/domToModel/processors/dataProcessor.js +17 -0
  7. package/lib/domToModel/processors/dataProcessor.js.map +1 -0
  8. package/lib/domToModel/utils/stackFormat.d.ts +1 -0
  9. package/lib/domToModel/utils/stackFormat.js +14 -2
  10. package/lib/domToModel/utils/stackFormat.js.map +1 -1
  11. package/lib/formatHandlers/defaultFormatHandlers.js +3 -0
  12. package/lib/formatHandlers/defaultFormatHandlers.js.map +1 -1
  13. package/lib/formatHandlers/segment/dataValueFormatHandler.d.ts +7 -0
  14. package/lib/formatHandlers/segment/dataValueFormatHandler.js +21 -0
  15. package/lib/formatHandlers/segment/dataValueFormatHandler.js.map +1 -0
  16. package/lib/index.d.ts +1 -0
  17. package/lib/index.js +6 -4
  18. package/lib/index.js.map +1 -1
  19. package/lib/modelApi/common/addDecorators.d.ts +8 -1
  20. package/lib/modelApi/common/addDecorators.js +16 -1
  21. package/lib/modelApi/common/addDecorators.js.map +1 -1
  22. package/lib/modelApi/common/mergeTextSegments.js +5 -1
  23. package/lib/modelApi/common/mergeTextSegments.js.map +1 -1
  24. package/lib/modelApi/creators/createText.d.ts +4 -3
  25. package/lib/modelApi/creators/createText.js +6 -2
  26. package/lib/modelApi/creators/createText.js.map +1 -1
  27. package/lib/modelApi/editing/cloneModel.js +4 -1
  28. package/lib/modelApi/editing/cloneModel.js.map +1 -1
  29. package/lib/modelToDom/handlers/handleSegmentDecorator.js +9 -1
  30. package/lib/modelToDom/handlers/handleSegmentDecorator.js.map +1 -1
  31. package/lib/modelToDom/optimizers/mergeNode.js +14 -1
  32. package/lib/modelToDom/optimizers/mergeNode.js.map +1 -1
  33. package/lib-amd/domToModel/context/createDomToModelContext.js +3 -0
  34. package/lib-amd/domToModel/context/createDomToModelContext.js.map +1 -1
  35. package/lib-amd/domToModel/context/defaultProcessors.js +2 -1
  36. package/lib-amd/domToModel/context/defaultProcessors.js.map +1 -1
  37. package/lib-amd/domToModel/processors/dataProcessor.d.ts +5 -0
  38. package/lib-amd/domToModel/processors/dataProcessor.js +16 -0
  39. package/lib-amd/domToModel/processors/dataProcessor.js.map +1 -0
  40. package/lib-amd/domToModel/utils/stackFormat.d.ts +1 -0
  41. package/lib-amd/domToModel/utils/stackFormat.js +14 -2
  42. package/lib-amd/domToModel/utils/stackFormat.js.map +1 -1
  43. package/lib-amd/formatHandlers/defaultFormatHandlers.js +3 -1
  44. package/lib-amd/formatHandlers/defaultFormatHandlers.js.map +1 -1
  45. package/lib-amd/formatHandlers/segment/dataValueFormatHandler.d.ts +7 -0
  46. package/lib-amd/formatHandlers/segment/dataValueFormatHandler.js +23 -0
  47. package/lib-amd/formatHandlers/segment/dataValueFormatHandler.js.map +1 -0
  48. package/lib-amd/index.d.ts +1 -0
  49. package/lib-amd/index.js +4 -3
  50. package/lib-amd/index.js.map +1 -1
  51. package/lib-amd/modelApi/common/addDecorators.d.ts +8 -1
  52. package/lib-amd/modelApi/common/addDecorators.js +16 -1
  53. package/lib-amd/modelApi/common/addDecorators.js.map +1 -1
  54. package/lib-amd/modelApi/common/mergeTextSegments.js +5 -1
  55. package/lib-amd/modelApi/common/mergeTextSegments.js.map +1 -1
  56. package/lib-amd/modelApi/creators/createText.d.ts +4 -3
  57. package/lib-amd/modelApi/creators/createText.js +6 -2
  58. package/lib-amd/modelApi/creators/createText.js.map +1 -1
  59. package/lib-amd/modelApi/editing/cloneModel.js +4 -1
  60. package/lib-amd/modelApi/editing/cloneModel.js.map +1 -1
  61. package/lib-amd/modelToDom/handlers/handleSegmentDecorator.js +9 -1
  62. package/lib-amd/modelToDom/handlers/handleSegmentDecorator.js.map +1 -1
  63. package/lib-amd/modelToDom/optimizers/mergeNode.js +14 -1
  64. package/lib-amd/modelToDom/optimizers/mergeNode.js.map +1 -1
  65. package/lib-mjs/domToModel/context/createDomToModelContext.js +3 -0
  66. package/lib-mjs/domToModel/context/createDomToModelContext.js.map +1 -1
  67. package/lib-mjs/domToModel/context/defaultProcessors.js +2 -0
  68. package/lib-mjs/domToModel/context/defaultProcessors.js.map +1 -1
  69. package/lib-mjs/domToModel/processors/dataProcessor.d.ts +5 -0
  70. package/lib-mjs/domToModel/processors/dataProcessor.js +13 -0
  71. package/lib-mjs/domToModel/processors/dataProcessor.js.map +1 -0
  72. package/lib-mjs/domToModel/utils/stackFormat.d.ts +1 -0
  73. package/lib-mjs/domToModel/utils/stackFormat.js +14 -2
  74. package/lib-mjs/domToModel/utils/stackFormat.js.map +1 -1
  75. package/lib-mjs/formatHandlers/defaultFormatHandlers.js +3 -0
  76. package/lib-mjs/formatHandlers/defaultFormatHandlers.js.map +1 -1
  77. package/lib-mjs/formatHandlers/segment/dataValueFormatHandler.d.ts +7 -0
  78. package/lib-mjs/formatHandlers/segment/dataValueFormatHandler.js +18 -0
  79. package/lib-mjs/formatHandlers/segment/dataValueFormatHandler.js.map +1 -0
  80. package/lib-mjs/index.d.ts +1 -0
  81. package/lib-mjs/index.js +1 -0
  82. package/lib-mjs/index.js.map +1 -1
  83. package/lib-mjs/modelApi/common/addDecorators.d.ts +8 -1
  84. package/lib-mjs/modelApi/common/addDecorators.js +14 -0
  85. package/lib-mjs/modelApi/common/addDecorators.js.map +1 -1
  86. package/lib-mjs/modelApi/common/mergeTextSegments.js +5 -1
  87. package/lib-mjs/modelApi/common/mergeTextSegments.js.map +1 -1
  88. package/lib-mjs/modelApi/creators/createText.d.ts +4 -3
  89. package/lib-mjs/modelApi/creators/createText.js +7 -3
  90. package/lib-mjs/modelApi/creators/createText.js.map +1 -1
  91. package/lib-mjs/modelApi/editing/cloneModel.js +4 -1
  92. package/lib-mjs/modelApi/editing/cloneModel.js.map +1 -1
  93. package/lib-mjs/modelToDom/handlers/handleSegmentDecorator.js +9 -1
  94. package/lib-mjs/modelToDom/handlers/handleSegmentDecorator.js.map +1 -1
  95. package/lib-mjs/modelToDom/optimizers/mergeNode.js +14 -1
  96. package/lib-mjs/modelToDom/optimizers/mergeNode.js.map +1 -1
  97. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"defaultFormatHandlers.js","sourceRoot":"","sources":["../../../../packages/roosterjs-content-model-dom/lib/formatHandlers/defaultFormatHandlers.ts"],"names":[],"mappings":"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","sourcesContent":["import { ariaFormatHandler } from './common/ariaFormatHandler';\nimport { backgroundColorFormatHandler } from './common/backgroundColorFormatHandler';\nimport { boldFormatHandler } from './segment/boldFormatHandler';\nimport { borderBoxFormatHandler } from './common/borderBoxFormatHandler';\nimport { borderColorFormatHandler } from './common/borderColorFormatHandler';\nimport { borderFormatHandler } from './common/borderFormatHandler';\nimport { boxShadowFormatHandler } from './common/boxShadowFormatHandler';\nimport { datasetFormatHandler } from './common/datasetFormatHandler';\nimport { directionFormatHandler } from './block/directionFormatHandler';\nimport { displayFormatHandler } from './block/displayFormatHandler';\nimport { entityFormatHandler } from './entity/entityFormatHandler';\nimport { floatFormatHandler } from './common/floatFormatHandler';\nimport { fontFamilyFormatHandler } from './segment/fontFamilyFormatHandler';\nimport { fontSizeFormatHandler } from './segment/fontSizeFormatHandler';\nimport { getObjectKeys } from '../domUtils/getObjectKeys';\nimport { htmlAlignFormatHandler } from './block/htmlAlignFormatHandler';\nimport { idFormatHandler } from './common/idFormatHandler';\nimport { imageStateFormatHandler } from './segment/imageStateFormatHandler';\nimport { italicFormatHandler } from './segment/italicFormatHandler';\nimport { legacyTableBorderFormatHandler } from './table/legacyTableBorderFormatHandler';\nimport { letterSpacingFormatHandler } from './segment/letterSpacingFormatHandler';\nimport { lineHeightFormatHandler } from './block/lineHeightFormatHandler';\nimport { linkFormatHandler } from './segment/linkFormatHandler';\nimport { listItemAlignFormatHandler } from './list/listItemAlignFormatHandler';\nimport { listItemThreadFormatHandler } from './list/listItemThreadFormatHandler';\nimport { listLevelThreadFormatHandler } from './list/listLevelThreadFormatHandler';\nimport { listStyleFormatHandler } from './list/listStyleFormatHandler';\nimport { marginFormatHandler } from './block/marginFormatHandler';\nimport { paddingFormatHandler } from './block/paddingFormatHandler';\nimport { roleFormatHandler } from './common/roleFormatHandler';\nimport { sizeFormatHandler } from './common/sizeFormatHandler';\nimport { strikeFormatHandler } from './segment/strikeFormatHandler';\nimport { superOrSubScriptFormatHandler } from './segment/superOrSubScriptFormatHandler';\nimport { tableLayoutFormatHandler } from './table/tableLayoutFormatHandler';\nimport { tableSpacingFormatHandler } from './table/tableSpacingFormatHandler';\nimport { textAlignFormatHandler } from './block/textAlignFormatHandler';\nimport { textColorFormatHandler } from './segment/textColorFormatHandler';\nimport { textColorOnTableCellFormatHandler } from './table/textColorOnTableCellFormatHandler';\nimport { textIndentFormatHandler } from './block/textIndentFormatHandler';\nimport { undeletableLinkFormatHandler } from './segment/undeletableLinkFormatHandler';\nimport { underlineFormatHandler } from './segment/underlineFormatHandler';\nimport { verticalAlignFormatHandler } from './common/verticalAlignFormatHandler';\nimport { whiteSpaceFormatHandler } from './block/whiteSpaceFormatHandler';\nimport { wordBreakFormatHandler } from './common/wordBreakFormatHandler';\nimport type { FormatHandler } from './FormatHandler';\nimport type {\n ContentModelFormatMap,\n FormatApplier,\n FormatAppliers,\n FormatHandlerTypeMap,\n FormatKey,\n FormatParser,\n FormatParsers,\n} from 'roosterjs-content-model-types';\n\ntype FormatHandlers = {\n [Key in FormatKey]: FormatHandler<FormatHandlerTypeMap[Key]>;\n};\n\nconst defaultFormatHandlerMap: FormatHandlers = {\n aria: ariaFormatHandler,\n backgroundColor: backgroundColorFormatHandler,\n bold: boldFormatHandler,\n border: borderFormatHandler,\n borderBox: borderBoxFormatHandler,\n borderColor: borderColorFormatHandler,\n boxShadow: boxShadowFormatHandler,\n dataset: datasetFormatHandler,\n direction: directionFormatHandler,\n display: displayFormatHandler,\n float: floatFormatHandler,\n fontFamily: fontFamilyFormatHandler,\n fontSize: fontSizeFormatHandler,\n entity: entityFormatHandler,\n htmlAlign: htmlAlignFormatHandler,\n id: idFormatHandler,\n imageState: imageStateFormatHandler,\n italic: italicFormatHandler,\n legacyTableBorder: legacyTableBorderFormatHandler,\n letterSpacing: letterSpacingFormatHandler,\n lineHeight: lineHeightFormatHandler,\n link: linkFormatHandler,\n listItemAlign: listItemAlignFormatHandler,\n listItemThread: listItemThreadFormatHandler,\n listLevelThread: listLevelThreadFormatHandler,\n listStyle: listStyleFormatHandler,\n margin: marginFormatHandler,\n padding: paddingFormatHandler,\n role: roleFormatHandler,\n size: sizeFormatHandler,\n strike: strikeFormatHandler,\n superOrSubScript: superOrSubScriptFormatHandler,\n tableLayout: tableLayoutFormatHandler,\n tableSpacing: tableSpacingFormatHandler,\n textAlign: textAlignFormatHandler,\n textColor: textColorFormatHandler,\n textColorOnTableCell: textColorOnTableCellFormatHandler,\n textIndent: textIndentFormatHandler,\n undeletableLink: undeletableLinkFormatHandler,\n underline: underlineFormatHandler,\n verticalAlign: verticalAlignFormatHandler,\n whiteSpace: whiteSpaceFormatHandler,\n wordBreak: wordBreakFormatHandler,\n};\n\nconst styleBasedSegmentFormats: (keyof FormatHandlerTypeMap)[] = [\n 'letterSpacing',\n 'fontFamily',\n 'fontSize',\n];\n\nconst sizeNeutralElementBasedSegmentFormats: (keyof FormatHandlerTypeMap)[] = [\n 'strike',\n 'underline',\n 'italic',\n 'bold',\n];\n\nconst elementBasedSegmentFormats: (keyof FormatHandlerTypeMap)[] = [\n ...sizeNeutralElementBasedSegmentFormats,\n 'superOrSubScript',\n];\nconst sharedBlockFormats: (keyof FormatHandlerTypeMap)[] = [\n 'direction',\n 'textAlign',\n 'textIndent',\n 'lineHeight',\n 'whiteSpace',\n];\nconst sharedContainerFormats: (keyof FormatHandlerTypeMap)[] = [\n 'backgroundColor',\n 'margin',\n 'padding',\n 'border',\n];\n\n/**\n * @internal\n */\nexport const defaultFormatKeysPerCategory: {\n [key in keyof ContentModelFormatMap]: (keyof FormatHandlerTypeMap)[];\n} = {\n block: sharedBlockFormats,\n listItemThread: ['listItemThread'],\n listLevelThread: ['listLevelThread'],\n listItemElement: [...sharedBlockFormats, 'listItemAlign', 'margin', 'listStyle'],\n listLevel: ['direction', 'textAlign', 'margin', 'padding', 'listStyle', 'backgroundColor'],\n styleBasedSegment: [...styleBasedSegmentFormats, 'textColor', 'backgroundColor', 'lineHeight'],\n elementBasedSegment: sizeNeutralElementBasedSegmentFormats,\n superOrSubScript: ['superOrSubScript'],\n segment: [\n ...styleBasedSegmentFormats,\n ...elementBasedSegmentFormats,\n 'textColor',\n 'backgroundColor',\n 'lineHeight',\n ],\n segmentOnBlock: [...styleBasedSegmentFormats, ...elementBasedSegmentFormats, 'textColor'],\n segmentOnTableCell: [\n ...styleBasedSegmentFormats,\n ...elementBasedSegmentFormats,\n 'textColorOnTableCell',\n ],\n tableCell: [\n 'border',\n 'borderColor',\n 'backgroundColor',\n 'padding',\n 'verticalAlign',\n 'wordBreak',\n 'textColor',\n 'htmlAlign',\n 'size',\n ],\n tableRow: ['backgroundColor'],\n tableColumn: ['size'],\n table: [\n 'aria',\n 'id',\n 'border',\n 'backgroundColor',\n 'display',\n 'htmlAlign',\n 'margin',\n 'size',\n 'tableLayout',\n 'textColor',\n 'direction',\n 'role',\n ],\n tableBorder: ['borderBox', 'tableSpacing', 'legacyTableBorder'],\n tableCellBorder: ['borderBox'],\n image: [\n 'id',\n 'size',\n 'margin',\n 'padding',\n 'borderBox',\n 'border',\n 'boxShadow',\n 'display',\n 'float',\n 'verticalAlign',\n 'imageState',\n ],\n link: [\n 'link',\n 'textColor',\n 'underline',\n 'display',\n 'margin',\n 'padding',\n 'backgroundColor',\n 'border',\n 'size',\n 'textAlign',\n 'undeletableLink',\n ],\n segmentUnderLink: ['textColor'],\n code: ['fontFamily', 'display'],\n dataset: ['dataset'],\n divider: [...sharedBlockFormats, ...sharedContainerFormats, 'display', 'size', 'htmlAlign'],\n container: [...sharedContainerFormats, 'htmlAlign', 'size', 'display', 'id'],\n entity: ['entity'],\n general: ['textColor', 'backgroundColor'], // General model still need to do color transformation in dark mode\n};\n\n/**\n * @internal\n */\nexport const defaultFormatParsers: FormatParsers = getObjectKeys(defaultFormatHandlerMap).reduce(\n (result, key) => {\n result[key] = defaultFormatHandlerMap[key].parse as FormatParser<any>;\n return result;\n },\n <FormatParsers>{}\n);\n\n/**\n * @internal\n */\nexport const defaultFormatAppliers: FormatAppliers = getObjectKeys(defaultFormatHandlerMap).reduce(\n (result, key) => {\n result[key] = defaultFormatHandlerMap[key].apply as FormatApplier<any>;\n return result;\n },\n <FormatAppliers>{}\n);\n"]}
1
+ {"version":3,"file":"defaultFormatHandlers.js","sourceRoot":"","sources":["../../../../packages/roosterjs-content-model-dom/lib/formatHandlers/defaultFormatHandlers.ts"],"names":[],"mappings":"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","sourcesContent":["import { ariaFormatHandler } from './common/ariaFormatHandler';\nimport { backgroundColorFormatHandler } from './common/backgroundColorFormatHandler';\nimport { boldFormatHandler } from './segment/boldFormatHandler';\nimport { borderBoxFormatHandler } from './common/borderBoxFormatHandler';\nimport { borderColorFormatHandler } from './common/borderColorFormatHandler';\nimport { borderFormatHandler } from './common/borderFormatHandler';\nimport { boxShadowFormatHandler } from './common/boxShadowFormatHandler';\nimport { datasetFormatHandler } from './common/datasetFormatHandler';\nimport { dataValueFormatHandler } from './segment/dataValueFormatHandler';\nimport { directionFormatHandler } from './block/directionFormatHandler';\nimport { displayFormatHandler } from './block/displayFormatHandler';\nimport { entityFormatHandler } from './entity/entityFormatHandler';\nimport { floatFormatHandler } from './common/floatFormatHandler';\nimport { fontFamilyFormatHandler } from './segment/fontFamilyFormatHandler';\nimport { fontSizeFormatHandler } from './segment/fontSizeFormatHandler';\nimport { getObjectKeys } from '../domUtils/getObjectKeys';\nimport { htmlAlignFormatHandler } from './block/htmlAlignFormatHandler';\nimport { idFormatHandler } from './common/idFormatHandler';\nimport { imageStateFormatHandler } from './segment/imageStateFormatHandler';\nimport { italicFormatHandler } from './segment/italicFormatHandler';\nimport { legacyTableBorderFormatHandler } from './table/legacyTableBorderFormatHandler';\nimport { letterSpacingFormatHandler } from './segment/letterSpacingFormatHandler';\nimport { lineHeightFormatHandler } from './block/lineHeightFormatHandler';\nimport { linkFormatHandler } from './segment/linkFormatHandler';\nimport { listItemAlignFormatHandler } from './list/listItemAlignFormatHandler';\nimport { listItemThreadFormatHandler } from './list/listItemThreadFormatHandler';\nimport { listLevelThreadFormatHandler } from './list/listLevelThreadFormatHandler';\nimport { listStyleFormatHandler } from './list/listStyleFormatHandler';\nimport { marginFormatHandler } from './block/marginFormatHandler';\nimport { paddingFormatHandler } from './block/paddingFormatHandler';\nimport { roleFormatHandler } from './common/roleFormatHandler';\nimport { sizeFormatHandler } from './common/sizeFormatHandler';\nimport { strikeFormatHandler } from './segment/strikeFormatHandler';\nimport { superOrSubScriptFormatHandler } from './segment/superOrSubScriptFormatHandler';\nimport { tableLayoutFormatHandler } from './table/tableLayoutFormatHandler';\nimport { tableSpacingFormatHandler } from './table/tableSpacingFormatHandler';\nimport { textAlignFormatHandler } from './block/textAlignFormatHandler';\nimport { textColorFormatHandler } from './segment/textColorFormatHandler';\nimport { textColorOnTableCellFormatHandler } from './table/textColorOnTableCellFormatHandler';\nimport { textIndentFormatHandler } from './block/textIndentFormatHandler';\nimport { undeletableLinkFormatHandler } from './segment/undeletableLinkFormatHandler';\nimport { underlineFormatHandler } from './segment/underlineFormatHandler';\nimport { verticalAlignFormatHandler } from './common/verticalAlignFormatHandler';\nimport { whiteSpaceFormatHandler } from './block/whiteSpaceFormatHandler';\nimport { wordBreakFormatHandler } from './common/wordBreakFormatHandler';\nimport type { FormatHandler } from './FormatHandler';\nimport type {\n ContentModelFormatMap,\n FormatApplier,\n FormatAppliers,\n FormatHandlerTypeMap,\n FormatKey,\n FormatParser,\n FormatParsers,\n} from 'roosterjs-content-model-types';\n\ntype FormatHandlers = {\n [Key in FormatKey]: FormatHandler<FormatHandlerTypeMap[Key]>;\n};\n\nconst defaultFormatHandlerMap: FormatHandlers = {\n aria: ariaFormatHandler,\n backgroundColor: backgroundColorFormatHandler,\n bold: boldFormatHandler,\n border: borderFormatHandler,\n borderBox: borderBoxFormatHandler,\n borderColor: borderColorFormatHandler,\n boxShadow: boxShadowFormatHandler,\n dataset: datasetFormatHandler,\n dataValue: dataValueFormatHandler,\n direction: directionFormatHandler,\n display: displayFormatHandler,\n float: floatFormatHandler,\n fontFamily: fontFamilyFormatHandler,\n fontSize: fontSizeFormatHandler,\n entity: entityFormatHandler,\n htmlAlign: htmlAlignFormatHandler,\n id: idFormatHandler,\n imageState: imageStateFormatHandler,\n italic: italicFormatHandler,\n legacyTableBorder: legacyTableBorderFormatHandler,\n letterSpacing: letterSpacingFormatHandler,\n lineHeight: lineHeightFormatHandler,\n link: linkFormatHandler,\n listItemAlign: listItemAlignFormatHandler,\n listItemThread: listItemThreadFormatHandler,\n listLevelThread: listLevelThreadFormatHandler,\n listStyle: listStyleFormatHandler,\n margin: marginFormatHandler,\n padding: paddingFormatHandler,\n role: roleFormatHandler,\n size: sizeFormatHandler,\n strike: strikeFormatHandler,\n superOrSubScript: superOrSubScriptFormatHandler,\n tableLayout: tableLayoutFormatHandler,\n tableSpacing: tableSpacingFormatHandler,\n textAlign: textAlignFormatHandler,\n textColor: textColorFormatHandler,\n textColorOnTableCell: textColorOnTableCellFormatHandler,\n textIndent: textIndentFormatHandler,\n undeletableLink: undeletableLinkFormatHandler,\n underline: underlineFormatHandler,\n verticalAlign: verticalAlignFormatHandler,\n whiteSpace: whiteSpaceFormatHandler,\n wordBreak: wordBreakFormatHandler,\n};\n\nconst styleBasedSegmentFormats: (keyof FormatHandlerTypeMap)[] = [\n 'letterSpacing',\n 'fontFamily',\n 'fontSize',\n];\n\nconst sizeNeutralElementBasedSegmentFormats: (keyof FormatHandlerTypeMap)[] = [\n 'strike',\n 'underline',\n 'italic',\n 'bold',\n];\n\nconst elementBasedSegmentFormats: (keyof FormatHandlerTypeMap)[] = [\n ...sizeNeutralElementBasedSegmentFormats,\n 'superOrSubScript',\n];\nconst sharedBlockFormats: (keyof FormatHandlerTypeMap)[] = [\n 'direction',\n 'textAlign',\n 'textIndent',\n 'lineHeight',\n 'whiteSpace',\n];\nconst sharedContainerFormats: (keyof FormatHandlerTypeMap)[] = [\n 'backgroundColor',\n 'margin',\n 'padding',\n 'border',\n];\n\n/**\n * @internal\n */\nexport const defaultFormatKeysPerCategory: {\n [key in keyof ContentModelFormatMap]: (keyof FormatHandlerTypeMap)[];\n} = {\n block: sharedBlockFormats,\n listItemThread: ['listItemThread'],\n listLevelThread: ['listLevelThread'],\n listItemElement: [...sharedBlockFormats, 'listItemAlign', 'margin', 'listStyle'],\n listLevel: ['direction', 'textAlign', 'margin', 'padding', 'listStyle', 'backgroundColor'],\n styleBasedSegment: [...styleBasedSegmentFormats, 'textColor', 'backgroundColor', 'lineHeight'],\n elementBasedSegment: sizeNeutralElementBasedSegmentFormats,\n superOrSubScript: ['superOrSubScript'],\n segment: [\n ...styleBasedSegmentFormats,\n ...elementBasedSegmentFormats,\n 'textColor',\n 'backgroundColor',\n 'lineHeight',\n ],\n segmentOnBlock: [...styleBasedSegmentFormats, ...elementBasedSegmentFormats, 'textColor'],\n segmentOnTableCell: [\n ...styleBasedSegmentFormats,\n ...elementBasedSegmentFormats,\n 'textColorOnTableCell',\n ],\n tableCell: [\n 'border',\n 'borderColor',\n 'backgroundColor',\n 'padding',\n 'verticalAlign',\n 'wordBreak',\n 'textColor',\n 'htmlAlign',\n 'size',\n ],\n tableRow: ['backgroundColor'],\n tableColumn: ['size'],\n table: [\n 'aria',\n 'id',\n 'border',\n 'backgroundColor',\n 'display',\n 'htmlAlign',\n 'margin',\n 'size',\n 'tableLayout',\n 'textColor',\n 'direction',\n 'role',\n ],\n tableBorder: ['borderBox', 'tableSpacing', 'legacyTableBorder'],\n tableCellBorder: ['borderBox'],\n image: [\n 'id',\n 'size',\n 'margin',\n 'padding',\n 'borderBox',\n 'border',\n 'boxShadow',\n 'display',\n 'float',\n 'verticalAlign',\n 'imageState',\n ],\n link: [\n 'link',\n 'textColor',\n 'underline',\n 'display',\n 'margin',\n 'padding',\n 'backgroundColor',\n 'border',\n 'size',\n 'textAlign',\n 'undeletableLink',\n ],\n segmentUnderLink: ['textColor'],\n code: ['fontFamily', 'display'],\n data: ['dataValue'],\n dataset: ['dataset'],\n divider: [...sharedBlockFormats, ...sharedContainerFormats, 'display', 'size', 'htmlAlign'],\n container: [...sharedContainerFormats, 'htmlAlign', 'size', 'display', 'id'],\n entity: ['entity'],\n general: ['textColor', 'backgroundColor'], // General model still need to do color transformation in dark mode\n};\n\n/**\n * @internal\n */\nexport const defaultFormatParsers: FormatParsers = getObjectKeys(defaultFormatHandlerMap).reduce(\n (result, key) => {\n result[key] = defaultFormatHandlerMap[key].parse as FormatParser<any>;\n return result;\n },\n <FormatParsers>{}\n);\n\n/**\n * @internal\n */\nexport const defaultFormatAppliers: FormatAppliers = getObjectKeys(defaultFormatHandlerMap).reduce(\n (result, key) => {\n result[key] = defaultFormatHandlerMap[key].apply as FormatApplier<any>;\n return result;\n },\n <FormatAppliers>{}\n);\n"]}
@@ -0,0 +1,7 @@
1
+ import type { DataValueFormat } from 'roosterjs-content-model-types';
2
+ import type { FormatHandler } from '../FormatHandler';
3
+ /**
4
+ * @internal
5
+ * Format handler for the "value" attribute of a HTML &lt;data&gt; element
6
+ */
7
+ export declare const dataValueFormatHandler: FormatHandler<DataValueFormat>;
@@ -0,0 +1,23 @@
1
+ define(["require", "exports"], function (require, exports) {
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.dataValueFormatHandler = void 0;
5
+ /**
6
+ * @internal
7
+ * Format handler for the "value" attribute of a HTML &lt;data&gt; element
8
+ */
9
+ exports.dataValueFormatHandler = {
10
+ parse: function (format, element) {
11
+ var _a;
12
+ if (element.hasAttribute('value')) {
13
+ format.dataValue = (_a = element.getAttribute('value')) !== null && _a !== void 0 ? _a : '';
14
+ }
15
+ },
16
+ apply: function (format, element) {
17
+ if (format.dataValue != undefined) {
18
+ element.setAttribute('value', format.dataValue);
19
+ }
20
+ },
21
+ };
22
+ });
23
+ //# sourceMappingURL=dataValueFormatHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataValueFormatHandler.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/formatHandlers/segment/dataValueFormatHandler.ts"],"names":[],"mappings":";;;;IAGA;;;OAGG;IACU,QAAA,sBAAsB,GAAmC;QAClE,KAAK,EAAE,UAAC,MAAM,EAAE,OAAO;;YACnB,IAAI,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;gBAC/B,MAAM,CAAC,SAAS,GAAG,MAAA,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAC;aAC1D;QACL,CAAC;QACD,KAAK,EAAE,UAAC,MAAM,EAAE,OAAO;YACnB,IAAI,MAAM,CAAC,SAAS,IAAI,SAAS,EAAE;gBAC/B,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;aACnD;QACL,CAAC;KACJ,CAAC","sourcesContent":["import type { DataValueFormat } from 'roosterjs-content-model-types';\nimport type { FormatHandler } from '../FormatHandler';\n\n/**\n * @internal\n * Format handler for the \"value\" attribute of a HTML &lt;data&gt; element\n */\nexport const dataValueFormatHandler: FormatHandler<DataValueFormat> = {\n parse: (format, element) => {\n if (element.hasAttribute('value')) {\n format.dataValue = element.getAttribute('value') ?? '';\n }\n },\n apply: (format, element) => {\n if (format.dataValue != undefined) {\n element.setAttribute('value', format.dataValue);\n }\n },\n};\n"]}
@@ -46,6 +46,7 @@ export { createTableRow } from './modelApi/creators/createTableRow';
46
46
  export { mutateBlock, mutateSegments, mutateSegment } from './modelApi/common/mutate';
47
47
  export { addBlock } from './modelApi/common/addBlock';
48
48
  export { addCode } from './modelApi/common/addDecorators';
49
+ export { addData } from './modelApi/common/addDecorators';
49
50
  export { addLink } from './modelApi/common/addDecorators';
50
51
  export { addTextSegment } from './modelApi/common/addTextSegment';
51
52
  export { normalizeParagraph } from './modelApi/common/normalizeParagraph';
package/lib-amd/index.js CHANGED
@@ -1,7 +1,7 @@
1
- define(["require", "exports", "./domToModel/domToContentModel", "./modelToDom/contentModelToDom", "./modelToText/contentModelToText", "./domToModel/processors/childProcessor", "./domToModel/processors/entityProcessor", "./domToModel/processors/tableProcessor", "./domToModel/processors/formatContainerProcessor", "./domToModel/utils/getRegularSelectionOffsets", "./domToModel/utils/parseFormat", "./domToModel/utils/areSameFormats", "./domToModel/utils/isBlockElement", "./domToModel/utils/buildSelectionMarker", "./modelApi/metadata/updateMetadata", "./domUtils/isNodeOfType", "./domUtils/isElementOfType", "./domUtils/getObjectKeys", "./domUtils/getSafeIdSelector", "./domUtils/toArray", "./domUtils/moveChildNodes", "./domUtils/wrap", "./domUtils/unwrap", "./domUtils/entityUtils", "./domUtils/reuseCachedElement", "./domUtils/isWhiteSpacePreserved", "./domUtils/normalizeRect", "./domUtils/scrollRectIntoView", "./domUtils/hiddenProperties/undeletableLink", "./modelApi/creators/createBr", "./modelApi/creators/createListItem", "./modelApi/creators/createFormatContainer", "./modelApi/creators/createParagraph", "./modelApi/creators/createSelectionMarker", "./modelApi/creators/createTable", "./modelApi/creators/createTableCell", "./modelApi/creators/createText", "./modelApi/creators/createImage", "./modelApi/creators/createContentModelDocument", "./modelApi/creators/createParagraphDecorator", "./modelApi/creators/createGeneralSegment", "./modelApi/creators/createGeneralBlock", "./modelApi/creators/createEntity", "./modelApi/creators/createDivider", "./modelApi/creators/createListLevel", "./modelApi/creators/createEmptyModel", "./modelApi/creators/createTableRow", "./modelApi/common/mutate", "./modelApi/common/addBlock", "./modelApi/common/addDecorators", "./modelApi/common/addDecorators", "./modelApi/common/addTextSegment", "./modelApi/common/normalizeParagraph", "./modelApi/common/normalizeContentModel", "./modelApi/typeCheck/isGeneralSegment", "./modelApi/common/unwrapBlock", "./modelApi/common/addSegment", "./modelApi/common/isEmpty", "./modelApi/common/normalizeSegment", "./modelApi/common/mergeTextSegments", "./modelApi/common/normalizeSegmentFormat", "./modelApi/block/setParagraphNotImplicit", "./modelApi/block/copyFormat", "./modelApi/list/getOrderedListNumberStr", "./modelApi/list/getAutoListStyleType", "./formatHandlers/utils/parseValueWithUnit", "./formatHandlers/utils/borderKeys", "./formatHandlers/utils/color", "./domToModel/context/createDomToModelContext", "./modelToDom/context/createModelToDomContext", "./domUtils/style/isBold", "./domUtils/selection/getSelectionRootNode", "./domUtils/selection/getDOMInsertPointRect", "./domUtils/selection/trimModelForSelection", "./domUtils/event/eventUtils", "./domUtils/event/getNodePositionFromEvent", "./domUtils/style/borderValues", "./domUtils/stringUtil", "./domUtils/table/parseTableCells", "./domUtils/readFile", "./domUtils/retrieveDocumentMetadata", "./domUtils/style/transformColor", "./domUtils/style/normalizeFontFamily", "./domUtils/event/extractClipboardItems", "./domUtils/event/cacheGetEventData", "./domUtils/hiddenProperties/paragraphMarker", "./domUtils/hiddenProperties/imageState", "./domUtils/getRangesByText", "./modelApi/typeCheck/isBlockGroupOfType", "./modelApi/selection/iterateSelections", "./modelApi/selection/collectSelections", "./modelApi/selection/getSelectedCells", "./modelApi/selection/hasSelectionInBlock", "./modelApi/selection/hasSelectionInSegment", "./modelApi/selection/hasSelectionInBlockGroup", "./modelApi/selection/setSelection", "./modelApi/editing/cloneModel", "./modelApi/editing/mergeModel", "./modelApi/editing/deleteSelection", "./modelApi/editing/deleteSegment", "./modelApi/editing/deleteBlock", "./modelApi/editing/applyTableFormat", "./modelApi/editing/normalizeTable", "./modelApi/editing/setTableCellBackgroundColor", "./modelApi/editing/retrieveModelFormatState", "./modelApi/editing/getListStyleTypeFromString", "./modelApi/editing/getSegmentTextFormat", "./modelApi/editing/getClosestAncestorBlockGroupIndex", "./modelApi/editing/runEditSteps", "./modelApi/metadata/updateImageMetadata", "./modelApi/metadata/updateTableCellMetadata", "./modelApi/metadata/updateTableMetadata", "./modelApi/metadata/updateListMetadata", "./constants/ChangeSource", "./constants/BulletListType", "./constants/NumberingListType", "./constants/TableBorderFormat", "./constants/OrderedListStyleMap", "./constants/UnorderedListStyleMap", "./constants/EmptySegmentFormat"], function (require, exports, domToContentModel_1, contentModelToDom_1, contentModelToText_1, childProcessor_1, entityProcessor_1, tableProcessor_1, formatContainerProcessor_1, getRegularSelectionOffsets_1, parseFormat_1, areSameFormats_1, isBlockElement_1, buildSelectionMarker_1, updateMetadata_1, isNodeOfType_1, isElementOfType_1, getObjectKeys_1, getSafeIdSelector_1, toArray_1, moveChildNodes_1, wrap_1, unwrap_1, entityUtils_1, reuseCachedElement_1, isWhiteSpacePreserved_1, normalizeRect_1, scrollRectIntoView_1, undeletableLink_1, createBr_1, createListItem_1, createFormatContainer_1, createParagraph_1, createSelectionMarker_1, createTable_1, createTableCell_1, createText_1, createImage_1, createContentModelDocument_1, createParagraphDecorator_1, createGeneralSegment_1, createGeneralBlock_1, createEntity_1, createDivider_1, createListLevel_1, createEmptyModel_1, createTableRow_1, mutate_1, addBlock_1, addDecorators_1, addDecorators_2, addTextSegment_1, normalizeParagraph_1, normalizeContentModel_1, isGeneralSegment_1, unwrapBlock_1, addSegment_1, isEmpty_1, normalizeSegment_1, mergeTextSegments_1, normalizeSegmentFormat_1, setParagraphNotImplicit_1, copyFormat_1, getOrderedListNumberStr_1, getAutoListStyleType_1, parseValueWithUnit_1, borderKeys_1, color_1, createDomToModelContext_1, createModelToDomContext_1, isBold_1, getSelectionRootNode_1, getDOMInsertPointRect_1, trimModelForSelection_1, eventUtils_1, getNodePositionFromEvent_1, borderValues_1, stringUtil_1, parseTableCells_1, readFile_1, retrieveDocumentMetadata_1, transformColor_1, normalizeFontFamily_1, extractClipboardItems_1, cacheGetEventData_1, paragraphMarker_1, imageState_1, getRangesByText_1, isBlockGroupOfType_1, iterateSelections_1, collectSelections_1, getSelectedCells_1, hasSelectionInBlock_1, hasSelectionInSegment_1, hasSelectionInBlockGroup_1, setSelection_1, cloneModel_1, mergeModel_1, deleteSelection_1, deleteSegment_1, deleteBlock_1, applyTableFormat_1, normalizeTable_1, setTableCellBackgroundColor_1, retrieveModelFormatState_1, getListStyleTypeFromString_1, getSegmentTextFormat_1, getClosestAncestorBlockGroupIndex_1, runEditSteps_1, updateImageMetadata_1, updateTableCellMetadata_1, updateTableMetadata_1, updateListMetadata_1, ChangeSource_1, BulletListType_1, NumberingListType_1, TableBorderFormat_1, OrderedListStyleMap_1, UnorderedListStyleMap_1, EmptySegmentFormat_1) {
1
+ define(["require", "exports", "./domToModel/domToContentModel", "./modelToDom/contentModelToDom", "./modelToText/contentModelToText", "./domToModel/processors/childProcessor", "./domToModel/processors/entityProcessor", "./domToModel/processors/tableProcessor", "./domToModel/processors/formatContainerProcessor", "./domToModel/utils/getRegularSelectionOffsets", "./domToModel/utils/parseFormat", "./domToModel/utils/areSameFormats", "./domToModel/utils/isBlockElement", "./domToModel/utils/buildSelectionMarker", "./modelApi/metadata/updateMetadata", "./domUtils/isNodeOfType", "./domUtils/isElementOfType", "./domUtils/getObjectKeys", "./domUtils/getSafeIdSelector", "./domUtils/toArray", "./domUtils/moveChildNodes", "./domUtils/wrap", "./domUtils/unwrap", "./domUtils/entityUtils", "./domUtils/reuseCachedElement", "./domUtils/isWhiteSpacePreserved", "./domUtils/normalizeRect", "./domUtils/scrollRectIntoView", "./domUtils/hiddenProperties/undeletableLink", "./modelApi/creators/createBr", "./modelApi/creators/createListItem", "./modelApi/creators/createFormatContainer", "./modelApi/creators/createParagraph", "./modelApi/creators/createSelectionMarker", "./modelApi/creators/createTable", "./modelApi/creators/createTableCell", "./modelApi/creators/createText", "./modelApi/creators/createImage", "./modelApi/creators/createContentModelDocument", "./modelApi/creators/createParagraphDecorator", "./modelApi/creators/createGeneralSegment", "./modelApi/creators/createGeneralBlock", "./modelApi/creators/createEntity", "./modelApi/creators/createDivider", "./modelApi/creators/createListLevel", "./modelApi/creators/createEmptyModel", "./modelApi/creators/createTableRow", "./modelApi/common/mutate", "./modelApi/common/addBlock", "./modelApi/common/addDecorators", "./modelApi/common/addDecorators", "./modelApi/common/addDecorators", "./modelApi/common/addTextSegment", "./modelApi/common/normalizeParagraph", "./modelApi/common/normalizeContentModel", "./modelApi/typeCheck/isGeneralSegment", "./modelApi/common/unwrapBlock", "./modelApi/common/addSegment", "./modelApi/common/isEmpty", "./modelApi/common/normalizeSegment", "./modelApi/common/mergeTextSegments", "./modelApi/common/normalizeSegmentFormat", "./modelApi/block/setParagraphNotImplicit", "./modelApi/block/copyFormat", "./modelApi/list/getOrderedListNumberStr", "./modelApi/list/getAutoListStyleType", "./formatHandlers/utils/parseValueWithUnit", "./formatHandlers/utils/borderKeys", "./formatHandlers/utils/color", "./domToModel/context/createDomToModelContext", "./modelToDom/context/createModelToDomContext", "./domUtils/style/isBold", "./domUtils/selection/getSelectionRootNode", "./domUtils/selection/getDOMInsertPointRect", "./domUtils/selection/trimModelForSelection", "./domUtils/event/eventUtils", "./domUtils/event/getNodePositionFromEvent", "./domUtils/style/borderValues", "./domUtils/stringUtil", "./domUtils/table/parseTableCells", "./domUtils/readFile", "./domUtils/retrieveDocumentMetadata", "./domUtils/style/transformColor", "./domUtils/style/normalizeFontFamily", "./domUtils/event/extractClipboardItems", "./domUtils/event/cacheGetEventData", "./domUtils/hiddenProperties/paragraphMarker", "./domUtils/hiddenProperties/imageState", "./domUtils/getRangesByText", "./modelApi/typeCheck/isBlockGroupOfType", "./modelApi/selection/iterateSelections", "./modelApi/selection/collectSelections", "./modelApi/selection/getSelectedCells", "./modelApi/selection/hasSelectionInBlock", "./modelApi/selection/hasSelectionInSegment", "./modelApi/selection/hasSelectionInBlockGroup", "./modelApi/selection/setSelection", "./modelApi/editing/cloneModel", "./modelApi/editing/mergeModel", "./modelApi/editing/deleteSelection", "./modelApi/editing/deleteSegment", "./modelApi/editing/deleteBlock", "./modelApi/editing/applyTableFormat", "./modelApi/editing/normalizeTable", "./modelApi/editing/setTableCellBackgroundColor", "./modelApi/editing/retrieveModelFormatState", "./modelApi/editing/getListStyleTypeFromString", "./modelApi/editing/getSegmentTextFormat", "./modelApi/editing/getClosestAncestorBlockGroupIndex", "./modelApi/editing/runEditSteps", "./modelApi/metadata/updateImageMetadata", "./modelApi/metadata/updateTableCellMetadata", "./modelApi/metadata/updateTableMetadata", "./modelApi/metadata/updateListMetadata", "./constants/ChangeSource", "./constants/BulletListType", "./constants/NumberingListType", "./constants/TableBorderFormat", "./constants/OrderedListStyleMap", "./constants/UnorderedListStyleMap", "./constants/EmptySegmentFormat"], function (require, exports, domToContentModel_1, contentModelToDom_1, contentModelToText_1, childProcessor_1, entityProcessor_1, tableProcessor_1, formatContainerProcessor_1, getRegularSelectionOffsets_1, parseFormat_1, areSameFormats_1, isBlockElement_1, buildSelectionMarker_1, updateMetadata_1, isNodeOfType_1, isElementOfType_1, getObjectKeys_1, getSafeIdSelector_1, toArray_1, moveChildNodes_1, wrap_1, unwrap_1, entityUtils_1, reuseCachedElement_1, isWhiteSpacePreserved_1, normalizeRect_1, scrollRectIntoView_1, undeletableLink_1, createBr_1, createListItem_1, createFormatContainer_1, createParagraph_1, createSelectionMarker_1, createTable_1, createTableCell_1, createText_1, createImage_1, createContentModelDocument_1, createParagraphDecorator_1, createGeneralSegment_1, createGeneralBlock_1, createEntity_1, createDivider_1, createListLevel_1, createEmptyModel_1, createTableRow_1, mutate_1, addBlock_1, addDecorators_1, addDecorators_2, addDecorators_3, addTextSegment_1, normalizeParagraph_1, normalizeContentModel_1, isGeneralSegment_1, unwrapBlock_1, addSegment_1, isEmpty_1, normalizeSegment_1, mergeTextSegments_1, normalizeSegmentFormat_1, setParagraphNotImplicit_1, copyFormat_1, getOrderedListNumberStr_1, getAutoListStyleType_1, parseValueWithUnit_1, borderKeys_1, color_1, createDomToModelContext_1, createModelToDomContext_1, isBold_1, getSelectionRootNode_1, getDOMInsertPointRect_1, trimModelForSelection_1, eventUtils_1, getNodePositionFromEvent_1, borderValues_1, stringUtil_1, parseTableCells_1, readFile_1, retrieveDocumentMetadata_1, transformColor_1, normalizeFontFamily_1, extractClipboardItems_1, cacheGetEventData_1, paragraphMarker_1, imageState_1, getRangesByText_1, isBlockGroupOfType_1, iterateSelections_1, collectSelections_1, getSelectedCells_1, hasSelectionInBlock_1, hasSelectionInSegment_1, hasSelectionInBlockGroup_1, setSelection_1, cloneModel_1, mergeModel_1, deleteSelection_1, deleteSegment_1, deleteBlock_1, applyTableFormat_1, normalizeTable_1, setTableCellBackgroundColor_1, retrieveModelFormatState_1, getListStyleTypeFromString_1, getSegmentTextFormat_1, getClosestAncestorBlockGroupIndex_1, runEditSteps_1, updateImageMetadata_1, updateTableCellMetadata_1, updateTableMetadata_1, updateListMetadata_1, ChangeSource_1, BulletListType_1, NumberingListType_1, TableBorderFormat_1, OrderedListStyleMap_1, UnorderedListStyleMap_1, EmptySegmentFormat_1) {
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- 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.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 = 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 = 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;
4
+ 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.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 = 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 = 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;
5
5
  Object.defineProperty(exports, "domToContentModel", { enumerable: true, get: function () { return domToContentModel_1.domToContentModel; } });
6
6
  Object.defineProperty(exports, "contentModelToDom", { enumerable: true, get: function () { return contentModelToDom_1.contentModelToDom; } });
7
7
  Object.defineProperty(exports, "contentModelToText", { enumerable: true, get: function () { return contentModelToText_1.contentModelToText; } });
@@ -66,7 +66,8 @@ define(["require", "exports", "./domToModel/domToContentModel", "./modelToDom/co
66
66
  Object.defineProperty(exports, "mutateSegment", { enumerable: true, get: function () { return mutate_1.mutateSegment; } });
67
67
  Object.defineProperty(exports, "addBlock", { enumerable: true, get: function () { return addBlock_1.addBlock; } });
68
68
  Object.defineProperty(exports, "addCode", { enumerable: true, get: function () { return addDecorators_1.addCode; } });
69
- Object.defineProperty(exports, "addLink", { enumerable: true, get: function () { return addDecorators_2.addLink; } });
69
+ Object.defineProperty(exports, "addData", { enumerable: true, get: function () { return addDecorators_2.addData; } });
70
+ Object.defineProperty(exports, "addLink", { enumerable: true, get: function () { return addDecorators_3.addLink; } });
70
71
  Object.defineProperty(exports, "addTextSegment", { enumerable: true, get: function () { return addTextSegment_1.addTextSegment; } });
71
72
  Object.defineProperty(exports, "normalizeParagraph", { enumerable: true, get: function () { return normalizeParagraph_1.normalizeParagraph; } });
72
73
  Object.defineProperty(exports, "normalizeContentModel", { enumerable: true, get: function () { return normalizeContentModel_1.normalizeContentModel; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/roosterjs-content-model-dom/lib/index.ts"],"names":[],"mappings":"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","sourcesContent":["export { domToContentModel } from './domToModel/domToContentModel';\nexport { contentModelToDom } from './modelToDom/contentModelToDom';\nexport { contentModelToText } from './modelToText/contentModelToText';\n\nexport {\n childProcessor,\n handleRegularSelection,\n processChildNode,\n} from './domToModel/processors/childProcessor';\nexport { entityProcessor } from './domToModel/processors/entityProcessor';\nexport { tableProcessor } from './domToModel/processors/tableProcessor';\nexport { formatContainerProcessor } from './domToModel/processors/formatContainerProcessor';\nexport { getRegularSelectionOffsets } from './domToModel/utils/getRegularSelectionOffsets';\nexport { parseFormat } from './domToModel/utils/parseFormat';\nexport { areSameFormats } from './domToModel/utils/areSameFormats';\nexport { isBlockElement } from './domToModel/utils/isBlockElement';\nexport { buildSelectionMarker } from './domToModel/utils/buildSelectionMarker';\n\nexport { updateMetadata, getMetadata, hasMetadata } from './modelApi/metadata/updateMetadata';\nexport { isNodeOfType } from './domUtils/isNodeOfType';\nexport { isElementOfType } from './domUtils/isElementOfType';\nexport { getObjectKeys } from './domUtils/getObjectKeys';\nexport { getSafeIdSelector } from './domUtils/getSafeIdSelector';\nexport { toArray } from './domUtils/toArray';\nexport { moveChildNodes, wrapAllChildNodes } from './domUtils/moveChildNodes';\nexport { wrap } from './domUtils/wrap';\nexport { unwrap } from './domUtils/unwrap';\nexport {\n isEntityElement,\n findClosestEntityWrapper,\n getAllEntityWrappers,\n parseEntityFormat,\n generateEntityClassNames,\n addDelimiters,\n isEntityDelimiter,\n isBlockEntityContainer,\n findClosestBlockEntityContainer,\n} from './domUtils/entityUtils';\nexport { reuseCachedElement } from './domUtils/reuseCachedElement';\nexport { isWhiteSpacePreserved } from './domUtils/isWhiteSpacePreserved';\nexport { normalizeRect } from './domUtils/normalizeRect';\nexport { scrollRectIntoView } from './domUtils/scrollRectIntoView';\n\nexport { setLinkUndeletable, isLinkUndeletable } from './domUtils/hiddenProperties/undeletableLink';\n\nexport { createBr } from './modelApi/creators/createBr';\nexport { createListItem } from './modelApi/creators/createListItem';\nexport { createFormatContainer } from './modelApi/creators/createFormatContainer';\nexport { createParagraph } from './modelApi/creators/createParagraph';\nexport { createSelectionMarker } from './modelApi/creators/createSelectionMarker';\nexport { createTable } from './modelApi/creators/createTable';\nexport { createTableCell } from './modelApi/creators/createTableCell';\nexport { createText } from './modelApi/creators/createText';\nexport { createImage } from './modelApi/creators/createImage';\nexport { createContentModelDocument } from './modelApi/creators/createContentModelDocument';\nexport { createParagraphDecorator } from './modelApi/creators/createParagraphDecorator';\nexport { createGeneralSegment } from './modelApi/creators/createGeneralSegment';\nexport { createGeneralBlock } from './modelApi/creators/createGeneralBlock';\nexport { createEntity } from './modelApi/creators/createEntity';\nexport { createDivider } from './modelApi/creators/createDivider';\nexport { createListLevel } from './modelApi/creators/createListLevel';\nexport { createEmptyModel } from './modelApi/creators/createEmptyModel';\nexport { createTableRow } from './modelApi/creators/createTableRow';\n\nexport { mutateBlock, mutateSegments, mutateSegment } from './modelApi/common/mutate';\nexport { addBlock } from './modelApi/common/addBlock';\nexport { addCode } from './modelApi/common/addDecorators';\nexport { addLink } from './modelApi/common/addDecorators';\nexport { addTextSegment } from './modelApi/common/addTextSegment';\nexport { normalizeParagraph } from './modelApi/common/normalizeParagraph';\n\nexport { normalizeContentModel } from './modelApi/common/normalizeContentModel';\nexport { isGeneralSegment } from './modelApi/typeCheck/isGeneralSegment';\nexport { unwrapBlock } from './modelApi/common/unwrapBlock';\nexport { addSegment } from './modelApi/common/addSegment';\nexport { isEmpty } from './modelApi/common/isEmpty';\nexport { normalizeSingleSegment } from './modelApi/common/normalizeSegment';\nexport { mergeTextSegments } from './modelApi/common/mergeTextSegments';\nexport { normalizeSegmentFormat } from './modelApi/common/normalizeSegmentFormat';\n\nexport { setParagraphNotImplicit } from './modelApi/block/setParagraphNotImplicit';\nexport {\n copyFormat,\n ListFormats,\n ListFormatsToKeep,\n ListFormatsToMove,\n ParagraphFormats,\n} from './modelApi/block/copyFormat';\nexport { getOrderedListNumberStr } from './modelApi/list/getOrderedListNumberStr';\nexport { getAutoListStyleType } from './modelApi/list/getAutoListStyleType';\n\nexport { parseValueWithUnit } from './formatHandlers/utils/parseValueWithUnit';\nexport { BorderKeys } from './formatHandlers/utils/borderKeys';\nexport {\n DeprecatedColors,\n getColor,\n setColor,\n parseColor,\n defaultGenerateColorKey,\n} from './formatHandlers/utils/color';\n\nexport {\n createDomToModelContext,\n createDomToModelContextWithConfig,\n createDomToModelConfig,\n} from './domToModel/context/createDomToModelContext';\nexport {\n createModelToDomContext,\n createModelToDomContextWithConfig,\n createModelToDomConfig,\n} from './modelToDom/context/createModelToDomContext';\n\nexport { isBold } from './domUtils/style/isBold';\nexport { getSelectionRootNode } from './domUtils/selection/getSelectionRootNode';\nexport { getDOMInsertPointRect } from './domUtils/selection/getDOMInsertPointRect';\nexport { trimModelForSelection } from './domUtils/selection/trimModelForSelection';\nexport { isCharacterValue, isModifierKey, isCursorMovingKey } from './domUtils/event/eventUtils';\nexport { getNodePositionFromEvent } from './domUtils/event/getNodePositionFromEvent';\nexport { combineBorderValue, extractBorderValues } from './domUtils/style/borderValues';\nexport { isPunctuation, isSpace, normalizeText } from './domUtils/stringUtil';\nexport { parseTableCells } from './domUtils/table/parseTableCells';\nexport { readFile } from './domUtils/readFile';\nexport { retrieveDocumentMetadata } from './domUtils/retrieveDocumentMetadata';\nexport { transformColor, TransformColorOptions } from './domUtils/style/transformColor';\nexport { normalizeFontFamily } from './domUtils/style/normalizeFontFamily';\nexport { extractClipboardItems } from './domUtils/event/extractClipboardItems';\nexport { cacheGetEventData } from './domUtils/event/cacheGetEventData';\nexport {\n setParagraphMarker,\n getParagraphMarker,\n} from './domUtils/hiddenProperties/paragraphMarker';\nexport { setImageState, getImageState } from './domUtils/hiddenProperties/imageState';\nexport { getRangesByText } from './domUtils/getRangesByText';\n\nexport { isBlockGroupOfType } from './modelApi/typeCheck/isBlockGroupOfType';\n\nexport { iterateSelections } from './modelApi/selection/iterateSelections';\nexport {\n getFirstSelectedListItem,\n getFirstSelectedTable,\n getOperationalBlocks,\n getSelectedParagraphs,\n getSelectedSegments,\n getSelectedSegmentsAndParagraphs,\n} from './modelApi/selection/collectSelections';\nexport { getSelectedCells } from './modelApi/selection/getSelectedCells';\nexport { hasSelectionInBlock } from './modelApi/selection/hasSelectionInBlock';\nexport { hasSelectionInSegment } from './modelApi/selection/hasSelectionInSegment';\nexport { hasSelectionInBlockGroup } from './modelApi/selection/hasSelectionInBlockGroup';\nexport { setSelection } from './modelApi/selection/setSelection';\n\nexport { cloneModel, cloneModelForPaste } from './modelApi/editing/cloneModel';\nexport { mergeModel } from './modelApi/editing/mergeModel';\nexport { deleteSelection } from './modelApi/editing/deleteSelection';\nexport { deleteSegment } from './modelApi/editing/deleteSegment';\nexport { deleteBlock } from './modelApi/editing/deleteBlock';\nexport { applyTableFormat, setFirstColumnFormatBorders } from './modelApi/editing/applyTableFormat';\nexport {\n normalizeTable,\n MIN_ALLOWED_TABLE_CELL_WIDTH,\n MIN_ALLOWED_TABLE_CELL_HEIGHT,\n} from './modelApi/editing/normalizeTable';\nexport { setTableCellBackgroundColor } from './modelApi/editing/setTableCellBackgroundColor';\nexport { retrieveModelFormatState } from './modelApi/editing/retrieveModelFormatState';\nexport { getListStyleTypeFromString } from './modelApi/editing/getListStyleTypeFromString';\nexport { getSegmentTextFormat } from './modelApi/editing/getSegmentTextFormat';\nexport { getClosestAncestorBlockGroupIndex } from './modelApi/editing/getClosestAncestorBlockGroupIndex';\nexport { runEditSteps } from './modelApi/editing/runEditSteps';\n\nexport { updateImageMetadata, getImageMetadata } from './modelApi/metadata/updateImageMetadata';\nexport {\n updateTableCellMetadata,\n getTableCellMetadata,\n} from './modelApi/metadata/updateTableCellMetadata';\nexport { updateTableMetadata, getTableMetadata } from './modelApi/metadata/updateTableMetadata';\nexport {\n updateListMetadata,\n getListMetadata,\n ListMetadataDefinition,\n} from './modelApi/metadata/updateListMetadata';\n\nexport { ChangeSource } from './constants/ChangeSource';\nexport { BulletListType } from './constants/BulletListType';\nexport { NumberingListType } from './constants/NumberingListType';\nexport { TableBorderFormat } from './constants/TableBorderFormat';\nexport { OrderedListStyleMap } from './constants/OrderedListStyleMap';\nexport { UnorderedListStyleMap } from './constants/UnorderedListStyleMap';\nexport { EmptySegmentFormat } from './constants/EmptySegmentFormat';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/roosterjs-content-model-dom/lib/index.ts"],"names":[],"mappings":"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","sourcesContent":["export { domToContentModel } from './domToModel/domToContentModel';\nexport { contentModelToDom } from './modelToDom/contentModelToDom';\nexport { contentModelToText } from './modelToText/contentModelToText';\n\nexport {\n childProcessor,\n handleRegularSelection,\n processChildNode,\n} from './domToModel/processors/childProcessor';\nexport { entityProcessor } from './domToModel/processors/entityProcessor';\nexport { tableProcessor } from './domToModel/processors/tableProcessor';\nexport { formatContainerProcessor } from './domToModel/processors/formatContainerProcessor';\nexport { getRegularSelectionOffsets } from './domToModel/utils/getRegularSelectionOffsets';\nexport { parseFormat } from './domToModel/utils/parseFormat';\nexport { areSameFormats } from './domToModel/utils/areSameFormats';\nexport { isBlockElement } from './domToModel/utils/isBlockElement';\nexport { buildSelectionMarker } from './domToModel/utils/buildSelectionMarker';\n\nexport { updateMetadata, getMetadata, hasMetadata } from './modelApi/metadata/updateMetadata';\nexport { isNodeOfType } from './domUtils/isNodeOfType';\nexport { isElementOfType } from './domUtils/isElementOfType';\nexport { getObjectKeys } from './domUtils/getObjectKeys';\nexport { getSafeIdSelector } from './domUtils/getSafeIdSelector';\nexport { toArray } from './domUtils/toArray';\nexport { moveChildNodes, wrapAllChildNodes } from './domUtils/moveChildNodes';\nexport { wrap } from './domUtils/wrap';\nexport { unwrap } from './domUtils/unwrap';\nexport {\n isEntityElement,\n findClosestEntityWrapper,\n getAllEntityWrappers,\n parseEntityFormat,\n generateEntityClassNames,\n addDelimiters,\n isEntityDelimiter,\n isBlockEntityContainer,\n findClosestBlockEntityContainer,\n} from './domUtils/entityUtils';\nexport { reuseCachedElement } from './domUtils/reuseCachedElement';\nexport { isWhiteSpacePreserved } from './domUtils/isWhiteSpacePreserved';\nexport { normalizeRect } from './domUtils/normalizeRect';\nexport { scrollRectIntoView } from './domUtils/scrollRectIntoView';\n\nexport { setLinkUndeletable, isLinkUndeletable } from './domUtils/hiddenProperties/undeletableLink';\n\nexport { createBr } from './modelApi/creators/createBr';\nexport { createListItem } from './modelApi/creators/createListItem';\nexport { createFormatContainer } from './modelApi/creators/createFormatContainer';\nexport { createParagraph } from './modelApi/creators/createParagraph';\nexport { createSelectionMarker } from './modelApi/creators/createSelectionMarker';\nexport { createTable } from './modelApi/creators/createTable';\nexport { createTableCell } from './modelApi/creators/createTableCell';\nexport { createText } from './modelApi/creators/createText';\nexport { createImage } from './modelApi/creators/createImage';\nexport { createContentModelDocument } from './modelApi/creators/createContentModelDocument';\nexport { createParagraphDecorator } from './modelApi/creators/createParagraphDecorator';\nexport { createGeneralSegment } from './modelApi/creators/createGeneralSegment';\nexport { createGeneralBlock } from './modelApi/creators/createGeneralBlock';\nexport { createEntity } from './modelApi/creators/createEntity';\nexport { createDivider } from './modelApi/creators/createDivider';\nexport { createListLevel } from './modelApi/creators/createListLevel';\nexport { createEmptyModel } from './modelApi/creators/createEmptyModel';\nexport { createTableRow } from './modelApi/creators/createTableRow';\n\nexport { mutateBlock, mutateSegments, mutateSegment } from './modelApi/common/mutate';\nexport { addBlock } from './modelApi/common/addBlock';\nexport { addCode } from './modelApi/common/addDecorators';\nexport { addData } from './modelApi/common/addDecorators';\nexport { addLink } from './modelApi/common/addDecorators';\nexport { addTextSegment } from './modelApi/common/addTextSegment';\nexport { normalizeParagraph } from './modelApi/common/normalizeParagraph';\n\nexport { normalizeContentModel } from './modelApi/common/normalizeContentModel';\nexport { isGeneralSegment } from './modelApi/typeCheck/isGeneralSegment';\nexport { unwrapBlock } from './modelApi/common/unwrapBlock';\nexport { addSegment } from './modelApi/common/addSegment';\nexport { isEmpty } from './modelApi/common/isEmpty';\nexport { normalizeSingleSegment } from './modelApi/common/normalizeSegment';\nexport { mergeTextSegments } from './modelApi/common/mergeTextSegments';\nexport { normalizeSegmentFormat } from './modelApi/common/normalizeSegmentFormat';\n\nexport { setParagraphNotImplicit } from './modelApi/block/setParagraphNotImplicit';\nexport {\n copyFormat,\n ListFormats,\n ListFormatsToKeep,\n ListFormatsToMove,\n ParagraphFormats,\n} from './modelApi/block/copyFormat';\nexport { getOrderedListNumberStr } from './modelApi/list/getOrderedListNumberStr';\nexport { getAutoListStyleType } from './modelApi/list/getAutoListStyleType';\n\nexport { parseValueWithUnit } from './formatHandlers/utils/parseValueWithUnit';\nexport { BorderKeys } from './formatHandlers/utils/borderKeys';\nexport {\n DeprecatedColors,\n getColor,\n setColor,\n parseColor,\n defaultGenerateColorKey,\n} from './formatHandlers/utils/color';\n\nexport {\n createDomToModelContext,\n createDomToModelContextWithConfig,\n createDomToModelConfig,\n} from './domToModel/context/createDomToModelContext';\nexport {\n createModelToDomContext,\n createModelToDomContextWithConfig,\n createModelToDomConfig,\n} from './modelToDom/context/createModelToDomContext';\n\nexport { isBold } from './domUtils/style/isBold';\nexport { getSelectionRootNode } from './domUtils/selection/getSelectionRootNode';\nexport { getDOMInsertPointRect } from './domUtils/selection/getDOMInsertPointRect';\nexport { trimModelForSelection } from './domUtils/selection/trimModelForSelection';\nexport { isCharacterValue, isModifierKey, isCursorMovingKey } from './domUtils/event/eventUtils';\nexport { getNodePositionFromEvent } from './domUtils/event/getNodePositionFromEvent';\nexport { combineBorderValue, extractBorderValues } from './domUtils/style/borderValues';\nexport { isPunctuation, isSpace, normalizeText } from './domUtils/stringUtil';\nexport { parseTableCells } from './domUtils/table/parseTableCells';\nexport { readFile } from './domUtils/readFile';\nexport { retrieveDocumentMetadata } from './domUtils/retrieveDocumentMetadata';\nexport { transformColor, TransformColorOptions } from './domUtils/style/transformColor';\nexport { normalizeFontFamily } from './domUtils/style/normalizeFontFamily';\nexport { extractClipboardItems } from './domUtils/event/extractClipboardItems';\nexport { cacheGetEventData } from './domUtils/event/cacheGetEventData';\nexport {\n setParagraphMarker,\n getParagraphMarker,\n} from './domUtils/hiddenProperties/paragraphMarker';\nexport { setImageState, getImageState } from './domUtils/hiddenProperties/imageState';\nexport { getRangesByText } from './domUtils/getRangesByText';\n\nexport { isBlockGroupOfType } from './modelApi/typeCheck/isBlockGroupOfType';\n\nexport { iterateSelections } from './modelApi/selection/iterateSelections';\nexport {\n getFirstSelectedListItem,\n getFirstSelectedTable,\n getOperationalBlocks,\n getSelectedParagraphs,\n getSelectedSegments,\n getSelectedSegmentsAndParagraphs,\n} from './modelApi/selection/collectSelections';\nexport { getSelectedCells } from './modelApi/selection/getSelectedCells';\nexport { hasSelectionInBlock } from './modelApi/selection/hasSelectionInBlock';\nexport { hasSelectionInSegment } from './modelApi/selection/hasSelectionInSegment';\nexport { hasSelectionInBlockGroup } from './modelApi/selection/hasSelectionInBlockGroup';\nexport { setSelection } from './modelApi/selection/setSelection';\n\nexport { cloneModel, cloneModelForPaste } from './modelApi/editing/cloneModel';\nexport { mergeModel } from './modelApi/editing/mergeModel';\nexport { deleteSelection } from './modelApi/editing/deleteSelection';\nexport { deleteSegment } from './modelApi/editing/deleteSegment';\nexport { deleteBlock } from './modelApi/editing/deleteBlock';\nexport { applyTableFormat, setFirstColumnFormatBorders } from './modelApi/editing/applyTableFormat';\nexport {\n normalizeTable,\n MIN_ALLOWED_TABLE_CELL_WIDTH,\n MIN_ALLOWED_TABLE_CELL_HEIGHT,\n} from './modelApi/editing/normalizeTable';\nexport { setTableCellBackgroundColor } from './modelApi/editing/setTableCellBackgroundColor';\nexport { retrieveModelFormatState } from './modelApi/editing/retrieveModelFormatState';\nexport { getListStyleTypeFromString } from './modelApi/editing/getListStyleTypeFromString';\nexport { getSegmentTextFormat } from './modelApi/editing/getSegmentTextFormat';\nexport { getClosestAncestorBlockGroupIndex } from './modelApi/editing/getClosestAncestorBlockGroupIndex';\nexport { runEditSteps } from './modelApi/editing/runEditSteps';\n\nexport { updateImageMetadata, getImageMetadata } from './modelApi/metadata/updateImageMetadata';\nexport {\n updateTableCellMetadata,\n getTableCellMetadata,\n} from './modelApi/metadata/updateTableCellMetadata';\nexport { updateTableMetadata, getTableMetadata } from './modelApi/metadata/updateTableMetadata';\nexport {\n updateListMetadata,\n getListMetadata,\n ListMetadataDefinition,\n} from './modelApi/metadata/updateListMetadata';\n\nexport { ChangeSource } from './constants/ChangeSource';\nexport { BulletListType } from './constants/BulletListType';\nexport { NumberingListType } from './constants/NumberingListType';\nexport { TableBorderFormat } from './constants/TableBorderFormat';\nexport { OrderedListStyleMap } from './constants/OrderedListStyleMap';\nexport { UnorderedListStyleMap } from './constants/UnorderedListStyleMap';\nexport { EmptySegmentFormat } from './constants/EmptySegmentFormat';\n"]}
@@ -1,4 +1,4 @@
1
- import type { DomToModelDecoratorContext, ReadonlyContentModelCode, ReadonlyContentModelLink, ShallowMutableContentModelSegment } from 'roosterjs-content-model-types';
1
+ import type { DomToModelDecoratorContext, ReadonlyContentModelCode, ReadonlyContentModelData, ReadonlyContentModelLink, ShallowMutableContentModelSegment } from 'roosterjs-content-model-types';
2
2
  /**
3
3
  * @internal
4
4
  */
@@ -9,6 +9,13 @@ export declare function addLink(segment: ShallowMutableContentModelSegment, link
9
9
  * @param code The code decorator to add
10
10
  */
11
11
  export declare function addCode(segment: ShallowMutableContentModelSegment, code: ReadonlyContentModelCode): void;
12
+ /**
13
+ * @internal
14
+ * Add a data decorator into segment if any
15
+ * @param segment The segment to add decorator to
16
+ * @param data The data decorator to add
17
+ */
18
+ export declare function addData(segment: ShallowMutableContentModelSegment, data: ReadonlyContentModelData): void;
12
19
  /**
13
20
  * @internal
14
21
  */
@@ -1,7 +1,7 @@
1
1
  define(["require", "exports", "tslib"], function (require, exports, tslib_1) {
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.addDecorators = exports.addCode = exports.addLink = void 0;
4
+ exports.addDecorators = exports.addData = exports.addCode = exports.addLink = void 0;
5
5
  /**
6
6
  * @internal
7
7
  */
@@ -27,12 +27,27 @@ define(["require", "exports", "tslib"], function (require, exports, tslib_1) {
27
27
  }
28
28
  }
29
29
  exports.addCode = addCode;
30
+ /**
31
+ * @internal
32
+ * Add a data decorator into segment if any
33
+ * @param segment The segment to add decorator to
34
+ * @param data The data decorator to add
35
+ */
36
+ function addData(segment, data) {
37
+ if (data.format.dataValue != undefined) {
38
+ segment.data = {
39
+ format: (0, tslib_1.__assign)({}, data.format),
40
+ };
41
+ }
42
+ }
43
+ exports.addData = addData;
30
44
  /**
31
45
  * @internal
32
46
  */
33
47
  function addDecorators(segment, context) {
34
48
  addLink(segment, context.link);
35
49
  addCode(segment, context.code);
50
+ addData(segment, context.data);
36
51
  }
37
52
  exports.addDecorators = addDecorators;
38
53
  });
@@ -1 +1 @@
1
- {"version":3,"file":"addDecorators.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelApi/common/addDecorators.ts"],"names":[],"mappings":";;;;IAOA;;OAEG;IACH,SAAgB,OAAO,CACnB,OAA0C,EAC1C,IAA8B;QAE9B,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACtC,OAAO,CAAC,IAAI,GAAG;gBACX,MAAM,4BAAO,IAAI,CAAC,MAAM,CAAE;gBAC1B,OAAO,4BAAO,IAAI,CAAC,OAAO,CAAE;aAC/B,CAAC;SACL;IACL,CAAC;IAVD,0BAUC;IAED;;;;OAIG;IACH,SAAgB,OAAO,CACnB,OAA0C,EAC1C,IAA8B;QAE9B,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YACxB,OAAO,CAAC,IAAI,GAAG;gBACX,MAAM,4BAAO,IAAI,CAAC,MAAM,CAAE;aAC7B,CAAC;SACL;IACL,CAAC;IATD,0BASC;IAED;;OAEG;IACH,SAAgB,aAAa,CACzB,OAA0C,EAC1C,OAAmC;QAEnC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAND,sCAMC","sourcesContent":["import type {\n DomToModelDecoratorContext,\n ReadonlyContentModelCode,\n ReadonlyContentModelLink,\n ShallowMutableContentModelSegment,\n} from 'roosterjs-content-model-types';\n\n/**\n * @internal\n */\nexport function addLink(\n segment: ShallowMutableContentModelSegment,\n link: ReadonlyContentModelLink\n) {\n if (link.format.href || link.format.name) {\n segment.link = {\n format: { ...link.format },\n dataset: { ...link.dataset },\n };\n }\n}\n\n/**\n * Add a code decorator into segment if any\n * @param segment The segment to add decorator to\n * @param code The code decorator to add\n */\nexport function addCode(\n segment: ShallowMutableContentModelSegment,\n code: ReadonlyContentModelCode\n) {\n if (code.format.fontFamily) {\n segment.code = {\n format: { ...code.format },\n };\n }\n}\n\n/**\n * @internal\n */\nexport function addDecorators(\n segment: ShallowMutableContentModelSegment,\n context: DomToModelDecoratorContext\n) {\n addLink(segment, context.link);\n addCode(segment, context.code);\n}\n"]}
1
+ {"version":3,"file":"addDecorators.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelApi/common/addDecorators.ts"],"names":[],"mappings":";;;;IAQA;;OAEG;IACH,SAAgB,OAAO,CACnB,OAA0C,EAC1C,IAA8B;QAE9B,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACtC,OAAO,CAAC,IAAI,GAAG;gBACX,MAAM,4BAAO,IAAI,CAAC,MAAM,CAAE;gBAC1B,OAAO,4BAAO,IAAI,CAAC,OAAO,CAAE;aAC/B,CAAC;SACL;IACL,CAAC;IAVD,0BAUC;IAED;;;;OAIG;IACH,SAAgB,OAAO,CACnB,OAA0C,EAC1C,IAA8B;QAE9B,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YACxB,OAAO,CAAC,IAAI,GAAG;gBACX,MAAM,4BAAO,IAAI,CAAC,MAAM,CAAE;aAC7B,CAAC;SACL;IACL,CAAC;IATD,0BASC;IAED;;;;;OAKG;IACH,SAAgB,OAAO,CACnB,OAA0C,EAC1C,IAA8B;QAE9B,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,EAAE;YACpC,OAAO,CAAC,IAAI,GAAG;gBACX,MAAM,4BAAO,IAAI,CAAC,MAAM,CAAE;aAC7B,CAAC;SACL;IACL,CAAC;IATD,0BASC;IAED;;OAEG;IACH,SAAgB,aAAa,CACzB,OAA0C,EAC1C,OAAmC;QAEnC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAPD,sCAOC","sourcesContent":["import type {\n DomToModelDecoratorContext,\n ReadonlyContentModelCode,\n ReadonlyContentModelData,\n ReadonlyContentModelLink,\n ShallowMutableContentModelSegment,\n} from 'roosterjs-content-model-types';\n\n/**\n * @internal\n */\nexport function addLink(\n segment: ShallowMutableContentModelSegment,\n link: ReadonlyContentModelLink\n) {\n if (link.format.href || link.format.name) {\n segment.link = {\n format: { ...link.format },\n dataset: { ...link.dataset },\n };\n }\n}\n\n/**\n * Add a code decorator into segment if any\n * @param segment The segment to add decorator to\n * @param code The code decorator to add\n */\nexport function addCode(\n segment: ShallowMutableContentModelSegment,\n code: ReadonlyContentModelCode\n) {\n if (code.format.fontFamily) {\n segment.code = {\n format: { ...code.format },\n };\n }\n}\n\n/**\n * @internal\n * Add a data decorator into segment if any\n * @param segment The segment to add decorator to\n * @param data The data decorator to add\n */\nexport function addData(\n segment: ShallowMutableContentModelSegment,\n data: ReadonlyContentModelData\n) {\n if (data.format.dataValue != undefined) {\n segment.data = {\n format: { ...data.format },\n };\n }\n}\n\n/**\n * @internal\n */\nexport function addDecorators(\n segment: ShallowMutableContentModelSegment,\n context: DomToModelDecoratorContext\n) {\n addLink(segment, context.link);\n addCode(segment, context.code);\n addData(segment, context.data);\n}\n"]}
@@ -28,7 +28,8 @@ define(["require", "exports", "../../domToModel/utils/areSameFormats"], function
28
28
  return (!!seg1.isSelected == !!seg2.isSelected &&
29
29
  (0, areSameFormats_1.areSameFormats)(seg1.format, seg2.format) &&
30
30
  areSameLinks(seg1.link, seg2.link) &&
31
- areSameCodes(seg1.code, seg2.code));
31
+ areSameCodes(seg1.code, seg2.code) &&
32
+ areSameData(seg1.data, seg2.data));
32
33
  }
33
34
  function areSameLinks(link1, link2) {
34
35
  return ((!link1 && !link2) ||
@@ -40,5 +41,8 @@ define(["require", "exports", "../../domToModel/utils/areSameFormats"], function
40
41
  function areSameCodes(code1, code2) {
41
42
  return (!code1 && !code2) || (code1 && code2 && (0, areSameFormats_1.areSameFormats)(code1.format, code2.format));
42
43
  }
44
+ function areSameData(data1, data2) {
45
+ return (!data1 && !data2) || (data1 && data2 && (0, areSameFormats_1.areSameFormats)(data1.format, data2.format));
46
+ }
43
47
  });
44
48
  //# sourceMappingURL=mergeTextSegments.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mergeTextSegments.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelApi/common/mergeTextSegments.ts"],"names":[],"mappings":";;;;IASA;;;OAGG;IACH,SAAgB,iBAAiB,CAAC,KAA0C;QACxE,IAAI,QAAQ,GAA4B,IAAI,CAAC;QAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,IAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAElC,IAAI,OAAO,CAAC,WAAW,IAAI,MAAM,EAAE;gBAC/B,QAAQ,GAAG,IAAI,CAAC;aACnB;iBAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;gBAChE,QAAQ,GAAG,OAAO,CAAC;aACtB;iBAAM;gBACH,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;gBAC9B,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5B,CAAC,EAAE,CAAC;aACP;SACJ;IACL,CAAC;IAhBD,8CAgBC;IAED,SAAS,sBAAsB,CAC3B,IAAiC,EACjC,IAAiC;QAEjC,OAAO,CACH,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU;YACtC,IAAA,+BAAc,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;YACxC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;YAClC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CACrC,CAAC;IACN,CAAC;IAED,SAAS,YAAY,CACjB,KAA2C,EAC3C,KAA2C;QAE3C,OAAO,CACH,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC;YAClB,CAAC,KAAK;gBACF,KAAK;gBACL,IAAA,+BAAc,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;gBAC1C,IAAA,+BAAc,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CACpD,CAAC;IACN,CAAC;IAED,SAAS,YAAY,CACjB,KAA2C,EAC3C,KAA2C;QAE3C,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,IAAA,+BAAc,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAChG,CAAC","sourcesContent":["import { areSameFormats } from '../../domToModel/utils/areSameFormats';\nimport type {\n ContentModelText,\n ReadonlyContentModelCode,\n ReadonlyContentModelLink,\n ReadonlyContentModelSegment,\n ShallowMutableContentModelParagraph,\n} from 'roosterjs-content-model-types';\n\n/**\n * Find continuous text segments that have the same format and decorators, merge them, So we can reduce total count of segments\n * @param block The parent paragraph to check.\n */\nexport function mergeTextSegments(block: ShallowMutableContentModelParagraph) {\n let lastText: ContentModelText | null = null;\n\n for (let i = 0; i < block.segments.length; i++) {\n const segment = block.segments[i];\n\n if (segment.segmentType != 'Text') {\n lastText = null;\n } else if (!lastText || !segmentsWithSameFormat(lastText, segment)) {\n lastText = segment;\n } else {\n lastText.text += segment.text;\n block.segments.splice(i, 1);\n i--;\n }\n }\n}\n\nfunction segmentsWithSameFormat(\n seg1: ReadonlyContentModelSegment,\n seg2: ReadonlyContentModelSegment\n) {\n return (\n !!seg1.isSelected == !!seg2.isSelected &&\n areSameFormats(seg1.format, seg2.format) &&\n areSameLinks(seg1.link, seg2.link) &&\n areSameCodes(seg1.code, seg2.code)\n );\n}\n\nfunction areSameLinks(\n link1: ReadonlyContentModelLink | undefined,\n link2: ReadonlyContentModelLink | undefined\n) {\n return (\n (!link1 && !link2) ||\n (link1 &&\n link2 &&\n areSameFormats(link1.format, link2.format) &&\n areSameFormats(link1.dataset, link2.dataset))\n );\n}\n\nfunction areSameCodes(\n code1: ReadonlyContentModelCode | undefined,\n code2: ReadonlyContentModelCode | undefined\n) {\n return (!code1 && !code2) || (code1 && code2 && areSameFormats(code1.format, code2.format));\n}\n"]}
1
+ {"version":3,"file":"mergeTextSegments.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelApi/common/mergeTextSegments.ts"],"names":[],"mappings":";;;;IAUA;;;OAGG;IACH,SAAgB,iBAAiB,CAAC,KAA0C;QACxE,IAAI,QAAQ,GAA4B,IAAI,CAAC;QAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,IAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAElC,IAAI,OAAO,CAAC,WAAW,IAAI,MAAM,EAAE;gBAC/B,QAAQ,GAAG,IAAI,CAAC;aACnB;iBAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;gBAChE,QAAQ,GAAG,OAAO,CAAC;aACtB;iBAAM;gBACH,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;gBAC9B,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5B,CAAC,EAAE,CAAC;aACP;SACJ;IACL,CAAC;IAhBD,8CAgBC;IAED,SAAS,sBAAsB,CAC3B,IAAiC,EACjC,IAAiC;QAEjC,OAAO,CACH,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU;YACtC,IAAA,+BAAc,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;YACxC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;YAClC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;YAClC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CACpC,CAAC;IACN,CAAC;IAED,SAAS,YAAY,CACjB,KAA2C,EAC3C,KAA2C;QAE3C,OAAO,CACH,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC;YAClB,CAAC,KAAK;gBACF,KAAK;gBACL,IAAA,+BAAc,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;gBAC1C,IAAA,+BAAc,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CACpD,CAAC;IACN,CAAC;IAED,SAAS,YAAY,CACjB,KAA2C,EAC3C,KAA2C;QAE3C,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,IAAA,+BAAc,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAChG,CAAC;IAED,SAAS,WAAW,CAChB,KAA2C,EAC3C,KAA2C;QAE3C,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,IAAA,+BAAc,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAChG,CAAC","sourcesContent":["import { areSameFormats } from '../../domToModel/utils/areSameFormats';\nimport type {\n ContentModelText,\n ReadonlyContentModelCode,\n ReadonlyContentModelData,\n ReadonlyContentModelLink,\n ReadonlyContentModelSegment,\n ShallowMutableContentModelParagraph,\n} from 'roosterjs-content-model-types';\n\n/**\n * Find continuous text segments that have the same format and decorators, merge them, So we can reduce total count of segments\n * @param block The parent paragraph to check.\n */\nexport function mergeTextSegments(block: ShallowMutableContentModelParagraph) {\n let lastText: ContentModelText | null = null;\n\n for (let i = 0; i < block.segments.length; i++) {\n const segment = block.segments[i];\n\n if (segment.segmentType != 'Text') {\n lastText = null;\n } else if (!lastText || !segmentsWithSameFormat(lastText, segment)) {\n lastText = segment;\n } else {\n lastText.text += segment.text;\n block.segments.splice(i, 1);\n i--;\n }\n }\n}\n\nfunction segmentsWithSameFormat(\n seg1: ReadonlyContentModelSegment,\n seg2: ReadonlyContentModelSegment\n) {\n return (\n !!seg1.isSelected == !!seg2.isSelected &&\n areSameFormats(seg1.format, seg2.format) &&\n areSameLinks(seg1.link, seg2.link) &&\n areSameCodes(seg1.code, seg2.code) &&\n areSameData(seg1.data, seg2.data)\n );\n}\n\nfunction areSameLinks(\n link1: ReadonlyContentModelLink | undefined,\n link2: ReadonlyContentModelLink | undefined\n) {\n return (\n (!link1 && !link2) ||\n (link1 &&\n link2 &&\n areSameFormats(link1.format, link2.format) &&\n areSameFormats(link1.dataset, link2.dataset))\n );\n}\n\nfunction areSameCodes(\n code1: ReadonlyContentModelCode | undefined,\n code2: ReadonlyContentModelCode | undefined\n) {\n return (!code1 && !code2) || (code1 && code2 && areSameFormats(code1.format, code2.format));\n}\n\nfunction areSameData(\n data1: ReadonlyContentModelData | undefined,\n data2: ReadonlyContentModelData | undefined\n) {\n return (!data1 && !data2) || (data1 && data2 && areSameFormats(data1.format, data2.format));\n}\n"]}
@@ -1,9 +1,10 @@
1
- import type { ContentModelSegmentFormat, ContentModelText, ReadonlyContentModelCode, ReadonlyContentModelLink } from 'roosterjs-content-model-types';
1
+ import type { ContentModelSegmentFormat, ContentModelText, ReadonlyContentModelCode, ReadonlyContentModelData, ReadonlyContentModelLink } from 'roosterjs-content-model-types';
2
2
  /**
3
3
  * Create a ContentModelText model
4
4
  * @param text Text of this model
5
5
  * @param format @optional The format of this model
6
6
  * @param link @optional The link decorator
7
- * @param code @option The code decorator
7
+ * @param code @optional The code decorator
8
+ * @param data @optional The data decorator
8
9
  */
9
- export declare function createText(text: string, format?: Readonly<ContentModelSegmentFormat>, link?: ReadonlyContentModelLink, code?: ReadonlyContentModelCode): ContentModelText;
10
+ export declare function createText(text: string, format?: Readonly<ContentModelSegmentFormat>, link?: ReadonlyContentModelLink, code?: ReadonlyContentModelCode, data?: ReadonlyContentModelData): ContentModelText;
@@ -7,9 +7,10 @@ define(["require", "exports", "tslib", "../common/addDecorators"], function (req
7
7
  * @param text Text of this model
8
8
  * @param format @optional The format of this model
9
9
  * @param link @optional The link decorator
10
- * @param code @option The code decorator
10
+ * @param code @optional The code decorator
11
+ * @param data @optional The data decorator
11
12
  */
12
- function createText(text, format, link, code) {
13
+ function createText(text, format, link, code, data) {
13
14
  var result = {
14
15
  segmentType: 'Text',
15
16
  text: text,
@@ -21,6 +22,9 @@ define(["require", "exports", "tslib", "../common/addDecorators"], function (req
21
22
  if (code) {
22
23
  (0, addDecorators_1.addCode)(result, code);
23
24
  }
25
+ if (data) {
26
+ (0, addDecorators_1.addData)(result, data);
27
+ }
24
28
  return result;
25
29
  }
26
30
  exports.createText = createText;
@@ -1 +1 @@
1
- {"version":3,"file":"createText.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelApi/creators/createText.ts"],"names":[],"mappings":";;;;IAQA;;;;;;OAMG;IACH,SAAgB,UAAU,CACtB,IAAY,EACZ,MAA4C,EAC5C,IAA+B,EAC/B,IAA+B;QAE/B,IAAM,MAAM,GAAqB;YAC7B,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE,IAAI;YACV,MAAM,4BAAO,MAAM,CAAE;SACxB,CAAC;QAEF,IAAI,IAAI,EAAE;YACN,IAAA,uBAAO,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACzB;QAED,IAAI,IAAI,EAAE;YACN,IAAA,uBAAO,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACzB;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IArBD,gCAqBC","sourcesContent":["import { addCode, addLink } from '../common/addDecorators';\nimport type {\n ContentModelSegmentFormat,\n ContentModelText,\n ReadonlyContentModelCode,\n ReadonlyContentModelLink,\n} from 'roosterjs-content-model-types';\n\n/**\n * Create a ContentModelText model\n * @param text Text of this model\n * @param format @optional The format of this model\n * @param link @optional The link decorator\n * @param code @option The code decorator\n */\nexport function createText(\n text: string,\n format?: Readonly<ContentModelSegmentFormat>,\n link?: ReadonlyContentModelLink,\n code?: ReadonlyContentModelCode\n): ContentModelText {\n const result: ContentModelText = {\n segmentType: 'Text',\n text: text,\n format: { ...format },\n };\n\n if (link) {\n addLink(result, link);\n }\n\n if (code) {\n addCode(result, code);\n }\n\n return result;\n}\n"]}
1
+ {"version":3,"file":"createText.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelApi/creators/createText.ts"],"names":[],"mappings":";;;;IASA;;;;;;;OAOG;IACH,SAAgB,UAAU,CACtB,IAAY,EACZ,MAA4C,EAC5C,IAA+B,EAC/B,IAA+B,EAC/B,IAA+B;QAE/B,IAAM,MAAM,GAAqB;YAC7B,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE,IAAI;YACV,MAAM,4BAAO,MAAM,CAAE;SACxB,CAAC;QAEF,IAAI,IAAI,EAAE;YACN,IAAA,uBAAO,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACzB;QAED,IAAI,IAAI,EAAE;YACN,IAAA,uBAAO,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACzB;QAED,IAAI,IAAI,EAAE;YACN,IAAA,uBAAO,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACzB;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IA1BD,gCA0BC","sourcesContent":["import { addCode, addData, addLink } from '../common/addDecorators';\nimport type {\n ContentModelSegmentFormat,\n ContentModelText,\n ReadonlyContentModelCode,\n ReadonlyContentModelData,\n ReadonlyContentModelLink,\n} from 'roosterjs-content-model-types';\n\n/**\n * Create a ContentModelText model\n * @param text Text of this model\n * @param format @optional The format of this model\n * @param link @optional The link decorator\n * @param code @optional The code decorator\n * @param data @optional The data decorator\n */\nexport function createText(\n text: string,\n format?: Readonly<ContentModelSegmentFormat>,\n link?: ReadonlyContentModelLink,\n code?: ReadonlyContentModelCode,\n data?: ReadonlyContentModelData\n): ContentModelText {\n const result: ContentModelText = {\n segmentType: 'Text',\n text: text,\n format: { ...format },\n };\n\n if (link) {\n addLink(result, link);\n }\n\n if (code) {\n addCode(result, code);\n }\n\n if (data) {\n addData(result, data);\n }\n\n return result;\n}\n"]}
@@ -89,7 +89,7 @@ define(["require", "exports", "tslib"], function (require, exports, tslib_1) {
89
89
  };
90
90
  }
91
91
  function cloneSegmentBase(segment) {
92
- var segmentType = segment.segmentType, isSelected = segment.isSelected, code = segment.code, link = segment.link;
92
+ var segmentType = segment.segmentType, isSelected = segment.isSelected, code = segment.code, link = segment.link, data = segment.data;
93
93
  var newSegment = Object.assign({
94
94
  segmentType: segmentType,
95
95
  isSelected: isSelected,
@@ -100,6 +100,9 @@ define(["require", "exports", "tslib"], function (require, exports, tslib_1) {
100
100
  if (link) {
101
101
  newSegment.link = Object.assign(cloneModelWithFormat(link), cloneModelWithDataset(link));
102
102
  }
103
+ if (data) {
104
+ newSegment.data = cloneModelWithFormat(data);
105
+ }
103
106
  return newSegment;
104
107
  }
105
108
  function cloneEntity(entity, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"cloneModel.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelApi/editing/cloneModel.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n ContentModelBlock,\n ContentModelBlockBase,\n ContentModelBlockGroupBase,\n ContentModelBlockGroupType,\n ContentModelBlockType,\n ContentModelDivider,\n ContentModelDocument,\n ContentModelEntity,\n ContentModelFormatBase,\n ContentModelFormatContainer,\n ContentModelGeneralBlock,\n ContentModelImage,\n ContentModelListItem,\n ContentModelParagraph,\n ContentModelSegment,\n ContentModelSegmentBase,\n ContentModelSegmentType,\n ContentModelSelectionMarker,\n ContentModelTable,\n ContentModelTableCell,\n ContentModelWithDataset,\n ContentModelWithFormat,\n ContentModelGeneralSegment,\n ContentModelText,\n ContentModelTableRow,\n ContentModelListLevel,\n CloneModelOptions,\n ReadonlyContentModelDocument,\n ReadonlyContentModelBlockGroupBase,\n ReadonlyContentModelBlock,\n ReadonlyContentModelFormatContainer,\n ReadonlyContentModelBlockBase,\n ReadonlyContentModelGeneralBlock,\n ReadonlyContentModelListItem,\n ReadonlyContentModelSelectionMarker,\n ReadonlyContentModelSegmentBase,\n ReadonlyContentModelWithDataset,\n ReadonlyContentModelDivider,\n ReadonlyContentModelListLevel,\n ReadonlyContentModelParagraph,\n ReadonlyContentModelSegment,\n ReadonlyContentModelTable,\n ReadonlyContentModelTableRow,\n ReadonlyContentModelTableCell,\n ReadonlyContentModelGeneralSegment,\n ReadonlyContentModelImage,\n ReadonlyContentModelText,\n} from 'roosterjs-content-model-types';\n\nconst CloneOption: CloneModelOptions = {\n includeCachedElement: (node, type) => (type == 'cache' ? undefined : node),\n};\n\n/**\n * Clone a content model for paste operations, ensuring that cached elements are handled appropriately.\n * @param model The content model to clone\n * @returns A cloned content model suitable for paste operations\n */\nexport function cloneModelForPaste(model: ReadonlyContentModelDocument) {\n return cloneModel(model, CloneOption);\n}\n\n/**\n * Clone a content model\n * @param model The content model to clone\n * @param options @optional Options to specify customize the clone behavior\n */\nexport function cloneModel(\n model: ReadonlyContentModelDocument,\n options?: CloneModelOptions\n): ContentModelDocument {\n const newModel: ContentModelDocument = cloneBlockGroupBase(model, options || {});\n\n if (model.format) {\n newModel.format = Object.assign({}, model.format);\n }\n\n return newModel;\n}\n\nfunction cloneBlock(\n block: ReadonlyContentModelBlock,\n options: CloneModelOptions\n): ContentModelBlock {\n switch (block.blockType) {\n case 'BlockGroup':\n switch (block.blockGroupType) {\n case 'FormatContainer':\n return cloneFormatContainer(block, options);\n case 'General':\n return cloneGeneralBlock(block, options);\n case 'ListItem':\n return cloneListItem(block, options);\n }\n break;\n case 'Divider':\n return cloneDivider(block, options);\n case 'Entity':\n return cloneEntity(block, options);\n case 'Paragraph':\n return cloneParagraph(block, options);\n case 'Table':\n return cloneTable(block, options);\n }\n}\n\nfunction cloneSegment(\n segment: ReadonlyContentModelSegment,\n options: CloneModelOptions\n): ContentModelSegment {\n switch (segment.segmentType) {\n case 'Br':\n return cloneSegmentBase(segment);\n case 'Entity':\n return cloneEntity(segment, options);\n case 'General':\n return cloneGeneralSegment(segment, options);\n case 'Image':\n return cloneImage(segment);\n case 'SelectionMarker':\n return cloneSelectionMarker(segment);\n case 'Text':\n return cloneText(segment);\n }\n}\n\nfunction cloneModelWithFormat<T extends ContentModelFormatBase>(\n model: ContentModelWithFormat<T>\n): ContentModelWithFormat<T> {\n return {\n format: Object.assign({}, model.format),\n };\n}\n\nfunction cloneModelWithDataset<T>(\n model: ReadonlyContentModelWithDataset<T>\n): ContentModelWithDataset<T> {\n return {\n dataset: Object.assign({}, model.dataset),\n };\n}\n\nfunction cloneBlockBase<T extends ContentModelBlockType>(\n block: ReadonlyContentModelBlockBase<T>\n): ContentModelBlockBase<T> {\n const { blockType } = block;\n\n return Object.assign(\n {\n blockType,\n },\n cloneModelWithFormat(block)\n );\n}\n\nfunction cloneBlockGroupBase<T extends ContentModelBlockGroupType>(\n group: ReadonlyContentModelBlockGroupBase<T>,\n options: CloneModelOptions\n): ContentModelBlockGroupBase<T> {\n const { blockGroupType, blocks } = group;\n\n return {\n blockGroupType: blockGroupType,\n blocks: blocks.map(block => cloneBlock(block, options)),\n };\n}\n\nfunction cloneSegmentBase<T extends ContentModelSegmentType>(\n segment: ReadonlyContentModelSegmentBase<T>\n): ContentModelSegmentBase<T> {\n const { segmentType, isSelected, code, link } = segment;\n\n const newSegment: ContentModelSegmentBase<T> = Object.assign(\n {\n segmentType,\n isSelected,\n },\n cloneModelWithFormat(segment)\n );\n\n if (code) {\n newSegment.code = cloneModelWithFormat(code);\n }\n if (link) {\n newSegment.link = Object.assign(cloneModelWithFormat(link), cloneModelWithDataset(link));\n }\n\n return newSegment;\n}\n\nfunction cloneEntity(entity: ContentModelEntity, options: CloneModelOptions): ContentModelEntity {\n const { wrapper, entityFormat } = entity;\n\n return Object.assign(\n {\n wrapper: handleCachedElement(wrapper, 'entity', options),\n entityFormat: { ...entityFormat },\n },\n cloneBlockBase(entity),\n cloneSegmentBase(entity)\n );\n}\n\nfunction cloneParagraph(\n paragraph: ReadonlyContentModelParagraph,\n options: CloneModelOptions\n): ContentModelParagraph {\n const { cachedElement, segments, isImplicit, decorator, segmentFormat } = paragraph;\n\n const newParagraph: ContentModelParagraph = Object.assign(\n {\n cachedElement: handleCachedElement(cachedElement, 'cache', options),\n isImplicit,\n segments: segments.map(segment => cloneSegment(segment, options)),\n segmentFormat: segmentFormat ? { ...segmentFormat } : undefined,\n },\n cloneBlockBase(paragraph),\n cloneModelWithFormat(paragraph)\n );\n\n if (decorator) {\n newParagraph.decorator = Object.assign(\n {\n tagName: decorator.tagName,\n },\n cloneModelWithFormat(decorator)\n );\n }\n\n return newParagraph;\n}\n\nfunction cloneTable(\n table: ReadonlyContentModelTable,\n options: CloneModelOptions\n): ContentModelTable {\n const { cachedElement, widths, rows } = table;\n\n return Object.assign(\n {\n cachedElement: handleCachedElement(cachedElement, 'cache', options),\n widths: Array.from(widths),\n rows: rows.map(row => cloneTableRow(row, options)),\n },\n cloneBlockBase(table),\n cloneModelWithDataset(table)\n );\n}\n\nfunction cloneTableRow(\n row: ReadonlyContentModelTableRow,\n options: CloneModelOptions\n): ContentModelTableRow {\n const { height, cells, cachedElement } = row;\n\n return Object.assign(\n {\n height,\n cachedElement: handleCachedElement(cachedElement, 'cache', options),\n cells: cells.map(cell => cloneTableCell(cell, options)),\n },\n cloneModelWithFormat(row)\n );\n}\n\nfunction cloneTableCell(\n cell: ReadonlyContentModelTableCell,\n options: CloneModelOptions\n): ContentModelTableCell {\n const { cachedElement, isSelected, spanAbove, spanLeft, isHeader } = cell;\n\n return Object.assign(\n {\n cachedElement: handleCachedElement(cachedElement, 'cache', options),\n isSelected,\n spanAbove,\n spanLeft,\n isHeader,\n },\n cloneBlockGroupBase(cell, options),\n cloneModelWithFormat(cell),\n cloneModelWithDataset(cell)\n );\n}\n\nfunction cloneFormatContainer(\n container: ReadonlyContentModelFormatContainer,\n options: CloneModelOptions\n): ContentModelFormatContainer {\n const { tagName, cachedElement } = container;\n const newContainer: ContentModelFormatContainer = Object.assign(\n { tagName, cachedElement: handleCachedElement(cachedElement, 'cache', options) },\n cloneBlockBase(container),\n cloneBlockGroupBase(container, options)\n );\n\n if (container.zeroFontSize) {\n newContainer.zeroFontSize = true;\n }\n\n return newContainer;\n}\n\nfunction cloneListItem(\n item: ReadonlyContentModelListItem,\n options: CloneModelOptions\n): ContentModelListItem {\n const { formatHolder, levels, cachedElement } = item;\n\n return Object.assign(\n {\n formatHolder: cloneSelectionMarker(formatHolder),\n levels: levels.map(cloneListLevel),\n cachedElement: handleCachedElement(cachedElement, 'cache', options),\n },\n cloneBlockBase(item),\n cloneBlockGroupBase(item, options)\n );\n}\n\nfunction cloneListLevel(level: ReadonlyContentModelListLevel): ContentModelListLevel {\n const { listType } = level;\n\n return Object.assign({ listType }, cloneModelWithFormat(level), cloneModelWithDataset(level));\n}\nfunction cloneDivider(\n divider: ReadonlyContentModelDivider,\n options: CloneModelOptions\n): ContentModelDivider {\n const { tagName, isSelected, cachedElement } = divider;\n\n return Object.assign(\n {\n isSelected,\n tagName,\n cachedElement: handleCachedElement(cachedElement, 'cache', options),\n },\n cloneBlockBase(divider)\n );\n}\n\nfunction cloneGeneralBlock(\n general: ReadonlyContentModelGeneralBlock,\n options: CloneModelOptions\n): ContentModelGeneralBlock {\n const { element } = general;\n\n return Object.assign(\n {\n element: handleCachedElement(element, 'general', options),\n },\n cloneBlockBase(general),\n cloneBlockGroupBase(general, options)\n );\n}\n\nfunction cloneSelectionMarker(\n marker: ReadonlyContentModelSelectionMarker\n): ContentModelSelectionMarker {\n return Object.assign({ isSelected: marker.isSelected }, cloneSegmentBase(marker));\n}\n\nfunction cloneImage(image: ReadonlyContentModelImage): ContentModelImage {\n const { src, alt, title, isSelectedAsImageSelection } = image;\n\n return Object.assign(\n { src, alt, title, isSelectedAsImageSelection },\n cloneSegmentBase(image),\n cloneModelWithDataset(image)\n );\n}\n\nfunction cloneGeneralSegment(\n general: ReadonlyContentModelGeneralSegment,\n options: CloneModelOptions\n): ContentModelGeneralSegment {\n return Object.assign(cloneGeneralBlock(general, options), cloneSegmentBase(general));\n}\n\nfunction cloneText(textSegment: ReadonlyContentModelText): ContentModelText {\n const { text } = textSegment;\n return Object.assign({ text }, cloneSegmentBase(textSegment));\n}\n\nfunction handleCachedElement<T extends HTMLElement>(\n node: T,\n type: 'general' | 'entity',\n options: CloneModelOptions\n): T;\n\nfunction handleCachedElement<T extends HTMLElement>(\n node: T | undefined,\n type: 'cache',\n options: CloneModelOptions\n): T | undefined;\n\nfunction handleCachedElement<T extends HTMLElement>(\n node: T | undefined,\n type: 'general' | 'entity' | 'cache',\n options: CloneModelOptions\n): T | undefined {\n const { includeCachedElement } = options;\n\n if (!node) {\n return undefined;\n } else if (!includeCachedElement) {\n return type == 'cache' ? undefined : (node.cloneNode(true /*deep*/) as T);\n } else if (includeCachedElement === true) {\n return node;\n } else {\n const result = includeCachedElement(node, type) as T | undefined;\n\n if ((type == 'general' || type == 'entity') && !result) {\n throw new Error('Entity and General Model must has wrapper element');\n }\n\n return result;\n }\n}\n"]}
1
+ {"version":3,"file":"cloneModel.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelApi/editing/cloneModel.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n ContentModelBlock,\n ContentModelBlockBase,\n ContentModelBlockGroupBase,\n ContentModelBlockGroupType,\n ContentModelBlockType,\n ContentModelDivider,\n ContentModelDocument,\n ContentModelEntity,\n ContentModelFormatBase,\n ContentModelFormatContainer,\n ContentModelGeneralBlock,\n ContentModelImage,\n ContentModelListItem,\n ContentModelParagraph,\n ContentModelSegment,\n ContentModelSegmentBase,\n ContentModelSegmentType,\n ContentModelSelectionMarker,\n ContentModelTable,\n ContentModelTableCell,\n ContentModelWithDataset,\n ContentModelWithFormat,\n ContentModelGeneralSegment,\n ContentModelText,\n ContentModelTableRow,\n ContentModelListLevel,\n CloneModelOptions,\n ReadonlyContentModelDocument,\n ReadonlyContentModelBlockGroupBase,\n ReadonlyContentModelBlock,\n ReadonlyContentModelFormatContainer,\n ReadonlyContentModelBlockBase,\n ReadonlyContentModelGeneralBlock,\n ReadonlyContentModelListItem,\n ReadonlyContentModelSelectionMarker,\n ReadonlyContentModelSegmentBase,\n ReadonlyContentModelWithDataset,\n ReadonlyContentModelDivider,\n ReadonlyContentModelListLevel,\n ReadonlyContentModelParagraph,\n ReadonlyContentModelSegment,\n ReadonlyContentModelTable,\n ReadonlyContentModelTableRow,\n ReadonlyContentModelTableCell,\n ReadonlyContentModelGeneralSegment,\n ReadonlyContentModelImage,\n ReadonlyContentModelText,\n} from 'roosterjs-content-model-types';\n\nconst CloneOption: CloneModelOptions = {\n includeCachedElement: (node, type) => (type == 'cache' ? undefined : node),\n};\n\n/**\n * Clone a content model for paste operations, ensuring that cached elements are handled appropriately.\n * @param model The content model to clone\n * @returns A cloned content model suitable for paste operations\n */\nexport function cloneModelForPaste(model: ReadonlyContentModelDocument) {\n return cloneModel(model, CloneOption);\n}\n\n/**\n * Clone a content model\n * @param model The content model to clone\n * @param options @optional Options to specify customize the clone behavior\n */\nexport function cloneModel(\n model: ReadonlyContentModelDocument,\n options?: CloneModelOptions\n): ContentModelDocument {\n const newModel: ContentModelDocument = cloneBlockGroupBase(model, options || {});\n\n if (model.format) {\n newModel.format = Object.assign({}, model.format);\n }\n\n return newModel;\n}\n\nfunction cloneBlock(\n block: ReadonlyContentModelBlock,\n options: CloneModelOptions\n): ContentModelBlock {\n switch (block.blockType) {\n case 'BlockGroup':\n switch (block.blockGroupType) {\n case 'FormatContainer':\n return cloneFormatContainer(block, options);\n case 'General':\n return cloneGeneralBlock(block, options);\n case 'ListItem':\n return cloneListItem(block, options);\n }\n break;\n case 'Divider':\n return cloneDivider(block, options);\n case 'Entity':\n return cloneEntity(block, options);\n case 'Paragraph':\n return cloneParagraph(block, options);\n case 'Table':\n return cloneTable(block, options);\n }\n}\n\nfunction cloneSegment(\n segment: ReadonlyContentModelSegment,\n options: CloneModelOptions\n): ContentModelSegment {\n switch (segment.segmentType) {\n case 'Br':\n return cloneSegmentBase(segment);\n case 'Entity':\n return cloneEntity(segment, options);\n case 'General':\n return cloneGeneralSegment(segment, options);\n case 'Image':\n return cloneImage(segment);\n case 'SelectionMarker':\n return cloneSelectionMarker(segment);\n case 'Text':\n return cloneText(segment);\n }\n}\n\nfunction cloneModelWithFormat<T extends ContentModelFormatBase>(\n model: ContentModelWithFormat<T>\n): ContentModelWithFormat<T> {\n return {\n format: Object.assign({}, model.format),\n };\n}\n\nfunction cloneModelWithDataset<T>(\n model: ReadonlyContentModelWithDataset<T>\n): ContentModelWithDataset<T> {\n return {\n dataset: Object.assign({}, model.dataset),\n };\n}\n\nfunction cloneBlockBase<T extends ContentModelBlockType>(\n block: ReadonlyContentModelBlockBase<T>\n): ContentModelBlockBase<T> {\n const { blockType } = block;\n\n return Object.assign(\n {\n blockType,\n },\n cloneModelWithFormat(block)\n );\n}\n\nfunction cloneBlockGroupBase<T extends ContentModelBlockGroupType>(\n group: ReadonlyContentModelBlockGroupBase<T>,\n options: CloneModelOptions\n): ContentModelBlockGroupBase<T> {\n const { blockGroupType, blocks } = group;\n\n return {\n blockGroupType: blockGroupType,\n blocks: blocks.map(block => cloneBlock(block, options)),\n };\n}\n\nfunction cloneSegmentBase<T extends ContentModelSegmentType>(\n segment: ReadonlyContentModelSegmentBase<T>\n): ContentModelSegmentBase<T> {\n const { segmentType, isSelected, code, link, data } = segment;\n\n const newSegment: ContentModelSegmentBase<T> = Object.assign(\n {\n segmentType,\n isSelected,\n },\n cloneModelWithFormat(segment)\n );\n\n if (code) {\n newSegment.code = cloneModelWithFormat(code);\n }\n if (link) {\n newSegment.link = Object.assign(cloneModelWithFormat(link), cloneModelWithDataset(link));\n }\n if (data) {\n newSegment.data = cloneModelWithFormat(data);\n }\n\n return newSegment;\n}\n\nfunction cloneEntity(entity: ContentModelEntity, options: CloneModelOptions): ContentModelEntity {\n const { wrapper, entityFormat } = entity;\n\n return Object.assign(\n {\n wrapper: handleCachedElement(wrapper, 'entity', options),\n entityFormat: { ...entityFormat },\n },\n cloneBlockBase(entity),\n cloneSegmentBase(entity)\n );\n}\n\nfunction cloneParagraph(\n paragraph: ReadonlyContentModelParagraph,\n options: CloneModelOptions\n): ContentModelParagraph {\n const { cachedElement, segments, isImplicit, decorator, segmentFormat } = paragraph;\n\n const newParagraph: ContentModelParagraph = Object.assign(\n {\n cachedElement: handleCachedElement(cachedElement, 'cache', options),\n isImplicit,\n segments: segments.map(segment => cloneSegment(segment, options)),\n segmentFormat: segmentFormat ? { ...segmentFormat } : undefined,\n },\n cloneBlockBase(paragraph),\n cloneModelWithFormat(paragraph)\n );\n\n if (decorator) {\n newParagraph.decorator = Object.assign(\n {\n tagName: decorator.tagName,\n },\n cloneModelWithFormat(decorator)\n );\n }\n\n return newParagraph;\n}\n\nfunction cloneTable(\n table: ReadonlyContentModelTable,\n options: CloneModelOptions\n): ContentModelTable {\n const { cachedElement, widths, rows } = table;\n\n return Object.assign(\n {\n cachedElement: handleCachedElement(cachedElement, 'cache', options),\n widths: Array.from(widths),\n rows: rows.map(row => cloneTableRow(row, options)),\n },\n cloneBlockBase(table),\n cloneModelWithDataset(table)\n );\n}\n\nfunction cloneTableRow(\n row: ReadonlyContentModelTableRow,\n options: CloneModelOptions\n): ContentModelTableRow {\n const { height, cells, cachedElement } = row;\n\n return Object.assign(\n {\n height,\n cachedElement: handleCachedElement(cachedElement, 'cache', options),\n cells: cells.map(cell => cloneTableCell(cell, options)),\n },\n cloneModelWithFormat(row)\n );\n}\n\nfunction cloneTableCell(\n cell: ReadonlyContentModelTableCell,\n options: CloneModelOptions\n): ContentModelTableCell {\n const { cachedElement, isSelected, spanAbove, spanLeft, isHeader } = cell;\n\n return Object.assign(\n {\n cachedElement: handleCachedElement(cachedElement, 'cache', options),\n isSelected,\n spanAbove,\n spanLeft,\n isHeader,\n },\n cloneBlockGroupBase(cell, options),\n cloneModelWithFormat(cell),\n cloneModelWithDataset(cell)\n );\n}\n\nfunction cloneFormatContainer(\n container: ReadonlyContentModelFormatContainer,\n options: CloneModelOptions\n): ContentModelFormatContainer {\n const { tagName, cachedElement } = container;\n const newContainer: ContentModelFormatContainer = Object.assign(\n { tagName, cachedElement: handleCachedElement(cachedElement, 'cache', options) },\n cloneBlockBase(container),\n cloneBlockGroupBase(container, options)\n );\n\n if (container.zeroFontSize) {\n newContainer.zeroFontSize = true;\n }\n\n return newContainer;\n}\n\nfunction cloneListItem(\n item: ReadonlyContentModelListItem,\n options: CloneModelOptions\n): ContentModelListItem {\n const { formatHolder, levels, cachedElement } = item;\n\n return Object.assign(\n {\n formatHolder: cloneSelectionMarker(formatHolder),\n levels: levels.map(cloneListLevel),\n cachedElement: handleCachedElement(cachedElement, 'cache', options),\n },\n cloneBlockBase(item),\n cloneBlockGroupBase(item, options)\n );\n}\n\nfunction cloneListLevel(level: ReadonlyContentModelListLevel): ContentModelListLevel {\n const { listType } = level;\n\n return Object.assign({ listType }, cloneModelWithFormat(level), cloneModelWithDataset(level));\n}\nfunction cloneDivider(\n divider: ReadonlyContentModelDivider,\n options: CloneModelOptions\n): ContentModelDivider {\n const { tagName, isSelected, cachedElement } = divider;\n\n return Object.assign(\n {\n isSelected,\n tagName,\n cachedElement: handleCachedElement(cachedElement, 'cache', options),\n },\n cloneBlockBase(divider)\n );\n}\n\nfunction cloneGeneralBlock(\n general: ReadonlyContentModelGeneralBlock,\n options: CloneModelOptions\n): ContentModelGeneralBlock {\n const { element } = general;\n\n return Object.assign(\n {\n element: handleCachedElement(element, 'general', options),\n },\n cloneBlockBase(general),\n cloneBlockGroupBase(general, options)\n );\n}\n\nfunction cloneSelectionMarker(\n marker: ReadonlyContentModelSelectionMarker\n): ContentModelSelectionMarker {\n return Object.assign({ isSelected: marker.isSelected }, cloneSegmentBase(marker));\n}\n\nfunction cloneImage(image: ReadonlyContentModelImage): ContentModelImage {\n const { src, alt, title, isSelectedAsImageSelection } = image;\n\n return Object.assign(\n { src, alt, title, isSelectedAsImageSelection },\n cloneSegmentBase(image),\n cloneModelWithDataset(image)\n );\n}\n\nfunction cloneGeneralSegment(\n general: ReadonlyContentModelGeneralSegment,\n options: CloneModelOptions\n): ContentModelGeneralSegment {\n return Object.assign(cloneGeneralBlock(general, options), cloneSegmentBase(general));\n}\n\nfunction cloneText(textSegment: ReadonlyContentModelText): ContentModelText {\n const { text } = textSegment;\n return Object.assign({ text }, cloneSegmentBase(textSegment));\n}\n\nfunction handleCachedElement<T extends HTMLElement>(\n node: T,\n type: 'general' | 'entity',\n options: CloneModelOptions\n): T;\n\nfunction handleCachedElement<T extends HTMLElement>(\n node: T | undefined,\n type: 'cache',\n options: CloneModelOptions\n): T | undefined;\n\nfunction handleCachedElement<T extends HTMLElement>(\n node: T | undefined,\n type: 'general' | 'entity' | 'cache',\n options: CloneModelOptions\n): T | undefined {\n const { includeCachedElement } = options;\n\n if (!node) {\n return undefined;\n } else if (!includeCachedElement) {\n return type == 'cache' ? undefined : (node.cloneNode(true /*deep*/) as T);\n } else if (includeCachedElement === true) {\n return node;\n } else {\n const result = includeCachedElement(node, type) as T | undefined;\n\n if ((type == 'general' || type == 'entity') && !result) {\n throw new Error('Entity and General Model must has wrapper element');\n }\n\n return result;\n }\n}\n"]}
@@ -6,7 +6,7 @@ define(["require", "exports", "../utils/applyFormat", "../../domUtils/isNodeOfTy
6
6
  * @internal
7
7
  */
8
8
  var handleSegmentDecorator = function (_, parent, segment, context) {
9
- var code = segment.code, link = segment.link;
9
+ var code = segment.code, link = segment.link, data = segment.data;
10
10
  if ((0, isNodeOfType_1.isNodeOfType)(parent, 'ELEMENT_NODE')) {
11
11
  if (link) {
12
12
  (0, stackFormat_1.stackFormat)(context, 'a', function () {
@@ -25,6 +25,14 @@ define(["require", "exports", "../utils/applyFormat", "../../domUtils/isNodeOfTy
25
25
  (_a = context.onNodeCreated) === null || _a === void 0 ? void 0 : _a.call(context, code, codeNode);
26
26
  });
27
27
  }
28
+ if (data) {
29
+ (0, stackFormat_1.stackFormat)(context, 'data', function () {
30
+ var _a;
31
+ var dataNode = (0, moveChildNodes_1.wrapAllChildNodes)(parent, 'data');
32
+ (0, applyFormat_1.applyFormat)(dataNode, context.formatAppliers.data, data.format, context);
33
+ (_a = context.onNodeCreated) === null || _a === void 0 ? void 0 : _a.call(context, data, dataNode);
34
+ });
35
+ }
28
36
  }
29
37
  };
30
38
  exports.handleSegmentDecorator = handleSegmentDecorator;