UNPKG

@doku-dev/doku-fragment

Version:

A new Angular UI library that moving away from Bootstrap and built from scratch.

69 lines 8.65 kB
import { CommonModule } from '@angular/common'; import { ChangeDetectionStrategy, Component, HostBinding, Inject, Input, Optional, ViewEncapsulation, } from '@angular/core'; import { ReplaySubject, distinctUntilChanged, filter, map, startWith, takeUntil } from 'rxjs'; import { DokuSelect } from './select.component'; import * as i0 from "@angular/core"; import * as i1 from "./select.component"; export class DokuSelectOption { constructor(select) { this.select = select; this.classes = 'd-select-option'; this.value = ''; this.disabled = false; this.isSelected = false; this.destroy$ = new ReplaySubject(); } ngOnInit() { this.watchSelectedValue(); } ngOnDestroy() { this.destroy$.next(true); this.destroy$.complete(); } watchSelectedValue() { this.select?._notifyOnChange$ .pipe(filter(({ type }) => type === 'value'), startWith(this.select.value), map(() => this.select?.value), map((value) => { if (!value) return false; if (typeof value === 'string') return value === this.value; return value.includes(this.value); }), distinctUntilChanged(), takeUntil(this.destroy$)) .subscribe((selected) => { this.isSelected = selected; }); } } DokuSelectOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DokuSelectOption, deps: [{ token: DokuSelect, optional: true }], target: i0.ɵɵFactoryTarget.Component }); DokuSelectOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DokuSelectOption, isStandalone: true, selector: "doku-select-option", inputs: { value: "value", disabled: "disabled" }, host: { properties: { "class": "this.classes", "class.d-select-option-disabled": "this.disabled", "class.d-select-option-selected": "this.isSelected" } }, exportAs: ["dokuSelectOption"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DokuSelectOption, decorators: [{ type: Component, args: [{ selector: 'doku-select-option', exportAs: 'dokuSelectOption', standalone: true, imports: [CommonModule], template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, }] }], ctorParameters: function () { return [{ type: i1.DokuSelect, decorators: [{ type: Optional }, { type: Inject, args: [DokuSelect] }] }]; }, propDecorators: { classes: [{ type: HostBinding, args: ['class'] }], value: [{ type: Input }], disabled: [{ type: HostBinding, args: ['class.d-select-option-disabled'] }, { type: Input }], isSelected: [{ type: HostBinding, args: ['class.d-select-option-selected'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9wdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb2t1LWZyYWdtZW50L3NyYy9saWIvc2VsZWN0L3NlbGVjdC1vcHRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQVcsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBV2hELE1BQU0sT0FBTyxnQkFBZ0I7SUFlM0IsWUFBb0QsTUFBbUI7UUFBbkIsV0FBTSxHQUFOLE1BQU0sQ0FBYTtRQWJwRCxZQUFPLEdBQXVCLGlCQUFpQixDQUFDO1FBRTFELFVBQUssR0FBRyxFQUFFLENBQUM7UUFJcEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdQLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFckIsYUFBUSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7SUFFbUMsQ0FBQztJQUUzRSxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0I7YUFDMUIsSUFBSSxDQUNILE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsRUFDdEMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQzVCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUM3QixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNaLElBQUksQ0FBQyxLQUFLO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBQ3pCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtnQkFBRSxPQUFPLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzNELE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLEVBQ0Ysb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDekI7YUFDQSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OzZHQTNDVSxnQkFBZ0Isa0JBZUssVUFBVTtpR0FmL0IsZ0JBQWdCLDJUQUpqQiwyQkFBMkIsMkRBRDNCLFlBQVk7MkZBS1gsZ0JBQWdCO2tCQVQ1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQWdCYyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFVBQVU7NENBYnZCLE9BQU87c0JBRHpCLFdBQVc7dUJBQUMsT0FBTztnQkFHWCxLQUFLO3NCQUFiLEtBQUs7Z0JBSU4sUUFBUTtzQkFGUCxXQUFXO3VCQUFDLGdDQUFnQzs7c0JBQzVDLEtBQUs7Z0JBSUksVUFBVTtzQkFEbkIsV0FBVzt1QkFBQyxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRG9rdVNlbGVjdCB9IGZyb20gJy4vc2VsZWN0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rva3Utc2VsZWN0LW9wdGlvbicsXG4gIGV4cG9ydEFzOiAnZG9rdVNlbGVjdE9wdGlvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRG9rdVNlbGVjdE9wdGlvbiBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHByb3RlY3RlZCByZWFkb25seSBjbGFzc2VzOiBOZ0NsYXNzWyduZ0NsYXNzJ10gPSAnZC1zZWxlY3Qtb3B0aW9uJztcblxuICBASW5wdXQoKSB2YWx1ZSA9ICcnO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZC1zZWxlY3Qtb3B0aW9uLWRpc2FibGVkJylcbiAgQElucHV0KClcbiAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmQtc2VsZWN0LW9wdGlvbi1zZWxlY3RlZCcpXG4gIHByb3RlY3RlZCBpc1NlbGVjdGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBSZXBsYXlTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChEb2t1U2VsZWN0KSBwcml2YXRlIHNlbGVjdD86IERva3VTZWxlY3QpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy53YXRjaFNlbGVjdGVkVmFsdWUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHdhdGNoU2VsZWN0ZWRWYWx1ZSgpIHtcbiAgICB0aGlzLnNlbGVjdD8uX25vdGlmeU9uQ2hhbmdlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoeyB0eXBlIH0pID0+IHR5cGUgPT09ICd2YWx1ZScpLFxuICAgICAgICBzdGFydFdpdGgodGhpcy5zZWxlY3QudmFsdWUpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5zZWxlY3Q/LnZhbHVlKSxcbiAgICAgICAgbWFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGlmICghdmFsdWUpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykgcmV0dXJuIHZhbHVlID09PSB0aGlzLnZhbHVlO1xuICAgICAgICAgIHJldHVybiB2YWx1ZS5pbmNsdWRlcyh0aGlzLnZhbHVlKTtcbiAgICAgICAgfSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWQpID0+IHtcbiAgICAgICAgdGhpcy5pc1NlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICB9KTtcbiAgfVxufVxuIl19