1(self.webpackChunkapp=self.webpackChunkapp||[]).push([[8768],{78768(c,m,t){"use strict";t.d(m,{TerminalDetailsPageModule:()=>d});var o=t(31635),a=t(23214),i=t(16213),y=t(89417),h=t(64211),p=t(25207);var f,N=t(96214),R=t.n(N),u=t(18561),v=t(36388),g=t(50678),C=t(7575),x=t(14475),b=t(12681),M=t(26337),S=t(26448),O=t(80610);let l=(class{constructor(n,e,s,I){this.mapService=n,this.activatedRoute=e,this.analytics=s,this.telemetryUtility=I,this.title="",this.street="",this.city="",this.state="",this.postalCode="",this.phoneNumber="",this.shouldShowReps=!1,this.shouldShowDialNumbers=!1,this.contactSections={},this.dialSections={},this.subscriptions$=new C.a,this.locationMarker=new x.Marker({anchor:"center"}),localStorage.setItem("contact-selected-tab","2"),this.subscriptions$.sink=this.activatedRoute.params.subscribe(()=>{this.currentTerminal=JSON.parse(localStorage.getItem("my-selected_terminal"))})}ionViewDidEnter(){localStorage.setItem("contact-selected-tab","2")}ngOnInit(){this.currentTerminal&&(this.terminalAddress=this.currentTerminal.location,this.title=this.currentTerminal.name+", "+this.currentTerminal.location.state,this.street=this.currentTerminal.location.street,this.city=this.currentTerminal.location.city,this.state=this.currentTerminal.location.state,this.postalCode=this.currentTerminal.location.zipCode,this.phoneNumber=this.currentTerminal.phoneNumber,this.groupContactsBySection(),this.groupDialSections());const n={container:this.mapElement.nativeElement,zoom:10};this.mapService.initMap(n).then(e=>{this.showTerminalMap(e)}),this.shouldShowReps=!!this.currentTerminal.contacts?.length}groupContactsBySection(){if(this.contactSections={},Array.isArray(this.currentTerminal?.contacts)&&this.currentTerminal.contacts.length){for(const n of this.currentTerminal.contacts)if(n?.name){const e=n.sectionName||"Driver Service Representatives";this.contactSections[e]=this.contactSections[e]||[],this.contactSections[e].push(n)}this.shouldShowReps=!0}else this.shouldShowReps=!1}groupDialSections(){if(this.dialSections={},Array.isArray(this.currentTerminal?.dialSections)&&this.currentTerminal.dialSections.length){for(const n of this.currentTerminal.dialSections)if(n?.sectionName){const e=n.sectionName??"Driver Service Department Selections";this.dialSections[e]=this.dialSections[e]||[];for(const s of n.options)this.dialSections[e].push(s)}this.shouldShowDialNumbers=!0}else this.shouldShowDialNumbers=!1}showTerminalMap(n){n.on("load",()=>{this.locationMarker.setLngLat([this.currentTerminal.location.latitude,this.currentTerminal.location.longitude]).addTo(n),n.setCenter([this.currentTerminal.location.latitude,this.currentTerminal.location.longitude])})}trackClickEvent(){this.analytics.trackEvent("User","clicked_terminals_tab_phone_call",`Clicked Terminals Tab ${this.title} Phone Call`),this.telemetryUtility.recordTelemetry(O.p.CLICK_DEPARTMENT_ITEM)}callRep(n){const s="tel:"+n.substring(0,14).replaceAll(/\D/g,"");window.open(s,"_system")}callTerminal(n){this.trackClickEvent();const e="tel:"+n.replaceAll(/\D/g,"");window.open(e,"_system")}ngOnDestroy(){this.subscriptions$.unsubscribe()}static#t=f=()=>(this.ctorParameters=()=>[{type:u.u},{type:v.nX},{type:g.c},{type:S.s}],this.propDecorators={mapElement:[{type:a.Uct,args:["terminalMap",{static:!0}]}]},this)},f());l=(0,o.Cg)([(0,a.uAl)({selector:"app-terminal-details",template:'<div class="ion-terminal-details-page">\n <ion-toolbar class="ion-safe-area-top" mode="ios">\n <ion-buttons slot="start">\n <ion-back-button class="back-btn" defaultHref="/contact?tab=2" text=""></ion-back-button>\n </ion-buttons>\n <ion-title class="edge-value">{{title}}</ion-title>\n </ion-toolbar>\n <div class="map-panel">\n <div class="map" #terminalMap></div>\n </div>\n \n <ion-content>\n <ion-card>\n <ion-card-header>\n <ion-card-title>Terminal Details</ion-card-title>\n </ion-card-header>\n <ion-card-content class="ion-no-padding">\n <ion-item lines="none">\n <ion-label class="label">\n <div class="terminal-details-text"> {{street}}. {{city}}, {{state}} {{postalCode}} </div>\n <div> {{phoneNumber | phoneFormat}} </div>\n </ion-label>\n <ion-button size="sm" slot="end" fill="solid" (click)=\'callTerminal(phoneNumber)\' (keydown.enter)=\'callTerminal(phoneNumber)\'>\n <fa-icon [icon]="[\'fas\', \'phone\']" size="sm"></fa-icon>\n </ion-button>\n </ion-item>\n <div *ngFor="let dialSection of dialSections | keyvalue">\n <div *ngIf="shouldShowDialNumbers">\n <div *ngFor="let dialSectionOption of dialSection.value" class="dialSection-item">\n <ion-item lines="none" *ngIf="dialSectionOption" class="item-section">\n <ion-label>\n <div class="value label-text"><strong>{{ dialSectionOption.option }}</strong> - {{ dialSectionOption.action }}</div>\n </ion-label>\n </ion-item>\n </div>\n </div>\n </div>\n </ion-card-content>\n </ion-card>\n\n\n <ion-card *ngFor="let section of contactSections | keyvalue">\n <ion-card-header>\n <ion-card-title>{{ section.key }}</ion-card-title>\n </ion-card-header>\n <ion-card-content class="ion-no-padding">\n <div *ngIf="shouldShowReps">\n <div *ngFor="let contact of section.value">\n <ion-item lines="none" *ngIf="contact">\n <ion-label>\n <div class="label"> {{contact?.name}} </div>\n <div class="value"> {{contact?.phoneNumber | phoneFormat}} </div>\n </ion-label>\n <ion-button size="sm" slot="end" fill="solid" (click)="callRep(contact?.phoneNumber)" (keydown.enter)="c
1allRep(contact?.phoneNumber)">\n <fa-icon [icon]="[\'fas\', \'phone\']" size="sm"></fa-icon>\n </ion-button>\n </ion-item>\n </div>\n </div>\n </ion-card-content>\n </ion-card>\n </ion-content>\n</div>',imports:[h.bv,b.aY,i.Sq,i.bT,i.lG,M.U],styles:[R()]}),(0,o.Sn)("design:paramtypes",[u.u,v.nX,g.c,S.s])],l);const P=[{path:"",component:l}];let r=class{};r=(0,o.Cg)([(0,a.UQu)({imports:[p.iI.forChild(P)],exports:[p.iI]})],r);var A=t(44661);let d=class{};d=(0,o.Cg)([(0,a.UQu)({imports:[i.MD,y.YN,h.bv,r,A.u,b.dX,l],providers:[]})],d)},96214(c,m,t){var o=t(8564),i=t(98557)(o);i.push([c.id,"ion-content {\n --background: var(--canvas-background);\n}\n\n.ion-terminal-details-page {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.map {\n width: 100% !important;\n height: 100% !important;\n}\n\n.map-panel {\n width: 100%;\n height: 230px !important;\n border-bottom: 1px solid #ccc;\n border-top: 1px solid #ccc;\n}\n\nion-card-header {\n border-bottom: 1px solid black;\n}\n\nfa-icon {\n font-size: 25px;\n color: #333333;\n}\n\n.label {\n font-weight: bold;\n color: #666666;\n}\n\n.value {\n color: #333333;\n}\n\nion-button {\n --background: #eee;\n}\n\n.terminal-details-text {\n padding-bottom: 10px;\n}\n\n.dialSection-item .item-section {\n --padding-top: 0px;\n --padding-bottom: 0px;\n --min-height: 37px;\n}\n.dialSection-item .label-text {\n font-size: 1rem;\n line-height: 1;\n}",""]),c.exports=i.toString()}}]);
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.