@payloadcms/plugin-form-builder
Version:
Form builder plugin for Payload CMS
41 lines (40 loc) • 1.14 kB
JavaScript
import { convertLexicalNodesToHTML } from '../serializeLexical.js';
const ALLOWED_HEADING_TAGS = new Set([
'h1',
'h2',
'h3',
'h4',
'h5',
'h6'
]);
const ALLOWED_TEXT_ALIGN = new Set([
'center',
'end',
'justify',
'left',
'right',
'start'
]);
export const HeadingHTMLConverter = {
async converter ({ converters, node, parent, submissionData }) {
const childrenText = await convertLexicalNodesToHTML({
converters,
lexicalNodes: node.children,
parent: {
...node,
parent
},
submissionData
});
const tag = ALLOWED_HEADING_TAGS.has(node?.tag) ? node.tag : 'h1';
const style = [
node.format && ALLOWED_TEXT_ALIGN.has(node.format) ? `text-align: ${node.format};` : '',
node.indent > 0 ? `padding-inline-start: ${node.indent * 40}px;` : ''
].filter(Boolean).join(' ');
return `<${tag}${style ? ` style='${style}'` : ''}>${childrenText}</${tag}>`;
},
nodeTypes: [
'heading'
]
};
//# sourceMappingURL=heading.js.map