{"version":3,"file":"index.mjs","sources":["../../../../src/composables/useBreadcrumb/index.ts"],"sourcesContent":["import {computed, inject, type MaybeRefOrGetter, toValue, watch} from 'vue'\nimport {breadcrumbGlobalIndexKey, breadcrumbRegistryKey} from '../../utils/keys'\n\nexport const useBreadcrumb = (\n  /**\n   * When set it will utilize a separate instance of breadcrumb\n   */\n  id: MaybeRefOrGetter<string | null> = breadcrumbGlobalIndexKey\n) => {\n  const parentData = inject(breadcrumbRegistryKey)\n\n  const resolvedId = computed(() => {\n    const v = toValue(id)\n    if (!v) return breadcrumbGlobalIndexKey\n    return v\n  })\n\n  watch(\n    resolvedId,\n    (newValue) => {\n      if (!newValue || !parentData) return\n      parentData.items.value = {\n        ...parentData.items.value,\n        [newValue]: parentData.items.value[newValue] || [],\n      }\n    },\n    {immediate: true}\n  )\n\n  const items = computed({\n    get: () => parentData?.items.value[resolvedId.value] || [],\n    set(value) {\n      if (!parentData) return\n      parentData.items.value[resolvedId.value] = value\n    },\n  })\n\n  return {\n    items,\n    reset() {\n      if (!parentData) return\n      parentData.reset(resolvedId.value || undefined)\n    },\n  }\n}\n"],"names":[],"mappings":";;AAGO,MAAM,gBAAgB,CAI3B,KAAsC,6BACnC;AACH,QAAM,aAAa,OAAO,qBAAqB;AAE/C,QAAM,aAAa,SAAS,MAAM;AAChC,UAAM,IAAI,QAAQ,EAAE;AACpB,QAAI,CAAC,EAAG,QAAO;AACf,WAAO;AAAA,EACT,CAAC;AAED;AAAA,IACE;AAAA,IACA,CAAC,aAAa;AACZ,UAAI,CAAC,YAAY,CAAC,WAAY;AAC9B,iBAAW,MAAM,QAAQ;AAAA,QACvB,GAAG,WAAW,MAAM;AAAA,QACpB,CAAC,QAAQ,GAAG,WAAW,MAAM,MAAM,QAAQ,KAAK,CAAA;AAAA,MAAC;AAAA,IAErD;AAAA,IACA,EAAC,WAAW,KAAA;AAAA,EAAI;AAGlB,QAAM,QAAQ,SAAS;AAAA,IACrB,KAAK,MAAM,YAAY,MAAM,MAAM,WAAW,KAAK,KAAK,CAAA;AAAA,IACxD,IAAI,OAAO;AACT,UAAI,CAAC,WAAY;AACjB,iBAAW,MAAM,MAAM,WAAW,KAAK,IAAI;AAAA,IAC7C;AAAA,EAAA,CACD;AAED,SAAO;AAAA,IACL;AAAA,IACA,QAAQ;AACN,UAAI,CAAC,WAAY;AACjB,iBAAW,MAAM,WAAW,SAAS,MAAS;AAAA,IAChD;AAAA,EAAA;AAEJ;"}