{"version":3,"file":"context.mjs","sources":["../../../../../../packages/components/bubble/src/context.ts"],"sourcesContent":["import {\n  ComputedRef,\n  InjectionKey,\n  computed,\n  defineComponent,\n  inject,\n  provide,\n  shallowRef,\n  triggerRef,\n  unref,\n  watch,\n} from 'vue'\nimport { definePropType } from '@element-plus/utils'\nimport { BubbleContextProps } from './bubble/bubble'\n\nconst BubbleContextKey: InjectionKey<ComputedRef<BubbleContextProps>> =\n  Symbol('BubbleContext')\n\nexport const globalBubbleContextApi = shallowRef<BubbleContextProps>()\n\nexport const useBubbleContextProvider = (\n  value: ComputedRef<BubbleContextProps>\n) => {\n  provide(BubbleContextKey, value)\n  watch(\n    value,\n    () => {\n      globalBubbleContextApi.value = unref(value)\n      triggerRef(globalBubbleContextApi)\n    },\n    { immediate: true, deep: true }\n  )\n}\n\nexport const useBubbleContextInject = () => {\n  return inject(\n    BubbleContextKey,\n    computed(() => globalBubbleContextApi.value || {})\n  )\n}\n\nexport const BubbleContextProvider = defineComponent({\n  props: {\n    value: definePropType<BubbleContextProps>(Object),\n  },\n  setup(props, { slots }) {\n    useBubbleContextProvider(computed(() => props.value || {}))\n    return () => {\n      return slots.default?.()\n    }\n  },\n})\n\nexport default BubbleContextProvider\n"],"names":[],"mappings":";;;AAeA,MAAM,gBAAA,GACJ,OAAO,eAAe,CAAA,CAAA;AAEjB,MAAM,yBAAyB,UAA+B,GAAA;AAExD,MAAA,wBAAA,GAA2B,CACtC,KACG,KAAA;AACH,EAAA,OAAA,CAAQ,kBAAkB,KAAK,CAAA,CAAA;AAC/B,EAAA,KAAA;AAAA,IACE,KAAA;AAAA,IACA,MAAM;AACJ,MAAuB,sBAAA,CAAA,KAAA,GAAQ,MAAM,KAAK,CAAA,CAAA;AAC1C,MAAA,UAAA,CAAW,sBAAsB,CAAA,CAAA;AAAA,KACnC;AAAA,IACA,EAAE,SAAA,EAAW,IAAM,EAAA,IAAA,EAAM,IAAK,EAAA;AAAA,GAChC,CAAA;AACF,EAAA;AAEO,MAAM,yBAAyB,MAAM;AAC1C,EAAO,OAAA,MAAA;AAAA,IACL,gBAAA;AAAA,IACA,QAAS,CAAA,MAAM,sBAAuB,CAAA,KAAA,IAAS,EAAE,CAAA;AAAA,GACnD,CAAA;AACF,EAAA;AAEO,MAAM,wBAAwB,eAAgB,CAAA;AAAA,EACnD,KAAO,EAAA;AAAA,IACL,KAAA,EAAO,eAAmC,MAAM,CAAA;AAAA,GAClD;AAAA,EACA,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAS,EAAA;AACtB,IAAA,wBAAA,CAAyB,SAAS,MAAM,KAAA,CAAM,KAAS,IAAA,EAAE,CAAC,CAAA,CAAA;AAC1D,IAAA,OAAO,MAAM;AA/CjB,MAAA,IAAA,EAAA,CAAA;AAgDM,MAAA,OAAA,CAAO,WAAM,OAAN,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA;AAAA,KACT,CAAA;AAAA,GACF;AACF,CAAC;;;;"}