{ "version": 3, "sources": ["src/app/shared/badge-expander/badge-expander.component.ts", "src/app/shared/badge-expander/badge-expander.component.html"], "sourcesContent": ["import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild, EventEmitter,\r\n inject,\r\n Input, OnChanges,\r\n OnInit, Output, SimpleChanges,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport {NgTemplateOutlet} from \"@angular/common\";\r\nimport {TranslocoDirective} from \"@jsverse/transloco\";\r\nimport {DefaultValuePipe} from \"../../_pipes/default-value.pipe\";\r\n\r\n@Component({\r\n selector: 'app-badge-expander',\r\n standalone: true,\r\n imports: [TranslocoDirective, NgTemplateOutlet, DefaultValuePipe],\r\n templateUrl: './badge-expander.component.html',\r\n styleUrls: ['./badge-expander.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class BadgeExpanderComponent implements OnInit, OnChanges {\r\n\r\n private readonly cdRef = inject(ChangeDetectorRef);\r\n\r\n @Input() items: Array = [];\r\n @Input() itemsTillExpander: number = 4;\r\n @Input() allowToggle: boolean = true;\r\n @Input() includeComma: boolean = true;\r\n /**\r\n * Invoked when the \"and more\" is clicked\r\n */\r\n @Output() toggle = new EventEmitter();\r\n @ContentChild('badgeExpanderItem') itemTemplate!: TemplateRef;\r\n\r\n\r\n visibleItems: Array = [];\r\n isCollapsed: boolean = false;\r\n\r\n get itemsLeft() {\r\n return Math.max(this.items.length - this.itemsTillExpander, 0);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.visibleItems = this.items.slice(0, this.itemsTillExpander);\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.visibleItems = this.items.slice(0, this.itemsTillExpander);\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n toggleVisible() {\r\n this.toggle.emit();\r\n if (!this.allowToggle) return;\r\n\r\n this.isCollapsed = !this.isCollapsed;\r\n this.visibleItems = this.items;\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n}\r\n", "\r\n
\r\n
\r\n @for(item of visibleItems; track item; let i = $index; let last = $last) {\r\n \r\n @if (!last && includeComma) {\r\n , \r\n }\r\n } @empty {\r\n {{null | defaultValue}}\r\n }\r\n @if (!isCollapsed && itemsLeft !== 0) {\r\n \r\n {{t('more-items', {count: itemsLeft})}}\r\n \r\n }\r\n
\r\n
\r\n
\r\n"], "mappings": "4cCMUA,EAAA,EAAA,MAAA,EAAMC,EAAA,EAAA,IAAA,EAAEC,EAAA,4BAFVC,EAAA,EAAA,CAAA,EACAC,EAAA,EAAAC,EAAA,EAAA,EAAA,MAAA,uDADcC,EAAA,mBAAAC,EAAAC,YAAA,EAAiC,0BAAAC,EAAA,EAAAC,EAAAC,EAAAC,EAAAA,IAAAC,EAAA,CAAA,CAAA,EAC/CC,EAAA,EAAAC,EAAAH,IAAAC,EAAA,GAAAN,EAAAS,aAAA,EAAA,EAAA,yBAIAf,EAAA,CAAA,4BAAAgB,EAAA,IAAAC,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,oCAGAlB,EAAA,EAAA,IAAA,CAAA,EAA8EmB,EAAA,QAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAd,EAAAe,EAAA,CAAA,EAAA,OAAAC,EAAShB,EAAAiB,cAAA,CAAe,CAAA,CAAA,EACpGvB,EAAA,CAAA,EACFC,EAAA,sEADEY,EAAA,EAAAG,EAAA,IAAAQ,EAAA,aAAAC,EAAA,EAAAC,EAAApB,EAAAqB,SAAA,CAAA,EAAA,GAAA,4BAbVC,EAAA,CAAA,EACE7B,EAAA,EAAA,MAAA,CAAA,EAA4B,EAAA,MAAA,CAAA,EAExB8B,EAAA,EAAAC,EAAA,EAAA,EAAA,KAAA,KAAAC,EAAA,GAAAC,EAAA,EAAA,CAAA,EAQA7B,EAAA,EAAA8B,EAAA,EAAA,EAAA,IAAA,CAAA,EAKFhC,EAAA,EAAM,sBAbJY,EAAA,CAAA,EAAAqB,EAAA5B,EAAA6B,YAAA,EAQAtB,EAAA,CAAA,EAAAC,EAAA,CAAAR,EAAA8B,aAAA9B,EAAAqB,YAAA,EAAA,EAAA,EAAA,GDWN,IAAaU,IAAsB,IAAA,CAA7B,MAAOA,CAAsB,CARnCC,aAAA,CAUmB,KAAAC,MAAQC,EAAOC,CAAiB,EAExC,KAAAC,MAAoB,CAAA,EACpB,KAAAC,kBAA4B,EAC5B,KAAAC,YAAuB,GACvB,KAAA7B,aAAwB,GAIvB,KAAA8B,OAAS,IAAIC,EAIvB,KAAAX,aAA2B,CAAA,EAC3B,KAAAC,YAAuB,GAEvB,IAAIT,WAAS,CACX,OAAOoB,KAAKC,IAAI,KAAKN,MAAMO,OAAS,KAAKN,kBAAmB,CAAC,CAC/D,CAEAO,UAAQ,CACN,KAAKf,aAAe,KAAKO,MAAMS,MAAM,EAAG,KAAKR,iBAAiB,EAC9D,KAAKJ,MAAMa,aAAY,CACzB,CAEAC,YAAYC,EAAsB,CAChC,KAAKnB,aAAe,KAAKO,MAAMS,MAAM,EAAG,KAAKR,iBAAiB,EAC9D,KAAKJ,MAAMa,aAAY,CACzB,CAEA7B,eAAa,CACX,KAAKsB,OAAOU,KAAI,EACX,KAAKX,cAEV,KAAKR,YAAc,CAAC,KAAKA,YACzB,KAAKD,aAAe,KAAKO,MACzB,KAAKH,MAAMa,aAAY,EACzB,iDAvCWf,EAAsB,CAAA,+BAAtBA,EAAsBmB,UAAA,CAAA,CAAA,oBAAA,CAAA,EAAAC,eAAA,SAAAC,EAAAC,EAAAC,EAAA,IAAAF,EAAA,0jBCtBnCvD,EAAA,EAAA0D,EAAA,EAAA,EAAA,eAAA,CAAA,OAAiCxD,EAAA,gBAAA,gBAAA,iBDiBrByD,EAAoBC,EAAkBC,CAAgB,EAAAC,OAAA,CAAA;kEAAA,EAAAC,gBAAA,CAAA,CAAA,CAAA,SAKrD7B,CAAsB,GAAA", "names": ["\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275elementContainer", "\u0275\u0275template", "BadgeExpanderComponent_ng_container_0_For_4_Conditional_1_Template", "\u0275\u0275property", "ctx_r3", "itemTemplate", "\u0275\u0275pureFunction3", "_c1", "item_r1", "\u0275$index_9_r2", "\u0275$count_9_r3", "\u0275\u0275advance", "\u0275\u0275conditional", "includeComma", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r5", "\u0275\u0275nextContext", "\u0275\u0275resetView", "toggleVisible", "t_r6", "\u0275\u0275pureFunction1", "_c2", "itemsLeft", "\u0275\u0275elementContainerStart", "\u0275\u0275repeaterCreate", "BadgeExpanderComponent_ng_container_0_For_4_Template", "\u0275\u0275repeaterTrackByIdentity", "BadgeExpanderComponent_ng_container_0_ForEmpty_5_Template", "BadgeExpanderComponent_ng_container_0_Conditional_6_Template", "\u0275\u0275repeater", "visibleItems", "isCollapsed", "BadgeExpanderComponent", "constructor", "cdRef", "inject", "ChangeDetectorRef", "items", "itemsTillExpander", "allowToggle", "toggle", "EventEmitter", "Math", "max", "length", "ngOnInit", "slice", "markForCheck", "ngOnChanges", "changes", "emit", "selectors", "contentQueries", "rf", "ctx", "dirIndex", "BadgeExpanderComponent_ng_container_0_Template", "TranslocoDirective", "NgTemplateOutlet", "DefaultValuePipe", "styles", "changeDetection"] }