{"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"}