"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _conf=_interopRequireDefault(require("../../conf")),_xeUtils=_interopRequireDefault(require("xe-utils/methods/xe-utils")),_queue=_interopRequireDefault(require("./queue")),_tools=require("../../tools");function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _defineProperty(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}var _default2={name:"PlxModal",props:{value:Boolean,id:String,type:{type:String,default:"modal"},status:String,iconStatus:String,top:{type:[Number,String],default:15},title:String,duration:{type:[Number,String],default:function(){return _conf.default.modal.duration}},message:[String,Function],lockView:{type:Boolean,default:function(){return _conf.default.modal.lockView}},lockScroll:Boolean,mask:{type:Boolean,default:function(){return _conf.default.modal.mask}},maskClosable:Boolean,escClosable:Boolean,resize:Boolean,showHeader:{type:Boolean,default:!0},showFooter:Boolean,dblclickZoom:{type:Boolean,default:function(){return _conf.default.modal.dblclickZoom}},width:[Number,String],height:[Number,String],minWidth:{type:[Number,String],default:function(){return _conf.default.modal.minWidth}},minHeight:{type:[Number,String],default:function(){return _conf.default.modal.minHeight}},zIndex:Number,marginSize:{type:[Number,String],default:_conf.default.modal.marginSize},fullscreen:Boolean,remember:{type:Boolean,default:function(){return _conf.default.modal.remember}},destroyOnClose:Boolean,animat:{type:Boolean,default:function(){return _conf.default.modal.animat}},size:String,slots:Object,events:Object},data:function(){return{visible:!1,contentVisible:!1,modalTop:0,modalZindex:this.zIndex||_tools.UtilTools.nextZIndex(),zoomLocat:null,inited:!1}},computed:{vSize:function(){return this.size||this.$parent&&(this.$parent.size||this.$parent.vSize)},isMsg:function(){return"message"===this.type}},watch:{width:function(){this.recalculate()},height:function(){this.recalculate()},value:function(t){this[t?"open":"close"]()}},mounted:function(){var t=this.$listeners,e=this.events,o=void 0===e?{}:e;this.value&&this.open(),this.recalculate(),this.escClosable&&_tools.GlobalEvent.on(this,"keydown",this.handleGlobalKeydownEvent),document.body.appendChild(this.$el);var i={type:"inserted",$modal:this};t.inserted?this.$emit("inserted",i):o.inserted&&o.inserted.call(this,i)},beforeDestroy:function(){_tools.GlobalEvent.off(this,"keydown"),this.removeMsgQueue(),this.$el.parentNode.removeChild(this.$el)},render:function(e){var t,o=this,i=this.$scopedSlots,n=this.slots,s=void 0===n?{}:n,l=this.vSize,a=this.type,c=this.resize,u=this.animat,r=this.status,d=this.iconStatus,h=this.showHeader,m=this.showFooter,f=this.zoomLocat,p=this.modalTop,v=this.dblclickZoom,x=this.contentVisible,g=this.visible,b=this.title,y=this.message,_=this.lockScroll,w=this.lockView,$=this.mask,z=this.isMsg,k=this.destroyOnClose,S=i.default||s.default,N=i.footer||s.footer,T=i.header||s.header,B=i.title||s.title,E={mousedown:this.mousedownEvent};return c&&v&&"modal"===a&&(E.dblclick=this.toggleZoomEvent),e("div",{class:["plx-modal--wrapper","type--".concat(a),(_defineProperty(t={},"size--".concat(l),l),_defineProperty(t,"status--".concat(r),r),_defineProperty(t,"is--animat",u),_defineProperty(t,"lock--scroll",_),_defineProperty(t,"lock--view",w),_defineProperty(t,"is--mask",$),_defineProperty(t,"is--maximize",f),_defineProperty(t,"is--visible",x),_defineProperty(t,"active",g),t)],style:{zIndex:this.modalZindex,top:p?"".concat(p,"px"):null},on:{click:this.selfClickEvent}},[e("div",{class:"plx-modal--box",on:{mousedown:this.updateZindex},ref:"modalBox"},[h?e("div",{class:"plx-modal--header",on:E},T?T.call(this,{$modal:this},e):[B?B.call(this,{$modal:this},e):e("span",{class:"plx-modal--title"},b?_tools.UtilTools.getFuncText(b):_conf.default.i18n("plx.alert.title")),c?e("i",{class:["plx-modal--zoom-btn","trigger--btn",f?_conf.default.icon.modalZoomOut:_conf.default.icon.modalZoomIn],attrs:{title:_conf.default.i18n("plx.toolbar.zoom".concat(f?"Out":"In"))},on:{click:this.toggleZoomEvent}}):null,e("i",{class:["plx-modal--close-btn","trigger--btn",_conf.default.icon.modalClose],attrs:{title:_conf.default.i18n("plx.modal.close")},on:{click:this.closeEvent}})]):null,e("div",{class:"plx-modal--body"},[r?e("div",{class:"plx-modal--status-wrapper"},[e("i",{class:["plx-modal--status-icon",d||_conf.default.icon["modal".concat(r.replace(/\b(\w)/,function(t){return t.toUpperCase()}))]]})]):null,e("div",{class:"plx-modal--content"},k&&!g?[]:S?S.call(this,{$modal:this},e):_xeUtils.default.isFunction(y)?y.call(this,e):y)]),m?e("div",{class:"plx-modal--footer"},k&&!g?[]:N?N.call(this,{$modal:this},e):["confirm"===a?e("plx-button",{on:{click:this.cancelEvent}},_conf.default.i18n("plx.button.cancel")):null,e("plx-button",{props:{type:"primary"},on:{click:this.confirmEvent}},_conf.default.i18n("plx.button.confirm"))]):null,!z&&c?e("span",{class:"plx-modal--resize"},["wl","wr","swst","sest","st","swlb","selb","sb"].map(function(t){return e("span",{class:"".concat(t,"-resize"),attrs:{"data-type":t},on:{mousedown:o.dragEvent}})})):null])])},methods:{recalculate:function(){var t=this.width,e=this.height,o=this.getBox();return o.style.width=t?isNaN(t)?t:"".concat(t,"px"):null,o.style.height=e?isNaN(e)?e:"".concat(e,"px"):null,this.$nextTick()},selfClickEvent:function(t){if(this.maskClosable&&t.target===this.$el){this.close("mask")}},updateZindex:function(){this.modalZindex<_tools.UtilTools.getLastZIndex()&&(this.modalZindex=_tools.UtilTools.nextZIndex())},closeEvent:function(t){var e="close";this.$emit(e,{type:e,$modal:this},t),this.close(e)},confirmEvent:function(t){var e="confirm";this.$emit(e,{type:e,$modal:this},t),this.close(e)},cancelEvent:function(t){var e="cancel";this.$emit(e,{type:e,$modal:this},t),this.close(e)},open:function(){var l=this,t=this.$listeners,e=this.events,o=void 0===e?{}:e,i=this.duration,n=this.visible,s=this.isMsg,a=this.remember;if(!n){var c={type:"show",$modal:this};a||this.recalculate(),this.visible=!0,this.contentVisible=!1,this.updateZindex(),this.$emit("activated",c),setTimeout(function(){l.contentVisible=!0,l.$nextTick(function(){o.show||(l.$emit("input",!0),l.$emit("show",c)),!t.show&&o.show&&o.show.call(l,c)})},10),s?(this.addMsgQueue(),setTimeout(this.close,_xeUtils.default.toNumber(i))):this.$nextTick(function(){var t=l.inited,e=l.marginSize,o=l.fullscreen;if(!a||!t){var i=l.getBox(),n=document.documentElement.clientWidth||document.body.clientWidth,s=document.documentElement.clientHeight||document.body.clientHeight;i.style.top="",i.style.left="".concat(n/2-i.offsetWidth/2,"px"),i.offsetHeight+i.offsetTop+e>s&&(i.style.top="".concat(e,"px"))}t||(l.inited=!0,o&&l.$nextTick(l.maximize))})}},addMsgQueue:function(){-1===_queue.default.indexOf(this)&&_queue.default.push(this),this.updateStyle()},removeMsgQueue:function(){var e=this;-1<_queue.default.indexOf(this)&&_xeUtils.default.remove(_queue.default,function(t){return t===e}),this.updateStyle()},updateStyle:function(){this.$nextTick(function(){var e=0;_queue.default.forEach(function(t){e+=_xeUtils.default.toNumber(t.top),t.modalTop=e,e+=t.$refs.modalBox.clientHeight})})},close:function(t){var e=this,o=this.events,i=void 0===o?{}:o,n=this.visible,s=this.isMsg,l={type:t,$modal:this};n&&(s&&this.removeMsgQueue(),this.contentVisible=!1,i.hide?i.hide.call(this,l):this.$emit("hide",l),setTimeout(function(){e.visible=!1,i.hide||e.$emit("input",!1),e.$emit("deactivated",l)},200))},handleGlobalKeydownEvent:function(t){27===t.keyCode&&this.close()},getBox:function(){return this.$refs.modalBox},maximize:function(){var s=this;return this.$nextTick().then(function(){if(!s.zoomLocat){var t=s.marginSize,e=s.getBox(),o=_tools.DomTools.getDomNode(),i=o.visibleHeight,n=o.visibleWidth;s.zoomLocat={top:e.offsetTop,left:e.offsetLeft,width:e.clientWidth,height:e.clientHeight},Object.assign(e.style,{top:"".concat(t,"px"),left:"".concat(t,"px"),width:"".concat(n-2*t,"px"),height:"".concat(i-2*t,"px")})}})},revert:function(){var o=this;return this.$nextTick().then(function(){var t=o.zoomLocat;if(t){var e=o.getBox();o.zoomLocat=null,Object.assign(e.style,{top:"".concat(t.top,"px"),left:"".concat(t.left,"px"),width:"".concat(t.width,"px"),height:"".concat(t.height,"px")})}})},toggleZoomEvent:function(t){var e=this,o=this.$listeners,i=this.zoomLocat,n=this.events,s=void 0===n?{}:n,l={type:i?"min":"max",$modal:this};return this[i?"revert":"maximize"]().then(function(){o.zoom?e.$emit("zoom",l,t):s.zoom&&s.zoom.call(e,l,t)})},mousedownEvent:function(t){var e=this,a=this.marginSize,o=this.zoomLocat,c=this.getBox();if(!o&&0===t.button&&!_tools.DomTools.getEventTargetNode(t,c,"trigger--btn").flag){t.preventDefault();var i=document.onmousemove,n=document.onmouseup,u=t.clientX-c.offsetLeft,r=t.clientY-c.offsetTop,s=_tools.DomTools.getDomNode(),d=s.visibleHeight,h=s.visibleWidth;document.onmousemove=function(t){t.preventDefault();var e=c.offsetWidth,o=c.offsetHeight,i=h-e-a,n=d-o-a,s=t.clientX-u,l=t.clientY-r;i<s&&(s=i),s<a&&(s=a),n<l&&(l=n),l<a&&(l=a),c.style.left="".concat(s,"px"),c.style.top="".concat(l,"px"),c.className=c.className.replace(/\s?is--drag/,"")+" is--drag"},document.onmouseup=function(t){document.onmousemove=i,document.onmouseup=n,e.$nextTick(function(){c.className=c.className.replace(/\s?is--drag/,"")})}}},dragEvent:function(t){var s=this;t.preventDefault();var l=this.$listeners,a=this.marginSize,e=this.events,c=void 0===e?{}:e,o=_tools.DomTools.getDomNode(),u=o.visibleHeight,r=o.visibleWidth,d=t.target.dataset.type,h=_xeUtils.default.toNumber(this.minWidth),m=_xeUtils.default.toNumber(this.minHeight),f=r-20,p=u-20,v=this.getBox(),i=document.onmousemove,n=document.onmouseup,x=v.clientWidth,g=v.clientHeight,b=t.clientX,y=t.clientY,_=v.offsetTop,w=v.offsetLeft,$={type:"resize",$modal:this};document.onmousemove=function(t){var e,o,i,n;switch(t.preventDefault(),d){case"wl":i=(e=b-t.clientX)+x,a<w-e&&h<i&&(v.style.width="".concat(i<f?i:f,"px"),v.style.left="".concat(w-e,"px"));break;case"swst":e=b-t.clientX,o=y-t.clientY,i=e+x,n=o+g,a<w-e&&h<i&&(v.style.width="".concat(i<f?i:f,"px"),v.style.left="".concat(w-e,"px")),a<_-o&&m<n&&(v.style.height="".concat(n<p?n:p,"px"),v.style.top="".concat(_-o,"px"));break;case"swlb":e=b-t.clientX,o=t.clientY-y,i=e+x,n=o+g,a<w-e&&h<i&&(v.style.width="".concat(i<f?i:f,"px"),v.style.left="".concat(w-e,"px")),_+n+a<u&&m<n&&(v.style.height="".concat(n<p?n:p,"px"));break;case"st":o=y-t.clientY,n=g+o,a<_-o&&m<n&&(v.style.height="".concat(n<p?n:p,"px"),v.style.top="".concat(_-o,"px"));break;case"wr":e=t.clientX-b,w+(i=e+x)+a<r&&h<i&&(v.style.width="".concat(i<f?i:f,"px"));break;case"sest":e=t.clientX-b,n=(o=y-t.clientY)+g,w+(i=e+x)+a<r&&h<i&&(v.style.width="".concat(i<f?i:f,"px")),a<_-o&&m<n&&(v.style.height="".concat(n<p?n:p,"px"),v.style.top="".concat(_-o,"px"));break;case"selb":e=t.clientX-b,n=(o=t.clientY-y)+g,w+(i=e+x)+a<r&&h<i&&(v.style.width="".concat(i<f?i:f,"px")),_+n+a<u&&m<n&&(v.style.height="".concat(n<p?n:p,"px"));break;case"sb":o=t.clientY-y,_+(n=o+g)+a<u&&m<n&&(v.style.height="".concat(n<p?n:p,"px"))}v.className=v.className.replace(/\s?is--drag/,"")+" is--drag",l.zoom?s.$emit("zoom",$,t):c.zoom&&c.zoom.call(s,$,t)},document.onmouseup=function(t){s.zoomLocat=null,document.onmousemove=i,document.onmouseup=n,setTimeout(function(){v.className=v.className.replace(/\s?is--drag/,"")},50)}}}};exports.default=_default2;