@core-pilot/client-vue 0.0.3 → 0.0.4

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 +1 -1
@@ -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":["XMarkdown","name","props","text","type","String","default","autoHideThinking","Boolean","typing","speed","Number","isHistoryMessage","expose","emits","setup","emit","container","useTemplateRef","startTime","ref","Date","now","endTime","Infinity","context","pendingImages","Set","isInitAnimation","tagComplete","hitlData","formRefs","useTemplateRefsList","curIndex","curInit","ast","streamGener","createStreamGenerator","stream","value","formatText","computed","content","mdText","isFirstSummary","replace","match","summaryTag","divContent","divEnd","isDivComplete","updateSummaryClasses","includes","res","exec","refListStr","JSON","parse","error","checkAndReturnRefList","duration","toFixed","length","disabled","watch","update","stop","checkReg","test","setSpeed","immediate","refConfig","renderComplete","debounce","getRefConfig","refContainer","querySelector","textContent","activeRef","newVal","oldVal","getAttribute","target","find","item","link","getTargeElement","e","tagName","isInRefContainer","classList","contains","isRefContainer","parentElement","handleMouseOver","handleClick","async","stopPropagation","preventDefault","href","id","title","ext","split","pop","ElMessage","window","open","handleAClick","highlight","page","data","onMounted","addEventListener","onBeforeUnmount","removeEventListener","processNewImages","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","mdAst","run","preNodes","findPreNodes","node","preNode","codeNode","className","code","console","computedForm","nextTick","details","Accordion","hastToVNode","index","row","map","h","class","formatChildren","fileType","ElTimeline","ElRow","ElCol","ElCard","ElForm","set","model","ElFormItem","payload","parentScope","ElButton","onClick","action","validate","btnClick","ElSelect","modelValue","formProp","ElDatePicker","ElInput","ElRadioGroup","ElRadio","ElTable","ElTableColumn","scope","findIndex","prop","CoreText","CoreTips","CoreResult","viewTree","parseCorePilot","trim","onUpdated","getContentText","innerText","render","_createVNode","this"],"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":["XMarkdown","name","props","text","type","String","default","autoHideThinking","Boolean","typing","speed","Number","isHistoryMessage","expose","emits","setup","emit","container","useTemplateRef","startTime","ref","Date","now","endTime","Infinity","context","pendingImages","Set","isInitAnimation","tagComplete","hitlData","formRefs","useTemplateRefsList","curIndex","curInit","ast","streamGener","createStreamGenerator","stream","value","formatText","computed","content","mdText","isFirstSummary","replace","match","summaryTag","divContent","divEnd","isDivComplete","updateSummaryClasses","includes","res","exec","refListStr","JSON","parse","error","checkAndReturnRefList","duration","toFixed","length","disabled","watch","v","o","oldText","startsWith","reset","update","stop","checkReg","test","setSpeed","immediate","refConfig","renderComplete","debounce","getRefConfig","refContainer","querySelector","textContent","activeRef","newVal","oldVal","getAttribute","target","find","item","link","getTargeElement","e","tagName","isInRefContainer","classList","contains","isRefContainer","parentElement","handleMouseOver","handleClick","async","stopPropagation","preventDefault","href","id","title","ext","split","pop","ElMessage","window","open","handleAClick","highlight","page","data","onMounted","addEventListener","onBeforeUnmount","removeEventListener","processNewImages","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","mdAst","run","preNodes","findPreNodes","node","preNode","codeNode","className","code","console","computedForm","nextTick","details","Accordion","hastToVNode","index","row","map","h","class","ElConfigProvider","locale","zhCN","formatChildren","fileType","ElTimeline","ElRow","ElCol","ElCard","ElForm","set","model","ElFormItem","payload","parentScope","ElButton","onClick","action","validate","btnClick","ElSelect","modelValue","formProp","ElDatePicker","ElInput","ElRadioGroup","ElRadio","CoreTable","ElTableColumn","scope","findIndex","prop","CoreText","CoreTips","CoreResult","viewTree","parseCorePilot","trim","onUpdated","getContentText","innerText","render","_createVNode","this"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=(e,E)=>{switch(e.type){case"view":return t(e);case"form":return p(e);case"input":return a(e);case"select":return i(e);case"dateTimePicker":return l(e);case"card":return n(e);case"button":return o(e,E);case"table":return c(e);case"tips":return m(e);case"text":return u(e);case"formfield":return d(e);case"column":return s(e);case"row":return g(e);case"col":return h(e);case"result":return r(e);case"tag":return v(e,E);case"radioGroup":return y(e);case"radio":return N(e);default:const b=e;console.error(b)}},r=e=>({tagName:"CoreResult",type:"element",properties:e.properties}),t=r=>({tagName:"view",type:"element",properties:{title:r.title},children:r.children.map(r=>e(r))}),p=r=>{const t=[];r.fields.forEach(r=>{t.push(e(r))});const p={tagName:"div",type:"element",properties:{class:"hitl-btn-list"},children:r.actions.map(r=>e(r))};return t.push(p),{tagName:"ElForm",type:"element",properties:{labelPosition:"right",...r.properties},children:t}},a=e=>({tagName:"ElInput",type:"element",properties:e.properties}),i=e=>({tagName:"ElSelect",type:"element",properties:e.properties}),l=e=>({tagName:"ElDatePicker",type:"element",properties:e.properties}),o=(r,t)=>{var p,a;return{tagName:"ElButton",type:"element",properties:{...r.properties,action:r.action,payload:r.payload},parentScope:t,children:null==(a=null==(p=r.children)?void 0:p.map)?void 0:a.call(p,r=>e(r))}},n=r=>({tagName:"ElCard",type:"element",properties:r.properties,children:r.children.map(r=>e(r))}),s=r=>{var t;return{tagName:"ElTableColumn",type:"element",properties:r.properties,children:null==(t=r.children)?void 0:t.map(r=>e(r,"table"))}},c=r=>({tagName:"ElTable",type:"element",properties:r.properties,children:r.children.map(r=>e(r))}),m=e=>({tagName:"CoreTips",type:"element",properties:e.properties}),u=e=>({tagName:"CoreText",type:"element",properties:e.properties}),d=r=>{const t=r.properties.prop,p=((e,r)=>e.map(e=>({...e,properties:{...e.properties,formProp:r}})))(r.children,t);return{tagName:"ElFormItem",type:"element",properties:{...r.properties,rules:(a=r.properties.rules,null==a?void 0:a.map(e=>"pattern"in e&&e.pattern?{pattern:new RegExp(e.pattern),message:e.message,trigger:e.trigger}:e))},children:[e(p[0])]};var a},g=r=>({tagName:"ElRow",type:"element",properties:r.properties,children:r.children.map(r=>e(r))}),h=r=>({tagName:"ElCol",type:"element",properties:r.properties,children:r.children.map(r=>e(r))}),y=r=>{var t;return{tagName:"ElRadioGroup",type:"element",properties:r.properties,children:null==(t=r.properties.options)?void 0:t.map(r=>e({type:"radio",properties:r}))}},N=e=>({tagName:"ElRadio",type:"element",properties:e.properties}),v=(r,t)=>{const p={tagName:"ElTag",type:"element",value:null,properties:r.properties,children:r.children.map(r=>e(r))};return"table"===t&&(p.value=r.value),p};exports.parseCorePilot=r=>e(r);
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=(e,S)=>{switch(e.type){case"view":return t(e);case"form":return p(e);case"card":return l(e);case"table":return c(e);case"input":return a(e,S);case"select":return o(e,S);case"dateTimePicker":return n(e,S);case"button":return i(e,S);case"tips":return m(e,S);case"text":return u(e,S);case"formfield":return d(e,S);case"column":return s(e,S);case"row":return g(e,S);case"col":return h(e,S);case"result":return r(e,S);case"tag":return E(e,S);case"radioGroup":return y(e,S);case"radio":return N(e,S);default:const v=e;console.error(v)}},r=(e,r)=>({tagName:"CoreResult",type:"element",properties:e.properties,parentScope:r}),t=r=>({tagName:"view",type:"element",properties:{title:r.title},children:r.children.map(r=>e(r))}),p=r=>{const t=[];r.fields.forEach(r=>{t.push(e(r,"form"))});const p={tagName:"div",type:"element",properties:{class:"hitl-btn-list"},children:r.actions.map(r=>e(r,"form"))};return t.push(p),{tagName:"ElForm",type:"element",properties:{labelPosition:"right",...r.properties},children:t}},a=(e,r)=>({tagName:"ElInput",type:"element",properties:e.properties,parentScope:r}),o=(e,r)=>({tagName:"ElSelect",type:"element",properties:e.properties,parentScope:r}),n=(e,r)=>({tagName:"ElDatePicker",type:"element",properties:e.properties,parentScope:r}),i=(r,t)=>{var p,a;return{tagName:"ElButton",type:"element",properties:{...r.properties,action:r.action,payload:r.payload},parentScope:t,children:null==(a=null==(p=r.children)?void 0:p.map)?void 0:a.call(p,r=>e(r,t))}},l=r=>({tagName:"ElCard",type:"element",properties:r.properties,children:r.children.map(r=>e(r))}),s=(r,t)=>{var p;return{tagName:"ElTableColumn",type:"element",properties:r.properties,parentScope:t,children:null==(p=r.children)?void 0:p.map(r=>e(r,t))}},c=r=>({tagName:"ElTable",type:"element",properties:r.properties,children:r.children.map(r=>e(r,"table"))}),m=(e,r)=>({tagName:"CoreTips",type:"element",properties:e.properties,parentScope:r}),u=(e,r)=>({tagName:"CoreText",type:"element",properties:e.properties,parentScope:r}),d=(r,t)=>{const p=r.properties.prop,a=((e,r)=>e.map(e=>({...e,properties:{...e.properties,formProp:r}})))(r.children,p);return{tagName:"ElFormItem",type:"element",properties:{...r.properties,rules:(o=r.properties.rules,null==o?void 0:o.map(e=>"pattern"in e&&e.pattern?{pattern:new RegExp(e.pattern),message:e.message,trigger:e.trigger}:e))},parentScope:t,children:[e(a[0],t)]};var o},g=(r,t)=>({tagName:"ElRow",type:"element",properties:r.properties,children:r.children.map(r=>e(r,t))}),h=(r,t)=>({tagName:"ElCol",type:"element",properties:r.properties,parentScope:t,children:r.children.map(r=>e(r,t))}),y=(r,t)=>{var p;return{tagName:"ElRadioGroup",type:"element",properties:r.properties,parentScope:t,children:null==(p=r.properties.options)?void 0:p.map(r=>e({type:"radio",properties:r},t))}},N=(e,r)=>({tagName:"ElRadio",type:"element",properties:e.properties,parentScope:r}),E=(r,t)=>{const p={tagName:"ElTag",type:"element",properties:r.properties,parentScope:t,children:r.children.map(r=>e(r,t))};return"table"===t&&(p.value=r.value),p};exports.parseCorePilot=r=>e(r);
2
2
  //# sourceMappingURL=parseCorePilotSchema.js.map
