{"version":3,"file":"lottie2.mjs","sources":["../../../../../../../packages/components/lottie/src/lottie.vue"],"sourcesContent":["<template>\n  <div ref=\"lottieRef\" :class=\"[ns.b()]\" :style=\"style\" />\n</template>\n<script lang=\"ts\" setup>\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue'\nimport lottieWeb from 'lottie-web'\nimport { useId, useNamespace } from '@xzx-design/hooks'\nimport { lottieEmits, lottieProps } from './lottie'\n\nimport type { CSSProperties } from 'vue'\n\nimport type {\n  AnimationConfigWithData,\n  AnimationConfigWithPath,\n  AnimationItem,\n  RendererType,\n} from 'lottie-web'\n\nlet lottieName = useId()\nconst lottieRef: any = ref(null)\nconst lottie = ref<AnimationItem | null>(null)\n\ndefineOptions({\n  name: 'XzxLottie',\n})\n\nconst props = defineProps(lottieProps)\nconst emits = defineEmits(lottieEmits)\n\nconst ns = useNamespace('lottie')\n\nconst initLottie = () => {\n  lottieName = useId()\n  const lottieOptions:\n    | AnimationConfigWithPath<RendererType>\n    | AnimationConfigWithData<RendererType> = {\n    container: lottieRef.value,\n    rendererSettings:\n      props.renderer === 'html'\n        ? ({\n            className: ns.e('html'),\n          } as any)\n        : {},\n    renderer: props.renderer as RendererType,\n    loop: props.loop,\n    autoplay: props.autoplay,\n    animationData: props.data,\n    name: lottieName.value,\n  }\n  lottie.value = lottieWeb.loadAnimation(lottieOptions)\n}\n\nconst style = computed<CSSProperties>(() => ({\n  width: typeof props.width === 'number' ? `${props.width}px` : props.width,\n  height: typeof props.height === 'number' ? `${props.height}px` : props.height,\n}))\n\n/**\n * 继承lottie-web的方法\n * @description https://www.npmjs.com/package/lottie-web#lottie-has-several-global-methods-that-will-affect-all-animations\n *\n */\nconst _defineExpose = {\n  play: () => {\n    lottie.value?.play()\n  },\n  pause: () => {\n    lottie.value?.pause()\n  },\n  stop: () => {\n    lottie.value?.stop()\n  },\n  destroy: () => {\n    lottie.value?.destroy(lottieName.value)\n  },\n  goToAndPlay: (goToAndPlay: any, isFrame: any) => {\n    lottie.value?.goToAndPlay(goToAndPlay, isFrame, lottieName.value)\n  },\n  goToAndStop: (goToAndStop: any, isFrame: any) => {\n    lottie.value?.goToAndStop(goToAndStop, isFrame, lottieName.value)\n  },\n  setSpeed: (speed: any) => {\n    lottie.value?.setSpeed(speed)\n  },\n  setDirection: (direction: any) => {\n    lottie.value?.setDirection(direction)\n  },\n  playSegments: (segments: any, forceFlag: any) => {\n    lottie.value?.playSegments(segments, forceFlag)\n  },\n  resetSegments: (forceFlag: boolean) => {\n    lottie.value?.resetSegments(forceFlag)\n  },\n  setSubframe: (subframeEnabled: any) => {\n    lottie.value?.setSubframe(subframeEnabled)\n  },\n  resize: () => {\n    lottie.value?.resize()\n  },\n  hide: () => {\n    lottie.value?.hide()\n  },\n  show: () => {\n    lottie.value?.show()\n  },\n  getDuration: (inFrames: any) => lottie.value?.getDuration(inFrames),\n  addEventListener: lottie.value?.addEventListener,\n  removeEventListener: lottie.value?.removeEventListener,\n}\n\nconst update = () => {\n  unmount()\n  initLottie()\n}\n\nconst unmount = () => {\n  try {\n    lottie.value?.destroy(lottieName.value)\n  } catch {}\n  try {\n    lottie.value?.removeEventListener('drawnFrame')\n  } catch {}\n}\n\n// 解构排除 progress\nconst filteredProps = computed(() => {\n  const { progress, ...rest } = props\n  return rest\n})\n\nwatch(filteredProps, update)\n\nwatch(\n  () => [props.progress, lottie.value],\n  (val) => {\n    if (lottie.value && val[0] !== undefined) {\n      const total = lottie.value.totalFrames\n      const progress = Number(val[0]) * total\n\n      lottie.value?.[props.autoplay ? 'goToAndPlay' : 'goToAndStop'](\n        progress,\n        true,\n        lottieName.value\n      )\n\n      lottie.value.addEventListener('drawnFrame', (r: any) => {\n        emits('update:progress', r.currentTime / total)\n      })\n    }\n  },\n  {\n    immediate: true,\n  }\n)\n\nonMounted(() => initLottie())\n\nonUnmounted(() => {\n  unmount()\n})\n\ndefineExpose(_defineExpose)\n</script>\n"],"names":["_a","_b"],"mappings":";;;;;;;;mCAsBc,CAAA;AAAA,EACZ,IAAM,EAAA,WAAA;AACR,CAAA,CAAA,CAAA;;;;;;;AANA,IAAA,IAAI,aAAa,KAAM,EAAA,CAAA;AACjB,IAAA,MAAA,SAAA,GAAiB,IAAI,IAAI,CAAA,CAAA;AACzB,IAAA,MAAA,MAAA,GAAS,IAA0B,IAAI,CAAA,CAAA;AAM7C,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AAER,IAAA,MAAA,EAAA,GAAK,aAAa,QAAQ,CAAA,CAAA;AAEhC,IAAA,MAAM,aAAa,MAAM;AACvB,MAAA,UAAA,GAAa,KAAM,EAAA,CAAA;AACnB,MAAA,MAAM,aAEsC,GAAA;AAAA,QAC1C,WAAW,SAAU,CAAA,KAAA;AAAA,QACrB,gBAAA,EACE,KAAM,CAAA,QAAA,KAAa,MACd,GAAA;AAAA,UACC,SAAA,EAAW,EAAG,CAAA,CAAA,CAAE,MAAM,CAAA;AAAA,YAExB,EAAC;AAAA,QACP,UAAU,KAAM,CAAA,QAAA;AAAA,QAChB,MAAM,KAAM,CAAA,IAAA;AAAA,QACZ,UAAU,KAAM,CAAA,QAAA;AAAA,QAChB,eAAe,KAAM,CAAA,IAAA;AAAA,QACrB,MAAM,UAAW,CAAA,KAAA;AAAA,OACnB,CAAA;AACO,MAAA,MAAA,CAAA,KAAA,GAAQ,SAAU,CAAA,aAAA,CAAc,aAAa,CAAA,CAAA;AAAA,KACtD,CAAA;AAEM,IAAA,MAAA,KAAA,GAAQ,SAAwB,OAAO;AAAA,MAC3C,KAAA,EAAO,OAAO,KAAM,CAAA,KAAA,KAAU,WAAW,CAAG,EAAA,KAAA,CAAM,YAAY,KAAM,CAAA,KAAA;AAAA,MACpE,MAAA,EAAQ,OAAO,KAAM,CAAA,MAAA,KAAW,WAAW,CAAG,EAAA,KAAA,CAAM,aAAa,KAAM,CAAA,MAAA;AAAA,KACvE,CAAA,CAAA,CAAA;AAOF,IAAA,MAAM,aAAgB,GAAA;AAAA,MACpB,MAAM,MAAM;;AACV,QAAA,CAAAA,GAAA,GAAA,MAAA,CAAO,KAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAc,CAAA,IAAA,EAAA,CAAA;AAAA,OAChB;AAAA,MACA,OAAO,MAAM;;AACX,QAAA,CAAAA,GAAA,GAAA,MAAA,CAAO,KAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAc,CAAA,KAAA,EAAA,CAAA;AAAA,OAChB;AAAA,MACA,MAAM,MAAM;;AACV,QAAA,CAAAA,GAAA,GAAA,MAAA,CAAO,KAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAc,CAAA,IAAA,EAAA,CAAA;AAAA,OAChB;AAAA,MACA,SAAS,MAAM;;AACN,QAAA,CAAAA,MAAA,MAAA,CAAA,KAAA,KAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAAO,QAAQ,UAAW,CAAA,KAAA,CAAA,CAAA;AAAA,OACnC;AAAA,MACA,WAAA,EAAa,CAAC,WAAA,EAAkB,OAAiB,KAAA;;AAC/C,QAAAA,CAAAA,GAAAA,GAAA,OAAO,KAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,IAAc,WAAY,CAAA,WAAA,EAAa,SAAS,UAAW,CAAA,KAAA,CAAA,CAAA;AAAA,OAC7D;AAAA,MACA,WAAA,EAAa,CAAC,WAAA,EAAkB,OAAiB,KAAA;;AAC/C,QAAAA,CAAAA,GAAAA,GAAA,OAAO,KAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,IAAc,WAAY,CAAA,WAAA,EAAa,SAAS,UAAW,CAAA,KAAA,CAAA,CAAA;AAAA,OAC7D;AAAA,MACA,QAAA,EAAU,CAAC,KAAe,KAAA;;AACjB,QAAA,CAAAA,GAAA,GAAA,MAAA,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,IAAO,QAAS,CAAA,KAAA,CAAA,CAAA;AAAA,OACzB;AAAA,MACA,YAAA,EAAc,CAAC,SAAmB,KAAA;;AACzB,QAAA,CAAAA,GAAA,GAAA,MAAA,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,IAAO,YAAa,CAAA,SAAA,CAAA,CAAA;AAAA,OAC7B;AAAA,MACA,YAAA,EAAc,CAAC,QAAA,EAAe,SAAmB,KAAA;;AACxC,QAAA,CAAAA,MAAA,MAAA,CAAA,KAAA,KAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAAO,aAAa,QAAU,EAAA,SAAA,CAAA,CAAA;AAAA,OACvC;AAAA,MACA,aAAA,EAAe,CAAC,SAAuB,KAAA;;AAC9B,QAAA,CAAAA,GAAA,GAAA,MAAA,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,IAAO,aAAc,CAAA,SAAA,CAAA,CAAA;AAAA,OAC9B;AAAA,MACA,WAAA,EAAa,CAAC,eAAyB,KAAA;;AAC9B,QAAA,CAAAA,GAAA,GAAA,MAAA,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,IAAO,WAAY,CAAA,eAAA,CAAA,CAAA;AAAA,OAC5B;AAAA,MACA,QAAQ,MAAM;;AACZ,QAAA,CAAAA,GAAA,GAAA,MAAA,CAAO,KAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAc,CAAA,MAAA,EAAA,CAAA;AAAA,OAChB;AAAA,MACA,MAAM,MAAM;;AACV,QAAA,CAAAA,GAAA,GAAA,MAAA,CAAO,KAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAc,CAAA,IAAA,EAAA,CAAA;AAAA,OAChB;AAAA,MACA,MAAM,MAAM;;AACV,QAAA,CAAAA,GAAA,GAAA,MAAA,CAAO,KAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAc,CAAA,IAAA,EAAA,CAAA;AAAA,OAChB;AAAA,MACA,WAAA,EAAa,CAAC,QAAA,KAAA;;AAAkB,QAAA,OAAA,CAAAA,GAAA,GAAA,MAAA,CAAO,KAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,IAAc,WAAY,CAAA,QAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAC1D,gBAAA,EAAA,CAAkB,EAAO,GAAA,MAAA,CAAA,KAAA,KAAP,IAAc,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,gBAAA;AAAA,MAChC,mBAAA,EAAA,CAAqB,EAAO,GAAA,MAAA,CAAA,KAAA,KAAP,IAAc,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,mBAAA;AAAA,KACrC,CAAA;AAEA,IAAA,MAAM,SAAS,MAAM;AACX,MAAA,OAAA,EAAA,CAAA;AACG,MAAA,UAAA,EAAA,CAAA;AAAA,KACb,CAAA;AAEA,IAAA,MAAM,UAAU,MAAM;;AAChB,MAAA,IAAA;AACK,QAAA,CAAAA,MAAA,MAAA,CAAA,KAAA,KAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAAO,QAAQ,UAAW,CAAA,KAAA,CAAA,CAAA;AAAA,eAC3B,CAAA,EAAA;AAAA,OAAC;AACL,MAAA,IAAA;AACK,QAAA,CAAAC,GAAA,GAAA,MAAA,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,IAAO,mBAAoB,CAAA,YAAA,CAAA,CAAA;AAAA,eAC5B,CAAA,EAAA;AAAA,OAAC;AAAA,KACX,CAAA;AAGM,IAAA,MAAA,aAAA,GAAgB,SAAS,MAAM;AACnC,MAAM,MAAA,EAAE,QAAa,EAAA,GAAA,IAAA,EAAS,GAAA,KAAA,CAAA;AACvB,MAAA,OAAA,IAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAA,KAAA,CAAM,eAAe,MAAM,CAAA,CAAA;AAE3B,IAAA,KAAA;AAAA,MACE,MAAM,CAAC,KAAM,CAAA,QAAA,EAAU,OAAO,KAAK,CAAA;AAAA,MACnC,CAAC,GAAQ,KAAA;;AACP,QAAA,IAAI,MAAO,CAAA,KAAA,IAAS,GAAI,CAAA,CAAA,CAAA,KAAO,KAAW,CAAA,EAAA;AAClC,UAAA,MAAA,KAAA,GAAQ,OAAO,KAAM,CAAA,WAAA,CAAA;AAC3B,UAAA,MAAM,QAAW,GAAA,MAAA,CAAO,GAAI,CAAA,CAAA,CAAE,CAAI,GAAA,KAAA,CAAA;AAElC,UAAA,CAAAD,MAAA,MAAO,CAAA,KAAA,KAAP,gBAAAA,GAAe,CAAA,KAAA,CAAM,WAAW,aAAgB,GAAA,aAAA,CAAA;AAAA,YAC9C,QAAA;AAAA,YACA,IAAA;AAAA,YACA,UAAW,CAAA,KAAA;AAAA,WAAA,CAAA;AAGb,UAAA,MAAA,CAAO,KAAM,CAAA,gBAAA,CAAiB,YAAc,EAAA,CAAC,CAAW,KAAA;AAChD,YAAA,KAAA,CAAA,iBAAA,EAAmB,CAAE,CAAA,WAAA,GAAc,KAAK,CAAA,CAAA;AAAA,WAC/C,CAAA,CAAA;AAAA,SACH;AAAA,OACF;AAAA,MACA;AAAA,QACE,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;AAEU,IAAA,SAAA,CAAA,MAAM,YAAY,CAAA,CAAA;AAE5B,IAAA,WAAA,CAAY,MAAM;AACR,MAAA,OAAA,EAAA,CAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,QAAA,CAAa,aAAa,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;"}