{"version":3,"file":"useRemote.mjs","sources":["../../../../../package/hooks/formily/useRemote.tsx"],"sourcesContent":["import { Form, FormPathPattern, isField } from \"@formily/core\";\nimport { useGlobalConfig } from \"@vue-admin-core/components/config-provider\";\nimport useRequest from \"../useRequest\";\nimport { Options, Service } from \"../useRequest/src/types\";\nimport { Ref, toValue, watch } from \"vue\";\nimport { isBoolean } from \"lodash-es\";\n\nexport const useRemote = <TData, TParams extends any[]>(\n  {\n    form,\n    target\n  }: {\n    form: Ref<Form>;\n    target: FormPathPattern;\n  },\n  service: Service<TData, TParams>,\n  options: Options<TData, TParams> & {\n    pagination?:\n      | {\n          totalKey: string;\n          listKey: string;\n        }\n      | boolean;\n  }\n) => {\n  const { pagination, ...reset } = options || {};\n  const config = useGlobalConfig();\n  const request = useRequest(service, reset);\n\n  let totalKey = config.value.totalKey || \"totalElements\";\n  let listKey = config.value.listKey || \"content\";\n\n  if (!isBoolean(pagination) && pagination) {\n    totalKey = pagination.totalKey;\n    listKey = pagination.listKey;\n  }\n\n  watch(\n    request.loading,\n    (loading) => {\n      toValue(form)\n        .query(target)\n        .take((field) => {\n          if (isField(field)) field.setLoading(loading as boolean);\n        });\n    },\n    { immediate: true }\n  );\n\n  watch([request.data], ([data]) => {\n    if (!data) return;\n    const field = toValue(form).query(target).take();\n    if (!field) return;\n    if (!isField(field)) return;\n    if (field.componentType === \"TableSelect\" && pagination) {\n      field.setDataSource((data as any)[listKey]);\n      field.setComponentProps({\n        total: (data as any)[totalKey],\n        // @ts-ignore\n        onCurrentChange: (value: number) => request.run({ [config.value.currentPageKey]: value })\n      });\n    } else {\n      field.setDataSource(data as any);\n    }\n  });\n\n  return request;\n};\n"],"names":["useRemote","form","target","service","options","pagination","reset","config","useGlobalConfig","request","useRequest","totalKey","value","listKey","isBoolean","watch","loading","toValue","query","take","field","isField","setLoading","immediate","data","componentType","setDataSource","setComponentProps","total","onCurrentChange","run","currentPageKey"],"mappings":";;;;;;;;AAOO,MAAMA,YAAYA,CACvB;AAAA,EACEC,IAAAA;AAAAA,EACAC,MAAAA;AAIF,CAAA,EACAC,SACAC,OAQG,KAAA;AACH,EAAM,MAAA;AAAA,IAAEC,UAAAA;AAAAA,IAAY,GAAGC,KAAAA;AAAAA,GAAM,GAAIF,WAAW,EAAC,CAAA;AAC7C,EAAA,MAAMG,SAASC,eAAgB,EAAA,CAAA;AAC/B,EAAMC,MAAAA,OAAAA,GAAUC,UAAWP,CAAAA,OAAAA,EAASG,KAAK,CAAA,CAAA;AAEzC,EAAIK,IAAAA,QAAAA,GAAWJ,MAAOK,CAAAA,KAAAA,CAAMD,QAAY,IAAA,eAAA,CAAA;AACxC,EAAIE,IAAAA,OAAAA,GAAUN,MAAOK,CAAAA,KAAAA,CAAMC,OAAW,IAAA,SAAA,CAAA;AAEtC,EAAA,IAAI,CAACC,SAAAA,CAAUT,UAAU,CAAA,IAAKA,UAAY,EAAA;AACxCM,IAAAA,QAAAA,GAAWN,UAAWM,CAAAA,QAAAA,CAAAA;AACtBE,IAAAA,OAAAA,GAAUR,UAAWQ,CAAAA,OAAAA,CAAAA;AAAAA,GACvB;AAEAE,EACEN,KAAAA,CAAAA,OAAAA,CAAQO,SACPA,CAAY,OAAA,KAAA;AACXC,IAAAA,OAAAA,CAAQhB,IAAI,CACTiB,CAAAA,KAAAA,CAAMhB,MAAM,CAAA,CACZiB,KAAMC,CAAU,KAAA,KAAA;AACf,MAAA,IAAIC,QAAQD,KAAK,CAAA;AAAGA,QAAAA,KAAAA,CAAME,WAAWN,OAAkB,CAAA,CAAA;AAAA,KACxD,CAAA,CAAA;AAAA,GAEL,EAAA;AAAA,IAAEO,SAAW,EAAA,IAAA;AAAA,GACf,CAAA,CAAA;AAEAR,EAAAA,KAAAA,CAAM,CAACN,OAAQe,CAAAA,IAAI,GAAG,CAAC,CAACA,IAAI,CAAM,KAAA;AAChC,IAAA,IAAI,CAACA,IAAAA;AAAM,MAAA,OAAA;AACX,IAAA,MAAMJ,QAAQH,OAAQhB,CAAAA,IAAI,EAAEiB,KAAMhB,CAAAA,MAAM,EAAEiB,IAAK,EAAA,CAAA;AAC/C,IAAA,IAAI,CAACC,KAAAA;AAAO,MAAA,OAAA;AACZ,IAAI,IAAA,CAACC,QAAQD,KAAK,CAAA;AAAG,MAAA,OAAA;AACrB,IAAIA,IAAAA,KAAAA,CAAMK,aAAkB,KAAA,aAAA,IAAiBpB,UAAY,EAAA;AACvDe,MAAMM,KAAAA,CAAAA,aAAAA,CAAeF,IAAaX,CAAAA,OAAO,CAAC,CAAA,CAAA;AAC1CO,MAAAA,KAAAA,CAAMO,iBAAkB,CAAA;AAAA,QACtBC,KAAAA,EAAQJ,KAAab,QAAQ,CAAA;AAAA;AAAA,QAE7BkB,eAAAA,EAAkBjB,CAAkBH,KAAAA,KAAAA,OAAAA,CAAQqB,GAAI,CAAA;AAAA,UAAE,CAACvB,MAAAA,CAAOK,KAAMmB,CAAAA,cAAc,GAAGnB,KAAAA;AAAAA,SAAO,CAAA;AAAA,OACzF,CAAA,CAAA;AAAA,KACI,MAAA;AACLQ,MAAAA,KAAAA,CAAMM,cAAcF,IAAW,CAAA,CAAA;AAAA,KACjC;AAAA,GACD,CAAA,CAAA;AAED,EAAOf,OAAAA,OAAAA,CAAAA;AACT;;;;"}