kinde-angular
Version:
Angular wrapper for the Kinde TypeScript SDK
42 lines • 5.05 kB
JavaScript
import { Directive, inject, Input, TemplateRef, ViewContainerRef } from '@angular/core';
import { KindeAngularService } from "./kinde-angular.service";
import * as i0 from "@angular/core";
export class FeatureFlagDirective {
constructor() {
this.templateRef = inject((TemplateRef));
this.viewContainerRef = inject(ViewContainerRef);
this.kindeAngularService = inject(KindeAngularService);
}
async ngOnInit() {
try {
const featureFlag = await this.kindeAngularService.getFeatureFlag(this.featureFlag);
featureFlag.value ? this.onIf() : this.onElse();
}
catch (error) {
this.onElse();
}
}
onIf() {
this.createView(this.templateRef);
}
onElse() {
if (!this.featureFlagElse) {
return;
}
this.createView(this.featureFlagElse);
}
createView(templateRef) {
this.viewContainerRef.createEmbeddedView(templateRef);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: FeatureFlagDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: FeatureFlagDirective, isStandalone: true, selector: "[featureFlag]", inputs: { featureFlag: "featureFlag", featureFlagElse: "featureFlagElse" }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: FeatureFlagDirective, decorators: [{
type: Directive,
args: [{ selector: '[featureFlag]', standalone: true }]
}], propDecorators: { featureFlag: [{
type: Input
}], featureFlagElse: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFnLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2tpbmRlLWFuZ3VsYXIvc3JjL2xpYi9mZWF0dXJlLWZsYWcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRzlELE1BQU0sT0FBTyxvQkFBb0I7SUFEakM7UUFPVSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFdBQW9CLENBQUEsQ0FBQyxDQUFDO1FBQzNDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0tBMEIzRDtJQXhCQyxLQUFLLENBQUMsUUFBUTtRQUNaLElBQUksQ0FBQztZQUNILE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDcEYsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEQsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFTyxJQUFJO1FBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVPLE1BQU07UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzFCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVPLFVBQVUsQ0FBQyxXQUFpQztRQUNsRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs4R0FqQ1Usb0JBQW9CO2tHQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBRGhDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7OEJBR3hELFdBQVc7c0JBRFYsS0FBSztnQkFHTixlQUFlO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtpbmRlQW5ndWxhclNlcnZpY2UgfSBmcm9tIFwiLi9raW5kZS1hbmd1bGFyLnNlcnZpY2VcIjtcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2ZlYXR1cmVGbGFnXScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIGZlYXR1cmVGbGFnITogc3RyaW5nO1xuICBASW5wdXQoKVxuICBmZWF0dXJlRmxhZ0Vsc2U/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBwcml2YXRlIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPHVua25vd24+KTtcbiAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICBwcml2YXRlIGtpbmRlQW5ndWxhclNlcnZpY2UgPSBpbmplY3QoS2luZGVBbmd1bGFyU2VydmljZSk7XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZlYXR1cmVGbGFnID0gYXdhaXQgdGhpcy5raW5kZUFuZ3VsYXJTZXJ2aWNlLmdldEZlYXR1cmVGbGFnKHRoaXMuZmVhdHVyZUZsYWcpO1xuICAgICAgZmVhdHVyZUZsYWcudmFsdWUgPyB0aGlzLm9uSWYoKSA6IHRoaXMub25FbHNlKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMub25FbHNlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbklmKCk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRlVmlldyh0aGlzLnRlbXBsYXRlUmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgb25FbHNlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5mZWF0dXJlRmxhZ0Vsc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNyZWF0ZVZpZXcodGhpcy5mZWF0dXJlRmxhZ0Vsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVWaWV3KHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPik6IHZvaWQge1xuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGVtcGxhdGVSZWYpO1xuICB9XG59XG4iXX0=