roosterjs-content-model-dom 9.35.0 → 9.36.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/modelToDom/handlers/handleParagraph.js +2 -8
- package/lib/modelToDom/handlers/handleParagraph.js.map +1 -1
- package/lib-amd/modelToDom/handlers/handleParagraph.js +2 -8
- package/lib-amd/modelToDom/handlers/handleParagraph.js.map +1 -1
- package/lib-mjs/modelToDom/handlers/handleParagraph.js +2 -8
- package/lib-mjs/modelToDom/handlers/handleParagraph.js.map +1 -1
- package/package.json +2 -2
|
@@ -27,8 +27,8 @@ var handleParagraph = function (doc, parent, paragraph, context, refNode) {
|
|
|
27
27
|
paragraph.segments.some(function (segment) { return segment.segmentType != 'SelectionMarker'; }));
|
|
28
28
|
var formatOnWrapper = needParagraphWrapper
|
|
29
29
|
? (0, tslib_1.__assign)((0, tslib_1.__assign)({}, (((_a = paragraph.decorator) === null || _a === void 0 ? void 0 : _a.format) || {})), paragraph.segmentFormat) : {};
|
|
30
|
-
var prevRefNode = refNode === null || refNode === void 0 ? void 0 : refNode.previousSibling;
|
|
31
30
|
container = doc.createElement(((_b = paragraph.decorator) === null || _b === void 0 ? void 0 : _b.tagName) || DefaultParagraphTag);
|
|
31
|
+
parent.insertBefore(container, refNode);
|
|
32
32
|
context.regularSelection.current = {
|
|
33
33
|
block: needParagraphWrapper ? container : container.parentNode,
|
|
34
34
|
segment: null,
|
|
@@ -70,13 +70,7 @@ var handleParagraph = function (doc, parent, paragraph, context, refNode) {
|
|
|
70
70
|
// since this paragraph it is implicit. In that case container.nextSibling will become original
|
|
71
71
|
// inline entity's next sibling. So reset refNode to its real next sibling (after change) here
|
|
72
72
|
// to make sure the value is correct.
|
|
73
|
-
refNode =
|
|
74
|
-
prevRefNode === undefined // When refNode is not passed in
|
|
75
|
-
? null
|
|
76
|
-
: prevRefNode === null // When refNode is the first child of parent
|
|
77
|
-
? parent.firstChild
|
|
78
|
-
: prevRefNode.nextSibling; // Normal case
|
|
79
|
-
parent.insertBefore(container, refNode);
|
|
73
|
+
refNode = container.nextSibling;
|
|
80
74
|
if (container) {
|
|
81
75
|
(_d = context.onNodeCreated) === null || _d === void 0 ? void 0 : _d.call(context, paragraph, container);
|
|
82
76
|
(_e = context.domIndexer) === null || _e === void 0 ? void 0 : _e.onParagraph(container);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleParagraph.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleParagraph.ts"],"names":[],"mappings":";;;;AAAA,oDAAmD;AACnD,8DAA6D;AAC7D,mDAAkD;AAClD,wEAAuE;AACvE,oDAAmD;AACnD,gDAA+C;AAO/C,IAAM,mBAAmB,GAAG,KAAK,CAAC;AAElC;;GAEG;AACI,IAAM,eAAe,GAAoD,UAC5E,GAAa,EACb,MAAY,EACZ,SAAgC,EAChC,OAA0B,EAC1B,OAAoB;;IAEpB,IAAI,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhF,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,WAAW,IAAI,SAAS,IAAI,CAAC,CAAC,CAAC,UAAU,EAA3C,CAA2C,CAAC,EAAE;QACzF,OAAO,GAAG,IAAA,uCAAkB,EAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;KACtF;SAAM;QACH,IAAA,yBAAW,EAAC,OAAO,EAAE,CAAA,MAAA,SAAS,CAAC,SAAS,0CAAE,OAAO,KAAI,IAAI,EAAE;;YACvD,IAAM,oBAAoB,GACtB,CAAC,SAAS,CAAC,UAAU;gBACrB,CAAC,CAAC,SAAS,CAAC,SAAS;gBACrB,CAAC,IAAA,6BAAa,EAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;oBACvC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,WAAW,IAAI,iBAAiB,EAAxC,CAAwC,CAAC,CAAC,CAAC;YACtF,IAAM,eAAe,GAAG,oBAAoB;gBACxC,CAAC,iDACQ,CAAC,CAAA,MAAA,SAAS,CAAC,SAAS,0CAAE,MAAM,KAAI,EAAE,CAAC,GACnC,SAAS,CAAC,aAAa,EAEhC,CAAC,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"handleParagraph.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleParagraph.ts"],"names":[],"mappings":"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","sourcesContent":["import { applyFormat } from '../utils/applyFormat';\nimport { getObjectKeys } from '../../domUtils/getObjectKeys';\nimport { optimize } from '../optimizers/optimize';\nimport { reuseCachedElement } from '../../domUtils/reuseCachedElement';\nimport { stackFormat } from '../utils/stackFormat';\nimport { unwrap } from '../../domUtils/unwrap';\nimport type {\n ContentModelBlockHandler,\n ContentModelParagraph,\n ModelToDomContext,\n} from 'roosterjs-content-model-types';\n\nconst DefaultParagraphTag = 'div';\n\n/**\n * @internal\n */\nexport const handleParagraph: ContentModelBlockHandler<ContentModelParagraph> = (\n doc: Document,\n parent: Node,\n paragraph: ContentModelParagraph,\n context: ModelToDomContext,\n refNode: Node | null\n) => {\n let container = context.allowCacheElement ? paragraph.cachedElement : undefined;\n\n if (container && paragraph.segments.every(x => x.segmentType != 'General' && !x.isSelected)) {\n refNode = reuseCachedElement(parent, container, refNode, context.rewriteFromModel);\n } else {\n stackFormat(context, paragraph.decorator?.tagName || null, () => {\n const needParagraphWrapper =\n !paragraph.isImplicit ||\n !!paragraph.decorator ||\n (getObjectKeys(paragraph.format).length > 0 &&\n paragraph.segments.some(segment => segment.segmentType != 'SelectionMarker'));\n const formatOnWrapper = needParagraphWrapper\n ? {\n ...(paragraph.decorator?.format || {}),\n ...paragraph.segmentFormat,\n }\n : {};\n\n container = doc.createElement(paragraph.decorator?.tagName || DefaultParagraphTag);\n\n parent.insertBefore(container, refNode);\n\n context.regularSelection.current = {\n block: needParagraphWrapper ? container : container.parentNode,\n segment: null,\n };\n\n const handleSegments = () => {\n const parent = container;\n\n if (parent) {\n const firstSegment = paragraph.segments[0];\n\n if (firstSegment?.segmentType == 'SelectionMarker') {\n // Make sure there is a segment created before selection marker.\n // If selection marker is the first selected segment in a paragraph, create a dummy text node,\n // so after rewrite, the regularSelection object can have a valid segment object set to the text node.\n context.modelHandlers.text(\n doc,\n parent,\n {\n ...firstSegment,\n segmentType: 'Text',\n text: '',\n },\n context,\n []\n );\n }\n\n paragraph.segments.forEach(segment => {\n const newSegments: Node[] = [];\n context.modelHandlers.segment(doc, parent, segment, context, newSegments);\n\n newSegments.forEach(node => {\n context.domIndexer?.onSegment(node, paragraph, [segment]);\n });\n });\n }\n };\n\n if (needParagraphWrapper) {\n stackFormat(context, formatOnWrapper, handleSegments);\n\n applyFormat(container, context.formatAppliers.block, paragraph.format, context);\n applyFormat(container, context.formatAppliers.container, paragraph.format, context);\n applyFormat(\n container,\n context.formatAppliers.segmentOnBlock,\n formatOnWrapper,\n context\n );\n\n context.paragraphMap?.applyMarkerToDom(container, paragraph);\n } else {\n handleSegments();\n }\n\n optimize(container, context);\n\n // It is possible the next sibling node is changed during processing child segments\n // e.g. When this paragraph is an implicit paragraph and it contains an inline entity segment\n // The segment will be appended to container as child then the container will be removed\n // since this paragraph it is implicit. In that case container.nextSibling will become original\n // inline entity's next sibling. So reset refNode to its real next sibling (after change) here\n // to make sure the value is correct.\n refNode = container.nextSibling;\n\n if (container) {\n context.onNodeCreated?.(paragraph, container);\n context.domIndexer?.onParagraph(container);\n }\n\n if (needParagraphWrapper) {\n if (context.allowCacheElement) {\n paragraph.cachedElement = container;\n }\n\n context.rewriteFromModel.addedBlockElements.push(container);\n } else {\n unwrap(container);\n container = undefined;\n }\n });\n }\n\n return refNode;\n};\n"]}
|
|
@@ -21,8 +21,8 @@ define(["require", "exports", "tslib", "../utils/applyFormat", "../../domUtils/g
|
|
|
21
21
|
paragraph.segments.some(function (segment) { return segment.segmentType != 'SelectionMarker'; }));
|
|
22
22
|
var formatOnWrapper = needParagraphWrapper
|
|
23
23
|
? (0, tslib_1.__assign)((0, tslib_1.__assign)({}, (((_a = paragraph.decorator) === null || _a === void 0 ? void 0 : _a.format) || {})), paragraph.segmentFormat) : {};
|
|
24
|
-
var prevRefNode = refNode === null || refNode === void 0 ? void 0 : refNode.previousSibling;
|
|
25
24
|
container = doc.createElement(((_b = paragraph.decorator) === null || _b === void 0 ? void 0 : _b.tagName) || DefaultParagraphTag);
|
|
25
|
+
parent.insertBefore(container, refNode);
|
|
26
26
|
context.regularSelection.current = {
|
|
27
27
|
block: needParagraphWrapper ? container : container.parentNode,
|
|
28
28
|
segment: null,
|
|
@@ -64,13 +64,7 @@ define(["require", "exports", "tslib", "../utils/applyFormat", "../../domUtils/g
|
|
|
64
64
|
// since this paragraph it is implicit. In that case container.nextSibling will become original
|
|
65
65
|
// inline entity's next sibling. So reset refNode to its real next sibling (after change) here
|
|
66
66
|
// to make sure the value is correct.
|
|
67
|
-
refNode =
|
|
68
|
-
prevRefNode === undefined // When refNode is not passed in
|
|
69
|
-
? null
|
|
70
|
-
: prevRefNode === null // When refNode is the first child of parent
|
|
71
|
-
? parent.firstChild
|
|
72
|
-
: prevRefNode.nextSibling; // Normal case
|
|
73
|
-
parent.insertBefore(container, refNode);
|
|
67
|
+
refNode = container.nextSibling;
|
|
74
68
|
if (container) {
|
|
75
69
|
(_d = context.onNodeCreated) === null || _d === void 0 ? void 0 : _d.call(context, paragraph, container);
|
|
76
70
|
(_e = context.domIndexer) === null || _e === void 0 ? void 0 : _e.onParagraph(container);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleParagraph.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleParagraph.ts"],"names":[],"mappings":";;;;IAYA,IAAM,mBAAmB,GAAG,KAAK,CAAC;IAElC;;OAEG;IACI,IAAM,eAAe,GAAoD,UAC5E,GAAa,EACb,MAAY,EACZ,SAAgC,EAChC,OAA0B,EAC1B,OAAoB;;QAEpB,IAAI,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;QAEhF,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,WAAW,IAAI,SAAS,IAAI,CAAC,CAAC,CAAC,UAAU,EAA3C,CAA2C,CAAC,EAAE;YACzF,OAAO,GAAG,IAAA,uCAAkB,EAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;SACtF;aAAM;YACH,IAAA,yBAAW,EAAC,OAAO,EAAE,CAAA,MAAA,SAAS,CAAC,SAAS,0CAAE,OAAO,KAAI,IAAI,EAAE;;gBACvD,IAAM,oBAAoB,GACtB,CAAC,SAAS,CAAC,UAAU;oBACrB,CAAC,CAAC,SAAS,CAAC,SAAS;oBACrB,CAAC,IAAA,6BAAa,EAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;wBACvC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,WAAW,IAAI,iBAAiB,EAAxC,CAAwC,CAAC,CAAC,CAAC;gBACtF,IAAM,eAAe,GAAG,oBAAoB;oBACxC,CAAC,iDACQ,CAAC,CAAA,MAAA,SAAS,CAAC,SAAS,0CAAE,MAAM,KAAI,EAAE,CAAC,GACnC,SAAS,CAAC,aAAa,EAEhC,CAAC,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"handleParagraph.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleParagraph.ts"],"names":[],"mappings":"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","sourcesContent":["import { applyFormat } from '../utils/applyFormat';\nimport { getObjectKeys } from '../../domUtils/getObjectKeys';\nimport { optimize } from '../optimizers/optimize';\nimport { reuseCachedElement } from '../../domUtils/reuseCachedElement';\nimport { stackFormat } from '../utils/stackFormat';\nimport { unwrap } from '../../domUtils/unwrap';\nimport type {\n ContentModelBlockHandler,\n ContentModelParagraph,\n ModelToDomContext,\n} from 'roosterjs-content-model-types';\n\nconst DefaultParagraphTag = 'div';\n\n/**\n * @internal\n */\nexport const handleParagraph: ContentModelBlockHandler<ContentModelParagraph> = (\n doc: Document,\n parent: Node,\n paragraph: ContentModelParagraph,\n context: ModelToDomContext,\n refNode: Node | null\n) => {\n let container = context.allowCacheElement ? paragraph.cachedElement : undefined;\n\n if (container && paragraph.segments.every(x => x.segmentType != 'General' && !x.isSelected)) {\n refNode = reuseCachedElement(parent, container, refNode, context.rewriteFromModel);\n } else {\n stackFormat(context, paragraph.decorator?.tagName || null, () => {\n const needParagraphWrapper =\n !paragraph.isImplicit ||\n !!paragraph.decorator ||\n (getObjectKeys(paragraph.format).length > 0 &&\n paragraph.segments.some(segment => segment.segmentType != 'SelectionMarker'));\n const formatOnWrapper = needParagraphWrapper\n ? {\n ...(paragraph.decorator?.format || {}),\n ...paragraph.segmentFormat,\n }\n : {};\n\n container = doc.createElement(paragraph.decorator?.tagName || DefaultParagraphTag);\n\n parent.insertBefore(container, refNode);\n\n context.regularSelection.current = {\n block: needParagraphWrapper ? container : container.parentNode,\n segment: null,\n };\n\n const handleSegments = () => {\n const parent = container;\n\n if (parent) {\n const firstSegment = paragraph.segments[0];\n\n if (firstSegment?.segmentType == 'SelectionMarker') {\n // Make sure there is a segment created before selection marker.\n // If selection marker is the first selected segment in a paragraph, create a dummy text node,\n // so after rewrite, the regularSelection object can have a valid segment object set to the text node.\n context.modelHandlers.text(\n doc,\n parent,\n {\n ...firstSegment,\n segmentType: 'Text',\n text: '',\n },\n context,\n []\n );\n }\n\n paragraph.segments.forEach(segment => {\n const newSegments: Node[] = [];\n context.modelHandlers.segment(doc, parent, segment, context, newSegments);\n\n newSegments.forEach(node => {\n context.domIndexer?.onSegment(node, paragraph, [segment]);\n });\n });\n }\n };\n\n if (needParagraphWrapper) {\n stackFormat(context, formatOnWrapper, handleSegments);\n\n applyFormat(container, context.formatAppliers.block, paragraph.format, context);\n applyFormat(container, context.formatAppliers.container, paragraph.format, context);\n applyFormat(\n container,\n context.formatAppliers.segmentOnBlock,\n formatOnWrapper,\n context\n );\n\n context.paragraphMap?.applyMarkerToDom(container, paragraph);\n } else {\n handleSegments();\n }\n\n optimize(container, context);\n\n // It is possible the next sibling node is changed during processing child segments\n // e.g. When this paragraph is an implicit paragraph and it contains an inline entity segment\n // The segment will be appended to container as child then the container will be removed\n // since this paragraph it is implicit. In that case container.nextSibling will become original\n // inline entity's next sibling. So reset refNode to its real next sibling (after change) here\n // to make sure the value is correct.\n refNode = container.nextSibling;\n\n if (container) {\n context.onNodeCreated?.(paragraph, container);\n context.domIndexer?.onParagraph(container);\n }\n\n if (needParagraphWrapper) {\n if (context.allowCacheElement) {\n paragraph.cachedElement = container;\n }\n\n context.rewriteFromModel.addedBlockElements.push(container);\n } else {\n unwrap(container);\n container = undefined;\n }\n });\n }\n\n return refNode;\n};\n"]}
|
|
@@ -24,8 +24,8 @@ export var handleParagraph = function (doc, parent, paragraph, context, refNode)
|
|
|
24
24
|
paragraph.segments.some(function (segment) { return segment.segmentType != 'SelectionMarker'; }));
|
|
25
25
|
var formatOnWrapper = needParagraphWrapper
|
|
26
26
|
? __assign(__assign({}, (((_a = paragraph.decorator) === null || _a === void 0 ? void 0 : _a.format) || {})), paragraph.segmentFormat) : {};
|
|
27
|
-
var prevRefNode = refNode === null || refNode === void 0 ? void 0 : refNode.previousSibling;
|
|
28
27
|
container = doc.createElement(((_b = paragraph.decorator) === null || _b === void 0 ? void 0 : _b.tagName) || DefaultParagraphTag);
|
|
28
|
+
parent.insertBefore(container, refNode);
|
|
29
29
|
context.regularSelection.current = {
|
|
30
30
|
block: needParagraphWrapper ? container : container.parentNode,
|
|
31
31
|
segment: null,
|
|
@@ -67,13 +67,7 @@ export var handleParagraph = function (doc, parent, paragraph, context, refNode)
|
|
|
67
67
|
// since this paragraph it is implicit. In that case container.nextSibling will become original
|
|
68
68
|
// inline entity's next sibling. So reset refNode to its real next sibling (after change) here
|
|
69
69
|
// to make sure the value is correct.
|
|
70
|
-
refNode =
|
|
71
|
-
prevRefNode === undefined // When refNode is not passed in
|
|
72
|
-
? null
|
|
73
|
-
: prevRefNode === null // When refNode is the first child of parent
|
|
74
|
-
? parent.firstChild
|
|
75
|
-
: prevRefNode.nextSibling; // Normal case
|
|
76
|
-
parent.insertBefore(container, refNode);
|
|
70
|
+
refNode = container.nextSibling;
|
|
77
71
|
if (container) {
|
|
78
72
|
(_d = context.onNodeCreated) === null || _d === void 0 ? void 0 : _d.call(context, paragraph, container);
|
|
79
73
|
(_e = context.domIndexer) === null || _e === void 0 ? void 0 : _e.onParagraph(container);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleParagraph.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleParagraph.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAO/C,IAAM,mBAAmB,GAAG,KAAK,CAAC;AAElC;;GAEG;AACH,MAAM,CAAC,IAAM,eAAe,GAAoD,UAC5E,GAAa,EACb,MAAY,EACZ,SAAgC,EAChC,OAA0B,EAC1B,OAAoB;;IAEpB,IAAI,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhF,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,WAAW,IAAI,SAAS,IAAI,CAAC,CAAC,CAAC,UAAU,EAA3C,CAA2C,CAAC,EAAE;QACzF,OAAO,GAAG,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;KACtF;SAAM;QACH,WAAW,CAAC,OAAO,EAAE,CAAA,MAAA,SAAS,CAAC,SAAS,0CAAE,OAAO,KAAI,IAAI,EAAE;;YACvD,IAAM,oBAAoB,GACtB,CAAC,SAAS,CAAC,UAAU;gBACrB,CAAC,CAAC,SAAS,CAAC,SAAS;gBACrB,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;oBACvC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,WAAW,IAAI,iBAAiB,EAAxC,CAAwC,CAAC,CAAC,CAAC;YACtF,IAAM,eAAe,GAAG,oBAAoB;gBACxC,CAAC,uBACQ,CAAC,CAAA,MAAA,SAAS,CAAC,SAAS,0CAAE,MAAM,KAAI,EAAE,CAAC,GACnC,SAAS,CAAC,aAAa,EAEhC,CAAC,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"handleParagraph.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleParagraph.ts"],"names":[],"mappings":"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","sourcesContent":["import { applyFormat } from '../utils/applyFormat';\nimport { getObjectKeys } from '../../domUtils/getObjectKeys';\nimport { optimize } from '../optimizers/optimize';\nimport { reuseCachedElement } from '../../domUtils/reuseCachedElement';\nimport { stackFormat } from '../utils/stackFormat';\nimport { unwrap } from '../../domUtils/unwrap';\nimport type {\n ContentModelBlockHandler,\n ContentModelParagraph,\n ModelToDomContext,\n} from 'roosterjs-content-model-types';\n\nconst DefaultParagraphTag = 'div';\n\n/**\n * @internal\n */\nexport const handleParagraph: ContentModelBlockHandler<ContentModelParagraph> = (\n doc: Document,\n parent: Node,\n paragraph: ContentModelParagraph,\n context: ModelToDomContext,\n refNode: Node | null\n) => {\n let container = context.allowCacheElement ? paragraph.cachedElement : undefined;\n\n if (container && paragraph.segments.every(x => x.segmentType != 'General' && !x.isSelected)) {\n refNode = reuseCachedElement(parent, container, refNode, context.rewriteFromModel);\n } else {\n stackFormat(context, paragraph.decorator?.tagName || null, () => {\n const needParagraphWrapper =\n !paragraph.isImplicit ||\n !!paragraph.decorator ||\n (getObjectKeys(paragraph.format).length > 0 &&\n paragraph.segments.some(segment => segment.segmentType != 'SelectionMarker'));\n const formatOnWrapper = needParagraphWrapper\n ? {\n ...(paragraph.decorator?.format || {}),\n ...paragraph.segmentFormat,\n }\n : {};\n\n container = doc.createElement(paragraph.decorator?.tagName || DefaultParagraphTag);\n\n parent.insertBefore(container, refNode);\n\n context.regularSelection.current = {\n block: needParagraphWrapper ? container : container.parentNode,\n segment: null,\n };\n\n const handleSegments = () => {\n const parent = container;\n\n if (parent) {\n const firstSegment = paragraph.segments[0];\n\n if (firstSegment?.segmentType == 'SelectionMarker') {\n // Make sure there is a segment created before selection marker.\n // If selection marker is the first selected segment in a paragraph, create a dummy text node,\n // so after rewrite, the regularSelection object can have a valid segment object set to the text node.\n context.modelHandlers.text(\n doc,\n parent,\n {\n ...firstSegment,\n segmentType: 'Text',\n text: '',\n },\n context,\n []\n );\n }\n\n paragraph.segments.forEach(segment => {\n const newSegments: Node[] = [];\n context.modelHandlers.segment(doc, parent, segment, context, newSegments);\n\n newSegments.forEach(node => {\n context.domIndexer?.onSegment(node, paragraph, [segment]);\n });\n });\n }\n };\n\n if (needParagraphWrapper) {\n stackFormat(context, formatOnWrapper, handleSegments);\n\n applyFormat(container, context.formatAppliers.block, paragraph.format, context);\n applyFormat(container, context.formatAppliers.container, paragraph.format, context);\n applyFormat(\n container,\n context.formatAppliers.segmentOnBlock,\n formatOnWrapper,\n context\n );\n\n context.paragraphMap?.applyMarkerToDom(container, paragraph);\n } else {\n handleSegments();\n }\n\n optimize(container, context);\n\n // It is possible the next sibling node is changed during processing child segments\n // e.g. When this paragraph is an implicit paragraph and it contains an inline entity segment\n // The segment will be appended to container as child then the container will be removed\n // since this paragraph it is implicit. In that case container.nextSibling will become original\n // inline entity's next sibling. So reset refNode to its real next sibling (after change) here\n // to make sure the value is correct.\n refNode = container.nextSibling;\n\n if (container) {\n context.onNodeCreated?.(paragraph, container);\n context.domIndexer?.onParagraph(container);\n }\n\n if (needParagraphWrapper) {\n if (context.allowCacheElement) {\n paragraph.cachedElement = container;\n }\n\n context.rewriteFromModel.addedBlockElements.push(container);\n } else {\n unwrap(container);\n container = undefined;\n }\n });\n }\n\n return refNode;\n};\n"]}
|
package/package.json
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"description": "Content Model for roosterjs",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"tslib": "^2.3.1",
|
|
6
|
-
"roosterjs-content-model-types": "^9.
|
|
6
|
+
"roosterjs-content-model-types": "^9.36.0"
|
|
7
7
|
},
|
|
8
|
-
"version": "9.
|
|
8
|
+
"version": "9.36.0",
|
|
9
9
|
"main": "./lib/index.js",
|
|
10
10
|
"typings": "./lib/index.d.ts",
|
|
11
11
|
"module": "./lib-mjs/index.js",
|