roosterjs-content-model-dom 0.14.0 → 0.16.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 (220) hide show
  1. package/lib/config/defaultContentModelFormatMap.d.ts +6 -0
  2. package/lib/config/defaultContentModelFormatMap.js +56 -0
  3. package/lib/config/defaultContentModelFormatMap.js.map +1 -0
  4. package/lib/config/defaultHTMLStyleMap.d.ts +5 -0
  5. package/lib/{formatHandlers/utils/defaultStyles.js → config/defaultHTMLStyleMap.js} +3 -69
  6. package/lib/config/defaultHTMLStyleMap.js.map +1 -0
  7. package/lib/domToModel/context/createDomToModelContext.d.ts +23 -6
  8. package/lib/domToModel/context/createDomToModelContext.js +82 -20
  9. package/lib/domToModel/context/createDomToModelContext.js.map +1 -1
  10. package/lib/domToModel/domToContentModel.d.ts +4 -5
  11. package/lib/domToModel/domToContentModel.js +5 -7
  12. package/lib/domToModel/domToContentModel.js.map +1 -1
  13. package/lib/domToModel/utils/getDefaultStyle.js +2 -1
  14. package/lib/domToModel/utils/getDefaultStyle.js.map +1 -1
  15. package/lib/formatHandlers/defaultFormatHandlers.d.ts +6 -8
  16. package/lib/formatHandlers/defaultFormatHandlers.js +5 -40
  17. package/lib/formatHandlers/defaultFormatHandlers.js.map +1 -1
  18. package/lib/formatHandlers/utils/color.d.ts +4 -0
  19. package/lib/formatHandlers/utils/color.js +32 -1
  20. package/lib/formatHandlers/utils/color.js.map +1 -1
  21. package/lib/index.d.ts +4 -2
  22. package/lib/index.js +11 -3
  23. package/lib/index.js.map +1 -1
  24. package/lib/modelApi/common/applySegmentFormatToElement.d.ts +7 -0
  25. package/lib/modelApi/common/applySegmentFormatToElement.js +16 -0
  26. package/lib/modelApi/common/applySegmentFormatToElement.js.map +1 -0
  27. package/lib/modelApi/common/normalizeParagraph.js +22 -0
  28. package/lib/modelApi/common/normalizeParagraph.js.map +1 -1
  29. package/lib/modelApi/creators/createText.d.ts +4 -2
  30. package/lib/modelApi/creators/createText.js +12 -2
  31. package/lib/modelApi/creators/createText.js.map +1 -1
  32. package/lib/modelToDom/contentModelToDom.d.ts +5 -8
  33. package/lib/modelToDom/contentModelToDom.js +7 -11
  34. package/lib/modelToDom/contentModelToDom.js.map +1 -1
  35. package/lib/modelToDom/context/createModelToDomContext.d.ts +21 -5
  36. package/lib/modelToDom/context/createModelToDomContext.js +70 -11
  37. package/lib/modelToDom/context/createModelToDomContext.js.map +1 -1
  38. package/lib/modelToDom/context/defaultContentModelHandlers.js +4 -2
  39. package/lib/modelToDom/context/defaultContentModelHandlers.js.map +1 -1
  40. package/lib/modelToDom/handlers/handleBlock.js +2 -2
  41. package/lib/modelToDom/handlers/handleBlock.js.map +1 -1
  42. package/lib/modelToDom/handlers/handleBr.d.ts +2 -2
  43. package/lib/modelToDom/handlers/handleBr.js +2 -2
  44. package/lib/modelToDom/handlers/handleBr.js.map +1 -1
  45. package/lib/modelToDom/handlers/handleEntity.d.ts +6 -2
  46. package/lib/modelToDom/handlers/handleEntity.js +37 -19
  47. package/lib/modelToDom/handlers/handleEntity.js.map +1 -1
  48. package/lib/modelToDom/handlers/handleFormatContainer.js +5 -1
  49. package/lib/modelToDom/handlers/handleFormatContainer.js.map +1 -1
  50. package/lib/modelToDom/handlers/handleGeneralModel.d.ts +6 -2
  51. package/lib/modelToDom/handlers/handleGeneralModel.js +18 -9
  52. package/lib/modelToDom/handlers/handleGeneralModel.js.map +1 -1
  53. package/lib/modelToDom/handlers/handleImage.d.ts +2 -2
  54. package/lib/modelToDom/handlers/handleImage.js +2 -2
  55. package/lib/modelToDom/handlers/handleImage.js.map +1 -1
  56. package/lib/modelToDom/handlers/handleParagraph.js +3 -2
  57. package/lib/modelToDom/handlers/handleParagraph.js.map +1 -1
  58. package/lib/modelToDom/handlers/handleSegment.d.ts +2 -2
  59. package/lib/modelToDom/handlers/handleSegment.js +6 -6
  60. package/lib/modelToDom/handlers/handleSegment.js.map +1 -1
  61. package/lib/modelToDom/handlers/handleSegmentDecorator.d.ts +2 -2
  62. package/lib/modelToDom/handlers/handleSegmentDecorator.js +3 -1
  63. package/lib/modelToDom/handlers/handleSegmentDecorator.js.map +1 -1
  64. package/lib/modelToDom/handlers/handleText.d.ts +2 -2
  65. package/lib/modelToDom/handlers/handleText.js +2 -2
  66. package/lib/modelToDom/handlers/handleText.js.map +1 -1
  67. package/lib/modelToDom/utils/handleSegmentCommon.d.ts +1 -1
  68. package/lib/modelToDom/utils/handleSegmentCommon.js +3 -2
  69. package/lib/modelToDom/utils/handleSegmentCommon.js.map +1 -1
  70. package/lib/modelToDom/utils/stackFormat.js +2 -1
  71. package/lib/modelToDom/utils/stackFormat.js.map +1 -1
  72. package/lib-amd/config/defaultContentModelFormatMap.d.ts +6 -0
  73. package/lib-amd/config/defaultContentModelFormatMap.js +58 -0
  74. package/lib-amd/config/defaultContentModelFormatMap.js.map +1 -0
  75. package/lib-amd/config/defaultHTMLStyleMap.d.ts +5 -0
  76. package/lib-amd/{formatHandlers/utils/defaultStyles.js → config/defaultHTMLStyleMap.js} +3 -69
  77. package/lib-amd/config/defaultHTMLStyleMap.js.map +1 -0
  78. package/lib-amd/domToModel/context/createDomToModelContext.d.ts +23 -6
  79. package/lib-amd/domToModel/context/createDomToModelContext.js +81 -19
  80. package/lib-amd/domToModel/context/createDomToModelContext.js.map +1 -1
  81. package/lib-amd/domToModel/domToContentModel.d.ts +4 -5
  82. package/lib-amd/domToModel/domToContentModel.js +6 -7
  83. package/lib-amd/domToModel/domToContentModel.js.map +1 -1
  84. package/lib-amd/domToModel/utils/getDefaultStyle.js +2 -2
  85. package/lib-amd/domToModel/utils/getDefaultStyle.js.map +1 -1
  86. package/lib-amd/formatHandlers/defaultFormatHandlers.d.ts +6 -8
  87. package/lib-amd/formatHandlers/defaultFormatHandlers.js +5 -40
  88. package/lib-amd/formatHandlers/defaultFormatHandlers.js.map +1 -1
  89. package/lib-amd/formatHandlers/utils/color.d.ts +4 -0
  90. package/lib-amd/formatHandlers/utils/color.js +32 -1
  91. package/lib-amd/formatHandlers/utils/color.js.map +1 -1
  92. package/lib-amd/index.d.ts +4 -2
  93. package/lib-amd/index.js +9 -3
  94. package/lib-amd/index.js.map +1 -1
  95. package/lib-amd/modelApi/common/applySegmentFormatToElement.d.ts +7 -0
  96. package/lib-amd/modelApi/common/applySegmentFormatToElement.js +16 -0
  97. package/lib-amd/modelApi/common/applySegmentFormatToElement.js.map +1 -0
  98. package/lib-amd/modelApi/common/normalizeParagraph.js +22 -1
  99. package/lib-amd/modelApi/common/normalizeParagraph.js.map +1 -1
  100. package/lib-amd/modelApi/creators/createText.d.ts +4 -2
  101. package/lib-amd/modelApi/creators/createText.js +12 -3
  102. package/lib-amd/modelApi/creators/createText.js.map +1 -1
  103. package/lib-amd/modelToDom/contentModelToDom.d.ts +5 -8
  104. package/lib-amd/modelToDom/contentModelToDom.js +8 -11
  105. package/lib-amd/modelToDom/contentModelToDom.js.map +1 -1
  106. package/lib-amd/modelToDom/context/createModelToDomContext.d.ts +21 -5
  107. package/lib-amd/modelToDom/context/createModelToDomContext.js +70 -11
  108. package/lib-amd/modelToDom/context/createModelToDomContext.js.map +1 -1
  109. package/lib-amd/modelToDom/context/defaultContentModelHandlers.js +4 -2
  110. package/lib-amd/modelToDom/context/defaultContentModelHandlers.js.map +1 -1
  111. package/lib-amd/modelToDom/handlers/handleBlock.js +2 -2
  112. package/lib-amd/modelToDom/handlers/handleBlock.js.map +1 -1
  113. package/lib-amd/modelToDom/handlers/handleBr.d.ts +2 -2
  114. package/lib-amd/modelToDom/handlers/handleBr.js +2 -2
  115. package/lib-amd/modelToDom/handlers/handleBr.js.map +1 -1
  116. package/lib-amd/modelToDom/handlers/handleEntity.d.ts +6 -2
  117. package/lib-amd/modelToDom/handlers/handleEntity.js +37 -19
  118. package/lib-amd/modelToDom/handlers/handleEntity.js.map +1 -1
  119. package/lib-amd/modelToDom/handlers/handleFormatContainer.js +5 -1
  120. package/lib-amd/modelToDom/handlers/handleFormatContainer.js.map +1 -1
  121. package/lib-amd/modelToDom/handlers/handleGeneralModel.d.ts +6 -2
  122. package/lib-amd/modelToDom/handlers/handleGeneralModel.js +19 -9
  123. package/lib-amd/modelToDom/handlers/handleGeneralModel.js.map +1 -1
  124. package/lib-amd/modelToDom/handlers/handleImage.d.ts +2 -2
  125. package/lib-amd/modelToDom/handlers/handleImage.js +2 -2
  126. package/lib-amd/modelToDom/handlers/handleImage.js.map +1 -1
  127. package/lib-amd/modelToDom/handlers/handleParagraph.js +3 -2
  128. package/lib-amd/modelToDom/handlers/handleParagraph.js.map +1 -1
  129. package/lib-amd/modelToDom/handlers/handleSegment.d.ts +2 -2
  130. package/lib-amd/modelToDom/handlers/handleSegment.js +6 -6
  131. package/lib-amd/modelToDom/handlers/handleSegment.js.map +1 -1
  132. package/lib-amd/modelToDom/handlers/handleSegmentDecorator.d.ts +2 -2
  133. package/lib-amd/modelToDom/handlers/handleSegmentDecorator.js +3 -1
  134. package/lib-amd/modelToDom/handlers/handleSegmentDecorator.js.map +1 -1
  135. package/lib-amd/modelToDom/handlers/handleText.d.ts +2 -2
  136. package/lib-amd/modelToDom/handlers/handleText.js +2 -2
  137. package/lib-amd/modelToDom/handlers/handleText.js.map +1 -1
  138. package/lib-amd/modelToDom/utils/handleSegmentCommon.d.ts +1 -1
  139. package/lib-amd/modelToDom/utils/handleSegmentCommon.js +3 -2
  140. package/lib-amd/modelToDom/utils/handleSegmentCommon.js.map +1 -1
  141. package/lib-amd/modelToDom/utils/stackFormat.js +2 -2
  142. package/lib-amd/modelToDom/utils/stackFormat.js.map +1 -1
  143. package/lib-mjs/config/defaultContentModelFormatMap.d.ts +6 -0
  144. package/lib-mjs/config/defaultContentModelFormatMap.js +53 -0
  145. package/lib-mjs/config/defaultContentModelFormatMap.js.map +1 -0
  146. package/lib-mjs/config/defaultHTMLStyleMap.d.ts +5 -0
  147. package/lib-mjs/{formatHandlers/utils/defaultStyles.js → config/defaultHTMLStyleMap.js} +2 -68
  148. package/lib-mjs/config/defaultHTMLStyleMap.js.map +1 -0
  149. package/lib-mjs/domToModel/context/createDomToModelContext.d.ts +23 -6
  150. package/lib-mjs/domToModel/context/createDomToModelContext.js +78 -19
  151. package/lib-mjs/domToModel/context/createDomToModelContext.js.map +1 -1
  152. package/lib-mjs/domToModel/domToContentModel.d.ts +4 -5
  153. package/lib-mjs/domToModel/domToContentModel.js +5 -7
  154. package/lib-mjs/domToModel/domToContentModel.js.map +1 -1
  155. package/lib-mjs/domToModel/utils/getDefaultStyle.js +2 -1
  156. package/lib-mjs/domToModel/utils/getDefaultStyle.js.map +1 -1
  157. package/lib-mjs/formatHandlers/defaultFormatHandlers.d.ts +6 -8
  158. package/lib-mjs/formatHandlers/defaultFormatHandlers.js +4 -37
  159. package/lib-mjs/formatHandlers/defaultFormatHandlers.js.map +1 -1
  160. package/lib-mjs/formatHandlers/utils/color.d.ts +4 -0
  161. package/lib-mjs/formatHandlers/utils/color.js +31 -0
  162. package/lib-mjs/formatHandlers/utils/color.js.map +1 -1
  163. package/lib-mjs/index.d.ts +4 -2
  164. package/lib-mjs/index.js +4 -2
  165. package/lib-mjs/index.js.map +1 -1
  166. package/lib-mjs/modelApi/common/applySegmentFormatToElement.d.ts +7 -0
  167. package/lib-mjs/modelApi/common/applySegmentFormatToElement.js +12 -0
  168. package/lib-mjs/modelApi/common/applySegmentFormatToElement.js.map +1 -0
  169. package/lib-mjs/modelApi/common/normalizeParagraph.js +22 -0
  170. package/lib-mjs/modelApi/common/normalizeParagraph.js.map +1 -1
  171. package/lib-mjs/modelApi/creators/createText.d.ts +4 -2
  172. package/lib-mjs/modelApi/creators/createText.js +12 -2
  173. package/lib-mjs/modelApi/creators/createText.js.map +1 -1
  174. package/lib-mjs/modelToDom/contentModelToDom.d.ts +5 -8
  175. package/lib-mjs/modelToDom/contentModelToDom.js +7 -11
  176. package/lib-mjs/modelToDom/contentModelToDom.js.map +1 -1
  177. package/lib-mjs/modelToDom/context/createModelToDomContext.d.ts +21 -5
  178. package/lib-mjs/modelToDom/context/createModelToDomContext.js +67 -11
  179. package/lib-mjs/modelToDom/context/createModelToDomContext.js.map +1 -1
  180. package/lib-mjs/modelToDom/context/defaultContentModelHandlers.js +6 -4
  181. package/lib-mjs/modelToDom/context/defaultContentModelHandlers.js.map +1 -1
  182. package/lib-mjs/modelToDom/handlers/handleBlock.js +2 -2
  183. package/lib-mjs/modelToDom/handlers/handleBlock.js.map +1 -1
  184. package/lib-mjs/modelToDom/handlers/handleBr.d.ts +2 -2
  185. package/lib-mjs/modelToDom/handlers/handleBr.js +2 -2
  186. package/lib-mjs/modelToDom/handlers/handleBr.js.map +1 -1
  187. package/lib-mjs/modelToDom/handlers/handleEntity.d.ts +6 -2
  188. package/lib-mjs/modelToDom/handlers/handleEntity.js +34 -17
  189. package/lib-mjs/modelToDom/handlers/handleEntity.js.map +1 -1
  190. package/lib-mjs/modelToDom/handlers/handleFormatContainer.js +5 -1
  191. package/lib-mjs/modelToDom/handlers/handleFormatContainer.js.map +1 -1
  192. package/lib-mjs/modelToDom/handlers/handleGeneralModel.d.ts +6 -2
  193. package/lib-mjs/modelToDom/handlers/handleGeneralModel.js +15 -7
  194. package/lib-mjs/modelToDom/handlers/handleGeneralModel.js.map +1 -1
  195. package/lib-mjs/modelToDom/handlers/handleImage.d.ts +2 -2
  196. package/lib-mjs/modelToDom/handlers/handleImage.js +2 -2
  197. package/lib-mjs/modelToDom/handlers/handleImage.js.map +1 -1
  198. package/lib-mjs/modelToDom/handlers/handleParagraph.js +3 -2
  199. package/lib-mjs/modelToDom/handlers/handleParagraph.js.map +1 -1
  200. package/lib-mjs/modelToDom/handlers/handleSegment.d.ts +2 -2
  201. package/lib-mjs/modelToDom/handlers/handleSegment.js +6 -6
  202. package/lib-mjs/modelToDom/handlers/handleSegment.js.map +1 -1
  203. package/lib-mjs/modelToDom/handlers/handleSegmentDecorator.d.ts +2 -2
  204. package/lib-mjs/modelToDom/handlers/handleSegmentDecorator.js +3 -1
  205. package/lib-mjs/modelToDom/handlers/handleSegmentDecorator.js.map +1 -1
  206. package/lib-mjs/modelToDom/handlers/handleText.d.ts +2 -2
  207. package/lib-mjs/modelToDom/handlers/handleText.js +2 -2
  208. package/lib-mjs/modelToDom/handlers/handleText.js.map +1 -1
  209. package/lib-mjs/modelToDom/utils/handleSegmentCommon.d.ts +1 -1
  210. package/lib-mjs/modelToDom/utils/handleSegmentCommon.js +3 -2
  211. package/lib-mjs/modelToDom/utils/handleSegmentCommon.js.map +1 -1
  212. package/lib-mjs/modelToDom/utils/stackFormat.js +2 -1
  213. package/lib-mjs/modelToDom/utils/stackFormat.js.map +1 -1
  214. package/package.json +4 -4
  215. package/lib/formatHandlers/utils/defaultStyles.d.ts +0 -15
  216. package/lib/formatHandlers/utils/defaultStyles.js.map +0 -1
  217. package/lib-amd/formatHandlers/utils/defaultStyles.d.ts +0 -15
  218. package/lib-amd/formatHandlers/utils/defaultStyles.js.map +0 -1
  219. package/lib-mjs/formatHandlers/utils/defaultStyles.d.ts +0 -15
  220. package/lib-mjs/formatHandlers/utils/defaultStyles.js.map +0 -1
