{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/amoritization-schedule/amoritization-schedule.component.ts","./src/app/amoritization-schedule/amoritization-schedule.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/calculator/Loan.ts","./src/app/calculator/Period.ts","./src/app/calculator/calculator.component.ts","./src/app/calculator/calculator.component.html","./src/app/core/api-path.constant.ts","./src/app/core/core-routing.module.ts","./src/app/core/core.module.ts","./src/app/core/error/error.component.ts","./src/app/core/error/error.component.html","./src/app/fetch-data/fetch-data.component.ts","./src/app/fetch-data/fetch-data.component.html","./src/app/financing/financing.component.ts","./src/app/financing/financing.component.html","./src/app/google-adsense/banner/banner.component.ts","./src/app/google-adsense/banner/banner.component.html","./src/app/google-adsense/google-adsense.module.ts","./src/app/identity/identity-routing.module.ts","./src/app/identity/identity.module.ts","./src/app/identity/identity.service.ts","./src/app/identity/login-button/login-button.component.ts","./src/app/identity/login-button/login-button.component.html","./src/app/identity/login/login.component.ts","./src/app/identity/login/login.component.html","./src/app/identity/logout-button/logout-button.component.ts","./src/app/identity/logout-button/logout-button.component.html","./src/app/identity/logout/logout.component.ts","./src/app/identity/logout/logout.component.html","./src/app/identity/profile/profile.component.ts","./src/app/identity/profile/profile.component.html","./src/app/identity/signup-button/signup-button.component.ts","./src/app/identity/signup-button/signup-button.component.html","./src/app/landing-page/about/about.component.ts","./src/app/landing-page/about/about.component.html","./src/app/landing-page/home/home.component.ts","./src/app/landing-page/home/home.component.html","./src/app/landing-page/landing-page-routing.module.ts","./src/app/landing-page/landing-page.module.ts","./src/app/layout/layout.module.ts","./src/app/layout/main-nav/main-nav.component.ts","./src/app/layout/main-nav/main-nav.component.html","./src/app/layout/nav-menu/nav-menu.component.ts","./src/app/layout/nav-menu/nav-menu.component.html","./src/app/loan-summary/loan-summary.component.ts","./src/app/loan-summary/loan-summary.component.html","./src/app/loan-url.service.ts","./src/app/loan/loan.component.ts","./src/app/loan/loan.component.html","./src/app/playground/playground.component.ts","./src/app/playground/playground.component.html","./src/app/price-wizard/price-wizard.component.ts","./src/app/price-wizard/price-wizard.component.html","./src/app/pricing.service.ts","./src/app/pricing/TaxRate.ts","./src/app/pricing/pricing.component.ts","./src/app/pricing/pricing.component.html","./src/app/quick-calculator/quick-calc.component.ts","./src/app/quick-calculator/quick-calc.component.html","./src/app/share-button/share-button.component.ts","./src/app/share-button/share-button.component.html","./src/app/summary-bar-chart/summary-bar-chart.component.ts","./src/app/summary-bar-chart/summary-bar-chart.component.html","./src/app/summary-graph/summary-graph.component.ts","./src/app/summary-graph/summary-graph.component.html","./src/app/support/support.component.ts","./src/app/support/support.component.html","./src/environments/environment.ts","./src/main.ts","ignored|/home/vsts/work/1/s/CarCulator/CarCulator/ClientApp/node_modules/xlsx|crypto","ignored|/home/vsts/work/1/s/CarCulator/CarCulator/ClientApp/node_modules/xlsx|fs","ignored|/home/vsts/work/1/s/CarCulator/CarCulator/ClientApp/node_modules/xlsx|stream"],"sourcesContent":["import { AfterViewInit, Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { Period } from '../calculator/Period';\nimport { utils as XLSXUtils, writeFile } from 'xlsx';\nimport { WorkBook, WorkSheet } from 'xlsx/types';\n\n@Component({\n selector: 'amoritization-schedule',\n templateUrl: './amoritization-schedule.component.html',\n styleUrls: ['./amoritization-schedule.component.scss']\n})\nexport class AmoritizationScheduleComponent implements OnInit, AfterViewInit, OnChanges {\n\n displayedColumns: string[] = ['date', 'id', 'startingBalance', 'payment', 'interest', 'cumulativePrincipal', 'cumulativeInterest', 'endingBalance'];\n dataSource: MatTableDataSource;\n\n @Input()\n scheduleData: Period[];\n\n @ViewChild(MatSort)\n sort: MatSort;\n\n @ViewChild(MatPaginator)\n paginator: MatPaginator;\n\n constructor() { }\n\n ngOnInit(): void {\n\n }\n\n ngAfterViewInit() {\n this.updateDataSource();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const newScheduleData: Period[] = (changes.scheduleData.currentValue);\n this.scheduleData = newScheduleData;\n this.updateDataSource();\n }\n\n fileName = 'calcmyride_amoritization_schedule.xlsx';\n fileExtension = '.xlsx';\n\n exportToExcel() {\n let wb: WorkBook;\n let header = [];\n\n const sheetName = \"CalcMyRide\";\n\n const ws: WorkSheet = XLSXUtils.json_to_sheet(this.scheduleData, { header });\n wb = XLSXUtils.book_new();\n XLSXUtils.book_append_sheet(wb, ws, sheetName);\n\n const xlsBlobUrl = writeFile(wb, `${this.fileName}${this.fileExtension}`);\n\n if (this.iOS()) {\n //window.location.href = xlsBlobUrl;\n\n const download = () => {\n const fileLink = document.createElement('a');\n fileLink.href = xlsBlobUrl;\n\n // it forces the name of the downloaded file\n fileLink.download = this.fileName;\n\n // triggers the click event\n fileLink.click();\n }\n\n setTimeout(download, 1000);\n\n // create tag dinamically\n\n\n //window.location.href = xlsBlobUrl\n\n //let blob = new Blob([xlsBlobUrl]);\n //const url = window.URL.createObjectURL(blob);\n\n //const link: any = document.createElement('a');\n //link.download = `${this.fileName}`;\n //link.href = url;\n //link.click();\n\n //URL.revokeObjectURL(url);\n //URL.revokeObjectURL(xlsBlobUrl);\n } else {\n URL.revokeObjectURL(xlsBlobUrl)\n }\n\n //window.location.href = xlsBlobUrl;\n\n //blob.\n\n //let reader = new FileReader();\n //reader.readAsDataURL(xlsBlobUrl); // converts the blob to base64 and calls onload\n\n //reader.onload = function () {\n // link.href = reader.result; // data url\n // link.click();\n //};\n\n // free from memory\n \n //URL.revokeObjectURL(blob)\n }\n\n private updateDataSource() {\n this.dataSource = new MatTableDataSource(this.scheduleData);\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n }\n\n applyFilter(event: Event) {\n const filterValue = (event.target as HTMLInputElement).value;\n this.dataSource.filter = filterValue.trim().toLowerCase();\n\n if (this.dataSource.paginator) {\n this.dataSource.paginator.firstPage();\n }\n }\n\n iOS() {\n return [\n 'iPad Simulator',\n 'iPhone Simulator',\n 'iPod Simulator',\n 'iPad',\n 'iPhone',\n 'iPod'\n ].includes(navigator.platform)\n // iPad on iOS 13 detection\n || (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\n }\n\n}\n","
\n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n
\n Date\n \n {{period.date | date:'shortDate'}}\n \n Period\n \n {{period.id}}\n \n Starting Balance\n \n {{period.startingBalance | currency}}\n \n Payment\n \n {{period.payment | currency}}\n \n Interest\n \n {{period.interest | currency}}\n \n Cumulative Principal\n \n {{period.cumulativePrincipal | currency}}\n \n Cumulative Interest\n \n {{period.cumulativeInterest | currency}}\n \n Ending Balance\n \n {{period.endingBalance | currency}}\n
\n\n \n
\n
\n \n
\n \n
\n
\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { AuthGuard } from '@auth0/auth0-angular';\nimport { CalculatorComponent } from './calculator/calculator.component';\nimport { FetchDataComponent } from './fetch-data/fetch-data.component';\nimport { PlaygroundComponent } from './playground/playground.component';\nimport { PriceWizardComponent } from './price-wizard/price-wizard.component';\nimport { QuickCalcComponent } from './quick-calculator/quick-calc.component';\nimport { SupportComponent } from './support/support.component';\n\nconst routes: Routes = [\n { path: '', loadChildren: () => import(\"./landing-page/landing-page.module\").then(m => m.LandingPageModule) },\n { path: 'price-wizard', component: PriceWizardComponent },\n { path: 'calculator', component: CalculatorComponent },\n { path: 'quick-calc', component: QuickCalcComponent },\n { path: 'fetch-data', component: FetchDataComponent, canActivate: [AuthGuard] },\n { path: 'support', component: SupportComponent },\n { path: 'playground', component: PlaygroundComponent},\n { path: '', loadChildren: () => import(\"./identity/identity.module\").then(m => m.IdentityModule) },\n { path: '', loadChildren: () => import(\"./core/core.module\").then(m => m.CoreModule) }\n\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n})\nexport class AppRoutingModule { }\n","import { Component } from '@angular/core';\nimport { AuthService } from '@auth0/auth0-angular';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html'\n})\nexport class AppComponent {\n title = 'app';\n\n\n constructor(public auth: AuthService) {\n\n }\n}\n","\n \n \n \n\n","/*import { NgxSliderModule } from '@angular-slider/ngx-slider';*/\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatExpansionModule } from \"@angular/material/expansion\";\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { AuthHttpInterceptor, AuthModule } from '@auth0/auth0-angular';\nimport * as echarts from 'echarts';\nimport { NgxEchartsModule } from 'ngx-echarts';\n\nimport { ApiAuthorizationModule } from 'src/api-authorization/api-authorization.module';\nimport { environment as env } from \"../environments/environment\";\nimport { AmoritizationScheduleComponent } from './amoritization-schedule/amoritization-schedule.component';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { CalculatorComponent } from './calculator/calculator.component';\nimport { CoreModule } from './core/core.module';\nimport { FetchDataComponent } from './fetch-data/fetch-data.component';\nimport { FinancingComponent } from './financing/financing.component';\nimport { GoogleAdsenseModule } from './google-adsense/google-adsense.module';\nimport { LandingPageModule } from \"./landing-page/landing-page.module\";\nimport { LayoutModule as AppLayoutModule } from \"./layout/layout.module\";\nimport { LoanSummaryComponent } from './loan-summary/loan-summary.component';\nimport { LoanComponent } from './loan/loan.component';\nimport { PriceWizardComponent } from './price-wizard/price-wizard.component';\nimport { PricingComponent } from './pricing/pricing.component';\nimport { SummaryBarChartComponent } from './summary-bar-chart/summary-bar-chart.component';\nimport { SummaryGraphComponent } from './summary-graph/summary-graph.component';\nimport { QuickCalcComponent } from './quick-calculator/quick-calc.component';\nimport { IConfig, NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';\nimport { SupportComponent } from './support/support.component';\nimport { ShareModule } from 'ngx-sharebuttons';\nimport { ShareIconsModule } from 'ngx-sharebuttons/icons';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { ShareButtonComponent } from './share-button/share-button.component';\nimport { PlaygroundComponent } from './playground/playground.component';\n\n\n//export const options: Partial | (() => Partial) = null;\n\n@NgModule({\n declarations: [\n AppComponent,\n FetchDataComponent,\n CalculatorComponent,\n AmoritizationScheduleComponent,\n PricingComponent,\n FinancingComponent,\n LoanComponent,\n LoanSummaryComponent,\n SummaryGraphComponent,\n PriceWizardComponent,\n SummaryBarChartComponent,\n QuickCalcComponent,\n SupportComponent,\n ShareButtonComponent,\n PlaygroundComponent\n ],\n imports: [\n AppLayoutModule,\n CoreModule,\n LandingPageModule,\n GoogleAdsenseModule,\n CommonModule,\n NgxEchartsModule.forRoot({\n echarts: () => import('echarts'), // or import('./path-to-my-custom-echarts')\n }),\n ShareModule,\n ShareIconsModule,\n /* NgxSliderModule,*/\n NgxMaskDirective,\n NgxMaskPipe,\n BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),\n HttpClientModule,\n FormsModule,\n //ApiAuthorizationModule,\n BrowserAnimationsModule,\n LayoutModule,\n MatButtonModule,\n MatIconModule,\n MatTableModule,\n MatPaginatorModule,\n MatSortModule,\n MatFormFieldModule,\n MatInputModule,\n MatTabsModule,\n MatSliderModule,\n MatCardModule,\n MatButtonToggleModule,\n MatSelectModule,\n MatStepperModule,\n MatTooltipModule,\n MatDialogModule,\n MatExpansionModule,\n MatMenuModule,\n AuthModule.forRoot({\n ...env.auth,\n //authorizationParams: {\n // redirect_uri: window.location.origin\n // },\n httpInterceptor: {\n allowedList: [`${env.API_PATH}/api/*`],\n },\n }),\n AppRoutingModule,\n FontAwesomeModule\n ],\n providers: [\n provideNgxMask(),\n { provide: HTTP_INTERCEPTORS, useClass: AuthHttpInterceptor, multi: true },\n {\n provide: Window,\n useValue: window,\n },\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { Period } from \"./Period\";\n\n/**\n * Loan class representing a new car loan\n * */\nexport class Loan {\n\n amoritizationSchedule: Period[];\n\n private firstView: boolean = false;\n\n setFirstView(): void {\n this.firstView = true;\n }\n\n /**\n * Are we on the first view of the loan? If so, likely show the wizard dialog.\n */\n isFirstView(): boolean {\n return this.firstView;\n }\n\n /**\n * do we need to show the loan wizard?\n */\n showWizard: boolean;\n\n /**\n * name of the loan\n */\n name: string;\n\n fullName: string;\n\n /**\n * State\n */\n taxRate: number;\n\n /**\n * Price of vehicle\n */\n price: number;\n\n /**\n * Total sales tax\n */\n salesTax: number;\n\n calculateSalesTax() {\n if (this.taxRate >= 0) {\n this.salesTax = (this.price - this.tradeIn - this.discount) * (this.taxRate / 100);\n } else {\n this.salesTax = this.price;\n }\n }\n\n /**\n * Discount from price\n */\n discount: number = 0\n\n /**\n * Trade in value\n */\n tradeIn: number = 0;\n\n /**\n * Down payment\n */\n downPayment: number = 0;\n\n /**\n * Total amount borrowed\n */\n totalFinanced: number;\n\n private calculateTotalFinanced(): void {\n const equity = this.downPayment + this.tradeIn + this.discount;\n\n this.totalFinanced = this.price - equity;\n }\n\n /**\n * Lenth of loans in terms of months\n */\n loanLength: number;\n\n /**\n * Interest rate\n */\n rate: number;\n\n /**\n * Total interest payment\n */\n totalInterest: number;\n private calcTotalInterest(): void {\n\n const lastPeriod = this.lastPeriod();\n\n if (lastPeriod) {\n let length = this.amoritizationSchedule?.length;\n\n let lastPeriod = this.amoritizationSchedule[length - 1];\n this.totalInterest = lastPeriod.cumulativeInterest;\n } else {\n this.totalInterest = 0;\n }\n }\n\n /**\n * Get the last period of the amoritzation schedule\n * */\n private lastPeriod(): Period {\n\n let lastPeriod: Period = null;\n\n if (this.amoritizationSchedule?.length > 0) {\n let length = this.amoritizationSchedule?.length;\n\n lastPeriod = this.amoritizationSchedule[length - 1];\n }\n\n return lastPeriod;\n }\n\n /**\n * Per month cost of loan\n */\n monthlyPayment: number;\n\n private calculateMonthlyPayment(): void {\n\n const numerator = this.totalFinanced * (this.rateAsPercent / this.periodLength);\n const denomenator = 1 - (Math.pow(1 + (this.rateAsPercent / 12), this.loanLength * -1));\n\n this.monthlyPayment = numerator / denomenator;\n }\n\n get rateAsPercent(): number {\n return this.rate / 100;\n }\n\n periodLength: number = 12;\n\n /**\n * Total cost of loan including interest\n */\n costOfLoan: number;\n\n /**\n * Total cost of car\n */\n totalCost: number;\n\n /**\n * the current loan saved as query string parameters\n * */\n loanAsQueryParameters: string;\n\n /**\n * x axes periods\n * */\n xAxisPeriodSeries: string[];\n\n /**\n * cumulative principal series\n * */\n cumulativePrincipalSeries: number[];\n\n /**\n * running aggregation of the cumulative interest\n * */\n cumulativeInterestSeries: number[];\n\n /**\n * running aggregation of the cumulative balance\n * */\n cumulativeBalanceSeries: number[];\n\n /**\n * recalculate the amoritization schedule. Must be done in this order\n * */\n recalculate() {\n this.calculateTotalFinanced();\n this.calculateMonthlyPayment();\n this.calculateSalesTax();\n this.buildAmoritizationSchedule();\n this.calcTotalInterest();\n this.calcTotalCost();\n this.buildUrl();\n this.buildSeriesData();\n }\n\n buildSeriesData() {\n this.xAxisPeriodSeries = this.xAxisPeriodSeriesGeneration();\n this.cumulativeBalanceSeries = this.cumulativeBalanceSeriesGeneration();\n this.cumulativeInterestSeries = this.cumulativeInterestSeriesGeneration();\n this.cumulativePrincipalSeries = this.cumulativePrincipalSeriesGeneration();\n }\n\n /**\n * Update the selection of a tax rate\n * */\n updateTaxSelection(value: number) {\n\n if (value !== undefined) {\n this.taxRate = value;\n this.recalculate();\n }\n }\n\n calcTotalCost() {\n this.totalCost = this.totalFinanced + this.totalInterest + this.salesTax;\n }\n\n buildUrl() {\n\n // name, price, stateTaxRate, loanLength, loanRate\n // startDate\n\n const concatUrl: (currentUrl: string, parameterName: string, value: string | number | Date, skipAmpersand: boolean) =>\n string = (currentUrl: string, parameterName: string, value: string | number | Date, skipAmpersand: boolean) => {\n\n const valueAsString: string = value.toString();\n\n const encodedValue = encodeURIComponent(valueAsString);\n\n let newUrl = \"\"\n\n if (skipAmpersand !== true) {\n newUrl = `${currentUrl}&${parameterName}=${encodedValue}`;\n } else {\n newUrl = `${currentUrl}${parameterName}=${encodedValue}`;\n }\n\n return newUrl\n }\n\n this.loanAsQueryParameters = \"\";\n\n this.loanAsQueryParameters = concatUrl(this.loanAsQueryParameters, \"discount\", this.discount, true);\n this.loanAsQueryParameters = concatUrl(this.loanAsQueryParameters, \"tradeIn\", this.tradeIn, false);\n this.loanAsQueryParameters = concatUrl(this.loanAsQueryParameters, \"downPayment\", this.downPayment, false);\n this.loanAsQueryParameters = concatUrl(this.loanAsQueryParameters, \"name\", this.name, false);\n\n this.loanAsQueryParameters = concatUrl(this.loanAsQueryParameters, \"loanLength\", this.loanLength, false);\n this.loanAsQueryParameters = concatUrl(this.loanAsQueryParameters, \"rate\", this.rate, false);\n this.loanAsQueryParameters = concatUrl(this.loanAsQueryParameters, \"price\", this.price, false);\n this.loanAsQueryParameters = concatUrl(this.loanAsQueryParameters, \"taxRate\", this.taxRate, false);\n this.loanAsQueryParameters = concatUrl(this.loanAsQueryParameters, \"startDate\", this.startDate, false);\n }\n\n buildAmoritizationSchedule(): void {\n this.amoritizationSchedule = [];\n\n let firstPeriod = new Period(this.monthlyPayment,\n this.totalFinanced,\n 1,\n this.startDate,\n this.rateAsPercent,\n this.periodLength, 0, 0);\n\n this.amoritizationSchedule.push(firstPeriod);\n\n let nextPeriod = firstPeriod;\n\n while (nextPeriod.endingBalance > 0) {\n\n nextPeriod = new Period(this.monthlyPayment,\n nextPeriod.endingBalance,\n nextPeriod.nextId(),\n nextPeriod.nextDate(),\n this.rateAsPercent,\n this.periodLength,\n nextPeriod.cumulativePrincipal,\n nextPeriod.cumulativeInterest);\n\n this.amoritizationSchedule.push(nextPeriod);\n }\n\n }\n\n /**\n * the start date of the loan\n */\n startDate: Date;\n\n constructor(name: string,\n price: number,\n stateTaxRate: number,\n loanLength: number = 36,\n loanRate: number = 5.00,\n downPayment: number = 0,\n discount: number = 0,\n tradeIn: number = 0,\n startDate: Date = undefined) {\n\n this.name = name;\n this.fullName = `Car ${name}`;\n this.price = price;\n this.taxRate = stateTaxRate;\n this.loanLength = loanLength;\n this.rate = loanRate;\n this.downPayment = downPayment;\n this.discount = discount;\n this.tradeIn = tradeIn;\n\n if (startDate === undefined) {\n this.startDate = new Date();\n } else {\n this.startDate = startDate;\n }\n\n this.startDate.setMonth(this.startDate.getMonth() + 1, 1);\n\n this.amoritizationSchedule = [];\n\n this.recalculate();\n }\n\n /**\n * convert periods to x axis labels\n * */\n private xAxisPeriodSeriesGeneration(): string[] {\n\n const periodStarts: string[] = [];\n\n this.amoritizationSchedule.forEach(period => {\n\n let xAxisLabel: string;\n xAxisLabel = period\n .date\n .toLocaleString('default', { month: 'short' })\n .toLocaleUpperCase();\n\n const year = period\n .date\n .getFullYear()\n .toString()\n .substr(2, 2);\n\n xAxisLabel = `${xAxisLabel} ${year}`;\n\n periodStarts.push(xAxisLabel);\n });\n\n return periodStarts;\n }\n\n /**\n * cumulative principal series data\n * */\n cumulativePrincipalSeriesGeneration(): number[] {\n return this.amoritizationSchedule.map((value) => {\n\n if (value?.cumulativePrincipal >= 0) {\n return value.cumulativePrincipal;\n }\n\n return 0;\n });\n }\n\n /**\n * cumulative interest series data\n * */\n cumulativeInterestSeriesGeneration(): number[] {\n return this.amoritizationSchedule.map((value) => {\n\n if (value?.cumulativeInterest >= 0) {\n return value.cumulativeInterest;\n }\n\n return 0\n });\n }\n\n /**\n * cumulative balance series data\n * */\n cumulativeBalanceSeriesGeneration(): number[] {\n return this.amoritizationSchedule.map((value) => {\n\n if (value?.endingBalance >= 0) {\n return value.endingBalance;\n }\n\n return 0;\n });\n }\n}\n","/**\n * An amoritization period\n * */\nexport class Period {\n\n /**\n * unique identifier and current period\n **/\n id: number\n\n nextId(): number {\n return this.id + 1;\n }\n\n /**\n * date of the period\n **/ \n date: Date;\n\n nextDate(): Date {\n\n const nextMonth: number = this.date.getMonth() + 1;\n\n const nextMonthDate = new Date(this.date);\n nextMonthDate.setMonth(nextMonth, 1);\n\n return nextMonthDate;\n }\n\n /**\n * balance at the start of the period\n **/ \n principal: number\n\n /**\n * total amount of payment (should be constant)\n **/\n payment: number;\n\n /**\n * interest paid for period\n **/\n interest: number;\n\n /**\n * portion of loan payment that goes towards the principal\n **/\n startingBalance: number;\n\n /**\n * cumulative principal paid\n **/ \n cumulativePrincipal: number;\n\n /**\n * cumulative interest paid\n **/ \n cumulativeInterest: number;\n\n /**\n * outstanding principal to be paid\n **/ \n endingBalance: number;\n\n /**\n * interest rate for this period\n **/ \n interestRate: number;\n\n /**\n * length \n */\n periodLength: number;\n\n /**\n * Excel headers for amoritization schedule\n * */\n public static excelHeaders(): string[] {\n return [\"id\",\n \"date\",\n \"principal\",\n \"payment\",\n \"interest\",\n \"starting balance\",\n \"cumulative principal\",\n \"cumulative interest\",\n \"ending balance\",\n \"interest rate\",\n \"period length\",\n ];\n }\n\n constructor(payment: number, startingBalance: number, currentPeriod: number, date: Date, interestRate: number, periodLength: number, previousCumPrincipal: number, previousCumInterest: number) {\n \n this.payment = payment;\n this.startingBalance = startingBalance;\n this.id = currentPeriod;\n this.date = date;\n this.interestRate = interestRate;\n this.periodLength = periodLength;\n\n this.cumulativePrincipal = previousCumPrincipal;\n this.cumulativeInterest = previousCumInterest;\n\n // perform calculations\n this.calcInterestByPrincipal(this.startingBalance);\n this.calcPrincipalPayment();\n this.calcEndingBalancing();\n this.calcCumPrincipal();\n this.calcCumInterest();\n }\n\n /**\n * Calculate the interest per principal\n * @param startingPrincipal\n */\n private calcInterestByPrincipal(startingPrincipal: number): void {\n this.interest = (this.interestRate / this.periodLength) * startingPrincipal;\n }\n\n private calcPrincipalPayment() {\n this.principal = this.payment - this.interest;\n }\n\n private calcEndingBalancing() {\n this.endingBalance = this.startingBalance - this.principal;\n }\n\n private calcCumPrincipal(): void {\n this.cumulativePrincipal = this.cumulativePrincipal + this.principal;\n }\n\n private calcCumInterest(): void {\n this.cumulativeInterest = this.cumulativeInterest + this.interest;\n }\n}\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Component, OnChanges, OnInit, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatTabChangeEvent } from '@angular/material/tabs';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AmoritizationScheduleComponent } from '../amoritization-schedule/amoritization-schedule.component';\nimport { LoanUrlService } from '../loan-url.service';\nimport { LoanComponent } from '../loan/loan.component';\nimport { PriceWizardComponent } from '../price-wizard/price-wizard.component';\nimport { ShareButtonComponent } from '../share-button/share-button.component';\nimport { Loan } from './Loan';\n\n@Component({\n selector: 'app-calculator',\n templateUrl: './calculator.component.html',\n styleUrls: ['./calculator.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CalculatorComponent implements OnInit, OnChanges {\n\n @ViewChild('loanSchedule')\n loanASchedule: AmoritizationScheduleComponent;\n\n @ViewChild('loanAForm')\n loanAForm: LoanComponent;\n\n @ViewChild('loanBForm')\n loanBForm: LoanComponent;\n\n @ViewChild('loanCForm')\n loanCForm: LoanComponent;\n\n //@ViewChild('shareButton')\n //shareButton: ShareButtonComponent;\n\n primaryLoan: Loan;\n secondaryLoan: Loan;\n tertiaryLoan: Loan;\n\n loan: Loan;\n loanB: Loan;\n loanC: Loan;\n\n currentWizardLoan: Loan;\n\n quickCalUrl: string;\n\n constructor(public dialog: MatDialog,\n private breakpointObserver: BreakpointObserver,\n private loanUrlService: LoanUrlService,\n private activeRoute: ActivatedRoute,\n private router: Router ) {\n\n }\n\n ngOnInit(): void {\n this.quickCalUrl = window.location.href.split('?')[0];\n\n this.loan = this.loanUrlService.extractLoanQueryParamsOrHistoryState(this.activeRoute.snapshot, history.state)\n\n this.loanB = new Loan(\"B\", 40_000.00, 6.25);\n this.loanC = new Loan(\"C\", 45_000.00, 6.25);\n\n this.openPriceWizard(this.loan);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.loan.recalculate();\n }\n\n goToQuickCalc() {\n this.router.navigateByUrl('home', {state: this.loan})\n }\n\n /**\n * determine if we need to show the modal dialog window \n * @param $event\n */\n onTabChanged($event: MatTabChangeEvent) {\n\n switch ($event.index) {\n case 0:\n this.tabChangeCheckFirstView(this.loan);\n this.currentWizardLoan = this.loan;\n break;\n case 1:\n this.tabChangeCheckFirstView(this.loanB);\n this.currentWizardLoan = this.loanB;\n break;\n case 2:\n this.tabChangeCheckFirstView(this.loanC);\n this.currentWizardLoan = this.loanC;\n break;\n default:\n break;\n }\n }\n\n /**\n * Check the current loan to see if it's been shown already\n * @param currentLoan\n */\n tabChangeCheckFirstView(currentLoan: Loan) {\n if (!currentLoan.isFirstView()) {\n this.openPriceWizard(currentLoan);\n }\n }\n\n /**\n * Open the dialog with selected loan\n * @param currentLoan\n */\n openPriceWizard(currentLoan: Loan): void {\n\n currentLoan.setFirstView();\n\n this.currentWizardLoan = currentLoan;\n const width = this.breakpointObserver.isMatched(Breakpoints.Handset) ? \"100%\" : \"600px\";\n\n const dialogRef = this.dialog.open(PriceWizardComponent, {\n width: width,\n data: this.currentWizardLoan,\n panelClass: \"my-dialog\",\n backdropClass: \"price-wizard-backdrop\",\n disableClose: true\n });\n\n dialogRef.afterClosed().subscribe(result => {\n //this.currentWizardLoan = result;\n });\n }\n}\n","
\n \n \n \n
\n
\n {{loan.fullName}}\n
\n
\n {{loan.totalCost | currency}}\n
\n
\n
\n \n \n \n \n
\n \n \n
\n
\n {{loanB.fullName}}\n
\n
\n {{loanB.totalCost | currency}}\n
\n
\n
\n \n \n \n \n
\n \n \n
\n
\n {{loanC.fullName}}\n
\n
\n {{loanC.totalCost | currency}}\n
\n
\n
\n \n \n \n \n
\n \n
\n \n \n \n \n\n \n \n
\n","import { InjectionToken } from \"@angular/core\";\nimport { environment } from \"../../environments/environment\";\n\nexport const API_PATH_VALUE = environment.API_PATH;\n\nexport let API_PATH_INJECTABLE = new InjectionToken(\"API_PATH\");\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { ErrorComponent } from './error/error.component';\n\nconst routes: Routes = [\n { path: 'error', component: ErrorComponent, pathMatch: 'full',},\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class CoreRoutingModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { API_PATH_INJECTABLE, API_PATH_VALUE } from './api-path.constant';\nimport { CoreRoutingModule } from './core-routing.module';\nimport { ErrorComponent } from './error/error.component';\n\n@NgModule({\n declarations: [\n ErrorComponent\n ],\n exports: [\n ErrorComponent\n ],\n imports: [\n CommonModule,\n CoreRoutingModule\n ],\n providers: [\n { provide: API_PATH_INJECTABLE, useValue: API_PATH_VALUE }\n ]\n})\nexport class CoreModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-error',\n templateUrl: './error.component.html',\n styleUrls: ['./error.component.scss']\n})\nexport class ErrorComponent implements OnInit {\n\n constructor(private router: Router) {\n\n }\n\n ngOnInit(): void {\n }\n}\n","
\n

Error: Encountered

\n
\n","import { Component, Inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\n@Component({\n selector: 'app-fetch-data',\n templateUrl: './fetch-data.component.html'\n})\nexport class FetchDataComponent {\n public forecasts: WeatherForecast[];\n\n constructor(http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\n http.get(baseUrl + 'weatherforecast').subscribe(result => {\n this.forecasts = result;\n }, error => console.error(error));\n }\n}\n\ninterface WeatherForecast {\n date: string;\n temperatureC: number;\n temperatureF: number;\n summary: string;\n}\n","

Weather forecast

\n\n

This component demonstrates fetching data from the server.

\n\n

Loading...

\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
DateTemp. (C)Temp. (F)Summary
{{ forecast.date }}{{ forecast.temperatureC }}{{ forecast.temperatureF }}{{ forecast.summary }}
\n","import { Component, Input, OnInit, SimpleChanges, ViewEncapsulation } from '@angular/core';\n/*import { Options, LabelType} from '@angular-slider/ngx-slider';*/\nimport { Loan } from '../calculator/Loan';\n\n@Component({\n selector: 'financing',\n templateUrl: './financing.component.html',\n styleUrls: ['./financing.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FinancingComponent implements OnInit {\n\n @Input()\n loan: Loan;\n\n //loanLengthOptions: Options = {\n // floor: 0,\n // step: 1,\n // ceil: 84,\n // showTicks: true,\n // //showTicksValues: true,\n // showSelectionBar: true,\n // //showTicksValues: true,\n // ticksArray: [0, 12, 24, 36, 48, 60, 72, 84],\n // translate: (value: number, label: LabelType): string => {\n\n // switch (label) {\n // case LabelType.Low:\n // return value.toString();\n // case LabelType.High:\n // return value.toString();\n // default:\n // return '';\n // }\n // },\n //};\n\n //loanRateOptions: Options = {\n // floor: 0,\n // step: .01,\n // ceil: 30,\n // //showTicks: true,\n // showTicksValues: true,\n // showSelectionBar: true,\n // ticksArray: [0, 5, 10, 15, 20, 25, 30],\n // translate: (value: number, label: LabelType): string => {\n\n // switch (label) {\n // case LabelType.Low:\n // return `${Math.floor(value)}%`;\n // case LabelType.High:\n // return `${Math.floor(value)}%`;\n // default:\n // return '';\n // }\n // },\n //};\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const newLoanData: Loan = (changes.loan.currentValue);\n this.loan = newLoanData;\n }\n\n /**\n * format percent values\n * @param value\n */\n formatPercent(value: number) {\n return `${value}%`;\n }\n\n}\n","
\n
\n \n
\n
\n \n \n \n
\n
\n\n\n \n
\n
\n
\n
\n \n
\n
\n \n \n \n % \n \n \n {{loan.totalInterest | currency}}\n \n \n
\n
\n\n\n \n
\n
\n","import { Component, AfterViewInit, Input } from \"@angular/core\"\n\n@Component({\n //moduleId: module.id,\n selector: \"google-adsense\",\n templateUrl: \"./banner.component.html\"\n})\nexport class BannerComponent implements AfterViewInit {\n @Input() data;\n constructor() { }\n ngAfterViewInit() {\n setTimeout(() => {\n try {\n (window[\"adsbygoogle\"] = window[\"adsbygoogle\"] || []).push({});\n } catch (e) {\n console.error(e);\n }\n }, 2000);\n }\n}\n","
\n \n \n \n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BannerComponent } from './banner/banner.component';\n\n@NgModule({\n declarations: [BannerComponent],\n imports: [\n CommonModule\n ],\n exports: [\n BannerComponent\n ]\n})\nexport class GoogleAdsenseModule { }\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthGuard } from '@auth0/auth0-angular';\nimport { LoginComponent } from './login/login.component'\nimport { LogoutComponent } from './logout/logout.component';\nimport { ProfileComponent } from './profile/profile.component';\n\nconst routes: Routes = [\n { path: 'logout', component: LogoutComponent, pathMatch: 'full', canActivate: [AuthGuard] },\n { path: 'profile', component: ProfileComponent, canActivate: [AuthGuard] },\n { path: 'login', component: LoginComponent }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class IdentityRoutingModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { IdentityRoutingModule } from './identity-routing.module';\nimport { LoginButtonComponent } from './login-button/login-button.component';\nimport { LogoutButtonComponent } from './logout-button/logout-button.component';\nimport { LogoutComponent } from './logout/logout.component';\nimport { ProfileComponent } from './profile/profile.component';\nimport { SignupButtonComponent } from './signup-button/signup-button.component';\nimport { LoginComponent } from './login/login.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CoreModule } from '../core/core.module';\n\n@NgModule({\n declarations: [\n LogoutComponent,\n LoginButtonComponent,\n LogoutButtonComponent,\n SignupButtonComponent,\n ProfileComponent,\n LoginComponent\n ],\n imports: [\n CoreModule,\n HttpClientModule,\n CommonModule,\n MatButtonModule,\n MatIconModule,\n IdentityRoutingModule\n ],\n exports: [\n LogoutComponent,\n LoginButtonComponent,\n LogoutButtonComponent,\n SignupButtonComponent,\n ProfileComponent\n ],\n})\nexport class IdentityModule { }\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { API_PATH_INJECTABLE } from '../core/api-path.constant';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IdentityService {\n\n constructor(@Inject(API_PATH_INJECTABLE) private readonly API_PATH: string,\n private http: HttpClient) {\n\n }\n\n login() {\n return this.http.post(`${this.API_PATH}/api/identity`, undefined);\n }\n}\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Component, OnInit } from '@angular/core';\nimport { AuthService } from '@auth0/auth0-angular';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\n@Component({\n selector: 'app-login-button',\n templateUrl: './login-button.component.html',\n styleUrls: ['./login-button.component.scss']\n})\nexport class LoginButtonComponent implements OnInit {\n\n isHandset$: Observable = this.breakpointObserver.observe(Breakpoints.Handset)\n .pipe(\n map(result => result.matches),\n shareReplay()\n );\n\n\n constructor(public auth: AuthService, private breakpointObserver: BreakpointObserver,) { }\n\n ngOnInit(): void {\n }\n\n loginWithRedirect(): void {\n this.auth\n .loginWithRedirect({\n async openUrl(url: string) {\n await window.location.replace(`${this.doc.location.origin}/home`);\n }\n })\n .subscribe();\n }\n}\n","\n\n
\n Login\n\n\n\n","import { AfterViewInit, Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { IdentityService } from '../identity.service';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss']\n})\nexport class LoginComponent implements OnInit, AfterViewInit {\n\n constructor(private router: Router, private identityService: IdentityService) {\n\n }\n\n ngOnInit(): void {\n\n }\n\n ngAfterViewInit(): void {\n this.identityService.login().subscribe(result => {\n this.router.navigate(['/calculator'])\n }, error => {\n console.log(error);\n this.router.navigate(['/error'])\n });\n }\n}\n","

\n One moment, logging into the Carculator....\n

\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { DOCUMENT } from '@angular/common';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { AuthService } from '@auth0/auth0-angular';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\n@Component({\n selector: 'app-logout-button',\n templateUrl: './logout-button.component.html',\n styleUrls: ['./logout-button.component.scss']\n})\nexport class LogoutButtonComponent implements OnInit {\n\n isHandset$: Observable = this.breakpointObserver.observe(Breakpoints.Handset)\n .pipe(\n map(result => result.matches),\n shareReplay()\n );\n\n constructor(public auth: AuthService,\n @Inject(DOCUMENT) private doc: Document, private breakpointObserver: BreakpointObserver,) { }\n\n ngOnInit(): void {\n }\n\n logout(): void {\n this.auth.logout({\n async openUrl(url) {\n window.location.replace(url);\n }\n });\n }\n}\n","\n\n Logout\n\n\n\n","import { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, Component, Inject, OnInit } from '@angular/core';\nimport { AuthService, LogoutOptions } from '@auth0/auth0-angular';\n\n@Component({\n selector: 'app-logout',\n templateUrl: './logout.component.html',\n styleUrls: ['./logout.component.scss']\n})\nexport class LogoutComponent implements OnInit, AfterViewInit {\n\n constructor(public auth: AuthService, @Inject(DOCUMENT) private doc: Document) {\n\n }\n\n ngAfterViewInit(): void {\n this.auth.logout({\n async openUrl(url) {\n window.location.replace(url);\n }\n });\n }\n\n ngOnInit(): void {\n\n }\n}\n\n\n","

\n Logging out....\n

\n","import { Component, OnInit } from '@angular/core';\nimport { AuthService } from '@auth0/auth0-angular';\n\n@Component({\n selector: 'app-profile',\n templateUrl: './profile.component.html',\n styleUrls:['./profile.component.scss']\n})\nexport class ProfileComponent implements OnInit {\n profileJson: string = null;\n\n constructor(public auth: AuthService) { }\n\n ngOnInit(): void {\n this.auth.user$.subscribe(\n (profile) => (this.profileJson = JSON.stringify(profile, null, 2)),\n );\n }\n}\n","
\n
\n
\n \"User's\n
\n
\n

{{ user.name }}

\n

{{ user.email }}

\n
\n
\n
\n
{{ profileJson }}
\n
\n
\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Component, OnInit } from '@angular/core';\nimport { AuthService } from '@auth0/auth0-angular';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\n@Component({\n selector: 'app-signup-button',\n templateUrl: './signup-button.component.html',\n})\nexport class SignupButtonComponent implements OnInit {\n\n isHandset$: Observable = this.breakpointObserver.observe(Breakpoints.Handset)\n .pipe(\n map(result => result.matches),\n shareReplay()\n );\n\n constructor(public auth: AuthService, private breakpointObserver: BreakpointObserver,) { }\n\n ngOnInit(): void { }\n\n loginWithRedirect(): void {\n this.auth.logout({\n async openUrl(url) {\n window.location.replace(url);\n }\n });\n }\n}\n","\n\n\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-about',\n templateUrl: './about.component.html',\n styleUrls: ['./about.component.scss']\n})\nexport class AboutComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n
\n
\n \n \n \n About\n \n \n \n According to research by Kelly Blue Book,\n the average new vehicle purchase was roughly $37,000 in 2020. While the average purchase price has grown signficantly, so has the average auto loan.\n
\n
\n Depending on the consumer credit score, Experian reports\n the average length of an automotive loan is 72 months!\n
\n
\n Americans are spending more on their rides than ever before and taking longer than ever to pay off their automotive purchase.\n
\n
\n
\n
\n
\n
\n \n \n \n Root Cause\n \n \n \n CalcMyRide believes that auto loan consumers are being pursuaded to pay more for their vehicle because they are being\n conditioned to focus on the monthly payment and not the total cost of purchase.\n \n \n
\n
\n
\n
\n \n \n \n Difference Maker\n \n \n \n CalcMyRide allows consumers to easily calculate the true price a vehicle purchase rather then the monthly payment.\n
\n
\n We believe in giving consumers the tools they need to understand how and where their hard earned capital is being deployed.\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-home',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.scss']\n})\nexport class HomeComponent {\n\n constructor(private router: Router) {\n\n }\n\n goToQuickCalc() {\n this.router.navigate(['/quick-calc']);\n }\n\n}\n","
\n
\n
\n

\n Welcome to the CalcMyRide App!\n

\n

\n Easily calculate and compare the true price of a vehicle purchase across multiple financing scenarios.\n

\n

\n Let's Get Started!\n

\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { QuickCalcComponent } from '../quick-calculator/quick-calc.component';\nimport { AboutComponent } from './about/about.component';\nimport { HomeComponent } from './home/home.component';\n\nconst routes: Routes = [\n { path: '', component: QuickCalcComponent, pathMatch: 'full' },\n /* { path: '', component: HomeComponent, pathMatch: 'full' },*/\n /* { path: 'home', component: HomeComponent, pathMatch: 'full' },*/\n { path: 'home', component: QuickCalcComponent, pathMatch: 'full' },\n { path: 'about', component: AboutComponent },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class LandingPageRoutingModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AboutComponent } from './about/about.component';\nimport { HomeComponent } from './home/home.component';\nimport { LandingPageRoutingModule } from './landing-page-routing.module';\nimport { MatCardModule } from '@angular/material/card';\nimport { GoogleAdsenseModule } from '../google-adsense/google-adsense.module';\nimport { MatButtonModule } from '@angular/material/button';\n\n@NgModule({\n declarations: [\n AboutComponent,\n HomeComponent,\n ],\n imports: [\n CommonModule,\n MatCardModule,\n MatButtonModule,\n GoogleAdsenseModule,\n LandingPageRoutingModule\n ],\n exports: [\n AboutComponent,\n HomeComponent\n ]\n})\nexport class LandingPageModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { RouterModule } from '@angular/router';\nimport { ApiAuthorizationModule } from '../../api-authorization/api-authorization.module';\nimport { IdentityModule } from '../identity/identity.module';\nimport { MainNavComponent } from './main-nav/main-nav.component';\nimport { NavMenuComponent } from './nav-menu/nav-menu.component';\n\n@NgModule({\n declarations: [\n MainNavComponent,\n NavMenuComponent,\n ],\n imports: [\n //ApiAuthorizationModule,\n IdentityModule,\n CommonModule,\n MatButtonModule,\n MatSidenavModule,\n MatToolbarModule,\n MatListModule,\n MatIconModule,\n RouterModule\n ],\n exports: [\n MainNavComponent,\n NavMenuComponent\n ]\n})\nexport class LayoutModule { }\n","import { Component } from '@angular/core';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { AuthService } from '@auth0/auth0-angular';\n\n@Component({\n selector: 'app-main-nav',\n templateUrl: './main-nav.component.html',\n styleUrls: ['./main-nav.component.scss']\n})\nexport class MainNavComponent {\n\n isHandset$: Observable = this.breakpointObserver.observe(Breakpoints.Handset)\n .pipe(\n map(result => result.matches),\n shareReplay()\n );\n\n constructor(private breakpointObserver: BreakpointObserver, public auth: AuthService) { }\n\n}\n","\n \n \n CalcMyRide\n \n \n \n Home\n \n \n \n Quick Calc\n \n \n Advanced\n \n \n About\n \n \n support\n \n \n \n \n \n \n \n \n \n \n \n \n CalcMyRide\n \n \n\n \n \n \n \n \n Quick Calc\n \n \n \n \n Advanced\n \n \n \n \n About\n \n \n \n \n Support\n \n \n \n \n \n \n \n \n\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-nav-menu',\n templateUrl: './nav-menu.component.html',\n styleUrls: ['./nav-menu.component.scss']\n})\nexport class NavMenuComponent {\n isExpanded = false;\n\n collapse() {\n this.isExpanded = false;\n }\n\n toggle() {\n this.isExpanded = !this.isExpanded;\n }\n}\n","
\n \n
\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { MatAccordion } from '@angular/material/expansion';\nimport { AmoritizationScheduleComponent } from '../amoritization-schedule/amoritization-schedule.component';\nimport { Loan } from '../calculator/Loan';\nimport html2canvas from 'html2canvas';\n\n@Component({\n selector: 'loan-summary',\n templateUrl: './loan-summary.component.html',\n styleUrls: ['./loan-summary.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class LoanSummaryComponent implements OnInit, OnChanges {\n\n @ViewChild(MatAccordion)\n accordion: MatAccordion;\n\n @ViewChild('loanSchedule')\n loanASchedule: AmoritizationScheduleComponent;\n\n @Input()\n loan: Loan;\n\n constructor() { }\n\n ngOnInit(): void {\n\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const newLoanData: Loan = (changes.loan.currentValue);\n this.loan = newLoanData;\n }\n\n /**\n * format percent values\n * @param value\n */\n formatPercent(value: number) {\n return `${value}%`;\n }\n\n /**\n * details on summaries\n **/\n saveDetailSummary() {\n\n const name = \"calcmyride_details_summary.png\";\n const detailsPage = document.getElementsByClassName('details-summary-html2canvas')[0] as HTMLElement;\n\n html2canvas(detailsPage).then((canvas) => {\n this.saveAs(canvas.toDataURL(), name);\n });\n }\n\n /**\n * save the detail timeline\n **/\n saveDetailTimeline() {\n const name = \"calcmyride_details_timeline.png\";\n const detailsPage = document.getElementsByClassName('details-timeline-html2canvas')[0] as HTMLElement;\n\n html2canvas(detailsPage).then((canvas) => {\n this.saveAs(canvas.toDataURL(), name);\n });\n }\n\n saveAs(uri, filename) {\n\n const link = document.createElement('a');\n\n link.href = uri;\n link.download = filename;\n\n //Firefox requires the link to be in the body\n document.body.appendChild(link);\n\n //simulate click\n link.click();\n\n //remove the link when done\n document.body.removeChild(link);\n }\n}\n","
\n
\n \n
\n
\n \n \n \n Price + Interest + Tax\n \n \n
\n
\n\n\n\n
\n
\n

\n Purchase Breakdown\n

\n
\n
\n \n \n \n \n Details\n \n \n \n \n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n
\n \n \n \n Pricing Chart\n \n \n \n \n \n \n \n \n \n \n Amoritization Timeline\n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Params } from '@angular/router';\nimport { Loan } from './calculator/Loan';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoanUrlService {\n\n constructor() { }\n\n extractLoanQueryParamsOrHistoryState(routeSnapshot: ActivatedRouteSnapshot, history: any): Loan {\n let currentLoan: Loan;\n\n currentLoan = this.extractLoanFromQueryParams(routeSnapshot);\n\n if (currentLoan === undefined) {\n currentLoan = this.extractLoanFromStateHistory(history);\n }\n\n if (currentLoan === undefined) {\n currentLoan = new Loan(\"My New Ride\", 35_000.00, 6.25);\n }\n\n return currentLoan;\n }\n\n extractLoanFromQueryParams(routeSnapshot: ActivatedRouteSnapshot): Loan {\n\n const queryParams: Params = routeSnapshot.queryParams;\n\n return this.extractQueryParams(queryParams);\n }\n\n extractLoanFromRouterState(state: Params): Loan {\n return this.extractQueryParams(state);\n }\n\n /**\n * extract the loan from the state history\n * */\n private extractLoanFromStateHistory(history: any): Loan {\n let loan: Loan = undefined;\n\n if (history != undefined) {\n const name: string = history?.name;\n const price: number = history?.price;\n const stateTaxRate: number = history?.taxRate;\n const loanLength: number = history?.loanLength;\n const loanRate: number = history?.rate;\n const downPayment: number = history?.downPayment;\n const discount: number = history?.discount;\n const tradeIn: number = history?.tradeIn;\n const startDate: Date = history?.startDate;\n\n if (typeof name != 'undefined' && name) {\n loan = new Loan(name, price, stateTaxRate, loanLength, loanRate, downPayment, discount, tradeIn, startDate);\n }\n }\n\n return loan;\n }\n\n /**\n * extract params from a state extract\n * */\n private extractQueryParams(queryParams: Params): Loan {\n\n let loan: Loan = undefined;\n\n if (queryParams !== undefined) {\n const name: string = queryParams['name'];\n const price: number = Number(queryParams['price']);\n const stateTaxRate: number = Number(queryParams['taxRate']);\n const loanLength: number = Number(queryParams['loanLength']);\n const loanRate: number = Number(queryParams['rate']);\n const downPayment: number = Number(queryParams['downPayment']);\n const discount: number = Number(queryParams['discount']);\n const tradeIn: number = Number(queryParams['tradeIn']);\n const dateString: string = queryParams['startDate'];\n\n let startDate: Date = new Date();\n\n if (dateString !== undefined) {\n startDate = new Date(dateString);\n }\n\n if (typeof name != 'undefined' && name) {\n loan = new Loan(name, price, stateTaxRate, loanLength, loanRate, downPayment, discount, tradeIn, startDate);\n }\n }\n\n return loan\n }\n}\n","import { Component, Input, OnInit, SimpleChanges, ViewChild } from '@angular/core';\nimport { AmoritizationScheduleComponent } from '../amoritization-schedule/amoritization-schedule.component';\nimport { Loan } from '../calculator/Loan';\nimport { LoanSummaryComponent } from '../loan-summary/loan-summary.component';\nimport { PricingComponent } from '../pricing/pricing.component';\n\n@Component({\n selector: 'loan',\n templateUrl: './loan.component.html',\n styleUrls: ['./loan.component.scss']\n})\nexport class LoanComponent implements OnInit {\n\n @Input()\n loan: Loan;\n\n @ViewChild('loanPricing')\n loanPricing: PricingComponent;\n\n @ViewChild('loanPricing')\n loanFinancing: PricingComponent;\n\n @ViewChild('loanSummary')\n loanSummary: LoanSummaryComponent;\n\n @ViewChild('loanSchedule')\n loanASchedule: AmoritizationScheduleComponent;\n\n constructor() { }\n\n ngOnInit(): void {\n \n }\n\n ngOnChanges(changes: SimpleChanges) {\n const newLoanData: Loan = (changes.loan.currentValue);\n this.loan = newLoanData;\n }\n\n}\n","
\n
\n
\n
\n
\n
\n \n \n Summary\n \n \n Schedule\n \n \n Price\n \n \n Finance\n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n","import { Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'app-playground',\n templateUrl: './playground.component.html',\n styleUrls: ['./playground.component.scss']\n})\nexport class PlaygroundComponent implements OnInit, OnChanges {\n\n public price: number;\n\n ngOnInit(): void {\n //throw new Error('Method not implemented.');\n console.log(\"ngOnInit() called...\");\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n console.log(\"Ng Changes Called...\");\n //throw new Error('Method not implemented.');\n }\n\n changesMethod(): void {\n console.log(\"ChangesMethod called...\")\n }\n\n}\n","
\n
\n
\n

Welcome to the Calc My Ride Playground

\n\n

Standard Input

\n \n
\n Price Output: {{price}}\n\n

Material Input

\n \n \n Material Price\n \n \n \n  $\n \n \n
\n
\n
\n\n","import { Component, OnInit, Inject, ViewEncapsulation, ChangeDetectorRef } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Loan } from '../calculator/Loan';\nimport { PricingService } from '../pricing.service';\nimport { TaxRate } from '../pricing/TaxRate';\n\n@Component({\n selector: 'app-price-wizard',\n templateUrl: './price-wizard.component.html',\n styleUrls: ['./price-wizard.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PriceWizardComponent implements OnInit {\n\n loan: Loan;\n stateTaxRates: TaxRate[];\n showExplanation: boolean = false;\n\n constructor(public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: Loan,\n private pricingService: PricingService,\n private ref: ChangeDetectorRef) {\n this.loan = data;\n\n this.stateTaxRates = pricingService.generateTaxRates();\n }\n\n ngOnInit(): void {\n\n }\n\n formatThousands = (value: number) => {\n return this.pricingService.formatThousands(value);\n }\n\n formatPercent = (value: number) => {\n return this.pricingService.formatPercent(value);\n }\n\n toggleExplanation(): void {\n this.showExplanation = !this.showExplanation;\n }\n\n selectTaxRate(value: number) {\n this.loan.updateTaxSelection(value);\n this.ref.markForCheck();\n }\n\n closePriceWizard(): void {\n this.dialogRef.close(this.loan);\n }\n}\n","\n\n\n \n\n \n \n
\n
\n

\n {{loan.fullName}}\n

\n

\n Price\n

\n
\n
\n Some folks want you to focus on your monthly payment but that's not what truly matters when purchasing a vehicle. The most important number in the purchase of any vehicle is the price.\n Focusing on price keeps vehicle purchases reasonable and within budget. Enter the price of your vehicle.\n
\n
\n
\n
\n \n \n Price\n \n \n \n \n  $\n \n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n
\n\n \n \n
\n
\n

\n {{loan.fullName}}\n

\n

\n Discount\n

\n
\n
\n Many auto dealerships will offer manufacturer rebates, special holiday pricing, military discounts or potentially you may be able to negotiate a better price than what has been listed.\n Enter any discounts as a combined value.\n
\n
\n
\n
\n \n \n Discounts\n \n \n \n \n  $\n \n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n\n \n \n
\n
\n

\n {{loan.fullName}}\n

\n

\n Trade-In\n

\n
\n
\n Trading in your existing vehicle will help reduce the overall cost of your purchase. You can use a 3rd party service such as Kelly Blue Book\n or Edmunds True Market Value to value your car and then enter its value here.\n
\n
\n
\n
\n \n \n Trade-In\n \n \n \n \n  $\n \n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n\n \n \n
\n
\n

\n {{loan.fullName}}\n

\n

\n Down Payment\n

\n
\n
\n The down payment is the cold hard cash you will put into the the initial price of a vehicle. The more down payment you can pay the better. In the long run,\n a larger down payment means you pay off your car faster and save money on interest. Enter your down payment here.\n
\n
\n
\n
\n \n \n \n \n  $\n \n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n\n \n \n
\n
\n

\n {{loan.fullName}}\n

\n

\n State Taxes\n

\n
\n
\n Few things are more certain in life than death and state taxes. When purchasing an automobile, you will aways need to consider how much taxes will cost on the vehicle purchase.\n Select the state where you will be purchasing your vehicle.\n
\n
\n
\n
\n \n \n State Tax\n \n \n \n \n {{stateRate.label}}\n \n \n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n\n \n \n
\n
\n

\n {{loan.fullName}}\n

\n

\n Loan Length\n

\n
\n
\n The loan length is the amount of time that it will take you to pay off vehicle purchase if you get a loan. This is usually in months (eg. 12, 24, 36, 48, 60 or even 72 months). The shorter\n the terms of the loan the less money you will pay in interest for your vehicle. Enter the length of your loan in months.\n
\n
\n
\n
\n \n \n Loan Length\n \n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n\n \n
\n
\n

\n {{loan.fullName}}\n

\n

\n Rate\n

\n
\n
\n Your cost to borrow money from the bank. If you don't intend to pay cash for your vehicle, you will have to finance through a bank or the dealership. The rate will\n affect the amount of interest you pay to the bank each month and is dependent on your credit score. Enter your rate here.\n
\n
\n
\n
\n \n \n \n % \n \n \n \n {{loan.totalInterest | currency}}\n \n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n\n \n \n \n attach_money\n \n \n \n \n forum\n \n \n \n \n swap_vert\n \n \n \n \n forum\n \n \n \n \n swap_vert\n \n \n \n \n forum\n \n \n \n \n forum\n \n \n
\n
\n","import { Injectable } from '@angular/core';\nimport { TaxRate } from './pricing/TaxRate';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PricingService {\n\n constructor() { }\n\n /**\n * format number values \n * @param value\n */\n formatThousands(value: number): string {\n if (value >= 1000) {\n return \"$\" + `${Math.round(value / 1000)}k`;\n }\n\n return value?.toString();\n }\n\n /**\n * format loan hint values to give an idea of other loan names\n * @param valueA\n * @param valueB\n */\n formatABThousandValues(nameA: string, valueA: number, nameB: string, valueB: number): string {\n\n if (valueA >= 1000 && valueB >= 1000) {\n return `${nameA} ${this.formatThousands(valueA)}, ${nameB} ${this.formatThousands(valueB)}`;\n }\n else if (valueA >= 1000 && valueB < 1000) {\n return `${nameA} ${this.formatThousands(valueA)}, ${nameB} $${valueB}`;\n }\n else if (valueA < 1000 && valueB >= 1000) {\n return `${nameA} $${valueA}, ${nameB} ${this.formatThousands(valueB)}`;\n }\n\n return `${nameA} $${valueA}, ${nameB} $${valueB}`;\n }\n\n /**\n * format percent values\n * @param value\n */\n formatPercent(value: number): string {\n return `${value}%`;\n }\n\n /**\n * format loan hint values for percentages\n * @param nameA\n * @param valueA\n * @param nameB\n * @param valueB\n */\n formatABPercent(nameA: string, valueA: number, nameB: string, valueB: number): string {\n return `${nameA} ${this.formatPercent(valueA)}, ${nameB} ${this.formatPercent(valueB)}`;\n }\n\n /**\n * generate US tax rate valuse\n * */\n generateTaxRates(): TaxRate[] {\n\n return [\n new TaxRate(\"None\", \"N/A\", 0),\n new TaxRate(\"Alabama\", \"AL\", 200),\n new TaxRate(\"Alaska\", \"AK\", 0),\n new TaxRate(\"Arizona\", \"AZ\", 560),\n new TaxRate(\"Arkansas\", \"AR\", 650),\n new TaxRate(\"California\", \"CA\", 725),\n new TaxRate(\"Colorado\", \"CO\", 290),\n new TaxRate(\"Connecticut\", \"CT\", 635),\n new TaxRate(\"Delaware\", \"DE\", 0),\n new TaxRate(\"Florida\", \"FL\", 600),\n new TaxRate(\"Georgia\", \"GA\", 660),\n\n new TaxRate(\"Hawaii\", \"HI\", 400),\n new TaxRate(\"Idaho\", \"ID\", 600),\n new TaxRate(\"Illinois\", \"IL\", 625),\n new TaxRate(\"Indiana\", \"IN\", 700),\n new TaxRate(\"Iowa\", \"IA\", 500),\n new TaxRate(\"Kansas\", \"KS\", 750),\n new TaxRate(\"Kentucky\", \"KY\", 600),\n new TaxRate(\"Louisiana\", \"LA\", 400),\n new TaxRate(\"Maine\", \"ME\", 550),\n new TaxRate(\"Maryland\", \"MD\", 600),\n new TaxRate(\"Massachusetts\", \"MA\", 625),\n\n new TaxRate(\"Michigan\", \"MI\", 600),\n new TaxRate(\"Minnesota\", \"MN\", 650),\n new TaxRate(\"Mississippi\", \"MS\", 500),\n new TaxRate(\"Missouri\", \"MO\", 423),\n new TaxRate(\"Montana\", \"MT\", 0),\n new TaxRate(\"Nebraska\", \"NE\", 550),\n new TaxRate(\"Nevada\", \"NV\", 825),\n new TaxRate(\"New Hampshire\", \"NH\", 0),\n new TaxRate(\"New Jersey\", \"NJ\", 663),\n new TaxRate(\"New Mexico\", \"NM\", 400),\n new TaxRate(\"New York\", \"NY\", 400),\n\n new TaxRate(\"North Carolina\", \"NC\", 300),\n new TaxRate(\"North Dakota\", \"ND\", 500),\n new TaxRate(\"Ohio\", \"OH\", 575),\n new TaxRate(\"Oklahoma\", \"OK\", 325),\n new TaxRate(\"Oregon\", \"OR\", 0),\n new TaxRate(\"Pennsylvania\", \"PA\", 600),\n new TaxRate(\"Rhode Island\", \"RI\", 700),\n new TaxRate(\"South Carolina\", \"SC\", 500),\n new TaxRate(\"South Dakota\", \"SD\", 400),\n new TaxRate(\"Tennessee\", \"TN\", 700),\n\n new TaxRate(\"Texas\", \"TX\", 625),\n new TaxRate(\"Utah\", \"UT\", 685),\n new TaxRate(\"Vermont\", \"VT\", 600),\n new TaxRate(\"Virginia\", \"VA\", 415),\n new TaxRate(\"Washington\", \"WA\", 650),\n new TaxRate(\"West Virginia\", \"WV\", 600),\n new TaxRate(\"Wisconsin\", \"WI\", 500),\n new TaxRate(\"Wyoming\", \"WY\", 600)\n ]\n }\n\n selectTaxRate(index: number, taxRates: TaxRate[]): TaxRate {\n\n if (index >= 0 && index < taxRates.length) {\n return taxRates[index];\n }\n\n return undefined;\n }\n}\n","/**\n * State tax rates\n * */\nexport class TaxRate {\n\n state: string;\n abbreviation: string;\n label: string;\n rate: number;\n percent: number;\n\n constructor(state: string, abbreviation: string, rate: number) {\n this.state = state;\n this.abbreviation = abbreviation;\n this.rate = rate;\n this.percent = this.rateAsPercent();\n this.label = `${this.state} - ${this.percent}%`;\n }\n\n private rateAsPercent() {\n return this.rate / 100;\n }\n}\n","import { ChangeDetectorRef, Component, Input, OnInit, SimpleChanges, ViewEncapsulation } from '@angular/core';\n/*import { Options, ChangeContext, PointerType, LabelType } from '@angular-slider/ngx-slider';*/\nimport { Loan } from '../calculator/Loan';\nimport { TaxRate } from './TaxRate';\nimport { PricingService } from '../pricing.service';\n\n// will need to override the css styles here\n@Component({\n selector: 'pricing',\n templateUrl: './pricing.component.html',\n styleUrls: ['./pricing.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PricingComponent implements OnInit {\n\n @Input()\n loan: Loan;\n\n stateTaxRates: TaxRate[];\n\n //sliderCostTranslationFunction = (value: number, label: LabelType): string => {\n\n // switch (label) {\n // case LabelType.Low:\n // return `${Math.round(value / 1000)}k`;\n // case LabelType.High:\n // return `${Math.round(value / 1000)}k`;\n // default:\n // return '';\n // }\n //};\n\n sliderCustomValueToPosition = (val: number, minVal: number, maxVal: number): number => {\n val = Math.sqrt(val);\n minVal = Math.sqrt(minVal);\n maxVal = Math.sqrt(maxVal);\n const range: number = maxVal - minVal;\n return (val - minVal) / range;\n };\n\n sliderCustomPositionToValue = (percent: number, minVal: number, maxVal: number): number => {\n minVal = Math.sqrt(minVal);\n maxVal = Math.sqrt(maxVal);\n const value: number = percent * (maxVal - minVal) + minVal;\n return Math.pow(value, 2);\n };\n\n //priceSliderOptions: Options = {\n // floor: 0,\n // minLimit: 0,\n // enforceRange: true,\n // ceil: 1_000_000,\n // //touchEventsInterval: // need to investigate chaning the value, and how to not get caught when scrolling\n // showSelectionBar: true,\n // showTicksValues: true,\n // showOuterSelectionBars: false,\n // showSelectionBarEnd: false,\n // translate: this.sliderCostTranslationFunction,\n // ticksArray: [10_000, 20_000, 30_000, 40_000, 50_000, 60_000, 70_000, 80_000, 90_000, 100_000, 200_000, 300_000, 400_000, 500_000, 600_000, 700_000, 800_000, 900_000],\n // customValueToPosition: this.sliderCustomValueToPosition,\n // customPositionToValue: this.sliderCustomPositionToValue\n //};\n\n discountSliderCeiling: number = 20_000;\n\n //discountSliderOptions: Options = {\n // floor: 0,\n // enforceRange: true,\n\n // ceil: 20_000,\n // showSelectionBar: true,\n // showOuterSelectionBars: false,\n // showSelectionBarEnd: false,\n // translate: this.sliderCostTranslationFunction,\n // customValueToPosition: this.sliderCustomValueToPosition,\n // customPositionToValue: this.sliderCustomPositionToValue\n //};\n\n //tradeInSliderOptions: Options = {\n // floor: 0,\n // enforceRange: true,\n\n // ceil: 1_000_000,\n // showSelectionBar: true,\n // showOuterSelectionBars: false,\n // showSelectionBarEnd: false,\n // translate: this.sliderCostTranslationFunction,\n // customValueToPosition: this.sliderCustomValueToPosition,\n // customPositionToValue: this.sliderCustomPositionToValue\n //};\n\n //downPaymentSliderOptions: Options = {\n // floor: 0,\n // enforceRange: true,\n // ceil: 1_000_000,\n // showSelectionBar: true,\n // showOuterSelectionBars: false,\n // showSelectionBarEnd: false,\n // translate: this.sliderCostTranslationFunction,\n // customValueToPosition: this.sliderCustomValueToPosition,\n // customPositionToValue: this.sliderCustomPositionToValue\n //};\n\n constructor(private pricingService: PricingService, private ref: ChangeDetectorRef) {\n this.stateTaxRates = pricingService.generateTaxRates();\n }\n\n ngOnInit(): void {\n //this.discountSliderOptions.ceil = this.loan.price;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const newLoanData: Loan = (changes.loan.currentValue);\n this.loan = newLoanData;\n\n //this.updateMaxDiscountAndDownPayment();\n }\n\n updateLoan() {\n this.loan.recalculate();\n //this.updateMaxDiscountAndDownPayment();\n }\n\n //updateMaxDiscountAndDownPayment() {\n // // hack for updating max values\n // const newDiscountOptions: Options = Object.assign({}, this.discountSliderOptions);\n // newDiscountOptions.ceil = this.loan.price;\n // this.discountSliderOptions = newDiscountOptions;\n\n // const newDownPaymentOptions: Options = Object.assign({}, this.downPaymentSliderOptions);\n\n // const newMaxDownPayment = this.loan.price - (this.loan.discount + this.loan.tradeIn)\n // newDownPaymentOptions.ceil = newMaxDownPayment > 0 ? newMaxDownPayment : 0 ;\n // this.downPaymentSliderOptions = newDownPaymentOptions;\n //}\n\n selectTaxRate(value: number) {\n this.loan.updateTaxSelection(value);\n this.ref.markForCheck();\n }\n\n /**\n * format number values \n * @param value\n */\n formatThousands = (value: number) => {\n return this.pricingService.formatThousands(value);\n }\n\n /**\n * format percent values\n * @param value\n */\n formatPercent = (value: number) => {\n return this.pricingService.formatPercent(value);\n }\n}\n","
\n
\n \n
\n
\n \n \n \n  $\n \n \n
\n
\n \n
\n
\n\n\n
\n
\n \n
\n
\n \n \n \n  $\n \n \n
\n
\n \n \n \n
\n
\n\n
\n
\n \n
\n
\n \n \n \n  $\n \n \n
\n
\n \n \n
\n
\n\n
\n
\n \n
\n
\n \n \n \n  $\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n \n {{stateRate.label}}\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n","import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Loan } from '../calculator/Loan';\nimport { LoanSummaryComponent } from '../loan-summary/loan-summary.component';\nimport { LoanUrlService } from '../loan-url.service';\nimport { PricingService } from '../pricing.service';\nimport { TaxRate } from '../pricing/TaxRate';\nimport { ShareButtonComponent } from '../share-button/share-button.component';\n\n@Component({\n selector: 'app-quick-calc',\n templateUrl: './quick-calc.component.html',\n styleUrls: ['./quick-calc.component.scss']\n})\nexport class QuickCalcComponent implements OnInit {\n\n @ViewChild('loanSummary')\n loanSummary: LoanSummaryComponent;\n\n @ViewChild('shareButtonCalc')\n shareButtonCalc: ShareButtonComponent;\n\n @ViewChild('shareButtonReview')\n shareButtonReview: ShareButtonComponent;\n\n loan: Loan;\n showExplanation: boolean = false;\n stateTaxRates: TaxRate[];\n\n quickCalUrl: string;\n\n constructor(private activeRoute: ActivatedRoute,\n private router: Router,\n private pricingService: PricingService,\n private loanUrlService: LoanUrlService,\n private ref: ChangeDetectorRef) {\n\n }\n\n ngOnInit(): void {\n this.quickCalUrl = window.location.href.split('?')[0];\n\n this.loan = this.loanUrlService.extractLoanQueryParamsOrHistoryState(this.activeRoute.snapshot, history.state)\n\n this.stateTaxRates = this.pricingService.generateTaxRates();\n }\n\n goToAdvanced() {\n this.router.navigateByUrl('calculator', { state: this.loan })\n }\n\n selectTaxRate(value: number) {\n this.loan.updateTaxSelection(value);\n this.ref.markForCheck();\n }\n}\n","
\n
\n
\n \n \n \n Quick Calc Auto Loans\n \n \n \n
\n
\n
\n
\n \n \n \n Terms\n \n \n \n
\n
\n \n \n Price\n \n \n \n  $\n \n \n
\n
\n
\n
\n \n \n Loan Length\n \n \n \n months \n \n \n
\n
\n
\n
\n \n \n Interest Rate\n \n \n \n % \n \n \n {{loan.totalInterest | currency}}\n \n \n
\n
\n
\n
\n \n \n Down Payment\n \n \n \n  $\n \n \n
\n
\n
\n
\n \n \n Trade-In\n \n \n \n  $\n \n \n
\n
\n
\n
\n \n \n State Tax\n \n \n \n \n {{stateRate.label}}\n \n \n \n
\n
\n
\n \n \n \n \n
\n
\n
\n \n \n \n Pricings\n \n \n Breakdown of the Total Cost and Monthly Cost of vehicle purchase\n \n \n \n \n \n \n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { faTwitter, faFacebook, faLinkedin, faReddit } from '@fortawesome/free-brands-svg-icons';\nimport { faLink, faSms, faEnvelope } from \"@fortawesome/free-solid-svg-icons\";\n\n@Component({\n selector: 'share-button',\n templateUrl: './share-button.component.html',\n styleUrls: ['./share-button.component.scss']\n})\nexport class ShareButtonComponent implements OnInit, OnChanges {\n faTwitter = faTwitter;\n faFacebook = faFacebook;\n faLinkedin = faLinkedin;\n faReddit = faReddit;\n\n faLink = faLink;\n faSms = faSms;\n faEnvelop = faEnvelope;\n\n @Input()\n loanAsQueryParameters: string;\n\n @Input()\n pageUrl: string;\n\n loanAndRouteAsUrl: string;\n\n constructor() { }\n\n ngOnInit(): void {\n this.loanAndRouteAsUrl = this.buildShareUrlTest(this.pageUrl, this.loanAsQueryParameters)\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const newLoanData: string = (changes.loanAsQueryParameters.currentValue);\n this.loanAsQueryParameters = newLoanData;\n\n this.loanAndRouteAsUrl = this.buildShareUrlTest(this.pageUrl, this.loanAsQueryParameters);\n }\n\n private buildShareUrlTest(pageUrl: string, loanAsQueryParameters: string): string {\n return `${pageUrl}?${loanAsQueryParameters}`;\n }\n\n}\n","\n\n \n \n \n \n \n \n \n\n","import { Component, Input, OnInit, SimpleChanges } from '@angular/core';\nimport { EChartsOption, graphic } from 'echarts';\n\n@Component({\n selector: 'summary-bar-chart',\n templateUrl: './summary-bar-chart.component.html',\n styleUrls: ['./summary-bar-chart.component.scss']\n})\nexport class SummaryBarChartComponent implements OnInit {\n\n chartOption: EChartsOption;\n\n @Input()\n price: number;\n\n @Input()\n totalInterest: number;\n\n @Input()\n salesTax: number;\n\n ngOnInit(): void {\n this.setOptions();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.setOptions();\n }\n\n setOptions(): void {\n\n if (this.price?.toString() === \"\") {\n this.price = 0;\n this.totalInterest = 0;\n this.totalInterest = 0;\n }\n\n const priceColor = new graphic.LinearGradient(0, 0, 0, 1, [{\n offset: 0,\n color: 'rgba(76, 175, 80, 1)'\n },\n {\n offset: 1,\n color: 'rgba(76, 175, 80, .3)'\n }\n ]);\n\n const interestColor = new graphic.LinearGradient(0, 0, 0, 1, [{\n offset: 0,\n color: 'rgba(255,193,7,1)'\n },\n {\n offset: 1,\n color: 'rgba(255,193,7,.3)'\n }\n ]);\n\n\n const taxColor = new graphic.LinearGradient(0, 0, 0, 1, [{\n offset: 0,\n color: 'rgba(255,87,34,1)'\n },\n {\n offset: 1,\n color: 'rgba(255,87,34, .3)'\n }\n ]);\n\n const standardPurple = new graphic.LinearGradient(0, 0, 0, 1, [{\n offset: 0,\n color: 'rgba(84, 112, 198, 1)'\n },\n {\n offset: 1,\n color: 'rgba(84, 112, 198, .3)'\n }\n ]);\n\n this.chartOption = {\n legend: {\n data: ['Price', \"Interest\", \"Tax\"],\n align: 'left',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'shadow'\n }\n },\n xAxis: {\n type: 'category',\n data: [\"Total Cost\"]\n },\n yAxis: {\n type: 'value',\n axisLabel: {\n formatter: (number, index: number) => {\n return `${number / 1000}K`;\n }\n },\n },\n series: [\n {\n name: \"Price\",\n type: 'bar',\n stack: 'cost',\n color: priceColor,\n emphasis: {\n focus: 'series'\n },\n data: [this.price.toFixed(2).toString()]\n },\n {\n name: \"Interest\",\n type: 'bar',\n stack: 'cost',\n color: interestColor,\n emphasis: {\n focus: 'series'\n },\n data: [this.totalInterest.toFixed(2).toString()]\n },\n {\n name: \"Tax\",\n type: 'bar',\n stack: 'cost',\n color: taxColor,\n emphasis: {\n focus: 'series'\n },\n data: [this.salesTax.toFixed(2).toString()]\n }\n ],\n animationEasing: 'elasticOut',\n animationDelayUpdate: (idx) => idx * 5,\n }\n }\n\n}\n","
\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { EChartsOption } from 'echarts';\n\n@Component({\n selector: 'summary-graph',\n templateUrl: './summary-graph.component.html',\n styleUrls: ['./summary-graph.component.scss']\n})\nexport class SummaryGraphComponent implements OnInit, OnChanges {\n\n chartOptions: EChartsOption;\n\n @Input()\n xAxisPeriodSeries: string[];\n\n @Input()\n cumulativeBalanceSeries: number[];\n\n @Input()\n cumulativePrincipalSeries: number[];\n\n @Input()\n cumulativeInterestSeries: number[];\n\n constructor() { }\n\n ngOnInit(): void {\n this.setOptions();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.setOptions();\n }\n\n setOptions() {\n\n this.chartOptions = {\n //title: {\n // textAlign: \"left\",\n // //left: 'center',\n // text: `Loan${this.loan.name}`,\n //},\n legend: {\n data: ['Balance', 'Principal', \"Interest\"],\n align: 'left',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'shadow'\n }\n },\n toolbox: {\n show: false,\n feature: {\n dataZoom: {\n yAxisIndex: 'none'\n },\n dataView: { readOnly: false },\n magicType: { type: ['line', 'bar'] },\n restore: {},\n saveAsImage: {}\n }\n },\n xAxis: {\n type: 'category',\n boundaryGap: true,\n data: this.xAxisPeriodSeries,\n axisLabel: {\n show: true\n }\n },\n yAxis: {\n type: 'value',\n axisLabel: {\n formatter: (number, index: number) => {\n return `${number/1000}K`;\n }\n },\n },\n series: [{\n name: \"Balance\",\n data: this.cumulativeBalanceSeries,\n type: 'bar',\n //type: 'line',\n //areaStyle: {}\n animationDelay: (idx) => idx * 10,\n markPoint: {\n data: [\n {\n x: 18,\n y: 40_000,\n value: \"40k\",\n //type: 'max',\n name: 'Total Cost',\n }//,\n //{ type: 'min', name: '最小值' }\n ]\n },\n },\n {\n name: \"Principal\",\n data: this.cumulativePrincipalSeries,\n //type: 'line',\n //areaStyle: {}\n type: 'bar',\n animationDelay: (idx) => idx * 10 + 100,\n //markPoint: {\n // data: [\n // { type: 'max', name: 'Test Max' },\n // { type: 'min', name: 'Test Min' }\n // ]\n //},\n //markLine: {\n // data: [\n // { type: 'average', name: 'Average' }\n // ]\n //}\n },\n {\n name: \"Interest\",\n data: this.cumulativeInterestSeries,\n type: 'line',\n areaStyle: {}\n },\n ],\n animationEasing: 'elasticOut',\n animationDelayUpdate: (idx) => idx * 5,\n }\n }\n}\n","
\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-support',\n templateUrl: './support.component.html',\n styleUrls: ['./support.component.scss']\n})\nexport class SupportComponent {\n\n}\n","
\n
\n
\n \n \n \n Support\n \n \n \n Thank you for using CalcMyRide. We hope you are enjoying the app and finding value in calculating the true price of an automobile purchase.\n For any and all questions, comments, bugs or feature requests, please email support@calcmyride.com\n \n \n
\n
\n
\n","/*/*import { domain, clientId, audience, serverUrl } from '../../auth_config.json';*/\n\n\n//\"domain\": \"dev-oea74--3.us.auth0.com\",\n// \"clientId\": \"LvOUDfnNC2Uq27GQqLtCy6EhqBVfv9Sj\",\n// \"audience\": \"https://calcmyride.com\",\n// \"serverUrl\": \"http://localhost:44474\"\n\nconst domain = \"dev-oea74--3.us.auth0.com\";\nconst clientId = \"LvOUDfnNC2Uq27GQqLtCy6EhqBVfv9Sj\";\nconst audience = \"https://calcmyride.com\";\nconst serverUrl = \"http://localhost:44474\";\n\nexport const environment = {\n production: false,\n auth: {\n domain,\n clientId,\n redirectUri: `${window.location.origin}/login`,\n audience,\n },\n dev: {\n serverUrl,\n },\n API_PATH: \"https://localhost:7225\"\n};\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nexport function getBaseUrl() {\n return document.getElementsByTagName('base')[0].href;\n}\n\nconst providers = [\n { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }\n];\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic(providers).bootstrapModule(AppModule)\n .catch(err => console.log(err));\n","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"names":["MatPaginator","MatSort","MatTableDataSource","utils","XLSXUtils","writeFile","i0","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind2","period_r18","date","period_r19","id","ɵɵpipeBind1","period_r20","startingBalance","period_r21","payment","period_r22","interest","period_r23","cumulativePrincipal","period_r24","cumulativeInterest","period_r25","endingBalance","ɵɵelement","AmoritizationScheduleComponent","constructor","displayedColumns","fileName","fileExtension","ngOnInit","ngAfterViewInit","updateDataSource","ngOnChanges","changes","newScheduleData","scheduleData","currentValue","exportToExcel","wb","header","sheetName","ws","json_to_sheet","book_new","book_append_sheet","xlsBlobUrl","iOS","download","fileLink","document","createElement","href","click","setTimeout","URL","revokeObjectURL","dataSource","paginator","sort","applyFilter","event","filterValue","target","value","filter","trim","toLowerCase","firstPage","includes","navigator","platform","userAgent","selectors","viewQuery","AmoritizationScheduleComponent_Query","rf","ctx","ɵɵelementContainerStart","ɵɵtemplate","AmoritizationScheduleComponent_th_3_Template","AmoritizationScheduleComponent_td_4_Template","ɵɵelementContainerEnd","AmoritizationScheduleComponent_th_6_Template","AmoritizationScheduleComponent_td_7_Template","AmoritizationScheduleComponent_th_9_Template","AmoritizationScheduleComponent_td_10_Template","AmoritizationScheduleComponent_th_12_Template","AmoritizationScheduleComponent_td_13_Template","AmoritizationScheduleComponent_th_15_Template","AmoritizationScheduleComponent_td_16_Template","AmoritizationScheduleComponent_th_18_Template","AmoritizationScheduleComponent_td_19_Template","AmoritizationScheduleComponent_th_21_Template","AmoritizationScheduleComponent_td_22_Template","AmoritizationScheduleComponent_th_24_Template","AmoritizationScheduleComponent_td_25_Template","AmoritizationScheduleComponent_tr_26_Template","AmoritizationScheduleComponent_tr_27_Template","ɵɵlistener","AmoritizationScheduleComponent_Template_button_click_31_listener","ɵɵproperty","ɵɵpureFunction0","_c0","RouterModule","AuthGuard","CalculatorComponent","FetchDataComponent","PlaygroundComponent","PriceWizardComponent","QuickCalcComponent","SupportComponent","routes","path","loadChildren","then","m","LandingPageModule","component","canActivate","IdentityModule","CoreModule","AppRoutingModule","forRoot","imports","i1","exports","AppComponent","auth","title","ɵɵdirectiveInject","AuthService","decls","vars","template","AppComponent_Template","LayoutModule","CommonModule","HttpClientModule","HTTP_INTERCEPTORS","FormsModule","MatButtonModule","MatButtonToggleModule","MatCardModule","MatDialogModule","MatExpansionModule","MatFormFieldModule","MatIconModule","MatInputModule","MatMenuModule","MatPaginatorModule","MatSelectModule","MatSliderModule","MatSortModule","MatStepperModule","MatTableModule","MatTabsModule","MatTooltipModule","BrowserModule","BrowserAnimationsModule","AuthHttpInterceptor","AuthModule","NgxEchartsModule","environment","env","FinancingComponent","GoogleAdsenseModule","AppLayoutModule","LoanSummaryComponent","LoanComponent","PricingComponent","SummaryBarChartComponent","SummaryGraphComponent","NgxMaskDirective","NgxMaskPipe","provideNgxMask","ShareModule","ShareIconsModule","FontAwesomeModule","ShareButtonComponent","AppModule","bootstrap","provide","useClass","multi","Window","useValue","window","echarts","withServerTransition","appId","httpInterceptor","allowedList","API_PATH","declarations","i2","i3","Period","Loan","setFirstView","firstView","isFirstView","calculateSalesTax","taxRate","salesTax","price","tradeIn","discount","calculateTotalFinanced","equity","downPayment","totalFinanced","calcTotalInterest","lastPeriod","length","amoritizationSchedule","totalInterest","calculateMonthlyPayment","numerator","rateAsPercent","periodLength","denomenator","Math","pow","loanLength","monthlyPayment","rate","recalculate","buildAmoritizationSchedule","calcTotalCost","buildUrl","buildSeriesData","xAxisPeriodSeries","xAxisPeriodSeriesGeneration","cumulativeBalanceSeries","cumulativeBalanceSeriesGeneration","cumulativeInterestSeries","cumulativeInterestSeriesGeneration","cumulativePrincipalSeries","cumulativePrincipalSeriesGeneration","updateTaxSelection","undefined","totalCost","concatUrl","currentUrl","parameterName","skipAmpersand","valueAsString","toString","encodedValue","encodeURIComponent","newUrl","loanAsQueryParameters","name","startDate","firstPeriod","push","nextPeriod","nextId","nextDate","stateTaxRate","loanRate","fullName","Date","setMonth","getMonth","periodStarts","forEach","period","xAxisLabel","toLocaleString","month","toLocaleUpperCase","year","getFullYear","substr","map","nextMonth","nextMonthDate","excelHeaders","currentPeriod","interestRate","previousCumPrincipal","previousCumInterest","calcInterestByPrincipal","calcPrincipalPayment","calcEndingBalancing","calcCumPrincipal","calcCumInterest","startingPrincipal","principal","Breakpoints","ctx_r0","loan","ctx_r1","ctx_r2","loanB","ctx_r3","ctx_r4","loanC","ctx_r5","dialog","breakpointObserver","loanUrlService","activeRoute","router","quickCalUrl","location","split","extractLoanQueryParamsOrHistoryState","snapshot","history","state","openPriceWizard","goToQuickCalc","navigateByUrl","onTabChanged","$event","index","tabChangeCheckFirstView","currentWizardLoan","currentLoan","width","isMatched","Handset","dialogRef","open","data","panelClass","backdropClass","disableClose","afterClosed","subscribe","result","MatDialog","BreakpointObserver","LoanUrlService","i4","ActivatedRoute","Router","CalculatorComponent_Query","CalculatorComponent_Template_mat_tab_group_selectedTabChange_1_listener","CalculatorComponent_ng_template_3_Template","CalculatorComponent_ng_template_4_Template","CalculatorComponent_ng_template_6_Template","CalculatorComponent_ng_template_7_Template","CalculatorComponent_ng_template_9_Template","CalculatorComponent_ng_template_10_Template","CalculatorComponent_Template_button_click_16_listener","CalculatorComponent_Template_button_click_21_listener","_r6","InjectionToken","API_PATH_VALUE","API_PATH_INJECTABLE","ErrorComponent","pathMatch","CoreRoutingModule","forChild","ErrorComponent_Template","ɵɵtextInterpolate","forecast_r3","temperatureC","temperatureF","summary","FetchDataComponent_table_5_tr_12_Template","forecasts","http","baseUrl","get","error","console","HttpClient","consts","FetchDataComponent_Template","FetchDataComponent_p_4_Template","FetchDataComponent_table_5_Template","newLoanData","formatPercent","inputs","features","ɵɵNgOnChangesFeature","FinancingComponent_Template","FinancingComponent_Template_input_ngModelChange_6_listener","FinancingComponent_Template_input_ngModelChange_14_listener","BannerComponent","e","BannerComponent_Template","LoginComponent","LogoutComponent","ProfileComponent","IdentityRoutingModule","LoginButtonComponent","LogoutButtonComponent","SignupButtonComponent","IdentityService","login","post","ɵɵinject","factory","ɵfac","providedIn","shareReplay","LoginButtonComponent_button_2_Template_button_click_0_listener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","loginWithRedirect","isHandset$","observe","pipe","matches","openUrl","url","_this","_asyncToGenerator","replace","doc","origin","LoginButtonComponent_Template","LoginButtonComponent_Template_a_click_0_listener","LoginButtonComponent_button_2_Template","identityService","navigate","log","LoginComponent_Template","DOCUMENT","LogoutButtonComponent_a_0_Template_a_click_0_listener","_r3","logout","LogoutButtonComponent_button_2_Template_button_click_0_listener","_r5","LogoutButtonComponent_Template","LogoutButtonComponent_a_0_Template","LogoutButtonComponent_button_2_Template","LogoutComponent_Template","profileJson","ProfileComponent_div_0_div_9_Template","user_r1","picture","ɵɵsanitizeUrl","email","user$","profile","JSON","stringify","ProfileComponent_Template","ProfileComponent_div_0_Template","SignupButtonComponent_button_0_Template_button_click_0_listener","SignupButtonComponent_button_2_Template_button_click_0_listener","SignupButtonComponent_Template","SignupButtonComponent_button_0_Template","SignupButtonComponent_button_2_Template","AboutComponent","AboutComponent_Template","HomeComponent","HomeComponent_Template","HomeComponent_Template_button_click_11_listener","LandingPageRoutingModule","MatListModule","MatSidenavModule","MatToolbarModule","MainNavComponent","NavMenuComponent","MainNavComponent_button_20_Template_button_click_0_listener","_r9","_r0","ɵɵreference","toggle","ngContentSelectors","MainNavComponent_Template","MainNavComponent_Template_a_click_8_listener","_r10","close","MainNavComponent_Template_a_click_10_listener","MainNavComponent_Template_a_click_12_listener","MainNavComponent_Template_a_click_14_listener","MainNavComponent_Template_a_click_16_listener","MainNavComponent_button_20_Template","MainNavComponent_span_25_Template","MainNavComponent_span_27_Template","MainNavComponent_span_29_Template","MainNavComponent_span_31_Template","MainNavComponent_span_33_Template","MainNavComponent_span_35_Template","ɵɵprojection","ɵɵattribute","isExpanded","collapse","NavMenuComponent_Template","NavMenuComponent_Template_button_click_5_listener","ɵɵpureFunction1","_c1","_c2","_c3","_c4","MatAccordion","html2canvas","saveDetailSummary","detailsPage","getElementsByClassName","canvas","saveAs","toDataURL","saveDetailTimeline","uri","filename","link","body","appendChild","removeChild","LoanSummaryComponent_Query","LoanSummaryComponent_Template_button_click_87_listener","LoanSummaryComponent_Template_button_click_103_listener","ɵɵpropertyInterpolate","routeSnapshot","extractLoanFromQueryParams","extractLoanFromStateHistory","queryParams","extractQueryParams","extractLoanFromRouterState","Number","dateString","LoanComponent_Query","LoanComponent_loan_summary_17_Template","LoanComponent_amoritization_schedule_18_Template","LoanComponent_pricing_19_Template","LoanComponent_financing_20_Template","changesMethod","PlaygroundComponent_Template","PlaygroundComponent_Template_input_ngModelChange_7_listener","PlaygroundComponent_Template_input_ngModelChange_15_listener","MAT_DIALOG_DATA","stateRate_r15","percent","label","pricingService","ref","showExplanation","formatThousands","stateTaxRates","generateTaxRates","toggleExplanation","selectTaxRate","markForCheck","closePriceWizard","MatDialogRef","PricingService","ChangeDetectorRef","PriceWizardComponent_Template","PriceWizardComponent_Template_button_click_0_listener","PriceWizardComponent_div_12_Template","PriceWizardComponent_Template_input_ngModelChange_18_listener","PriceWizardComponent_Template_button_click_19_listener","PriceWizardComponent_Template_input_ngModelChange_27_listener","PriceWizardComponent_div_41_Template","PriceWizardComponent_Template_input_ngModelChange_47_listener","PriceWizardComponent_Template_button_click_48_listener","PriceWizardComponent_Template_input_ngModelChange_56_listener","PriceWizardComponent_div_75_Template","PriceWizardComponent_Template_input_ngModelChange_81_listener","PriceWizardComponent_Template_button_click_82_listener","PriceWizardComponent_Template_input_ngModelChange_90_listener","PriceWizardComponent_div_109_Template","PriceWizardComponent_Template_input_ngModelChange_113_listener","PriceWizardComponent_Template_button_click_114_listener","PriceWizardComponent_Template_input_ngModelChange_121_listener","PriceWizardComponent_div_140_Template","PriceWizardComponent_Template_mat_select_ngModelChange_146_listener","PriceWizardComponent_Template_mat_select_selectionChange_146_listener","PriceWizardComponent_mat_option_148_Template","PriceWizardComponent_div_168_Template","PriceWizardComponent_Template_input_ngModelChange_174_listener","PriceWizardComponent_Template_button_click_175_listener","PriceWizardComponent_Template_input_ngModelChange_180_listener","PriceWizardComponent_div_199_Template","PriceWizardComponent_Template_input_ngModelChange_203_listener","PriceWizardComponent_Template_button_click_206_listener","PriceWizardComponent_Template_input_ngModelChange_214_listener","PriceWizardComponent_Template_button_click_222_listener","PriceWizardComponent_ng_template_226_Template","PriceWizardComponent_ng_template_227_Template","PriceWizardComponent_ng_template_228_Template","PriceWizardComponent_ng_template_229_Template","PriceWizardComponent_ng_template_230_Template","PriceWizardComponent_ng_template_231_Template","PriceWizardComponent_ng_template_232_Template","TaxRate","round","formatABThousandValues","nameA","valueA","nameB","valueB","formatABPercent","taxRates","abbreviation","stateRate_r1","sliderCustomValueToPosition","val","minVal","maxVal","sqrt","range","sliderCustomPositionToValue","discountSliderCeiling","updateLoan","PricingComponent_Template","PricingComponent_Template_input_ngModelChange_6_listener","PricingComponent_Template_input_ngModelChange_16_listener","PricingComponent_Template_input_ngModelChange_26_listener","PricingComponent_Template_input_ngModelChange_36_listener","PricingComponent_Template_mat_select_ngModelChange_46_listener","PricingComponent_Template_mat_select_selectionChange_46_listener","PricingComponent_mat_option_48_Template","stateRate_r4","goToAdvanced","QuickCalcComponent_Query","QuickCalcComponent_Template_input_ngModelChange_19_listener","QuickCalcComponent_Template_input_ngModelChange_27_listener","QuickCalcComponent_Template_input_ngModelChange_35_listener","QuickCalcComponent_Template_input_ngModelChange_46_listener","QuickCalcComponent_Template_input_ngModelChange_54_listener","QuickCalcComponent_Template_mat_select_ngModelChange_62_listener","QuickCalcComponent_Template_mat_select_selectionChange_62_listener","QuickCalcComponent_mat_option_64_Template","QuickCalcComponent_Template_button_click_66_listener","QuickCalcComponent_Template_button_click_82_listener","faTwitter","faFacebook","faLinkedin","faReddit","faLink","faSms","faEnvelope","ɵɵstyleProp","_r1","color","ctx_r6","_r7","ctx_r8","ctx_r10","faEnvelop","_r11","ctx_r12","_r13","ctx_r14","loanAndRouteAsUrl","buildShareUrlTest","pageUrl","ShareButtonComponent_Template","ShareButtonComponent_fa_icon_7_Template","ShareButtonComponent_fa_icon_12_Template","ShareButtonComponent_fa_icon_17_Template","ShareButtonComponent_fa_icon_22_Template","ShareButtonComponent_fa_icon_27_Template","ShareButtonComponent_fa_icon_32_Template","ShareButtonComponent_fa_icon_37_Template","icon","graphic","setOptions","priceColor","LinearGradient","offset","interestColor","taxColor","standardPurple","chartOption","legend","align","tooltip","trigger","axisPointer","type","xAxis","yAxis","axisLabel","formatter","number","series","stack","emphasis","focus","toFixed","animationEasing","animationDelayUpdate","idx","SummaryBarChartComponent_Template","chartOptions","toolbox","show","feature","dataZoom","yAxisIndex","dataView","readOnly","magicType","restore","saveAsImage","boundaryGap","animationDelay","markPoint","x","y","areaStyle","SummaryGraphComponent_Template","SupportComponent_Template","domain","clientId","audience","serverUrl","production","redirectUri","dev","enableProdMode","getBaseUrl","getElementsByTagName","providers","useFactory","deps","__NgCli_bootstrap_1","platformBrowser","bootstrapModule","catch","err"],"sourceRoot":"webpack:///","x_google_ignoreList":[73,74,75]}