vue-admin-core
Version:
A Component Library for Vue 3
1 lines • 2.66 kB
Source Map (JSON)
{"version":3,"file":"create-context.mjs","sources":["../../../../../../package/formily/__builtins__/shared/create-context.ts"],"sourcesContent":["import type { DefineComponent } from \"vue\";\nimport { defineComponent, provide, inject, readonly, InjectionKey, ref, Ref, toRef } from \"vue\";\n\nexport type CreateContext<T> = {\n Provider?: DefineComponent;\n Consumer?: DefineComponent;\n injectKey: InjectionKey<Ref<T>>;\n};\n\nexport const createContext = <T>(defaultValue?: T): CreateContext<T> => {\n const injectKey: InjectionKey<Ref<T>> = Symbol();\n\n return {\n Provider: defineComponent({\n name: \"ContextProvider\",\n props: {\n value: {\n type: [Object, Array, String, Number, Boolean]\n }\n },\n setup(props, { slots }) {\n const value = toRef(props, \"value\" as never, defaultValue as never);\n provide(injectKey, readonly(value as never));\n return () => slots?.default?.();\n }\n }),\n\n Consumer: defineComponent({\n name: \"ContextConsumer\",\n setup(_props, { slots }) {\n const value = inject(injectKey);\n return () => slots?.default?.(value);\n }\n }),\n injectKey\n };\n};\n\nexport const useContext = <T>(context: CreateContext<T>) => {\n const key = context.injectKey;\n return inject(key, ref<any>(null));\n};\n"],"names":[],"mappings":";;AASa,MAAA,aAAA,GAAgB,CAAI,YAAuC,KAAA;AACtE,EAAA,MAAM,YAAkC,MAAO,EAAA,CAAA;AAE/C,EAAO,OAAA;AAAA,IACL,UAAU,eAAgB,CAAA;AAAA,MACxB,IAAM,EAAA,iBAAA;AAAA,MACN,KAAO,EAAA;AAAA,QACL,KAAO,EAAA;AAAA,UACL,MAAM,CAAC,MAAA,EAAQ,KAAO,EAAA,MAAA,EAAQ,QAAQ,OAAO,CAAA;AAAA,SAC/C;AAAA,OACF;AAAA,MACA,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAS,EAAA;AACtB,QAAA,MAAM,KAAQ,GAAA,KAAA,CAAM,KAAO,EAAA,OAAA,EAAkB,YAAqB,CAAA,CAAA;AAClE,QAAQ,OAAA,CAAA,SAAA,EAAW,QAAS,CAAA,KAAc,CAAC,CAAA,CAAA;AAC3C,QAAA,OAAO,MAAG;AAvBlB,UAAA,IAAA,EAAA,CAAA;AAuBqB,UAAA,OAAA,CAAA,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,OAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA;AAAA,SAAA,CAAA;AAAA,OACf;AAAA,KACD,CAAA;AAAA,IAED,UAAU,eAAgB,CAAA;AAAA,MACxB,IAAM,EAAA,iBAAA;AAAA,MACN,KAAM,CAAA,MAAA,EAAQ,EAAE,KAAA,EAAS,EAAA;AACvB,QAAM,MAAA,KAAA,GAAQ,OAAO,SAAS,CAAA,CAAA;AAC9B,QAAA,OAAO,MAAG;AA/BlB,UAAA,IAAA,EAAA,CAAA;AA+BqB,UAAA,OAAA,CAAA,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,YAAP,IAAiB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;AAAA,SAAA,CAAA;AAAA,OAChC;AAAA,KACD,CAAA;AAAA,IACD,SAAA;AAAA,GACF,CAAA;AACF,EAAA;AAEa,MAAA,UAAA,GAAa,CAAI,OAA8B,KAAA;AAC1D,EAAA,MAAM,MAAM,OAAQ,CAAA,SAAA,CAAA;AACpB,EAAA,OAAO,MAAO,CAAA,GAAA,EAAK,GAAS,CAAA,IAAI,CAAC,CAAA,CAAA;AACnC;;;;"}