ng-configcat-publicapi-ui 2.2.1 → 2.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +15 -15
  2. package/bundles/ng-configcat-publicapi-ui.umd.js +1917 -1758
  3. package/bundles/ng-configcat-publicapi-ui.umd.js.map +1 -1
  4. package/esm2015/lib/_models/index.js +3 -3
  5. package/esm2015/lib/_models/settingValuesModel.js +2 -2
  6. package/esm2015/lib/_models/updateSettingValuesModel.js +2 -2
  7. package/esm2015/lib/_services/form-helper.js +21 -21
  8. package/esm2015/lib/_services/index.js +2 -2
  9. package/esm2015/lib/_services/public-api.service.js +69 -71
  10. package/esm2015/lib/_services/setting-list-form-helper.js +135 -128
  11. package/esm2015/lib/authorization/authorization.component.js +54 -49
  12. package/esm2015/lib/base/base.component.js +42 -40
  13. package/esm2015/lib/configuration.js +13 -10
  14. package/esm2015/lib/dialogs/concurrent-dialog/concurrent-dialog.component.js +29 -26
  15. package/esm2015/lib/dialogs/expand-dialog/expand-dialog.component.js +81 -70
  16. package/esm2015/lib/dialogs/reason-dialog/reason-dialog.component.js +40 -35
  17. package/esm2015/lib/dialogs/save-snackbar/save-snackbar.component.js +18 -15
  18. package/esm2015/lib/ng-configcat-publicapi-ui.module.js +160 -101
  19. package/esm2015/lib/selects/config-select/config-select.component.js +61 -48
  20. package/esm2015/lib/selects/environment-select/environment-select.component.js +47 -40
  21. package/esm2015/lib/selects/product-select/product-select.component.js +40 -34
  22. package/esm2015/lib/selects/setting-select/setting-select.component.js +47 -40
  23. package/esm2015/lib/setting-item/setting-item.component.js +121 -106
  24. package/esm2015/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.js +87 -69
  25. package/esm2015/lib/setting-list/setting/rollout-rules/rollout-rules.component.js +287 -260
  26. package/esm2015/lib/setting-list/setting/setting.component.js +131 -112
  27. package/esm2015/lib/setting-list/setting/value/value.component.js +39 -31
  28. package/esm2015/lib/setting-list/setting-list.component.js +195 -179
  29. package/esm2015/ng-configcat-publicapi-ui.js +5 -19
  30. package/esm2015/public-api.js +12 -12
  31. package/fesm2015/ng-configcat-publicapi-ui.js +1536 -1378
  32. package/fesm2015/ng-configcat-publicapi-ui.js.map +1 -1
  33. package/lib/_models/index.d.ts +2 -2
  34. package/lib/_models/settingValuesModel.d.ts +11 -11
  35. package/lib/_models/updateSettingValuesModel.d.ts +7 -7
  36. package/lib/_services/form-helper.d.ts +4 -4
  37. package/lib/_services/index.d.ts +1 -1
  38. package/lib/_services/public-api.service.d.ts +18 -15
  39. package/lib/_services/setting-list-form-helper.d.ts +17 -14
  40. package/lib/authorization/authorization.component.d.ts +18 -15
  41. package/lib/base/base.component.d.ts +16 -13
  42. package/lib/configuration.d.ts +8 -5
  43. package/lib/dialogs/concurrent-dialog/concurrent-dialog.component.d.ts +12 -9
  44. package/lib/dialogs/expand-dialog/expand-dialog.component.d.ts +24 -20
  45. package/lib/dialogs/reason-dialog/reason-dialog.component.d.ts +15 -12
  46. package/lib/dialogs/save-snackbar/save-snackbar.component.d.ts +8 -5
  47. package/lib/ng-configcat-publicapi-ui.module.d.ts +44 -6
  48. package/lib/selects/config-select/config-select.component.d.ts +17 -14
  49. package/lib/selects/environment-select/environment-select.component.d.ts +17 -14
  50. package/lib/selects/product-select/product-select.component.d.ts +14 -11
  51. package/lib/selects/setting-select/setting-select.component.d.ts +17 -14
  52. package/lib/setting-item/setting-item.component.d.ts +34 -31
  53. package/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.d.ts +27 -22
  54. package/lib/setting-list/setting/rollout-rules/rollout-rules.component.d.ts +52 -46
  55. package/lib/setting-list/setting/setting.component.d.ts +40 -37
  56. package/lib/setting-list/setting/value/value.component.d.ts +19 -16
  57. package/lib/setting-list/setting-list.component.d.ts +46 -42
  58. package/ng-configcat-publicapi-ui.d.ts +5 -18
  59. package/package.json +8 -10
  60. package/public-api.d.ts +8 -8
  61. package/ng-configcat-publicapi-ui.metadata.json +0 -1
