vue-admin-core
Version:
A Component Library for Vue 3
1 lines • 7.26 kB
Source Map (JSON)
{"version":3,"file":"utils.mjs","sources":["../../../../../../package/components/msg-editor/src/utils.ts"],"sourcesContent":["import { SlateDescendant } from \"@wangeditor/editor\";\nimport { isEmpty } from \"lodash-es\";\n\nexport const nodeToText = (nodes: SlateDescendant[], { prefix = \"\\\\$\\\\{\", suffix = \"\\\\}\" }) => {\n let str = \"\";\n nodes.forEach((node: any, index) => {\n if (node.type === \"paragraph\") {\n str = str + (str || index !== 0 ? \"\\n\" : \"\") + nodeToText(node.children, { prefix, suffix });\n } else if (node.type === \"variable\") {\n str = str + `\\${${node.value}}`;\n } else {\n str = str + node.text;\n }\n });\n return str;\n};\n\nfunction generateHtmlFromString(\n input: string,\n data: Record<string, { label: string; value: string }>,\n { prefix = \"\\\\$\\\\{\", suffix = \"\\\\}\" }\n): string {\n const nodes: string[] = [];\n const words = Object.keys(data).join(\"|\");\n const reg = new RegExp(`(${prefix}[${words}]+${suffix})`, \"g\");\n const parts = input.split(reg);\n parts.forEach((part) => {\n if (part.match(reg)) {\n const value = part.substring(2, part.length - 1);\n const label = data[value]?.label || value;\n if (label)\n nodes.push(\n `<span data-w-e-type=\"variable\" data-w-e-is-void data-w-e-is-inline data-value=\"${value}\" data-label=\"${label}\">${label}</span>`\n );\n } else {\n nodes.push(part);\n }\n });\n return nodes.join(\"\");\n}\n\nexport function textToHtml(\n str: string,\n data: Record<string, { label: string; value: string }>,\n { prefix = \"\\\\$\\\\{\", suffix = \"\\\\}\" }\n) {\n if (!str || isEmpty(data)) return \"<p><br></p>\";\n const arr = str.split(/\\n/);\n const nodes: any[] = [];\n arr.forEach((item) => {\n if (item) {\n nodes.push(`<p>${generateHtmlFromString(item, data, { prefix, suffix })}</p>`);\n } else {\n nodes.push(`<p><br/></p>`);\n }\n });\n return nodes.join(\"\");\n}\n\nfunction generateNodeFromString(\n input: string,\n { prefix = \"\\\\$\\\\{\", suffix = \"\\\\}\" },\n data: Record<string, { label: string; value: string }>\n) {\n const nodes: any[] = [];\n const words = Object.keys(data).join(\"|\");\n const reg = new RegExp(`(${prefix}[${words}]+${suffix})`, \"g\");\n const parts = input.split(reg);\n parts.forEach((part) => {\n if (part.match(reg)) {\n const value = part.substring(2, part.length - 1);\n const label = data[value]?.label || value;\n if (value) {\n nodes.push({\n type: \"variable\",\n value,\n label,\n children: [{ text: \"\" }]\n });\n }\n } else {\n nodes.push({ text: part });\n }\n });\n return nodes;\n}\n\nexport function textToNode(\n { prefix = \"\\\\$\\\\{\", suffix = \"\\\\}\" },\n str?: string,\n data?: Record<string, { label: string; value: string }>\n) {\n if (!str || isEmpty(data)) return \"\";\n const arr = str.split(/\\n/);\n const nodes: any[] = [];\n if (str.indexOf(\"\\n\") === -1) {\n return generateNodeFromString(str, { prefix, suffix }, data);\n }\n arr.forEach((item) => {\n if (item) {\n nodes.push({\n type: \"paragraph\",\n children: generateNodeFromString(item, { prefix, suffix }, data)\n });\n }\n });\n return nodes;\n}\n"],"names":[],"mappings":"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"}