Asymmetrik/ngx-starter

View on GitHub
src/app/core/audit/list-audit-entries/audit-distinct-value-filter.directive.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { Directive, OnInit, inject } from '@angular/core';

import { map } from 'rxjs/operators';

import { AsyHeaderListFilterComponent, ListFilterOption } from '../../../common/table';
import { AuditService } from '../audit.service';

@Directive({
    selector: 'asy-header-filter[list-filter][audit-distinct-value-filter]',
    standalone: true
})
export class AuditDistinctValueFilterDirective implements OnInit {
    readonly #listFilter = inject(AsyHeaderListFilterComponent);
    readonly #auditService = inject(AuditService);

    ngOnInit() {
        this.#listFilter.options = [];
        this.#listFilter.loadOptionsFunc = () =>
            this.#auditService.getDistinctAuditValues(this.#listFilter.id).pipe(
                map((options: string[]) =>
                    options.map(
                        (o) =>
                            ({
                                display: o,
                                value: o
                            }) as ListFilterOption
                    )
                )
            );
    }
}