1 |
- import{s as H,b7 as K,b8 as L,E as z,G as M,aG as T,aH as x,y as c,aK as _,ap as V,f as v,ad as O,O as I,t as q,ae as Q,z as j,P as J,Q as B,T as X,D as Y,ba as Z,an as ee,dF as re,K as te,av as oe,a5 as ne,a3 as $}from"./index-DT8qTvyx.js";var se=function(b){H(a,b);function a(r){var e=b.call(this,r)||this;e.$$id=K(),r.store.setEntered(!!r.show),e.handleSelfClose=e.handleSelfClose.bind(e),e.handleAction=e.handleAction.bind(e),e.handleActionSensor=e.handleActionSensor.bind(e),e.handleDrawerConfirm=e.handleDrawerConfirm.bind(e),e.handleDrawerClose=e.handleDrawerClose.bind(e),e.handleDialogConfirm=e.handleDialogConfirm.bind(e),e.handleDialogClose=e.handleDialogClose.bind(e),e.handleChildFinished=e.handleChildFinished.bind(e),e.handleEntered=e.handleEntered.bind(e),e.handleExited=e.handleExited.bind(e),e.handleFormInit=e.handleFormInit.bind(e),e.handleFormChange=e.handleFormChange.bind(e),e.handleFormSaved=e.handleFormSaved.bind(e);var t=r.store;return e.reaction=L(function(){return"".concat(t.loading).concat(t.error)},function(){return e.forceUpdate()}),e}return a.prototype.componentWillUnmount=function(){this.reaction&&this.reaction(),clearTimeout(this.clearErrorTimer)},a.prototype.buildActions=function(){var r=this.props,e=r.actions,t=r.confirm,o=r.translate,n=r.testIdBuilder;if(typeof e<"u")return e;var s=[];return s.push({type:"button",testIdBuilder:n==null?void 0:n.getChild("cancel"),actionType:"close",label:o("cancel")}),t&&s.push({type:"button",actionType:"confirm",testIdBuilder:n==null?void 0:n.getChild("confirm"),label:o("confirm"),primary:!0}),s},a.prototype.handleSelfClose=function(){return z(this,void 0,void 0,function(){var r,e,t,o,n;return M(this,function(s){switch(s.label){case 0:return r=this.props,e=r.onClose,t=r.store,o=r.dispatchEvent,t.dialogOpen!==!1||t.drawerOpen!==!1?[2]:[4,o("cancel",this.props.data)];case 1:return n=s.sent(),n!=null&&n.prevented?[2]:n!=null&&n.pendingPromise.length?[4,n.allDone()]:[3,3];case 2:s.sent(),s.label=3;case 3:return t.updateMessage(),e(),[2]}})})},a.prototype.handleActionSensor=function(r){var e=this.props.store,t=e.busying;e.markBusying(!0),e.updateMessage(),r.then(function(){e.markBusying(t)}).catch(function(o){e.updateMessage(o.message,!0),e.markBusying(t)})},a.prototype.handleAction=function(r,e,t){var o=this.props,n=o.onClose,s=o.onAction;e.actionType==="close"||e.actionType==="cancel"?n():s&&s(r,e,t)},a.prototype.handleDrawerConfirm=function(r,e){for(var t=[],o=2;o<arguments.length;o++)t[o-2]=arguments[o];var n=this.props.store;e.mergeData&&r.length===1&&r[0]&&n.updateData(r[0]);var s=n.action,l=s.drawer;l.onConfirm&&l.onConfirm.apply(l,T([r,e],x(t),!1))===!1||n.closeDrawer(!0,r)},a.prototype.handleDrawerClose=function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];var t=this.props.store,o=t.action,n=o.drawer;n.onClose&&n.onClose.apply(n,T([],x(r),!1))===!1||t.closeDrawer.apply(t,T([],x(r),!1))},a.prototype.handleDialogConfirm=function(r,e){for(var t=[],o=2;o<arguments.length;o++)t[o-2]=arguments[o];var n=this.props.store;e.mergeData&&r.length===1&&r[0]&&n.updateData(r[0]);var s=n.action,l=s.dialog;l.onConfirm&&l.onConfirm.apply(l,T([r,e],x(t),!1))===!1||n.closeDialog(!0,r)},a.prototype.handleDialogClose=function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];var t=this.props.store,o=t.action,n=o.dialog;n.onClose&&n.onClose.apply(n,T([],x(r),!1))===!1||t.closeDialog(r[1])},a.prototype.handleChildFinished=function(r,e){},a.prototype.handleFormInit=function(r){var e=this.props.store;e.setFormData(r)},a.prototype.handleFormChange=function(r,e){var t=this.props.store;if(typeof e=="string"){t.changeValue(e,r);return}t.setFormData(r)},a.prototype.handleFormSaved=function(r,e){var t=this.props.store;t.setFormData(c(c({},r),e))},a.prototype.handleEntered=function(){var r=this.props,e=r.lazySchema,t=r.store;t.setEntered(!0),t.markBusying(!1),typeof e=="function"&&t.setSchema(e(this.props))},a.prototype.handleExited=function(){var r=this.props,e=r.lazySchema,t=r.store,o=r.statusStore;o&&_(o)&&o.resetAll(),_(t)&&(t.reset(),t.clearMessage(),t.markBusying(!1),t.setEntered(!1),typeof e=="function"&&t.setSchema(""))},a.prototype.getPopOverContainer=function(){return V.findDOMNode(this).querySelector(".".concat(this.props.classPrefix,"Drawer-content"))},a.prototype.renderBody=function(r,e){var t=this,o=this.props,n=o.render,s=o.store;if(Array.isArray(r))return r.map(function(d,i){return t.renderBody(d,i)});var l=r,p={key:e,disabled:s.loading,onAction:this.handleAction,onFinished:this.handleChildFinished,popOverContainer:this.getPopOverContainer,onChange:this.handleFormChange,onInit:this.handleFormInit,onSaved:this.handleFormSaved,onActionSensor:this.handleActionSensor,btnDisabled:s.loading,syncLocation:!1};return l.type==="form"&&(l=c({mode:"horizontal",wrapWithPanel:!1,submitText:null},l)),n("body".concat(e?"/".concat(e):""),l,p)},a.prototype.renderFooter=function(){var r=this,e=this.buildActions(),t=this.props.hideActions;if(!e||!e.length||t)return null;var o=this.props,n=o.store,s=o.render,l=o.env,p=o.classnames,d=o.showErrorMsg,i=o.footerClassName,u=o.id,f=o.themeCss;return v.createElement("div",{className:p("Drawer-footer",i,O(c(c({},this.props),{name:"drawerFooterClassName",id:u,themeCss:f})))},n.loading||n.error?v.createElement("div",{className:p("Drawer-info")},v.createElement(I,{size:"sm",key:"info",show:n.loading}),!l.forceSilenceInsideError&&d&&n.error?v.createElement("span",{className:p("Drawer-error")},n.msg):null):null,e.map(function(h,A){return s("action/".concat(A),h,{onAction:r.handleAction,onActionSensor:void 0,btnDisabled:n.loading,data:n.formData,key:A,disabled:h.disabled||n.loading})}))},a.prototype.openFeedback=function(r,e){var t=this;return new Promise(function(o){var n=t.props.store;n.setCurrentAction({type:"button",actionType:"dialog",dialog:r},t.props.resolveDefinitions),n.openDialog(e,void 0,function(s){o(s)},t.context)})},a.prototype.render=function(){var r=this.props.store,e=c(c({},this.props),r.schema),t=e.className,o=e.style,n=e.size,s=e.closeOnEsc,l=e.position,p=e.title,d=e.render,i=e.header,u=e.body,f=e.bodyClassName,h=e.headerClassName,A=e.show,y=e.showCloseButton,w=e.width,F=e.height,g=e.wrapperComponent,m=e.env,C=e.resizable,N=e.overlay,D=e.closeOnOutside,R=e.classPrefix,k=e.classnames,P=e.drawerContainer,U=e.loadingConfig;e.popOverContainer;var E=e.themeCss,S=e.id,W=q(e,["className","style","size","closeOnEsc","position","title","render","header","body","bodyClassName","headerClassName","show","showCloseButton","width","height","wrapperComponent","env","resizable","overlay","closeOnOutside","classPrefix","classnames","drawerContainer","loadingConfig","popOverContainer","themeCss","id"]),G=g||re;return v.createElement(G,c({},W,{resizable:C,classPrefix:R,className:t,style:o,drawerClassName:O(c(c({},this.props),{name:"drawerClassName",id:S,themeCss:E})),drawerMaskClassName:O(c(c({},this.props),{name:"drawerMaskClassName",id:S,themeCss:E})),size:n,onHide:this.handleSelfClose,disabled:r.loading,show:A,showCloseButton:y,width:w,height:F,position:l,overlay:N,onEntered:this.handleEntered,onExited:this.handleExited,closeOnEsc:s,closeOnOutside:!r.drawerOpen&&!r.dialogOpen&&D,container:P||(m==null?void 0:m.getModalContainer)}),p||i?v.createElement("div",{className:k("Drawer-header",h,O(c(c({},this.props),{name:"drawerHeaderClassName",id:S,themeCss:E})))},p?v.createElement("div",{className:k("Drawer-title",O(c(c({},this.props),{name:"drawerTitleClassName",id:S,themeCss:E})))},d("title",p,{data:r.formData,onConfirm:this.handleDrawerConfirm,onClose:this.handleDrawerClose,onAction:this.handleAction,onActionSensor:void 0,btnDisabled:r.loading})):null,i?d("header",i,{data:r.formData,onConfirm:this.handleDrawerConfirm,onClose:this.handleDrawerClose,onAction:this.handleAction,onActionSensor:void 0,btnDisabled:r.loading}):null):null,r.entered?u?v.createElement("div",{className:k("Drawer-body",f,O(c(c({},this.props),{name:"drawerBodyClassName",id:S,themeCss:E}))),role:"dialog-body"},this.renderBody(u,"body"),v.createElement(Q,c({},this.props,{config:{themeCss:E,classNames:[{key:"drawerClassName"},{key:"drawerMaskClassName"},{key:"drawerHeaderClassName"},{key:"drawerTitleClassName"},{key:"drawerBodyClassName"},{key:"drawerFooterClassName"}],id:S},env:m}))):null:v.createElement("div",{className:k("Drawer-body",f,O(c(c({},this.props),{name:"drawerBodyClassName",id:S,themeCss:E})))},v.createElement(I,{overlay:!0,show:!0,size:"lg",loadingConfig:U})),this.renderFooter(),u?d("dialog",c(c({},r.action&&r.action.dialog),{type:"dialog"}),{key:"dialog",data:r.dialogData,onConfirm:this.handleDialogConfirm,onClose:this.handleDialogClose,onAction:this.handleAction,show:r.dialogOpen}):null,u?d("drawer",c(c({},r.action&&r.action.drawer),{type:"drawer"}),{key:"drawer",data:r.drawerData,onConfirm:this.handleDrawerConfirm,onClose:this.handleDrawerClose,onAction:this.handleAction,show:r.drawerOpen}):null)},a.propsList=["title","size","closeOnEsc","closeOnOutside","children","className","bodyClassName","headerClassName","footerClassName","confirm","position","onClose","onConfirm","show","showCloseButton","width","height","resizable","overlay","body","popOverContainer","showErrorMsg"],a.defaultProps={title:"",className:"",bodyClassName:"",headerClassName:"",footerClassName:"",confirm:!0,position:"right",resizable:!1,showCloseButton:!0,overlay:!0,closeOnEsc:!1,closeOnOutside:!1,showErrorMsg:!0},j([J,B("design:type",Function),B("design:paramtypes",[]),B("design:returntype",void 0)],a.prototype,"getPopOverContainer",null),a}(v.Component),ie=function(b){H(a,b);function a(r,e){var t=b.call(this,r)||this,o=e;return o.registerComponent(t),t}return a.prototype.componentWillUnmount=function(){var r=this.context;r.unRegisterComponent(this),b.prototype.componentWillUnmount.call(this)},a.prototype.tryChildrenToHandle=function(r,e,t){var o=this,n=this.context,s=[],l=this.props,p=l.onConfirm,d=l.store;if(r.target&&s.push.apply(s,T([],x(r.target.split(",").map(function(h){return n.getComponentByName(h)}).filter(function(h){return h&&h.doAction})),!1)),(r==null?void 0:r.isolateScope)!==!0&&!s.length)for(var i=n.getComponents().filter(function(h){return!~["drawer","dialog"].indexOf(h.props.type)}),u=i.concat();u.length;){var f=u.pop();if(~["crud","form","wizard"].indexOf(f.props.type)){s.push(f);break}else{if(~["drawer","dialog"].indexOf(f.props.type))continue;~["page","service"].indexOf(f.props.type)&&u.unshift.apply(u,f.context.getComponents())}}return s.length?(d.markBusying(!0),d.updateMessage(),Promise.all(s.map(function(h){return h.doAction(c(c({},r),{from:o.$$id}),e,!0)})).then(function(h){(r.type==="submit"||r.actionType==="submit"||r.actionType==="confirm")&&r.close!==!1?p&&p(h,t||r,e,s):r.close&&(r.close===!0?o.handleSelfClose():o.closeTarget(r.close)),d.markBusying(!1)}).catch(function(h){d.updateMessage(h.message,!0),d.markBusying(!1),clearTimeout(o.clearErrorTimer),o.clearErrorTimer=setTimeout(function(){d.updateMessage("")},3e3)}),!0):!1},a.prototype.doAction=function(r,e,t){this.handleAction(void 0,r,e)},a.prototype.handleAction=function(r,e,t,o,n,s){return o===void 0&&(o=!1),z(this,void 0,void 0,function(){var l,p,d,i,u,f,h,A,y,w,F=this;return M(this,function(g){switch(g.label){case 0:return l=this.props,p=l.onClose,d=l.onAction,i=l.store,u=l.env,f=l.dispatchEvent,h=l.show,e.from===this.$$id||!h?[2,d?d(r,e,t,o,n||this.context):!1]:s!=null&&s.pendingPromise.length?[4,s.allDone()]:[3,2];case 1:g.sent(),g.label=2;case 2:return A=this.context,e.actionType==="close"||e.actionType==="cancel"?[4,f("cancel",$(this.props.data,t))]:[3,6];case 3:return y=g.sent(),y!=null&&y.prevented?[2]:y!=null&&y.pendingPromise.length?[4,y.allDone()]:[3,5];case 4:g.sent(),g.label=5;case 5:return i.setCurrentAction(e,this.props.resolveDefinitions),p(),e.close&&(e.close===!0?this.handleSelfClose():this.closeTarget(e.close)),[3,17];case 6:return e.actionType!=="confirm"?[3,10]:[4,f("confirm",$(this.props.data,t))];case 7:return w=g.sent(),w!=null&&w.prevented?[2]:w!=null&&w.pendingPromise.length?[4,w.allDone()]:[3,9];case 8:g.sent(),g.label=9;case 9:return i.setCurrentAction(e,this.props.resolveDefinitions),this.tryChildrenToHandle(e,t)||p(),[3,17];case 10:return e.actionType!=="drawer"?[3,11]:(i.setCurrentAction(e,this.props.resolveDefinitions),[2,new Promise(function(m){i.openDrawer(t,void 0,function(C,N){var D;(D=e.callback)===null||D===void 0||D.call(e,C,N),m({confirmed:C,value:N})})})]);case 11:return e.actionType!=="dialog"?[3,12]:(i.setCurrentAction(e,this.props.resolveDefinitions),[2,new Promise(function(m){i.openDialog(t,void 0,function(C,N){var D;(D=e.callback)===null||D===void 0||D.call(e,C,N),m({confirmed:C,value:N})},n||F.context)})]);case 12:return e.actionType!=="reload"?[3,13]:(i.setCurrentAction(e,this.props.resolveDefinitions),e.target&&A.reload(e.target,t),e.close&&(e.close===!0?this.handleSelfClose():this.closeTarget(e.close)),[3,17]);case 13:return!e.from&&this.tryChildrenToHandle(e,t)?[3,17]:[3,14];case 14:return e.actionType!=="ajax"?[3,15]:(i.setCurrentAction(e,this.props.resolveDefinitions),i.saveRemote(e.api,t,{successMessage:e.messages&&e.messages.success,errorMessage:e.messages&&e.messages.failed}).then(function(){return z(F,void 0,void 0,function(){var m;return M(this,function(C){switch(C.label){case 0:return e.feedback&&ne(e.feedback,i.data)?[4,this.openFeedback(e.feedback,i.data)]:[3,2];case 1:C.sent(),C.label=2;case 2:return m=e.redirect&&te(e.redirect,i.data),m&&u.jumpTo(m,e,i.data),e.reload&&this.reloadTarget(oe(e.reload,i.data),i.data),e.close&&(e.close===!0?this.handleSelfClose():this.closeTarget(e.close)),[2]}})})}).catch(function(m){if(o||e.countDown)throw m}),[3,17]);case 15:return d?[4,d(r,e,t,o,n||this.context)]:[3,17];case 16:g.sent(),e.close&&(e.close===!0?this.handleSelfClose():this.closeTarget(e.close)),g.label=17;case 17:return[2]}})})},a.prototype.handleChildFinished=function(r,e){if(!(e&&e.from===this.$$id||e.close===!1)){var t=this.context,o=t.getComponents().filter(function(s){return!~["drawer","dialog","action","button","submit","reset"].indexOf(s.props.type)}),n=this.props.onConfirm;o.length===1&&(o[0].props.type==="form"||o[0].props.type==="wizard")&&n([r],e,{},o)}},a.prototype.handleDialogConfirm=function(r,e){for(var t,o,n=[],s=2;s<arguments.length;s++)n[s-2]=arguments[s];b.prototype.handleDialogConfirm.apply(this,T([r,e],x(n),!1));var l=this.props.store,p=l.getDialogScoped()||this.context,d=l.action,i=(t=e.reload)!==null&&t!==void 0?t:d.reload;i?p.reload(i,l.data):p.component!==this&&(!((o=p.component)===null||o===void 0)&&o.reload)?p.component.reload():this.context.getComponents().filter(function(u){return u.props.type==="crud"}).forEach(function(u){return u.reload&&u.reload()})},a.prototype.handleDrawerConfirm=function(r,e){var t=this,o;b.prototype.handleDrawerConfirm.call(this,r,e);var n=this.props.store,s=n.getDialogScoped()||this.context,l=n.action,p=(o=e.reload)!==null&&o!==void 0?o:l.reload;setTimeout(function(){var d;p?s.reload(p,n.data):s.component!==t&&(!((d=s.component)===null||d===void 0)&&d.reload)?s.component.reload():t.context.getComponents().filter(function(i){return i.props.type==="crud"}).forEach(function(i){return i.reload&&i.reload()})},300)},a.prototype.reloadTarget=function(r,e){var t=this.context;t.reload(r,e)},a.prototype.closeTarget=function(r){var e=this.context;e.close(r)},a.prototype.setData=function(r,e){return this.props.store.updateData(r,void 0,e)},a.prototype.getData=function(){var r=this.props.store;return r.data},a.contextType=X,a=j([Y({type:"drawer",storeType:Z.name,storeExtendsData:!1,isolateScope:!0,shouldSyncSuperStore:function(r,e,t){return!!((r.drawerOpen||e.show)&&(e.show!==t.show||ee(t.data,e.data)))}}),B("design:paramtypes",[Object,Object])],a),a}(se);export{ie as DrawerRenderer,se as default};
|