@@ -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":["parseSchema","schema","parentScope","type","parseView","parseForm","parseInput","parseSelect","parseDate","parseCard","parseButton","parseTable","parseTips","parseText","parseFormItem","parseTableColumn","parseRow","parseCol","parseResult","parseTag","parseRadioGroup","parseRadio","_","console","error","tagName","properties","title","children","map","item","fields","forEach","push","actionChild","class","actions","labelPosition","action","payload","_b","_a","call","prop","formProp","injectFormProp","rules","pattern","RegExp","message","trigger","options","formatSchema","value"],"mappings":"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"}
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":["parseSchema","schema","type","parseView","parseForm","parseCard","parseTable","parseInput","parseSelect","parseDate","parseButton","parseTips","parseText","parseFormItem","parseTableColumn","parseRow","parseCol","parseResult","parseTag","parseRadioGroup","parseRadio","_","console","error","parentType","tagName","properties","parentScope","title","children","map","item","fields","forEach","push","actionChild","class","actions","labelPosition","action","payload","_b","_a","call","prop","formProp","injectFormProp","rules","pattern","RegExp","message","trigger","options","formatSchema","value"],"mappings":"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"}
package/dist/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./components/index.js"),r=require("./components/bubble-list/index.js"),o=require("./components/x-markdown/index.js"),s=require("./components/file-preview/index.js"),t=require("./components/editor-sender/index.js"),n=require("./components/file-card/index.js"),i=require("./components/core-text/index.js"),p=require("./components/core-tips/index.js"),x=require("./components/core-result/index.js"),d=(r,o)=>{Object.keys(e).forEach(o=>{r.component(o,e[o])})},c={install:d};exports.BubbleList=r,exports.XMarkdown=o,exports.FilePreview=s,exports.EditorSender=t,exports.FileCard=n,exports.CoreText=i,exports.CoreTips=p,exports.CoreResult=x,exports.default=c,exports.install=d;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./components/index.js"),r=require("./components/bubble-list/index.js"),o=require("./components/x-markdown/index.js"),s=require("./components/file-preview/index.js"),t=require("./components/editor-sender/index.js"),n=require("./components/file-card/index.js"),i=require("./components/core-text/index.js"),p=require("./components/core-tips/index.js"),x=require("./components/core-result/index.js"),d=require("./components/core-table/index.js"),c=(r,o)=>{Object.keys(e).forEach(o=>{r.component(o,e[o])})},l={install:c};exports.BubbleList=r,exports.XMarkdown=o,exports.FilePreview=s,exports.EditorSender=t,exports.FileCard=n,exports.CoreText=i,exports.CoreTips=p,exports.CoreResult=x,exports.CoreTable=d,exports.default=l,exports.install=c;
2
2
  //# sourceMappingURL=index.js.map
