ngx-gem-spaas
Version:
This library contains services, components, images and styles to provide a unified look and way-of-working throughout GEM SPaaS.
1 lines • 25.2 kB
Source Map (JSON)
{"version":3,"file":"ngx-gem-spaas-charts.mjs","sources":["../../../projects/ngx-gem-spaas/charts/src/_services/amcharts.service.ts","../../../projects/ngx-gem-spaas/charts/src/public-api.ts","../../../projects/ngx-gem-spaas/charts/src/ngx-gem-spaas-charts.ts"],"sourcesContent":["import * as am4charts from '@amcharts/amcharts4/charts';\r\nimport {PieChart} from '@amcharts/amcharts4/charts';\r\nimport * as am4core from '@amcharts/amcharts4/core';\r\nimport {Tooltip} from '@amcharts/amcharts4/core';\r\nimport {Injectable, OnDestroy} from '@angular/core';\r\nimport {ThemeModel, ThemeService} from \"ngx-gem-spaas\";\r\nimport {Subject} from \"rxjs\";\r\nimport {takeUntil} from \"rxjs/operators\";\r\n\r\nam4core.addLicense('CH222128706');\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AmchartsService implements OnDestroy {\r\n\r\n private theme: ThemeModel | null = null;\r\n private onDestroy$: Subject<void> = new Subject<void>();\r\n\r\n constructor(\r\n private themeService: ThemeService,\r\n ) {\r\n this.onNewTheme();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onDestroy$.next();\r\n this.onDestroy$.complete();\r\n }\r\n\r\n private onNewTheme(): void {\r\n this.themeService.onNewActiveTheme()\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((theme: ThemeModel) => {\r\n this.theme = theme;\r\n }\r\n );\r\n }\r\n\r\n // create xy chart\r\n createChartXY(chartDiv: string, withLegend = true): am4charts.XYChart {\r\n\r\n const chart = am4core.create(chartDiv, am4charts.XYChart);\r\n\r\n chart.paddingBottom = 5;\r\n chart.paddingRight = 4;\r\n chart.paddingLeft = 18;\r\n\r\n // @ts-ignore\r\n chart.preloader.background.fill = am4core.color(this.theme?.getRgb('bg'));\r\n\r\n chart.zoomOutButton.background.fill = am4core.color(this.theme?.getRgb('color'));\r\n chart.zoomOutButton.icon.stroke = am4core.color(this.theme?.getRgb('bg'));\r\n chart.zoomOutButton.icon.strokeWidth = 2;\r\n chart.zoomOutButton.parent = chart.tooltipContainer;\r\n chart.zoomOutButton.background.cornerRadius(4, 4, 4, 4);\r\n chart.zoomOutButton.padding(0, 6, 0, 6);\r\n // @ts-ignore\r\n chart.zoomOutButton.background.states.getKey('hover').properties.fill = am4core.color(this.theme?.getRgb('primary'));\r\n // @ts-ignore\r\n chart.zoomOutButton.background.states.getKey('down').properties.fill = am4core.color(this.theme?.getRgb('primary'));\r\n\r\n chart.cursor = new am4charts.XYCursor();\r\n chart.cursor.behavior = 'zoomX';\r\n chart.cursor.lineX.fill = am4core.color(this.theme?.getRgb('color'));\r\n chart.cursor.lineX.stroke = am4core.color(this.theme?.getRgb('color'));\r\n chart.cursor.lineY.disabled = true;\r\n\r\n if (withLegend) {\r\n chart.legend = new am4charts.Legend();\r\n chart.legend.position = 'top';\r\n const markerTemplate = chart.legend.markers.template;\r\n markerTemplate.width = 10;\r\n markerTemplate.height = 10;\r\n\r\n chart.legend.labels.template.fill = am4core.color(this.theme?.getRgb('color'));\r\n chart.legend.valueLabels.template.fill = am4core.color(this.theme?.getRgb('color'));\r\n\r\n chart.legend.labels.template.textDecoration = 'none';\r\n chart.legend.valueLabels.template.textDecoration = 'none';\r\n chart.legend.fontSize = '85%';\r\n\r\n const as = chart.legend.labels.template.states.getKey('active');\r\n // @ts-ignore\r\n as.properties.textDecoration = 'line-through';\r\n // @ts-ignore\r\n as.properties.fill = am4core.color(this.theme?.getRgb('color', 0.4));\r\n\r\n const as2 = chart.legend.valueLabels.template.states.getKey('active');\r\n // @ts-ignore\r\n as2.properties.textDecoration = 'line-through';\r\n // @ts-ignore\r\n as2.properties.fill = am4core.color(this.theme?.getRgb('color', 0.4));\r\n }\r\n\r\n return chart;\r\n }\r\n\r\n // create pie chart\r\n createChartPie(\r\n chartDiv: string,\r\n innerRadius: number = 0,\r\n startAngle: number = 0,\r\n endAngle: number = 360\r\n ): am4charts.PieChart {\r\n const chart = am4core.create(chartDiv, am4charts.PieChart);\r\n\r\n chart.innerRadius = innerRadius;\r\n chart.startAngle = startAngle;\r\n chart.endAngle = endAngle;\r\n\r\n return chart;\r\n }\r\n\r\n destroyChart(chart: am4charts.XYChart | am4charts.PieChart | undefined): void {\r\n if (chart) {\r\n chart.dispose();\r\n }\r\n }\r\n\r\n // AXES\r\n\r\n addCategoryAxis(\r\n chart: am4charts.XYChart,\r\n xOrY: 'x' | 'y',\r\n category: string,\r\n withTooltip: boolean,\r\n withGrid: boolean,\r\n withLabels: boolean,\r\n ): am4charts.CategoryAxis {\r\n const axes = xOrY === 'x' ? chart.xAxes : chart.yAxes;\r\n const axis = axes.push(new am4charts.CategoryAxis());\r\n this.setAxisTooltip(axis, withTooltip);\r\n this.setGenericAxisProps(axis, withGrid, withLabels);\r\n axis.dataFields.category = category;\r\n axis.renderer.minGridDistance = 1;\r\n axis.renderer.labels.template.location = 0.5; // 0 & 1 IS ON TICK, 0.5 CENTERS BETWEEN TICKS\r\n return axis;\r\n }\r\n\r\n addDateAxis(\r\n chart: am4charts.XYChart,\r\n xOrY: 'x' | 'y',\r\n date: string,\r\n withTooltip: boolean = true,\r\n withGrid: boolean = false,\r\n withLabels: boolean = true,\r\n ): am4charts.DateAxis {\r\n const axes = xOrY === 'x' ? chart.xAxes : chart.yAxes;\r\n const axis = axes.push(new am4charts.DateAxis());\r\n this.setAxisTooltip(axis, withTooltip);\r\n this.setGenericAxisProps(axis, withGrid, withLabels);\r\n // axis.baseInterval = {'timeUnit': 'hour', 'count': 1};\r\n axis.dataFields.date = date;\r\n axis.renderer.labels.template.location = 0; // 0.5 CENTERS BETWEEN TICKS\r\n axis.renderer.minGridDistance = 40;\r\n return axis;\r\n }\r\n\r\n addValueAxis(\r\n chart: am4charts.XYChart,\r\n xOrY: 'x' | 'y',\r\n title: string = '',\r\n withTooltip: boolean = false,\r\n withGrid: boolean = true,\r\n withLabels: boolean = true,\r\n ): am4charts.ValueAxis {\r\n const axes = xOrY === 'x' ? chart.xAxes : chart.yAxes;\r\n const axis = axes.push(new am4charts.ValueAxis());\r\n this.setAxisTooltip(axis, withTooltip);\r\n this.setGenericAxisProps(axis, withGrid, withLabels);\r\n axis.extraMax = .0;\r\n axis.extraMin = .0;\r\n axis.title.text = title;\r\n return axis;\r\n }\r\n\r\n private setAxisTooltip(axis: any, withToolTip: boolean, dy: number = 5): void {\r\n axis.tooltip.disabled = !withToolTip;\r\n if (withToolTip) {\r\n const axisTooltip = axis.tooltip;\r\n axisTooltip.background.fill = am4core.color(this.theme?.getRgb('primary'));\r\n axisTooltip.label.fill = am4core.color(this.theme?.getRgb('bg'));\r\n axisTooltip.background.strokeWidth = 0;\r\n axisTooltip.background.cornerRadius = 4;\r\n axisTooltip.dy = dy;\r\n }\r\n }\r\n\r\n private setGenericAxisProps(\r\n axis: am4charts.CategoryAxis | am4charts.ValueAxis | am4charts.DateAxis,\r\n withGrid: boolean,\r\n withLabels: boolean\r\n ): void {\r\n axis.cursorTooltipEnabled = true;\r\n axis.renderer.fontSize = '0.7em';\r\n axis.renderer.grid.template.disabled = !withGrid;\r\n axis.renderer.grid.template.location = 1; // THIS ALSO IMPACTS TOOLTIP LOCATION !!\r\n axis.renderer.grid.template.stroke = am4core.color(this.theme?.getRgb('color'));\r\n axis.renderer.labels.template.disabled = !withLabels;\r\n axis.renderer.labels.template.fill = am4core.color(this.theme?.getRgb('color'));\r\n axis.renderer.minWidth = 10; // IMPACTS SPACE FOR Y-AXIS LABELS\r\n axis.title.fill = am4core.color(this.theme?.getRgb('color'));\r\n }\r\n\r\n // SERIES\r\n\r\n addSeriesXY(\r\n chart: am4charts.XYChart,\r\n type: 'line' | 'bar' | 'stepline',\r\n dataType: 'category' | 'date' | 'value',\r\n name: string,\r\n valueX: string,\r\n valueY: string,\r\n openValueY: string,\r\n stacked: boolean = false,\r\n color: string = '',\r\n defToolTipColor: boolean = false,\r\n tooltipText: string = '',\r\n strokeWidth: number = 2,\r\n ): am4charts.LineSeries | am4charts.ColumnSeries | am4charts.StepLineSeries {\r\n\r\n let series;\r\n switch (type) {\r\n case 'line':\r\n series = new am4charts.LineSeries();\r\n break;\r\n case 'bar':\r\n series = new am4charts.ColumnSeries();\r\n break;\r\n case 'stepline':\r\n series = new am4charts.StepLineSeries();\r\n break;\r\n }\r\n\r\n series.name = name;\r\n\r\n switch (dataType) {\r\n case 'category':\r\n series.dataFields.categoryX = valueX;\r\n break;\r\n case 'date':\r\n series.dataFields.dateX = valueX;\r\n if (!(series instanceof am4charts.ColumnSeries)) {\r\n series.dataItems.template.locations['dateX'] = 0;\r\n }\r\n break;\r\n case 'value':\r\n series.dataFields.valueX = valueX;\r\n break;\r\n }\r\n\r\n series.dataFields.valueY = valueY;\r\n if (!(series instanceof am4charts.ColumnSeries)) {\r\n series.connect = false;\r\n }\r\n series.stacked = stacked;\r\n\r\n if (openValueY) {\r\n\r\n // RANGE SERIES: UPPER AND LOWER BAND WITH FILL\r\n series.dataFields.openValueY = openValueY;\r\n series.strokeWidth = 0;\r\n if (color) {\r\n series.fill = am4core.color(color);\r\n series.stroke = am4core.color(color);\r\n }\r\n series.sequencedInterpolation = false;\r\n series.fillOpacity = 0.1;\r\n if (!(series instanceof am4charts.ColumnSeries)) {\r\n series.tensionX = 5;\r\n }\r\n series.tooltipText = tooltipText || '[bold]' + name + ': [/]{openValueY.value} to {valueY}';\r\n\r\n } else {\r\n\r\n // NORMAL SERIES\r\n if (color) {\r\n series.fill = am4core.color(color);\r\n series.stroke = am4core.color(color);\r\n }\r\n series.strokeWidth = strokeWidth;\r\n if (series instanceof am4charts.ColumnSeries) {\r\n series.fillOpacity = 0.4;\r\n series.strokeWidth = 1; // keep this default of 1 ? Under evaluation\r\n }\r\n series.tooltipText = tooltipText || '[bold]' + name + ':[/] {valueY}';\r\n }\r\n\r\n // TOOLTIP STUFF\r\n series.tooltip = new Tooltip();\r\n series.tooltip.background.filters.clear(); // NO SHADOW\r\n series.tooltip.background.stroke = am4core.color(this.theme?.getRgb('bg'));\r\n if (defToolTipColor) {\r\n series.tooltip.getFillFromObject = false;\r\n series.tooltip.background.fill = am4core.color(this.theme?.getRgb('color'));\r\n series.tooltip.label.fill = am4core.color(this.theme?.getRgb('bg'));\r\n }\r\n\r\n chart.series.push(series);\r\n return series;\r\n\r\n }\r\n\r\n addSeriesPie(\r\n chart: PieChart,\r\n cat: string,\r\n value: string,\r\n colorAttr: string = '',\r\n color: string = '',\r\n withLabels: boolean = true,\r\n tooltipText: string = '',\r\n ): am4charts.PieSeries {\r\n const series = new am4charts.PieSeries();\r\n series.dataFields.category = cat;\r\n series.dataFields.value = value;\r\n\r\n series.slices.template.stroke = am4core.color(this.theme?.getRgb('bg'));\r\n series.slices.template.strokeWidth = 2;\r\n series.slices.template.strokeOpacity = 1;\r\n\r\n series.labels.template.disabled = !withLabels;\r\n series.labels.template.text = tooltipText || '[bold]{category}:[/] {value.percent.formatNumber(\\'#\\')}% ';\r\n series.labels.template.fill = am4core.color(this.theme?.getRgb('color'));\r\n series.ticks.template.stroke = am4core.color(this.theme?.getRgb('color'));\r\n series.ticks.template.strokeWidth = 2;\r\n\r\n // disable sliding out of slices\r\n // @ts-ignore\r\n series.slices.template.states.getKey('hover').properties.shiftRadius = 0;\r\n // @ts-ignore\r\n series.slices.template.states.getKey('hover').properties.scale = 1;\r\n\r\n if (colorAttr) {\r\n series.slices.template.propertyFields.fill = colorAttr;\r\n }\r\n\r\n if (color) {\r\n series.slices.template.fill = am4core.color(color);\r\n const cs = series.colors;\r\n cs.list = [am4core.color(new am4core.ColorSet().getIndex(0))];\r\n cs.stepOptions = {\r\n lightness: -0.05,\r\n hue: 0\r\n };\r\n cs.wrap = false;\r\n }\r\n\r\n // TOOLTIP STUFF\r\n series.slices.template.tooltipText = tooltipText || '[bold]{category}:[/] {value.percent.formatNumber(\\'#\\')}% ';\r\n series.tooltip = new Tooltip();\r\n series.tooltip.background.filters.clear(); // NO SHADOW\r\n series.tooltip.background.stroke = am4core.color(this.theme?.getRgb('bg'));\r\n\r\n chart.series.push(series);\r\n return series;\r\n }\r\n\r\n}\r\n","// SERVICES\r\nexport * from './_services/amcharts.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}