{"version":3,"sources":["src/app/shared/components/bond-pricing-graph/bond-pricing-graph.component.ts","src/app/shared/components/bond-pricing-graph/bond-pricing-graph.component.html"],"sourcesContent":["import { ChangeDetectorRef, Component, Input, OnChanges, OnInit, inject } from '@angular/core'\nimport { EChartsOption } from 'echarts/types/dist/shared'\nimport { BackEndService } from 'src/app/services/backend.service'\nimport { NgxEchartsDirective, provideEchartsCore } from 'ngx-echarts'\nimport { GridComponent, LegendComponent, TitleComponent, TooltipComponent, VisualMapComponent } from 'echarts/components'\nimport { LineChart, BarChart } from 'echarts/charts'\nimport { CanvasRenderer } from 'echarts/renderers'\nimport * as echarts from 'echarts/core'\nimport { CurrencyPipe, DatePipe } from '@angular/common'\nimport { IconNamesEnum, NgxBootstrapIconsModule } from 'ngx-bootstrap-icons'\nimport dayjs from 'dayjs'\n\necharts.use([TitleComponent, TooltipComponent, GridComponent, LineChart, CanvasRenderer, LegendComponent, VisualMapComponent, BarChart])\n\n@Component({\n selector: 'app-bond-pricing-graph',\n templateUrl: './bond-pricing-graph.component.html',\n styleUrls: ['./bond-pricing-graph.component.scss'],\n imports: [\n NgxEchartsDirective,\n CurrencyPipe,\n DatePipe,\n NgxBootstrapIconsModule\n ],\n providers: [\n provideEchartsCore({ echarts }),\n ]\n})\n\nexport class BondPricingGraphComponent implements OnChanges {\n private searchService = inject(BackEndService)\n private _change = inject(ChangeDetectorRef)\n\n @Input() figi = ''\n @Input() timespan = '6m'\n @Input() showBondData = false\n public chartData: EChartsOption = {}\n public bond: any = {}\n public delta = ''\n public iconNames = IconNamesEnum\n\n ngOnChanges(): void {\n if (this.figi.length > 5) {\n this.searchService.search({\n area: 'data/instruments/pricing-data/' + this.figi,\n timespan: this.timespan,\n }, false).subscribe((result: any) => {\n if (result.data && result.data.length > 0) {\n\n this.bond = result.bond\n\n const dateList = result.data.map((item: any) => item.tradeDate)\n const valueList = result.data.map((item: any) => parseFloat(item.price))\n const volumeList = result.data.map((item: any) => parseFloat(item.volume))\n\n const [previousDay, today] = valueList.slice(-2)\n\n if (previousDay < today) {\n this.delta = 'increase'\n } else if (previousDay > today) {\n this.delta = 'decrease'\n }\n\n this.chartData = {\n // Make gradient line here\n visualMap: [\n {\n show: false,\n type: 'continuous',\n seriesIndex: 0,\n min: 0,\n max: 400\n },\n ],\n title: [\n {\n left: 'center',\n text: 'Recent Bond Pricing'\n },\n ],\n tooltip: {\n trigger: 'axis',\n formatter: (params: any) => {\n return `\n \n
${dayjs(params[0].name).format('MMM DD, YYYY')}
${params[0].marker}Price:${params[0].value}
${params[1].marker}Volume:${params[1].value}
`\n }\n },\n\n xAxis: [\n {\n data: dateList,\n axisLabel: {\n formatter: (params: string) => dayjs(params).format('MMM DD, YYYY')\n }\n },\n ],\n yAxis: [\n {\n type: 'value',\n name: 'Price',\n position: 'left',\n },\n {\n type: 'value',\n name: 'Volume',\n position: 'right',\n },\n ],\n series: [\n {\n type: 'line',\n name: 'Price',\n showSymbol: false,\n data: valueList\n },\n {\n name: 'Volume',\n type: 'bar',\n data: volumeList,\n yAxisIndex: 1,\n },\n ],\n }\n this._change.markForCheck()\n }\n })\n }\n\n }\n}","
\n @if (showBondData && bond.price > 0) {\n
\n \n \n \n \n {{ bond.price | currency: 'USD': 'symbol' }}\n \n \n @if (bond.couponRate) {\n \n \n \n \n }\n @if (bond.maturityDate) {\n \n \n \n \n }\n @if (bond.yield) {\n \n \n \n \n }\n @if (bond.weeklyVolume) {\n \n \n \n \n }\n \n
Price:\n @if (delta == 'increase') {\n \n } @else if (delta == 'decrease') {\n \n } @else {\n \n }\n\n
Coupon Rate:{{ bond.couponRate}}%\n
Maturity Date:{{ bond.maturityDate | date}}\n
Yield:{{ bond.yield}}%\n
Volume Last Week:{{ bond.weeklyVolume}}\n
\n
\n }\n @if (chartData.series) {\n
\n
\n
\n }\n
"],"names":["import_dayjs","ɵɵelement","ɵɵproperty","ctx_r0","iconNames","CaretUpFill","CaretDownFill","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","bond","couponRate","ɵɵpipeBind1","maturityDate","yield","weeklyVolume","ɵɵtemplate","BondPricingGraphComponent_Conditional_1_Conditional_9_Template","BondPricingGraphComponent_Conditional_1_Conditional_10_Template","BondPricingGraphComponent_Conditional_1_Conditional_11_Template","BondPricingGraphComponent_Conditional_1_Conditional_12_Template","BondPricingGraphComponent_Conditional_1_Conditional_13_Template","BondPricingGraphComponent_Conditional_1_Conditional_14_Template","BondPricingGraphComponent_Conditional_1_Conditional_15_Template","ɵɵpipeBind3","price","ɵɵconditional","delta","chartData","use","TitleComponent","TooltipComponent","GridComponent","LineChart","CanvasRenderer","LegendComponent","VisualMapComponent","BarChart","BondPricingGraphComponent","searchService","inject","BackEndService","_change","ChangeDetectorRef","figi","timespan","showBondData","IconNamesEnum","ngOnChanges","length","search","area","subscribe","result","data","dateList","map","item","tradeDate","valueList","parseFloat","volumeList","volume","previousDay","today","slice","visualMap","show","type","seriesIndex","min","max","title","left","text","tooltip","trigger","formatter","params","dayjs","name","format","marker","value","xAxis","axisLabel","yAxis","position","series","showSymbol","yAxisIndex","markForCheck","selectors","inputs","features","ɵɵProvidersFeature","provideEchartsCore","echarts","ɵɵNgOnChangesFeature","decls","vars","consts","template","rf","ctx","BondPricingGraphComponent_Conditional_1_Template","BondPricingGraphComponent_Conditional_2_Template","NgxEchartsDirective","CurrencyPipe","DatePipe","NgxBootstrapIconsModule","NgxBootstrapIconsLibComponent","encapsulation"],"mappings":"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","debug_id":"d3a527bc-2caf-59e7-a3c8-c467181c731f"}