{"version":3,"file":"Param.vue2.mjs","sources":["../../../../../../packages/components/param/src/Param.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToParam'\n});\n</script>\n<template>\n\t<div ref=\"paramRef\" :flex=\"flex ? flex : null\" class=\"to-param\" :class=\"setClass\">\n\t\t<div class=\"to-param-list\">\n\t\t\t<template v-for=\"(item, index) in rowData\" :key=\"index\">\n\t\t\t\t<ParamItem :label=\"item.label\" :value=\"item.value\" :class=\"[item.merge ? 'merge-' + item.merge : '']\" :tip=\"tip ? item.value : ''\" :label-width=\"labelWidth\" :wrap=\"item.wrap\">\n\t\t\t\t\t<template #label>\n\t\t\t\t\t\t<slot name=\"label\" :label=\"item.label\" :value=\"item.value\"></slot>\n\t\t\t\t\t</template>\n\t\t\t\t\t<slot :name=\"item.label\" :value=\"item.value\"></slot>\n\t\t\t\t</ParamItem>\n\t\t\t\t<div v-if=\"index < rowData.length - 1\" class=\"to-param-divider\"></div>\n\t\t\t</template>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch, onMounted, onBeforeUnmount, provide } from 'vue'\nimport { paramProps } from './param'\nimport ParamItem from './ParamItem.vue'\n\n\n\nconst props = defineProps(paramProps)\nconst rowData = ref<any[]>([])\nconst labelWidth = ref<string>(String(props.labelWidth))\nconst paramItems = ref<any[]>([])\n\n// 提供给 ParamItem 组件的注册方法\nconst registerParamItem = (item: any) => {\n\tparamItems.value.push(item)\n}\n\n// 提供给 ParamItem 组件的注销方法\nconst unregisterParamItem = (item: any) => {\n\tconst index = paramItems.value.indexOf(item)\n\tif (index !== -1) {\n\t\tparamItems.value.splice(index, 1)\n\t}\n}\n\nconst getLabelWidth = () => {\n\treturn labelWidth.value\n}\n\n// 提供给子组件\nprovide('toParamContext', {\n\tregisterParamItem,\n\tunregisterParamItem,\n\tgetLabelWidth\n})\n\n// 计算属性\nconst setClass = computed(() => {\n\tconst arr = [props.col ? 'col-' + props.col : '', props.avg ? 'is-avg' : '', props.wrap ? 'is-wrap' : '']\n\tif (props.dir === 'v') {\n\t\tarr.push('dir-v')\n\t}\n\tif (props.dir === 'vo') {\n\t\tarr.push('dir-vo')\n\t}\n\tif (props.align) {\n\t\tarr.push(`align-${props.align}`)\n\t}\n\tif (props.mode) {\n\t\tarr.push(`mode-${props.mode}`)\n\t}\n\tif (props.type === 'v') {\n\t\tarr.push('dir-v')\n\t\tarr.push('align-center')\n\t\tarr.push('col-avg')\n\t}\n\tif (props.type === 'vo') {\n\t\tarr.push('dir-vo')\n\t\tarr.push('align-center')\n\t\tarr.push('col-avg')\n\t}\n\n\treturn arr\n})\n\n// 修改getRowData方法，支持处理字符串格式的数据\nconst getRowData = () => {\n\trowData.value = []\n\n\t// 如果data是字符串格式，则转换为数组格式\n\tif (typeof props.data === 'string') {\n\t\tconst items = props.data.split(';').filter(item => item.trim() !== '')\n\t\trowData.value = items.map(item => {\n\t\t\tconst [label, value] = item.split(':')\n\t\t\treturn {\n\t\t\t\tlabel: label ? label.trim() : '',\n\t\t\t\tvalue: value ? value.trim() : ''\n\t\t\t}\n\t\t})\n\t}\n\n\t// 如果data是数组格式，则直接使用\n\telse if (Array.isArray(props.data)) {\n\t\trowData.value = [...props.data]\n\t}\n}\n\nwatch(\n\t() => props.data,\n\t() => {\n\t\tif (props.data) {\n\t\t\tgetRowData()\n\t\t}\n\t},\n\t{ deep: true, immediate: true }\n)\n\n// 计算最长label宽度的方法\nconst adjustLabelWidth = () => {\n\trequestAnimationFrame(() => {\n\t\tlet maxWidth = 0\n\t\tparamItems.value.forEach(item => {\n\t\t\tif (item.vnode?.el?.querySelector('.label span')) {\n\t\t\t\tconst labelSpan = item.vnode.el.querySelector('.label span')\n\t\t\t\tconst labelWidth = labelSpan.getBoundingClientRect().width\n\t\t\t\tif (maxWidth < labelWidth) {\n\t\t\t\t\tmaxWidth = labelWidth\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\t// 直接设置width值，避免多次DOM操作\n\t\tlabelWidth.value = maxWidth + 20 + 'px'\n\t})\n}\n\n// 监听labelWidth变化\nwatch(\n\t() => props.labelWidth,\n\tnewVal => {\n\t\tlabelWidth.value = String(newVal)\n\t\tif (newVal === 'compute') {\n\t\t\tadjustLabelWidth()\n\t\t}\n\t}\n)\n\n// 创建一个ref引用，用于获取组件根元素\nconst paramRef = ref(null)\n\n// 使用ResizeObserver监听元素大小变化\nlet resizeObserver = null\n\nonMounted(() => {\n\tif (props.labelWidth === 'compute') {\n\t\t// 创建ResizeObserver实例\n\t\tresizeObserver = new ResizeObserver(() => {\n\t\t\tadjustLabelWidth()\n\t\t})\n\n\t\t// 观察组件根元素\n\t\tif (paramRef.value) {\n\t\t\tresizeObserver.observe(paramRef.value)\n\t\t}\n\n\t\t// 初始计算\n\t\tadjustLabelWidth()\n\t}\n})\n\nonBeforeUnmount(() => {\n\t// 清理ResizeObserver\n\tif (resizeObserver) {\n\t\tresizeObserver.disconnect()\n\t\tresizeObserver = null\n\t}\n})\n\ndefineExpose({\n\tgetLabelWidth\n})\n</script>\n"],"names":["DO_defineComponent","labelWidth","_createElementBlock","flex","_normalizeClass","_createElementVNode","_openBlock","_Fragment","_renderList","_createVNode","tip","_renderSlot"],"mappings":"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"}