{"version":3,"file":"BmIw-AMO-legacy.js","sources":["../../../../components/visualizations/diagrams/default/index.ts","../../../../components/visualizations/diagrams/default/src/utils.ts","../../../../components/visualizations/diagrams/default/index.vue","../../../../components/visualizations/diagrams/default/src/composable.ts"],"sourcesContent":["//* 按需导入插件\nimport type { ExtractPropTypes, PropType } from \"vue\";\n\nexport interface DiagramsOption {\n //* 数据Key\n \"key\": string;\n //* 表头名称\n \"name\": string;\n //* 插槽名称,未设置默认为key\n \"slot\"?: string;\n //* 列固定\n \"fixed\"?: boolean;\n //* 对齐方式\n \"align\"?: \"left\" | \"center\" | \"singularity\";\n //* 尺寸控制配置\n \"width\"?: number;\n //* 单元格合并规则\n \"merge\"?: (datas: any[], data: any, index: number) => { colspan?: number; rowspan?: number };\n //* 控制器\n \"control\"?: \"sort\" | \"advanced\";\n //* 反向排序\n \"reverse\"?: boolean;\n //* 备注内容\n \"explain\"?: string;\n //* 备注内容宽度\n \"explain-width\"?: number;\n //* 嵌套表头\n \"children\"?: DiagramsOption[];\n //* 内置类名\n \"className\"?: string;\n //* 检索候选项(仅control='advanced'生效)\n \"selectors\"?: { src?: string; name: string; value: string | number }[];\n}\n\nexport interface DiagramsHeadOption extends DiagramsOption {\n rowspan: number;\n colspan: number;\n}\n\nexport const DiagramsPropsOption = {\n //* 表格数据源\n data: { type: Array as PropType, required: true },\n //* 数据空提示语\n empty: { type: String },\n //* 表格最小宽度宽度\n width: { type: Number },\n //* 表格配置项\n option: { type: Array as PropType, required: true },\n //* 表头检索器\n searchHeader: { type: Boolean, default: false },\n //* 外置class\n externalTrAttrs: { type: Function as PropType<(datas: any[], data: any, index: number) => { [name: string]: string }> },\n} as const;\n\nexport type DiagramsProps = ExtractPropTypes;\n//* 表格响应事件\nexport const DiagramsEmits = {\n advanced: (_result: {\n sort?: { key: string; value: string };\n search?: { [name: string]: string };\n checkboxs?: { key: string; value: any[] }[];\n }) => true, //* 高级检索\n};\n","//* 组件属性\nimport type { DiagramsOption, DiagramsHeadOption } from \"../index\";\n\n//* 对照表\nexport const contrast = [\"\", \"asc\", \"desc\"];\n\n//* 获取表头的最大行数\nexport const get_row_number = (data: DiagramsOption[]): number => {\n //* 数据初始化\n const result = { number: 0 };\n //* 递归统计最大行数\n data?.forEach((value) => {\n let number = 1;\n if (value.children?.length) {\n number += get_row_number(value.children);\n }\n\n if (number > result.number) {\n result.number = number;\n }\n });\n\n return result.number;\n};\n\n//* 获取表格列偏移\nexport const get_row_offset = (key: string, option: DiagramsOption[]) => {\n //* 数据初始化\n let result = 0;\n //* 循环统计数据\n for (let i = 0; i < option.length; i++) {\n if (option[i].key == key) return result;\n else {\n result += option[i].width || 200;\n }\n }\n\n return result;\n};\n\n//* 获取表格配置项\nexport const get_row_options = (data: DiagramsOption[]) => {\n //* 数据初始化\n const result: DiagramsOption[] = [];\n //* 循环展开数据\n data.forEach((value) => {\n if (value.children && value.children.length) {\n result.push(...get_row_options(value.children));\n } else {\n result.push(value);\n }\n });\n\n //* 返回\n return result;\n};\n\n//* 获取表格配置项\nexport const get_row_header_options = (data: DiagramsOption[], number: number, deep: number) => {\n //* 数据初始化\n const rows: DiagramsHeadOption[] = [];\n const result: DiagramsHeadOption[][] = [];\n const children: DiagramsOption[] = [];\n\n //* 循环展开数据\n data.forEach((value) => {\n if (value.children && value.children.length) {\n children.push(...value.children);\n rows.push({ ...value, rowspan: 1, colspan: value.children.length });\n } else {\n rows.push({ ...value, rowspan: number - deep, colspan: 1 });\n }\n });\n\n //* 数据更新\n result.push(rows);\n\n //* 检测是否退出递归\n if (number == deep - 1 || children.length <= 0) {\n return result;\n } else {\n //* 数据更新\n result.push(...get_row_header_options(children, number, ++deep));\n //* 返回\n return result;\n }\n};\n\n//* 获取排序结果\nexport const get_sort_result = (index: number) => {\n if (index < 0) return contrast.slice(index)[0];\n else if (index >= contrast.length) return contrast[0];\n else {\n return contrast[index];\n }\n};\n\n//* 获取key对应的配置\nexport const get_key_option = (key: string, data: DiagramsHeadOption[][]) => {\n for (let colspan = 0; colspan < data.length; colspan++) {\n for (let row = 0; row < data[colspan].length; row++) {\n if (data[colspan][row].key == key) {\n return data[colspan][row];\n }\n }\n }\n\n return;\n};\n","\n\n\n","//* Vue\nimport type { SetupContext } from \"vue\";\n//* 组件属性\nimport type { DiagramsEmits, DiagramsProps, DiagramsOption } from \"../index\";\nimport { contrast, get_key_option, get_sort_result, get_row_number, get_row_offset, get_row_options, get_row_header_options } from \"./utils\";\n//* 样式\nimport css from \"../index.module.less\";\nimport css_normalize from \"@/assets/style/src/index.module.less\";\n\n//* 组合函数\nexport const useComposable = (define: DiagramsProps, emits: SetupContext[\"emit\"]) => {\n //* 静态属性\n const vars: { observer?: ResizeObserver; timer?: NodeJS.Timeout } = {};\n\n //* 响应式属性\n const refs = {\n mask: ref(false),\n sort: reactive({ key: \"\", value: \"\" }),\n search: reactive<{ [name: string]: string }>({}),\n checkbox: reactive<{ [name: string]: any[] }>({}),\n checkboxs: reactive<{ [name: string]: boolean }>({}),\n };\n\n //* 节点\n const nodes = {\n container: ref(),\n };\n\n //* 计算属性\n const computeds = {\n rows: computed(() => get_row_options(define.option) || []),\n colspans: computed(() => get_row_header_options(define.option, get_row_number(define.option), 0) || []),\n };\n\n //* 工具函数\n const utils = {\n //* 表格样式\n rows: (option: DiagramsOption): any => {\n if (!option.fixed)\n return { class: option.className, style: option.align == \"left\" ? { \"text-align\": \"left\" } : { \"text-align\": \"center\" } };\n else {\n //* 数据初始化\n const result = {\n class: [css.fixed, option.className],\n style: {\n \"left\": get_row_offset(option.key, computeds.rows.value || []) + \"px\",\n \"text-align\": option.align == \"left\" ? \"left\" : \"center\",\n },\n };\n\n //* 检测是否最后一个,增加遮罩\n if (computeds.rows.value.filter((value) => value.fixed)?.slice(-1)[0]?.key == option.key) {\n result.class.push(css.mask);\n }\n\n return result;\n }\n },\n\n //* 单元格尺寸\n size: (option: DiagramsOption) => {\n if (!option.width) return;\n else {\n return { width: `${option.width}px` };\n }\n },\n\n //* 单元格样式\n column: (data: any, index: number, option: DiagramsOption) => {\n //* 数据初始化\n const result = { rowspan: 1, colspan: 1 };\n const merges = option.merge?.(define.data, data, index) || {};\n if (Number(merges.rowspan) >= 0) result.rowspan = merges.rowspan || 0;\n if (Number(merges.colspan) >= 0) {\n result.colspan = merges.colspan || 0;\n }\n\n return Object.assign(result, utils.rows(option));\n },\n\n //* 页面滚动处理函数\n scroll: () => {\n if (!nodes.container.value) return;\n else {\n refs.mask.value = nodes.container.value.scrollLeft > 0;\n }\n },\n\n //* 尺寸变更处理函数\n resize: () => {\n //* 重置尺寸\n vars.timer && clearTimeout(vars.timer);\n vars.timer = setTimeout(() => {\n if (!nodes.container.value) return;\n else {\n // nodes.container.value.style.whiteSpace = \"nowrap\";\n nodes.container.value?.querySelectorAll(`.${css.column}`)?.forEach((node) => ((node as HTMLDivElement).style.width = \"auto\"));\n requestAnimationFrame(() => {\n computeds.rows.value?.forEach((row) => {\n if (row.align != \"singularity\") return;\n else {\n const result = { size: 0 };\n const columns = nodes.container.value?.querySelectorAll(`.${css.column}[data-key=\"${row.key}\"]`);\n columns?.forEach((column) => {\n result.size = Math.max(result.size, (column as HTMLDivElement).offsetWidth);\n });\n\n columns?.forEach((column) => {\n const col = column as HTMLDivElement;\n if (!col.getAttribute(\"data-thead\")) col.style.width = result.size + 1 + \"px\";\n });\n }\n });\n });\n }\n }, 10);\n },\n };\n\n //* 函数列表\n const methods = {\n //* 初始化\n init: () => {\n //* singularity对齐函数\n if (vars.observer) utils.resize();\n //* 检测是否生成选择器数据\n computeds.colspans.value.forEach((colspan) => {\n colspan.forEach((row) => {\n if (!refs.checkboxs[row.key]) {\n refs.checkbox[row.key] = [];\n refs.checkboxs[row.key] = false;\n }\n });\n });\n },\n\n //* 排序\n sort: (key: string, reverse?: boolean, value?: \"\" | \"asc\" | \"desc\") => {\n switch (value) {\n case \"\":\n case \"asc\":\n case \"desc\": {\n refs.sort.value = key;\n refs.sort.value = value;\n return;\n }\n\n default: {\n //* 数据初始化\n const direction = reverse ? -1 : 1;\n const index = contrast.findIndex((value) => value == refs.sort.value);\n //* 检测是否切换排序\n if (refs.sort.key != key) {\n refs.sort.key = key;\n refs.sort.value = get_sort_result(direction);\n break;\n }\n\n //* 检测排序类型\n const result = get_sort_result(index + direction);\n if (result) refs.sort.value = result;\n else {\n refs.sort.key = \"\";\n refs.sort.value = \"\";\n }\n\n break;\n }\n }\n\n return emits(\"advanced\", { sort: refs.sort, search: refs.search });\n },\n\n //* 检索\n search: () => {\n return emits(\"advanced\", { sort: refs.sort, search: refs.search });\n },\n\n //* 单选\n checkbox: (key: string, value?: string) => {\n //* 数据增删\n if (!refs.checkbox[key]) return;\n else if (value) {\n if (refs.checkbox[key].includes(value)) refs.checkbox[key] = refs.checkbox[key].filter((v) => v != value);\n else {\n refs.checkbox[key].push(value);\n }\n }\n\n //* 数据初始化\n const option = get_key_option(key, computeds.colspans.value)?.selectors || [];\n const result = { status: true, data: <{ key: string; value: any[] }[]>[] };\n for (let i = 0; i < option?.length; i++) {\n if (!refs.checkbox[key].includes(option[i].value)) {\n result.status = false;\n break;\n }\n }\n\n //* 数据更新\n refs.checkboxs[key] = result.status;\n //* 检索结果统计\n for (const i in refs.checkbox) {\n if (refs.checkbox[i].length) result.data.push({ key: i, value: refs.checkbox[i] });\n }\n\n return emits(\"advanced\", { checkboxs: result.data });\n },\n\n //* 全选\n checkboxs: (key: string, value?: boolean) => {\n //* 数据更新\n if (typeof value == \"boolean\") refs.checkboxs[key] = value;\n if (refs.checkboxs[key]) {\n refs.checkbox[key] = get_key_option(key, computeds.colspans.value)?.selectors?.map((value) => value.value) || [];\n } else {\n refs.checkbox[key] = [];\n }\n\n //* 检索结果统计\n const result: { key: string; value: any[] }[] = [];\n for (const i in refs.checkbox) {\n if (refs.checkbox[i].length) result.push({ key: i, value: refs.checkbox[i] });\n }\n\n return emits(\"advanced\", { checkboxs: result });\n },\n };\n\n //* 侦听器\n const watchs = {\n colspans: watch(computeds.colspans, methods.init, { immediate: true }),\n };\n\n //* 动态属性\n const binds = reactive({\n checkboxs: computed(() => {\n return { class: css_normalize.checkbox, value: \"all\" };\n }),\n });\n\n return { vars, refs, nodes, utils, binds, watchs, methods, computeds };\n};\n"],"names":["DiagramsPropsOption","data","type","Array","required","empty","String","width","Number","option","searchHeader","Boolean","default","externalTrAttrs","Function","contrast","get_row_number","result","number","forEach","value","_value$children","children","length","get_row_offset","key","i","get_row_options","push","apply","_toConsumableArray","get_row_header_options","deep","rows","_objectSpread","rowspan","colspan","get_sort_result","index","slice","get_key_option","row","advanced","_result","slots","_useSlots","define","__props","_useComposable","emits","vars","refs","mask","ref","sort","reactive","search","checkbox","checkboxs","nodes","container","computeds","computed","colspans","utils","fixed","_computeds$rows$value","class","css","className","style","left","align","filter","size","concat","column","_option$merge","merges","merge","call","Object","assign","scroll","scrollLeft","resize","timer","clearTimeout","setTimeout","_nodes$container$valu","querySelectorAll","node","requestAnimationFrame","_computeds$rows$value2","_nodes$container$valu2","columns","Math","max","offsetWidth","col","getAttribute","methods","init","observer","reverse","direction","findIndex","_get_key_option","includes","v","selectors","status","_get_key_option2","map","watchs","watch","immediate","binds","css_normalize","useComposable","__emit","onMounted","_container$value","addEventListener","ResizeObserver","observe","onBeforeUnmount","_vars$observer","_container$value2","disconnect","removeEventListener","__expose","renderContent","defineComponent","render","renderBody","_define$externalTrAtt","_createVNode2","renderCell","_slots$row$slot","_slots$row$key","slot","bodys","renderBodys"],"mappings":"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"}