{ "version": 3, "sources": ["src/app/_pipes/compact-number.pipe.ts", "src/app/shared/icon-and-title/icon-and-title.component.ts", "src/app/shared/icon-and-title/icon-and-title.component.html"], "sourcesContent": ["import { Pipe, PipeTransform } from '@angular/core';\r\nimport {AccountService} from \"../_services/account.service\";\r\n\r\nconst specialCases = [4, 7, 10, 13];\r\n\r\n@Pipe({\r\n name: 'compactNumber',\r\n standalone: true\r\n})\r\nexport class CompactNumberPipe implements PipeTransform {\r\n\r\n constructor() {}\r\n\r\n transform(value: number): string {\r\n // Weblate allows some non-standard languages, like 'zh_Hans', which should be just 'zh'. So we handle that here\r\n const key = localStorage.getItem(AccountService.localeKey)?.replace('_', '-');\r\n if (key?.endsWith('Hans')) {\r\n return this.transformValue(key?.split('-')[0] || 'en', value);\r\n }\r\n return this.transformValue(key || 'en', value);\r\n }\r\n\r\n private transformValue(locale: string, value: number) {\r\n const formatter = new Intl.NumberFormat(locale, {\r\n //@ts-ignore\r\n notation: 'compact', // https://github.com/microsoft/TypeScript/issues/36533\r\n maximumSignificantDigits: 3\r\n });\r\n\r\n const formatterForDoublePrecision = new Intl.NumberFormat(locale, {\r\n //@ts-ignore\r\n notation: 'compact', // https://github.com/microsoft/TypeScript/issues/36533\r\n maximumSignificantDigits: 2\r\n });\r\n\r\n if (value < 1000) return value + '';\r\n if (specialCases.includes((value + '').length)) { // from 4, every 3 will have a case where we need to override\r\n return formatterForDoublePrecision.format(value);\r\n }\r\n\r\n return formatter.format(value);\r\n }\r\n\r\n\r\n\r\n}\r\n", "import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport {CommonModule} from \"@angular/common\";\r\n\r\n@Component({\r\n selector: 'app-icon-and-title',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './icon-and-title.component.html',\r\n styleUrls: ['./icon-and-title.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class IconAndTitleComponent {\r\n /**\r\n * If the component is clickable and should emit click events\r\n */\r\n @Input() clickable: boolean = true;\r\n @Input() title: string = '';\r\n @Input() label: string = '';\r\n /**\r\n * Font classes used to display font\r\n */\r\n @Input() fontClasses: string = '';\r\n\r\n @Output() click: EventEmitter = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n handleClick(event: MouseEvent) {\r\n if (this.clickable) this.click.emit(event);\r\n }\r\n}\r\n", "
\r\n
0\">\r\n {{label}}\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n"], "mappings": "yPAGA,IAAMA,EAAe,CAAC,EAAG,EAAG,GAAI,EAAE,EAMrBC,GAAiB,IAAA,CAAxB,IAAOA,EAAP,MAAOA,CAAiB,CAE5BC,aAAA,CAAe,CAEfC,UAAUC,EAAa,CAErB,IAAMC,EAAMC,aAAaC,QAAQC,EAAeC,SAAS,GAAGC,QAAQ,IAAK,GAAG,EAC5E,OAAIL,GAAKM,SAAS,MAAM,EACf,KAAKC,eAAeP,GAAKQ,MAAM,GAAG,EAAE,CAAC,GAAK,KAAMT,CAAK,EAEvD,KAAKQ,eAAeP,GAAO,KAAMD,CAAK,CAC/C,CAEQQ,eAAeE,EAAgBV,EAAa,CAClD,IAAMW,EAAY,IAAIC,KAAKC,aAAaH,EAAQ,CAE9CI,SAAU,UACVC,yBAA0B,EAC3B,EAEKC,EAA8B,IAAIJ,KAAKC,aAAaH,EAAQ,CAEhEI,SAAU,UACVC,yBAA0B,EAC3B,EAED,OAAIf,EAAQ,IAAaA,EAAQ,GAC7BJ,EAAaqB,UAAUjB,EAAQ,IAAIkB,MAAM,EACpCF,EAA4BG,OAAOnB,CAAK,EAG1CW,EAAUQ,OAAOnB,CAAK,CAC/B,yCAhCWH,EAAiB,4CAAjBA,EAAiBuB,KAAA,GAAAC,WAAA,EAAA,CAAA,EAAxB,IAAOxB,EAAPyB,SAAOzB,CAAiB,GAAA,4DEP1B0B,EAAA,EAAA,MAAA,CAAA,EACIC,EAAA,CAAA,EACJC,EAAA,kBADIC,EAAA,EAAAC,EAAA,IAAAC,EAAAC,MAAA,GAAA,GDQR,IAAaC,GAAqB,IAAA,CAA5B,IAAOA,EAAP,MAAOA,CAAqB,CAchCC,aAAA,CAVS,KAAAC,UAAqB,GACrB,KAAAC,MAAgB,GAChB,KAAAJ,MAAgB,GAIhB,KAAAK,YAAsB,GAErB,KAAAC,MAAkC,IAAIC,CAEhC,CAEhBC,YAAYC,EAAiB,CACvB,KAAKN,WAAW,KAAKG,MAAMI,KAAKD,CAAK,CAC3C,yCAlBWR,EAAqB,sBAArBA,EAAqBU,UAAA,CAAA,CAAA,oBAAA,CAAA,EAAAC,OAAA,CAAAT,UAAA,YAAAC,MAAA,QAAAJ,MAAA,QAAAK,YAAA,aAAA,EAAAQ,QAAA,CAAAP,MAAA,OAAA,EAAAQ,WAAA,GAAAC,SAAA,CAAAC,CAAA,EAAAC,mBAAAC,EAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,CAAA,CAAA,EAAA,SAAA,yBAAA,oBAAA,qBAAA,iBAAA,EAAA,QAAA,SAAA,EAAA,CAAA,QAAA,QAAA,EAAA,MAAA,EAAA,CAAA,cAAA,OAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAAC,SAAA,SAAAC,EAAAC,EAAA,CAAAD,EAAA,QCXlC7B,EAAA,EAAA,MAAA,CAAA,EACkF+B,EAAA,QAAA,SAAAC,EAAA,CAAA,OAASF,EAAAhB,YAAAkB,CAAA,CAAmB,CAAA,EAC1GC,EAAA,EAAAC,EAAA,EAAA,EAAA,MAAA,CAAA,EAGAC,EAAA,EAAA,IAAA,CAAA,EAEAnC,EAAA,EAAA,MAAA,CAAA,EACIoC,EAAA,CAAA,EACJlC,EAAA,EAAM,SARLmC,EAAA,UAAAC,EAAA,EAAAC,EAAAT,EAAArB,SAAA,CAAA,oCACmBN,EAAA,EAAAkC,EAAA,OAAAP,EAAAxB,OAAAwB,EAAAxB,MAAAkC,OAAA,CAAA,EAGjBrC,EAAA,EAAAsC,EAAA,GAAAX,EAAAnB,YAAA,eAAA,EAAwD0B,EAAA,QAAAP,EAAApB,KAAA,kBDCnDgC,EAAYC,EAAAC,CAAA,EAAAC,OAAA,CAAA;kEAAA,EAAAC,gBAAA,CAAA,CAAA,EAKlB,IAAOvC,EAAPwC,SAAOxC,CAAqB,GAAA", "names": ["specialCases", "CompactNumberPipe", "constructor", "transform", "value", "key", "localStorage", "getItem", "AccountService", "localeKey", "replace", "endsWith", "transformValue", "split", "locale", "formatter", "Intl", "NumberFormat", "notation", "maximumSignificantDigits", "formatterForDoublePrecision", "includes", "length", "format", "pure", "standalone", "_CompactNumberPipe", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "ctx_r0", "label", "IconAndTitleComponent", "constructor", "clickable", "title", "fontClasses", "click", "EventEmitter", "handleClick", "event", "emit", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "ngContentSelectors", "_c0", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275listener", "$event", "\u0275\u0275template", "IconAndTitleComponent_div_1_Template", "\u0275\u0275element", "\u0275\u0275projection", "\u0275\u0275property", "\u0275\u0275pureFunction1", "_c1", "length", "\u0275\u0275classMapInterpolate1", "CommonModule", "NgClass", "NgIf", "styles", "changeDetection", "_IconAndTitleComponent"] }