ng-configcat-publicapi-ui 2.3.2 → 2.3.3
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.
- package/bundles/ng-configcat-publicapi-ui.umd.js +1029 -870
- package/bundles/ng-configcat-publicapi-ui.umd.js.map +1 -1
- package/esm2015/lib/_services/form-helper.js +3 -3
- package/esm2015/lib/_services/public-api.service.js +9 -11
- package/esm2015/lib/_services/setting-list-form-helper.js +25 -18
- package/esm2015/lib/authorization/authorization.component.js +23 -18
- package/esm2015/lib/base/base.component.js +18 -16
- package/esm2015/lib/configuration.js +7 -4
- package/esm2015/lib/dialogs/concurrent-dialog/concurrent-dialog.component.js +15 -12
- package/esm2015/lib/dialogs/expand-dialog/expand-dialog.component.js +31 -20
- package/esm2015/lib/dialogs/reason-dialog/reason-dialog.component.js +19 -14
- package/esm2015/lib/dialogs/save-snackbar/save-snackbar.component.js +12 -9
- package/esm2015/lib/ng-configcat-publicapi-ui.module.js +116 -57
- package/esm2015/lib/selects/config-select/config-select.component.js +36 -23
- package/esm2015/lib/selects/environment-select/environment-select.component.js +23 -16
- package/esm2015/lib/selects/product-select/product-select.component.js +21 -15
- package/esm2015/lib/selects/setting-select/setting-select.component.js +23 -16
- package/esm2015/lib/setting-item/setting-item.component.js +46 -31
- package/esm2015/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.js +32 -14
- package/esm2015/lib/setting-list/setting/rollout-rules/rollout-rules.component.js +53 -26
- package/esm2015/lib/setting-list/setting/setting.component.js +45 -26
- package/esm2015/lib/setting-list/setting/value/value.component.js +24 -16
- package/esm2015/lib/setting-list/setting-list.component.js +43 -27
- package/esm2015/ng-configcat-publicapi-ui.js +1 -15
- package/fesm2015/ng-configcat-publicapi-ui.js +986 -828
- package/fesm2015/ng-configcat-publicapi-ui.js.map +1 -1
- package/lib/_services/form-helper.d.ts +1 -1
- package/lib/_services/public-api.service.d.ts +10 -7
- package/lib/_services/setting-list-form-helper.d.ts +5 -2
- package/lib/authorization/authorization.component.d.ts +4 -1
- package/lib/base/base.component.d.ts +6 -3
- package/lib/configuration.d.ts +3 -0
- package/lib/dialogs/concurrent-dialog/concurrent-dialog.component.d.ts +3 -0
- package/lib/dialogs/expand-dialog/expand-dialog.component.d.ts +7 -3
- package/lib/dialogs/reason-dialog/reason-dialog.component.d.ts +3 -0
- package/lib/dialogs/save-snackbar/save-snackbar.component.d.ts +3 -0
- package/lib/ng-configcat-publicapi-ui.module.d.ts +38 -0
- package/lib/selects/config-select/config-select.component.d.ts +3 -0
- package/lib/selects/environment-select/environment-select.component.d.ts +3 -0
- package/lib/selects/product-select/product-select.component.d.ts +3 -0
- package/lib/selects/setting-select/setting-select.component.d.ts +3 -0
- package/lib/setting-item/setting-item.component.d.ts +3 -0
- package/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.d.ts +7 -2
- package/lib/setting-list/setting/rollout-rules/rollout-rules.component.d.ts +10 -4
- package/lib/setting-list/setting/setting.component.d.ts +3 -0
- package/lib/setting-list/setting/value/value.component.d.ts +3 -0
- package/lib/setting-list/setting-list.component.d.ts +5 -1
- package/ng-configcat-publicapi-ui.d.ts +1 -14
- package/package.json +8 -10
- package/ng-configcat-publicapi-ui.metadata.json +0 -1
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
2
|
import { BaseComponent } from '../../base/base.component';
|
|
3
|
-
import
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../_services";
|
|
5
|
+
import * as i2 from "@angular/material/form-field";
|
|
6
|
+
import * as i3 from "@angular/material/select";
|
|
7
|
+
import * as i4 from "@angular/material/core";
|
|
8
|
+
import * as i5 from "@angular/common";
|
|
9
|
+
import * as i6 from "@angular/forms";
|
|
4
10
|
export class EnvironmentSelectComponent extends BaseComponent {
|
|
5
11
|
constructor(publicApiService) {
|
|
6
12
|
super(publicApiService);
|
|
13
|
+
this.environments = [];
|
|
7
14
|
}
|
|
8
15
|
ngOnInit() {
|
|
9
16
|
this.environments = [];
|
|
@@ -23,18 +30,18 @@ export class EnvironmentSelectComponent extends BaseComponent {
|
|
|
23
30
|
}
|
|
24
31
|
}
|
|
25
32
|
}
|
|
26
|
-
EnvironmentSelectComponent
|
|
27
|
-
{ type:
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
];
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
};
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
EnvironmentSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: EnvironmentSelectComponent, deps: [{ token: i1.PublicApiService }], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
+
EnvironmentSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: EnvironmentSelectComponent, selector: "configcat-environment-select", inputs: { valueFormControl: "valueFormControl", productId: "productId" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<mat-form-field class=\"form-field\">\n <mat-select placeholder=\"Environment\" [formControl]=\"valueFormControl\" *ngIf=\"environments\" name=\"value\">\n <mat-option *ngFor=\"let environment of environments\" [value]=\"environment.environmentId\">{{environment.name}}\n </mat-option>\n </mat-select>\n</mat-form-field>", styles: [".form-field{width:100%}\n"], components: [{ type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: EnvironmentSelectComponent, decorators: [{
|
|
36
|
+
type: Component,
|
|
37
|
+
args: [{
|
|
38
|
+
selector: 'configcat-environment-select',
|
|
39
|
+
templateUrl: './environment-select.component.html',
|
|
40
|
+
styleUrls: ['./environment-select.component.css']
|
|
41
|
+
}]
|
|
42
|
+
}], ctorParameters: function () { return [{ type: i1.PublicApiService }]; }, propDecorators: { valueFormControl: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], productId: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}] } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi9zZWxlY3RzL2Vudmlyb25tZW50LXNlbGVjdC9lbnZpcm9ubWVudC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3NlbGVjdHMvZW52aXJvbm1lbnQtc2VsZWN0L2Vudmlyb25tZW50LXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixLQUFLLEVBQW1DLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7QUFVMUQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGFBQWE7SUFNM0QsWUFDRSxnQkFBa0M7UUFDbEMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFKMUIsaUJBQVksR0FBdUIsRUFBRSxDQUFDO0lBS3RDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDeEYsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7Z0JBQ2pDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7aUJBQ3BFO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O3dIQTdCVSwwQkFBMEI7NEdBQTFCLDBCQUEwQiwwTENYdkMsc1ZBS2lCOzRGRE1KLDBCQUEwQjtrQkFMdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxXQUFXLEVBQUUscUNBQXFDO29CQUNsRCxTQUFTLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztpQkFDbEQ7dUdBR1UsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3B0aW9uYWwsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS9iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudE1vZGVsIH0gZnJvbSAnbmctY29uZmlnY2F0LXB1YmxpY2FwaSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFB1YmxpY0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb25maWdjYXQtZW52aXJvbm1lbnQtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Vudmlyb25tZW50LXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Vudmlyb25tZW50LXNlbGVjdC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnRTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpIHZhbHVlRm9ybUNvbnRyb2whOiBGb3JtQ29udHJvbDtcbiAgQElucHV0KCkgcHJvZHVjdElkITogc3RyaW5nO1xuICBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50TW9kZWxbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpY0FwaVNlcnZpY2U6IFB1YmxpY0FwaVNlcnZpY2UpIHtcbiAgICBzdXBlcihwdWJsaWNBcGlTZXJ2aWNlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZW52aXJvbm1lbnRzID0gW107XG4gICAgdGhpcy5yZWxvYWRFbnZpcm9ubWVudHMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIHRoaXMucmVsb2FkRW52aXJvbm1lbnRzKCk7XG4gIH1cblxuICByZWxvYWRFbnZpcm9ubWVudHMoKSB7XG4gICAgaWYgKHRoaXMucHJvZHVjdElkKSB7XG4gICAgICB0aGlzLmNyZWF0ZUVudmlyb25tZW50c1NlcnZpY2UoKS5nZXRFbnZpcm9ubWVudHModGhpcy5wcm9kdWN0SWQpLnN1YnNjcmliZShlbnZpcm9ubWVudHMgPT4ge1xuICAgICAgICB0aGlzLmVudmlyb25tZW50cyA9IGVudmlyb25tZW50cztcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnZhbHVlRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5lbnZpcm9ubWVudHNbMF0uZW52aXJvbm1lbnRJZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmb3JtLWZpZWxkXCI+XG4gICAgPG1hdC1zZWxlY3QgcGxhY2Vob2xkZXI9XCJFbnZpcm9ubWVudFwiIFtmb3JtQ29udHJvbF09XCJ2YWx1ZUZvcm1Db250cm9sXCIgKm5nSWY9XCJlbnZpcm9ubWVudHNcIiBuYW1lPVwidmFsdWVcIj5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGVudmlyb25tZW50IG9mIGVudmlyb25tZW50c1wiIFt2YWx1ZV09XCJlbnZpcm9ubWVudC5lbnZpcm9ubWVudElkXCI+e3tlbnZpcm9ubWVudC5uYW1lfX1cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIDwvbWF0LXNlbGVjdD5cbjwvbWF0LWZvcm0tZmllbGQ+Il19
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
2
|
import { BaseComponent } from '../../base/base.component';
|
|
3
|
-
import
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../_services";
|
|
5
|
+
import * as i2 from "@angular/material/form-field";
|
|
6
|
+
import * as i3 from "@angular/material/select";
|
|
7
|
+
import * as i4 from "@angular/material/core";
|
|
8
|
+
import * as i5 from "@angular/forms";
|
|
9
|
+
import * as i6 from "@angular/common";
|
|
4
10
|
export class ProductSelectComponent extends BaseComponent {
|
|
5
11
|
constructor(publicApiService) {
|
|
6
12
|
super(publicApiService);
|
|
13
|
+
this.products = [];
|
|
7
14
|
}
|
|
8
15
|
ngOnInit() {
|
|
9
16
|
this.products = [];
|
|
@@ -18,17 +25,16 @@ export class ProductSelectComponent extends BaseComponent {
|
|
|
18
25
|
});
|
|
19
26
|
}
|
|
20
27
|
}
|
|
21
|
-
ProductSelectComponent
|
|
22
|
-
{ type:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
];
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3NlbGVjdHMvcHJvZHVjdC1zZWxlY3QvcHJvZHVjdC1zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLEtBQUssRUFBbUMsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBT25ELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxhQUFhO0lBS3ZELFlBQ0UsZ0JBQWtDO1FBQ2xDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzlELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFO29CQUN6RCxTQUFTLEVBQUUsSUFBSTtvQkFDZixxQkFBcUIsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsSUFBSTtpQkFDekQsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQTFCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsd1RBQThDOzthQUUvQzs7O1lBTlEsZ0JBQWdCOzs7K0JBU3RCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3B0aW9uYWwsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS9iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0TW9kZWwgfSBmcm9tICduZy1jb25maWdjYXQtcHVibGljYXBpJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUHVibGljQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvbmZpZ2NhdC1wcm9kdWN0LXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2R1Y3Qtc2VsZWN0LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0U2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgdmFsdWVGb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG4gIHByb2R1Y3RzOiBQcm9kdWN0TW9kZWxbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWNBcGlTZXJ2aWNlOiBQdWJsaWNBcGlTZXJ2aWNlKSB7XG4gICAgc3VwZXIocHVibGljQXBpU2VydmljZSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnByb2R1Y3RzID0gW107XG4gICAgdGhpcy5jcmVhdGVQcm9kdWN0c1NlcnZpY2UoKS5nZXRQcm9kdWN0cygpLnN1YnNjcmliZShwcm9kdWN0cyA9PiB7XG4gICAgICB0aGlzLnByb2R1Y3RzID0gcHJvZHVjdHM7XG4gICAgICBpZiAodGhpcy5wcm9kdWN0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMudmFsdWVGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnByb2R1Y3RzWzBdLnByb2R1Y3RJZCwge1xuICAgICAgICAgIGVtaXRFdmVudDogdHJ1ZSxcbiAgICAgICAgICBlbWl0TW9kZWxUb1ZpZXdDaGFuZ2U6IHRydWUsIGVtaXRWaWV3VG9Nb2RlbENoYW5nZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG59XG4iXX0=
|
|
28
|
+
ProductSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: ProductSelectComponent, deps: [{ token: i1.PublicApiService }], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
+
ProductSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: ProductSelectComponent, selector: "configcat-product-select", inputs: { valueFormControl: "valueFormControl" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"form-field\">\n <mat-select placeholder=\"Product\" [formControl]=\"valueFormControl\" name=\"productValue\">\n <mat-option *ngFor=\"let product of products\" [value]=\"product.productId\">{{product.name}}\n </mat-option>\n </mat-select>\n</mat-form-field>", styles: [".form-field{width:100%}\n"], components: [{ type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: ProductSelectComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{
|
|
33
|
+
selector: 'configcat-product-select',
|
|
34
|
+
templateUrl: './product-select.component.html',
|
|
35
|
+
styleUrls: ['./product-select.component.css']
|
|
36
|
+
}]
|
|
37
|
+
}], ctorParameters: function () { return [{ type: i1.PublicApiService }]; }, propDecorators: { valueFormControl: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}] } });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3NlbGVjdHMvcHJvZHVjdC1zZWxlY3QvcHJvZHVjdC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3NlbGVjdHMvcHJvZHVjdC1zZWxlY3QvcHJvZHVjdC1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsS0FBSyxFQUFtQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7O0FBVTFELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxhQUFhO0lBS3ZELFlBQ0UsZ0JBQWtDO1FBQ2xDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBSjFCLGFBQVEsR0FBbUIsRUFBRSxDQUFDO0lBSzlCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzlELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFO29CQUN6RCxTQUFTLEVBQUUsSUFBSTtvQkFDZixxQkFBcUIsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsSUFBSTtpQkFDekQsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O29IQXJCVSxzQkFBc0I7d0dBQXRCLHNCQUFzQix5SUNYbkMsOFNBS2lCOzRGRE1KLHNCQUFzQjtrQkFMbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxXQUFXLEVBQUUsaUNBQWlDO29CQUM5QyxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztpQkFDOUM7dUdBR1UsZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9wdGlvbmFsLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHVjdE1vZGVsIH0gZnJvbSAnbmctY29uZmlnY2F0LXB1YmxpY2FwaSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFB1YmxpY0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb25maWdjYXQtcHJvZHVjdC1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9kdWN0LXNlbGVjdC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHJvZHVjdFNlbGVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHZhbHVlRm9ybUNvbnRyb2whOiBGb3JtQ29udHJvbDtcbiAgcHJvZHVjdHM6IFByb2R1Y3RNb2RlbFtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljQXBpU2VydmljZTogUHVibGljQXBpU2VydmljZSkge1xuICAgIHN1cGVyKHB1YmxpY0FwaVNlcnZpY2UpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wcm9kdWN0cyA9IFtdO1xuICAgIHRoaXMuY3JlYXRlUHJvZHVjdHNTZXJ2aWNlKCkuZ2V0UHJvZHVjdHMoKS5zdWJzY3JpYmUocHJvZHVjdHMgPT4ge1xuICAgICAgdGhpcy5wcm9kdWN0cyA9IHByb2R1Y3RzO1xuICAgICAgaWYgKHRoaXMucHJvZHVjdHMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnZhbHVlRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5wcm9kdWN0c1swXS5wcm9kdWN0SWQsIHtcbiAgICAgICAgICBlbWl0RXZlbnQ6IHRydWUsXG4gICAgICAgICAgZW1pdE1vZGVsVG9WaWV3Q2hhbmdlOiB0cnVlLCBlbWl0Vmlld1RvTW9kZWxDaGFuZ2U6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxufVxuIiwiPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZm9ybS1maWVsZFwiPlxuICAgIDxtYXQtc2VsZWN0IHBsYWNlaG9sZGVyPVwiUHJvZHVjdFwiIFtmb3JtQ29udHJvbF09XCJ2YWx1ZUZvcm1Db250cm9sXCIgbmFtZT1cInByb2R1Y3RWYWx1ZVwiPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiBwcm9kdWN0c1wiIFt2YWx1ZV09XCJwcm9kdWN0LnByb2R1Y3RJZFwiPnt7cHJvZHVjdC5uYW1lfX1cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIDwvbWF0LXNlbGVjdD5cbjwvbWF0LWZvcm0tZmllbGQ+Il19
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
2
|
import { BaseComponent } from '../../base/base.component';
|
|
3
|
-
import
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../_services";
|
|
5
|
+
import * as i2 from "@angular/material/form-field";
|
|
6
|
+
import * as i3 from "@angular/material/select";
|
|
7
|
+
import * as i4 from "@angular/material/core";
|
|
8
|
+
import * as i5 from "@angular/common";
|
|
9
|
+
import * as i6 from "@angular/forms";
|
|
4
10
|
export class SettingSelectComponent extends BaseComponent {
|
|
5
11
|
constructor(publicApiService) {
|
|
6
12
|
super(publicApiService);
|
|
13
|
+
this.settings = [];
|
|
7
14
|
}
|
|
8
15
|
ngOnInit() {
|
|
9
16
|
this.settings = [];
|
|
@@ -23,18 +30,18 @@ export class SettingSelectComponent extends BaseComponent {
|
|
|
23
30
|
}
|
|
24
31
|
}
|
|
25
32
|
}
|
|
26
|
-
SettingSelectComponent
|
|
27
|
-
{ type:
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
];
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
};
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
SettingSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: SettingSelectComponent, deps: [{ token: i1.PublicApiService }], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
+
SettingSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: SettingSelectComponent, selector: "configcat-setting-select", inputs: { valueFormControl: "valueFormControl", configId: "configId" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<mat-form-field class=\"form-field\">\n <mat-select placeholder=\"Feature flag or setting\" [formControl]=\"valueFormControl\" *ngIf=\"settings\" name=\"value\">\n <mat-option *ngFor=\"let setting of settings\" [value]=\"setting.settingId\">{{setting.name}}\n </mat-option>\n </mat-select>\n</mat-form-field>", styles: [".form-field{width:100%}\n"], components: [{ type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: SettingSelectComponent, decorators: [{
|
|
36
|
+
type: Component,
|
|
37
|
+
args: [{
|
|
38
|
+
selector: 'configcat-setting-select',
|
|
39
|
+
templateUrl: './setting-select.component.html',
|
|
40
|
+
styleUrls: ['./setting-select.component.css']
|
|
41
|
+
}]
|
|
42
|
+
}], ctorParameters: function () { return [{ type: i1.PublicApiService }]; }, propDecorators: { valueFormControl: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], configId: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}] } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3NlbGVjdHMvc2V0dGluZy1zZWxlY3Qvc2V0dGluZy1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3NlbGVjdHMvc2V0dGluZy1zZWxlY3Qvc2V0dGluZy1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsS0FBSyxFQUFtQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7O0FBVTFELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxhQUFhO0lBTXZELFlBQ0UsZ0JBQWtDO1FBQ2xDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBSjFCLGFBQVEsR0FBbUIsRUFBRSxDQUFDO0lBSzlCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMzRSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztnQkFDekIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDNUQ7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7b0hBN0JVLHNCQUFzQjt3R0FBdEIsc0JBQXNCLG9MQ1huQywwVUFLaUI7NEZETUosc0JBQXNCO2tCQUxsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFdBQVcsRUFBRSxpQ0FBaUM7b0JBQzlDLFNBQVMsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO2lCQUM5Qzt1R0FHVSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPcHRpb25hbCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlL2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFNldHRpbmdNb2RlbCB9IGZyb20gJ25nLWNvbmZpZ2NhdC1wdWJsaWNhcGknO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQdWJsaWNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29uZmlnY2F0LXNldHRpbmctc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NldHRpbmctc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2V0dGluZy1zZWxlY3QuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNldHRpbmdTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpIHZhbHVlRm9ybUNvbnRyb2whOiBGb3JtQ29udHJvbDtcbiAgQElucHV0KCkgY29uZmlnSWQhOiBzdHJpbmc7XG4gIHNldHRpbmdzOiBTZXR0aW5nTW9kZWxbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpY0FwaVNlcnZpY2U6IFB1YmxpY0FwaVNlcnZpY2UpIHtcbiAgICBzdXBlcihwdWJsaWNBcGlTZXJ2aWNlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dGluZ3MgPSBbXTtcbiAgICB0aGlzLnJlbG9hZFNldHRpbmdzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLnJlbG9hZFNldHRpbmdzKCk7XG4gIH1cblxuICByZWxvYWRTZXR0aW5ncygpIHtcbiAgICBpZiAodGhpcy5jb25maWdJZCkge1xuICAgICAgdGhpcy5jcmVhdGVTZXR0aW5nc1NlcnZpY2UoKS5nZXRTZXR0aW5ncyh0aGlzLmNvbmZpZ0lkKS5zdWJzY3JpYmUoc2V0dGluZ3MgPT4ge1xuICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnZhbHVlRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5zZXR0aW5nc1swXS5zZXR0aW5nSWQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZvcm0tZmllbGRcIj5cbiAgICA8bWF0LXNlbGVjdCBwbGFjZWhvbGRlcj1cIkZlYXR1cmUgZmxhZyBvciBzZXR0aW5nXCIgW2Zvcm1Db250cm9sXT1cInZhbHVlRm9ybUNvbnRyb2xcIiAqbmdJZj1cInNldHRpbmdzXCIgbmFtZT1cInZhbHVlXCI+XG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzZXR0aW5nIG9mIHNldHRpbmdzXCIgW3ZhbHVlXT1cInNldHRpbmcuc2V0dGluZ0lkXCI+e3tzZXR0aW5nLm5hbWV9fVxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuPC9tYXQtZm9ybS1maWVsZD4iXX0=
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
2
|
import { BaseComponent } from '../base/base.component';
|
|
3
|
-
import { throwError } from 'rxjs';
|
|
3
|
+
import { throwError, of } from 'rxjs';
|
|
4
4
|
import { map, catchError } from 'rxjs/operators';
|
|
5
|
-
import
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../_services";
|
|
7
|
+
import * as i2 from "../setting-list/setting-list.component";
|
|
6
8
|
export class SettingItemComponent extends BaseComponent {
|
|
7
9
|
constructor(publicApiService) {
|
|
8
10
|
super(publicApiService);
|
|
@@ -36,7 +38,7 @@ export class SettingItemComponent extends BaseComponent {
|
|
|
36
38
|
};
|
|
37
39
|
this.handleSave = (model) => {
|
|
38
40
|
if (model.settingValues.length === 0) {
|
|
39
|
-
return;
|
|
41
|
+
return of();
|
|
40
42
|
}
|
|
41
43
|
const updateModel = model.settingValues[0];
|
|
42
44
|
return this.createSettingValuesService().replaceSettingValue(this.environmentId, this.settingId, updateModel, model.reason)
|
|
@@ -76,31 +78,44 @@ export class SettingItemComponent extends BaseComponent {
|
|
|
76
78
|
this.formValuesChanged.emit();
|
|
77
79
|
}
|
|
78
80
|
}
|
|
79
|
-
SettingItemComponent
|
|
80
|
-
{ type:
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
];
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
81
|
+
SettingItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: SettingItemComponent, deps: [{ token: i1.PublicApiService }], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
+
SettingItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: SettingItemComponent, selector: "configcat-setting-item", inputs: { productId: "productId", environmentId: "environmentId", configId: "configId", settingId: "settingId", canEditSetting: "canEditSetting", canDeleteSetting: "canDeleteSetting", deleteSettingText: "deleteSettingText", showEnvironmentName: "showEnvironmentName" }, outputs: { editSettingRequested: "editSettingRequested", deleteSettingRequested: "deleteSettingRequested", loadSucceeded: "loadSucceeded", loadFailed: "loadFailed", saveSucceeded: "saveSucceeded", saveFailed: "saveFailed", formValuesChanged: "formValuesChanged" }, usesInheritance: true, ngImport: i0, template: "<configcat-setting-list [canEditSetting]=\"canEditSetting\" [canDeleteSetting]=\"canDeleteSetting\"\n [onSave]=\"handleSave\" [loadSettingValues]=\"loadSettingValues\"\n (editSettingRequested)=\"onEditSettingRequested($event)\" (deleteSettingRequested)=\"onDeleteSettingRequested($event)\"\n [deleteSettingText]=\"deleteSettingText\"\n [showEnvironmentName]=\"showEnvironmentName\" (formValuesChanged)=\"onFormValuesChanged()\">\n</configcat-setting-list>", styles: [".container{font-family:Montserrat,Roboto,\"Helvetica Neue\",sans-serif;background-color:#f3f3f3;border:1px solid rgba(0,0,0,.12);border-radius:4px;margin:1em 0}.container .setting-full{position:relative;display:flex;flex-wrap:nowrap}.container .setting-full .setting-details{display:flex;flex-direction:column;width:400px;padding:1em 0 1em 1em}.container .setting-full .setting-details>*{margin:.5em}.container .setting-full .setting-details .setting-name{flex-direction:row}.container .setting-full .setting-details .setting-name .name{font-weight:bold;word-wrap:break-word;max-width:100%}.container .setting-full .setting-details .setting-key{word-wrap:break-word}.container .setting-full .setting-details .description{font-size:.8em}.container .setting-full .setting-details code{background-color:#d3d3d3;padding:3px 6px}.container .setting-full .rules-list{width:100%;padding:1em}.container .setting-full .targeting-button{margin-left:1rem;margin-bottom:1em}.all-other{min-height:40px;justify-content:flex-start;border:1px solid #d5d5d5;border-radius:4px;background-color:#fff;margin:.5em 1em;padding:4px 0 4px .5em}.all-other .chip{background-color:#67b1fc3d}.all-other .served-value{margin-left:auto;min-width:100px}.end{margin-left:auto}.flex{display:flex;flex-wrap:wrap;align-items:center}.show-hide-toggle{margin-left:1em;cursor:pointer}@media (max-width: 1200px){.setting-full .setting-details{width:300px}}@media (max-width: 700px){.setting-full{flex-wrap:wrap}.setting-full .setting-details{padding:.2em 0 .2em .2em}.setting-full .all-other{margin:.5em .3em}}\n"], components: [{ type: i2.SettingListComponent, selector: "configcat-setting-list", inputs: ["canEditSetting", "canDeleteSetting", "onSave", "loadSettingValues", "deleteSettingText", "showEnvironmentName"], outputs: ["editSettingRequested", "deleteSettingRequested", "formValuesChanged"] }] });
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: SettingItemComponent, decorators: [{
|
|
84
|
+
type: Component,
|
|
85
|
+
args: [{
|
|
86
|
+
selector: 'configcat-setting-item',
|
|
87
|
+
templateUrl: './setting-item.component.html',
|
|
88
|
+
styleUrls: ['./setting-item.component.scss']
|
|
89
|
+
}]
|
|
90
|
+
}], ctorParameters: function () { return [{ type: i1.PublicApiService }]; }, propDecorators: { productId: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], environmentId: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], configId: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], settingId: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}], canEditSetting: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}], canDeleteSetting: [{
|
|
101
|
+
type: Input
|
|
102
|
+
}], deleteSettingText: [{
|
|
103
|
+
type: Input
|
|
104
|
+
}], showEnvironmentName: [{
|
|
105
|
+
type: Input
|
|
106
|
+
}], editSettingRequested: [{
|
|
107
|
+
type: Output
|
|
108
|
+
}], deleteSettingRequested: [{
|
|
109
|
+
type: Output
|
|
110
|
+
}], loadSucceeded: [{
|
|
111
|
+
type: Output
|
|
112
|
+
}], loadFailed: [{
|
|
113
|
+
type: Output
|
|
114
|
+
}], saveSucceeded: [{
|
|
115
|
+
type: Output
|
|
116
|
+
}], saveFailed: [{
|
|
117
|
+
type: Output
|
|
118
|
+
}], formValuesChanged: [{
|
|
119
|
+
type: Output
|
|
120
|
+
}] } });
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi9zZXR0aW5nLWl0ZW0vc2V0dGluZy1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi9zZXR0aW5nLWl0ZW0vc2V0dGluZy1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQWMsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBU2pELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxhQUFhO0lBd0JyRCxZQUNFLGdCQUFrQztRQUNsQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQW5CakIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLHNCQUFpQixHQUFHLGdCQUFnQixDQUFDO1FBQ3JDLHdCQUFtQixHQUFHLElBQUksQ0FBQztRQUUxQix5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFDLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFNUMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUs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eEIsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVztZQUMxQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7O2tIQXRHVSxvQkFBb0I7c0dBQXBCLG9CQUFvQiw0bUJDYmpDLHFkQUt5Qjs0RkRRWixvQkFBb0I7a0JBTGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsV0FBVyxFQUFFLCtCQUErQjtvQkFDNUMsU0FBUyxFQUFFLENBQUMsK0JBQStCLENBQUM7aUJBQzdDO3VHQUdVLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFFSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csc0JBQXNCO3NCQUEvQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBRUcsaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9wdGlvbmFsLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlL2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFNldHRpbmdWYWx1ZU1vZGVsLCBVcGRhdGVTZXR0aW5nVmFsdWVNb2RlbCB9IGZyb20gJ25nLWNvbmZpZ2NhdC1wdWJsaWNhcGknO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFB1YmxpY0FwaVNlcnZpY2UgfSBmcm9tICcuLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgU2V0dGluZ1ZhbHVlc01vZGVsLCBVcGRhdGVTZXR0aW5nVmFsdWVzTW9kZWwgfSBmcm9tICcuLi9fbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29uZmlnY2F0LXNldHRpbmctaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXR0aW5nLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZXR0aW5nLWl0ZW0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZXR0aW5nSXRlbUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHByb2R1Y3RJZCE6IHN0cmluZztcbiAgQElucHV0KCkgZW52aXJvbm1lbnRJZCE6IHN0cmluZztcbiAgQElucHV0KCkgY29uZmlnSWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNldHRpbmdJZCE6IG51bWJlcjtcblxuICBASW5wdXQoKSBjYW5FZGl0U2V0dGluZyA9IHRydWU7XG4gIEBJbnB1dCgpIGNhbkRlbGV0ZVNldHRpbmcgPSB0cnVlO1xuICBASW5wdXQoKSBkZWxldGVTZXR0aW5nVGV4dCA9ICdEZWxldGUgc2V0dGluZyc7XG4gIEBJbnB1dCgpIHNob3dFbnZpcm9ubWVudE5hbWUgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSBlZGl0U2V0dGluZ1JlcXVlc3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGRlbGV0ZVNldHRpbmdSZXF1ZXN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIGxvYWRTdWNjZWVkZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBsb2FkRmFpbGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2F2ZVN1Y2NlZWRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHNhdmVGYWlsZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIGZvcm1WYWx1ZXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHNldHRpbmdWYWx1ZSE6IFNldHRpbmdWYWx1ZU1vZGVsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpY0FwaVNlcnZpY2U6IFB1YmxpY0FwaVNlcnZpY2UpIHtcbiAgICBzdXBlcihwdWJsaWNBcGlTZXJ2aWNlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgbG9hZFNldHRpbmdWYWx1ZXMgPSAoKTogT2JzZXJ2YWJsZTxTZXR0aW5nVmFsdWVzTW9kZWw+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVTZXR0aW5nVmFsdWVzU2VydmljZSgpLmdldFNldHRpbmdWYWx1ZSh0aGlzLmVudmlyb25tZW50SWQsIHRoaXMuc2V0dGluZ0lkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChzZXR0aW5nVmFsdWUgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0dGluZ1ZhbHVlID0gc2V0dGluZ1ZhbHVlO1xuXG4gICAgICAgICAgY29uc3Qgc2V0dGluZ1ZhbHVlcyA9IHtcbiAgICAgICAgICAgIHNldHRpbmdWYWx1ZXM6IFtzZXR0aW5nVmFsdWVdLFxuICAgICAgICAgICAgcmVhZE9ubHk6IHNldHRpbmdWYWx1ZS5yZWFkT25seSxcbiAgICAgICAgICAgIGNvbmZpZzogc2V0dGluZ1ZhbHVlLmNvbmZpZyxcbiAgICAgICAgICAgIGVudmlyb25tZW50OiBzZXR0aW5nVmFsdWUuZW52aXJvbm1lbnRcbiAgICAgICAgICB9IGFzIFNldHRpbmdWYWx1ZXNNb2RlbDtcblxuICAgICAgICAgIHRoaXMubG9hZFN1Y2NlZWRlZC5lbWl0KHNldHRpbmdWYWx1ZXMpO1xuICAgICAgICAgIHJldHVybiBzZXR0aW5nVmFsdWVzO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkRmFpbGVkLmVtaXQoZXJyb3IpO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBoYW5kbGVTYXZlID0gKG1vZGVsOiBVcGRhdGVTZXR0aW5nVmFsdWVzTW9kZWwpOiBPYnNlcnZhYmxlPFNldHRpbmdWYWx1ZXNNb2RlbD4gPT4ge1xuICAgIGlmIChtb2RlbC5zZXR0aW5nVmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG9mKCk7XG4gICAgfVxuICAgIGNvbnN0IHVwZGF0ZU1vZGVsID0gbW9kZWwuc2V0dGluZ1ZhbHVlc1swXSBhcyBVcGRhdGVTZXR0aW5nVmFsdWVNb2RlbDtcblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZVNldHRpbmdWYWx1ZXNTZXJ2aWNlKCkucmVwbGFjZVNldHRpbmdWYWx1ZShcbiAgICAgIHRoaXMuZW52aXJvbm1lbnRJZCwgdGhpcy5zZXR0aW5nSWQsIHVwZGF0ZU1vZGVsLCBtb2RlbC5yZWFzb24pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHNldHRpbmdWYWx1ZSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXR0aW5nVmFsdWUgPSBzZXR0aW5nVmFsdWU7XG5cbiAgICAgICAgICBjb25zdCBzZXR0aW5nVmFsdWVzID0ge1xuICAgICAgICAgICAgc2V0dGluZ1ZhbHVlczogW3NldHRpbmdWYWx1ZV0sXG4gICAgICAgICAgICByZWFkT25seTogc2V0dGluZ1ZhbHVlLnJlYWRPbmx5LFxuICAgICAgICAgICAgY29uZmlnOiBzZXR0aW5nVmFsdWUuY29uZmlnLFxuICAgICAgICAgICAgZW52aXJvbm1lbnQ6IHNldHRpbmdWYWx1ZS5lbnZpcm9ubWVudFxuICAgICAgICAgIH0gYXMgU2V0dGluZ1ZhbHVlc01vZGVsO1xuXG4gICAgICAgICAgdGhpcy5zYXZlU3VjY2VlZGVkLmVtaXQoc2V0dGluZ1ZhbHVlcyk7XG4gICAgICAgICAgcmV0dXJuIHNldHRpbmdWYWx1ZXM7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLnNhdmVGYWlsZWQuZW1pdChlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIG9uRWRpdFNldHRpbmdSZXF1ZXN0ZWQoc2V0dGluZzogYW55KSB7XG4gICAgdGhpcy5lZGl0U2V0dGluZ1JlcXVlc3RlZC5lbWl0KHtcbiAgICAgIHNldHRpbmc6IHNldHRpbmcuc2V0dGluZyxcbiAgICAgIGVudmlyb25tZW50OiB0aGlzLnNldHRpbmdWYWx1ZS5lbnZpcm9ubWVudCxcbiAgICAgIGNvbmZpZzogdGhpcy5zZXR0aW5nVmFsdWUuY29uZmlnXG4gICAgfSk7XG4gIH1cblxuICBvbkRlbGV0ZVNldHRpbmdSZXF1ZXN0ZWQoc2V0dGluZzogYW55KSB7XG4gICAgdGhpcy5kZWxldGVTZXR0aW5nUmVxdWVzdGVkLmVtaXQoe1xuICAgICAgc2V0dGluZzogc2V0dGluZy5zZXR0aW5nLFxuICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuc2V0dGluZ1ZhbHVlLmVudmlyb25tZW50LFxuICAgICAgY29uZmlnOiB0aGlzLnNldHRpbmdWYWx1ZS5jb25maWdcbiAgICB9KTtcbiAgfVxuXG4gIG9uRm9ybVZhbHVlc0NoYW5nZWQoKSB7XG4gICAgdGhpcy5mb3JtVmFsdWVzQ2hhbmdlZC5lbWl0KCk7XG4gIH1cbn1cbiIsIjxjb25maWdjYXQtc2V0dGluZy1saXN0IFtjYW5FZGl0U2V0dGluZ109XCJjYW5FZGl0U2V0dGluZ1wiIFtjYW5EZWxldGVTZXR0aW5nXT1cImNhbkRlbGV0ZVNldHRpbmdcIlxuICAgIFtvblNhdmVdPVwiaGFuZGxlU2F2ZVwiIFtsb2FkU2V0dGluZ1ZhbHVlc109XCJsb2FkU2V0dGluZ1ZhbHVlc1wiXG4gICAgKGVkaXRTZXR0aW5nUmVxdWVzdGVkKT1cIm9uRWRpdFNldHRpbmdSZXF1ZXN0ZWQoJGV2ZW50KVwiIChkZWxldGVTZXR0aW5nUmVxdWVzdGVkKT1cIm9uRGVsZXRlU2V0dGluZ1JlcXVlc3RlZCgkZXZlbnQpXCJcbiAgICBbZGVsZXRlU2V0dGluZ1RleHRdPVwiZGVsZXRlU2V0dGluZ1RleHRcIlxuICAgIFtzaG93RW52aXJvbm1lbnROYW1lXT1cInNob3dFbnZpcm9ubWVudE5hbWVcIiAoZm9ybVZhbHVlc0NoYW5nZWQpPVwib25Gb3JtVmFsdWVzQ2hhbmdlZCgpXCI+XG48L2NvbmZpZ2NhdC1zZXR0aW5nLWxpc3Q+Il19
|
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
2
|
import { SettingType } from 'ng-configcat-publicapi';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/material/chips";
|
|
5
|
+
import * as i2 from "@angular/material/icon";
|
|
6
|
+
import * as i3 from "../value/value.component";
|
|
7
|
+
import * as i4 from "@angular/forms";
|
|
8
|
+
import * as i5 from "@angular/common";
|
|
9
|
+
import * as i6 from "@angular/material/tooltip";
|
|
3
10
|
export class RolloutPercentageItemsComponent {
|
|
4
11
|
constructor() {
|
|
12
|
+
this.readOnly = false;
|
|
5
13
|
this.SettingType = SettingType;
|
|
6
14
|
}
|
|
7
15
|
setting() {
|
|
8
|
-
|
|
16
|
+
var _a;
|
|
17
|
+
return (_a = this.formGroup.get('setting')) === null || _a === void 0 ? void 0 : _a.value;
|
|
9
18
|
}
|
|
10
19
|
rolloutRules() {
|
|
11
20
|
return this.formGroup.get('rolloutRules');
|
|
@@ -53,17 +62,26 @@ export class RolloutPercentageItemsComponent {
|
|
|
53
62
|
this.rolloutPercentageItems().markAsDirty();
|
|
54
63
|
this.updateSum();
|
|
55
64
|
}
|
|
65
|
+
getRolloutPercentageItemFormGroups() {
|
|
66
|
+
var _a, _b;
|
|
67
|
+
return (_b = (_a = this.rolloutPercentageItems()) === null || _a === void 0 ? void 0 : _a.controls) === null || _b === void 0 ? void 0 : _b.map(c => c);
|
|
68
|
+
}
|
|
69
|
+
getPercentageFormControl(rolloutPercentageItem) {
|
|
70
|
+
return rolloutPercentageItem.controls.percentage;
|
|
71
|
+
}
|
|
56
72
|
}
|
|
57
|
-
RolloutPercentageItemsComponent
|
|
58
|
-
{ type:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
|
|
73
|
+
RolloutPercentageItemsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: RolloutPercentageItemsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
74
|
+
RolloutPercentageItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: RolloutPercentageItemsComponent, selector: "configcat-rollout-percentage-items", inputs: { formGroup: "formGroup", readOnly: "readOnly" }, ngImport: i0, template: "<div class=\"percentage-wrapper\" [formGroup]=\"formGroup\">\n\n <div class=\"if\" *ngIf=\"rolloutRules().controls.length > 0\">\n <mat-chip-list>\n <mat-chip class=\"chip\">ELSE IF</mat-chip>\n </mat-chip-list>\n </div>\n <div class=\"grow\">\n <div class=\"percentage-row flex\"\n *ngFor=\"let rolloutPercentageItem of getRolloutPercentageItemFormGroups(); let i = index\">\n <div class=\"flex\">\n <input type=\"number\" [formControl]=\"getPercentageFormControl(rolloutPercentageItem)\"\n (input)=\"percentageChanged(i)\">%\n <span class=\"users\">of <a href=\"https://configcat.com/docs/advanced/user-object\" target=\"_blank\"\n rel=\"noopener noreferrer\">users</a>\n </span>\n </div>\n\n <div class=\"delete-option\" matTooltip=\"Remove this % option\"\n *ngIf=\"!readOnly && rolloutPercentageItems().controls.length > 2\"\n (click)=\"removeRolloutPercentageItem(i)\">\n <mat-icon>cancel</mat-icon>\n </div>\n\n <span data-tooltip=\"The sum of percentages must be equal to 100.\"\n *ngIf=\"(i === rolloutPercentageItems().controls.length -1) && (rolloutPercentageItemsSum().invalid)\">\n <mat-icon color=\"warn\">\n error_outline\n </mat-icon>\n </span>\n\n <div class=\"value flex\">\n <span class=\"value-name\" *ngIf=\"setting().settingType !== SettingType.Boolean\">Served value:</span>\n <configcat-value class=\"served-value\" [valueFormControl]=\"value(rolloutPercentageItem)\"\n [setting]=\"setting()\">\n </configcat-value>\n </div>\n <div class=\"delete\" matTooltip=\"Remove % options\" (click)=\"removeAll()\" *ngIf=\"!readOnly\">\n <mat-icon>cancel</mat-icon>\n </div>\n </div>\n </div>\n</div>", styles: [".percentage-wrapper{border:1px solid #d5d5d5;background-color:#fff;border-radius:4px;margin:.5em 1em;position:relative;padding:.5em 0;display:flex}.percentage-wrapper .delete{position:absolute;color:#d6a9a9;cursor:pointer;top:-8px;right:-12px}.percentage-wrapper .delete:hover{color:#ed5251}.percentage-wrapper .delete mat-icon{font-size:20px}.percentage-wrapper .delete-option{color:#d6a9a9;cursor:pointer;margin-left:1rem;margin-top:4px}.percentage-wrapper .delete-option:hover{color:#ed5251}.percentage-wrapper .delete-option mat-icon{font-size:20px}.if{display:flex;align-items:center}.if>*{margin:0 .5em}.if .spacing{margin-right:44px}.if .chip{background-color:#67b1fc3d}.grow{flex-grow:1}.percentage-row{min-height:40px;margin-left:.5em}.flex{display:flex;flex-wrap:wrap;align-items:center}.value{margin-left:auto;min-width:100px}.value .value-name{display:none}input{background-color:#fff;border:1px solid #e5e5e5;min-height:28px;width:40px;margin-right:5px;font-size:15px;padding:0 5px;font-family:Montserrat,Roboto,\"Helvetica Neue\",sans-serif;font-weight:300}.users{margin-left:20px}@media (max-width: 700px){.percentage-wrapper{margin:.5em .3em}}\n"], components: [{ type: i1.MatChipList, selector: "mat-chip-list", inputs: ["aria-orientation", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "selectable", "tabIndex", "errorStateMatcher"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.ValueComponent, selector: "configcat-value", inputs: ["valueFormControl", "setting"] }], directives: [{ type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: RolloutPercentageItemsComponent, decorators: [{
|
|
76
|
+
type: Component,
|
|
77
|
+
args: [{
|
|
78
|
+
selector: 'configcat-rollout-percentage-items',
|
|
79
|
+
templateUrl: './rollout-percentage-items.component.html',
|
|
80
|
+
styleUrls: ['./rollout-percentage-items.component.scss']
|
|
81
|
+
}]
|
|
82
|
+
}], ctorParameters: function () { return []; }, propDecorators: { formGroup: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], readOnly: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}] } });
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbG91dC1wZXJjZW50YWdlLWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi9zZXR0aW5nLWxpc3Qvc2V0dGluZy9yb2xsb3V0LXBlcmNlbnRhZ2UtaXRlbXMvcm9sbG91dC1wZXJjZW50YWdlLWl0ZW1zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi9zZXR0aW5nLWxpc3Qvc2V0dGluZy9yb2xsb3V0LXBlcmNlbnRhZ2UtaXRlbXMvcm9sbG91dC1wZXJjZW50YWdlLWl0ZW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7QUFPckQsTUFBTSxPQUFPLCtCQUErQjtJQTZCMUM7UUExQlMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQixnQkFBVyxHQUFHLFdBQVcsQ0FBQztJQXlCVixDQUFDO0lBdEJqQixPQUFPOztRQUNMLE9BQU8sTUFBQSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsMENBQUUsS0FBSyxDQUFDO0lBQzlDLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQWMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQWMsQ0FBQztJQUNuRSxDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FB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QkFBd0IsQ0FBQyxxQkFBMEI7UUFDakQsT0FBTyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsVUFBeUIsQ0FBQztJQUNsRSxDQUFDOzs2SEE1RVUsK0JBQStCO2lIQUEvQiwrQkFBK0Isb0lDVDVDLCtnRUEwQ007NEZEakNPLCtCQUErQjtrQkFMM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0NBQW9DO29CQUM5QyxXQUFXLEVBQUUsMkNBQTJDO29CQUN4RCxTQUFTLEVBQUUsQ0FBQywyQ0FBMkMsQ0FBQztpQkFDekQ7MEVBR1UsU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQXJyYXksIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2V0dGluZ1R5cGUgfSBmcm9tICduZy1jb25maWdjYXQtcHVibGljYXBpJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29uZmlnY2F0LXJvbGxvdXQtcGVyY2VudGFnZS1pdGVtcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yb2xsb3V0LXBlcmNlbnRhZ2UtaXRlbXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yb2xsb3V0LXBlcmNlbnRhZ2UtaXRlbXMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSb2xsb3V0UGVyY2VudGFnZUl0ZW1zQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBmb3JtR3JvdXAhOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHJlYWRPbmx5ID0gZmFsc2U7XG4gIFNldHRpbmdUeXBlID0gU2V0dGluZ1R5cGU7XG5cblxuICBzZXR0aW5nKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoJ3NldHRpbmcnKT8udmFsdWU7XG4gIH1cblxuICByb2xsb3V0UnVsZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldCgncm9sbG91dFJ1bGVzJykgYXMgRm9ybUFycmF5O1xuICB9XG5cbiAgcm9sbG91dFBlcmNlbnRhZ2VJdGVtcygpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KCdyb2xsb3V0UGVyY2VudGFnZUl0ZW1zJykgYXMgRm9ybUFycmF5O1xuICB9XG5cbiAgcm9sbG91dFBlcmNlbnRhZ2VJdGVtc1N1bSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KCdyb2xsb3V0UGVyY2VudGFnZUl0ZW1zU3VtJykgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICB2YWx1ZShyb2xsb3V0UGVyY2VudGFnZUl0ZW06IEZvcm1Hcm91cCk6IEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5nKCkuc2V0dGluZ1R5cGUgPT09IFNldHRpbmdUeXBlLkJvb2xlYW4gP1xuICAgICAgcm9sbG91dFBlcmNlbnRhZ2VJdGVtLmdldCgndmFsdWVEaXNhYmxlZCcpIGFzIEZvcm1Db250cm9sIDpcbiAgICAgIHJvbGxvdXRQZXJjZW50YWdlSXRlbS5nZXQoJ3ZhbHVlJykgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHBlcmNlbnRhZ2VDaGFuZ2VkKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5yb2xsb3V0UGVyY2VudGFnZUl0ZW1zKCkuY29udHJvbHNbaW5kZXhdLnZhbHVlLnBlcmNlbnRhZ2UgPCAwKSB7XG4gICAgICAodGhpcy5yb2xsb3V0UGVyY2VudGFnZUl0ZW1zKCkuY29udHJvbHNbaW5kZXhdIGFzIEZvcm1Hcm91cCkuY29udHJvbHMucGVyY2VudGFnZS5zZXRWYWx1ZSgwKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucm9sbG91dFBlcmNlbnRhZ2VJdGVtcygpLmNvbnRyb2xzW2luZGV4XS52YWx1ZS5wZXJjZW50YWdlID4gMTAwKSB7XG4gICAgICAodGhpcy5yb2xsb3V0UGVyY2VudGFnZUl0ZW1zKCkuY29udHJvbHNbaW5kZXhdIGFzIEZvcm1Hcm91cCkuY29udHJvbHMucGVyY2VudGFnZS5zZXRWYWx1ZSgxMDApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnJvbGxvdXRQZXJjZW50YWdlSXRlbXMoKS5jb250cm9scy5sZW5ndGggPT09IDIpIHtcbiAgICAgICh0aGlzLnJvbGxvdXRQZXJjZW50YWdlSXRlbXMoKS5jb250cm9sc1sxIC0gaW5kZXhdIGFzIEZvcm1Hcm91cCkuY29udHJvbHMucGVyY2VudGFnZVxuICAgICAgICAuc2V0VmFsdWUoMTAwIC0gdGhpcy5yb2xsb3V0UGVyY2VudGFnZUl0ZW1zKCkuY29udHJvbHNbaW5kZXhdLnZhbHVlLnBlcmNlbnRhZ2UpO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlU3VtKCk7XG4gIH1cblxuICB1cGRhdGVTdW0oKSB7XG4gICAgaWYgKHRoaXMucm9sbG91dFBlcmNlbnRhZ2VJdGVtcygpLmNvbnRyb2xzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5yb2xsb3V0UGVyY2VudGFnZUl0ZW1zU3VtKCkuc2V0VmFsdWUoMTAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb2xsb3V0UGVyY2VudGFnZUl0ZW1zU3VtKCkuc2V0VmFsdWUoXG4gICAgICAgIHRoaXMucm9sbG91dFBlcmNlbnRhZ2VJdGVtcygpLmNvbnRyb2xzLm1hcCh2ID0+IHYudmFsdWUucGVyY2VudGFnZSlcbiAgICAgICAgICAucmVkdWNlKChhLCBiKSA9PiBhICsgYilcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlUm9sbG91dFBlcmNlbnRhZ2VJdGVtKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnJvbGxvdXRQZXJjZW50YWdlSXRlbXMoKS5yZW1vdmVBdChpbmRleCk7XG4gICAgdGhpcy5yb2xsb3V0UGVyY2VudGFnZUl0ZW1zKCkubWFya0FzRGlydHkoKTtcbiAgICB0aGlzLnVwZGF0ZVN1bSgpO1xuICB9XG5cbiAgcmVtb3ZlQWxsKCkge1xuICAgIHRoaXMucm9sbG91dFBlcmNlbnRhZ2VJdGVtcygpLmNsZWFyKCk7XG4gICAgdGhpcy5yb2xsb3V0UGVyY2VudGFnZUl0ZW1zKCkubWFya0FzRGlydHkoKTtcbiAgICB0aGlzLnVwZGF0ZVN1bSgpO1xuICB9XG5cbiAgZ2V0Um9sbG91dFBlcmNlbnRhZ2VJdGVtRm9ybUdyb3VwcygpIHtcbiAgICByZXR1cm4gdGhpcy5yb2xsb3V0UGVyY2VudGFnZUl0ZW1zKCk/LmNvbnRyb2xzPy5tYXAoYyA9PiBjIGFzIEZvcm1Hcm91cCk7XG4gIH1cblxuICBnZXRQZXJjZW50YWdlRm9ybUNvbnRyb2wocm9sbG91dFBlcmNlbnRhZ2VJdGVtOiBhbnkpIHtcbiAgICByZXR1cm4gcm9sbG91dFBlcmNlbnRhZ2VJdGVtLmNvbnRyb2xzLnBlcmNlbnRhZ2UgYXMgRm9ybUNvbnRyb2w7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwZXJjZW50YWdlLXdyYXBwZXJcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuXG4gICAgPGRpdiBjbGFzcz1cImlmXCIgKm5nSWY9XCJyb2xsb3V0UnVsZXMoKS5jb250cm9scy5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxtYXQtY2hpcC1saXN0PlxuICAgICAgICAgICAgPG1hdC1jaGlwIGNsYXNzPVwiY2hpcFwiPkVMU0UgSUY8L21hdC1jaGlwPlxuICAgICAgICA8L21hdC1jaGlwLWxpc3Q+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImdyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBlcmNlbnRhZ2Utcm93IGZsZXhcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJvbGxvdXRQZXJjZW50YWdlSXRlbSBvZiBnZXRSb2xsb3V0UGVyY2VudGFnZUl0ZW1Gb3JtR3JvdXBzKCk7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBbZm9ybUNvbnRyb2xdPVwiZ2V0UGVyY2VudGFnZUZvcm1Db250cm9sKHJvbGxvdXRQZXJjZW50YWdlSXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwicGVyY2VudGFnZUNoYW5nZWQoaSlcIj4lXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2Vyc1wiPm9mIDxhIGhyZWY9XCJodHRwczovL2NvbmZpZ2NhdC5jb20vZG9jcy9hZHZhbmNlZC91c2VyLW9iamVjdFwiIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+dXNlcnM8L2E+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZWxldGUtb3B0aW9uXCIgbWF0VG9vbHRpcD1cIlJlbW92ZSB0aGlzICUgb3B0aW9uXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFyZWFkT25seSAmJiByb2xsb3V0UGVyY2VudGFnZUl0ZW1zKCkuY29udHJvbHMubGVuZ3RoID4gMlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVJvbGxvdXRQZXJjZW50YWdlSXRlbShpKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jYW5jZWw8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxzcGFuIGRhdGEtdG9vbHRpcD1cIlRoZSBzdW0gb2YgcGVyY2VudGFnZXMgbXVzdCBiZSBlcXVhbCB0byAxMDAuXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIihpID09PSByb2xsb3V0UGVyY2VudGFnZUl0ZW1zKCkuY29udHJvbHMubGVuZ3RoIC0xKSAmJiAocm9sbG91dFBlcmNlbnRhZ2VJdGVtc1N1bSgpLmludmFsaWQpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNvbG9yPVwid2FyblwiPlxuICAgICAgICAgICAgICAgICAgICBlcnJvcl9vdXRsaW5lXG4gICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlIGZsZXhcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlLW5hbWVcIiAqbmdJZj1cInNldHRpbmcoKS5zZXR0aW5nVHlwZSAhPT0gU2V0dGluZ1R5cGUuQm9vbGVhblwiPlNlcnZlZCB2YWx1ZTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGNvbmZpZ2NhdC12YWx1ZSBjbGFzcz1cInNlcnZlZC12YWx1ZVwiIFt2YWx1ZUZvcm1Db250cm9sXT1cInZhbHVlKHJvbGxvdXRQZXJjZW50YWdlSXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbc2V0dGluZ109XCJzZXR0aW5nKClcIj5cbiAgICAgICAgICAgICAgICA8L2NvbmZpZ2NhdC12YWx1ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGV0ZVwiIG1hdFRvb2x0aXA9XCJSZW1vdmUgJSBvcHRpb25zXCIgKGNsaWNrKT1cInJlbW92ZUFsbCgpXCIgKm5nSWY9XCIhcmVhZE9ubHlcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|