{"version":3,"file":"DYMlO2LX.js","sources":["../../../../components/visualizations/diagrams/search-diagram/src/index.ts","../../../../components/visualizations/diagrams/search-diagram/src/composable.ts","../../../../components/visualizations/diagrams/search-diagram/index.vue","../../../../views/search/components/navigations/src/composable.ts","../../../../views/search/components/navigations/index.vue"],"sourcesContent":["//* 组件库\nimport type { UiTableOption2 } from \"various-ui\";\n\nexport interface SearchDiagramVars {\n replenish: number;\n size: number;\n data: { key: string; min: number; max: number; width: number; replenish: boolean }[];\n}\n\nexport interface SearchDiagramHover {\n \"spacing\"?: number;\n \"box-shadow\"?: number;\n}\n\nexport const SearchDiagramPropsOption = {\n //* 表格数据源\n data: { type: Array as PropType, required: true },\n //* 表格激活状态配置\n hover: { type: Object as PropType },\n //* 表格配置项\n option: { type: Array as PropType, required: true },\n //* 表格无数据时的提示文本\n placeholder: { type: String, default: \"Please input\" },\n //* mode\n mode: { type: String },\n} as const;\n\nexport type SearchDiagramProps = ExtractPropTypes;\nexport const SearchDiagramEmits = {\n sort: (_key: string, _sort: string) => true,\n click: (_data: any) => true,\n};\n","//* 按需导入插件\nimport { gsap } from \"gsap\";\nimport type { SetupContext } from \"vue\";\n//* 组件库\nimport type { UiTableOption2 } from \"various-ui\";\n//* 组件属性\nimport type { SearchDiagramVars, SearchDiagramProps, SearchDiagramEmits } from \"./index\";\n//* 样式(module)\nimport css from \"../style/index.module.less\";\n\nexport const useComposable = (define: SearchDiagramProps, emits: SetupContext[\"emit\"]) => {\n //* 响应式变量\n const refs = {\n sortKey: ref(\"\"),\n sortValue: ref(\"\"),\n };\n\n //* 静态变量\n const variable = {\n size: shallowRef(),\n observer: shallowRef(),\n };\n\n //* 节点\n const nodes = {\n main: ref(),\n };\n\n //* 函数列表\n const methods = {\n //* 初始化\n init: () => {\n //* 检索表头对象与表格内容对象\n const header = nodes.main.value?.querySelector(`.${css.header}`) as HTMLElement;\n const bodys = nodes.main.value?.querySelector(`.${css.bodys}`) as HTMLElement;\n //* 检测是否存在表头对象与表格内容对象\n if (!header || !bodys) return;\n\n //* 数据初始化\n const body = bodys.querySelectorAll(`.${css.body}`) as NodeListOf;\n const rows = [header, ...body];\n const vars = {\n replenish: 0,\n size: Math.floor(header.clientWidth) - 4, //* 这里-4是预留宽度,用于解决因小数点计算导致的尺寸偏差\n data: [],\n };\n\n //* 容器宽度不足, 停止初始化\n if (vars.size <= 0) return;\n\n //* 第一次遍历进行数据初始化\n define.option.forEach((value) => {\n //* 数据初始化\n const result = {\n key: value.key,\n min: value[\"min-width\"] || 0,\n max: value[\"max-width\"] || 0,\n width: value.width || value[\"min-width\"] || 0,\n replenish: !value.width,\n };\n\n //* 遍历td、th用于获取row尺寸\n if (!value.width) {\n rows.forEach((row) => {\n //* 获取对应的col node\n const node = row.querySelector(`.${css.column}[d-name=${value.key}]`) as HTMLElement;\n const context = node?.firstElementChild as HTMLElement;\n //* 检测col node是否存在\n if (!node) return;\n else {\n //* 重置node属性\n node.style.whiteSpace = \"nowrap\";\n node.style.width = \"\";\n if (context) {\n context.style.width = \"\";\n }\n\n //* 判断当前尺寸是否为最大尺寸\n if (node.clientWidth > result.width) {\n if (result.max && node.clientWidth > result.max) {\n result.width = result.max;\n } else {\n result.width = Math.ceil(node.clientWidth) + 4;\n }\n }\n\n //* 回退样式调整\n node.style.whiteSpace = \"\";\n }\n });\n }\n\n //* 数据添加\n vars.data.push(result);\n });\n\n //* 统计实际表格所需尺寸\n const real = vars.data.reduce((former, current) => {\n return former + current.width;\n }, 0);\n\n //* 第二次遍历, 检测当前表格是需要进行补足还是删减尺寸, 并进行对应操作\n vars.replenish = vars.size - real;\n while (Math.floor(Math.abs(vars.replenish)) != 0) {\n //* 初始化允许增减长度的数据列表\n const data = vars.data.filter((val) => {\n return val.replenish && (vars.replenish > 0 ? !val.max || val.width < val.max : !val.min || val.width > val.min);\n });\n\n //* 当不存在允许增减长度的数据列表时退出...\n if (!data.length || vars.replenish / data.length == 0) break;\n\n //* 增减尺寸...\n if (vars.replenish > 0) {\n //* 补充尺寸(平均分配)\n const replenish = vars.replenish / data.length;\n data.forEach((value) => {\n if (value.max && value.width + replenish > value.max) {\n vars.replenish -= value.max - value.width;\n value.width = value.max;\n } else {\n value.width += replenish;\n vars.replenish -= replenish;\n }\n });\n } else if (vars.replenish < 0) {\n //* 删减尺寸(优先删减最长的尺寸)\n //* 获取data中最大的尺寸\n const max = data.sort((a, b) => b.width - a.width)?.[0]?.width || 0;\n for (let i = 0; i < data.length; i++) {\n if (vars.replenish == 0) break;\n if (data[i].width == max && data[i].width > data[i].min) {\n //* 当width与min之间的距离小于1时:特殊处理\n if (data[i].min && data[i].width - 1 < data[i].min) {\n vars.replenish += data[i].width - data[i].min;\n data[i].width = data[i].min;\n } else {\n vars.replenish += 1;\n data[i].width -= 1;\n }\n }\n }\n }\n }\n\n //* 第三次遍历设置定框的Row\n vars.data.forEach((value) => {\n //* 遍历td、th用于获取row尺寸\n rows.forEach((row) => {\n //* 获取对应的col node\n const node = row.querySelector(`.${css.column}[d-name=${value.key}]`) as HTMLElement;\n //* 检测col node是否存在\n if (!node) return;\n else {\n //* 设置尺寸\n node.style.width = value.width + \"px\";\n }\n });\n });\n\n //* 第四次遍历设置特殊对齐模式\n define.option\n .filter((value) => value.align == \"singularity\")\n .forEach((value) => {\n //* 数据初始化\n let result = 0;\n //* 统计列宽度的最大值\n body.forEach((row) => {\n const node = row.querySelector(`.${css.column}[d-name=${value.key}] > div`) as HTMLElement;\n if (!node) return;\n else {\n result = Math.max(result, node.offsetWidth);\n }\n });\n\n //* 设置列宽\n body.forEach((row) => {\n const node = row.querySelector(`.${css.column}[d-name=${value.key}] > div`) as HTMLElement;\n if (!node || node?.offsetWidth >= result) return;\n else {\n node.style.width = result + \"px\";\n }\n });\n });\n },\n\n //* 清空状态\n clear: () => {\n refs.sortKey.value = \"\";\n refs.sortValue.value = \"\";\n },\n\n //* 排序切换\n switchSort: (row: UiTableOption2) => {\n //* 切换已排序字段时的处理, 其余都为切换未排序字段\n if (refs.sortKey.value == row.key) {\n //* 排序为升序时, 切换为降序, 其余都为取消排序\n if (refs.sortValue.value == \"asc\") {\n refs.sortValue.value = \"desc\";\n } else {\n refs.sortKey.value = \"\";\n refs.sortValue.value = \"\";\n }\n } else {\n refs.sortKey.value = row.key;\n refs.sortValue.value = \"asc\";\n }\n\n //* 响应排序事件\n emits(\"sort\", refs.sortKey.value, refs.sortValue.value);\n },\n };\n\n //* 动画函数\n const animation = {\n //* 离场动画\n aniLeave: (index: number) => {\n const bodys = nodes.main.value?.querySelectorAll(`.${css.body}`) || [];\n if (bodys[index]) {\n bodys[index].classList.remove(\"active\");\n gsap.set(bodys[index], { zIndex: 1 });\n gsap.to(bodys[index], {\n duration: 0.5,\n boxShadow: \"0px 8px 20px 0px transparent\",\n padding: 0,\n margin: 0,\n onComplete: () => {\n gsap.set(bodys[index], { zIndex: \"auto\" });\n },\n });\n }\n },\n\n //* 入场动画\n aniEnter: (index: number) => {\n const bodys = nodes.main.value?.querySelectorAll(`.${css.body}`) || [];\n if (bodys[index]) {\n bodys[index].classList.add(\"active\");\n gsap.set(bodys[index], { zIndex: 2 });\n gsap.to(bodys[index], {\n duration: 0.5,\n boxShadow: define.hover?.[\"box-shadow\"] || \"0px 8px 20px 0px rgba(114, 41, 157, 0.08)\",\n padding: `0 ${define.hover?.spacing || 40}px`,\n margin: `0 -${define.hover?.spacing || 40}px`,\n onComplete: () => {\n gsap.set(bodys[index], { zIndex: 1 });\n },\n });\n }\n },\n };\n\n return { refs, nodes, methods, variable, animation };\n};\n","\n\n\n","//* 工具函数\nimport { Formats } from \"@/assets/js\";\n\nexport const useComposable = () => {\n //* 插件\n const route = useRoute();\n\n //* 响应式变量\n const refs = {\n mode: ref(\"\"),\n keyword: ref(Formats.query(route.query.keyword)),\n };\n\n //* 配置项\n const options = {\n mode: <{ [name: string]: string }>{\n gene: \"Gene\",\n model: \"Model\",\n disease: \"Disease\",\n mutation: \"Mutation\",\n },\n };\n\n //* 函数列表\n const methods = {\n init: () => {\n //* 根据路由初始化搜索框类型\n const routeName = route.meta?.route;\n if (routeName == \"SearchGene\") refs.mode.value = \"gene\";\n else if (routeName == \"SearchModel\") refs.mode.value = \"model\";\n else if (routeName == \"SearchDisease\") refs.mode.value = \"disease\";\n else if (routeName == \"SearchMutation\") refs.mode.value = \"mutation\";\n else {\n refs.mode.value = \"\";\n }\n },\n\n next: (context: string, mode: string, id?: string) => {\n //* 数据初始化\n const keyword = context?.trim();\n //* 检测是否存在关键词\n if (!keyword) return;\n //* 有返回id和类型 直接跳转到详情页\n if (!mode) routerPush({ name: \"Search\", query: { keyword: keyword, date: new Date().getTime() } });\n else {\n if (id) routerPush({ name: options.mode[mode], params: { id: id } });\n else {\n routerPush({ name: \"Search\" + options.mode[mode], query: { keyword: keyword, date: new Date().getTime() } });\n }\n }\n },\n };\n\n //* 计算属性\n const computeds = {\n href: computed(() => {\n return {\n name: \"Search\",\n query: {\n keyword: Formats.query(route.query.keyword),\n },\n };\n }),\n };\n\n return { refs, methods, computeds };\n};\n","\n\n\n"],"names":["SearchDiagramPropsOption","SearchDiagramEmits","_key","_sort","_data","useComposable","define","emits","refs","ref","variable","shallowRef","nodes","header","_a","css","bodys","_b","body","rows","vars","value","result","row","node","context","real","former","current","data","val","replenish","max","_d","_c","a","b","i","index","gsap","__props","__emit","slots","_useSlots","methods","animation","main","clear","switchSort","aniEnter","aniLeave","onUpdated","init","onMounted","observer","disconnect","ResizeObserver","size","offsetWidth","observe","onBeforeUnmount","__expose","renderHeader","defineComponent","render","renderHeaderColumn","column","renderRowContext","_createVNode2","slot","name","renderRowSort","sort","sortValue","sortKey","key","onClick","align","option","map","renderContent","renderBodys","length","renderBody","placeholder","Object","assign","mode","onMousemove","onMouseleave","renderColumn","route","useRoute","Formats.query","options","routeName","id","keyword","routerPush","computeds","computed","href"],"mappings":"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"}