UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

2 lines (1 loc) 37.5 kB
(function(z,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("../locale/index.umd.js"),require("bignumber.js"),require("lodash-es"),require("../common/index.umd.js"),require("../property-panel/index.umd.js"),require("../button/index.umd.js"),require("../field-selector/index.umd.js"),require("../collection-property-editor/index.umd.js/src/use-button-items.designer")):typeof define=="function"&&define.amd?define(["exports","vue","../locale/index.umd.js","bignumber.js","lodash-es","../common/index.umd.js","../property-panel/index.umd.js","../button/index.umd.js","../field-selector/index.umd.js","../collection-property-editor/index.umd.js/src/use-button-items.designer"],e):(z=typeof globalThis<"u"?globalThis:z||self,e(z["message-box"]={},z.Vue,z.locale,z.BigNumber,z.LodashES,z.common))})(this,function(z,e,q,ut,dt,G){"use strict";var rt=Object.defineProperty;var ct=(z,e,q)=>e in z?rt(z,e,{enumerable:!0,configurable:!0,writable:!0,value:q}):z[e]=q;var Y=(z,e,q)=>ct(z,typeof e!="symbol"?e+"":e,q);const ie={width:{Type:Number,default:400},type:{Type:String,default:"info"},title:{Type:String,default:""},detail:{Type:String,default:""},okButtonText:{Type:String,default:"确定"},showOkButton:{Type:Boolean,default:!0},showCancelButton:{Type:Boolean,default:!0},cancelButtonText:{Type:String,default:"取消"},exceptionInfo:{Type:Object,default:null},promptEditorType:{Type:String,default:"text-area"},buttons:{type:Object,default:[]},enableNeverShowAgain:{Type:Boolean,default:!1}};function te(){return new DOMException("The request is not allowed","NotAllowedError")}async function ge(t){if(!navigator.clipboard)throw te();return navigator.clipboard.writeText(t)}async function ve(t){const a=document.createElement("span");a.textContent=t,a.style.whiteSpace="pre",a.style.webkitUserSelect="auto",a.style.userSelect="all",document.body.appendChild(a);const l=window.getSelection(),n=window.document.createRange();l==null||l.removeAllRanges(),n.selectNode(a),l==null||l.addRange(n);let s=!1;try{s=window.document.execCommand("copy")}finally{l==null||l.removeAllRanges(),window.document.body.removeChild(a)}if(!s)throw te()}async function pe(t){try{await ge(t)}catch(a){try{await ve(t)}catch(l){throw l||a||te()}}}function ye(){async function t(a){await pe(a)}return{onCopy:t}}function we(t,a,l,n){const s=e.ref(14),i=e.ref(140),c=e.ref(""),r=e.ref(n.value.length),u=e.computed(()=>n.value),v=e.computed(()=>({"font-size":`${s.value}px`,height:"100%"}));function x(h){if(h.currentTarget){const b=h.currentTarget.value||"";r.value=b.length}}return()=>e.createVNode(e.Fragment,null,[e.createVNode("textarea",{title:"promptMessage",name:"promptMessage",class:"form-control",style:v.value,rows:"4",maxlength:i.value,onInput:h=>x(h)},[u.value]),e.createVNode("span",{class:"textarea-wordcount",title:c.value,style:"position: absolute; bottom: 76px; right: 32px; cursor: pointer; text-align: right;"},[r.value+" / "+i.value])])}function xe(t,a,l,n){const s=we(t,a,l,n),i=new Map([["text-area",s]]);function c(r){return i.get(r)||null}return{getEditorRender:c}}function be(){const t=e.ref(!1),a=e.ref("复制成功");return{feedbackStyle:e.computed(()=>{const n={position:"absolute",left:"50%",top:"50%","min-width":"100px",height:"40px",background:"#303C53","line-height":"40px","text-align":"center","margin-left":"-30px","margin-top":"-50px","border-radius":"10px","box-shadow":"0px 2px 8px 0px",color:"#fff",transition:"all .3s ease",padding:"0 10px"};return n.opacity=t.value?"0.8":"0",n.display=t.value?"":"none",n}),feedbackMessage:a,toShowFeedback:t}}function Ce(t,a){const l=a.getEditorRender(t.promptEditorType);return()=>l&&l()}function Me(t,a){function l(p){if(p==null)return 0;let C=0;for(let B=0;B<p.length;B++){const k=p.charCodeAt(B);k>=0&&k<=128?C++:C=C+2}return C}function n(p,C){if(p!==""&&p!==void 0&&p!==null){p=""+p;const B=p.length;let k="",T=0;for(let S=0;S<B;S++){const V=p.charAt(S);if(T++,encodeURI(V).length>4&&T++,k=k.concat(V),T>=C)return k=k.concat("..."),k}if(T<C)return p}return""}const s=e.computed(()=>!!t.value&&!!t.value.date),i=e.computed(()=>{const p=t.value&&t.value.date||"";return`${a.exception.happend} : ${p}`}),c=e.computed(()=>!!t.value&&!!t.value.detail),r=e.computed(()=>t.value?l(t.value.detail)>160:!1),u=e.ref(!1),v=e.computed(()=>u.value?a.exception.collapse:a.exception.expand),x=e.computed(()=>{const p=a.exception.detail+" : "+(t.value&&t.value.detail)||"";return u.value?p:n(p,160)}),h=e.computed(()=>({bottom:u.value?0:"2px"}));function b(){u.value=!u.value}return()=>e.createVNode("div",{class:"toast-msg-detail",style:"max-height: calc(100vh - 200px);overflow: auto;"},[s.value&&e.createVNode("div",null,[i.value]),c.value&&e.createVNode("div",{class:"exception_wrap"},[e.createVNode("div",{class:"exception_error_msg"},[e.createVNode("div",{innerHTML:x.value},null),r.value&&e.createVNode("span",{class:"exception_toggle_detail",style:h.value,onClick:b},[v.value])])])])}function Be(t){return()=>e.createVNode("p",{class:"toast-msg-detail",innerHTML:t.value,style:"max-height: calc(100vh - 200px);overflow: auto;"},null)}function ke(t,a,l,n,s){const i=e.ref(t.exceptionInfo),c=e.computed(()=>{const C=a.value==="question"?"warning":a.value,B={"f-icon":!0},k=`f-icon-${C}`;return B[k]=!0,B}),r=e.computed(()=>l.value||i.value&&i.value.message),u=e.computed(()=>n.value),v=e.computed(()=>!!n.value),x=e.computed(()=>!!i.value);function h(){return x.value?Me(i,s):v.value?Be(u):()=>null}const b=h(),p=e.computed(()=>s.locale==="en"?{wordBreak:"keep-all",overflowWrap:"break-word"}:{});return()=>e.createVNode(e.Fragment,null,[e.createVNode("div",{class:"float-left modal-tips-iconwrap"},[e.createVNode("span",{class:c.value},null)]),e.createVNode("div",{class:"modal-tips-content"},[e.createVNode("p",{class:"toast-msg-title",innerHTML:r.value,style:p.value},null),b()])])}function Te(t,a,l,n){const{onCopy:s}=a,{toShowFeedback:i}=l,c=e.ref(n.exception.copySuccess||"复制成功"),r=e.ref(n.exception.copy||"复制详细信息"),u=e.ref(t.exceptionInfo||{date:"",message:"",detail:""}),v=e.computed(()=>u.value&&u.value.detail||"");function x(h){s(v.value).catch(b=>{c.value=n.exception.copyFailed||"复制失败"}).finally(()=>{i.value=!0,setTimeout(()=>{i.value=!1},700)})}return()=>e.createVNode("span",{class:"copy-exception-info"},[e.createVNode("span",{onClick:x,style:"cursor: pointer;"},[r.value])])}function Ne(t,a,l,n,s){const i=e.ref(t.type),c=e.ref(t.buttons),r=e.ref(t.exceptionInfo),u=e.ref(s.ok||t.okButtonText),v=e.ref(s.cancel||t.cancelButtonText),x=e.ref(t.showCancelButton),h=e.ref(t.showOkButton),b=e.ref(s.neverShowAgain),p=e.ref(!1),C=e.computed(()=>!!(c.value&&c.value.length)),B=e.computed(()=>!!(r.value&&r.value.detail)),k=e.computed(()=>!(c.value&&c.value.length)&&(h.value||x.value)),T=Te(t,l,n,s);u.value==="关闭"?u.value=s.close:u.value==="知道了"&&(u.value=s.exception.roger);function S(L){i.value==="question"&&a.emit("reject"),a.emit("close")}function V(L){i.value==="question"&&a.emit("accept"),a.emit("close")}function j(L){p.value=!p.value,a.emit("neverShowAgain",{$event:L,neverShowAgain:p.value})}return()=>e.createVNode("div",{class:"modal-footer"},[B.value&&T(),t.enableNeverShowAgain&&!B.value&&e.createVNode("div",{class:"custom-control custom-checkbox mb-0",onClick:j,style:"position: absolute;left: 40px;"},[e.withDirectives(e.createVNode("input",{id:"lookup-include-childs-input","onUpdate:modelValue":L=>p.value=L,title:"checkbox-input",type:"checkbox",class:"custom-control-input"},null),[[e.vModelCheckbox,p.value]]),e.createVNode("label",{class:"custom-control-label",style:"padding-left: 1.2rem;"},[b.value])]),k.value&&x.value&&e.createVNode("button",{type:"button",class:"btn btn-secondary btn-lg",onClick:S},[v.value]),k.value&&h.value&&e.createVNode("button",{type:"button",class:"btn btn-primary btn-lg",onClick:V},[u.value]),C.value&&c.value.length&&c.value.map(L=>e.createVNode("button",{type:"button",onClick:L.handle,class:L.class},[L.iconClass&&e.createVNode("span",{class:L.iconClass},null),L.text]))])}function Se(t){const{getLocaleValue:a}=q.LocaleService,l=q.LocaleService.getLocale();function n(s,i,c){return i===c?a(s):i}return{yes:n("messageBox.yes")||"是",no:n("messageBox.no")||"否",close:n("messageBox.close")||"关闭",ok:n("messageBox.ok",t.okButtonText,"确定")||"确定",cancel:n("messageBox.cancel",t.cancelButtonText,"取消")||"取消",title:n("messageBox.title")||"系统提示",errorTitle:n("messageBox.errorTitle")||"错误提示",exception:{expand:n("messageBox.exception.expand")||"展开",collapse:n("messageBox.exception.collapse")||"收起",happend:n("messageBox.exception.happend")||"发生时间",detail:n("messageBox.exception.detail")||"详细信息",copy:n("messageBox.exception.copy")||"复制详细信息",copySuccess:n("messageBox.exception.copySuccess")||"复制成功",copyFailed:n("messageBox.exception.copyFailed")||"复制失败",roger:n("messageBox.exception.roger")||"知道了"},locale:l,neverShowAgain:n("messageBox.neverShowAgain")||"不再提示"}}const Ve=["moz","ms","webkit"];function Ee(){let t=0;return a=>{const l=new Date().getTime(),n=Math.max(0,16-(l-t)),s=setTimeout(()=>{a(l+n)},n);return t=l+n,s}}function ze(){if(typeof window>"u")return()=>0;if(window.requestAnimationFrame)return window.requestAnimationFrame.bind(window);const t=Ve.filter(a=>`${a}RequestAnimationFrame`in window)[0];return t?window[`${t}RequestAnimationFrame`]:Ee()}ze(),e.ref("");function Re(){const t=navigator.userAgent||navigator.vendor||window.opera,a=[/iPhone/i,/iPod/i,/Android.*Mobile/i,/webOS/i,/BlackBerry/i,/IEMobile/i,/Opera Mini/i,/Harmony/i],l=[/iPad/i,/Android(?!.*Mobile)/i,/Tablet/i,/PlayBook/i,/Kindle/i,/Silk/i];for(const r of l)if(r.test(t))return!1;for(const r of a)if(r.test(t))return!0;const n="ontouchstart"in window||navigator.maxTouchPoints>0,s=screen.width,i=screen.height,c=Math.min(s,i);return!!(n&&c<=768)}const X=e.defineComponent({name:"FMessageBox",props:ie,emits:["accept","reject","close","neverShowAgain"],setup(t,a){const l=Se(t),n=e.ref(t.type),s=e.ref(t.title),i=e.ref(t.detail),c=e.computed(()=>{const T={"modal-tips":!0,"d-flex":!0,"flex-row":!0},S=`messager-type-${n.value}`;return T[S]=!0,T}),r=e.computed(()=>{const T={cursor:"default"};return n.value==="prompt"?T.padding="0.5rem 0.5rem 1rem 1.5rem":n.value==="error"&&(T.padding="0.5rem 1.5rem 1rem 1.5rem"),T}),u=ye(),v=xe(t,n,s,i),x=be(),{feedbackStyle:h,feedbackMessage:b}=x;b.value=l.exception.copySuccess;function p(){return e.createVNode("div",{style:h.value},[b.value])}function C(){switch(n.value){case"prompt":return Ce(t,v);default:return ke(t,n,s,i,l)}}const B=C(),k=Ne(t,a,u,x,l);return()=>e.createVNode("div",{class:["farris-messager",Re()?"is-mobile":""]},[!t.exceptionInfo&&e.createVNode("div",{style:"height: 30px;width: 100%;position: absolute;",class:"messager-draggable"},null),e.createVNode("section",{class:c.value,style:r.value},[B()]),k(),p()])}}),He={allowClickMaskToClose:{type:Boolean,default:!1},beforeClose:{type:Function,default:()=>!0},class:{type:String,default:""},maskClass:{type:String,default:""},title:{type:String,default:""},width:{type:Number,default:500},height:{type:Number,default:320},buttons:{type:Array,default:[]},modelValue:{type:Boolean,default:!1},mask:{type:Boolean,default:!0},showHeader:{type:Boolean,default:!0},showButtons:{type:Boolean,default:!0},fitContent:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showFloatingClose:{type:Boolean,default:!1},showMaxButton:{type:Boolean,default:!1},minHeight:{type:Number},maxHeight:{type:Number},minWidth:{type:Number},maxWidth:{type:Number},containment:{type:Object,default:null},resizeable:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},dragHandle:{type:Object,default:null},closedCallback:{type:Function,default:null},openedCallback:{type:Function,default:null},resizeHandle:{type:Function,default:null},render:{type:Function,default:null},acceptCallback:{type:Function,default:null},rejectCallback:{type:Function,default:null},enableEsc:{type:Boolean,default:!0},enableEnter:{type:Boolean,default:!1},dialogType:{type:String,default:""},src:{type:String,default:""},footerHeight:{type:Number,default:60},position:{type:String,default:"center"},host:{type:Object,default:"body"},isMessager:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1},maximized:{type:Boolean,default:!1},useTransform:{type:Boolean,default:!0}};class H{constructor(a,l){this.x=a,this.y=l}static getTransformInfo(a){const n=window.getComputedStyle(a).getPropertyValue("transform").replace(/[^-\d,]/g,"").split(",");if(n.length>=6){const s=parseInt(n[4],10),i=parseInt(n[5],10);return{x:s,y:i}}return{x:0,y:0}}static fromEvent(a,l=null){if(this.isMouseEvent(a))return new H(a.clientX,a.clientY);if(l===null||a.changedTouches.length===1)return new H(a.changedTouches[0].clientX,a.changedTouches[0].clientY);for(let n=0;n<a.changedTouches.length;n++)if(a.changedTouches[n].target===l)return new H(a.changedTouches[n].clientX,a.changedTouches[n].clientY)}static isMouseEvent(a){return Object.prototype.toString.apply(a).indexOf("MouseEvent")===8}static isIPosition(a){return!!a&&"x"in a&&"y"in a}static getCurrent(a){const l=new H(0,0);if(window){const n=window.getComputedStyle(a);if(n){const s=parseInt(n.getPropertyValue("left"),10),i=parseInt(n.getPropertyValue("top"),10);l.x=isNaN(s)?0:s,l.y=isNaN(i)?0:i}return l}return null}static copy(a){return new H(0,0).set(a)}get value(){return{x:this.x,y:this.y}}add(a){return this.x+=a.x,this.y+=a.y,this}subtract(a){return this.x-=a.x,this.y-=a.y,this}multiply(a){this.x*=a,this.y*=a}divide(a){this.x/=a,this.y/=a}reset(){return this.x=0,this.y=0,this}set(a){return this.x=a.x,this.y=a.y,this}}class ${constructor(a,l){this.width=a,this.height=l}static getCurrent(a){const l=new $(0,0);if(window){const n=window.getComputedStyle(a);return n&&(l.width=parseInt(n.getPropertyValue("width"),10),l.height=parseInt(n.getPropertyValue("height"),10)),l}return null}static copy(a){return new $(0,0).set(a)}set(a){return this.width=a.width,this.height=a.height,this}}function je(t,a){const l=e.ref(),n=e.ref(),s=e.ref(),i=e.ref(),c=e.ref(),r=e.ref(),u=e.ref(),v=e.ref(),x=e.ref(),h=e.ref(),b=e.ref(),p=e.ref(t.resizeable),C=e.ref(),B=e.ref(t.draggable),k=e.ref(!1);function T(){const f=n.value||document.body,m=window.getComputedStyle(f);if(!m||!l.value)return;const N=H.getTransformInfo(l.value),M={};u.value&&(M.deltaL=l.value.offsetLeft-u.value.x,M.deltaT=l.value.offsetTop-u.value.y);const F=m.getPropertyValue("position");M.width=f.clientWidth,M.height=f.clientHeight,M.pr=parseInt(m.getPropertyValue("padding-right"),10),M.pb=parseInt(m.getPropertyValue("padding-bottom"),10),M.position=m.getPropertyValue("position"),F==="static"&&(f.style.position="relative"),M.translateX=N.x,M.translateY=N.y,h.value=M}function S(f){if(l.value){i.value=$.getCurrent(l.value),c.value=H.getCurrent(l.value),r.value=i.value?$.copy(i.value):null,u.value=c.value?H.copy(c.value):null,T();const m=f.target.getAttribute("type")||"";v.value={n:!!m.match(/n/),s:!!m.match(/s/),w:!!m.match(/w/),e:!!m.match(/e/)}}}function V(){var f,m,N,M;if(l.value){const F=l.value;v.value&&((v.value.n||v.value.s)&&((f=r.value)!=null&&f.height)&&(F.style.height=r.value.height+"px"),(v.value.w||v.value.e)&&((m=r.value)!=null&&m.width)&&(F.style.width=r.value.width+"px"),u.value&&((N=u.value)!=null&&N.x&&(F.style.left=u.value.x+"px"),(M=u.value)!=null&&M.y&&(F.style.top=u.value.y+"px")))}}function j(){const f=t.minHeight?t.minHeight:1,m=t.minWidth?t.minWidth:1;r.value&&u.value&&v.value&&i.value&&(r.value.height<f&&(r.value.height=f,v.value.n&&c.value&&(u.value.y=c.value.y+(i.value.height-f))),r.value.width<m&&(r.value.width=m,v.value.w&&c.value&&(u.value.x=c.value.x+(i.value.width-m))),t.maxHeight&&r.value.height>t.maxHeight&&(r.value.height=t.maxHeight,c.value&&v.value.n&&(u.value.y=c.value.y+(i.value.height-t.maxHeight))),t.maxWidth&&r.value.width>t.maxWidth&&(r.value.width=t.maxWidth,v.value.w&&c.value&&(u.value.x=c.value.x+(i.value.width-t.maxWidth))))}function L(){if(n.value){const f=h.value;if(u.value&&r.value&&v.value&&i.value){const m=f.width-f.pr-f.deltaL-f.translateX-u.value.x,N=f.height-f.pb-f.deltaT-f.translateY-u.value.y;v.value.n&&u.value.y+f.translateY<0&&c.value&&(u.value.y=-f.translateY,r.value.height=i.value.height+c.value.y+f.translateY),v.value.w&&u.value.x+f.translateX<0&&c.value&&(u.value.x=-f.translateX,r.value.width=i.value.width+c.value.x+f.translateX),r.value.width>m&&(r.value.width=m),r.value.height>N&&(r.value.height=N)}}}function P(f){if(!s.value||!i.value||!c.value||!v.value)return;f.subtract(s.value);const m=f.x,N=f.y;v.value.n?(u.value.y=c.value.y+N,r.value.height=i.value.height-N):v.value.s&&(r.value.height=i.value.height+N),v.value.e?r.value.width=i.value.width+m:v.value.w&&(r.value.width=i.value.width-m,u.value.x=c.value.x+m),L(),j(),V()}function g(f){if(!x.value)return;const m=H.fromEvent(f);m&&P(m)}function d(){if(l.value){const{width:f,height:m,x:N,y:M}=l.value.getBoundingClientRect(),F=H.getTransformInfo(l.value);return{size:{width:f,height:m},position:{x:N-F.x,y:M-F.y}}}return null}function w(f){if(l.value){const m=d();b.value=m}s.value=void 0,i.value=null,c.value=null,r.value=null,u.value=null,v.value=null,x.value=null,document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",w)}function I(){document.addEventListener("mousemove",g),document.addEventListener("mouseup",w)}function O(f){f instanceof MouseEvent&&f.button===2||B.value&&(document.body.click(),f.stopPropagation(),f.preventDefault(),s.value=H.fromEvent(f),x.value=f.target,S(f),I())}function W(f){return l.value=f,p.value&&e.createVNode(e.Fragment,null,[e.createVNode("div",{class:"fv-resizable-handle fv-resizable-n",type:"n",onMousedown:m=>O(m)},null),e.createVNode("div",{class:"fv-resizable-handle fv-resizable-e",type:"e",onMousedown:m=>O(m)},null),e.createVNode("div",{class:"fv-resizable-handle fv-resizable-s",type:"s",onMousedown:m=>O(m)},null),e.createVNode("div",{class:"fv-resizable-handle fv-resizable-w",type:"w",onMousedown:m=>O(m)},null),e.createVNode("div",{class:"fv-resizable-handle fv-resizable-ne",type:"ne",onMousedown:m=>O(m)},null),e.createVNode("div",{class:"fv-resizable-handle fv-resizable-se fv-resizable-diagonal",type:"se",onMousedown:m=>O(m)},null),e.createVNode("div",{class:"fv-resizable-handle fv-resizable-sw",type:"sw",onMousedown:m=>O(m)},null),e.createVNode("div",{class:"fv-resizable-handle fv-resizable-nw",type:"nw",onMousedown:m=>O(m)},null)])}function D(f=!0){document.body.click();const m=n.value||document.body,N=$.getCurrent(m),M=l.value;f&&M&&(C.value=d(),C.value.transform=M.style.transform),N&&M&&(r.value=N,r.value.height-=14,r.value.width-=14,M.style.height=r.value.height+"px",M.style.width=r.value.width+"px",M.style.left="7px",M.style.top="7px",M.style.transform="",b.value={size:r.value,position:{x:0,y:0}},B.value=!1,k.value=!0)}function ae(){var f,m;if(document.body.click(),C.value){const N={width:C.value.size.width||0,height:C.value.size.height||0},M={x:(window.innerWidth-N.width)/2,y:(window.innerHeight-N.height)/2};(f=r.value)==null||f.set(N),(m=u.value)==null||m.set(M);const F=l.value;F.style.height=N.height+"px",F.style.width=N.width+"px",F.style.left=`${M.x}px`,F.style.top=`${M.y}px`,F.style.transform="",b.value={size:N,position:M},B.value=t.draggable,k.value=!1}}function _(){if(l.value){const f=$.getCurrent(l.value);if(f){const{width:m,height:N}=f;l.value.style.left=`${(window.innerWidth-m)/2}px`,l.value.style.top=`${(window.innerHeight-N)/2}px`,l.value.style.transform=""}}}function ne(){const f=()=>{k.value?D(!1):_(),document.body.click()};return window.addEventListener("resize",f),()=>{window.removeEventListener("resize",f)}}const K=ne();return{renderResizeBar:W,boundingElement:n,resizedEventParam:b,maximize:D,restore:ae,allowDrag:B,isMaximized:k,unWindowResizeHandle:K,moveToCenter:_}}function Le(t,a,l){const n=e.ref(),s=e.ref(t.draggable),i=e.ref(t.lockAxis),c=e.ref(),r=e.ref(),u=e.ref(!1),v=e.ref(new H(0,0)),x=e.ref(new H(0,0)),h=e.ref(new H(0,0)),b=e.ref(new H(0,0));e.watch(()=>l.value,g=>{c.value.style.cursor=g?"move":"default"});function p(g,d){if(d.tagName==="BUTTON")return!1;if(d===g)return!0;for(const w in d.children)if(Object.prototype.hasOwnProperty.call(d.children,w)&&p(g,d.children[w]))return!0;return!1}function C(){var I,O;let g=h.value.x+x.value.x,d=h.value.y+x.value.y;i.value==="x"?(g=((I=v.value)==null?void 0:I.x)||0,h.value.x=0):i.value==="y"&&(d=((O=v.value)==null?void 0:O.y)||0,h.value.y=0);const w=`translate3d(${Math.round(g)}px, ${Math.round(d)}px, 0px)`;n.value&&(n.value.style.transform=w),b.value.x=g,b.value.y=d}function B(){if(!r.value||!n.value)return null;const g=r.value.getBoundingClientRect(),d=n.value.getBoundingClientRect(),w={top:g.top<d.top,right:g.right>d.right,bottom:g.bottom>d.bottom,left:g.left<d.left};return w.top||(h.value.y-=d.top-g.top),w.bottom||(h.value.y-=d.bottom-g.bottom),w.right||(h.value.x-=d.right-g.right),w.left||(h.value.x-=d.left-g.left),C(),w}function k(g){g&&(v.value&&g.subtract(v.value),h.value.set(g),C(),B())}function T(g){u.value&&s.value&&(g.stopPropagation(),g.preventDefault(),k(H.fromEvent(g,c.value)))}function S(){var g;if(u.value){if(u.value=!1,x.value.add(h.value),h.value.reset(),(g=n.value)==null||g.classList.remove("ng-dragging"),!t.useTransform&&n.value){const{left:d,top:w}=n.value.getBoundingClientRect();n.value.style.left=Math.ceil(d)+"px",n.value.style.top=Math.ceil(w)+"px",n.value.style.transform="none"}a.emit("stopMove"),document.removeEventListener("mousemove",T),document.removeEventListener("mouseup",S)}}function V(){!u.value&&c.value&&(u.value=!0,c.value.classList.add("ng-dragging"),document.addEventListener("mousemove",T),document.addEventListener("mouseup",S))}function j(){if(n.value){const g=H.getTransformInfo(n.value);x.value.set(g);return}x.value.reset()}function L(g){if(!l.value||g instanceof MouseEvent&&g.button===2)return;const d=g.target||g.srcElement;c.value!==void 0&&d&&!p(d,c.value)||s.value!==!1&&(document.body.click(),g.stopPropagation(),g.preventDefault(),v.value=H.fromEvent(g,n.value),j(),V())}function P(g,d,w){if(s.value&&d){if(g)c.value=g;else if(t.dragHandle){if(t.dragHandle instanceof HTMLElement)c.value=t.dragHandle;else if(typeof t.dragHandle=="string"){const I=d.querySelector(t.dragHandle);I&&(c.value=I)}}n.value=d,r.value=w,c.value?(c.value.classList.add("ng-draggable"),c.value.addEventListener("mousedown",L)):s.value=!1}}return{registerDraggle:P,resetTranslate:j}}function re(t,a){if(t){const l=n=>{n.key.toLowerCase()===t.toLowerCase()&&a({event:n,key:t})};return document.addEventListener("keydown",l),()=>{document.removeEventListener("keydown",l)}}}function Fe(t,a){const l=e.ref(t.enableEsc);let n=null;return l.value?(n=re("Escape",s=>{a.emit("esc",{event:s.event,type:"esc"})}),{remove:n}):null}function Ie(t,a){const l=e.ref(t.enableEnter);let n=null;return l.value?(n=re("Enter",s=>{a.emit("enter",{event:s.event,type:"enter"})}),{remove:n}):null}const J=e.defineComponent({name:"FModal",props:He,emits:["update:modelValue","accept","cancel","closed","resize","esc","enter","stopMove","buttonClick"],setup(t,a){const l=e.ref(t.width||300),n=e.ref(t.height||200),s=e.ref(t.modelValue),i=e.ref(""),c=e.ref(t.class),r=e.ref(t.fitContent),u=e.ref(t.showHeader),v=e.ref(""),x=e.ref(t.showCloseButton),h=e.ref(t.showMaxButton),b=e.ref(!1),p=e.ref(t.dialogType),C=e.ref(t.src),B=e.ref(""),k=e.ref(t.showButtons),T=e.ref(t.title),S=e.ref(t.containment||null),V=e.ref();T.value==="错误提示"&&(T.value=q.LocaleService.getLocaleValue("messageBox.errorTitle"));const j=e.ref(!1);function L(){const o=document.querySelectorAll(".farris-modal").length;(!o||o-1<=0)&&V.value===document.querySelectorAll(".farris-modal")[0]&&document.body.classList.remove("modal-open"),V.value&&V.value.classList.remove("show")}function P(o,y){const E=y?"accept":"cancel";Promise.resolve().then(()=>{var R;return(R=t.beforeClose)==null?void 0:R.call(t,{closeType:E})}).then(R=>{R&&(s.value=!1,a.emit("update:modelValue",!1),y!=null&&a.emit(y?"accept":"cancel"),a.emit("closed",o),L())})}const g=[{name:"cancel",text:q.LocaleService.getLocaleValue("messageBox.cancel")||"取消",class:"btn btn-secondary",handle:o=>{P(o,!1)}},{name:"accept",text:q.LocaleService.getLocaleValue("messageBox.ok")||"确定",class:"btn btn-primary",handle:o=>{P(o,!0)}}],d=e.ref(t.buttons&&t.buttons.length?t.buttons:g),w=e.computed(()=>!!v.value),I=e.computed(()=>!!k.value&&!!d.value),O=e.ref(),W=e.ref(),D=e.ref(t.maximized||!1),{renderResizeBar:ae,maximize:_,restore:ne,boundingElement:K,resizedEventParam:f,allowDrag:m,unWindowResizeHandle:N,moveToCenter:M}=je(t),{registerDraggle:F}=Le(t,a,m);function de(){return!!document.querySelectorAll(".farris-modal").length&&document.body.classList.contains("modal-open")}e.watch(()=>t.title,(o,y)=>{o!==y&&(T.value=o)}),e.watch(()=>t.modelValue,(o,y)=>{o!==y&&(s.value=o,s.value&&t.draggable&&e.nextTick(()=>{W.value&&!S.value&&(S.value=W.value.parentElement,K.value=S.value,F(O.value,W.value,K.value),M())}),o||(S.value&&(S.value=null),L())),s.value?j.value=de():(D.value=!1,m.value=t.draggable)}),e.watch(()=>t.showHeader,(o,y)=>{o!==y&&(u.value=o)}),e.watch(()=>t.showButtons,(o,y)=>{o!==y&&(k.value=o)}),e.watch(()=>f.value,(o,y)=>{const E=o||{},R=y||{};JSON.stringify(E)!==JSON.stringify(R)&&a.emit("resize",{newSize:o,oldSize:y,isMaximized:D.value})}),e.watch([()=>t.width,()=>t.height],(o,y)=>{(o[0]!==y[0]||o[1]!==y[1])&&(l.value=o[0]||500,n.value=o[1]||600)}),e.watch(()=>t.class,(o,y)=>{c.value=o});const ee=e.computed(()=>(s.value&&document.body.classList.add("modal-open"),s.value)),Pe=e.computed(()=>{var E;const o={modal:!0,"farris-modal":!0,fade:!0,"fe-cmp-page-modal":!!t.showFloatingClose};o["f-modal-fitContent"]=!!r.value,o.show=!!ee.value;const y=(E=t.maskClass)==null?void 0:E.split(" ");return y==null||y.reduce((R,U)=>(R[U]=!0,R),o),o}),De=e.computed(()=>{var E;const o={"modal-dialog":!0},y=(E=c.value)==null?void 0:E.split(" ");return y==null||y.reduce((R,U)=>(R[U]=!0,R),o),o}),Ae=()=>G.isMobilePhone()&&!t.isMessager||!!t.fullscreen,We=e.computed(()=>{const o=document.documentElement.clientWidth,y=document.documentElement.clientHeight;if(D.value)return{position:"fixed",top:"0px",left:"0px",width:"100vw",height:"100vh",margin:"0"};const E=Math.min(l.value,o),R=t.position==="right"?"100%":r.value?"auto":`${Math.min(n.value,y-10)}px`,U=`${(window.innerHeight-(R==="100%"||R==="auto"?0:parseInt(R)))/2}px`,it=t.position==="right"?`${window.innerWidth-E}px`:`${(window.innerWidth-E)/2}px`,he={position:"absolute",top:U,left:it,width:G.isMobilePhone()?"auto":`${E}px`,height:R};return t.mask||(he.pointerEvents="auto"),he}),fe=e.ref(G.getMaxZIndex()||1050),qe=e.computed(()=>{const o={display:"block",overflow:"hidden"};return t.mask||(o.pointerEvents="none",o.backgroundColor="transparent"),j.value&&(o.backgroundColor="transparent"),o.zIndex=fe.value,o}),$e=e.computed(()=>({"modal-content":!0,"modal-content-has-header":u.value,"is-mobile":Ae()})),Ue=e.computed(()=>{const o={display:u.value?"":"none"};return o["pointer-events"]=m.value?"auto":"none",o}),Ye=e.computed(()=>({"f-icon":!0,modal_maximize:!0,modalrevert:D.value})),Xe=e.computed(()=>({"modal-body":!0,"f-utils-flex-column":p.value==="iframe","f-utils-fill":!0}));function Ke(){return{height:`${t.footerHeight||60}px`}}const Je=e.computed(()=>{const o={textAlgin:B.value},y=Ke();return Object.assign(o,y)});function le(o){if(o==null||o.stopPropagation(),D.value){D.value=!1,ne();return}_(),D.value=!0}async function Ze(o,y){o.handle?await o.handle(y,o)&&a.emit("closed",y):a.emit("buttonClick",{button:o,$event:y})}function Ge(o){o.width&&(l.value=o.width),o.height&&(n.value=o.height),o.buttons&&(d.value=o.buttons),o.title&&(T.value=o.title)}let oe=null,se=null;e.onBeforeMount(()=>{j.value=de()}),e.onMounted(()=>{W.value&&!S.value&&(S.value=W.value.parentElement,K.value=S.value,F(O.value,W.value,K.value)),ee.value&&document.body.classList.add("modal-open"),oe=Fe(t,a),se=Ie(t,a)}),e.onUnmounted(()=>{N&&N(),oe&&oe.remove(),se&&se.remove()}),a.expose({modalElementRef:W,updateModalOptions:Ge,close:P,maxDialog:le,isMaximized:D,disableButtons:(o,y=!0)=>{d.value.forEach(E=>{E.name&&o.includes(E.name)&&(E.disabled=y)})}});function Qe(){return e.createVNode("div",{class:"action-wrapper",onClick:o=>P(o,!1)},[e.createVNode("span",{class:"close-icon"},[e.createVNode("i",{class:"f-icon f-icon-close"},null)])])}function _e(){return e.createVNode("ul",null,[b.value&&e.createVNode("li",{class:"f-btn-icon f-bare"},[e.createVNode("span",{class:"f-icon modal_minimize"},null)]),h.value&&e.createVNode("li",{onClick:le,class:"f-btn-icon f-bare",style:"pointer-events: auto;"},[e.createVNode("span",{class:Ye.value},null)]),x.value&&e.createVNode("li",{class:"f-btn-icon f-bare",onClick:o=>P(o,!1),style:"pointer-events: auto;"},[e.createVNode("span",{class:"f-icon modal_close"},null)])])}const et=o=>{o.preventDefault();const y=o.currentTarget,E=o.deltaY*.5;y.scrollLeft+=E};function tt(){return e.createVNode("div",{class:"modal-footer",style:Je.value},[d.value&&e.createVNode("div",{class:"buttons",onWheel:et},[d.value.map(o=>{var R;const y=e.ref(o.disabled),E=o.class||((R=o.appearance)==null?void 0:R.class);return e.createVNode("button",{name:o.name,style:o.styles,type:"button",disabled:y.value,class:E+(o.iconClass?" btn-icontext":"")+(o.visible===!1?"d-none":""),onClick:U=>{Ze(o,U)}},[!!o.iconClass&&e.createVNode("i",{class:o.iconClass},null),o.text])})])])}function me(o){h.value&&le()}function at(){return e.createVNode(e.Fragment,null,[D.value&&e.createVNode("div",{class:"modal-header",style:"position: absolute;background: transparent;height: 45px;width: 100%;",onDblclick:o=>me()},null),e.createVNode("div",{ref:O,class:"modal-header",style:Ue.value,onDblclick:o=>me()},[a.slots.headerTemplate?a.slots.headerTemplate():e.createVNode("div",{class:"modal-title"},[w.value&&e.createVNode("span",{class:v.value,style:"margin-right: 8px"},null),e.createVNode("span",{class:"modal-title-label"},[T.value])]),e.createVNode("div",{class:"actions"},[_e()])])])}function nt(){return a.slots.footerTemplate?a.slots.footerTemplate():I.value&&tt()}function lt(o){if(o.stopPropagation(),t.allowClickMaskToClose){if(o.target!==V.value)return;P(o,!1)}}function ot(){var o,y;return e.createVNode("div",{id:i.value,class:De.value,style:We.value,ref:W},[t.showFloatingClose&&Qe(),e.createVNode("div",{class:$e.value},[u.value&&at(),e.createVNode("div",{class:Xe.value},[(y=(o=a.slots).default)==null?void 0:y.call(o),p.value==="iframe"&&e.createVNode("iframe",{title:i.value,class:"f-utils-fill",width:"100%",frameborder:"0",src:C.value},null)]),nt()]),!r.value&&W.value&&!D.value&&ae(W.value)])}function st(o){return o||"body"}return e.watchEffect(()=>{ee.value&&(fe.value=G.getMaxZIndex()||1050)}),()=>e.createVNode(e.Teleport,{to:st(t.host)},{default:()=>[ee.value&&e.createVNode(e.Transition,{name:"fade",appear:!0},{default:()=>[e.createVNode("div",{ref:V,class:Pe.value,style:qe.value,onClick:lt},[ot()])]})]})}});function ce(t){if(t.content&&t.content.render)return t.content.render;if(t.render&&typeof t.render=="function")return t.render}function Oe(t){const a=document.createElement("div");a.style.display="contents";const l=e.createApp({setup(n,s){e.onUnmounted(()=>{document.body.removeChild(a)});const i=e.ref(),c=e.ref(t.class||""),r=e.ref(!!t.showButtons),u=e.ref(!!t.showHeader),v=e.ref(t.showCloseButton==null?!0:t.showCloseButton),x=e.ref(!!t.showFloatingClose),h=e.ref(!0),b=e.ref(t.title||""),p=t.acceptCallback||(()=>{}),C=t.rejectCallback||(()=>{}),B=t.closedCallback||(j=>{}),k=t.resizeHandle||(j=>{}),T=t.stopMoveHandle||(j=>{}),S=ce(t),V=j=>{h.value=!1,l.unmount(),B(j)};return e.onMounted(()=>{}),s.expose({modalRef:i}),()=>e.createVNode(J,{ref:i,class:c.value,modelValue:h.value,"onUpdate:modelValue":j=>h.value=j,title:b.value,width:t.width,height:t.height,buttons:t.buttons,"show-header":u.value,"show-buttons":r.value,"show-close-button":v.value,"show-max-button":!1,showFloatingClose:x.value,onAccept:p,onCancel:C,fitContent:t.fitContent==null?!0:t.fitContent,onClosed:V,onResize:k,onStopMove:T},{default:()=>[S&&S(l)]})}});return document.body.appendChild(a),l.use(q.LocaleService.i18n),l.mount(a),l}class ue{constructor(a){Y(this,"appContext",null);Y(this,"modalRef",e.ref());Y(this,"activeModalIndex",e.ref(0));Y(this,"modalRefs",{});Y(this,"isUseEscCloseModal",e.ref(!1));this.app=a,this.appContext=a?a._context:null}getCurrentModal(){return this.modalRefs[this.activeModalIndex.value]}adaptToWindow(a,l){const{width:n,height:s}={width:window.innerWidth,height:window.innerHeight};return n<a&&(a=n-14),s<l&&(l=s-14),{width:a,height:l}}static show(a){const l=Object.assign({title:"",showButtons:!0,showHeader:!0},a);return Oe(l)}close(a){var l,n;a?(n=a.value)==null||n.close():(l=this.getCurrentModal())==null||l.close()}open(a){const l=document.createDocumentFragment();a.showMaxButton&&a.fitContent&&(a.showMaxButton=!1);const n=e.shallowRef(Object.assign({title:"",showButtons:!0,showHeader:!0,maximized:!1},a)),s=e.ref(!0),i=n.value.acceptCallback||(()=>{}),c=n.value.rejectCallback||(()=>{}),r=n.value.closedCallback||((d,w)=>{}),u=n.value.openedCallback||(d=>{}),v=n.value.resizeHandle||(d=>{}),x=a.stopMoveHandle||(d=>{});let h;const b=ce(n.value),p=d=>{var I;s.value=!1;const w=(I=d==null?void 0:d.target)==null?void 0:I.classList.contains("modal_close");r(d,this.isUseEscCloseModal.value?"esc":w?"icon":"button")},C=d=>{p(d),h&&e.nextTick(()=>{if(this.modalRefs[this.activeModalIndex.value]&&delete this.modalRefs[this.activeModalIndex.value],e.render(null,l),h=null,this.modalRef.value=null,this.modalRefs){const w=Object.keys(this.modalRefs).map(I=>Number(I));w.length>0?this.activeModalIndex.value=Math.max(...w):this.activeModalIndex.value=0,this.modalRefs[this.activeModalIndex.value]&&(this.modalRef.value=this.modalRefs[this.activeModalIndex.value])}this.isUseEscCloseModal.value=!1})},B=d=>{var w;this.isUseEscCloseModal.value=!0,(w=this.getCurrentModal())==null||w.close(d==null?void 0:d.event)},{width:k,height:T}=n.value,S=this.adaptToWindow(k||500,T||320);Object.assign(n.value,S);const V=e.ref(),j=()=>e.createVNode(J,e.mergeProps({ref:V,modelValue:s.value,"onUpdate:modelValue":d=>s.value=d},n.value,{isMessager:n.value.class&&n.value.class.indexOf("modal-message")>-1,onAccept:i,onCancel:c,onClosed:C,onResize:v,onEsc:B,onStopMove:x,maximized:n.value.maximized}),{default:()=>[b&&b(this.app)]});h=(d=>{const w=e.h(j,d);return w.appContext=this.appContext,e.render(w,l),w})({...n.value}),this.activeModalIndex.value++;const P=this.activeModalIndex.value;this.modalRefs[P]=V.value;const g=d=>{n.value={...n.value,...d},h&&e.render(e.cloneVNode(h,{...n}),l)};return e.nextTick(()=>{this.modalRefs[P]=V.value,this.modalRef.value=V.value,u(new Event("opened"))}),{update:g,destroy:C,modalRef:V,close:()=>{var d;(d=V.value)==null||d.close()},disableButtons:(d,w=!0)=>{var I;(I=V.value)==null||I.disableButtons(d,w)}}}}const Q=Symbol("FModalService");J.install=t=>{t.component(J.name,J);const a=new ue(t);t.provide(Q,a),t.provide("FModalService",a)};const A=class A{static show(a,l,n){let s;if(typeof a=="string"&&l!=null){const T={type:a,title:l,detail:"",...n};s=e.reactive(T)}else s=e.reactive({...a});const i=!1,c=s.type==="error"||s.type==="prompt",r=s.type==="error"?"错误提示":s.type==="prompt"&&s.title||"",u=s.acceptCallback||(()=>{}),v=s.rejectCallback||(()=>{}),x=e.getCurrentInstance();let h=null;if(x&&x.appContext){const{provides:B}=x.appContext;Q in B&&(h=B[Q])}h||(h=A.app._context.provides[Q]);let b=null,p=h||new ue(A.app);const C=()=>{b&&(b==null||b.destroy(),p=null)};return b=p==null?void 0:p.open({class:"modal-message modal-message-type-info",title:r,showButtons:i,showHeader:c,width:s.width||400,fitContent:!0,showMaxButton:!1,draggable:!0,dragHandle:".messager-draggable",render:()=>e.createVNode(X,e.mergeProps(s,{onAccept:u,onReject:v,onClose:C,onNeverShowAgain:s==null?void 0:s.onNeverShowAgain}),null)}),p==null?void 0:p.getCurrentModal()}static info(a,l){const n=e.reactive({type:"info",title:a,detail:l,okButtonText:"知道了",showCancelButton:!1});A.show(n)}static warning(a,l){const n=e.reactive({type:"warning",title:a,detail:l,okButtonText:"知道了",showCancelButton:!1});A.show(n)}static success(a,l){const n=e.reactive({type:"success",title:a,detail:l,okButtonText:"关闭",showCancelButton:!1});A.show(n)}static error(a,l,n){const s=e.reactive({width:500,type:"error",okButtonText:"关闭",showCancelButton:!1,exceptionInfo:{date:n,message:a,detail:l}});A.show(s)}static prompt(a,l){const n=e.reactive({type:"prompt",title:a,detail:l,okButtonText:"确定",cancelButtonText:"取消"});A.show(n)}static question(a,l,n,s,i){const c=e.reactive({type:"question",title:a,detail:l,okButtonText:"确定",cancelButtonText:"取消",acceptCallback:n,rejectCallback:s,enableNeverShowAgain:(i==null?void 0:i.enable)||!1,onNeverShowAgain:i==null?void 0:i.onNeverShowAgain});A.show(c)}static showHtmlMsg(a,l,n,s){const i=e.reactive({type:a,title:l,detail:n,showCancelButton:!1,okButtonText:"确定",acceptCallback:s});A.show(i)}};Y(A,"app",null);let Z=A;X.install=t=>{t.component(X.name,X),Z.app=t,t.provide("FMessageBoxService",Z)},z.FMessageBox=X,z.FMessageBoxService=Z,z.default=X,z.messageBoxProps=ie,Object.defineProperties(z,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});