vxe-pc-ui 4.18.2 → 4.18.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/all.esm.js +16 -7
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/button/src/button.js +11 -3
- package/es/button/style.css +1 -4
- package/es/button/style.min.css +1 -1
- package/es/icon/style.css +1 -1
- package/es/modal/src/modal.js +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/ui/index.js +3 -2
- package/es/ui/src/log.js +1 -1
- package/es/vxe-button/style.css +1 -4
- package/es/vxe-button/style.min.css +1 -1
- package/lib/button/src/button.js +12 -2
- package/lib/button/src/button.min.js +1 -1
- package/lib/button/style/style.css +1 -4
- package/lib/button/style/style.min.css +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/index.umd.js +17 -6
- package/lib/index.umd.min.js +1 -1
- package/lib/modal/src/modal.js +1 -1
- package/lib/modal/src/modal.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/ui/index.js +3 -2
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-button/style/style.css +1 -4
- package/lib/vxe-button/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/button/src/button.ts +12 -4
- package/packages/modal/src/modal.ts +1 -1
- package/packages/ui/index.ts +2 -1
- package/styles/components/button.scss +1 -4
- package/types/components/button.d.ts +5 -0
- package/types/ui/global-icon.d.ts +2 -1
- /package/es/icon/{iconfont.1788693917694.ttf → iconfont.1788745459463.ttf} +0 -0
- /package/es/icon/{iconfont.1788693917694.woff → iconfont.1788745459463.woff} +0 -0
- /package/es/icon/{iconfont.1788693917694.woff2 → iconfont.1788745459463.woff2} +0 -0
- /package/es/{iconfont.1788693917694.ttf → iconfont.1788745459463.ttf} +0 -0
- /package/es/{iconfont.1788693917694.woff → iconfont.1788745459463.woff} +0 -0
- /package/es/{iconfont.1788693917694.woff2 → iconfont.1788745459463.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1788693917694.ttf → iconfont.1788745459463.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1788693917694.woff → iconfont.1788745459463.woff} +0 -0
- /package/lib/icon/style/{iconfont.1788693917694.woff2 → iconfont.1788745459463.woff2} +0 -0
- /package/lib/{iconfont.1788693917694.ttf → iconfont.1788745459463.ttf} +0 -0
- /package/lib/{iconfont.1788693917694.woff → iconfont.1788745459463.woff} +0 -0
- /package/lib/{iconfont.1788693917694.woff2 → iconfont.1788745459463.woff2} +0 -0
package/lib/modal/src/modal.js
CHANGED
|
@@ -898,7 +898,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
898
898
|
const handleGlobalKeydownEvent = evnt => {
|
|
899
899
|
const isEsc = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ESCAPE);
|
|
900
900
|
if (isEsc) {
|
|
901
|
-
const lastModal = _xeUtils.default.max(_store.allActiveModals, item => item.reactData.modalZindex);
|
|
901
|
+
const lastModal = _xeUtils.default.max(_store.allActiveModals.filter(item => item.reactData.zoomStatus !== 'minimize'), item => item.reactData.modalZindex);
|
|
902
902
|
// 多个时,只关掉最上层的窗口
|
|
903
903
|
if (lastModal) {
|
|
904
904
|
setTimeout(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log"),_store=require("./store"),_button=_interopRequireDefault(require("../../button")),_loading=_interopRequireDefault(require("../../loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("modal");function createInternalData(){return{isMoveStatus:!1}}function createReactData(){return{initialized:!1,visible:!1,contentVisible:!1,modalTop:0,modalZindex:0,prevZoomStatus:"",zoomStatus:"",revertLocat:null,prevLocat:null,firstOpen:!0,resizeFlag:1}}let msgQueue=[],notifyQueue=[],lockScrollAttrKey="data-vxe-lock-scroll",lockScrollCssWidthKey="--vxe-ui-modal-lock-scroll-view-width";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeModal",props:{modelValue:Boolean,id:String,type:{type:String,default:"modal"},loading:{type:Boolean,default:null},status:String,iconStatus:String,className:String,top:{type:[Number,String],default:()=>(0,_ui.getConfig)().modal.top},position:[String,Object],title:String,duration:{type:[Number,String],default:()=>(0,_ui.getConfig)().modal.duration},content:[Number,String],useHtml:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.useHtml},showCancelButton:{type:Boolean,default:null},cancelButtonText:{type:String,default:()=>(0,_ui.getConfig)().modal.cancelButtonText},showConfirmButton:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.showConfirmButton},confirmButtonText:{type:String,default:()=>(0,_ui.getConfig)().modal.confirmButtonText},lockView:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.lockView},lockScroll:Boolean,mask:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.mask},maskClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.maskClosable},escClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.escClosable},cancelClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.cancelClosable},confirmClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.confirmClosable},resize:Boolean,border:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.border},showTitleBackground:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.showTitleBackground},showHeader:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.showHeader},showFooter:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.showFooter},preload:Boolean,showZoom:Boolean,zoomConfig:Object,showMaximize:{type:Boolean,default:()=>(0,_utils.handleBooleanDefaultValue)((0,_ui.getConfig)().modal.showMaximize)},showMinimize:{type:Boolean,default:()=>(0,_utils.handleBooleanDefaultValue)((0,_ui.getConfig)().modal.showMinimize)},showClose:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.showClose},dblclickZoom:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.dblclickZoom},width:{type:[Number,String],default:()=>(0,_ui.getConfig)().modal.width},height:{type:[Number,String],default:()=>(0,_ui.getConfig)().modal.height},minWidth:{type:[Number,String],default:()=>(0,_ui.getConfig)().modal.minWidth},minHeight:{type:[Number,String],default:()=>(0,_ui.getConfig)().modal.minHeight},zIndex:Number,marginSize:{type:[Number,String],default:()=>(0,_ui.getConfig)().modal.marginSize},fullscreen:Boolean,draggable:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.draggable},remember:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.remember},destroyOnClose:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.destroyOnClose},showTitleOverflow:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.showTitleOverflow},transfer:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.transfer},appendTo:{type:[String,Function],default:()=>(0,_ui.getConfig)().modal.appendTo},isWithinAppendTo:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.isWithinAppendTo},storage:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.storage},storageKey:{type:String,default:()=>(0,_ui.getConfig)().modal.storageKey},padding:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.padding},size:{type:String,default:()=>(0,_ui.getConfig)().modal.size||(0,_ui.getConfig)().size},beforeHideMethod:Function,slots:Object,message:[Number,String],animat:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.animat}},emits:["update:modelValue","show","hide","before-hide","close","confirm","cancel","zoom","resize","move"],setup(M,e){let{slots:N,emit:i}=e,s=_xeUtils.default.uniqueId(),o=(0,_vue.inject)("$xeModal",null),T=(0,_vue.inject)("$xeDrawer",null),k=(0,_vue.inject)("$xeTable",null),B=(0,_vue.inject)("$xeForm",null),O=(0,_ui.useSize)(M).computeSize,E=(0,_vue.reactive)(createReactData()),f=createInternalData(),U=(0,_vue.ref)(),A=(0,_vue.ref)(),D=(0,_vue.ref)(),n=(0,_vue.ref)(),u=(0,_vue.ref)(),H={refElem:U},Z=(0,_vue.computed)(()=>{var e=M.transfer;if(null===e){var t=(0,_ui.getConfig)().modal.transfer;if(_xeUtils.default.isBoolean(t))return t;if(k||o||T||B)return!0}return e}),I=(0,_vue.computed)(()=>"message"===M.type||"notification"===M.type),L=(0,_vue.computed)(()=>"minimize"===E.zoomStatus),$=(0,_vue.computed)(()=>"maximize"===E.zoomStatus),l=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().modal.zoomConfig,M.zoomConfig)),j={computeSize:O,computeZoomOpts:l},V={xID:s,props:M,context:e,reactData:E,internalData:f,getRefMaps:()=>H,getComputeMaps:()=>j};let z=()=>A.value,r=()=>{var{width:e,height:t,minWidth:o,minHeight:i}=M,l=I.value,a=L.value,s=z();return s&&(s.style.width=e?(0,_dom.toCssUnit)(e):"",s.style.height=t?(0,_dom.toCssUnit)(t):"",s.style.minWidth=l||a||!o?"":(0,_dom.toCssUnit)(o),s.style.minHeight=l||a||!i?"":(0,_dom.toCssUnit)(i)),(0,_vue.nextTick)()},d=()=>{var e=M.zIndex,t=E.modalZindex;e?E.modalZindex=e:I.value?t<(0,_utils.getSubLastZIndex)()&&(E.modalZindex=(0,_utils.nextSubZIndex)()):t<(0,_utils.getLastZIndex)()&&(E.modalZindex=(0,_utils.nextZIndex)())},m=()=>(0,_vue.nextTick)().then(()=>{var{position:o,isWithinAppendTo:i}=M,l=U.value,a=z();if(a){i=(0,_dom.getPopupWrapperElement)(i?l:document.body);if(i){var l=i.clientWidth,i=i.clientHeight,s=_xeUtils.default.toNumber(M.marginSize),n="center"===o,{top:o,left:u}=_xeUtils.default.isString(o)?{top:o,left:o}:Object.assign({},o),r=n||"center"===o;let e="",t="";t=u&&!(n||"center"===u)?(0,_dom.toCssUnit)(u):Math.max(s,l/2-a.offsetWidth/2)+"px",e=o&&!r?(0,_dom.toCssUnit)(o):Math.max(s,i/2-a.offsetHeight/2)+"px",a.style.top=e,a.style.left=t}}}),c=()=>{(0,_vue.nextTick)(()=>{var e=M.type,e="notification"===e?notifyQueue:msgQueue;let o=0;e.forEach(e=>{var t=e.getBox();t&&(o+=_xeUtils.default.toNumber(e.props.top),e.reactData.modalTop=o,o+=t.clientHeight)})})},g=()=>{-1<_store.allActiveModals.indexOf(V)&&_xeUtils.default.remove(_store.allActiveModals,e=>e===V)},v=()=>{var e=M.type,e="notification"===e?notifyQueue:msgQueue;-1<e.indexOf(V)&&_xeUtils.default.remove(e,e=>e===V),c()},a=e=>{let t=M.remember;var o=E.visible;let i=I.value;var l=M.beforeHideMethod||(0,_ui.getConfig)().modal.beforeHideMethod;let a={type:e};return o&&Promise.resolve(l?l(a):null).then(e=>{_xeUtils.default.isError(e)||((e=U.value)&&e.setAttribute("data-effect","y"),i&&v(),E.contentVisible=!1,t||b(),g(),w("before-hide",a,null),setTimeout(()=>{E.visible=!1,oe(!1),w("hide",a,null)},200),y(),setTimeout(()=>{var e=U.value;e&&e.removeAttribute("data-effect")},350))}).catch(e=>e),(0,_vue.nextTick)()},P=e=>{var t="close";w(t,{type:t},e),a(t)},q=e=>{var t=M.confirmClosable,o="confirm";w(o,{type:o},e),t&&a(o)},K=e=>{var t=M.cancelClosable,o="cancel";w(o,{type:o},e),t&&a(o)},p=e=>{var t=(0,_ui.getConfig)().version,e=_xeUtils.default.toStringJSON(localStorage.getItem(e)||"");return e&&e._v===t?e:{_v:t}},S=()=>{var{id:e,storage:t,storageKey:o}=M,{zoomStatus:i,revertLocat:l}=E;i||e&&t&&(i=z())&&((t=p(o))[e]=[i.style.left,i.style.top,i.clientWidth,i.clientHeight].concat(l?[l.left,l.top,l.width,l.height]:[]).map(e=>e?_xeUtils.default.toNumber(e):"").join(","),localStorage.setItem(o,_xeUtils.default.toJSONString(t)))},_=()=>{let s=M.isWithinAppendTo;let{minimizeLayout:e,minimizeMaxSize:t,minimizeHorizontalOffset:n,minimizeVerticalOffset:u,minimizeOffsetMethod:r}=l.value,d="horizontal"===e,m=E.zoomStatus,o=[],i=[],c=(_store.allActiveModals.forEach(e=>{e.xID!==V.xID&&"modal"===e.props.type&&"minimize"===e.reactData.zoomStatus&&("horizontal"===e.getComputeMaps().computeZoomOpts.value.minimizeLayout?o:i).push(e)}),d?o:i);return t&&c.length>=t?(_ui.VxeUI.modal&&_ui.VxeUI.modal.message({status:"error",content:(0,_ui.getI18n)("vxe.modal.miniMaxSize",[t])}),Promise.resolve({status:!1})):(E.prevZoomStatus=m,E.zoomStatus="minimize",(0,_vue.nextTick)().then(()=>{var t=U.value,e=z();if(!e)return{status:!1};var o=D.value;if(!o)return{status:!1};t=(0,_dom.getPopupWrapperElement)(s?t:document.body);if(!t)return{status:!1};var t=t.clientHeight,i=(m||(E.revertLocat={top:e.offsetTop,left:e.offsetLeft,width:e.offsetWidth+(e.style.width?0:1),height:e.offsetHeight+(e.style.height?0:1)}),_xeUtils.default[d?"max":"min"](c,e=>{e=e.getBox();return e?_xeUtils.default.toNumber(e.style[d?"left":"top"]):0}));let l=t-o.offsetHeight-16,a=16;if(i){t=i.getBox();if(t){i=_xeUtils.default.toNumber(t.style.left),t=_xeUtils.default.toNumber(t.style.top);let e={};e=d?Object.assign({},n):Object.assign({},u),a=i+_xeUtils.default.toNumber(e.left),l=t+_xeUtils.default.toNumber(e.top),r&&(e=r({$modal:V,left:a,top:l}),a=_xeUtils.default.toNumber(e.left),l=_xeUtils.default.toNumber(e.top))}}return Object.assign(e.style,{top:l+"px",left:a+"px",width:"200px",height:o.offsetHeight+"px",minHeight:"",minWidth:""}),S(),{status:!0}}))},h=()=>{let l=M.isWithinAppendTo,a=E.zoomStatus;return E.prevZoomStatus=a,E.zoomStatus="maximize",(0,_vue.nextTick)().then(()=>{var e=z();if(e){if(!a){var t=U.value,t=(0,_dom.getPopupWrapperElement)(l?t:document.body);if(!t)return{status:!1};var o=t.clientWidth,t=t.clientHeight,i=_xeUtils.default.toNumber(M.marginSize);E.revertLocat={top:Math.max(i,t/2-e.offsetHeight/2),left:Math.max(i,o/2-e.offsetWidth/2),width:e.offsetWidth+(e.style.width?0:1),height:e.offsetHeight+(e.style.height?0:1)}}Object.assign(e.style,{top:"0",left:"0",width:"100%",height:"100%",minHeight:"",minWidth:""})}return S(),{status:!0}})},x=()=>{var e=M.duration;-1!==e&&(f.msgTimeout=setTimeout(()=>a("close"),_xeUtils.default.toNumber(e)))},y=()=>{var e=document.documentElement,t=e.getAttribute(lockScrollAttrKey);t&&((t=t.split(",").filter(e=>e!==s)).length?e.setAttribute(lockScrollAttrKey,t.join(",")):(e.removeAttribute(lockScrollAttrKey),e.style.removeProperty(lockScrollCssWidthKey)))},t=()=>{let{remember:o,showFooter:i}=M;var e,{initialized:t,visible:l}=E,a=I.value;return t||(E.initialized=!0),l||(t=M.lockScroll,l=I.value,t&&!l&&(t=document.documentElement,l=document.body.clientWidth,(e=(e=t.getAttribute(lockScrollAttrKey))?e.split(","):[]).includes(s)||(e.push(s),t.setAttribute(lockScrollAttrKey,e.join(","))),t.style.setProperty(lockScrollCssWidthKey,l+"px")),f.isMoveStatus=!1,E.visible=!0,E.contentVisible=!1,d(),_store.allActiveModals.push(V),setTimeout(()=>{E.contentVisible=!0,(0,_vue.nextTick)(()=>{M.fullscreen||r(),i&&(e=n.value,t=u.value,e=e||t)&&e.focus();var e,t={type:""};oe(!0),w("show",t,null)})},10),a?(-1===(e="notification"===(e=M.type)?notifyQueue:msgQueue).indexOf(V)&&e.push(V),c(),x()):((0,_vue.nextTick)(()=>{var e=E.firstOpen,t=U.value;t&&t.setAttribute("data-effect","y"),e?(E.firstOpen=!1,(()=>{var{id:e,storage:t,storageKey:o}=M;return!!(e&&t&&p(o)[e])})()?(()=>{var e,t,o,i,l,a,{id:s,storage:n,storageKey:u}=M;s&&n&&(n=p(u)[s])&&(u=z(),[s,n,e,t,o,i,l,a]=n.split(","),u&&(s&&(u.style.left=s+"px"),n&&(u.style.top=n+"px"),e&&(u.style.width=e+"px"),t)&&(u.style.height=t+"px"),o)&&i&&(E.revertLocat={left:o,top:i,width:l,height:a})})():M.fullscreen?(0,_vue.nextTick)(()=>h()):(r(),m().then(()=>{setTimeout(()=>m(),20)}))):o||(r(),m().then(()=>{setTimeout(()=>m(),20)}))}),setTimeout(()=>{var e=U.value;e&&e.removeAttribute("data-effect")},350))),(0,_vue.nextTick)()},F=e=>{var t=U.value;M.maskClosable&&e.target===t&&a("mask")},R=()=>{var e=f.msgTimeout;e&&I.value&&(clearTimeout(e),f.msgTimeout=void 0)},Y=()=>{var e=f.msgTimeout;e||I.value&&x()},X=t=>{if(_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ESCAPE)){let e=_xeUtils.default.max(_store.allActiveModals,e=>e.reactData.modalZindex);e&&setTimeout(()=>{e===V&&e.props.escClosable&&(w("close",{type:"exit"},t),a("exit"))},10)}},Q=()=>{f.isMoveStatus||m()};let b=()=>(E.prevZoomStatus=E.zoomStatus,(E.zoomStatus="",_vue.nextTick)().then(()=>{var e,t=E.revertLocat;return t?(e=z(),E.revertLocat=null,e&&Object.assign(e.style,{top:t.top+"px",left:t.left+"px",width:t.width+"px",height:t.height+"px"}),S(),(0,_vue.nextTick)().then(()=>({status:!0}))):{status:!1}})),C=t=>{let o=E.zoomStatus;return new Promise(e=>{if(t)return"maximize"===t?void e(h()):"minimize"===t?void e(_()):void e(b());e((o?b:h)())}).then(()=>E.zoomStatus||"revert")},J=t=>{var{zoomStatus:e,prevZoomStatus:o}=E;return C("minimize"===e?o||"revert":"minimize").then(e=>{e={type:e};w("zoom",e,t)})},W=t=>C().then(e=>{e={type:e};w("zoom",e,t)});let G=()=>{let t=E.modalZindex;_store.allActiveModals.some(e=>e.reactData.visible&&e.reactData.modalZindex>t)&&d()},ee=e=>{let{storage:t,isWithinAppendTo:o}=M;var i=E.zoomStatus;let m=_xeUtils.default.toNumber(M.marginSize),c=z();if(c&&"maximize"!==i&&0===e.button&&!(0,_dom.getEventTargetNode)(e,c,"trigger--btn").flag){e.preventDefault();i=U.value,i=(0,_dom.getPopupWrapperElement)(o?i:document.body);if(i){let n=i.clientWidth,u=i.clientHeight,r=e.clientX-c.offsetLeft,d=e.clientY-c.offsetTop;document.onmousemove=e=>{e.preventDefault();var t=c.offsetWidth,o=c.offsetHeight,i=m,t=n-t-m-1,l=m,o=u-o-m-1;let a=e.clientX-r,s=e.clientY-d;(a=a>t?t:a)<i&&(a=i),(s=s>o?o:s)<l&&(s=l),c.style.left=a+"px",c.style.top=s+"px",c.className=c.className.replace(/\s?is--drag/,"")+" is--drag",w("move",{type:"move"},e),f.isMoveStatus=!0,E.resizeFlag++},document.onmouseup=()=>{document.onmousemove=null,document.onmouseup=null,t&&(0,_vue.nextTick)(()=>{S()}),E.resizeFlag++,setTimeout(()=>{c.className=c.className.replace(/\s?is--drag/,"")},50)}}}},te=e=>{e.preventDefault();let{storage:b,isWithinAppendTo:t}=M;var o=U.value,o=(0,_dom.getPopupWrapperElement)(t?o:document.body);if(o){let a=o.clientWidth,s=o.clientHeight,n=_xeUtils.default.toNumber(M.marginSize);let u=e.target.getAttribute("data-type"),r=_xeUtils.default.toNumber(M.minWidth),d=_xeUtils.default.toNumber(M.minHeight),m=a,c=s,f=z(),g=f.clientWidth,v=f.clientHeight,p=e.clientX,_=e.clientY,h=f.offsetTop,x=f.offsetLeft,y={type:"resize"};document.onmousemove=e=>{e.preventDefault();let t,o,i,l;switch(u){case"wl":t=p-e.clientX,i=t+g,x-t>n&&i>r&&(f.style.width=`${i<m?i:m}px`,f.style.left=x-t+"px");break;case"swst":t=p-e.clientX,o=_-e.clientY,i=t+g,l=o+v,x-t>n&&i>r&&(f.style.width=`${i<m?i:m}px`,f.style.left=x-t+"px"),h-o>n&&l>d&&(f.style.height=`${l<c?l:c}px`,f.style.top=h-o+"px");break;case"swlb":t=p-e.clientX,o=e.clientY-_,i=t+g,l=o+v,x-t>n&&i>r&&(f.style.width=`${i<m?i:m}px`,f.style.left=x-t+"px"),h+l+n<s&&l>d&&(f.style.height=`${l<c?l:c}px`);break;case"st":o=_-e.clientY,l=v+o,h-o>n&&l>d&&(f.style.height=`${l<c?l:c}px`,f.style.top=h-o+"px");break;case"wr":t=e.clientX-p,i=t+g,x+i+n<a&&i>r&&(f.style.width=`${i<m?i:m}px`);break;case"sest":t=e.clientX-p,o=_-e.clientY,i=t+g,l=o+v,x+i+n<a&&i>r&&(f.style.width=`${i<m?i:m}px`),h-o>n&&l>d&&(f.style.height=`${l<c?l:c}px`,f.style.top=h-o+"px");break;case"selb":t=e.clientX-p,o=e.clientY-_,i=t+g,l=o+v,x+i+n<a&&i>r&&(f.style.width=`${i<m?i:m}px`),h+l+n<s&&l>d&&(f.style.height=`${l<c?l:c}px`);break;case"sb":o=e.clientY-_,l=o+v,h+l+n<s&&l>d&&(f.style.height=`${l<c?l:c}px`)}f.className=f.className.replace(/\s?is--drag/,"")+" is--drag",b&&S(),w("resize",y,e)},document.onmouseup=()=>{E.revertLocat=null,document.onmousemove=null,document.onmouseup=null,setTimeout(()=>{f.className=f.className.replace(/\s?is--drag/,"")},50)}}},w=(e,t,o)=>{i(e,(0,_ui.createEvent)(o,{$modal:V},t))},oe=e=>{i("update:modelValue",e)},ie=(e={dispatchEvent:w,open:t,close(){return a("close")},getBox:z,getPosition:()=>{if(!I.value){var e=z();if(e)return{top:e.offsetTop,left:e.offsetLeft}}return null},setPosition:(e,t)=>{var o;return I.value||(o=z())&&(_xeUtils.default.isNumber(e)&&(o.style.top=e+"px"),_xeUtils.default.isNumber(t))&&(o.style.left=t+"px"),(0,_vue.nextTick)()},isMinimized:()=>"minimize"===E.zoomStatus,isMaximized:()=>"maximize"===E.zoomStatus,zoom(){return C()},minimize(){return E.visible?_():Promise.resolve({status:!1})},maximize(){return E.visible?h():Promise.resolve({status:!1})},revert(){return E.visible?b():Promise.resolve({status:!1})}},Object.assign(V,e),()=>{var{slots:e={},showClose:t,showZoom:o,showMaximize:i,showMinimize:l,title:a}=M,s=E.zoomStatus,n=N.title||e.title,e=N.corner||e.corner,u=L.value,r=$.value;return[(0,_vue.h)("div",{class:"vxe-modal--header-title"},n?(0,_vn.getSlotVNs)(n({$modal:V,minimized:u,maximized:r})):a?(0,_utils.getFuncText)(a):(0,_ui.getI18n)("vxe.alert.title")),(0,_vue.h)("div",{class:"vxe-modal--header-right"},[e&&!u?(0,_vue.h)("div",{class:"vxe-modal--corner-wrapper"},(0,_vn.getSlotVNs)(e({$modal:V}))):(0,_ui.renderEmptyElement)(V),(_xeUtils.default.isBoolean(l)?l:o)?(0,_vue.h)("div",{class:["vxe-modal--zoom-btn","trigger--btn"],title:(0,_ui.getI18n)("vxe.modal.zoom"+("minimize"===s?"Out":"Min")),onClick:J},[(0,_vue.h)("i",{class:"minimize"===s?(0,_ui.getIcon)().MODAL_ZOOM_REVERT:(0,_ui.getIcon)().MODAL_ZOOM_MIN})]):(0,_ui.renderEmptyElement)(V),(_xeUtils.default.isBoolean(i)?i:o)&&"minimize"!==s?(0,_vue.h)("div",{class:["vxe-modal--zoom-btn","trigger--btn"],title:(0,_ui.getI18n)("vxe.modal.zoom"+("maximize"===s?"Out":"In")),onClick:W},[(0,_vue.h)("i",{class:"maximize"===s?(0,_ui.getIcon)().MODAL_ZOOM_OUT:(0,_ui.getIcon)().MODAL_ZOOM_IN})]):(0,_ui.renderEmptyElement)(V),t?(0,_vue.h)("div",{class:["vxe-modal--close-btn","trigger--btn"],title:(0,_ui.getI18n)("vxe.modal.close"),onClick:P},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().MODAL_CLOSE})]):(0,_ui.renderEmptyElement)(V)])]}),le=()=>{var{slots:e={},showCancelButton:t,showConfirmButton:o,type:i,loading:l}=M,a=N.leftfoot||e.leftfoot,e=N.rightfoot||e.rightfoot,s=[];return(_xeUtils.default.isBoolean(t)?t:"confirm"===i)&&s.push((0,_vue.h)(_button.default,{key:1,ref:u,content:M.cancelButtonText||(0,_ui.getI18n)("vxe.button.cancel"),onClick:K})),(_xeUtils.default.isBoolean(o)?o:"confirm"===i||"alert"===i)&&s.push((0,_vue.h)(_button.default,{key:2,ref:n,loading:l,status:"primary",content:M.confirmButtonText||(0,_ui.getI18n)("vxe.button.confirm"),onClick:q})),(0,_vue.h)("div",{class:"vxe-modal--footer-wrapper"},[(0,_vue.h)("div",{class:"vxe-modal--footer-left"},a?(0,_vn.getSlotVNs)(a({$modal:V})):[]),(0,_vue.h)("div",{class:"vxe-modal--footer-right"},e?(0,_vn.getSlotVNs)(e({$modal:V})):s)])};return V.renderVN=()=>{var{border:e,showTitleBackground:t,slots:o={},className:i,type:l,animat:a,draggable:s,iconStatus:n,position:u,loading:r,destroyOnClose:d,status:m,lockScroll:c,padding:f,lockView:g,mask:v,resize:p,appendTo:_,isWithinAppendTo:h}=M,{initialized:x,modalTop:y,contentVisible:b,visible:z,zoomStatus:S}=E,o=N.aside||o.aside,C=O.value,w=I.value,T=L.value,k=Z.value,B={};return w&&(B.onMouseover=R,B.onMouseout=Y),(0,_vue.h)(_vue.Teleport,{to:(0,_dom.getPopupContainer)(_),disabled:!k||!x},[(0,_vue.h)("div",Object.assign({ref:U,class:["vxe-modal--wrapper","type--"+l,"zoom--"+(S||"revert"),u?"pos--"+u:"",h?"ctx--within":"ctx--free",i||"",{["size--"+C]:C,["status--"+m]:m,"is--padding":f,"is--border":e,"is--title-bg":t,"is--animat":a,"lock--scroll":c,"lock--view":g,"is--draggable":s,"is--resize":p,"is--mask":v,"is--visible":b,"is--active":z,"is--loading":r}],style:{zIndex:E.modalZindex,top:y?y+"px":null},onClick:F},B),[(0,_vue.h)("div",{ref:A,class:"vxe-modal--box",onMousedown:G},[!w&&!o||T?(0,_ui.renderEmptyElement)(V):(0,_vue.h)("div",{class:"vxe-modal--aside"},o?(0,_vn.getSlotVNs)(o({$modal:V})):[m||n?(0,_vue.h)("div",{class:"vxe-modal--status-wrapper"},[(0,_vue.h)("i",{class:["vxe-modal--status-icon",n||(0,_ui.getIcon)()[("MODAL_"+m).toLocaleUpperCase()]]})]):(0,_ui.renderEmptyElement)(V)]),(0,_vue.h)("div",{class:"vxe-modal--container"},!E.initialized||d&&!E.visible?[]:[(()=>{var e,{slots:t={},showZoom:o,showMaximize:i,draggable:l}=M,t=N.header||t.header;return M.showHeader?(e={},l&&(e.onMousedown=ee),(_xeUtils.default.isBoolean(i)?i:o)&&M.dblclickZoom&&"modal"===M.type&&(e.onDblclick=W),(0,_vue.h)("div",Object.assign({ref:D,class:["vxe-modal--header",{"is--ellipsis":M.showTitleOverflow}]},e),t?(0,_vn.getSlotVNs)(t({$modal:V})):ie())):(0,_ui.renderEmptyElement)(V)})(),(()=>{var{slots:e={},status:t,message:o,iconStatus:i,useHtml:l}=M,o=M.content||o,a=I.value,s=N.default||e.default,n=N.left||e.left,e=N.right||e.right,u=[];return a||!t&&!i||u.push((0,_vue.h)("div",{class:"vxe-modal--status-wrapper"},[(0,_vue.h)("i",{class:["vxe-modal--status-icon",i||(0,_ui.getIcon)()[("MODAL_"+t).toLocaleUpperCase()]]})])),u.push(l&&!s?(0,_vue.h)("div",{key:"hc",class:"vxe-modal--content",innerHTML:(0,_utils.getFuncText)(o)}):(0,_vue.h)("div",{key:"dc",class:"vxe-modal--content"},s?(0,_vn.getSlotVNs)(s({$modal:V})):(0,_utils.getFuncText)(o))),(0,_vue.h)("div",{class:"vxe-modal--body"},[n?(0,_vue.h)("div",{class:"vxe-modal--body-left"},(0,_vn.getSlotVNs)(n({$modal:V}))):(0,_ui.renderEmptyElement)(V),(0,_vue.h)("div",{class:"vxe-modal--body-default"},u),e?(0,_vue.h)("div",{class:"vxe-modal--body-right"},(0,_vn.getSlotVNs)(e({$modal:V}))):(0,_ui.renderEmptyElement)(V),a?(0,_ui.renderEmptyElement)(V):(0,_vue.h)(_loading.default,{class:"vxe-modal--loading",modelValue:M.loading})])})(),(()=>{var{slots:e={}}=M,e=N.footer||e.footer;return M.showFooter?(0,_vue.h)("div",{class:"vxe-modal--footer"},e?(0,_vn.getSlotVNs)(e({$modal:V})):[le()]):(0,_ui.renderEmptyElement)(V)})(),!w&&p?(0,_vue.h)("span",{class:"vxe-modal--resize"},["wl","wr","swst","sest","st","swlb","selb","sb"].map(e=>(0,_vue.h)("span",{class:e+"-resize","data-type":e,onMousedown:te}))):(0,_ui.renderEmptyElement)(V)])])])])},(0,_vue.watch)(()=>M.width,r),(0,_vue.watch)(()=>M.height,r),(0,_vue.watch)(()=>M.modelValue,e=>{e?t():a("model")}),(0,_vue.onMounted)(()=>{"modal"===M.type&&M.showFooter&&!(M.showConfirmButton||M.showCancelButton||N.footer)&&warnLog("vxe.modal.footPropErr"),E.initialized=!!M.preload,(0,_vue.nextTick)(()=>{M.storage&&!M.id&&errLog("vxe.error.reqProp",["id"]),M.modelValue&&t(),r()}),M.escClosable&&_ui.globalEvents.on(V,"keydown",X),_ui.globalEvents.on(V,"resize",Q)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(V,"keydown"),_ui.globalEvents.off(V,"resize"),v(),g(),y(),_xeUtils.default.assign(E,createReactData()),_xeUtils.default.assign(f,createInternalData())}),(0,_vue.provide)("$xeModal",V),V},render(){return this.renderVN()}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log"),_store=require("./store"),_button=_interopRequireDefault(require("../../button")),_loading=_interopRequireDefault(require("../../loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("modal");function createInternalData(){return{isMoveStatus:!1}}function createReactData(){return{initialized:!1,visible:!1,contentVisible:!1,modalTop:0,modalZindex:0,prevZoomStatus:"",zoomStatus:"",revertLocat:null,prevLocat:null,firstOpen:!0,resizeFlag:1}}let msgQueue=[],notifyQueue=[],lockScrollAttrKey="data-vxe-lock-scroll",lockScrollCssWidthKey="--vxe-ui-modal-lock-scroll-view-width";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeModal",props:{modelValue:Boolean,id:String,type:{type:String,default:"modal"},loading:{type:Boolean,default:null},status:String,iconStatus:String,className:String,top:{type:[Number,String],default:()=>(0,_ui.getConfig)().modal.top},position:[String,Object],title:String,duration:{type:[Number,String],default:()=>(0,_ui.getConfig)().modal.duration},content:[Number,String],useHtml:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.useHtml},showCancelButton:{type:Boolean,default:null},cancelButtonText:{type:String,default:()=>(0,_ui.getConfig)().modal.cancelButtonText},showConfirmButton:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.showConfirmButton},confirmButtonText:{type:String,default:()=>(0,_ui.getConfig)().modal.confirmButtonText},lockView:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.lockView},lockScroll:Boolean,mask:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.mask},maskClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.maskClosable},escClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.escClosable},cancelClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.cancelClosable},confirmClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.confirmClosable},resize:Boolean,border:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.border},showTitleBackground:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.showTitleBackground},showHeader:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.showHeader},showFooter:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.showFooter},preload:Boolean,showZoom:Boolean,zoomConfig:Object,showMaximize:{type:Boolean,default:()=>(0,_utils.handleBooleanDefaultValue)((0,_ui.getConfig)().modal.showMaximize)},showMinimize:{type:Boolean,default:()=>(0,_utils.handleBooleanDefaultValue)((0,_ui.getConfig)().modal.showMinimize)},showClose:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.showClose},dblclickZoom:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.dblclickZoom},width:{type:[Number,String],default:()=>(0,_ui.getConfig)().modal.width},height:{type:[Number,String],default:()=>(0,_ui.getConfig)().modal.height},minWidth:{type:[Number,String],default:()=>(0,_ui.getConfig)().modal.minWidth},minHeight:{type:[Number,String],default:()=>(0,_ui.getConfig)().modal.minHeight},zIndex:Number,marginSize:{type:[Number,String],default:()=>(0,_ui.getConfig)().modal.marginSize},fullscreen:Boolean,draggable:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.draggable},remember:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.remember},destroyOnClose:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.destroyOnClose},showTitleOverflow:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.showTitleOverflow},transfer:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.transfer},appendTo:{type:[String,Function],default:()=>(0,_ui.getConfig)().modal.appendTo},isWithinAppendTo:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.isWithinAppendTo},storage:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.storage},storageKey:{type:String,default:()=>(0,_ui.getConfig)().modal.storageKey},padding:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.padding},size:{type:String,default:()=>(0,_ui.getConfig)().modal.size||(0,_ui.getConfig)().size},beforeHideMethod:Function,slots:Object,message:[Number,String],animat:{type:Boolean,default:()=>(0,_ui.getConfig)().modal.animat}},emits:["update:modelValue","show","hide","before-hide","close","confirm","cancel","zoom","resize","move"],setup(M,e){let{slots:N,emit:i}=e,s=_xeUtils.default.uniqueId(),o=(0,_vue.inject)("$xeModal",null),T=(0,_vue.inject)("$xeDrawer",null),k=(0,_vue.inject)("$xeTable",null),B=(0,_vue.inject)("$xeForm",null),O=(0,_ui.useSize)(M).computeSize,E=(0,_vue.reactive)(createReactData()),f=createInternalData(),U=(0,_vue.ref)(),A=(0,_vue.ref)(),D=(0,_vue.ref)(),n=(0,_vue.ref)(),u=(0,_vue.ref)(),H={refElem:U},Z=(0,_vue.computed)(()=>{var e=M.transfer;if(null===e){var t=(0,_ui.getConfig)().modal.transfer;if(_xeUtils.default.isBoolean(t))return t;if(k||o||T||B)return!0}return e}),I=(0,_vue.computed)(()=>"message"===M.type||"notification"===M.type),L=(0,_vue.computed)(()=>"minimize"===E.zoomStatus),$=(0,_vue.computed)(()=>"maximize"===E.zoomStatus),l=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().modal.zoomConfig,M.zoomConfig)),j={computeSize:O,computeZoomOpts:l},V={xID:s,props:M,context:e,reactData:E,internalData:f,getRefMaps:()=>H,getComputeMaps:()=>j};let z=()=>A.value,r=()=>{var{width:e,height:t,minWidth:o,minHeight:i}=M,l=I.value,a=L.value,s=z();return s&&(s.style.width=e?(0,_dom.toCssUnit)(e):"",s.style.height=t?(0,_dom.toCssUnit)(t):"",s.style.minWidth=l||a||!o?"":(0,_dom.toCssUnit)(o),s.style.minHeight=l||a||!i?"":(0,_dom.toCssUnit)(i)),(0,_vue.nextTick)()},d=()=>{var e=M.zIndex,t=E.modalZindex;e?E.modalZindex=e:I.value?t<(0,_utils.getSubLastZIndex)()&&(E.modalZindex=(0,_utils.nextSubZIndex)()):t<(0,_utils.getLastZIndex)()&&(E.modalZindex=(0,_utils.nextZIndex)())},m=()=>(0,_vue.nextTick)().then(()=>{var{position:o,isWithinAppendTo:i}=M,l=U.value,a=z();if(a){i=(0,_dom.getPopupWrapperElement)(i?l:document.body);if(i){var l=i.clientWidth,i=i.clientHeight,s=_xeUtils.default.toNumber(M.marginSize),n="center"===o,{top:o,left:u}=_xeUtils.default.isString(o)?{top:o,left:o}:Object.assign({},o),r=n||"center"===o;let e="",t="";t=u&&!(n||"center"===u)?(0,_dom.toCssUnit)(u):Math.max(s,l/2-a.offsetWidth/2)+"px",e=o&&!r?(0,_dom.toCssUnit)(o):Math.max(s,i/2-a.offsetHeight/2)+"px",a.style.top=e,a.style.left=t}}}),c=()=>{(0,_vue.nextTick)(()=>{var e=M.type,e="notification"===e?notifyQueue:msgQueue;let o=0;e.forEach(e=>{var t=e.getBox();t&&(o+=_xeUtils.default.toNumber(e.props.top),e.reactData.modalTop=o,o+=t.clientHeight)})})},g=()=>{-1<_store.allActiveModals.indexOf(V)&&_xeUtils.default.remove(_store.allActiveModals,e=>e===V)},v=()=>{var e=M.type,e="notification"===e?notifyQueue:msgQueue;-1<e.indexOf(V)&&_xeUtils.default.remove(e,e=>e===V),c()},a=e=>{let t=M.remember;var o=E.visible;let i=I.value;var l=M.beforeHideMethod||(0,_ui.getConfig)().modal.beforeHideMethod;let a={type:e};return o&&Promise.resolve(l?l(a):null).then(e=>{_xeUtils.default.isError(e)||((e=U.value)&&e.setAttribute("data-effect","y"),i&&v(),E.contentVisible=!1,t||b(),g(),w("before-hide",a,null),setTimeout(()=>{E.visible=!1,oe(!1),w("hide",a,null)},200),y(),setTimeout(()=>{var e=U.value;e&&e.removeAttribute("data-effect")},350))}).catch(e=>e),(0,_vue.nextTick)()},P=e=>{var t="close";w(t,{type:t},e),a(t)},q=e=>{var t=M.confirmClosable,o="confirm";w(o,{type:o},e),t&&a(o)},K=e=>{var t=M.cancelClosable,o="cancel";w(o,{type:o},e),t&&a(o)},p=e=>{var t=(0,_ui.getConfig)().version,e=_xeUtils.default.toStringJSON(localStorage.getItem(e)||"");return e&&e._v===t?e:{_v:t}},S=()=>{var{id:e,storage:t,storageKey:o}=M,{zoomStatus:i,revertLocat:l}=E;i||e&&t&&(i=z())&&((t=p(o))[e]=[i.style.left,i.style.top,i.clientWidth,i.clientHeight].concat(l?[l.left,l.top,l.width,l.height]:[]).map(e=>e?_xeUtils.default.toNumber(e):"").join(","),localStorage.setItem(o,_xeUtils.default.toJSONString(t)))},_=()=>{let s=M.isWithinAppendTo;let{minimizeLayout:e,minimizeMaxSize:t,minimizeHorizontalOffset:n,minimizeVerticalOffset:u,minimizeOffsetMethod:r}=l.value,d="horizontal"===e,m=E.zoomStatus,o=[],i=[],c=(_store.allActiveModals.forEach(e=>{e.xID!==V.xID&&"modal"===e.props.type&&"minimize"===e.reactData.zoomStatus&&("horizontal"===e.getComputeMaps().computeZoomOpts.value.minimizeLayout?o:i).push(e)}),d?o:i);return t&&c.length>=t?(_ui.VxeUI.modal&&_ui.VxeUI.modal.message({status:"error",content:(0,_ui.getI18n)("vxe.modal.miniMaxSize",[t])}),Promise.resolve({status:!1})):(E.prevZoomStatus=m,E.zoomStatus="minimize",(0,_vue.nextTick)().then(()=>{var t=U.value,e=z();if(!e)return{status:!1};var o=D.value;if(!o)return{status:!1};t=(0,_dom.getPopupWrapperElement)(s?t:document.body);if(!t)return{status:!1};var t=t.clientHeight,i=(m||(E.revertLocat={top:e.offsetTop,left:e.offsetLeft,width:e.offsetWidth+(e.style.width?0:1),height:e.offsetHeight+(e.style.height?0:1)}),_xeUtils.default[d?"max":"min"](c,e=>{e=e.getBox();return e?_xeUtils.default.toNumber(e.style[d?"left":"top"]):0}));let l=t-o.offsetHeight-16,a=16;if(i){t=i.getBox();if(t){i=_xeUtils.default.toNumber(t.style.left),t=_xeUtils.default.toNumber(t.style.top);let e={};e=d?Object.assign({},n):Object.assign({},u),a=i+_xeUtils.default.toNumber(e.left),l=t+_xeUtils.default.toNumber(e.top),r&&(e=r({$modal:V,left:a,top:l}),a=_xeUtils.default.toNumber(e.left),l=_xeUtils.default.toNumber(e.top))}}return Object.assign(e.style,{top:l+"px",left:a+"px",width:"200px",height:o.offsetHeight+"px",minHeight:"",minWidth:""}),S(),{status:!0}}))},h=()=>{let l=M.isWithinAppendTo,a=E.zoomStatus;return E.prevZoomStatus=a,E.zoomStatus="maximize",(0,_vue.nextTick)().then(()=>{var e=z();if(e){if(!a){var t=U.value,t=(0,_dom.getPopupWrapperElement)(l?t:document.body);if(!t)return{status:!1};var o=t.clientWidth,t=t.clientHeight,i=_xeUtils.default.toNumber(M.marginSize);E.revertLocat={top:Math.max(i,t/2-e.offsetHeight/2),left:Math.max(i,o/2-e.offsetWidth/2),width:e.offsetWidth+(e.style.width?0:1),height:e.offsetHeight+(e.style.height?0:1)}}Object.assign(e.style,{top:"0",left:"0",width:"100%",height:"100%",minHeight:"",minWidth:""})}return S(),{status:!0}})},x=()=>{var e=M.duration;-1!==e&&(f.msgTimeout=setTimeout(()=>a("close"),_xeUtils.default.toNumber(e)))},y=()=>{var e=document.documentElement,t=e.getAttribute(lockScrollAttrKey);t&&((t=t.split(",").filter(e=>e!==s)).length?e.setAttribute(lockScrollAttrKey,t.join(",")):(e.removeAttribute(lockScrollAttrKey),e.style.removeProperty(lockScrollCssWidthKey)))},t=()=>{let{remember:o,showFooter:i}=M;var e,{initialized:t,visible:l}=E,a=I.value;return t||(E.initialized=!0),l||(t=M.lockScroll,l=I.value,t&&!l&&(t=document.documentElement,l=document.body.clientWidth,(e=(e=t.getAttribute(lockScrollAttrKey))?e.split(","):[]).includes(s)||(e.push(s),t.setAttribute(lockScrollAttrKey,e.join(","))),t.style.setProperty(lockScrollCssWidthKey,l+"px")),f.isMoveStatus=!1,E.visible=!0,E.contentVisible=!1,d(),_store.allActiveModals.push(V),setTimeout(()=>{E.contentVisible=!0,(0,_vue.nextTick)(()=>{M.fullscreen||r(),i&&(e=n.value,t=u.value,e=e||t)&&e.focus();var e,t={type:""};oe(!0),w("show",t,null)})},10),a?(-1===(e="notification"===(e=M.type)?notifyQueue:msgQueue).indexOf(V)&&e.push(V),c(),x()):((0,_vue.nextTick)(()=>{var e=E.firstOpen,t=U.value;t&&t.setAttribute("data-effect","y"),e?(E.firstOpen=!1,(()=>{var{id:e,storage:t,storageKey:o}=M;return!!(e&&t&&p(o)[e])})()?(()=>{var e,t,o,i,l,a,{id:s,storage:n,storageKey:u}=M;s&&n&&(n=p(u)[s])&&(u=z(),[s,n,e,t,o,i,l,a]=n.split(","),u&&(s&&(u.style.left=s+"px"),n&&(u.style.top=n+"px"),e&&(u.style.width=e+"px"),t)&&(u.style.height=t+"px"),o)&&i&&(E.revertLocat={left:o,top:i,width:l,height:a})})():M.fullscreen?(0,_vue.nextTick)(()=>h()):(r(),m().then(()=>{setTimeout(()=>m(),20)}))):o||(r(),m().then(()=>{setTimeout(()=>m(),20)}))}),setTimeout(()=>{var e=U.value;e&&e.removeAttribute("data-effect")},350))),(0,_vue.nextTick)()},F=e=>{var t=U.value;M.maskClosable&&e.target===t&&a("mask")},R=()=>{var e=f.msgTimeout;e&&I.value&&(clearTimeout(e),f.msgTimeout=void 0)},Y=()=>{var e=f.msgTimeout;e||I.value&&x()},X=t=>{if(_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ESCAPE)){let e=_xeUtils.default.max(_store.allActiveModals.filter(e=>"minimize"!==e.reactData.zoomStatus),e=>e.reactData.modalZindex);e&&setTimeout(()=>{e===V&&e.props.escClosable&&(w("close",{type:"exit"},t),a("exit"))},10)}},Q=()=>{f.isMoveStatus||m()};let b=()=>(E.prevZoomStatus=E.zoomStatus,(E.zoomStatus="",_vue.nextTick)().then(()=>{var e,t=E.revertLocat;return t?(e=z(),E.revertLocat=null,e&&Object.assign(e.style,{top:t.top+"px",left:t.left+"px",width:t.width+"px",height:t.height+"px"}),S(),(0,_vue.nextTick)().then(()=>({status:!0}))):{status:!1}})),C=t=>{let o=E.zoomStatus;return new Promise(e=>{if(t)return"maximize"===t?void e(h()):"minimize"===t?void e(_()):void e(b());e((o?b:h)())}).then(()=>E.zoomStatus||"revert")},J=t=>{var{zoomStatus:e,prevZoomStatus:o}=E;return C("minimize"===e?o||"revert":"minimize").then(e=>{e={type:e};w("zoom",e,t)})},W=t=>C().then(e=>{e={type:e};w("zoom",e,t)});let G=()=>{let t=E.modalZindex;_store.allActiveModals.some(e=>e.reactData.visible&&e.reactData.modalZindex>t)&&d()},ee=e=>{let{storage:t,isWithinAppendTo:o}=M;var i=E.zoomStatus;let m=_xeUtils.default.toNumber(M.marginSize),c=z();if(c&&"maximize"!==i&&0===e.button&&!(0,_dom.getEventTargetNode)(e,c,"trigger--btn").flag){e.preventDefault();i=U.value,i=(0,_dom.getPopupWrapperElement)(o?i:document.body);if(i){let n=i.clientWidth,u=i.clientHeight,r=e.clientX-c.offsetLeft,d=e.clientY-c.offsetTop;document.onmousemove=e=>{e.preventDefault();var t=c.offsetWidth,o=c.offsetHeight,i=m,t=n-t-m-1,l=m,o=u-o-m-1;let a=e.clientX-r,s=e.clientY-d;(a=a>t?t:a)<i&&(a=i),(s=s>o?o:s)<l&&(s=l),c.style.left=a+"px",c.style.top=s+"px",c.className=c.className.replace(/\s?is--drag/,"")+" is--drag",w("move",{type:"move"},e),f.isMoveStatus=!0,E.resizeFlag++},document.onmouseup=()=>{document.onmousemove=null,document.onmouseup=null,t&&(0,_vue.nextTick)(()=>{S()}),E.resizeFlag++,setTimeout(()=>{c.className=c.className.replace(/\s?is--drag/,"")},50)}}}},te=e=>{e.preventDefault();let{storage:b,isWithinAppendTo:t}=M;var o=U.value,o=(0,_dom.getPopupWrapperElement)(t?o:document.body);if(o){let a=o.clientWidth,s=o.clientHeight,n=_xeUtils.default.toNumber(M.marginSize);let u=e.target.getAttribute("data-type"),r=_xeUtils.default.toNumber(M.minWidth),d=_xeUtils.default.toNumber(M.minHeight),m=a,c=s,f=z(),g=f.clientWidth,v=f.clientHeight,p=e.clientX,_=e.clientY,h=f.offsetTop,x=f.offsetLeft,y={type:"resize"};document.onmousemove=e=>{e.preventDefault();let t,o,i,l;switch(u){case"wl":t=p-e.clientX,i=t+g,x-t>n&&i>r&&(f.style.width=`${i<m?i:m}px`,f.style.left=x-t+"px");break;case"swst":t=p-e.clientX,o=_-e.clientY,i=t+g,l=o+v,x-t>n&&i>r&&(f.style.width=`${i<m?i:m}px`,f.style.left=x-t+"px"),h-o>n&&l>d&&(f.style.height=`${l<c?l:c}px`,f.style.top=h-o+"px");break;case"swlb":t=p-e.clientX,o=e.clientY-_,i=t+g,l=o+v,x-t>n&&i>r&&(f.style.width=`${i<m?i:m}px`,f.style.left=x-t+"px"),h+l+n<s&&l>d&&(f.style.height=`${l<c?l:c}px`);break;case"st":o=_-e.clientY,l=v+o,h-o>n&&l>d&&(f.style.height=`${l<c?l:c}px`,f.style.top=h-o+"px");break;case"wr":t=e.clientX-p,i=t+g,x+i+n<a&&i>r&&(f.style.width=`${i<m?i:m}px`);break;case"sest":t=e.clientX-p,o=_-e.clientY,i=t+g,l=o+v,x+i+n<a&&i>r&&(f.style.width=`${i<m?i:m}px`),h-o>n&&l>d&&(f.style.height=`${l<c?l:c}px`,f.style.top=h-o+"px");break;case"selb":t=e.clientX-p,o=e.clientY-_,i=t+g,l=o+v,x+i+n<a&&i>r&&(f.style.width=`${i<m?i:m}px`),h+l+n<s&&l>d&&(f.style.height=`${l<c?l:c}px`);break;case"sb":o=e.clientY-_,l=o+v,h+l+n<s&&l>d&&(f.style.height=`${l<c?l:c}px`)}f.className=f.className.replace(/\s?is--drag/,"")+" is--drag",b&&S(),w("resize",y,e)},document.onmouseup=()=>{E.revertLocat=null,document.onmousemove=null,document.onmouseup=null,setTimeout(()=>{f.className=f.className.replace(/\s?is--drag/,"")},50)}}},w=(e,t,o)=>{i(e,(0,_ui.createEvent)(o,{$modal:V},t))},oe=e=>{i("update:modelValue",e)},ie=(e={dispatchEvent:w,open:t,close(){return a("close")},getBox:z,getPosition:()=>{if(!I.value){var e=z();if(e)return{top:e.offsetTop,left:e.offsetLeft}}return null},setPosition:(e,t)=>{var o;return I.value||(o=z())&&(_xeUtils.default.isNumber(e)&&(o.style.top=e+"px"),_xeUtils.default.isNumber(t))&&(o.style.left=t+"px"),(0,_vue.nextTick)()},isMinimized:()=>"minimize"===E.zoomStatus,isMaximized:()=>"maximize"===E.zoomStatus,zoom(){return C()},minimize(){return E.visible?_():Promise.resolve({status:!1})},maximize(){return E.visible?h():Promise.resolve({status:!1})},revert(){return E.visible?b():Promise.resolve({status:!1})}},Object.assign(V,e),()=>{var{slots:e={},showClose:t,showZoom:o,showMaximize:i,showMinimize:l,title:a}=M,s=E.zoomStatus,n=N.title||e.title,e=N.corner||e.corner,u=L.value,r=$.value;return[(0,_vue.h)("div",{class:"vxe-modal--header-title"},n?(0,_vn.getSlotVNs)(n({$modal:V,minimized:u,maximized:r})):a?(0,_utils.getFuncText)(a):(0,_ui.getI18n)("vxe.alert.title")),(0,_vue.h)("div",{class:"vxe-modal--header-right"},[e&&!u?(0,_vue.h)("div",{class:"vxe-modal--corner-wrapper"},(0,_vn.getSlotVNs)(e({$modal:V}))):(0,_ui.renderEmptyElement)(V),(_xeUtils.default.isBoolean(l)?l:o)?(0,_vue.h)("div",{class:["vxe-modal--zoom-btn","trigger--btn"],title:(0,_ui.getI18n)("vxe.modal.zoom"+("minimize"===s?"Out":"Min")),onClick:J},[(0,_vue.h)("i",{class:"minimize"===s?(0,_ui.getIcon)().MODAL_ZOOM_REVERT:(0,_ui.getIcon)().MODAL_ZOOM_MIN})]):(0,_ui.renderEmptyElement)(V),(_xeUtils.default.isBoolean(i)?i:o)&&"minimize"!==s?(0,_vue.h)("div",{class:["vxe-modal--zoom-btn","trigger--btn"],title:(0,_ui.getI18n)("vxe.modal.zoom"+("maximize"===s?"Out":"In")),onClick:W},[(0,_vue.h)("i",{class:"maximize"===s?(0,_ui.getIcon)().MODAL_ZOOM_OUT:(0,_ui.getIcon)().MODAL_ZOOM_IN})]):(0,_ui.renderEmptyElement)(V),t?(0,_vue.h)("div",{class:["vxe-modal--close-btn","trigger--btn"],title:(0,_ui.getI18n)("vxe.modal.close"),onClick:P},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().MODAL_CLOSE})]):(0,_ui.renderEmptyElement)(V)])]}),le=()=>{var{slots:e={},showCancelButton:t,showConfirmButton:o,type:i,loading:l}=M,a=N.leftfoot||e.leftfoot,e=N.rightfoot||e.rightfoot,s=[];return(_xeUtils.default.isBoolean(t)?t:"confirm"===i)&&s.push((0,_vue.h)(_button.default,{key:1,ref:u,content:M.cancelButtonText||(0,_ui.getI18n)("vxe.button.cancel"),onClick:K})),(_xeUtils.default.isBoolean(o)?o:"confirm"===i||"alert"===i)&&s.push((0,_vue.h)(_button.default,{key:2,ref:n,loading:l,status:"primary",content:M.confirmButtonText||(0,_ui.getI18n)("vxe.button.confirm"),onClick:q})),(0,_vue.h)("div",{class:"vxe-modal--footer-wrapper"},[(0,_vue.h)("div",{class:"vxe-modal--footer-left"},a?(0,_vn.getSlotVNs)(a({$modal:V})):[]),(0,_vue.h)("div",{class:"vxe-modal--footer-right"},e?(0,_vn.getSlotVNs)(e({$modal:V})):s)])};return V.renderVN=()=>{var{border:e,showTitleBackground:t,slots:o={},className:i,type:l,animat:a,draggable:s,iconStatus:n,position:u,loading:r,destroyOnClose:d,status:m,lockScroll:c,padding:f,lockView:g,mask:v,resize:p,appendTo:_,isWithinAppendTo:h}=M,{initialized:x,modalTop:y,contentVisible:b,visible:z,zoomStatus:S}=E,o=N.aside||o.aside,C=O.value,w=I.value,T=L.value,k=Z.value,B={};return w&&(B.onMouseover=R,B.onMouseout=Y),(0,_vue.h)(_vue.Teleport,{to:(0,_dom.getPopupContainer)(_),disabled:!k||!x},[(0,_vue.h)("div",Object.assign({ref:U,class:["vxe-modal--wrapper","type--"+l,"zoom--"+(S||"revert"),u?"pos--"+u:"",h?"ctx--within":"ctx--free",i||"",{["size--"+C]:C,["status--"+m]:m,"is--padding":f,"is--border":e,"is--title-bg":t,"is--animat":a,"lock--scroll":c,"lock--view":g,"is--draggable":s,"is--resize":p,"is--mask":v,"is--visible":b,"is--active":z,"is--loading":r}],style:{zIndex:E.modalZindex,top:y?y+"px":null},onClick:F},B),[(0,_vue.h)("div",{ref:A,class:"vxe-modal--box",onMousedown:G},[!w&&!o||T?(0,_ui.renderEmptyElement)(V):(0,_vue.h)("div",{class:"vxe-modal--aside"},o?(0,_vn.getSlotVNs)(o({$modal:V})):[m||n?(0,_vue.h)("div",{class:"vxe-modal--status-wrapper"},[(0,_vue.h)("i",{class:["vxe-modal--status-icon",n||(0,_ui.getIcon)()[("MODAL_"+m).toLocaleUpperCase()]]})]):(0,_ui.renderEmptyElement)(V)]),(0,_vue.h)("div",{class:"vxe-modal--container"},!E.initialized||d&&!E.visible?[]:[(()=>{var e,{slots:t={},showZoom:o,showMaximize:i,draggable:l}=M,t=N.header||t.header;return M.showHeader?(e={},l&&(e.onMousedown=ee),(_xeUtils.default.isBoolean(i)?i:o)&&M.dblclickZoom&&"modal"===M.type&&(e.onDblclick=W),(0,_vue.h)("div",Object.assign({ref:D,class:["vxe-modal--header",{"is--ellipsis":M.showTitleOverflow}]},e),t?(0,_vn.getSlotVNs)(t({$modal:V})):ie())):(0,_ui.renderEmptyElement)(V)})(),(()=>{var{slots:e={},status:t,message:o,iconStatus:i,useHtml:l}=M,o=M.content||o,a=I.value,s=N.default||e.default,n=N.left||e.left,e=N.right||e.right,u=[];return a||!t&&!i||u.push((0,_vue.h)("div",{class:"vxe-modal--status-wrapper"},[(0,_vue.h)("i",{class:["vxe-modal--status-icon",i||(0,_ui.getIcon)()[("MODAL_"+t).toLocaleUpperCase()]]})])),u.push(l&&!s?(0,_vue.h)("div",{key:"hc",class:"vxe-modal--content",innerHTML:(0,_utils.getFuncText)(o)}):(0,_vue.h)("div",{key:"dc",class:"vxe-modal--content"},s?(0,_vn.getSlotVNs)(s({$modal:V})):(0,_utils.getFuncText)(o))),(0,_vue.h)("div",{class:"vxe-modal--body"},[n?(0,_vue.h)("div",{class:"vxe-modal--body-left"},(0,_vn.getSlotVNs)(n({$modal:V}))):(0,_ui.renderEmptyElement)(V),(0,_vue.h)("div",{class:"vxe-modal--body-default"},u),e?(0,_vue.h)("div",{class:"vxe-modal--body-right"},(0,_vn.getSlotVNs)(e({$modal:V}))):(0,_ui.renderEmptyElement)(V),a?(0,_ui.renderEmptyElement)(V):(0,_vue.h)(_loading.default,{class:"vxe-modal--loading",modelValue:M.loading})])})(),(()=>{var{slots:e={}}=M,e=N.footer||e.footer;return M.showFooter?(0,_vue.h)("div",{class:"vxe-modal--footer"},e?(0,_vn.getSlotVNs)(e({$modal:V})):[le()]):(0,_ui.renderEmptyElement)(V)})(),!w&&p?(0,_vue.h)("span",{class:"vxe-modal--resize"},["wl","wr","swst","sest","st","swlb","selb","sb"].map(e=>(0,_vue.h)("span",{class:e+"-resize","data-type":e,onMousedown:te}))):(0,_ui.renderEmptyElement)(V)])])])])},(0,_vue.watch)(()=>M.width,r),(0,_vue.watch)(()=>M.height,r),(0,_vue.watch)(()=>M.modelValue,e=>{e?t():a("model")}),(0,_vue.onMounted)(()=>{"modal"===M.type&&M.showFooter&&!(M.showConfirmButton||M.showCancelButton||N.footer)&&warnLog("vxe.modal.footPropErr"),E.initialized=!!M.preload,(0,_vue.nextTick)(()=>{M.storage&&!M.id&&errLog("vxe.error.reqProp",["id"]),M.modelValue&&t(),r()}),M.escClosable&&_ui.globalEvents.on(V,"keydown",X),_ui.globalEvents.on(V,"resize",Q)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(V,"keydown"),_ui.globalEvents.off(V,"resize"),v(),g(),y(),_xeUtils.default.assign(E,createReactData()),_xeUtils.default.assign(f,createInternalData())}),(0,_vue.provide)("$xeModal",V),V},render(){return this.renderVN()}});
|