物管理前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

87 lines
18 KiB

import{V as D,s as y,W as Z,S as K,v as De,t as V,d as ee,c as z,G as r,O as X,i as U,P as L,X as He,m as Ke,y as Y,z as ie,T as Ce,Q as se}from"./index-bVOhw2NF.js";import{d as We}from"./context-ELq7iLHP.js";import{k as ke}from"./keysOf-HiGXOwLp.js";import{c as Ve,_ as Xe,a as Ue}from"./Card-BhgyLFi8.js";import{b as q,c as B,a as k,d as M,A as Ye,C as qe,f as H,u as we,g as Ge,h as xe,w as Qe}from"./light-Cua7cqmF.js";import{u as Je}from"./use-rtl-CRyak7TN.js";import{d as Ze,m as eo}from"./light-rvBL92Ju.js";import{g as oo}from"./index-C-nsH7mf.js";import{r as W,a as re}from"./resolve-slot-Dzko3qih.js";import{r as F}from"./render-BxFg9-7m.js";import{N as to}from"./Icon-Ck7Ij_E6.js";import{B as le}from"./Button-B7xQqa1N.js";import{N as no}from"./Close-D6FODkWY.js";import{I as ae,S as io,W as so,E as ro}from"./Warning-WCOp46KX.js";import{m as Pe,a as lo,d as ao,p as co,f as uo,b as fo,z as mo,L as vo}from"./fade-in-scale-up.cssr-CTZmXn_X.js";import{g as ho,F as go}from"./index-C9vhMoZJ.js";import{S as po}from"./Scrollbar-DVK2lT9w.js";import{c as bo}from"./clickoutside-CCtiUDaG.js";import{k as G}from"./keep-B1eBS8j0.js";import{f as yo}from"./fade-in.cssr-CltBGdAW.js";import{i as Re,h as Se}from"./utils-BKyMmInE.js";import{o as Q,a as J}from"./delegate-CI_DDEu_.js";import{i as Co}from"./use-is-mounted-wlrzLfZo.js";import{i as ko}from"./is-browser-DqcmxZSF.js";import{c as N}from"./call-f2ri57Kd.js";import{g as wo}from"./get-precise-event-target-DhO46Lpt.js";import{e as xo}from"./index-DsSU6HIH.js";const j=y(null);function ce(e){if(e.clientX>0||e.clientY>0)j.value={x:e.clientX,y:e.clientY};else{const{target:o}=e;if(o instanceof Element){const{left:n,top:i,width:u,height:d}=o.getBoundingClientRect();n>0||i>0?j.value={x:n+u/2,y:i+d/2}:j.value={x:0,y:0}}else j.value=null}}let _=0,de=!0;function Po(){if(!Re)return D(y(null));_===0&&Q("click",document,ce,!0);const e=()=>{_+=1};return de&&(de=Se())?(Z(e),K(()=>{_-=1,_===0&&J("click",document,ce,!0)})):e(),D(j)}const Ro=y(void 0);let A=0;function ue(){Ro.value=Date.now()}let fe=!0;function So(e){if(!Re)return D(y(!1));const o=y(!1);let n=null;function i(){n!==null&&window.clearTimeout(n)}function u(){i(),o.value=!0,n=window.setTimeout(()=>{o.value=!1},e)}A===0&&Q("click",window,ue,!0);const d=()=>{A+=1,Q("click",window,u,!0)};return fe&&(fe=Se())?(Z(d),K(()=>{A-=1,A===0&&J("click",window,ue,!0),J("click",window,u,!0),i()})):d(),D(o)}let T=0,me="",ve="",he="",ge="";const pe=y("0px");function Bo(e){if(typeof document>"u")return;const o=document.documentElement;let n,i=!1;const u=()=>{o.style.marginRight=me,o.style.overflow=ve,o.style.overflowX=he,o.style.overflowY=ge,pe.value="0px"};De(()=>{n=V(e,d=>{if(d){if(!T){const l=window.innerWidth-o.offsetWidth;l>0&&(me=o.style.marginRight,o.style.marginRight=`${l}px`,pe.value=`${l}px`),ve=o.style.overflow,he=o.style.overflowX,ge=o.style.overflowY,o.style.overflow="hidden",o.style.overflowX="hidden",o.style.overflowY="hidden"}i=!0,T++}else T--,T||u(),i=!1},{immediate:!0})}),K(()=>{n==null||n(),i&&(T--,T||u(),i=!1)})}const oe=y(!1);function be(){oe.value=!0}function ye(){oe.value=!1}let E=0;function Oo(){return ko&&(Z(()=>{E||(window.addEventListener("compositionstart",be),window.addEventListener("compositionend",ye)),E++}),K(()=>{E<=1?(window.removeEventListener("compositionstart",be),window.removeEventListener("compositionend",ye),E=0):E--})),oe}const te={icon:Function,type:{type:String,default:"default"},title:[String,Function],closable:{type:Boolean,default:!0},negativeText:String,positiveText:String,positiveButtonProps:Object,negativeButtonProps:Object,content:[String,Function],action:Function,showIcon:{type:Boolean,default:!0},loading:Boolean,bordered:Boolean,iconPlacement:String,titleClass:[String,Array],titleStyle:[String,Object],contentClass:[String,Array],contentStyle:[String,Object],actionClass:[String,Array],actionStyle:[String,Object],onPositiveClick:Function,onNegativeClick:Function,onClose:Function},$o=ke(te),Fo=q([B("dialog",`
--n-icon-margin: var(--n-icon-margin-top) var(--n-icon-margin-right) var(--n-icon-margin-bottom) var(--n-icon-margin-left);
word-break: break-word;
line-height: var(--n-line-height);
position: relative;
background: var(--n-color);
color: var(--n-text-color);
box-sizing: border-box;
margin: auto;
border-radius: var(--n-border-radius);
padding: var(--n-padding);
transition:
border-color .3s var(--n-bezier),
background-color .3s var(--n-bezier),
color .3s var(--n-bezier);
`,[k("icon",{color:"var(--n-icon-color)"}),M("bordered",{border:"var(--n-border)"}),M("icon-top",[k("close",{margin:"var(--n-close-margin)"}),k("icon",{margin:"var(--n-icon-margin)"}),k("content",{textAlign:"center"}),k("title",{justifyContent:"center"}),k("action",{justifyContent:"center"})]),M("icon-left",[k("icon",{margin:"var(--n-icon-margin)"}),M("closable",[k("title",`
padding-right: calc(var(--n-close-size) + 6px);
`)])]),k("close",`
position: absolute;
right: 0;
top: 0;
margin: var(--n-close-margin);
transition:
background-color .3s var(--n-bezier),
color .3s var(--n-bezier);
z-index: 1;
`),k("content",`
font-size: var(--n-font-size);
margin: var(--n-content-margin);
position: relative;
word-break: break-word;
`,[M("last","margin-bottom: 0;")]),k("action",`
display: flex;
justify-content: flex-end;
`,[q("> *:not(:last-child)",`
margin-right: var(--n-action-space);
`)]),k("icon",`
font-size: var(--n-icon-size);
transition: color .3s var(--n-bezier);
`),k("title",`
transition: color .3s var(--n-bezier);
display: flex;
align-items: center;
font-size: var(--n-title-font-size);
font-weight: var(--n-title-font-weight);
color: var(--n-title-text-color);
`),B("dialog-icon-container",`
display: flex;
justify-content: center;
`)]),Ye(B("dialog",`
width: 446px;
max-width: calc(100vw - 32px);
`)),B("dialog",[qe(`
width: 446px;
max-width: calc(100vw - 32px);
`)])]),To={default:()=>r(ae,null),info:()=>r(ae,null),success:()=>r(io,null),warning:()=>r(so,null),error:()=>r(ro,null)},zo=ee({name:"Dialog",alias:["NimbusConfirmCard","Confirm"],props:Object.assign(Object.assign({},H.props),te),setup(e){const{mergedComponentPropsRef:o,mergedClsPrefixRef:n,inlineThemeDisabled:i,mergedRtlRef:u}=we(e),d=Je("Dialog",u,n),l=z(()=>{var m,v;const{iconPlacement:C}=e;return C||((v=(m=o==null?void 0:o.value)===null||m===void 0?void 0:m.Dialog)===null||v===void 0?void 0:v.iconPlacement)||"left"});function p(m){const{onPositiveClick:v}=e;v&&v(m)}function b(m){const{onNegativeClick:v}=e;v&&v(m)}function x(){const{onClose:m}=e;m&&m()}const P=H("Dialog","-dialog",Fo,Ze,e,n),R=z(()=>{const{type:m}=e,v=l.value,{common:{cubicBezierEaseInOut:C},self:{fontSize:a,lineHeight:h,border:c,titleTextColor:O,textColor:S,color:g,closeBorderRadius:t,closeColorHover:s,closeColorPressed:w,closeIconColor:$,closeIconColorHover:Be,closeIconColorPressed:Oe,closeIconSize:$e,borderRadius:Fe,titleFontWeight:Te,titleFontSize:ze,padding:Me,iconSize:Ee,actionSpace:je,contentMargin:Ie,closeSize:Ne,[v==="top"?"iconMarginIconTop":"iconMargin"]:_e,[v==="top"?"closeMarginIconTop":"closeMargin"]:Ae,[Ge("iconColor",m)]:Le}}=P.value,I=oo(_e);return{"--n-font-size":a,"--n-icon-color":Le,"--n-bezier":C,"--n-close-margin":Ae,"--n-icon-margin-top":I.top,"--n-icon-margin-right":I.right,"--n-icon-margin-bottom":I.bottom,"--n-icon-margin-left":I.left,"--n-icon-size":Ee,"--n-close-size":Ne,"--n-close-icon-size":$e,"--n-close-border-radius":t,"--n-close-color-hover":s,"--n-close-color-pressed":w,"--n-close-icon-color":$,"--n-close-icon-color-hover":Be,"--n-close-icon-color-pressed":Oe,"--n-color":g,"--n-text-color":S,"--n-border-radius":Fe,"--n-padding":Me,"--n-line-height":h,"--n-border":c,"--n-content-margin":Ie,"--n-title-font-size":ze,"--n-title-font-weight":Te,"--n-title-text-color":O,"--n-action-space":je}}),f=i?xe("dialog",z(()=>`${e.type[0]}${l.value[0]}`),R,e):void 0;return{mergedClsPrefix:n,rtlEnabled:d,mergedIconPlacement:l,mergedTheme:P,handlePositiveClick:p,handleNegativeClick:b,handleCloseClick:x,cssVars:i?void 0:R,themeClass:f==null?void 0:f.themeClass,onRender:f==null?void 0:f.onRender}},render(){var e;const{bordered:o,mergedIconPlacement:n,cssVars:i,closable:u,showIcon:d,title:l,content:p,action:b,negativeText:x,positiveText:P,positiveButtonProps:R,negativeButtonProps:f,handlePositiveClick:m,handleNegativeClick:v,mergedTheme:C,loading:a,type:h,mergedClsPrefix:c}=this;(e=this.onRender)===null||e===void 0||e.call(this);const O=d?r(to,{clsPrefix:c,class:`${c}-dialog__icon`},{default:()=>W(this.$slots.icon,g=>g||(this.icon?F(this.icon):To[this.type]()))}):null,S=W(this.$slots.action,g=>g||P||x||b?r("div",{class:[`${c}-dialog__action`,this.actionClass],style:this.actionStyle},g||(b?[F(b)]:[this.negativeText&&r(le,Object.assign({theme:C.peers.Button,themeOverrides:C.peerOverrides.Button,ghost:!0,size:"small",onClick:v},f),{default:()=>F(this.negativeText)}),this.positiveText&&r(le,Object.assign({theme:C.peers.Button,themeOverrides:C.peerOverrides.Button,size:"small",type:h==="default"?"primary":h,disabled:a,loading:a,onClick:m},R),{default:()=>F(this.positiveText)})])):null);return r("div",{class:[`${c}-dialog`,this.themeClass,this.closable&&`${c}-dialog--closable`,`${c}-dialog--icon-${n}`,o&&`${c}-dialog--bordered`,this.rtlEnabled&&`${c}-dialog--rtl`],style:i,role:"dialog"},u?W(this.$slots.close,g=>{const t=[`${c}-dialog__close`,this.rtlEnabled&&`${c}-dialog--rtl`];return g?r("div",{class:t},g):r(no,{clsPrefix:c,class:t,onClick:this.handleCloseClick})}):null,d&&n==="top"?r("div",{class:`${c}-dialog-icon-container`},O):null,r("div",{class:[`${c}-dialog__title`,this.titleClass],style:this.titleStyle},d&&n==="left"?O:null,re(this.$slots.header,()=>[F(l)])),r("div",{class:[`${c}-dialog__content`,S?"":`${c}-dialog__content--last`,this.contentClass],style:this.contentStyle},re(this.$slots.default,()=>[F(p)])),S)}}),ne=Object.assign(Object.assign({},Ve),te),Mo=ke(ne),Eo=ee({name:"ModalBody",inheritAttrs:!1,props:Object.assign(Object.assign({show:{type:Boolean,required:!0},preset:String,displayDirective:{type:String,required:!0},trapFocus:{type:Boolean,default:!0},autoFocus:{type:Boolean,default:!0},blockScroll:Boolean},ne),{renderMask:Function,onClickoutside:Function,onBeforeLeave:{type:Function,required:!0},onAfterLeave:{type:Function,required:!0},onPositiveClick:{type:Function,required:!0},onNegativeClick:{type:Function,required:!0},onClose:{type:Function,required:!0},onAfterEnter:Function,onEsc:Function}),setup(e){const o=y(null),n=y(null),i=y(e.show),u=y(null),d=y(null);V(X(e,"show"),a=>{a&&(i.value=!0)}),Bo(z(()=>e.blockScroll&&i.value));const l=U(Pe);function p(){if(l.transformOriginRef.value==="center")return"";const{value:a}=u,{value:h}=d;if(a===null||h===null)return"";if(n.value){const c=n.value.containerScrollTop;return`${a}px ${h+c}px`}return""}function b(a){if(l.transformOriginRef.value==="center")return;const h=l.getMousePosition();if(!h||!n.value)return;const c=n.value.containerScrollTop,{offsetLeft:O,offsetTop:S}=a;if(h){const g=h.y,t=h.x;u.value=-(O-t),d.value=-(S-g-c)}a.style.transformOrigin=p()}function x(a){se(()=>{b(a)})}function P(a){a.style.transformOrigin=p(),e.onBeforeLeave()}function R(){i.value=!1,u.value=null,d.value=null,e.onAfterLeave()}function f(){const{onClose:a}=e;a&&a()}function m(){e.onNegativeClick()}function v(){e.onPositiveClick()}const C=y(null);return V(C,a=>{a&&se(()=>{const h=a.el;h&&o.value!==h&&(o.value=h)})}),L(lo,o),L(ao,null),L(co,null),{mergedTheme:l.mergedThemeRef,appear:l.appearRef,isMounted:l.isMountedRef,mergedClsPrefix:l.mergedClsPrefixRef,bodyRef:o,scrollbarRef:n,displayed:i,childNodeRef:C,handlePositiveClick:v,handleNegativeClick:m,handleCloseClick:f,handleAfterLeave:R,handleBeforeLeave:P,handleEnter:x}},render(){const{$slots:e,$attrs:o,handleEnter:n,handleAfterLeave:i,handleBeforeLeave:u,preset:d,mergedClsPrefix:l}=this;let p=null;if(!d){if(p=ho(e),!p){Qe("modal","default slot is empty");return}p=He(p),p.props=Ke({class:`${l}-modal`},o,p.props||{})}return this.displayDirective==="show"||this.displayed||this.show?Y(r("div",{role:"none",class:`${l}-modal-body-wrapper`},r(po,{ref:"scrollbarRef",theme:this.mergedTheme.peers.Scrollbar,themeOverrides:this.mergedTheme.peerOverrides.Scrollbar,contentClass:`${l}-modal-scroll-content`},{default:()=>{var b;return[(b=this.renderMask)===null||b===void 0?void 0:b.call(this),r(go,{disabled:!this.trapFocus,active:this.show,onEsc:this.onEsc,autoFocus:this.autoFocus},{default:()=>{var x;return r(Ce,{name:"fade-in-scale-up-transition",appear:(x=this.appear)!==null&&x!==void 0?x:this.isMounted,onEnter:n,onAfterEnter:this.onAfterEnter,onAfterLeave:i,onBeforeLeave:u},{default:()=>{const P=[[ie,this.show]],{onClickoutside:R}=this;return R&&P.push([bo,this.onClickoutside,void 0,{capture:!0}]),Y(this.preset==="confirm"||this.preset==="dialog"?r(zo,Object.assign({},this.$attrs,{class:[`${l}-modal`,this.$attrs.class],ref:"bodyRef",theme:this.mergedTheme.peers.Dialog,themeOverrides:this.mergedTheme.peerOverrides.Dialog},G(this.$props,$o),{"aria-modal":"true"}),e):this.preset==="card"?r(Xe,Object.assign({},this.$attrs,{ref:"bodyRef",class:[`${l}-modal`,this.$attrs.class],theme:this.mergedTheme.peers.Card,themeOverrides:this.mergedTheme.peerOverrides.Card},G(this.$props,Ue),{"aria-modal":"true",role:"dialog"}),e):this.childNodeRef=p,P)}})}})]}})),[[ie,this.displayDirective==="if"||this.displayed||this.show]]):null}}),jo=q([B("modal-container",`
position: fixed;
left: 0;
top: 0;
height: 0;
width: 0;
display: flex;
`),B("modal-mask",`
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
background-color: rgba(0, 0, 0, .4);
`,[yo({enterDuration:".25s",leaveDuration:".25s",enterCubicBezier:"var(--n-bezier-ease-out)",leaveCubicBezier:"var(--n-bezier-ease-out)"})]),B("modal-body-wrapper",`
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
overflow: visible;
`,[B("modal-scroll-content",`
min-height: 100%;
display: flex;
position: relative;
`)]),B("modal",`
position: relative;
align-self: center;
color: var(--n-text-color);
margin: auto;
box-shadow: var(--n-box-shadow);
`,[uo({duration:".25s",enterScale:".5"})])]),Io=Object.assign(Object.assign(Object.assign(Object.assign({},H.props),{show:Boolean,unstableShowMask:{type:Boolean,default:!0},maskClosable:{type:Boolean,default:!0},preset:String,to:[String,Object],displayDirective:{type:String,default:"if"},transformOrigin:{type:String,default:"mouse"},zIndex:Number,autoFocus:{type:Boolean,default:!0},trapFocus:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0},blockScroll:{type:Boolean,default:!0}}),ne),{onEsc:Function,"onUpdate:show":[Function,Array],onUpdateShow:[Function,Array],onAfterEnter:Function,onBeforeLeave:Function,onAfterLeave:Function,onClose:Function,onPositiveClick:Function,onNegativeClick:Function,onMaskClick:Function,internalDialog:Boolean,internalModal:Boolean,internalAppear:{type:Boolean,default:void 0},overlayStyle:[String,Object],onBeforeHide:Function,onAfterHide:Function,onHide:Function}),dt=ee({name:"Modal",inheritAttrs:!1,props:Io,setup(e){const o=y(null),{mergedClsPrefixRef:n,namespaceRef:i,inlineThemeDisabled:u}=we(e),d=H("Modal","-modal",jo,eo,e,n),l=So(64),p=Po(),b=Co(),x=e.internalDialog?U(We,null):null,P=e.internalModal?U(fo,null):null,R=Oo();function f(t){const{onUpdateShow:s,"onUpdate:show":w,onHide:$}=e;s&&N(s,t),w&&N(w,t),$&&!t&&$(t)}function m(){const{onClose:t}=e;t?Promise.resolve(t()).then(s=>{s!==!1&&f(!1)}):f(!1)}function v(){const{onPositiveClick:t}=e;t?Promise.resolve(t()).then(s=>{s!==!1&&f(!1)}):f(!1)}function C(){const{onNegativeClick:t}=e;t?Promise.resolve(t()).then(s=>{s!==!1&&f(!1)}):f(!1)}function a(){const{onBeforeLeave:t,onBeforeHide:s}=e;t&&N(t),s&&s()}function h(){const{onAfterLeave:t,onAfterHide:s}=e;t&&N(t),s&&s()}function c(t){var s;const{onMaskClick:w}=e;w&&w(t),e.maskClosable&&!((s=o.value)===null||s===void 0)&&s.contains(wo(t))&&f(!1)}function O(t){var s;(s=e.onEsc)===null||s===void 0||s.call(e),e.show&&e.closeOnEsc&&xo(t)&&(R.value||f(!1))}L(Pe,{getMousePosition:()=>{const t=x||P;if(t){const{clickedRef:s,clickedPositionRef:w}=t;if(s.value&&w.value)return w.value}return l.value?p.value:null},mergedClsPrefixRef:n,mergedThemeRef:d,isMountedRef:b,appearRef:X(e,"internalAppear"),transformOriginRef:X(e,"transformOrigin")});const S=z(()=>{const{common:{cubicBezierEaseOut:t},self:{boxShadow:s,color:w,textColor:$}}=d.value;return{"--n-bezier-ease-out":t,"--n-box-shadow":s,"--n-color":w,"--n-text-color":$}}),g=u?xe("theme-class",void 0,S,e):void 0;return{mergedClsPrefix:n,namespace:i,isMounted:b,containerRef:o,presetProps:z(()=>G(e,Mo)),handleEsc:O,handleAfterLeave:h,handleClickoutside:c,handleBeforeLeave:a,doUpdateShow:f,handleNegativeClick:C,handlePositiveClick:v,handleCloseClick:m,cssVars:u?void 0:S,themeClass:g==null?void 0:g.themeClass,onRender:g==null?void 0:g.onRender}},render(){const{mergedClsPrefix:e}=this;return r(vo,{to:this.to,show:this.show},{default:()=>{var o;(o=this.onRender)===null||o===void 0||o.call(this);const{unstableShowMask:n}=this;return Y(r("div",{role:"none",ref:"containerRef",class:[`${e}-modal-container`,this.themeClass,this.namespace],style:this.cssVars},r(Eo,Object.assign({style:this.overlayStyle},this.$attrs,{ref:"bodyWrapper",displayDirective:this.displayDirective,show:this.show,preset:this.preset,autoFocus:this.autoFocus,trapFocus:this.trapFocus,blockScroll:this.blockScroll},this.presetProps,{onEsc:this.handleEsc,onClose:this.handleCloseClick,onNegativeClick:this.handleNegativeClick,onPositiveClick:this.handlePositiveClick,onBeforeLeave:this.handleBeforeLeave,onAfterEnter:this.onAfterEnter,onAfterLeave:this.handleAfterLeave,onClickoutside:n?void 0:this.handleClickoutside,renderMask:n?()=>{var i;return r(Ce,{name:"fade-in-transition",key:"mask",appear:(i=this.internalAppear)!==null&&i!==void 0?i:this.isMounted},{default:()=>this.show?r("div",{"aria-hidden":!0,ref:"containerRef",class:`${e}-modal-mask`,onClick:this.handleClickoutside}):null})}:void 0}),this.$slots)),[[mo,{zIndex:this.zIndex,enabled:this.show}]])}})}});export{zo as N,dt as _,$o as a,Po as b,te as d,So as u};