@core-pilot/client-vue 0.0.3 → 0.0.5

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.
Files changed (40) hide show
  1. package/dist/cjs/client-vue.css +1 -1
  2. package/dist/cjs/components/core-table/index.js +2 -0
  3. package/dist/cjs/components/core-table/index.js.map +1 -0
  4. package/dist/cjs/components/editor-sender/index.js +1 -1
  5. package/dist/cjs/components/editor-sender/index.js.map +1 -1
  6. package/dist/cjs/components/editor-sender/source/index.vue.js +1 -1
  7. package/dist/cjs/components/editor-sender/source/index.vue2.js +1 -1
  8. package/dist/cjs/components/editor-sender/source/index.vue2.js.map +1 -1
  9. package/dist/cjs/components/index.js +1 -1
  10. package/dist/cjs/components/x-markdown/index.js +1 -1
  11. package/dist/cjs/components/x-markdown/index.js.map +1 -1
  12. package/dist/cjs/components/x-markdown/utils/parseCorePilotSchema.js +1 -1
  13. package/dist/cjs/components/x-markdown/utils/parseCorePilotSchema.js.map +1 -1
  14. package/dist/cjs/index.js +1 -1
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/es/locale/lang/zh-cn.js +2 -0
  17. package/dist/cjs/node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/es/locale/lang/zh-cn.js.map +1 -0
  18. package/dist/cjs/node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/theme-chalk/src/config-provider.scss.js +2 -0
  19. package/dist/cjs/node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/theme-chalk/src/config-provider.scss.js.map +1 -0
  20. package/dist/es/client-vue.css +1 -1
  21. package/dist/es/components/core-table/index.js +107 -0
  22. package/dist/es/components/core-table/index.js.map +1 -0
  23. package/dist/es/components/editor-sender/index.js +2 -3
  24. package/dist/es/components/editor-sender/index.js.map +1 -1
  25. package/dist/es/components/editor-sender/source/index.vue.js +1 -1
  26. package/dist/es/components/editor-sender/source/index.vue2.js +0 -1
  27. package/dist/es/components/editor-sender/source/index.vue2.js.map +1 -1
  28. package/dist/es/components/index.js +2 -0
  29. package/dist/es/components/index.js.map +1 -1
  30. package/dist/es/components/x-markdown/index.js +23 -14
  31. package/dist/es/components/x-markdown/index.js.map +1 -1
  32. package/dist/es/components/x-markdown/utils/parseCorePilotSchema.js +65 -54
  33. package/dist/es/components/x-markdown/utils/parseCorePilotSchema.js.map +1 -1
  34. package/dist/es/index.js +2 -0
  35. package/dist/es/index.js.map +1 -1
  36. package/dist/es/node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/es/locale/lang/zh-cn.js +189 -0
  37. package/dist/es/node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/es/locale/lang/zh-cn.js.map +1 -0
  38. package/dist/es/node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/theme-chalk/src/config-provider.scss.js +2 -0
  39. package/dist/es/node_modules/.pnpm/element-plus@2.11.8_vue@3.5.24_typescript@5.6.3_/node_modules/element-plus/theme-chalk/src/config-provider.scss.js.map +1 -0
  40. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/x-markdown/index.tsx"],"sourcesContent":["import { \n defineComponent, \n ref, computed, watch, \n onMounted, onBeforeUnmount, \n useTemplateRef, h, nextTick,\n onUpdated,\n} from 'vue';\nimport debounce from 'lodash/debounce';\nimport { unified } from \"unified\";\nimport remarkParse from \"remark-parse\";\nimport remarkBreaks from \"remark-breaks\";\nimport remarkGfm from \"remark-gfm\";\nimport remarkMath from \"remark-math\";\nimport remarkGemoji from \"remark-gemoji\";\nimport remarkRehype from \"remark-rehype\";\nimport rehypeRaw from \"rehype-raw\";\nimport rehypeKatex from \"rehype-katex\";\nimport rehypeStringify from \"rehype-stringify\";\nimport { useTemplateRefsList } from '@vueuse/core'\n\nimport { \n ElMessage, \n ElForm,\n ElFormItem, \n ElInput, \n ElCard,\n ElButton,\n ElSelect,\n ElDatePicker,\n ElTable,\n ElTableColumn,\n ElTimeline,\n ElRow,\n ElCol,\n ElRadioGroup,\n ElRadio\n} from 'element-plus';\nimport './style/index.less';\nimport './theme/index.less';\nimport { createStreamGenerator } from './utils/mockStream.ts';\nimport { parseCorePilot } from './utils/parseCorePilotSchema.ts';\nimport { Accordion } from './utils/animation.ts';\nimport CoreText from '../core-text';\nimport CoreTips from '../core-tips';\nimport CoreResult from '../core-result';\nimport 'katex/dist/katex.min.css'\n\nconst checkAndReturnRefList = (text: string) => {\n const reg = /<div hidden>([\\s\\S]*?)<\\/div>/g;\n const match = reg.exec(text);\n if (!match) {\n return [];\n }\n const refListStr = match[1];\n try {\n const refList = JSON.parse(refListStr);\n return refList;\n } catch (error) {\n return [];\n }\n}\n\ninterface RefConfig {\n title: string,\n link: string,\n time: string,\n author: string,\n}\n\nexport default defineComponent({\n name: 'XMarkdown',\n props: {\n text: {\n type: String,\n default: '',\n },\n autoHideThinking: {\n type: Boolean,\n default: true,\n },\n typing: {\n type: Boolean,\n default: false,\n },\n speed: {\n type: Number,\n default: 200,\n },\n isHistoryMessage: {\n type: Boolean,\n default: false,\n },\n },\n expose: [\n 'getContentText'\n ],\n emits: ['hoverActiveRefTrigger', 'clickActiveRefTrigger', 'refConfigUpdate', 'downloadFile', 'coreSubmit'],\n setup(props, { emit }) {\n const container = useTemplateRef<HTMLElement>('x-markdown-container');\n const startTime = ref<number>(Date.now());\n const endTime = ref<number>(-Infinity);\n const context = ref('');\n const pendingImages = new Set(); // 存储待处理的图片\n const isInitAnimation = ref(false);\n const tagComplete = ref(false);\n const hitlData = ref<Array<Record<string, string>>>([]);\n const formRefs = useTemplateRefsList<typeof ElForm>();\n const curIndex = ref(0);\n let curInit = 0;\n const ast = ref<any>(null)\n\n const streamCall = (stream: string) => {\n context.value = context.value + stream;\n }\n\n const streamGener = ref<ReturnType<typeof createStreamGenerator>>(createStreamGenerator(streamCall, props.speed));\n\n const updateSummaryClasses = (mdText: string) => {\n const summaryDivReg = /(<summary[^>]*>[\\s\\S]*?<\\/summary>)\\s*(<div>[\\s\\S]*?)(<\\/div>|$)/g;\n let isFirstSummary = true;\n\n return mdText.replace(summaryDivReg, (match, summaryTag, divContent, divEnd) => {\n const isDivComplete = divEnd === '</div>'; // 直接判断闭合标签是否存在\n const updatedSummary = summaryTag.replace(\n /(<summary)/g,\n (match) => {\n if (isFirstSummary) {\n isFirstSummary = false;\n return match;\n }\n return `<summary class=\"${isDivComplete ? 'loaded' : 'loading'}\"`\n }\n );\n return `${updatedSummary}\\n${divContent}${divEnd}`; // 重组时拼接闭合部分\n });\n }\n\n const formatText = computed(() => {\n if (!props.autoHideThinking) return context.value;\n let content = context.value;\n content = updateSummaryClasses(content);\n content = content.replace(/[\\u00A0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/g, ' ');\n if (content.includes('</details>')) {\n if (endTime.value === -Infinity) {\n endTime.value = Date.now();\n }\n\n const res = checkAndReturnRefList(content);\n\n let text = content.replace(/<details open>([\\s\\S]*?)<\\/details>/g, (match, content) => {\n // 将 content 中的第一个 <summary> 中的内容替换为 具体的秒数\n content = content.replace(/<summary>([\\s\\S]*?)<\\/summary>/, (match, content) => {\n const duration = ((endTime.value - startTime.value) / 1000).toFixed(0);\n return `<summary style=\"color: #8D90A0;font-weight: 300; font-size: 16px;\">\n 已完成思考 ${duration > '0' ? duration + 's' : ''} ${res.length ? `<span style=\"display: inline-block;margin: 0 8px;border-left: 1px solid #CDCFD7;width: 1px;height: 16px;\"></span> 引用文档:${res?.length} 个` : ''}\n </summary>`;\n })\n\n content = content.replace(/<summary>完成<\\/summary>/, '<summary class=\"loaded\">完成</summary>')\n\n return `<details>${content}</details>`;\n });\n \n return text;\n }\n return content;\n })\n\n // 如果当前是历史消息,则禁用点击事件\n const disabled = computed(() => {\n return props.isHistoryMessage;\n })\n\n watch(() => [props.text, props.typing], ([text, typing]) => {\n if (text) {\n streamGener.value?.update(text);\n if (!typing) {\n streamGener.value?.stop();\n return;\n }\n // 资料整合 标签之后,采用服务端流式速度\n const checkReg = /<summary>资料整合<\\/summary>\\r?\\n(.|\\s)+?/;\n if (!tagComplete.value && checkReg.test(text as string)) {\n tagComplete.value = true;\n streamGener.value?.setSpeed(500);\n return;\n }\n }\n }, {\n immediate: true,\n })\n\n // 获取所有的ref配置\n const refConfig = ref<Array<RefConfig>>([]);\n\n const getRefConfig = () => {\n const refContainer = (container.value as HTMLElement)?.querySelector('div[hidden]');\n refConfig.value = JSON.parse(refContainer?.textContent || '[]');\n emit('refConfigUpdate', refConfig.value);\n }\n const renderComplete = debounce(() => {\n getRefConfig();\n }, 100);\n\n // 获取当前激活的索引文件\n const activeRef = ref<HTMLElement | null>(null);\n\n watch(() => context.value, renderComplete, {\n immediate: true,\n });\n\n watch(activeRef, (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (newVal) {\n const text = newVal.getAttribute('dataherf');\n const target = refConfig.value.find((item) => {\n return item.link === text;\n });\n emit('hoverActiveRefTrigger', target);\n } else {\n emit('hoverActiveRefTrigger', '');\n }\n }\n });\n\n const getTargeElement = (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n if (target.tagName === 'SPAN') {\n const isInRefContainer = target.classList.contains('x-markdown-split');\n const isRefContainer = target.classList.contains('x-markdown-sub')\n if (isInRefContainer || isRefContainer) {\n if (!isRefContainer) {\n return target.parentElement as HTMLElement;\n }\n return target;\n }\n }\n };\n\n const handleMouseOver = (e: MouseEvent) => {\n const target = getTargeElement(e);\n if (target) {\n activeRef.value = target;\n return;\n }\n activeRef.value = null;\n }\n\n const handleAClick = async (e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n const target = e.target as HTMLElement;\n const href = target.getAttribute('href');\n const id = target.getAttribute('data-id') || target.getAttribute('dataid');\n const title = target.getAttribute('data-name') || target.getAttribute('dataname');\n if (!href) {\n return;\n }\n // const fileExt = ['pdf', 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'txt', 'md', 'png', 'gif', 'jpg', 'jpeg', 'webp', 'svg'];\n const ext = href.split('.').pop();\n // 如果id不存在,则使用a标签新打开浏览器页面兜底\n if (!id) {\n window.open(href, '_blank');\n return;\n }\n ElMessage('文件下载中...');\n\n emit('downloadFile', {\n title,\n id,\n ext,\n href,\n });\n\n // downloadFile(href);\n return;\n }\n\n const btnClick = async (index, action, payload: any) => {\n if (action === 'inner_next') {\n curIndex.value += 1;\n return;\n }\n if (action === 'inner_prev') {\n curIndex.value -= 1;\n return;\n }\n let res = {\n action,\n payload: {},\n };\n // 区分是否为form组件的按钮,如果带有payload 则约定为非form组件的按钮\n if (payload) {\n res = {\n action,\n payload,\n }\n } else {\n await formRefs.value[index]?.validate();\n res = {\n action,\n payload: {\n ...hitlData.value[index],\n ...payload,\n }\n }\n }\n \n emit('coreSubmit', res)\n }\n\n const handleClick = (e: MouseEvent) => {\n // 如果当前点击的是a标签,则根据a标签的href属性直接下载文件\n if ((e.target as HTMLElement).tagName === 'A') {\n handleAClick(e);\n return;\n }\n\n const target = getTargeElement(e);\n if (target) {\n const text = target.getAttribute('dataherf');\n const highlight = JSON.parse(target.getAttribute('datahighlight') || '[]') as Array<string>;\n const page = Number(target.getAttribute('datanumber'));\n const id = target.getAttribute('id');\n const source = refConfig.value.find((item) => {\n return item.link === text;\n });\n const data = {\n ...source,\n highlight,\n page,\n id,\n }\n emit('clickActiveRefTrigger', data);\n }\n }\n\n const getContentText = () => {\n return container.value?.innerText;\n }\n\n onMounted(() => {\n (container.value as HTMLElement).addEventListener('mouseover', handleMouseOver);\n (container.value as HTMLElement).addEventListener('click', handleClick);\n });\n\n onBeforeUnmount(() => {\n (container.value as HTMLElement).removeEventListener('mouseover', handleMouseOver);\n (container.value as HTMLElement).addEventListener('click', handleClick)\n })\n\n /**\n * 处理新加载的图片\n * 核心逻辑:设置占位尺寸,渐进式加载\n */\n const processNewImages = () => {\n if (!container.value) return;\n \n const newImages = container.value.querySelectorAll(\n \"img:not([data-processed='true'])\"\n ) as NodeListOf<HTMLImageElement>;\n \n newImages.forEach((img) => {\n if (pendingImages.has(img)) return;\n pendingImages.add(img);\n \n // 设置占位尺寸,避免布局重排\n setPlaceholderDimensions(img);\n \n // 处理已加载的图片\n if (img.complete) {\n handleImageLoad(img);\n } else {\n img.addEventListener(\"load\", () => handleImageLoad(img));\n img.addEventListener(\"error\", () => handleImageError(img));\n }\n });\n };\n \n // 设置图片占位尺寸\n const setPlaceholderDimensions = (img) => {\n const containerWidth = img.parentElement.offsetWidth;\n if (img.naturalWidth > containerWidth) {\n img.style.maxWidth = \"100%\";\n }\n \n if (img.naturalWidth && img.naturalHeight) {\n const ratio = img.naturalHeight / img.naturalWidth;\n img.style.maxHeight = `${Math.min(500, containerWidth * ratio)}px`;\n }\n };\n \n // 图片加载成功处理\n const handleImageLoad = (img) => {\n pendingImages.delete(img);\n img.setAttribute(\"data-processed\", \"true\");\n img.classList.add(\"loaded\");\n img.style.opacity = \"1\";\n img.removeEventListener(\"load\", handleImageLoad);\n img.removeEventListener(\"error\", handleImageError);\n };\n \n // 图片加载失败处理\n const handleImageError = (img) => {\n pendingImages.delete(img);\n img.setAttribute(\"data-processed\", \"true\");\n img.classList.add(\"load-error\");\n img.style.maxHeight = \"200px\";\n img.removeEventListener(\"load\", handleImageLoad);\n img.removeEventListener(\"error\", handleImageError);\n };\n\n // 初始化unified处理链\n const md = unified()\n .use(remarkParse) // 解析Markdown为AST\n .use(remarkBreaks) // 处理换行符\n .use(remarkGfm, { singleTilde: false }) // GitHub Flavored Markdown支持\n .use(remarkMath) // 数学公式支持\n .use(remarkGemoji) // Emoji支持\n .use(remarkRehype, { allowDangerousHtml: true }) // 转换为HTML AST\n .use(rehypeRaw)\n .use(rehypeKatex)\n .use(rehypeStringify)\n\n /**\n * 递归遍历 schema,收集所有 form 表单及其 data 属性\n * @param schema - CorePilot schema 对象\n * @param formDataList - 用于存储收集到的 form data 的数组\n * @returns void\n */\n const collectFormsFromSchema = (schema: any, formDataList: Array<Record<string, any>>) => {\n if (!schema || typeof schema !== 'object') return;\n \n // 如果当前节点是 form,收集其 data 属性并停止向下递归(form 内部不会嵌套 form)\n if (schema.type === 'form') {\n const formData = schema.properties?.data || {};\n formDataList.push(formData);\n return; // form 内部不会再嵌套 form,直接返回\n }\n \n // 递归遍历 children 数组\n if (Array.isArray(schema.children)) {\n schema.children.forEach((child) => {\n collectFormsFromSchema(child, formDataList);\n });\n }\n }\n\n /**\n * 计算 markdown AST 中所有 form 表单的数量,并提取每个 form 的预定义数据\n * @param mdAst - markdown AST 对象\n * @returns { length: number, formDataList: Array<Record<string, any>> } - form 数量和 form data 列表\n */\n const computedForm = (mdAst: any) => {\n const formDataList: Array<Record<string, any>> = [];\n \n // 高效检索:直接查找所有 pre 标签\n const preNodes: any[] = [];\n const findPreNodes = (node: any) => {\n if (!node) return;\n if (node.tagName === \"pre\") {\n preNodes.push(node);\n }\n if (Array.isArray(node.children)) {\n node.children.forEach(findPreNodes);\n }\n };\n \n // 遍历 mdAst 查找所有 pre 节点\n if (Array.isArray(mdAst.children)) {\n mdAst.children.forEach(findPreNodes);\n }\n \n // 处理每个 pre 节点中的 CorePilot 代码块\n preNodes.forEach((preNode: any) => {\n const codeNode = preNode.children?.find((child: any) => child.tagName === \"code\");\n if (codeNode?.properties?.className?.includes(\"language-CorePilot\")) {\n try {\n const code = codeNode.children?.[0]?.value || '';\n if (code) {\n const schema = JSON.parse(code);\n // 递归收集所有 form\n collectFormsFromSchema(schema, formDataList);\n }\n } catch (error) {\n console.error('Failed to parse CorePilot schema:', error);\n }\n }\n });\n \n return formDataList\n }\n\n watch(\n () => formatText.value!,\n async (text) => {\n // 处理Markdown到hast再到VNode的转换\n curInit = 0;\n const mdAst = await md.run(md.parse(text));\n // 递归遍历所有 CorePilot schema,收集 form 表单及其预定义数据\n const formDataList = computedForm(mdAst);\n hitlData.value = formDataList;\n\n await nextTick();\n ast.value = mdAst;\n \n // 等待DOM更新后处理图片\n nextTick(processNewImages);\n nextTick(() => {\n const details = container.value?.querySelector('details');\n const summary = details?.querySelector('summary');\n if (summary && !isInitAnimation.value) {\n isInitAnimation.value = true;\n new Accordion(details!);\n }\n })\n },\n { immediate: true }\n );\n\n /**\n * 将hast(HTML AST)转换为Vue VNode\n * @param {Object} node hast节点\n * @returns {VNode} Vue虚拟节点\n */\n // FIXME ⚠️⚠️⚠️ 复杂表单存在性能问题 ⚠️⚠️⚠️\n const hastToVNode = (node, index?: number, row?: any) => {\n if (!node) return null;\n let children: any[] = [];\n const blackTagNames = ['sub', 'pre', 'text', 'ElForm'];\n\n if (!blackTagNames.includes(node.tagName)) {\n children = node.children?.map?.(child => hastToVNode(child, index)) || [];\n }\n switch (node.type) {\n case \"root\":\n return h(\n \"div\",\n { class: \"markdown-body\" },\n children\n );\n \n case \"element\":\n if (node.tagName === \"sub\") {\n const formatChildren = [\n {\n type: \"element\",\n tagName: \"span\",\n properties: {\n class: \"x-markdown-split\",\n },\n }, \n ...node.children\n ]\n const children = formatChildren?.map(child => hastToVNode(child, index));\n return h(\"span\", {\n ...node.properties,\n class: \"x-markdown-sub\",\n }, children);\n }\n if (node.tagName === \"span\") {\n return h(\"span\", {\n ...node.properties,\n }, \n children\n );\n }\n // 处理特殊元素:图片、链接、代码块等\n if (node.tagName === \"img\") {\n return h(\"img\", {\n ...node.properties,\n class: \"markdown-image\",\n \"data-processed\": \"false\" // 标记未处理图片\n });\n }\n \n if (node.tagName === \"a\") {\n const href = node.properties?.href || ''; // 获取链接地址\n const fileType = href ? href.split('.').pop() : null; // 标记文件类型\n return h(\n \"a\",\n {\n ...node.properties,\n class: 'file-link',\n 'data-file-type': fileType,\n },\n children\n );\n }\n if (node.tagName === 'ElTimeline') {\n return h(\n ElTimeline,\n {\n ...node.properties,\n },\n children\n );\n }\n if (node.tagName === 'table') {\n return h(\n \"div\",\n {\n class: 'custom-table-container',\n },\n [\n h(\n \"table\",\n children\n ),\n ]\n );\n }\n\n if (node.tagName === 'view') {\n return h(\n 'div',\n {\n class: 'custom-view-container',\n },\n [children[curIndex.value]]\n );\n }\n\n if (node.tagName === 'ElRow') {\n return h(\n ElRow,\n {\n ...node.properties,\n },\n children\n );\n }\n\n if (node.tagName === 'ElCol') {\n return h(\n ElCol,\n {\n ...node.properties,\n },\n children\n );\n }\n\n if (node.tagName === 'ElCard') {\n \n return h(\n ElCard,\n {\n ...node.properties,\n },\n children\n );\n }\n\n if (node.tagName === 'ElForm') {\n const children = node.children?.map(child => hastToVNode(child, curInit));\n curInit++;\n return h(\n ElForm,\n {\n ref: formRefs.value.set,\n model: hitlData.value[index!],\n ...node.properties,\n disabled: node.properties?.disabled || disabled.value,\n },\n children\n )\n }\n\n if (node.tagName === 'ElFormItem') {\n return h(\n ElFormItem,\n {\n ...node.properties,\n },\n children\n )\n }\n\n if (node.tagName === 'ElButton') {\n let payload = node.properties?.payload;\n if (node.parentScope === 'table') {\n payload = row;\n }\n return h(\n ElButton,\n {\n ...node.properties,\n disabled: node.properties?.disabled || disabled.value,\n onClick: () => {\n btnClick(index!, node.properties?.action, payload);\n },\n },\n children\n )\n }\n\n if (node.tagName === 'ElSelect') {\n return h(\n ElSelect,\n {\n ...node.properties,\n disabled: node.properties?.disabled || disabled.value,\n modelValue: hitlData.value[index!][node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n hitlData.value[index!][node.properties?.formProp] = value;\n },\n },\n children\n )\n }\n\n if (node.tagName === 'ElDatePicker') {\n return h(\n ElDatePicker,\n {\n ...node.properties,\n disabled: node.properties?.disabled || disabled.value,\n modelValue: hitlData.value[index!][node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n hitlData.value[index!][node.properties?.formProp] = value;\n },\n },\n children\n )\n }\n\n if (node.tagName === 'ElInput') {\n return h(\n ElInput,\n {\n ...node.properties,\n disabled: node.properties?.disabled || disabled.value,\n modelValue: hitlData.value[index!][node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n hitlData.value[index!][node.properties?.formProp] = value;\n },\n },\n children\n )\n }\n\n if (node.tagName === 'ElRadioGroup') {\n return h(\n ElRadioGroup,\n {\n ...node.properties,\n disabled: node.properties?.disabled || disabled.value,\n modelValue: hitlData.value[index!][node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n hitlData.value[index!][node.properties?.formProp] = value as string;\n }\n },\n children\n )\n }\n\n if (node.tagName === 'ElRadio') {\n\n return h(\n ElRadio,\n {\n ...node.properties,\n disabled: node.properties?.disabled || disabled.value,\n },\n children\n )\n }\n \n if (node.tagName === 'ElTable') {\n return h(\n ElTable,\n {\n ...node.properties,\n },\n children\n )\n }\n\n if (node.tagName === 'ElTableColumn') {\n return h(\n ElTableColumn,\n {\n ...node.properties,\n },\n {\n default: (scope) => {\n const children = node.children?.map(child => hastToVNode(child, curInit, scope.row));\n const index = node.children?.findIndex(child => child.value === scope.row[node.properties?.prop]);\n if (index === -1) {\n return children;\n }\n return children?.[index];\n },\n }\n )\n }\n\n if (node.tagName === 'CoreText') {\n return h(\n CoreText,\n {\n ...node.properties,\n }\n )\n }\n\n if (node.tagName === 'CoreTips') {\n return h(\n CoreTips,\n {\n ...node.properties,\n }\n )\n }\n\n if (node.tagName === 'CoreResult') {\n return h(\n CoreResult,\n {\n ...node.properties,\n }\n )\n }\n \n // 处理代码块(包含Mermaid图表和数学公式)\n if (node.tagName === \"pre\") {\n const codeNode = node.children?.find(child => child.tagName === \"code\");\n if (codeNode) {\n if (codeNode.properties?.className?.includes(\"language-CorePilot\")) {\n const code = codeNode.children?.[0]?.value || '';\n const schema = JSON.parse(code);\n const viewTree = parseCorePilot(schema);\n const children = hastToVNode(viewTree, curInit)\n return h(\"div\", {\n class: \"hitl-wrapper\",\n }, [children]);\n }\n }\n }\n \n // 其他普通元素\n return h(\n node.tagName,\n node.properties,\n children\n );\n \n case \"text\":\n return node.value.trim();\n \n default:\n return null;\n }\n };\n\n onUpdated(() => {\n curInit = 0;\n })\n\n return {\n hastToVNode,\n ast,\n container,\n renderComplete,\n getContentText,\n };\n },\n render() {\n return (\n <div\n ref=\"x-markdown-container\"\n class=\"x-markdown\"\n >\n {\n this.hastToVNode(this.ast)\n }\n </div>\n );\n },\n});"],"names":["checkAndReturnRefList","text","reg","match","exec","refListStr","refList","JSON","parse","error","name","props","type","String","default","autoHideThinking","Boolean","typing","speed","Number","isHistoryMessage","expose","emits","setup","emit","container","useTemplateRef","startTime","ref","Date","now","endTime","context","pendingImages","Set","isInitAnimation","tagComplete","hitlData","formRefs","useTemplateRefsList","curIndex","curInit","ast","streamCall","stream","value","streamGener","createStreamGenerator","updateSummaryClasses","mdText","summaryDivReg","isFirstSummary","replace","summaryTag","divContent","divEnd","isDivComplete","updatedSummary","formatText","computed","content","includes","res","duration","toFixed","length","disabled","watch","update","stop","checkReg","test","setSpeed","immediate","refConfig","getRefConfig","refContainer","querySelector","textContent","renderComplete","debounce","activeRef","newVal","oldVal","getAttribute","target","find","item","link","getTargeElement","e","tagName","isInRefContainer","classList","contains","isRefContainer","parentElement","handleMouseOver","handleAClick","stopPropagation","preventDefault","href","id","title","ext","split","pop","window","open","ElMessage","btnClick","index","action","payload","validate","handleClick","highlight","page","source","data","getContentText","innerText","onMounted","addEventListener","onBeforeUnmount","removeEventListener","processNewImages","newImages","querySelectorAll","forEach","img","has","add","setPlaceholderDimensions","complete","handleImageLoad","handleImageError","containerWidth","offsetWidth","naturalWidth","style","maxWidth","naturalHeight","ratio","maxHeight","Math","min","delete","setAttribute","opacity","md","unified","use","remarkParse","remarkBreaks","remarkGfm","singleTilde","remarkMath","remarkGemoji","remarkRehype","allowDangerousHtml","rehypeRaw","rehypeKatex","rehypeStringify","collectFormsFromSchema","schema","formDataList","formData","properties","push","Array","isArray","children","child","computedForm","mdAst","preNodes","findPreNodes","node","preNode","codeNode","className","code","console","run","nextTick","details","summary","Accordion","hastToVNode","row","blackTagNames","map","h","class","formatChildren","fileType","ElTimeline","ElRow","ElCol","ElCard","ElForm","set","model","ElFormItem","parentScope","ElButton","onClick","ElSelect","modelValue","formProp","ElDatePicker","ElInput","ElRadioGroup","ElRadio","ElTable","ElTableColumn","scope","findIndex","prop","CoreText","CoreTips","CoreResult","viewTree","parseCorePilot","trim","onUpdated","render","_createVNode"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/x-markdown/index.tsx"],"sourcesContent":["import { \n defineComponent, \n ref, computed, watch, \n onMounted, onBeforeUnmount, \n useTemplateRef, h, nextTick,\n onUpdated,\n} from 'vue';\nimport debounce from 'lodash/debounce';\nimport { unified } from \"unified\";\nimport remarkParse from \"remark-parse\";\nimport remarkBreaks from \"remark-breaks\";\nimport remarkGfm from \"remark-gfm\";\nimport remarkMath from \"remark-math\";\nimport remarkGemoji from \"remark-gemoji\";\nimport remarkRehype from \"remark-rehype\";\nimport rehypeRaw from \"rehype-raw\";\nimport rehypeKatex from \"rehype-katex\";\nimport rehypeStringify from \"rehype-stringify\";\nimport { useTemplateRefsList } from '@vueuse/core'\n\nimport { \n ElMessage, \n ElForm,\n ElFormItem, \n ElInput, \n ElCard,\n ElButton,\n ElSelect,\n ElDatePicker,\n ElTable,\n ElTableColumn,\n ElTimeline,\n ElRow,\n ElCol,\n ElRadioGroup,\n ElRadio,\n ElConfigProvider\n} from 'element-plus';\nimport './style/index.less';\nimport './theme/index.less';\nimport { createStreamGenerator } from './utils/mockStream.ts';\nimport { parseCorePilot } from './utils/parseCorePilotSchema.ts';\nimport { Accordion } from './utils/animation.ts';\nimport CoreText from '../core-text';\nimport CoreTips from '../core-tips';\nimport CoreResult from '../core-result';\nimport CoreTable from '../core-table';\nimport 'katex/dist/katex.min.css'\nimport zhCN from 'element-plus/es/locale/lang/zh-cn';\n\nconst checkAndReturnRefList = (text: string) => {\n const reg = /<div hidden>([\\s\\S]*?)<\\/div>/g;\n const match = reg.exec(text);\n if (!match) {\n return [];\n }\n const refListStr = match[1];\n try {\n const refList = JSON.parse(refListStr);\n return refList;\n } catch (error) {\n return [];\n }\n}\n\ninterface RefConfig {\n title: string,\n link: string,\n time: string,\n author: string,\n}\n\nexport default defineComponent({\n name: 'XMarkdown',\n props: {\n text: {\n type: String,\n default: '',\n },\n autoHideThinking: {\n type: Boolean,\n default: true,\n },\n typing: {\n type: Boolean,\n default: false,\n },\n speed: {\n type: Number,\n default: 200,\n },\n isHistoryMessage: {\n type: Boolean,\n default: false,\n },\n },\n expose: [\n 'getContentText'\n ],\n emits: ['hoverActiveRefTrigger', 'clickActiveRefTrigger', 'refConfigUpdate', 'downloadFile', 'coreSubmit'],\n setup(props, { emit }) {\n const container = useTemplateRef<HTMLElement>('x-markdown-container');\n const startTime = ref<number>(Date.now());\n const endTime = ref<number>(-Infinity);\n const context = ref('');\n const pendingImages = new Set(); // 存储待处理的图片\n const isInitAnimation = ref(false);\n const tagComplete = ref(false);\n const hitlData = ref<Array<Record<string, string>>>([]);\n const formRefs = useTemplateRefsList<typeof ElForm>();\n const curIndex = ref(0);\n let curInit = 0;\n const ast = ref<any>(null)\n\n const streamCall = (stream: string) => {\n context.value = context.value + stream;\n }\n\n const streamGener = ref<ReturnType<typeof createStreamGenerator>>(createStreamGenerator(streamCall, props.speed));\n\n const updateSummaryClasses = (mdText: string) => {\n const summaryDivReg = /(<summary[^>]*>[\\s\\S]*?<\\/summary>)\\s*(<div>[\\s\\S]*?)(<\\/div>|$)/g;\n let isFirstSummary = true;\n\n return mdText.replace(summaryDivReg, (match, summaryTag, divContent, divEnd) => {\n const isDivComplete = divEnd === '</div>'; // 直接判断闭合标签是否存在\n const updatedSummary = summaryTag.replace(\n /(<summary)/g,\n (match) => {\n if (isFirstSummary) {\n isFirstSummary = false;\n return match;\n }\n return `<summary class=\"${isDivComplete ? 'loaded' : 'loading'}\"`\n }\n );\n return `${updatedSummary}\\n${divContent}${divEnd}`; // 重组时拼接闭合部分\n });\n }\n\n const formatText = computed(() => {\n if (!props.autoHideThinking) return context.value;\n let content = context.value;\n content = updateSummaryClasses(content);\n content = content.replace(/[\\u00A0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/g, ' ');\n if (content.includes('</details>')) {\n if (endTime.value === -Infinity) {\n endTime.value = Date.now();\n }\n\n const res = checkAndReturnRefList(content);\n\n let text = content.replace(/<details open>([\\s\\S]*?)<\\/details>/g, (match, content) => {\n // 将 content 中的第一个 <summary> 中的内容替换为 具体的秒数\n content = content.replace(/<summary>([\\s\\S]*?)<\\/summary>/, (match, content) => {\n const duration = ((endTime.value - startTime.value) / 1000).toFixed(0);\n return `<summary style=\"color: #8D90A0;font-weight: 300; font-size: 16px;\">\n 已完成思考 ${duration > '0' ? duration + 's' : ''} ${res.length ? `<span style=\"display: inline-block;margin: 0 8px;border-left: 1px solid #CDCFD7;width: 1px;height: 16px;\"></span> 引用文档:${res?.length} 个` : ''}\n </summary>`;\n })\n\n content = content.replace(/<summary>完成<\\/summary>/, '<summary class=\"loaded\">完成</summary>')\n\n return `<details>${content}</details>`;\n });\n \n return text;\n }\n return content;\n })\n\n // 如果当前是历史消息,则禁用点击事件\n const disabled = computed(() => {\n return props.isHistoryMessage;\n })\n\n watch(() => [props.text, props.typing], (v, o) => {\n const [text, typing] = v;\n const [oldText] = o || [];\n if (!(text as string).startsWith(oldText as string)) {\n streamGener.value?.reset();\n context.value = '';\n }\n if (text) {\n streamGener.value?.update(text);\n if (!typing) {\n streamGener.value?.stop();\n return;\n }\n // 资料整合 标签之后,采用服务端流式速度\n const checkReg = /<summary>资料整合<\\/summary>\\r?\\n(.|\\s)+?/;\n if (!tagComplete.value && checkReg.test(text as string)) {\n tagComplete.value = true;\n streamGener.value?.setSpeed(500);\n return;\n }\n }\n }, {\n immediate: true,\n })\n\n // 获取所有的ref配置\n const refConfig = ref<Array<RefConfig>>([]);\n\n const getRefConfig = () => {\n const refContainer = (container.value as HTMLElement)?.querySelector('div[hidden]');\n refConfig.value = JSON.parse(refContainer?.textContent || '[]');\n emit('refConfigUpdate', refConfig.value);\n }\n const renderComplete = debounce(() => {\n getRefConfig();\n }, 100);\n\n // 获取当前激活的索引文件\n const activeRef = ref<HTMLElement | null>(null);\n\n watch(() => context.value, renderComplete, {\n immediate: true,\n });\n\n watch(activeRef, (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (newVal) {\n const text = newVal.getAttribute('dataherf');\n const target = refConfig.value.find((item) => {\n return item.link === text;\n });\n emit('hoverActiveRefTrigger', target);\n } else {\n emit('hoverActiveRefTrigger', '');\n }\n }\n });\n\n const getTargeElement = (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n if (target.tagName === 'SPAN') {\n const isInRefContainer = target.classList.contains('x-markdown-split');\n const isRefContainer = target.classList.contains('x-markdown-sub')\n if (isInRefContainer || isRefContainer) {\n if (!isRefContainer) {\n return target.parentElement as HTMLElement;\n }\n return target;\n }\n }\n };\n\n const handleMouseOver = (e: MouseEvent) => {\n const target = getTargeElement(e);\n if (target) {\n activeRef.value = target;\n return;\n }\n activeRef.value = null;\n }\n\n const handleAClick = async (e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n const target = e.target as HTMLElement;\n const href = target.getAttribute('href');\n const id = target.getAttribute('data-id') || target.getAttribute('dataid');\n const title = target.getAttribute('data-name') || target.getAttribute('dataname');\n if (!href) {\n return;\n }\n // const fileExt = ['pdf', 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'txt', 'md', 'png', 'gif', 'jpg', 'jpeg', 'webp', 'svg'];\n const ext = href.split('.').pop();\n // 如果id不存在,则使用a标签新打开浏览器页面兜底\n if (!id) {\n window.open(href, '_blank');\n return;\n }\n ElMessage('文件下载中...');\n\n emit('downloadFile', {\n title,\n id,\n ext,\n href,\n });\n\n // downloadFile(href);\n return;\n }\n\n const btnClick = async (index: number, action: string, payload: any, parentScope?: 'form' | 'table') => {\n if (action === 'inner_next') {\n curIndex.value += 1;\n return;\n }\n if (action === 'inner_prev') {\n curIndex.value -= 1;\n return;\n }\n let res = {\n action,\n payload: {},\n };\n // 区分是否为form组件的按钮,如果带有payload 则约定为非form组件的按钮\n if (payload && parentScope !== 'form') {\n res = {\n action,\n payload,\n }\n } else {\n await formRefs.value[index]?.validate();\n res = {\n action,\n payload: {\n ...hitlData.value[index],\n ...payload,\n }\n }\n }\n \n emit('coreSubmit', res)\n }\n\n const handleClick = (e: MouseEvent) => {\n // 如果当前点击的是a标签,则根据a标签的href属性直接下载文件\n if ((e.target as HTMLElement).tagName === 'A') {\n handleAClick(e);\n return;\n }\n\n const target = getTargeElement(e);\n if (target) {\n const text = target.getAttribute('dataherf');\n const highlight = JSON.parse(target.getAttribute('datahighlight') || '[]') as Array<string>;\n const page = Number(target.getAttribute('datanumber'));\n const id = target.getAttribute('id');\n const source = refConfig.value.find((item) => {\n return item.link === text;\n });\n const data = {\n ...source,\n highlight,\n page,\n id,\n }\n emit('clickActiveRefTrigger', data);\n }\n }\n\n const getContentText = () => {\n return container.value?.innerText;\n }\n\n onMounted(() => {\n (container.value as HTMLElement).addEventListener('mouseover', handleMouseOver);\n (container.value as HTMLElement).addEventListener('click', handleClick);\n });\n\n onBeforeUnmount(() => {\n (container.value as HTMLElement).removeEventListener('mouseover', handleMouseOver);\n (container.value as HTMLElement).addEventListener('click', handleClick)\n })\n\n /**\n * 处理新加载的图片\n * 核心逻辑:设置占位尺寸,渐进式加载\n */\n const processNewImages = () => {\n if (!container.value) return;\n \n const newImages = container.value.querySelectorAll(\n \"img:not([data-processed='true'])\"\n ) as NodeListOf<HTMLImageElement>;\n \n newImages.forEach((img) => {\n if (pendingImages.has(img)) return;\n pendingImages.add(img);\n \n // 设置占位尺寸,避免布局重排\n setPlaceholderDimensions(img);\n \n // 处理已加载的图片\n if (img.complete) {\n handleImageLoad(img);\n } else {\n img.addEventListener(\"load\", () => handleImageLoad(img));\n img.addEventListener(\"error\", () => handleImageError(img));\n }\n });\n };\n \n // 设置图片占位尺寸\n const setPlaceholderDimensions = (img) => {\n const containerWidth = img.parentElement.offsetWidth;\n if (img.naturalWidth > containerWidth) {\n img.style.maxWidth = \"100%\";\n }\n \n if (img.naturalWidth && img.naturalHeight) {\n const ratio = img.naturalHeight / img.naturalWidth;\n img.style.maxHeight = `${Math.min(500, containerWidth * ratio)}px`;\n }\n };\n \n // 图片加载成功处理\n const handleImageLoad = (img) => {\n pendingImages.delete(img);\n img.setAttribute(\"data-processed\", \"true\");\n img.classList.add(\"loaded\");\n img.style.opacity = \"1\";\n img.removeEventListener(\"load\", handleImageLoad);\n img.removeEventListener(\"error\", handleImageError);\n };\n \n // 图片加载失败处理\n const handleImageError = (img) => {\n pendingImages.delete(img);\n img.setAttribute(\"data-processed\", \"true\");\n img.classList.add(\"load-error\");\n img.style.maxHeight = \"200px\";\n img.removeEventListener(\"load\", handleImageLoad);\n img.removeEventListener(\"error\", handleImageError);\n };\n\n // 初始化unified处理链\n const md = unified()\n .use(remarkParse) // 解析Markdown为AST\n .use(remarkBreaks) // 处理换行符\n .use(remarkGfm, { singleTilde: false }) // GitHub Flavored Markdown支持\n .use(remarkMath) // 数学公式支持\n .use(remarkGemoji) // Emoji支持\n .use(remarkRehype, { allowDangerousHtml: true }) // 转换为HTML AST\n .use(rehypeRaw)\n .use(rehypeKatex)\n .use(rehypeStringify)\n\n /**\n * 递归遍历 schema,收集所有 form 表单及其 data 属性\n * @param schema - CorePilot schema 对象\n * @param formDataList - 用于存储收集到的 form data 的数组\n * @returns void\n */\n const collectFormsFromSchema = (schema: any, formDataList: Array<Record<string, any>>) => {\n if (!schema || typeof schema !== 'object') return;\n \n // 如果当前节点是 form,收集其 data 属性并停止向下递归(form 内部不会嵌套 form)\n if (schema.type === 'form') {\n const formData = schema.properties?.data || {};\n formDataList.push(formData);\n return; // form 内部不会再嵌套 form,直接返回\n }\n \n // 递归遍历 children 数组\n if (Array.isArray(schema.children)) {\n schema.children.forEach((child) => {\n collectFormsFromSchema(child, formDataList);\n });\n }\n }\n\n /**\n * 计算 markdown AST 中所有 form 表单的数量,并提取每个 form 的预定义数据\n * @param mdAst - markdown AST 对象\n * @returns { length: number, formDataList: Array<Record<string, any>> } - form 数量和 form data 列表\n */\n const computedForm = (mdAst: any) => {\n const formDataList: Array<Record<string, any>> = [];\n \n // 高效检索:直接查找所有 pre 标签\n const preNodes: any[] = [];\n const findPreNodes = (node: any) => {\n if (!node) return;\n if (node.tagName === \"pre\") {\n preNodes.push(node);\n }\n if (Array.isArray(node.children)) {\n node.children.forEach(findPreNodes);\n }\n };\n \n // 遍历 mdAst 查找所有 pre 节点\n if (Array.isArray(mdAst.children)) {\n mdAst.children.forEach(findPreNodes);\n }\n \n // 处理每个 pre 节点中的 CorePilot 代码块\n preNodes.forEach((preNode: any) => {\n const codeNode = preNode.children?.find((child: any) => child.tagName === \"code\");\n if (codeNode?.properties?.className?.includes(\"language-CorePilot\")) {\n try {\n const code = codeNode.children?.[0]?.value || '';\n if (code) {\n const schema = JSON.parse(code);\n // 递归收集所有 form\n collectFormsFromSchema(schema, formDataList);\n }\n } catch (error) {\n console.error('Failed to parse CorePilot schema:', error);\n }\n }\n });\n \n return formDataList\n }\n\n watch(\n () => formatText.value!,\n async (text) => {\n // 处理Markdown到hast再到VNode的转换\n curInit = 0;\n const mdAst = await md.run(md.parse(text));\n // 递归遍历所有 CorePilot schema,收集 form 表单及其预定义数据\n const formDataList = computedForm(mdAst);\n hitlData.value = formDataList;\n\n await nextTick();\n ast.value = mdAst;\n \n // 等待DOM更新后处理图片\n nextTick(processNewImages);\n nextTick(() => {\n const details = container.value?.querySelector('details');\n const summary = details?.querySelector('summary');\n if (summary && !isInitAnimation.value) {\n isInitAnimation.value = true;\n new Accordion(details!);\n }\n })\n },\n { immediate: true }\n );\n\n /**\n * 将hast(HTML AST)转换为Vue VNode\n * @param {Object} node hast节点\n * @returns {VNode} Vue虚拟节点\n */\n // FIXME ⚠️⚠️⚠️ 复杂表单存在性能问题 ⚠️⚠️⚠️\n const hastToVNode = (node, index?: number, row?: any) => {\n if (!node) return null;\n let children: any[] = [];\n const blackTagNames = ['sub', 'pre', 'text', 'ElForm'];\n\n if (!blackTagNames.includes(node.tagName)) {\n children = node.children?.map?.(child => hastToVNode(child, index)) || [];\n }\n switch (node.type) {\n case \"root\":\n return h(\n \"div\",\n { class: \"markdown-body\" },\n h(ElConfigProvider, {\n locale: zhCN,\n }, children)\n );\n \n case \"element\":\n if (node.tagName === \"sub\") {\n const formatChildren = [\n {\n type: \"element\",\n tagName: \"span\",\n properties: {\n class: \"x-markdown-split\",\n },\n }, \n ...node.children\n ]\n const children = formatChildren?.map(child => hastToVNode(child, index));\n return h(\"span\", {\n ...node.properties,\n class: \"x-markdown-sub\",\n }, children);\n }\n if (node.tagName === \"span\") {\n return h(\"span\", {\n ...node.properties,\n }, \n children\n );\n }\n // 处理特殊元素:图片、链接、代码块等\n if (node.tagName === \"img\") {\n return h(\"img\", {\n ...node.properties,\n class: \"markdown-image\",\n \"data-processed\": \"false\" // 标记未处理图片\n });\n }\n \n if (node.tagName === \"a\") {\n const href = node.properties?.href || ''; // 获取链接地址\n const fileType = href ? href.split('.').pop() : null; // 标记文件类型\n return h(\n \"a\",\n {\n ...node.properties,\n class: 'file-link',\n 'data-file-type': fileType,\n },\n children\n );\n }\n if (node.tagName === 'ElTimeline') {\n return h(\n ElTimeline,\n {\n ...node.properties,\n },\n children\n );\n }\n if (node.tagName === 'table') {\n return h(\n \"div\",\n {\n class: 'custom-table-container',\n },\n [\n h(\n \"table\",\n children\n ),\n ]\n );\n }\n\n if (node.tagName === 'view') {\n return h(\n 'div',\n {\n class: 'custom-view-container',\n },\n [children[curIndex.value]]\n );\n }\n\n if (node.tagName === 'ElRow') {\n return h(\n ElRow,\n {\n ...node.properties,\n },\n children\n );\n }\n\n if (node.tagName === 'ElCol') {\n return h(\n ElCol,\n {\n ...node.properties,\n },\n children\n );\n }\n\n if (node.tagName === 'ElCard') {\n \n return h(\n ElCard,\n {\n ...node.properties,\n },\n children\n );\n }\n\n if (node.tagName === 'ElForm') {\n const children = node.children?.map(child => hastToVNode(child, curInit));\n curInit++;\n return h(\n ElForm,\n {\n ref: formRefs.value.set,\n model: hitlData.value[index!],\n ...node.properties,\n disabled: node.properties?.disabled || disabled.value,\n },\n children\n )\n }\n\n if (node.tagName === 'ElFormItem') {\n return h(\n ElFormItem,\n {\n ...node.properties,\n },\n children\n )\n }\n\n if (node.tagName === 'ElButton') {\n let payload = node.properties?.payload;\n if (node.parentScope === 'table') {\n payload = row;\n }\n return h(\n ElButton,\n {\n ...node.properties,\n disabled: node.properties?.disabled || disabled.value,\n onClick: () => {\n btnClick(index!, node.properties?.action, payload, node.parentScope);\n },\n },\n children\n )\n }\n\n if (node.tagName === 'ElSelect') {\n return h(\n ElSelect,\n {\n ...node.properties,\n disabled: node.properties?.disabled || disabled.value,\n modelValue: hitlData.value[index!][node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n hitlData.value[index!][node.properties?.formProp] = value;\n },\n },\n children\n )\n }\n\n if (node.tagName === 'ElDatePicker') {\n return h(\n ElDatePicker,\n {\n ...node.properties,\n disabled: node.properties?.disabled || disabled.value,\n modelValue: hitlData.value[index!][node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n hitlData.value[index!][node.properties?.formProp] = value;\n },\n },\n children\n )\n }\n\n if (node.tagName === 'ElInput') {\n return h(\n ElInput,\n {\n ...node.properties,\n disabled: node.properties?.disabled || disabled.value,\n modelValue: hitlData.value[index!][node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n hitlData.value[index!][node.properties?.formProp] = value;\n },\n },\n children\n )\n }\n\n if (node.tagName === 'ElRadioGroup') {\n return h(\n ElRadioGroup,\n {\n ...node.properties,\n disabled: node.properties?.disabled || disabled.value,\n modelValue: hitlData.value[index!][node.properties?.formProp],\n 'onUpdate:modelValue': (value) => {\n hitlData.value[index!][node.properties?.formProp] = value as string;\n }\n },\n children\n )\n }\n\n if (node.tagName === 'ElRadio') {\n\n return h(\n ElRadio,\n {\n ...node.properties,\n disabled: node.properties?.disabled || disabled.value,\n },\n children\n )\n }\n \n if (node.tagName === 'ElTable') {\n return h(\n CoreTable,\n {\n ...node.properties,\n },\n children\n )\n }\n\n if (node.tagName === 'ElTableColumn') {\n return h(\n ElTableColumn,\n {\n ...node.properties,\n },\n {\n default: (scope) => {\n const children = node.children?.map(child => hastToVNode(child, curInit, scope.row));\n const index = node.children?.findIndex(child => child.value === scope.row[node.properties?.prop]);\n if (index === -1) {\n return children;\n }\n return children?.[index];\n },\n }\n )\n }\n\n if (node.tagName === 'CoreText') {\n return h(\n CoreText,\n {\n ...node.properties,\n }\n )\n }\n\n if (node.tagName === 'CoreTips') {\n return h(\n CoreTips,\n {\n ...node.properties,\n }\n )\n }\n\n if (node.tagName === 'CoreResult') {\n return h(\n CoreResult,\n {\n ...node.properties,\n }\n )\n }\n \n // 处理代码块(包含Mermaid图表和数学公式)\n if (node.tagName === \"pre\") {\n const codeNode = node.children?.find(child => child.tagName === \"code\");\n if (codeNode) {\n if (codeNode.properties?.className?.includes(\"language-CorePilot\")) {\n const code = codeNode.children?.[0]?.value || '';\n const schema = JSON.parse(code);\n const viewTree = parseCorePilot(schema);\n const children = hastToVNode(viewTree, curInit)\n return h(\"div\", {\n class: \"hitl-wrapper\",\n }, [children]);\n }\n }\n }\n \n // 其他普通元素\n return h(\n node.tagName,\n node.properties,\n children\n );\n \n case \"text\":\n return node.value.trim();\n \n default:\n return null;\n }\n };\n\n onUpdated(() => {\n curInit = 0;\n })\n\n return {\n hastToVNode,\n ast,\n container,\n renderComplete,\n getContentText,\n };\n },\n render() {\n return (\n <div\n ref=\"x-markdown-container\"\n class=\"x-markdown\"\n >\n {\n this.hastToVNode(this.ast)\n }\n </div>\n );\n },\n});"],"names":["checkAndReturnRefList","text","reg","match","exec","refListStr","refList","JSON","parse","error","name","props","type","String","default","autoHideThinking","Boolean","typing","speed","Number","isHistoryMessage","expose","emits","setup","emit","container","useTemplateRef","startTime","ref","Date","now","endTime","context","pendingImages","Set","isInitAnimation","tagComplete","hitlData","formRefs","useTemplateRefsList","curIndex","curInit","ast","streamCall","stream","value","streamGener","createStreamGenerator","updateSummaryClasses","mdText","summaryDivReg","isFirstSummary","replace","summaryTag","divContent","divEnd","isDivComplete","updatedSummary","formatText","computed","content","includes","res","duration","toFixed","length","disabled","watch","v","o","oldText","startsWith","reset","update","stop","checkReg","test","setSpeed","immediate","refConfig","getRefConfig","refContainer","querySelector","textContent","renderComplete","debounce","activeRef","newVal","oldVal","getAttribute","target","find","item","link","getTargeElement","e","tagName","isInRefContainer","classList","contains","isRefContainer","parentElement","handleMouseOver","handleAClick","stopPropagation","preventDefault","href","id","title","ext","split","pop","window","open","ElMessage","btnClick","index","action","payload","parentScope","validate","handleClick","highlight","page","source","data","getContentText","innerText","onMounted","addEventListener","onBeforeUnmount","removeEventListener","processNewImages","newImages","querySelectorAll","forEach","img","has","add","setPlaceholderDimensions","complete","handleImageLoad","handleImageError","containerWidth","offsetWidth","naturalWidth","style","maxWidth","naturalHeight","ratio","maxHeight","Math","min","delete","setAttribute","opacity","md","unified","use","remarkParse","remarkBreaks","remarkGfm","singleTilde","remarkMath","remarkGemoji","remarkRehype","allowDangerousHtml","rehypeRaw","rehypeKatex","rehypeStringify","collectFormsFromSchema","schema","formDataList","formData","properties","push","Array","isArray","children","child","computedForm","mdAst","preNodes","findPreNodes","node","preNode","codeNode","className","code","console","run","nextTick","details","summary","Accordion","hastToVNode","row","blackTagNames","map","h","class","ElConfigProvider","locale","zhCN","formatChildren","fileType","ElTimeline","ElRow","ElCol","ElCard","ElForm","set","model","ElFormItem","ElButton","onClick","ElSelect","modelValue","formProp","ElDatePicker","ElInput","ElRadioGroup","ElRadio","CoreTable","ElTableColumn","scope","findIndex","prop","CoreText","CoreTips","CoreResult","viewTree","parseCorePilot","trim","onUpdated","render","_createVNode"],"mappings":"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"}
