@ng-doc/ui-kit
Version:
<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/ng-doc/ng-doc"> <img src="https://ng-doc.com/assets/images/ng-doc.svg?raw=true" alt="Logo" height="150px"> </a>
1 lines • 5.28 kB
Source Map (JSON)
{"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 { ChangeDetectionStrategy, Component, ElementRef, inject, NgZone } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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 { fromEvent, merge, NEVER } from 'rxjs';\nimport { delayWhen, filter, repeat, takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'ng-doc-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class NgDocListComponent {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private ngZone = inject(NgZone);\n private listHost = inject<NgDocListHost>(NgDocListHost, { optional: true });\n\n private keyManager: ListKeyManager<NgDocListItem> | null = null;\n private readonly items: Set<NgDocListItem> = new Set<NgDocListItem>();\n\n constructor() {\n const origin: HTMLElement | null = this.listHost?.listHostOrigin\n ? toElement(this.listHost?.listHostOrigin)\n : null;\n const list: HTMLElement = toElement(this.elementRef);\n\n merge(\n fromEvent(list, 'keydown'),\n origin\n ? fromEvent(origin, 'keydown').pipe(\n takeUntil(fromEvent(list, 'keydown')),\n delayWhen(() => this.ngZone.onStable),\n repeat(),\n )\n : NEVER,\n )\n .pipe(\n filter((event: Event) => !event.defaultPrevented),\n takeUntilDestroyed(),\n )\n .subscribe((event: Event) => {\n const typedEvent: KeyboardEvent = event as KeyboardEvent;\n\n switch (typedEvent.key) {\n case 'Enter':\n this.keyManager?.activeItem?.selectByUser();\n\n typedEvent.preventDefault();\n break;\n }\n\n this.keyManager?.activeItem?.setInactiveStyles();\n this.keyManager?.onKeydown(typedEvent);\n this.keyManager?.activeItem?.setActiveStyles();\n\n if (this.keyManager?.activeItem)\n toElement(this.keyManager?.activeItem.elementRef).scrollIntoView({ block: 'nearest' });\n });\n }\n\n registerItem(item: NgDocListItem): void {\n this.items.add(item);\n\n this.keyManager?.activeItem?.setInactiveStyles();\n this.keyManager = new ListKeyManager(asArray(this.items)).withVerticalOrientation(true);\n }\n\n unregisterItem(item: NgDocListItem): void {\n this.items.delete(item);\n }\n}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}