{"version":3,"file":"FadeTransition-B8jkFtHA.js","sources":["../../../app/javascript/components/transitions/FadeTransition.vue"],"sourcesContent":["<template>\n  <transition\n    :tag=\"tag\"\n    v-bind=\"$attrs\"\n    name=\"fade\"\n    v-on=\"hooks\">\n    <slot></slot>\n  </transition>\n</template>\n\n<script>\nexport default {\n  name: \"FadeTransition\",\n  props: {\n    tag: {\n      type: String,\n      default: \"div\"\n    },\n    duration: {\n      type: Number,\n      default: 300\n    },\n    enterDuration: {\n      type: Number,\n      required: false\n    },\n    leaveDuration: {\n      type: Number,\n      required: false\n    },\n    delay: {\n      type: Number,\n      default: 0\n    },\n    fixAfterEnterTo: {\n      type: Boolean,\n      default: false\n    },\n    crossFade: {\n      type: Boolean,\n      default: false\n    }\n  },\n  emits: [\"after-enter\", \"after-appear\"],\n  computed: {\n    hooks() {\n      return {\n        enter: this.enter,\n        leave: this.leave,\n        afterEnter: this.afterEnter,\n        afterAppear: this.afterAppear\n      };\n    },\n    adjustedEnterDuration() {\n      if (this.enterDuration || this.enterDuration === 0) {\n        return this.enterDuration;\n      }\n\n      return this.duration;\n    },\n    adjustedLeaveDuration() {\n      if (this.leaveDuration || this.leaveDuration === 0) {\n        return this.leaveDuration;\n      }\n\n      return this.duration;\n    }\n  },\n  methods: {\n    leave(el) {\n      el.style.transitionDuration = `${this.adjustedLeaveDuration / 1000}s`;\n      this.setAbsolutePosition(el);\n    },\n    enter(el) {\n      el.style.transitionDuration = `${this.adjustedEnterDuration / 1000}s`;\n      el.style.transitionDelay = `${this.delay / 1000}s`;\n      this.setRelativePosition(el);\n    },\n    afterEnter(el) {\n      if (\n        this.fixAfterEnterTo &&\n        el.dataset.fixAfterEnter &&\n        el.style.display === \"none\"\n      ) {\n        el.style.removeProperty(\"display\");\n      }\n      el.style.removeProperty(\"transition-delay\");\n      this.$emit(\"after-enter\");\n    },\n    afterAppear() {\n      this.$emit(\"after-appear\");\n    },\n    setAbsolutePosition(el) {\n      if (this.crossFade) {\n        const element = el;\n        element.style.position = \"absolute\";\n        element.style.top = 0;\n      }\n    },\n    setRelativePosition(el) {\n      if (this.crossFade) {\n        const element = el;\n        element.style.position = \"relative\";\n      }\n    }\n  }\n};\n</script>\n\n<style>\n.fade-enter-active,\n.fade-leave-active {\n  transition-property: opacity;\n}\n\n.fade-enter-from,\n.fade-leave-to {\n  opacity: 0;\n}\n</style>\n"],"names":["_sfc_main","el","element","_openBlock","_createBlock","_Transition","_mergeProps","$props","_ctx","_toHandlers","$options","_withCtx","_renderSlot"],"mappings":"6GAWA,MAAKA,EAAU,CACb,KAAM,iBACN,MAAO,CACL,IAAK,CACH,KAAM,OACN,QAAS,KACV,EACD,SAAU,CACR,KAAM,OACN,QAAS,GACV,EACD,cAAe,CACb,KAAM,OACN,SAAU,EACX,EACD,cAAe,CACb,KAAM,OACN,SAAU,EACX,EACD,MAAO,CACL,KAAM,OACN,QAAS,CACV,EACD,gBAAiB,CACf,KAAM,QACN,QAAS,EACV,EACD,UAAW,CACT,KAAM,QACN,QAAS,EACX,CACD,EACD,MAAO,CAAC,cAAe,cAAc,EACrC,SAAU,CACR,OAAQ,CACN,MAAO,CACL,MAAO,KAAK,MACZ,MAAO,KAAK,MACZ,WAAY,KAAK,WACjB,YAAa,KAAK,WACnB,CACF,EACD,uBAAwB,CACtB,OAAI,KAAK,eAAiB,KAAK,gBAAkB,EACxC,KAAK,cAGP,KAAK,QACb,EACD,uBAAwB,CACtB,OAAI,KAAK,eAAiB,KAAK,gBAAkB,EACxC,KAAK,cAGP,KAAK,QACd,CACD,EACD,QAAS,CACP,MAAMC,EAAI,CACRA,EAAG,MAAM,mBAAqB,GAAG,KAAK,sBAAwB,GAAI,IAClE,KAAK,oBAAoBA,CAAE,CAC5B,EACD,MAAMA,EAAI,CACRA,EAAG,MAAM,mBAAqB,GAAG,KAAK,sBAAwB,GAAI,IAClEA,EAAG,MAAM,gBAAkB,GAAG,KAAK,MAAQ,GAAI,IAC/C,KAAK,oBAAoBA,CAAE,CAC5B,EACD,WAAWA,EAAI,CAEX,KAAK,iBACLA,EAAG,QAAQ,eACXA,EAAG,MAAM,UAAY,QAErBA,EAAG,MAAM,eAAe,SAAS,EAEnCA,EAAG,MAAM,eAAe,kBAAkB,EAC1C,KAAK,MAAM,aAAa,CACzB,EACD,aAAc,CACZ,KAAK,MAAM,cAAc,CAC1B,EACD,oBAAoBA,EAAI,CACtB,GAAI,KAAK,UAAW,CAClB,MAAMC,EAAUD,EAChBC,EAAQ,MAAM,SAAW,WACzBA,EAAQ,MAAM,IAAM,CACtB,CACD,EACD,oBAAoBD,EAAI,CACtB,GAAI,KAAK,UAAW,CAClB,MAAMC,EAAUD,EAChBC,EAAQ,MAAM,SAAW,UAC3B,CACF,CACF,CACF,0BAzGE,OAAAC,EAAA,EAAAC,EAMaC,EANbC,EAMa,CALV,IAAKC,EAAG,GAAA,EACDC,EAAM,OAAA,CACd,KAAK,MAAM,EACXC,EAAYC,EAAD,KAAA,CAAA,EAAA,CALf,QAAAC,EAMI,IAAa,CAAbC,EAAaJ,EAAA,OAAA,SAAA,IANjB,EAAA"}