{ "version": 3, "sources": ["src/app/shared/components/arrow/arrow.component.ts", "src/app/shared/components/arrow/arrow.component.html"], "sourcesContent": ["import { CommonModule } from '@angular/common';\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\n\nexport interface ArrowStatsInterface {\n errors_count: number | null;\n errors_percent: number | null;\n errors_time: number | null;\n prev_errors_count: number | null;\n prev_errors_percent: number | null;\n prev_errors_time: number | null;\n}\n\n@Component({\n selector: 'app-arrow',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './arrow.component.html',\n styleUrls: ['./arrow.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ArrowComponent implements OnChanges, AfterViewInit {\n @Input() stats: ArrowStatsInterface | null = null;\n @Input() title: string | undefined;\n @Input() gaugeInfo: string | undefined;\n @Input() scorePageUrl: string | undefined;\n @Input() displayEmpty = false;\n @Input() isRobotOffline = false;\n value: number | '--';\n dir: 'up' | 'down' | 'both' | 'none' = 'none';\n statsPopup = '';\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!('stats' in changes || 'isRobotOffline' in changes || 'displayEmpty' in changes)) {\n return;\n }\n\n if ('displayEmpty' in changes) {\n this.displayEmpty = changes.displayEmpty.currentValue;\n }\n if ('stats' in changes) {\n this.stats = this.displayEmpty ? null : changes.stats.currentValue;\n }\n if ('isRobotOffline' in changes) {\n this.isRobotOffline = changes.isRobotOffline.currentValue;\n }\n\n if (!this.stats || !Number.isFinite(this.stats.errors_count)) {\n this.value = '--';\n this.dir = 'none';\n this.statsPopup = '';\n return;\n }\n\n const stats: ArrowStatsInterface = this.stats;\n this.value = stats.errors_count as number;\n const prevValue = stats.prev_errors_count;\n this.dir = prevValue == null ? 'none' :\n this.value > prevValue ? 'up' :\n this.value < prevValue ? 'down' :\n this.value === prevValue ? 'both' : 'none'; // NaN != NaN\n\n this.statsPopup = this.dir === 'none' ? '' : (\n $localize`Current shift` + ': ' + this.formatGaugeValue(stats.errors_percent, stats.errors_count) + '\\n' +\n $localize`Previous shift` + ': ' + this.formatGaugeValue(stats.prev_errors_percent, stats.prev_errors_count)\n );\n\n this.changeDetectorRef.detectChanges();\n }\n\n protected formatGaugeValue(percent?: number | null, count?: number | null): string {\n if (percent == null && count == null) {\n return '--';\n }\n if (percent != null && count != null) {\n return `${count} (${percent.toFixed(0)}%)`;\n }\n return percent != null ? `${percent.toFixed(0)}%` : `${count}`;\n }\n}\n", "
\n \n \n \n \n \n
\n
\n \n \n {{value}}\n \n \n \n {{value}}\n \n
\n
{{gaugeInfo}}
\n
{{title}}
\n"], "mappings": "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", "names": ["\u0275\u0275element", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275propertyInterpolate", "ctx_r0", "scorePageUrl", "\u0275\u0275sanitizeUrl", "\u0275\u0275textInterpolate1", "value", "\u0275\u0275classProp", "isRobotOffline", "\u0275\u0275textInterpolate", "gaugeInfo", "title", "ArrowComponent", "constructor", "changeDetectorRef", "stats", "displayEmpty", "dir", "statsPopup", "ngAfterViewInit", "detectChanges", "ngOnChanges", "changes", "currentValue", "Number", "isFinite", "errors_count", "prevValue", "prev_errors_count", "$localize", "formatGaugeValue", "errors_percent", "prev_errors_percent", "percent", "count", "toFixed", "\u0275\u0275directiveInject", "ChangeDetectorRef", "selectors", "inputs", "standalone", "features", "\u0275\u0275NgOnChangesFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "ArrowComponent__svg_polygon_2_Template", "ArrowComponent__svg_polygon_3_Template", "ArrowComponent__svg_path_4_Template", "ArrowComponent_ng_container_6_Template", "ArrowComponent_ng_container_7_Template", "ArrowComponent_div_8_Template", "ArrowComponent_div_9_Template", "\u0275\u0275property", "CommonModule", "NgIf", "styles", "changeDetection", "_ArrowComponent"] }