{"version":3,"file":"useGetRefs.mjs","sources":["../../packages/hooks/useGetRefs.ts"],"sourcesContent":["/*\n * @Author: peng-xiao-shuai\n * @Date: 2023-11-21 10:53:17\n * @LastEditors: peng-xiao-shuai\n * @LastEditTime: 2023-12-25 14:43:30\n * @Description:\n */\nimport type { UnwrapRef } from 'vue'\n\n/**\n * 异步获取 ref 实例\n * @param {string} refName ref实例名称\n */\nexport const useAsyncGetRefs = <T = any>(\n  refName: string,\n  proxy: ComponentPublicInstance = getCurrentInstance()?.proxy!\n): Promise<T | null> => {\n  return new Promise((resolve) => {\n    /**\n     * 递归获取 ref 实例\n     */\n    const getRefs = (that: typeof proxy.$) => {\n      // console.log(Object.keys(that.refs), 'Object.keys(that.refs)')\n\n      if (Object.keys(that.refs).includes(refName)) {\n        resolve(that.refs[refName] as T)\n        return\n      } else {\n        if (that.parent) getRefs(that.parent)\n        else {\n          resolve(null)\n          return\n        }\n      }\n    }\n\n    onMounted(() => {\n      nextTick(() => {\n        if (proxy) {\n          getRefs(proxy.$)\n        } else {\n          console.error('错误，proxy 空')\n        }\n      })\n    })\n  })\n}\n\n/**\n * 同步获取 ref 实例\n * @param {string} refName ref实例名称\n */\nexport const useGetRefs = <T = any>(\n  refName: string,\n  proxy: ComponentPublicInstance = getCurrentInstance()?.proxy!\n): Ref<UnwrapRef<T> | null> => {\n  const componentRef = ref<T | null>(null)\n\n  /**\n   * 递归获取 ref 实例\n   */\n  const getRefs = (that: typeof proxy.$): UnwrapRef<T> | null => {\n    if (Object.keys(that.refs).includes(refName))\n      return that.refs[refName] as UnwrapRef<T>\n    else {\n      if (that.parent) return getRefs(that.parent)\n      else return null\n    }\n  }\n\n  if (proxy) {\n    componentRef.value = getRefs(proxy.$)\n  } else {\n    console.error('错误，proxy 空')\n  }\n\n  return componentRef as Ref<UnwrapRef<T> | null>\n}\n"],"names":["useAsyncGetRefs","refName","proxy","_a","getCurrentInstance","resolve","getRefs","that","onMounted","nextTick","useGetRefs","componentRef","ref"],"mappings":";AAaO,MAAMA,IAAkB,CAC7BC,GACAC,KAAiC,CAAAC,WAAAC,EAAA,MAAA,gBAAAD,EAAsB,aAEhD,IAAI,QAAQ,CAACE,MAAY;AAIxB,QAAAC,IAAU,CAACC,MAAyB;AAGxC,QAAI,OAAO,KAAKA,EAAK,IAAI,EAAE,SAASN,CAAO,GAAG;AACpC,MAAAI,EAAAE,EAAK,KAAKN,CAAO,CAAM;AAC/B;AAAA,IAAA,WAEIM,EAAK;AAAQ,MAAAD,EAAQC,EAAK,MAAM;AAAA,SAC/B;AACH,MAAAF,EAAQ,IAAI;AACZ;AAAA,IACF;AAAA,EACF;AAGF,EAAAG,EAAU,MAAM;AACd,IAAAC,EAAS,MAAM;AACb,MAAIP,IACFI,EAAQJ,EAAM,CAAC,IAEf,QAAQ,MAAM,YAAY;AAAA,IAC5B,CACD;AAAA,EAAA,CACF;AAAA,CACF,GAOUQ,IAAa,CACxBT,GACAC,KAAiC,CAAAC,WAAAC,EAAA,MAAA,gBAAAD,EAAsB,aAC1B;AACvB,QAAAQ,IAAeC,EAAc,IAAI,GAKjCN,IAAU,CAACC,MACX,OAAO,KAAKA,EAAK,IAAI,EAAE,SAASN,CAAO,IAClCM,EAAK,KAAKN,CAAO,IAEpBM,EAAK,SAAeD,EAAQC,EAAK,MAAM,IAC/B;AAIhB,SAAIL,IACWS,EAAA,QAAQL,EAAQJ,EAAM,CAAC,IAEpC,QAAQ,MAAM,YAAY,GAGrBS;AACT;"}