@@ -0,0 +1,6 @@
1
+ import { DefaultImplicitFormatMap } from 'roosterjs-content-model-types';
2
+ /**
3
+ * @internal
4
+ * A map from tag name to its default implicit formats
5
+ */
6
+ export declare const defaultContentModelFormatMap: DefaultImplicitFormatMap;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultContentModelFormatMap = void 0;
4
+ /**
5
+ * @internal
6
+ * A map from tag name to its default implicit formats
7
+ */
8
+ exports.defaultContentModelFormatMap = {
9
+ a: {
10
+ underline: true,
11
+ },
12
+ blockquote: {
13
+ marginTop: '1em',
14
+ marginBottom: '1em',
15
+ marginLeft: '40px',
16
+ marginRight: '40px',
17
+ },
18
+ code: {
19
+ fontFamily: 'monospace',
20
+ },
21
+ h1: {
22
+ fontWeight: 'bold',
23
+ fontSize: '2em',
24
+ },
25
+ h2: {
26
+ fontWeight: 'bold',
27
+ fontSize: '1.5em',
28
+ },
29
+ h3: {
30
+ fontWeight: 'bold',
31
+ fontSize: '1.17em',
32
+ },
33
+ h4: {
34
+ fontWeight: 'bold',
35
+ fontSize: '1em', // Set this default value here to overwrite existing font size when change heading level
36
+ },
37
+ h5: {
38
+ fontWeight: 'bold',
39
+ fontSize: '0.83em',
40
+ },
41
+ h6: {
42
+ fontWeight: 'bold',
43
+ fontSize: '0.67em',
44
+ },
45
+ p: {
46
+ marginTop: '1em',
47
+ marginBottom: '1em',
48
+ },
49
+ pre: {
50
+ fontFamily: 'monospace',
51
+ whiteSpace: 'pre',
52
+ marginTop: '1em',
53
+ marginBottom: '1em',
54
+ },
55
+ };
56
+ //# sourceMappingURL=defaultContentModelFormatMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultContentModelFormatMap.js","sourceRoot":"","sources":["../../../../packages-content-model/roosterjs-content-model-dom/lib/config/defaultContentModelFormatMap.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACU,QAAA,4BAA4B,GAA6B;IAClE,CAAC,EAAE;QACC,SAAS,EAAE,IAAI;KAClB;IACD,UAAU,EAAE;QACR,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,MAAM;QAClB,WAAW,EAAE,MAAM;KACtB;IACD,IAAI,EAAE;QACF,UAAU,EAAE,WAAW;KAC1B;IACD,EAAE,EAAE;QACA,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,KAAK;KAClB;IACD,EAAE,EAAE;QACA,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,OAAO;KACpB;IACD,EAAE,EAAE;QACA,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,QAAQ;KACrB;IACD,EAAE,EAAE;QACA,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,KAAK,EAAE,wFAAwF;KAC5G;IACD,EAAE,EAAE;QACA,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,QAAQ;KACrB;IACD,EAAE,EAAE;QACA,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,QAAQ;KACrB;IACD,CAAC,EAAE;QACC,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,KAAK;KACtB;IACD,GAAG,EAAE;QACD,UAAU,EAAE,WAAW;QACvB,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,KAAK;KACtB;CACJ,CAAC","sourcesContent":["import { DefaultImplicitFormatMap } from 'roosterjs-content-model-types';\n\n/**\n * @internal\n * A map from tag name to its default implicit formats\n */\nexport const defaultContentModelFormatMap: DefaultImplicitFormatMap = {\n a: {\n underline: true,\n },\n blockquote: {\n marginTop: '1em',\n marginBottom: '1em',\n marginLeft: '40px',\n marginRight: '40px',\n },\n code: {\n fontFamily: 'monospace',\n },\n h1: {\n fontWeight: 'bold',\n fontSize: '2em',\n },\n h2: {\n fontWeight: 'bold',\n fontSize: '1.5em',\n },\n h3: {\n fontWeight: 'bold',\n fontSize: '1.17em',\n },\n h4: {\n fontWeight: 'bold',\n fontSize: '1em', // Set this default value here to overwrite existing font size when change heading level\n },\n h5: {\n fontWeight: 'bold',\n fontSize: '0.83em',\n },\n h6: {\n fontWeight: 'bold',\n fontSize: '0.67em',\n },\n p: {\n marginTop: '1em',\n marginBottom: '1em',\n },\n pre: {\n fontFamily: 'monospace',\n whiteSpace: 'pre',\n marginTop: '1em',\n marginBottom: '1em',\n },\n};\n"]}
@@ -0,0 +1,5 @@
1
+ import { DefaultStyleMap } from 'roosterjs-content-model-types';
2
+ /**
3
+ * @internal
4
+ */
5
+ export declare const defaultHTMLStyleMap: DefaultStyleMap;
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.defaultImplicitFormatMap = exports.PseudoTagNames = exports.defaultStyleMap = void 0;
3
+ exports.defaultHTMLStyleMap = void 0;
5
4
  var blockElement = {
6
5
  display: 'block',
7
6
  };
