1"use strict";(self.webpackChunktonomo=self.webpackChunktonomo||[]).push([[421],{20421:(Fi,Re,l)=>{l.r(Re),l.d(Re,{CrmFeatureBrokeragesModule:()=>Ii});var g=l(69808),d=l(93075),f=l(48966),mt=l(92181),pt=l(86087),Ve=l(20773),ue=l(32368),he=l(53251),te=l(87238),Ue=l(51062),ze=l(67293),u=l(658),gt=l(25752),ut=l(39064),B=l(96410),D=l(21086),I=l(87545),v=l(24850),X=l(2994),e=l(5e3),P=l(74202);let Le=(()=>{class r{constructor(t,n,a,o,s){this.router=t,this.coreAppReadApi=n,this.firebaseAuthService=a,this.popupService=o,this.appAbility=s}canActivate(t){const n=t.paramMap.get("id");return n?this.coreAppReadApi.getBrokerage(n).pipe((0,I.w)(a=>a?this.firebaseAuthService.isStaffMember$.pipe((0,v.U)(o=>o||this.appAbility.can("read",a)),(0,X.b)(o=>{o||this.error("Insufficient Permissions","/crm/profile/me/personal")})):(this.error("Brokerage Not Found","/crm/brokerages"),(0,D.of)(!1)))):(this.error("Brokerage Not Found","/crm/brokerages"),(0,D.of)(!1))}error(t,n){this.popupService.error({title:t,text:"You cannot access the page"}),this.router.navigate([n])}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275inject(P.F0),e.\u0275\u0275inject(u.wul),e.\u0275\u0275inject(u.XPL),e.\u0275\u0275inject(u.qLq),e.\u0275\u0275inject(u.umt))},r.\u0275prov=e.\u0275\u0275defineInjectable({token:r,factory:r.\u0275fac}),r})();var $=l(8929),O=l(36053),N=l(7625),_=l(24254),h=l(70655),ne=l(36787),ht=l(68896),fe=l(591),ie=l(63527),Z=l(75778),x=l(5154),re=l(87168),ft=l(27221),vt=l(81042),Ge=l(40520);let ve=(()=>{class r{constructor(t,n){this.http=t,this.appConfigService=n}savePhotoWatermark(t,n){return this.send(this.http.patch(this.url(t,"photo-watermark"),n))}deletePhotoWatermark(t){return this.send(this.http.delete(this.url(t,"photo-watermark")))}saveMlsResolution(t,n){return this.send(this.http.patch(this.url(t,"mls-resolution"),n))}updateLogo(t,n){return this.send(this.http.patch(this.url(t,"logo"),{logo:n}))}updateDefaultCoupon(t,n){return this.send(this.http.patch(this.url(t,"default-coupon"),{defaultCouponId:n}))}updateNotificationSettings(t,n,a){return this.send(this.http.patch(this.url(t,"notification-settings"),{notificationSettings:n,disabledNotifications:a}))}moveMembers(t,n,a){return this.send(this.http.post(this.url(t,"members/move"),{uids:n,brokerage:{id:a.id,name:a.name,agentCode:a.agentCode}}))}url(t,n){return`${this.appConfigService.coreAppUrl}/api/v1/brokerages/${t}/${n}`}send(t){return t.toPromise().then(()=>{})}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275inject(Ge.HttpClient),e.\u0275\u0275inject(u._ZM))},r.\u0275prov=e.\u0275\u0275defineInjectable({token:r,factory:r.\u0275fac,providedIn:"root"}),r})(),T=(()=>{class r{constructor(t,n,a,o,s,c,m,p,C,F){this.router=t,this.route=n,this.httpClient=a,this.appConfigService=o,this.algoliaSearch=s,this.coreAppReadApi=c,this.brokerageApi=m,this.brokeragesService=p,this.storage=C,this.cacheService=F,this.destroy$=new $.xQ,this.refreshCount$=new $.xQ,this.brokerageRefresh$=new $.xQ,this.brokerageId$=this.route.paramMap.pipe((0,v.U)(b=>b.get("id")),(0,Z.x)(),(0,X.b)(b=>this._brokerageId=b),(0,x.d)(1)),this.brokerage$=(0,ne.T)(this.brokerageId$.pipe((0,I.w)(b=>this.coreAppReadApi.getBrokerage(b))),this.brokerageRefresh$.pipe((0,re.M)(this.brokerageId$),(0,I.w)(([,b])=>this.coreAppReadApi.getBrokerage(b).pipe((0,ft.K)(A=>(console.error("[BrokeragePage] Failed to re-read the brokerage",A),ht.E)))))).pipe((0,X.b)(b=>this._brokerage=b),(0,x.d)(1)),this.parentBrokerage$=this.brokerage$.pipe((0,I.w)(b=>(null==b?void 0:b.parentBrokerageId)?this.coreAppReadApi.getBrokerage(b.parentBrokerageId):(0,D.of)(void 0)),(0,x.d)(1)),this.parentOrSelfBrokerage$=(0,O.aj)([this.brokerage$,this.parentBrokerage$]).pipe((0,v.U)(([b,A])=>null!=A?A:b),(0,Z.x)(),(0,x.d)(1)),this.isChildBrokerage$=this.brokerage$.pipe((0,v.U)(b=>Boolean(null==b?void 0:b.parentBrokerageId)),(0,x.d)(1)),this.childBrokerages$=this.brokerageId$.pipe((0,I.w)(b=>this.childBrokeragesOf(b)),(0,x.d)(1)),this.membersParamsManager=new _.t3E(this.router,this.route,[{name:"search",type:"string",defaultValue:""},{name:"pageSize",type:"number",defaultValue:0,disableUrlSync:!0,saveLastValue:!0},{name:"cols",type:"array",disableUrlSync:!0,saveLastValue:!0,defaultValue:["displayName","uid","email","view-orders"]}],this.destroy$,"brokerage-page"),this.searchParams$=this.membersParamsManager.getCombinedParams(["search"],{brokerageIds:this.brokerageId$.pipe((0,v.U)(b=>[b]))}).pipe((0,x.d)(1)),this.membersDataManager=new _.MMz({fetchDataFn:b=>this.fetchMembers(b),batchSize:20,params$:this.searchParams$},this.destroy$),this.members$=this.membersDataManager.items$.pipe((0,I.w)(b=>this.joinMemberProfiles(b))),this.membersSearchCount$=this.membersDataManager.length$,this.membersLoading$=this.membersDataManager.loading$,this.membersTotalCount$=(0,ne.T)(this.brokerageId$,this.refreshCount$.pipe((0,re.M)(this.brokerageId$),(0,v.U)(([b,A])=>A))).pipe((0,I.w)(b=>this.fetchMembers({brokerageIds:[b],skip:0,limit:1,search:""})),(0,v.U)(b=>b.length),(0,x.d)(1)),this.photoChangeInProgressSubj$=new fe.X(!1),this.photoChangeInProgress$=this.photoChangeInProgressSubj$.asObservable()}get brokerageId(){return this._brokerageId}loadMore(){this.membersDataManager.loadMore()}saveBrokerageInfo(t){return(0,h.mG)(this,void 0,void 0,function*(){if(!this._brokerageId)return Promise.reject();yield this.brokeragesService.saveBrokerageInfo(this._brokerageId,t),this.refreshBrokerage(),yield(0,_.Dc1)(3e3),yield this.refreshPage()})}saveBrokeragePricingOverrides(t){return(0,h.mG)(this,void 0,void 0,function*(){if(!this._brokerageId)return Promise.reject();yield this.brokeragesService.saveBrokeragePricingOverrides(this._brokerageId,t),this.refreshBrokerage()})}saveBrokerageBookingFlows(t){return(0,h.mG)(this,void 0,void 0,function*(){if(!this._brokerageId)return Promise.reject();yield this.brokeragesService.saveBrokerageBookingFlows(this._brokerageId,t),this.refreshBrokerage()})}saveBrokeragePhotoWatermark(t){return this._brokerageId?this.brokerageApi.savePhotoWatermark(this._brokerageId,t).then(()=>this.refreshBrokerage()):Promise.reject()}saveMlsImagesResolution(t,n){return this._brokerageId?this.brokerageApi.saveMlsResolution(this._brokerageId,{width:t,height:n}).then(()=>this.refreshBrokerage()):Promise.reject()}deleteBrokeragePhotoWatermark(){return this.brokerageId?this.brokerageApi.deletePhotoWatermark(this.brokerageId).then(()=>this.refreshBrokerage()):Promise.reject()}refreshBrokerage(){this.brokerageRefresh$.next()}joinMemberProfiles(t){return t.length?this.coreAppReadApi.getUsersByIds(t.map(({objectID:n})=>String(n))).pipe((0,I.w)(n=>{const a=new Map(n.map(o=>[o.uid,o]));return(0,_.vX8)(t,o=>(0,D.of)(a.get(o)),"objectID")}),(0,v.U)(n=>n.filter(a=>{var o;return(null===(o=a.brokerage_obj)||void 0===o?void 0:o.id)===this._brokerageId}))):(0,D.of)([])}childBrokeragesOf(t){return this.coreAppReadApi.getChildBrokerages(t)}fetchAllMembers(t){return this.cacheService.get({domainKey:"brokerage-members-dashboard",fetcher:()=>(0,ie.D)(this.algoliaSearch.userIndex.search("",{attributesToRetrieve:["uid","displayName","email","photoURL"],facetFilters:this.toBrokerageFacet(t),hitsPerPage:1e3}).then(({hits:n,nbHits:a})=>({results:n,length:a}))),context:{brokerageIds:[...t].sort(),search:""}}).pipe((0,v.U)(n=>n.results))}toBrokerageFacet(t){return[t.map(n=>`brokerage_obj.id:${n}`)]}fetchMembers(t){return this.cacheService.get({domainKey:"brokerage-members-dashboard",fetcher:n=>t.limit<1?(0,D.of)({results:[],length:0}):(0,ie.D)(this.algoliaSearch.userIndex.search(t.search,{restrictSearchableAttributes:["displayName","email"],offset:t.skip,length:t.limit,facetFilters:this.toBrokerageFacet(t.brokerageIds)}).then(a=>({results:a.hits,length:a.nbHits}))),context:t})}saveMembers(t){return(0,h.mG)(this,void 0,void 0,function*(){if(!this._brokerage)return;const n={idsToAdd:t.addedMembers.map(a=>a.uid),idsToRemove:t.removedMembersIds,brokerage:this._brokerage};return yield this.httpClient.post(`${this.appConfigService.coreAppUrl}/api/v1/brokerages/${this._brokerage.id}/members`,n).toPromise(),n.idsToRemove.length&&this.refreshBrokerage(),this.algoliaSearch.userIndex.clearCache()})}refreshPage(){return(0,h.mG)(this,void 0,void 0,function*(){yield this.algoliaSearch.userIndex.clearCache(),this.cacheService.invalidateForDomain("brokerage-members-dashboard"),this.membersDataManager.refresh(),this.refreshCount$.next()})}resetPaginationAndReload(){this.membersParamsManager.setParams({search:""}),this.refreshPage()}updateBrokerageLogo(t){return(0,h.mG)(this,void 0,void 0,function*(){this.photoChangeInProgressSubj$.next(!0);const n=`images/${(0,vt.Z)()}.${t.name}`,a=yield this.storage.uploadAndReturnUrl(n,t);if(!this._brokerageId)return this.photoChangeInProgressSubj$.next(!1),Promise.reject();yield this.brokerageApi.updateLogo(this._brokerageId,a),this.refreshBrokerage(),this.photoChangeInProgressSubj$.next(!1)})}updateDefaultCoupon(t){return this._brokerageId?this.brokerageApi.updateDefaultCoupon(this._brokerageId,t).then(()=>this.refreshBrokerage()):Promise.resolve()}ngOnDestroy(){this.brokerageRefresh$.complete(),this.destroy$.next(),this.destroy$.complete()}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275inject(P.F0),e.\u0275\u0275inject(P.gz),e.\u0275\u0275inject(Ge.HttpClient),e.\u0275\u0275inject(u._ZM),e.\u0275\u0275inject(u.ewU),e.\u0275\u0275inject(u.wul),e.\u0275\u0275inject(ve),e.\u0275\u0275inject(u.wKh),e.\u0275\u0275inject(B.$wO),e.\u0275\u0275inject(u.J4i))},r.\u0275prov=e.\u0275\u0275defineInjectable({token:r,factory:r.\u0275fac}),r})();var Q=l(67656),bt=l(18501);let _t=(()=>
1{class r{constructor(t){this.dialogRef=t}onPhotoSelected(t){return(0,h.mG)(this,void 0,void 0,function*(){this.dialogRef.disableClose=!0,this.dialogRef.close({photoFile:t})})}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275directiveInject(f.so))},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["tn-brokerage-logo-dialog"]],decls:4,vars:1,consts:[["headerText","Upload logo","hintText","Crop correctly, change the scale if necessary",1,"mb-min",3,"resizeToHeight","imageCropped"]],template:function(t,n){1&t&&(e.\u0275\u0275elementStart(0,"ui-dialog-header"),e.\u0275\u0275text(1,"Upload Brokerage Logo"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(2,"mat-dialog-content")(3,"ui-image-crop",0),e.\u0275\u0275listener("imageCropped",function(o){return n.onPhotoSelected(o)}),e.\u0275\u0275elementEnd()()),2&t&&(e.\u0275\u0275advance(3),e.\u0275\u0275property("resizeToHeight",128))},directives:[Q.A,f.xY,bt.d],styles:["[_nghost-%COMP%]{display:block}"],changeDetection:0}),r})();var yt=l(46742),be=l(77759);function Ct(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementContainerStart(0),e.\u0275\u0275elementStart(1,"tn-editable-avatar",8),e.\u0275\u0275listener("changeRequested",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().openChangePhotoModal()}),e.\u0275\u0275pipe(2,"async"),e.\u0275\u0275pipe(3,"ablePure"),e.\u0275\u0275pipe(4,"async"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(5,"h1",9),e.\u0275\u0275text(6),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementContainerEnd()}if(2&r){const t=i.ngIf,n=e.\u0275\u0275nextContext();e.\u0275\u0275advance(1),e.\u0275\u0275property("photoUrl",t.logo)("name",t.name)("canChange",e.\u0275\u0275pipeBind1(2,5,e.\u0275\u0275pipeBind3(3,7,"manage",t,"logo")))("loading",e.\u0275\u0275pipeBind1(4,11,n.photoLoading$)),e.\u0275\u0275advance(5),e.\u0275\u0275textInterpolate1(" ",t.name," ")}}function kt(r,i){if(1&r&&(e.\u0275\u0275elementContainerStart(0),e.\u0275\u0275text(1),e.\u0275\u0275pipe(2,"async"),e.\u0275\u0275elementContainerEnd()),2&r){const t=e.\u0275\u0275nextContext(3);e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1(" ( ",e.\u0275\u0275pipeBind1(2,1,t.count$)," ) ")}}function xt(r,i){1&r&&e.\u0275\u0275element(0,"mat-spinner",13),2&r&&e.\u0275\u0275property("diameter",12)}function St(r,i){if(1&r&&(e.\u0275\u0275elementContainerStart(0),e.\u0275\u0275template(1,kt,3,3,"ng-container",11),e.\u0275\u0275pipe(2,"async"),e.\u0275\u0275template(3,xt,1,1,"ng-template",null,12,e.\u0275\u0275templateRefExtractor),e.\u0275\u0275elementContainerEnd()),2&r){const t=e.\u0275\u0275reference(4),n=e.\u0275\u0275nextContext(2);e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",void 0!==e.\u0275\u0275pipeBind1(2,2,n.count$))("ngIfElse",t)}}function Bt(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"a",10),e.\u0275\u0275listener("click",function(){const o=e.\u0275\u0275restoreView(t).$implicit;return e.\u0275\u0275nextContext().goToTab(o)}),e.\u0275\u0275pipe(1,"async"),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"titlecase"),e.\u0275\u0275template(4,St,5,4,"ng-container",2),e.\u0275\u0275elementEnd()}if(2&r){const t=i.$implicit,n=e.\u0275\u0275nextContext();e.\u0275\u0275property("active",e.\u0275\u0275pipeBind1(1,3,n.activeTab$)===t),e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(3,5,n.tabsLabels[t])," "),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngIf",t===n.membersTab)}}var y=(()=>{return(r=y||(y={})).INFO="info",r.MEMBERS="members",r.BOOKING_FLOWS="booking_flows",r.PRICING="pricing",r.DELIVERY="delivery",r.CHILD_BROKERAGES="child_brokerages",r.NOTIFICATION_SETTINGS="notification_settings",y;var r})();let Tt=(()=>{class r{constructor(t,n,a,o,s,c,m){this.router=t,this.activatedRoute=n,this.brokeragePageFacadeService=a,this.currentEntityService=o,this.authService=s,this.appConfigService=c,this.matDialog=m,this.destroy$=new $.xQ,this.changed=!1,this.saving=!1,this.activeTab$=(0,_.RFC)(this.router,this.activatedRoute,y.INFO),this.tabs$=this.getAvailableTabs(),this.membersTab=y.MEMBERS,this.tabsLabels={[y.INFO]:"Company information",[y.MEMBERS]:"Members",[y.BOOKING_FLOWS]:"Booking Flows",[y.PRICING]:"Pricing",[y.DELIVERY]:"Delivery",[y.CHILD_BROKERAGES]:"Child Brokerages",[y.NOTIFICATION_SETTINGS]:"Notification Settings"},this.brokerage$=this.brokeragePageFacadeService.brokerage$,this.count$=this.brokeragePageFacadeService.membersTotalCount$,this.photoLoading$=this.brokeragePageFacadeService.ph
1otoChangeInProgress$,this.brokerage$.pipe((0,N.R)(this.destroy$)).subscribe(p=>{this.currentEntityService.setCurrentEntity("Brokerage",p)})}goToTab(t){this.router.navigate([t],{relativeTo:this.activatedRoute})}openChangePhotoModal(){this.matDialog.open(_t,{panelClass:["app-v2","agent-profile-dialog"],width:"600px",maxWidth:"600px",hasBackdrop:!0}).afterClosed().toPromise().then(t=>{!t||this.brokeragePageFacadeService.updateBrokerageLogo(t.photoFile)})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}getAvailableTabs(){return(0,O.aj)([this.authService.user$,this.authService.userBrokerage$]).pipe((0,v.U)(([t,n])=>{var a;const o=[y.INFO,y.MEMBERS];return(null==t?void 0:t.permissions)&&(["Admin","Staff"].includes(t.permissions)&&o.push(y.BOOKING_FLOWS),["Admin","Contractor","Staff"].includes(t.permissions)&&(o.push(y.PRICING),o.push(y.DELIVERY)),((null===(a=null==n?void 0:n.managers)||void 0===a?void 0:a[null==t?void 0:t.uid])||["Admin","Contractor","Staff"].includes(t.permissions))&&(o.push(y.CHILD_BROKERAGES),this.appConfigService.isBrokerageNotificationsAllowed&&o.push(y.NOTIFICATION_SETTINGS))),o}))}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275directiveInject(P.F0),e.\u0275\u0275directiveInject(P.gz),e.\u0275\u0275directiveInject(T),e.\u0275\u0275directiveInject(u.nf$),e.\u0275\u0275directiveInject(u.e80),e.\u0275\u0275directiveInject(u._ZM),e.\u0275\u0275directiveInject(f.uw))},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["ng-component"]],features:[e.\u0275\u0275ProvidersFeature([T])],decls:11,vars:6,consts:[[1,"brokerage-page-header"],[1,"flex","items-center","flex-1","max-w-xl","w-full"],[4,"ngIf"],[1,"w-full","flex","flex-row","justify-center"],["mat-tab-nav-bar","",1,"mat-tab-borderless"],["mat-tab-link","",3,"active","click",4,"ngFor","ngForOf"],[1,"tab-scroll-area","flex","justify-center","w-full","flex-col","flex-1","full-height","overflow-auto"],[1,"grow-wrapper","w-full","h-full"],["changeLabel","Change logo","deleteLabel","Delete logo",1,"mr-24","mb-12",3,"photoUrl","name","canChange","loading","changeRequested"],[1,"flex","items-center"],["mat-tab-link","",3,"active","click"],[4,"ngIf","ngIfElse"],["countLoaderTmpl",""],[3,"diameter"]],template:function(t,n){1&t&&(e.\u0275\u0275elementStart(0,"div",0)(1,"div",1),e.\u0275\u0275template(2,Ct,7,13,"ng-container",2),e.\u0275\u0275pipe(3,"async"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(4,"div",3)(5,"nav",4),e.\u0275\u0275template(6,Bt,5,7,"a",5),e.\u0275\u0275pipe(7,"async"),e.\u0275\u0275elementEnd()()(),e.\u0275\u0275elementStart(8,"div",6)(9,"div",7),e.\u0275\u0275element(10,"router-outlet"),e.\u0275\u0275elementEnd()()),2&t&&(e.\u0275\u0275advance(2),e.\u0275\u0275property("ngIf",e.\u0275\u0275pipeBind1(3,2,n.brokerage$)),e.\u0275\u0275advance(4),e.\u0275\u0275property("ngForOf",e.\u0275\u0275pipeBind1(7,4,n.tabs$)))},directives:[g.NgIf,yt.O,he.BU,g.NgForOf,he.Nj,Ve.Ou,P.lC],pipes:[g.AsyncPipe,be.pb,g.TitleCasePipe],styles:[".tab-scroll-area{scrollbar-gutter:stable}.brokerage-page-header{height:200px;display:flex;width:100%;flex-direction:column;align-items:center;justify-content:space-between;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(226 226 226 / var(--tw-border-opacity, 1));background-image:linear-gradient(to bottom,var(--tw-gradient-stops));--tw-gradient-from: #fff var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #FAFAFA var(--tw-gradient-to-position)}\n"],encapsulation:2,changeDetection:0}),r})();var k=l(44224),_e=l(41854),wt=l(777),E=l(66809),M=l(72751),j=l(68566);function It(r,i){if(1&r&&(e.\u0275\u0275elementStart(0,"div",7)(1,"h2",8),e.\u0275\u0275text(2,"Booking Flows"),e.\u0275\u0275elementEnd(),e.\u0275\u0275element(3,"tn-booking-flows",9),e.\u0275\u0275pipe(4,"async"),e.\u0275\u0275pipe(5,"async"),e.\u0275\u0275elementEnd()),2&r){const t=e.\u0275\u0275nextContext();e.\u0275\u0275property("formGroup",t.form),e.\u0275\u0275advance(3),e.\u0275\u0275property("bookingFlows",e.\u0275\u0275pipeBind1(4,3,t.bookingFlows$))("disabled",!!e.\u0275\u0275pipeBind1(5,5,t.parentBrokerage$))}}let R=class{constructor(i,t,n,a){this.facade=i,this.coreAppReadApi=t,this.fb=n,this.cdr=a,this.brokerage$=this.facade.brokerage$,this.parentBrokerage$=this.facade.parentBrokerage$,this.bookingFlows$=this.coreAppReadApi.getAllBookingFlows().pipe((0,x.d)(1)),this.changed=!1,this.saving=!1,this.beforeChangesValue={bookingFlowIds:[]},this.form=this.fb.group(this.beforeChangesValue),this.form.valueChanges.pipe((0,k.t)(this)).subscribe(o=>{this.changed=!(0,_e.Z)(this.beforeChangesValue,o)}),(0,O.aj)([this.brokerage$,this.parentBrokerage$]).pipe((0,k.t)(this)).subscribe(([o,s])=>{this.beforeChangesValue={bookingFlowIds:(null==s?void 0:s.bookingFlowIds)||(null==o?void 0:o.bookingFlowIds)||[]},this.form.patchValue(this.beforeChangesValue)})}saveChanges(){return(0,h.mG)(this,void 0,void 0,function*(){this.saving=!0,yield this.facade.saveBrokerageBookingFlows(this.form.value),this.saving=!1,this.cdr.detectChanges()})}discardChanges(){this.form.setValue(this.beforeChangesValue,{onlySelf:!1,emitEvent:!0}),this.cdr.detectChanges()}};R.\u0275fac=function(i){return new(i||R)(e.\u0275\u0275directiveInject(T),e.\u0275\u0275directiveInject(u.wul),e.\u0275\u0275directiveInject(d.qu),e.\u0275\u0275directiveInject(e.ChangeDetectorRef))},R.\u0275cmp=e.\u0275\u0275defineComponent({type:R,selectors:[["ng-component"]],decls:10,vars:7,consts:[[1,"w-full","flex","justify-center","mt-32"],["class","mb-24 max-w-xl w-full",3,"formGroup",4,"ngIf"],[1,"w-full","p-24","pb-12","bg-white","flex","flex-col","flex-1"],[1,"absolute","bottom-0","h-48","bg-gray-5","flex","justify-center","items-center","left-0","right-0","px-16","transition-all",3,"ngClass"],[1,"w-100","max-w-xl","flex","items-center","justify-end"],["uiBtnSize","small","uiBtnTheme","main","themeMode","secondary",1,"mr-8",3,"disabled","click"],["uiBtnSize","small","uiBtnTheme","main","themeMode","primary",3,"disabled","uiBtnLoading","click"],[1,"mb-24","max-w-xl","w-full",3,"formGroup"],[1,"mb-16","pl-12"],["formControlName","bookingFlowIds",3,"bookingFlows","disabled"]],template:function(i,t){1&i&&(e.\u0275\u0275elementStart(0,"div",0),e.\u0275\u0275template(1,It,6,7,"div",1),e.\u0275\u0275pipe(2,"async"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(3,"div",2)(4,"div",3)(5,"div",4)(6,"button",5),e.\u0275\u0275listener("click",function(){return t.discardChanges()}),e.\u0275\u0275text(7," Discard Changes "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(8,"button",6),e.\u0275\u0275listener("click",function(){return t.saveChanges()}),e.\u0275\u0275text(9," Save Changes "),e.\u0275\u0275elementEnd()()()()),2&i&&(e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",e.\u0275\u0275pipeBind1(2,5,t.brokerage$)),e.\u0275\u0275advance(3),e.\u0275\u0275property("ngClass",t.changed||t.saving?"bottom-0":"-bottom-48"),e.\u0275\u0275advance(2),e.\u0275\u0275property("disabled",!t.changed||t.saving),e.\u0275\u0275advance(2),e.\u0275\u0275property("disabled",!t.changed||t.form.invali
1d)("uiBtnLoading",t.saving))},directives:[g.NgIf,d.JL,d.sg,wt.W,d.JJ,d.u,g.NgClass,E.s,M.V,j.T],pipes:[g.AsyncPipe],styles:[""],changeDetection:0}),R=(0,h.gn)([(0,k.c)(),(0,h.w6)("design:paramtypes",[T,u.wul,d.qu,e.ChangeDetectorRef])],R);var ae=l(50026),oe=l(72986),S=l(92858),Pt=l(98798),Ot=l(61931);function Et(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"div",1)(1,"h2",2),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"translate"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(4,"p",3),e.\u0275\u0275text(5),e.\u0275\u0275pipe(6,"translate"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(7,"tn-default-theme-template-picker",4),e.\u0275\u0275listener("saved",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onDefaultTemplateSaved()}),e.\u0275\u0275pipe(8,"translate"),e.\u0275\u0275pipe(9,"async"),e.\u0275\u0275elementEnd()()}if(2&r){const t=i.ngIf,n=e.\u0275\u0275nextContext();e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind1(3,5,"BROKERAGE_DEFAULT_TEMPLATE_SECTION")),e.\u0275\u0275advance(3),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind1(6,7,"BROKERAGE_DEFAULT_TEMPLATE_SECTION_DESC")," "),e.\u0275\u0275advance(2),e.\u0275\u0275property("scope",t)("label",e.\u0275\u0275pipeBind1(8,9,"PROPERTY_TEMPLATE_BROKERAGE_SELECT_LABEL"))("disabled",!0!==e.\u0275\u0275pipeBind1(9,11,n.canEditDefault$))}}let Mt=(()=>{class r{constructor(t,n){this.brokeragePageFacade=t,this.authService=n,this.brokerage$=this.brokeragePageFacade.brokerage$.pipe(_.FLi),this.scope$=this.brokerage$.pipe((0,v.U)(a=>{var o;return{owner:{id:a.id,area:"brokerage"},templateOwnerIds:[a.id],persistedTemplateId:null!==(o=a.themeTemplateId)&&void 0!==o?o:null}})),this.canEditDefault$=(0,O.aj)([this.authService.user$,this.brokerage$]).pipe((0,v.U)(([a,o])=>{var s;return(null==a?void 0:a.permissions)===Pt.Pv.ADMIN||Boolean(a&&(null===(s=o.managers)||void 0===s?void 0:s[a.uid]))}))}onDefaultTemplateSaved(){this.brokeragePageFacade.refreshBrokerage()}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275directiveInject(T),e.\u0275\u0275directiveInject(u.e80))},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["tn-brokerage-default-template"]],decls:2,vars:3,consts:[["class","p-24 container",4,"ngIf"],[1,"p-24","container"],[1,"mb-6"],[1,"text-gray-50","mb-16"],[3,"scope","label","disabled","saved"]],template:function(t,n){1&t&&(e.\u0275\u0275template(0,Et,10,13,"div",0),e.\u0275\u0275pipe(1,"async")),2&t&&e.\u0275\u0275property("ngIf",e.\u0275\u0275pipeBind1(1,1,n.scope$))},directives:[g.NgIf,Ot.b],pipes:[g.AsyncPipe,Ue.X$],encapsulation:2,changeDetection:0}),r})();var se=l(61432),le=l(50257),$t=l(70060),q=l(69009),Ft=l(78029);function At(r,i){if(1&r&&e.\u0275\u0275element(0,"img",3),2&r){const t=e.\u0275\u0275nextContext(),n=e.\u0275\u0275reference(1);e.\u0275\u0275property("src",t.watermarkSrc,e.\u0275\u0275sanitizeUrl)("ngStyle",t.getWatermarkCss(n))}}let Dt=(()=>{class r{constructor(){this.isLoaded=!1}onImageLoaded(){this.isLoaded=!0}getWatermarkCss(t){const n=Math.min(t.height,t.width),a=Math.round(t.height*this.watermarkSize/100),o=`${a}px`,m=`${Math.min(Math.round(n*this.watermarkPaddingX/100),t.width-a)}px`,p=`${Math.min(Math.round(n*this.watermarkPaddingY/100),t.height-a)}px`;switch(this.watermarkPosition){case S.nm.TOP:return{height:o,top:p,left:"50%",transform:"translateX(-50%)"};case S.nm.TOP_LEFT:return{height:o,top:p,left:m};case S.nm.TOP_RIGHT:return{height:o,top:p,right:m};case S.nm.BOTTOM:return{height:o,bottom:p,left:"50%",transform:"translateX(-50%)"};case S.nm.BOTTOM_LEFT:return{height:o,bottom:p,left:m};case S.nm.BOTTOM_RIGHT:return{height:o,bottom:p,right:m};case S.nm.LEFT:return{height:o,left:m,top:"50%",transform:"translateY(-50%)"};case S.nm.RIGHT:return{height:o,right:m,top:"50%",transform:"translateY(-50%)"};default:return{height:o,top:"50%",left:"50%",transform:"translate(-50%, -50%)"}}}}return r.\u0275fac=function(t){return new(t||r)},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["tn-watermark-preview"]],inputs:{image:"image",watermarkPaddingX:"watermarkPaddingX",watermarkPaddingY:"watermarkPaddingY",watermarkSize:"watermarkSize",watermarkPosition:"watermarkPosition",watermarkSr
1c:"watermarkSrc"},decls:3,vars:2,consts:[[3,"src","load"],["preview",""],["class","absolute",3,"src","ngStyle",4,"ngIf"],[1,"absolute",3,"src","ngStyle"]],template:function(t,n){1&t&&(e.\u0275\u0275elementStart(0,"img",0,1),e.\u0275\u0275listener("load",function(){return n.onImageLoaded()}),e.\u0275\u0275elementEnd(),e.\u0275\u0275template(2,At,1,2,"img",2)),2&t&&(e.\u0275\u0275property("src",n.image,e.\u0275\u0275sanitizeUrl),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngIf",n.isLoaded))},directives:[g.NgIf,g.NgStyle],styles:["[_nghost-%COMP%]{position:relative;display:inline-block;overflow:hidden;border-radius:.25rem}"],changeDetection:0}),r})();function jt(r,i){1&r&&e.\u0275\u0275element(0,"tn-brokerage-default-template")}function Nt(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementContainerStart(0),e.\u0275\u0275elementStart(1,"div",36),e.\u0275\u0275element(2,"img",37),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(3,"button",38),e.\u0275\u0275listener("click",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext(2).fileSelectComponent.triggerFileUpload()}),e.\u0275\u0275text(4," Replace Watermark "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementContainerEnd()}if(2&r){const t=e.\u0275\u0275nextContext().ngIf;e.\u0275\u0275advance(2),e.\u0275\u0275property("src",t.watermarkSrc,e.\u0275\u0275sanitizeUrl),e.\u0275\u0275advance(1),e.\u0275\u0275property("disabled",t.loading)}}function Rt(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"div",10)(1,"div",11)(2,"div",12)(3,"h2",2),e.\u0275\u0275text(4,"Add Photos Watermark"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(5,"p",13),e.\u0275\u0275text(6),e.\u0275\u0275elementEnd()(),e.\u0275\u0275template(7,Nt,5,2,"ng-container",0),e.\u0275\u0275elementStart(8,"ui-file-select",14),e.\u0275\u0275listener("filesChange",function(a){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onChangeWatermark(a)}),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(9,"div",15)(10,"h2",16),e.\u0275\u0275text(11,"Position"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(12,"ui-select",17),e.\u0275\u0275listener("selectionChange",function(a){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onPositionChange(a)}),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(13,"div",18)(14,"h2",16),e.\u0275\u0275text(15,"Padding"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(16,"ui-form-group",19)(17,"ui-number-input",20),e.\u0275\u0275listener("valueChange",function(a){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onHorizontalPaddingChange(a)}),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(18,"ui-number-input",21),e.\u0275\u0275listener("valueChange",function(a){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onVerticalPaddingChange(a)}),e.\u0275\u0275elementEnd()()(),e.\u0275\u0275elementStart(19,"div",18)(20,"div",22)(21,"h2",16),e.\u0275\u0275text(22,"Size"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(23,"span",23),e.\u0275\u0275text(24),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(25,"mat-slider",24),e.\u0275\u0275listener("valueChange",function(a){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onSizeChange(a)}),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(26,"div",25)(27,"button",26),e.\u0275\u0275listener("click",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onDelete()}),e.\u0275\u0275text(28," Remove Watermark "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(29,"button",27),e.\u0275\u0275listener("click",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onSave()}),e.\u0275\u0275text(30," Save Watermark "),e.\u0275\u0275elementEnd()()(),e.\u0275\u0275elementStart(31,"div",28),e.\u0275\u0275element(32,"tn-watermark-preview",29),e.\u0275\u0275elementStart(33,"div",30)(34,"div",31),e.\u0275\u0275element(35,"tn-watermark-preview",32)(36,"tn-watermark-preview",33),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(37,"div",34),e.\u0275\u0275element(38,"tn-watermark-preview",35),e.\u0275\u0275elementEnd()()()()}if(2&r){const t=i.ngIf,n=e.\u0275\u0275nextContext();e.\u0275\u0275advance(6),e.\u0275\u0275textInterpolate1("Watermark will be applied to all ",t.brokerageName," photos."),e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",t.watermarkSr
1c),e.\u0275\u0275advance(1),e.\u0275\u0275classProp("hidden",t.watermarkSrc),e.\u0275\u0275property("allowedFileTypes",n.allowedFileTypes)("multiple",!1),e.\u0275\u0275advance(4),e.\u0275\u0275property("value",t.watermarkPosition)("items",n.positionOptions)("disabled",!t.watermarkSrc),e.\u0275\u0275advance(5),e.\u0275\u0275property("value",t.watermarkPaddingX)("disabled",!t.watermarkSrc),e.\u0275\u0275advance(1),e.\u0275\u0275property("value",t.watermarkPaddingY)("disabled",!t.watermarkSrc),e.\u0275\u0275advance(6),e.\u0275\u0275textInterpolate1("",t.watermarkSize,"%"),e.\u0275\u0275advance(1),e.\u0275\u0275property("value",t.watermarkSize)("disabled",!t.watermarkSrc),e.\u0275\u0275advance(2),e.\u0275\u0275property("disabled",t.loading||!t.watermarkUrl),e.\u0275\u0275advance(2),e.\u0275\u0275property("disabled",t.loading||!t.isDirty||!t.watermarkSrc),e.\u0275\u0275advance(3),e.\u0275\u0275property("watermarkPaddingX",t.watermarkPaddingX)("watermarkPaddingY",t.watermarkPaddingY)("watermarkPosition",t.watermarkPosition)("watermarkSize",t.watermarkSize)("watermarkSrc",t.watermarkSrc),e.\u0275\u0275advance(3),e.\u0275\u0275property("watermarkPaddingX",t.watermarkPaddingX)("watermarkPaddingY",t.watermarkPaddingY)("watermarkPosition",t.watermarkPosition)("watermarkSize",t.watermarkSize)("watermarkSrc",t.watermarkSrc),e.\u0275\u0275advance(1),e.\u0275\u0275property("watermarkPaddingX",t.watermarkPaddingX)("watermarkPaddingY",t.watermarkPaddingY)("watermarkPosition",t.watermarkPosition)("watermarkSize",t.watermarkSize)("watermarkSrc",t.watermarkSrc),e.\u0275\u0275advance(2),e.\u0275\u0275property("watermarkPaddingX",t.watermarkPaddingX)("watermarkPaddingY",t.watermarkPaddingY)("watermarkPosition",t.watermarkPosition)("watermarkSize",t.watermarkSize)("watermarkSrc",t.watermarkSrc)}}const ce={loading:!1,isDirty:!1,brokerageId:"",brokerageName:"",watermarkUrl:"",watermarkPaddingX:2,watermarkPaddingY:2,watermarkSize:8,watermarkPosition:S.nm.BOTTOM_RIGHT,loadedImageDataUrl:""};let V=class extends ae.m1{constructor(i,t,n,a,o){super(ce),this.appConfigService=i,this.fb=t,this.contextService=n,this.storage=a,this.brokeragePageFacade=o,this.allowedFileTypes=["png","jpg","jpeg"],this.positionOptions=[{name:"Center",value:S.nm.CENTER},{name:"Top",value:S.nm.TOP},{name:"Right",value:S.nm.RIGHT},{name:"Bottom",value:S.nm.BOTTOM},{name:"Left",value:S.nm.LEFT},{name:"Top Right",value:S.nm.TOP_RIGHT},{name:"Bottom Right",value:S.nm.BOTTOM_RIGHT},{name:"Bottom Left",value:S.nm.BOTTOM_LEFT},{name:"Top Left",value:S.nm.TOP_LEFT}],this.mlsResolutionForm=this.fb.group({width:[2048,[_.$9f.truthy,d.kI.max(4096)]],height:[1536,[_.$9f.truthy,d.kI.max(3072)]]}),this.mlsResolutionSaving=!1,this.vm$=this.select(s=>Object.assign(Object.assign({},s),{watermarkSrc:s.loadedImageDataUrl||s.watermarkUrl})),this.brokerage$=this.brokeragePageFacade.brokerage$,this.parentBrokerage$=this.brokeragePageFacade.parentBrokerage$}ngOnInit(){this.brokerage$.pipe((0,k.t)(this)).subscribe(i=>{var t,n;if(!i)return;const{url:a,paddingX:o,paddingY:s,size:c,position:m}=i.photoWatermark||{};this.patchState({brokerageId:i.id,brokerageName:i.name,watermarkUrl:a||"",watermarkPaddingX:null!=o?o:ce.watermarkPaddingX,watermarkPaddingY:null!=s?s:ce.watermarkPaddingY,watermarkSize:c||ce.watermarkSize,watermarkPosition:null!=m?m:S.nm.BOTTOM_RIGHT}),(null===(t=i.mlsResolution)||void 0===t?void 0:t.width)&&(null===(n=i.mlsResolution)||void 0===n?void 0:n.height)?this.mlsResolutionForm.patchValue({width:i.mlsResolution.width,height:i.mlsResolution.height}):this.contextService.bookingConfig$.pipe((0,oe.q)(1),(0,k.t)(this)).subscribe(({mlsResolutionWidth:p,mlsResolutionHeight:C})=>{p&&C&&this.mlsResolutionForm.patchValue({width:p,height:C})})})}onChangeWatermark(i){const t=new FileReader;t.onloadend=n=>{var a;this.imageFile=i[0],this.patchState({isDirty:!0,loadedImageDataUrl:null===(a=n.target)||void 0===a?void 0:a.result})},t.readAsDataURL(i[0])}onPositionChange(i){this.patchState({isDirty:!0,watermarkPosition:i})}onVerticalPaddingChange(i){this.patchState({isDirty:!0,watermarkPaddingY:i})}onHorizontalPaddingChange(i){this.patchState({isDirty:!0,watermarkPaddingX:i})}onSizeChange(i){this.patchState({isDirty:!0,watermarkSize:null!=i?i:0})}onDelete(){this.patchState({loading:!0}),this.brokeragePageFacade.deleteBrokeragePhotoWatermark().then(()=>{this.imageFile=void 0,this.patchState({loading:!1,isDirty:!1})})}onSave(){return(0,h.mG)(this,void 0,void 0,function*(){this.patchState({loading:!0});const i=this.get();let t=i.watermarkUrl;if(this.imageFile){const n=this.imageFile.name.split(".").pop(),a=`brokerage-watermarks/${i.brokerageId}/watermark.${n}`;t=yield this.storage.uploadAndReturnUrl(a,this.imageFile)}this.brokeragePageFacade.saveBrokeragePhotoWatermark({url:t,paddingX:i.watermarkPaddingX||0,paddingY:i.watermarkPaddingY||0,size:i.watermarkSize,position:i.watermarkPosition}).finally(()=>{this.imageFile=void 0,this.patchState({loading:!1,isDirty:!1})})})}onSaveMlsResolution(){const{width:i,height:t}=this.mlsResolutionForm.getRawValue();null==i||null==t||(this.mlsResolutionSaving=!0,this.brokeragePageFacade.saveMlsImagesResolution(i,t).then(()=>this.mlsResolutionForm.markAsPristine()).finally(()=>this.mlsResolutionSaving=!1))}};V.\u0275fac=function(i){return new(i||V)(e.\u0275\u0275directiveInject(u._ZM),e.\u0275\u0275directiveInject(d.qu),e.\u0275\u0275directiveInject(u.ObY),e.\u0275\u0275directiveInject(B.$wO),e.\u0275\u0275directiveInject(T))},V.\u0275cmp=e.\u0275\u0275defineComponent({type:V,selectors:[["ng-component"]],viewQuery:function(i,t){if(1&i&&e.\u0275\u0275viewQuery(B.Atg,5),2&i){let n;e.\u0275\u0275queryRefresh(n=e.\u0275\u0275loadQuery())&&(t.fileSelectComponent=n.first)}},features:[e.\u0275\u0275ProvidersFeature([ae.m1]),e.\u0275\u0275InheritDefinitionFeature],decls:14,vars:9,consts:[[4,"ngIf"],[1,"p-24","container"],[1,"mb-6"],[1,"text-gray-50","mb-16"],[1,"flex","items-end"],[1,"flex","my-8","gap-8",3,"formGroup"],["label","Width","mask","separator.0","suffix","px","thousandSeparator","","formControlName","width"],["label","Height","mask","separator.0","suffix","px","thousandSeparator","","formControlName","height"],["uiBtnSize","medium","uiBtnTheme","main","themeMode","primary",1,"ml-8","mb-8",3,"disabled","uiBtnLoading","click"],["class","p-24 flex flex-1 mb-32 container",4,"ngIf"],[1,"p-24","flex","flex-1","mb-32","container"],[1,"w-50","pr-40","border-r-1"],[1,"mb-16"],[1,"text-gray-50"],["buttonText","Upload Image",3,"allowedFileTypes","multiple","filesChange"],[1,"my-32"],[1,"mb-8"],[1,"border-1","block","rounded",3,"value","items","disabled","selectionChange"],[1,"mb-24"],[1,"flex","gap-4"],["label","Horizontal padding",1,"flex-1",3,"value","disabled","valueChange"],["label","Vertical padding",1,"flex-1",3,"value","disabled","valueChange"],[1,"flex"],[1,"ml-auto"],["min","1","max","50","
1step","1","showTickMarks","","discrete","","color","primary",1,"w-full",3,"value","disabled","valueChange"],[1,"flex","justify-end"],["uiBtnSize","small","uiBtnTheme","error","themeMode","primary",1,"mr-12",3,"disabled","click"],["uiBtnSize","small","uiBtnTheme","main","themeMode","primary",3,"disabled","click"],[1,"w-50","pl-40"],["image","/assets/watermark/0.jpeg",3,"watermarkPaddingX","watermarkPaddingY","watermarkPosition","watermarkSize","watermarkSrc"],[1,"flex","mt-12"],[1,"w-50","pr-6"],["image","/assets/watermark/1.jpeg",1,"mb-12",3,"watermarkPaddingX","watermarkPaddingY","watermarkPosition","watermarkSize","watermarkSrc"],["image","/assets/watermark/2.jpeg",3,"watermarkPaddingX","watermarkPaddingY","watermarkPosition","watermarkSize","watermarkSrc"],[1,"w-50","pl-6"],["image","/assets/watermark/3.jpeg",2,"max-height","340px","overflow","hidden",3,"watermarkPaddingX","watermarkPaddingY","watermarkPosition","watermarkSize","watermarkSrc"],[1,"watermark-image","rounded-lg","flex","justify-center","items-center","relative","mb-8"],[1,"max-h-full","max-w-full",3,"src"],["uiBtnSize","small","uiBtnTheme","main","themeMode","secondary",1,"w-full",3,"disabled","click"]],template:function(i,t){1&i&&(e.\u0275\u0275template(0,jt,1,0,"tn-brokerage-default-template",0),e.\u0275\u0275elementStart(1,"div",1)(2,"h2",2),e.\u0275\u0275text(3),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(4,"p",3),e.\u0275\u0275text(5),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(6,"ui-form-group",4)(7,"form",5),e.\u0275\u0275element(8,"ui-number-input",6)(9,"ui-number-input",7),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(10,"button",8),e.\u0275\u0275listener("click",function(){return t.onSaveMlsResolution()}),e.\u0275\u0275text(11," Save "),e.\u0275\u0275elementEnd()()(),e.\u0275\u0275template(12,Rt,39,38,"div",9),e.\u0275\u0275pipe(13,"async")),2&i&&(e.\u0275\u0275property("ngIf",t.appConfigService.allowThemeTemplates),e.\u0275\u0275advance(3),e.\u0275\u0275textInterpolate1("",t.appConfigService.photo
1Format," Images Resolution"),e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate1(" Resolution that ",t.appConfigService.photoFormat," images resizing happens at. "),e.\u0275\u0275advance(2),e.\u0275\u0275property("formGroup",t.mlsResolutionForm),e.\u0275\u0275advance(3),e.\u0275\u0275property("disabled",t.mlsResolutionForm.pristine||!t.mlsResolutionForm.valid)("uiBtnLoading",t.mlsResolutionSaving),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngIf",e.\u0275\u0275pipeBind1(13,7,t.vm$)))},directives:[g.NgIf,Mt,se.H,d._Y,d.JL,d.sg,le.f,d.JJ,d.u,E.s,M.V,j.T,$t.A,q.H,Ft.pH,Dt],pipes:[g.AsyncPipe],styles:[".watermark-image[_ngcontent-%COMP%]{height:142px;max-height:142px;background:url(/assets/images/artboard-bg.png) repeat 0 0}"],changeDetection:0}),V=(0,h.gn)([(0,k.c)(),(0,h.w6)("design:paramtypes",[u._ZM,d.qu,u.ObY,B.$wO,T])],V);var w=l(17489),ee=l(92198),Vt=l(40537);const He={header:"Email / Order Notifications",rows:[{key:"bookingConfirmationEmail",name:"Booking confirmation",description:"Sent when a booking is submitted"},{key:"appointmentRescheduledEmail",name:"Appointment rescheduled",description:"Sent when the appointment is rescheduled"},{key:"appointmentCanceledEmail",name:"Appointment canceled",description:"Sent when the appointment is canceled"},{key:"reminderEmail",name:"Reminder",description:"Sent before the scheduled booking"},{key:"projectCompleteEmail",name:"Project complete",description:"Sent when a project is moved to completed"},{key:"projectFollowUp",name:"Project follow up",description:"Sent after the project complete email as a follow-up"}]},Ke={header:"Email / Calendar Event",rows:[{key:"calendarInvite",name:"Invite listing agents to calendar event",description:"Sends a calendar invite to listing agents when a booking is scheduled"}]},ye={header:"Text Message / Order Notification",rows:[{key:"bookingConfirmationText",name:"Booking confirmation",description:"Sent when a booking is submitted"},{key:"reminderText",name:"Reminder",description:"Sent before the scheduled booking"},{key:"projectCompleteText",name:"Project complete",description:"Sent when a project is moved to completed"}]},Ye=[{header:"Email / General",rows:[{key:"newAgentWelcome",name:"New Agent Welcome Email",description:"Sent when an agent places their first order"}]},He,Ke,{header:"Email / Payment",rows:[{key:"payToUnlockReminder",name:'Automated reminders for unpaid "Pay to Unlock" orders',description:'Sends reminder emails to agents with unpaid "Pay to Unlock" orders once the project is complete'}]},ye],We=[He,Ke,{header:"Email / Payment",rows:[{key:"payToUnlockReminder",name:'Automated reminders for unpaid "Pay to Unlock" orders',description:'Sends reminder emails to admins for unpaid "Pay to Unlock" orders once the project is complete'}]},ye].map(r=>Object.assign(Object.assign({},r),{rows:r.rows.filter(i=>"projectFollowUp"!==i.key)}));function Ce(r){return r.flatMap(i=>i.rows.map(t=>t.key))}const ke=Ce(We),Je=Ce(Ye),Ut=new Set(ye.rows.map(r=>r.key)),Xe={assignments:[],disabled:{agent:[],admin:[]}},zt={isSaving:!1,isSaveFailed:!1,isSaved:!1,draft:Xe,saved:Xe};let xe=(()=>{class r extends ae.m1{constructor(t){super(zt),this.brokerageApi=t,this.isSaving$=this.select(n=>n.isSaving),this.isSaveFailed$=this.select(n=>n.isSaveFailed),this.isSaved$=this.select(n=>n.isSaved),this.hasUnsavedChanges$=this.select(n=>!(0,w.isEqual)(n.draft,n.saved)),this.draft$=this.select(n=>n.draft),this.assignments$=this.select(n=>n.draft.assignments),this.draftDisabled$=this.select(n=>n.draft.disabled),this.vm$=this.select(this.assignments$,this.draftDisabled$,this.hasUnsavedChanges$,this.isSaving$,this.isSaveFailed$,(n,a,o,s,c)=>{var m;return{assignments:n,disabledAgent:null!==(m=a.agent)&&void 0!==m?m:[],hasUnsavedChanges:o,isSaving:s,isSaveFailed:c}}),this.upsertAssignment=this.updater((n,a)=>{const o=n.draft.assignments,s=c=>c.recipientUid===a.recipientUid;return Object.assign(Object.assign({},n),{draft:Object.assign(Object.assign({},n.draft),{assignments:o.some(s)?o.map(c=>s(c)?a:c):[...o,a]}),isSaveFailed:!1})}),this.removeAssignment=this.updater((n,a)=>Object.assign(Object.assign({},n),{draft:Object.assign(Object.assign({},n.draft),{assignments:n.draft.assignments.filter(o=>o.recipientUid!==a)}),isSaveFailed:!1})),this.toggleAgentNotification=this.updater((n,{key:a,enabled:o})=>Object.assign(Object.assign({},n),{draft:Object.assign(Object.assign({},n.draft),{disabled:Object.assign(Object.assign({},n.draft.disabled),{agent:this.toggleDisabledKey(n.draft.disabled.agent,a,o)})}),isSaveFailed:!1})),this.discardChanges=this.updater(n=>Object.assign(Object.assign({},n),{draft:n.saved,isSaveFailed:!1})),this.markChangesSaved=this.updater((n,a)=>Object.assign(Object.assign({},n),{saved:a,isSaved:!0})),this.applySavedSettings=this.updater((n,a)=>{const o=this.toDraft(a);return Object.assign(Object.assign({},n),{draft:o,saved:o})}),this.loadSavedSettings=this.effect(n=>n.pipe((0,re.M)(this.hasUnsavedChanges$),(0,ee.h)(([,a])=>!a),(0,X.b)(([a])=>
1this.applySavedSettings(a)))),this.save=this.effect(n=>n.pipe((0,X.b)(()=>this.patchState({isSaving:!0,isSaveFailed:!1,isSaved:!1})),(0,re.M)(this.draft$),(0,I.w)(([a,o])=>{const{settings:s,disabled:c}=this.buildSavePayload(o);return(0,ie.D)(this.brokerageApi.updateNotificationSettings(a,s,c)).pipe((0,ae._b)(()=>this.markChangesSaved(o),m=>{console.error("[BrokerageNotificationSettings] Failed to save",m),this.patchState({isSaveFailed:!0})}),(0,Vt.x)(()=>this.patchState({isSaving:!1})))})))}toggleDisabledKey(t,n,a){const o=(0,w.without)(null!=t?t:[],n);return a?o:(0,w.sortBy)([...o,n])}toDraft({settings:t,disabled:n,managerUids:a}){var o,s;return{assignments:null!==(o=null==t?void 0:t.assignments)&&void 0!==o?o:this.deriveAssignmentsFromLegacy(t,a,null!==(s=null==n?void 0:n.admin)&&void 0!==s?s:[]),disabled:this.toDisabled(n,t)}}deriveAssignmentsFromLegacy(t,n,a){var o,s;if((null!==(o=null==t?void 0:t.preset)&&void 0!==o?o:S.cx.AgentOnly)===S.cx.AgentOnly)return[];const m=new Set(n),p=(0,w.difference)(ke,a);return(null!==(s=null==t?void 0:t.adminUids)&&void 0!==s?s:[]).filter(C=>m.has(C)).map(C=>({recipientUid:C,allAgents:!0,agentUids:[],keys:p}))}buildSavePayload({assignments:t,disabled:n}){return t.length?{settings:{assignments:t,preset:this.deriveLegacyPreset(n),adminUids:this.deriveLegacyAdminUids(t)},disabled:Object.assign(Object.assign({},n),{admin:this.deriveLegacyAdminDisabled(t,n)})}:{settings:{assignments:t,preset:S.cx.AgentOnly,adminUids:[]},disabled:n}}deriveLegacyPreset(t){var n;const a=null!==(n=t.agent)&&void 0!==n?n:[];return Je.every(s=>a.includes(s))?S.cx.Admin:S.cx.Customized}deriveLegacyAdminUids(t){return(0,w.sortBy)([...new Set(t.map(n=>n.recipientUid))])}deriveLegacyAdminDisabled(t,n){var a;const o=t.flatMap(s=>s.keys);return(0,w.sortBy)([...(0,w.difference)(null!==(a=n.admin)&&void 0!==a?a:[],ke),...(0,w.difference)(ke,o)])}toDisabled(t,n){var a,o;return{agent:(0,w.sortBy)((null==n?void 0:n.assignments)||(null==n?void 0:n.preset)!==S.cx.Admin?null!==(a=null==t?void 0:t.agent)&&void 0!==a?a:[]:Je),admin:(0,w.sortBy)(null!==(o=null==t?void 0:t.admin)&&void 0!==o?o:[])}}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275inject(ve))},r.\u0275prov=e.\u0275\u0275defineInjectable({token:r,factory:r.\u0275fac}),r})();var Qe=l(91528);function Lt(r,i){if(1&r&&(e.\u0275\u0275elementStart(0,"h3",3),e.\u0275\u0275text(1),e.\u0275\u0275elementEnd()),2&r){const t=e.\u0275\u0275nextContext();e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1(" ",t.title," ")}}function Gt(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"div",6)(1,"div",7)(2,"span",8),e.\u0275\u0275text(3),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(4,"span",9),e.\u0275\u0275text(5),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(6,"mat-slide-toggle",10),e.\u0275\u0275listener("change",function(a){const s=e.\u0275\u0275restoreView(t).$implicit;return e.\u0275\u0275nextContext(2).onToggle(s.key,a.checked)}),e.\u0275\u0275elementEnd()()}if(2&r){const t=i.$implicit,n=e.\u0275\u0275nextContext().$implicit,a=e.\u0275\u0275nextContext();e.\u0275\u0275advance(3),e.\u0275\u0275textInterpolate(t.name),e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(t.description),e.\u0275\u0275advance(1),e.\u0275\u0275property("disableRipple",!0)("checked",t.enabled)("disabled",a.disabled),e.\u0275\u0275attribute("aria-label",n.header+" \u2014 "+t.name)}}function Ht(r,i){if(1&r&&(e.\u0275\u0275elementStart(0,"div")(1,"div",4),e.\u0275\u0275text(2),e.\u0275\u0275elementEnd(),e.\u0275\u0275template(3,Gt,7,6,"div",5),e.\u0275\u0275elementEnd()),2&r){const t=i.$implicit,n=e.\u0275\u0275nextContext();e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(t.header),e.\u0275\u0275advance(1),e.\u0275\u0275property("ngForOf",t.rows)("ngForTrackBy",n.trackByKey)}}let Ze=(()=>{class r{constructor(){this.title="",this.groups=[],this.disabledKeys=[],this.disabled=!1,this.toggled=new e.EventEmitter,this.viewGroups=[]}ngOnChanges(){this.viewGroups=this.groups.map(t=>({header:t.header,rows:t.rows.map(n=>Object.assign(Object.assign({},n),{enabled:!this.disabledKeys.includes(n.key)}
1))}))}onToggle(t,n){this.toggled.emit({key:t,enabled:n})}trackByHeader(t,n){return n.header}trackByKey(t,n){return n.key}}return r.\u0275fac=function(t){return new(t||r)},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["tn-notification-toggle-section"]],inputs:{title:"title",groups:"groups",disabledKeys:"disabledKeys",disabled:"disabled"},outputs:{toggled:"toggled"},features:[e.\u0275\u0275NgOnChangesFeature],decls:4,vars:3,consts:[["class","mt-24 mb-16 px-12 text-18 font-bold leading-6 text-gray-90",4,"ngIf"],[1,"rounded-lg","bg-gray-5","px-1","pb-1"],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"mt-24","mb-16","px-12","text-18","font-bold","leading-6","text-gray-90"],[1,"group-header"],["class","toggle-row",4,"ngFor","ngForOf","ngForTrackBy"],[1,"toggle-row"],[1,"toggle-text"],[1,"toggle-name"],[1,"toggle-desc"],["color","primary",1,"mat-slide-toggle-sm",3,"disableRipple","checked","disabled","change"]],template:function(t,n){1&t&&(e.\u0275\u0275elementStart(0,"section"),e.\u0275\u0275template(1,Lt,2,1,"h3",0),e.\u0275\u0275elementStart(2,"div",1),e.\u0275\u0275template(3,Ht,4,3,"div",2),e.\u0275\u0275elementEnd()()),2&t&&(e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",n.title),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngForOf",n.viewGroups)("ngForTrackBy",n.trackByHeader))},directives:[g.NgIf,g.NgForOf,ue.Rr],styles:[".group-header[_ngcontent-%COMP%]{padding:1rem .5rem .5rem;font-size:1rem;font-weight:600;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(20 20 20 / var(--tw-text-opacity, 1))}.toggle-row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-radius:.25rem;border-width:1px;border-style:solid;--tw-border-opacity: 1;border-color:rgb(237 237 237 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:.5rem}.toggle-row[_ngcontent-%COMP%] + .toggle-row[_ngcontent-%COMP%]{margin-top:.25rem}.toggle-text[_ngcontent-%COMP%]{display:flex;flex-direction:column}.toggle-name[_ngcontent-%COMP%]{font-weight:500;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(20 20 20 / var(--tw-text-opacity, 1))}.toggle-desc[_ngcontent-%COMP%]{margin-top:.0625rem;font-size:.8125rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(117 117 117 / var(--tw-text-opacity, 1))}"],changeDetection:0}),r})();function Kt(r,i){if(1&r&&e.\u0275\u0275element(0,"ui-option-content",13),2&r){const t=i.$implicit;e.\u0275\u0275property("showAvatar",!0)("avatarSrc",t.photoURL)("avatarName",t.displayName)("avatarEmail",t.email)("label",t.displayName)("truncateLabel",!0)}}function Yt(r,i){if(1&r&&e.\u0275\u0275element(0,"ui-option-content",13),2&r){const t=i.$implicit;e.\u0275\u0275property("showAvatar",!0)("avatarSrc",t.photoURL)("avatarName",t.displayName)("avatarEmail",t.email)("label",t.displayName)("truncateLabel",!0)}}let Wt=(()=>{class r{constructor(t,n){var a,o,s;this.dialogRef=t,this.data=n,this.offeredKeys=Ce(this.data.groups),this.groups=this.data.groups,this.isEdit=Boolean(this.data.assignment),this.recipientOptions=this.data.recipients,this.agentOptions=this.data.agents,this.recipientUid=null===(a=this.data.assignment)||void 0===a?void 0:a.recipientUid,this.agentUids=[...null!==(s=null===(o=this.data.assignment)||void 0===o?void 0:o.agentUids)&&void 0!==s?s:[]],this.disabledKeys=this.data.assignment?(0,w.difference)(this.offeredKeys,this.data.assignment.keys):[]}get canConfirm(){return Boolean(this.recipientUid)&&this.disabledKeys.length<this.offeredKeys.length}onRecipientSelected(t){this.recipientUid=t}onAgentsSelected(t){this.agentUids=t}onToggled(t){this.disabledKeys=t.enabled?(0,w.without)(this.disabledKeys,t.key):[...this.disabledKeys,t.key]}confirm(){!this.recipientUid||!this.canConfirm||this.dialogRef.close({recipientUid:this.recipientUid,allAgents:!this.agentUids.length,agentUids:this.agentUids,keys:this.selectedKeys()})}selectedKeys(){var t,n;const a=(0,w.difference)(null!==(n=null===(t=this.data.assignment)||void 0===t?void 0:t.keys)&&void 0!==n?n:[],this.offeredKeys);return[...(0,w.difference)(this.offeredKeys,this.disabledKeys),...a]}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275directiveInject(f.so),e.\u0275\u0275directiveInject(f.WI))},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["tn-notification-assignment-dialog"]],decls:27,vars:18,consts:[[3,"closeResult"],[1,"select-card"],[1,"field"],[1,"field-label"],["appearance","bordered","placeholder","Select an agent","nameKey","displayName","valueKey","uid",1,"block",3,"items","value","searchable","showAvatar","disabled","selectionChange"],["o
1ptionTmpl",""],["placeholder","Select","searchPlaceholder","Enter a name","nameKey","displayName","valueKey","uid",1,"block",3,"leftIcon","items","value","multiple","chipMode","searchable","clearable","selectionChange"],[1,"hint"],[1,"section-label"],[3,"groups","disabledKeys","toggled"],[1,"justify-end"],["uiBtnSize","medium","uiBtnTheme","main","themeMode","secondary",3,"matDialogClose"],["uiBtnSize","medium","uiBtnTheme","main","themeMode","primary",3,"disabled","click"],[3,"showAvatar","avatarSrc","avatarName","avatarEmail","label","truncateLabel"]],template:function(t,n){1&t&&(e.\u0275\u0275elementStart(0,"ui-dialog-header",0),e.\u0275\u0275text(1),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(2,"mat-dialog-content")(3,"div",1)(4,"div",2)(5,"label",3),e.\u0275\u0275text(6,"Select"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(7,"ui-select",4),e.\u0275\u0275listener("selectionChange",function(o){return n.onRecipientSelected(o)}),e.\u0275\u0275template(8,Kt,1,6,"ng-template",null,5,e.\u0275\u0275templateRefExtractor),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(10,"div",2)(11,"label",3),e.\u0275\u0275text(12,"Receive the notification for"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(13,"ui-select",6),e.\u0275\u0275listener("selectionChange",function(o){return n.onAgentsSelected(o)}),e.\u0275\u0275template(14,Yt,1,6,"ng-template",null,5,e.\u0275\u0275templateRefExtractor),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(16,"span",7),e.\u0275\u0275text(17,"Leave empty to receive notifications for all agents."),e.\u0275\u0275elementEnd()()(),e.\u0275\u0275elementStart(18,"div",2)(19,"span",8),e.\u0275\u0275text(20,"Select notifications to receive"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(21,"tn-notification-toggle-section",9),e.\u0275\u0275listener("toggled",function(o){return n.onToggled(o)}),e.\u0275\u0275elementEnd()()(),e.\u0275\u0275elementStart(22,"mat-dialog-actions",10)(23,"button",11),e.\u0275\u0275text(24," Cancel "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(25,"button",12),e.\u0275\u0275listener("click",function(){return n.confirm()}),e.\u0275\u0275text(26," Confirm "),e.\u0275\u0275elementEnd()()),2&t&&(e.\u0275\u0275property("closeResult",void 0),e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1(" ",n.isEdit?"Edit a recipient":"Add a recipient","\n"),e.\u0275\u0275advance(6),e.\u0275\u0275property("items",n.recipientOptions)("value",n.recipientUid)("searchable",!0)("showAvatar",!0)("disabled",n.isEdit),e.\u0275\u0275advance(6),e.\u0275\u0275property("leftIcon","person")("items",n.agentOptions)("value",n.agentUids)("multiple",!0)("chipMode",!0)("searchable",!0)("clearable",!0),e.\u0275\u0275advance(8),e.\u0275\u0275property("groups",n.groups)("disabledKeys",n.disabledKeys),e.\u0275\u0275advance(2),e.\u0275\u0275property("matDialogClose",void 0),e.\u0275\u0275advance(2),e.\u0275\u0275property("disabled",!n.canConfirm))},directives:[Q.A,f.xY,q.H,Qe.J,Ze,f.H8,E.s,M.V,f.ZT],styles:["mat-dialog-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.select-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;align-self:stretch;border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1));padding:.25rem}.field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;align-self:stretch}.field-label[_ngcontent-%COMP%]{margin-bottom:0;display:block;font-size:.75rem;font-weight:600;line-height:1rem;--tw-text-opacity: 1;color:rgb(117 117 117 / var(--tw-text-opacity, 1))}.section-label[_ngcontent-%COMP%]{display:block;font-size:1rem;font-weight:600;line-height:1.5rem;--tw-text-opacity: 1;color:rgb(20 20 20 / var(--tw-text-opacity, 1))}.hint[_ngcontent-%COMP%]{display:block;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(128 128 128 / var(--tw-text-opacity, 1))}"],changeDetection:0}),r})(),Se=(()=>{class r{constructor(t){this.dialog=t}openDialog(t){return this.dialog.open(Wt,{panelClass:"app-v2",data:t,width:"640px",disableClose:!1,autoFocus:!1}).afterClosed()}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275inject(f.uw))},r.\u0275prov=e.\u0275\u0275defineInjectable({token:r,factory:r.\u0275fac}),r})(),Be=(()=>
1{class r{constructor(t,n){this.contextService=t,this.appConfig=n,this.globalConfig$=(0,O.aj)([this.contextService.managementConfig$,this.contextService.bookingConfig$]).pipe((0,x.d)({bufferSize:1,refCount:!0})),this.agentGroups$=this.globalConfig$.pipe((0,v.U)(([a,o])=>this.filterEnabledGroups(Ye,a,o))),this.assignableGroups$=this.globalConfig$.pipe((0,v.U)(([a,o])=>this.filterEnabledGroups(We,a,o)),(0,x.d)({bufferSize:1,refCount:!0}))}filterEnabledGroups(t,n,a){return t.map(o=>Object.assign(Object.assign({},o),{rows:o.rows.filter(s=>(0,_.cF1)(s.key,n,a,this.appConfig.allowTextNotifications))})).filter(o=>!!o.rows.length)}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275inject(u.ObY),e.\u0275\u0275inject(u._ZM))},r.\u0275prov=e.\u0275\u0275defineInjectable({token:r,factory:r.\u0275fac}),r})();var de=l(75518),Jt=l(88514),Te=l(1059),qe=l(79979);let Xt=(()=>{class r{constructor(t,n){this.elementRef=t,this.ngZone=n,this.uiOverflowAxis="horizontal",this.isOverflowing$=this.ngZone.runOutsideAngular(()=>(0,Jt.P)(()=>{const a=this.resolveTarget(),o=(0,qe.X)(a),s=(0,qe.i)(a);return(0,ne.T)(o,s).pipe((0,Te.O)(null),(0,v.U)(()=>this.isOverflowing(a)))}).pipe((0,Z.x)(),(0,x.d)({bufferSize:1,refCount:!0})))}isOverflowing(t){return"vertical"===this.uiOverflowAxis?t.scrollHeight>t.clientHeight+1:t.scrollWidth>t.clientWidth+1}resolveTarget(){var t;const n=this.elementRef.nativeElement;return this.target&&null!==(t=n.querySelector(this.target))&&void 0!==t?t:n}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275directiveInject(e.ElementRef),e.\u0275\u0275directiveInject(e.NgZone))},r.\u0275dir=e.\u0275\u0275defineDirective({type:r,selectors:[["","uiOverflowDetector",""]],inputs:{target:["uiOverflowDetector","target"],uiOverflowAxis:"uiOverflowAxis"},exportAs:["uiOverflowDetector"]}),r})();var U=l(255);function Qt(r,i){1&r&&(e.\u0275\u0275elementStart(0,"span",7),e.\u0275\u0275text(1,"This brokerage has no admins yet"),e.\u0275\u0275elementEnd())}function Zt(r,i){1&r&&(e.\u0275\u0275elementStart(0,"span",7),e.\u0275\u0275text(1," No admin receives notifications for this brokerage "),e.\u0275\u0275elementEnd())}function qt(r,i){1&r&&(e.\u0275\u0275elementContainerStart(0),e.\u0275\u0275text(1," All agents "),e.\u0275\u0275elementContainerEnd())}function en(r,i){if(1&r&&(e.\u0275\u0275elementStart(0,"span",25),e.\u0275\u0275element(1,"i",26),e.\u0275\u0275elementStart(2,"span",27,28),e.\u0275\u0275pipe(4,"async"),e.\u0275\u0275text(5),e.\u0275\u0275elementEnd()()),2&r){const t=i.$implicit,n=e.\u0275\u0275reference(3);e.\u0275\u0275advance(1),e.\u0275\u0275property("size",16),e.\u0275\u0275advance(1),e.\u0275\u0275property("matTooltip",t)("matTooltipDisabled",!1===e.\u0275\u0275pipeBind1(4,4,n.isOverflowing$)),e.\u0275\u0275advance(3),e.\u0275\u0275textInterpolate(t)}}function tn(r,i){if(1&r&&(e.\u0275\u0275elementStart(0,"span",25),e.\u0275\u0275element(1,"i",29),e.\u0275\u0275elementStart(2,"span"),e.\u0275\u0275text(3),e.\u0275\u0275elementEnd()()),2&r){const t=e.\u0275\u0275nextContext(2).$implicit;e.\u0275\u0275advance(1),e.\u0275\u0275property("size",16),e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate1("",t.unknownAgents," unknown")}}function nn(r,i){if(1&r&&(e.\u0275\u0275template(0,en,6,6,"span",23),e.\u0275\u0275template(1,tn,4,2,"span",24)),2&r){const t=e.\u0275\u0275nextContext().$implicit,n=e.\u0275\u0275nextContext(2);e.\u0275\u0275property("ngForOf",t.agentNames)("ngForTrackBy",n.trackByName),e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",t.unknownAgents)}}function rn(r,i){1&r&&(e.\u0275\u0275elementContainerStart(0),e.\u0275\u0275text(1," All notifications "),e.\u0275\u0275elementContainerEnd())}function an(r,i){if(1&r&&(e.\u0275\u0275elementStart(0,"span",25),e.\u0275\u0275element(1,"i",30),e.\u0275\u0275elementStart(2,"span",27,31),e.\u0275\u0275pipe(4,"async"),e.\u0275\u0275text(5),e.\u0275\u0275elementEnd()()),2&r){const t=i.$implicit,n=e.\u0275\u0275reference(3);e.\u0275\u0275advance(1),e.\u0275\u0275property("uiIcon",t.icon)("size",16),e.\u0275\u0275advance(1),e.\u0275\u0275property("matTooltip",t.name)("matTooltipDisabled",!1===e.\u0275\u0275pipeBind1(4,5,n.isOverflowing$)),e.\u0275\u0275advance(3),e.\u0275\u0275textInterpolate(t.name)}}function on(r,i){if(1&r&&e.\u0275\u0275template(0,an,6,7,"span",23),2&r){const t=e.\u0275\u0275nextContext().$implicit,n=e.\u0275\u0275nextContext(2);
1e.\u0275\u0275property("ngForOf",t.notifications)("ngForTrackBy",n.trackByNotification)}}function sn(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"tr")(1,"td")(2,"div",10),e.\u0275\u0275element(3,"ui-avatar",11),e.\u0275\u0275elementStart(4,"div")(5,"span",12,13),e.\u0275\u0275pipe(7,"async"),e.\u0275\u0275text(8),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(9,"span",14),e.\u0275\u0275text(10,"Admin"),e.\u0275\u0275elementEnd()()()(),e.\u0275\u0275elementStart(11,"td"),e.\u0275\u0275template(12,qt,2,0,"ng-container",15),e.\u0275\u0275template(13,nn,2,3,"ng-template",null,16,e.\u0275\u0275templateRefExtractor),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(15,"td"),e.\u0275\u0275template(16,rn,2,0,"ng-container",15),e.\u0275\u0275template(17,on,1,2,"ng-template",null,17,e.\u0275\u0275templateRefExtractor),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(19,"td")(20,"span",18)(21,"button",19),e.\u0275\u0275listener("click",function(){const o=e.\u0275\u0275restoreView(t).$implicit;return e.\u0275\u0275nextContext(2).editRequested.emit(o.assignment)}),e.\u0275\u0275element(22,"i",20),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(23,"button",21),e.\u0275\u0275listener("click",function(){const o=e.\u0275\u0275restoreView(t).$implicit;return e.\u0275\u0275nextContext(2).removeRequested.emit(o.assignment)}),e.\u0275\u0275element(24,"i",22),e.\u0275\u0275elementEnd()()()()}if(2&r){const t=i.$implicit,n=e.\u0275\u0275reference(6),a=e.\u0275\u0275reference(14),o=e.\u0275\u0275reference(18),s=e.\u0275\u0275nextContext(2);e.\u0275\u0275advance(3),e.\u0275\u0275property("src",null==t.recipient?null:t.recipient.photoURL)("name",t.recipientName)("email",null==t.recipient?null:t.recipient.email),e.\u0275\u0275advance(2),e.\u0275\u0275property("matTooltip",t.recipientName)("matTooltipDisabled",!1===e.\u0275\u0275pipeBind1(7,12,n.isOverflowing$)),e.\u0275\u0275advance(3),e.\u0275\u0275textInterpolate(t.recipientName),e.\u0275\u0275advance(4),e.\u0275\u0275property("ngIf",t.assignment.allAgents)("ngIfElse",a),e.\u0275\u0275advance(4),e.\u0275\u0275property("ngIf",t.allNotifications)("ngIfElse",o),e.\u0275\u0275advance(5),e.\u0275\u0275property("disabled",s.disabled),e.\u0275\u0275advance(2),e.\u0275\u0275property("disabled",s.disabled)}}function ln(r,i){if(1&r&&(e.\u0275\u0275elementStart(0,"div",8)(1,"table")(2,"thead")(3,"tr")(4,"th"),e.\u0275\u0275text(5,"Recipient"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(6,"th"),e.\u0275\u0275text(7,"For agents"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(8,"th"),e.\u0275\u0275text(9,"Notifications"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(10,"th"),e.\u0275\u0275text(11,"Action"),e.\u0275\u0275elementEnd()()(),e.\u0275\u0275elementStart(12,"tbody"),e.\u0275\u0275template(13,sn,25,14,"tr",9),e.\u0275\u0275elementEnd()()()),2&r){const t=e.\u0275\u0275nextContext();e.\u0275\u0275advance(13),e.\u0275\u0275property("ngForOf",t.rows)("ngForTrackBy",t.trackByRecipient)}}let cn=(()=>{class r{constructor(){this.rows=[],this.disabled=!1,this.canAdd=!0,this.membersByUid={},this.groups=[],this.value=[],this.addRequested=new e.EventEmitter,this.editRequested=new e.EventEmitter,this.removeRequested=new e.EventEmitter}ngOnChanges(){this.rows=this.toRows()}trackByRecipient(t,n){return n.assignment.recipientUid}trackByName(t,n){return n}trackByNotification(t,n){return n.name}toRows(){const t=this.groups.flatMap(n=>n.rows);return this.value.map(n=>this.toRow(n,t))}toRow(t,n){const a=n.filter(c=>t.keys.includes(c.key)).map(c=>({name:c.name,icon:this.iconFor(c.key)}
1)),o=t.agentUids.map(c=>this.displayName(c)).filter(c=>Boolean(c)),s=this.membersByUid[t.recipientUid];return{assignment:t,recipient:s,recipientName:(null==s?void 0:s.displayName)||(null==s?void 0:s.email)||"Unknown user",agentNames:o,unknownAgents:t.agentUids.length-o.length,notifications:a,allNotifications:n.length>0&&a.length===n.length}}iconFor(t){return Ut.has(t)?"chat":"email"}displayName(t){const n=this.membersByUid[t];return(null==n?void 0:n.displayName)||(null==n?void 0:n.email)||void 0}}return r.\u0275fac=function(t){return new(t||r)},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["tn-notification-assignments-table"]],inputs:{disabled:"disabled",canAdd:"canAdd",membersByUid:"membersByUid",groups:"groups",value:"value"},outputs:{addRequested:"addRequested",editRequested:"editRequested",removeRequested:"removeRequested"},features:[e.\u0275\u0275NgOnChangesFeature],decls:11,vars:4,consts:[[1,"assignments"],[1,"intro"],[1,"title"],[1,"desc"],["uiBtnSize","small","uiBtnTheme","main","themeMode","primary",1,"add",3,"disabled","click"],["class","empty-note",4,"ngIf"],["class","table-card",4,"ngIf"],[1,"empty-note"],[1,"table-card"],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"person"],["size","medium",3,"src","name","email"],["uiOverflowDetector","","uiOverflowAxis","vertical",1,"recipient",3,"matTooltip","matTooltipDisabled"],["recipientText","uiOverflowDetector"],[1,"role"],[4,"ngIf","ngIfElse"],["namedAgents",""],["namedNotifications",""],[1,"actions"],["type","button","aria-label","Edit assignment",1,"action",3,"disabled","click"],["uiIcon","edit"],["type","button","aria-label","Remove assignment",1,"action",3,"disabled","click"],["uiIcon","delete"],["class","chip",4,"ngFor","ngForOf","ngForTrackBy"],["class","chip",4,"ngIf"],[1,"chip"],["uiIcon","account_circle",3,"size"],["uiOverflowDetector","","uiOverflowAxis","vertical",3,"matTooltip","matTooltipDisabled"],["agentText","uiOverflowDetector"],["uiIcon","help",3,"size"],[3,"uiIcon","size"],["notificationText","uiOverflowDetector"]],template:function(t,n){1&t&&(e.\u0275\u0275elementStart(0,"div",0)(1,"div",1)(2,"span",2),e.\u0275\u0275text(3,"Notification assignments"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(4,"span",3),e.\u0275\u0275text(5,"Add a recipient and choose which notifications they receive."),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(6,"button",4),e.\u0275\u0275listener("click",function(){return n.addRequested.emit()}),e.\u0275\u0275text(7," Add "),e.\u0275\u0275elementEnd(),e.\u0275\u0275template(8,Qt,2,0,"span",5),e.\u0275\u0275template(9,Zt,2,0,"span",5),e.\u0275\u0275template(10,ln,14,2,"div",6),e.\u0275\u0275elementEnd()),2&t&&(e.\u0275\u0275advance(6),e.\u0275\u0275property("disabled",n.disabled||!n.canAdd),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngIf",!n.canAdd),e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",n.canAdd&&!n.rows.length),e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",n.rows.length))},directives:[E.s,M.V,g.NgIf,g.NgForOf,de.A,Xt,te.gM,U.a],pipes:[g.AsyncPipe],styles:[".assignments[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;align-self:stretch;border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1));padding:.5rem .25rem}.intro[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;align-self:stretch;padding-left:.5rem;padding-right:.5rem;padding-top:.5rem}.intro[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;line-height:1.5rem;--tw-text-opacity: 1;color:rgb(20 20 20 / var(--tw-text-opacity, 1))}.intro[_ngcontent-%COMP%] .desc[_ngcontent-%COMP%]{font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(117 117 117 / var(--tw-text-opacity, 1))}.add[_ngcontent-%COMP%], .empty-note[_ngcontent-%COMP%]{margin-left:.5rem}.empty-note[_ngcontent-%COMP%]{display:block;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(128 128 128 / var(--tw-text-opacity, 1))}.table-card[_ngcontent-%COMP%]{align-self:stretch;border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:.25rem}table[_ngcontent-%COMP%]{width:100%;table-layout:fixed;border-collapse:collapse}table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:.5rem .75rem;text-align:left}table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{--tw-bg-opacity: 1;background-color:rgb(242 242 242 / var(--tw-bg-opacity, 1));font-size:.75rem;font-weight:600;line-height:1rem;--tw-text-opacity: 1;color:rgb(51 51 51 / var(--tw-text-opacity, 1))}table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-top-width:1px;--tw-border-opacity: 1;border-color:rgb(246 246 246 / var(--tw-border-opacity, 1));vertical-align:top;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(20 20 20 / var(--tw-text-opacity, 1))}table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]:last-child, table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:last-child{width:20%}.person[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.5rem}
1.person[_ngcontent-%COMP%] ui-avatar[_ngcontent-%COMP%]{flex-shrink:0}.person[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{min-width:0}.recipient[_ngcontent-%COMP%]{display:block;font-size:.875rem;font-weight:400;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(26 26 26 / var(--tw-text-opacity, 1));display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}.role[_ngcontent-%COMP%]{display:block;font-size:.6875rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(128 128 128 / var(--tw-text-opacity, 1))}.chip[_ngcontent-%COMP%]{margin-right:.5rem;margin-bottom:.5rem;display:inline-flex;max-width:100%;align-items:flex-start;gap:.5rem;border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgb(246 246 246 / var(--tw-bg-opacity, 1));padding:.125rem .5rem;vertical-align:top;--tw-text-opacity: 1;color:rgb(20 20 20 / var(--tw-text-opacity, 1))}.chip[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin-top:.125rem;flex-shrink:0}.chip[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}.actions[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.5rem}.action[_ngcontent-%COMP%]{padding:0;--tw-text-opacity: 1;color:rgb(128 128 128 / var(--tw-text-opacity, 1));border-width:0px;background-color:transparent}.action[_ngcontent-%COMP%]:disabled{pointer-events:none;opacity:.4}"],changeDetection:0}),r})();function dn(r,i){1&r&&(e.\u0275\u0275elementStart(0,"span",15),e.\u0275\u0275text(1," Couldn't save changes. Please try again. "),e.\u0275\u0275elementEnd())}function mn(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"div",9)(1,"div",10)(2,"div",11),e.\u0275\u0275template(3,dn,2,0,"span",12),e.\u0275\u0275elementStart(4,"button",13),e.\u0275\u0275listener("click",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext(2).discardChanges()}),e.\u0275\u0275text(5," Discard Changes "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(6,"button",14),e.\u0275\u0275listener("click",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext(2).save()}),e.\u0275\u0275text(7," Save Changes "),e.\u0275\u0275elementEnd()()()()}if(2&r){const t=e.\u0275\u0275nextContext().ngIf;e.\u0275\u0275advance(1),e.\u0275\u0275property("ngClass",t.hasUnsavedChanges||t.isSaving?"bottom-0":"-bottom-48"),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngIf",t.isSaveFailed),e.\u0275\u0275advance(1),e.\u0275\u0275property("disabled",!t.hasUnsavedChanges||t.isSaving),e.\u0275\u0275advance(2),e.\u0275\u0275property("disabled",!t.hasUnsavedChanges)("uiBtnLoading",t.isSaving)}}const et=function(){return[]},pn=function(){return{}};function gn(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementContainerStart(0),e.\u0275\u0275elementStart(1,"div",1)(2,"div",2)(3,"h2",3),e.\u0275\u0275text(4,"Notification settings"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(5,"p",4),e.\u0275\u0275text(6," Control who receives which notifications for bookings made under this brokerage. "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(7,"tn-notification-toggle-section",5),e.\u0275\u0275listener("toggled",function(a){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onAgentToggled(a)}),e.\u0275\u0275pipe(8,"async"),e.\u0275\u0275pipe(9,"async"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(10,"h3",6),e.\u0275\u0275text(11," Admin notifications "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(12,"tn-notification-assignments-table",7),e.\u0275\u0275listener("addRequested",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onAddRequested()})("editRequested",function(a){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onEditRequested(a)})("removeRequested",function(a){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onRemoveRequested(a)}),e.\u0275\u0275pipe(13,"async"),e.\u0275\u0275pipe(14,"async"),e.\u0275\u0275pipe(15,"async"),e.\u0275\u0275pipe(16,"async"),e.\u0275\u0275elementEnd()()(),e.\u0275\u0275template(17,mn,8,5,"div",8),e.\u0275\u0275pipe(18,"async"),e.\u0275\u0275elementContainerEnd()}if(2&r){const t=i.ngIf,n=e.\u0275\u0275nextContext();let a,o,s,c,m,p;e.\u0275\u0275advance(7),e.\u0275\u0275property("groups",null!==(a=e.\u0275\u0275pipeBind1(8,9,n.agentGroups$))&&void 0!==a?a:e.\u0275\u0275pureFunction0(23,et))("disabledKeys",t.disabledAgent)("disabled",null!==(o=e.\u0275\u0275pipeBind1(9,11,n.isReadOnly$))&&void 0!==o&&o),e.\u0275\u0275advance(5),e.\u0275\u0275property("value",t.assignments)("membersByUid",null!==(s=e.\u0275\u0275pipeBind1(13,13,n.membersByUid$))&&void 0!==s?s:e.\u0275\u0275pureFunction0(24,pn))("groups",null!==(c=e.\u0275\u0275pipeBind1(14,15,n.assignableGroups$))&&void 0!==c?c:e.\u0275\u0275pureFunction0(25,et))("canAdd",null!==(m=e.\u0275\u0275pipeBind1(15,17,n.hasManagers$))&&void 0!==m&&m)("disabled",null!==(p=e.\u0275\u0275pipeBind1(16,19,n.isReadOnly$))&&void 0!==p&&p),e.\u0275\u0275advance(5),e.\u0275\u0275property("ngIf",!1===e.\u0275\u0275pipeBind1(18,21,n.isReadOnly$))}}let z=class{constructor(i,t,n,a){this.store=i,this.facade=t,this.availability=n,this.assignmentDialog=a,this.vm$=this.store.vm$,this.sourceBrokerage$=this.facade.parentOrSelfBrokerage$,this.managerOptions$=this.sourceBrokerage$.pipe((0,v.U)(o=>{var s;return Object.values(null!==(s=null==o?void 0:o.managers)&&void 0!==s?s:{})})),this.members$=this.sourceBrokerage$.pipe((0,v.U)(o=>null==o?void 0:o.id),(0,Z.x)(),(0,I.w)(o=>o?this.facade.childBrokeragesOf(o).pipe((0,I.w)(s=>this.facade.fetchAllMembers([o,...s.map(c=>c.id)]))):(0,D.of)([])),(0,v.U)(o=>o.map(s=>this.toPerson(s))),(0,x.d)({bufferSize:1,refCount:!0})),this.isReadOnly$=this.facade.isChildBrokerage$,this.agentGroups$=this.availability.agentGroups$,this.assignableGroups$=this.availability.assignableGroups$,this.hasManagers$=this.managerOptions$.pipe((0,v.U)(o=>o.length>0)),this.membersByUid$=(0,O.aj)([this.managerOptions$,this.members$]).pipe((0,v.U)(([o,s])=>(0,w.keyBy)([...o,...s],"uid")))}ngOnInit(){this.sourceBrokerage$.pipe((0,k.t)(this)).subscribe(i=>this.loadSavedSettingsFrom(i)),this.store.isSaved$.pipe((0,ee.h)(Boolean),(0,k.t)(this)).subscribe(()=>this.facade.refreshBrokerage())}onAddRequested(){this.openAssignmentDialog()}onEditRequested(i){this.openAssignmentDialog(i)}onRemoveRequested(i){this.store.removeAssignment(i.recipientUid)}onAgentToggled(i){this.store.toggleAgentNotification(i)}save(){this.facade.brokerageId&&this.store.save(this.facade.brokerageId)}discardChanges(){this.store.discardChanges()}loadSavedSettingsFrom(i){var t;this.store.loadSavedSettings({settings:null==i?void 0:i.notificationSettings,disabled:null==i?void 0:i.disabledNotifications,managerUids:Object.keys(null!==(t=null==i?void 0:i.managers)&&void 0!==t?t:{})})}openAssignmentDialog(i){(0,O.aj)([this.managerOptions$,this.store.assignments$,this.members$,this.assignableGroups$]).pipe((0,oe.q)(1),(0,I.w)(([t,n,a,o])=>this.assignmentDialog.openDialog({groups:o,recipients:this.managersWithoutARow(t,n,i),agents:this.agentsIncludingUnresolved(a,i),assignment:i})),(0,ee.h)(t=>Boolean(t)),(0,k.t)(this)).subscribe(t=>this.store.upsertAssignment(t))}agentsIncludingUnresolved(i,t){var n;const a=new Set(i.map(s=>s.uid)),o=(null!==(n=null==t?void 0:t.agentUids)&&void 0!==n?n:[]).filter(s=>!a.has(s));return[...i,...o.map(s=>({uid:s,displayName:"Unknown user",email:""}))]}managersWithoutARow(i,t,n){const a=new Set(t.map(o=>o.recipientUid).filter(o=>o!==(null==n?void 0:n.recipientUid)));return i.filter(o=>!a.has(o.uid))}toPerson(i){const{objectID:t,uid:n,displayName:a,email:o,photoURL:s}=i;return{uid:null!=n?n:String(t),displayName:a,email:o,photoURL:s}}};z.\u0275fac=function(i){return new(i||z)(e.\u0275\u0275directiveInject(xe),e.\u0275\u0275directiveInject(T),e.\u0275\u0275directiveInject(Be),e.\u0275\u0275directiveInject(Se))},z.\u0275cmp=e.\u0275\u0275defineComponent({type:z,selectors:[["ng-component"]],features:[e.\u0275\u0275ProvidersFeature([xe,Be,Se])],decls:2,vars:3,consts:[[4,"ngIf"],[1,"w-full","flex","justify-center","mt-32"],[1,"page","mb-24","w-full"],[1,"mb-1","px-12"],[1,"text-gray-50","mb-16","px-12"],["title","Agent notifications",3,"groups","disabledKeys","disabled","toggled"],[1,"mt-24","mb-16","px-12","text-18","font-bold","leading-6","text-gray-90"],[3,"value","membersByUid","groups","canAdd","disabled","addRequested","editRequested","removeRequested"],["class","w-full p-24 pb-12 bg-white flex flex-col flex-1",4,"ngIf"],[1,"w-full","p-24","pb-12","bg-white","flex","flex-col","flex-1"],[1,"absolute","z-10","h-48","bg-gray-5","flex","justify-center","items-center","left-0","right-0","px-16","transition-all",3,"ngClass"],[1,"page","w-full","flex","items-center","justify-end"],["class","text-red-50 text-13 mr-12",4,"ngIf"],["uiBtnSize","small","uiBtnTheme","main","themeMode","secondary",1,"mr-8",3,"disabled","click"],["uiBtnSize","small","uiBtnTheme","main","themeMode","primary",3,"disabled","uiBtnLoading","click"],[1,"text-red-50","text-13","mr-12"]],template:function(i,t){1&i&&(e.\u0275\u0275template(0,gn,19,26,"ng-container",0),e.\u0275\u0275pipe(1,"async")),2&i&&e.\u0275\u0275property("ngIf",e.\u0275\u0275pipeBind1(1,1,t.vm$))},directives:[g.NgIf,Ze,cn,g.NgClass,E.s,M.V,j.T],pipes:[g.AsyncPipe],styles:[".page[_ngcontent-%COMP%]{max-width:43rem}"],changeDetection:0}),z=(0,h.gn)([(0,k.c)(),(0,h.w6)("design:paramtypes",[xe,T,Be,Se])],z);var we=l(84415),Ie=l(52395),Pe=l(45867),un=l(72149);function hn(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"ui-avatar-group",1),e.\u0275\u0275listener("avatarSelected",function(a){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().selectManager(a)}),e.\u0275\u0275elementEnd()}if(2&r){const t=e.\u0275\u0275nextContext();e.\u0275\u0275property("summary",!0)("avatars",t.avatars)}}let tt=(()=>
1{class r{constructor(){this.managerSelected=new e.EventEmitter,this.avatars=[]}set managers(t){this.avatars=Object.values(null!=t?t:{}).map(n=>({id:n.uid,src:n.photoURL,name:n.displayName,email:n.email}))}selectManager(t){t.id&&this.managerSelected.emit(t.id)}}return r.\u0275fac=function(t){return new(t||r)},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["tn-brokerage-managers-cell"]],inputs:{managers:"managers"},outputs:{managerSelected:"managerSelected"},decls:1,vars:1,consts:[["class","cursor-pointer","size","small",3,"summary","avatars","avatarSelected",4,"ngIf"],["size","small",1,"cursor-pointer",3,"summary","avatars","avatarSelected"]],template:function(t,n){1&t&&e.\u0275\u0275template(0,hn,1,2,"ui-avatar-group",0),2&t&&e.\u0275\u0275property("ngIf",n.avatars.length)},directives:[g.NgIf,un.m],encapsulation:2,changeDetection:0}),r})();function fn(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"div",5),e.\u0275\u0275listener("click",function(){const o=e.\u0275\u0275restoreView(t).$implicit;return e.\u0275\u0275nextContext().goToBrokerage(o.id)}),e.\u0275\u0275element(1,"ui-avatar",6),e.\u0275\u0275elementStart(2,"h4",7),e.\u0275\u0275text(3),e.\u0275\u0275elementEnd()()}if(2&r){const t=i.$implicit;e.\u0275\u0275advance(1),e.\u0275\u0275property("src",t.logo)("name",t.name),e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(t.name)}}function vn(r,i){if(1&r&&e.\u0275\u0275text(0),2&r){let n;e.\u0275\u0275textInterpolate1(" ",null!==(n=i.$implicit.membersCount)&&void 0!==n?n:0," ")}}function bn(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"tn-brokerage-managers-cell",8),e.\u0275\u0275listener("managerSelected",function(a){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().goToUserProfile(a)}),e.\u0275\u0275elementEnd()}2&r&&e.\u0275\u0275property("managers",i.$implicit.managers)}let _n=(()=>{class r{constructor(t,n){this.facade=t,this.router=n,this.rowHeight=55,this.columns=[{field:"name",header:"Name",minWidth:"200px",maxWidth:"350px"},{field:"agentCode",header:"Agent Code",width:"220px"},{field:"managers",header:"Managers",width:"220px"},{field:"membersCount",header:"Members Count",width:"120px"},{field:"delete",minWidth:"120px",justify:"end"}],this.childBrokerages$=this.facade.childBrokerages$,this.tableHeight=0}goToBrokerage(t){this.router.navigate(["/crm/brokerages",t])}goToUserProfile(t){this.router.navigate(["/crm/profile",t])}onHeightChange(t){this.tableHeight=t}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275directiveInject(T),e.\u0275\u0275directiveInject(P.F0))},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["ng-component"]],decls:8,vars:12,consts:[[1,"w-full","p-24","pb-12","bg-white","flex","flex-col","flex-1","mb-32"],[3,"heightChange"],[3,"items","columns","itemHeight","appendOnly","trackByKey","notFoundText","tableHeight"],["datatable",""],[3,"uiDatatableCell"],[1,"flex","gap-2","items-center","cursor-pointer","select-none",3,"click"],["size","small",1,"mr-2",3,"src","name"],[1,"text-gray-90"],[3,"managers","managerSelected"]],template:function(t,n){1&t&&(e.\u0275\u0275elementStart(0,"div",0)(1,"ui-vertical-autofit-container",1),e.\u0275\u0275listener("heightChange",function(o){return n.onHeightChange(o)}),e.\u0275\u0275elementStart(2,"ui-datatable",2,3),e.\u0275\u0275pipe(4,"async"),e.\u0275\u0275template(5,fn,4,3,"ng-template",4),e.\u0275\u0275template(6,vn,1,1,"ng-template",4),e.\u0275\u0275template(7,bn,1,1,"ng-template",4),e.\u0275\u0275elementEnd()()()),2&t&&(e.\u0275\u0275advance(2),e.\u0275\u0275property("items",e.\u0275\u0275pipeBind1(4,10,n.childBrokerages$))("columns",n.columns)("itemHeight",n.rowHeight)("appendOnly",!1)("trackByKey","id")("notFoundText","No child brokerages")("tableHeight",n.tableHeight),e.\u0275\u0275advance(3),e.\u0275\u0275property("uiDatatableCell","name"),e.\u0275\u0275advance(1),e.\u0275\u0275property("uiDatatableCell","membersCount"),e.\u0275\u0275advance(1),e.\u0275\u0275property("uiDatatableCell","managers"))},directives:[we.i,Ie.n,Pe.Q,de.A,tt],pipes:[g.AsyncPipe],encapsulation:2,changeDetection:0}),r})();var yn=l(15486),Cn=l(39348),kn=l(60250),xn=l(3363),Sn=l(52361),Bn=l(34202),Tn=l(77269);let nt=(()=>
1{class r{constructor(t,n){this.ability=t,this.currentEntityService=n}transform(t,n,a,o=!0){return this.currentEntityService.getCurrentEntity(n).pipe((0,I.w)(s=>s?new Bn.y(c=>{const m=()=>c.next(this.ability.can(t,s,a));return m(),this.ability.on("updated",m)}):(0,D.of)(o)))}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275directiveInject(Sn.sL,16),e.\u0275\u0275directiveInject(Tn.n,16))},r.\u0275pipe=e.\u0275\u0275definePipe({name:"ableCurrent",type:r,pure:!0}),r})();const wn=function(){return[","]};let it=(()=>{class r{constructor(t){this.fb=t,this.destroy$=new $.xQ,this.disabled=!1,this.readonly=!1,this.emailValidators=[_.$9f.unstrictEmailValidator],this.form=this.fb.group({name:["",[d.kI.required]],phone:"",email:["",[_.$9f.unstrictEmailValidator]],website:"",agentCode:"",bccEmailList:[],notes:""})}ngOnInit(){this.form.valueChanges.pipe((0,N.R)(this.destroy$)).subscribe(t=>{this.dispatchValueChanges(t)})}validate(){return this.form.invalid&&{invalid:this.form.invalid}}registerOnChange(t){this.onChangeFn=t}registerOnTouched(t){this.onTouchFn=t}setDisabledState(t){this.disabled=t}writeValue(t){if(!t)return;const{name:n="",phone:a="",email:o="",website:s="",agentCode:c="",bccEmailList:m=[],notes:p=""}=t;this.form.patchValue({name:n,phone:a,email:o,website:s,agentCode:c,bccEmailList:m,notes:p},{emitEvent:!1})}dispatchValueChanges(t){var n,a;null===(n=this.onChangeFn)||void 0===n||n.call(this,t),null===(a=this.onTouchFn)||void 0===a||a.call(this)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275directiveInject(d.qu))},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["tn-brokerage-info-form"]],inputs:{disabled:"disabled",readonly:"readonly"},features:[e.\u0275\u0275ProvidersFeature([{provide:d.JU,multi:!0,useExisting:r},{provide:d.Cf,useExisting:r,multi:!0}])],decls:31,vars:71,consts:[[1,"flex","flex-col","rounded-md","bg-gray-5","px-1","pb-1","pt-2",3,"formGroup"],["formControlName","name",1,"contact-field",3,"placeholder","readonly","type","label"],["formControlName","email",1,"contact-field",3,"placeholder","readonly","type","label"],["formControlName","phone","label","Phone",1,"contact-field",3,"readonly"],["formControlName","website",1,"contact-field",3,"readonly","placeholder","type","label"],[1,"contact-field"],[1,"block"],[1,"relative","inline-block","ml-8","font-medium","text-12","text-gray-50"],["formControlName","bccEmailList","secondaryPlaceholder","[email protected]",3,"addOnBlur","modelAsStrings","placeholder","validators","disable","ripple","separatorKeys"],[1,"relative","flex","ml-8","font-medium","text-12","text-gray-50"],["uiIcon","info","matTooltipPosition","above",1,"ml-1","text-brand-50","hover:text-brand-70",3,"matTooltip"],["formControlName","notes",3,"readonly","placeholder"],["formControlName","agentCode",1,"contact-field",3,"readonly","placeholder","type","label"]],template:function(t,n){1&t&&(e.\u0275\u0275elementStart(0,"div",0),e.\u0275\u0275element(1,"ui-input",1),e.\u0275\u0275pipe(2,"async"),e.\u0275\u0275pipe(3,"ableCurrent"),e.\u0275\u0275element(4,"ui-input",2),e.\u0275\u0275pipe(5,"async"),e.\u0275\u0275pipe(6,"ableCurrent"),e.\u0275\u0275element(7,"ui-phone-input",3),e.\u0275\u0275pipe(8,"async"),e.\u0275\u0275pipe(9,"ableCurrent"),e.\u0275\u0275element(10,"ui-input",4),e.\u0275\u0275pipe(11,"async"),e.\u0275\u0275pipe(12,"ableCurrent"),e.\u0275\u0275elementStart(13,"div",5)(14,"label",6)(15,"span",7),e.\u0275\u0275text(16," Project completion email BCC "),e.\u0275\u0275elementEnd(),e.\u0275\u0275element(17,"tag-input",8),e.\u0275\u0275pipe(18,"async"),e.\u0275\u0275pipe(19,"ableCurrent"),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(20,"div",5)(21,"label",6)(22,"div",9),e.\u0275\u0275text(23," Brokerage Preferences "),e.\u0275\u0275element(24,"i",10),e.\u0275\u0275elementEnd(),e.\u0275\u0275element(25,"ui-autosize-textarea",11),e.\u0275\u0275pipe(26,"async"),e.\u0275\u0275pipe(27,"ableCurrent"),e.\u0275\u0275elementEnd()(),e.\u0275\u0275element(28,"ui-input",12),e.\u0275\u0275pipe(29,"async"),e.\u0275\u0275pipe(30,"ableCurrent"),e.\u0275\u0275elementEnd()),2&t&&(e.\u0275\u0275property("formGroup",n.form),e.\u0275\u0275advance(1),e.\u0275\u0275property("placeholder","Too Real Group")("readonly",n.readonly||!1===e.\u0275\u0275pipeBind1(2,28,e.\u0275\u0275pipeBind3(3,30,"manage","Brokerage","name")))("type","text")("label","Company Name*"),e.\u0275\u0275advance(3),e.\u0275\u0275property("placeholder","[email protected]")("readonly",n.readonly||!1===e.\u0275\u0275pipeBind1(5,34,e.\u0275\u0275pipeBind3(6,36,"manage","Brokerage","email")))("type","email")("label","Email"),e.\u0275\u0275advance(3),e.\u0275\u0275property("readonly",n.readonly||!1===e.\u0275\u0275pipeBind1(8,40,e.\u0275\u0275pipeBind3(9,42,"manage","Brokerage","phone"))),e.\u0275\u0275advance(3),e.\u0275\u0275property("readonly",n.readonly||!1===e.\u0275\u0275pipeBind1(11,46,e.\u0275\u0275pipeBind3(12,48,"manage","Brokerage","website")))("placeholder","www.company.com")("type","text")("label","Website URL"),e.\u0275\u0275advance(7),e.\u0275\u0275property("addOnBlur",!0)("modelAsStrings",!0)("placeholder","Add email")("val
1idators",n.emailValidators)("disable",n.readonly||!1===e.\u0275\u0275pipeBind1(18,52,e.\u0275\u0275pipeBind3(19,54,"manage","Brokerage","bccEmailList")))("ripple",!1)("separatorKeys",e.\u0275\u0275pureFunction0(70,wn)),e.\u0275\u0275advance(7),e.\u0275\u0275property("matTooltip","Use this field to specify guidelines or preferences that apply to all orders for this brokerage"),e.\u0275\u0275advance(1),e.\u0275\u0275property("readonly",n.readonly||!1===e.\u0275\u0275pipeBind1(26,58,e.\u0275\u0275pipeBind3(27,60,"manage","Brokerage","notes")))("placeholder","Add preferences"),e.\u0275\u0275advance(3),e.\u0275\u0275property("readonly",n.readonly||!1===e.\u0275\u0275pipeBind1(29,64,e.\u0275\u0275pipeBind3(30,66,"manage","Brokerage","agentCode")))("placeholder","XXXXXX")("type","text")("label","Agent Code"))},directives:[d.JL,d.sg,Cn.a,d.JJ,d.u,kn.T,ze.m7,U.a,te.gM,xn.B],pipes:[g.AsyncPipe,nt],styles:[".contact-field[_ngcontent-%COMP%] + .contact-field[_ngcontent-%COMP%]{margin-top:1rem}"],changeDetection:0}),r})();var In=l(79198),Oe=l(10207);function Pn(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"div",7)(1,"h2",8),e.\u0275\u0275text(2,"Company Information"),e.\u0275\u0275elementEnd(),e.\u0275\u0275element(3,"tn-brokerage-info-form",9),e.\u0275\u0275elementStart(4,"tn-users-list-picker",10),e.\u0275\u0275listener("userNavigate",function(a){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().navigateToManager(a)}),e.\u0275\u0275pipe(5,"async"),e.\u0275\u0275pipe(6,"ablePure"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(7,"div",11)(8,"div",12),e.\u0275\u0275text(9,"Parent brokerage"),e.\u0275\u0275elementEnd(),e.\u0275\u0275element(10,"ui-brokerage-autocomplete",13),e.\u0275\u0275pipe(11,"async"),e.\u0275\u0275pipe(12,"ablePure"),e.\u0275\u0275pipe(13,"async"),e.\u0275\u0275pipe(14,"async"),e.\u0275\u0275elementEnd()()}if(2&r){const t=e.\u0275\u0275nextContext();let n,a;e.\u0275\u0275property("formGroup",t.form),e.\u0275\u0275advance(4),e.\u0275\u0275property("readonly",!1===e.\u0275\u0275pipeBind1(5,12,e.\u0275\u0275pipeBind3(6,14,"manage","Brokerage","managers")))("label","Managers")("buttonLabel","Add manager")("searchLabel","Search users"),e.\u0275\u0275advance(6),e.\u0275\u0275property("readonly",!1===e.\u0275\u0275pipeBind1(11,18,e.\u0275\u0275pipeBind3(12,20,"manage","Brokerage","parentBrokerages"))||!(null==(n=e.\u0275\u0275pipeBind1(13,24,t.childBrokerages$))||!n.length))("clearable",!0)("focusPlaceholder","Search brokerage")("debounceTime",100)("emitOnEmptySearch",!0)("onlyParentBrokerages",!0)("currentBrokerageId",null!==(a=e.\u0275\u0275pipeBind1(14,26,t.brokerageId$))&&void 0!==a?a:"")}}function On(r){return r.brokerageId$.pipe((0,v.U)(i=>({facetFilters:["permissions:-Contractor","permissions:-Staff","permissions:-Admin",[`brokerage_obj.id:${i}`,"has_assigned_brokerage:false"]],attributesToRetrieve:["displayName","email","uid","photoURL"],hitsPerPage:10,ttl:5e3})))}let En=(()=>{class r{constructor(t,n,a,o){this.facade=t,this.router=n,this.cd=a,this.fb=o,this.destroy$=new $.xQ,this.changed=!1,this.saving=!1,this.brokerage$=this.facade.brokerage$,this.parentBrokerage$=this.facade.parentBrokerage$,this.childBrokerages$=this.facade.childBrokerages$,this.brokerageId$=this.facade.brokerageId$,this.beforeChangesValue={info:{},managers:[],parentBrokerage:null},this.form=this.fb.group(this.beforeChangesValue),this.form.valueChanges.pipe((0,N.R)(this.destroy$)).subscribe(s=>{this.changed=!(0,_e.Z)(this.beforeChangesValue,(0,_.Ybi)(s))}),(0,O.aj)([this.brokerage$,this.parentBrokerage$]).pipe((0,N.R)(this.destroy$)).subscribe(([s,c])=>{const{name:m,email:p,phone:C,website:F,agentCode:b,managers:A,bccEmailList:ge,notes:Pi}=null!=s?s:{},Oi=((null==ge?void 0:ge.length)?ge:(null==c?void 0:c.bccEmailList)||[]).map(Ne=>Ne.value).filter(Ne=>(0,yn.Jh)(Ne)),$i=c?{id:c.id,name:c.name,agentCode:null==c?void 0:c.agentCode}:null;this.beforeChangesValue=(0,_.Ybi)({info:{name:m,email:p,phone:C,website:F,agentCode:b,bccEmailList:Oi,notes:Pi||(null==c?void 0:c.notes)||""},managers:Object.values(null!=A?A:{}),parentBrokerage:$i}),this.form.patchValue(this.beforeChangesValue)})}ngOnInit(){return(0,h.mG)(this,void 0,void 0,function*(){yield this.facade.refreshPage()})}discardChanges(){this.form.setValue(this.beforeChangesValue,{onlySelf:!1,emitEvent:!0}),this.cd.detectChanges()}navigateToManager(t){this.router.navigate(["/crm/profile/",t])}saveChanges(){return(0,h.mG)(this,void 0,void 0,function*(){this.saving=!0,yield this.facade.saveBrokerageInfo(this.form.value),this.saving=!1,this.cd.detectChanges()})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275directiveInject(T),e.\u0275\u0275directiveInject(P.F0),e.\u0275\u0275directiveInject(e.ChangeDetectorRef),e.\u0275\u0275directiveInject(d.qu))},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["ng-component"]],features:[e.\u0275\u0275ProvidersFeature([{provide:B.a22,useFactory:On,deps:[T]}])],decls:10,vars:7,consts:[[1,"w-full","flex","justify-center","mt-32"],["class","mb-24 max-w-xl w-full",3,"formGroup",4,"ngIf"],[1,"w-full","p-24","pb-12","bg-white","flex","flex-col","flex-1"],[1,"absolute","bottom-0","h-48","bg-gray-5","flex","justify-center","items-center","left-0","right-0","px-16","transition-all",3,"ngClass"],[1,"w-100","max-w-xl","flex","items-center","justify-end"],["uiBtnSize","small","uiBtnTheme","main","themeMode","secondary",1,"mr-8",3,"disabled","click"],["uiBtnSize","small","uiBtnTheme","main","themeMode","primary",3,"disabled","uiBtnLoading","click"],[1,"mb-24","max-w-xl","w-full",3,"formGroup"],[1,"mb-16","pl-12"],["formControlName","info",1,"block","mb-12"],["formControlName","managers",3,"readonly","label","buttonLabel","searchLabel","userNavigate"],[1,"flex","flex-col","rounded-md","bg-gray-5","px-1","pb-1","pt-2","mt-6"],[1,"body","pl-8","text-gray-50","mb-min"],["formControlName","parentBrokerage",3,"readonly","clearable","focusPlaceholder","debounceTime","emitOnEmptySearch","onlyParentBrokerages","currentBrokerageId"]],template:function(t,n){1&t&&(e.\u0275\u0275elementStart(0,"div",0),e.\u0275\u0275template(1,Pn,15,28,"div",1),e.\u0275\u0275pipe(2,"async"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(3,"div",2)(4,"div",3)(5,"div",4)(6,"button",5),e.\u0275\u0275listener("click",function(){return n.discardChanges()}),e.\u0275\u0275text(7," Discard Changes "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(8,"button",6),e.\u0275\u0275listener("click",function(){return n.saveChanges()}),e.\u0275\u0275text(9," Save Changes "),e.\u0275\u0275elementEnd()()()()),2&t&&(e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",e.\u0275\u0275pipeBind1(2,5,n.brokerage$)),e.\u0275\u0275advance(3),e.\u0275\u0275property("ngClass",n.changed||n.saving?"bottom-0":"-bottom-48"),e.\u0275\u0275advance(2),e.\u0275\u0275property("disabled",!n.changed||n.saving),e.\u0275\u0275advance(2),e.\u0275\u0275property("disabled",!n.changed||n.form.invali
1d)("uiBtnLoading",n.saving))},directives:[g.NgIf,d.JL,d.sg,it,d.JJ,d.u,In.A,Oe.E,g.NgClass,E.s,M.V,j.T],pipes:[g.AsyncPipe,be.pb],styles:[".brokerage-page-header[_ngcontent-%COMP%]{height:136px;display:flex;width:100%;align-items:center;justify-content:center;border-bottom-width:1px;border-style:solid;--tw-border-opacity: 1;border-color:rgb(226 226 226 / var(--tw-border-opacity, 1));background-image:linear-gradient(to bottom,var(--tw-gradient-stops));--tw-gradient-from: #fff var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #FAFAFA var(--tw-gradient-to-position);padding-left:1.5rem;padding-top:.75rem}"],changeDetection:0}),r})();var Ee=l(24731);let L=class{constructor(i,t){this.dialogRef=i,this.data=t,this.loading=!1}onSelectBrokerage(i){this.selectedBrokerage=i}submit(){return(0,h.mG)(this,void 0,void 0,function*(){!this.selectedBrokerage||this.dialogRef.close(this.selectedBrokerage)})}};L.\u0275fac=function(i){return new(i||L)(e.\u0275\u0275directiveInject(f.so),e.\u0275\u0275directiveInject(f.WI))},L.\u0275cmp=e.\u0275\u0275defineComponent({type:L,selectors:[["tn-move-to-brokerage-dialog"]],features:[e.\u0275\u0275ProvidersFeature([u.wKh])],decls:12,vars:4,consts:[[1,"flex","flex-col","rounded-md","bg-gray-5","px-1","pb-1","pt-2","mt-6"],[1,"body","pl-8","text-gray-50","mb-min"],[3,"selectBrokerage"],[1,"justify-end"],["uiBtnSize","medium","uiBtnTheme","main","themeMode","secondary",3,"matDialogClose"],["uiBtnSize","medium","uiBtnTheme","main","themeMode","primary","uiAutofocus","",3,"disabled","uiBtnLoading","click"]],template:function(i,t){1&i&&(e.\u0275\u0275elementStart(0,"ui-dialog-header"),e.\u0275\u0275text(1),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(2,"mat-dialog-content")(3,"div",0)(4,"div",1),e.\u0275\u0275text(5,"Select brokerage"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(6,"ui-brokerage-autocomplete",2),e.\u0275\u0275listener("selectBrokerage",function(a){return t.onSelectBrokerage(a)}),e.\u0275\u0275elementEnd()()(),e.\u0275\u0275elementStart(7,"mat-dialog-actions",3)(8,"button",4),e.\u0275\u0275text(9," Cancel "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(10,"button",5),e.\u0275\u0275listener("click",function(){return t.submit()}),e.\u0275\u0275text(11," Move to Brokerage "),e.\u0275\u0275elementEnd()()),2&i&&(e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1("Move ",null==t.data.uids?null:t.data.uids.length," users to other brokerage"),e.\u0275\u0275advance(7),e.\u0275\u0275property("matDialogClose",void 0),e.\u0275\u0275advance(2),e.\u0275\u0275property("disabled",!t.selectedBrokerage)("uiBtnLoading",t.loading))},directives:[Q.A,f.xY,Oe.E,f.H8,E.s,M.V,f.ZT,Ee.U,j.T],encapsulation:2}),L=(0,h.gn)([(0,k.c)(),(0,h.w6)("design:paramtypes",[f.so,Object])],L);let rt=(()=>{class r{constructor(t){this.dialog=t}openDialog(t){return this.dialog.open(L,{panelClass:"app-v2",data:{uids:t},width:"512px",disableClose:!1,autoFocus:!1}).afterClosed()}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275inject(f.uw))},r.\u0275prov=e.\u0275\u0275defineInjectable({token:r,factory:r.\u0275fac}),r})();function Mn(r,i,t,n){return a=>(0,O.aj)([n.permissions$,t.brokerageId$]).pipe((0,I.w)(([o,s])=>{const c=(0,_.B24)(o),m={facetFilters:["permissions:-Contractor","permissions:-Staff","permissions:-Admin"],attributesToRetrieve:["displayName","email","uid","photoURL","isAnonymous"],hitsPerPage:10};return i.get({domainKey:"user-autocomplete",fetcher:({searchTerm:p})=>c?r.userIndex.search(p,m).then(C=>C.hits.map(F=>Object.assign(Object.assign({},F),{uid:F.objectID}))):(null==p?void 0:p.length)?(0,ie.D)(r.userIndex.search("",Object.assign(Object.assign({},m),{facetFilters:[...m.facetFilters,`email:${p}`]})).then(C=>C.hits.map(F=>Object.assign(Object.assign({},F),{uid:F.objectID})))):(0,D.of)([]),context:{searchTerm:a},ttl:0})}))}var $n=l(92014);const me={removedMembersIds:[],addedMembers:[]};let at=(()=>{class r{constructor(){this._modifications=me,this.removeMemberSubj$=new $.xQ,this.cancelRemoveMemberSubj$=new $.xQ,this.addMemberSubj$=new $.xQ,this.clearModificationsSubj$=new $.xQ,this.localEditsSubj$=new fe.X({added:[],removedIds:new Set}),this.localEdits$=this.localEditsSubj$.asObservable(),this.modifications$=(0,ne.T)(this.removeMemberSubj$,this.cancelRemoveMemberSubj$,this.addMemberSubj$,this.clearModificationsSubj$).pipe((0,$n.R)((t,n)=>{switch(n.type){case"add":return this.applyAdd(t,n.member);case"remove":return this.applyRemove(t,n.uid);case"cancel-remove":return this.applyCancelRemove(t,n.uid);case"clear-all":return this.applyClear()}return t},me),(0,Te.O)(me),(0,X.b)(t=>this._modifications=t),(0,x.d)(1)),this.hasChanges$=this.modifications$.pipe((0,v.U)(t=>t.removedMembersIds.length>0||t.addedMembers.length>0),(0,x.d)(1)),this.addedMembers$=this.modifications$.pipe((0,v.U)(t=>t.addedMembers),(0,x.d)(1)),this.addedIds$=this.addedMembers$.pipe((0,v.U)(t=>t.map(n=>n.uid)),(0,x.d)(1)),this.removedIds$=this.modifications$.pipe((0,v.U)(t=>t.removedMembersIds),(0,x.d)(1)),this.removedIdsSet$=this.removedIds$.pipe((0,v.U)(t=>new Set(t)),(0,x.d)(1))}get modifications(){return this._modifications}removeMember(t){this.removeMemberSubj$.next({type:"remove",uid:t})}cancelRemoveMember(t){this.cancelRemoveMemberSubj$.next({type:"cancel-remove",uid:t})}addMember(t){this.addMemberSubj$.next({type:"add",member:t})}clearModifications(){this.clearModificationsSubj$.next({type:"clear-all"})}applyLocalEdits(){(0,O.aj)([this.addedMembers$,this.removedIdsSet$]).pipe((0,oe.q)(1)).subscribe(([t,n])=>{this.localEditsSubj$.next({added:t,removedIds:n})})}applyAdd(t,n){return new Set(t.addedMembers.map(o=>o.uid)).has(n.uid)?t:t.removedMembersIds.includes(n.uid)?Object.assign(Object.assign({},t),{removedMembersIds:t.removedMembersIds.filter(o=>o!==n.uid)}):Object.assign(Object.assign({},t),{addedMembers:[n,...t.addedMembers]})}applyRemove(t,n){const a=t.addedMembers.find(o=>o.uid===n);return Object.assign(Object.assign({},t),a?{addedMembers:t.addedMembers.filter(o=>o!==a)}:{removedMembersIds:[...t.removedMembersIds,n]})}applyCancelRemove(t,n){return Object.assign(Object.assign({},t),{removedMembersIds:t.removedMembersIds.filter(a=>a!==n)})}applyClear(){return me}}return r.\u0275fac=function(t){return new(t||r)},r.\u0275prov=e.\u0275\u0275defineInjectable({token:r,factory:r.\u0275fac}),r})();var ot=l(93531),st=l(25322),Fn=l(37841),An=l(83289),Dn=l(32408);function jn(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"button",3,4),e.\u0275\u0275listener("click",function(){e.\u0275\u0275restoreView(t);const a=e.\u0275\u0275nextContext();return a.moveToBrokerage.emit(a.selectedUids)}),e.\u0275\u0275element(2,"i",5),e.\u0275\u0275text(3," Move to another brokerage "),e.\u0275\u0275elementEnd()}if(2&r){const t=e.\u0275\u0275reference(1);e.\u0275\u0275advance(2),e.\u0275\u0275property("size",t.iconSize)}}let Nn=(()=>
1{class r{constructor(){this.moveToBrokerage=new e.EventEmitter,this.showMoveToBrokerage=!0,this.selectedUids=[]}}return r.\u0275fac=function(t){return new(t||r)},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["tn-brokerage-members-bulk-actions"]],inputs:{showMoveToBrokerage:"showMoveToBrokerage",selectedUids:"selectedUids"},outputs:{moveToBrokerage:"moveToBrokerage"},decls:4,vars:3,consts:[[1,"app-v2","snack-bar"],[1,"text-12","ml-6"],["uiBtnSize","x-small","uiBtnTheme","main","themeMode","primary","class","uppercase mx-6",3,"click",4,"ngIf"],["uiBtnSize","x-small","uiBtnTheme","main","themeMode","primary",1,"uppercase","mx-6",3,"click"],["moveToBrokerageButton","btnSize"],["uiIcon","group",3,"size"]],template:function(t,n){1&t&&(e.\u0275\u0275elementStart(0,"ui-snack-bar",0)(1,"span",1),e.\u0275\u0275text(2),e.\u0275\u0275elementEnd(),e.\u0275\u0275template(3,jn,4,1,"button",2),e.\u0275\u0275elementEnd()),2&t&&(e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate2("",n.selectedUids.length," user",n.selectedUids.length>1?"s":"",""),e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",n.showMoveToBrokerage))}
1,directives:[Dn.E,g.NgIf,E.s,M.V,U.a],styles:[".snack-bar[_ngcontent-%COMP%]{position:fixed}"],changeDetection:0}),r})();const Rn=["datatable"];function Vn(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"div",14)(1,"ui-user-autocomplete",15,16),e.\u0275\u0275listener("selectUser",function(a){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onSelectMember(a)}),e.\u0275\u0275pipe(3,"async"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(4,"button",17,18),e.\u0275\u0275listener("click",function(){e.\u0275\u0275restoreView(t);const a=e.\u0275\u0275reference(2);return e.\u0275\u0275nextContext().onAddMember(),a.resetSelection()}),e.\u0275\u0275element(6,"i",19),e.\u0275\u0275text(7," Add member "),e.\u0275\u0275elementEnd()()}if(2&r){const t=e.\u0275\u0275reference(5),n=e.\u0275\u0275nextContext();e.\u0275\u0275advance(1),e.\u0275\u0275property("filteredUids",e.\u0275\u0275pipeBind1(3,8,n.excludeIds$))("placeholder","Select agent")("focusPlaceholder","Search agents")("debounceTime",100)("emitOnEmptySearch",!0),e.\u0275\u0275advance(3),e.\u0275\u0275property("disabled",!n.memberToAdd)("uiBtnLoading",n.adding),e.\u0275\u0275advance(2),e.\u0275\u0275property("size",t.iconSize)}}function Un(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"div",20),e.\u0275\u0275listener("click",function(){const o=e.\u0275\u0275restoreView(t).$implicit;return e.\u0275\u0275nextContext().goToProfile(o.uid)}),e.\u0275\u0275pipe(1,"async"),e.\u0275\u0275pipe(2,"async"),e.\u0275\u0275element(3,"ui-avatar",21),e.\u0275\u0275elementStart(4,"h4",22),e.\u0275\u0275text(5),e.\u0275\u0275elementEnd()()}if(2&r){const t=i.$implicit,n=e.\u0275\u0275nextContext();e.\u0275\u0275classProp("cursor-not-allowed",e.\u0275\u0275pipeBind1(1,13,n.editMode$))("select-none",e.\u0275\u0275pipeBind1(2,15,n.editMode$))("opacity-50",t.isAnonymous),e.\u0275\u0275property("matTooltip","Unregistered user")("matTooltipPosition","right")("matTooltipDisabled",!t.isAnonymous),e.\u0275\u0275advance(3),e.\u0275\u0275property("src",t.photoURL)("name",t.displayName)("email",t.email),e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(t.displayName)}}function zn(r,i){1&r&&(e.\u0275\u0275elementStart(0,"ui-badge",24),e.\u0275\u0275text(1,"Manager"),e.\u0275\u0275elementEnd()),2&r&&e.\u0275\u0275property("type","dark")}function Ln(r,i){if(1&r&&(e.\u0275\u0275template(0,zn,2,1,"ui-badge",23),e.\u0275\u0275pipe(1,"async")),2&r){const t=i.$implicit,n=e.\u0275\u0275nextContext();let a;e.\u0275\u0275property("ngIf",null==(a=e.\u0275\u0275pipeBind1(1,1,n.brokerage$))||null==a.managers?null:a.managers[t.uid])}}function Gn(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"button",25),e.\u0275\u0275listener("click",function(){const o=e.\u0275\u0275restoreView(t).$implicit;return e.\u0275\u0275nextContext().goToOrders(o.uid)}),e.\u0275\u0275pipe(1,"async"),e.\u0275\u0275text(2," View orders "),e.\u0275\u0275elementEnd()}if(2&r){const t=e.\u0275\u0275nextContext();e.\u0275\u0275property("disabled",!0===e.\u0275\u0275pipeBind1(1,1,t.editMode$))}}function Hn(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementContainerStart(0),e.\u0275\u0275elementStart(1,"button",29,30),e.\u0275\u0275listener("click",function(){e.\u0275\u0275restoreView(t);const a=e.\u0275\u0275nextContext(2).$implicit;return e.\u0275\u0275nextContext().onRemoveMember(a.uid)}),e.\u0275\u0275element(3,"i",31),e.\u0275\u0275text(4," Remove "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementContainerEnd()}if(2&r){const t=e.\u0275\u0275reference(2);e.\u0275\u0275advance(3),e.\u0275\u0275property("size",t.iconSize)}}function Kn(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"button",29,32),e.\u0275\u0275listener("click",function(){e.\u0275\u0275restoreView(t);const a=e.\u0275\u0275nextContext(2).$implicit;return e.\u0275\u0275nextContext().cancelRemoveMember(a.uid)}),e.\u0275\u0275element(2,"i",19),e.\u0275\u0275text(3," Cancel "),e.\u0275\u0275elementEnd()}if(2&r){const t=e.\u0275\u0275reference(1);e.\u0275\u0275advance(2),e.\u0275\u0275property("size",t.iconSize)}}function Yn(r,i){if(1&r&&(e.\u0275\u0275elementContainerStart(0),e.\u0275\u0275template(1,Hn,5,1,"ng-container",27),e.\u0275\u0275pipe(2,"async"),e.\u0275\u0275template(3,Kn,4,1,"ng-template",null,28,e.\u0275\u0275templateRefExtractor),e.\u0275\u0275elementContainerEnd()),2&r){const t=e.\u0275\u0275reference(4),n=e.\u0275\u0275nextContext().$implicit,a=e.\u0275\u0275nextContext();let o;e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",!(null!=(o=e.\u0275\u0275pipeBind1(2,2,a.removingIdsSet$))&&o.has(n.uid)))("ngIfElse",t)}}function Wn(r,i){if(1&r&&(e.\u0275\u0275template(0,Yn,5,4,"ng-container",26),e.\u0275\u0275pipe(1,"async"),e.\u0275\u0275pipe(2,"async"),e.\u0275\u0275pipe(3,"ableCurrent")),2&r){const t=i.$implicit,n=e.\u0275\u0275nextContext();let a;e.\u0275\u0275property("ngIf",!(null!=(a=e.\u0275\u0275pipeBind1(1,1,n.brokerage$))&&null!=a.managers&&a.managers[t.uid])||e.\u0275\u0275pipeBind1(2,3,e.\u0275\u0275pipeBind3(3,5,"manage","Brokerage","managers")))}}function Jn(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();
1e.\u0275\u0275elementStart(0,"tn-brokerage-members-bulk-actions",33),e.\u0275\u0275listener("moveToBrokerage",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().openMoveToBrokerageDialog()}),e.\u0275\u0275elementEnd()}if(2&r){const t=e.\u0275\u0275nextContext();e.\u0275\u0275property("selectedUids",t.selectedUids)}}const lt=function(){return[]},Xn=[{field:"displayName",header:"Name",minWidth:"100px",maxWidth:"400px"},{field:"manager",width:"100px",maxWidth:"300px"},{field:"uid",header:"User ID",width:"300px",allowDeselect:!0},{field:"email",header:"Email",minWidth:"150px",maxWidth:"220px",allowDeselect:!0}],Qn={field:"remove-member",justify:"end",minWidth:"140px"},Zn={field:"view-orders",justify:"end",minWidth:"150px"};let qn=(()=>{class r{constructor(t,n,a,o,s,c){this.facade=t,this.router=n,this.editingService=a,this.moveToBrokerageDialog=o,this.brokerageApi=s,this.ability=c,this.destroy$=new $.xQ,this.tableHeight=0,this.paramsManager=this.facade.membersParamsManager,this.loading$=this.facade.membersLoading$,this.addingIds$=this.editingService.addedIds$,this.removingIds$=this.editingService.removedIds$,this.removingIdsSet$=this.editingService.removedIdsSet$,this.hasChanges$=this.editingService.hasChanges$,this.brokerage$=this.facade.brokerage$,this.parentBrokerage$=this.facade.parentBrokerage$,this.columns$=(0,O.aj)([this.brokerage$,this.parentBrokerage$]).pipe((0,v.U)(([m,p])=>{let C=[...Xn];return(this.ability.can("manage",m,"members")||this.ability.can("manage",p,"members"))&&(C=[...C,Qn]),(this.ability.can("manage",m,"orders")||this.ability.can("manage",p,"orders"))&&(C=[...C,Zn]),C})),this.members$=(0,O.aj)([this.facade.members$,this.editingService.addedMembers$,this.editingService.localEdits$]).pipe((0,v.U)(([m,p,C])=>(0,_.Lg_)([...p,...m,...C.added],"uid").filter(F=>!C.removedIds.has(F.uid))),(0,x.d)(1)),this.excludeIds$=this.addingIds$,this.memberToAdd=void 0,this.adding=!1,this.selectedUids=[],this.submittingAction=!1,this.isSaving$=new fe.X(!1),this.editMode$=(0,O.aj)([this.hasChanges$,this.isSaving$]).pipe((0,v.U)(([m,p])=>m||p),(0,Z.x)(),(0,x.d)(1))}loadMore(){this.facade.loadMore()}onHeightChange(t){if(this.tableHeight=t,this.datatable){const n=this.datatable.calculateItemsFitCount(this.tableHeight);this.paramsManager.setParam("pageSize",n)}}goToProfile(t){this.editMode$.pipe((0,oe.q)(1),(0,N.R)(this.destroy$)).subscribe(n=>{n||this.router.navigate([`/crm/profile/${t}/personal`])})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}onSelectMember(t){this.memberToAdd=t}goToOrders(t){this.router.navigate(["/order-dashboard"],{queryParams:{uid:t}})}onSelectedUsersChange(t){this.selectedUids=t}refreshPage(){this.facade.refreshPage()}cancelEditing(){this.editingService.clearModifications()}openMoveToBrokerageDialog(){this.moveToBrokerageDialog.openDialog(this.selectedUids).pipe((0,N.R)(this.destroy$)).subscribe(t=>(0,h.mG)(this,void 0,void 0,function*(){if(!t)return;const n=this.facade.brokerageId;if(!n)return;const a=this.selectedUids;this.selectedUids=[],this.submittingAction=!0;try{yield this.brokerageApi.moveMembers(n,a,t),yield this.facade.refreshPage()}finally{this.submittingAction=!1}}))}submitEdits(){return(0,h.mG)(this,void 0,void 0,function*(){this.isSaving$.next(!0),yield this.facade.saveMembers(this.editingService.modifications),setTimeout(()=>{this.editingService.applyLocalEdits(),this.editingService.clearModifications(),this.facade.resetPaginationAndReload(),this.isSaving$.next(!1)},600)})}onRemoveMember(t){this.editingService.removeMember(t)}cancelRemoveMember(t){this.editingService.cancelRemoveMember(t)}onAddMember(){!this.memberToAdd||(this.editingService.addMember(this.memberToAdd),this.memberToAdd=void 0,this.datatable.scrollToStart())}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275directiveInject(T),e.\u0275\u0275directiveInject(P.F0),e.\u0275\u0275directiveInject(at),e.\u0275\u0275directiveInject(rt),e.\u0275\u0275directiveInject(ve),e.\u0275\u0275directiveInject(u.umt))},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["ng-component"]],viewQuery:function(t,n){if(1&t&&e.\u0275\u0275viewQuery(Rn,5),2&t){let a;e.\u0275\u0275queryRefresh(a=e.\u0275\u0275loadQuery())&&(n.datatable=a.first)}},features:[e.\u0275\u0275ProvidersFeature([at,{provide:B.qr$,useFactory:Mn,deps:[u.ewU,u.J4i,T,u.e80]},rt])],decls:37,vars:73,consts:[[1,"w-full","p-24","pb-12","bg-white","flex","flex-col","flex-1","mb-56"],[1,"filters","mb-2","flex","justify-between","align-items-center"],[3,"realtime","realtimeDebounce","placeholder","ngModel","search"],["class","add-brokerage-member gap-4",4,"ngIf"],[1,"h-full",3,"loading"],[3,"heightChange"],[3,"items","notFoundText","columns","highlightAddedRows","highlightDeletedRows","savingEdits","loading","itemsDisplayCount","
1itemHeight","delayRowRender","trackByKey","allowChangeColumns","itemsCheckboxes","itemsChecked","showRefreshButton","tableHeight","scrollEnd","itemsCheckedChange","refresh"],["datatable",""],[3,"uiDatatableCell"],[1,"absolute","bottom-0","h-72","bg-gray-10","flex","justify-center","items-center","left-0","right-0","px-16","transition-all",3,"ngClass"],[1,"w-full","flex","items-center","justify-center"],["uiBtnSize","medium","uiBtnTheme","main","themeMode","secondary",1,"mr-8",3,"disabled","click"],["uiBtnSize","medium","uiBtnTheme","main","themeMode","primary",3,"disabled","uiBtnLoading","click"],[3,"selectedUids","moveToBrokerage",4,"ngIf"],[1,"add-brokerage-member","gap-4"],[1,"w-full",3,"filteredUids","placeholder","focusPlaceholder","debounceTime","emitOnEmptySearch","selectUser"],["userAutocomplete",""],["uiBtnSize","medium","uiBtnTheme","main","themeMode","secondary",1,"mr-8",3,"disabled","uiBtnLoading","click"],["addMember","btnSize"],["uiIcon","add",3,"size"],[1,"flex","items-center","cursor-pointer","select-none","overflow-hidden",3,"matTooltip","matTooltipPosition","matTooltipDisabled","click"],["size","small",1,"mr-2",3,"src","name","email"],[1,"text-gray-90","overflow-hidden","overflow-ellipsis"],[3,"type",4,"ngIf"],[3,"type"],["uiBtnSize","small","uiBtnTheme","main","themeMode","secondary",1,"mr-8",3,"disabled","click"],[4,"ngIf"],[4,"ngIf","ngIfElse"],["cancelRemoveTmpl",""],["uiBtnSize","small","uiBtnTheme","setting","themeMode","primary",1,"mr-8",3,"click"],["removeMember","btnSize"],["uiIcon","remove",3,"size"],["cancelRemoveButton","btnSize"],[3,"selectedUids","moveToBrokerage"]],template:function(t,n){if(1&t&&(e.\u0275\u0275elementStart(0,"div",0)(1,"div",1)(2,"ui-search-input",2),e.\u0275\u0275listener("search",function(o){return n.paramsManager.setParam("search",o)}),e.\u0275\u0275pipe(3,"async"),e.\u0275\u0275elementEnd(),e.\u0275\u0275template(4,Vn,8,10,"div",3),e.\u0275\u0275pipe(5,"async"),e.\u0275\u0275pipe(6,"ableCurrent"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(7,"ui-loading-wrapper",4)(8,"ui-vertical-autofit-container",5),e.\u0275\u0275listener("heightChange",function(o){return n.onHeightChange(o)}),e.\u0275\u0275elementStart(9,"ui-datatable",6,7),e.\u0275\u0275listener("scrollEnd",function(){return n.loadMore()})("itemsCheckedChange",function(o){return n.selectedUids=o})("refresh",function(){return n.refreshPage()}),e.\u0275\u0275pipe(11,"async"),e.\u0275\u0275pipe(12,"async"),e.\u0275\u0275pipe(13,"async"),e.\u0275\u0275pipe(14,"async"),e.\u0275\u0275pipe(15,"async"),e.\u0275\u0275pipe(16,"async"),e.\u0275\u0275pipe(17,"async"),e.\u0275\u0275pipe(18,"async"),e.\u0275\u0275pipe(19,"ableCurrent"),e.\u0275\u0275pipe(20,"async"),e.\u0275\u0275template(21,Un,6,17,"ng-template",8),e.\u0275\u0275template(22,Ln,2,3,"ng-template",8),e.\u0275\u0275template(23,Gn,3,3,"ng-template",8),e.\u0275\u0275template(24,Wn,4,9,"ng-template",8),e.\u0275\u0275elementEnd()()()(),e.\u0275\u0275elementStart(25,"div",9),e.\u0275\u0275pipe(26,"async"),e.\u0275\u0275elementStart(27,"div",10)(28,"button",11),e.\u0275\u0275listener("click",function(){return n.cancelEditing()}),e.\u0275\u0275pipe(29,"async"),e.\u0275\u0275pipe(30,"async"),e.\u0275\u0275text(31," Discard Changes "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(32,"button",12),e.\u0275\u0275listener("click",function(){return n.submitEdits()}),e.\u0275\u0275pipe(33,"async"),e.\u0275\u0275pipe(34,"async"),e.\u0275\u0275text(35," Save Changes "),e.\u0275\u0275elementEnd()()(),e.\u0275\u0275template(36,Jn,1,1,"tn-brokerage-members-bul
1k-actions",13)),2&t){let a,o;e.\u0275\u0275advance(2),e.\u0275\u0275property("realtime",!0)("realtimeDebounce",200)("placeholder","Search brokerage members")("ngModel",e.\u0275\u0275pipeBind1(3,31,n.paramsManager.paramsStreams.search)),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngIf",e.\u0275\u0275pipeBind1(5,33,e.\u0275\u0275pipeBind3(6,35,"manage","Brokerage","members"))),e.\u0275\u0275advance(3),e.\u0275\u0275property("loading",n.submittingAction),e.\u0275\u0275advance(2),e.\u0275\u0275property("items",e.\u0275\u0275pipeBind1(11,39,n.members$))("notFoundText","No members found")("columns",e.\u0275\u0275pipeBind1(12,41,n.columns$))("highlightAddedRows",null!==(a=e.\u0275\u0275pipeBind1(13,43,n.addingIds$))&&void 0!==a?a:e.\u0275\u0275pureFunction0(71,lt))("highlightDeletedRows",null!==(o=e.\u0275\u0275pipeBind1(14,45,n.removingIds$))&&void 0!==o?o:e.\u0275\u0275pureFunction0(72,lt))("savingEdits",e.\u0275\u0275pipeBind1(15,47,n.isSaving$))("loading",e.\u0275\u0275pipeBind1(16,49,n.loading$))("itemsDisplayCount",e.\u0275\u0275pipeBind1(17,51,n.paramsManager.paramsStreams.pageSize))("itemHeight",45)("delayRowRender",!0)("trackByKey","uid")("allowChangeColumns",!1)("itemsCheckboxes",e.\u0275\u0275pipeBind1(18,53,e.\u0275\u0275pipeBind3(19,55,"manage","Brokerage","members")))("itemsChecked",n.selectedUids)("showRefreshButton",!1===e.\u0275\u0275pipeBind1(20,59,n.editMode$))("tableHeight",n.tableHeight),e.\u0275\u0275advance(12),e.\u0275\u0275property("uiDatatableCell","displayName"),e.\u0275\u0275advance(1),e.\u0275\u0275property("uiDatatableCell","manager"),e.\u0275\u0275advance(1),e.\u0275\u0275property("uiDatatableCell","view-orders"),e.\u0275\u0275advance(1),e.\u0275\u0275property("uiDatatableCell","remove-member"),e.\u0275\u0275advance(1),e.\u0275\u0275property("ngClass",e.\u0275\u0275pipeBind1(26,61,n.editMode$)?"bottom-0":"-bottom-72"),e.\u0275\u0275advance(3),e.\u0275\u0275property("disabled",!1===e.\u0275\u0275pipeBind1(29,63,n.hasChanges$)||!0===e.\u0275\u0275pipeBind1(30,65,n.isSaving$)),e.\u0275\u0275advance(4),e.\u0275\u0275property("disabled",!1===e.\u0275\u0275pipeBind1(33,67,n.hasChanges$))("uiBtnLoading",!0===e.\u0275\u0275pipeBind1(34,69,n.isSaving$)),e.\u0275\u0275advance(4),e.\u0275\u0275property("ngIf",n.selectedUids.length>0)}},directives:[ot.J,d.JJ,d.On,g.NgIf,st.r,E.s,M.V,j.T,U.a,Fn.G,we.i,Ie.n,Pe.Q,te.gM,de.A,An.F,g.NgClass,Nn],pipes:[g.AsyncPipe,nt],styles:[".add-brokerage-member[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(200px,2fr) minmax(150px,1fr)}.add-brokerage-member[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin:0;min-width:150px}.add-brokerage-member[_ngcontent-%COMP%] ui-user-autocomplete[_ngcontent-%COMP%]{max-width:300px}"],changeDetection:0}),r})();var Me=l(91079),ei=l(90508);function ti(r,i){1&r&&e.\u0275\u0275element(0,"i",11),2&r&&e.\u0275\u0275property("size",16)}function ni(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"i",12),e.\u0275\u0275listener("click",function(a){e.\u0275\u0275restoreView(t);const o=e.\u0275\u0275nextContext();return a.stopPropagation(),o.clearSelection()}),e.\u0275\u0275elementEnd()}}function ii(r,i){if(1&r&&(e.\u0275\u0275elementStart(0,"mat-option",13),e.\u0275\u0275text(1),e.\u0275\u0275elementEnd()),2&r){const t=i.$implicit;e.\u0275\u0275property("value",t.value),e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1(" ",t.name," ")}}let ri=(()=>{class r{constructor(t,n,a){this.fb=t,this.dialogRef=n,this.data=a,this.selectedItemId=null,this.itemDisplay=o=>{var s,c;return null!==(c=null===(s=this.getOptions().find(p=>p.value===o))||void 0===s?void 0:s.name)&&void 0!==c?c:""},this.initForm(),this.initAutocomplete()}getItemName(){return"package"===this.data.type?"Package":"Service"}getSearchPlaceholder(){return"package"===this.data.type?"Select package":"Select service"}clearSelection(){var t;this.selectedItemId=null,null===(t=this.form.get("search"))||void 0===t||t.setValue("")}onOptionSelected(t){this.selectedItemId=t.option.value}onAdd(){this.dialogRef.close(this.selectedItemId)}initForm(){this.form=this.fb.group({search:["",_.$9f.required]})}initAutocomplete(){this.filteredOptions$=this.form.valueChanges.pipe((0,Te.O)({search:""}),(0,v.U)(t=>this.filter(t.search||"")))}filter(t){const n=t.toLowerCase();return this.getOptions().filter(o=>o.name.toLowerCase().includes(n))}getOptions(){return this.data.items.map(t=>({name:t.name,value:t.id}))}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275directiveInject(d.qu),e.\u0275\u0275directiveInject(f.so),e.\u0275\u0275directiveInject(f.WI))},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["tn-add-brokerage-overrides-dialog"]],decls:17,vars:13,consts:[["matAutocompleteOrigin","",1,"input-wrap",3,"formGroup"],["origin","matAutocompleteOrigin"],["type","text","formControlName","search",1,"pl-2","w-full","pr-16","h-100",3,"placeholder","readonly","matAutocomplete","matAutocompleteConnectedTo"],["class","absolute right-8 text-gray-50 cursor-pointer","uiIcon","unfold_more",3,"size",4,"ngIf"],["class","absolute right-8 text-gray-50 cursor-pointer","uiIcon","close",3,"click",4,"ngIf"],[3,"displayWith","optionSelected"],["auto","matAutocomplete"],[3,"value",4,"ngFor","ngForOf"],[1,"justify-end"],["matDialogClose","","uiBtnSize","medium","uiBtnTheme","main","themeMode","secondary"],["uiBtnSize","medium","uiBtnTheme","main","themeMode","primary",3,"disabled","click"],["uiIcon","unfold_more",1,"absolute","right-8","text-gray-50","cursor-pointer",3,"size"],["uiIcon","close",1,"absolute","right-8","text-gray-50","cursor-pointer",3,"click"],[3,"value"]],template:function(t,n){if(1&t&&(e.\u0275\u0275elementStart(0,"ui-dialog-header"),e.\u0275\u0275text(1),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(2,"mat-dialog-content")(3,"div",0,1),e.\u0275\u0275element(5,"input",2),e.\u0275\u0275template(6,ti,1,1,"i",3),e.\u0275\u0275template(7,ni,1,0,"i",4),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(8,"mat-autocomplete",5,6),e.\u0275\u0275listener("optionSelected",function(o){return n.onOptionSelected(o)}),e.\u0275\u0275template(10,ii,2,2,"mat-option",7),e.\u0275\u0275pipe(11,"async"),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(12,"mat-dialog-actions",8)(13,"button",9),e.\u0275\u0275text(14," Cancel "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(15,"button",10),e.\u0275\u0275listener("click",function(){return n.onAdd()}),e.\u0275\u0275text(16," Add "),e.\u0275\u0275elementEnd()()),2&t){const a=e.\u0275\u0275reference(4),o=e.\u0275\u0275reference(9);e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1("Add ",n.getItemName(),""),e.\u0275\u0275advance(2),e.\u0275\u0275property("formGroup",n.form),e.\u0275\u0275advance(2),e.\u0275\u0275property("placeholder",n.getSearchPlaceholder())("readonly",!!n.selectedItemId)("matAutocomplete",o)("matAutocompleteConnectedTo",a),e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",!n.selectedItemId),e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",n.selectedItemId),e.\u0275\u0275advance(1),e.\u0275\u0275property("displayWith",n.itemDisplay),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngForOf",e.\u0275\u0275pipeBind1(11,11,n.filteredOptions$)),e.\u0275\u0275advance(5),e.\u0275\u0275property("disabled",!n.selectedItemId)}},directives:[Q.A,f.xY,Me.BU,d.JL,d.sg,d.Fj,Me.ZL,d.JJ,d.u,g.NgIf,U.a,Me.XC,g.NgForOf,ei.ey,f.H8,f.ZT,E.s,M.V],pipes:[g.AsyncPipe],styles:[".input-wrap[_ngcontent-%COMP%]{position:relative;display:flex;height:2.5rem;width:100%;align-items:center;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));border-radius:.25rem;border-width:1px;border-style:solid;--tw-border-opacity: 1;border-color:rgb(226 226 226 / var(--tw-border-opacity, 1))}input[_ngcontent-%COMP%]{font-size:.875rem;font-weight:400;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(26 26 26 / var(--tw-text-opacity, 1))}input[_ngcontent-%COMP%]::placeholder{--tw-text-opacity: 1;color:rgb(175 175 175 / var(--tw-text-opacity, 1))}"],changeDetection:0}),r})();var Fe,pe=l(81125),$e=l(70949);function ai(r,i){if(1&r&&(e.\u0275\u0275elementStart(0,"ui-form-row"),e.\u0275\u0275element(1,"ui-number-input",5),e.\u0275\u0275pipe(2,"uiArea"),e.\u0275\u0275pipe(3,"number"),e.\u0275\u0275pipe(4,"uiCurrency"),e.\u0275\u0275elementEnd()),2&r){const t=i.$implicit,n=i.index,a=e.\u0275\u0275nextContext();let o;e.\u0275\u0275advance(1),e.\u0275\u0275property("label",a.getTierLabel(n)+e.\u0275\u0275pipeBind2(2,3,e.\u0275\u0275pipeBind3(3,6,a.tiersConfig[n]||a.tiersConfig[n-1],"1.0","en-US"),null!==(o=a.bookingType)&&void 0!==o?o:""))("formControl",t)("prefix",e.\u0275\u0275pipeBind1(4,10,"")+" ")}}let G=Fe=class{constructor(i){this.fb=i,this.label="",this.bookingType=null,this.tiersConfig=[],this.pricingVersionNames={},this.disabled=!1,this.readonly=!1,this.pricingVersion="default",this.tiers={},this.pricingVersionOptions=[],this.form=this.fb.group({pricingVersionTiers:this.fb.array([])})}get pricingVersionTiers(){return this.form.controls.pricingVersionTiers}ngOnInit(){this.form.valueChanges.pipe((0,k.t)(this)).subscribe(i=>{this.dispatchValueChanges(i)})}getTierLabel(i){return i<this.pricingVersionTiers.length-1?`Tier ${i+1}: up to `:`Tier ${i+1}: over `}registerOnChange(i){this.onChangeFn=i}registerOnTouched(i){this.onTouchFn=i}setDisabledState(i){this.disabled=i}writeValue(i){(!i||!i[this.pricingVersion])&&(i={[this.pricingVersion]:[]}),this.pricingVersionTiers.clear(),this.tiers=i,this.pricingVersionOptions=Object.keys(i).map(a=>({name:this.pricingVersionNames[a]||"Default",value:a}));const t=Array(this.tiersConfig.length+1).fill(0);let n=i[this.pricingVersion]||[];
1n=n.concat(t.slice(n.length)),n.slice(0,this.tiersConfig.length+1).forEach(a=>{this.pricingVersionTiers.push(this.fb.control(a))})}dispatchValueChanges(i){var t,n;const a=Object.assign(Object.assign({},this.tiers),{[this.pricingVersion]:i.pricingVersionTiers});null===(t=this.onChangeFn)||void 0===t||t.call(this,a),null===(n=this.onTouchFn)||void 0===n||n.call(this)}onPricingVersionChange(i){this.tiers=Object.assign(Object.assign({},this.tiers),{[this.pricingVersion]:this.form.value.pricingVersionTiers}),this.pricingVersion=i,this.form.patchValue({pricingVersionTiers:this.tiers[this.pricingVersion]||[]},{emitEvent:!1})}};var Ae;function oi(r,i){if(1&r&&(e.\u0275\u0275elementContainerStart(0),e.\u0275\u0275element(1,"ui-number-input",7),e.\u0275\u0275pipe(2,"uiCurrency"),e.\u0275\u0275elementContainerEnd()),2&r){const t=i.$implicit,n=i.index,a=e.\u0275\u0275nextContext();e.\u0275\u0275advance(1),e.\u0275\u0275property("label",a.getCustomTierName(n)+" price")("formControl",t)("prefix",e.\u0275\u0275pipeBind1(2,3,"")+" ")}}function si(r,i){if(1&r&&(e.\u0275\u0275elementContainerStart(0),e.\u0275\u0275element(1,"ui-number-input",7),e.\u0275\u0275pipe(2,"uiCurrency"),e.\u0275\u0275elementContainerEnd()),2&r){const t=i.$implicit,n=i.index,a=e.\u0275\u0275nextContext();e.\u0275\u0275advance(1),e.\u0275\u0275property("label",a.getCustomTierName(n)+" payout")("formControl",t)("prefix",e.\u0275\u0275pipeBind1(2,3,"")+" ")}}G.\u0275fac=function(i){return new(i||G)(e.\u0275\u0275directiveInject(d.qu))},G.\u0275cmp=e.\u0275\u0275defineComponent({type:G,selectors:[["tn-brokerage-tiers-form"]],inputs:{label:"label",bookingType:"bookingType",tiersConfig:"tiersConfig",pricingVersionNames:"pricingVersionNames",disabled:"disabled",readonly:"readonly"},features:[e.\u0275\u0275ProvidersFeature([{provide:d.JU,multi:!0,useExisting:Fe}])],decls:7,vars:5,consts:[[1,"pl-12"],[1,"flex","flex-col","rounded-md","bg-gray-5","px-1","pb-1","pt-2",3,"formGroup"],["label","Pricing version",3,"value","items","selectionChange"],["formArrayName","pricingVersionTiers"],[4,"ngFor","ngForOf"],["mask","separator.2",3,"label","formControl","prefix"]],template:function(i,t){1&i&&(e.\u0275\u0275elementStart(0,"h4",0),e.\u0275\u0275text(1),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(2,"ui-form-group",1)(3,"ui-form-row")(4,"ui-select",2),e.\u0275\u0275listener("selectionChange",function(a){return t.onPricingVersionChange(a)}),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementContainerStart(5,3),e.\u0275\u0275template(6,ai,5,12,"ui-form-row",4),e.\u0275\u0275elementContainerEnd(),e.\u0275\u0275elementEnd()),2&i&&(e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1(" ",t.label,"\n"),e.\u0275\u0275advance(1),e.\u0275\u0275property("formGroup",t.form),e.\u0275\u0275advance(2),e.\u0275\u0275property("value",t.pricingVersion)("items",t.pricingVersionOptions),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngForOf",t.pricingVersionTiers.controls))},directives:[se.H,d.JL,d.sg,$e.L,q.H,d.CE,g.NgForOf,le.f,d.JJ,d.oH],pipes:[_.FjN,g.DecimalPipe,_._ab],styles:["[_nghost-%COMP%]{display:block}"],changeDetection:0}),G=Fe=(0,h.gn)([(0,k.c)(),(0,h.w6)("design:paramtypes",[d.qu])],G);let H=Ae=class{constructor(i){this.fb=i,this.label="",this.bookingType=null,this.pricingVersionNames={},this.disabled=!1,this.readonly=!1,this.pricingVersion="default",this.customTiers={},this.pricingVersionOptions=[],this.form=this.fb.group({pricingVersionPriceTiers:this.fb.array([]),pricingVersionPayoutTiers:this.fb.array([])})}get pricingVersionPriceTiers(){return this.form.controls.pricingVersionPriceTiers}get pricingVersionPayoutTiers(){return this.form.controls.pricingVersionPayoutTiers}ngOnInit(){this.form.valueChanges.pipe((0,k.t)(this)).subscribe(i=>{this.dispatchValueChanges(i)})}getCustomTier(i){var t;return null===(t=this.customTiers[this.pricingVersion])||void 0===t?void 0:t[i]}getCustomTierName(i){var t,n;return(null===(n=null===(t=this.customTiers[this.pricingVersion])||void 0===t?void 0:t[i])||void 0===n?void 0:n.name)||""}registerOnChange(i){this.onChangeFn=i}registerOnTouched(i){this.onTouchFn=i}setDisabledState(i){this.disabled=i}writeValue(i){!i||!i[this.pricingVersion]||(this.customTiers=i,this.pricingVersionOptions=Object.keys(i).map(t=>({name:this.pricingVersionNames[t]||"Default",value:t})),this.updateFormArrays())}dispatchValueChanges(i){var t,n;const a=Object.assign(Object.assign({},this.customTiers),{[this.pricingVersion]:i.pricingVersionPriceTiers.map((o,s)=>{var c;const m=this.getCustomTier(s);return Object.assign(Object.assign({},m),{price:o,payout:(null===(c=i.pricingVersionPayoutTiers)||void 0===c?void 0:c[s])||0})})});null===(t=this.onChangeFn)||void 0===t||t.call(this,a),null===(n=this.onTouchFn)||void 0===n||n.call(this)}onPricingVersionChange(i){this.customTiers=Object.assign(Object.assign({},this.customTiers),{[this.pricingVersion]:this.form.value.pricingVersionPriceTiers.map((t,n)=>{var a;const o=this.getCustomTier(n);return Object.assign(Object.assign({},o),{price:t,payout:(null===(a=this.form.value.pricingVersionPayoutTiers)||void 0===a?void 0:a[n])||0})})}),this.pricingVersion=i,this.updateFormArrays()}updateFormArrays(){var i,t;const n=(null===(i=this.customTiers[this.pricingVersion])||void 0===i?void 0:i.map(o=>o.price||0))||[],a=(null===(t=this.customTiers[this.pricingVersion])||void 0===t?void 0:t.map(o=>o.payout||0))||[];this.pricingVersionPriceTiers.clear(),this.pricingVersionPayoutTiers.clear(),n.forEac
1h(o=>{this.pricingVersionPriceTiers.push(this.fb.control(o))}),a.forEach(o=>{this.pricingVersionPayoutTiers.push(this.fb.control(o))})}};var De;function li(r,i){if(1&r&&(e.\u0275\u0275elementStart(0,"ui-form-row",4),e.\u0275\u0275element(1,"tn-brokerage-tiers-form",5)(2,"tn-brokerage-tiers-form",6),e.\u0275\u0275elementEnd()),2&r){const t=e.\u0275\u0275nextContext();e.\u0275\u0275advance(1),e.\u0275\u0275property("bookingType",t.bookingType)("tiersConfig",t.tiersConfig)("pricingVersionNames",t.pricingVersionNames),e.\u0275\u0275advance(1),e.\u0275\u0275property("bookingType",t.bookingType)("tiersConfig",t.tiersConfig)("pricingVersionNames",t.pricingVersionNames)}}function ci(r,i){if(1&r&&(e.\u0275\u0275elementStart(0,"ui-form-row"),e.\u0275\u0275element(1,"tn-brokerage-custom-tiers-form",7),e.\u0275\u0275elementEnd()),2&r){const t=e.\u0275\u0275nextContext();e.\u0275\u0275advance(1),e.\u0275\u0275property("bookingType",t.bookingType)("pricingVersionNames",t.pricingVersionNames)}}H.\u0275fac=function(i){return new(i||H)(e.\u0275\u0275directiveInject(d.qu))},H.\u0275cmp=e.\u0275\u0275defineComponent({type:H,selectors:[["tn-brokerage-custom-tiers-form"]],inputs:{label:"label",bookingType:"bookingType",pricingVersionNames:"pricingVersionNames",disabled:"disabled",readonly:"readonly"},features:[e.\u0275\u0275ProvidersFeature([{provide:d.JU,multi:!0,useExisting:Ae}])],decls:10,vars:6,consts:[[1,"pl-12"],[1,"flex","flex-col","rounded-md","bg-gray-5","px-1","pb-1","pt-2",3,"formGroup"],["label","Pricing version",3,"value","items","selectionChange"],[1,"grid-cols-2"],["formArrayName","pricingVersionPriceTiers"],[4,"ngFor","ngForOf"],["formArrayName","pricingVersionPayoutTiers"],["mask","separator.2",1,"mb-16",3,"label","formControl","prefix"]],template:function(i,t){1&i&&(e.\u0275\u0275elementStart(0,"h4",0),e.\u0275\u0275text(1),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(2,"ui-form-group",1)(3,"ui-form-row")(4,"ui-select",2),e.\u0275\u0275listener("selectionChange",function(a){return t.onPricingVersionChange(a)}),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(5,"ui-form-row",3)(6,"div",4),e.\u0275\u0275template(7,oi,3,5,"ng-container",5),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(8,"div",6),e.\u0275\u0275template(9,si,3,5,"ng-container",5),e.\u0275\u0275elementEnd()()()),2&i&&(e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1(" ",t.label,"\n"),e.\u0275\u0275advance(1),e.\u0275\u0275property("formGroup",t.form),e.\u0275\u0275advance(2),e.\u0275\u0275property("value",t.pricingVersion)("items",t.pricingVersionOptions),e.\u0275\u0275advance(3),e.\u0275\u0275property("ngForOf",t.pricingVersionPriceTiers.controls),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngForOf",t.pricingVersionPayoutTiers.controls))},directives:[se.H,d.JL,d.sg,$e.L,q.H,d.CE,g.NgForOf,le.f,d.JJ,d.oH],pipes:[_._ab],styles:["[_nghost-%COMP%]{display:block}"],changeDetection:0}),H=Ae=(0,h.gn)([(0,k.c)(),(0,h.w6)("design:paramtypes",[d.qu])],H);let K=De=class{constructor(i){this.fb=i,this.bookingType=null,this.enableCustomTiers=!1,this.pricingVersionNames={},this.tiersConfig=[],this.disabled=!1,this.readonly=!1,this.form=this.fb.group({id:"",price:"",pricingTiers:{},payoutTiers:{},customTiers:{}})}ngOnInit(){this.form.valueChanges.pipe((0,k.t)(this)).subscribe(i=>{this.dispatchValueChanges(i)})}registerOnChange(i){this.onChangeFn=i}registerOnTouched(i){this.onTouchFn=i}setDisabledState(i){this.disabled=i}writeValue(i){if(!i)return;const{id:t,price:n,pricingTiers:a,payoutTiers:o,customTiers:s}=i;this.form.patchValue({id:t,price:n,pricingTiers:a,payoutTiers:o,customTiers:s},{emitEvent:!1})}dispatchValueChanges(i){var t,n;null===(t=this.onChangeFn)||void 0===t||t.call(this,i),null===(n=this.onTouchFn)||void 0===n||n.call(this)}};function di(r,i){if(1&r&&e.\u0275\u0275element(0,"ui-option-content",25),2&r){const t=i.$implicit;e.\u0275\u0275property("label",t.code)("description",t.description)}}K.\u0275fac=function(i){return new(i||K)(e.\u0275\u0275directiveInject(d.qu))},K.\u0275cmp=e.\u0275\u0275defineComponent({type:K,selectors:[["tn-brokerage-pricing-overrides-form"]],inputs:{bookingType:"bookingType",enableCustomTiers:"enableCustomTiers",pricingVersionNames:"pricingVersionNames",tiersConfig:"tiersConfig",disabled:"disabled",readonly:"readonly"},features:[e.\u0275\u0275ProvidersFeature([{provide:d.JU,multi:!0,useExisting:De}])],decls:6,vars:6,consts:[[1,"flex","flex-col","rounded-md","bg-gray-5","px-1","pb-1","pt-2",3,"formGroup"],["formControlName","price","mask","separator.2","label","Price*",3,"prefix"],["class","grid grid-cols-2",4,"ngIf"],[4,"ngIf"],[1,"grid","grid-cols-2"],["label","Pricing Tiers","formControlName","pricingTiers",1,"mt-12",3,"bookingType","tiersConfig","pricingVersionNames"],["label","Payout Tiers","formControlName","payoutTiers",1,"mt-12",3,"bookingType","tiersConfig","pricingVersionNames"],["label","Custom Tiers","formControlName","customTiers",1,"mt-12",3,"bookingType","pricingVersionNames"]],template:function(i,t){1&i&&(e.\u0275\u0275elementStart(0,"ui-form-group",0)(1,"ui-form-row"),e.\u0275\u0275element(2,"ui-number-input",1),e.\u0275\u0275pipe(3,"uiCurrency"),e.\u0275\u0275elementEnd(),e.\u0275\u0275template(4,li,3,6,"ui-form-row",2),e.\u0275\u0275template(5,ci,2,2,"ui-form-row",3),e.\u0275\u0275elementEnd()),2&i&&(e.\u0275\u0275property("formGroup",t.form),e.\u0275\u0275advance(2),e.\u0275\u0275property("prefix",e.\u0275\u0275pipeBind1(3,4,"")+" "),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngIf",!t.enableCustomTiers),e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",t.enableCustomTiers))},directives:[se.H,d.JL,d.sg,$e.L,le.f,d.JJ,d.u,g.NgIf,G,H],pipes:[_._ab],styles:["[_nghost-%COMP%]{display:block}"],changeDetection:0}),K=De=(0,h.gn)([(0,k.c)(),(0,h.w6)("design:paramtypes",[d.qu])],K);const je=function(){return[]};function mi(r,i){if(1&r&&(e.\u0275\u0275element(0,"tn-brokerage-pricing-overrides-form",33),e.\u0275\u0275pipe(1,"async")),2&r){const t=e.\u0275\u0275nextContext().$implicit,n=e.\u0275\u0275nextContext(2);let a;e.\u0275\u0275property("formControl",t)("bookingType",n.getPackageBookingType(t))("tiersConfig",null!==(a=e.\u0275\u0275pipeBind1(1,5,n.getPackageTiersConfig(t)))&&void 0!==a?a:e.\u0275\u0275pureFunction0(7,je))("pricingVersionNames",n.getPackagePricingVersionNames(t))("enableCustomTiers",n.getPackageCustomTiersEnabled(t))}}function pi(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"mat-expansion-panel",26)(1,"mat-expansion-panel-header",27)(2,"mat-panel-title")(3,"div",28)(4,"h4"),e.\u0275\u0275text(5),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(6,"button",29,30),e.\u0275\u0275listener("click",function(a){const s=e.\u0275\u0275restoreView(t).index,c=e.\u0275\u0275nextContext(2);return a.stopPropagation(),c.onRemoveItem("package",s)}),e.\u0275\u0275element(8,"i",31),e.\u0275\u0275text(9," Remove "),e.\u0275\u0275elementEnd()()()(),e.\u0275\u0275template(10,mi,2,8,"ng-template",32),e.\u0275\u0275elementEnd()}if(2&r){const t=i.$implicit,n=e.\u0275\u0275reference(7),a=e.\u0275\u0275nextContext(2);e.\u0275\u0275property("expanded",a.panelState[t.value.id]),e.\u0275\u0275advance(5),e.\u0275\u0275textInterpolate(a.getPackageName(t)),e.\u0275\u0275advance(3),e.\u0275\u0275property("size",n.iconSize)}}function gi(r,i){1&r&&(e.\u0275\u0275elementStart(0,"div",34),e.\u0275\u0275text(1," No packages added "),e.\u0275\u0275elementEnd())}function ui(r,i){if(1&r&&(e.\u0275\u0275element(0,"tn-brokerage-pricing-overrides-form",33),e.\u0275\u0275pipe(1,"async")),2&r){const t=e.\u0275\u0275nextContext().$implicit,n=e.\u0275\u0275nextContext(2);let a;e.\u0275\u0275property("formControl",t)("bookingType",n.getSolutionBookingType(t))("tiersConfig",null!==(a=e.\u0275\u0275pipeBind1(1,5,n.getSolutionTiersConfig(t)))&&void 0!==a?a:e.\u0275\u0275pureFunction0(7,je))("pricingVersionNames",n.getSolutionPricingVersionNames(t))("enableCustomTiers",n.getSolutionCustomTiersEnabled(t))}}function hi(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"mat-expansion-panel",26)(1,"mat-expansion-panel-header",27)(2,"mat-panel-title")(3,"div",35)(4,"h4"),e.\u0275\u0275text(5),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(6,"button",29,36),e.\u0275\u0275listener("click",function(a){const s=e.\u0275\u0275restoreView(t).index,c=e.\u0275\u0275nextContext(2);return a.stopPropagation(),c.onRemoveItem("solution",s)}),e.\u0275\u0275element(8,"i",31),e.\u0275\u0275text(9," Remove "),e.\u0275\u0275elementEnd()()()(),e.\u0275\u0275template(10,ui,2,8,"ng-template",32),e.\u0275\u0275elementEnd()}if(2&r){const t=i.$implicit,n=e.\u0275\u0275reference(7),a=e.\u0275\u0275nextContext(2);e.\u0275\u0275property("expanded",a.panelState[t.value.id]),e.\u0275\u0275advance(5),e.\u0275\u0275textInterpolate(a.getSolutionName(t)),e.\u0275\u0275advance(3),e.\u0275\u0275property("size",n.iconSize)}}function fi(r,i){1&r&&(e.\u0275\u0275elementStart(0,"div",34),e.\u0275\u0275text(1," No services added "),e.\u0275\u0275elementEnd())}const vi=function(r){return{"read-only-container":r}};function bi(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"div",7)(1,"h2",8),e.\u0275\u0275text(2,"Team Discounts"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(3,"div",9),e.\u0275\u0275text(4," Automatically apply a discount to all orders from this brokerage and its agents. "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(5,"div",10)(6,"ui-select",11),e.\u0275\u0275pipe(7,"async"),e.\u0275\u0275template(8,di,1,2,"ng-template",null,12,e.\u0275\u0275templateRefExtractor),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(10,"div",13),e.\u0275\u0275pipe(11,"async"),e.\u0275\u0275elementStart(12,"h2",14),e.\u0275\u0275text(13,"Pricing Overrides"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(14,"div",15)(15,"div",16)(16,"h3",17),e.\u0275\u0275text(17,"Packages"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(18,"button",18,19),e.\u0275\u0275listener("click",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onAddItem("package")}
1),e.\u0275\u0275element(20,"i",20),e.\u0275\u0275text(21," Add "),e.\u0275\u0275elementEnd()(),e.\u0275\u0275template(22,pi,11,3,"mat-expansion-panel",21),e.\u0275\u0275template(23,gi,2,0,"div",22),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(24,"div",23)(25,"div",16)(26,"h3",17),e.\u0275\u0275text(27,"Services"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(28,"button",18,24),e.\u0275\u0275listener("click",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().onAddItem("solution")}),e.\u0275\u0275element(30,"i",20),e.\u0275\u0275text(31," Add "),e.\u0275\u0275elementEnd()(),e.\u0275\u0275template(32,hi,11,3,"mat-expansion-panel",21),e.\u0275\u0275template(33,fi,2,0,"div",22),e.\u0275\u0275elementEnd()()()}if(2&r){const t=e.\u0275\u0275reference(19),n=e.\u0275\u0275reference(29),a=e.\u0275\u0275nextContext();let o;e.\u0275\u0275property("formGroup",a.form),e.\u0275\u0275advance(6),e.\u0275\u0275property("items",e.\u0275\u0275pipeBind1(7,12,a.coupons$)||e.\u0275\u0275pureFunction0(16,je))("clearable",!0),e.\u0275\u0275advance(4),e.\u0275\u0275property("ngClass",e.\u0275\u0275pureFunction1(17,vi,null==(o=e.\u0275\u0275pipeBind1(11,14,a.parentBrokerage$))?null:o.pricingOverrides)),e.\u0275\u0275advance(10),e.\u0275\u0275property("size",t.iconSize),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngForOf",a.packagesPricingOverrides.controls)("ngForTrackBy",a.trackById),e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",!a.packagesPricingOverrides.controls.length),e.\u0275\u0275advance(7),e.\u0275\u0275property("size",n.iconSize),e.\u0275\u0275advance(2),e.\u0275\u0275property("ngForOf",a.solutionsPricingOverrides.controls)("ngForTrackBy",a.trackById),e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",!a.solutionsPricingOverrides.controls.length)}}let Y=class{constructor(i,t,n,a,o,s,c){this.facade=i,this.contextService=t,this.coreAppReadApi=n,this.confirmDialogService=a,this.dialog=o,this.fb=s,this.cdr=c,this.brokerage$=this.facade.brokerage$,this.parentBrokerage$=this.facade.parentBrokerage$,this.bookingConfig$=this.contextService.bookingConfig$,this.panelState={},this.packages$=this.coreAppReadApi.getBookingPackages().pipe((0,v.U)(m=>m.map(p=>(0,_.NJ)(p))),(0,x.d)(1)),this.solutions$=this.coreAppReadApi.getBookingSolutions().pipe((0,v.U)(m=>m.map(p=>(0,_.NJ)(p))),(0,x.d)(1)),this.coupons$=this.coreAppReadApi.getAllCoupons().pipe((0,v.U)(m=>m.filter(({expiration:p})=>!p||p>Date.now())),(0,x.d)(1)),this.packageEntities$=this.packages$.pipe((0,v.U)(m=>this.mapEntitiesById(m))),this.solutionEntities$=this.solutions$.pipe((0,v.U)(m=>this.mapEntitiesById(m))),this.packages=[],this.solutions=[],this.packageEntities={},this.solutionEntities={},this.changed=!1,this.saving=!1,this.beforeChangesValue={defaultCouponId:null,packagesPricingOverrides:[],solutionsPricingOverrides:[]},this.form=this.fb.group({defaultCouponId:[null],packagesPricingOverrides:this.fb.array([]),solutionsPricingOverrides:this.fb.array([])}),this.initSubscriptions()}get packagesPricingOverrides(){return this.form.controls.packagesPricingOverrides}get solutionsPricingOverrides(){return this.form.controls.solutionsPricingOverrides}get packagesPricingOverridesValue(){return this.packagesPricingOverrides.value}get solutionsPricingOverridesValue(){return this.solutionsPricingOverrides.value}getPackageByControl(i){var t;return null===(t=this.packageEntities)||void 0===t?void 0:t[i.value.id]}getSolutionByControl(i){var t;return null===(t=this.solutionEntities)||void 0===t?void 0:t[i.value.id]}getPackageName(i){var t;return(null===(t=this.getPackageByControl(i))||void 0===t?void 0:t.name)||""}getSolutionName(i){var t;return(null===(t=this.getSolutionByControl(i))||void 0===t?void 0:t.name)||""}getPackageBookingType(i){const t=this.getPackageByControl(i);return null==t?void 0:t.bookingType}getSolutionBookingType(i){const t=this.getSolutionByControl(i);return null==t?void 0:t.bookingType}getPackagePricingVersionNames(i){const t=this.getPackageByControl(i);return(null==t?void 0:t.pricingVersionNames)||{}}getSolutionPricingVersionNames(i){const t=this.getSolutionByControl(i);return(null==t?void 0:t.pricingVersionNames)||{}}getPackageCustomTiersEnabled(i){const t=this.getPackageByControl(i);return(null==t?void 0:t.enableCustomTiers)||!1}getSolutionCustomTiersEnabled(i){const t=this.getSolutionByControl(i);return(null==t?void 0:t.enableCustomTiers)||!1}getPackageTiersConfig(i){return this.bookingConfig$.pipe((0,v.U)(t=>{const n=this.getPackageByControl(i);return(0,_.meL)(null==n?void 0:n.bookingType,t)}))}getSolutionTiersConfig(i){return this.bookingConfig$.pipe((0,v.U)(t=>{const n=this.getSolutionByControl(i);return(0,_.meL)(null==n?void 0:n.bookingType,t)}))}saveChanges(){return(0,h.mG)(this,void 0,void 0,function*(){this.saving=!0;const i=this.form.value.defaultCouponId||null;yield this.facade.saveBrokeragePricingOverrides(this.form.value),yield this.facade.updateDefaultCoupon(i),this.defaultCouponId=i,this.beforeChangesValue=(0,_.Ybi
1)({defaultCouponId:this.defaultCouponId,packagesPricingOverrides:this.packagesPricingOverridesValue,solutionsPricingOverrides:this.solutionsPricingOverridesValue}),this.changed=!1,this.saving=!1,this.cdr.detectChanges()})}discardChanges(){this.form.patchValue({defaultCouponId:this.defaultCouponId}),this.packagesPricingOverrides.clear(),this.solutionsPricingOverrides.clear(),this.beforeChangesValue.packagesPricingOverrides.forEach(i=>{this.packagesPricingOverrides.push(this.fb.control(i))}),this.beforeChangesValue.solutionsPricingOverrides.forEach(i=>{this.solutionsPricingOverrides.push(this.fb.control(i))}),this.cdr.detectChanges()}onAddItem(i){const t="package"===i?this.packages.filter(n=>this.packagesPricingOverridesValue.every(a=>a.id!==n.id)):this.solutions.filter(n=>this.solutionsPricingOverridesValue.every(a=>a.id!==n.id));this.dialog.open(ri,{panelClass:"app-v2",autoFocus:!1,width:"600px",data:{type:i,items:t}}).afterClosed().pipe((0,ee.h)(Boolean)).subscribe(n=>{this.addItem(i,n)})}onRemoveItem(i,t){this.confirmDialogService.confirm({message:[`Are you sure you want to delete the ${"package"===i?"package":"service"} pricing overrides?`],destructive:!0}).pipe((0,ee.h)(Boolean)).subscribe(()=>{this.removeItem(i,t)})}trackById(i,t){return t.value.id}initSubscriptions(){this.form.valueChanges.pipe((0,k.t)(this)).subscribe(i=>{this.changed=!(0,_e.Z)(this.beforeChangesValue,(0,_.Ybi)(i))}),this.packages$.pipe((0,k.t)(this)).subscribe(i=>{this.packages=i}),this.solutions$.pipe((0,k.t)(this)).subscribe(i=>{this.solutions=i}),this.packageEntities$.pipe((0,k.t)(this)).subscribe(i=>{this.packageEntities=i}),this.solutionEntities$.pipe((0,k.t)(this)).subscribe(i=>{this.solutionEntities=i}),(0,O.aj)([this.brokerage$,this.parentBrokerage$,this.packageEntities$,this.solutionEntities$]).pipe((0,k.t)(this)).subscribe(([i,t,n,a])=>{if(!i)return;const o=(null==t?void 0:t.pricingOverrides)||i.pricingOverrides||{};void 0===this.defaultCouponId&&(this.defaultCouponId=i.defaultCouponId||null,this.form.patchValue({defaultCouponId:this.defaultCouponId},{emitEvent:!1})),this.packagesPricingOverrides.clear(),this.solutionsPricingOverrides.clear(),Object.keys(o).forEach(s=>{if(n[s]){const c=this.getPricingOverrideValue(n[s],o[s]);this.packagesPricingOverrides.push(this.fb.control(c))}if(a[s]){const c=this.getPricingOverrideValue(a[s],o[s]);this.solutionsPricingOverrides.push(this.fb.control(c))}}),this.beforeChangesValue=(0,_.Ybi)({defaultCouponId:this.defaultCouponId,packagesPricingOverrides:this.packagesPricingOverridesValue,solutionsPricingOverrides:this.solutionsPricingOverridesValue}),this.changed=!1,this.cdr.detectChanges()})}getPricingOverrideValue(i,t){const{price:n,pricingTiers:a,payoutTiers:o,customTiers:s}=i;return Object.assign(Object.assign({},{price:n,pricingTiers:a,payoutTiers:o,customTiers:s}),t)}addItem(i,t){if("package"===i){const n=this.packageEntities[t],{price:a,pricingTiers:o,payoutTiers:s,customTiers:c}=n;this.packagesPricingOverrides.push(this.fb.control({id:t,price:a,pricingTiers:o,payoutTiers:s,customTiers:c}))}else{const n=this.solutionEntities[t],{price:a,pricingTiers:o,payoutTiers:s,customTiers:c}=n;this.solutionsPricingOverrides.push(this.fb.control({id:t,price:a,pricingTiers:o,payoutTiers:s,customTiers:c}))}this.panelState[t]=!0,this.cdr.detectChanges()}removeItem(i,t){"package"===i?this.packagesPricingOverrides.removeAt(t):this.solutionsPricingOverrides.removeAt(t),this.cdr.detectChanges()}mapEntitiesById(i){return i.reduce((t,n)=>Object.assign(Object.assign({},t),{[n.id]:n}),{})}};Y.\u0275fac=function(i){return new(i||Y)(e.\u0275\u0275directiveInject(T),e.\u0275\u0275directiveInject(u.ObY),e.\u0275\u0275directiveInject(u.wul),e.\u0275\u0275directiveInject(B.DNF),e.\u0275\u0275directiveInject(f.uw),e.\u0275\u0275directiveInject(d.qu),e.\u0275\u0275directiveInject(e.ChangeDetectorRef))},Y.\u0275cmp=e.\u0275\u0275defineComponent({type:Y,selectors:[["ng-component"]],decls:10,vars:7,consts:[[1,"w-full","flex","justify-center","mt-32"],["class","mb-24 max-w-xl w-full",3,"formGroup",4,"ngIf"],[1,"w-full","p-24","pb-12","bg-white","flex","flex-col","flex-1"],[1,"absolute","bottom-0","h-48","bg-gray-5","flex","justify-center","items-center","left-0","right-0","px-16","transition-all",3,"ngClass"],[1,"w-100","max-w-xl","flex","items-center","justify-end"],["uiBtnSize","small","uiBtnTheme","main","themeMode","secondary",1,"mr-8",3,"disabled","click"],["uiBtnSize","small","uiBtnTheme","main","themeMode","primary",3,"disabled","uiBtnLoading","click"],[1,"mb-24","max-w-xl","w-full",3,"formGroup"],[1,"mb-4","px-12"],[1,"text-caption","text-gray-40","px-12","mb-12"],[1,"rounded-md","bg-gray-5","px-12","pb-12","pt-16","mb-24"],["label","Choose a Coupon","formControlName","defaultCouponId","nameKey","code","valueKey","id","placeholder","Select a coupon",1,"block",3,"items","clearable"],["o
1ptionTmpl",""],[3,"ngClass"],[1,"mb-16","pl-12"],["formArrayName","packagesPricingOverrides",1,"px-12"],[1,"flex"],[1,"mb-16"],["uiBtnSize","xx-small","uiBtnTheme","main","themeMode","tertiary",1,"ml-8",3,"click"],["addPackage","btnSize"],["uiIcon","add",3,"size"],["class","pricing-panel",3,"expanded",4,"ngFor","ngForOf","ngForTrackBy"],["class","body text-gray-50 pl-8",4,"ngIf"],["formArrayName","solutionsPricingOverrides",1,"px-12","pt-24"],["addSolution","btnSize"],[3,"label","description"],[1,"pricing-panel",3,"expanded"],["collapsedHeight","40px","expandedHeight","40px"],[1,"flex","items-center","justify-between","w-100"],["uiBtnSize","xx-small","uiBtnTheme","error","themeMode","primary",1,"ml-8",3,"click"],["removePackage","btnSize"],["uiIcon","close",3,"size"],["matExpansionPanelContent",""],[3,"formControl","bookingType","tiersConfig","pricingVersionNames","enableCustomTiers"],[1,"body","text-gray-50","pl-8"],[1,"flex","justify-between","w-100"],["removeSolution","btnSize"]],template:function(i,t){1&i&&(e.\u0275\u0275elementStart(0,"div",0),e.\u0275\u0275template(1,bi,34,19,"div",1),e.\u0275\u0275pipe(2,"async"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(3,"div",2)(4,"div",3)(5,"div",4)(6,"button",5),e.\u0275\u0275listener("click",function(){return t.discardChanges()}),e.\u0275\u0275text(7," Discard Changes "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(8,"button",6),e.\u0275\u0275listener("click",function(){return t.saveChanges()}),e.\u0275\u0275text(9," Save Changes "),e.\u0275\u0275elementEnd()()()()),2&i&&(e.\u0275\u0275advance(1),e.\u0275\u0275property("ngIf",e.\u0275\u0275pipeBind1(2,5,t.brokerage$)),e.\u0275\u0275advance(3),e.\u0275\u0275property("ngClass",t.changed||t.saving?"bottom-0":"-bottom-48"),e.\u0275\u0275advance(2),e.\u0275\u0275property("disabled",!t.changed||t.saving),e.\u0275\u0275advance(2),e.\u0275\u0275property("disabled",!t.changed||t.form.invalid)("uiBtnLoading",t.saving))},directives:[g.NgIf,d.JL,d.sg,q.H,d.JJ,d.u,Qe.J,g.NgClass,d.CE,E.s,M.V,U.a,g.NgForOf,pe.ib,pe.yz,pe.yK,pe.HS,K,d.oH,j.T],pipes:[g.AsyncPipe],styles:["[_nghost-%COMP%] .read-only-container[_ngcontent-%COMP%]{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.6}[_nghost-%COMP%] .mat-expansion-panel[_ngcontent-%COMP%]{margin-bottom:1.5rem}[_nghost-%COMP%] .mat-expansion-panel.pricing-panel[_ngcontent-%COMP%]{margin-top:.25rem;margin-bottom:0;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-sha
1dow)}[_nghost-%COMP%] .mat-expansion-panel.pricing-panel[_ngcontent-%COMP%] .mat-expansion-panel-header[_ngcontent-%COMP%]{min-height:max-content;--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1));padding:.5rem}[_nghost-%COMP%] .mat-expansion-panel.pricing-panel.mat-expanded[_ngcontent-%COMP%] mat-expansion-panel-header[_ngcontent-%COMP%]{border-bottom-right-radius:0;border-bottom-left-radius:0}[_nghost-%COMP%] .mat-expansion-panel.pricing-panel[_ngcontent-%COMP%] .mat-expansion-panel-body{padding:0}[_nghost-%COMP%] .mat-expansion-panel.pricing-panel[_ngcontent-%COMP%] .mat-expansion-indicator{padding:.5rem}"],changeDetection:0}),Y=(0,h.gn)([(0,k.c)(),(0,h.w6)("design:paramtypes",[T,u.ObY,u.wul,B.DNF,f.uw,d.qu,e.ChangeDetectorRef])],Y);let W=class{constructor(i,t){this.dialogRef=i,this.brokeragesService=t,this.brokerageInfo={},this.loading=!1}onSelectManager(i){this.selectedManager=i}onSelectBrokerage(i){this.selectedBrokerage=i}submit(){return(0,h.mG)(this,void 0,void 0,function*(){this.dialogRef.disableClose=!0,this.loading=!0;const i=this.getSaveData(),t=yield this.brokeragesService.createBrokerage(i);this.loading=!1,this.dialogRef.close(t)})}getSaveData(){var i;const t=(null===(i=this.brokerageInfo.bccEmailList)||void 0===i?void 0:i.map(a=>({value:a,display:a})))||[],n=Object.assign(Object.assign({},this.brokerageInfo),{bccEmailList:t});if(this.selectedManager){const{uid:a,photoURL:o,email:s,displayName:c}=this.selectedManager;n.managers={[a]:{uid:a,photoURL:o,email:s,displayName:c}}}return this.selectedBrokerage&&(n.parentBrokerageId=this.selectedBrokerage.id),(0,_.Ybi)(n)}};W.\u0275fac=function(i){return new(i||W)(e.\u0275\u0275directiveInject(f.so),e.\u0275\u0275directiveInject(u.wKh))},W.\u0275cmp=e.\u0275\u0275defineComponent({type:W,selectors:[["tn-create-brokerage-dialog"]],features:[e.\u0275\u0275ProvidersFeature([u.wKh,{provide:B.a22,useValue:{facetFilters:["permissions:-Contractor","permissions:-Staff","permissions:-Admin","has_assigned_brokerage:false","isAnonymous:false"],attributesToRetrieve:["displayName","email","uid","photoURL"],hitsPerPage:10,ttl:0}}])],decls:17,vars:16,consts:[[3,"ngModel","readonly","ngModelChange"],[1,"flex","flex-col","rounded-md","bg-gray-5","px-1","pb-1","pt-2","mt-6"],[1,"body","pl-8","text-gray-50","mb-min"],[1,"w-full",3,"placeholder","readonly","clearable","focusPlaceholder","debounceTime","emitOnEmptySearch","selectUser"],[3,"readonly","clearable","focusPlaceholder","debounceTime","emitOnEmptySearch","onlyParentBrokerages","selectBrokerage"],[1,"justify-end"],["uiBtnSize","medium","uiBtnTheme","main","themeMode","secondary",3,"matDialogClose"],["uiBtnSize","medium","uiBtnTheme","main","themeMode","primary","uiAutofocus","",3,"uiBtnLoading","click"]],template:function(i,t){1&i&&(e.\u0275\u0275elementStart(0,"ui-dialog-header"),e.\u0275\u0275text(1,"Company information"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(2,"mat-dialog-content")(3,"tn-brokerage-info-form",0),e.\u0275\u0275listener("ngModelChange",function(a){return t.brokerageInfo=a}),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(4,"div",1)(5,"div",2),e.\u0275\u0275text(6,"Assign manager"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(7,"ui-user-autocomplete",3),e.\u0275\u0275listener("selectUser",function(a){return t.onSelectManager(a)}),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(8,"div",1)(9,"div",2),e.\u0275\u0275text(10,"Parent brokerage"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(11,"ui-brokerage-autocomplete",4),e.\u0275\u0275listener("selectBrokerage",function(a){return t.onSelectBrokerage(a)}),e.\u0275\u0275elementEnd()()(),e.\u0275\u0275elementStart(12,"mat-dialog-actions",5)(13,"button",6),e.\u0275\u0275text(14," Cancel "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(15,"button",7),e.\u0275\u0275listener("click",function(){return t.submit()}),e.\u0275\u0275text(16," Create Brokerage "),e.\u0275\u0275elementEnd()()),2&i&&(e.\u0275\u0275advance(3),e.\u0275\u0275property("ngModel",t.brokerageInfo)("readonly",t.loading),e.\u0275\u0275advance(4),e.\u0275\u0275property("placeholder","Select manager")("readonly",t.loading)("clearable",!0)("focusPlaceholder","Search agents")("debounceTime",100)("emitOnEmptySearch",!0),e.\u0275\u0275advance(4),e.\u0275\u0275property("readonly",t.loading)("clearable",!0)("focusPlaceholder","Search brokerage")("debounceTime",100)("emitOnEmptySearch",!0)("onlyParentBrokerages",!0),e.\u0275\u0275advance(2),e.\u0275\u0275property("matDialogClose",void 0),e.\u0275\u0275advance(2),e.\u0275\u0275property("uiBtnLoading",t.loading))},directives:[Q.A,f.xY,it,d.JJ,d.On,st.r,Oe.E,f.H8,E.s,M.V,f.ZT,Ee.U,j.T],encapsulation:2}),W=(0,h.gn)([(0,k.c)(),(0,h.w6)("design:paramtypes",[f.so,u.wKh])],W);let ct=(()=>
1{class r{constructor(t){this.dialog=t}openDialog(){return this.dialog.open(W,{panelClass:"app-v2",width:"512px",disableClose:!1,autoFocus:!1}).afterClosed()}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275inject(f.uw))},r.\u0275prov=e.\u0275\u0275defineInjectable({token:r,factory:r.\u0275fac}),r})(),J=class{constructor(i,t,n){this.dialogRef=i,this.brokeragesService=t,this.data=n,this.loading=!1}submit(){return(0,h.mG)(this,void 0,void 0,function*(){this.dialogRef.disableClose=!0,this.loading=!0,yield this.brokeragesService.deleteBrokerage(this.data.brokerage.objectID),this.loading=!1,this.dialogRef.close(this.data.brokerage.objectID)})}};J.\u0275fac=function(i){return new(i||J)(e.\u0275\u0275directiveInject(f.so),e.\u0275\u0275directiveInject(u.wKh),e.\u0275\u0275directiveInject(f.WI))},J.\u0275cmp=e.\u0275\u0275defineComponent({type:J,selectors:[["tn-delete-brokerage-dialog"]],features:[e.\u0275\u0275ProvidersFeature([u.wKh])],decls:10,vars:3,consts:[[1,"text-center"],[1,"justify-end"],["uiBtnSize","medium","uiBtnTheme","error","themeMode","secondary","uiAutofocus","",3,"matDialogClose"],["uiBtnSize","medium","uiBtnTheme","error","themeMode","primary",3,"uiBtnLoading","click"]],template:function(i,t){1&i&&(e.\u0275\u0275elementStart(0,"ui-dialog-header"),e.\u0275\u0275text(1),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(2,"mat-dialog-content")(3,"p",0),e.\u0275\u0275text(4,"This will unassign all of its members and managers."),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(5,"mat-dialog-actions",1)(6,"button",2),e.\u0275\u0275text(7," Cancel "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(8,"button",3),e.\u0275\u0275listener("click",function(){return t.submit()}),e.\u0275\u0275text(9," Delete Brokerage "),e.\u0275\u0275elementEnd()()),2&i&&(e.\u0275\u0275advance(1),e.\u0275\u0275textInterpolate1("Delete brokerage '",t.data.brokerage.name,"'?"),e.\u0275\u0275advance(5),e.\u0275\u0275property("matDialogClose",void 0),e.\u0275\u0275advance(2),e.\u0275\u0275property("uiBtnLoading",t.loading))},directives:[Q.A,f.xY,f.H8,E.s,M.V,Ee.U,f.ZT,j.T],encapsulation:2}),J=(0,h.gn)([(0,k.c)(),(0,h.w6)("design:paramtypes",[f.so,u.wKh,Object])],J);let dt=(()=>{class r{constructor(t){this.dialog=t}openDialog(t){return this.dialog.open(J,{panelClass:"app-v2",width:"512px",disableClose:!1,autoFocus:!1,data:{brokerage:t}}).afterClosed()}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275inject(f.uw))},r.\u0275prov=e.\u0275\u0275defineInjectable({token:r,factory:r.\u0275fac}),r})();const _i=["datatable"];function yi(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"button",12,13),e.\u0275\u0275listener("click",function(){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().createBrokerage()}),e.\u0275\u0275element(2,"i",14),e.\u0275\u0275text(3," Create Brokerage "),e.\u0275\u0275elementEnd()}if(2&r){const t=e.\u0275\u0275reference(1);e.\u0275\u0275advance(2),e.\u0275\u0275property("size",t.iconSize)}}function Ci(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"div",15),e.\u0275\u0275listener("click",function(){const o=e.\u0275\u0275restoreView(t).$implicit;return e.\u0275\u0275nextContext().goToBrokerage(o.objectID)}),e.\u0275\u0275element(1,"ui-avatar",16),e.\u0275\u0275elementStart(2,"h4",17),e.\u0275\u0275text(3),e.\u0275\u0275elementEnd()()}if(2&r){const t=i.$implicit;e.\u0275\u0275advance(1),e.\u0275\u0275property("src",t.logo)("name",t.name),e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate(t.name)}}function ki(r,i){if(1&r&&e.\u0275\u0275text(0),2&r){let n;e.\u0275\u0275textInterpolate1(" ",null!==(n=i.$implicit.membersCount)&&void 0!==n?n:0," ")}}function xi(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"tn-brokerage-managers-cell",18),e.\u0275\u0275listener("managerSelected",function(a){return e.\u0275\u0275restoreView(t),e.\u0275\u0275nextContext().goToUserProfile(a)}),e.\u0275\u0275elementEnd()}2&r&&e.\u0275\u0275property("managers",i.$implicit.managers)}function Si(r,i){if(1&r){const t=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"button",20,21),e.\u0275\u0275listener("click",function(){e.\u0275\u0275restoreView(t);const a=e.\u0275\u0275nextContext().$implicit;return e.\u0275\u0275nextContext().deleteBrokerage(a)}),e.\u0275\u0275element(2,"i",22),e.\u0275\u0275text(3," Delete "),e.\u0275\u0275elementEnd()}if(2&r){const t=e.\u0275\u0275reference(1);e.\u0275\u0275advance(2),e.\u0275\u0275property("size",t.iconSize)}}function Bi(r,i){1&r&&(e.\u0275\u0275template(0,Si,4,1,"button",19),e.\u0275\u0275pipe(1,"async"),e.\u0275\u0275pipe(2,"ablePure")),2&r&&e.\u0275\u0275property("ngIf",e.\u0275\u0275pipeBind1(1,1,e.\u0275\u0275pipeBind2(2,3,"manage","Brokerage")))}const Ti=[{path:"",component:(()=>{class r{}return r.\u0275fac=function(t){return new(t||r)},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["ng-component"]],features:[e.\u0275\u0275ProvidersFeature([ct,dt])],decls:2,vars:0,consts:[[1,"grow-wrapper","w-full","flex","flex-col","flex-1","bg-white"]],template:function(t,n){1&t&&(e.\u0275\u0275elementStart(0,"div",0),e.\u0275\u0275element(1,"router-outlet"),e.\u0275\u0275elementEnd())},directives:[P.lC],styles:[".grow-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.grow-wrapper>ng-component{display:flex;flex-direction:column;flex:1;height:100%}\n"],encapsulation:2,changeDetection:0}),r})(),children:[{path:"",component:(()=>
1{class r{constructor(t,n,a,o,s,c,m,p){this.brokeragesRepository=t,this.cacheService=n,this.algoliaSearch=a,this.route=o,this.createDialog=s,this.deleteDialog=c,this.cd=m,this.router=p,this.destroy$=new $.xQ,this.rowHeight=55,this.columns=[{field:"name",header:"Name",minWidth:"200px",maxWidth:"350px"},{field:"agentCode",header:"Agent Code",width:"220px"},{field:"managers",header:"Managers",width:"220px"},{field:"membersCount",header:"Members Count",width:"120px"},{field:"delete",minWidth:"120px",justify:"end"}],this.paramsManager=new _.t3E(this.router,this.route,[{name:"search",type:"string",defaultValue:""},{name:"nonEmptyOnly",type:"boolean",defaultValue:!0},{name:"pageSize",type:"number",saveLastValue:!0,defaultValue:0}],this.destroy$,"brokerages"),this.byIdCache={},this.dataManager=new _.MMz({fetchDataFn:C=>this.fetchBrokerages(C),batchSize:20,params$:this.paramsManager.getCombinedParams(["search","nonEmptyOnly"])},this.destroy$),this.brokerages$=(0,_.Rzk)(this.dataManager.items$,C=>this.brokeragesRepository.getById$(C),"objectID",this.byIdCache).pipe((0,x.d)(1)),this.tableHeight=0,this.deletedRows=[]}createBrokerage(){this.createDialog.openDialog().pipe((0,N.R)(this.destroy$)).subscribe(t=>{t&&this.goToBrokerage(t)})}onScrollEnd(){this.dataManager.loadMore()}deleteBrokerage(t){return(0,h.mG)(this,void 0,void 0,function*(){this.deletedRows=[t.objectID],this.deleteDialog.openDialog(t).pipe((0,N.R)(this.destroy$)).subscribe(()=>{this.deletedRows=[],this.cd.markForCheck()})})}goToBrokerage(t){this.router.navigate(["/crm/brokerages",t])}goToUserProfile(t){this.router.navigate(["/crm/profile",t])}onHeightChange(t){if(this.tableHeight=t,this.datatable){const n=this.datatable.calculateItemsFitCount(this.tableHeight);this.paramsManager.setParam("pageSize",n,!0)}}refreshPage(){this.cacheService.invalidateForDomain("brokerages-dashboard"),this.dataManager.refresh()}fetchBrokerages(t){if(t.limit<1)return(0,D.of)({results:[],length:0});const n=[];return t.nonEmptyOnly&&n.push("membersCount > 0"),this.cacheService.get({domainKey:"brokerages-dashboard",fetcher:a=>this.algoliaSearch.brokeragesIndex.search(t.search,{filters:n.join(" AND "),offset:t.skip,length:t.limit}).then(o=>({results:o.hits,length:o.nbHits})),context:t})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return r.\u0275fac=function(t){return new(t||r)(e.\u0275\u0275directiveInject(u.HwC),e.\u0275\u0275directiveInject(u.J4i),e.\u0275\u0275directiveInject(u.ewU),e.\u0275\u0275directiveInject(P.gz),e.\u0275\u0275directiveInject(ct),e.\u0275\u0275directiveInject(dt),e.\u0275\u0275directiveInject(e.ChangeDetectorRef),e.\u0275\u0275directiveInject(P.F0))},r.\u0275cmp=e.\u0275\u0275defineComponent({type:r,selectors:[["ng-component"]],viewQuery:function(t,n){if(1&t&&e.\u0275\u0275viewQuery(_i,5),2&t){let a;e.\u0275\u0275queryRefresh(a=e.\u0275\u0275loadQuery())&&(n.datatable=a.first)}},decls:24,vars:38,consts:[[1,"w-full","bg-gradient-to-b","from-white","to-gray-5","border-b-1","border-gray-15","border-solid","pl-24","pt-12"],[1,"mb-12","flex","items-center"],[1,"mr-32"],["uiBtnSize","small","uiBtnTheme","main","themeMode","primary",3,"click",4,"ngIf"],[1,"w-full","p-24","pb-12","bg-white","flex","flex-col","flex-1","mb-32"],[1,"filters","mb-2","flex","gap-4","items-center"],[3,"realtime","realtimeDebounce","placeholder","ngModel","search"],[3,"disableRipple","ngModel","ngModelChange"],[3,"heightChange"],[3,"items","columns","loading","itemsDisplayCount","itemHeight","appendOnly","trackByKey","highlightDeletedRows","savingEdits","scrollEndThreshold","showRefreshButton","tableHeight","scrollEnd","refresh"],["datatable",""],[3,"uiDatatableCell"],["uiBtnSize","small","uiBtnTheme","main","themeMode","primary",3,"click"],["createBrokerageButton","btnSize"],["uiIcon","add",3,"size"],[1,"flex","gap-2","items-center","cursor-pointer","select-none",3,"click"],["size","small",1,"mr-2",3,"src","name"],[1,"text-gray-90"],[3,"managers","managerSelected"],["uiBtnSize","small","uiBtnTheme","setting","themeMode","primary",3,"click",4,"ngIf"],["uiBtnSize","small","uiBtnTheme","setting","themeMode","primary",3,"click"],["deleteBrokerageButton","btnSize"],["uiIcon","delete",3,"size"]],template:function(t,n){1&t&&(e.\u0275\u0275elementStart(0,"div",0)(1,"h1",1)(2,"div",2),e.\u0275\u0275text(3,"Brokerages Management"),e.\u0275\u0275elementEnd(),e.\u0275\u0275template(4,yi,4,1,"button",3),e.\u0275\u0275pipe(5,"async"),e.\u0275\u0275pipe(6,"ablePure"),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(7,"div",4)(8,"div",5)(9,"ui-search-input",6),e.\u0275\u0275listener("search",function(o){return n.paramsM
1anager.setParam("search",o)}),e.\u0275\u0275pipe(10,"async"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(11,"mat-slide-toggle",7),e.\u0275\u0275listener("ngModelChange",function(o){return n.paramsManager.setParam("nonEmptyOnly",o)}),e.\u0275\u0275pipe(12,"async"),e.\u0275\u0275text(13," Only show non-empty brokerages "),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(14,"ui-vertical-autofit-container",8),e.\u0275\u0275listener("heightChange",function(o){return n.onHeightChange(o)}),e.\u0275\u0275elementStart(15,"ui-datatable",9,10),e.\u0275\u0275listener("scrollEnd",function(){return n.onScrollEnd()})("refresh",function(){return n.refreshPage()}),e.\u0275\u0275pipe(17,"async"),e.\u0275\u0275pipe(18,"async"),e.\u0275\u0275pipe(19,"async"),e.\u0275\u0275template(20,Ci,4,3,"ng-template",11),e.\u0275\u0275template(21,ki,1,1,"ng-template",11),e.\u0275\u0275template(22,xi,1,1,"ng-template",11),e.\u0275\u0275template(23,Bi,3,6,"ng-template",11),e.\u0275\u0275elementEnd()()()),2&t&&(e.\u0275\u0275advance(4),e.\u0275\u0275property("ngIf",e.\u0275\u0275pipeBind1(5,23,e.\u0275\u0275pipeBind2(6,25,"manage","Brokerage"))),e.\u0275\u0275advance(5),e.\u0275\u0275property("realtime",!0)("realtimeDebounce",200)("placeholder","Search brokerages")("ngModel",e.\u0275\u0275pipeBind1(10,28,n.paramsManager.paramsStreams.search)),e.\u0275\u0275advance(2),e.\u0275\u0275property("disableRipple",!1)("ngModel",e.\u0275\u0275pipeBind1(12,30,n.paramsManager.paramsStreams.nonEmptyOnly)),e.\u0275\u0275advance(4),e.\u0275\u0275property("items",e.\u0275\u0275pipeBind1(17,32,n.brokerages$))("columns",n.columns)("loading",e.\u0275\u0275pipeBind1(18,34,n.dataManager.loading$))("itemsDisplayCount",e.\u0275\u0275pipeBind1(19,36,n.paramsManager.paramsStreams.pageSize))("itemHeight",n.rowHeight)("appendOnly",!1)("trackByKey","objectID")("highlightDeletedRows",n.deletedRows)("savingEdits",n.deletedRows.length>0)("scrollEndThreshold",10)("showRefreshButton",!0)("tableHeight",n.tableHeight),e.\u0275\u0275advance(5),e.\u0275\u0275property("uiDatatableCell","name"),e.\u0275\u0275advance(1),e.\u0275\u0275property("uiDatatableCell","membersCount"),e.\u0275\u0275advance(1),e.\u0275\u0275property("uiDatatableCell","managers"),e.\u0275\u0275advance(1),e.\u0275\u0275property("uiDatatableCell","delete"))},directives:[g.NgIf,E.s,M.V,U.a,ot.J,d.JJ,d.On,ue.Rr,we.i,Ie.n,Pe.Q,de.A,tt],pipes:[g.AsyncPipe,be.pb],styles:[""],changeDetection:0}),r})(),canActivate:[u.Qie]},{path:":id",component:Tt,canActivate:[Le],children:[{path:y.INFO,component:En},{path:y.MEMBERS,component:qn},{path:y.BOOKING_FLOWS,component:R},{path:y.PRICING,component:Y},{path:y.DELIVERY,component:V},{path:y.CHILD_BROKERAGES,component:_n},{path:y.NOTIFICATION_SETTINGS,component:z},{path:"**",redirectTo:y.INFO}]}]},{path:"**",redirectTo:""}];let wi=(()=>{class r{}return r.\u0275fac=function(t){return new(t||r)},r.\u0275mod=e.\u0275\u0275defineNgModule({type:r}),r.\u0275inj=e.\u0275\u0275defineInjector({imports:[[P.Bz.forChild(Ti)],P.Bz]}),r})(),Ii=(()=>{class r{}return r.\u0275fac=function(t){return new(t||r)},r.\u0275mod=e.\u0275\u0275defineNgModule({type:r}),r.\u0275inj=e.\u0275\u0275defineInjector({providers:[Le],imports:[[g.CommonModule,wi,B.FqG,B.QX1,B.xq7,B.J42,d.u5,d.UX,B.gPf,B.cf5,f.Is,Ve.Cq,B.Ycz,gt.E,B.FxY,pt.TU,B.Phw,mt.Tx,B.TXv,te.AV,B.YbQ,u.B2M,ue.rP,he.Nh,B.eYi,ut.Y,Ue.aw,ze.vO,B.Apv]]}),r})()}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.