@@ -1,128 +1,135 @@
1
- import { Injectable } from '@angular/core';
2
- import { FormBuilder, Validators } from '@angular/forms';
3
- import { SettingType } from 'ng-configcat-publicapi';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/forms";
6
- export class SettingListFormHelper {
7
- constructor(formBuilder) {
8
- this.formBuilder = formBuilder;
9
- }
10
- createSettingValuesFormGroup(settingValuesModel) {
11
- const formGroup = this.formBuilder.group({
12
- settingValues: this.formBuilder.array(settingValuesModel.settingValues.map(sv => {
13
- return this.createSettingValueFormGroup(sv, settingValuesModel.readOnly);
14
- })),
15
- // Decorator
16
- environment: this.formBuilder.group({
17
- environmentId: [{ value: settingValuesModel.environment.environmentId, disabled: true }],
18
- name: [{ value: settingValuesModel.environment.name, disabled: true }],
19
- }),
20
- comparisonAttributes: [[]],
21
- allRolloutRulesCount: [0]
22
- });
23
- const rolloutRules = this.getAllRolloutRules(formGroup);
24
- const comparisonAttributes = this.getComparisonAttributes(rolloutRules);
25
- formGroup.patchValue({ allRolloutRulesCount: rolloutRules.length });
26
- formGroup.patchValue({ comparisonAttributes: comparisonAttributes });
27
- return formGroup;
28
- }
29
- createSettingValueFormGroup(settingValueModel, readOnly) {
30
- return this.formBuilder.group({
31
- settingId: [settingValueModel.setting.settingId],
32
- value: [
33
- { value: settingValueModel.value, disabled: readOnly },
34
- this.getValidatorsForSettingType(settingValueModel.setting.settingType)
35
- ],
36
- rolloutPercentageItems: this.formBuilder.array(settingValueModel.rolloutPercentageItems.map(p => {
37
- return this.createRolloutPercentageItemFormGroup(p, readOnly, settingValueModel.setting.settingType);
38
- })),
39
- rolloutRules: this.formBuilder.array(settingValueModel.rolloutRules.map(r => {
40
- return this.createRolloutRuleFormGroup(r, readOnly, settingValueModel.setting.settingType);
41
- })),
42
- updatedAt: [{ value: settingValueModel.updatedAt, disabled: true }],
43
- lastUpdaterUserEmail: [{ value: settingValueModel.lastUpdaterUserEmail, disabled: true }],
44
- lastUpdaterUserFullName: [{ value: settingValueModel.lastUpdaterUserFullName, disabled: true }],
45
- rolloutPercentageItemsSum: [{ value: 100, disabled: false }, [Validators.min(100), Validators.max(100)]],
46
- // Decoration
47
- setting: this.formBuilder.group({
48
- settingId: [{ value: settingValueModel.setting.settingId, disabled: true }],
49
- key: [{ value: settingValueModel.setting.key, disabled: true }],
50
- name: [{ value: settingValueModel.setting.name, disabled: true }],
51
- hint: [{ value: settingValueModel.setting.hint, disabled: true }],
52
- settingType: [{ value: settingValueModel.setting.settingType, disabled: true }],
53
- creatorEmail: [{ value: settingValueModel.setting.creatorEmail, disabled: true }],
54
- creatorFullName: [{ value: settingValueModel.setting.creatorFullName, disabled: true }],
55
- createdAt: [{ value: settingValueModel.setting.createdAt, disabled: true }]
56
- }),
57
- integrationLinks: this.formBuilder.array(settingValueModel.integrationLinks.map(il => {
58
- return this.formBuilder.group({
59
- key: [{ value: il.key, disabled: true }],
60
- description: [{ value: il.description, disabled: true }],
61
- integrationLinkType: [{ value: il.integrationLinkType, disabled: true }],
62
- url: [{ value: il.url, disabled: true }],
63
- });
64
- }))
65
- });
66
- }
67
- createRolloutPercentageItemFormGroup(p, readOnly, settingType) {
68
- return this.formBuilder.group({
69
- percentage: [{ value: p.percentage, disabled: readOnly }, [Validators.required, Validators.min(0), Validators.max(100)]],
70
- value: [
71
- { value: p.value, disabled: readOnly },
72
- [].concat(...[Validators.required, this.getValidatorsForSettingType(settingType)])
73
- ],
74
- valueDisabled: [
75
- { value: p.value, disabled: true }, // For percentage item value
76
- ]
77
- });
78
- }
79
- createRolloutRuleFormGroup(r, readOnly, settingType) {
80
- return this.formBuilder.group({
81
- comparisonAttribute: [{ value: r.comparisonAttribute, disabled: readOnly }, [Validators.required]],
82
- comparator: [{ value: r.comparator, disabled: readOnly }, [Validators.required]],
83
- comparisonValue: [{ value: r.comparisonValue, disabled: readOnly }, [Validators.required]],
84
- value: [
85
- { value: r.value, disabled: readOnly },
86
- this.getValidatorsForSettingType(settingType)
87
- ],
88
- });
89
- }
90
- getValidatorsForSettingType(settingType) {
91
- switch (settingType) {
92
- case SettingType.Int:
93
- return [Validators.required,
94
- Validators.min(-2147483648), Validators.max(2147483647), Validators.pattern('^[-+]?[0-9]\\d*$')];
95
- case SettingType.Double:
96
- return [Validators.required, Validators.min(-1.79769313486232E+308), Validators.max(1.79769313486232E+308)];
97
- case SettingType.String:
98
- case SettingType.Boolean:
99
- return [Validators.required];
100
- default:
101
- return [];
102
- }
103
- }
104
- getAllRolloutRules(formGroup) {
105
- const settingValues = formGroup.get('settingValues');
106
- const rolloutRules = settingValues.controls.map(cv => cv.get('rolloutRules').value);
107
- return rolloutRules.length === 0 ? rolloutRules : rolloutRules.reduce((a, b) => a.concat(b));
108
- }
109
- getComparisonAttributes(rolloutRules) {
110
- if (rolloutRules.length > 0) {
111
- const currentComparisonAttributes = rolloutRules.map(r => r.comparisonAttribute);
112
- const defaultComparisonAttributes = ['Identifier', 'Email', 'Country'];
113
- const comparisonAttributes = currentComparisonAttributes.filter(c => defaultComparisonAttributes.indexOf(c) === -1);
114
- return Array.from(new Set(comparisonAttributes));
115
- }
116
- else {
117
- return [];
118
- }
119
- }
120
- }
121
- SettingListFormHelper.ɵprov = i0.ɵɵdefineInjectable({ factory: function SettingListFormHelper_Factory() { return new SettingListFormHelper(i0.ɵɵinject(i1.FormBuilder)); }, token: SettingListFormHelper, providedIn: "root" });
122
- SettingListFormHelper.decorators = [
123
- { type: Injectable, args: [{ providedIn: 'root' },] }
124
- ];
125
- SettingListFormHelper.ctorParameters = () => [
126
- { type: FormBuilder }
127
- ];
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1saXN0LWZvcm0taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL19zZXJ2aWNlcy9zZXR0aW5nLWxpc3QtZm9ybS1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQWdELFdBQVcsRUFBcUIsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBR3RILE1BQU0sT0FBTyxxQkFBcUI7SUFFOUIsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFBSSxDQUFDO0lBRWpELDRCQUE0QixDQUFDLGtCQUFzQztRQUMvRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNyQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQ2pDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQ3RDLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3RSxDQUFDLENBQUMsQ0FBQztZQUVQLFlBQVk7WUFDWixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7Z0JBQ2hDLGFBQWEsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUN4RixJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLFFB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bnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTZXR0aW5nVmFsdWVzTW9kZWwgfSBmcm9tICcuLi9fbW9kZWxzL3NldHRpbmdWYWx1ZXNNb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzLCBGb3JtR3JvdXAsIEZvcm1BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm9sbG91dFBlcmNlbnRhZ2VJdGVtTW9kZWwsIFJvbGxvdXRSdWxlTW9kZWwsIFNldHRpbmdUeXBlLCBTZXR0aW5nVmFsdWVNb2RlbCB9IGZyb20gJ25nLWNvbmZpZ2NhdC1wdWJsaWNhcGknO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFNldHRpbmdMaXN0Rm9ybUhlbHBlciB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHsgfVxyXG5cclxuICAgIGNyZWF0ZVNldHRpbmdWYWx1ZXNGb3JtR3JvdXAoc2V0dGluZ1ZhbHVlc01vZGVsOiBTZXR0aW5nVmFsdWVzTW9kZWwpIHtcclxuICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgc2V0dGluZ1ZhbHVlczogdGhpcy5mb3JtQnVpbGRlci5hcnJheShcclxuICAgICAgICAgICAgICAgIHNldHRpbmdWYWx1ZXNNb2RlbC5zZXR0aW5nVmFsdWVzLm1hcChzdiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlU2V0dGluZ1ZhbHVlRm9ybUdyb3VwKHN2LCBzZXR0aW5nVmFsdWVzTW9kZWwucmVhZE9ubHkpO1xyXG4gICAgICAgICAgICAgICAgfSkpLFxyXG5cclxuICAgICAgICAgICAgLy8gRGVjb3JhdG9yXHJcbiAgICAgICAgICAgIGVudmlyb25tZW50OiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgICAgIGVudmlyb25tZW50SWQ6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVzTW9kZWwuZW52aXJvbm1lbnQuZW52aXJvbm1lbnRJZCwgZGlzYWJsZWQ6IHRydWUgfV0sXHJcbiAgICAgICAgICAgICAgICBuYW1lOiBbeyB2YWx1ZTogc2V0dGluZ1ZhbHVlc01vZGVsLmVudmlyb25tZW50Lm5hbWUsIGRpc2FibGVkOiB0cnVlIH1dLFxyXG4gICAgICAgICAgICB9KSxcclxuXHJcbiAgICAgICAgICAgIGNvbXBhcmlzb25BdHRyaWJ1dGVzOiBbW11dLFxyXG4gICAgICAgICAgICBhbGxSb2xsb3V0UnVsZXNDb3VudDogWzBdXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHJvbGxvdXRSdWxlcyA9IHRoaXMuZ2V0QWxsUm9sbG91dFJ1bGVzKGZvcm1Hcm91cCk7XHJcbiAgICAgICAgY29uc3QgY29tcGFyaXNvbkF0dHJpYnV0ZXMgPSB0aGlzLmdldENvbXBhcmlzb25BdHRyaWJ1dGVzKHJvbGxvdXRSdWxlcyk7XHJcbiAgICAgICAgZm9ybUdyb3VwLnBhdGNoVmFsdWUoeyBhbGxSb2xsb3V0UnVsZXNDb3VudDogcm9sbG91dFJ1bGVzLmxlbmd0aCB9KTtcclxuICAgICAgICBmb3JtR3JvdXAucGF0Y2hWYWx1ZSh7IGNvbXBhcmlzb25BdHRyaWJ1dGVzOiBjb21wYXJpc29uQXR0cmlidXRlcyB9KTtcclxuICAgICAgICByZXR1cm4gZm9ybUdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVNldHRpbmdWYWx1ZUZvcm1Hcm91cChzZXR0aW5nVmFsdWVNb2RlbDogU2V0dGluZ1ZhbHVlTW9kZWwsIHJlYWRPbmx5OiBib29sZWFuKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAgICAgICBzZXR0aW5nSWQ6IFtzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLnNldHRpbmdJZF0sXHJcbiAgICAgICAgICAgIHZhbHVlOiBbXHJcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiBzZXR0aW5nVmFsdWVNb2RlbC52YWx1ZSwgZGlzYWJsZWQ6IHJlYWRPbmx5IH0sXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldFZhbGlkYXRvcnNGb3JTZXR0aW5nVHlwZShzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLnNldHRpbmdUeXBlKVxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICByb2xsb3V0UGVyY2VudGFnZUl0ZW1zOiB0aGlzLmZvcm1CdWlsZGVyLmFycmF5KHNldHRpbmdWYWx1ZU1vZGVsLnJvbGxvdXRQZXJjZW50YWdlSXRlbXMubWFwKHAgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlUm9sbG91dFBlcmNlbnRhZ2VJdGVtRm9ybUdyb3VwKHAsIHJlYWRPbmx5LCBzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLnNldHRpbmdUeXBlKTtcclxuICAgICAgICAgICAgfSkpLFxyXG4gICAgICAgICAgICByb2xsb3V0UnVsZXM6IHRoaXMuZm9ybUJ1aWxkZXIuYXJyYXkoc2V0dGluZ1ZhbHVlTW9kZWwucm9sbG91dFJ1bGVzLm1hcChyID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVJvbGxvdXRSdWxlRm9ybUdyb3VwKHIsIHJlYWRPbmx5LCBzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLnNldHRpbmdUeXBlKTtcclxuICAgICAgICAgICAgfSkpLFxyXG5cclxuICAgICAgICAgICAgdXBkYXRlZEF0OiBbeyB2YWx1ZTogc2V0dGluZ1ZhbHVlTW9kZWwudXBkYXRlZEF0LCBkaXNhYmxlZDogdHJ1ZX1dLFxyXG4gICAgICAgICAgICBsYXN0VXBkYXRlclVzZXJFbWFpbDogW3sgdmFsdWU6IHNldHRpbmdWYWx1ZU1vZGVsLmxhc3RVcGRhdGVyVXNlckVtYWlsLCBkaXNhYmxlZDogdHJ1ZSB9XSxcclxuICAgICAgICAgICAgbGFzdFVwZGF0ZXJVc2VyRnVsbE5hbWU6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVNb2RlbC5sYXN0VXBkYXRlclVzZXJGdWxsTmFtZSwgZGlzYWJsZWQ6IHRydWUgfV0sXHJcblxyXG4gICAgICAgICAgICByb2xsb3V0UGVyY2VudGFnZUl0ZW1zU3VtOiBbeyB2YWx1ZTogMTAwLCBkaXNhYmxlZDogZmFsc2UgfSwgW1ZhbGlkYXRvcnMubWluKDEwMCksIFZhbGlkYXRvcnMubWF4KDEwMCldXSxcclxuICAgICAgICAgICAgLy8gRGVjb3JhdGlvblxyXG4gICAgICAgICAgICBzZXR0aW5nOiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgICAgIHNldHRpbmdJZDogW3sgdmFsdWU6IHNldHRpbmdWYWx1ZU1vZGVsLnNldHRpbmcuc2V0dGluZ0lkLCBkaXNhYmxlZDogdHJ1ZSB9XSxcclxuICAgICAgICAgICAgICAgIGtleTogW3sgdmFsdWU6IHNldHRpbmdWYWx1ZU1vZGVsLnNldHRpbmcua2V5LCBkaXNhYmxlZDogdHJ1ZSB9XSxcclxuICAgICAgICAgICAgICAgIG5hbWU6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLm5hbWUsIGRpc2FibGVkOiB0cnVlIH1dLFxyXG4gICAgICAgICAgICAgICAgaGludDogW3sgdmFsdWU6IHNldHRpbmdWYWx1ZU1vZGVsLnNldHRpbmcuaGludCwgZGlzYWJsZWQ6IHRydWUgfV0sXHJcbiAgICAgICAgICAgICAgICBzZXR0aW5nVHlwZTogW3sgdmFsdWU6IHNldHRpbmdWYWx1ZU1vZGVsLnNldHRpbmcuc2V0dGluZ1R5cGUsIGRpc2FibGVkOiB0cnVlIH1dLFxyXG4gICAgICAgICAgICAgICAgY3JlYXRvckVtYWlsOiBbeyB2YWx1ZTogc2V0dGluZ1ZhbHVlTW9kZWwuc2V0dGluZy5jcmVhdG9yRW1haWwsIGRpc2FibGVkOiB0cnVlIH1dLFxyXG4gICAgICAgICAgICAgICAgY3JlYXRvckZ1bGxOYW1lOiBbeyB2YWx1ZTogc2V0dGluZ1ZhbHVlTW9kZWwuc2V0dGluZy5jcmVhdG9yRnVsbE5hbWUsIGRpc2FibGVkOiB0cnVlIH1dLFxyXG4gICAgICAgICAgICAgICAgY3JlYXRlZEF0OiBbeyB2YWx1ZTogc2V0dGluZ1ZhbHVlTW9kZWwuc2V0dGluZy5jcmVhdGVkQXQsIGRpc2FibGVkOiB0cnVlIH1dXHJcbiAgICAgICAgICAgIH0pLFxyXG5cclxuICAgICAgICAgICAgaW50ZWdyYXRpb25MaW5rczogdGhpcy5mb3JtQnVpbGRlci5hcnJheShzZXR0aW5nVmFsdWVNb2RlbC5pbnRlZ3JhdGlvbkxpbmtzLm1hcChpbCA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICAgICAgICAgICAgICAga2V5OiBbeyB2YWx1ZTogaWwua2V5LCBkaXNhYmxlZDogdHJ1ZSB9XSxcclxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogW3sgdmFsdWU6IGlsLmRlc2NyaXB0aW9uLCBkaXNhYmxlZDogdHJ1ZSB9XSxcclxuICAgICAgICAgICAgICAgICAgICBpbnRlZ3JhdGlvbkxpbmtUeXBlOiBbeyB2YWx1ZTogaWwuaW50ZWdyYXRpb25MaW5rVHlwZSwgZGlzYWJsZWQ6IHRydWUgfV0sXHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBbeyB2YWx1ZTogaWwudXJsLCBkaXNhYmxlZDogdHJ1ZSB9XSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVSb2xsb3V0UGVyY2VudGFnZUl0ZW1Gb3JtR3JvdXAocDogUm9sbG91dFBlcmNlbnRhZ2VJdGVtTW9kZWwsIHJlYWRPbmx5OiBib29sZWFuLCBzZXR0aW5nVHlwZTogU2V0dGluZ1R5cGUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICAgICAgIHBlcmNlbnRhZ2U6IFt7IHZhbHVlOiBwLnBlcmNlbnRhZ2UsIGRpc2FibGVkOiByZWFkT25seSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KDEwMCldXSxcclxuICAgICAgICAgICAgdmFsdWU6IFtcclxuICAgICAgICAgICAgICAgIHsgdmFsdWU6IHAudmFsdWUsIGRpc2FibGVkOiByZWFkT25seSB9LFxyXG5cclxuICAgICAgICAgICAgICAgIFtdLmNvbmNhdCguLi5bVmFsaWRhdG9ycy5yZXF1aXJlZCwgdGhpcy5nZXRWYWxpZGF0b3JzRm9yU2V0dGluZ1R5cGUoc2V0dGluZ1R5cGUpXSlcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgdmFsdWVEaXNhYmxlZDogW1xyXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogcC52YWx1ZSwgZGlzYWJsZWQ6IHRydWUgfSwgLy8gRm9yIHBlcmNlbnRhZ2UgaXRlbSB2YWx1ZVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlUm9sbG91dFJ1bGVGb3JtR3JvdXAocjogUm9sbG91dFJ1bGVNb2RlbCwgcmVhZE9ubHk6IGJvb2xlYW4sIHNldHRpbmdUeXBlOiBTZXR0aW5nVHlwZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgY29tcGFyaXNvbkF0dHJpYnV0ZTogW3sgdmFsdWU6IHIuY29tcGFyaXNvbkF0dHJpYnV0ZSwgZGlzYWJsZWQ6IHJlYWRPbmx5IH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgICAgIGNvbXBhcmF0b3I6IFt7IHZhbHVlOiByLmNvbXBhcmF0b3IsIGRpc2FibGVkOiByZWFkT25seSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgICAgICBjb21wYXJpc29uVmFsdWU6IFt7IHZhbHVlOiByLmNvbXBhcmlzb25WYWx1ZSwgZGlzYWJsZWQ6IHJlYWRPbmx5IH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgICAgIHZhbHVlOiBbXHJcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiByLnZhbHVlLCBkaXNhYmxlZDogcmVhZE9ubHkgfSxcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0VmFsaWRhdG9yc0ZvclNldHRpbmdUeXBlKHNldHRpbmdUeXBlKVxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0VmFsaWRhdG9yc0ZvclNldHRpbmdUeXBlKHNldHRpbmdUeXBlOiBTZXR0aW5nVHlwZSkge1xyXG4gICAgICAgIHN3aXRjaCAoc2V0dGluZ1R5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSBTZXR0aW5nVHlwZS5JbnQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gW1ZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLm1pbigtMjE0NzQ4MzY0OCksIFZhbGlkYXRvcnMubWF4KDIxNDc0ODM2NDcpLCBWYWxpZGF0b3JzLnBhdHRlcm4oJ15bLStdP1swLTldXFxcXGQqJCcpXTtcclxuICAgICAgICAgICAgY2FzZSBTZXR0aW5nVHlwZS5Eb3VibGU6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluKC0xLjc5NzY5MzEzNDg2MjMyRSszMDgpLCBWYWxpZGF0b3JzLm1heCgxLjc5NzY5MzEzNDg2MjMyRSszMDgpXTtcclxuICAgICAgICAgICAgY2FzZSBTZXR0aW5nVHlwZS5TdHJpbmc6XHJcbiAgICAgICAgICAgIGNhc2UgU2V0dGluZ1R5cGUuQm9vbGVhbjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBbVmFsaWRhdG9ycy5yZXF1aXJlZF07XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0QWxsUm9sbG91dFJ1bGVzKGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XHJcbiAgICAgICAgY29uc3Qgc2V0dGluZ1ZhbHVlcyA9IGZvcm1Hcm91cC5nZXQoJ3NldHRpbmdWYWx1ZXMnKSBhcyBGb3JtQXJyYXk7XHJcbiAgICAgICAgY29uc3Qgcm9sbG91dFJ1bGVzID0gc2V0dGluZ1ZhbHVlcy5jb250cm9scy5tYXAoY3YgPT4gKGN2LmdldCgncm9sbG91dFJ1bGVzJykgYXMgRm9ybUFycmF5KS52YWx1ZSk7XHJcbiAgICAgICAgcmV0dXJuIHJvbGxvdXRSdWxlcy5sZW5ndGggPT09IDAgPyByb2xsb3V0UnVsZXMgOiByb2xsb3V0UnVsZXMucmVkdWNlKChhLCBiKSA9PiBhLmNvbmNhdChiKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRDb21wYXJpc29uQXR0cmlidXRlcyhyb2xsb3V0UnVsZXM6IGFueVtdKSB7XHJcbiAgICAgICAgaWYgKHJvbGxvdXRSdWxlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRDb21wYXJpc29uQXR0cmlidXRlcyA9IHJvbGxvdXRSdWxlcy5tYXAociA9PiByLmNvbXBhcmlzb25BdHRyaWJ1dGUpO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZGVmYXVsdENvbXBhcmlzb25BdHRyaWJ1dGVzID0gWydJZGVudGlmaWVyJywgJ0VtYWlsJywgJ0NvdW50cnknXTtcclxuICAgICAgICAgICAgY29uc3QgY29tcGFyaXNvbkF0dHJpYnV0ZXMgPSBjdXJyZW50Q29tcGFyaXNvbkF0dHJpYnV0ZXMuZmlsdGVyKGMgPT4gZGVmYXVsdENvbXBhcmlzb25BdHRyaWJ1dGVzLmluZGV4T2YoYykgPT09IC0xKTtcclxuICAgICAgICAgICAgcmV0dXJuIEFycmF5LmZyb20obmV3IFNldChjb21wYXJpc29uQXR0cmlidXRlcykpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
1
+ import { Injectable } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
3
+ import { SettingType } from 'ng-configcat-publicapi';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ export class SettingListFormHelper {
7
+ constructor(formBuilder) {
8
+ this.formBuilder = formBuilder;
9
+ }
10
+ createSettingValuesFormGroup(settingValuesModel) {
11
+ const formGroup = this.formBuilder.group({
12
+ settingValues: this.formBuilder.array(settingValuesModel.settingValues.map(sv => {
13
+ return this.createSettingValueFormGroup(sv, settingValuesModel.readOnly);
14
+ })),
15
+ // Decorator
16
+ environment: this.formBuilder.group({
17
+ environmentId: [{ value: settingValuesModel.environment.environmentId, disabled: true }],
18
+ name: [{ value: settingValuesModel.environment.name, disabled: true }],
19
+ }),
20
+ comparisonAttributes: [[]],
21
+ allRolloutRulesCount: [0]
22
+ });
23
+ const rolloutRules = this.getAllRolloutRules(formGroup);
24
+ const comparisonAttributes = this.getComparisonAttributes(rolloutRules);
25
+ formGroup.patchValue({ allRolloutRulesCount: rolloutRules.length });
26
+ formGroup.patchValue({ comparisonAttributes: comparisonAttributes });
27
+ return formGroup;
28
+ }
29
+ createSettingValueFormGroup(settingValueModel, readOnly) {
30
+ if (!settingValueModel.setting) {
31
+ return this.formBuilder.group({});
32
+ }
33
+ return this.formBuilder.group({
34
+ settingId: [settingValueModel.setting.settingId],
35
+ value: [
36
+ { value: settingValueModel.value, disabled: readOnly },
37
+ this.getValidatorsForSettingType(settingValueModel.setting.settingType)
38
+ ],
39
+ rolloutPercentageItems: settingValueModel.rolloutPercentageItems
40
+ ? this.formBuilder.array(settingValueModel.rolloutPercentageItems.map(p => {
41
+ // @ts-ignore()
42
+ return this.createRolloutPercentageItemFormGroup(p, readOnly, settingValueModel.setting.settingType);
43
+ }))
44
+ : this.formBuilder.array([]), rolloutRules: settingValueModel.rolloutRules
45
+ ? this.formBuilder.array(settingValueModel.rolloutRules.map(r => {
46
+ // @ts-ignore()
47
+ return this.createRolloutRuleFormGroup(r, readOnly, settingValueModel.setting.settingType);
48
+ }))
49
+ : this.formBuilder.array([]),
50
+ updatedAt: [{ value: settingValueModel.updatedAt, disabled: true }],
51
+ lastUpdaterUserEmail: [{ value: settingValueModel.lastUpdaterUserEmail, disabled: true }],
52
+ lastUpdaterUserFullName: [{ value: settingValueModel.lastUpdaterUserFullName, disabled: true }],
53
+ rolloutPercentageItemsSum: [{ value: 100, disabled: false }, [Validators.min(100), Validators.max(100)]],
54
+ // Decoration
55
+ setting: this.formBuilder.group({
56
+ settingId: [{ value: settingValueModel.setting.settingId, disabled: true }],
57
+ key: [{ value: settingValueModel.setting.key, disabled: true }],
58
+ name: [{ value: settingValueModel.setting.name, disabled: true }],
59
+ hint: [{ value: settingValueModel.setting.hint, disabled: true }],
60
+ settingType: [{ value: settingValueModel.setting.settingType, disabled: true }],
61
+ creatorEmail: [{ value: settingValueModel.setting.creatorEmail, disabled: true }],
62
+ creatorFullName: [{ value: settingValueModel.setting.creatorFullName, disabled: true }],
63
+ createdAt: [{ value: settingValueModel.setting.createdAt, disabled: true }]
64
+ }),
65
+ integrationLinks: settingValueModel.integrationLinks ? this.formBuilder.array(settingValueModel.integrationLinks.map(il => {
66
+ return this.formBuilder.group({
67
+ key: [{ value: il.key, disabled: true }],
68
+ description: [{ value: il.description, disabled: true }],
69
+ integrationLinkType: [{ value: il.integrationLinkType, disabled: true }],
70
+ url: [{ value: il.url, disabled: true }],
71
+ });
72
+ })) : this.formBuilder.array([])
73
+ });
74
+ }
75
+ createRolloutPercentageItemFormGroup(p, readOnly, settingType) {
76
+ return this.formBuilder.group({
77
+ percentage: [{ value: p.percentage, disabled: readOnly }, [Validators.required, Validators.min(0), Validators.max(100)]],
78
+ value: [
79
+ { value: p.value, disabled: readOnly },
80
+ this.getValidatorsForSettingType(settingType)
81
+ ],
82
+ valueDisabled: [
83
+ { value: p.value, disabled: true }, // For percentage item value
84
+ ]
85
+ });
86
+ }
87
+ createRolloutRuleFormGroup(r, readOnly, settingType) {
88
+ return this.formBuilder.group({
89
+ comparisonAttribute: [{ value: r.comparisonAttribute, disabled: readOnly }, [Validators.required]],
90
+ comparator: [{ value: r.comparator, disabled: readOnly }, [Validators.required]],
91
+ comparisonValue: [{ value: r.comparisonValue, disabled: readOnly }, [Validators.required]],
92
+ value: [
93
+ { value: r.value, disabled: readOnly },
94
+ this.getValidatorsForSettingType(settingType)
95
+ ],
96
+ });
97
+ }
98
+ getValidatorsForSettingType(settingType) {
99
+ switch (settingType) {
100
+ case SettingType.Int:
101
+ return [Validators.required,
102
+ Validators.min(-2147483648), Validators.max(2147483647), Validators.pattern('^[-+]?[0-9]\\d*$')];
103
+ case SettingType.Double:
104
+ return [Validators.required, Validators.min(-1.79769313486232E+308), Validators.max(1.79769313486232E+308)];
105
+ case SettingType.String:
106
+ case SettingType.Boolean:
107
+ return [Validators.required];
108
+ default:
109
+ return [];
110
+ }
111
+ }
112
+ getAllRolloutRules(formGroup) {
113
+ const settingValues = formGroup.get('settingValues');
114
+ const rolloutRules = settingValues.controls.map(cv => cv.get('rolloutRules').value);
115
+ return rolloutRules.length === 0 ? rolloutRules : rolloutRules.reduce((a, b) => a.concat(b));
116
+ }
117
+ getComparisonAttributes(rolloutRules) {
118
+ if (rolloutRules.length > 0) {
119
+ const currentComparisonAttributes = rolloutRules.map(r => r.comparisonAttribute);
120
+ const defaultComparisonAttributes = ['Identifier', 'Email', 'Country'];
121
+ const comparisonAttributes = currentComparisonAttributes.filter(c => defaultComparisonAttributes.indexOf(c) === -1);
122
+ return Array.from(new Set(comparisonAttributes));
123
+ }
124
+ else {
125
+ return [];
126
+ }
127
+ }
128
+ }
129
+ SettingListFormHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: SettingListFormHelper, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Injectable });
130
+ SettingListFormHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: SettingListFormHelper, providedIn: 'root' });
131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: SettingListFormHelper, decorators: [{
132
+ type: Injectable,
133
+ args: [{ providedIn: 'root' }]
134
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }]; } });
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1saXN0LWZvcm0taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL19zZXJ2aWNlcy9zZXR0aW5nLWxpc3QtZm9ybS1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWUsVUFBVSxFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBZ0QsV0FBVyxFQUFxQixNQUFNLHdCQUF3QixDQUFDOzs7QUFHdEgsTUFBTSxPQUFPLHFCQUFxQjtJQUU5QixZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFJLENBQUM7SUFFakQsNEJBQTRCLENBQUMsa0JBQXNDO1FBQy9ELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3JDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FDakMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDdEMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsRUFBRSxFQUFFLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdFLENBQUMsQ0FBQyxDQUFDO1lBRVAsWUFBWTtZQUNaLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztnQkFDaEMsYUFBYSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQ3hGLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElB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TyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZFLE1BQU0sb0JBQW9CLEdBQUcsMkJBQTJCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEgsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztTQUNwRDthQUFNO1lBQ0gsT0FBTyxFQUFFLENBQUM7U0FDYjtJQUNMLENBQUM7O21IQXZJUSxxQkFBcUI7dUhBQXJCLHFCQUFxQixjQURSLE1BQU07NEZBQ25CLHFCQUFxQjtrQkFEakMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZXR0aW5nVmFsdWVzTW9kZWwgfSBmcm9tICcuLi9fbW9kZWxzL3NldHRpbmdWYWx1ZXNNb2RlbCc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycywgRm9ybUdyb3VwLCBGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb2xsb3V0UGVyY2VudGFnZUl0ZW1Nb2RlbCwgUm9sbG91dFJ1bGVNb2RlbCwgU2V0dGluZ1R5cGUsIFNldHRpbmdWYWx1ZU1vZGVsIH0gZnJvbSAnbmctY29uZmlnY2F0LXB1YmxpY2FwaSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ0xpc3RGb3JtSGVscGVyIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7IH1cblxuICAgIGNyZWF0ZVNldHRpbmdWYWx1ZXNGb3JtR3JvdXAoc2V0dGluZ1ZhbHVlc01vZGVsOiBTZXR0aW5nVmFsdWVzTW9kZWwpIHtcbiAgICAgICAgY29uc3QgZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBzZXR0aW5nVmFsdWVzOiB0aGlzLmZvcm1CdWlsZGVyLmFycmF5KFxuICAgICAgICAgICAgICAgIHNldHRpbmdWYWx1ZXNNb2RlbC5zZXR0aW5nVmFsdWVzLm1hcChzdiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNldHRpbmdWYWx1ZUZvcm1Hcm91cChzdiwgc2V0dGluZ1ZhbHVlc01vZGVsLnJlYWRPbmx5KTtcbiAgICAgICAgICAgICAgICB9KSksXG5cbiAgICAgICAgICAgIC8vIERlY29yYXRvclxuICAgICAgICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgIGVudmlyb25tZW50SWQ6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVzTW9kZWwuZW52aXJvbm1lbnQuZW52aXJvbm1lbnRJZCwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICAgICAgbmFtZTogW3sgdmFsdWU6IHNldHRpbmdWYWx1ZXNNb2RlbC5lbnZpcm9ubWVudC5uYW1lLCBkaXNhYmxlZDogdHJ1ZSB9XSxcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICBjb21wYXJpc29uQXR0cmlidXRlczogW1tdXSxcbiAgICAgICAgICAgIGFsbFJvbGxvdXRSdWxlc0NvdW50OiBbMF1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgcm9sbG91dFJ1bGVzID0gdGhpcy5nZXRBbGxSb2xsb3V0UnVsZXMoZm9ybUdyb3VwKTtcbiAgICAgICAgY29uc3QgY29tcGFyaXNvbkF0dHJpYnV0ZXMgPSB0aGlzLmdldENvbXBhcmlzb25BdHRyaWJ1dGVzKHJvbGxvdXRSdWxlcyk7XG4gICAgICAgIGZvcm1Hcm91cC5wYXRjaFZhbHVlKHsgYWxsUm9sbG91dFJ1bGVzQ291bnQ6IHJvbGxvdXRSdWxlcy5sZW5ndGggfSk7XG4gICAgICAgIGZvcm1Hcm91cC5wYXRjaFZhbHVlKHsgY29tcGFyaXNvbkF0dHJpYnV0ZXM6IGNvbXBhcmlzb25BdHRyaWJ1dGVzIH0pO1xuICAgICAgICByZXR1cm4gZm9ybUdyb3VwO1xuICAgIH1cblxuICAgIFxuICAgIGNyZWF0ZVNldHRpbmdWYWx1ZUZvcm1Hcm91cChzZXR0aW5nVmFsdWVNb2RlbDogU2V0dGluZ1ZhbHVlTW9kZWwsIHJlYWRPbmx5OiBib29sZWFuKSB7XG4gICAgICAgIGlmICghc2V0dGluZ1ZhbHVlTW9kZWwuc2V0dGluZykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe30pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIHNldHRpbmdJZDogW3NldHRpbmdWYWx1ZU1vZGVsLnNldHRpbmcuc2V0dGluZ0lkXSxcbiAgICAgICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogc2V0dGluZ1ZhbHVlTW9kZWwudmFsdWUsIGRpc2FibGVkOiByZWFkT25seSB9LFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0VmFsaWRhdG9yc0ZvclNldHRpbmdUeXBlKHNldHRpbmdWYWx1ZU1vZGVsLnNldHRpbmcuc2V0dGluZ1R5cGUpXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgcm9sbG91dFBlcmNlbnRhZ2VJdGVtczogc2V0dGluZ1ZhbHVlTW9kZWwucm9sbG91dFBlcmNlbnRhZ2VJdGVtc1xuICAgICAgICAgICAgICAgID8gdGhpcy5mb3JtQnVpbGRlci5hcnJheShzZXR0aW5nVmFsdWVNb2RlbC5yb2xsb3V0UGVyY2VudGFnZUl0ZW1zLm1hcChwID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSgpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVJvbGxvdXRQZXJjZW50YWdlSXRlbUZvcm1Hcm91cChwLCByZWFkT25seSwgc2V0dGluZ1ZhbHVlTW9kZWwuc2V0dGluZy5zZXR0aW5nVHlwZSk7XG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgOiB0aGlzLmZvcm1CdWlsZGVyLmFycmF5KFtdKSwgcm9sbG91dFJ1bGVzOiBzZXR0aW5nVmFsdWVNb2RlbC5yb2xsb3V0UnVsZXNcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmZvcm1CdWlsZGVyLmFycmF5KHNldHRpbmdWYWx1ZU1vZGVsLnJvbGxvdXRSdWxlcy5tYXAociA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlKClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVJvbGxvdXRSdWxlRm9ybUdyb3VwKHIsIHJlYWRPbmx5LCBzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLnNldHRpbmdUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5mb3JtQnVpbGRlci5hcnJheShbXSksXG5cbiAgICAgICAgICAgIHVwZGF0ZWRBdDogW3sgdmFsdWU6IHNldHRpbmdWYWx1ZU1vZGVsLnVwZGF0ZWRBdCwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICBsYXN0VXBkYXRlclVzZXJFbWFpbDogW3sgdmFsdWU6IHNldHRpbmdWYWx1ZU1vZGVsLmxhc3RVcGRhdGVyVXNlckVtYWlsLCBkaXNhYmxlZDogdHJ1ZSB9XSxcbiAgICAgICAgICAgIGxhc3RVcGRhdGVyVXNlckZ1bGxOYW1lOiBbeyB2YWx1ZTogc2V0dGluZ1ZhbHVlTW9kZWwubGFzdFVwZGF0ZXJVc2VyRnVsbE5hbWUsIGRpc2FibGVkOiB0cnVlIH1dLFxuXG4gICAgICAgICAgICByb2xsb3V0UGVyY2VudGFnZUl0ZW1zU3VtOiBbeyB2YWx1ZTogMTAwLCBkaXNhYmxlZDogZmFsc2UgfSwgW1ZhbGlkYXRvcnMubWluKDEwMCksIFZhbGlkYXRvcnMubWF4KDEwMCldXSxcbiAgICAgICAgICAgIC8vIERlY29yYXRpb25cbiAgICAgICAgICAgIHNldHRpbmc6IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgIHNldHRpbmdJZDogW3sgdmFsdWU6IHNldHRpbmdWYWx1ZU1vZGVsLnNldHRpbmcuc2V0dGluZ0lkLCBkaXNhYmxlZDogdHJ1ZSB9XSxcbiAgICAgICAgICAgICAgICBrZXk6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLmtleSwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICAgICAgbmFtZTogW3sgdmFsdWU6IHNldHRpbmdWYWx1ZU1vZGVsLnNldHRpbmcubmFtZSwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICAgICAgaGludDogW3sgdmFsdWU6IHNldHRpbmdWYWx1ZU1vZGVsLnNldHRpbmcuaGludCwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICAgICAgc2V0dGluZ1R5cGU6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLnNldHRpbmdUeXBlLCBkaXNhYmxlZDogdHJ1ZSB9XSxcbiAgICAgICAgICAgICAgICBjcmVhdG9yRW1haWw6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLmNyZWF0b3JFbWFpbCwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICAgICAgY3JlYXRvckZ1bGxOYW1lOiBbeyB2YWx1ZTogc2V0dGluZ1ZhbHVlTW9kZWwuc2V0dGluZy5jcmVhdG9yRnVsbE5hbWUsIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogW3sgdmFsdWU6IHNldHRpbmdWYWx1ZU1vZGVsLnNldHRpbmcuY3JlYXRlZEF0LCBkaXNhYmxlZDogdHJ1ZSB9XVxuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIGludGVncmF0aW9uTGlua3M6IHNldHRpbmdWYWx1ZU1vZGVsLmludGVncmF0aW9uTGlua3MgPyB0aGlzLmZvcm1CdWlsZGVyLmFycmF5KHNldHRpbmdWYWx1ZU1vZGVsLmludGVncmF0aW9uTGlua3MubWFwKGlsID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICAgICAgICAgIGtleTogW3sgdmFsdWU6IGlsLmtleSwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbeyB2YWx1ZTogaWwuZGVzY3JpcHRpb24sIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgICAgICBpbnRlZ3JhdGlvbkxpbmtUeXBlOiBbeyB2YWx1ZTogaWwuaW50ZWdyYXRpb25MaW5rVHlwZSwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICAgICAgICAgIHVybDogW3sgdmFsdWU6IGlsLnVybCwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KSkgOiB0aGlzLmZvcm1CdWlsZGVyLmFycmF5KFtdKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjcmVhdGVSb2xsb3V0UGVyY2VudGFnZUl0ZW1Gb3JtR3JvdXAocDogUm9sbG91dFBlcmNlbnRhZ2VJdGVtTW9kZWwsIHJlYWRPbmx5OiBib29sZWFuLCBzZXR0aW5nVHlwZTogU2V0dGluZ1R5cGUgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgcGVyY2VudGFnZTogW3sgdmFsdWU6IHAucGVyY2VudGFnZSwgZGlzYWJsZWQ6IHJlYWRPbmx5IH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbigwKSwgVmFsaWRhdG9ycy5tYXgoMTAwKV1dLFxuICAgICAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiBwLnZhbHVlLCBkaXNhYmxlZDogcmVhZE9ubHkgfSxcbiAgICAgICAgICAgICAgICB0aGlzLmdldFZhbGlkYXRvcnNGb3JTZXR0aW5nVHlwZShzZXR0aW5nVHlwZSlcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB2YWx1ZURpc2FibGVkOiBbXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogcC52YWx1ZSwgZGlzYWJsZWQ6IHRydWUgfSwgLy8gRm9yIHBlcmNlbnRhZ2UgaXRlbSB2YWx1ZVxuICAgICAgICAgICAgXVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjcmVhdGVSb2xsb3V0UnVsZUZvcm1Hcm91cChyOiBSb2xsb3V0UnVsZU1vZGVsLCByZWFkT25seTogYm9vbGVhbiwgc2V0dGluZ1R5cGU6IFNldHRpbmdUeXBlIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIGNvbXBhcmlzb25BdHRyaWJ1dGU6IFt7IHZhbHVlOiByLmNvbXBhcmlzb25BdHRyaWJ1dGUsIGRpc2FibGVkOiByZWFkT25seSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgY29tcGFyYXRvcjogW3sgdmFsdWU6IHIuY29tcGFyYXRvciwgZGlzYWJsZWQ6IHJlYWRPbmx5IH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICBjb21wYXJpc29uVmFsdWU6IFt7IHZhbHVlOiByLmNvbXBhcmlzb25WYWx1ZSwgZGlzYWJsZWQ6IHJlYWRPbmx5IH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICB2YWx1ZTogW1xuICAgICAgICAgICAgICAgIHsgdmFsdWU6IHIudmFsdWUsIGRpc2FibGVkOiByZWFkT25seSB9LFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0VmFsaWRhdG9yc0ZvclNldHRpbmdUeXBlKHNldHRpbmdUeXBlKVxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRWYWxpZGF0b3JzRm9yU2V0dGluZ1R5cGUoc2V0dGluZ1R5cGU6IFNldHRpbmdUeXBlIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHN3aXRjaCAoc2V0dGluZ1R5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgU2V0dGluZ1R5cGUuSW50OlxuICAgICAgICAgICAgICAgIHJldHVybiBbVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLm1pbigtMjE0NzQ4MzY0OCksIFZhbGlkYXRvcnMubWF4KDIxNDc0ODM2NDcpLCBWYWxpZGF0b3JzLnBhdHRlcm4oJ15bLStdP1swLTldXFxcXGQqJCcpXTtcbiAgICAgICAgICAgIGNhc2UgU2V0dGluZ1R5cGUuRG91YmxlOlxuICAgICAgICAgICAgICAgIHJldHVybiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW4oLTEuNzk3NjkzMTM0ODYyMzJFKzMwOCksIFZhbGlkYXRvcnMubWF4KDEuNzk3NjkzMTM0ODYyMzJFKzMwOCldO1xuICAgICAgICAgICAgY2FzZSBTZXR0aW5nVHlwZS5TdHJpbmc6XG4gICAgICAgICAgICBjYXNlIFNldHRpbmdUeXBlLkJvb2xlYW46XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtWYWxpZGF0b3JzLnJlcXVpcmVkXTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBbGxSb2xsb3V0UnVsZXMoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcbiAgICAgICAgY29uc3Qgc2V0dGluZ1ZhbHVlcyA9IGZvcm1Hcm91cC5nZXQoJ3NldHRpbmdWYWx1ZXMnKSBhcyBGb3JtQXJyYXk7XG4gICAgICAgIGNvbnN0IHJvbGxvdXRSdWxlcyA9IHNldHRpbmdWYWx1ZXMuY29udHJvbHMubWFwKGN2ID0+IChjdi5nZXQoJ3JvbGxvdXRSdWxlcycpIGFzIEZvcm1BcnJheSkudmFsdWUpO1xuICAgICAgICByZXR1cm4gcm9sbG91dFJ1bGVzLmxlbmd0aCA9PT0gMCA/IHJvbGxvdXRSdWxlcyA6IHJvbGxvdXRSdWxlcy5yZWR1Y2UoKGEsIGIpID0+IGEuY29uY2F0KGIpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbXBhcmlzb25BdHRyaWJ1dGVzKHJvbGxvdXRSdWxlczogYW55W10pIHtcbiAgICAgICAgaWYgKHJvbGxvdXRSdWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Q29tcGFyaXNvbkF0dHJpYnV0ZXMgPSByb2xsb3V0UnVsZXMubWFwKHIgPT4gci5jb21wYXJpc29uQXR0cmlidXRlKTtcblxuICAgICAgICAgICAgY29uc3QgZGVmYXVsdENvbXBhcmlzb25BdHRyaWJ1dGVzID0gWydJZGVudGlmaWVyJywgJ0VtYWlsJywgJ0NvdW50cnknXTtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBhcmlzb25BdHRyaWJ1dGVzID0gY3VycmVudENvbXBhcmlzb25BdHRyaWJ1dGVzLmZpbHRlcihjID0+IGRlZmF1bHRDb21wYXJpc29uQXR0cmlidXRlcy5pbmRleE9mKGMpID09PSAtMSk7XG4gICAgICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGNvbXBhcmlzb25BdHRyaWJ1dGVzKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,49 +1,54 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
2
- import { FormBuilder, Validators } from '@angular/forms';
3
- import { PublicApiService } from '../_services';
4
- import { FormHelper } from '../_services/form-helper';
5
- export class AuthorizationComponent {
6
- constructor(formBuilder, publicApiService) {
7
- this.formBuilder = formBuilder;
8
- this.publicApiService = publicApiService;
9
- this.basePath = null;
10
- this.authorized = new EventEmitter();
11
- this.FormHelper = FormHelper;
12
- }
13
- ngOnInit() {
14
- this.formGroup = this.formBuilder.group({
15
- basicAuthUsername: ['', Validators.required],
16
- basicAuthPassword: ['', Validators.required],
17
- });
18
- }
19
- onSubmit() {
20
- if (!this.formGroup.valid) {
21
- return;
22
- }
23
- const meService = this.publicApiService.createMeService(this.formGroup.controls.basicAuthUsername.value, this.formGroup.controls.basicAuthPassword.value, this.basePath);
24
- meService.getMe().subscribe(me => {
25
- this.authorized.emit({
26
- basicAuthUsername: this.formGroup.controls.basicAuthUsername.value,
27
- basicAuthPassword: this.formGroup.controls.basicAuthPassword.value
28
- });
29
- }, error => {
30
- this.formGroup.setErrors({ invalidAuthorization: 'Invalid Basic auth user name or password' });
31
- });
32
- }
33
- }
34
- AuthorizationComponent.decorators = [
35
- { type: Component, args: [{
36
- selector: 'configcat-authorization',
37
- template: "<form [formGroup]=\"formGroup\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"container\">\r\n <div class=\"form\">\r\n <p>\r\n <a href=\"https://app.configcat.com/my-account/public-api-credentials\" target=\"_blank\">\r\n Get your Basic Auth user name and password</a> to access ConfigCat Public API.\r\n <br /><br />\r\n <b>Note!</b> Your ConfigCat account's email address and password will not work here.\r\n </p>\r\n\r\n <mat-form-field class=\"form-field\">\r\n <mat-label>Basic auth user name</mat-label>\r\n <input matInput placeholder=\"Basic auth user name\" formControlName=\"basicAuthUsername\">\r\n <mat-error *ngIf=\"formGroup.controls.basicAuthUsername.invalid\">\r\n {{FormHelper.getErrorMessage(formGroup.controls.basicAuthUsername)}}\r\n </mat-error>\r\n </mat-form-field>\r\n <mat-form-field class=\"form-field\">\r\n <mat-label>Basic auth password</mat-label>\r\n <input matInput placeholder=\"Basic auth password\" formControlName=\"basicAuthPassword\" type=\"password\"\r\n autocomplete=\"current-password\">\r\n <mat-error *ngIf=\"formGroup.controls.basicAuthPassword.invalid\">\r\n {{FormHelper.getErrorMessage(formGroup.controls.basicAuthPassword)}}\r\n </mat-error>\r\n </mat-form-field>\r\n <div>\r\n <button mat-raised-button color=\"primary\" type=\"submit\" class=\"submit\">Authorize</button>\r\n <mat-error *ngIf=\"formGroup.invalid && formGroup.errors && formGroup.errors.invalidAuthorization\">\r\n {{formGroup.errors.invalidAuthorization}}</mat-error>\r\n </div>\r\n </div>\r\n </div>\r\n</form>",
38
- styles: [".container{display:flex;margin:8px}.form{width:100%}.form-field{width:100%;margin-bottom:8px}.submit{margin-top:8px;margin-bottom:8px}"]
39
- },] }
40
- ];
41
- AuthorizationComponent.ctorParameters = () => [
42
- { type: FormBuilder },
43
- { type: PublicApiService }
44
- ];
45
- AuthorizationComponent.propDecorators = {
46
- basePath: [{ type: Input }],
47
- authorized: [{ type: Output }]
48
- };
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvYXV0aG9yaXphdGlvbi9hdXRob3JpemF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQWEsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFPdEQsTUFBTSxPQUFPLHNCQUFzQjtJQU9qQyxZQUNVLFdBQXdCLEVBQ3hCLGdCQUFrQztRQURsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBTm5DLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDZixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQyxlQUFVLEdBQUcsVUFBVSxDQUFDO0lBS3BCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUN0QyxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQzVDLGlCQUFpQixFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDN0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDekIsT0FBTztTQUNSO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVqQixTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUNuQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLO2dCQUNsRSxpQkFBaUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLO2FBQ25FLENBQUMsQ0FBQztRQUNMLENBQUMsRUFDQyxLQUFLLENBQUMsRUFBRTtZQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsMENBQTBDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pHLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7O1lBNUNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyxpNURBQTZDOzthQUU5Qzs7O1lBUm1CLFdBQVc7WUFDdEIsZ0JBQWdCOzs7dUJBV3RCLEtBQUs7eUJBQ0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPcHRpb25hbCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFB1YmxpY0FwaVNlcnZpY2UgfSBmcm9tICcuLi9fc2VydmljZXMnO1xyXG5pbXBvcnQgeyBGb3JtSGVscGVyIH0gZnJvbSAnLi4vX3NlcnZpY2VzL2Zvcm0taGVscGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29uZmlnY2F0LWF1dGhvcml6YXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRob3JpemF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hdXRob3JpemF0aW9uLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhvcml6YXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBiYXNlUGF0aCA9IG51bGw7XHJcbiAgQE91dHB1dCgpIGF1dGhvcml6ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgRm9ybUhlbHBlciA9IEZvcm1IZWxwZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIHB1YmxpY0FwaVNlcnZpY2U6IFB1YmxpY0FwaVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIGJhc2ljQXV0aFVzZXJuYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBiYXNpY0F1dGhQYXNzd29yZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLnZhbGlkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtZVNlcnZpY2UgPSB0aGlzLnB1YmxpY0FwaVNlcnZpY2UuY3JlYXRlTWVTZXJ2aWNlKFxyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5iYXNpY0F1dGhVc2VybmFtZS52YWx1ZSxcclxuICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuYmFzaWNBdXRoUGFzc3dvcmQudmFsdWUsXHJcbiAgICAgIHRoaXMuYmFzZVBhdGgpO1xyXG5cclxuICAgIG1lU2VydmljZS5nZXRNZSgpLnN1YnNjcmliZShtZSA9PiB7XHJcbiAgICAgIHRoaXMuYXV0aG9yaXplZC5lbWl0KHtcclxuICAgICAgICBiYXNpY0F1dGhVc2VybmFtZTogdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuYmFzaWNBdXRoVXNlcm5hbWUudmFsdWUsXHJcbiAgICAgICAgYmFzaWNBdXRoUGFzc3dvcmQ6IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmJhc2ljQXV0aFBhc3N3b3JkLnZhbHVlXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgICAgZXJyb3IgPT4ge1xyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnNldEVycm9ycyh7IGludmFsaWRBdXRob3JpemF0aW9uOiAnSW52YWxpZCBCYXNpYyBhdXRoIHVzZXIgbmFtZSBvciBwYXNzd29yZCcgfSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
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/material/form-field";
8
+ import * as i4 from "@angular/material/button";
9
+ import * as i5 from "@angular/material/input";
10
+ import * as i6 from "@angular/common";
11
+ export class AuthorizationComponent {
12
+ constructor(formBuilder, publicApiService) {
13
+ this.formBuilder = formBuilder;
14
+ this.publicApiService = publicApiService;
15
+ this.basePath = null;
16
+ this.authorized = new EventEmitter();
17
+ this.FormHelper = FormHelper;
18
+ }
19
+ ngOnInit() {
20
+ this.formGroup = this.formBuilder.group({
21
+ basicAuthUsername: ['', Validators.required],
22
+ basicAuthPassword: ['', Validators.required],
23
+ });
24
+ }
25
+ onSubmit() {
26
+ if (!this.formGroup.valid) {
27
+ return;
28
+ }
29
+ const meService = this.publicApiService.createMeService(this.formGroup.controls.basicAuthUsername.value, this.formGroup.controls.basicAuthPassword.value, this.basePath);
30
+ meService.getMe().subscribe(me => {
31
+ this.authorized.emit({
32
+ basicAuthUsername: this.formGroup.controls.basicAuthUsername.value,
33
+ basicAuthPassword: this.formGroup.controls.basicAuthPassword.value
34
+ });
35
+ }, error => {
36
+ this.formGroup.setErrors({ invalidAuthorization: 'Invalid Basic auth user name or password' });
37
+ });
38
+ }
39
+ }
40
+ AuthorizationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: AuthorizationComponent, deps: [{ token: i1.FormBuilder }, { token: i2.PublicApiService }], target: i0.ɵɵFactoryTarget.Component });
41
+ AuthorizationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: AuthorizationComponent, selector: "configcat-authorization", inputs: { basePath: "basePath" }, outputs: { authorized: "authorized" }, ngImport: i0, template: "<form [formGroup]=\"formGroup\" (ngSubmit)=\"onSubmit()\">\n <div class=\"container\">\n <div class=\"form\">\n <p>\n <a href=\"https://app.configcat.com/my-account/public-api-credentials\" target=\"_blank\">\n Get your Basic Auth user name and password</a> to access ConfigCat Public API.\n <br /><br />\n <b>Note!</b> Your ConfigCat account's email address and password will not work here.\n </p>\n\n <mat-form-field class=\"form-field\">\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\">\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-raised-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"], components: [{ type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.MatLabel, selector: "mat-label" }, { type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { 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]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.MatError, selector: "mat-error", inputs: ["id"] }] });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: AuthorizationComponent, decorators: [{
43
+ type: Component,
44
+ args: [{
45
+ selector: 'configcat-authorization',
46
+ templateUrl: './authorization.component.html',
47
+ styleUrls: ['./authorization.component.scss']
48
+ }]
49
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.PublicApiService }]; }, propDecorators: { basePath: [{
50
+ type: Input
51
+ }], authorized: [{
52
+ type: Output
53
+ }] } });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvYXV0aG9yaXphdGlvbi9hdXRob3JpemF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi9hdXRob3JpemF0aW9uL2F1dGhvcml6YXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7O0FBT3RELE1BQU0sT0FBTyxzQkFBc0I7SUFPakMsWUFDVSxXQUF3QixFQUN4QixnQkFBa0M7UUFEbEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQU5uQyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2YsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUMsZUFBVSxHQUFHLFVBQVUsQ0FBQztJQUtwQixDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDdEMsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM1QyxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQzdDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQ3pCLE9BQU87U0FDUjtRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFakIsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztnQkFDbkIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsS0FBSztnQkFDbEUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsS0FBSzthQUNuRSxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQ0MsS0FBSyxDQUFDLEVBQUU7WUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLDBDQUEwQyxFQUFFLENBQUMsQ0FBQztRQUNqRyxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7O29IQXZDVSxzQkFBc0I7d0dBQXRCLHNCQUFzQix3SUNWbkMsdTBEQWdDTzs0RkR0Qk0sc0JBQXNCO2tCQUxsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLFNBQVMsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO2lCQUM5QztpSUFJVSxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3B0aW9uYWwsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFB1YmxpY0FwaVNlcnZpY2UgfSBmcm9tICcuLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgRm9ybUhlbHBlciB9IGZyb20gJy4uL19zZXJ2aWNlcy9mb3JtLWhlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvbmZpZ2NhdC1hdXRob3JpemF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dGhvcml6YXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRob3JpemF0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQXV0aG9yaXphdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBiYXNlUGF0aCA9IG51bGw7XG4gIEBPdXRwdXQoKSBhdXRob3JpemVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBGb3JtSGVscGVyID0gRm9ybUhlbHBlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHB1YmxpY0FwaVNlcnZpY2U6IFB1YmxpY0FwaVNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgYmFzaWNBdXRoVXNlcm5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBiYXNpY0F1dGhQYXNzd29yZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICB9KTtcbiAgfVxuXG4gIG9uU3VibWl0KCkge1xuICAgIGlmICghdGhpcy5mb3JtR3JvdXAudmFsaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtZVNlcnZpY2UgPSB0aGlzLnB1YmxpY0FwaVNlcnZpY2UuY3JlYXRlTWVTZXJ2aWNlKFxuICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuYmFzaWNBdXRoVXNlcm5hbWUudmFsdWUsXG4gICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5iYXNpY0F1dGhQYXNzd29yZC52YWx1ZSxcbiAgICAgIHRoaXMuYmFzZVBhdGgpO1xuXG4gICAgbWVTZXJ2aWNlLmdldE1lKCkuc3Vic2NyaWJlKG1lID0+IHtcbiAgICAgIHRoaXMuYXV0aG9yaXplZC5lbWl0KHtcbiAgICAgICAgYmFzaWNBdXRoVXNlcm5hbWU6IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmJhc2ljQXV0aFVzZXJuYW1lLnZhbHVlLFxuICAgICAgICBiYXNpY0F1dGhQYXNzd29yZDogdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuYmFzaWNBdXRoUGFzc3dvcmQudmFsdWVcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnNldEVycm9ycyh7IGludmFsaWRBdXRob3JpemF0aW9uOiAnSW52YWxpZCBCYXNpYyBhdXRoIHVzZXIgbmFtZSBvciBwYXNzd29yZCcgfSk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vYXBwLmNvbmZpZ2NhdC5jb20vbXktYWNjb3VudC9wdWJsaWMtYXBpLWNyZWRlbnRpYWxzXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgICAgICAgICAgIEdldCB5b3VyIEJhc2ljIEF1dGggdXNlciBuYW1lIGFuZCBwYXNzd29yZDwvYT4gdG8gYWNjZXNzIENvbmZpZ0NhdCBQdWJsaWMgQVBJLlxuICAgICAgICAgICAgICAgIDxiciAvPjxiciAvPlxuICAgICAgICAgICAgICAgIDxiPk5vdGUhPC9iPiBZb3VyIENvbmZpZ0NhdCBhY2NvdW50J3MgZW1haWwgYWRkcmVzcyBhbmQgcGFzc3dvcmQgd2lsbCBub3Qgd29yayBoZXJlLlxuICAgICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmb3JtLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5CYXNpYyBhdXRoIHVzZXIgbmFtZTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkJhc2ljIGF1dGggdXNlciBuYW1lXCIgZm9ybUNvbnRyb2xOYW1lPVwiYmFzaWNBdXRoVXNlcm5hbWVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmJhc2ljQXV0aFVzZXJuYW1lLmludmFsaWRcIj5cbiAgICAgICAgICAgICAgICAgICAge3tGb3JtSGVscGVyLmdldEVycm9yTWVzc2FnZShmb3JtR3JvdXAuY29udHJvbHMuYmFzaWNBdXRoVXNlcm5hbWUpfX1cbiAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmb3JtLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5CYXNpYyBhdXRoIHBhc3N3b3JkPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiQmFzaWMgYXV0aCBwYXNzd29yZFwiIGZvcm1Db250cm9sTmFtZT1cImJhc2ljQXV0aFBhc3N3b3JkXCIgdHlwZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwiY3VycmVudC1wYXNzd29yZFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtR3JvdXAuY29udHJvbHMuYmFzaWNBdXRoUGFzc3dvcmQuaW52YWxpZFwiPlxuICAgICAgICAgICAgICAgICAgICB7e0Zvcm1IZWxwZXIuZ2V0RXJyb3JNZXNzYWdlKGZvcm1Hcm91cC5jb250cm9scy5iYXNpY0F1dGhQYXNzd29yZCl9fVxuICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJzdWJtaXRcIj5BdXRob3JpemU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUdyb3VwLmludmFsaWQgJiYgZm9ybUdyb3VwLmVycm9ycyAmJiBmb3JtR3JvdXAuZXJyb3JzLmludmFsaWRBdXRob3JpemF0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7Zm9ybUdyb3VwLmVycm9ycy5pbnZhbGlkQXV0aG9yaXphdGlvbn19PC9tYXQtZXJyb3I+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Zvcm0+Il19
@@ -1,40 +1,42 @@
1
- import { Component, Input } from '@angular/core';
2
- import { PublicApiService } from '../_services/public-api.service';
3
- export class BaseComponent {
4
- constructor(publicApiService) {
5
- this.publicApiService = publicApiService;
6
- this.basePath = null;
7
- this.basicAuthUsername = null;
8
- this.basicAuthPassword = null;
9
- }
10
- createProductsService() {
11
- return this.publicApiService.createProductsService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);
12
- }
13
- createConfigsService() {
14
- return this.publicApiService.createConfigsService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);
15
- }
16
- createEnvironmentsService() {
17
- return this.publicApiService.createEnvironmentsService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);
18
- }
19
- createSettingsService() {
20
- return this.publicApiService.createSettingsService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);
21
- }
22
- createSettingValuesService() {
23
- return this.publicApiService.createSettingValuesService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);
24
- }
25
- }
26
- BaseComponent.decorators = [
27
- { type: Component, args: [{
28
- selector: 'base',
29
- template: '<div></div>'
30
- },] }
31
- ];
32
- BaseComponent.ctorParameters = () => [
33
- { type: PublicApiService }
34
- ];
35
- BaseComponent.propDecorators = {
36
- basePath: [{ type: Input }],
37
- basicAuthUsername: [{ type: Input }],
38
- basicAuthPassword: [{ type: Input }]
39
- };
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvYmFzZS9iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQU1uRSxNQUFNLE9BQU8sYUFBYTtJQU14QixZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUo3QyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQUN6QixzQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFHbEMsQ0FBQztJQUVTLHFCQUFxQjtRQUM3QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBRVMsb0JBQW9CO1FBQzVCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ILENBQUM7SUFFUyx5QkFBeUI7UUFDakMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEgsQ0FBQztJQUVTLHFCQUFxQjtRQUM3QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBRVMsMEJBQTBCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pILENBQUM7OztZQS9CRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLE1BQU07Z0JBQ2hCLFFBQVEsRUFBRSxhQUFhO2FBQ3hCOzs7WUFMUSxnQkFBZ0I7Ozt1QkFRdEIsS0FBSztnQ0FDTCxLQUFLO2dDQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IFB1YmxpY0FwaVNlcnZpY2UgfSBmcm9tICcuLi9fc2VydmljZXMvcHVibGljLWFwaS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYmFzZScsXHJcbiAgdGVtcGxhdGU6ICc8ZGl2PjwvZGl2PidcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhc2VDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSBiYXNlUGF0aCA9IG51bGw7XHJcbiAgQElucHV0KCkgYmFzaWNBdXRoVXNlcm5hbWUgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGJhc2ljQXV0aFBhc3N3b3JkID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwdWJsaWNBcGlTZXJ2aWNlOiBQdWJsaWNBcGlTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY3JlYXRlUHJvZHVjdHNTZXJ2aWNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucHVibGljQXBpU2VydmljZS5jcmVhdGVQcm9kdWN0c1NlcnZpY2UodGhpcy5iYXNpY0F1dGhVc2VybmFtZSwgdGhpcy5iYXNpY0F1dGhQYXNzd29yZCwgdGhpcy5iYXNlUGF0aCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY3JlYXRlQ29uZmlnc1NlcnZpY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wdWJsaWNBcGlTZXJ2aWNlLmNyZWF0ZUNvbmZpZ3NTZXJ2aWNlKHRoaXMuYmFzaWNBdXRoVXNlcm5hbWUsIHRoaXMuYmFzaWNBdXRoUGFzc3dvcmQsIHRoaXMuYmFzZVBhdGgpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGNyZWF0ZUVudmlyb25tZW50c1NlcnZpY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wdWJsaWNBcGlTZXJ2aWNlLmNyZWF0ZUVudmlyb25tZW50c1NlcnZpY2UodGhpcy5iYXNpY0F1dGhVc2VybmFtZSwgdGhpcy5iYXNpY0F1dGhQYXNzd29yZCwgdGhpcy5iYXNlUGF0aCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY3JlYXRlU2V0dGluZ3NTZXJ2aWNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucHVibGljQXBpU2VydmljZS5jcmVhdGVTZXR0aW5nc1NlcnZpY2UodGhpcy5iYXNpY0F1dGhVc2VybmFtZSwgdGhpcy5iYXNpY0F1dGhQYXNzd29yZCwgdGhpcy5iYXNlUGF0aCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY3JlYXRlU2V0dGluZ1ZhbHVlc1NlcnZpY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wdWJsaWNBcGlTZXJ2aWNlLmNyZWF0ZVNldHRpbmdWYWx1ZXNTZXJ2aWNlKHRoaXMuYmFzaWNBdXRoVXNlcm5hbWUsIHRoaXMuYmFzaWNBdXRoUGFzc3dvcmQsIHRoaXMuYmFzZVBhdGgpO1xyXG4gIH1cclxufVxyXG4iXX0=
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../_services/public-api.service";
4
+ export class BaseComponent {
5
+ constructor(publicApiService) {
6
+ this.publicApiService = publicApiService;
7
+ this.basePath = null;
8
+ this.basicAuthUsername = null;
9
+ this.basicAuthPassword = null;
10
+ }
11
+ createProductsService() {
12
+ return this.publicApiService.createProductsService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);
13
+ }
14
+ createConfigsService() {
15
+ return this.publicApiService.createConfigsService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);
16
+ }
17
+ createEnvironmentsService() {
18
+ return this.publicApiService.createEnvironmentsService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);
19
+ }
20
+ createSettingsService() {
21
+ return this.publicApiService.createSettingsService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);
22
+ }
23
+ createSettingValuesService() {
24
+ return this.publicApiService.createSettingValuesService(this.basicAuthUsername, this.basicAuthPassword, this.basePath);
25
+ }
26
+ }
27
+ BaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: BaseComponent, deps: [{ token: i1.PublicApiService }], target: i0.ɵɵFactoryTarget.Component });
28
+ BaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: BaseComponent, selector: "base", inputs: { basePath: "basePath", basicAuthUsername: "basicAuthUsername", basicAuthPassword: "basicAuthPassword" }, ngImport: i0, template: '<div></div>', isInline: true });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: BaseComponent, decorators: [{
30
+ type: Component,
31
+ args: [{
32
+ selector: 'base',
33
+ template: '<div></div>'
34
+ }]
35
+ }], ctorParameters: function () { return [{ type: i1.PublicApiService }]; }, propDecorators: { basePath: [{
36
+ type: Input
37
+ }], basicAuthUsername: [{
38
+ type: Input
39
+ }], basicAuthPassword: [{
40
+ type: Input
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvYmFzZS9iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBWSxNQUFNLGVBQWUsQ0FBQzs7O0FBUTNELE1BQU0sT0FBTyxhQUFhO0lBTXhCLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBSjdDLGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBQy9CLHNCQUFpQixHQUFrQixJQUFJLENBQUM7UUFDeEMsc0JBQWlCLEdBQWtCLElBQUksQ0FBQztJQUdqRCxDQUFDO0lBRVMscUJBQXFCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BILENBQUM7SUFFUyxvQkFBb0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkgsQ0FBQztJQUVTLHlCQUF5QjtRQUNqQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4SCxDQUFDO0lBRVMscUJBQXFCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BILENBQUM7SUFFUywwQkFBMEI7UUFDbEMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekgsQ0FBQzs7MkdBM0JVLGFBQWE7K0ZBQWIsYUFBYSw4SkFGZCxhQUFhOzRGQUVaLGFBQWE7a0JBSnpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLE1BQU07b0JBQ2hCLFFBQVEsRUFBRSxhQUFhO2lCQUN4Qjt1R0FHVSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgUHVibGljQXBpU2VydmljZSB9IGZyb20gJy4uL19zZXJ2aWNlcy9wdWJsaWMtYXBpLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYXNlJyxcbiAgdGVtcGxhdGU6ICc8ZGl2PjwvZGl2Pidcbn0pXG5leHBvcnQgY2xhc3MgQmFzZUNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgYmFzZVBhdGg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBiYXNpY0F1dGhVc2VybmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGJhc2ljQXV0aFBhc3N3b3JkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHB1YmxpY0FwaVNlcnZpY2U6IFB1YmxpY0FwaVNlcnZpY2UpIHtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVQcm9kdWN0c1NlcnZpY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucHVibGljQXBpU2VydmljZS5jcmVhdGVQcm9kdWN0c1NlcnZpY2UodGhpcy5iYXNpY0F1dGhVc2VybmFtZSwgdGhpcy5iYXNpY0F1dGhQYXNzd29yZCwgdGhpcy5iYXNlUGF0aCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlQ29uZmlnc1NlcnZpY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucHVibGljQXBpU2VydmljZS5jcmVhdGVDb25maWdzU2VydmljZSh0aGlzLmJhc2ljQXV0aFVzZXJuYW1lLCB0aGlzLmJhc2ljQXV0aFBhc3N3b3JkLCB0aGlzLmJhc2VQYXRoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVFbnZpcm9ubWVudHNTZXJ2aWNlKCkge1xuICAgIHJldHVybiB0aGlzLnB1YmxpY0FwaVNlcnZpY2UuY3JlYXRlRW52aXJvbm1lbnRzU2VydmljZSh0aGlzLmJhc2ljQXV0aFVzZXJuYW1lLCB0aGlzLmJhc2ljQXV0aFBhc3N3b3JkLCB0aGlzLmJhc2VQYXRoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVTZXR0aW5nc1NlcnZpY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucHVibGljQXBpU2VydmljZS5jcmVhdGVTZXR0aW5nc1NlcnZpY2UodGhpcy5iYXNpY0F1dGhVc2VybmFtZSwgdGhpcy5iYXNpY0F1dGhQYXNzd29yZCwgdGhpcy5iYXNlUGF0aCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlU2V0dGluZ1ZhbHVlc1NlcnZpY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucHVibGljQXBpU2VydmljZS5jcmVhdGVTZXR0aW5nVmFsdWVzU2VydmljZSh0aGlzLmJhc2ljQXV0aFVzZXJuYW1lLCB0aGlzLmJhc2ljQXV0aFBhc3N3b3JkLCB0aGlzLmJhc2VQYXRoKTtcbiAgfVxufVxuIl19