import{w as L}from"./chunk-I4O4OLT4.js";import{Ba as j,Bb as d,Cb as u,Da as c,Db as E,Dg as H,Ga as S,K as a,Pb as C,Ta as T,Wa as O,Y as _,ab as $,bc as k,d as w,dc as b,e as I,hb as f,ib as B,oj as G,qi as N,ra as s,ri as R,sd as F,si as x,tc as l,uc as m,vb as D,za as h}from"./chunk-CD6ADETT.js";import{h as v,p}from"./chunk-MYJARHLR.js";var y=new j("dirty-check-dialog-config");var z=(()=>{let i=class i{constructor(t){this.dirtyCheckDialogConfig=t,this.onClose=new O}};i.\u0275fac=function(e){return new(e||i)(B(y))},i.\u0275cmp=S({type:i,selectors:[["brc-dirty-check"]],outputs:{onClose:"onClose"},decls:11,vars:12,consts:[["severity","warning",3,"closed","title"],[1,"dialog-body",3,"innerHTML"],["nui-button","","type","button","data-e2e","cancel-button",3,"click"],["nui-button","","type","button","displayStyle","primary","data-e2e","discard-button",3,"click"]],template:function(e,o){e&1&&(d(0,"nui-dialog-header",0),l(1,"translate"),C("closed",function(){return o.onClose.emit(!1)}),u(),E(2,"div",1),l(3,"translate"),d(4,"nui-dialog-footer")(5,"button",2),C("click",function(){return o.onClose.emit(!1)}),k(6),l(7,"translate"),u(),d(8,"button",3),C("click",function(){return o.onClose.emit(!0)}),k(9),l(10,"translate"),u()()),e&2&&(D("title",m(1,4,o.dirtyCheckDialogConfig.title)),f(2),D("innerHTML",o.dirtyCheckDialogConfig.isTranslationNeeded?m(3,6,o.dirtyCheckDialogConfig.message):o.dirtyCheckDialogConfig.message,$),f(4),b(" ",m(7,8,"Button.Cancel")," "),f(3),b(" ",m(10,10,o.dirtyCheckDialogConfig.submitButton)," "))},dependencies:[H,N,R,L],encapsulation:2});let n=i;return n})();var A=v(G());var K=(()=>{let i=class i{constructor(t){this.dialogService=t,this.defaultConfig={message:"DirtyCheck.Message",isTranslationNeeded:!0,title:"DirtyCheck.Title",submitButton:"Button.Discard"}}showConfirmation(r,V){return p(this,arguments,function*({onConfirm:t,onCancel:e},o){return this.confirmationDialog&&(this.confirmationDialog.close(),yield new Promise(g=>setTimeout(g))),this.confirmationDialog=this.dialogService.open(z,{size:"sm",injector:o}),this.confirmationDialog.componentInstance.onClose.pipe(_(1)).subscribe(g=>{g?t():e?.(),this.confirmationDialog.close()}),this.confirmationDialog.result.catch(()=>e?.()),this.confirmationDialog})}showConfirmation$(t){let e=(0,A.defaults)({},t,this.defaultConfig),o=T.create({providers:[{provide:y,useValue:e}]});return new w(r=>(this.showConfirmation({onConfirm:()=>{r.next(!0),r.complete()},onCancel:()=>{r.next(!1),r.complete()}},o),()=>this.confirmationDialog?.close()))}};i.\u0275fac=function(e){return new(e||i)(c(x))},i.\u0275prov=h({token:i,factory:i.\u0275fac,providedIn:"root"});let n=i;return n})();var P=v(G());var ut=(()=>{let i=class i{constructor(t,e){this.dirtyCheckDialogService=t,this.router=e,this.destroy$=new I,this.skipDirtyCheck=!1,this.dirtyChecks={}}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),this.confirmationDialog?.close()}initialize(){a(document,"onDirtyCheckRegister").pipe(s(this.destroy$)).subscribe(({detail:{id:t,isDirty:e}})=>{this.register(e,t)}),a(document,"onDirtyCheckUnregister").pipe(s(this.destroy$)).subscribe(({detail:{id:t}})=>{this.unregister(t)}),a(document,"onShowDirtyCheckConfirmation").pipe(s(this.destroy$)).subscribe(({detail:t})=>{this.showConfirmation(t)}),a(document,"logout:SsoSessionFail").pipe(s(this.destroy$)).subscribe(()=>{this.dirtyChecks={}}),a(window,"beforeunload").pipe(s(this.destroy$)).subscribe(t=>{this.isDirty()&&(t.preventDefault(),t.returnValue="")})}canDeactivate(t,e,o,r){return this.skipDirtyCheck?(this.skipDirtyCheck=!1,!0):this.isDirty()?(this.showConfirmation({onConfirm:()=>{this.skipDirtyCheck=!0,this.router.navigateByUrl(r.url)}}),!1):!0}register(t,e,o){let r=(0,P.isNil)(e)?Symbol("default"):e;return this.dirtyChecks[r]=t,this.injector=o,()=>this.unregister(r)}unregister(t){delete this.dirtyChecks[t]}showConfirmation(t){return p(this,null,function*(){this.confirmationDialog||(this.confirmationDialog=yield this.dirtyCheckDialogService.showConfirmation(t,this.injector),this.confirmationDialog.closed$.pipe(s(this.destroy$)).subscribe(()=>{delete this.confirmationDialog}))})}isDirty(){return[...Object.values(this.dirtyChecks),...Object.getOwnPropertySymbols(this.dirtyChecks).map(t=>this.dirtyChecks[t])].some(t=>t())}};i.\u0275fac=function(e){return new(e||i)(c(K),c(F))},i.\u0275prov=h({token:i,factory:i.\u0275fac});let n=i;return n})();export{y as a,K as b,ut as c};
