UNPKG

tav-ui

Version:
1 lines 4.12 kB
{"version":3,"file":"useTableExpand2.mjs","sources":["../../../../../../../../packages/components/table/src/hooks/useTableExpand.ts"],"sourcesContent":["import { computed, ref, toRaw, unref } from 'vue'\nimport { ROW_KEY } from '../const'\nimport type { ComputedRef, Ref } from 'vue'\nimport type { BasicTableProps, TableEmitType } from '../types/table'\n\ntype Recordable<T = any> = Record<string, T>\n\nexport function useTableExpand(\n propsRef: ComputedRef<BasicTableProps>,\n tableData: Ref<Recordable[]>,\n emit: TableEmitType\n) {\n const expandedRowKeys = ref<string[]>([])\n\n const getAutoCreateKey = computed(() => {\n return unref(propsRef).autoCreateKey && !unref(propsRef).rowKey\n })\n\n const getRowKey = computed(() => {\n const { rowKey } = unref(propsRef)\n return unref(getAutoCreateKey) ? ROW_KEY : rowKey\n })\n\n const getExpandOption = computed(() => {\n const { isTreeTable } = unref(propsRef)\n if (!isTreeTable) return {}\n\n return {\n expandedRowKeys: unref(expandedRowKeys),\n onExpandedRowsChange: (keys: string[]) => {\n expandedRowKeys.value = keys\n emit('expanded-rows-change', keys)\n },\n }\n })\n\n function expandAll() {\n const keys = getAllKeys()\n expandedRowKeys.value = keys\n }\n\n function expandRows(keys: string[], cover = false) {\n const { isTreeTable } = unref(propsRef)\n if (!isTreeTable) return\n if (cover) {\n expandedRowKeys.value = keys\n } else {\n expandedRowKeys.value = [...expandedRowKeys.value, ...keys]\n }\n }\n\n function getAllKeys(data?: Recordable[]) {\n const keys: string[] = []\n const { childrenColumnName } = unref(propsRef)\n toRaw(data || unref(tableData)).forEach((item) => {\n keys.push(item[unref(getRowKey) as string])\n const children = item[childrenColumnName || 'children']\n if (children?.length) {\n keys.push(...getAllKeys(children))\n }\n })\n return keys\n }\n\n function collapseAll() {\n expandedRowKeys.value = []\n }\n\n return { getExpandOption, expandAll, expandRows, collapseAll }\n}\n"],"names":[],"mappings":";;;AAEO,SAAS,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE;AAC1D,EAAE,MAAM,eAAe,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;AAClC,EAAE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM;AAC1C,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;AACpE,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM;AACnC,IAAI,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;AACvC,IAAI,OAAO,KAAK,CAAC,gBAAgB,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC;AACtD,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM;AACzC,IAAI,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC5C,IAAI,IAAI,CAAC,WAAW;AACpB,MAAM,OAAO,EAAE,CAAC;AAChB,IAAI,OAAO;AACX,MAAM,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC;AAC7C,MAAM,oBAAoB,EAAE,CAAC,IAAI,KAAK;AACtC,QAAQ,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC;AACrC,QAAQ,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;AAC3C,OAAO;AACP,KAAK,CAAC;AACN,GAAG,CAAC,CAAC;AACL,EAAE,SAAS,SAAS,GAAG;AACvB,IAAI,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;AAC9B,IAAI,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC;AACjC,GAAG;AACH,EAAE,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE;AAC3C,IAAI,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC5C,IAAI,IAAI,CAAC,WAAW;AACpB,MAAM,OAAO;AACb,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC;AACnC,KAAK,MAAM;AACX,MAAM,eAAe,CAAC,KAAK,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;AAClE,KAAK;AACL,GAAG;AACH,EAAE,SAAS,UAAU,CAAC,IAAI,EAAE;AAC5B,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;AACpB,IAAI,MAAM,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;AACnD,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACtD,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACxC,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,IAAI,UAAU,CAAC,CAAC;AAC9D,MAAM,IAAI,QAAQ,EAAE,MAAM,EAAE;AAC5B,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3C,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,SAAS,WAAW,GAAG;AACzB,IAAI,eAAe,CAAC,KAAK,GAAG,EAAE,CAAC;AAC/B,GAAG;AACH,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AACjE;;;;"}