{ "version": 3, "sources": ["src/app/shared/badge-expander/badge-expander.component.ts", "src/app/shared/badge-expander/badge-expander.component.html"], "sourcesContent": ["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild, EventEmitter,\n inject,\n Input, OnChanges,\n OnInit, Output, SimpleChanges,\n TemplateRef\n} from '@angular/core';\nimport {NgTemplateOutlet} from \"@angular/common\";\nimport {TranslocoDirective} from \"@jsverse/transloco\";\nimport {DefaultValuePipe} from \"../../_pipes/default-value.pipe\";\n\n@Component({\n selector: 'app-badge-expander',\n standalone: true,\n imports: [TranslocoDirective, NgTemplateOutlet, DefaultValuePipe],\n templateUrl: './badge-expander.component.html',\n styleUrls: ['./badge-expander.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BadgeExpanderComponent implements OnInit, OnChanges {\n\n private readonly cdRef = inject(ChangeDetectorRef);\n\n @Input() items: Array = [];\n @Input() itemsTillExpander: number = 4;\n @Input() allowToggle: boolean = true;\n @Input() includeComma: boolean = true;\n /**\n * Invoked when the \"and more\" is clicked\n */\n @Output() toggle = new EventEmitter();\n @ContentChild('badgeExpanderItem') itemTemplate!: TemplateRef;\n\n\n visibleItems: Array = [];\n isCollapsed: boolean = false;\n\n get itemsLeft() {\n return Math.max(this.items.length - this.itemsTillExpander, 0);\n }\n\n ngOnInit(): void {\n this.visibleItems = this.items.slice(0, this.itemsTillExpander);\n this.cdRef.markForCheck();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.visibleItems = this.items.slice(0, this.itemsTillExpander);\n this.cdRef.markForCheck();\n }\n\n toggleVisible() {\n this.toggle.emit();\n if (!this.allowToggle) return;\n\n this.isCollapsed = !this.isCollapsed;\n this.visibleItems = this.items;\n this.cdRef.markForCheck();\n }\n\n}\n", "\n
\n
\n @for(item of visibleItems; track item; let i = $index; let last = $last) {\n \n @if (!last && includeComma) {\n , \n }\n } @empty {\n {{null | defaultValue}}\n }\n @if (!isCollapsed && itemsLeft !== 0) {\n \n {{t('more-items', {count: itemsLeft})}}\n \n }\n
\n
\n
\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"] }