1"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[7607],{87747(W,I,r){r.d(I,{U:()=>F});var C=r(99019),p=r(50817),d=r(10036),P=r(36069),A=r(591),m=r(72730),_=r(22281),o=r(22618);function D(c,y){if(1&c&&(o.j41(0,"p",2),o.EFF(1),o.k0s()),2&c){const a=o.XpG(2);o.R7$(),o.JRh(a.oGoalUi().oCard.sFeatureTag)}}function R(c,y){if(1&c&&(o.j41(0,"p",3),o.EFF(1),o.k0s()),2&c){const a=o.XpG(2);o.R7$(),o.JRh(a.oGoalUi().oCard.sActionHint)}}function O(c,y){if(1&c&&(o.j41(0,"p",4),o.EFF(1),o.k0s()),2&c){const a=o.XpG(2);o.R7$(),o.JRh(a.oGoalUi().oCard.sOverview)}}function S(c,y){if(1&c){const a=o.RV6();o.j41(0,"ion-button",13),o.bIt("click",function(){_.eBV(a);const v=o.XpG(2);return _.Njj(v.onPauseClick())}),o.nrm(1,"ion-icon",14),o.EFF(2," Pause tour "),o.k0s()}}function M(c,y){if(1&c){const a=o.RV6();o.j41(0,"ion-button",15),o.bIt("click",function(){_.eBV(a);const v=o.XpG(2);return _.Njj(v.onContinueClick())}),o.nrm(1,"ion-icon",16),o.EFF(2," Continue "),o.k0s()}}function k(c,y){if(1&c){const a=o.RV6();o.j41(0,"ion-button",17),o.bIt("click",function(){_.eBV(a);const v=o.XpG(2);return _.Njj(v.onAdvanceClick())}),o.nrm(1,"ion-icon",18),o.EFF(2," Next step "),o.k0s()}}function U(c,y){1&c&&(o.j41(0,"p",11),o.nrm(1,"ion-icon",19),o.EFF(2," Action on Page "),o.k0s())}function e(c,y){if(1&c){const a=o.RV6();o.j41(0,"ion-button",20),o.bIt("click",function(){_.eBV(a);const v=o.XpG(2);return _.Njj(v.onDismissClick())}),o.nrm(1,"ion-icon",21),o.EFF(2),o.k0s()}if(2&c){const a=o.XpG(2);o.R7$(2),o.SpI(" ",a.sDismissLabel()," ")}}function j(c,y){if(1&c&&(o.j41(0,"div",0)(1,"p",1),o.EFF(2),o.k0s(),o.nVh(3,D,2,1,"p",2),o.nVh(4,R,2,1,"p",3),o.nVh(5,O,2,1,"p",4),o.j41(6,"div",5)(7,"div",6),o.nVh(8,S,3,0,"ion-button",7),o.k0s(),o.j41(9,"div",8),o.nVh(10,M,3,0,"ion-button",9)(11,k,3,0,"ion-button",10)(12,U,3,0,"p",11),o.nVh(13,e,3,1,"ion-button",12),o.k0s()()()),2&c){const a=o.XpG();o.R7$(2),o.E5c(" Step ",a.oGoalUi().oCard.iStepNumber," of ",a.oGoalUi().oCard.cTotalSteps," \xb7 ",a.oGoalUi().oCard.sLabel," "),o.R7$(),o.vxM(a.oGoalUi().oCard.sFeatureTag?3:-1),o.R7$(),o.vxM(a.oGoalUi().oCard.sActionHint?4:-1),o.R7$(),o.vxM(a.oGoalUi().oCard.sOverview?5:-1),o.R7$(3),o.vxM(a.oGoalUi().fPauseAllowed?8:-1),o.R7$(2),o.vxM(a.oGoalUi().fCanContinue?10:a.oGoalUi().fAdvanceAllowed?11:a.oGoalUi().fIsTour||a.oGoalUi().fPauseAllowed?12:-1),o.R7$(3),o.vxM(a.oGoalUi().fDismissAllowed?13:-1)}}let F=(()=>{class c{constructor(){this.oGoalUi=(0,C.hFB)(null),this.pause=(0,C.CGW)(),this.continue=(0,C.CGW)(),this.advance=(0,C.CGW)(),this.dismiss=(0,C.CGW)(),this.sDismissLabel=(0,p.EW)(()=>
1this.oGoalUi()?._ctx?.sGoalType===m.NY5.SETUP_WIZARD?"Set up later":"Dismiss"),this.fVisible=(0,p.EW)(()=>{const a=this.oGoalUi();return!!a?.fActive&&a.fIsTour&&a.oCard.iStepNumber>0}),(0,P.d)({closeOutline:A.xfX,pauseOutline:A.jXm,playOutline:A.zsx,arrowDownOutline:A.MVx,arrowForwardOutline:A.p9U})}onPauseClick(){this.pause.emit()}onContinueClick(){this.continue.emit()}onAdvanceClick(){this.advance.emit()}onDismissClick(){this.dismiss.emit()}static{this.\u0275fac=function(T){return new(T||c)}}static{this.\u0275cmp=o.VBU({type:c,selectors:[["app-tour-progress-goal-card"]],inputs:{oGoalUi:[1,"oGoalUi"]},outputs:{pause:"pause",continue:"continue",advance:"advance",dismiss:"dismiss"},decls:1,vars:1,consts:[[1,"tour-progress-goal-card"],[1,"tour-progress-goal-card-label"],[1,"product-tour-step-chip-feature"],[1,"product-tour-step-instruction"],[1,"product-tour-step-overview"],[1,"tour-progress-goal-card-actions"],[1,"tour-progress-goal-card-actions-left"],["size","small","fill","clear","color","warning"],[1,"tour-progress-goal-card-actions-right"],["size","small","color","success"],["size","small","fill","outline","color","success",1,"product-tour-coach-pulse"],[1,"product-tour-step-action-on-page"],["size","small","fill","clear","color","medium"],["size","small","fill","clear","color","warning",3,"click"],["slot","start","name","pause-outline","aria-hidden","true"],["size","small","color","success",3,"click"],["slot","start","name","play-outline","aria-hidden","true"],["size","small","fill","outline","color","success",1,"product-tour-coach-pulse",3,"click"],["slot","start","name","arrow-forward-outline","aria-hidden","true"],["name","arrow-down-outline","aria-hidden","true"],["size","small","fill","clear","color","medium",3,"click"],["slot","start","name","close-outline","aria-hidden","true"]],template:function(T,v){1&T&&o.nVh(0,j,14,9,"div",0),2&T&&o.vxM(v.fVisible()?0:-1)},dependencies:[d.IonButton,d.IonIcon],encapsulation:2})}}return c})()},41803(W,I,r){r.d(I,{D:()=>A});var C=r(99019),p=r(22281),d=r(22618),P=r(50817);let A=(()=>{class m{constructor(){this.productTourCoach=(0,C.hFB)(""),this.oGoalUi=(0,C.hFB)(null),this._el=(0,p.WQX)(d.aKT),(0,P.QZ)(()=>{const o=this.productTourCoach(),D=this.oGoalUi();if(!o||!D?.fActive||!D.oPulse)return void(0,P.O8)(()=>this._el.nativeElement.classList.remove("product-tour-coach-pulse"));const R=D.oPulse.sPulseId===o;(0,P.O8)(()=>{this._el.nativeElement.classList.toggle("product-tour-coach-pulse",R)})})}ngOnDestroy(){this._el.nativeElement.classList.remove("product-tour-coach-pulse")}static{this.\u0275fac=function(D){return new(D||m)}}static{this.\u0275dir=d.FsC({type:m,selectors:[["","productTourCoach",""]],inputs:{productTourCoach:[1,"productTourCoach"],oGoalUi:[1,"oGoalUi"]}})}}return m})()},47607(W,I,r){r.d(I,{CreateEstimatePage:()=>$});var C=r(86330),p=r(22281),d=r(10036),P=r(26185),A=r(37666),m=r(72730),_=r(61259),o=r(36069),D=r(591),R=r(33026),O=r(40200),S=r(73767),M=r(89471),k=r(87747),U=r(41803),e=r(22618);const j=l=>({sFieldName:"s_name_last",sOrder:l}),F=l=>[l],c=(l,h)=>["/t",l,"d",h,"estimates"],y=(l,h)=>h.id;function a(l,h){if(1&l){const t=e.RV6();e.j41(0,"app-tour-progress-goal-card",27),e.bIt("pause",function(){p.eBV(t);const n=e.XpG();return p.Njj(n.onGoalPauseAsync())})("continue",function(){p.eBV(t);const n=e.XpG();return p.Njj(n.onGoalContinueAsync())}
1)("dismiss",function(){p.eBV(t);const n=e.XpG();return p.Njj(n.onGoalDismissAsync())}),e.k0s()}if(2&l){const t=e.XpG();e.Y8G("oGoalUi",t.oGoalUi())}}function T(l,h){1&l&&e.nrm(0,"ion-datetime",28),2&l&&e.Y8G("firstDayOfWeek",0)("showDefaultButtons",!0)}function v(l,h){1&l&&e.nrm(0,"ion-datetime",29),2&l&&e.Y8G("firstDayOfWeek",0)("showDefaultButtons",!0)}function J(l,h){if(1&l&&(e.j41(0,"span"),e.EFF(1),e.k0s()),2&l){const t=e.XpG();e.R7$(),e.JRh(t.selectedCustomer.getPreferredName())}}function V(l,h){1&l&&(e.j41(0,"span"),e.EFF(1,"Select Customer"),e.k0s())}function w(l,h){if(1&l&&(e.j41(0,"ion-select-option",17),e.EFF(1),e.k0s()),2&l){let t;const i=h.$implicit,n=e.XpG();e.Y8G("value",i),e.R7$(),e.E5c(" ",i.sJobNumber," - ",(null==i.dtTop||null==(t=i.dtTop.setZone((null==n.activatedRouteDivision?null:n.activatedRouteDivision.sTimezone)??"UTC"))?null:t.toLocaleString(n.DateTime.DATE_MED_WITH_WEEKDAY))??"None"," (",i.sJobStatus(),") ")}}function K(l,h){if(1&l&&(e.j41(0,"div",22)(1,"ion-text",21),e.EFF(2,"After the estimate is created, we will add the item."),e.k0s(),e.nrm(3,"br"),e.j41(4,"b"),e.EFF(5),e.k0s(),e.EFF(6),e.k0s()),2&l){let t,i;const n=e.XpG();e.R7$(5),e.JRh(null==(t=n.addPriceBookItem())?null:t.sItemNumber),e.R7$(),e.SpI(" ",null==(i=n.addPriceBookItem())?null:i.sName," ")}}let $=(()=>{class l extends P.X{constructor(){super(),this.arrCustomerWhere=[],this.arrJob=[],this.selectedCustomer=null,this.selectedJob=null,this.selectedServiceAddress=null,this.addPriceBookItem=(0,p.vPA)(null),this.funcCustomerSearchDisplay=t=>t?.getPreferredName()??"UNK",(0,o.d)({closeOutline:D.xfX,checkmarkOutline:D.g1L}),this.fgCreate=new _.gE({fcEstimateDateTime:new _.MJ(null,{updateOn:"change",validators:[_.k0.required]}),fcEstimateExpiresDateTime:new _.MJ(null,{updateOn:"change",validators:[_.k0.required]}),fcSelectCustomer:new _.MJ(null,{updateOn:"change",validators:[_.k0.required]}),fcSelectJob:new _.MJ(null,{updateOn:"change",validators:[]}),fcEstimateNumber:new _.MJ(null,{updateOn:"change",validators:[_.k0.required]})})}ngOnDestroy(){super.ngOnDestroy()}ionViewWillLeave(){super.ionViewWillLeave()}doReloadDynamicData(t,i,n){var s=this;return(0,C.A)(function*(){if(!t)return;const f=s.fTourProgressGoalActive();if(s.arrCustomerWhere=m._Au.arrCustomerWhere(s.activatedRouteDivisionId),s.fgCreate.get("fcEstimateDateTime").setValue(m.o5o.dtNowInTz(t.sTimezone)),s.fgCreate.get("fcEstimateExpiresDateTime").setValue(m.o5o.dtNowInTz(t.sTimezone).plus({days:30})),yield s.setDefaultEstimateNumberAsync(),f&&t)try{const u=yield s.progressGoalSvc.loadTourDivisionStateAsync(t);if(!u.jobId)throw new Error("Walkthrough job not found.");if(yield s.applyJobPrefillForEstimateAsync(u.jobId))return}catch(u){return console.error("Product tour create estimate: walkthrough job not available.",u),void(yield s.presentToastDanger("Walkthrough job is not ready. Continue from Home."))}else if(n.has("jobId")){const u=n.get("jobId");if(yield s.applyJobPrefillForEstimateAsync(u))return}else n.has("customerId")&&(s.selectedCustomer=yield s.repoSvc.livePersonRepo.getAsync(n.get("customerId")),s.fgCreate.get("fcSelectCustomer")?.setValue([s.selectedCustomer]),yield s.loadSelectedCustomerJobs());if(n.has("addPriceBookItem")){const u=n.get("addPriceBookItem"),E=yield s.repoSvc.livePriceBookItemRepo.getAsync(u);s.addPriceBookItem.set(E)}})()}applyJobPrefillForEstimateAsync(t){var i=this;return(0,C.A)(function*(){if(i.selectedJob=yield i.repoSvc.liveJobRepo.getAsync(t),i.selectedJob?.customerPersonId){if(i.selectedCustomer=yield i.repoSvc.livePersonRepo.getAsync(i.selectedJob.customerPersonId),!i.selectedCustomer)return console.error("Product tour create estimate: job customer not found in repo.",{jobId:i.selectedJob.id,customerPersonId:i.selectedJob.customerPersonId}),yield i.presentToastDanger("Walkthrough customer is not ready. Continue from Home."),!0;i.fgCreate.get("fcSelectCustomer")?.setValue([i.selectedCustomer]),yield i.loadSelectedCustomerJobs()}const n=yield i.findExistingEstimateForJobAsync(t);return!!n&&(yield i.navigateAfterEstimateCreatedAsync(n,{fNewEstimate:!1}),!0)})()}setDefaultEstimateNumberAsync(){var t=this;return(0,C.A)(function*(){if(!t.activatedRouteTenantId||!t.activatedRouteDivision)return;t.invalidateEstimateListCache();const i=yield m.HMM.getNextEstimateNumber(t.repoSvc.liveEstimateRepo,t.activatedRouteDivisionId,t.activatedRouteDivision.sTimezone);t.fgCreate.get("fcEstimateNumber").setValue(i)})()}invalidateEstimateListCache(){A.a.fShouldUseRestRepositoriesForLiveData(this.platform)&&this.repoSvc.liveEstimateRepo.invalidateAllListCaches()}fDuplicateKeyError(t){return t instanceof Error&&t.message.includes("duplicate_key")}findExistingEstimateForJobAsync(t){var i=this;return(0,C.A)(function*(){return i.invalidateEstimateListCache(),(yield i.repoSvc.liveEstimateRepo.getAllAsync("*",[{fld:"job_id",cmp:"=",val:t,log:"AND"}],[{sFieldName:"dt_created",sOrder:m.mFb.DESC}],1))[0]??null})()}findExistingEstimateByNumberAsync(t,i,n){var s=this;return(0,C.A)(function*(){s.invalidateEstimateListCache();const u=(yield s.repoSvc.liveEstimateRepo.getAllAsync("*",[{fld:"division_id",cmp:"=",val:t,log:"AND"},{fld:"s_estimate_number",cmp:"=",val:i,log:"AND"}],[{sFieldName:"dt_created",sOrder:m.mFb.DESC}],1,0,!0))[0];return u&&u.customerPersonId===n.id?u:null})()}bumpEstimateNumber(t){const i=m.wrG.incrementNumericEnd(t);return i!==t?i:`${t}-1`}insertEstimateWithRetryAsync(t,i,n,s,f,u){var E=this;return(0,C.A)(function*(){let g=E.fgCreate.get("fcEstimateNumber").value;for(let G=0;G<5;
1G++){const b=new m.HMM;if(!b.setFromArgs(t,i,n,s,g,E.environment.s_app_timezone,f,f?void 0:u))return{estimate:null,fNewEstimate:!1};try{return{estimate:yield E.repoSvc.liveEstimateRepo.insertAsync(b),fNewEstimate:!0}}catch(N){if(!E.fDuplicateKeyError(N))throw N;const L=yield E.findExistingEstimateByNumberAsync(t.id,g,s);if(L)return{estimate:L,fNewEstimate:!1};if(G>=4)throw N;const x=g;console.warn("Estimate number collision \u2014 fetching next number and retrying.",x),E.invalidateEstimateListCache(),g=yield m.HMM.getNextEstimateNumber(E.repoSvc.liveEstimateRepo,t.id,t.sTimezone),g===x&&(g=E.bumpEstimateNumber(x)),E.fgCreate.get("fcEstimateNumber").setValue(g)}}return{estimate:null,fNewEstimate:!1}})()}navigateAfterEstimateCreatedAsync(t){var i=this;return(0,C.A)(function*(n,s={}){if((s.fNewEstimate??!0)&&(i.syncSvc.schedulePushOnly(),yield i.presentToastSuccess("Estimate Created!")),i.oGoalUi()?.fActive&&i.oGoalUi()?._ctx?.sStepKey===m.IAG.ESTIMATE){const g=i.activatedRouteDivision;if(!(yield i.progressGoalSvc.quickAddFilterToEstimateAsync(g,n)))return void(yield i.presentToastWarning("Estimate created \u2014 add line items to continue."));try{n=yield i.applyTourCustomerPendingAsync(n,g)}catch(G){console.error("Tour create estimate: failed to set pending customer approval",G);const b=yield i.repoSvc.liveEstimateRepo.getAsync(n.id);!b||b.nStatus!==m.N69.CUSTOMER_PENDING&&b.nStatus!==m.N69.CUSTOMER_APPROVED?yield i.presentToastWarning("Estimate created. Pending customer approval will finish on the next step."):n=b}return yield i.reportGoalStepCompletedAsync(void 0),void(yield i.navCtrl.navigateRoot(["/t",n.tenantId,"d",n.divisionId,"estimates",n.id]))}const u={queryParams:{}},E=i.addPriceBookItem();E&&(u.queryParams={priceBookItemId:E.id}),yield i.navCtrl.navigateForward(["/t",i.activatedRouteTenantId,"d",i.activatedRouteDivisionId,"estimates",n.id,"estimate_items","create"],u)}).apply(this,arguments)}applyTourCustomerPendingAsync(t,i){var n=this;return(0,C.A)(function*(){let s=(yield n.repoSvc.liveEstimateRepo.getAsync(t.id))??t;if(s.nStatus===m.N69.CUSTOMER_PENDING||s.nStatus===m.N69.CUSTOMER_APPROVED)return s;!s.division?.sTimezone?.trim()&&i.sTimezone?.trim()&&(s.division=i),n.syncSvc.beginSuppressChangeDrivenReloads();try{const f=yield m.HMM.applyStatusTransitionAsync(s,new m.N69(m.N69.CUSTOMER_PENDING),n.repoSvc,n.environment.s_app_timezone);return n.syncSvc.schedulePushOnly(),f}finally{n.syncSvc.endSuppressChangeDrivenReloads()}})()}selectCustomerChanged(t){var i=this;return(0,C.A)(function*(){i.selectedCustomer=!t||t.length<=0?null:t[0];const n=i.fgCreate.get("fcSelectJob").value;n&&n.customerPersonId!==i.selectedCustomer?.id?(i.selectedJob=null,i.fgCreate.get("fcSelectJob").setValue(null)):i.selectedJob=n,yield i.loadSelectedCustomerJobs()})()}loadSelectedCustomerJobs(){var t=this;return(0,C.A)(function*(){if(!t.selectedCustomer)return t.arrJob=[],void t.fgCreate.get("fcSelectJob").setValue(null);const i=[{fld:"customer_person_id",cmp:"=",val:t.selectedCustomer.id,log:"AND"}];t.arrJob=yield t.repoSvc.liveJobRepo.getAllAsync("*",i,[{sFieldName:"dt_top",sOrder:m.mFb.DESC}],15),t.selectedJob&&t.fgCreate.get("fcSelectJob").setValue(t.selectedJob)})()}onSubmitAsync(){var t=this;return(0,C.A)(function*(){if(t.fgCreate.invalid)t.logFormValidationErrors(t.fgCreate);else if(t.activatedRouteDivision){yield t.setSaving("Creating estimate...");try{const i=O.c9.fromISO(t.fgCreate.get("fcEstimateDateTime").value),n=O.c9.fromISO(t.fgCreate.get("fcEstimateExpiresDateTime").value),s=t.fgCreate.get("fcSelectCustomer").value[0],f=t.fgCreate.get("fcSelectJob").value;if(f&&!f.site?.physicalAddressId&&(yield m._OA.loadListRelationsAsync([f],t.repoSvc)),t.serviceAddressField?.fJobMissingServiceAddress()||f&&!f.site?.physicalAddressId)return void(yield t.presentToastDanger("Linked job has no site address."));if(f?.id){const g=yield t.findExistingEstimateForJobAsync(f.id);if(g)return void(yield t.navigateAfterEstimateCreatedAsync(g,{fNewEstimate:!1}))}const{estimate:u,fNewEstimate:E}=yield t.insertEstimateWithRetryAsync(t.activatedRouteDivision,i,n,s,f,t.selectedServiceAddress);if(!u)return console.error("Estimate failed create!"),void(yield t.presentToastDanger("Could not create estimate."));yield t.navigateAfterEstimateCreatedAsync(u,{fNewEstimate:E})}catch(i){console.error("Create estimate failed",i),yield t.presentToastDanger("Could not create estimate. Try again.")}finally{yield t.setNotSaving()}}else console.error("Activated route division is not set.")})()}static{this.\u0275fac=function(i){return new(i||l)}}static{this.\u0275cmp=e.VBU({type:l,selectors:[["app-create-estimate"]],viewQuery:function(i,n){if(1&i&&e.GBs(M.t,5),2&i){let s;e.mGM(s=e.lsd())&&(n.serviceAddressField=s.first)}},features:[e.Vt3],decls:61,vars:28,consts:[["selectCustomerModal",""],[3,"translucent"],[3,"fullscreen"],["collapse","condense"],["slot","start"],["size","large"],["size-sm","8","offset-sm","2"],[3,"oGoalUi"],[1,"inline-form-actions-spacer",3,"ngSubmit","formGroup"],["lines","none"],["datetime","
1ionDatetimeDtTop"],[3,"keepContentsMounted"],["datetime","ionDatetimeDtExpires"],["lines","none",3,"click"],[1,"ion-text-start"],["formControlName","fcSelectCustomer","sTitle","Search Customers",3,"selectedChanged","searchRepoSvc","arrBaseWhere","arrOrderBy","funcDisplay"],["label","Job","label-placement","stacked","formControlName","fcSelectJob","interface","popover","justify","space-between",3,"ionChange","compareWith"],[3,"value"],[3,"serviceAddressChange","customer","job","division","initialAddress"],["type","text","label","Estimate Number","label-placement","stacked","errorText","Required","formControlName","fcEstimateNumber",1,"ion-text-end"],[1,"ion-text-center"],["color","primary"],[1,"ion-text-center","mt4"],["type","button","color","danger","expand","block","fill","outline",3,"routerLink"],["slot","start","name","close-outline"],["type","submit","color","success","expand","block","fill","outline","productTourCoach","create-estimate",3,"disabled","oGoalUi"],["slot","start","name","checkmark-outline"],[3,"pause","continue","dismiss","oGoalUi"],["presentation","date","id","ionDatetimeDtTop","formControlName","fcEstimateDateTime",3,"firstDayOfWeek","showDefaultButtons"],["presentation","date","id","ionDatetimeDtExpires","formControlName","fcEstimateExpiresDateTime",3,"firstDayOfWeek","showDefaultButtons"]],template:function(i,n){if(1&i){const s=e.RV6();e.j41(0,"ion-header",1)(1,"ion-toolbar")(2,"ion-title"),e.EFF(3,"Create Estimate"),e.k0s()()(),e.j41(4,"ion-content",2)(5,"ion-header",3)(6,"ion-toolbar"),e.nrm(7,"ion-buttons",4),e.j41(8,"ion-title",5),e.EFF(9,"Create Estimate"),e.k0s()()(),e.j41(10,"ion-grid")(11,"ion-row")(12,"ion-col",6),e.nVh(13,a,1,1,"app-tour-progress-goal-card",7),e.j41(14,"form",8),e.bIt("ngSubmit",function(){return p.eBV(s),p.Njj(n.onSubmitAsync())}),e.j41(15,"ion-card")(16,"ion-card-content")(17,"ion-list")(18,"ion-item",9)(19,"ion-label"),e.EFF(20,"Estimate Date"),e.k0s(),e.nrm(21,"ion-datetime-button",10),e.j41(22,"ion-modal",11),e.DNE(23,T,1,2,"ng-template"),e.k0s()(),e.j41(24,"ion-item",9)(25,"ion-label"),e.EFF(26,"Estimate Expires"),e.k0s(),e.nrm(27,"ion-datetime-button",12),e.j41(28,"ion-modal",11),e.DNE(29,v,1,2,"ng-template"),e.k0s()(),e.j41(30,"ion-item",13),e.bIt("click",function(){p.eBV(s);const u=e.sdS(37);return p.Njj(u.open())}),e.j41(31,"ion-label",14),e.EFF(32," Customer"),e.nrm(33,"br"),e.nVh(34,J,2,1,"span")(35,V,2,0,"span"),e.k0s()(),e.j41(36,"app-searchable-select-modal",15,0),e.bIt("selectedChanged",function(u){return p.eBV(s),p.Njj(n.selectCustomerChanged(u))}),e.k0s(),e.j41(38,"ion-item")(39,"ion-select",16),e.bIt("ionChange",function(u){return p.eBV(s),p.Njj(n.selectedJob=u.detail.value)}),e.j41(40,"ion-select-option",17),e.EFF(41,"None"),e.k0s(),e.Z7z(42,w,2,4,"ion-select-option",17,y),e.k0s()(),e.j41(44,"app-service-address-field",18),e.bIt("serviceAddressChange",function(u){return p.eBV(s),p.Njj(n.selectedServiceAddress=u)}),e.k0s(),e.j41(45,"ion-item",9),e.nrm(46,"ion-input",19),e.k0s()()()(),e.j41(47,"div",20)(48,"ion-text",21),e.EFF(49,"Complete all required information to continue."),e.k0s()(),e.nVh(50,K,7,2,"div",22),e.j41(51,"ion-grid")(52,"ion-row")(53,"ion-col")(54,"ion-button",23),e.nrm(55,"ion-icon",24),e.EFF(56," Cancel "),e.k0s()(),e.j41(57,"ion-col")(58,"ion-button",25),e.nrm(59,"ion-icon",26),e.EFF(60," Create "),e.k0s()()()()()()()()()}if(2&i){let s;e.Y8G("translucent",!0),e.R7$(4),e.Y8G("fullscreen",!0),e.R7$(9),e.vxM(null!=(s=n.oGoalUi())&&s.fActive?13:-1),e.R7$(),e.Y8G("formGroup",n.fgCreate),e.R7$(8),e.Y8G("keepContentsMounted",!0),e.R7$(6),e.Y8G("keepContentsMounted",!0),e.R7$(6),e.vxM(n.selectedCustomer?34:35),e.R7$(2),e.Y8G("searchRepoSvc",n.personRepo)("arrBaseWhere",n.arrCustomerWhere)("arrOrderBy",e.eq3(23,F,e.eq3(21,j,n.OrderBy.ASC)))("funcDisplay",n.funcCustomerSearchDisplay),e.R7$(3),e.Y8G("compareWith",n.compareById),e.R7$(),e.Y8G("value",null),e.R7$(2),e.Dyx(n.arrJob),e.R7$(2),e.Y8G("customer",n.selectedCustomer)("job",n.selectedJob)("division",n.activatedRouteDivision)("initialAddress",n.selectedServiceAddress),e.R7$(6),e.vxM(n.addPriceBookItem()?50:-1),e.R7$(4),e.Y8G("routerLink",e.l_i(25,c,n.activatedRouteTenantId,n.activatedRouteDivisionId)),e.R7$(4),e.Y8G("disabled",n.fgCreate.invali
1d)("oGoalUi",n.oGoalUi())}},dependencies:[d.IonContent,d.IonHeader,d.IonTitle,d.IonToolbar,_.YN,_.qT,_.BC,_.cb,d.IonButton,d.IonButtons,d.IonCard,d.IonCardContent,d.IonCol,d.IonDatetime,d.IonDatetimeButton,d.IonGrid,d.IonIcon,d.IonInput,d.IonItem,d.IonLabel,d.IonList,d.IonModal,d.IonRow,d.IonSelect,d.IonSelectOption,d.IonText,_.X1,_.j4,_.JD,S.H,R.Wk,k.U,U.D,M.t],encapsulation:2})}}return l})()}}]);
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.