@karelics/angular-unleash-proxy-client
Version:
Angular wrapper for [unleash-proxy-client](https://github.com/Unleash/unleash-proxy-client-js).
32 lines • 4.94 kB
JavaScript
import { DestroyRef, Directive, inject } from '@angular/core';
import { UnleashService } from '../unleash.service';
import { NgIf } from '@angular/common';
import { ReplaySubject, switchMap, tap } from 'rxjs';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import * as i0 from "@angular/core";
export class FeatureDirective {
constructor() {
this.unleashService = inject(UnleashService);
this.destroyRef = inject(DestroyRef);
this.ngIf = inject(NgIf);
this.toggleNamesSubject = new ReplaySubject(1);
}
ngOnInit() {
this.toggleNamesSubject.pipe(switchMap((toggleNames) => this.toggleState$(toggleNames)), tap((state) => this.update(state)), takeUntilDestroyed(this.destroyRef)).subscribe();
}
setToggleNames(names) {
this.toggleNamesSubject.next(names);
}
update(state) {
this.ngIf.ngIf = state;
}
setElseTemplate(templateRef) {
this.ngIf.ngIfElse = templateRef;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FeatureDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: FeatureDirective, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FeatureDirective, decorators: [{
type: Directive
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXVubGVhc2gtcHJveHktY2xpZW50L3NyYy9saWIvZGlyZWN0aXZlcy9mZWF0dXJlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxJQUFJLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQWMsYUFBYSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBR2hFLE1BQU0sT0FBZ0IsZ0JBQWdCO0lBRHRDO1FBRXFCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hDLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwQix1QkFBa0IsR0FBRyxJQUFJLGFBQWEsQ0FBVyxDQUFDLENBQUMsQ0FBQztLQXVCdEU7SUFuQkMsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQzFCLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUMxRCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDbEMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUNwQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBZTtRQUN0QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFUyxNQUFNLENBQUMsS0FBYztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVTLGVBQWUsQ0FBQyxXQUFxRDtRQUM3RSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7SUFDbkMsQ0FBQzsrR0EzQm1CLGdCQUFnQjttR0FBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQURyQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgRGlyZWN0aXZlLCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW5sZWFzaFNlcnZpY2UgfSBmcm9tICcuLi91bmxlYXNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmdJZiwgTmdJZkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZlYXR1cmVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdW5sZWFzaFNlcnZpY2UgPSBpbmplY3QoVW5sZWFzaFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBuZ0lmID0gaW5qZWN0KE5nSWYpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdG9nZ2xlTmFtZXNTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nW10+KDEpO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCB0b2dnbGVTdGF0ZSQ6ICh0b2dnbGVOYW1lczogc3RyaW5nW10pID0+IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVOYW1lc1N1YmplY3QucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodG9nZ2xlTmFtZXMpID0+IHRoaXMudG9nZ2xlU3RhdGUkKHRvZ2dsZU5hbWVzKSksXG4gICAgICB0YXAoKHN0YXRlKSA9PiB0aGlzLnVwZGF0ZShzdGF0ZSkpLFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRUb2dnbGVOYW1lcyhuYW1lczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZU5hbWVzU3ViamVjdC5uZXh0KG5hbWVzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm5nSWYubmdJZiA9IHN0YXRlO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldEVsc2VUZW1wbGF0ZSh0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8TmdJZkNvbnRleHQ8Ym9vbGVhbj4+IHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMubmdJZi5uZ0lmRWxzZSA9IHRlbXBsYXRlUmVmO1xuICB9XG59XG4iXX0=