{"version":3,"file":"serializers-DUHL1s1g.js","sources":["../../../app/javascript/components/editor/Spoiler.tsx","../../../app/javascript/components/editor/Element.tsx","../../../app/javascript/components/editor/Leaf.tsx","../../../app/javascript/components/editor/serializers.tsx"],"sourcesContent":["import { useRef, useState } from \"react\";\nimport classNames from \"lib/classNames\";\n\nexport default function Spoiler({ children }) {\n const [visible, setVisible] = useState(false);\n const spoiler = useRef();\n const clicked = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setVisible(!visible);\n };\n const toggleClicked = (e) => {\n if (e.currentTarget === spoiler.current) {\n if (e.key === \" \" || e.key === \"Enter\") {\n e.preventDefault();\n e.stopPropagation();\n setVisible(!visible);\n }\n }\n };\n return (\n \n {children}\n \n );\n}\n","/* eslint-disable react/jsx-props-no-spreading */\nimport Spoiler from \"./Spoiler\";\n\nconst Element = ({ attributes, children, element, key }) => {\n if (element.spoiler) {\n return (\n \n {children}\n \n );\n }\n switch (element.type) {\n case \"block-quote\":\n return (\n
\n {children}\n
\n );\n case \"bulleted-list\":\n return (\n \n );\n case \"heading-two\":\n return (\n

\n {children}\n

\n );\n case \"list-item\":\n return (\n
  • \n {children}\n
  • \n );\n case \"numbered-list\":\n return (\n
      \n {children}\n
    \n );\n case \"div\":\n return (\n
    \n {children}\n
    \n );\n case \"br\":\n return
    ;\n default:\n return (\n

    \n {children}\n

    \n );\n }\n};\n\nexport default Element;\n","/* eslint-disable react/jsx-props-no-spreading */\nimport Spoiler from \"./Spoiler\";\n\nexport function isLeaf(value): boolean {\n return typeof value === \"object\" && typeof value.text === \"string\";\n}\n\nconst Leaf = ({ attributes, children, leaf, key }) => {\n let inner = children;\n if (leaf.spoiler) {\n inner = {inner};\n }\n\n if (leaf.bold) {\n inner = {inner};\n }\n\n if (leaf.code) {\n inner = {inner};\n }\n\n if (leaf.italic) {\n inner = {inner};\n }\n\n if (leaf.type === \"br\") {\n return
    ;\n }\n\n return (\n \n {inner}\n \n );\n};\nexport default Leaf;\n","import Element from \"./Element\";\nimport Leaf, { isLeaf } from \"./Leaf\";\nimport { Descendant, SlateDocument } from \"./types\";\n\nexport const defaultContent: SlateDocument = {\n document: {\n object: \"document\",\n children: [\n {\n data: {},\n object: \"block\",\n type: \"paragraph\",\n children: [\n {\n object: \"text\",\n text: \"\",\n },\n ],\n },\n ],\n },\n};\n\nexport const serialize = (node, index = 0) => {\n if (isLeaf(node)) {\n const leaf = Leaf({\n leaf: node,\n children: node.text,\n attributes: \"\",\n key: `l-${index}`,\n });\n return leaf;\n }\n\n if (node.document) {\n const el = Element({\n attributes: \"\",\n children: node.document.children.map((n, i) => serialize(n, i)),\n element: {\n data: {},\n object: \"block\",\n type: \"div\",\n },\n key: `d-${index}`,\n });\n return el;\n }\n\n const el = Element({\n attributes: \"\",\n children: node.children.map((n, i) => serialize(n, i)),\n element: node,\n key: `e-${index}`,\n });\n return el;\n};\n\nfunction normalizeContent(content: Descendant[]) {\n // {\"data\":{},\"type\":\"br\",\"object\":\"inline\",\"children\":[]},\n return content.map((descendant) => {\n if (descendant.type === \"br\") {\n return {\n ...descendant,\n text: \"\",\n };\n }\n if (descendant.object === \"block\" && descendant.children) {\n return {\n ...descendant,\n children: normalizeContent(descendant.children),\n };\n }\n return descendant;\n });\n}\n\n// Finds the first array of children and uses that in this document\nexport const parseEditorContent = (editorObject) => {\n let content: Descendant[];\n if (editorObject?.document) {\n content =\n editorObject.document.children || defaultContent.document.children;\n } else if (editorObject?.length > 0 && editorObject[0].children) {\n content = editorObject;\n } else {\n content = defaultContent.document.children;\n }\n\n return normalizeContent(content);\n};\n"],"names":["Spoiler","children","visible","setVisible","useState","spoiler","useRef","clicked","e","toggleClicked","jsx","classNames","Element","attributes","element","key","isLeaf","value","Leaf","leaf","inner","createElement","defaultContent","serialize","node","index","n","i","normalizeContent","content","descendant","parseEditorContent","editorObject"],"mappings":"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"}