@@ -1,51 +1,52 @@
1
- const parseSchema = (schema, parentScope) => {
1
+ const parseSchema = (schema, type) => {
2
2
  switch (schema.type) {
3
3
  case "view":
4
4
  return parseView(schema);
5
5
  case "form":
6
6
  return parseForm(schema);
7
- case "input":
8
- return parseInput(schema);
9
- case "select":
10
- return parseSelect(schema);
11
- case "dateTimePicker":
12
- return parseDate(schema);
13
7
  case "card":
14
8
  return parseCard(schema);
15
- case "button":
16
- return parseButton(schema, parentScope);
17
9
  case "table":
18
10
  return parseTable(schema);
11
+ case "input":
12
+ return parseInput(schema, type);
13
+ case "select":
14
+ return parseSelect(schema, type);
15
+ case "dateTimePicker":
16
+ return parseDate(schema, type);
17
+ case "button":
18
+ return parseButton(schema, type);
19
19
  case "tips":
20
- return parseTips(schema);
20
+ return parseTips(schema, type);
21
21
  case "text":
22
- return parseText(schema);
22
+ return parseText(schema, type);
23
23
  case "formfield":
24
- return parseFormItem(schema);
24
+ return parseFormItem(schema, type);
25
25
  case "column":
26
- return parseTableColumn(schema);
26
+ return parseTableColumn(schema, type);
27
27
  case "row":
28
- return parseRow(schema);
28
+ return parseRow(schema, type);
29
29
  case "col":
30
- return parseCol(schema);
30
+ return parseCol(schema, type);
31
31
  case "result":
32
- return parseResult(schema);
32
+ return parseResult(schema, type);
33
33
  case "tag":
34
- return parseTag(schema, parentScope);
34
+ return parseTag(schema, type);
35
35
  case "radioGroup":
36
- return parseRadioGroup(schema);
36
+ return parseRadioGroup(schema, type);
37
37
  case "radio":
38
- return parseRadio(schema);
38
+ return parseRadio(schema, type);
39
39
  default:
40
40
  const _ = schema;
41
41
  console.error(_);
42
42
  }
43
43
  };
44
- const parseResult = (schema) => {
44
+ const parseResult = (schema, parentType) => {
45
45
  return {
46
46
  tagName: "CoreResult",
47
47
  type: "element",
48
- properties: schema.properties
48
+ properties: schema.properties,
49
+ parentScope: parentType
49
50
  };
50
51
  };
51
52
  const parseView = (schema) => {
@@ -63,7 +64,7 @@ const parseView = (schema) => {
63
64
  const parseForm = (schema) => {
64
65
  const children = [];
65
66
  schema.fields.forEach((item) => {
66
- children.push(parseSchema(item));
67
+ children.push(parseSchema(item, "form"));
67
68
  });
68
69
  const actionChild = {
69
70
  tagName: "div",
@@ -72,7 +73,7 @@ const parseForm = (schema) => {
72
73
  class: "hitl-btn-list"
73
74
  },
74
75
  children: schema.actions.map((item) => {
75
- return parseSchema(item);
76
+ return parseSchema(item, "form");
76
77
  })
77
78
  };
78
79
  children.push(actionChild);
@@ -86,28 +87,31 @@ const parseForm = (schema) => {
86
87
  children
87
88
  };
88
89
  };
89
- const parseInput = (schema) => {
90
+ const parseInput = (schema, type) => {
90
91
  return {
91
92
  tagName: "ElInput",
92
93
  type: "element",
93
- properties: schema.properties
94
+ properties: schema.properties,
95
+ parentScope: type
94
96
  };
95
97
  };
96
- const parseSelect = (schema) => {
98
+ const parseSelect = (schema, type) => {
97
99
  return {
98
100
  tagName: "ElSelect",
99
101
  type: "element",
100
- properties: schema.properties
102
+ properties: schema.properties,
103
+ parentScope: type
101
104
  };
102
105
  };
103
- const parseDate = (schema) => {
106
+ const parseDate = (schema, type) => {
104
107
  return {
105
108
  tagName: "ElDatePicker",
106
109
  type: "element",
107
- properties: schema.properties
110
+ properties: schema.properties,
111
+ parentScope: type
108
112
  };
109
113
  };
110
- const parseButton = (schema, parentScope) => {
114
+ const parseButton = (schema, type) => {
111
115
  var _a, _b;
112
116
  return {
113
117
  tagName: "ElButton",
@@ -117,10 +121,10 @@ const parseButton = (schema, parentScope) => {
117
121
  action: schema.action,
118
122
  payload: schema.payload
119
123
  },
120
- // TODO 记录父级作用域,用于在表格中渲染按钮
121
- parentScope,
124
+ // TODO 记录父级作用域,用于在form、table 组件中使用
125
+ parentScope: type,
122
126
  children: (_b = (_a = schema.children) == null ? void 0 : _a.map) == null ? void 0 : _b.call(_a, (item) => {
123
- return parseSchema(item);
127
+ return parseSchema(item, type);
124
128
  })
125
129
  };
126
130
  };
@@ -134,14 +138,15 @@ const parseCard = (schema) => {
134
138
  })
135
139
  };
136
140
  };
137
- const parseTableColumn = (schema) => {
141
+ const parseTableColumn = (schema, parentType) => {
138
142
  var _a;
139
143
  return {
140
144
  tagName: "ElTableColumn",
141
145
  type: "element",
142
146
  properties: schema.properties,
147
+ parentScope: parentType,
143
148
  children: (_a = schema.children) == null ? void 0 : _a.map((item) => {
144
- return parseSchema(item, "table");
149
+ return parseSchema(item, parentType);
145
150
  })
146
151
  };
147
152
  };
@@ -151,22 +156,24 @@ const parseTable = (schema) => {
151
156
  type: "element",
152
157
  properties: schema.properties,
153
158
  children: schema.children.map((item) => {
154
- return parseSchema(item);
159
+ return parseSchema(item, "table");
155
160
  })
156
161
  };
157
162
  };
158
- const parseTips = (schema) => {
163
+ const parseTips = (schema, parentType) => {
159
164
  return {
160
165
  tagName: "CoreTips",
161
166
  type: "element",
162
- properties: schema.properties
167
+ properties: schema.properties,
168
+ parentScope: parentType
163
169
  };
164
170
  };
165
- const parseText = (schema) => {
171
+ const parseText = (schema, parentType) => {
166
172
  return {
167
173
  tagName: "CoreText",
168
174
  type: "element",
169
- properties: schema.properties
175
+ properties: schema.properties,
176
+ parentScope: parentType
170
177
  };
171
178
  };
172
179
  const injectFormProp = (schema, prop) => {
@@ -180,7 +187,7 @@ const injectFormProp = (schema, prop) => {
180
187
  };
181
188
  });
182
189
  };
183
- const parseFormItem = (schema) => {
190
+ const parseFormItem = (schema, parentType) => {
184
191
  const prop = schema.properties.prop;
185
192
  const children = injectFormProp(schema.children, prop);
186
193
  const formatRules = (rules) => {
@@ -202,63 +209,67 @@ const parseFormItem = (schema) => {
202
209
  ...schema.properties,
203
210
  rules: formatRules(schema.properties.rules)
204
211
  },
212
+ parentScope: parentType,
205
213
  children: [
206
- parseSchema(children[0])
214
+ parseSchema(children[0], parentType)
207
215
  ]
208
216
  };
209
217
  };
210
- const parseRow = (schema) => {
218
+ const parseRow = (schema, parentType) => {
211
219
  return {
212
220
  tagName: "ElRow",
213
221
  type: "element",
214
222
  properties: schema.properties,
215
223
  children: schema.children.map((item) => {
216
- return parseSchema(item);
224
+ return parseSchema(item, parentType);
217
225
  })
218
226
  };
219
227
  };
220
- const parseCol = (schema) => {
228
+ const parseCol = (schema, parentType) => {
221
229
  return {
222
230
  tagName: "ElCol",
223
231
  type: "element",
224
232
  properties: schema.properties,
233
+ parentScope: parentType,
225
234
  children: schema.children.map((item) => {
226
- return parseSchema(item);
235
+ return parseSchema(item, parentType);
227
236
  })
228
237
  };
229
238
  };
230
- const parseRadioGroup = (schema) => {
239
+ const parseRadioGroup = (schema, parentType) => {
231
240
  var _a;
232
241
  return {
233
242
  tagName: "ElRadioGroup",
234
243
  type: "element",
235
244
  properties: schema.properties,
245
+ parentScope: parentType,
236
246
  children: (_a = schema.properties.options) == null ? void 0 : _a.map((item) => {
237
247
  return parseSchema({
238
248
  type: "radio",
239
249
  properties: item
240
- });
250
+ }, parentType);
241
251
  })
242
252
  };
243
253
  };
244
- const parseRadio = (schema) => {
254
+ const parseRadio = (schema, parentType) => {
245
255
  return {
246
256
  tagName: "ElRadio",
247
257
  type: "element",
248
- properties: schema.properties
258
+ properties: schema.properties,
259
+ parentScope: parentType
249
260
  };
250
261
  };
251
- const parseTag = (schema, parentScope) => {
262
+ const parseTag = (schema, parentType) => {
252
263
  const formatSchema = {
253
264
  tagName: "ElTag",
254
265
  type: "element",
255
- value: null,
256
266
  properties: schema.properties,
267
+ parentScope: parentType,
257
268
  children: schema.children.map((item) => {
258
- return parseSchema(item);
269
+ return parseSchema(item, parentType);
259
270
  })
260
271
  };
261
- if (parentScope === "table") {
272
+ if (parentType === "table") {
262
273
  formatSchema.value = schema.value;
263
274
  }
264
275
  return formatSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"parseCorePilotSchema.js","sources":["../../../../../src/components/x-markdown/utils/parseCorePilotSchema.ts"],"sourcesContent":["import { \n FormSchema, \n ViewSchema,\n FormFieldSchema, \n CardSchema, \n ButtonSchema, \n TableSchema, \n TipsSchema, \n TextSchema, \n InputSchema, \n SelectSchema, \n DateTimePickerSchema, \n TableColumnSchema, \n RowSchema, \n ColSchema, \n ResultSchema, \n TagSchema,\n RadioGroupSchema,\n RadioSchema\n} from '@/types/index';\n\ntype ElementSchema = ViewSchema<any> | FormSchema | FormFieldSchema | CardSchema | ButtonSchema | TableSchema | TipsSchema | TextSchema | InputSchema | SelectSchema | DateTimePickerSchema | TableColumnSchema | RowSchema | ColSchema | ResultSchema | TagSchema | RadioGroupSchema | RadioSchema;\n\nconst parseSchema = (schema: ElementSchema, parentScope?: string) => {\n switch (schema.type) {\n case 'view':\n return parseView(schema);\n case 'form':\n return parseForm(schema);\n case 'input':\n return parseInput(schema);\n case 'select':\n return parseSelect(schema);\n case 'dateTimePicker':\n return parseDate(schema);\n case 'card':\n return parseCard(schema);\n case 'button':\n return parseButton(schema, parentScope);\n case 'table':\n return parseTable(schema);\n case 'tips':\n return parseTips(schema);\n case 'text':\n return parseText(schema);\n case 'formfield':\n return parseFormItem(schema);\n case 'column':\n return parseTableColumn(schema);\n case 'row':\n return parseRow(schema);\n case 'col':\n return parseCol(schema);\n case 'result':\n return parseResult(schema);\n case 'tag':\n return parseTag(schema, parentScope);\n case 'radioGroup':\n return parseRadioGroup(schema);\n case 'radio':\n return parseRadio(schema);\n default:\n const _: never = schema;\n console.error(_);\n }\n}\n\n// result组件解析\nconst parseResult = (schema: ResultSchema) => {\n return {\n tagName: 'CoreResult',\n type: 'element',\n properties: schema.properties,\n }\n}\n\n// view组件解析\nconst parseView = (schema: ViewSchema<any>) => {\n return {\n tagName: 'view',\n type: 'element',\n properties: {\n title: schema.title,\n },\n children: schema.children.map((item) => {\n return parseSchema(item);\n })\n }\n}\n\n// form组件解析\nconst parseForm = (schema: FormSchema) => {\n const children: any[] = [] \n schema.fields.forEach((item) => {\n children.push(parseSchema(item));\n });\n const actionChild = {\n tagName: 'div',\n type: 'element',\n properties: {\n class: 'hitl-btn-list',\n },\n children: schema.actions.map((item) => {\n return parseSchema(item);\n })\n }\n children.push(actionChild);\n return {\n tagName: 'ElForm',\n type: 'element',\n properties: {\n labelPosition: 'right',\n ...schema.properties,\n },\n children,\n }\n}\n\nconst parseInput = (schema: InputSchema) => {\n return {\n tagName: 'ElInput',\n type: 'element',\n properties: schema.properties,\n }\n}\n\nconst parseSelect = (schema: SelectSchema) => {\n return {\n tagName: 'ElSelect',\n type: 'element',\n properties: schema.properties,\n }\n}\n\nconst parseDate = (schema: DateTimePickerSchema) => {\n return {\n tagName: 'ElDatePicker',\n type: 'element',\n properties: schema.properties,\n }\n}\n\nconst parseButton = (schema: ButtonSchema, parentScope?: string) => {\n return {\n tagName: 'ElButton',\n type: 'element',\n properties: {\n ...schema.properties,\n action: schema.action,\n payload: schema.payload,\n },\n // TODO 记录父级作用域,用于在表格中渲染按钮\n parentScope,\n children: schema.children?.map?.((item) => {\n return parseSchema(item);\n })\n }\n}\n\nconst parseCard = (schema: CardSchema) => {\n return {\n tagName: 'ElCard',\n type: 'element',\n properties: schema.properties,\n children: schema.children.map((item) => {\n return parseSchema(item);\n })\n }\n}\n\nconst parseTableColumn = (schema: TableColumnSchema) => {\n return {\n tagName: 'ElTableColumn',\n type: 'element',\n properties: schema.properties,\n children: schema.children?.map((item) => {\n return parseSchema(item, 'table');\n })\n }\n}\n\nconst parseTable = (schema: TableSchema) => {\n return {\n tagName: 'ElTable',\n type: 'element',\n properties: schema.properties,\n children: schema.children.map((item) => {\n return parseSchema(item);\n })\n }\n}\n\n\nconst parseTips = (schema: TipsSchema) => {\n return {\n tagName: 'CoreTips',\n type: 'element',\n properties: schema.properties\n }\n}\n\nconst parseText = (schema: TextSchema) => {\n return {\n tagName: 'CoreText',\n type: 'element',\n properties: schema.properties\n }\n}\nconst injectFormProp = (schema: FormFieldSchema['children'], prop: string) => {\n return schema.map((item) => {\n return {\n ...item,\n properties: {\n ...item.properties,\n formProp: prop,\n }\n }\n })\n}\nconst parseFormItem = (schema: FormFieldSchema) => {\n const prop = schema.properties.prop;\n const children = injectFormProp(schema.children, prop);\n const formatRules = (rules: FormFieldSchema['properties']['rules']) => {\n return rules?.map((item) => {\n if ('pattern' in item && item.pattern) {\n return {\n pattern: new RegExp(item.pattern),\n message: item.message,\n trigger: item.trigger,\n }\n }\n return item;\n })\n }\n return {\n tagName: 'ElFormItem',\n type: 'element',\n properties: {\n ...schema.properties,\n rules: formatRules(schema.properties.rules),\n },\n children: [\n parseSchema(children[0] as InputSchema),\n ]\n }\n}\n\nconst parseRow = (schema: RowSchema) => {\n return {\n tagName: 'ElRow',\n type: 'element',\n properties: schema.properties,\n children: schema.children.map((item) => {\n return parseSchema(item);\n })\n }\n}\n\nconst parseCol = (schema: ColSchema) => {\n return {\n tagName: 'ElCol',\n type: 'element',\n properties: schema.properties,\n children: schema.children.map((item) => {\n return parseSchema(item as ElementSchema);\n })\n }\n}\n\nconst parseRadioGroup = (schema: RadioGroupSchema) => {\n return {\n tagName: 'ElRadioGroup',\n type: 'element',\n properties: schema.properties,\n children: schema.properties.options?.map((item) => {\n return parseSchema({\n type: 'radio',\n properties: item,\n } as RadioSchema);\n })\n }\n}\n\nconst parseRadio = (schema: RadioSchema) => {\n return {\n tagName: 'ElRadio',\n type: 'element',\n properties: schema.properties\n }\n}\n\nconst parseTag = (schema: TagSchema, parentScope?: string) => {\n const formatSchema = {\n tagName: 'ElTag',\n type: 'element',\n value: null,\n properties: schema.properties,\n children: schema.children.map((item) => {\n return parseSchema(item as TextSchema);\n })\n }\n if (parentScope === 'table') {\n formatSchema.value = schema.value;\n }\n return formatSchema;\n}\n\nexport const parseCorePilot = (schema: ViewSchema<any>) => {\n // return parseSchema(mockSchema);\n return parseSchema(schema);\n}"],"names":[],"mappings":"AAuBA,MAAM,cAAc,CAAC,QAAuB,gBAAyB;AACnE,UAAQ,OAAO,MAAA;AAAA,IACb,KAAK;AACH,aAAO,UAAU,MAAM;AAAA,IACzB,KAAK;AACH,aAAO,UAAU,MAAM;AAAA,IACzB,KAAK;AACH,aAAO,WAAW,MAAM;AAAA,IAC1B,KAAK;AACH,aAAO,YAAY,MAAM;AAAA,IAC3B,KAAK;AACH,aAAO,UAAU,MAAM;AAAA,IACzB,KAAK;AACH,aAAO,UAAU,MAAM;AAAA,IACzB,KAAK;AACH,aAAO,YAAY,QAAQ,WAAW;AAAA,IACxC,KAAK;AACH,aAAO,WAAW,MAAM;AAAA,IAC1B,KAAK;AACH,aAAO,UAAU,MAAM;AAAA,IACzB,KAAK;AACH,aAAO,UAAU,MAAM;AAAA,IACzB,KAAK;AACH,aAAO,cAAc,MAAM;AAAA,IAC7B,KAAK;AACH,aAAO,iBAAiB,MAAM;AAAA,IAChC,KAAK;AACH,aAAO,SAAS,MAAM;AAAA,IACxB,KAAK;AACH,aAAO,SAAS,MAAM;AAAA,IACxB,KAAK;AACH,aAAO,YAAY,MAAM;AAAA,IAC3B,KAAK;AACH,aAAO,SAAS,QAAQ,WAAW;AAAA,IACrC,KAAK;AACH,aAAO,gBAAgB,MAAM;AAAA,IAC/B,KAAK;AACH,aAAO,WAAW,MAAM;AAAA,IAC1B;AACE,YAAM,IAAW;AACjB,cAAQ,MAAM,CAAC;AAAA,EAAA;AAErB;AAGA,MAAM,cAAc,CAAC,WAAyB;AAC5C,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,EAAA;AAEvB;AAGA,MAAM,YAAY,CAAC,WAA4B;AAC7C,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,MACV,OAAO,OAAO;AAAA,IAAA;AAAA,IAEhB,UAAU,OAAO,SAAS,IAAI,CAAC,SAAS;AACtC,aAAO,YAAY,IAAI;AAAA,IACzB,CAAC;AAAA,EAAA;AAEL;AAGA,MAAM,YAAY,CAAC,WAAuB;AACxC,QAAM,WAAkB,CAAA;AACxB,SAAO,OAAO,QAAQ,CAAC,SAAS;AAC9B,aAAS,KAAK,YAAY,IAAI,CAAC;AAAA,EACjC,CAAC;AACD,QAAM,cAAc;AAAA,IAClB,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,MACV,OAAO;AAAA,IAAA;AAAA,IAET,UAAU,OAAO,QAAQ,IAAI,CAAC,SAAS;AACrC,aAAO,YAAY,IAAI;AAAA,IACzB,CAAC;AAAA,EAAA;AAEH,WAAS,KAAK,WAAW;AACzB,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,MACV,eAAe;AAAA,MACf,GAAG,OAAO;AAAA,IAAA;AAAA,IAEZ;AAAA,EAAA;AAEJ;AAEA,MAAM,aAAa,CAAC,WAAwB;AAC1C,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,EAAA;AAEvB;AAEA,MAAM,cAAc,CAAC,WAAyB;AAC5C,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,EAAA;AAEvB;AAEA,MAAM,YAAY,CAAC,WAAiC;AAClD,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,EAAA;AAEvB;AAEA,MAAM,cAAc,CAAC,QAAsB,gBAAyB;AAvHpE;AAwHE,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,MACV,GAAG,OAAO;AAAA,MACV,QAAQ,OAAO;AAAA,MACf,SAAS,OAAO;AAAA,IAAA;AAAA;AAAA,IAGlB;AAAA,IACA,WAAU,kBAAO,aAAP,mBAAiB,QAAjB,4BAAuB,CAAC,SAAS;AACzC,aAAO,YAAY,IAAI;AAAA,IACzB;AAAA,EAAC;AAEL;AAEA,MAAM,YAAY,CAAC,WAAuB;AACxC,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,UAAU,OAAO,SAAS,IAAI,CAAC,SAAS;AACtC,aAAO,YAAY,IAAI;AAAA,IACzB,CAAC;AAAA,EAAA;AAEL;AAEA,MAAM,mBAAmB,CAAC,WAA8B;AAnJxD;AAoJE,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,WAAU,YAAO,aAAP,mBAAiB,IAAI,CAAC,SAAS;AACvC,aAAO,YAAY,MAAM,OAAO;AAAA,IAClC;AAAA,EAAC;AAEL;AAEA,MAAM,aAAa,CAAC,WAAwB;AAC1C,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,UAAU,OAAO,SAAS,IAAI,CAAC,SAAS;AACtC,aAAO,YAAY,IAAI;AAAA,IACzB,CAAC;AAAA,EAAA;AAEL;AAGA,MAAM,YAAY,CAAC,WAAuB;AACxC,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,EAAA;AAEvB;AAEA,MAAM,YAAY,CAAC,WAAuB;AACxC,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,EAAA;AAEvB;AACA,MAAM,iBAAiB,CAAC,QAAqC,SAAiB;AAC5E,SAAO,OAAO,IAAI,CAAC,SAAS;AAC1B,WAAO;AAAA,MACL,GAAG;AAAA,MACH,YAAY;AAAA,QACV,GAAG,KAAK;AAAA,QACR,UAAU;AAAA,MAAA;AAAA,IACZ;AAAA,EAEJ,CAAC;AACH;AACA,MAAM,gBAAgB,CAAC,WAA4B;AACjD,QAAM,OAAO,OAAO,WAAW;AAC/B,QAAM,WAAW,eAAe,OAAO,UAAU,IAAI;AACrD,QAAM,cAAc,CAAC,UAAkD;AACrE,WAAO,+BAAO,IAAI,CAAC,SAAS;AAC1B,UAAI,aAAa,QAAQ,KAAK,SAAS;AACrC,eAAO;AAAA,UACL,SAAS,IAAI,OAAO,KAAK,OAAO;AAAA,UAChC,SAAS,KAAK;AAAA,UACd,SAAS,KAAK;AAAA,QAAA;AAAA,MAElB;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,MACV,GAAG,OAAO;AAAA,MACV,OAAO,YAAY,OAAO,WAAW,KAAK;AAAA,IAAA;AAAA,IAE5C,UAAU;AAAA,MACR,YAAY,SAAS,CAAC,CAAgB;AAAA,IAAA;AAAA,EACxC;AAEJ;AAEA,MAAM,WAAW,CAAC,WAAsB;AACtC,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,UAAU,OAAO,SAAS,IAAI,CAAC,SAAS;AACtC,aAAO,YAAY,IAAI;AAAA,IACzB,CAAC;AAAA,EAAA;AAEL;AAEA,MAAM,WAAW,CAAC,WAAsB;AACtC,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,UAAU,OAAO,SAAS,IAAI,CAAC,SAAS;AACtC,aAAO,YAAY,IAAqB;AAAA,IAC1C,CAAC;AAAA,EAAA;AAEL;AAEA,MAAM,kBAAkB,CAAC,WAA6B;AAtPtD;AAuPE,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,IACnB,WAAU,YAAO,WAAW,YAAlB,mBAA2B,IAAI,CAAC,SAAS;AACjD,aAAO,YAAY;AAAA,QACjB,MAAM;AAAA,QACN,YAAY;AAAA,MAAA,CACE;AAAA,IAClB;AAAA,EAAC;AAEL;AAEA,MAAM,aAAa,CAAC,WAAwB;AAC1C,SAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,OAAO;AAAA,EAAA;AAEvB;AAEA,MAAM,WAAW,CAAC,QAAmB,gBAAyB;AAC5D,QAAM,eAAe;AAAA,IACnB,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,YAAY,OAAO;AAAA,IACnB,UAAU,OAAO,SAAS,IAAI,CAAC,SAAS;AACtC,aAAO,YAAY,IAAkB;AAAA,IACvC,CAAC;AAAA,EAAA;AAEH,MAAI,gBAAgB,SAAS;AAC3B,iBAAa,QAAQ,OAAO;AAAA,EAC9B;AACA,SAAO;AACT;AAEO,MAAM,iBAAiB,CAAC,WAA4B;AAEzD,SAAO,YAAY,MAAM;AAC3B;"}
1
+ {"version":3,"file":"parseCorePilotSchema.js","sources":["../../../../../src/components/x-markdown/utils/parseCorePilotSchema.ts"],"sourcesContent":["import { \n FormSchema, \n ViewSchema,\n FormFieldSchema, \n CardSchema, \n ButtonSchema, \n TableSchema, \n TipsSchema, \n TextSchema, \n InputSchema, \n SelectSchema, \n DateTimePickerSchema, \n TableColumnSchema, \n RowSchema, \n ColSchema, \n ResultSchema, \n TagSchema,\n RadioGroupSchema,\n RadioSchema\n} from '@/types/index';\n\ntype ElementSchema = ViewSchema<any> | FormSchema | FormFieldSchema | CardSchema | ButtonSchema | TableSchema | TipsSchema | TextSchema | InputSchema | SelectSchema | DateTimePickerSchema | TableColumnSchema | RowSchema | ColSchema | ResultSchema | TagSchema | RadioGroupSchema | RadioSchema;\n\ntype ParentScopeType = 'form' | 'table';\n\nconst parseSchema = (schema: ElementSchema, type?: ParentScopeType) => {\n switch (schema.type) {\n case 'view':\n return parseView(schema);\n case 'form':\n return parseForm(schema);\n case 'card':\n return parseCard(schema);\n case 'table':\n return parseTable(schema);\n case 'input':\n return parseInput(schema, type);\n case 'select':\n return parseSelect(schema, type);\n case 'dateTimePicker':\n return parseDate(schema, type);\n case 'button':\n return parseButton(schema, type);\n case 'tips':\n return parseTips(schema, type);\n case 'text':\n return parseText(schema, type);\n case 'formfield':\n return parseFormItem(schema, type);\n case 'column':\n return parseTableColumn(schema, type);\n case 'row':\n return parseRow(schema, type);\n case 'col':\n return parseCol(schema, type);\n case 'result':\n return parseResult(schema, type);\n case 'tag':\n return parseTag(schema, type);\n case 'radioGroup':\n return parseRadioGroup(schema, type);\n case 'radio':\n return parseRadio(schema, type);\n default:\n const _: never = schema;\n console.error(_);\n }\n}\n\n// result组件解析\nconst parseResult = (schema: ResultSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'CoreResult',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n }\n}\n\n// view组件解析\nconst parseView = (schema: ViewSchema<any>) => {\n return {\n tagName: 'view',\n type: 'element',\n properties: {\n title: schema.title,\n },\n children: schema.children.map((item) => {\n return parseSchema(item);\n })\n }\n}\n\n// form组件解析\nconst parseForm = (schema: FormSchema) => {\n const children: any[] = [] \n schema.fields.forEach((item) => {\n children.push(parseSchema(item, 'form'));\n });\n const actionChild = {\n tagName: 'div',\n type: 'element',\n properties: {\n class: 'hitl-btn-list',\n },\n children: schema.actions.map((item) => {\n return parseSchema(item, 'form');\n })\n }\n children.push(actionChild);\n return {\n tagName: 'ElForm',\n type: 'element',\n properties: {\n labelPosition: 'right',\n ...schema.properties,\n },\n children,\n }\n}\n\nconst parseInput = (schema: InputSchema, type?: ParentScopeType) => {\n return {\n tagName: 'ElInput',\n type: 'element',\n properties: schema.properties,\n parentScope: type,\n }\n}\n\nconst parseSelect = (schema: SelectSchema, type?: ParentScopeType) => {\n return {\n tagName: 'ElSelect',\n type: 'element',\n properties: schema.properties,\n parentScope: type,\n }\n}\n\nconst parseDate = (schema: DateTimePickerSchema, type?: ParentScopeType) => {\n return {\n tagName: 'ElDatePicker',\n type: 'element',\n properties: schema.properties,\n parentScope: type,\n }\n}\n\nconst parseButton = (schema: ButtonSchema, type?: ParentScopeType) => {\n return {\n tagName: 'ElButton',\n type: 'element',\n properties: {\n ...schema.properties,\n action: schema.action,\n payload: schema.payload,\n },\n // TODO 记录父级作用域,用于在form、table 组件中使用\n parentScope: type,\n children: schema.children?.map?.((item) => {\n return parseSchema(item, type);\n })\n }\n}\n\nconst parseCard = (schema: CardSchema) => {\n return {\n tagName: 'ElCard',\n type: 'element',\n properties: schema.properties,\n children: schema.children.map((item) => {\n return parseSchema(item);\n })\n }\n}\n\nconst parseTableColumn = (schema: TableColumnSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'ElTableColumn',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n children: schema.children?.map((item) => {\n return parseSchema(item, parentType);\n })\n }\n}\n\nconst parseTable = (schema: TableSchema) => {\n return {\n tagName: 'ElTable',\n type: 'element',\n properties: schema.properties,\n children: schema.children.map((item) => {\n return parseSchema(item, 'table');\n })\n }\n}\n\n\nconst parseTips = (schema: TipsSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'CoreTips',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n }\n}\n\nconst parseText = (schema: TextSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'CoreText',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n }\n}\nconst injectFormProp = (schema: FormFieldSchema['children'], prop: string) => {\n return schema.map((item) => {\n return {\n ...item,\n properties: {\n ...item.properties,\n formProp: prop,\n },\n }\n })\n}\nconst parseFormItem = (schema: FormFieldSchema, parentType?: ParentScopeType) => {\n const prop = schema.properties.prop;\n const children = injectFormProp(schema.children, prop);\n const formatRules = (rules: FormFieldSchema['properties']['rules']) => {\n return rules?.map((item) => {\n if ('pattern' in item && item.pattern) {\n return {\n pattern: new RegExp(item.pattern),\n message: item.message,\n trigger: item.trigger,\n }\n }\n return item;\n })\n }\n return {\n tagName: 'ElFormItem',\n type: 'element',\n properties: {\n ...schema.properties,\n rules: formatRules(schema.properties.rules),\n },\n parentScope: parentType,\n children: [\n parseSchema(children[0] as InputSchema, parentType),\n ]\n }\n}\n\nconst parseRow = (schema: RowSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'ElRow',\n type: 'element',\n properties: schema.properties,\n children: schema.children.map((item) => {\n return parseSchema(item, parentType);\n })\n }\n}\n\nconst parseCol = (schema: ColSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'ElCol',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n children: schema.children.map((item) => {\n return parseSchema(item as ElementSchema, parentType);\n })\n }\n}\n\nconst parseRadioGroup = (schema: RadioGroupSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'ElRadioGroup',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n children: schema.properties.options?.map((item) => {\n return parseSchema({\n type: 'radio',\n properties: item,\n } as RadioSchema, parentType);\n })\n }\n}\n\nconst parseRadio = (schema: RadioSchema, parentType?: ParentScopeType) => {\n return {\n tagName: 'ElRadio',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n }\n}\n\nconst parseTag = (schema: TagSchema, parentType?: ParentScopeType) => {\n const formatSchema = {\n tagName: 'ElTag',\n type: 'element',\n properties: schema.properties,\n parentScope: parentType,\n children: schema.children.map((item) => {\n return parseSchema(item as TextSchema, parentType);\n })\n }\n if (parentType === 'table') {\n formatSchema.value = schema.value;\n }\n return formatSchema;\n}\n\nexport const parseCorePilot = (schema: ViewSchema<any>) => {\n return parseSchema(schema);\n}"],"names":[],"mappings":"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"}
package/dist/es/index.js CHANGED
@@ -7,6 +7,7 @@ import { default as default6 } from "./components/file-card/index.js";
7
7
  import { default as default7 } from "./components/core-text/index.js";
8
8
  import { default as default8 } from "./components/core-tips/index.js";
9
9
  import { default as default9 } from "./components/core-result/index.js";
10
+ import { default as default10 } from "./components/core-table/index.js";
10
11
  const install = (app, options) => {
11
12
  Object.keys(index$1).forEach((name) => {
12
13
  app.component(name, index$1[name]);
@@ -18,6 +19,7 @@ const index = {
18
19
  export {
19
20
  default2 as BubbleList,
20
21
  default9 as CoreResult,
22
+ default10 as CoreTable,
21
23
  default7 as CoreText,
22
24
  default8 as CoreTips,
23
25
  default5 as EditorSender,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import { type Plugin } from 'vue';\nimport * as Components from './components';\n\nexport * from './components';\n\nexport const install: Plugin = (app, options) => {\n Object.keys(Components).forEach((name) => {\n app.component(name, Components[name]);\n });\n};\n\nexport default {\n install,\n} as Plugin;\n"],"names":["Components"],"mappings":";;;;;;;;;AAKO,MAAM,UAAkB,CAAC,KAAK,YAAY;AAC/C,SAAO,KAAKA,OAAU,EAAE,QAAQ,CAAC,SAAS;AACxC,QAAI,UAAU,MAAMA,QAAW,IAAI,CAAC;AAAA,EACtC,CAAC;AACH;AAEA,MAAA,QAAe;AAAA,EACb;AACF;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import { type Plugin } from 'vue';\nimport * as Components from './components';\n\nexport * from './components';\n\nexport const install: Plugin = (app, options) => {\n Object.keys(Components).forEach((name) => {\n app.component(name, Components[name]);\n });\n};\n\nexport default {\n install,\n} as Plugin;\n"],"names":["Components"],"mappings":";;;;;;;;;;AAKO,MAAM,UAAkB,CAAC,KAAK,YAAY;AAC/C,SAAO,KAAKA,OAAU,EAAE,QAAQ,CAAC,SAAS;AACxC,QAAI,UAAU,MAAMA,QAAW,IAAI,CAAC;AAAA,EACtC,CAAC;AACH;AAEA,MAAA,QAAe;AAAA,EACb;AACF;"}