@statsig/angular-bindings 3.6.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,21 @@
1
+ import { OnInit, TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import { FeatureGateOptions } from './statsig.module';
3
+ import { StatsigService } from './statsig.service';
4
+ import * as i0 from "@angular/core";
5
+ export declare class CheckGateDirective implements OnInit {
6
+ private _templateRef;
7
+ private _viewContainer;
8
+ private _statsigService;
9
+ private _gate;
10
+ private _isHidden;
11
+ private _options;
12
+ set stgCheckGate(val: string);
13
+ set stgCheckGateOptions(val: FeatureGateOptions);
14
+ constructor(_templateRef: TemplateRef<unknown>, _viewContainer: ViewContainerRef, _statsigService: StatsigService);
15
+ ngOnInit(): void;
16
+ private _updateView;
17
+ private _checkGate;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<CheckGateDirective, never>;
19
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CheckGateDirective, "[stgCheckGate]", never, { "stgCheckGate": { "alias": "stgCheckGate"; "required": false; }; "stgCheckGateOptions": { "alias": "stgCheckGateOptions"; "required": false; }; }, {}, never, never, false, never>;
20
+ }
21
+ //# sourceMappingURL=checkGate.directive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkGate.directive.d.ts","sourceRoot":"","sources":["../../../packages/angular-bindings/src/checkGate.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,MAAM,EACN,WAAW,EACX,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;;AAEnD,qBAGa,kBAAmB,YAAW,MAAM;IAsB7C,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,eAAe;IAvBzB,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,QAAQ,CAA0B;IAE1C,IAAa,YAAY,CAAC,GAAG,EAAE,MAAM,EAMpC;IAED,IAAa,mBAAmB,CAAC,GAAG,EAAE,kBAAkB,EAMvD;gBAGS,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,EAClC,cAAc,EAAE,gBAAgB,EAChC,eAAe,EAAE,cAAc;IAOzC,QAAQ,IAAI,IAAI;IAMhB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,UAAU;yCAlDP,kBAAkB;2CAAlB,kBAAkB;CAuD9B"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CheckGateDirective = void 0;
4
+ const core_1 = require("@angular/core");
5
+ const client_core_1 = require("@statsig/client-core");
6
+ const statsig_service_1 = require("./statsig.service");
7
+ const i0 = require("@angular/core");
8
+ const i1 = require("./statsig.service");
9
+ class CheckGateDirective {
10
+ _templateRef;
11
+ _viewContainer;
12
+ _statsigService;
13
+ _gate = '';
14
+ _isHidden = true;
15
+ _options = {};
16
+ set stgCheckGate(val) {
17
+ client_core_1.Log.debug('Setting gate', val);
18
+ if (val) {
19
+ this._gate = val;
20
+ this._updateView();
21
+ }
22
+ }
23
+ set stgCheckGateOptions(val) {
24
+ client_core_1.Log.debug('Setting options', val);
25
+ if (val) {
26
+ this._options = val;
27
+ this._updateView();
28
+ }
29
+ }
30
+ constructor(_templateRef, _viewContainer, _statsigService) {
31
+ this._templateRef = _templateRef;
32
+ this._viewContainer = _viewContainer;
33
+ this._statsigService = _statsigService;
34
+ _statsigService.getClient().$on('values_updated', () => {
35
+ this._updateView();
36
+ });
37
+ }
38
+ ngOnInit() {
39
+ if (this._gate) {
40
+ this._updateView();
41
+ }
42
+ }
43
+ _updateView() {
44
+ if (this._checkGate()) {
45
+ if (this._isHidden) {
46
+ client_core_1.Log.debug('Feature flag is enabled, showing the template');
47
+ this._viewContainer.createEmbeddedView(this._templateRef);
48
+ this._isHidden = false;
49
+ }
50
+ }
51
+ else {
52
+ this._viewContainer.clear();
53
+ this._isHidden = true;
54
+ }
55
+ }
56
+ _checkGate() {
57
+ return (this._gate && this._statsigService.checkGate(this._gate, this._options));
58
+ }
59
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CheckGateDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.StatsigService }], target: i0.ɵɵFactoryTarget.Directive });
60
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.3", type: CheckGateDirective, selector: "[stgCheckGate]", inputs: { stgCheckGate: "stgCheckGate", stgCheckGateOptions: "stgCheckGateOptions" }, ngImport: i0 });
61
+ }
62
+ exports.CheckGateDirective = CheckGateDirective;
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CheckGateDirective, decorators: [{
64
+ type: core_1.Directive,
65
+ args: [{
66
+ selector: '[stgCheckGate]',
67
+ }]
68
+ }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.StatsigService }], propDecorators: { stgCheckGate: [{
69
+ type: core_1.Input
70
+ }], stgCheckGateOptions: [{
71
+ type: core_1.Input
72
+ }] } });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tHYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItYmluZGluZ3Mvc3JjL2NoZWNrR2F0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0NBTXVCO0FBRXZCLHNEQUEyQztBQUczQyx1REFBbUQ7OztBQUVuRCxNQUdhLGtCQUFrQjtJQXNCbkI7SUFDQTtJQUNBO0lBdkJGLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ2pCLFFBQVEsR0FBdUIsRUFBRSxDQUFDO0lBRTFDLElBQWEsWUFBWSxDQUFDLEdBQVc7UUFDbkMsaUJBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNqQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFhLG1CQUFtQixDQUFDLEdBQXVCO1FBQ3RELGlCQUFHLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFRCxZQUNVLFlBQWtDLEVBQ2xDLGNBQWdDLEVBQ2hDLGVBQStCO1FBRi9CLGlCQUFZLEdBQVosWUFBWSxDQUFzQjtRQUNsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUFDaEMsb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBRXZDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO1lBQ3JELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDdEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ25CLGlCQUFHLENBQUMsS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7Z0JBQzNELElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN6QixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBRU8sVUFBVTtRQUNoQixPQUFPLENBQ0wsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDeEUsQ0FBQztJQUNKLENBQUM7dUdBdERVLGtCQUFrQjsyRkFBbEIsa0JBQWtCOztBQUgvQixnREEwREM7MkZBdkRZLGtCQUFrQjtrQkFIOUIsZ0JBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtpQkFDM0I7NElBTWMsWUFBWTtzQkFBeEIsWUFBSztnQkFRTyxtQkFBbUI7c0JBQS9CLFlBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTG9nIH0gZnJvbSAnQHN0YXRzaWcvY2xpZW50LWNvcmUnO1xuXG5pbXBvcnQgeyBGZWF0dXJlR2F0ZU9wdGlvbnMgfSBmcm9tICcuL3N0YXRzaWcubW9kdWxlJztcbmltcG9ydCB7IFN0YXRzaWdTZXJ2aWNlIH0gZnJvbSAnLi9zdGF0c2lnLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc3RnQ2hlY2tHYXRlXScsXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrR2F0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgX2dhdGUgPSAnJztcbiAgcHJpdmF0ZSBfaXNIaWRkZW4gPSB0cnVlO1xuICBwcml2YXRlIF9vcHRpb25zOiBGZWF0dXJlR2F0ZU9wdGlvbnMgPSB7fTtcblxuICBASW5wdXQoKSBzZXQgc3RnQ2hlY2tHYXRlKHZhbDogc3RyaW5nKSB7XG4gICAgTG9nLmRlYnVnKCdTZXR0aW5nIGdhdGUnLCB2YWwpO1xuICAgIGlmICh2YWwpIHtcbiAgICAgIHRoaXMuX2dhdGUgPSB2YWw7XG4gICAgICB0aGlzLl91cGRhdGVWaWV3KCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCkgc2V0IHN0Z0NoZWNrR2F0ZU9wdGlvbnModmFsOiBGZWF0dXJlR2F0ZU9wdGlvbnMpIHtcbiAgICBMb2cuZGVidWcoJ1NldHRpbmcgb3B0aW9ucycsIHZhbCk7XG4gICAgaWYgKHZhbCkge1xuICAgICAgdGhpcy5fb3B0aW9ucyA9IHZhbDtcbiAgICAgIHRoaXMuX3VwZGF0ZVZpZXcoKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF90ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4sXG4gICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIF9zdGF0c2lnU2VydmljZTogU3RhdHNpZ1NlcnZpY2UsXG4gICkge1xuICAgIF9zdGF0c2lnU2VydmljZS5nZXRDbGllbnQoKS4kb24oJ3ZhbHVlc191cGRhdGVkJywgKCkgPT4ge1xuICAgICAgdGhpcy5fdXBkYXRlVmlldygpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2dhdGUpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVZpZXcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVWaWV3KCkge1xuICAgIGlmICh0aGlzLl9jaGVja0dhdGUoKSkge1xuICAgICAgaWYgKHRoaXMuX2lzSGlkZGVuKSB7XG4gICAgICAgIExvZy5kZWJ1ZygnRmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQsIHNob3dpbmcgdGhlIHRlbXBsYXRlJyk7XG4gICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RlbXBsYXRlUmVmKTtcbiAgICAgICAgdGhpcy5faXNIaWRkZW4gPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5jbGVhcigpO1xuICAgICAgdGhpcy5faXNIaWRkZW4gPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrR2F0ZSgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fZ2F0ZSAmJiB0aGlzLl9zdGF0c2lnU2VydmljZS5jaGVja0dhdGUodGhpcy5fZ2F0ZSwgdGhpcy5fb3B0aW9ucylcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CheckGateDirective = exports.StatsigService = exports.STATSIG_INIT_CONFIG = exports.StatsigModule = void 0;
4
+ var statsig_module_1 = require("./statsig.module");
5
+ Object.defineProperty(exports, "StatsigModule", { enumerable: true, get: function () { return statsig_module_1.StatsigModule; } });
6
+ Object.defineProperty(exports, "STATSIG_INIT_CONFIG", { enumerable: true, get: function () { return statsig_module_1.STATSIG_INIT_CONFIG; } });
7
+ var statsig_service_1 = require("./statsig.service");
8
+ Object.defineProperty(exports, "StatsigService", { enumerable: true, get: function () { return statsig_service_1.StatsigService; } });
9
+ var checkGate_directive_1 = require("./checkGate.directive");
10
+ Object.defineProperty(exports, "CheckGateDirective", { enumerable: true, get: function () { return checkGate_directive_1.CheckGateDirective; } });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWJpbmRpbmdzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBc0U7QUFBN0QsK0dBQUEsYUFBYSxPQUFBO0FBQUUscUhBQUEsbUJBQW1CLE9BQUE7QUFDM0MscURBQW1EO0FBQTFDLGlIQUFBLGNBQWMsT0FBQTtBQUN2Qiw2REFBMkQ7QUFBbEQseUhBQUEsa0JBQWtCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBTdGF0c2lnTW9kdWxlLCBTVEFUU0lHX0lOSVRfQ09ORklHIH0gZnJvbSAnLi9zdGF0c2lnLm1vZHVsZSc7XG5leHBvcnQgeyBTdGF0c2lnU2VydmljZSB9IGZyb20gJy4vc3RhdHNpZy5zZXJ2aWNlJztcbmV4cG9ydCB7IENoZWNrR2F0ZURpcmVjdGl2ZSB9IGZyb20gJy4vY2hlY2tHYXRlLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Memoize = void 0;
4
+ function Memoize(keyGenerator) {
5
+ return function (_target, _propertyKey, descriptor) {
6
+ const orignal = descriptor.value;
7
+ const cache = new Map();
8
+ descriptor.value = function (...args) {
9
+ const key = keyGenerator(...args);
10
+ if (cache.has(key)) {
11
+ return cache.get(key);
12
+ }
13
+ const result = orignal.apply(this, args);
14
+ cache.set(key, result);
15
+ return result;
16
+ };
17
+ return descriptor;
18
+ };
19
+ }
20
+ exports.Memoize = Memoize;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb2l6ZURlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItYmluZGluZ3Mvc3JjL21lbW9pemVEZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBZ0IsT0FBTyxDQUNyQixZQUE0QztJQUU1QyxPQUFPLFVBQ0wsT0FBZSxFQUNmLFlBQTZCLEVBQzdCLFVBQThCO1FBRTlCLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxLQUF3QyxDQUFDO1FBQ3BFLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDO1FBRXpDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsVUFBVSxHQUFHLElBQWU7WUFDN0MsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFFbEMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QixDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDekMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDdkIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDO1FBRUYsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQXpCRCwwQkF5QkMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gTWVtb2l6ZShcbiAga2V5R2VuZXJhdG9yOiAoLi4uYXJnczogdW5rbm93bltdKSA9PiBzdHJpbmcsXG4pOiBNZXRob2REZWNvcmF0b3Ige1xuICByZXR1cm4gZnVuY3Rpb24gKFxuICAgIF90YXJnZXQ6IG9iamVjdCxcbiAgICBfcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbCxcbiAgICBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IsXG4gICkge1xuICAgIGNvbnN0IG9yaWduYWwgPSBkZXNjcmlwdG9yLnZhbHVlIGFzICguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd247XG4gICAgY29uc3QgY2FjaGUgPSBuZXcgTWFwPHN0cmluZywgdW5rbm93bj4oKTtcblxuICAgIGRlc2NyaXB0b3IudmFsdWUgPSBmdW5jdGlvbiAoLi4uYXJnczogdW5rbm93bltdKSB7XG4gICAgICBjb25zdCBrZXkgPSBrZXlHZW5lcmF0b3IoLi4uYXJncyk7XG5cbiAgICAgIGlmIChjYWNoZS5oYXMoa2V5KSkge1xuICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KGtleSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IG9yaWduYWwuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICBjYWNoZS5zZXQoa2V5LCByZXN1bHQpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * Generated bundle index. Do not edit.
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("./index"), exports);
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHNpZy1hbmd1bGFyLWJpbmRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1iaW5kaW5ncy9zcmMvc3RhdHNpZy1hbmd1bGFyLWJpbmRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StatsigModule = exports.STATSIG_INIT_CONFIG = void 0;
4
+ const core_1 = require("@angular/core");
5
+ const checkGate_directive_1 = require("./checkGate.directive");
6
+ const i0 = require("@angular/core");
7
+ exports.STATSIG_INIT_CONFIG = new core_1.InjectionToken('StatsigProvider');
8
+ class StatsigModule {
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StatsigModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: StatsigModule, declarations: [checkGate_directive_1.CheckGateDirective], exports: [checkGate_directive_1.CheckGateDirective] });
11
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StatsigModule });
12
+ }
13
+ exports.StatsigModule = StatsigModule;
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StatsigModule, decorators: [{
15
+ type: core_1.NgModule,
16
+ args: [{
17
+ declarations: [checkGate_directive_1.CheckGateDirective],
18
+ exports: [checkGate_directive_1.CheckGateDirective],
19
+ providers: [],
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHNpZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLWJpbmRpbmdzL3NyYy9zdGF0c2lnLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3Q0FBeUQ7QUFTekQsK0RBQTJEOztBQWE5QyxRQUFBLG1CQUFtQixHQUFHLElBQUkscUJBQWMsQ0FFbkQsaUJBQWlCLENBQUMsQ0FBQztBQUlyQixNQUthLGFBQWE7dUdBQWIsYUFBYTt3R0FBYixhQUFhLGlCQUpULHdDQUFrQixhQUN2Qix3Q0FBa0I7d0dBR2pCLGFBQWE7O0FBTDFCLHNDQUs2QjsyRkFBaEIsYUFBYTtrQkFMekIsZUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx3Q0FBa0IsQ0FBQztvQkFDbEMsT0FBTyxFQUFFLENBQUMsd0NBQWtCLENBQUM7b0JBQzdCLFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIEZlYXR1cmVHYXRlRXZhbHVhdGlvbk9wdGlvbnMsXG4gIFN0YXRzaWdDbGllbnQsXG4gIFN0YXRzaWdPcHRpb25zLFxuICBTdGF0c2lnVXNlcixcbn0gZnJvbSAnQHN0YXRzaWcvanMtY2xpZW50JztcblxuaW1wb3J0IHsgQ2hlY2tHYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9jaGVja0dhdGUuZGlyZWN0aXZlJztcblxudHlwZSBXaXRoQ2xpZW50PFQgZXh0ZW5kcyBTdGF0c2lnQ2xpZW50PiA9IHsgY2xpZW50OiBUIH07XG50eXBlIFdpdGhDb25maWd1cmF0aW9uID0ge1xuICBzZGtLZXk6IHN0cmluZztcbiAgdXNlcjogU3RhdHNpZ1VzZXI7XG4gIG9wdGlvbnM/OiBTdGF0c2lnT3B0aW9ucztcbn07XG5cbmV4cG9ydCB0eXBlIFN0YXRzaWdJbml0Q29uZmlnPFQgZXh0ZW5kcyBTdGF0c2lnQ2xpZW50PiA9XG4gIHwgV2l0aENsaWVudDxUPlxuICB8IFdpdGhDb25maWd1cmF0aW9uO1xuXG5leHBvcnQgY29uc3QgU1RBVFNJR19JTklUX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcbiAgU3RhdHNpZ0luaXRDb25maWc8U3RhdHNpZ0NsaWVudD5cbj4oJ1N0YXRzaWdQcm92aWRlcicpO1xuXG5leHBvcnQgdHlwZSBGZWF0dXJlR2F0ZU9wdGlvbnMgPSBGZWF0dXJlR2F0ZUV2YWx1YXRpb25PcHRpb25zO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDaGVja0dhdGVEaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbQ2hlY2tHYXRlRGlyZWN0aXZlXSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RhdHNpZ01vZHVsZSB7fVxuIl19
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.StatsigService = void 0;
13
+ const core_1 = require("@angular/core");
14
+ const rxjs_1 = require("rxjs");
15
+ const client_core_1 = require("@statsig/client-core");
16
+ const js_client_1 = require("@statsig/js-client");
17
+ const memoizeDecorator_1 = require("./memoizeDecorator");
18
+ const statsig_module_1 = require("./statsig.module");
19
+ const i0 = require("@angular/core");
20
+ class StatsigService {
21
+ _renderVersion = 0;
22
+ _client;
23
+ _isLoadingSubject = new rxjs_1.BehaviorSubject(true);
24
+ isLoading$ = this._isLoadingSubject.asObservable();
25
+ constructor(provider) {
26
+ if ('client' in provider) {
27
+ this._client = provider.client;
28
+ }
29
+ else if ('sdkKey' in provider && 'user' in provider) {
30
+ this._client = new js_client_1.StatsigClient(provider.sdkKey, provider.user, provider.options);
31
+ this._client
32
+ .initializeAsync()
33
+ .catch((error) => {
34
+ client_core_1.Log.error('Error initializing StatsigClient', error);
35
+ })
36
+ .finally(() => {
37
+ this._isLoadingSubject.next(false);
38
+ });
39
+ }
40
+ else {
41
+ client_core_1.Log.error('Must provide a client or sdkKey and user to initialize StatsigService');
42
+ this._client = new js_client_1.StatsigClient('', {});
43
+ }
44
+ client_core_1.Log.debug('StatsigService created', this._client);
45
+ this._checkAndEmitLoadingStatus();
46
+ this._client.$on('values_updated', this._onValuesUpdated);
47
+ client_core_1.SDKType._setBindingType('angular');
48
+ }
49
+ ngOnDestroy() {
50
+ this._client.shutdown().catch((error) => {
51
+ client_core_1.Log.error('An error occured during shutdown', error);
52
+ });
53
+ this._client.off('values_updated', this._onValuesUpdated);
54
+ }
55
+ checkGate(gateName, options) {
56
+ client_core_1.Log.debug(`checkGate caled for ${gateName}, rv: ${this._renderVersion}`);
57
+ return this._checkGateImpl(this._renderVersion, gateName, options);
58
+ }
59
+ getDynamicConfig(configName, options) {
60
+ client_core_1.Log.debug(`getDynamicConfig called for ${configName}, rv: ${this._renderVersion}`);
61
+ return this._getDynamicConfigImpl(this._renderVersion, configName, options);
62
+ }
63
+ getExperiment(experimentName, options) {
64
+ client_core_1.Log.debug(`getExperiment caled for ${experimentName}, rv: ${this._renderVersion}`);
65
+ return this._getExperimentImpl(this._renderVersion, experimentName, options);
66
+ }
67
+ getLayer(layerName, options) {
68
+ client_core_1.Log.debug(`getLayer caled for ${layerName}, rv: ${this._renderVersion}`);
69
+ return this._getLayerImpl(this._renderVersion, layerName, options);
70
+ }
71
+ logEvent(eventName, value, metadata) {
72
+ this._client.logEvent(eventName, value, metadata);
73
+ }
74
+ updateUserAsync(user, options) {
75
+ return this._client.updateUserAsync(user, options);
76
+ }
77
+ updateUserSync(user, options) {
78
+ this._client.updateUserSync(user, options);
79
+ }
80
+ getClient() {
81
+ return this._client;
82
+ }
83
+ _checkGateImpl(_rv, gateName, options) {
84
+ return this._client.checkGate(gateName, options);
85
+ }
86
+ _getDynamicConfigImpl(_rv, configName, options) {
87
+ return this._client.getDynamicConfig(configName, options);
88
+ }
89
+ _getExperimentImpl(_rv, experimentName, options) {
90
+ return this._client.getExperiment(experimentName, options);
91
+ }
92
+ _getLayerImpl(_rv, layerName, options) {
93
+ return this._client.getLayer(layerName, options);
94
+ }
95
+ _checkAndEmitLoadingStatus() {
96
+ const isReady = _isReady(this._client);
97
+ if (isReady) {
98
+ this._isLoadingSubject.next(false);
99
+ client_core_1.Log.debug('Client is now ready, loading status set to false');
100
+ }
101
+ else {
102
+ this._isLoadingSubject.next(true);
103
+ client_core_1.Log.debug('Client is not ready, loading status set to true');
104
+ }
105
+ }
106
+ _onValuesUpdated = () => {
107
+ this._renderVersion++;
108
+ client_core_1.Log.debug('Values updated', this._renderVersion);
109
+ this._checkAndEmitLoadingStatus();
110
+ };
111
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StatsigService, deps: [{ token: statsig_module_1.STATSIG_INIT_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
112
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StatsigService, providedIn: 'root' });
113
+ }
114
+ exports.StatsigService = StatsigService;
115
+ __decorate([
116
+ (0, memoizeDecorator_1.Memoize)((...args) => {
117
+ const [rv, gn, opt] = args;
118
+ return `${rv}-${gn}-${JSON.stringify(opt)}`;
119
+ }),
120
+ __metadata("design:type", Function),
121
+ __metadata("design:paramtypes", [Number, String, Object]),
122
+ __metadata("design:returntype", Boolean)
123
+ ], StatsigService.prototype, "_checkGateImpl", null);
124
+ __decorate([
125
+ (0, memoizeDecorator_1.Memoize)((...args) => {
126
+ const [rv, gn, opt] = args;
127
+ return `${rv}-${gn}-${JSON.stringify(opt)}`;
128
+ }),
129
+ __metadata("design:type", Function),
130
+ __metadata("design:paramtypes", [Number, String, Object]),
131
+ __metadata("design:returntype", Object)
132
+ ], StatsigService.prototype, "_getDynamicConfigImpl", null);
133
+ __decorate([
134
+ (0, memoizeDecorator_1.Memoize)((...args) => {
135
+ const [rv, en, opt] = args;
136
+ return `${rv}-${en}-${JSON.stringify(opt)}`;
137
+ }),
138
+ __metadata("design:type", Function),
139
+ __metadata("design:paramtypes", [Number, String, Object]),
140
+ __metadata("design:returntype", Object)
141
+ ], StatsigService.prototype, "_getExperimentImpl", null);
142
+ __decorate([
143
+ (0, memoizeDecorator_1.Memoize)((...args) => {
144
+ const [rv, ln, opt] = args;
145
+ return `${rv}-${ln}-${JSON.stringify(opt)}`;
146
+ }),
147
+ __metadata("design:type", Function),
148
+ __metadata("design:paramtypes", [Number, String, Object]),
149
+ __metadata("design:returntype", Object)
150
+ ], StatsigService.prototype, "_getLayerImpl", null);
151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StatsigService, decorators: [{
152
+ type: core_1.Injectable,
153
+ args: [{
154
+ providedIn: 'root',
155
+ }]
156
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
157
+ type: core_1.Inject,
158
+ args: [statsig_module_1.STATSIG_INIT_CONFIG]
159
+ }] }], propDecorators: { _checkGateImpl: [], _getDynamicConfigImpl: [], _getExperimentImpl: [], _getLayerImpl: [] } });
160
+ function _isReady(client) {
161
+ return client.loadingStatus === 'Ready';
162
+ }
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHNpZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1iaW5kaW5ncy9zcmMvc3RhdHNpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHdDQUE4RDtBQUM5RCwrQkFBbUQ7QUFFbkQsc0RBYzhCO0FBQzlCLGtEQUFtRDtBQUVuRCx5REFBNkM7QUFDN0MscURBQTBFOztBQUUxRSxNQUdhLGNBQWM7SUFDakIsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUNuQixPQUFPLENBQWdCO0lBRXZCLGlCQUFpQixHQUFHLElBQUksc0JBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztJQUMvRCxVQUFVLEdBQXdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUV4RSxZQUMrQixRQUEwQztRQUV2RSxJQUFJLFFBQVEsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDakMsQ0FBQzthQUFNLElBQUksUUFBUSxJQUFJLFFBQVEsSUFBSSxNQUFNLElBQUksUUFBUSxFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLHlCQUFhLENBQzlCLFFBQVEsQ0FBQyxNQUFNLEVBQ2YsUUFBUSxDQUFDLElBQUksRUFDYixRQUFRLENBQUMsT0FBTyxDQUNqQixDQUFDO1lBQ0YsSUFBSSxDQUFDLE9BQU87aUJBQ1QsZUFBZSxFQUFFO2lCQUNqQixLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixpQkFBRyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN2RCxDQUFDLENBQUM7aUJBQ0QsT0FBTyxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxD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RCxDQUFDO1FBQ3ZFLE9BQU8sR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUM5QyxDQUFDLENBQUM7Ozs7bURBT0Q7MkZBaktVLGNBQWM7a0JBSDFCLGlCQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBU0ksYUFBTTsyQkFBQyxvQ0FBbUI7eUNBMkdyQixjQUFjLE1BZ0JkLHFCQUFxQixNQVlyQixrQkFBa0IsTUFZbEIsYUFBYTtBQTBCdkIsU0FBUyxRQUFRLENBQUMsTUFBcUI7SUFDckMsT0FBTyxNQUFNLENBQUMsYUFBYSxLQUFLLE9BQU8sQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBEYXRhQWRhcHRlckFzeW5jT3B0aW9ucyxcbiAgRGF0YUFkYXB0ZXJTeW5jT3B0aW9ucyxcbiAgRHluYW1pY0NvbmZpZyxcbiAgRHluYW1pY0NvbmZpZ0V2YWx1YXRpb25PcHRpb25zLFxuICBFeHBlcmltZW50LFxuICBFeHBlcmltZW50RXZhbHVhdGlvbk9wdGlvbnMsXG4gIEZlYXR1cmVHYXRlRXZhbHVhdGlvbk9wdGlvbnMsXG4gIExheWVyLFxuICBMYXllckV2YWx1YXRpb25PcHRpb25zLFxuICBMb2csXG4gIFNES1R5cGUsXG4gIFN0YXRzaWdFdmVudCxcbiAgU3RhdHNpZ1VzZXIsXG59IGZyb20gJ0BzdGF0c2lnL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFN0YXRzaWdDbGllbnQgfSBmcm9tICdAc3RhdHNpZy9qcy1jbGllbnQnO1xuXG5pbXBvcnQgeyBNZW1vaXplIH0gZnJvbSAnLi9tZW1vaXplRGVjb3JhdG9yJztcbmltcG9ydCB7IFNUQVRTSUdfSU5JVF9DT05GSUcsIFN0YXRzaWdJbml0Q29uZmlnIH0gZnJvbSAnLi9zdGF0c2lnLm1vZHVsZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTdGF0c2lnU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX3JlbmRlclZlcnNpb24gPSAwO1xuICBwcml2YXRlIF9jbGllbnQ6IFN0YXRzaWdDbGllbnQ7XG5cbiAgcHJpdmF0ZSBfaXNMb2FkaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIGlzTG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9pc0xvYWRpbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoU1RBVFNJR19JTklUX0NPTkZJRykgcHJvdmlkZXI6IFN0YXRzaWdJbml0Q29uZmlnPFN0YXRzaWdDbGllbnQ+LFxuICApIHtcbiAgICBpZiAoJ2NsaWVudCcgaW4gcHJvdmlkZXIpIHtcbiAgICAgIHRoaXMuX2NsaWVudCA9IHByb3ZpZGVyLmNsaWVudDtcbiAgICB9IGVsc2UgaWYgKCdzZGtLZXknIGluIHByb3ZpZGVyICYmICd1c2VyJyBpbiBwcm92aWRlcikge1xuICAgICAgdGhpcy5fY2xpZW50ID0gbmV3IFN0YXRzaWdDbGllbnQoXG4gICAgICAgIHByb3ZpZGVyLnNka0tleSxcbiAgICAgICAgcHJvdmlkZXIudXNlcixcbiAgICAgICAgcHJvdmlkZXIub3B0aW9ucyxcbiAgICAgICk7XG4gICAgICB0aGlzLl9jbGllbnRcbiAgICAgICAgLmluaXRpYWxpemVBc3luYygpXG4gICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICBMb2cuZXJyb3IoJ0Vycm9yIGluaXRpYWxpemluZyBTdGF0c2lnQ2xpZW50JywgZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5faXNMb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIExvZy5lcnJvcihcbiAgICAgICAgJ011c3QgcHJvdmlkZSBhIGNsaWVudCBvciBzZGtLZXkgYW5kIHVzZXIgdG8gaW5pdGlhbGl6ZSBTdGF0c2lnU2VydmljZScsXG4gICAgICApO1xuICAgICAgdGhpcy5fY2xpZW50ID0gbmV3IFN0YXRzaWdDbGllbnQoJycsIHt9KTtcbiAgICB9XG4gICAgTG9nLmRlYnVnKCdTdGF0c2lnU2VydmljZSBjcmVhdGVkJywgdGhpcy5fY2xpZW50KTtcbiAgICB0aGlzLl9jaGVja0FuZEVtaXRMb2FkaW5nU3RhdHVzKCk7XG4gICAgdGhpcy5fY2xpZW50LiRvbigndmFsdWVzX3VwZGF0ZWQnLCB0aGlzLl9vblZhbHVlc1VwZGF0ZWQpO1xuXG4gICAgU0RLVHlwZS5fc2V0QmluZGluZ1R5cGUoJ2FuZ3VsYXInKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2NsaWVudC5zaHV0ZG93bigpLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgTG9nLmVycm9yKCdBbiBlcnJvciBvY2N1cmVkIGR1cmluZyBzaHV0ZG93bicsIGVycm9yKTtcbiAgICB9KTtcbiAgICB0aGlzLl9jbGllbnQub2ZmKCd2YWx1ZXNfdXBkYXRlZCcsIHRoaXMuX29uVmFsdWVzVXBkYXRlZCk7XG4gIH1cblxuICBjaGVja0dhdGUoZ2F0ZU5hbWU6IHN0cmluZywgb3B0aW9ucz86IEZlYXR1cmVHYXRlRXZhbHVhdGlvbk9wdGlvbnMpOiBib29sZWFuIHtcbiAgICBMb2cuZGVidWcoYGNoZWNrR2F0ZSBjYWxlZCBmb3IgJHtnYXRlTmFtZX0sIHJ2OiAke3RoaXMuX3JlbmRlclZlcnNpb259YCk7XG5cbiAgICByZXR1cm4gdGhpcy5fY2hlY2tHYXRlSW1wbCh0aGlzLl9yZW5kZXJWZXJzaW9uLCBnYXRlTmFtZSwgb3B0aW9ucyk7XG4gIH1cblxuICBnZXREeW5hbWljQ29uZmlnKFxuICAgIGNvbmZpZ05hbWU6IHN0cmluZyxcbiAgICBvcHRpb25zPzogRHluYW1pY0NvbmZpZ0V2YWx1YXRpb25PcHRpb25zLFxuICApOiBEeW5hbWljQ29uZmlnIHtcbiAgICBMb2cuZGVidWcoXG4gICAgICBgZ2V0RHluYW1pY0NvbmZpZyBjYWxsZWQgZm9yICR7Y29uZmlnTmFtZX0sIHJ2OiAke3RoaXMuX3JlbmRlclZlcnNpb259YCxcbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMuX2dldER5bmFtaWNDb25maWdJbXBsKHRoaXMuX3JlbmRlclZlcnNpb24sIGNvbmZpZ05hbWUsIG9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0RXhwZXJpbWVudChcbiAgICBleHBlcmltZW50TmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBFeHBlcmltZW50RXZhbHVhdGlvbk9wdGlvbnMsXG4gICk6IEV4cGVyaW1lbnQge1xuICAgIExvZy5kZWJ1ZyhcbiAgICAgIGBnZXRFeHBlcmltZW50IGNhbGVkIGZvciAke2V4cGVyaW1lbnROYW1lfSwgcnY6ICR7dGhpcy5fcmVuZGVyVmVyc2lvbn1gLFxuICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy5fZ2V0RXhwZXJpbWVudEltcGwoXG4gICAgICB0aGlzLl9yZW5kZXJWZXJzaW9uLFxuICAgICAgZXhwZXJpbWVudE5hbWUsXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gIH1cblxuICBnZXRMYXllcihsYXllck5hbWU6IHN0cmluZywgb3B0aW9ucz86IExheWVyRXZhbHVhdGlvbk9wdGlvbnMpOiBMYXllciB7XG4gICAgTG9nLmRlYnVnKGBnZXRMYXllciBjYWxlZCBmb3IgJHtsYXllck5hbWV9LCBydjogJHt0aGlzLl9yZW5kZXJWZXJzaW9ufWApO1xuXG4gICAgcmV0dXJuIHRoaXMuX2dldExheWVySW1wbCh0aGlzLl9yZW5kZXJWZXJzaW9uLCBsYXllck5hbWUsIG9wdGlvbnMpO1xuICB9XG5cbiAgbG9nRXZlbnQoXG4gICAgZXZlbnROYW1lOiBTdGF0c2lnRXZlbnQgfCBzdHJpbmcsXG4gICAgdmFsdWU/OiBzdHJpbmcgfCBudW1iZXIsXG4gICAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICApOiB2b2lkIHtcbiAgICB0aGlzLl9jbGllbnQubG9nRXZlbnQoZXZlbnROYW1lLCB2YWx1ZSwgbWV0YWRhdGEpO1xuICB9XG5cbiAgdXBkYXRlVXNlckFzeW5jKFxuICAgIHVzZXI6IFN0YXRzaWdVc2VyLFxuICAgIG9wdGlvbnM/OiBEYXRhQWRhcHRlckFzeW5jT3B0aW9ucyxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudC51cGRhdGVVc2VyQXN5bmModXNlciwgb3B0aW9ucyk7XG4gIH1cblxuICB1cGRhdGVVc2VyU3luYyh1c2VyOiBTdGF0c2lnVXNlciwgb3B0aW9ucz86IERhdGFBZGFwdGVyU3luY09wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLl9jbGllbnQudXBkYXRlVXNlclN5bmModXNlciwgb3B0aW9ucyk7XG4gIH1cblxuICBnZXRDbGllbnQoKTogU3RhdHNpZ0NsaWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudDtcbiAgfVxuXG4gIEBNZW1vaXplKCguLi5hcmdzOiB1bmtub3duW10pID0+IHtcbiAgICBjb25zdCBbcnYsIGduLCBvcHRdID0gYXJncyBhcyBbXG4gICAgICBudW1iZXIsXG4gICAgICBzdHJpbmcsXG4gICAgICBGZWF0dXJlR2F0ZUV2YWx1YXRpb25PcHRpb25zLFxuICAgIF07XG4gICAgcmV0dXJuIGAke3J2fS0ke2dufS0ke0pTT04uc3RyaW5naWZ5KG9wdCl9YDtcbiAgfSlcbiAgcHJpdmF0ZSBfY2hlY2tHYXRlSW1wbChcbiAgICBfcnY6IG51bWJlcixcbiAgICBnYXRlTmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBGZWF0dXJlR2F0ZUV2YWx1YXRpb25PcHRpb25zLFxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2xpZW50LmNoZWNrR2F0ZShnYXRlTmFtZSwgb3B0aW9ucyk7XG4gIH1cblxuICBATWVtb2l6ZSgoLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gICAgY29uc3QgW3J2LCBnbiwgb3B0XSA9IGFyZ3MgYXMgW1xuICAgICAgbnVtYmVyLFxuICAgICAgc3RyaW5nLFxuICAgICAgRHluYW1pY0NvbmZpZ0V2YWx1YXRpb25PcHRpb25zLFxuICAgIF07XG4gICAgcmV0dXJuIGAke3J2fS0ke2dufS0ke0pTT04uc3RyaW5naWZ5KG9wdCl9YDtcbiAgfSlcbiAgcHJpdmF0ZSBfZ2V0RHluYW1pY0NvbmZpZ0ltcGwoXG4gICAgX3J2OiBudW1iZXIsXG4gICAgY29uZmlnTmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBEeW5hbWljQ29uZmlnRXZhbHVhdGlvbk9wdGlvbnMsXG4gICk6IER5bmFtaWNDb25maWcge1xuICAgIHJldHVybiB0aGlzLl9jbGllbnQuZ2V0RHluYW1pY0NvbmZpZyhjb25maWdOYW1lLCBvcHRpb25zKTtcbiAgfVxuXG4gIEBNZW1vaXplKCguLi5hcmdzOiB1bmtub3duW10pID0+IHtcbiAgICBjb25zdCBbcnYsIGVuLCBvcHRdID0gYXJncyBhcyBbbnVtYmVyLCBzdHJpbmcsIEV4cGVyaW1lbnRFdmFsdWF0aW9uT3B0aW9uc107XG4gICAgcmV0dXJuIGAke3J2fS0ke2VufS0ke0pTT04uc3RyaW5naWZ5KG9wdCl9YDtcbiAgfSlcbiAgcHJpdmF0ZSBfZ2V0RXhwZXJpbWVudEltcGwoXG4gICAgX3J2OiBudW1iZXIsXG4gICAgZXhwZXJpbWVudE5hbWU6IHN0cmluZyxcbiAgICBvcHRpb25zPzogRXhwZXJpbWVudEV2YWx1YXRpb25PcHRpb25zLFxuICApOiBFeHBlcmltZW50IHtcbiAgICByZXR1cm4gdGhpcy5fY2xpZW50LmdldEV4cGVyaW1lbnQoZXhwZXJpbWVudE5hbWUsIG9wdGlvbnMpO1xuICB9XG5cbiAgQE1lbW9pemUoKC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuICAgIGNvbnN0IFtydiwgbG4sIG9wdF0gPSBhcmdzIGFzIFtudW1iZXIsIHN0cmluZywgTGF5ZXJFdmFsdWF0aW9uT3B0aW9uc107XG4gICAgcmV0dXJuIGAke3J2fS0ke2xufS0ke0pTT04uc3RyaW5naWZ5KG9wdCl9YDtcbiAgfSlcbiAgcHJpdmF0ZSBfZ2V0TGF5ZXJJbXBsKFxuICAgIF9ydjogbnVtYmVyLFxuICAgIGxheWVyTmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBMYXllckV2YWx1YXRpb25PcHRpb25zLFxuICApOiBMYXllciB7XG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudC5nZXRMYXllcihsYXllck5hbWUsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tBbmRFbWl0TG9hZGluZ1N0YXR1cygpOiB2b2lkIHtcbiAgICBjb25zdCBpc1JlYWR5ID0gX2lzUmVhZHkodGhpcy5fY2xpZW50KTtcbiAgICBpZiAoaXNSZWFkeSkge1xuICAgICAgdGhpcy5faXNMb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICAgIExvZy5kZWJ1ZygnQ2xpZW50IGlzIG5vdyByZWFkeSwgbG9hZGluZyBzdGF0dXMgc2V0IHRvIGZhbHNlJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2lzTG9hZGluZ1N1YmplY3QubmV4dCh0cnVlKTtcbiAgICAgIExvZy5kZWJ1ZygnQ2xpZW50IGlzIG5vdCByZWFkeSwgbG9hZGluZyBzdGF0dXMgc2V0IHRvIHRydWUnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vblZhbHVlc1VwZGF0ZWQgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5fcmVuZGVyVmVyc2lvbisrO1xuICAgIExvZy5kZWJ1ZygnVmFsdWVzIHVwZGF0ZWQnLCB0aGlzLl9yZW5kZXJWZXJzaW9uKTtcbiAgICB0aGlzLl9jaGVja0FuZEVtaXRMb2FkaW5nU3RhdHVzKCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIF9pc1JlYWR5KGNsaWVudDogU3RhdHNpZ0NsaWVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gY2xpZW50LmxvYWRpbmdTdGF0dXMgPT09ICdSZWFkeSc7XG59XG4iXX0=
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * Generated bundle index. Do not edit.
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("./index"), exports);
21
+ //# sourceMappingURL=statsig-angular-bindings.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statsig-angular-bindings.mjs","sources":["../../../../packages/angular-bindings/src/statsig-angular-bindings.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";AAAA;;AAEG;;;;;;;;;;;;;;;;AAEH,YAAwB,CAAA,OAAA,CAAA,SAAA,CAAA,EAAA,OAAA,CAAA"}
package/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export { StatsigModule, STATSIG_INIT_CONFIG } from './statsig.module';
2
+ export { StatsigService } from './statsig.service';
3
+ export { CheckGateDirective } from './checkGate.directive';
4
+ //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/angular-bindings/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function Memoize(keyGenerator: (...args: unknown[]) => string): MethodDecorator;
2
+ //# sourceMappingURL=memoizeDecorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoizeDecorator.d.ts","sourceRoot":"","sources":["../../../packages/angular-bindings/src/memoizeDecorator.ts"],"names":[],"mappings":"AAAA,wBAAgB,OAAO,CACrB,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,MAAM,GAC3C,eAAe,CAuBjB"}
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@statsig/angular-bindings",
3
+ "version": "3.6.0-beta.1",
4
+ "dependencies": {
5
+ "tslib": "^2.3.0"
6
+ },
7
+ "peerDependencies": {
8
+ "@angular/core": ">=12.0.0",
9
+ "@statsig/js-client": "3.6.0-beta.1",
10
+ "@statsig/client-core": "3.6.0-beta.1",
11
+ "rxjs": "^6.0.0 || ^7.0.0"
12
+ },
13
+ "sideEffects": false,
14
+ "module": "fesm2022/statsig-angular-bindings.mjs",
15
+ "typings": "index.d.ts",
16
+ "exports": {
17
+ "./package.json": {
18
+ "default": "./package.json"
19
+ },
20
+ ".": {
21
+ "types": "./index.d.ts",
22
+ "esm2022": "./esm2022/statsig-angular-bindings.mjs",
23
+ "esm": "./esm2022/statsig-angular-bindings.mjs",
24
+ "default": "./fesm2022/statsig-angular-bindings.mjs"
25
+ }
26
+ }
27
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statsig-angular-bindings.d.ts","sourceRoot":"","sources":["../../../packages/angular-bindings/src/statsig-angular-bindings.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,SAAS,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { FeatureGateEvaluationOptions, StatsigClient, StatsigOptions, StatsigUser } from '@statsig/js-client';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./checkGate.directive";
5
+ type WithClient<T extends StatsigClient> = {
6
+ client: T;
7
+ };
8
+ type WithConfiguration = {
9
+ sdkKey: string;
10
+ user: StatsigUser;
11
+ options?: StatsigOptions;
12
+ };
13
+ export type StatsigInitConfig<T extends StatsigClient> = WithClient<T> | WithConfiguration;
14
+ export declare const STATSIG_INIT_CONFIG: InjectionToken<StatsigInitConfig<StatsigClient>>;
15
+ export type FeatureGateOptions = FeatureGateEvaluationOptions;
16
+ export declare class StatsigModule {
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<StatsigModule, never>;
18
+ static ɵmod: i0.ɵɵNgModuleDeclaration<StatsigModule, [typeof i1.CheckGateDirective], never, [typeof i1.CheckGateDirective]>;
19
+ static ɵinj: i0.ɵɵInjectorDeclaration<StatsigModule>;
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=statsig.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statsig.module.d.ts","sourceRoot":"","sources":["../../../packages/angular-bindings/src/statsig.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAY,MAAM,eAAe,CAAC;AAEzD,OAAO,EACL,4BAA4B,EAC5B,aAAa,EACb,cAAc,EACd,WAAW,EACZ,MAAM,oBAAoB,CAAC;;;AAI5B,KAAK,UAAU,CAAC,CAAC,SAAS,aAAa,IAAI;IAAE,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC;AACzD,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,aAAa,IACjD,UAAU,CAAC,CAAC,CAAC,GACb,iBAAiB,CAAC;AAEtB,eAAO,MAAM,mBAAmB,kDAEZ,CAAC;AAErB,MAAM,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;AAE9D,qBAKa,aAAa;yCAAb,aAAa;0CAAb,aAAa;0CAAb,aAAa;CAAG"}
@@ -0,0 +1,31 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { DataAdapterAsyncOptions, DataAdapterSyncOptions, DynamicConfig, DynamicConfigEvaluationOptions, Experiment, ExperimentEvaluationOptions, FeatureGateEvaluationOptions, Layer, LayerEvaluationOptions, StatsigEvent, StatsigUser } from '@statsig/client-core';
4
+ import { StatsigClient } from '@statsig/js-client';
5
+ import { StatsigInitConfig } from './statsig.module';
6
+ import * as i0 from "@angular/core";
7
+ export declare class StatsigService implements OnDestroy {
8
+ private _renderVersion;
9
+ private _client;
10
+ private _isLoadingSubject;
11
+ isLoading$: Observable<boolean>;
12
+ constructor(provider: StatsigInitConfig<StatsigClient>);
13
+ ngOnDestroy(): void;
14
+ checkGate(gateName: string, options?: FeatureGateEvaluationOptions): boolean;
15
+ getDynamicConfig(configName: string, options?: DynamicConfigEvaluationOptions): DynamicConfig;
16
+ getExperiment(experimentName: string, options?: ExperimentEvaluationOptions): Experiment;
17
+ getLayer(layerName: string, options?: LayerEvaluationOptions): Layer;
18
+ logEvent(eventName: StatsigEvent | string, value?: string | number, metadata?: Record<string, string>): void;
19
+ updateUserAsync(user: StatsigUser, options?: DataAdapterAsyncOptions): Promise<void>;
20
+ updateUserSync(user: StatsigUser, options?: DataAdapterSyncOptions): void;
21
+ getClient(): StatsigClient;
22
+ private _checkGateImpl;
23
+ private _getDynamicConfigImpl;
24
+ private _getExperimentImpl;
25
+ private _getLayerImpl;
26
+ private _checkAndEmitLoadingStatus;
27
+ private _onValuesUpdated;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<StatsigService, never>;
29
+ static ɵprov: i0.ɵɵInjectableDeclaration<StatsigService>;
30
+ }
31
+ //# sourceMappingURL=statsig.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statsig.service.d.ts","sourceRoot":"","sources":["../../../packages/angular-bindings/src/statsig.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,SAAS,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAmB,UAAU,EAAE,MAAM,MAAM,CAAC;AAEnD,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,aAAa,EACb,8BAA8B,EAC9B,UAAU,EACV,2BAA2B,EAC3B,4BAA4B,EAC5B,KAAK,EACL,sBAAsB,EAGtB,YAAY,EACZ,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAuB,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;;AAE1E,qBAGa,cAAe,YAAW,SAAS;IAC9C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,OAAO,CAAgB;IAE/B,OAAO,CAAC,iBAAiB,CAAsC;IAC/D,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,CAAyC;gBAGzC,QAAQ,EAAE,iBAAiB,CAAC,aAAa,CAAC;IA+BzE,WAAW,IAAI,IAAI;IAOnB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,4BAA4B,GAAG,OAAO;IAM5E,gBAAgB,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,8BAA8B,GACvC,aAAa;IAQhB,aAAa,CACX,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,2BAA2B,GACpC,UAAU;IAYb,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,KAAK;IAMpE,QAAQ,CACN,SAAS,EAAE,YAAY,GAAG,MAAM,EAChC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,IAAI;IAIP,eAAe,CACb,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,IAAI,CAAC;IAIhB,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;IAIzE,SAAS,IAAI,aAAa;IAY1B,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,gBAAgB,CAItB;yCAlLS,cAAc;6CAAd,cAAc;CAmL1B"}