{"version":3,"file":"embla-carousel-vue.cjs.js","sources":["../src/components/emblaCarouselVue.ts"],"sourcesContent":["import {\n Ref,\n MaybeRef,\n isRef,\n watch,\n onMounted,\n onBeforeUnmount,\n shallowRef\n} from 'vue'\nimport {\n areOptionsEqual,\n arePluginsEqual,\n canUseDOM\n} from 'embla-carousel-reactive-utils'\nimport EmblaCarousel, {\n EmblaCarouselType,\n EmblaOptionsType,\n EmblaPluginType\n} from 'embla-carousel'\n\nexport type EmblaCarouselVueType = [\n Ref,\n Ref\n]\n\nfunction emblaCarouselVue(\n options: MaybeRef = {},\n plugins: MaybeRef = []\n): EmblaCarouselVueType {\n const isRefOptions = isRef(options)\n const isRefPlugins = isRef(plugins)\n\n let storedOptions = isRefOptions ? options.value : options\n let storedPlugins = isRefPlugins ? plugins.value : plugins\n\n const emblaNode = shallowRef()\n const emblaApi = shallowRef()\n\n function reInit() {\n if (!emblaApi.value) return\n emblaApi.value.reInit(storedOptions, storedPlugins)\n }\n\n onMounted(() => {\n if (!canUseDOM() || !emblaNode.value) return\n EmblaCarousel.globalOptions = emblaCarouselVue.globalOptions\n emblaApi.value = EmblaCarousel(\n emblaNode.value,\n storedOptions,\n storedPlugins\n )\n })\n\n onBeforeUnmount(() => {\n if (emblaApi.value) emblaApi.value.destroy()\n })\n\n if (isRefOptions) {\n watch(options, (newOptions) => {\n if (areOptionsEqual(storedOptions, newOptions)) return\n storedOptions = newOptions\n reInit()\n })\n }\n\n if (isRefPlugins) {\n watch(plugins, (newPlugins) => {\n if (arePluginsEqual(storedPlugins, newPlugins)) return\n storedPlugins = newPlugins\n reInit()\n })\n }\n\n return [emblaNode, emblaApi]\n}\n\ndeclare namespace emblaCarouselVue {\n let globalOptions: EmblaOptionsType | undefined\n}\n\nemblaCarouselVue.globalOptions = undefined\n\nexport default emblaCarouselVue\n"],"names":["emblaCarouselVue","options","plugins","isRefOptions","isRef","isRefPlugins","storedOptions","value","storedPlugins","emblaNode","shallowRef","emblaApi","reInit","onMounted","canUseDOM","EmblaCarousel","globalOptions","onBeforeUnmount","destroy","watch","newOptions","areOptionsEqual","newPlugins","arePluginsEqual","undefined"],"mappings":";;;;;;AAyBA,SAASA,gBAAgBA,CACvBC,OAAA,GAAsC,EAAE,EACxCC,UAAuC,EAAE,EAAA;AAEzC,EAAA,MAAMC,YAAY,GAAGC,SAAK,CAACH,OAAO,CAAC;AACnC,EAAA,MAAMI,YAAY,GAAGD,SAAK,CAACF,OAAO,CAAC;EAEnC,IAAII,aAAa,GAAGH,YAAY,GAAGF,OAAO,CAACM,KAAK,GAAGN,OAAO;EAC1D,IAAIO,aAAa,GAAGH,YAAY,GAAGH,OAAO,CAACK,KAAK,GAAGL,OAAO;AAE1D,EAAA,MAAMO,SAAS,GAAGC,cAAU,EAAe;AAC3C,EAAA,MAAMC,QAAQ,GAAGD,cAAU,EAAqB;EAEhD,SAASE,MAAMA,GAAA;AACb,IAAA,IAAI,CAACD,QAAQ,CAACJ,KAAK,EAAE;IACrBI,QAAQ,CAACJ,KAAK,CAACK,MAAM,CAACN,aAAa,EAAEE,aAAa,CAAC;AACrD;AAEAK,EAAAA,aAAS,CAAC,MAAK;IACb,IAAI,CAACC,oCAAS,EAAE,IAAI,CAACL,SAAS,CAACF,KAAK,EAAE;AACtCQ,IAAAA,aAAa,CAACC,aAAa,GAAGhB,gBAAgB,CAACgB,aAAa;AAC5DL,IAAAA,QAAQ,CAACJ,KAAK,GAAGQ,aAAa,CAC5BN,SAAS,CAACF,KAAK,EACfD,aAAa,EACbE,aAAa,CACd;AACH,GAAC,CAAC;AAEFS,EAAAA,mBAAe,CAAC,MAAK;IACnB,IAAIN,QAAQ,CAACJ,KAAK,EAAEI,QAAQ,CAACJ,KAAK,CAACW,OAAO,EAAE;AAC9C,GAAC,CAAC;AAEF,EAAA,IAAIf,YAAY,EAAE;AAChBgB,IAAAA,SAAK,CAAClB,OAAO,EAAGmB,UAAU,IAAI;AAC5B,MAAA,IAAIC,0CAAe,CAACf,aAAa,EAAEc,UAAU,CAAC,EAAE;AAChDd,MAAAA,aAAa,GAAGc,UAAU;AAC1BR,MAAAA,MAAM,EAAE;AACV,KAAC,CAAC;AACJ;AAEA,EAAA,IAAIP,YAAY,EAAE;AAChBc,IAAAA,SAAK,CAACjB,OAAO,EAAGoB,UAAU,IAAI;AAC5B,MAAA,IAAIC,0CAAe,CAACf,aAAa,EAAEc,UAAU,CAAC,EAAE;AAChDd,MAAAA,aAAa,GAAGc,UAAU;AAC1BV,MAAAA,MAAM,EAAE;AACV,KAAC,CAAC;AACJ;AAEA,EAAA,OAAO,CAACH,SAAS,EAAEE,QAAQ,CAAC;AAC9B;AAMAX,gBAAgB,CAACgB,aAAa,GAAGQ,SAAS;;;;"}