@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
JavaScript
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