8
7
  /**
9
8
  * @internal
10
9
  */
11
- exports.defaultStyleMap = {
10
+ exports.defaultHTMLStyleMap = {
12
11
  address: blockElement,
13
12
  article: blockElement,
14
13
  aside: blockElement,
@@ -124,69 +123,4 @@ exports.defaultStyleMap = {
124
123
  },
125
124
  ul: blockElement,
126
125
  };
127
- /**
128
- * @internal
129
- */
130
- var PseudoTagNames;
131
- (function (PseudoTagNames) {
132
- PseudoTagNames["childOfPre"] = "pre *";
133
- })(PseudoTagNames = exports.PseudoTagNames || (exports.PseudoTagNames = {}));
134
- /**
135
- * A map from tag name to its default implicit formats
136
- */
137
- exports.defaultImplicitFormatMap = (_a = {
138
- a: {
139
- underline: true,
140
- },
141
- blockquote: {
142
- marginTop: '1em',
143
- marginBottom: '1em',
144
- marginLeft: '40px',
145
- marginRight: '40px',
146
- },
147
- code: {
148
- fontFamily: 'monospace',
149
- },
150
- h1: {
151
- fontWeight: 'bold',
152
- fontSize: '2em',
153
- },
154
- h2: {
155
- fontWeight: 'bold',
156
- fontSize: '1.5em',
157
- },
158
- h3: {
159
- fontWeight: 'bold',
160
- fontSize: '1.17em',
161
- },
162
- h4: {
163
- fontWeight: 'bold',
164
- fontSize: '1em', // Set this default value here to overwrite existing font size when change heading level
165
- },
166
- h5: {
167
- fontWeight: 'bold',
168
- fontSize: '0.83em',
169
- },
170
- h6: {
171
- fontWeight: 'bold',
172
- fontSize: '0.67em',
173
- },
174
- p: {
175
- marginTop: '1em',
176
- marginBottom: '1em',
177
- },
178
- pre: {
179
- fontFamily: 'monospace',
180
- whiteSpace: 'pre',
181
- marginTop: '1em',
182
- marginBottom: '1em',
183
- }
184
- },
185
- // For PRE tag, the following styles will be included from the PRE tag.
186
- // Adding this implicit style here so no need to generate these style for child elements
187
- _a["pre *" /* childOfPre */] = {
188
- fontFamily: 'monospace',
189
- whiteSpace: 'pre',
190
- },
191
- _a);
192
- //# sourceMappingURL=defaultStyles.js.map
126
+ //# sourceMappingURL=defaultHTMLStyleMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultHTMLStyleMap.js","sourceRoot":"","sources":["../../../../packages-content-model/roosterjs-content-model-dom/lib/config/defaultHTMLStyleMap.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAiC;IAC/C,OAAO,EAAE,OAAO;CACnB,CAAC;AAEF;;GAEG;AACU,QAAA,mBAAmB,GAAoB;IAChD,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,YAAY;IACrB,KAAK,EAAE,YAAY;IACnB,CAAC,EAAE;QACC,UAAU,EAAE,MAAM;KACrB;IACD,UAAU,EAAE;QACR,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,MAAM;QAClB,WAAW,EAAE,MAAM;KACtB;IACD,EAAE,EAAE,YAAY;IAChB,MAAM,EAAE;QACJ,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,QAAQ;KACtB;IACD,EAAE,EAAE,YAAY;IAChB,GAAG,EAAE,YAAY;IACjB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE;QACA,SAAS,EAAE,QAAQ;KACtB;IACD,QAAQ,EAAE,YAAY;IACtB,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE;QACA,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,KAAK;KAClB;IACD,EAAE,EAAE;QACA,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,OAAO;KACpB;IACD,EAAE,EAAE;QACA,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,QAAQ;KACrB;IACD,EAAE,EAAE;QACA,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,MAAM;KACrB;IACD,EAAE,EAAE;QACA,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,QAAQ;KACrB;IACD,EAAE,EAAE;QACA,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,QAAQ;KACrB;IACD,MAAM,EAAE,YAAY;IACpB,EAAE,EAAE,YAAY;IAChB,CAAC,EAAE;QACC,SAAS,EAAE,QAAQ;KACtB;IACD,EAAE,EAAE;QACA,OAAO,EAAE,WAAW;KACvB;IACD,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,YAAY;IACjB,EAAE,EAAE,YAAY;IAChB,CAAC,EAAE;QACC,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,KAAK;KACtB;IACD,GAAG,EAAE;QACD,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,WAAW;QACvB,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,KAAK;KACtB;IACD,CAAC,EAAE;QACC,cAAc,EAAE,cAAc;KACjC;IACD,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE;QACJ,cAAc,EAAE,cAAc;KACjC;IACD,MAAM,EAAE;QACJ,UAAU,EAAE,MAAM;KACrB;IACD,GAAG,EAAE;QACD,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,SAAS;KACtB;IACD,GAAG,EAAE;QACD,aAAa,EAAE,OAAO;QACtB,QAAQ,EAAE,SAAS;KACtB;IACD,KAAK,EAAE;QACH,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,YAAY;KAC1B;IACD,EAAE,EAAE;QACA,OAAO,EAAE,YAAY;KACxB;IACD,EAAE,EAAE;QACA,OAAO,EAAE,YAAY;KACxB;IACD,CAAC,EAAE;QACC,cAAc,EAAE,WAAW;KAC9B;IACD,EAAE,EAAE,YAAY;CACnB,CAAC","sourcesContent":["import { DefaultStyleMap } from 'roosterjs-content-model-types';\n\nconst blockElement: Partial<CSSStyleDeclaration> = {\n display: 'block',\n};\n\n/**\n * @internal\n */\nexport const defaultHTMLStyleMap: DefaultStyleMap = {\n address: blockElement,\n article: blockElement,\n aside: blockElement,\n b: {\n fontWeight: 'bold',\n },\n blockquote: {\n display: 'block',\n marginTop: '1em',\n marginBottom: '1em',\n marginLeft: '40px',\n marginRight: '40px',\n },\n br: blockElement,\n center: {\n display: 'block',\n textAlign: 'center',\n },\n dd: blockElement,\n div: blockElement,\n dl: blockElement,\n dt: blockElement,\n em: {\n fontStyle: 'italic',\n },\n fieldset: blockElement,\n figcaption: blockElement,\n figure: blockElement,\n footer: blockElement,\n form: blockElement,\n h1: {\n display: 'block',\n fontWeight: 'bold',\n fontSize: '2em',\n },\n h2: {\n display: 'block',\n fontWeight: 'bold',\n fontSize: '1.5em',\n },\n h3: {\n display: 'block',\n fontWeight: 'bold',\n fontSize: '1.17em',\n },\n h4: {\n display: 'block',\n fontWeight: 'bold',\n },\n h5: {\n display: 'block',\n fontWeight: 'bold',\n fontSize: '0.83em',\n },\n h6: {\n display: 'block',\n fontWeight: 'bold',\n fontSize: '0.67em',\n },\n header: blockElement,\n hr: blockElement,\n i: {\n fontStyle: 'italic',\n },\n li: {\n display: 'list-item',\n },\n main: blockElement,\n nav: blockElement,\n ol: blockElement,\n p: {\n display: 'block',\n marginTop: '1em',\n marginBottom: '1em',\n },\n pre: {\n display: 'block',\n fontFamily: 'monospace',\n whiteSpace: 'pre',\n marginTop: '1em',\n marginBottom: '1em',\n },\n s: {\n textDecoration: 'line-through',\n },\n section: blockElement,\n strike: {\n textDecoration: 'line-through',\n },\n strong: {\n fontWeight: 'bold',\n },\n sub: {\n verticalAlign: 'sub',\n fontSize: 'smaller',\n },\n sup: {\n verticalAlign: 'super',\n fontSize: 'smaller',\n },\n table: {\n display: 'table',\n boxSizing: 'border-box',\n },\n td: {\n display: 'table-cell',\n },\n th: {\n display: 'table-cell',\n },\n u: {\n textDecoration: 'underline',\n },\n ul: blockElement,\n};\n"]}
@@ -1,9 +1,26 @@
1
- import { DomToModelContext, DomToModelOption, EditorContext } from 'roosterjs-content-model-types';
2
- import { SelectionRangeEx } from 'roosterjs-editor-types';
1
+ import { DomToModelContext, DomToModelOption, DomToModelSettings, EditorContext, FormatParsers, FormatParsersPerCategory } from 'roosterjs-content-model-types';
3
2
  /**
4
- * Create context object form DOM to Content Model conversion
3
+ * Create context object for DOM to Content Model conversion
5
4
  * @param editorContext Context of editor
6
- * @param options Options for this context
7
- * @param selection Selection that already exists in content
5
+ * @param options Option array to customize the DOM to Model conversion behavior
8
6
  */
9
- export declare function createDomToModelContext(editorContext?: EditorContext, options?: DomToModelOption, selection?: SelectionRangeEx): DomToModelContext;
7
+ export declare function createDomToModelContext(editorContext?: EditorContext, ...options: (DomToModelOption | undefined)[]): DomToModelContext;
8
+ /**
9
+ * Create context object for DOM to Content Model conversion with an existing configure
10
+ * @param config A full config object to define how to convert DOM tree to Content Model
11
+ * @param editorContext Context of editor
12
+ */
13
+ export declare function createDomToModelContextWithConfig(config: DomToModelSettings, editorContext?: EditorContext): any;
14
+ /**
15
+ * Create Dom to Content Model Config object
16
+ * @param options All customizations of content model creation
17
+ */
18
+ export declare function createDomToModelConfig(options: (DomToModelOption | undefined)[]): DomToModelSettings;
19
+ /**
20
+ * @internal Export for test only
21
+ * Build format parsers used by DOM to Content Model conversion
22
+ * @param override
23
+ * @param additionalParsersArray
24
+ * @returns
25
+ */
26
+ export declare function buildFormatParsers(overrides?: (Partial<FormatParsers> | undefined)[], additionalParsersArray?: (Partial<FormatParsersPerCategory> | undefined)[]): FormatParsersPerCategory;
@@ -1,36 +1,98 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDomToModelContext = void 0;
3
+ exports.buildFormatParsers = exports.createDomToModelConfig = exports.createDomToModelContextWithConfig = exports.createDomToModelContext = void 0;
4
4
  var tslib_1 = require("tslib");
5
- var defaultFormatHandlers_1 = require("../../formatHandlers/defaultFormatHandlers");
6
5
  var defaultProcessors_1 = require("./defaultProcessors");
7
- var defaultStyles_1 = require("../../formatHandlers/utils/defaultStyles");
6
+ var roosterjs_editor_dom_1 = require("roosterjs-editor-dom");
7
+ var defaultFormatHandlers_1 = require("../../formatHandlers/defaultFormatHandlers");
8
+ /**
9
+ * Create context object for DOM to Content Model conversion
10
+ * @param editorContext Context of editor
11
+ * @param options Option array to customize the DOM to Model conversion behavior
12
+ */
13
+ function createDomToModelContext(editorContext) {
14
+ var options = [];
15
+ for (var _i = 1; _i < arguments.length; _i++) {
16
+ options[_i - 1] = arguments[_i];
17
+ }
18
+ return createDomToModelContextWithConfig(createDomToModelConfig(options), editorContext);
19
+ }
20
+ exports.createDomToModelContext = createDomToModelContext;
8
21
  /**
9
- * Create context object form DOM to Content Model conversion
22
+ * Create context object for DOM to Content Model conversion with an existing configure
23
+ * @param config A full config object to define how to convert DOM tree to Content Model
10
24
  * @param editorContext Context of editor
11
- * @param options Options for this context
12
- * @param selection Selection that already exists in content
13
25
  */
14
- function createDomToModelContext(editorContext, options, selection) {
15
- var context = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, editorContext), { blockFormat: {}, segmentFormat: {}, isInSelection: false, listFormat: {
26
+ function createDomToModelContextWithConfig(config, editorContext) {
27
+ return Object.assign({}, editorContext, createDomToModelSelectionContext(), createDomToModelFormatContext(editorContext === null || editorContext === void 0 ? void 0 : editorContext.isRootRtl), createDomToModelDecoratorContext(), config);
28
+ }
29
+ exports.createDomToModelContextWithConfig = createDomToModelContextWithConfig;
30
+ function createDomToModelSelectionContext() {
31
+ return { isInSelection: false };
32
+ }
33
+ function createDomToModelFormatContext(isRootRtl) {
34
+ var blockFormat = isRootRtl ? { direction: 'rtl' } : {};
35
+ return {
36
+ blockFormat: blockFormat,
37
+ segmentFormat: {},
38
+ listFormat: {
16
39
  levels: [],
17
40
  threadItemCounts: [],
18
- }, link: {
41
+ },
42
+ };
43
+ }
44
+ function createDomToModelDecoratorContext() {
45
+ return {
46
+ link: {
19
47
  format: {},
20
48
  dataset: {},
21
- }, code: {
49
+ },
50
+ code: {
22
51
  format: {},
23
- }, blockDecorator: {
52
+ },
53
+ blockDecorator: {
24
54
  format: {},
25
55
  tagName: '',
26
- }, elementProcessors: (0, tslib_1.__assign)((0, tslib_1.__assign)({}, defaultProcessors_1.defaultProcessorMap), ((options === null || options === void 0 ? void 0 : options.processorOverride) || {})), defaultStyles: (0, tslib_1.__assign)((0, tslib_1.__assign)({}, defaultStyles_1.defaultStyleMap), ((options === null || options === void 0 ? void 0 : options.defaultStyleOverride) || {})), formatParsers: (0, defaultFormatHandlers_1.getFormatParsers)(options === null || options === void 0 ? void 0 : options.formatParserOverride, options === null || options === void 0 ? void 0 : options.additionalFormatParsers), defaultElementProcessors: defaultProcessors_1.defaultProcessorMap, defaultFormatParsers: defaultFormatHandlers_1.defaultFormatParsers });
27
- if (editorContext === null || editorContext === void 0 ? void 0 : editorContext.isRootRtl) {
28
- context.blockFormat.direction = 'rtl';
29
- }
30
- if (selection) {
31
- context.rangeEx = selection;
32
- }
33
- return context;
56
+ },
57
+ };
34
58
  }
