{"version":3,"file":"useTable2.mjs","sources":["../../../../../../../../packages/components/table/src/hooks/useTable.ts"],"sourcesContent":["import { onUnmounted, ref, toRaw, unref, watch } from 'vue'\nimport { getDynamicProps } from '@tav-ui/utils/basic'\nimport { error } from '@tav-ui/utils/log'\nimport type { FormActionType } from '@tav-ui/components/form/src/types/form'\nimport type { ComputedRef, Ref, WatchStopHandle } from 'vue'\nimport type { PaginationProps } from '../types/pagination'\nimport type { BasicColumn, BasicTableProps, FetchParams, TableActionType } from '../types/table'\n\ntype Props = Partial<DynamicProps<BasicTableProps>>\ntype DynamicProps<T> = {\n  [P in keyof T]: Ref<T[P]> | T[P] | ComputedRef<T[P]>\n}\ntype Recordable<T = any> = Record<string, T>\n\nconst isProdMode = () => true\n\ntype UseTableMethod = TableActionType & {\n  getForm: () => FormActionType\n}\n\ntype Nullable<T> = T | null\n\nexport function useTable(tableProps?: Props): [\n  (instance: TableActionType, formInstance: UseTableMethod) => void,\n  TableActionType & {\n    getForm: () => FormActionType\n  }\n] {\n  const tableRef = ref<Nullable<TableActionType>>(null)\n  const loadedRef = ref<Nullable<boolean>>(false)\n  const formRef = ref<Nullable<UseTableMethod>>(null)\n  let stopWatch: WatchStopHandle\n\n  function register(instance: TableActionType, formInstance: UseTableMethod) {\n    isProdMode() &&\n      onUnmounted(() => {\n        tableRef.value = null\n        loadedRef.value = null\n      })\n\n    if (unref(loadedRef) && isProdMode() && instance === unref(tableRef)) return\n\n    tableRef.value = instance\n    formRef.value = formInstance\n    tableProps && instance.setProps(getDynamicProps(tableProps))\n    loadedRef.value = true\n    stopWatch?.()\n\n    stopWatch = watch(\n      () => tableProps,\n      () => {\n        tableProps && instance.setProps(getDynamicProps(tableProps))\n      },\n      {\n        immediate: true,\n        deep: true,\n      }\n    )\n  }\n\n  function getTableInstance(): TableActionType {\n    const table = unref(tableRef)\n    if (!table) {\n      error(\n        'The table instance has not been obtained yet, please make sure the table is presented when performing the table operation!'\n      )\n    }\n    return table as TableActionType\n  }\n\n  const methods: TableActionType & {\n    getForm: () => FormActionType\n  } = {\n    reload: async (opt?: FetchParams) => {\n      // eslint-disable-next-line no-return-await\n      return await getTableInstance().reload(opt)\n    },\n    setProps: (props: Partial<BasicTableProps>) => {\n      getTableInstance().setProps(props)\n    },\n    redoHeight: () => {\n      getTableInstance().redoHeight()\n    },\n    setLoading: (loading: boolean) => {\n      getTableInstance().setLoading(loading)\n    },\n    setMasking: (loading: boolean) => {\n      getTableInstance().setMasking(loading)\n    },\n    getDataSource: () => {\n      return getTableInstance().getDataSource()\n    },\n    getRawDataSource: () => {\n      return getTableInstance().getRawDataSource()\n    },\n    getColumns: ({ ignoreIndex = false }: { ignoreIndex?: boolean } = {}) => {\n      const columns = getTableInstance().getColumns({ ignoreIndex }) || []\n      return toRaw(columns)\n    },\n    setColumns: (columns: BasicColumn[] | string[]) => {\n      getTableInstance().setColumns(columns)\n    },\n    setTableData: (values: any[]) => {\n      return getTableInstance().setTableData(values)\n    },\n    setPagination: (info: Partial<PaginationProps>) => {\n      return getTableInstance().setPagination(info)\n    },\n    deleteSelectRowByKey: (key: string) => {\n      getTableInstance().deleteSelectRowByKey(key)\n    },\n    getSelectRowKeys: () => {\n      return toRaw(getTableInstance().getSelectRowKeys())\n    },\n    getSelectRows: () => {\n      return toRaw(getTableInstance().getSelectRows())\n    },\n    clearSelectedRowKeys: () => {\n      getTableInstance().clearSelectedRowKeys()\n    },\n    setSelectedRowKeys: (keys: string[] | number[]) => {\n      getTableInstance().setSelectedRowKeys(keys)\n    },\n    getPaginationRef: () => {\n      return getTableInstance().getPaginationRef()\n    },\n    getSize: () => {\n      return toRaw(getTableInstance().getSize())\n    },\n    updateTableData: (index: number, key: string, value: any) => {\n      return getTableInstance().updateTableData(index, key, value)\n    },\n    deleteTableDataRecord: (rowKey: string | number | string[] | number[]) => {\n      return getTableInstance().deleteTableDataRecord(rowKey)\n    },\n    insertTableDataRecord: (record: Recordable | Recordable[], index?: number) => {\n      return getTableInstance().insertTableDataRecord(record, index)\n    },\n    updateTableDataRecord: (rowKey: string | number, record: Recordable) => {\n      return getTableInstance().updateTableDataRecord(rowKey, record)\n    },\n    findTableDataRecord: (rowKey: string | number) => {\n      return getTableInstance().findTableDataRecord(rowKey)\n    },\n    getRowSelection: () => {\n      return toRaw(getTableInstance().getRowSelection())\n    },\n    getCacheColumns: () => {\n      return toRaw(getTableInstance().getCacheColumns())\n    },\n    getForm: () => {\n      return unref(formRef) as unknown as FormActionType\n    },\n    setShowPagination: async (show: boolean) => {\n      getTableInstance().setShowPagination(show)\n    },\n    getShowPagination: () => {\n      return toRaw(getTableInstance().getShowPagination())\n    },\n    expandAll: () => {\n      getTableInstance().expandAll()\n    },\n    expandRows: (keys: string[], cover?: boolean) => {\n      getTableInstance().expandRows(keys, cover)\n    },\n    collapseAll: () => {\n      getTableInstance().collapseAll()\n    },\n    scrollTo: (pos: string) => {\n      getTableInstance().scrollTo(pos)\n    },\n    getFilterForm: (): FormActionType => {\n      return getTableInstance().getFilterForm()\n    },\n  }\n\n  return [register, methods]\n}\n"],"names":[],"mappings":"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"}