{"version":3,"file":"ng-doc-ui-kit-components-list.mjs","sources":["../../../../libs/ui-kit/components/list/list.component.ts","../../../../libs/ui-kit/components/list/list.component.html","../../../../libs/ui-kit/components/list/ng-doc-ui-kit-components-list.ts"],"sourcesContent":["import { ListKeyManager } from '@angular/cdk/a11y';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tInject,\n\tNgZone,\n\tOptional,\n} from '@angular/core';\nimport { asArray } from '@ng-doc/core/helpers/as-array';\nimport { NgDocListHost } from '@ng-doc/ui-kit/classes/list-host';\nimport { NgDocListItem } from '@ng-doc/ui-kit/classes/list-item';\nimport { toElement } from '@ng-doc/ui-kit/helpers';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { fromEvent, merge, NEVER } from 'rxjs';\nimport { delayWhen, filter, repeat, takeUntil } from 'rxjs/operators';\n\n@Component({\n\tselector: 'ng-doc-list',\n\ttemplateUrl: './list.component.html',\n\tstyleUrls: ['./list.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n})\n@UntilDestroy()\nexport class NgDocListComponent {\n\tprivate keyManager: ListKeyManager<NgDocListItem> | null = null;\n\tprivate readonly items: Set<NgDocListItem> = new Set<NgDocListItem>();\n\n\tconstructor(\n\t\tprivate elementRef: ElementRef<HTMLElement>,\n\t\tprivate ngZone: NgZone,\n\t\t@Inject(NgDocListHost) @Optional() private listHost?: NgDocListHost,\n\t) {\n\t\tconst origin: HTMLElement | null = this.listHost?.listHostOrigin\n\t\t\t? toElement(this.listHost?.listHostOrigin)\n\t\t\t: null;\n\t\tconst list: HTMLElement = toElement(this.elementRef);\n\n\t\tmerge(\n\t\t\tfromEvent(list, 'keydown'),\n\t\t\torigin\n\t\t\t\t? fromEvent(origin, 'keydown').pipe(\n\t\t\t\t\t\ttakeUntil(fromEvent(list, 'keydown')),\n\t\t\t\t\t\tdelayWhen(() => this.ngZone.onStable),\n\t\t\t\t\t\trepeat(),\n\t\t\t\t  )\n\t\t\t\t: NEVER,\n\t\t)\n\t\t\t.pipe(\n\t\t\t\tfilter((event: Event) => !event.defaultPrevented),\n\t\t\t\tuntilDestroyed(this),\n\t\t\t)\n\t\t\t.subscribe((event: Event) => {\n\t\t\t\tconst typedEvent: KeyboardEvent = event as KeyboardEvent;\n\n\t\t\t\tswitch (typedEvent.key) {\n\t\t\t\t\tcase 'Enter':\n\t\t\t\t\t\tthis.keyManager?.activeItem?.selectByUser();\n\n\t\t\t\t\t\ttypedEvent.preventDefault();\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tthis.keyManager?.activeItem?.setInactiveStyles();\n\t\t\t\tthis.keyManager?.onKeydown(typedEvent);\n\t\t\t\tthis.keyManager?.activeItem?.setActiveStyles();\n\n\t\t\t\tif (this.keyManager?.activeItem)\n\t\t\t\t\ttoElement(this.keyManager?.activeItem.elementRef).scrollIntoView({ block: 'nearest' });\n\t\t\t});\n\t}\n\n\tregisterItem(item: NgDocListItem): void {\n\t\tthis.items.add(item);\n\n\t\tthis.keyManager?.activeItem?.setInactiveStyles();\n\t\tthis.keyManager = new ListKeyManager(asArray(this.items)).withVerticalOrientation(true);\n\t}\n\n\tunregisterItem(item: NgDocListItem): void {\n\t\tthis.items.delete(item);\n\t}\n}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAyBa,IAAA,kBAAkB,GAAxB,MAAM,kBAAkB,CAAA;AAI9B,IAAA,WAAA,CACS,UAAmC,EACnC,MAAc,EACqB,QAAwB,EAAA;QAF3D,IAAU,CAAA,UAAA,GAAV,UAAU;QACV,IAAM,CAAA,MAAA,GAAN,MAAM;QAC6B,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAN5C,IAAU,CAAA,UAAA,GAAyC,IAAI;AAC9C,QAAA,IAAA,CAAA,KAAK,GAAuB,IAAI,GAAG,EAAiB;AAOpE,QAAA,MAAM,MAAM,GAAuB,IAAI,CAAC,QAAQ,EAAE;cAC/C,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc;cACvC,IAAI;QACP,MAAM,IAAI,GAAgB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;QAEpD,KAAK,CACJ,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,EAC1B;AACC,cAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,CACjC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EACrC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EACrC,MAAM,EAAE;cAER,KAAK;AAEP,aAAA,IAAI,CACJ,MAAM,CAAC,CAAC,KAAY,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,EACjD,cAAc,CAAC,IAAI,CAAC;AAEpB,aAAA,SAAS,CAAC,CAAC,KAAY,KAAI;YAC3B,MAAM,UAAU,GAAkB,KAAsB;AAExD,YAAA,QAAQ,UAAU,CAAC,GAAG;AACrB,gBAAA,KAAK,OAAO;AACX,oBAAA,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE;oBAE3C,UAAU,CAAC,cAAc,EAAE;oBAC3B;;AAGF,YAAA,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE;AAChD,YAAA,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC;AACtC,YAAA,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE;AAE9C,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,UAAU;AAC9B,gBAAA,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACxF,SAAC,CAAC;;AAGJ,IAAA,YAAY,CAAC,IAAmB,EAAA;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AAEpB,QAAA,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE;AAChD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC;;AAGxF,IAAA,cAAc,CAAC,IAAmB,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;;AAxDZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kEAOrB,aAAa,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAPV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,uECzB/B,6BACA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;ADwBa,kBAAkB,GAAA,UAAA,CAAA;AAD9B,IAAA,YAAY,EAAE;qCAMO,UAAU;QACd,MAAM;QACgC,aAAa,CAAA;AAPxD,CAAA,EAAA,kBAAkB,CA0D9B;2FA1DY,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAGN,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;0BAUd,MAAM;2BAAC,aAAa;;0BAAG;;;AEhC1B;;AAEG;;;;"}