zhxy-jsd/dist/build/h5/assets/u-popup.02d14dc4.js
2025-05-21 02:44:13 +08:00

2 lines
7.3 KiB
JavaScript

import{K as t,L as e,M as o,b as s,e as i,w as n,O as a,_ as r,N as l,q as u,l as d,j as c,k as p,g as m,ai as h}from"./index-f6e54d8f.js";import{_ as y}from"./_plugin-vue_export-helper.1b428a4d.js";import{_ as f}from"./u-icon.de9898cd.js";const v={props:{show:{type:Boolean,default:t.transition.show},mode:{type:String,default:t.transition.mode},duration:{type:[String,Number],default:t.transition.duration},timingFunction:{type:String,default:t.transition.timingFunction}}},g=t=>({enter:`u-${t}-enter u-${t}-enter-active`,"enter-to":`u-${t}-enter-to u-${t}-enter-active`,leave:`u-${t}-leave u-${t}-leave-active`,"leave-to":`u-${t}-leave-to u-${t}-leave-active`}),b={methods:{clickHandler(){this.$emit("click")},vueEnter(){const t=g(this.mode);this.status="enter",this.$emit("beforeEnter"),this.inited=!0,this.display=!0,this.classes=t.enter,this.$nextTick((async()=>{await uni.$u.sleep(20),this.$emit("enter"),this.transitionEnded=!1,this.$emit("afterEnter"),this.classes=t["enter-to"]}))},vueLeave(){if(!this.display)return;const t=g(this.mode);this.status="leave",this.$emit("beforeLeave"),this.classes=t.leave,this.$nextTick((()=>{this.transitionEnded=!1,this.$emit("leave"),setTimeout(this.onTransitionEnd,this.duration),this.classes=t["leave-to"]}))},onTransitionEnd(){this.transitionEnded||(this.transitionEnded=!0,this.$emit("leave"===this.status?"afterLeave":"afterEnter"),!this.show&&this.display&&(this.display=!1,this.inited=!1))}}};const $=y({name:"u-transition",data:()=>({inited:!1,viewStyle:{},status:"",transitionEnded:!1,display:!1,classes:""}),computed:{mergeStyle(){const{viewStyle:t,customStyle:e}=this;return{transitionDuration:`${this.duration}ms`,transitionTimingFunction:this.timingFunction,...uni.$u.addStyle(e),...t}}},mixins:[e,o,b,v],watch:{show:{handler(t){t?this.vueEnter():this.vueLeave()},immediate:!0}}},[["render",function(t,e,o,c,p,m){const h=d;return p.inited?(s(),i(h,{key:0,class:r(["u-transition",p.classes]),ref:"u-transition",onClick:t.clickHandler,style:l([m.mergeStyle]),onTouchmove:t.noop},{default:n((()=>[a(t.$slots,"default",{},void 0,!0)])),_:3},8,["onClick","class","style","onTouchmove"])):u("v-if",!0)}],["__scopeId","data-v-7bcf9967"]]);const S=y({name:"u-overlay",mixins:[e,o,{props:{show:{type:Boolean,default:t.overlay.show},zIndex:{type:[String,Number],default:t.overlay.zIndex},duration:{type:[String,Number],default:t.overlay.duration},opacity:{type:[String,Number],default:t.overlay.opacity}}}],computed:{overlayStyle(){const t={position:"fixed",top:0,left:0,right:0,zIndex:this.zIndex,bottom:0,"background-color":`rgba(0, 0, 0, ${this.opacity})`};return uni.$u.deepMerge(t,uni.$u.addStyle(this.customStyle))}},methods:{clickHandler(){this.$emit("click")}}},[["render",function(t,e,o,r,l,u){const d=c(p("u-transition"),$);return s(),i(d,{show:t.show,"custom-class":"u-overlay",duration:t.duration,"custom-style":u.overlayStyle,onClick:u.clickHandler},{default:n((()=>[a(t.$slots,"default",{},void 0,!0)])),_:3},8,["show","duration","custom-style","onClick"])}],["__scopeId","data-v-8ed79639"]]);const k=y({name:"u-status-bar",mixins:[e,o,{props:{bgColor:{type:String,default:t.statusBar.bgColor}}}],data:()=>({}),computed:{style(){const t={};return t.height=uni.$u.addUnit(uni.$u.sys().statusBarHeight,"px"),t.backgroundColor=this.bgColor,uni.$u.deepMerge(t,uni.$u.addStyle(this.customStyle))}}},[["render",function(t,e,o,r,u,c){const p=d;return s(),i(p,{style:l([c.style]),class:"u-status-bar"},{default:n((()=>[a(t.$slots,"default",{},void 0,!0)])),_:3},8,["style"])}],["__scopeId","data-v-de972adb"]]);const _=y({name:"u-safe-bottom",mixins:[e,o,{props:{}}],data:()=>({safeAreaBottomHeight:0,isNvue:!1}),computed:{style(){return uni.$u.deepMerge({},uni.$u.addStyle(this.customStyle))}},mounted(){}},[["render",function(t,e,o,n,a,u){const c=d;return s(),i(c,{class:r(["u-safe-bottom",[!a.isNvue&&"u-safe-area-inset-bottom"]]),style:l([u.style])},null,8,["style","class"])}],["__scopeId","data-v-8e3bd1cf"]]);const C=y({name:"u-popup",mixins:[e,o,{props:{show:{type:Boolean,default:t.popup.show},overlay:{type:Boolean,default:t.popup.overlay},mode:{type:String,default:t.popup.mode},duration:{type:[String,Number],default:t.popup.duration},closeable:{type:Boolean,default:t.popup.closeable},overlayStyle:{type:[Object,String],default:t.popup.overlayStyle},closeOnClickOverlay:{type:Boolean,default:t.popup.closeOnClickOverlay},zIndex:{type:[String,Number],default:t.popup.zIndex},safeAreaInsetBottom:{type:Boolean,default:t.popup.safeAreaInsetBottom},safeAreaInsetTop:{type:Boolean,default:t.popup.safeAreaInsetTop},closeIconPos:{type:String,default:t.popup.closeIconPos},round:{type:[Boolean,String,Number],default:t.popup.round},zoom:{type:Boolean,default:t.popup.zoom},bgColor:{type:String,default:t.popup.bgColor},overlayOpacity:{type:[Number,String],default:t.popup.overlayOpacity}}}],data(){return{overlayDuration:this.duration+50}},watch:{show(t,e){}},computed:{transitionStyle(){const t={zIndex:this.zIndex,position:"fixed",display:"flex"};return t[this.mode]=0,"left"===this.mode||"right"===this.mode?uni.$u.deepMerge(t,{bottom:0,top:0}):"top"===this.mode||"bottom"===this.mode?uni.$u.deepMerge(t,{left:0,right:0}):"center"===this.mode?uni.$u.deepMerge(t,{alignItems:"center","justify-content":"center",top:0,left:0,right:0,bottom:0}):void 0},contentStyle(){const t={};if(uni.$u.sys(),"center"!==this.mode&&(t.flex=1),this.bgColor&&(t.backgroundColor=this.bgColor),this.round){const e=uni.$u.addUnit(this.round);"top"===this.mode?(t.borderBottomLeftRadius=e,t.borderBottomRightRadius=e):"bottom"===this.mode?(t.borderTopLeftRadius=e,t.borderTopRightRadius=e):"center"===this.mode&&(t.borderRadius=e)}return uni.$u.deepMerge(t,uni.$u.addStyle(this.customStyle))},position(){return"center"===this.mode?this.zoom?"fade-zoom":"fade":"left"===this.mode?"slide-left":"right"===this.mode?"slide-right":"bottom"===this.mode?"slide-up":"top"===this.mode?"slide-down":void 0}},methods:{overlayClick(){this.closeOnClickOverlay&&this.$emit("close")},close(t){this.$emit("close")},afterEnter(){this.$emit("open")},clickHandler(){"center"===this.mode&&this.overlayClick(),this.$emit("click")}}},[["render",function(t,e,o,y,v,g){const b=c(p("u-overlay"),S),C=c(p("u-status-bar"),k),w=c(p("u-icon"),f),x=d,I=c(p("u-safe-bottom"),_),B=c(p("u-transition"),$);return s(),i(x,{class:"u-popup"},{default:n((()=>[t.overlay?(s(),i(b,{key:0,show:t.show,onClick:g.overlayClick,duration:v.overlayDuration,customStyle:t.overlayStyle,opacity:t.overlayOpacity},null,8,["show","onClick","duration","customStyle","opacity"])):u("v-if",!0),m(B,{show:t.show,customStyle:g.transitionStyle,mode:g.position,duration:t.duration,onAfterEnter:g.afterEnter,onClick:g.clickHandler},{default:n((()=>[m(x,{class:"u-popup__content",style:l([g.contentStyle]),onClick:h(t.noop,["stop"])},{default:n((()=>[t.safeAreaInsetTop?(s(),i(C,{key:0})):u("v-if",!0),a(t.$slots,"default",{},void 0,!0),t.closeable?(s(),i(x,{key:1,onClick:h(g.close,["stop"]),class:r(["u-popup__content__close",["u-popup__content__close--"+t.closeIconPos]]),"hover-class":"u-popup__content__close--hover","hover-stay-time":"150"},{default:n((()=>[m(w,{name:"close",color:"#909399",size:"18",bold:""})])),_:1},8,["onClick","class"])):u("v-if",!0),t.safeAreaInsetBottom?(s(),i(I,{key:2})):u("v-if",!0)])),_:3},8,["style","onClick"])])),_:3},8,["show","customStyle","mode","duration","onAfterEnter","onClick"])])),_:3})}],["__scopeId","data-v-6c2a9ad4"]]);export{C as _};