ng-configcat-publicapi-ui 3.0.7 → 3.1.0
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/esm2022/lib/_directives/input-display-normalizer.directive.mjs +38 -0
- package/esm2022/lib/_services/form-helper.mjs +104 -0
- package/{esm2020 → esm2022}/lib/_services/public-api.service.mjs +6 -6
- package/esm2022/lib/_services/setting-list-form-helper.mjs +171 -0
- package/esm2022/lib/authorization/authorization.component.mjs +62 -0
- package/{esm2020 → esm2022}/lib/base/base-select.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/base/base.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/configuration.mjs +4 -4
- package/{esm2020 → esm2022}/lib/dialogs/delete-setting-dialog/delete-setting-dialog.component.mjs +6 -6
- package/esm2022/lib/dialogs/expand-dialog/expand-dialog.component.mjs +80 -0
- package/esm2022/lib/dialogs/reason-dialog/reason-dialog.component.mjs +36 -0
- package/{esm2020 → esm2022}/lib/dialogs/save-snackbar/save-snackbar.component.mjs +5 -5
- package/esm2022/lib/ng-configcat-publicapi-ui.module.mjs +179 -0
- package/esm2022/lib/selects/config-select/config-select.component.mjs +60 -0
- package/esm2022/lib/selects/environment-select/environment-select.component.mjs +47 -0
- package/esm2022/lib/selects/product-select/product-select.component.mjs +40 -0
- package/esm2022/lib/selects/setting-select/setting-select.component.mjs +47 -0
- package/esm2022/lib/setting-item/setting-item.component.mjs +116 -0
- package/esm2022/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.mjs +81 -0
- package/esm2022/lib/setting-list/setting/rollout-rules/rollout-rules.component.mjs +293 -0
- package/{esm2020 → esm2022}/lib/setting-list/setting/setting.component.mjs +5 -5
- package/esm2022/lib/setting-list/setting/value/value.component.mjs +37 -0
- package/esm2022/lib/setting-list/setting-list.component.mjs +194 -0
- package/{fesm2020 → fesm2022}/ng-configcat-publicapi-ui.mjs +163 -163
- package/{fesm2020 → fesm2022}/ng-configcat-publicapi-ui.mjs.map +1 -1
- package/lib/_services/setting-list-form-helper.d.ts +1 -1
- package/lib/authorization/authorization.component.d.ts +1 -1
- package/lib/base/base-select.component.d.ts +1 -1
- package/lib/base/base.component.d.ts +1 -1
- package/lib/selects/config-select/config-select.component.d.ts +1 -1
- package/lib/selects/environment-select/environment-select.component.d.ts +1 -1
- package/lib/selects/product-select/product-select.component.d.ts +1 -1
- package/lib/selects/setting-select/setting-select.component.d.ts +1 -1
- package/lib/setting-item/setting-item.component.d.ts +1 -1
- package/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.d.ts +1 -1
- package/lib/setting-list/setting/rollout-rules/rollout-rules.component.d.ts +2 -2
- package/lib/setting-list/setting/setting.component.d.ts +1 -1
- package/lib/setting-list/setting/value/value.component.d.ts +1 -1
- package/lib/setting-list/setting-list.component.d.ts +1 -1
- package/package.json +9 -15
- package/public-api.scss +15 -1
- package/esm2020/lib/_directives/input-display-normalizer.directive.mjs +0 -38
- package/esm2020/lib/_services/form-helper.mjs +0 -104
- package/esm2020/lib/_services/setting-list-form-helper.mjs +0 -171
- package/esm2020/lib/authorization/authorization.component.mjs +0 -62
- package/esm2020/lib/dialogs/expand-dialog/expand-dialog.component.mjs +0 -80
- package/esm2020/lib/dialogs/reason-dialog/reason-dialog.component.mjs +0 -36
- package/esm2020/lib/ng-configcat-publicapi-ui.module.mjs +0 -179
- package/esm2020/lib/selects/config-select/config-select.component.mjs +0 -60
- package/esm2020/lib/selects/environment-select/environment-select.component.mjs +0 -47
- package/esm2020/lib/selects/product-select/product-select.component.mjs +0 -40
- package/esm2020/lib/selects/setting-select/setting-select.component.mjs +0 -47
- package/esm2020/lib/setting-item/setting-item.component.mjs +0 -116
- package/esm2020/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.mjs +0 -81
- package/esm2020/lib/setting-list/setting/rollout-rules/rollout-rules.component.mjs +0 -293
- package/esm2020/lib/setting-list/setting/value/value.component.mjs +0 -37
- package/esm2020/lib/setting-list/setting-list.component.mjs +0 -194
- package/fesm2015/ng-configcat-publicapi-ui.mjs +0 -1786
- package/fesm2015/ng-configcat-publicapi-ui.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/_directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/_models/deleteSettingModel.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/_models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/_models/settingValuesModel.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/_models/updateSettingValuesModel.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/_services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/_services/platform-helper.mjs +0 -0
- /package/{esm2020 → esm2022}/ng-configcat-publicapi-ui.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Directive, HostListener } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Makes sure that values entered into HTML input fields are displayed in the correct format,
|
|
5
|
+
* where correct means normalized (e.g. `'.10'` --> `'0.1'`) and corresponding to the locale setting.
|
|
6
|
+
*
|
|
7
|
+
* The format is adjusted on the blur event. Only the format of number inputs is adjusted currently.
|
|
8
|
+
*/
|
|
9
|
+
export class InputDisplayNormalizerDirective {
|
|
10
|
+
constructor() { }
|
|
11
|
+
onChange($event) {
|
|
12
|
+
const target = $event.target;
|
|
13
|
+
if (target.type === 'number') {
|
|
14
|
+
let value = target.value;
|
|
15
|
+
value = value.trim() !== '' ? Number(value) : NaN;
|
|
16
|
+
if (isFinite(value)) {
|
|
17
|
+
// The string returned by the `value` property and the string displayed in the input field are not necessarily equal.
|
|
18
|
+
// HACK: When the returned and the displayed value differs only in the decimal separator,
|
|
19
|
+
// Chrome won't update the displayed value unless the value is changed first...
|
|
20
|
+
target.value = '';
|
|
21
|
+
target.value = value;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: InputDisplayNormalizerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
26
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.3", type: InputDisplayNormalizerDirective, selector: "input[inputDisplayNormalizer]", host: { listeners: { "blur": "onChange($event)" } }, ngImport: i0 }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: InputDisplayNormalizerDirective, decorators: [{
|
|
29
|
+
type: Directive,
|
|
30
|
+
args: [{
|
|
31
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
32
|
+
selector: 'input[inputDisplayNormalizer]'
|
|
33
|
+
}]
|
|
34
|
+
}], ctorParameters: () => [], propDecorators: { onChange: [{
|
|
35
|
+
type: HostListener,
|
|
36
|
+
args: ['blur', ['$event']]
|
|
37
|
+
}] } });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGlzcGxheS1ub3JtYWxpemVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi9fZGlyZWN0aXZlcy9pbnB1dC1kaXNwbGF5LW5vcm1hbGl6ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV4RDs7Ozs7R0FLRztBQUtILE1BQU0sT0FBTywrQkFBK0I7SUFDeEMsZ0JBQWdCLENBQUM7SUFHakIsUUFBUSxDQUFDLE1BQVc7UUFDaEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM3QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0IsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUN6QixLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDbEQsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIscUhBQXFIO2dCQUNySCx5RkFBeUY7Z0JBQ3pGLCtFQUErRTtnQkFDL0UsTUFBTSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQzs4R0FqQlEsK0JBQStCO2tHQUEvQiwrQkFBK0I7OzJGQUEvQiwrQkFBK0I7a0JBSjNDLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsK0JBQStCO2lCQUM1Qzt3REFLRyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBNYWtlcyBzdXJlIHRoYXQgdmFsdWVzIGVudGVyZWQgaW50byBIVE1MIGlucHV0IGZpZWxkcyBhcmUgZGlzcGxheWVkIGluIHRoZSBjb3JyZWN0IGZvcm1hdCxcbiAqIHdoZXJlIGNvcnJlY3QgbWVhbnMgbm9ybWFsaXplZCAoZS5nLiBgJy4xMCdgIC0tPiBgJzAuMSdgKSBhbmQgY29ycmVzcG9uZGluZyB0byB0aGUgbG9jYWxlIHNldHRpbmcuXG4gKiBcbiAqIFRoZSBmb3JtYXQgaXMgYWRqdXN0ZWQgb24gdGhlIGJsdXIgZXZlbnQuIE9ubHkgdGhlIGZvcm1hdCBvZiBudW1iZXIgaW5wdXRzIGlzIGFkanVzdGVkIGN1cnJlbnRseS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2lucHV0W2lucHV0RGlzcGxheU5vcm1hbGl6ZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBJbnB1dERpc3BsYXlOb3JtYWxpemVyRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50J10pXG4gICAgb25DaGFuZ2UoJGV2ZW50OiBhbnkpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gJGV2ZW50LnRhcmdldDtcbiAgICAgICAgaWYgKHRhcmdldC50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gdGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS50cmltKCkgIT09ICcnID8gTnVtYmVyKHZhbHVlKSA6IE5hTjtcbiAgICAgICAgICAgIGlmIChpc0Zpbml0ZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgc3RyaW5nIHJldHVybmVkIGJ5IHRoZSBgdmFsdWVgIHByb3BlcnR5IGFuZCB0aGUgc3RyaW5nIGRpc3BsYXllZCBpbiB0aGUgaW5wdXQgZmllbGQgYXJlIG5vdCBuZWNlc3NhcmlseSBlcXVhbC5cbiAgICAgICAgICAgICAgICAvLyBIQUNLOiBXaGVuIHRoZSByZXR1cm5lZCBhbmQgdGhlIGRpc3BsYXllZCB2YWx1ZSBkaWZmZXJzIG9ubHkgaW4gdGhlIGRlY2ltYWwgc2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgIC8vIENocm9tZSB3b24ndCB1cGRhdGUgdGhlIGRpc3BsYXllZCB2YWx1ZSB1bmxlc3MgdGhlIHZhbHVlIGlzIGNoYW5nZWQgZmlyc3QuLi5cbiAgICAgICAgICAgICAgICB0YXJnZXQudmFsdWUgPSAnJztcbiAgICAgICAgICAgICAgICB0YXJnZXQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iXX0=
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { HttpErrorResponse } from '@angular/common/http';
|
|
2
|
+
import { PlatformHelper } from './platform-helper';
|
|
3
|
+
export class FormHelper {
|
|
4
|
+
static getErrorMessage(control, hint = '') {
|
|
5
|
+
if (!control || control.valid) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
if (control.hasError('required')) {
|
|
9
|
+
return `${hint} The field is required.`;
|
|
10
|
+
}
|
|
11
|
+
if (control.hasError('pattern')) {
|
|
12
|
+
return 'Not a valid e-mail address.';
|
|
13
|
+
}
|
|
14
|
+
if (control.hasError('minlength')) {
|
|
15
|
+
return 'The field must be at least ' + control.getError('minlength').requiredLength + ' characters long';
|
|
16
|
+
}
|
|
17
|
+
if (control.hasError('maxlength')) {
|
|
18
|
+
return 'The field must be at max ' + control.getError('maxlength').requiredLength + ' characters long';
|
|
19
|
+
}
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
static handleErrors(formGroup, error) {
|
|
23
|
+
if (error instanceof HttpErrorResponse) {
|
|
24
|
+
const response = error;
|
|
25
|
+
switch (response.status) {
|
|
26
|
+
case 400:
|
|
27
|
+
let unknownFieldName = false;
|
|
28
|
+
for (const fieldName in error.error) {
|
|
29
|
+
if (error.error.hasOwnProperty(fieldName) && error.error[fieldName] &&
|
|
30
|
+
(error.error[fieldName]?.length > 0 || error.error[fieldName]?.Errors?.length > 0)) {
|
|
31
|
+
let jsonFieldName = fieldName;
|
|
32
|
+
if (jsonFieldName.length > 0) {
|
|
33
|
+
jsonFieldName = jsonFieldName[0].toLowerCase() + jsonFieldName.slice(1);
|
|
34
|
+
}
|
|
35
|
+
const errorMessage = error.error[fieldName]?.Errors?.length > 0 ?
|
|
36
|
+
(error.error[fieldName]?.Errors.map((e) => e.ErrorMessage)).join(', ')
|
|
37
|
+
: error.error[fieldName];
|
|
38
|
+
if (formGroup.controls.hasOwnProperty(jsonFieldName)) {
|
|
39
|
+
formGroup.controls[jsonFieldName].setErrors({ serverSide: errorMessage });
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
unknownFieldName = true;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (unknownFieldName) {
|
|
47
|
+
formGroup.setErrors({ serverSide: 'Something went wrong.' });
|
|
48
|
+
}
|
|
49
|
+
break;
|
|
50
|
+
// in these cases we do not show errors on the form, they're handled by the http
|
|
51
|
+
// interceptor in src\app\_interceptors\httpstatuscode.interceptor.ts
|
|
52
|
+
case 402:
|
|
53
|
+
case 429:
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
formGroup.setErrors({ serverSide: 'Something went wrong on our side. This is not your fault. Please try again.' });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Converts a value representing a number to a `number` value.
|
|
63
|
+
* Returns `NaN` in the case of non-numerical values.
|
|
64
|
+
*/
|
|
65
|
+
static normalizeNumber(value) {
|
|
66
|
+
switch (typeof value) {
|
|
67
|
+
case "number":
|
|
68
|
+
return value;
|
|
69
|
+
case "string":
|
|
70
|
+
// NOTE: `Number()` converts whitespace strings to 0.
|
|
71
|
+
return value.trim() === '' ? NaN : Number(value);
|
|
72
|
+
case "bigint":
|
|
73
|
+
return Number(value);
|
|
74
|
+
default:
|
|
75
|
+
return NaN;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Converts a value representing a number to the normalized `string`
|
|
80
|
+
* representation of the number. (e.g. `.1` --> `'0.1'`, `3.14e2` --> `'314'`).
|
|
81
|
+
* Returns `''` in the case of non-numerical values or non-finite numerical values.
|
|
82
|
+
*/
|
|
83
|
+
static normalizeNumberStoredAsString(value) {
|
|
84
|
+
value = FormHelper.normalizeNumber(value);
|
|
85
|
+
// NOTE: `NaN` is not considered finite.
|
|
86
|
+
return isFinite(value) ? value + '' : '';
|
|
87
|
+
}
|
|
88
|
+
static formatNumberForDisplay(value) {
|
|
89
|
+
if (!isFinite(value)) {
|
|
90
|
+
return '';
|
|
91
|
+
}
|
|
92
|
+
// Chromium-based browsers don't respect the `lang` attribute,
|
|
93
|
+
// they use a display format corresponding to the browser's language setting.
|
|
94
|
+
if (PlatformHelper.isChromium()) {
|
|
95
|
+
return value.toLocaleString();
|
|
96
|
+
}
|
|
97
|
+
// Firefox (and probably other browsers) respect the `lang` attribute,
|
|
98
|
+
// which is currently set to the fixed value of "en" (see index.html),
|
|
99
|
+
// so in these cases dot should be used as the decimal separator.
|
|
100
|
+
// (In case localization is implemented in the application, this logic should be revised!)
|
|
101
|
+
return value + '';
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvX3NlcnZpY2VzL2Zvcm0taGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRCxNQUFNLE9BQU8sVUFBVTtJQUVaLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBd0IsRUFBRSxPQUFlLEVBQUU7UUFDckUsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDNUIsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUMvQixPQUFPLEdBQUcsSUFBSSx5QkFBeUIsQ0FBQztRQUM1QyxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyw2QkFBNkIsQ0FBQztRQUN6QyxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTyw2QkFBNkIsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGNBQWMsR0FBRyxrQkFBa0IsQ0FBQztRQUM3RyxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTywyQkFBMkIsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGNBQWMsR0FBRyxrQkFBa0IsQ0FBQztRQUMzRyxDQUFDO1FBRUQsT0FBTztJQUNYLENBQUM7SUFHTSxNQUFNLENBQUMsWUFBWSxD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QUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxLQUFVO1FBQ2xELEtBQUssR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLHdDQUF3QztRQUN4QyxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFHSSxNQUFNLENBQUMsc0JBQXNCLENBQUMsS0FBYTtRQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsOERBQThEO1FBQzlELDZFQUE2RTtRQUM3RSxJQUFJLGNBQWMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2hDLENBQUM7UUFFRCxzRUFBc0U7UUFDdEUsc0VBQXNFO1FBQ3RFLGlFQUFpRTtRQUNqRSwwRkFBMEY7UUFDMUYsT0FBTyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQbGF0Zm9ybUhlbHBlciB9IGZyb20gJy4vcGxhdGZvcm0taGVscGVyJztcblxuZXhwb3J0IGNsYXNzIEZvcm1IZWxwZXIge1xuXG4gICAgcHVibGljIHN0YXRpYyBnZXRFcnJvck1lc3NhZ2UoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBoaW50OiBzdHJpbmcgPSAnJykge1xuICAgICAgICBpZiAoIWNvbnRyb2wgfHwgY29udHJvbC52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtoaW50fSBUaGUgZmllbGQgaXMgcmVxdWlyZWQuYDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb250cm9sLmhhc0Vycm9yKCdwYXR0ZXJuJykpIHtcbiAgICAgICAgICAgIHJldHVybiAnTm90IGEgdmFsaWQgZS1tYWlsIGFkZHJlc3MuJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb250cm9sLmhhc0Vycm9yKCdtaW5sZW5ndGgnKSkge1xuICAgICAgICAgICAgcmV0dXJuICdUaGUgZmllbGQgbXVzdCBiZSBhdCBsZWFzdCAnICsgY29udHJvbC5nZXRFcnJvcignbWlubGVuZ3RoJykucmVxdWlyZWRMZW5ndGggKyAnIGNoYXJhY3RlcnMgbG9uZyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29udHJvbC5oYXNFcnJvcignbWF4bGVuZ3RoJykpIHtcbiAgICAgICAgICAgIHJldHVybiAnVGhlIGZpZWxkIG11c3QgYmUgYXQgbWF4ICcgKyBjb250cm9sLmdldEVycm9yKCdtYXhsZW5ndGgnKS5yZXF1aXJlZExlbmd0aCArICcgY2hhcmFjdGVycyBsb25nJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cblxuICAgIHB1YmxpYyBzdGF0aWMgaGFuZGxlRXJyb3JzKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBlcnJvcjogYW55KSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGVycm9yIGFzIEh0dHBFcnJvclJlc3BvbnNlO1xuICAgICAgICAgICAgc3dpdGNoIChyZXNwb25zZS5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDQwMDpcbiAgICAgICAgICAgICAgICAgICAgbGV0IHVua25vd25GaWVsZE5hbWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZE5hbWUgaW4gZXJyb3IuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvci5lcnJvci5oYXNPd25Qcm9wZXJ0eShmaWVsZE5hbWUpICYmIGVycm9yLmVycm9yW2ZpZWxkTmFtZV0gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IuZXJyb3JbZmllbGROYW1lXT8ubGVuZ3RoID4gMCB8fCBlcnJvci5lcnJvcltmaWVsZE5hbWVdPy5FcnJvcnM/Lmxlbmd0aCA+IDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGpzb25GaWVsZE5hbWUgPSBmaWVsZE5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGpzb25GaWVsZE5hbWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc29uRmllbGROYW1lID0ganNvbkZpZWxkTmFtZVswXS50b0xvd2VyQ2FzZSgpICsganNvbkZpZWxkTmFtZS5zbGljZSgxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvci5lcnJvcltmaWVsZE5hbWVdPy5FcnJvcnM/Lmxlbmd0aCA+IDAgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IuZXJyb3JbZmllbGROYW1lXT8uRXJyb3JzLm1hcCgoZTogYW55KSA9PiBlLkVycm9yTWVzc2FnZSkpLmpvaW4oJywgJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBlcnJvci5lcnJvcltmaWVsZE5hbWVdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1Hcm91cC5jb250cm9scy5oYXNPd25Qcm9wZXJ0eShqc29uRmllbGROYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuY29udHJvbHNbanNvbkZpZWxkTmFtZV0uc2V0RXJyb3JzKHsgc2VydmVyU2lkZTogZXJyb3JNZXNzYWdlIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVua25vd25GaWVsZE5hbWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodW5rbm93bkZpZWxkTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLnNldEVycm9ycyh7IHNlcnZlclNpZGU6ICdTb21ldGhpbmcgd2VudCB3cm9uZy4nIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIC8vIGluIHRoZXNlIGNhc2VzIHdlIGRvIG5vdCBzaG93IGVycm9ycyBvbiB0aGUgZm9ybSwgdGhleSdyZSBoYW5kbGVkIGJ5IHRoZSBodHRwXG4gICAgICAgICAgICAgICAgLy8gaW50ZXJjZXB0b3IgaW4gc3JjXFxhcHBcXF9pbnRlcmNlcHRvcnNcXGh0dHBzdGF0dXNjb2RlLmludGVyY2VwdG9yLnRzXG4gICAgICAgICAgICAgICAgY2FzZSA0MDI6XG4gICAgICAgICAgICAgICAgY2FzZSA0Mjk6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvcm1Hcm91cC5zZXRFcnJvcnMoeyBzZXJ2ZXJTaWRlOiAnU29tZXRoaW5nIHdlbnQgd3Jvbmcgb24gb3VyIHNpZGUuIFRoaXMgaXMgbm90IHlvdXIgZmF1bHQuIFBsZWFzZSB0cnkgYWdhaW4uJyB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGEgdmFsdWUgcmVwcmVzZW50aW5nIGEgbnVtYmVyIHRvIGEgYG51bWJlcmAgdmFsdWUuXG4gICAgICogUmV0dXJucyBgTmFOYCBpbiB0aGUgY2FzZSBvZiBub24tbnVtZXJpY2FsIHZhbHVlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIG5vcm1hbGl6ZU51bWJlcih2YWx1ZTogYW55KTogbnVtYmVyIHtcbiAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgICAgICAgLy8gTk9URTogYE51bWJlcigpYCBjb252ZXJ0cyB3aGl0ZXNwYWNlIHN0cmluZ3MgdG8gMC5cbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudHJpbSgpID09PSAnJyA/IE5hTiA6IE51bWJlcih2YWx1ZSk7XG4gICAgICAgICAgICBjYXNlIFwiYmlnaW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlcih2YWx1ZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBhIHZhbHVlIHJlcHJlc2VudGluZyBhIG51bWJlciB0byB0aGUgbm9ybWFsaXplZCBgc3RyaW5nYFxuICAgICAqIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBudW1iZXIuIChlLmcuIGAuMWAgLS0+IGAnMC4xJ2AsIGAzLjE0ZTJgIC0tPiBgJzMxNCdgKS5cbiAgICAgKiBSZXR1cm5zIGAnJ2AgaW4gdGhlIGNhc2Ugb2Ygbm9uLW51bWVyaWNhbCB2YWx1ZXMgb3Igbm9uLWZpbml0ZSBudW1lcmljYWwgdmFsdWVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbm9ybWFsaXplTnVtYmVyU3RvcmVkQXNTdHJpbmcodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIHZhbHVlID0gRm9ybUhlbHBlci5ub3JtYWxpemVOdW1iZXIodmFsdWUpO1xuICAgICAgICAvLyBOT1RFOiBgTmFOYCBpcyBub3QgY29uc2lkZXJlZCBmaW5pdGUuXG4gICAgICAgIHJldHVybiBpc0Zpbml0ZSh2YWx1ZSkgPyB2YWx1ZSArICcnIDogJyc7XG4gICAgfVxuXG4gICAgXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0TnVtYmVyRm9yRGlzcGxheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKCFpc0Zpbml0ZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICAvLyBDaHJvbWl1bS1iYXNlZCBicm93c2VycyBkb24ndCByZXNwZWN0IHRoZSBgbGFuZ2AgYXR0cmlidXRlLFxuICAgIC8vIHRoZXkgdXNlIGEgZGlzcGxheSBmb3JtYXQgY29ycmVzcG9uZGluZyB0byB0aGUgYnJvd3NlcidzIGxhbmd1YWdlIHNldHRpbmcuXG4gICAgaWYgKFBsYXRmb3JtSGVscGVyLmlzQ2hyb21pdW0oKSkge1xuICAgICAgcmV0dXJuIHZhbHVlLnRvTG9jYWxlU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgLy8gRmlyZWZveCAoYW5kIHByb2JhYmx5IG90aGVyIGJyb3dzZXJzKSByZXNwZWN0IHRoZSBgbGFuZ2AgYXR0cmlidXRlLFxuICAgIC8vIHdoaWNoIGlzIGN1cnJlbnRseSBzZXQgdG8gdGhlIGZpeGVkIHZhbHVlIG9mIFwiZW5cIiAoc2VlIGluZGV4Lmh0bWwpLFxuICAgIC8vIHNvIGluIHRoZXNlIGNhc2VzIGRvdCBzaG91bGQgYmUgdXNlZCBhcyB0aGUgZGVjaW1hbCBzZXBhcmF0b3IuXG4gICAgLy8gKEluIGNhc2UgbG9jYWxpemF0aW9uIGlzIGltcGxlbWVudGVkIGluIHRoZSBhcHBsaWNhdGlvbiwgdGhpcyBsb2dpYyBzaG91bGQgYmUgcmV2aXNlZCEpXG4gICAgcmV0dXJuIHZhbHVlICsgJyc7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -59,13 +59,13 @@ export class PublicApiService {
|
|
|
59
59
|
getDashboardBasePath() {
|
|
60
60
|
return this.configuration?.dashboardBasePath ?? 'https://app.configcat.com';
|
|
61
61
|
}
|
|
62
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PublicApiService, deps: [{ token: i1.HttpClient }, { token: i2.Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
63
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PublicApiService, providedIn: 'root' }); }
|
|
62
64
|
}
|
|
63
|
-
|
|
64
|
-
PublicApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PublicApiService, providedIn: 'root' });
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PublicApiService, decorators: [{
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PublicApiService, decorators: [{
|
|
66
66
|
type: Injectable,
|
|
67
67
|
args: [{ providedIn: 'root' }]
|
|
68
|
-
}], ctorParameters:
|
|
68
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.Configuration, decorators: [{
|
|
69
69
|
type: Optional
|
|
70
|
-
}] }]
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL19zZXJ2aWNlcy9wdWJsaWMtYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUNILGFBQWEsSUFBSSxzQkFBc0IsRUFDdkMsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFDcEQsMkJBQTJCLEVBQUUsK0JBQStCLEVBQUUsU0FBUyxFQUN2RSx1QkFBdUIsRUFDdkIsZUFBZSxFQUNsQixNQUFNLHdCQUF3QixDQUFDOzs7O0FBSWhDLE1BQU0sT0FBTyxnQkFBZ0I7SUFFekIsWUFDWSxVQUFzQixFQUNWLGFBQTRCO1FBRHhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDVixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUNwRCxDQUFDO0lBRUQsZUFBZSxDQUFDLG9CQUFtQyxJQUFJLEVBQUUsb0JBQW1DLElBQUksRUFBRSxXQUEwQixJQUFJO1FBQzVILE9BQU8sSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQzFFLElBQUksc0JBQXNCLENBQUM7WUFDdkIsUUFBUSxFQUFFLGlCQUFpQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsaUJBQWlCO1lBQ3BFLFFBQVEsRUFBRSxpQkFBaUIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLGlCQUFpQjtTQUN2RSxDQUFDLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxvQkFBbUMsSUFBSSxFQUFFLG9CQUFtQyxJQUFJLEVBQUUsV0FBMEIsSUFBSTtRQUNsSSxPQUFPLElBQUksZUFBZSxDQUFDLElBQUks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QUUsV0FBMEIsSUFBSTtRQUNsSSxPQUFPLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksc0JBQXNCLENBQUM7WUFDN0csUUFBUSxFQUFFLGlCQUFpQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsaUJBQWlCO1lBQ3BFLFFBQVEsRUFBRSxpQkFBaUIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLGlCQUFpQjtTQUN2RSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLGlCQUFpQixJQUFJLDJCQUEyQixDQUFDO0lBQ2hGLENBQUM7OzhHQW5FUSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQURILE1BQU07NEZBQ25CLGdCQUFnQjtrQkFENUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQUt6QixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1xuICAgIENvbmZpZ3VyYXRpb24gYXMgUHVibGljQXBpQ29uZmlndXJhdGlvbixcbiAgICBQcm9kdWN0c1NlcnZpY2UsIEVudmlyb25tZW50c1NlcnZpY2UsIENvbmZpZ3NTZXJ2aWNlLFxuICAgIEZlYXR1cmVGbGFnc1NldHRpbmdzU2VydmljZSwgRmVhdHVyZUZsYWdTZXR0aW5nVmFsdWVzU2VydmljZSwgTWVTZXJ2aWNlLFxuICAgIEludGVncmF0aW9uTGlua3NTZXJ2aWNlLFxuICAgIFNlZ21lbnRzU2VydmljZVxufSBmcm9tICduZy1jb25maWdjYXQtcHVibGljYXBpJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9jb25maWd1cmF0aW9uJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQdWJsaWNBcGlTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvbikge1xuICAgIH1cblxuICAgIGNyZWF0ZU1lU2VydmljZShiYXNpY0F1dGhVc2VybmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGJhc2ljQXV0aFBhc3N3b3JkOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYmFzZVBhdGg6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBuZXcgTWVTZXJ2aWNlKHRoaXMuaHR0cENsaWVudCwgYmFzZVBhdGggPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNlUGF0aCxcbiAgICAgICAgICAgIG5ldyBQdWJsaWNBcGlDb25maWd1cmF0aW9uKHtcbiAgICAgICAgICAgICAgICB1c2VybmFtZTogYmFzaWNBdXRoVXNlcm5hbWUgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhVc2VybmFtZSxcbiAgICAgICAgICAgICAgICBwYXNzd29yZDogYmFzaWNBdXRoUGFzc3dvcmQgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhQYXNzd29yZFxuICAgICAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGNyZWF0ZVByb2R1Y3RzU2VydmljZShiYXNpY0F1dGhVc2VybmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGJhc2ljQXV0aFBhc3N3b3JkOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYmFzZVBhdGg6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdHNTZXJ2aWNlKHRoaXMuaHR0cENsaWVudCwgYmFzZVBhdGggPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNlUGF0aCxcbiAgICAgICAgICAgIG5ldyBQdWJsaWNBcGlDb25maWd1cmF0aW9uKHtcbiAgICAgICAgICAgICAgICB1c2VybmFtZTogYmFzaWNBdXRoVXNlcm5hbWUgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhVc2VybmFtZSxcbiAgICAgICAgICAgICAgICBwYXNzd29yZDogYmFzaWNBdXRoUGFzc3dvcmQgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhQYXNzd29yZFxuICAgICAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGNyZWF0ZUNvbmZpZ3NTZXJ2aWNlKGJhc2ljQXV0aFVzZXJuYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYmFzaWNBdXRoUGFzc3dvcmQ6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNlUGF0aDogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb25maWdzU2VydmljZSh0aGlzLmh0dHBDbGllbnQsIGJhc2VQYXRoID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzZVBhdGgsIG5ldyBQdWJsaWNBcGlDb25maWd1cmF0aW9uKHtcbiAgICAgICAgICAgIHVzZXJuYW1lOiBiYXNpY0F1dGhVc2VybmFtZSA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2ljQXV0aFVzZXJuYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGJhc2ljQXV0aFBhc3N3b3JkID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzaWNBdXRoUGFzc3dvcmRcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGNyZWF0ZUVudmlyb25tZW50c1NlcnZpY2UoYmFzaWNBdXRoVXNlcm5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNpY0F1dGhQYXNzd29yZDogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGJhc2VQYXRoOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbmV3IEVudmlyb25tZW50c1NlcnZpY2UodGhpcy5odHRwQ2xpZW50LCBiYXNlUGF0aCA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2VQYXRoLCBuZXcgUHVibGljQXBpQ29uZmlndXJhdGlvbih7XG4gICAgICAgICAgICB1c2VybmFtZTogYmFzaWNBdXRoVXNlcm5hbWUgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhVc2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBiYXNpY0F1dGhQYXNzd29yZCA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2ljQXV0aFBhc3N3b3JkXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBjcmVhdGVTZXR0aW5nc1NlcnZpY2UoYmFzaWNBdXRoVXNlcm5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNpY0F1dGhQYXNzd29yZDogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGJhc2VQYXRoOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbmV3IEZlYXR1cmVGbGFnc1NldHRpbmdzU2VydmljZSh0aGlzLmh0dHBDbGllbnQsIGJhc2VQYXRoID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzZVBhdGgsIG5ldyBQdWJsaWNBcGlDb25maWd1cmF0aW9uKHtcbiAgICAgICAgICAgIHVzZXJuYW1lOiBiYXNpY0F1dGhVc2VybmFtZSA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2ljQXV0aFVzZXJuYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGJhc2ljQXV0aFBhc3N3b3JkID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzaWNBdXRoUGFzc3dvcmRcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGNyZWF0ZVNldHRpbmdWYWx1ZXNTZXJ2aWNlKGJhc2ljQXV0aFVzZXJuYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYmFzaWNBdXRoUGFzc3dvcmQ6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNlUGF0aDogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGZWF0dXJlRmxhZ1NldHRpbmdWYWx1ZXNTZXJ2aWNlKHRoaXMuaHR0cENsaWVudCwgYmFzZVBhdGggPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNlUGF0aCwgbmV3IFB1YmxpY0FwaUNvbmZpZ3VyYXRpb24oe1xuICAgICAgICAgICAgdXNlcm5hbWU6IGJhc2ljQXV0aFVzZXJuYW1lID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzaWNBdXRoVXNlcm5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZDogYmFzaWNBdXRoUGFzc3dvcmQgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhQYXNzd29yZFxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgY3JlYXRlSW50ZWdyYXRpb25MaW5rc1NlcnZpY2UoYmFzaWNBdXRoVXNlcm5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNpY0F1dGhQYXNzd29yZDogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGJhc2VQYXRoOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbmV3IEludGVncmF0aW9uTGlua3NTZXJ2aWNlKHRoaXMuaHR0cENsaWVudCwgYmFzZVBhdGggPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNlUGF0aCwgbmV3IFB1YmxpY0FwaUNvbmZpZ3VyYXRpb24oe1xuICAgICAgICAgICAgdXNlcm5hbWU6IGJhc2ljQXV0aFVzZXJuYW1lID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzaWNBdXRoVXNlcm5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZDogYmFzaWNBdXRoUGFzc3dvcmQgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhQYXNzd29yZFxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgY3JlYXRlU2VnbWVudHNTZXJ2aWNlKGJhc2ljQXV0aFVzZXJuYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYmFzaWNBdXRoUGFzc3dvcmQ6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNlUGF0aDogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTZWdtZW50c1NlcnZpY2UodGhpcy5odHRwQ2xpZW50LCBiYXNlUGF0aCA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2VQYXRoLCBuZXcgUHVibGljQXBpQ29uZmlndXJhdGlvbih7XG4gICAgICAgICAgICB1c2VybmFtZTogYmFzaWNBdXRoVXNlcm5hbWUgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhVc2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBiYXNpY0F1dGhQYXNzd29yZCA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2ljQXV0aFBhc3N3b3JkXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBnZXREYXNoYm9hcmRCYXNlUGF0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbj8uZGFzaGJvYXJkQmFzZVBhdGggPz8gJ2h0dHBzOi8vYXBwLmNvbmZpZ2NhdC5jb20nO1xuICAgIH1cbn1cbiJdfQ==
|
|
70
|
+
}] }] });
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL19zZXJ2aWNlcy9wdWJsaWMtYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUNILGFBQWEsSUFBSSxzQkFBc0IsRUFDdkMsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFDcEQsMkJBQTJCLEVBQUUsK0JBQStCLEVBQUUsU0FBUyxFQUN2RSx1QkFBdUIsRUFDdkIsZUFBZSxFQUNsQixNQUFNLHdCQUF3QixDQUFDOzs7O0FBSWhDLE1BQU0sT0FBTyxnQkFBZ0I7SUFFekIsWUFDWSxVQUFzQixFQUNWLGFBQTRCO1FBRHhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDVixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUNwRCxDQUFDO0lBRUQsZUFBZSxDQUFDLG9CQUFtQyxJQUFJLEVBQUUsb0JBQW1DLElBQUksRUFBRSxXQUEwQixJQUFJO1FBQzVILE9BQU8sSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQzFFLElBQUksc0JBQXNCLENBQUM7WUFDdkIsUUFBUSxFQUFFLGlCQUFpQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsaUJBQWlCO1lBQ3BFLFFBQVEsRUFBRSxpQkFBaUIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLGlCQUFpQjtTQUN2RSxDQUFDLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxvQkFBbUMsSUFBSSxFQUFFLG9CQUFtQyxJQUFJLEVBQUUsV0FBMEIsSUFBSTtRQUNsSSxPQUFPLElBQUksZUFBZSxDQUFDLElBQUks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QUUsV0FBMEIsSUFBSTtRQUNsSSxPQUFPLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksc0JBQXNCLENBQUM7WUFDN0csUUFBUSxFQUFFLGlCQUFpQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsaUJBQWlCO1lBQ3BFLFFBQVEsRUFBRSxpQkFBaUIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLGlCQUFpQjtTQUN2RSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLGlCQUFpQixJQUFJLDJCQUEyQixDQUFDO0lBQ2hGLENBQUM7OEdBbkVRLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBREgsTUFBTTs7MkZBQ25CLGdCQUFnQjtrQkFENUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQUt6QixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1xuICAgIENvbmZpZ3VyYXRpb24gYXMgUHVibGljQXBpQ29uZmlndXJhdGlvbixcbiAgICBQcm9kdWN0c1NlcnZpY2UsIEVudmlyb25tZW50c1NlcnZpY2UsIENvbmZpZ3NTZXJ2aWNlLFxuICAgIEZlYXR1cmVGbGFnc1NldHRpbmdzU2VydmljZSwgRmVhdHVyZUZsYWdTZXR0aW5nVmFsdWVzU2VydmljZSwgTWVTZXJ2aWNlLFxuICAgIEludGVncmF0aW9uTGlua3NTZXJ2aWNlLFxuICAgIFNlZ21lbnRzU2VydmljZVxufSBmcm9tICduZy1jb25maWdjYXQtcHVibGljYXBpJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9jb25maWd1cmF0aW9uJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQdWJsaWNBcGlTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvbikge1xuICAgIH1cblxuICAgIGNyZWF0ZU1lU2VydmljZShiYXNpY0F1dGhVc2VybmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGJhc2ljQXV0aFBhc3N3b3JkOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYmFzZVBhdGg6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBuZXcgTWVTZXJ2aWNlKHRoaXMuaHR0cENsaWVudCwgYmFzZVBhdGggPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNlUGF0aCxcbiAgICAgICAgICAgIG5ldyBQdWJsaWNBcGlDb25maWd1cmF0aW9uKHtcbiAgICAgICAgICAgICAgICB1c2VybmFtZTogYmFzaWNBdXRoVXNlcm5hbWUgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhVc2VybmFtZSxcbiAgICAgICAgICAgICAgICBwYXNzd29yZDogYmFzaWNBdXRoUGFzc3dvcmQgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhQYXNzd29yZFxuICAgICAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGNyZWF0ZVByb2R1Y3RzU2VydmljZShiYXNpY0F1dGhVc2VybmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGJhc2ljQXV0aFBhc3N3b3JkOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYmFzZVBhdGg6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdHNTZXJ2aWNlKHRoaXMuaHR0cENsaWVudCwgYmFzZVBhdGggPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNlUGF0aCxcbiAgICAgICAgICAgIG5ldyBQdWJsaWNBcGlDb25maWd1cmF0aW9uKHtcbiAgICAgICAgICAgICAgICB1c2VybmFtZTogYmFzaWNBdXRoVXNlcm5hbWUgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhVc2VybmFtZSxcbiAgICAgICAgICAgICAgICBwYXNzd29yZDogYmFzaWNBdXRoUGFzc3dvcmQgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhQYXNzd29yZFxuICAgICAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGNyZWF0ZUNvbmZpZ3NTZXJ2aWNlKGJhc2ljQXV0aFVzZXJuYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYmFzaWNBdXRoUGFzc3dvcmQ6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNlUGF0aDogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb25maWdzU2VydmljZSh0aGlzLmh0dHBDbGllbnQsIGJhc2VQYXRoID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzZVBhdGgsIG5ldyBQdWJsaWNBcGlDb25maWd1cmF0aW9uKHtcbiAgICAgICAgICAgIHVzZXJuYW1lOiBiYXNpY0F1dGhVc2VybmFtZSA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2ljQXV0aFVzZXJuYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGJhc2ljQXV0aFBhc3N3b3JkID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzaWNBdXRoUGFzc3dvcmRcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGNyZWF0ZUVudmlyb25tZW50c1NlcnZpY2UoYmFzaWNBdXRoVXNlcm5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNpY0F1dGhQYXNzd29yZDogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGJhc2VQYXRoOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbmV3IEVudmlyb25tZW50c1NlcnZpY2UodGhpcy5odHRwQ2xpZW50LCBiYXNlUGF0aCA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2VQYXRoLCBuZXcgUHVibGljQXBpQ29uZmlndXJhdGlvbih7XG4gICAgICAgICAgICB1c2VybmFtZTogYmFzaWNBdXRoVXNlcm5hbWUgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhVc2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBiYXNpY0F1dGhQYXNzd29yZCA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2ljQXV0aFBhc3N3b3JkXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBjcmVhdGVTZXR0aW5nc1NlcnZpY2UoYmFzaWNBdXRoVXNlcm5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNpY0F1dGhQYXNzd29yZDogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGJhc2VQYXRoOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbmV3IEZlYXR1cmVGbGFnc1NldHRpbmdzU2VydmljZSh0aGlzLmh0dHBDbGllbnQsIGJhc2VQYXRoID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzZVBhdGgsIG5ldyBQdWJsaWNBcGlDb25maWd1cmF0aW9uKHtcbiAgICAgICAgICAgIHVzZXJuYW1lOiBiYXNpY0F1dGhVc2VybmFtZSA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2ljQXV0aFVzZXJuYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGJhc2ljQXV0aFBhc3N3b3JkID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzaWNBdXRoUGFzc3dvcmRcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGNyZWF0ZVNldHRpbmdWYWx1ZXNTZXJ2aWNlKGJhc2ljQXV0aFVzZXJuYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYmFzaWNBdXRoUGFzc3dvcmQ6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNlUGF0aDogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGZWF0dXJlRmxhZ1NldHRpbmdWYWx1ZXNTZXJ2aWNlKHRoaXMuaHR0cENsaWVudCwgYmFzZVBhdGggPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNlUGF0aCwgbmV3IFB1YmxpY0FwaUNvbmZpZ3VyYXRpb24oe1xuICAgICAgICAgICAgdXNlcm5hbWU6IGJhc2ljQXV0aFVzZXJuYW1lID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzaWNBdXRoVXNlcm5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZDogYmFzaWNBdXRoUGFzc3dvcmQgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhQYXNzd29yZFxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgY3JlYXRlSW50ZWdyYXRpb25MaW5rc1NlcnZpY2UoYmFzaWNBdXRoVXNlcm5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNpY0F1dGhQYXNzd29yZDogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGJhc2VQYXRoOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbmV3IEludGVncmF0aW9uTGlua3NTZXJ2aWNlKHRoaXMuaHR0cENsaWVudCwgYmFzZVBhdGggPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNlUGF0aCwgbmV3IFB1YmxpY0FwaUNvbmZpZ3VyYXRpb24oe1xuICAgICAgICAgICAgdXNlcm5hbWU6IGJhc2ljQXV0aFVzZXJuYW1lID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzaWNBdXRoVXNlcm5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZDogYmFzaWNBdXRoUGFzc3dvcmQgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhQYXNzd29yZFxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgY3JlYXRlU2VnbWVudHNTZXJ2aWNlKGJhc2ljQXV0aFVzZXJuYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYmFzaWNBdXRoUGFzc3dvcmQ6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNlUGF0aDogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTZWdtZW50c1NlcnZpY2UodGhpcy5odHRwQ2xpZW50LCBiYXNlUGF0aCA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2VQYXRoLCBuZXcgUHVibGljQXBpQ29uZmlndXJhdGlvbih7XG4gICAgICAgICAgICB1c2VybmFtZTogYmFzaWNBdXRoVXNlcm5hbWUgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhVc2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBiYXNpY0F1dGhQYXNzd29yZCA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2ljQXV0aFBhc3N3b3JkXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBnZXREYXNoYm9hcmRCYXNlUGF0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbj8uZGFzaGJvYXJkQmFzZVBhdGggPz8gJ2h0dHBzOi8vYXBwLmNvbmZpZ2NhdC5jb20nO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { RolloutRuleComparator, SettingType } from 'ng-configcat-publicapi';
|
|
4
|
+
import { FormHelper } from './form-helper';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/forms";
|
|
7
|
+
export class SettingListFormHelper {
|
|
8
|
+
constructor(formBuilder) {
|
|
9
|
+
this.formBuilder = formBuilder;
|
|
10
|
+
}
|
|
11
|
+
createSettingValuesFormGroup(settingValuesModel) {
|
|
12
|
+
const formGroup = this.formBuilder.group({
|
|
13
|
+
settingValues: this.formBuilder.array(settingValuesModel.settingValues.map(sv => {
|
|
14
|
+
return this.createSettingValueFormGroup(sv, settingValuesModel.readOnly);
|
|
15
|
+
})),
|
|
16
|
+
// Decorator
|
|
17
|
+
environment: this.formBuilder.group({
|
|
18
|
+
environmentId: [{ value: settingValuesModel.environment.environmentId, disabled: true }],
|
|
19
|
+
name: [{ value: settingValuesModel.environment.name, disabled: true }],
|
|
20
|
+
}),
|
|
21
|
+
comparisonAttributes: [[]]
|
|
22
|
+
});
|
|
23
|
+
const rolloutRules = this.getAllRolloutRules(formGroup);
|
|
24
|
+
const comparisonAttributes = this.getComparisonAttributes(rolloutRules);
|
|
25
|
+
formGroup.patchValue({ comparisonAttributes: comparisonAttributes });
|
|
26
|
+
return formGroup;
|
|
27
|
+
}
|
|
28
|
+
createSettingValueFormGroup(settingValueModel, readOnly) {
|
|
29
|
+
if (!settingValueModel.setting) {
|
|
30
|
+
return this.formBuilder.group({});
|
|
31
|
+
}
|
|
32
|
+
return this.formBuilder.group({
|
|
33
|
+
settingId: [settingValueModel.setting.settingId],
|
|
34
|
+
value: [
|
|
35
|
+
{ value: settingValueModel.value, disabled: readOnly },
|
|
36
|
+
this.getValidatorsForSettingType(settingValueModel.setting.settingType)
|
|
37
|
+
],
|
|
38
|
+
rolloutPercentageItems: settingValueModel.rolloutPercentageItems
|
|
39
|
+
? this.formBuilder.array(settingValueModel.rolloutPercentageItems.map(p => {
|
|
40
|
+
// @ts-ignore()
|
|
41
|
+
return this.createRolloutPercentageItemFormGroup(p, readOnly, settingValueModel.setting.settingType);
|
|
42
|
+
}))
|
|
43
|
+
: this.formBuilder.array([]), rolloutRules: settingValueModel.rolloutRules
|
|
44
|
+
? this.formBuilder.array(settingValueModel.rolloutRules.map(r => {
|
|
45
|
+
// @ts-ignore()
|
|
46
|
+
return this.createRolloutRuleFormGroup(r, readOnly, settingValueModel.setting.settingType);
|
|
47
|
+
}))
|
|
48
|
+
: this.formBuilder.array([]),
|
|
49
|
+
updatedAt: [{ value: settingValueModel.updatedAt, disabled: true }],
|
|
50
|
+
lastUpdaterUserEmail: [{ value: settingValueModel.lastUpdaterUserEmail, disabled: true }],
|
|
51
|
+
lastUpdaterUserFullName: [{ value: settingValueModel.lastUpdaterUserFullName, disabled: true }],
|
|
52
|
+
rolloutPercentageItemsSum: [{ value: 100, disabled: false }, [Validators.min(100), Validators.max(100)]],
|
|
53
|
+
// Decoration
|
|
54
|
+
setting: this.formBuilder.group({
|
|
55
|
+
settingId: [{ value: settingValueModel.setting.settingId, disabled: true }],
|
|
56
|
+
key: [{ value: settingValueModel.setting.key, disabled: true }],
|
|
57
|
+
name: [{ value: settingValueModel.setting.name, disabled: true }],
|
|
58
|
+
hint: [{ value: settingValueModel.setting.hint, disabled: true }],
|
|
59
|
+
settingType: [{ value: settingValueModel.setting.settingType, disabled: true }],
|
|
60
|
+
creatorEmail: [{ value: settingValueModel.setting.creatorEmail, disabled: true }],
|
|
61
|
+
creatorFullName: [{ value: settingValueModel.setting.creatorFullName, disabled: true }],
|
|
62
|
+
createdAt: [{ value: settingValueModel.setting.createdAt, disabled: true }]
|
|
63
|
+
}),
|
|
64
|
+
integrationLinks: settingValueModel.integrationLinks ? this.formBuilder.array(settingValueModel.integrationLinks.map(il => {
|
|
65
|
+
return this.formBuilder.group({
|
|
66
|
+
key: [{ value: il.key, disabled: true }],
|
|
67
|
+
description: [{ value: il.description, disabled: true }],
|
|
68
|
+
integrationLinkType: [{ value: il.integrationLinkType, disabled: true }],
|
|
69
|
+
url: [{ value: il.url, disabled: true }],
|
|
70
|
+
});
|
|
71
|
+
})) : this.formBuilder.array([])
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
createRolloutPercentageItemFormGroup(p, readOnly, settingType) {
|
|
75
|
+
return this.formBuilder.group({
|
|
76
|
+
percentage: [{ value: p.percentage, disabled: readOnly }, [Validators.required, Validators.min(0), Validators.max(100)]],
|
|
77
|
+
value: [
|
|
78
|
+
{ value: p.value, disabled: readOnly },
|
|
79
|
+
this.getValidatorsForSettingType(settingType)
|
|
80
|
+
],
|
|
81
|
+
valueDisabled: [
|
|
82
|
+
{ value: p.value, disabled: true }, // For percentage item value
|
|
83
|
+
]
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
createRolloutRuleFormGroup(r, readOnly, settingType) {
|
|
87
|
+
if (r.comparator) {
|
|
88
|
+
return this.formBuilder.group({
|
|
89
|
+
type: [{ value: 0, disabled: true }],
|
|
90
|
+
comparisonAttribute: [{ value: r.comparisonAttribute, disabled: readOnly }, [Validators.required]],
|
|
91
|
+
comparator: [{ value: r.comparator, disabled: readOnly }, [Validators.required]],
|
|
92
|
+
comparisonValue: [{ value: r.comparisonValue, disabled: readOnly }, [Validators.required]],
|
|
93
|
+
value: [
|
|
94
|
+
{ value: r.value, disabled: readOnly },
|
|
95
|
+
this.getValidatorsForSettingType(settingType)
|
|
96
|
+
],
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
else if (r.segmentComparator) {
|
|
100
|
+
return this.formBuilder.group({
|
|
101
|
+
type: [{ value: 1, disabled: true }],
|
|
102
|
+
segmentComparator: [{ value: r.segmentComparator, disabled: readOnly }, [Validators.required]],
|
|
103
|
+
segmentId: [{ value: r.segmentId, disabled: readOnly }, [Validators.required]],
|
|
104
|
+
value: [
|
|
105
|
+
{ value: r.value, disabled: readOnly },
|
|
106
|
+
this.getValidatorsForSettingType(settingType)
|
|
107
|
+
],
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
throw new Error('Invalid rollout rule');
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
getValidatorsForSettingType(settingType) {
|
|
115
|
+
switch (settingType) {
|
|
116
|
+
case SettingType.Int:
|
|
117
|
+
return [Validators.required,
|
|
118
|
+
Validators.min(-2147483648), Validators.max(2147483647), Validators.pattern('^[-+]?[0-9]\\d*$')];
|
|
119
|
+
case SettingType.Double:
|
|
120
|
+
return [Validators.required, Validators.min(-1.79769313486232E+308), Validators.max(1.79769313486232E+308)];
|
|
121
|
+
case SettingType.String:
|
|
122
|
+
case SettingType.Boolean:
|
|
123
|
+
return [Validators.required];
|
|
124
|
+
default:
|
|
125
|
+
return [];
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
getAllRolloutRules(formGroup) {
|
|
129
|
+
const settingValues = formGroup.get('settingValues');
|
|
130
|
+
const rolloutRules = settingValues.controls.map(cv => cv.get('rolloutRules').value);
|
|
131
|
+
return rolloutRules.length === 0 ? rolloutRules : rolloutRules.reduce((a, b) => a.concat(b));
|
|
132
|
+
}
|
|
133
|
+
getComparisonAttributes(rolloutRules) {
|
|
134
|
+
if (rolloutRules.length > 0) {
|
|
135
|
+
const currentComparisonAttributes = rolloutRules.map(r => r.comparisonAttribute);
|
|
136
|
+
const defaultComparisonAttributes = ['Identifier', 'Email', 'Country'];
|
|
137
|
+
const comparisonAttributes = currentComparisonAttributes.filter(c => defaultComparisonAttributes.indexOf(c) === -1);
|
|
138
|
+
return Array.from(new Set(comparisonAttributes));
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
return [];
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
getComparisonValueType(comparator) {
|
|
145
|
+
switch (comparator) {
|
|
146
|
+
case RolloutRuleComparator.NumberEquals:
|
|
147
|
+
case RolloutRuleComparator.NumberDoesNotEqual:
|
|
148
|
+
case RolloutRuleComparator.NumberLess:
|
|
149
|
+
case RolloutRuleComparator.NumberLessOrEquals:
|
|
150
|
+
case RolloutRuleComparator.NumberGreater:
|
|
151
|
+
case RolloutRuleComparator.NumberGreaterOrEquals:
|
|
152
|
+
return 'number';
|
|
153
|
+
default:
|
|
154
|
+
return 'text';
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
normalizeComparisonValue(comparator, comparisonValue) {
|
|
158
|
+
// In the case of number inputs value is a number but API expects
|
|
159
|
+
// a string, so we need to make sure that it's converted to string.
|
|
160
|
+
return comparator && this.getComparisonValueType(comparator) === "number"
|
|
161
|
+
? FormHelper.normalizeNumberStoredAsString(comparisonValue)
|
|
162
|
+
: comparisonValue;
|
|
163
|
+
}
|
|
164
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SettingListFormHelper, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
165
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SettingListFormHelper, providedIn: 'root' }); }
|
|
166
|
+
}
|
|
167
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SettingListFormHelper, decorators: [{
|
|
168
|
+
type: Injectable,
|
|
169
|
+
args: [{ providedIn: 'root' }]
|
|
170
|
+
}], ctorParameters: () => [{ type: i1.UntypedFormBuilder }] });
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1saXN0LWZvcm0taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL19zZXJ2aWNlcy9zZXR0aW5nLWxpc3QtZm9ybS1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQXNCLFVBQVUsRUFBc0MsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRyxPQUFPLEVBQThCLHFCQUFxQixFQUFvQixXQUFXLEVBQXFCLE1BQU0sd0JBQXdCLENBQUM7QUFDN0ksT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRzNDLE1BQU0sT0FBTyxxQkFBcUI7SUFFOUIsWUFBb0IsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO0lBQUksQ0FBQztJQUV4RCw0QkFBNEIsQ0FBQyxrQkFBc0M7UUFDL0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDckMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUNqQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0UsQ0FBQyxDQUFDLENBQUM7WUFFUCxZQUFZO1lBQ1osV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO2dCQUNoQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDeEYsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDekUsQ0FBQztZQUVGLG9CQUFvQixFQUFFLENBQUMsRUFBRSxDQUFDO1NBQzdCLENBQUMsQ0FBQztRQUVILE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RCxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RSxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFHRCwyQkFBMkIsQ0FBQyxpQkFBb0MsRUFBRSxRQUFpQjtRQUMvRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUMxQixTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQ2hELEtBQUssRUFBRTtnQkFDSCxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTtnQkFDdEQsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7YUFDMUU7WUFDRCxzQkFBc0IsRUFBRSxpQkFBaUIsQ0FBQyxzQkFBc0I7Z0JBQzVELENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3RFLGVBQWU7b0JBQ2YsT0FBTyxJQUFJLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3pHLENBQUMsQ0FBQyxDQUFDO2dCQUNILENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLENBQUMsWUFBWTtnQkFDdEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQzVELGVBQWU7b0JBQ2YsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQy9GLENBQUMsQ0FBQyxDQUFDO2dCQUNILENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFFcEMsU0FBUyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNuRSxvQkFBb0IsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixDQUFDLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN6Rix1QkFBdUIsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixDQUFDLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUUvRix5QkFBeUIsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN4RyxhQUFhO1lBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO2dCQUM1QixTQUFTLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDM0UsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQy9ELElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUNqRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDakUsV0FBVyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQy9FLFlBQVksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUNqRixlQUFlLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDdkYsU0FBUyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDOUUsQ0FBQztZQUVGLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RILE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7b0JBQzFCLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO29CQUN4QyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztvQkFDeEQsbUJBQW1CLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO29CQUN4RSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDM0MsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1NBQ25DLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxvQ0FBb0MsQ0FBQyxDQUE2QixFQUFFLFFBQWlCLEVBQUUsV0FBb0M7UUFDdkgsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUMxQixVQUFVLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDeEgsS0FBSyxFQUFFO2dCQUNILEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFdBQVcsQ0FBQzthQUNoRDtZQUNELGFBQWEsRUFBRTtnQkFDWCxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSw0QkFBNEI7YUFDbkU7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsMEJBQTBCLENBQUMsQ0FBbUIsRUFBRSxRQUFpQixFQUFFLFdBQW9DO1FBQ25HLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztnQkFDMUIsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDcEMsbUJBQW1CLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNsRyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDaEYsZUFBZSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFGLEtBQUssRUFBRTtvQkFDSCxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUU7b0JBQ3RDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxXQUFXLENBQUM7aUJBQ2hEO2FBQ0osQ0FBQyxDQUFDO1FBQ1AsQ0FBQzthQUFNLElBQUksQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztnQkFDMUIsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDcEMsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM5RixTQUFTLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDOUUsS0FBSyxFQUFFO29CQUNILEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTtvQkFDdEMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFdBQVcsQ0FBQztpQkFDaEQ7YUFDSixDQUFDLENBQUM7UUFDUCxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0wsQ0FBQztJQUVPLDJCQUEyQixDQUFDLFdBQW9DO1FBQ3BFLFFBQVEsV0FBVyxFQUFFLENBQUM7WUFDbEIsS0FBSyxXQUFXLENBQUMsR0FBRztnQkFDaEIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRO29CQUMzQixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUNyRyxLQUFLLFdBQVcsQ0FBQyxNQUFNO2dCQUNuQixPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMscUJBQXFCLENBQUMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztZQUNoSCxLQUFLLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDeEIsS0FBSyxXQUFXLENBQUMsT0FBTztnQkFDcEIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqQztnQkFDSSxPQUFPLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0wsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFNBQTJCO1FBQ2xELE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFxQixDQUFDO1FBQ3pFLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUcsT0FBTyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxZQUFtQjtRQUMvQyxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUIsTUFBTSwyQkFBMkIsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFFakYsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDdkUsTUFBTSxvQkFBb0IsR0FBRywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwSCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1FBQ3JELENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO0lBQ0wsQ0FBQztJQUVELHNCQUFzQixDQUFDLFVBQWlDO1FBQ3BELFFBQVEsVUFBVSxFQUFFLENBQUM7WUFDakIsS0FBSyxxQkFBcUIsQ0FBQyxZQUFZLENBQUM7WUFDeEMsS0FBSyxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQztZQUM5QyxLQUFLLHFCQUFxQixDQUFDLFVBQVUsQ0FBQztZQUN0QyxLQUFLLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDO1lBQzlDLEtBQUsscUJBQXFCLENBQUMsYUFBYSxDQUFDO1lBQ3pDLEtBQUsscUJBQXFCLENBQUMscUJBQXFCO2dCQUM1QyxPQUFPLFFBQVEsQ0FBQztZQUNwQjtnQkFDSSxPQUFPLE1BQU0sQ0FBQztRQUN0QixDQUFDO0lBQ0wsQ0FBQztJQUVELHdCQUF3QixDQUFDLFVBQTZDLEVBQUUsZUFBb0I7UUFDeEYsaUVBQWlFO1FBQ2pFLG1FQUFtRTtRQUNuRSxPQUFPLFVBQVUsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLEtBQUssUUFBUTtZQUNyRSxDQUFDLENBQUMsVUFBVSxDQUFDLDZCQUE2QixDQUFDLGVBQWUsQ0FBQztZQUMzRCxDQUFDLENBQUMsZUFBZSxDQUFDO0lBQzFCLENBQUM7OEdBMUtRLHFCQUFxQjtrSEFBckIscUJBQXFCLGNBRFIsTUFBTTs7MkZBQ25CLHFCQUFxQjtrQkFEakMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZXR0aW5nVmFsdWVzTW9kZWwgfSBmcm9tICcuLi9fbW9kZWxzL3NldHRpbmdWYWx1ZXNNb2RlbCc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMsIFVudHlwZWRGb3JtR3JvdXAsIFVudHlwZWRGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb2xsb3V0UGVyY2VudGFnZUl0ZW1Nb2RlbCwgUm9sbG91dFJ1bGVDb21wYXJhdG9yLCBSb2xsb3V0UnVsZU1vZGVsLCBTZXR0aW5nVHlwZSwgU2V0dGluZ1ZhbHVlTW9kZWwgfSBmcm9tICduZy1jb25maWdjYXQtcHVibGljYXBpJztcbmltcG9ydCB7IEZvcm1IZWxwZXIgfSBmcm9tICcuL2Zvcm0taGVscGVyJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTZXR0aW5nTGlzdEZvcm1IZWxwZXIge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyKSB7IH1cblxuICAgIGNyZWF0ZVNldHRpbmdWYWx1ZXNGb3JtR3JvdXAoc2V0dGluZ1ZhbHVlc01vZGVsOiBTZXR0aW5nVmFsdWVzTW9kZWwpIHtcbiAgICAgICAgY29uc3QgZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBzZXR0aW5nVmFsdWVzOiB0aGlzLmZvcm1CdWlsZGVyLmFycmF5KFxuICAgICAgICAgICAgICAgIHNldHRpbmdWYWx1ZXNNb2RlbC5zZXR0aW5nVmFsdWVzLm1hcChzdiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNldHRpbmdWYWx1ZUZvcm1Hcm91cChzdiwgc2V0dGluZ1ZhbHVlc01vZGVsLnJlYWRPbmx5KTtcbiAgICAgICAgICAgICAgICB9KSksXG5cbiAgICAgICAgICAgIC8vIERlY29yYXRvclxuICAgICAgICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgIGVudmlyb25tZW50SWQ6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVzTW9kZWwuZW52aXJvbm1lbnQuZW52aXJvbm1lbnRJZCwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICAgICAgbmFtZTogW3sgdmFsdWU6IHNldHRpbmdWYWx1ZXNNb2RlbC5lbnZpcm9ubWVudC5uYW1lLCBkaXNhYmxlZDogdHJ1ZSB9XSxcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICBjb21wYXJpc29uQXR0cmlidXRlczogW1tdXVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCByb2xsb3V0UnVsZXMgPSB0aGlzLmdldEFsbFJvbGxvdXRSdWxlcyhmb3JtR3JvdXApO1xuICAgICAgICBjb25zdCBjb21wYXJpc29uQXR0cmlidXRlcyA9IHRoaXMuZ2V0Q29tcGFyaXNvbkF0dHJpYnV0ZXMocm9sbG91dFJ1bGVzKTtcbiAgICAgICAgZm9ybUdyb3VwLnBhdGNoVmFsdWUoeyBjb21wYXJpc29uQXR0cmlidXRlczogY29tcGFyaXNvbkF0dHJpYnV0ZXMgfSk7XG4gICAgICAgIHJldHVybiBmb3JtR3JvdXA7XG4gICAgfVxuXG5cbiAgICBjcmVhdGVTZXR0aW5nVmFsdWVGb3JtR3JvdXAoc2V0dGluZ1ZhbHVlTW9kZWw6IFNldHRpbmdWYWx1ZU1vZGVsLCByZWFkT25seTogYm9vbGVhbikge1xuICAgICAgICBpZiAoIXNldHRpbmdWYWx1ZU1vZGVsLnNldHRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHt9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBzZXR0aW5nSWQ6IFtzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLnNldHRpbmdJZF0sXG4gICAgICAgICAgICB2YWx1ZTogW1xuICAgICAgICAgICAgICAgIHsgdmFsdWU6IHNldHRpbmdWYWx1ZU1vZGVsLnZhbHVlLCBkaXNhYmxlZDogcmVhZE9ubHkgfSxcbiAgICAgICAgICAgICAgICB0aGlzLmdldFZhbGlkYXRvcnNGb3JTZXR0aW5nVHlwZShzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLnNldHRpbmdUeXBlKVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHJvbGxvdXRQZXJjZW50YWdlSXRlbXM6IHNldHRpbmdWYWx1ZU1vZGVsLnJvbGxvdXRQZXJjZW50YWdlSXRlbXNcbiAgICAgICAgICAgICAgICA/IHRoaXMuZm9ybUJ1aWxkZXIuYXJyYXkoc2V0dGluZ1ZhbHVlTW9kZWwucm9sbG91dFBlcmNlbnRhZ2VJdGVtcy5tYXAocCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUoKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVSb2xsb3V0UGVyY2VudGFnZUl0ZW1Gb3JtR3JvdXAocCwgcmVhZE9ubHksIHNldHRpbmdWYWx1ZU1vZGVsLnNldHRpbmcuc2V0dGluZ1R5cGUpO1xuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgIDogdGhpcy5mb3JtQnVpbGRlci5hcnJheShbXSksIHJvbGxvdXRSdWxlczogc2V0dGluZ1ZhbHVlTW9kZWwucm9sbG91dFJ1bGVzXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5mb3JtQnVpbGRlci5hcnJheShzZXR0aW5nVmFsdWVNb2RlbC5yb2xsb3V0UnVsZXMubWFwKHIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVSb2xsb3V0UnVsZUZvcm1Hcm91cChyLCByZWFkT25seSwgc2V0dGluZ1ZhbHVlTW9kZWwuc2V0dGluZy5zZXR0aW5nVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZm9ybUJ1aWxkZXIuYXJyYXkoW10pLFxuXG4gICAgICAgICAgICB1cGRhdGVkQXQ6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVNb2RlbC51cGRhdGVkQXQsIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgbGFzdFVwZGF0ZXJVc2VyRW1haWw6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVNb2RlbC5sYXN0VXBkYXRlclVzZXJFbWFpbCwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICBsYXN0VXBkYXRlclVzZXJGdWxsTmFtZTogW3sgdmFsdWU6IHNldHRpbmdWYWx1ZU1vZGVsLmxhc3RVcGRhdGVyVXNlckZ1bGxOYW1lLCBkaXNhYmxlZDogdHJ1ZSB9XSxcblxuICAgICAgICAgICAgcm9sbG91dFBlcmNlbnRhZ2VJdGVtc1N1bTogW3sgdmFsdWU6IDEwMCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFtWYWxpZGF0b3JzLm1pbigxMDApLCBWYWxpZGF0b3JzLm1heCgxMDApXV0sXG4gICAgICAgICAgICAvLyBEZWNvcmF0aW9uXG4gICAgICAgICAgICBzZXR0aW5nOiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgICAgICBzZXR0aW5nSWQ6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLnNldHRpbmdJZCwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICAgICAga2V5OiBbeyB2YWx1ZTogc2V0dGluZ1ZhbHVlTW9kZWwuc2V0dGluZy5rZXksIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgIG5hbWU6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLm5hbWUsIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgIGhpbnQ6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLmhpbnQsIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgIHNldHRpbmdUeXBlOiBbeyB2YWx1ZTogc2V0dGluZ1ZhbHVlTW9kZWwuc2V0dGluZy5zZXR0aW5nVHlwZSwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICAgICAgY3JlYXRvckVtYWlsOiBbeyB2YWx1ZTogc2V0dGluZ1ZhbHVlTW9kZWwuc2V0dGluZy5jcmVhdG9yRW1haWwsIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgIGNyZWF0b3JGdWxsTmFtZTogW3sgdmFsdWU6IHNldHRpbmdWYWx1ZU1vZGVsLnNldHRpbmcuY3JlYXRvckZ1bGxOYW1lLCBkaXNhYmxlZDogdHJ1ZSB9XSxcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLmNyZWF0ZWRBdCwgZGlzYWJsZWQ6IHRydWUgfV1cbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICBpbnRlZ3JhdGlvbkxpbmtzOiBzZXR0aW5nVmFsdWVNb2RlbC5pbnRlZ3JhdGlvbkxpbmtzID8gdGhpcy5mb3JtQnVpbGRlci5hcnJheShzZXR0aW5nVmFsdWVNb2RlbC5pbnRlZ3JhdGlvbkxpbmtzLm1hcChpbCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgICAgICBrZXk6IFt7IHZhbHVlOiBpbC5rZXksIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogW3sgdmFsdWU6IGlsLmRlc2NyaXB0aW9uLCBkaXNhYmxlZDogdHJ1ZSB9XSxcbiAgICAgICAgICAgICAgICAgICAgaW50ZWdyYXRpb25MaW5rVHlwZTogW3sgdmFsdWU6IGlsLmludGVncmF0aW9uTGlua1R5cGUsIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgICAgICB1cmw6IFt7IHZhbHVlOiBpbC51cmwsIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSkpIDogdGhpcy5mb3JtQnVpbGRlci5hcnJheShbXSlcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY3JlYXRlUm9sbG91dFBlcmNlbnRhZ2VJdGVtRm9ybUdyb3VwKHA6IFJvbGxvdXRQZXJjZW50YWdlSXRlbU1vZGVsLCByZWFkT25seTogYm9vbGVhbiwgc2V0dGluZ1R5cGU6IFNldHRpbmdUeXBlIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIHBlcmNlbnRhZ2U6IFt7IHZhbHVlOiBwLnBlcmNlbnRhZ2UsIGRpc2FibGVkOiByZWFkT25seSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KDEwMCldXSxcbiAgICAgICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogcC52YWx1ZSwgZGlzYWJsZWQ6IHJlYWRPbmx5IH0sXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRWYWxpZGF0b3JzRm9yU2V0dGluZ1R5cGUoc2V0dGluZ1R5cGUpXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdmFsdWVEaXNhYmxlZDogW1xuICAgICAgICAgICAgICAgIHsgdmFsdWU6IHAudmFsdWUsIGRpc2FibGVkOiB0cnVlIH0sIC8vIEZvciBwZXJjZW50YWdlIGl0ZW0gdmFsdWVcbiAgICAgICAgICAgIF1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY3JlYXRlUm9sbG91dFJ1bGVGb3JtR3JvdXAocjogUm9sbG91dFJ1bGVNb2RlbCwgcmVhZE9ubHk6IGJvb2xlYW4sIHNldHRpbmdUeXBlOiBTZXR0aW5nVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoci5jb21wYXJhdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICAgICAgdHlwZTogW3sgdmFsdWU6IDAsIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgIGNvbXBhcmlzb25BdHRyaWJ1dGU6IFt7IHZhbHVlOiByLmNvbXBhcmlzb25BdHRyaWJ1dGUsIGRpc2FibGVkOiByZWFkT25seSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgICAgIGNvbXBhcmF0b3I6IFt7IHZhbHVlOiByLmNvbXBhcmF0b3IsIGRpc2FibGVkOiByZWFkT25seSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgICAgIGNvbXBhcmlzb25WYWx1ZTogW3sgdmFsdWU6IHIuY29tcGFyaXNvblZhbHVlLCBkaXNhYmxlZDogcmVhZE9ubHkgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogW1xuICAgICAgICAgICAgICAgICAgICB7IHZhbHVlOiByLnZhbHVlLCBkaXNhYmxlZDogcmVhZE9ubHkgfSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRWYWxpZGF0b3JzRm9yU2V0dGluZ1R5cGUoc2V0dGluZ1R5cGUpXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHIuc2VnbWVudENvbXBhcmF0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBbeyB2YWx1ZTogMSwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICAgICAgc2VnbWVudENvbXBhcmF0b3I6IFt7IHZhbHVlOiByLnNlZ21lbnRDb21wYXJhdG9yLCBkaXNhYmxlZDogcmVhZE9ubHkgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgICAgICBzZWdtZW50SWQ6IFt7IHZhbHVlOiByLnNlZ21lbnRJZCwgZGlzYWJsZWQ6IHJlYWRPbmx5IH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogci52YWx1ZSwgZGlzYWJsZWQ6IHJlYWRPbmx5IH0sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0VmFsaWRhdG9yc0ZvclNldHRpbmdUeXBlKHNldHRpbmdUeXBlKVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCByb2xsb3V0IHJ1bGUnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VmFsaWRhdG9yc0ZvclNldHRpbmdUeXBlKHNldHRpbmdUeXBlOiBTZXR0aW5nVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgICAgICBzd2l0Y2ggKHNldHRpbmdUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIFNldHRpbmdUeXBlLkludDpcbiAgICAgICAgICAgICAgICByZXR1cm4gW1ZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5taW4oLTIxNDc0ODM2NDgpLCBWYWxpZGF0b3JzLm1heCgyMTQ3NDgzNjQ3KSwgVmFsaWRhdG9ycy5wYXR0ZXJuKCdeWy0rXT9bMC05XVxcXFxkKiQnKV07XG4gICAgICAgICAgICBjYXNlIFNldHRpbmdUeXBlLkRvdWJsZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluKC0xLjc5NzY5MzEzNDg2MjMyRSszMDgpLCBWYWxpZGF0b3JzLm1heCgxLjc5NzY5MzEzNDg2MjMyRSszMDgpXTtcbiAgICAgICAgICAgIGNhc2UgU2V0dGluZ1R5cGUuU3RyaW5nOlxuICAgICAgICAgICAgY2FzZSBTZXR0aW5nVHlwZS5Cb29sZWFuOlxuICAgICAgICAgICAgICAgIHJldHVybiBbVmFsaWRhdG9ycy5yZXF1aXJlZF07XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWxsUm9sbG91dFJ1bGVzKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgICAgICBjb25zdCBzZXR0aW5nVmFsdWVzID0gZm9ybUdyb3VwLmdldCgnc2V0dGluZ1ZhbHVlcycpIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gICAgICAgIGNvbnN0IHJvbGxvdXRSdWxlcyA9IHNldHRpbmdWYWx1ZXMuY29udHJvbHMubWFwKGN2ID0+IChjdi5nZXQoJ3JvbGxvdXRSdWxlcycpIGFzIFVudHlwZWRGb3JtQXJyYXkpLnZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJvbGxvdXRSdWxlcy5sZW5ndGggPT09IDAgPyByb2xsb3V0UnVsZXMgOiByb2xsb3V0UnVsZXMucmVkdWNlKChhLCBiKSA9PiBhLmNvbmNhdChiKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb21wYXJpc29uQXR0cmlidXRlcyhyb2xsb3V0UnVsZXM6IGFueVtdKSB7XG4gICAgICAgIGlmIChyb2xsb3V0UnVsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudENvbXBhcmlzb25BdHRyaWJ1dGVzID0gcm9sbG91dFJ1bGVzLm1hcChyID0+IHIuY29tcGFyaXNvbkF0dHJpYnV0ZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRDb21wYXJpc29uQXR0cmlidXRlcyA9IFsnSWRlbnRpZmllcicsICdFbWFpbCcsICdDb3VudHJ5J107XG4gICAgICAgICAgICBjb25zdCBjb21wYXJpc29uQXR0cmlidXRlcyA9IGN1cnJlbnRDb21wYXJpc29uQXR0cmlidXRlcy5maWx0ZXIoYyA9PiBkZWZhdWx0Q29tcGFyaXNvbkF0dHJpYnV0ZXMuaW5kZXhPZihjKSA9PT0gLTEpO1xuICAgICAgICAgICAgcmV0dXJuIEFycmF5LmZyb20obmV3IFNldChjb21wYXJpc29uQXR0cmlidXRlcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Q29tcGFyaXNvblZhbHVlVHlwZShjb21wYXJhdG9yOiBSb2xsb3V0UnVsZUNvbXBhcmF0b3IpIHtcbiAgICAgICAgc3dpdGNoIChjb21wYXJhdG9yKSB7XG4gICAgICAgICAgICBjYXNlIFJvbGxvdXRSdWxlQ29tcGFyYXRvci5OdW1iZXJFcXVhbHM6XG4gICAgICAgICAgICBjYXNlIFJvbGxvdXRSdWxlQ29tcGFyYXRvci5OdW1iZXJEb2VzTm90RXF1YWw6XG4gICAgICAgICAgICBjYXNlIFJvbGxvdXRSdWxlQ29tcGFyYXRvci5OdW1iZXJMZXNzOlxuICAgICAgICAgICAgY2FzZSBSb2xsb3V0UnVsZUNvbXBhcmF0b3IuTnVtYmVyTGVzc09yRXF1YWxzOlxuICAgICAgICAgICAgY2FzZSBSb2xsb3V0UnVsZUNvbXBhcmF0b3IuTnVtYmVyR3JlYXRlcjpcbiAgICAgICAgICAgIGNhc2UgUm9sbG91dFJ1bGVDb21wYXJhdG9yLk51bWJlckdyZWF0ZXJPckVxdWFsczpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ251bWJlcic7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAndGV4dCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBub3JtYWxpemVDb21wYXJpc29uVmFsdWUoY29tcGFyYXRvcjogUm9sbG91dFJ1bGVDb21wYXJhdG9yIHwgdW5kZWZpbmVkLCBjb21wYXJpc29uVmFsdWU6IGFueSkge1xuICAgICAgICAvLyBJbiB0aGUgY2FzZSBvZiBudW1iZXIgaW5wdXRzIHZhbHVlIGlzIGEgbnVtYmVyIGJ1dCBBUEkgZXhwZWN0c1xuICAgICAgICAvLyBhIHN0cmluZywgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBpdCdzIGNvbnZlcnRlZCB0byBzdHJpbmcuXG4gICAgICAgIHJldHVybiBjb21wYXJhdG9yICYmIHRoaXMuZ2V0Q29tcGFyaXNvblZhbHVlVHlwZShjb21wYXJhdG9yKSA9PT0gXCJudW1iZXJcIlxuICAgICAgICAgICAgPyBGb3JtSGVscGVyLm5vcm1hbGl6ZU51bWJlclN0b3JlZEFzU3RyaW5nKGNvbXBhcmlzb25WYWx1ZSlcbiAgICAgICAgICAgIDogY29tcGFyaXNvblZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { FormHelper } from '../_services/form-helper';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/forms";
|
|
6
|
+
import * as i2 from "../_services";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "@angular/material/form-field";
|
|
9
|
+
import * as i5 from "@angular/material/button";
|
|
10
|
+
import * as i6 from "@angular/material/input";
|
|
11
|
+
export class AuthorizationComponent {
|
|
12
|
+
constructor(formBuilder, publicApiService) {
|
|
13
|
+
this.formBuilder = formBuilder;
|
|
14
|
+
this.publicApiService = publicApiService;
|
|
15
|
+
this.basePath = null;
|
|
16
|
+
this.integrationName = 'ConfigCat Feature Flags';
|
|
17
|
+
this.authorized = new EventEmitter();
|
|
18
|
+
this.error = new EventEmitter();
|
|
19
|
+
this.FormHelper = FormHelper;
|
|
20
|
+
}
|
|
21
|
+
ngOnInit() {
|
|
22
|
+
this.formGroup = this.formBuilder.group({
|
|
23
|
+
basicAuthUsername: ['', Validators.required],
|
|
24
|
+
basicAuthPassword: ['', Validators.required],
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
onSubmit() {
|
|
28
|
+
if (!this.formGroup.valid) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const meService = this.publicApiService.createMeService(this.formGroup.controls.basicAuthUsername.value, this.formGroup.controls.basicAuthPassword.value, this.basePath);
|
|
32
|
+
meService.getMe().subscribe(me => {
|
|
33
|
+
this.authorized.emit({
|
|
34
|
+
basicAuthUsername: this.formGroup.controls.basicAuthUsername.value,
|
|
35
|
+
basicAuthPassword: this.formGroup.controls.basicAuthPassword.value,
|
|
36
|
+
email: me.email,
|
|
37
|
+
fullName: me.fullName
|
|
38
|
+
});
|
|
39
|
+
}, () => {
|
|
40
|
+
this.formGroup.setErrors({ invalidAuthorization: 'Invalid Basic auth user name or password' });
|
|
41
|
+
this.error.emit();
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
getPublicApiUrl() {
|
|
45
|
+
return this.publicApiService.getDashboardBasePath() + '/my-account/public-api-credentials';
|
|
46
|
+
}
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AuthorizationComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.PublicApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AuthorizationComponent, selector: "configcat-authorization", inputs: { basePath: "basePath", integrationName: "integrationName" }, outputs: { authorized: "authorized", error: "error" }, ngImport: i0, template: "<form [formGroup]=\"formGroup\" (ngSubmit)=\"onSubmit()\">\n <div class=\"container\">\n <div class=\"form\">\n <p>\n In order to use {{integrationName}} you have to authorize first with your ConfigCat Public API\n credentials.\n </p>\n <ul>\n <li>\n <a [href]=\"getPublicApiUrl()\" target=\"_blank\">\n Get your Basic Auth user name and password</a> to access ConfigCat Public API.\n <br />\n <b>Note!</b> Your ConfigCat account's email address and password will not work here.\n </li>\n <li>\n Type your credentials here and click the Authorize button.\n </li>\n </ul>\n\n <mat-form-field class=\"form-field\" appearance=\"outline\">\n <mat-label>Basic auth user name</mat-label>\n <input matInput placeholder=\"Basic auth user name\" formControlName=\"basicAuthUsername\">\n <mat-error *ngIf=\"formGroup.controls.basicAuthUsername.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.basicAuthUsername)}}\n </mat-error>\n </mat-form-field>\n <mat-form-field class=\"form-field\" appearance=\"outline\">\n <mat-label>Basic auth password</mat-label>\n <input matInput placeholder=\"Basic auth password\" formControlName=\"basicAuthPassword\" type=\"password\"\n autocomplete=\"current-password\">\n <mat-error *ngIf=\"formGroup.controls.basicAuthPassword.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.basicAuthPassword)}}\n </mat-error>\n </mat-form-field>\n <div>\n <button mat-flat-button color=\"primary\" type=\"submit\" class=\"submit\">Authorize</button>\n <mat-error *ngIf=\"formGroup.invalid && formGroup.errors && formGroup.errors.invalidAuthorization\">\n {{formGroup.errors.invalidAuthorization}}</mat-error>\n </div>\n </div>\n </div>\n</form>", styles: [".container{display:flex;margin:8px}.form{width:100%}.form-field{width:100%;margin-bottom:8px}.submit{margin-top:8px;margin-bottom:8px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
|
|
49
|
+
}
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AuthorizationComponent, decorators: [{
|
|
51
|
+
type: Component,
|
|
52
|
+
args: [{ selector: 'configcat-authorization', template: "<form [formGroup]=\"formGroup\" (ngSubmit)=\"onSubmit()\">\n <div class=\"container\">\n <div class=\"form\">\n <p>\n In order to use {{integrationName}} you have to authorize first with your ConfigCat Public API\n credentials.\n </p>\n <ul>\n <li>\n <a [href]=\"getPublicApiUrl()\" target=\"_blank\">\n Get your Basic Auth user name and password</a> to access ConfigCat Public API.\n <br />\n <b>Note!</b> Your ConfigCat account's email address and password will not work here.\n </li>\n <li>\n Type your credentials here and click the Authorize button.\n </li>\n </ul>\n\n <mat-form-field class=\"form-field\" appearance=\"outline\">\n <mat-label>Basic auth user name</mat-label>\n <input matInput placeholder=\"Basic auth user name\" formControlName=\"basicAuthUsername\">\n <mat-error *ngIf=\"formGroup.controls.basicAuthUsername.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.basicAuthUsername)}}\n </mat-error>\n </mat-form-field>\n <mat-form-field class=\"form-field\" appearance=\"outline\">\n <mat-label>Basic auth password</mat-label>\n <input matInput placeholder=\"Basic auth password\" formControlName=\"basicAuthPassword\" type=\"password\"\n autocomplete=\"current-password\">\n <mat-error *ngIf=\"formGroup.controls.basicAuthPassword.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.basicAuthPassword)}}\n </mat-error>\n </mat-form-field>\n <div>\n <button mat-flat-button color=\"primary\" type=\"submit\" class=\"submit\">Authorize</button>\n <mat-error *ngIf=\"formGroup.invalid && formGroup.errors && formGroup.errors.invalidAuthorization\">\n {{formGroup.errors.invalidAuthorization}}</mat-error>\n </div>\n </div>\n </div>\n</form>", styles: [".container{display:flex;margin:8px}.form{width:100%}.form-field{width:100%;margin-bottom:8px}.submit{margin-top:8px;margin-bottom:8px}\n"] }]
|
|
53
|
+
}], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i2.PublicApiService }], propDecorators: { basePath: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], integrationName: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}], authorized: [{
|
|
58
|
+
type: Output
|
|
59
|
+
}], error: [{
|
|
60
|
+
type: Output
|
|
61
|
+
}] } });
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvYXV0aG9yaXphdGlvbi9hdXRob3JpemF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi9hdXRob3JpemF0aW9uL2F1dGhvcml6YXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQXdDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7QUFPdEQsTUFBTSxPQUFPLHNCQUFzQjtJQVNqQyxZQUNVLFdBQStCLEVBQy9CLGdCQUFrQztRQURsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVJuQyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLG9CQUFlLEdBQUcseUJBQXlCLENBQUM7UUFDM0MsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckMsZUFBVSxHQUFHLFVBQVUsQ0FBQztJQUtwQixDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDdEMsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM1QyxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQzdDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQy9DLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWpCLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQ25CLGlCQUFpQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUs7Z0JBQ2xFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUs7Z0JBQ2xFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSztnQkFDZixRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVE7YUFDdEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUNDLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsMENBQTBDLEVBQUUsQ0FBQyxDQUFDO1lBQy9GLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixFQUFFLEdBQUcsb0NBQW9DLENBQUM7SUFDN0YsQ0FBQzs4R0FoRFUsc0JBQXNCO2tHQUF0QixzQkFBc0IsNExDVm5DLGtyRUF5Q087OzJGRC9CTSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UseUJBQXlCO3NIQU8xQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQdWJsaWNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IEZvcm1IZWxwZXIgfSBmcm9tICcuLi9fc2VydmljZXMvZm9ybS1oZWxwZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb25maWdjYXQtYXV0aG9yaXphdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRob3JpemF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0aG9yaXphdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhvcml6YXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGZvcm1Hcm91cCE6IFVudHlwZWRGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGJhc2VQYXRoID0gbnVsbDtcbiAgQElucHV0KCkgaW50ZWdyYXRpb25OYW1lID0gJ0NvbmZpZ0NhdCBGZWF0dXJlIEZsYWdzJztcbiAgQE91dHB1dCgpIGF1dGhvcml6ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgRm9ybUhlbHBlciA9IEZvcm1IZWxwZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcHVibGljQXBpU2VydmljZTogUHVibGljQXBpU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBiYXNpY0F1dGhVc2VybmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGJhc2ljQXV0aFBhc3N3b3JkOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgIH0pO1xuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgaWYgKCF0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1lU2VydmljZSA9IHRoaXMucHVibGljQXBpU2VydmljZS5jcmVhdGVNZVNlcnZpY2UoXG4gICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5iYXNpY0F1dGhVc2VybmFtZS52YWx1ZSxcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmJhc2ljQXV0aFBhc3N3b3JkLnZhbHVlLFxuICAgICAgdGhpcy5iYXNlUGF0aCk7XG5cbiAgICBtZVNlcnZpY2UuZ2V0TWUoKS5zdWJzY3JpYmUobWUgPT4ge1xuICAgICAgdGhpcy5hdXRob3JpemVkLmVtaXQoe1xuICAgICAgICBiYXNpY0F1dGhVc2VybmFtZTogdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuYmFzaWNBdXRoVXNlcm5hbWUudmFsdWUsXG4gICAgICAgIGJhc2ljQXV0aFBhc3N3b3JkOiB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5iYXNpY0F1dGhQYXNzd29yZC52YWx1ZSxcbiAgICAgICAgZW1haWw6IG1lLmVtYWlsLFxuICAgICAgICBmdWxsTmFtZTogbWUuZnVsbE5hbWVcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnNldEVycm9ycyh7IGludmFsaWRBdXRob3JpemF0aW9uOiAnSW52YWxpZCBCYXNpYyBhdXRoIHVzZXIgbmFtZSBvciBwYXNzd29yZCcgfSk7XG4gICAgICAgIHRoaXMuZXJyb3IuZW1pdCgpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBnZXRQdWJsaWNBcGlVcmwoKSB7XG4gICAgcmV0dXJuIHRoaXMucHVibGljQXBpU2VydmljZS5nZXREYXNoYm9hcmRCYXNlUGF0aCgpICsgJy9teS1hY2NvdW50L3B1YmxpYy1hcGktY3JlZGVudGlhbHMnO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgSW4gb3JkZXIgdG8gdXNlIHt7aW50ZWdyYXRpb25OYW1lfX0geW91IGhhdmUgdG8gYXV0aG9yaXplIGZpcnN0IHdpdGggeW91ciBDb25maWdDYXQgUHVibGljIEFQSVxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzLlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiZ2V0UHVibGljQXBpVXJsKClcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEdldCB5b3VyIEJhc2ljIEF1dGggdXNlciBuYW1lIGFuZCBwYXNzd29yZDwvYT4gdG8gYWNjZXNzIENvbmZpZ0NhdCBQdWJsaWMgQVBJLlxuICAgICAgICAgICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGI+Tm90ZSE8L2I+IFlvdXIgQ29uZmlnQ2F0IGFjY291bnQncyBlbWFpbCBhZGRyZXNzIGFuZCBwYXNzd29yZCB3aWxsIG5vdCB3b3JrIGhlcmUuXG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgIFR5cGUgeW91ciBjcmVkZW50aWFscyBoZXJlIGFuZCBjbGljayB0aGUgQXV0aG9yaXplIGJ1dHRvbi5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cblxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZm9ybS1maWVsZFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5CYXNpYyBhdXRoIHVzZXIgbmFtZTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkJhc2ljIGF1dGggdXNlciBuYW1lXCIgZm9ybUNvbnRyb2xOYW1lPVwiYmFzaWNBdXRoVXNlcm5hbWVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmJhc2ljQXV0aFVzZXJuYW1lLmludmFsaWRcIj5cbiAgICAgICAgICAgICAgICAgICAge3tGb3JtSGVscGVyLmdldEVycm9yTWVzc2FnZShmb3JtR3JvdXAuY29udHJvbHMuYmFzaWNBdXRoVXNlcm5hbWUpfX1cbiAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmb3JtLWZpZWxkXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkJhc2ljIGF1dGggcGFzc3dvcmQ8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJCYXNpYyBhdXRoIHBhc3N3b3JkXCIgZm9ybUNvbnRyb2xOYW1lPVwiYmFzaWNBdXRoUGFzc3dvcmRcIiB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJjdXJyZW50LXBhc3N3b3JkXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Hcm91cC5jb250cm9scy5iYXNpY0F1dGhQYXNzd29yZC5pbnZhbGlkXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7Rm9ybUhlbHBlci5nZXRFcnJvck1lc3NhZ2UoZm9ybUdyb3VwLmNvbnRyb2xzLmJhc2ljQXV0aFBhc3N3b3JkKX19XG4gICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJzdWJtaXRcIj5BdXRob3JpemU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUdyb3VwLmludmFsaWQgJiYgZm9ybUdyb3VwLmVycm9ycyAmJiBmb3JtR3JvdXAuZXJyb3JzLmludmFsaWRBdXRob3JpemF0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7Zm9ybUdyb3VwLmVycm9ycy5pbnZhbGlkQXV0aG9yaXphdGlvbn19PC9tYXQtZXJyb3I+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Zvcm0+Il19
|
|
@@ -10,10 +10,10 @@ export class BaseSelectComponent extends BaseComponent {
|
|
|
10
10
|
openChanged(event) {
|
|
11
11
|
this.dropdownOpened.emit(event);
|
|
12
12
|
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: BaseSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: BaseSelectComponent, selector: "base-select", inputs: { customDropdown: "customDropdown" }, outputs: { dropdownOpened: "dropdownOpened" }, usesInheritance: true, ngImport: i0, template: '<div></div>', isInline: true }); }
|
|
13
15
|
}
|
|
14
|
-
|
|
15
|
-
BaseSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BaseSelectComponent, selector: "base-select", inputs: { customDropdown: "customDropdown" }, outputs: { dropdownOpened: "dropdownOpened" }, usesInheritance: true, ngImport: i0, template: '<div></div>', isInline: true });
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BaseSelectComponent, decorators: [{
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: BaseSelectComponent, decorators: [{
|
|
17
17
|
type: Component,
|
|
18
18
|
args: [{
|
|
19
19
|
selector: 'base-select',
|
|
@@ -24,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
24
24
|
}], dropdownOpened: [{
|
|
25
25
|
type: Output
|
|
26
26
|
}] } });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL2Jhc2UvYmFzZS1zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQU1qRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQUp0RDs7UUFNVyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUUvQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7S0FLeEQ7SUFIVyxXQUFXLENBQUMsS0FBVTtRQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDOzhHQVJVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLHVLQUZwQixhQUFhOzsyRkFFWixtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRSxhQUFhO2lCQUN4Qjs4QkFHVSxjQUFjO3NCQUF0QixLQUFLO2dCQUVJLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYXNlLXNlbGVjdCcsXG4gIHRlbXBsYXRlOiAnPGRpdj48L2Rpdj4nXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBjdXN0b21Ecm9wZG93bjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBkcm9wZG93bk9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwcm90ZWN0ZWQgb3BlbkNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZHJvcGRvd25PcGVuZWQuZW1pdChldmVudCk7XG4gIH1cbn1cblxuXG4iXX0=
|