{ "version": 3, "sources": ["libs/angular/ng-ui/src/lib/dropdown/dropdown.component.ts", "libs/angular/ng-ui/src/lib/dropdown/dropdown.component.html"], "sourcesContent": ["import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n Output,\n ElementRef,\n HostListener,\n PLATFORM_ID,\n Inject,\n} from '@angular/core';\nimport { ItkIconsModule } from '@itk/icons';\nimport {\n combineLatest,\n distinctUntilChanged,\n first,\n ReplaySubject,\n shareReplay,\n startWith,\n Subject,\n} from 'rxjs';\n\n@Component({\n standalone: true,\n imports: [CommonModule, ItkIconsModule],\n selector: 'itk-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrl: './dropdown.style.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ItkDropdownComponent {\n constructor(\n private readonly elementRef: ElementRef,\n @Inject(PLATFORM_ID) private readonly pid: string,\n ) {}\n\n private readonly valueSource = new ReplaySubject(1);\n\n @Input() set value(x: undefined | null | string) {\n if (typeof x === 'string') {\n this.valueSource.next(x);\n }\n }\n\n @Input() icon = 'chevron';\n\n private readonly expandedSource = new Subject();\n @Output() public readonly expanded$ = this.expandedSource.pipe(\n startWith(false),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n // Ability to \"click outside\" the component and collapse the UI\n @HostListener('document:click', ['$event.target'])\n clickOut(event: EventTarget): void {\n if (!isPlatformBrowser(this.pid)) return;\n if (this.elementRef.nativeElement.contains(event)) return;\n this.expandedSource.next(false);\n }\n\n @HostListener('click')\n clickIn(): void {\n this.expanded$.pipe(first()).subscribe((toggledState) => {\n this.expandedSource.next(!toggledState);\n });\n }\n\n public readonly vm$ = combineLatest({\n value: this.valueSource.asObservable(),\n expanded: this.expanded$,\n });\n}\n", "\n
\n {{ vm.value }}\n \n \n \n \n \n \n
\n\n
\n \n
\n
\n"], "mappings": "2bCKMA,EAAA,EAAA,WAAA,CAAA,0BAOAA,EAAA,EAAA,WAAA,CAAA,sBAIEC,EAAA,UAAAC,EAAA,EAAAC,EAAAC,EAAAC,QAAA,CAAA,yBAMNC,EAAA,EAAA,MAAA,CAAA,EACEC,EAAA,CAAA,EACFC,EAAA,6BAxBFC,EAAA,CAAA,EACEH,EAAA,EAAA,KAAA,EAAsE,EAAA,MAAA,EAC9DI,EAAA,CAAA,EAAcF,EAAA,EAEpBC,EAAA,EAAA,CAAA,EACEE,EAAA,EAAAC,EAAA,EAAA,EAAA,WAAA,CAAA,EAKC,EAAAC,EAAA,EAAA,EAAA,WAAA,CAAA,MAULL,EAAA,EAEAG,EAAA,EAAAG,EAAA,EAAA,EAAA,MAAA,CAAA,+BArBKC,EAAA,EAAAC,EAAAZ,EAAAa,MAAAC,OAAA,WAAA,mBAAA,EACGH,EAAA,CAAA,EAAAI,EAAAf,EAAAa,KAAA,EAEQF,EAAA,EAAAd,EAAA,WAAAmB,EAAAC,IAAA,EAETN,EAAA,EAAAd,EAAA,eAAA,UAAA,EAgBDc,EAAA,CAAA,EAAAd,EAAA,OAAAG,EAAAC,QAAA,GDQR,IAAaiB,IAAoB,IAAA,CAA3B,IAAOA,EAAP,MAAOA,CAAoB,CAC/BC,YACmBC,EACqBC,EAAW,CADhC,KAAAD,WAAAA,EACqB,KAAAC,IAAAA,EAGvB,KAAAC,YAAc,IAAIC,EAAsB,CAAC,EAQjD,KAAAN,KAAO,UAEC,KAAAO,eAAiB,IAAIC,EACZ,KAAAC,UAAY,KAAKF,eAAeG,KACxDC,EAAU,EAAK,EACfC,EAAoB,EACpBC,EAAY,CAAEC,SAAU,GAAMC,WAAY,CAAC,CAAE,CAAC,EAkBhC,KAAAC,IAAMC,EAAc,CAClCrB,MAAO,KAAKS,YAAYa,aAAY,EACpClC,SAAU,KAAKyB,UAChB,CArCE,CAIH,IAAab,MAAMuB,EAA4B,CACzC,OAAOA,GAAM,UACf,KAAKd,YAAYe,KAAKD,CAAC,CAE3B,CAaAE,SAASC,EAAkB,CACpBC,EAAkB,KAAKnB,GAAG,IAC3B,KAAKD,WAAWqB,cAAcC,SAASH,CAAK,GAChD,KAAKf,eAAea,KAAK,EAAK,EAChC,CAGAM,SAAO,CACL,KAAKjB,UAAUC,KAAKiB,EAAK,CAAE,EAAEC,UAAWC,GAAgB,CACtD,KAAKtB,eAAea,KAAK,CAACS,CAAY,CACxC,CAAC,CACH,yCApCW5B,GAAoB6B,EAAAC,CAAA,EAAAD,EAGrBE,CAAW,CAAA,CAAA,sBAHV/B,EAAoBgC,UAAA,CAAA,CAAA,cAAA,CAAA,EAAAC,aAAA,SAAAC,EAAAC,EAAA,CAAAD,EAAA,GAApBE,EAAA,QAAA,SAAAC,EAAA,CAAA,OAAAF,EAAAf,SAAAiB,EAAAC,MAAA,CACb,EAAA,GAAAC,CAAA,EADiC,QAAA,UAAA,CAAA,OAApBJ,EAAAV,QAAA,CAAS,CAAA,inBC9BtBpC,EAAA,EAAAmD,GAAA,EAAA,EAAA,eAAA,CAAA,qBAAe7D,EAAA,OAAA8D,EAAA,EAAA,EAAAN,EAAApB,GAAA,CAAA,iBDwBH2B,EAAYC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAEC,EAAcC,CAAA,EAAAC,OAAA,CAAA;wDAAA,EAAAC,gBAAA,CAAA,CAAA,EAMlC,IAAOpD,EAAPqD,SAAOrD,CAAoB,GAAA", "names": ["\u0275\u0275element", "\u0275\u0275property", "\u0275\u0275pureFunction1", "_c1", "vm_r1", "expanded", "\u0275\u0275elementStart", "\u0275\u0275projection", "\u0275\u0275elementEnd", "\u0275\u0275elementContainerStart", "\u0275\u0275text", "\u0275\u0275template", "ItkDropdownComponent_ng_container_0_svg_icon_5_Template", "ItkDropdownComponent_ng_container_0_svg_icon_6_Template", "ItkDropdownComponent_ng_container_0_div_7_Template", "\u0275\u0275advance", "\u0275\u0275classMap", "value", "length", "\u0275\u0275textInterpolate", "ctx_r1", "icon", "ItkDropdownComponent", "constructor", "elementRef", "pid", "valueSource", "ReplaySubject", "expandedSource", "Subject", "expanded$", "pipe", "startWith", "distinctUntilChanged", "shareReplay", "refCount", "bufferSize", "vm$", "combineLatest", "asObservable", "x", "next", "clickOut", "event", "isPlatformBrowser", "nativeElement", "contains", "clickIn", "first", "subscribe", "toggledState", "\u0275\u0275directiveInject", "ElementRef", "PLATFORM_ID", "selectors", "hostBindings", "rf", "ctx", "\u0275\u0275listener", "$event", "target", "\u0275\u0275resolveDocument", "ItkDropdownComponent_ng_container_0_Template", "\u0275\u0275pipeBind1", "CommonModule", "NgClass", "NgIf", "NgSwitch", "NgSwitchCase", "NgSwitchDefault", "AsyncPipe", "ItkIconsModule", "SvgIconComponent", "styles", "changeDetection", "_ItkDropdownComponent"] }