35
- exports.createDomToModelContext = createDomToModelContext;
59
+ /**
60
+ * Create Dom to Content Model Config object
61
+ * @param options All customizations of content model creation
62
+ */
63
+ function createDomToModelConfig(options) {
64
+ return {
65
+ elementProcessors: Object.assign.apply(Object, (0, tslib_1.__spreadArray)([{},
66
+ defaultProcessors_1.defaultProcessorMap], (0, tslib_1.__read)(options.map(function (x) { return x === null || x === void 0 ? void 0 : x.processorOverride; })), false)),
67
+ formatParsers: buildFormatParsers(options.map(function (x) { return x === null || x === void 0 ? void 0 : x.formatParserOverride; }), options.map(function (x) { return x === null || x === void 0 ? void 0 : x.additionalFormatParsers; })),
68
+ defaultElementProcessors: defaultProcessors_1.defaultProcessorMap,
69
+ defaultFormatParsers: defaultFormatHandlers_1.defaultFormatParsers,
70
+ };
71
+ }
72
+ exports.createDomToModelConfig = createDomToModelConfig;
73
+ /**
74
+ * @internal Export for test only
75
+ * Build format parsers used by DOM to Content Model conversion
76
+ * @param override
77
+ * @param additionalParsersArray
78
+ * @returns
79
+ */
80
+ function buildFormatParsers(overrides, additionalParsersArray) {
81
+ if (overrides === void 0) { overrides = []; }
82
+ if (additionalParsersArray === void 0) { additionalParsersArray = []; }
83
+ var combinedOverrides = Object.assign.apply(Object, (0, tslib_1.__spreadArray)([{}], (0, tslib_1.__read)(overrides), false));
84
+ return (0, roosterjs_editor_dom_1.getObjectKeys)(defaultFormatHandlers_1.defaultFormatKeysPerCategory).reduce(function (result, key) {
85
+ var _a;
86
+ var value = (_a = defaultFormatHandlers_1.defaultFormatKeysPerCategory[key]
87
+ .map(function (formatKey) {
88
+ return (combinedOverrides[formatKey] === undefined
89
+ ? defaultFormatHandlers_1.defaultFormatParsers[formatKey]
90
+ : combinedOverrides[formatKey]);
91
+ }))
92
+ .concat.apply(_a, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(additionalParsersArray.map(function (parsers) { var _a; return ((_a = parsers === null || parsers === void 0 ? void 0 : parsers[key]) !== null && _a !== void 0 ? _a : []); })), false));
93
+ result[key] = value;
94
+ return result;
95
+ }, {});
96
+ }
97
+ exports.buildFormatParsers = buildFormatParsers;
36
98
  //# sourceMappingURL=createDomToModelContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createDomToModelContext.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-dom/lib/domToModel/context/createDomToModelContext.ts"],"names":[],"mappings":";;;;AAAA,oFAAoG;AACpG,yDAA0D;AAC1D,0EAA2E;AAI3E;;;;;GAKG;AACH,SAAgB,uBAAuB,CACnC,aAA6B,EAC7B,OAA0B,EAC1B,SAA4B;IAE5B,IAAM,OAAO,mDACN,aAAa,KAEhB,WAAW,EAAE,EAAE,EACf,aAAa,EAAE,EAAE,EACjB,aAAa,EAAE,KAAK,EAEpB,UAAU,EAAE;YACR,MAAM,EAAE,EAAE;YACV,gBAAgB,EAAE,EAAE;SACvB,EACD,IAAI,EAAE;YACF,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;SACd,EACD,IAAI,EAAE;YACF,MAAM,EAAE,EAAE;SACb,EACD,cAAc,EAAE;YACZ,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;SACd,EAED,iBAAiB,kDACV,uCAAmB,GACnB,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,KAAI,EAAE,CAAC,GAGzC,aAAa,kDACN,+BAAe,GACf,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,oBAAoB,KAAI,EAAE,CAAC,GAG5C,aAAa,EAAE,IAAA,wCAAgB,EAC3B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,oBAAoB,EAC7B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,uBAAuB,CACnC,EAED,wBAAwB,EAAE,uCAAmB,EAC7C,oBAAoB,EAAE,4CAAoB,GAC7C,CAAC;IAEF,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,EAAE;QAC1B,OAAO,CAAC,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC;KACzC;IAED,IAAI,SAAS,EAAE;QACX,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;KAC/B;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAxDD,0DAwDC","sourcesContent":["import { defaultFormatParsers, getFormatParsers } from '../../formatHandlers/defaultFormatHandlers';\nimport { defaultProcessorMap } from './defaultProcessors';\nimport { defaultStyleMap } from '../../formatHandlers/utils/defaultStyles';\nimport { DomToModelContext, DomToModelOption, EditorContext } from 'roosterjs-content-model-types';\nimport { SelectionRangeEx } from 'roosterjs-editor-types';\n\n/**\n * Create context object form DOM to Content Model conversion\n * @param editorContext Context of editor\n * @param options Options for this context\n * @param selection Selection that already exists in content\n */\nexport function createDomToModelContext(\n editorContext?: EditorContext,\n options?: DomToModelOption,\n selection?: SelectionRangeEx\n): DomToModelContext {\n const context: DomToModelContext = {\n ...editorContext,\n\n blockFormat: {},\n segmentFormat: {},\n isInSelection: false,\n\n listFormat: {\n levels: [],\n threadItemCounts: [],\n },\n link: {\n format: {},\n dataset: {},\n },\n code: {\n format: {},\n },\n blockDecorator: {\n format: {},\n tagName: '',\n },\n\n elementProcessors: {\n ...defaultProcessorMap,\n ...(options?.processorOverride || {}),\n },\n\n defaultStyles: {\n ...defaultStyleMap,\n ...(options?.defaultStyleOverride || {}),\n },\n\n formatParsers: getFormatParsers(\n options?.formatParserOverride,\n options?.additionalFormatParsers\n ),\n\n defaultElementProcessors: defaultProcessorMap,\n defaultFormatParsers: defaultFormatParsers,\n };\n\n if (editorContext?.isRootRtl) {\n context.blockFormat.direction = 'rtl';\n }\n\n if (selection) {\n context.rangeEx = selection;\n }\n\n return context;\n}\n"]}
