UNPKG

@karelics/angular-unleash-proxy-client

Version:

Angular wrapper for [unleash-proxy-client](https://github.com/Unleash/unleash-proxy-client-js).

46 lines 5.87 kB
import { Directive, Input } from '@angular/core'; import { FeatureDirective } from './feature.directive'; import { NgIf } from '@angular/common'; import { combineLatest, map } from 'rxjs'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; export class FeatureEnabledDirective extends FeatureDirective { constructor() { super(...arguments); this._operator = 'or'; this.toggleState$ = (toggleNames) => { return combineLatest(toggleNames.map(name => this.unleashService.isEnabled$(name))).pipe(map(states => this._operator === 'and' ? states.every(state => state) : states.some(state => state))); }; } set toggleNames(val) { this.setToggleNames(Array.isArray(val) ? val : [val]); } set operator(val) { this._operator = val.toLowerCase(); } set else(templateRef) { this.setElseTemplate(templateRef); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FeatureEnabledDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: FeatureEnabledDirective, isStandalone: true, selector: "[featureEnabled]", inputs: { toggleNames: ["featureEnabled", "toggleNames"], operator: ["featureEnabledOperator", "operator"], else: ["featureEnabledElse", "else"] }, usesInheritance: true, hostDirectives: [{ directive: i1.NgIf }], ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FeatureEnabledDirective, decorators: [{ type: Directive, args: [{ selector: '[featureEnabled]', standalone: true, hostDirectives: [NgIf], }] }], propDecorators: { toggleNames: [{ type: Input, args: ['featureEnabled'] }], operator: [{ type: Input, args: ['featureEnabledOperator'] }], else: [{ type: Input, args: ['featureEnabledElse'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1lbmFibGVkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdW5sZWFzaC1wcm94eS1jbGllbnQvc3JjL2xpYi9kaXJlY3RpdmVzL2ZlYXR1cmUtZW5hYmxlZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLElBQUksRUFBZSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFRMUMsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGdCQUFnQjtJQUw3RDs7UUFrQlUsY0FBUyxHQUFpQixJQUFJLENBQUM7UUFFN0IsaUJBQVksR0FBRyxDQUFDLFdBQXFCLEVBQUUsRUFBRTtZQUNqRCxPQUFPLGFBQWEsQ0FDbEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzlELENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUNYLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSztnQkFDdEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7Z0JBQzlCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQ2hDLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQztLQUNIO0lBekJDLElBQTZCLFdBQVcsQ0FBQyxHQUFzQjtRQUM3RCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFxQyxRQUFRLENBQUMsR0FBaUI7UUFDN0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsV0FBVyxFQUFrQixDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFpQyxJQUFJLENBQUMsV0FBcUQ7UUFDekYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwQyxDQUFDOytHQVhVLHVCQUF1QjttR0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUM7aUJBQ3ZCOzhCQUU4QixXQUFXO3NCQUF2QyxLQUFLO3VCQUFDLGdCQUFnQjtnQkFJYyxRQUFRO3NCQUE1QyxLQUFLO3VCQUFDLHdCQUF3QjtnQkFJRSxJQUFJO3NCQUFwQyxLQUFLO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGZWF0dXJlRGlyZWN0aXZlIH0gZnJvbSAnLi9mZWF0dXJlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOZ0lmLCBOZ0lmQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEpvaW5PcGVyYXRvciB9IGZyb20gJy4vam9pbi1vcGVyYXRvcic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tmZWF0dXJlRW5hYmxlZF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0RGlyZWN0aXZlczogW05nSWZdLFxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlRW5hYmxlZERpcmVjdGl2ZSBleHRlbmRzIEZlYXR1cmVEaXJlY3RpdmUge1xuICBASW5wdXQoJ2ZlYXR1cmVFbmFibGVkJykgc2V0IHRvZ2dsZU5hbWVzKHZhbDogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICB0aGlzLnNldFRvZ2dsZU5hbWVzKEFycmF5LmlzQXJyYXkodmFsKSA/IHZhbCA6IFt2YWxdKTtcbiAgfVxuXG4gIEBJbnB1dCgnZmVhdHVyZUVuYWJsZWRPcGVyYXRvcicpIHNldCBvcGVyYXRvcih2YWw6IEpvaW5PcGVyYXRvcikge1xuICAgIHRoaXMuX29wZXJhdG9yID0gdmFsLnRvTG93ZXJDYXNlKCkgYXMgSm9pbk9wZXJhdG9yO1xuICB9XG5cbiAgQElucHV0KCdmZWF0dXJlRW5hYmxlZEVsc2UnKSBzZXQgZWxzZSh0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8TmdJZkNvbnRleHQ8Ym9vbGVhbj4+IHwgbnVsbCkge1xuICAgIHRoaXMuc2V0RWxzZVRlbXBsYXRlKHRlbXBsYXRlUmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgX29wZXJhdG9yOiBKb2luT3BlcmF0b3IgPSAnb3InO1xuXG4gIHByb3RlY3RlZCB0b2dnbGVTdGF0ZSQgPSAodG9nZ2xlTmFtZXM6IHN0cmluZ1tdKSA9PiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoXG4gICAgICB0b2dnbGVOYW1lcy5tYXAobmFtZSA9PiB0aGlzLnVubGVhc2hTZXJ2aWNlLmlzRW5hYmxlZCQobmFtZSkpXG4gICAgKS5waXBlKFxuICAgICAgbWFwKHN0YXRlcyA9PlxuICAgICAgICB0aGlzLl9vcGVyYXRvciA9PT0gJ2FuZCdcbiAgICAgICAgICA/IHN0YXRlcy5ldmVyeShzdGF0ZSA9PiBzdGF0ZSlcbiAgICAgICAgICA6IHN0YXRlcy5zb21lKHN0YXRlID0+IHN0YXRlKVxuICAgICAgKSxcbiAgICApO1xuICB9O1xufVxuIl19