{"version":3,"file":"useExtendInstance2.mjs","sources":["../../../../../../../../packages/components/table-pro/src/hooks/useExtendInstance.ts"],"sourcesContent":["import { nextTick, reactive, unref, watch } from 'vue'\nimport { ROW_KEY } from '../const'\nimport { type UseCheckboxCacheReturn } from './useCheckboxCache'\nimport type { ComputedRef, Ref } from 'vue'\nimport type { ITableProInstance, TableProInstance, TableProProps } from '../types'\nimport type { TableProApiParams } from '../typings'\n\nfunction createExendApis(\n  tableRef: Ref<TableProInstance | null>,\n  tablePropsRef: ComputedRef<TableProProps>,\n  filterRef: any,\n  isCheckboxCacheEnabled: UseCheckboxCacheReturn['isCheckboxCacheEnabled'],\n  checkboxCacheList: UseCheckboxCacheReturn['checkboxCacheList'],\n  deleteCheckboxCache: UseCheckboxCacheReturn['deleteCheckboxCache'],\n  deleteAllCheckboxCache: UseCheckboxCacheReturn['deleteAllCheckboxCache'],\n  currentPage: Ref<number>\n) {\n  function getSelectRowKeys(): string[] {\n    const {\n      rowConfig: { keyField = ROW_KEY },\n    } = unref(tablePropsRef)\n\n    if (isCheckboxCacheEnabled.value) {\n      return checkboxCacheList.value.map((cache) => `${cache[keyField]}`)\n    } else {\n      return unref(tableRef)!\n        .getCheckboxRecords()\n        .map((record) => `${record[keyField]}`)\n    }\n  }\n\n  async function clearSelectedRowByKey(keyField: string | number) {\n    const rowKey = `${keyField}`\n    const {\n      rowConfig: { keyField: _keyField = ROW_KEY },\n    } = unref(tablePropsRef)\n\n    const selectedRow = unref(tableRef)!\n      .getCheckboxRecords()\n      .find((record) => {\n        const recordRowKey = `${record[_keyField]}`\n        return recordRowKey === rowKey\n      })\n\n    if (isCheckboxCacheEnabled.value) {\n      await deleteCheckboxCache(selectedRow)\n    } else {\n      await unref(tableRef)!.toggleCheckboxRow(selectedRow)\n    }\n  }\n\n  function getSelectRows(): any[] {\n    if (isCheckboxCacheEnabled.value) {\n      return checkboxCacheList.value\n    } else {\n      return unref(tableRef)!.getCheckboxRecords()\n    }\n  }\n\n  async function clearSelectedRows() {\n    const { checkboxConfig = {}, radioConfig = {} } = unref(tablePropsRef)\n\n    if (isCheckboxCacheEnabled.value) {\n      await deleteAllCheckboxCache({\n        deleteByPage: false,\n      })\n    } else {\n      const hasCheckbox = Object.keys(checkboxConfig).length > 0\n      const hasRadioConfig = Object.keys(radioConfig).length > 0\n      if (hasCheckbox) await unref(tableRef)!.clearCheckboxRow()\n      if (hasRadioConfig) await unref(tableRef)!.clearRadioRow()\n    }\n  }\n\n  function insertRow(records: Record<string, any> | Record<string, any>[]) {\n    let _records: any[] = []\n    if (Array.isArray(records)) {\n      _records = [...records]\n    } else {\n      _records = [records]\n    }\n    unref(tableRef)!.insertAt(_records, -1)\n  }\n\n  function updateRow(records: Record<string, any> | Record<string, any>[]) {\n    const {\n      rowConfig: { keyField = ROW_KEY },\n    } = unref(tablePropsRef)\n    const fullData = unref(tableRef)!.getTableData().fullData\n    let _records: any[] = []\n    if (Array.isArray(records)) {\n      _records = [...records]\n    } else {\n      _records = [records]\n    }\n    const _data = fullData?.map((record) => {\n      const matchedRecord = _records.find((_record) => _record[keyField] === record[keyField])\n      if (matchedRecord) {\n        return { ...record, ...matchedRecord }\n      } else {\n        return record\n      }\n    })\n    unref(tableRef)!.loadData(_data)\n  }\n\n  function deleteRow(records: Record<string, any> | Record<string, any>[]) {\n    let _records: any[] = []\n    if (Array.isArray(records)) {\n      _records = [...records]\n    } else {\n      _records = [records]\n    }\n    unref(tableRef)!.remove(_records)\n  }\n\n  async function reload(options?: TableProApiParams) {\n    const tableFilterSearchParams = filterRef.value\n      ? JSON.parse(filterRef.value.$el.dataset.filterParams)\n      : {}\n\n    const { checkboxConfig = {}, radioConfig = {} } = unref(tablePropsRef)\n\n    const hasCheckbox = Object.keys(checkboxConfig).length > 0\n    const hasRadioConfig = Object.keys(radioConfig).length > 0\n    if (options?.clearSelect && hasCheckbox) unref(tableRef)!.clearCheckboxRow()\n    if (options?.clearSelect && hasRadioConfig) unref(tableRef)!.clearRadioRow()\n\n    const apiParams: TableProApiParams = {\n      filter: tableFilterSearchParams,\n      model: { page: currentPage.value },\n    }\n    if (options) {\n      if (options.filter) {\n        apiParams.filter = { ...apiParams.filter, ...(options.filter ?? {}) }\n      }\n      apiParams.model = {\n        ...(options.model ?? {}),\n        ...(options.page && options.page > 0 ? { page: options.page } : {}),\n      }\n    }\n\n    if (\n      isCheckboxCacheEnabled.value &&\n      options?.filter &&\n      Object.keys(options?.filter).length > 0 &&\n      JSON.stringify(options?.filter) !== JSON.stringify(tableFilterSearchParams)\n    ) {\n      await deleteAllCheckboxCache({\n        deleteByPage: false,\n      })\n      await nextTick()\n    }\n\n    // 同一个表格实例下使用 query 无法重置页码，改为 reload\n    // unref(tableRef)!.commitProxy('query', { ...apiParams })\n    // 使用 reload 后表格的滚动条重置，这里需要手动记录并置回\n    const { scrollTop: prevScrollTop, scrollLeft: prevScrollLeft } = unref(tableRef)!.getScroll()\n    await unref(tableRef)!.commitProxy('reload', { ...apiParams })\n    if (currentPage.value === apiParams?.model?.page) {\n      nextTick(async () => {\n        await unref(tableRef)!.refreshScroll()\n        setTimeout(() => {\n          unref(tableRef)!.scrollTo(prevScrollLeft, prevScrollTop)\n        }, 16.7 * 2)\n      })\n    }\n    // reload 后 vxetable 控制自动回到第一页这里强行把页码置回\n    const proxyInfo = unref(tableRef)!.getProxyInfo()\n    if (apiParams?.model?.page && proxyInfo) {\n      proxyInfo.pager.currentPage = apiParams.model.page\n    }\n  }\n\n  return {\n    getSelectRowKeys,\n    clearSelectedRowByKey,\n    getSelectRows,\n    clearSelectedRows,\n    insertRow,\n    updateRow,\n    deleteRow,\n    reload,\n  }\n}\n\n/** 扩展实例 */\ntype OuterExtendApis = {\n  setLoading: (loading: boolean) => void\n  resetFilterInput: () => void\n  resizeTableHeight: () => void\n  showExportModal: () => void\n  showColumnsModa: () => void\n  clearCellTooltip: () => void\n}\nexport type TableProExtendApis = ReturnType<typeof createExendApis> & OuterExtendApis\n\n/**\n * 扩展 vxegrid instance 实例\n * @param tableRef\n * @returns\n */\nexport function useExtendInstance(\n  tableRef: Ref<TableProInstance | null>,\n  tablePropsRef: ComputedRef<TableProProps>,\n  outerExtendApis: OuterExtendApis,\n  filterRef: Ref<ComputedRef | null>,\n  isCheckboxCacheEnabled: UseCheckboxCacheReturn['isCheckboxCacheEnabled'],\n  checkboxCacheList: UseCheckboxCacheReturn['checkboxCacheList'],\n  deleteCheckboxCache: UseCheckboxCacheReturn['deleteCheckboxCache'],\n  deleteAllCheckboxCache: UseCheckboxCacheReturn['deleteAllCheckboxCache'],\n  currentPage: Ref<number>\n) {\n  const state = reactive<{\n    instance: TableProInstance | null\n  }>({\n    instance: null,\n  })\n\n  watch(\n    () => tableRef.value,\n    (curTableRef, preTableRef) => {\n      if (curTableRef && curTableRef !== preTableRef) {\n        state.instance = curTableRef\n        const extendApis = createExendApis(\n          tableRef,\n          tablePropsRef,\n          filterRef,\n          isCheckboxCacheEnabled,\n          checkboxCacheList,\n          deleteCheckboxCache,\n          deleteAllCheckboxCache,\n          currentPage\n        )\n        Object.keys(extendApis).forEach((name) => {\n          //@ts-ignore\n          state.instance![name] = extendApis[name]\n        })\n        Object.keys(outerExtendApis).forEach((name) => {\n          //@ts-ignore\n          state.instance![name] = outerExtendApis[name]\n        })\n        //@ts-ignore\n        state.instance!['filterRef'] = filterRef.value\n      }\n    }\n  )\n\n  return state as ITableProInstance\n}\n"],"names":[],"mappings":"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"}