1
+ {"version":3,"file":"createDomToModelContext.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-dom/lib/domToModel/context/createDomToModelContext.ts"],"names":[],"mappings":"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","sourcesContent":["import { defaultProcessorMap } from './defaultProcessors';\nimport { getObjectKeys } from 'roosterjs-editor-dom';\nimport {\n defaultFormatKeysPerCategory,\n defaultFormatParsers,\n} from '../../formatHandlers/defaultFormatHandlers';\nimport {\n ContentModelBlockFormat,\n DomToModelContext,\n DomToModelDecoratorContext,\n DomToModelFormatContext,\n DomToModelOption,\n DomToModelSelectionContext,\n DomToModelSettings,\n EditorContext,\n FormatParser,\n FormatParsers,\n FormatParsersPerCategory,\n} from 'roosterjs-content-model-types';\n\n/**\n * Create context object for DOM to Content Model conversion\n * @param editorContext Context of editor\n * @param options Option array to customize the DOM to Model conversion behavior\n */\nexport function createDomToModelContext(\n editorContext?: EditorContext,\n ...options: (DomToModelOption | undefined)[]\n): DomToModelContext {\n return createDomToModelContextWithConfig(createDomToModelConfig(options), editorContext);\n}\n\n/**\n * Create context object for DOM to Content Model conversion with an existing configure\n * @param config A full config object to define how to convert DOM tree to Content Model\n * @param editorContext Context of editor\n */\nexport function createDomToModelContextWithConfig(\n config: DomToModelSettings,\n editorContext?: EditorContext\n) {\n return Object.assign(\n {},\n editorContext,\n createDomToModelSelectionContext(),\n createDomToModelFormatContext(editorContext?.isRootRtl),\n createDomToModelDecoratorContext(),\n config\n );\n}\n\nfunction createDomToModelSelectionContext(): DomToModelSelectionContext {\n return { isInSelection: false };\n}\n\nfunction createDomToModelFormatContext(isRootRtl?: boolean): DomToModelFormatContext {\n const blockFormat: ContentModelBlockFormat = isRootRtl ? { direction: 'rtl' } : {};\n\n return {\n blockFormat,\n segmentFormat: {},\n\n listFormat: {\n levels: [],\n threadItemCounts: [],\n },\n };\n}\n\nfunction createDomToModelDecoratorContext(): DomToModelDecoratorContext {\n return {\n link: {\n format: {},\n dataset: {},\n },\n code: {\n format: {},\n },\n blockDecorator: {\n format: {},\n tagName: '',\n },\n };\n}\n\n/**\n * Create Dom to Content Model Config object\n * @param options All customizations of content model creation\n */\nexport function createDomToModelConfig(\n options: (DomToModelOption | undefined)[]\n): DomToModelSettings {\n return {\n elementProcessors: Object.assign(\n {},\n defaultProcessorMap,\n ...options.map(x => x?.processorOverride)\n ),\n formatParsers: buildFormatParsers(\n options.map(x => x?.formatParserOverride),\n options.map(x => x?.additionalFormatParsers)\n ),\n defaultElementProcessors: defaultProcessorMap,\n defaultFormatParsers,\n };\n}\n\n/**\n * @internal Export for test only\n * Build format parsers used by DOM to Content Model conversion\n * @param override\n * @param additionalParsersArray\n * @returns\n */\nexport function buildFormatParsers(\n overrides: (Partial<FormatParsers> | undefined)[] = [],\n additionalParsersArray: (Partial<FormatParsersPerCategory> | undefined)[] = []\n): FormatParsersPerCategory {\n const combinedOverrides = Object.assign({}, ...overrides);\n\n return getObjectKeys(defaultFormatKeysPerCategory).reduce((result, key) => {\n const value = defaultFormatKeysPerCategory[key]\n .map(\n formatKey =>\n (combinedOverrides[formatKey] === undefined\n ? defaultFormatParsers[formatKey]\n : combinedOverrides[formatKey]) as FormatParser<any>\n )\n .concat(\n ...additionalParsersArray.map(\n parsers => (parsers?.[key] ?? []) as FormatParser<any>[]\n )\n );\n\n result[key] = value;\n\n return result;\n }, {} as FormatParsersPerCategory);\n}\n"]}
@@ -1,11 +1,10 @@
1
+ import { ContentModelDocument, DomToModelContext } from 'roosterjs-content-model-types';
1
2
  import { SelectionRangeEx } from 'roosterjs-editor-types';
2
- import { ContentModelDocument, DomToModelOption, EditorContext } from 'roosterjs-content-model-types';
3
3
  /**
4
4
  * Create Content Model from DOM tree in this editor
5
5
  * @param root Root element of DOM tree to create Content Model from
6
- * @param option The option to customize the behavior of DOM to Content Model conversion
7
- * @param editorContext Context of content model editor
8
- * @param selection Existing selection range in editor
6
+ * @param context Context object for DOM to Content Model conversion
7
+ * @param selection Selection that already exists in content
9
8
  * @returns A ContentModelDocument object that contains all the models created from the give root element
10
9
  */
11
- export declare function domToContentModel(root: HTMLElement | DocumentFragment, option?: DomToModelOption, editorContext?: EditorContext, selection?: SelectionRangeEx): ContentModelDocument;
10
+ export declare function domToContentModel(root: HTMLElement | DocumentFragment, context: DomToModelContext, selection?: SelectionRangeEx): ContentModelDocument;
@@ -2,19 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.domToContentModel = void 0;
4
4
  var createContentModelDocument_1 = require("../modelApi/creators/createContentModelDocument");
5
- var createDomToModelContext_1 = require("./context/createDomToModelContext");
6
5
  var normalizeContentModel_1 = require("../modelApi/common/normalizeContentModel");
7
6
  /**
8
7
  * Create Content Model from DOM tree in this editor
9
8
  * @param root Root element of DOM tree to create Content Model from
10
- * @param option The option to customize the behavior of DOM to Content Model conversion
11
- * @param editorContext Context of content model editor
12
- * @param selection Existing selection range in editor
9
+ * @param context Context object for DOM to Content Model conversion
10
+ * @param selection Selection that already exists in content
13
11
  * @returns A ContentModelDocument object that contains all the models created from the give root element
14
12
  */
