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.
- package/lib/config/defaultContentModelFormatMap.d.ts +6 -0
- package/lib/config/defaultContentModelFormatMap.js +56 -0
- package/lib/config/defaultContentModelFormatMap.js.map +1 -0
- package/lib/config/defaultHTMLStyleMap.d.ts +5 -0
- package/lib/{formatHandlers/utils/defaultStyles.js → config/defaultHTMLStyleMap.js} +3 -69
- package/lib/config/defaultHTMLStyleMap.js.map +1 -0
- package/lib/domToModel/context/createDomToModelContext.d.ts +23 -6
- package/lib/domToModel/context/createDomToModelContext.js +82 -20
- package/lib/domToModel/context/createDomToModelContext.js.map +1 -1
- package/lib/domToModel/domToContentModel.d.ts +4 -5
- package/lib/domToModel/domToContentModel.js +5 -7
- package/lib/domToModel/domToContentModel.js.map +1 -1
- package/lib/domToModel/utils/getDefaultStyle.js +2 -1
- package/lib/domToModel/utils/getDefaultStyle.js.map +1 -1
- package/lib/formatHandlers/defaultFormatHandlers.d.ts +6 -8
- package/lib/formatHandlers/defaultFormatHandlers.js +5 -40
- package/lib/formatHandlers/defaultFormatHandlers.js.map +1 -1
- package/lib/formatHandlers/utils/color.d.ts +4 -0
- package/lib/formatHandlers/utils/color.js +32 -1
- package/lib/formatHandlers/utils/color.js.map +1 -1
- package/lib/index.d.ts +4 -2
- package/lib/index.js +11 -3
- package/lib/index.js.map +1 -1
- package/lib/modelApi/common/applySegmentFormatToElement.d.ts +7 -0
- package/lib/modelApi/common/applySegmentFormatToElement.js +16 -0
- package/lib/modelApi/common/applySegmentFormatToElement.js.map +1 -0
- package/lib/modelApi/common/normalizeParagraph.js +22 -0
- package/lib/modelApi/common/normalizeParagraph.js.map +1 -1
- package/lib/modelApi/creators/createText.d.ts +4 -2
- package/lib/modelApi/creators/createText.js +12 -2
- package/lib/modelApi/creators/createText.js.map +1 -1
- package/lib/modelToDom/contentModelToDom.d.ts +5 -8
- package/lib/modelToDom/contentModelToDom.js +7 -11
- package/lib/modelToDom/contentModelToDom.js.map +1 -1
- package/lib/modelToDom/context/createModelToDomContext.d.ts +21 -5
- package/lib/modelToDom/context/createModelToDomContext.js +70 -11
- package/lib/modelToDom/context/createModelToDomContext.js.map +1 -1
- package/lib/modelToDom/context/defaultContentModelHandlers.js +4 -2
- package/lib/modelToDom/context/defaultContentModelHandlers.js.map +1 -1
- package/lib/modelToDom/handlers/handleBlock.js +2 -2
- package/lib/modelToDom/handlers/handleBlock.js.map +1 -1
- package/lib/modelToDom/handlers/handleBr.d.ts +2 -2
- package/lib/modelToDom/handlers/handleBr.js +2 -2
- package/lib/modelToDom/handlers/handleBr.js.map +1 -1
- package/lib/modelToDom/handlers/handleEntity.d.ts +6 -2
- package/lib/modelToDom/handlers/handleEntity.js +37 -19
- package/lib/modelToDom/handlers/handleEntity.js.map +1 -1
- package/lib/modelToDom/handlers/handleFormatContainer.js +5 -1
- package/lib/modelToDom/handlers/handleFormatContainer.js.map +1 -1
- package/lib/modelToDom/handlers/handleGeneralModel.d.ts +6 -2
- package/lib/modelToDom/handlers/handleGeneralModel.js +18 -9
- package/lib/modelToDom/handlers/handleGeneralModel.js.map +1 -1
- package/lib/modelToDom/handlers/handleImage.d.ts +2 -2
- package/lib/modelToDom/handlers/handleImage.js +2 -2
- package/lib/modelToDom/handlers/handleImage.js.map +1 -1
- package/lib/modelToDom/handlers/handleParagraph.js +3 -2
- package/lib/modelToDom/handlers/handleParagraph.js.map +1 -1
- package/lib/modelToDom/handlers/handleSegment.d.ts +2 -2
- package/lib/modelToDom/handlers/handleSegment.js +6 -6
- package/lib/modelToDom/handlers/handleSegment.js.map +1 -1
- package/lib/modelToDom/handlers/handleSegmentDecorator.d.ts +2 -2
- package/lib/modelToDom/handlers/handleSegmentDecorator.js +3 -1
- package/lib/modelToDom/handlers/handleSegmentDecorator.js.map +1 -1
- package/lib/modelToDom/handlers/handleText.d.ts +2 -2
- package/lib/modelToDom/handlers/handleText.js +2 -2
- package/lib/modelToDom/handlers/handleText.js.map +1 -1
- package/lib/modelToDom/utils/handleSegmentCommon.d.ts +1 -1
- package/lib/modelToDom/utils/handleSegmentCommon.js +3 -2
- package/lib/modelToDom/utils/handleSegmentCommon.js.map +1 -1
- package/lib/modelToDom/utils/stackFormat.js +2 -1
- package/lib/modelToDom/utils/stackFormat.js.map +1 -1
- package/lib-amd/config/defaultContentModelFormatMap.d.ts +6 -0
- package/lib-amd/config/defaultContentModelFormatMap.js +58 -0
- package/lib-amd/config/defaultContentModelFormatMap.js.map +1 -0
- package/lib-amd/config/defaultHTMLStyleMap.d.ts +5 -0
- package/lib-amd/{formatHandlers/utils/defaultStyles.js → config/defaultHTMLStyleMap.js} +3 -69
- package/lib-amd/config/defaultHTMLStyleMap.js.map +1 -0
- package/lib-amd/domToModel/context/createDomToModelContext.d.ts +23 -6
- package/lib-amd/domToModel/context/createDomToModelContext.js +81 -19
- package/lib-amd/domToModel/context/createDomToModelContext.js.map +1 -1
- package/lib-amd/domToModel/domToContentModel.d.ts +4 -5
- package/lib-amd/domToModel/domToContentModel.js +6 -7
- package/lib-amd/domToModel/domToContentModel.js.map +1 -1
- package/lib-amd/domToModel/utils/getDefaultStyle.js +2 -2
- package/lib-amd/domToModel/utils/getDefaultStyle.js.map +1 -1
- package/lib-amd/formatHandlers/defaultFormatHandlers.d.ts +6 -8
- package/lib-amd/formatHandlers/defaultFormatHandlers.js +5 -40
- package/lib-amd/formatHandlers/defaultFormatHandlers.js.map +1 -1
- package/lib-amd/formatHandlers/utils/color.d.ts +4 -0
- package/lib-amd/formatHandlers/utils/color.js +32 -1
- package/lib-amd/formatHandlers/utils/color.js.map +1 -1
- package/lib-amd/index.d.ts +4 -2
- package/lib-amd/index.js +9 -3
- package/lib-amd/index.js.map +1 -1
- package/lib-amd/modelApi/common/applySegmentFormatToElement.d.ts +7 -0
- package/lib-amd/modelApi/common/applySegmentFormatToElement.js +16 -0
- package/lib-amd/modelApi/common/applySegmentFormatToElement.js.map +1 -0
- package/lib-amd/modelApi/common/normalizeParagraph.js +22 -1
- package/lib-amd/modelApi/common/normalizeParagraph.js.map +1 -1
- package/lib-amd/modelApi/creators/createText.d.ts +4 -2
- package/lib-amd/modelApi/creators/createText.js +12 -3
- package/lib-amd/modelApi/creators/createText.js.map +1 -1
- package/lib-amd/modelToDom/contentModelToDom.d.ts +5 -8
- package/lib-amd/modelToDom/contentModelToDom.js +8 -11
- package/lib-amd/modelToDom/contentModelToDom.js.map +1 -1
- package/lib-amd/modelToDom/context/createModelToDomContext.d.ts +21 -5
- package/lib-amd/modelToDom/context/createModelToDomContext.js +70 -11
- package/lib-amd/modelToDom/context/createModelToDomContext.js.map +1 -1
- package/lib-amd/modelToDom/context/defaultContentModelHandlers.js +4 -2
- package/lib-amd/modelToDom/context/defaultContentModelHandlers.js.map +1 -1
- package/lib-amd/modelToDom/handlers/handleBlock.js +2 -2
- package/lib-amd/modelToDom/handlers/handleBlock.js.map +1 -1
- package/lib-amd/modelToDom/handlers/handleBr.d.ts +2 -2
- package/lib-amd/modelToDom/handlers/handleBr.js +2 -2
- package/lib-amd/modelToDom/handlers/handleBr.js.map +1 -1
- package/lib-amd/modelToDom/handlers/handleEntity.d.ts +6 -2
- package/lib-amd/modelToDom/handlers/handleEntity.js +37 -19
- package/lib-amd/modelToDom/handlers/handleEntity.js.map +1 -1
- package/lib-amd/modelToDom/handlers/handleFormatContainer.js +5 -1
- package/lib-amd/modelToDom/handlers/handleFormatContainer.js.map +1 -1
- package/lib-amd/modelToDom/handlers/handleGeneralModel.d.ts +6 -2
- package/lib-amd/modelToDom/handlers/handleGeneralModel.js +19 -9
- package/lib-amd/modelToDom/handlers/handleGeneralModel.js.map +1 -1
- package/lib-amd/modelToDom/handlers/handleImage.d.ts +2 -2
- package/lib-amd/modelToDom/handlers/handleImage.js +2 -2
- package/lib-amd/modelToDom/handlers/handleImage.js.map +1 -1
- package/lib-amd/modelToDom/handlers/handleParagraph.js +3 -2
- package/lib-amd/modelToDom/handlers/handleParagraph.js.map +1 -1
- package/lib-amd/modelToDom/handlers/handleSegment.d.ts +2 -2
- package/lib-amd/modelToDom/handlers/handleSegment.js +6 -6
- package/lib-amd/modelToDom/handlers/handleSegment.js.map +1 -1
- package/lib-amd/modelToDom/handlers/handleSegmentDecorator.d.ts +2 -2
- package/lib-amd/modelToDom/handlers/handleSegmentDecorator.js +3 -1
- package/lib-amd/modelToDom/handlers/handleSegmentDecorator.js.map +1 -1
- package/lib-amd/modelToDom/handlers/handleText.d.ts +2 -2
- package/lib-amd/modelToDom/handlers/handleText.js +2 -2
- package/lib-amd/modelToDom/handlers/handleText.js.map +1 -1
- package/lib-amd/modelToDom/utils/handleSegmentCommon.d.ts +1 -1
- package/lib-amd/modelToDom/utils/handleSegmentCommon.js +3 -2
- package/lib-amd/modelToDom/utils/handleSegmentCommon.js.map +1 -1
- package/lib-amd/modelToDom/utils/stackFormat.js +2 -2
- package/lib-amd/modelToDom/utils/stackFormat.js.map +1 -1
- package/lib-mjs/config/defaultContentModelFormatMap.d.ts +6 -0
- package/lib-mjs/config/defaultContentModelFormatMap.js +53 -0
- package/lib-mjs/config/defaultContentModelFormatMap.js.map +1 -0
- package/lib-mjs/config/defaultHTMLStyleMap.d.ts +5 -0
- package/lib-mjs/{formatHandlers/utils/defaultStyles.js → config/defaultHTMLStyleMap.js} +2 -68
- package/lib-mjs/config/defaultHTMLStyleMap.js.map +1 -0
- package/lib-mjs/domToModel/context/createDomToModelContext.d.ts +23 -6
- package/lib-mjs/domToModel/context/createDomToModelContext.js +78 -19
- package/lib-mjs/domToModel/context/createDomToModelContext.js.map +1 -1
- package/lib-mjs/domToModel/domToContentModel.d.ts +4 -5
- package/lib-mjs/domToModel/domToContentModel.js +5 -7
- package/lib-mjs/domToModel/domToContentModel.js.map +1 -1
- package/lib-mjs/domToModel/utils/getDefaultStyle.js +2 -1
- package/lib-mjs/domToModel/utils/getDefaultStyle.js.map +1 -1
- package/lib-mjs/formatHandlers/defaultFormatHandlers.d.ts +6 -8
- package/lib-mjs/formatHandlers/defaultFormatHandlers.js +4 -37
- package/lib-mjs/formatHandlers/defaultFormatHandlers.js.map +1 -1
- package/lib-mjs/formatHandlers/utils/color.d.ts +4 -0
- package/lib-mjs/formatHandlers/utils/color.js +31 -0
- package/lib-mjs/formatHandlers/utils/color.js.map +1 -1
- package/lib-mjs/index.d.ts +4 -2
- package/lib-mjs/index.js +4 -2
- package/lib-mjs/index.js.map +1 -1
- package/lib-mjs/modelApi/common/applySegmentFormatToElement.d.ts +7 -0
- package/lib-mjs/modelApi/common/applySegmentFormatToElement.js +12 -0
- package/lib-mjs/modelApi/common/applySegmentFormatToElement.js.map +1 -0
- package/lib-mjs/modelApi/common/normalizeParagraph.js +22 -0
- package/lib-mjs/modelApi/common/normalizeParagraph.js.map +1 -1
- package/lib-mjs/modelApi/creators/createText.d.ts +4 -2
- package/lib-mjs/modelApi/creators/createText.js +12 -2
- package/lib-mjs/modelApi/creators/createText.js.map +1 -1
- package/lib-mjs/modelToDom/contentModelToDom.d.ts +5 -8
- package/lib-mjs/modelToDom/contentModelToDom.js +7 -11
- package/lib-mjs/modelToDom/contentModelToDom.js.map +1 -1
- package/lib-mjs/modelToDom/context/createModelToDomContext.d.ts +21 -5
- package/lib-mjs/modelToDom/context/createModelToDomContext.js +67 -11
- package/lib-mjs/modelToDom/context/createModelToDomContext.js.map +1 -1
- package/lib-mjs/modelToDom/context/defaultContentModelHandlers.js +6 -4
- package/lib-mjs/modelToDom/context/defaultContentModelHandlers.js.map +1 -1
- package/lib-mjs/modelToDom/handlers/handleBlock.js +2 -2
- package/lib-mjs/modelToDom/handlers/handleBlock.js.map +1 -1
- package/lib-mjs/modelToDom/handlers/handleBr.d.ts +2 -2
- package/lib-mjs/modelToDom/handlers/handleBr.js +2 -2
- package/lib-mjs/modelToDom/handlers/handleBr.js.map +1 -1
- package/lib-mjs/modelToDom/handlers/handleEntity.d.ts +6 -2
- package/lib-mjs/modelToDom/handlers/handleEntity.js +34 -17
- package/lib-mjs/modelToDom/handlers/handleEntity.js.map +1 -1
- package/lib-mjs/modelToDom/handlers/handleFormatContainer.js +5 -1
- package/lib-mjs/modelToDom/handlers/handleFormatContainer.js.map +1 -1
- package/lib-mjs/modelToDom/handlers/handleGeneralModel.d.ts +6 -2
- package/lib-mjs/modelToDom/handlers/handleGeneralModel.js +15 -7
- package/lib-mjs/modelToDom/handlers/handleGeneralModel.js.map +1 -1
- package/lib-mjs/modelToDom/handlers/handleImage.d.ts +2 -2
- package/lib-mjs/modelToDom/handlers/handleImage.js +2 -2
- package/lib-mjs/modelToDom/handlers/handleImage.js.map +1 -1
- package/lib-mjs/modelToDom/handlers/handleParagraph.js +3 -2
- package/lib-mjs/modelToDom/handlers/handleParagraph.js.map +1 -1
- package/lib-mjs/modelToDom/handlers/handleSegment.d.ts +2 -2
- package/lib-mjs/modelToDom/handlers/handleSegment.js +6 -6
- package/lib-mjs/modelToDom/handlers/handleSegment.js.map +1 -1
- package/lib-mjs/modelToDom/handlers/handleSegmentDecorator.d.ts +2 -2
- package/lib-mjs/modelToDom/handlers/handleSegmentDecorator.js +3 -1
- package/lib-mjs/modelToDom/handlers/handleSegmentDecorator.js.map +1 -1
- package/lib-mjs/modelToDom/handlers/handleText.d.ts +2 -2
- package/lib-mjs/modelToDom/handlers/handleText.js +2 -2
- package/lib-mjs/modelToDom/handlers/handleText.js.map +1 -1
- package/lib-mjs/modelToDom/utils/handleSegmentCommon.d.ts +1 -1
- package/lib-mjs/modelToDom/utils/handleSegmentCommon.js +3 -2
- package/lib-mjs/modelToDom/utils/handleSegmentCommon.js.map +1 -1
- package/lib-mjs/modelToDom/utils/stackFormat.js +2 -1
- package/lib-mjs/modelToDom/utils/stackFormat.js.map +1 -1
- package/package.json +4 -4
- package/lib/formatHandlers/utils/defaultStyles.d.ts +0 -15
- package/lib/formatHandlers/utils/defaultStyles.js.map +0 -1
- package/lib-amd/formatHandlers/utils/defaultStyles.d.ts +0 -15
- package/lib-amd/formatHandlers/utils/defaultStyles.js.map +0 -1
- package/lib-mjs/formatHandlers/utils/defaultStyles.d.ts +0 -15
- package/lib-mjs/formatHandlers/utils/defaultStyles.js.map +0 -1
|
@@ -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"]}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.
|
|
3
|
+
exports.defaultHTMLStyleMap = void 0;
|
|
5
4
|
var blockElement = {
|
|
6
5
|
display: 'block',
|
|
7
6
|
};
|
|
8
7
|
/**
|
|
9
8
|
* @internal
|
|
10
9
|
*/
|
|
11
|
-
exports.
|
|
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
|
|
3
|
+
* Create context object for DOM to Content Model conversion
|
|
5
4
|
* @param editorContext Context of editor
|
|
6
|
-
* @param options
|
|
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
|
|
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
|
|
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
|
|
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
|
|
15
|
-
|
|
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
|
-
},
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function createDomToModelDecoratorContext() {
|
|
45
|
+
return {
|
|
46
|
+
link: {
|
|
19
47
|
format: {},
|
|
20
48
|
dataset: {},
|
|
21
|
-
},
|
|
49
|
+
},
|
|
50
|
+
code: {
|
|
22
51
|
format: {},
|
|
23
|
-
},
|
|
52
|
+
},
|
|
53
|
+
blockDecorator: {
|
|
24
54
|
format: {},
|
|
25
55
|
tagName: '',
|
|
26
|
-
},
|
|
27
|
-
|
|
28
|
-
context.blockFormat.direction = 'rtl';
|
|
29
|
-
}
|
|
30
|
-
if (selection) {
|
|
31
|
-
context.rangeEx = selection;
|
|
32
|
-
}
|
|
33
|
-
return context;
|
|
56
|
+
},
|
|
57
|
+
};
|
|
34
58
|
}
|
|
35
|
-
|
|
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,
|
|
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
|
|
7
|
-
* @param
|
|
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,
|
|
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
|
|
11
|
-
* @param
|
|
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,
|
|
16
|
-
var model = (0, createContentModelDocument_1.createContentModelDocument)(
|
|
17
|
-
|
|
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":";;;
|
|
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
|
|
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":";;;
|
|
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,
|
|
1
|
+
import { ContentModelFormatMap, FormatAppliers, FormatHandlerTypeMap, FormatParsers } from 'roosterjs-content-model-types';
|
|
2
2
|
/**
|
|
3
3
|
* @internal
|
|
4
4
|
*/
|
|
5
|
-
export declare const
|
|
5
|
+
export declare const defaultFormatKeysPerCategory: {
|
|
6
|
+
[key in keyof ContentModelFormatMap]: (keyof FormatHandlerTypeMap)[];
|
|
7
|
+
};
|
|
6
8
|
/**
|
|
7
9
|
* @internal
|
|
8
10
|
*/
|
|
9
|
-
export declare const
|
|
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
|
|
15
|
+
export declare const defaultFormatAppliers: FormatAppliers;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
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
|
-
|
|
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":"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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 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"]}
|