@@ -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":["install","app","options","Object","keys","Components","forEach","name","component","index"],"mappings":"ygBAKaA,EAAkB,CAACC,EAAKC,KACnCC,OAAOC,KAAKC,GAAYC,QAASC,IAC/BN,EAAIO,UAAUD,EAAMF,EAAWE,OAInCE,EAAe,CACbT"}
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":["install","app","options","Object","keys","Components","forEach","name","component","index"],"mappings":"ujBAKaA,EAAkB,CAACC,EAAKC,KACnCC,OAAOC,KAAKC,GAAYC,QAASC,IAC/BN,EAAIO,UAAUD,EAAMF,EAAWE,OAInCE,EAAe,CACbT"}
@@ -0,0 +1,2 @@
1
+ "use strict";module.exports={name:"zh-cn",el:{breadcrumb:{label:"面包屑"},colorpicker:{confirm:"确定",clear:"清空",defaultLabel:"颜色选择器",description:"当前颜色 {color},按 Enter 键选择新颜色",alphaLabel:"选择透明度的值",alphaDescription:"透明度 {alpha}, 当前颜色 {color}",hueLabel:"选择色相值",hueDescription:"色相 {hue}, 当前颜色 {color}",svLabel:"选择饱和度与明度的值",svDescription:"饱和度 {saturation}, 明度 {brightness}, 当前颜色 {color}",predefineDescription:"选择 {value} 作为颜色"},datepicker:{now:"此刻",today:"今天",cancel:"取消",clear:"清空",confirm:"确定",dateTablePrompt:"使用方向键与 Enter 键可选择日期",monthTablePrompt:"使用方向键与 Enter 键可选择月份",yearTablePrompt:"使用方向键与 Enter 键可选择年份",selectedDate:"已选日期",selectDate:"选择日期",selectTime:"选择时间",startDate:"开始日期",startTime:"开始时间",endDate:"结束日期",endTime:"结束时间",prevYear:"前一年",nextYear:"后一年",prevMonth:"上个月",nextMonth:"下个月",year:"年",month1:"1 月",month2:"2 月",month3:"3 月",month4:"4 月",month5:"5 月",month6:"6 月",month7:"7 月",month8:"8 月",month9:"9 月",month10:"10 月",month11:"11 月",month12:"12 月",weeks:{sun:"日",mon:"一",tue:"二",wed:"三",thu:"四",fri:"五",sat:"六"},weeksFull:{sun:"星期日",mon:"星期一",tue:"星期二",wed:"星期三",thu:"星期四",fri:"星期五",sat:"星期六"},months:{jan:"一月",feb:"二月",mar:"三月",apr:"四月",may:"五月",jun:"六月",jul:"七月",aug:"八月",sep:"九月",oct:"十月",nov:"十一月",dec:"十二月"}},inputNumber:{decrease:"减少数值",increase:"增加数值"},select:{loading:"加载中",noMatch:"无匹配数据",noData:"无数据",placeholder:"请选择"},mention:{loading:"加载中"},dropdown:{toggleDropdown:"切换下拉选项"},cascader:{noMatch:"无匹配数据",loading:"加载中",placeholder:"请选择",noData:"暂无数据"},pagination:{goto:"前往",pagesize:"条/页",total:"共 {total} 条",pageClassifier:"页",page:"页",prev:"上一页",next:"下一页",currentPage:"第 {pager} 页",prevPages:"向前 {pager} 页",nextPages:"向后 {pager} 页",deprecationWarning:"你使用了一些已被废弃的用法,请参考 el-pagination 的官方文档"},dialog:{close:"关闭此对话框"},drawer:{close:"关闭此对话框"},messagebox:{title:"提示",confirm:"确定",cancel:"取消",error:"输入的数据不合法!",close:"关闭此对话框"},upload:{deleteTip:"按 Delete 键可删除",delete:"删除",preview:"查看图片",continue:"继续上传"},slider:{defaultLabel:"滑块介于 {min} 至 {max}",defaultRangeStartLabel:"选择起始值",defaultRangeEndLabel:"选择结束值"},table:{emptyText:"暂无数据",confirmFilter:"筛选",resetFilter:"重置",clearFilter:"全部",sumText:"合计"},tour:{next:"下一步",previous:"上一步",finish:"结束导览",close:"关闭此对话框"},tree:{emptyText:"暂无数据"},transfer:{noMatch:"无匹配数据",noData:"无数据",titles:["列表 1","列表 2"],filterPlaceholder:"请输入搜索内容",noCheckedFormat:"共 {total} 项",hasCheckedFormat:"已选 {checked}/{total} 项"},image:{error:"加载失败"},pageHeader:{title:"返回"},popconfirm:{confirmButtonText:"确定",cancelButtonText:"取消"},carousel:{leftArrow:"上一张幻灯片",rightArrow:"下一张幻灯片",indicator:"幻灯片切换至索引 {index}"}}};
2
+ //# sourceMappingURL=zh-cn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zh-cn.js","sources":["../../../../../../../../../../../../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.mjs"],"sourcesContent":["var zhCn = {\n name: \"zh-cn\",\n el: {\n breadcrumb: {\n label: \"\\u9762\\u5305\\u5C51\"\n },\n colorpicker: {\n confirm: \"\\u786E\\u5B9A\",\n clear: \"\\u6E05\\u7A7A\",\n defaultLabel: \"\\u989C\\u8272\\u9009\\u62E9\\u5668\",\n description: \"\\u5F53\\u524D\\u989C\\u8272 {color}\\uFF0C\\u6309 Enter \\u952E\\u9009\\u62E9\\u65B0\\u989C\\u8272\",\n alphaLabel: \"\\u9009\\u62E9\\u900F\\u660E\\u5EA6\\u7684\\u503C\",\n alphaDescription: \"\\u900F\\u660E\\u5EA6 {alpha}, \\u5F53\\u524D\\u989C\\u8272 {color}\",\n hueLabel: \"\\u9009\\u62E9\\u8272\\u76F8\\u503C\",\n hueDescription: \"\\u8272\\u76F8 {hue}, \\u5F53\\u524D\\u989C\\u8272 {color}\",\n svLabel: \"\\u9009\\u62E9\\u9971\\u548C\\u5EA6\\u4E0E\\u660E\\u5EA6\\u7684\\u503C\",\n svDescription: \"\\u9971\\u548C\\u5EA6 {saturation}, \\u660E\\u5EA6 {brightness}, \\u5F53\\u524D\\u989C\\u8272 {color}\",\n predefineDescription: \"\\u9009\\u62E9 {value} \\u4F5C\\u4E3A\\u989C\\u8272\"\n },\n datepicker: {\n now: \"\\u6B64\\u523B\",\n today: \"\\u4ECA\\u5929\",\n cancel: \"\\u53D6\\u6D88\",\n clear: \"\\u6E05\\u7A7A\",\n confirm: \"\\u786E\\u5B9A\",\n dateTablePrompt: \"\\u4F7F\\u7528\\u65B9\\u5411\\u952E\\u4E0E Enter \\u952E\\u53EF\\u9009\\u62E9\\u65E5\\u671F\",\n monthTablePrompt: \"\\u4F7F\\u7528\\u65B9\\u5411\\u952E\\u4E0E Enter \\u952E\\u53EF\\u9009\\u62E9\\u6708\\u4EFD\",\n yearTablePrompt: \"\\u4F7F\\u7528\\u65B9\\u5411\\u952E\\u4E0E Enter \\u952E\\u53EF\\u9009\\u62E9\\u5E74\\u4EFD\",\n selectedDate: \"\\u5DF2\\u9009\\u65E5\\u671F\",\n selectDate: \"\\u9009\\u62E9\\u65E5\\u671F\",\n selectTime: \"\\u9009\\u62E9\\u65F6\\u95F4\",\n startDate: \"\\u5F00\\u59CB\\u65E5\\u671F\",\n startTime: \"\\u5F00\\u59CB\\u65F6\\u95F4\",\n endDate: \"\\u7ED3\\u675F\\u65E5\\u671F\",\n endTime: \"\\u7ED3\\u675F\\u65F6\\u95F4\",\n prevYear: \"\\u524D\\u4E00\\u5E74\",\n nextYear: \"\\u540E\\u4E00\\u5E74\",\n prevMonth: \"\\u4E0A\\u4E2A\\u6708\",\n nextMonth: \"\\u4E0B\\u4E2A\\u6708\",\n year: \"\\u5E74\",\n month1: \"1 \\u6708\",\n month2: \"2 \\u6708\",\n month3: \"3 \\u6708\",\n month4: \"4 \\u6708\",\n month5: \"5 \\u6708\",\n month6: \"6 \\u6708\",\n month7: \"7 \\u6708\",\n month8: \"8 \\u6708\",\n month9: \"9 \\u6708\",\n month10: \"10 \\u6708\",\n month11: \"11 \\u6708\",\n month12: \"12 \\u6708\",\n weeks: {\n sun: \"\\u65E5\",\n mon: \"\\u4E00\",\n tue: \"\\u4E8C\",\n wed: \"\\u4E09\",\n thu: \"\\u56DB\",\n fri: \"\\u4E94\",\n sat: \"\\u516D\"\n },\n weeksFull: {\n sun: \"\\u661F\\u671F\\u65E5\",\n mon: \"\\u661F\\u671F\\u4E00\",\n tue: \"\\u661F\\u671F\\u4E8C\",\n wed: \"\\u661F\\u671F\\u4E09\",\n thu: \"\\u661F\\u671F\\u56DB\",\n fri: \"\\u661F\\u671F\\u4E94\",\n sat: \"\\u661F\\u671F\\u516D\"\n },\n months: {\n jan: \"\\u4E00\\u6708\",\n feb: \"\\u4E8C\\u6708\",\n mar: \"\\u4E09\\u6708\",\n apr: \"\\u56DB\\u6708\",\n may: \"\\u4E94\\u6708\",\n jun: \"\\u516D\\u6708\",\n jul: \"\\u4E03\\u6708\",\n aug: \"\\u516B\\u6708\",\n sep: \"\\u4E5D\\u6708\",\n oct: \"\\u5341\\u6708\",\n nov: \"\\u5341\\u4E00\\u6708\",\n dec: \"\\u5341\\u4E8C\\u6708\"\n }\n },\n inputNumber: {\n decrease: \"\\u51CF\\u5C11\\u6570\\u503C\",\n increase: \"\\u589E\\u52A0\\u6570\\u503C\"\n },\n select: {\n loading: \"\\u52A0\\u8F7D\\u4E2D\",\n noMatch: \"\\u65E0\\u5339\\u914D\\u6570\\u636E\",\n noData: \"\\u65E0\\u6570\\u636E\",\n placeholder: \"\\u8BF7\\u9009\\u62E9\"\n },\n mention: {\n loading: \"\\u52A0\\u8F7D\\u4E2D\"\n },\n dropdown: {\n toggleDropdown: \"\\u5207\\u6362\\u4E0B\\u62C9\\u9009\\u9879\"\n },\n cascader: {\n noMatch: \"\\u65E0\\u5339\\u914D\\u6570\\u636E\",\n loading: \"\\u52A0\\u8F7D\\u4E2D\",\n placeholder: \"\\u8BF7\\u9009\\u62E9\",\n noData: \"\\u6682\\u65E0\\u6570\\u636E\"\n },\n pagination: {\n goto: \"\\u524D\\u5F80\",\n pagesize: \"\\u6761/\\u9875\",\n total: \"\\u5171 {total} \\u6761\",\n pageClassifier: \"\\u9875\",\n page: \"\\u9875\",\n prev: \"\\u4E0A\\u4E00\\u9875\",\n next: \"\\u4E0B\\u4E00\\u9875\",\n currentPage: \"\\u7B2C {pager} \\u9875\",\n prevPages: \"\\u5411\\u524D {pager} \\u9875\",\n nextPages: \"\\u5411\\u540E {pager} \\u9875\",\n deprecationWarning: \"\\u4F60\\u4F7F\\u7528\\u4E86\\u4E00\\u4E9B\\u5DF2\\u88AB\\u5E9F\\u5F03\\u7684\\u7528\\u6CD5\\uFF0C\\u8BF7\\u53C2\\u8003 el-pagination \\u7684\\u5B98\\u65B9\\u6587\\u6863\"\n },\n dialog: {\n close: \"\\u5173\\u95ED\\u6B64\\u5BF9\\u8BDD\\u6846\"\n },\n drawer: {\n close: \"\\u5173\\u95ED\\u6B64\\u5BF9\\u8BDD\\u6846\"\n },\n messagebox: {\n title: \"\\u63D0\\u793A\",\n confirm: \"\\u786E\\u5B9A\",\n cancel: \"\\u53D6\\u6D88\",\n error: \"\\u8F93\\u5165\\u7684\\u6570\\u636E\\u4E0D\\u5408\\u6CD5!\",\n close: \"\\u5173\\u95ED\\u6B64\\u5BF9\\u8BDD\\u6846\"\n },\n upload: {\n deleteTip: \"\\u6309 Delete \\u952E\\u53EF\\u5220\\u9664\",\n delete: \"\\u5220\\u9664\",\n preview: \"\\u67E5\\u770B\\u56FE\\u7247\",\n continue: \"\\u7EE7\\u7EED\\u4E0A\\u4F20\"\n },\n slider: {\n defaultLabel: \"\\u6ED1\\u5757\\u4ECB\\u4E8E {min} \\u81F3 {max}\",\n defaultRangeStartLabel: \"\\u9009\\u62E9\\u8D77\\u59CB\\u503C\",\n defaultRangeEndLabel: \"\\u9009\\u62E9\\u7ED3\\u675F\\u503C\"\n },\n table: {\n emptyText: \"\\u6682\\u65E0\\u6570\\u636E\",\n confirmFilter: \"\\u7B5B\\u9009\",\n resetFilter: \"\\u91CD\\u7F6E\",\n clearFilter: \"\\u5168\\u90E8\",\n sumText: \"\\u5408\\u8BA1\"\n },\n tour: {\n next: \"\\u4E0B\\u4E00\\u6B65\",\n previous: \"\\u4E0A\\u4E00\\u6B65\",\n finish: \"\\u7ED3\\u675F\\u5BFC\\u89C8\",\n close: \"\\u5173\\u95ED\\u6B64\\u5BF9\\u8BDD\\u6846\"\n },\n tree: {\n emptyText: \"\\u6682\\u65E0\\u6570\\u636E\"\n },\n transfer: {\n noMatch: \"\\u65E0\\u5339\\u914D\\u6570\\u636E\",\n noData: \"\\u65E0\\u6570\\u636E\",\n titles: [\"\\u5217\\u8868 1\", \"\\u5217\\u8868 2\"],\n filterPlaceholder: \"\\u8BF7\\u8F93\\u5165\\u641C\\u7D22\\u5185\\u5BB9\",\n noCheckedFormat: \"\\u5171 {total} \\u9879\",\n hasCheckedFormat: \"\\u5DF2\\u9009 {checked}/{total} \\u9879\"\n },\n image: {\n error: \"\\u52A0\\u8F7D\\u5931\\u8D25\"\n },\n pageHeader: {\n title: \"\\u8FD4\\u56DE\"\n },\n popconfirm: {\n confirmButtonText: \"\\u786E\\u5B9A\",\n cancelButtonText: \"\\u53D6\\u6D88\"\n },\n carousel: {\n leftArrow: \"\\u4E0A\\u4E00\\u5F20\\u5E7B\\u706F\\u7247\",\n rightArrow: \"\\u4E0B\\u4E00\\u5F20\\u5E7B\\u706F\\u7247\",\n indicator: \"\\u5E7B\\u706F\\u7247\\u5207\\u6362\\u81F3\\u7D22\\u5F15 {index}\"\n }\n }\n};\n\nexport { zhCn as default };\n//# sourceMappingURL=zh-cn.mjs.map\n"],"names":["name","el","breadcrumb","label","colorpicker","confirm","clear","defaultLabel","description","alphaLabel","alphaDescription","hueLabel","hueDescription","svLabel","svDescription","predefineDescription","datepicker","now","today","cancel","dateTablePrompt","monthTablePrompt","yearTablePrompt","selectedDate","selectDate","selectTime","startDate","startTime","endDate","endTime","prevYear","nextYear","prevMonth","nextMonth","year","month1","month2","month3","month4","month5","month6","month7","month8","month9","month10","month11","month12","weeks","sun","mon","tue","wed","thu","fri","sat","weeksFull","months","jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec","inputNumber","decrease","increase","select","loading","noMatch","noData","placeholder","mention","dropdown","toggleDropdown","cascader","pagination","goto","pagesize","total","pageClassifier","page","prev","next","currentPage","prevPages","nextPages","deprecationWarning","dialog","close","drawer","messagebox","title","error","upload","deleteTip","delete","preview","continue","slider","defaultRangeStartLabel","defaultRangeEndLabel","table","emptyText","confirmFilter","resetFilter","clearFilter","sumText","tour","previous","finish","tree","transfer","titles","filterPlaceholder","noCheckedFormat","hasCheckedFormat","image","pageHeader","popconfirm","confirmButtonText","cancelButtonText","carousel","leftArrow","rightArrow","indicator"],"mappings":"4BAAW,CACTA,KAAM,QACNC,GAAI,CACFC,WAAY,CACVC,MAAO,OAETC,YAAa,CACXC,QAAS,KACTC,MAAO,KACPC,aAAc,QACdC,YAAa,8BACbC,WAAY,UACZC,iBAAkB,4BAClBC,SAAU,QACVC,eAAgB,yBAChBC,QAAS,aACTC,cAAe,kDACfC,qBAAsB,mBAExBC,WAAY,CACVC,IAAK,KACLC,MAAO,KACPC,OAAQ,KACRb,MAAO,KACPD,QAAS,KACTe,gBAAiB,sBACjBC,iBAAkB,sBAClBC,gBAAiB,sBACjBC,aAAc,OACdC,WAAY,OACZC,WAAY,OACZC,UAAW,OACXC,UAAW,OACXC,QAAS,OACTC,QAAS,OACTC,SAAU,MACVC,SAAU,MACVC,UAAW,MACXC,UAAW,MACXC,KAAM,IACNC,OAAQ,MACRC,OAAQ,MACRC,OAAQ,MACRC,OAAQ,MACRC,OAAQ,MACRC,OAAQ,MACRC,OAAQ,MACRC,OAAQ,MACRC,OAAQ,MACRC,QAAS,OACTC,QAAS,OACTC,QAAS,OACTC,MAAO,CACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,KAEPC,UAAW,CACTP,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,OAEPE,OAAQ,CACNC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,QAGTC,YAAa,CACXC,SAAU,OACVC,SAAU,QAEZC,OAAQ,CACNC,QAAS,MACTC,QAAS,QACTC,OAAQ,MACRC,YAAa,OAEfC,QAAS,CACPJ,QAAS,OAEXK,SAAU,CACRC,eAAgB,UAElBC,SAAU,CACRN,QAAS,QACTD,QAAS,MACTG,YAAa,MACbD,OAAQ,QAEVM,WAAY,CACVC,KAAM,KACNC,SAAU,MACVC,MAAO,cACPC,eAAgB,IAChBC,KAAM,IACNC,KAAM,MACNC,KAAM,MACNC,YAAa,cACbC,UAAW,eACXC,UAAW,eACXC,mBAAoB,yCAEtBC,OAAQ,CACNC,MAAO,UAETC,OAAQ,CACND,MAAO,UAETE,WAAY,CACVC,MAAO,KACP5F,QAAS,KACTc,OAAQ,KACR+E,MAAO,YACPJ,MAAO,UAETK,OAAQ,CACNC,UAAW,gBACXC,OAAQ,KACRC,QAAS,OACTC,SAAU,QAEZC,OAAQ,CACNjG,aAAc,qBACdkG,uBAAwB,QACxBC,qBAAsB,SAExBC,MAAO,CACLC,UAAW,OACXC,cAAe,KACfC,YAAa,KACbC,YAAa,KACbC,QAAS,MAEXC,KAAM,CACJzB,KAAM,MACN0B,SAAU,MACVC,OAAQ,OACRrB,MAAO,UAETsB,KAAM,CACJR,UAAW,QAEbS,SAAU,CACR3C,QAAS,QACTC,OAAQ,MACR2C,OAAQ,CAAC,OAAkB,QAC3BC,kBAAmB,UACnBC,gBAAiB,cACjBC,iBAAkB,0BAEpBC,MAAO,CACLxB,MAAO,QAETyB,WAAY,CACV1B,MAAO,MAET2B,WAAY,CACVC,kBAAmB,KACnBC,iBAAkB,MAEpBC,SAAU,CACRC,UAAW,SACXC,WAAY,SACZC,UAAW","x_google_ignoreList":[0]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-provider.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}