15
- function domToContentModel(root, option, editorContext, selection) {
16
- var model = (0, createContentModelDocument_1.createContentModelDocument)(editorContext === null || editorContext === void 0 ? void 0 : editorContext.defaultFormat);
17
- var context = (0, createDomToModelContext_1.createDomToModelContext)(editorContext, option, selection);
13
+ function domToContentModel(root, context, selection) {
14
+ var model = (0, createContentModelDocument_1.createContentModelDocument)(context.defaultFormat);
15
+ context.rangeEx = selection;
18
16
  context.elementProcessors.child(model, root, context);
19
17
  (0, normalizeContentModel_1.normalizeContentModel)(model);
20
18
  return model;
@@ -1 +1 @@
1
- {"version":3,"file":"domToContentModel.js","sourceRoot":"","sources":["../../../../packages-content-model/roosterjs-content-model-dom/lib/domToModel/domToContentModel.ts"],"names":[],"mappings":";;;AAAA,8FAA6F;AAC7F,6EAA4E;AAC5E,kFAAiF;AAQjF;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAC7B,IAAoC,EACpC,MAAyB,EACzB,aAA6B,EAC7B,SAA4B;IAE5B,IAAM,KAAK,GAAG,IAAA,uDAA0B,EAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,CAAC,CAAC;IACvE,IAAM,OAAO,GAAG,IAAA,iDAAuB,EAAC,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAE1E,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAEtD,IAAA,6CAAqB,EAAC,KAAK,CAAC,CAAC;IAE7B,OAAO,KAAK,CAAC;AACjB,CAAC;AAdD,8CAcC","sourcesContent":["import { createContentModelDocument } from '../modelApi/creators/createContentModelDocument';\nimport { createDomToModelContext } from './context/createDomToModelContext';\nimport { normalizeContentModel } from '../modelApi/common/normalizeContentModel';\nimport { SelectionRangeEx } from 'roosterjs-editor-types';\nimport {\n ContentModelDocument,\n DomToModelOption,\n EditorContext,\n} from 'roosterjs-content-model-types';\n\n/**\n * Create Content Model from DOM tree in this editor\n * @param root Root element of DOM tree to create Content Model from\n * @param option The option to customize the behavior of DOM to Content Model conversion\n * @param editorContext Context of content model editor\n * @param selection Existing selection range in editor\n * @returns A ContentModelDocument object that contains all the models created from the give root element\n */\nexport function domToContentModel(\n root: HTMLElement | DocumentFragment,\n option?: DomToModelOption,\n editorContext?: EditorContext,\n selection?: SelectionRangeEx\n): ContentModelDocument {\n const model = createContentModelDocument(editorContext?.defaultFormat);\n const context = createDomToModelContext(editorContext, option, selection);\n\n context.elementProcessors.child(model, root, context);\n\n normalizeContentModel(model);\n\n return model;\n}\n"]}
1
+ {"version":3,"file":"domToContentModel.js","sourceRoot":"","sources":["../../../../packages-content-model/roosterjs-content-model-dom/lib/domToModel/domToContentModel.ts"],"names":[],"mappings":";;;AACA,8FAA6F;AAC7F,kFAAiF;AAGjF;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAC7B,IAAoC,EACpC,OAA0B,EAC1B,SAA4B;IAE5B,IAAM,KAAK,GAAG,IAAA,uDAA0B,EAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAEhE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAEtD,IAAA,6CAAqB,EAAC,KAAK,CAAC,CAAC;IAE7B,OAAO,KAAK,CAAC;AACjB,CAAC;AAbD,8CAaC","sourcesContent":["import { ContentModelDocument, DomToModelContext } from 'roosterjs-content-model-types';\nimport { createContentModelDocument } from '../modelApi/creators/createContentModelDocument';\nimport { normalizeContentModel } from '../modelApi/common/normalizeContentModel';\nimport { SelectionRangeEx } from 'roosterjs-editor-types';\n\n/**\n * Create Content Model from DOM tree in this editor\n * @param root Root element of DOM tree to create Content Model from\n * @param context Context object for DOM to Content Model conversion\n * @param selection Selection that already exists in content\n * @returns A ContentModelDocument object that contains all the models created from the give root element\n */\nexport function domToContentModel(\n root: HTMLElement | DocumentFragment,\n context: DomToModelContext,\n selection?: SelectionRangeEx\n): ContentModelDocument {\n const model = createContentModelDocument(context.defaultFormat);\n\n context.rangeEx = selection;\n context.elementProcessors.child(model, root, context);\n\n normalizeContentModel(model);\n\n return model;\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDefaultStyle = void 0;
4
+ var defaultHTMLStyleMap_1 = require("../../config/defaultHTMLStyleMap");
4
5
  /**
5
6
  * @internal
6
7
  * Get default CSS style of given element
@@ -10,7 +11,7 @@ exports.getDefaultStyle = void 0;
10
11
  */
11
12
  function getDefaultStyle(element, context) {
12
13
  var tag = element.tagName.toLowerCase();
13
- return context.defaultStyles[tag] || {};
14
+ return defaultHTMLStyleMap_1.defaultHTMLStyleMap[tag] || {};
14
15
  }
15
16
  exports.getDefaultStyle = getDefaultStyle;
16
17
  //# sourceMappingURL=getDefaultStyle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDefaultStyle.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-dom/lib/domToModel/utils/getDefaultStyle.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,SAAgB,eAAe,CAC3B,OAAoB,EACpB,OAA0B;IAE1B,IAAI,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAA2B,CAAC;IAEjE,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AAPD,0CAOC","sourcesContent":["import { DefaultStyleMap, DomToModelContext } from 'roosterjs-content-model-types';\n\n/**\n * @internal\n * Get default CSS style of given element\n * @param element The element to get default style from\n * @param context The context of DOM to Content Model conversion\n * @returns A valid CSS style object\n */\nexport function getDefaultStyle(\n element: HTMLElement,\n context: DomToModelContext\n): Partial<CSSStyleDeclaration> {\n let tag = element.tagName.toLowerCase() as keyof DefaultStyleMap;\n\n return context.defaultStyles[tag] || {};\n}\n"]}
1
+ {"version":3,"file":"getDefaultStyle.js","sourceRoot":"","sources":["../../../../../packages-content-model/roosterjs-content-model-dom/lib/domToModel/utils/getDefaultStyle.ts"],"names":[],"mappings":";;;AAAA,wEAAuE;AAGvE;;;;;;GAMG;AACH,SAAgB,eAAe,CAC3B,OAAoB,EACpB,OAA0B;IAE1B,IAAI,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAA2B,CAAC;IAEjE,OAAO,yCAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC;AAPD,0CAOC","sourcesContent":["import { defaultHTMLStyleMap } from '../../config/defaultHTMLStyleMap';\nimport { DefaultStyleMap, DomToModelContext } from 'roosterjs-content-model-types';\n\n/**\n * @internal\n * Get default CSS style of given element\n * @param element The element to get default style from\n * @param context The context of DOM to Content Model conversion\n * @returns A valid CSS style object\n */\nexport function getDefaultStyle(\n element: HTMLElement,\n context: DomToModelContext\n): Partial<CSSStyleDeclaration> {\n let tag = element.tagName.toLowerCase() as keyof DefaultStyleMap;\n\n return defaultHTMLStyleMap[tag] || {};\n}\n"]}
@@ -1,17 +1,15 @@
1
- import { FormatAppliers, FormatAppliersPerCategory, FormatParsers, FormatParsersPerCategory } from 'roosterjs-content-model-types';
1
+ import { ContentModelFormatMap, FormatAppliers, FormatHandlerTypeMap, FormatParsers } from 'roosterjs-content-model-types';
2
2
  /**
3
3
  * @internal
4
4
  */
5
- export declare const defaultFormatParsers: FormatParsers;
5
+ export declare const defaultFormatKeysPerCategory: {
6
+ [key in keyof ContentModelFormatMap]: (keyof FormatHandlerTypeMap)[];
7
+ };
6
8
  /**
7
9
  * @internal
8
10
  */
9
- export declare const defaultFormatAppliers: FormatAppliers;
10
- /**
11
- * @internal
12
- */
13
- export declare function getFormatParsers(override?: Partial<FormatParsers>, additionalParsers?: Partial<FormatParsersPerCategory>): FormatParsersPerCategory;
11
+ export declare const defaultFormatParsers: FormatParsers;
14
12
  /**
15
13
  * @internal
16
14
  */
17
- export declare function getFormatAppliers(override?: Partial<FormatAppliers>, additionalAppliers?: Partial<FormatAppliersPerCategory>): FormatAppliersPerCategory;
15
+ export declare const defaultFormatAppliers: FormatAppliers;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFormatAppliers = exports.getFormatParsers = exports.defaultFormatAppliers = exports.defaultFormatParsers = void 0;
3
+ exports.defaultFormatAppliers = exports.defaultFormatParsers = exports.defaultFormatKeysPerCategory = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var backgroundColorFormatHandler_1 = require("./common/backgroundColorFormatHandler");
6
6
  var boldFormatHandler_1 = require("./segment/boldFormatHandler");
@@ -97,7 +97,10 @@ var sharedContainerFormats = [
97
97
  'padding',
98
98
  'border',
99
99
  ];
100
- var defaultFormatKeysPerCategory = {
100
+ /**
101
+ * @internal
102
+ */
103
+ exports.defaultFormatKeysPerCategory = {
101
104
  block: sharedBlockFormats,
102
105
  listItem: ['listItemThread'],
103
106
  listItemElement: (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(sharedBlockFormats), false), ['direction', 'textAlign', 'lineHeight', 'margin'], false),
@@ -188,42 +191,4 @@ exports.defaultFormatAppliers = (0, roosterjs_editor_dom_1.getObjectKeys)(defaul
188
191
  result[key] = defaultFormatHandlerMap[key].apply;
189
192
  return result;
190
193
  }, {});
191
- /**
192
- * @internal
193
- */
194
- function getFormatParsers(override, additionalParsers) {
195
- if (override === void 0) { override = {}; }
196
- if (additionalParsers === void 0) { additionalParsers = {}; }
197
- return (0, roosterjs_editor_dom_1.getObjectKeys)(defaultFormatKeysPerCategory).reduce(function (result, key) {
198
- var value = defaultFormatKeysPerCategory[key]
199
- .map(function (formatKey) {
200
- return (override[formatKey] === undefined
201
- ? exports.defaultFormatParsers[formatKey]
202
- : override[formatKey]);
203
- })
204
- .concat(additionalParsers[key] || []);
205
- result[key] = value;
206
- return result;
207
- }, {});
208
- }
209
- exports.getFormatParsers = getFormatParsers;
210
- /**
211
- * @internal
212
- */
213
- function getFormatAppliers(override, additionalAppliers) {
214
- if (override === void 0) { override = {}; }
215
- if (additionalAppliers === void 0) { additionalAppliers = {}; }
216
- return (0, roosterjs_editor_dom_1.getObjectKeys)(defaultFormatKeysPerCategory).reduce(function (result, key) {
217
- var value = defaultFormatKeysPerCategory[key]
218
- .map(function (formatKey) {
219
- return (override[formatKey] === undefined
220
- ? exports.defaultFormatAppliers[formatKey]
221
- : override[formatKey]);
222
- })
223
- .concat(additionalAppliers[key] || []);
224
- result[key] = value;
225
- return result;
226
- }, {});
227
- }
228
- exports.getFormatAppliers = getFormatAppliers;
229
194
  //# sourceMappingURL=defaultFormatHandlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultFormatHandlers.js","sourceRoot":"","sources":["../../../../packages-content-model/roosterjs-content-model-dom/lib/formatHandlers/defaultFormatHandlers.ts"],"names":[],"mappings":"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","sourcesContent":["import { backgroundColorFormatHandler } from './common/backgroundColorFormatHandler';\nimport { boldFormatHandler } from './segment/boldFormatHandler';\nimport { borderBoxFormatHandler } from './common/borderBoxFormatHandler';\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 { floatFormatHandler } from './common/floatFormatHandler';\nimport { fontFamilyFormatHandler } from './segment/fontFamilyFormatHandler';\nimport { fontSizeFormatHandler } from './segment/fontSizeFormatHandler';\nimport { FormatHandler } from './FormatHandler';\nimport { getObjectKeys } from 'roosterjs-editor-dom';\nimport { htmlAlignFormatHandler } from './block/htmlAlignFormatHandler';\nimport { idFormatHandler } from './common/idFormatHandler';\nimport { italicFormatHandler } from './segment/italicFormatHandler';\nimport { letterSpacingFormatHandler } from './segment/letterSpacingFormatHandler';\nimport { lineHeightFormatHandler } from './block/lineHeightFormatHandler';\nimport { linkFormatHandler } from './segment/linkFormatHandler';\nimport { listItemThreadFormatHandler } from './list/listItemThreadFormatHandler';\nimport { listLevelThreadFormatHandler } from './list/listLevelThreadFormatHandler';\nimport { listStylePositionFormatHandler } from './list/listStylePositionFormatHandler';\nimport { marginFormatHandler } from './block/marginFormatHandler';\nimport { paddingFormatHandler } from './block/paddingFormatHandler';\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 { underlineFormatHandler } from './segment/underlineFormatHandler';\nimport { verticalAlignFormatHandler } from './common/verticalAlignFormatHandler';\nimport { whiteSpaceFormatHandler } from './block/whiteSpaceFormatHandler';\nimport { wordBreakFormatHandler } from './common/wordBreakFormatHandler';\nimport {\n ContentModelFormatMap,\n FormatHandlerTypeMap,\n FormatKey,\n FormatApplier,\n FormatAppliers,\n FormatAppliersPerCategory,\n FormatParser,\n FormatParsers,\n FormatParsersPerCategory,\n} from 'roosterjs-content-model-types';\n\ntype FormatHandlers = {\n [Key in FormatKey]: FormatHandler<FormatHandlerTypeMap[Key]>;\n};\n\nconst defaultFormatHandlerMap: FormatHandlers = {\n backgroundColor: backgroundColorFormatHandler,\n bold: boldFormatHandler,\n border: borderFormatHandler,\n borderBox: borderBoxFormatHandler,\n boxShadow: boxShadowFormatHandler,\n dataset: datasetFormatHandler,\n direction: directionFormatHandler,\n display: displayFormatHandler,\n float: floatFormatHandler,\n fontFamily: fontFamilyFormatHandler,\n fontSize: fontSizeFormatHandler,\n htmlAlign: htmlAlignFormatHandler,\n id: idFormatHandler,\n italic: italicFormatHandler,\n letterSpacing: letterSpacingFormatHandler,\n lineHeight: lineHeightFormatHandler,\n link: linkFormatHandler,\n listItemThread: listItemThreadFormatHandler,\n listLevelThread: listLevelThreadFormatHandler,\n listStylePosition: listStylePositionFormatHandler,\n margin: marginFormatHandler,\n padding: paddingFormatHandler,\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 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 elementBasedSegmentFormats: (keyof FormatHandlerTypeMap)[] = [\n 'strike',\n 'underline',\n 'superOrSubScript',\n 'italic',\n 'bold',\n];\nconst sharedBlockFormats: (keyof FormatHandlerTypeMap)[] = [\n 'direction',\n 'textAlign',\n 'lineHeight',\n 'whiteSpace',\n];\nconst sharedContainerFormats: (keyof FormatHandlerTypeMap)[] = [\n 'backgroundColor',\n 'margin',\n 'padding',\n 'border',\n];\n\nconst defaultFormatKeysPerCategory: {\n [key in keyof ContentModelFormatMap]: (keyof FormatHandlerTypeMap)[];\n} = {\n block: sharedBlockFormats,\n listItem: ['listItemThread'],\n listItemElement: [...sharedBlockFormats, 'direction', 'textAlign', 'lineHeight', 'margin'],\n listLevel: [\n 'listLevelThread',\n 'direction',\n 'textAlign',\n 'margin',\n 'padding',\n 'listStylePosition',\n 'backgroundColor',\n ],\n styleBasedSegment: [...styleBasedSegmentFormats, 'textColor', 'backgroundColor', 'lineHeight'],\n elementBasedSegment: elementBasedSegmentFormats,\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 'backgroundColor',\n 'padding',\n 'verticalAlign',\n 'wordBreak',\n 'textColor',\n 'htmlAlign',\n 'size',\n ],\n tableRow: ['backgroundColor'],\n table: [\n 'id',\n 'border',\n 'backgroundColor',\n 'display',\n 'htmlAlign',\n 'margin',\n 'size',\n 'tableLayout',\n ],\n tableBorder: ['borderBox', 'tableSpacing'],\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 ],\n link: [\n 'link',\n 'textColor',\n 'underline',\n 'display',\n 'margin',\n 'padding',\n 'backgroundColor',\n 'border',\n 'size',\n 'textAlign',\n ],\n segmentUnderLink: ['textColor'],\n code: ['fontFamily', 'display'],\n dataset: ['dataset'],\n divider: [...sharedBlockFormats, ...sharedContainerFormats, 'display', 'size', 'htmlAlign'],\n container: [...sharedContainerFormats, 'htmlAlign', 'size', 'display'],\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\n/**\n * @internal\n */\nexport function getFormatParsers(\n override: Partial<FormatParsers> = {},\n additionalParsers: Partial<FormatParsersPerCategory> = {}\n): FormatParsersPerCategory {\n return getObjectKeys(defaultFormatKeysPerCategory).reduce((result, key) => {\n const value = defaultFormatKeysPerCategory[key]\n .map(\n formatKey =>\n (override[formatKey] === undefined\n ? defaultFormatParsers[formatKey]\n : override[formatKey]) as FormatParser<any>\n )\n .concat((additionalParsers[key] as FormatParser<any>[]) || []);\n\n result[key] = value;\n\n return result;\n }, {} as FormatParsersPerCategory);\n}\n\n/**\n * @internal\n */\nexport function getFormatAppliers(\n override: Partial<FormatAppliers> = {},\n additionalAppliers: Partial<FormatAppliersPerCategory> = {}\n): FormatAppliersPerCategory {\n return getObjectKeys(defaultFormatKeysPerCategory).reduce((result, key) => {\n const value = defaultFormatKeysPerCategory[key]\n .map(\n formatKey =>\n (override[formatKey] === undefined\n ? defaultFormatAppliers[formatKey]\n : override[formatKey]) as FormatApplier<any>\n )\n .concat((additionalAppliers[key] as FormatApplier<any>[]) || []);\n\n result[key] = value;\n\n return result;\n }, {} as FormatAppliersPerCategory);\n}\n"]}
1
+ {"version":3,"file":"defaultFormatHandlers.js","sourceRoot":"","sources":["../../../../packages-content-model/roosterjs-content-model-dom/lib/formatHandlers/defaultFormatHandlers.ts"],"names":[],"mappings":";;;;AAAA,sFAAqF;AACrF,iEAAgE;AAChE,0EAAyE;AACzE,oEAAmE;AACnE,0EAAyE;AACzE,sEAAqE;AACrE,yEAAwE;AACxE,qEAAoE;AACpE,kEAAiE;AACjE,6EAA4E;AAC5E,yEAAwE;AAExE,6DAAqD;AACrD,yEAAwE;AACxE,4DAA2D;AAC3D,qEAAoE;AACpE,mFAAkF;AAClF,2EAA0E;AAC1E,iEAAgE;AAChE,kFAAiF;AACjF,oFAAmF;AACnF,wFAAuF;AACvF,mEAAkE;AAClE,qEAAoE;AACpE,gEAA+D;AAC/D,qEAAoE;AACpE,yFAAwF;AACxF,6EAA4E;AAC5E,+EAA8E;AAC9E,yEAAwE;AACxE,2EAA0E;AAC1E,+FAA8F;AAC9F,2EAA0E;AAC1E,kFAAiF;AACjF,2EAA0E;AAC1E,0EAAyE;AAezE,IAAM,uBAAuB,GAAmB;IAC5C,eAAe,EAAE,2DAA4B;IAC7C,IAAI,EAAE,qCAAiB;IACvB,MAAM,EAAE,yCAAmB;IAC3B,SAAS,EAAE,+CAAsB;IACjC,SAAS,EAAE,+CAAsB;IACjC,OAAO,EAAE,2CAAoB;IAC7B,SAAS,EAAE,+CAAsB;IACjC,OAAO,EAAE,2CAAoB;IAC7B,KAAK,EAAE,uCAAkB;IACzB,UAAU,EAAE,iDAAuB;IACnC,QAAQ,EAAE,6CAAqB;IAC/B,SAAS,EAAE,+CAAsB;IACjC,EAAE,EAAE,iCAAe;IACnB,MAAM,EAAE,yCAAmB;IAC3B,aAAa,EAAE,uDAA0B;IACzC,UAAU,EAAE,iDAAuB;IACnC,IAAI,EAAE,qCAAiB;IACvB,cAAc,EAAE,yDAA2B;IAC3C,eAAe,EAAE,2DAA4B;IAC7C,iBAAiB,EAAE,+DAA8B;IACjD,MAAM,EAAE,yCAAmB;IAC3B,OAAO,EAAE,2CAAoB;IAC7B,IAAI,EAAE,qCAAiB;IACvB,MAAM,EAAE,yCAAmB;IAC3B,gBAAgB,EAAE,6DAA6B;IAC/C,WAAW,EAAE,mDAAwB;IACrC,YAAY,EAAE,qDAAyB;IACvC,SAAS,EAAE,+CAAsB;IACjC,SAAS,EAAE,+CAAsB;IACjC,oBAAoB,EAAE,qEAAiC;IACvD,SAAS,EAAE,+CAAsB;IACjC,aAAa,EAAE,uDAA0B;IACzC,UAAU,EAAE,iDAAuB;IACnC,SAAS,EAAE,+CAAsB;CACpC,CAAC;AAEF,IAAM,wBAAwB,GAAmC;IAC7D,eAAe;IACf,YAAY;IACZ,UAAU;CACb,CAAC;AAEF,IAAM,0BAA0B,GAAmC;IAC/D,QAAQ;IACR,WAAW;IACX,kBAAkB;IAClB,QAAQ;IACR,MAAM;CACT,CAAC;AACF,IAAM,kBAAkB,GAAmC;IACvD,WAAW;IACX,WAAW;IACX,YAAY;IACZ,YAAY;CACf,CAAC;AACF,IAAM,sBAAsB,GAAmC;IAC3D,iBAAiB;IACjB,QAAQ;IACR,SAAS;IACT,QAAQ;CACX,CAAC;AAEF;;GAEG;AACU,QAAA,4BAA4B,GAErC;IACA,KAAK,EAAE,kBAAkB;IACzB,QAAQ,EAAE,CAAC,gBAAgB,CAAC;IAC5B,eAAe,gFAAM,kBAAkB,YAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,SAAC;IAC1F,SAAS,EAAE;QACP,iBAAiB;QACjB,WAAW;QACX,WAAW;QACX,QAAQ;QACR,SAAS;QACT,mBAAmB;QACnB,iBAAiB;KACpB;IACD,iBAAiB,gFAAM,wBAAwB,YAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,SAAC;IAC9F,mBAAmB,EAAE,0BAA0B;IAC/C,OAAO,2GACA,wBAAwB,+BACxB,0BAA0B;QAC7B,WAAW;QACX,iBAAiB;QACjB,YAAY;aACf;IACD,cAAc,2GAAM,wBAAwB,+BAAK,0BAA0B,YAAE,WAAW,SAAC;IACzF,kBAAkB,2GACX,wBAAwB,+BACxB,0BAA0B;QAC7B,sBAAsB;aACzB;IACD,SAAS,EAAE;QACP,QAAQ;QACR,iBAAiB;QACjB,SAAS;QACT,eAAe;QACf,WAAW;QACX,WAAW;QACX,WAAW;QACX,MAAM;KACT;IACD,QAAQ,EAAE,CAAC,iBAAiB,CAAC;IAC7B,KAAK,EAAE;QACH,IAAI;QACJ,QAAQ;QACR,iBAAiB;QACjB,SAAS;QACT,WAAW;QACX,QAAQ;QACR,MAAM;QACN,aAAa;KAChB;IACD,WAAW,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC;IAC1C,eAAe,EAAE,CAAC,WAAW,CAAC;IAC9B,KAAK,EAAE;QACH,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,SAAS;QACT,WAAW;QACX,QAAQ;QACR,WAAW;QACX,SAAS;QACT,OAAO;QACP,eAAe;KAClB;IACD,IAAI,EAAE;QACF,MAAM;QACN,WAAW;QACX,WAAW;QACX,SAAS;QACT,QAAQ;QACR,SAAS;QACT,iBAAiB;QACjB,QAAQ;QACR,MAAM;QACN,WAAW;KACd;IACD,gBAAgB,EAAE,CAAC,WAAW,CAAC;IAC/B,IAAI,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;IAC/B,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,OAAO,2GAAM,kBAAkB,+BAAK,sBAAsB,YAAE,SAAS,EAAE,MAAM,EAAE,WAAW,SAAC;IAC3F,SAAS,gFAAM,sBAAsB,YAAE,WAAW,EAAE,MAAM,EAAE,SAAS,SAAC;CACzE,CAAC;AAEF;;GAEG;AACU,QAAA,oBAAoB,GAAkB,IAAA,oCAAa,EAAC,uBAAuB,CAAC,CAAC,MAAM,CAC5F,UAAC,MAAM,EAAE,GAAG;IACR,MAAM,CAAC,GAAG,CAAC,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,KAA0B,CAAC;IACtE,OAAO,MAAM,CAAC;AAClB,CAAC,EACc,EAAE,CACpB,CAAC;AAEF;;GAEG;AACU,QAAA,qBAAqB,GAAmB,IAAA,oCAAa,EAAC,uBAAuB,CAAC,CAAC,MAAM,CAC9F,UAAC,MAAM,EAAE,GAAG;IACR,MAAM,CAAC,GAAG,CAAC,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,KAA2B,CAAC;IACvE,OAAO,MAAM,CAAC;AAClB,CAAC,EACe,EAAE,CACrB,CAAC","sourcesContent":["import { backgroundColorFormatHandler } from './common/backgroundColorFormatHandler';\nimport { boldFormatHandler } from './segment/boldFormatHandler';\nimport { borderBoxFormatHandler } from './common/borderBoxFormatHandler';\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 { floatFormatHandler } from './common/floatFormatHandler';\nimport { fontFamilyFormatHandler } from './segment/fontFamilyFormatHandler';\nimport { fontSizeFormatHandler } from './segment/fontSizeFormatHandler';\nimport { FormatHandler } from './FormatHandler';\nimport { getObjectKeys } from 'roosterjs-editor-dom';\nimport { htmlAlignFormatHandler } from './block/htmlAlignFormatHandler';\nimport { idFormatHandler } from './common/idFormatHandler';\nimport { italicFormatHandler } from './segment/italicFormatHandler';\nimport { letterSpacingFormatHandler } from './segment/letterSpacingFormatHandler';\nimport { lineHeightFormatHandler } from './block/lineHeightFormatHandler';\nimport { linkFormatHandler } from './segment/linkFormatHandler';\nimport { listItemThreadFormatHandler } from './list/listItemThreadFormatHandler';\nimport { listLevelThreadFormatHandler } from './list/listLevelThreadFormatHandler';\nimport { listStylePositionFormatHandler } from './list/listStylePositionFormatHandler';\nimport { marginFormatHandler } from './block/marginFormatHandler';\nimport { paddingFormatHandler } from './block/paddingFormatHandler';\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 { underlineFormatHandler } from './segment/underlineFormatHandler';\nimport { verticalAlignFormatHandler } from './common/verticalAlignFormatHandler';\nimport { whiteSpaceFormatHandler } from './block/whiteSpaceFormatHandler';\nimport { wordBreakFormatHandler } from './common/wordBreakFormatHandler';\nimport {\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 backgroundColor: backgroundColorFormatHandler,\n bold: boldFormatHandler,\n border: borderFormatHandler,\n borderBox: borderBoxFormatHandler,\n boxShadow: boxShadowFormatHandler,\n dataset: datasetFormatHandler,\n direction: directionFormatHandler,\n display: displayFormatHandler,\n float: floatFormatHandler,\n fontFamily: fontFamilyFormatHandler,\n fontSize: fontSizeFormatHandler,\n htmlAlign: htmlAlignFormatHandler,\n id: idFormatHandler,\n italic: italicFormatHandler,\n letterSpacing: letterSpacingFormatHandler,\n lineHeight: lineHeightFormatHandler,\n link: linkFormatHandler,\n listItemThread: listItemThreadFormatHandler,\n listLevelThread: listLevelThreadFormatHandler,\n listStylePosition: listStylePositionFormatHandler,\n margin: marginFormatHandler,\n padding: paddingFormatHandler,\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 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 elementBasedSegmentFormats: (keyof FormatHandlerTypeMap)[] = [\n 'strike',\n 'underline',\n 'superOrSubScript',\n 'italic',\n 'bold',\n];\nconst sharedBlockFormats: (keyof FormatHandlerTypeMap)[] = [\n 'direction',\n 'textAlign',\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 listItem: ['listItemThread'],\n listItemElement: [...sharedBlockFormats, 'direction', 'textAlign', 'lineHeight', 'margin'],\n listLevel: [\n 'listLevelThread',\n 'direction',\n 'textAlign',\n 'margin',\n 'padding',\n 'listStylePosition',\n 'backgroundColor',\n ],\n styleBasedSegment: [...styleBasedSegmentFormats, 'textColor', 'backgroundColor', 'lineHeight'],\n elementBasedSegment: elementBasedSegmentFormats,\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 'backgroundColor',\n 'padding',\n 'verticalAlign',\n 'wordBreak',\n 'textColor',\n 'htmlAlign',\n 'size',\n ],\n tableRow: ['backgroundColor'],\n table: [\n 'id',\n 'border',\n 'backgroundColor',\n 'display',\n 'htmlAlign',\n 'margin',\n 'size',\n 'tableLayout',\n ],\n tableBorder: ['borderBox', 'tableSpacing'],\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 ],\n link: [\n 'link',\n 'textColor',\n 'underline',\n 'display',\n 'margin',\n 'padding',\n 'backgroundColor',\n 'border',\n 'size',\n 'textAlign',\n ],\n segmentUnderLink: ['textColor'],\n code: ['fontFamily', 'display'],\n dataset: ['dataset'],\n divider: [...sharedBlockFormats, ...sharedContainerFormats, 'display', 'size', 'htmlAlign'],\n container: [...sharedContainerFormats, 'htmlAlign', 'size', 'display'],\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,4 +1,8 @@
1
1
  import { DarkColorHandler } from 'roosterjs-editor-types';
2
+ /**
3
+ * List of deprecated colors
4
+ */
5
+ export declare const DeprecatedColors: string[];
2
6
  /**
3
7
  * @internal
4
8
  */