@core-pilot/client-vue 0.0.2 → 0.0.3

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.
@@ -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 },\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 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 },\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 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 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 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 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 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 },\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","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","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} 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@core-pilot/client-vue",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/es/index.js",
6
6
  "browser": "dist/umd/index.js",