{"version":3,"file":"main.77834b6b4318e8d5.js","mappings":"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","sources":["./src/app/admin-dealer/admin-dealer.component.ts","./src/app/admin-dealer/admin-dealer.component.html","./src/app/admin-home/admin-home.component.ts","./src/app/admin-home/admin-home.component.html","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/auto-login/auto-login.component.ts","./src/app/auto-login/auto-login.component.html","./src/app/cancel-confirm/cancel-confirm.component.ts","./src/app/cancel-confirm/cancel-confirm.component.html","./src/app/cancel/cancel.component.ts","./src/app/cancel/cancel.component.html","./src/app/contact/contact.component.ts","./src/app/contact/contact.component.html","./src/app/data/customer.ts","./src/app/data/dealer.ts","./src/app/data/price-tier.ts","./src/app/enroll-confirm/enroll-confirm.component.ts","./src/app/enroll-confirm/enroll-confirm.component.html","./src/app/enroll/enroll.component.ts","./src/app/enroll/enroll.component.html","./src/app/faq/faq.component.ts","./src/app/faq/faq.component.html","./src/app/home/home.component.ts","./src/app/home/home.component.html","./src/app/report-enrolled/report-enrolled.component.ts","./src/app/report-enrolled/report-enrolled.component.html","./src/app/report-monthly-revenue/report-monthly-revenue.component.ts","./src/app/report-monthly-revenue/report-monthly-revenue.component.html","./src/app/report-tiers/report-tiers.component.ts","./src/app/report-tiers/report-tiers.component.html","./src/app/reports/reports.component.ts","./src/app/reports/reports.component.html","./src/app/services/customer.service.ts","./src/app/services/dealer.service.ts","./src/app/services/ford.service.ts","./src/app/services/funcs.service.ts","./src/app/services/price-tier.service.ts","./src/app/services/report.service.ts","./src/app/status-enrolled/status-enrolled.component.ts","./src/app/status-enrolled/status-enrolled.component.html","./src/app/tiers/tiers.component.ts","./src/app/tiers/tiers.component.html","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { Dealer, DEALERS, DealerCurrent } from '../data/dealer';\nimport { Router } from '@angular/router';\nimport { DealerService } from '../services/dealer.service';\nimport { FuncsService } from '../services/funcs.service';\n\n@Component({\n selector: 'app-admin-dealer',\n templateUrl: './admin-dealer.component.html',\n styleUrls: ['./admin-dealer.component.css']\n})\n\nexport class AdminDealerComponent {\n public loading = \"\";\n dealers = DEALERS;\n displayedDealers = this.dealers;\n search = \"\";\n\n constructor(\n private dealerService: DealerService,\n private router: Router,\n private funcs: FuncsService\n ) {}\n\n ngOnInit(): void {\n this.funcs.checkAdmin();\n this.loading = \"Loading...\";\n\n this.dealerService.getDealers().subscribe(dealers => {\n this.dealers = dealers;\n this.displayedDealers = this.dealers;\n this.loading = \"\";\n });\n this.dealers = this.filterDealers();\n }\n\n ngAfterViewInit(): void {\n document.getElementById(\"admin-dealer\")?.focus();\n }\n\n displayDealers() {\n this.displayedDealers = this.filterDealers();\n }\n\n private filterDealers = () => {\n return this.dealers.filter(this.isDealer);\n };\n\n private isDealer = (d: Dealer) => {\n var ciSearch = this.search.toLowerCase();\n var ciName = d.name.toLowerCase();\n return (d.pa_code.indexOf(ciSearch) > -1 || ciName.indexOf(ciSearch) > -1) || !ciSearch;\n };\n \n fly(d: Dealer) {\n // DealerCurrent.pa_code = d.pa_code;\n // DealerCurrent.name = d.name;\n // DealerCurrent.tech_count = d.tech_count;\n // DealerCurrent.subscribed = d.subscribed;\n // DealerCurrent.active = d.active;\n\n // // persist data\n // var dealerStore = {\n // pa_code: DealerCurrent.pa_code,\n // name: DealerCurrent.name,\n // tech_count: DealerCurrent.tech_count,\n // subscribed: DealerCurrent.subscribed,\n // active: DealerCurrent.active\n // };\n // window.localStorage.setItem(\"dealer\", JSON.stringify(dealerStore));\n this.funcs.setDealer(d);\n this.router.navigateByUrl('/status-enrolled');\n };\n}\n","

Admin - Log in as User

\n\n
\n

\n
\n\n
\n

{{loading}}

\n \n \n \n \n \n \n \n \n \n \n
PA CodeNameTechs
{{dealer.pa_code}}{{dealer.name}}{{dealer.tech_count}}
\n
\n","import { Component } from '@angular/core';\nimport { FuncsService } from '../services/funcs.service';\n\n@Component({\n selector: 'app-home-reports',\n templateUrl: './admin-home.component.html',\n styleUrls: ['./admin-home.component.css']\n})\nexport class AdminHomeComponent {\n constructor(\n private funcs: FuncsService\n ) {}\n\n ngOnInit() {\n this.funcs.checkAdmin();\n }\n\n logOut() {\n this.funcs.logOutCustomer();\n }\n}\n","

Admin

\n\n
\n

Log in as Dealer

\n

Manage Prices

\n
\n\n
\n

Reports

\n

Dealers

\n \n

Monthly Revenue

\n

Number of Dealers in Tiers

\n
\n\n
\n

\n
","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { HomeComponent } from './home/home.component';\nimport { StatusEnrolledComponent } from './status-enrolled/status-enrolled.component';\nimport { AdminDealerComponent } from './admin-dealer/admin-dealer.component';\nimport { AdminHomeComponent } from './admin-home/admin-home.component';\nimport { CancelComponent } from './cancel/cancel.component';\nimport { CancelConfirmComponent } from './cancel-confirm/cancel-confirm.component';\nimport { ContactComponent } from './contact/contact.component';\nimport { EnrollComponent } from './enroll/enroll.component';\nimport { EnrollConfirmComponent } from './enroll-confirm/enroll-confirm.component';\nimport { FaqComponent } from './faq/faq.component';\nimport { ReportsComponent } from './reports/reports.component';\nimport { ReportTiersComponent } from './report-tiers/report-tiers.component';\nimport { ReportMonthlyRevenueComponent } from './report-monthly-revenue/report-monthly-revenue.component';\nimport { ReportEnrolledComponent } from './report-enrolled/report-enrolled.component';\nimport { AutoLoginComponent } from './auto-login/auto-login.component';\nimport { TiersComponent } from './tiers/tiers.component';\n\nconst routes: Routes = [\n {path: '', redirectTo: '/home', pathMatch: 'full'},\n {path: 'home', component: HomeComponent},\n {path: 'status-enrolled', component: StatusEnrolledComponent},\n {path: 'admin-dealer', component: AdminDealerComponent},\n {path: 'admin-home', component: AdminHomeComponent},\n {path: 'cancel', component: CancelComponent},\n {path: 'cancel-confirm', component: CancelConfirmComponent},\n {path: 'contact', component: ContactComponent},\n {path: 'enroll', component: EnrollComponent},\n {path: 'enroll-confirm', component: EnrollConfirmComponent},\n {path: 'faq', component: FaqComponent},\n {path: 'reports', component: ReportsComponent},\n {path: 'report-tiers', component: ReportTiersComponent},\n {path: 'report-monthly-revenue', component: ReportMonthlyRevenueComponent},\n {path: 'report-enrolled', component: ReportEnrolledComponent},\n {path: 'auto-login', component: AutoLoginComponent},\n {path: 'tiers', component: TiersComponent}\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }","import { Component } from '@angular/core';\nimport { FuncsService } from './services/funcs.service';\nimport { Customer, CustomerCurrent } from './data/customer';\nimport { environment } from '../environments/environment';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n title = 'IDS Enrollment';\n user_name = \"\";\n full_name = \"\";\n dealer = \"\";\n navClass = \"\";\n prod: boolean = environment.production;\n\n constructor(\n private funcs: FuncsService\n ) {}\n\n ngOnInit() {\n this.funcs.currentCustomer(CustomerCurrent);\n if (CustomerCurrent) {\n this.user_name = CustomerCurrent.username;\n this.full_name = CustomerCurrent.name;\n this.dealer = CustomerCurrent.pa_code;\n }\n }\n\n logout(): void {\n this.funcs.logOutCustomer();\n }\n showNav() {\n this.navClass = (!this.navClass) ? \"active\" : \"\";\n }\n closeNavIfOpen(): void {\n this.navClass = \"\";\n }\n}","
\n
\n \n
\n

{{title}} (UAT)

\n

{{user_name}}

\n
\n \n
\n\n
\n\n
\n\n\n
\n","import { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { HttpClientModule } from '@angular/common/http';\nimport { FormsModule } from '@angular/forms';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport {MatIconModule} from '@angular/material/icon';\nimport { HomeComponent } from './home/home.component';\nimport { AdminDealerComponent } from './admin-dealer/admin-dealer.component';\nimport { AdminHomeComponent } from './admin-home/admin-home.component';\nimport { CancelComponent } from './cancel/cancel.component';\nimport { CancelConfirmComponent } from './cancel-confirm/cancel-confirm.component';\nimport { ContactComponent } from './contact/contact.component';\nimport { EnrollComponent } from './enroll/enroll.component';\nimport { EnrollConfirmComponent } from './enroll-confirm/enroll-confirm.component';\nimport { FaqComponent } from './faq/faq.component';\nimport { ReportsComponent } from './reports/reports.component';\nimport { StatusEnrolledComponent } from './status-enrolled/status-enrolled.component';\nimport { ReportTiersComponent } from './report-tiers/report-tiers.component';\nimport { ReportMonthlyRevenueComponent } from './report-monthly-revenue/report-monthly-revenue.component';\nimport { ReportEnrolledComponent } from './report-enrolled/report-enrolled.component';\nimport { AutoLoginComponent } from './auto-login/auto-login.component';\nimport {TiersComponent } from './tiers/tiers.component';\n\n@NgModule({\n declarations: [\n AppComponent,\n HomeComponent,\n AdminDealerComponent,\n AdminHomeComponent,\n CancelComponent,\n CancelConfirmComponent,\n ContactComponent,\n EnrollComponent,\n EnrollConfirmComponent,\n FaqComponent,\n ReportsComponent,\n StatusEnrolledComponent,\n ReportTiersComponent,\n ReportMonthlyRevenueComponent,\n ReportEnrolledComponent,\n AutoLoginComponent,\n TiersComponent\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n MatIconModule,\n HttpClientModule,\n FormsModule\n ],\n providers: [],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'app-auto-login',\n templateUrl: './auto-login.component.html',\n styleUrls: ['./auto-login.component.css']\n})\nexport class AutoLoginComponent {\n dealer = \"\";\n key = \"\";\n\n constructor(\n private route: ActivatedRoute\n ) {}\n\n ngOnInit(): void {\n this.dealer = this.route.snapshot.queryParamMap.get('dealer') || '';\n this.key = this.route.snapshot.queryParamMap.get('key') || '';\n\n console.log(this.dealer, this.key);\n\n // if ([\"E\", \"U\", \"A\"].indexOf(this.queryEnrolled) > -1) {\n // this.enrolled = this.queryEnrolled;\n // }\n // this.dealerService.getDealers().subscribe(dealers => {\n // this.dealers = dealers;\n // this.loading = \"\";\n // this.displayDealers();\n // });\n }\n}\n","

Login

\n\n
\n

Authenticating from Ford site...

\n
\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-cancel-confirm',\n templateUrl: './cancel-confirm.component.html',\n styleUrls: ['./cancel-confirm.component.css']\n})\nexport class CancelConfirmComponent {\n\n}\n","

Enrollment Cancelled

\n\n
\n

You have been removed from enrollment. If you change your, you can easily re-enroll.\n

Re-enroll Now\n

(Alert Ryan by email or other way?)\n

\n","import { Component } from '@angular/core';\nimport { FordService } from '../services/ford.service';\nimport { Router } from '@angular/router';\nimport { Dealer, DealerCurrent } from '../data/dealer';\nimport { FuncsService } from '../services/funcs.service';\n\n@Component({\n selector: 'app-cancel',\n templateUrl: './cancel.component.html',\n styleUrls: ['./cancel.component.css']\n})\nexport class CancelComponent {\n dealer: Dealer = DealerCurrent;\n\n constructor(\n private fordService: FordService,\n private funcs: FuncsService,\n private _router: Router\n ) {}\n\n async ngOnInit(): Promise {\n this.funcs.currentDealer(this.dealer);\n }\n\n cancelSubscription(): void {\n var dealerCode = `${DealerCurrent.country3}${DealerCurrent.pa_code}`;\n this.fordService.deleteSubscription(dealerCode).subscribe(\n () => this._router.navigateByUrl('/status-enrolled')\n );\n }\n}\n","

Cancel Enrollment

\n\n
\n

If you cancel, dealership {{dealer.name}} {{dealer.country3}}{{dealer.pa_code}} won't be able to use the IDS (Integrated Diagnostic System) software.\n

\n

\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-contact',\n templateUrl: './contact.component.html',\n styleUrls: ['./contact.component.css']\n})\nexport class ContactComponent {\n\n}\n","

Customer Service

\n\n
\n

For IDS Software License Inquiries: 1-800-ROTUNDA (800-768-8632), option 1\n

To purchase IDS Hardware: 1-800-ROTUNDA (800-768-8632), option 2\n\n

\n","export interface Customer {\n username: string;\n pa_code: \"\";\n type: string;\n name: string;\n country: string;\n country3: string;\n role: string;\n active: string;\n reported_terminated: string;\n authenticated: string;\n}\n\nexport const Customers: Customer[] = [];\nexport const CustomerCurrent: Customer = {\n username: \"\",\n pa_code: \"\",\n type: \"\",\n name: \"\",\n country: \"\",\n country3: \"\",\n role: \"\",\n active: \"\",\n reported_terminated: \"\",\n authenticated: \"N\"\n};\n","export interface Dealer {\n pa_code: string;\n name: string;\n tech_count: number;\n country: string;\n country3: string;\n subscribed: string;\n active: string;\n}\n\nexport const DEALERS: Dealer[] = [];\nexport const DealerCurrent: Dealer =\n {pa_code: \"\", name: \"\", tech_count: 0, country: \"US\", country3: \"USA\", subscribed: \"N\", active: \"N\"}\n;","export interface PriceTier {\n qty: number;\n price: number;\n price_canadian_dollar: number;\n}\n\nexport const PRICE_TIERS: PriceTier[] = [];\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-enroll-confirm',\n templateUrl: './enroll-confirm.component.html',\n styleUrls: ['./enroll-confirm.component.css']\n})\nexport class EnrollConfirmComponent {\n\n}\n","

Enrolled

\n\n
\n

You have been successfully enrolled.\n

Enrollment Details\n

\n","import { Component } from '@angular/core';\nimport { Subscription } from '../data/subscription';\nimport { FordService } from '../services/ford.service';\nimport { Dealer, DealerCurrent } from '../data/dealer';\nimport { PriceTier } from '../data/price-tier';\nimport { PriceTierService } from '../services/price-tier.service';\nimport { Price } from '../data/price';\nimport { Router } from '@angular/router';\nimport { FuncsService } from '../services/funcs.service';\n\n@Component({\n selector: 'app-enroll',\n templateUrl: './enroll.component.html',\n styleUrls: ['./enroll.component.css']\n})\nexport class EnrollComponent {\n constructor(\n private fordService: FordService,\n private _router: Router,\n private priceTierService: PriceTierService,\n private funcs: FuncsService\n ) {}\n\n sub: Subscription = {\n createdAt: \"\",\n siteCode: \"3333\",\n maxAllowedSessions: 119,\n concurrentSessions: 12,\n expiresAt: \"\",\n status: 0\n };\n\n prices: Price = {\n per_tech: 0,\n monthly: 0\n };\n\n public price = 0;\n public monthly = 0;\n public expires = \"\";\n dealer: Dealer = DealerCurrent;\n priceTiers: PriceTier[] = [];\n \n ngOnInit(): void {\n this.funcs.currentDealer(this.dealer);\n // this.prices = this.funcs.priceByTier(this.dealer.tech_count, this.dealer.country3);\n this.priceTierService.getPriceTiers().subscribe(priceTiers => {\n this.priceTiers = priceTiers;\n this.priceTiers = this.priceTiers.sort((a, b) => {\n return a.qty - b.qty;\n });\n\n this.priceTiers.forEach(pt => {\n if (pt.qty < this.dealer.tech_count) {\n this.prices.per_tech = pt.price;\n }\n });\n this.prices.monthly = this.prices.per_tech * this.dealer.tech_count / 12;\n // console.log(this.prices);\n // this.loading = false;\n // console.log(this.priceTiers);\n });\n\n this.sub.createdAt = \"\";\n this.sub.siteCode = `${this.dealer.country3}${this.dealer.pa_code}`;\n this.sub.maxAllowedSessions = this.dealer.tech_count * 3;\n this.sub.concurrentSessions = this.dealer.tech_count;\n this.expires = (new Date('2123-01-01')).toISOString();\n this.sub.expiresAt = this.expires;\n }\n \n addSubscription(): void {\n this.fordService.addSubscription(this.sub).subscribe(\n () => this._router.navigateByUrl('/status-enrolled')\n );\n }\n}\n","

Enroll

\n\n
\n

Clicking \"Enroll Now\" below will subscribe you to the Ford Diagnostic Enrollment Program.\n

\n

\n

\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-faq',\n templateUrl: './faq.component.html',\n styleUrls: ['./faq.component.css']\n})\nexport class FaqComponent {\n\n}\n","

Frequently Asked Questions

\n\n
\n
\n
How does the new subscription model differ from the old way?\n
You won't need to enroll every year any more. \n
\n
\n","import { Component } from '@angular/core';\nimport { Customer, CustomerCurrent } from '../data/customer';\nimport { CustomerService } from '../services/customer.service';\nimport { DealerService } from '../services/dealer.service';\nimport { FuncsService } from '../services/funcs.service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-home',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.css']\n})\nexport class HomeComponent {\n username = \"\";\n password = \"\";\n message = \"\";\n\n constructor(\n private customerService: CustomerService,\n private dealerService: DealerService,\n private funcs: FuncsService,\n private router: Router\n ) {}\n\n ngOnInit() {\n this.funcs.currentCustomer(CustomerCurrent);\n if (CustomerCurrent.authenticated === \"Y\" && CustomerCurrent.role === \"ADM\") {\n this.router.navigateByUrl('/admin-home');\n return;\n }\n if (CustomerCurrent.authenticated === \"Y\") {\n this.router.navigateByUrl('/status-enrolled');\n return;\n }\n }\n\n checkPw(): void {\n this.message = \"\";\n this.customerService.getCustomerAuth(this.username, this.password).subscribe(customer => {\n if (customer && customer.authenticated === \"Y\") {\n this.funcs.setCustomer(customer);\n if (CustomerCurrent.role === \"DEALER\") {\n this.dealerService.getDealer(CustomerCurrent.pa_code).subscribe(dealer => {\n this.funcs.setDealer(dealer);\n this.router.navigateByUrl('/status-enrolled');\n });\n }\n if (CustomerCurrent.role === \"ADM\") {\n this.router.navigateByUrl('/admin-home');\n }\n } else {\n this.message = \"Incorrect username or password.\";\n }\n });\n }\n}\n","

Login

\n\n
\n

\n

\n

{{message}}

\n

\n

\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Dealer, DEALERS, DealerCurrent } from '../data/dealer';\nimport { FuncsService } from '../services/funcs.service';\nimport { Router } from '@angular/router';\nimport { DealerService } from '../services/dealer.service';\nimport { FordService } from '../services/ford.service';\n\n@Component({\n selector: 'app-report-enrolled',\n templateUrl: './report-enrolled.component.html',\n styleUrls: ['./report-enrolled.component.css']\n})\n\nexport class ReportEnrolledComponent {\n public loading = \"Loading...\";\n dealers = DEALERS;\n displayedDealers = this.dealers;\n search = \"\";\n enrolled = \"E\";\n queryEnrolled: string = \"\";\n\n constructor(\n private dealerService: DealerService,\n private router: Router,\n private route: ActivatedRoute,\n private fordService: FordService,\n private funcs: FuncsService\n ) {}\n\n ngOnInit(): void {\n this.funcs.checkAdmin();\n this.loading = \"Loading...\";\n\n this.queryEnrolled = this.route.snapshot.queryParamMap.get('enrolled') || '';\n if ([\"E\", \"U\", \"A\"].indexOf(this.queryEnrolled) > -1) {\n this.enrolled = this.queryEnrolled;\n }\n this.dealerService.getDealers().subscribe(dealers => {\n this.dealers = dealers;\n this.loading = \"\";\n this.displayDealers();\n });\n }\n\n ngAfterViewInit(): void {\n document.getElementById(\"admin-dealer\")?.focus();\n console.log(\"ngAfterViewInit\");\n }\n\n ngOnChanges() {\n // changes.prop contains the old and the new value...\n this.displayedDealers.forEach(d => {\n // console.log(d.pa_code);\n // var enrollCell: HTMLTableCellElement = document.querySelector('th[data-pa=\"d.pa_code\"]') || {};\n // enrollCell.textContent = this.getEnrollStatus();\n // d.subscribed = \"Yes\";\n // this.getSubscription(d.pa_code);\n });\n }\n\n changeRadio(eventEnroll: Event) {\n this.enrolled = (eventEnroll.target as HTMLInputElement).value;\n this.displayDealers();\n }\n\n getAllDealerStatus(): void {\n var ii = 0;\n var len = this.displayedDealers.length;\n console.log(this.displayedDealers[0]);\n for (ii = 0; ii < len; ii += 1) {\n if (this.displayedDealers[ii].subscribed == \"Y\") {\n this.getSingleDealerStatus(this.displayedDealers[ii].pa_code);\n break;\n }\n }\n }\n\n getSingleDealerStatus(pa_code: string): void {\n this.fordService.getSubscription(pa_code).subscribe(sub => {\n var dealer = this.displayedDealers.find(d => {\n return d.pa_code == pa_code;\n }) || {};\n dealer.subscribed = (sub.status == 404) ? \" - \" : \"Yes\";\n // this.sub = sub;\n // this.prices = this.funcs.priceByTier(this.dealer.tech_count, this.dealer.country3);\n\n // this.loading = false;\n // this.enrolled = new Date(this.sub.createdAt).toDateString();\n // var enrollCell: HTMLTableCellElement = document.querySelector('th[data-pa=\"d.pa_code\"]') || {};\n // enrollCell.textContent = (sub.status == 404) ? \" - \" : \"Yes\";\n // this.getAllDealerStatus();\n });\n }\n\n displayDealers() {\n this.displayedDealers = this.filterDealers();\n // this.getAllDealerStatus();\n\n }\n\n // getSubscription(pa_code: string): void {\n // this.fordService.getSubscription(pa_code).subscribe(sub => {\n // // this.sub = sub;\n // // this.prices = this.funcs.priceByTier(this.dealer.tech_count, this.dealer.country3);\n\n // // this.loading = false;\n // // this.enrolled = new Date(this.sub.createdAt).toDateString();\n // var enrollCell: HTMLTableCellElement = document.querySelector('th[data-pa=\"d.pa_code\"]') || {};\n // enrollCell.textContent = (sub.status == 404) ? \" - \" : \"Yes\";\n // });\n // }\n\n private filterDealers = () => {\n return this.dealers.filter(this.isDealer);\n };\n\n private isDealer = (d: Dealer) => {\n var ciSearch = this.search.toLowerCase();\n var ciName = d.name.toLowerCase();\n return (d.pa_code.indexOf(ciSearch) > -1 || ciName.indexOf(ciSearch) > -1) && this.isEnrolled(d);\n };\n\n private isEnrolled = (d: Dealer) => {\n if (this.enrolled === \"E\" && d.subscribed === \"Y\") {\n return true;\n }\n if (this.enrolled === \"U\" && d.subscribed === \"N\") {\n return true;\n }\n if (this.enrolled === \"A\") {\n return true;\n }\n return false;\n };\n\n fly(d: Dealer) {\n DealerCurrent.pa_code = d.pa_code;\n DealerCurrent.name = d.name;\n DealerCurrent.tech_count = d.tech_count;\n DealerCurrent.subscribed = d.subscribed;\n DealerCurrent.active = d.active;\n\n // persist data\n var dealerStore = {\n pa_code: DealerCurrent.pa_code,\n name: DealerCurrent.name,\n tech_count: DealerCurrent.tech_count,\n subscribed: DealerCurrent.subscribed,\n active: DealerCurrent.active\n };\n window.localStorage.setItem(\"dealer\", JSON.stringify(dealerStore));\n this.router.navigateByUrl('/status-enrolled');\n };\n\n download() {\n var csv = [\"PA Code,Name,Country,Techs\"];\n this.dealers.filter(this.isDealer).forEach(d => {\n csv.push(`\"${d.pa_code}\",\"${d.name}\",\"${d.country3}\",${d.tech_count}`);\n });\n var data = new Blob([csv.join(\"\\n\")]);\n var a: HTMLAnchorElement = document.createElement(\"a\");\n a.download = \"dealer.csv\";\n a.href = URL.createObjectURL(data);\n a.click();\n }\n\n getEnrollStatus(): string{\n // get status for pa_code and update\n return \"Yes\";\n }\n}\n","

Admin - Dealers

\n\n
\n

\n

\n
\n\n
\n

{{loading}}

\n \n \n \n \n \n \n \n \n \n \n \n \n \n
PA CodeNameCountryTechsEnrolled
{{dealer.pa_code}}{{dealer.name}}{{dealer.country3}}{{dealer.tech_count}}{{dealer.subscribed}}
\n
\n","import { Component } from '@angular/core';\nimport { ReportService } from '../services/report.service';\nimport { Revenue } from '../data/revenue';\nimport { FuncsService } from '../services/funcs.service';\n\n@Component({\n selector: 'app-report-monthly-revenue',\n templateUrl: './report-monthly-revenue.component.html',\n styleUrls: ['./report-monthly-revenue.component.css']\n})\nexport class ReportMonthlyRevenueComponent {\n public loading = \"Loading...\";\n report: Revenue[] = [];\n\n constructor(\n private reportService: ReportService,\n private funcs: FuncsService\n ) {}\n \n ngOnInit(): void {\n this.funcs.checkAdmin();\n this.loading = \"Loading...\";\n \n this.reportService.getMonthlyRevenue().subscribe(report => {\n this.report = report;\n this.loading = \"\";\n });\n }\n}\n","

Admin - Revenue by Month

\n\n
\n

{{loading}}

\n \n \n \n \n \n \n \n
MonthRevenue
{{row.year}}-{{row.month}}${{row.revenue.toFixed(2)}}
\n
\n","import { Component } from '@angular/core';\nimport { ReportService } from '../services/report.service';\nimport { Revenue } from '../data/revenue';\nimport { FuncsService } from '../services/funcs.service';\n\n@Component({\n selector: 'app-report-tiers',\n templateUrl: './report-tiers.component.html',\n styleUrls: ['./report-tiers.component.css']\n})\nexport class ReportTiersComponent {\n public loading = true;\n report: Revenue[] = [];\n\n constructor(\n private reportService: ReportService,\n private funcs: FuncsService\n ) {}\n\n ngOnInit(): void {\n this.funcs.checkAdmin();\n \n this.reportService.getDealerTiers().subscribe(report => {\n this.report = report;\n this.loading = false;\n });\n }\n}\n","

Admin - Total Dealers by Tier

\n\n
\n \n \n \n \n \n \n \n
TierDealers
{{row.date}}{{row.revenue.toFixed(0)}}
\n
\n","import { Component } from '@angular/core';\nimport { FuncsService } from '../services/funcs.service';\n\n@Component({\n selector: 'app-reports',\n templateUrl: './reports.component.html',\n styleUrls: ['./reports.component.css']\n})\nexport class ReportsComponent {\n constructor(\n private funcs: FuncsService\n ) {}\n\n ngOnInit() {\n this.funcs.checkAdmin();\n }\n}\n","

Reports

\n\n
\n

Revenue by Month\n

Enrolled Dealers\n

Unenrolled Dealers\n

Total Dealers by Tier\n

\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\n\nimport { environment } from '../../environments/environment';\nimport { Customer } from '../data/customer';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomerService {\n private customerUrl = `${environment.apiUrl}/api/Customers`;\n\n constructor(private http: HttpClient) { }\n\n getCustomer(username: string): Observable {\n const url = `${this.customerUrl}/${username}`;\n return this.http.get(url)\n .pipe(\n tap(_ => this.log('fetched customer')),\n catchError(this.handleError('getCustomer'))\n );\n }\n\n getCustomerAuth(username: string, password: string): Observable {\n const url = `${this.customerUrl}/${username}`;\n return this.http.post(url, {password: password})\n .pipe(\n tap(_ => this.log('fetched customer auth')),\n catchError(this.handleError('getCustomerAuth'))\n );\n }\n\n private handleError(operation = 'operation', result?: T) {\n return (error: any): Observable => {\n\n // TODO: send the error to remote logging infrastructure\n console.error(error); // log to console instead\n\n // TODO: better job of transforming error for user consumption\n this.log(`${operation} failed: ${error.message}`);\n\n // Let the app keep running by returning an empty result.\n return of(result as T);\n };\n }\n\n private log(message: string) {\n console.log(message);\n }\n}","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\n\nimport { environment } from '../../environments/environment';\nimport { Dealer } from '../data/dealer';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DealerService {\n private dealerUrl = `${environment.apiUrl}/api/Dealers`;\n\n constructor(private http: HttpClient) { }\n\n getDealers(): Observable {\n const url = `${this.dealerUrl}/`;\n return this.http.get(url)\n .pipe(\n tap(_ => this.log('fetched dealers')),\n catchError(this.handleError('getDealers'))\n );\n }\n\n getDealer(pa_code: string): Observable {\n const url = `${this.dealerUrl}/FCT${pa_code}`;\n return this.http.get(url)\n .pipe(\n tap(_ => this.log('fetched dealers')),\n catchError(this.handleError('getDealer'))\n );\n }\n\n private handleError(operation = 'operation', result?: T) {\n return (error: any): Observable => {\n\n // TODO: send the error to remote logging infrastructure\n console.error(error); // log to console instead\n\n // TODO: better job of transforming error for user consumption\n this.log(`${operation} failed: ${error.message}`);\n\n // Let the app keep running by returning an empty result.\n return of(result as T);\n };\n }\n\n private log(message: string) {\n console.log(message);\n }\n}","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\n\nimport { environment } from '../../environments/environment';\nimport { Subscription } from '../data/subscription';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FordService {\n private fordUrl = `${environment.apiUrl}/api/SubscriptionItems`;\n\n constructor(private http: HttpClient) { }\n\n getSubscription(id: string): Observable {\n const url = `${this.fordUrl}/${id}`;\n return this.http.get(url)\n .pipe(\n tap(_ => this.log('fetched subscription')),\n catchError(this.handleError('getSubscription'))\n );\n }\n\n cancelSubscription(id: string): Observable {\n const url = `${this.fordUrl}/${id}`;\n return this.http.delete(url)\n .pipe(\n tap(_ => this.log('cancelled subscription')),\n catchError(this.handleError('getSubscription'))\n );\n }\n\n addSubscription(sub: Subscription): Observable {\n const url = `${this.fordUrl}/${sub.siteCode}`;\n console.log(sub);\n return this.http.post(url, sub)\n .pipe(\n tap(_ => this.log('added subscription')),\n catchError(this.handleError('getSubscription'))\n );\n }\n\n private handleError(operation = 'operation', result?: T) {\n return (error: any): Observable => {\n\n // TODO: send the error to remote logging infrastructure\n console.error(error); // log to console instead\n\n // TODO: better job of transforming error for user consumption\n this.log(`${operation} failed: ${error.message}`);\n\n // Let the app keep running by returning an empty result.\n return of(result as T);\n };\n }\n\n deleteSubscription(id: string): Observable {\n const url = `${this.fordUrl}/${id}`;\n\n return this.http.delete(url).pipe(\n tap(_ => this.log(`deleted subscription id=${id}`)),\n catchError(this.handleError('deleteHero'))\n );\n }\n\n private log(message: string) {\n console.log(message);\n }\n}","import { Injectable } from '@angular/core';\nimport { Dealer, DealerCurrent } from '../data/dealer';\nimport { Router } from '@angular/router';\nimport { Customer, CustomerCurrent } from '../data/customer';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class FuncsService {\n constructor(private router: Router) { }\n \n currentDealer(dealer: Dealer): void {\n var d;\n if (!dealer || !dealer.pa_code) {\n d = window.localStorage.getItem(\"dealer\");\n if (!d) {\n // or really, redirect \n this.router.navigateByUrl('/home');\n return;\n }\n d = JSON.parse(d);\n if (!d.pa_code) {\n this.router.navigateByUrl('/home');\n return;\n }\n\n DealerCurrent.pa_code = d.pa_code;\n DealerCurrent.name = d.name;\n DealerCurrent.country = dealer.country;\n DealerCurrent.country3 = dealer.country3;\n DealerCurrent.tech_count = d.tech_count;\n DealerCurrent.subscribed = d.subscribed;\n DealerCurrent.active = d.active;\n }\n }\n\n setDealer(dealer: Dealer): void {\n DealerCurrent.pa_code = dealer.pa_code;\n DealerCurrent.name = dealer.name;\n DealerCurrent.country = dealer.country;\n DealerCurrent.country3 = dealer.country3;\n DealerCurrent.tech_count = dealer.tech_count;\n DealerCurrent.subscribed = dealer.subscribed;\n DealerCurrent.active = dealer.active;\n\n // persist data\n var dealerStore = {\n pa_code: DealerCurrent.pa_code,\n name: DealerCurrent.name,\n country: DealerCurrent.country,\n country3: DealerCurrent.country3,\n tech_count: DealerCurrent.tech_count,\n subscribed: DealerCurrent.subscribed,\n active: DealerCurrent.active\n };\n window.localStorage.setItem(\"dealer\", JSON.stringify(dealerStore));\n }\n\n setCustomer(customer: Customer): void {\n CustomerCurrent.username = customer.username;\n CustomerCurrent.pa_code = customer.pa_code;\n CustomerCurrent.type = customer.type;\n CustomerCurrent.name = customer.name;\n CustomerCurrent.country = customer.country;\n CustomerCurrent.role = customer.role;\n CustomerCurrent.active = customer.active;\n CustomerCurrent.reported_terminated = customer.reported_terminated;\n CustomerCurrent.authenticated = customer.authenticated;\n\n // persist data\n var customerStore = {\n username: CustomerCurrent.username,\n pa_code: CustomerCurrent.pa_code,\n type: CustomerCurrent.type,\n name: CustomerCurrent.name,\n country: CustomerCurrent.country,\n role: CustomerCurrent.role,\n active: CustomerCurrent.active,\n reported_terminated: CustomerCurrent.reported_terminated,\n authenticated: CustomerCurrent.authenticated\n };\n window.localStorage.setItem(\"customer\", JSON.stringify(customerStore));\n\n if (customer.role === \"DEALER\") {\n //set dealer\n }\n }\n\n currentCustomer(customer: Customer): void {\n var c;\n if (!customer || !customer.authenticated || customer.authenticated === \"N\") {\n c = window.localStorage.getItem(\"customer\");\n\n if (!c) {\n // or really, redirect \n this.router.navigateByUrl('/home');\n return;\n }\n c = JSON.parse(c);\n if (!c.pa_code && c.role !== \"ADM\") {\n this.router.navigateByUrl('/home');\n return;\n }\n\n CustomerCurrent.username = c.username;\n CustomerCurrent.pa_code = c.pa_code;\n CustomerCurrent.type = c.type;\n CustomerCurrent.name = c.name;\n CustomerCurrent.country = c.country;\n CustomerCurrent.role = c.role;\n CustomerCurrent.active = c.active;\n CustomerCurrent.reported_terminated = c.reported_terminated;\n CustomerCurrent.authenticated = c.authenticated;\n }\n }\n\n logOutCustomer(): void {\n window.localStorage.setItem(\"customer\", \"{}\");\n\n CustomerCurrent.username = \"\";\n CustomerCurrent.pa_code = \"\";\n CustomerCurrent.type = \"\";\n CustomerCurrent.name = \"\";\n CustomerCurrent.country = \"\";\n CustomerCurrent.role = \"\";\n CustomerCurrent.active = \"\";\n CustomerCurrent.reported_terminated = \"\";\n CustomerCurrent.authenticated = \"\";\n\n // clear dealer as well\n DealerCurrent.pa_code = \"\";\n DealerCurrent.name = \"\";\n DealerCurrent.tech_count = 0;\n DealerCurrent.subscribed = \"\";\n DealerCurrent.active = \"\";\n\n // persist data\n var dealerStore = {\n pa_code: \"\",\n name: \"\",\n tech_count: 0,\n subscribed: \"\",\n active: \"DealerCurrent.active\"\n };\n window.localStorage.setItem(\"dealer\", JSON.stringify(dealerStore));\n\n this.router.navigateByUrl('/home');\n }\n\n checkAdmin(): void {\n this.currentCustomer(CustomerCurrent);\n if (CustomerCurrent.authenticated !== \"Y\") {\n this.router.navigateByUrl('/home');\n }\n if (CustomerCurrent.role === \"DEALER\") {\n this.router.navigateByUrl('/status-enrolled');\n }\n if (CustomerCurrent.role !== \"ADM\") {\n this.router.navigateByUrl('/home');\n }\n }\n\n now(): string {\n var timeNow = new Date();\n var hour = String(timeNow.getHours()).padStart(2, \"0\");\n var min = String(timeNow.getMinutes()).padStart(2, \"0\");\n\n // this.previousSibling.value = `${hour}:${min}`;\n return `${hour}:${min}`;\n }\n\n dateFormat(dateString: string): string {\n var months = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n if (!dateString) {\n return \"\";\n }\n \n var d = new Date(dateString);\n if (d instanceof Date) {\n return `${months[d.getMonth()]} ${d.getDate()}, ${d.getFullYear()}`;\n }\n return \"\";\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\n\nimport { environment } from '../../environments/environment';\nimport { PriceTier } from '../data/price-tier';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PriceTierService {\n private priceTierUrl = `${environment.apiUrl}/api/PriceTier`;\n\n constructor(private http: HttpClient) { }\n\n getPriceTiers(): Observable {\n const url = `${this.priceTierUrl}/`;\n return this.http.get(url)\n .pipe(\n tap(_ => this.log('fetched price tiers')),\n catchError(this.handleError('getPriceTiers'))\n );\n }\n\n updatePriceTier(tier: PriceTier): Observable {\n const url = `${this.priceTierUrl}/`;\n return this.http.put(url, tier)\n .pipe(\n tap(_ => this.log('Updated price tier')),\n catchError(this.handleError('updatePriceTier'))\n );\n }\n\n // getTier(item_number: string): Observable {\n // const url = `${this.tierUrl}/${item_number}`;\n // return this.http.get(url)\n // .pipe(\n // tap(_ => this.log('fetched tier')),\n // catchError(this.handleError('getTier'))\n // );\n // }\n\n private handleError(operation = 'operation', result?: T) {\n return (error: any): Observable => {\n\n // TODO: send the error to remote logging infrastructure\n console.error(error); // log to console instead\n\n // TODO: better job of transforming error for user consumption\n this.log(`${operation} failed: ${error.message}`);\n\n // Let the app keep running by returning an empty result.\n return of(result as T);\n };\n }\n\n private log(message: string) {\n console.log(message);\n }\n}","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\n\nimport { environment } from '../../environments/environment';\nimport { Revenue } from '../data/revenue';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ReportService {\n private dealerUrl = `${environment.apiUrl}/api/Dealers`;\n\n constructor(private http: HttpClient) { }\n\n getMonthlyRevenue(): Observable {\n const url = `${this.dealerUrl}/monthly_revenue`;\n return this.http.get(url)\n .pipe(\n tap(_ => this.log('fetched monthly revenue')),\n catchError(this.handleError('getMonthlyRevenue'))\n );\n }\n\n getDealerTiers(): Observable {\n const url = `${this.dealerUrl}/dealer_tiers`;\n return this.http.get(url)\n .pipe(\n tap(_ => this.log('fetched dealer tiers')),\n catchError(this.handleError('getDealerTiers'))\n );\n }\n\n private handleError(operation = 'operation', result?: T) {\n return (error: any): Observable => {\n\n // TODO: send the error to remote logging infrastructure\n console.error(error); // log to console instead\n\n // TODO: better job of transforming error for user consumption\n this.log(`${operation} failed: ${error.message}`);\n\n // Let the app keep running by returning an empty result.\n return of(result as T);\n };\n }\n\n private log(message: string) {\n console.log(message);\n }\n}","import { Component } from '@angular/core';\nimport { Subscription } from '../data/subscription';\nimport { FordService } from '../services/ford.service';\nimport { PriceTier } from '../data/price-tier';\nimport { PriceTierService } from '../services/price-tier.service';\nimport { Dealer, DealerCurrent } from '../data/dealer';\nimport { Price } from '../data/price';\nimport { FuncsService } from '../services/funcs.service';\n\n@Component({\n selector: 'app-status-enrolled',\n templateUrl: './status-enrolled.component.html',\n styleUrls: ['./status-enrolled.component.css']\n})\nexport class StatusEnrolledComponent {\n sub: Subscription = {\n createdAt: \"\",\n siteCode: \"\",\n maxAllowedSessions: 0,\n concurrentSessions: 0,\n expiresAt: \"\",\n status: 200\n };\n\n prices: Price = {\n per_tech: 0,\n monthly: 0\n };\n\n public loading = true;\n public price = 0;\n public monthly = 0;\n public enrolled = \"\";\n dealer: Dealer = DealerCurrent;\n priceTiers: PriceTier[] = [];\n\n constructor(\n private fordService: FordService,\n private priceTierService: PriceTierService,\n private funcs: FuncsService\n ) {}\n\n async ngOnInit(): Promise {\n this.funcs.currentDealer(this.dealer);\n this.getSubscription();\n this.loading = true;\n }\n\n retry (): void {\n this.getSubscription();\n this.loading = true;\n }\n\n getSubscription(): void {\n this.fordService.getSubscription(`${this.dealer.country3}${this.dealer.pa_code}`).subscribe(sub => {\n this.sub = sub;\n this.priceTierService.getPriceTiers().subscribe(priceTiers => {\n this.priceTiers = priceTiers;\n this.priceTiers = this.priceTiers.sort((a, b) => {\n return a.qty - b.qty;\n });\n\n this.priceTiers.forEach(pt => {\n if (pt.qty < this.dealer.tech_count) {\n this.prices.per_tech = pt.price;\n }\n });\n this.prices.monthly = this.prices.per_tech * this.dealer.tech_count / 12;\n this.loading = false;\n });\n\n this.enrolled = new Date(this.sub.createdAt).toDateString();\n });\n }\n}\n","

Dealer Status Page - Not Enrolled

\n\n\n
\n

Getting subscription information...

\n
\n
\n\n\n
\n

{{dealer.name}} {{dealer.country3}}{{dealer.pa_code}} is enrolled!

\n
    \n
  • Enrolled On: {{enrolled}}\n
  • PA Code: {{sub.siteCode}}\n
  • Technicians: {{dealer.tech_count}}\n
  • Cost/technician: ${{prices.per_tech.toFixed(2)}}\n
  • Monthly charges: ${{prices.monthly.toFixed(2)}}\n
\n

\n

\n
\n\n\n
\n

{{dealer.name}} {{dealer.country3}}{{dealer.pa_code}} is not enrolled!\n

This dealership won't be able to use the IDS (Integrated Diagnostic System) software.

\n

\n

\n
\n\n\n
\n

Retrieving enrollment status

\n

\n

\n
\n","import { Component } from '@angular/core';\nimport { Tier } from '../data/tier';\nimport { PriceTier, PRICE_TIERS } from '../data/price-tier';\nimport { Router } from '@angular/router';\nimport { TierService } from '../services/tier.service';\nimport { PriceTierService } from '../services/price-tier.service';\nimport { FuncsService } from '../services/funcs.service';\n\n@Component({\n selector: 'app-tiers',\n templateUrl: './tiers.component.html',\n styleUrls: ['./tiers.component.css']\n})\n\nexport class TiersComponent {\n public loading = \"\";\n priceTiers = PRICE_TIERS;\n\n constructor(\n private priceTierService: PriceTierService,\n private router: Router,\n private funcs: FuncsService\n ) {}\n\n ngOnInit(): void {\n this.funcs.checkAdmin();\n this.loading = \"Loading...\";\n\n this.priceTierService.getPriceTiers().subscribe(tiers => {\n this.priceTiers = tiers;\n this.loading = \"\";\n });\n }\n\n updateQty(idx: number) {\n this.loading = \"Updating...\";\n this.priceTierService.updatePriceTier(this.priceTiers[idx]).subscribe(rsp => {\n this.loading = \"\";\n });\n }\n}\n","

Admin - Price Tiers

\n\n
\n

{{loading}}

\n \n \n \n \n \n \n \n \n \n \n
Min$CAN
{{priceTier.qty}}$ $
\n
\n","export const environment = {\n production: true,\n apiUrl: \"https://forddiag-api.helm.com\"\n};","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\n\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"names":["DEALERS","i0","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","AdminDealerComponent_tr_22_Template_button_click_8_listener","restoredCtx","ɵɵrestoreView","_r3","dealer_r1","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","fly","ɵɵadvance","ɵɵtextInterpolate","pa_code","name","tech_count","ɵɵtextInterpolate1","AdminDealerComponent","constructor","dealerService","router","funcs","loading","dealers","displayedDealers","search","filterDealers","filter","isDealer","d","ciSearch","toLowerCase","ciName","indexOf","ngOnInit","checkAdmin","getDealers","subscribe","ngAfterViewInit","document","getElementById","focus","displayDealers","setDealer","navigateByUrl","_","ɵɵdirectiveInject","i1","DealerService","i2","Router","i3","FuncsService","_2","selectors","decls","vars","consts","template","AdminDealerComponent_Template","rf","ctx","AdminDealerComponent_Template_input_ngModelChange_8_listener","$event","AdminDealerComponent_Template_input_keyup_8_listener","ɵɵtemplate","AdminDealerComponent_tr_22_Template","ɵɵproperty","AdminHomeComponent","logOut","logOutCustomer","AdminHomeComponent_Template","AdminHomeComponent_Template_button_click_23_listener","RouterModule","HomeComponent","StatusEnrolledComponent","CancelComponent","CancelConfirmComponent","ContactComponent","EnrollComponent","EnrollConfirmComponent","FaqComponent","ReportsComponent","ReportTiersComponent","ReportMonthlyRevenueComponent","ReportEnrolledComponent","AutoLoginComponent","TiersComponent","routes","path","redirectTo","pathMatch","component","AppRoutingModule","_3","forRoot","imports","exports","CustomerCurrent","environment","ctx_r1","dealer","AppComponent","title","user_name","full_name","navClass","prod","production","currentCustomer","username","logout","showNav","closeNavIfOpen","AppComponent_Template","AppComponent_span_6_Template","AppComponent_Template_a_click_8_listener","AppComponent_li_14_Template","AppComponent_Template_a_click_16_listener","AppComponent_Template_article_click_18_listener","ɵɵelement","AppComponent_Template_footer_click_20_listener","ɵɵclassMap","BrowserModule","HttpClientModule","FormsModule","MatIconModule","AppModule","bootstrap","declarations","route","key","snapshot","queryParamMap","get","console","log","ActivatedRoute","AutoLoginComponent_Template","CancelConfirmComponent_Template","DealerCurrent","fordService","_router","_this","_asyncToGenerator","currentDealer","cancelSubscription","dealerCode","country3","deleteSubscription","FordService","CancelComponent_Template","CancelComponent_Template_button_click_11_listener","ɵɵtextInterpolate2","ContactComponent_Template","Customers","type","country","role","active","reported_terminated","authenticated","subscribed","PRICE_TIERS","EnrollConfirmComponent_Template","priceTierService","sub","createdAt","siteCode","maxAllowedSessions","concurrentSessions","expiresAt","status","prices","per_tech","monthly","price","expires","priceTiers","getPriceTiers","sort","a","b","qty","forEach","pt","Date","toISOString","addSubscription","PriceTierService","i4","EnrollComponent_Template","EnrollComponent_Template_button_click_23_listener","toFixed","FaqComponent_Template","customerService","password","message","checkPw","getCustomerAuth","customer","setCustomer","getDealer","CustomerService","HomeComponent_Template","HomeComponent_Template_input_ngModelChange_6_listener","HomeComponent_Template_input_ngModelChange_10_listener","HomeComponent_Template_button_click_14_listener","ɵɵattribute","ReportEnrolledComponent_tr_30_th_9_Template","ReportEnrolledComponent_tr_30_th_10_Template","ReportEnrolledComponent_tr_30_Template_button_click_12_listener","_r7","ctx_r6","enrolled","queryEnrolled","isEnrolled","ngOnChanges","changeRadio","eventEnroll","target","value","getAllDealerStatus","ii","len","length","getSingleDealerStatus","getSubscription","find","dealerStore","window","localStorage","setItem","JSON","stringify","download","csv","push","data","Blob","join","createElement","href","URL","createObjectURL","click","getEnrollStatus","features","ɵɵNgOnChangesFeature","ReportEnrolledComponent_Template","ReportEnrolledComponent_Template_input_ngModelChange_8_listener","ReportEnrolledComponent_Template_input_keyup_8_listener","ReportEnrolledComponent_Template_button_click_10_listener","ReportEnrolledComponent_tr_30_Template","row_r1","year","month","revenue","reportService","report","getMonthlyRevenue","ReportService","ReportMonthlyRevenueComponent_Template","ReportMonthlyRevenueComponent_tr_15_Template","date","getDealerTiers","ReportTiersComponent_Template","ReportTiersComponent_tr_13_Template","ReportsComponent_Template","of","catchError","tap","http","customerUrl","apiUrl","getCustomer","url","pipe","handleError","post","operation","result","error","ɵɵinject","HttpClient","factory","ɵfac","providedIn","dealerUrl","fordUrl","id","delete","getItem","parse","customerStore","c","now","timeNow","hour","String","getHours","padStart","min","getMinutes","dateFormat","dateString","months","getMonth","getDate","getFullYear","priceTierUrl","updatePriceTier","tier","put","ɵɵpureFunction0","_c0","ctx_r3","_c1","StatusEnrolledComponent_ng_template_7_Template_button_click_5_listener","_r6","ctx_r5","retry","toDateString","StatusEnrolledComponent_Template","StatusEnrolledComponent_span_2_Template","StatusEnrolledComponent_ng_template_4_Template","StatusEnrolledComponent_ng_template_5_Template","StatusEnrolledComponent_ng_template_6_Template","StatusEnrolledComponent_ng_template_7_Template","TiersComponent_tr_18_Template_input_ngModelChange_5_listener","_r4","idx_r2","index","TiersComponent_tr_18_Template_input_ngModelChange_8_listener","price_canadian_dollar","TiersComponent_tr_18_Template_button_click_10_listener","updateQty","priceTier_r1","ctx_r0","tiers","idx","rsp","TiersComponent_Template","TiersComponent_tr_18_Template","__NgCli_bootstrap_1","platformBrowser","bootstrapModule","catch","err"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}