ng-configcat-publicapi-ui 2.3.3 → 2.5.2
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/{esm2015/lib/_models/index.js → esm2020/lib/_models/index.mjs} +0 -0
- package/{esm2015/lib/_models/settingValuesModel.js → esm2020/lib/_models/settingValuesModel.mjs} +0 -0
- package/{esm2015/lib/_models/updateSettingValuesModel.js → esm2020/lib/_models/updateSettingValuesModel.mjs} +0 -0
- package/{esm2015/lib/_services/form-helper.js → esm2020/lib/_services/form-helper.mjs} +0 -0
- package/{esm2015/lib/_services/index.js → esm2020/lib/_services/index.mjs} +0 -0
- package/esm2020/lib/_services/public-api.service.mjs +68 -0
- package/esm2020/lib/_services/setting-list-form-helper.mjs +152 -0
- package/esm2020/lib/authorization/authorization.component.mjs +50 -0
- package/{esm2015/lib/base/base.component.js → esm2020/lib/base/base.component.mjs} +7 -4
- package/{esm2015/lib/configuration.js → esm2020/lib/configuration.mjs} +4 -4
- package/esm2020/lib/dialogs/concurrent-dialog/concurrent-dialog.component.mjs +25 -0
- package/esm2020/lib/dialogs/expand-dialog/expand-dialog.component.mjs +77 -0
- package/esm2020/lib/dialogs/reason-dialog/reason-dialog.component.mjs +36 -0
- package/esm2020/lib/dialogs/save-snackbar/save-snackbar.component.mjs +14 -0
- package/{esm2015/lib/ng-configcat-publicapi-ui.module.js → esm2020/lib/ng-configcat-publicapi-ui.module.mjs} +5 -5
- package/{esm2015/lib/selects/config-select/config-select.component.js → esm2020/lib/selects/config-select/config-select.component.mjs} +7 -12
- package/esm2020/lib/selects/environment-select/environment-select.component.mjs +43 -0
- package/esm2020/lib/selects/product-select/product-select.component.mjs +36 -0
- package/esm2020/lib/selects/setting-select/setting-select.component.mjs +43 -0
- package/esm2020/lib/setting-item/setting-item.component.mjs +126 -0
- package/esm2020/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.mjs +81 -0
- package/esm2020/lib/setting-list/setting/rollout-rules/rollout-rules.component.mjs +295 -0
- package/esm2020/lib/setting-list/setting/setting.component.mjs +134 -0
- package/esm2020/lib/setting-list/setting/value/value.component.mjs +32 -0
- package/esm2020/lib/setting-list/setting-list.component.mjs +197 -0
- package/{esm2015/ng-configcat-publicapi-ui.js → esm2020/ng-configcat-publicapi-ui.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/ng-configcat-publicapi-ui.mjs +1579 -0
- package/fesm2015/ng-configcat-publicapi-ui.mjs.map +1 -0
- package/fesm2020/ng-configcat-publicapi-ui.mjs +1560 -0
- package/fesm2020/ng-configcat-publicapi-ui.mjs.map +1 -0
- package/lib/_services/public-api.service.d.ts +2 -1
- package/lib/base/base.component.d.ts +1 -0
- package/lib/setting-item/setting-item.component.d.ts +3 -1
- package/lib/setting-list/setting/rollout-rules/rollout-rules.component.d.ts +10 -2
- package/lib/setting-list/setting/setting.component.d.ts +4 -2
- package/lib/setting-list/setting-list.component.d.ts +4 -1
- package/package.json +22 -9
- package/bundles/ng-configcat-publicapi-ui.umd.js +0 -1979
- package/bundles/ng-configcat-publicapi-ui.umd.js.map +0 -1
- package/esm2015/lib/_services/public-api.service.js +0 -69
- package/esm2015/lib/_services/setting-list-form-helper.js +0 -135
- package/esm2015/lib/authorization/authorization.component.js +0 -54
- package/esm2015/lib/dialogs/concurrent-dialog/concurrent-dialog.component.js +0 -29
- package/esm2015/lib/dialogs/expand-dialog/expand-dialog.component.js +0 -81
- package/esm2015/lib/dialogs/reason-dialog/reason-dialog.component.js +0 -40
- package/esm2015/lib/dialogs/save-snackbar/save-snackbar.component.js +0 -18
- package/esm2015/lib/selects/environment-select/environment-select.component.js +0 -47
- package/esm2015/lib/selects/product-select/product-select.component.js +0 -40
- package/esm2015/lib/selects/setting-select/setting-select.component.js +0 -47
- package/esm2015/lib/setting-item/setting-item.component.js +0 -121
- package/esm2015/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.js +0 -87
- package/esm2015/lib/setting-list/setting/rollout-rules/rollout-rules.component.js +0 -287
- package/esm2015/lib/setting-list/setting/setting.component.js +0 -131
- package/esm2015/lib/setting-list/setting/value/value.component.js +0 -39
- package/esm2015/lib/setting-list/setting-list.component.js +0 -195
- package/fesm2015/ng-configcat-publicapi-ui.js +0 -1574
- package/fesm2015/ng-configcat-publicapi-ui.js.map +0 -1
|
@@ -1,135 +0,0 @@
|
|
|
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,54 +0,0 @@
|
|
|
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,29 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/material/dialog";
|
|
4
|
-
import * as i2 from "@angular/material/button";
|
|
5
|
-
import * as i3 from "@angular/router";
|
|
6
|
-
export class ConcurrentDialogComponent {
|
|
7
|
-
constructor(dialogRef) {
|
|
8
|
-
this.dialogRef = dialogRef;
|
|
9
|
-
}
|
|
10
|
-
ngOnInit() {
|
|
11
|
-
}
|
|
12
|
-
save() {
|
|
13
|
-
this.dialogRef.close({ button: 'save' });
|
|
14
|
-
}
|
|
15
|
-
discard() {
|
|
16
|
-
this.dialogRef.close({ button: 'discard' });
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
ConcurrentDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: ConcurrentDialogComponent, deps: [{ token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
-
ConcurrentDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: ConcurrentDialogComponent, selector: "configcat-concurrent-dialog", ngImport: i0, template: "<h3 mat-dialog-title>Concurrent update detected</h3>\n<p>\n Somebody updated the feature flags & settings while you were editing them.\n</p>\n<ul>\n <li>\n To discard your local changes and reload the updated values, click <strong>Discard my changes & reload</strong>\n </li>\n <li>\n To save you local values and overwrite the remote changes, click <strong>Save anyway</strong>\n </li>\n</ul>\n<p>For more info about the changes check the <a [routerLink]=\"['/auditlog']\" target=\"_blank\" rel=\"noopener noreferrer\" >audit logs</a> in a new tab.</p>\n<div mat-dialog-actions>\n <button type=\"button\" style=\"margin-right: 10px;\" mat-raised-button color=\"primary\" (click)=\"discard()\">Discard\n local changes & reload</button>\n <button type=\"button\" mat-raised-button (click)=\"save()\">Save anyway</button>\n</div>", styles: [""], components: [{ type: i2.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.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: ConcurrentDialogComponent, decorators: [{
|
|
22
|
-
type: Component,
|
|
23
|
-
args: [{
|
|
24
|
-
selector: 'configcat-concurrent-dialog',
|
|
25
|
-
templateUrl: './concurrent-dialog.component.html',
|
|
26
|
-
styleUrls: ['./concurrent-dialog.component.scss']
|
|
27
|
-
}]
|
|
28
|
-
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }]; } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uY3VycmVudC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL2RpYWxvZ3MvY29uY3VycmVudC1kaWFsb2cvY29uY3VycmVudC1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL2RpYWxvZ3MvY29uY3VycmVudC1kaWFsb2cvY29uY3VycmVudC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRbEQsTUFBTSxPQUFPLHlCQUF5QjtJQUVwQyxZQUNTLFNBQWtEO1FBQWxELGNBQVMsR0FBVCxTQUFTLENBQXlDO0lBQ3ZELENBQUM7SUFFTCxRQUFRO0lBQ1IsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDOzt1SEFmVSx5QkFBeUI7MkdBQXpCLHlCQUF5QixtRUNSdEMsdTJCQWlCTTs0RkRUTyx5QkFBeUI7a0JBTHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsV0FBVyxFQUFFLG9DQUFvQztvQkFDakQsU0FBUyxFQUFFLENBQUMsb0NBQW9DLENBQUM7aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvbmZpZ2NhdC1jb25jdXJyZW50LWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25jdXJyZW50LWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbmN1cnJlbnQtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29uY3VycmVudERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPENvbmN1cnJlbnREaWFsb2dDb21wb25lbnQ+XG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBzYXZlKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHsgYnV0dG9uOiAnc2F2ZScgfSk7XG4gIH1cblxuICBkaXNjYXJkKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHsgYnV0dG9uOiAnZGlzY2FyZCcgfSk7XG4gIH1cblxufVxuIiwiPGgzIG1hdC1kaWFsb2ctdGl0bGU+Q29uY3VycmVudCB1cGRhdGUgZGV0ZWN0ZWQ8L2gzPlxuPHA+XG4gICAgU29tZWJvZHkgdXBkYXRlZCB0aGUgZmVhdHVyZSBmbGFncyAmIHNldHRpbmdzIHdoaWxlIHlvdSB3ZXJlIGVkaXRpbmcgdGhlbS5cbjwvcD5cbjx1bD5cbiAgICA8bGk+XG4gICAgICAgIFRvIGRpc2NhcmQgeW91ciBsb2NhbCBjaGFuZ2VzIGFuZCByZWxvYWQgdGhlIHVwZGF0ZWQgdmFsdWVzLCBjbGljayA8c3Ryb25nPkRpc2NhcmQgbXkgY2hhbmdlcyAmIHJlbG9hZDwvc3Ryb25nPlxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgICBUbyBzYXZlIHlvdSBsb2NhbCB2YWx1ZXMgYW5kIG92ZXJ3cml0ZSB0aGUgcmVtb3RlIGNoYW5nZXMsIGNsaWNrIDxzdHJvbmc+U2F2ZSBhbnl3YXk8L3N0cm9uZz5cbiAgICA8L2xpPlxuPC91bD5cbjxwPkZvciBtb3JlIGluZm8gYWJvdXQgdGhlIGNoYW5nZXMgY2hlY2sgdGhlIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL2F1ZGl0bG9nJ11cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgPmF1ZGl0IGxvZ3M8L2E+IGluIGEgbmV3IHRhYi48L3A+XG48ZGl2IG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweDtcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiZGlzY2FyZCgpXCI+RGlzY2FyZFxuICAgICAgICBsb2NhbCBjaGFuZ2VzICYgcmVsb2FkPC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cInNhdmUoKVwiPlNhdmUgYW55d2F5PC9idXR0b24+XG48L2Rpdj4iXX0=
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { Component, Inject } from '@angular/core';
|
|
2
|
-
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/material/dialog";
|
|
5
|
-
import * as i2 from "@angular/forms";
|
|
6
|
-
import * as i3 from "@angular/material/form-field";
|
|
7
|
-
import * as i4 from "@angular/material/button";
|
|
8
|
-
import * as i5 from "@angular/material/icon";
|
|
9
|
-
import * as i6 from "@angular/common";
|
|
10
|
-
import * as i7 from "@angular/material/input";
|
|
11
|
-
export class ExpandDialogComponent {
|
|
12
|
-
constructor(dialogRef, formBuilder, data) {
|
|
13
|
-
this.dialogRef = dialogRef;
|
|
14
|
-
this.formBuilder = formBuilder;
|
|
15
|
-
this.data = data;
|
|
16
|
-
}
|
|
17
|
-
ngOnInit() {
|
|
18
|
-
if (this.data.multiline) {
|
|
19
|
-
this.buildFormGroup();
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
this.formControlSubscription = this.data.control.valueChanges.subscribe((value) => {
|
|
23
|
-
this.data.control.setValue(value, { onlySelf: true, emitEvent: false, emitModelToViewChange: true });
|
|
24
|
-
this.data.control.markAsDirty();
|
|
25
|
-
}, () => { }, () => { });
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
values() {
|
|
29
|
-
return this.formGroup.get('values');
|
|
30
|
-
}
|
|
31
|
-
getValueControls() {
|
|
32
|
-
return this.values().controls.map(c => c);
|
|
33
|
-
}
|
|
34
|
-
buildFormGroup() {
|
|
35
|
-
const value = this.data.control.value ? this.data.control.value : '';
|
|
36
|
-
const list = value.split(',').map((v) => v.trim()).filter((v) => !!v);
|
|
37
|
-
this.formGroup = this.formBuilder.group({
|
|
38
|
-
values: this.formBuilder.array(list.map((v) => this.formBuilder.control(v)))
|
|
39
|
-
});
|
|
40
|
-
this.formGroupSubscription = this.formGroup.valueChanges.subscribe((formGroupValue) => {
|
|
41
|
-
this.data.control.setValue(formGroupValue.values
|
|
42
|
-
.filter((v) => !!v)
|
|
43
|
-
.join(','), { onlySelf: true, emitEvent: false, emitModelToViewChange: true });
|
|
44
|
-
this.data.control.updateValueAndValidity();
|
|
45
|
-
this.data.control.markAsDirty();
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
add() {
|
|
49
|
-
this.formGroup.controls.values.push(this.formBuilder.control(''));
|
|
50
|
-
}
|
|
51
|
-
remove(index) {
|
|
52
|
-
this.formGroup.controls.values.removeAt(index);
|
|
53
|
-
}
|
|
54
|
-
ngOnDestroy() {
|
|
55
|
-
if (this.formControlSubscription) {
|
|
56
|
-
this.formControlSubscription.unsubscribe();
|
|
57
|
-
this.formControlSubscription = null;
|
|
58
|
-
}
|
|
59
|
-
if (this.formGroupSubscription) {
|
|
60
|
-
this.formGroupSubscription.unsubscribe();
|
|
61
|
-
this.formGroupSubscription = null;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
close() {
|
|
65
|
-
this.dialogRef.close();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
ExpandDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: ExpandDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.FormBuilder }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
69
|
-
ExpandDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: ExpandDialogComponent, selector: "configcat-expand-dialog", ngImport: i0, template: "<div mat-dialog-content class=\"container\">\n\n <mat-form-field appearance=\"outline\" *ngIf=\"!data.multiline\">\n <mat-label></mat-label>\n <textarea matInput [formControl]=\"data.control\" rows=\"15\"></textarea>\n </mat-form-field>\n <div [formGroup]=\"formGroup\" *ngIf=\"data.multiline\">\n <div *ngFor=\"let valueControl of getValueControls(); let i = index;\"\n class=\"value-field\">\n <mat-form-field appearance=\"outline\">\n <input matInput [formControl]=\"valueControl\" rows=\"15\" />\n </mat-form-field>\n <button (click)=\"remove(i)\" mat-icon-button type=\"button\">\n <mat-icon>delete_outline</mat-icon>\n </button>\n </div>\n <button (click)=\"add()\" mat-icon-button type=\"button\">\n <mat-icon>add</mat-icon>\n </button>\n </div>\n</div>\n<div mat-dialog-actions>\n <button type=\"button\" mat-raised-button color=\"primary\" (click)=\"close()\">Done</button>\n</div>", styles: [".container>*{width:100%}.container>* .value-field{display:flex;font-size:12px;flex-wrap:nowrap}.container>* .value-field mat-form-field{flex-grow:1}\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"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.MatLabel, selector: "mat-label" }, { type: i7.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: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: ExpandDialogComponent, decorators: [{
|
|
71
|
-
type: Component,
|
|
72
|
-
args: [{
|
|
73
|
-
selector: 'configcat-expand-dialog',
|
|
74
|
-
templateUrl: './expand-dialog.component.html',
|
|
75
|
-
styleUrls: ['./expand-dialog.component.scss']
|
|
76
|
-
}]
|
|
77
|
-
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.FormBuilder }, { type: undefined, decorators: [{
|
|
78
|
-
type: Inject,
|
|
79
|
-
args: [MAT_DIALOG_DATA]
|
|
80
|
-
}] }]; } });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvZGlhbG9ncy9leHBhbmQtZGlhbG9nL2V4cGFuZC1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL2RpYWxvZ3MvZXhwYW5kLWRpYWxvZy9leHBhbmQtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7OztBQVN6RSxNQUFNLE9BQU8scUJBQXFCO0lBT2hDLFlBQW1CLFNBQThDLEVBQ3ZELFdBQXdCLEVBQ0EsSUFBUztRQUZ4QixjQUFTLEdBQVQsU0FBUyxDQUFxQztRQUN2RCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNBLFNBQUksR0FBSixJQUFJLENBQUs7SUFDM0MsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN2QjthQUFNO1lBQ0wsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtnQkFDckYsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxD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Q0gsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7O21IQXBFVSxxQkFBcUIseUVBU3RCLGVBQWU7dUdBVGQscUJBQXFCLCtEQ1ZsQyxxaENBdUJNOzRGRGJPLHFCQUFxQjtrQkFMakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxXQUFXLEVBQUUsZ0NBQWdDO29CQUM3QyxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztpQkFDOUM7OzBCQVVJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbmplY3QsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBGb3JtQXJyYXksIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb25maWdjYXQtZXhwYW5kLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9leHBhbmQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZXhwYW5kLWRpYWxvZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEV4cGFuZERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBmb3JtQ29udHJvbFN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbiB8IG51bGw7XG4gIGZvcm1Hcm91cFN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbiB8IG51bGw7XG5cbiAgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxFeHBhbmREaWFsb2dDb21wb25lbnQ+LFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55KSB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhLm11bHRpbGluZSkge1xuICAgICAgdGhpcy5idWlsZEZvcm1Hcm91cCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm1Db250cm9sU3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmRhdGEuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSwgZW1pdEV2ZW50OiBmYWxzZSwgZW1pdE1vZGVsVG9WaWV3Q2hhbmdlOiB0cnVlIH0pO1xuICAgICAgICB0aGlzLmRhdGEuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgfSwgKCkgPT4geyB9LCAoKSA9PiB7IH0pO1xuICAgIH1cbiAgfVxuXG4gIHZhbHVlcygpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0KCd2YWx1ZXMnKSBhcyBGb3JtQXJyYXk7XG4gIH1cblxuICBnZXRWYWx1ZUNvbnRyb2xzKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcygpLmNvbnRyb2xzLm1hcChjID0+IGMgYXMgRm9ybUNvbnRyb2wpO1xuICB9XG5cbiAgYnVpbGRGb3JtR3JvdXAoKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmRhdGEuY29udHJvbC52YWx1ZSA/IHRoaXMuZGF0YS5jb250cm9sLnZhbHVlIDogJyc7XG4gICAgY29uc3QgbGlzdCA9IHZhbHVlLnNwbGl0KCcsJykubWFwKCh2OiBhbnkpID0+IHYudHJpbSgpKS5maWx0ZXIoKHY6IGFueSkgPT4gISF2KTtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgdmFsdWVzOiB0aGlzLmZvcm1CdWlsZGVyLmFycmF5KGxpc3QubWFwKCh2OiBhbnkpID0+IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh2KSkpXG4gICAgfSk7XG4gICAgdGhpcy5mb3JtR3JvdXBTdWJzY3JpcHRpb24gPSB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChmb3JtR3JvdXBWYWx1ZSkgPT4ge1xuICAgICAgdGhpcy5kYXRhLmNvbnRyb2wuc2V0VmFsdWUoZm9ybUdyb3VwVmFsdWUudmFsdWVzXG4gICAgICAgIC5maWx0ZXIoKHY6IGFueSkgPT4gISF2KVxuICAgICAgICAuam9pbignLCcpLCB7IG9ubHlTZWxmOiB0cnVlLCBlbWl0RXZlbnQ6IGZhbHNlLCBlbWl0TW9kZWxUb1ZpZXdDaGFuZ2U6IHRydWUgfSk7XG4gICAgICB0aGlzLmRhdGEuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB0aGlzLmRhdGEuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIH0pO1xuICB9XG5cbiAgYWRkKCkge1xuICAgICh0aGlzLmZvcm1Hcm91cC5jb250cm9scy52YWx1ZXMgYXMgRm9ybUFycmF5KS5wdXNoKHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCgnJykpO1xuICB9XG5cbiAgcmVtb3ZlKGluZGV4OiBhbnkpIHtcbiAgICAodGhpcy5mb3JtR3JvdXAuY29udHJvbHMudmFsdWVzIGFzIEZvcm1BcnJheSkucmVtb3ZlQXQoaW5kZXgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2xTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2xTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2xTdWJzY3JpcHRpb24gPSBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcm1Hcm91cFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5mb3JtR3JvdXBTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuZm9ybUdyb3VwU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG59XG4iLCI8ZGl2IG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImNvbnRhaW5lclwiPlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgKm5nSWY9XCIhZGF0YS5tdWx0aWxpbmVcIj5cbiAgICAgICAgPG1hdC1sYWJlbD48L21hdC1sYWJlbD5cbiAgICAgICAgPHRleHRhcmVhIG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJkYXRhLmNvbnRyb2xcIiByb3dzPVwiMTVcIj48L3RleHRhcmVhPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiICpuZ0lmPVwiZGF0YS5tdWx0aWxpbmVcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdmFsdWVDb250cm9sIG9mIGdldFZhbHVlQ29udHJvbHMoKTsgbGV0IGkgPSBpbmRleDtcIlxuICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZS1maWVsZFwiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJ2YWx1ZUNvbnRyb2xcIiByb3dzPVwiMTVcIiAvPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInJlbW92ZShpKVwiIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmRlbGV0ZV9vdXRsaW5lPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiYWRkKClcIiBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY2xvc2UoKVwiPkRvbmU8L2J1dHRvbj5cbjwvZGl2PiJdfQ==
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { Validators } from '@angular/forms';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/material/dialog";
|
|
5
|
-
import * as i2 from "@angular/forms";
|
|
6
|
-
import * as i3 from "@angular/material/form-field";
|
|
7
|
-
import * as i4 from "@angular/material/button";
|
|
8
|
-
import * as i5 from "@angular/material/input";
|
|
9
|
-
import * as i6 from "@angular/common";
|
|
10
|
-
export class ReasonDialogComponent {
|
|
11
|
-
constructor(dialogRef, formBuilder) {
|
|
12
|
-
this.dialogRef = dialogRef;
|
|
13
|
-
this.formBuilder = formBuilder;
|
|
14
|
-
}
|
|
15
|
-
ngOnInit() {
|
|
16
|
-
this.formGroup = this.formBuilder.group({
|
|
17
|
-
reason: ['', [Validators.required, Validators.maxLength(1000)]]
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
handleSaveButton() {
|
|
21
|
-
if (!this.formGroup.valid) {
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
this.dialogRef.close({ button: 'save', reason: this.formGroup.controls.reason.value });
|
|
25
|
-
}
|
|
26
|
-
cancel() {
|
|
27
|
-
this.dialogRef.close({ button: 'cancel' });
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
ReasonDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: ReasonDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
-
ReasonDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: ReasonDialogComponent, selector: "configcat-reason-dialog", ngImport: i0, template: "<h3 mat-dialog-title>Add notes</h3>\n<p>This will appear in the Why column of the Audit Log.</p>\n<form [formGroup]=\"formGroup\" (ngSubmit)=\"handleSaveButton()\">\n <div mat-dialog-content class=\"container\">\n <mat-form-field appearance=\"outline\">\n <mat-label></mat-label>\n <textarea matInput formControlName=\"reason\" name=\"reason\" placeholder=\"I'm changing settings because...\"\n rows=\"3\"></textarea>\n <mat-error *ngIf=\"formGroup.controls.reason.invalid\">The field is required.</mat-error>\n </mat-form-field>\n </div>\n <br>\n <div mat-dialog-actions>\n <button type=\"submit\" style=\"margin-right: 10px;\" mat-raised-button color=\"primary\">Add notes & Save</button>\n <button type=\"button\" mat-raised-button (click)=\"cancel()\">Cancel</button>\n </div>\n</form>", styles: [".container>*{width:100%}\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.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { 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: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.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"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: ReasonDialogComponent, decorators: [{
|
|
33
|
-
type: Component,
|
|
34
|
-
args: [{
|
|
35
|
-
selector: 'configcat-reason-dialog',
|
|
36
|
-
templateUrl: './reason-dialog.component.html',
|
|
37
|
-
styleUrls: ['./reason-dialog.component.scss']
|
|
38
|
-
}]
|
|
39
|
-
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.FormBuilder }]; } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhc29uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvZGlhbG9ncy9yZWFzb24tZGlhbG9nL3JlYXNvbi1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL2RpYWxvZ3MvcmVhc29uLWRpYWxvZy9yZWFzb24tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFPcEUsTUFBTSxPQUFPLHFCQUFxQjtJQUloQyxZQUNTLFNBQThDLEVBQzdDLFdBQXdCO1FBRHpCLGNBQVMsR0FBVCxTQUFTLENBQXFDO1FBQzdDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQzlCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUN0QyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNoRSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQ3pCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7O21IQXpCVSxxQkFBcUI7dUdBQXJCLHFCQUFxQiwrRENUbEMsOHpCQWdCTzs0RkRQTSxxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsV0FBVyxFQUFFLGdDQUFnQztvQkFDN0MsU0FBUyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7aUJBQzlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb25maWdjYXQtcmVhc29uLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWFzb24tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVhc29uLWRpYWxvZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJlYXNvbkRpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxSZWFzb25EaWFsb2dDb21wb25lbnQ+LFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIHJlYXNvbjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwMCldXVxuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlU2F2ZUJ1dHRvbigpIHtcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLnZhbGlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoeyBidXR0b246ICdzYXZlJywgcmVhc29uOiB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5yZWFzb24udmFsdWUgfSk7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoeyBidXR0b246ICdjYW5jZWwnIH0pO1xuICB9XG59XG4iLCI8aDMgbWF0LWRpYWxvZy10aXRsZT5BZGQgbm90ZXM8L2gzPlxuPHA+VGhpcyB3aWxsIGFwcGVhciBpbiB0aGUgV2h5IGNvbHVtbiBvZiB0aGUgQXVkaXQgTG9nLjwvcD5cbjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgKG5nU3VibWl0KT1cImhhbmRsZVNhdmVCdXR0b24oKVwiPlxuICA8ZGl2IG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgPG1hdC1sYWJlbD48L21hdC1sYWJlbD5cbiAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJyZWFzb25cIiBuYW1lPVwicmVhc29uXCIgcGxhY2Vob2xkZXI9XCJJJ20gY2hhbmdpbmcgc2V0dGluZ3MgYmVjYXVzZS4uLlwiXG4gICAgICAgIHJvd3M9XCIzXCI+PC90ZXh0YXJlYT5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtR3JvdXAuY29udHJvbHMucmVhc29uLmludmFsaWRcIj5UaGUgZmllbGQgaXMgcmVxdWlyZWQuPC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG4gIDxicj5cbiAgPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDEwcHg7XCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCI+QWRkIG5vdGVzICYgU2F2ZTwvYnV0dG9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjYW5jZWwoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZm9ybT4iXX0=
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class SaveSnackbarComponent {
|
|
4
|
-
constructor() { }
|
|
5
|
-
ngOnInit() {
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
SaveSnackbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: SaveSnackbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
-
SaveSnackbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: SaveSnackbarComponent, selector: "configcat-save-snackbar", ngImport: i0, template: "<p class=\"header\">Settings saved successfully.</p>", styles: ["p{text-align:center;font-weight:bold}.header{font-size:1.2em}\n"] });
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: SaveSnackbarComponent, decorators: [{
|
|
11
|
-
type: Component,
|
|
12
|
-
args: [{
|
|
13
|
-
selector: 'configcat-save-snackbar',
|
|
14
|
-
templateUrl: './save-snackbar.component.html',
|
|
15
|
-
styleUrls: ['./save-snackbar.component.scss']
|
|
16
|
-
}]
|
|
17
|
-
}], ctorParameters: function () { return []; } });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1zbmFja2Jhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvZGlhbG9ncy9zYXZlLXNuYWNrYmFyL3NhdmUtc25hY2tiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL2RpYWxvZ3Mvc2F2ZS1zbmFja2Jhci9zYXZlLXNuYWNrYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBT2xELE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsZ0JBQWdCLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7O21IQUxVLHFCQUFxQjt1R0FBckIscUJBQXFCLCtEQ1BsQyxzREFBa0Q7NEZET3JDLHFCQUFxQjtrQkFMakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxXQUFXLEVBQUUsZ0NBQWdDO29CQUM3QyxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztpQkFDOUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb25maWdjYXQtc2F2ZS1zbmFja2JhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zYXZlLXNuYWNrYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2F2ZS1zbmFja2Jhci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNhdmVTbmFja2JhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG59XG4iLCI8cCBjbGFzcz1cImhlYWRlclwiPlNldHRpbmdzIHNhdmVkIHN1Y2Nlc3NmdWxseS48L3A+Il19
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { BaseComponent } from '../../base/base.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../../_services";
|
|
5
|
-
import * as i2 from "@angular/material/form-field";
|
|
6
|
-
import * as i3 from "@angular/material/select";
|
|
7
|
-
import * as i4 from "@angular/material/core";
|
|
8
|
-
import * as i5 from "@angular/common";
|
|
9
|
-
import * as i6 from "@angular/forms";
|
|
10
|
-
export class EnvironmentSelectComponent extends BaseComponent {
|
|
11
|
-
constructor(publicApiService) {
|
|
12
|
-
super(publicApiService);
|
|
13
|
-
this.environments = [];
|
|
14
|
-
}
|
|
15
|
-
ngOnInit() {
|
|
16
|
-
this.environments = [];
|
|
17
|
-
this.reloadEnvironments();
|
|
18
|
-
}
|
|
19
|
-
ngOnChanges() {
|
|
20
|
-
this.reloadEnvironments();
|
|
21
|
-
}
|
|
22
|
-
reloadEnvironments() {
|
|
23
|
-
if (this.productId) {
|
|
24
|
-
this.createEnvironmentsService().getEnvironments(this.productId).subscribe(environments => {
|
|
25
|
-
this.environments = environments;
|
|
26
|
-
if (this.environments.length > 0) {
|
|
27
|
-
this.valueFormControl.setValue(this.environments[0].environmentId);
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
EnvironmentSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: EnvironmentSelectComponent, deps: [{ token: i1.PublicApiService }], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
-
EnvironmentSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: EnvironmentSelectComponent, selector: "configcat-environment-select", inputs: { valueFormControl: "valueFormControl", productId: "productId" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<mat-form-field class=\"form-field\">\n <mat-select placeholder=\"Environment\" [formControl]=\"valueFormControl\" *ngIf=\"environments\" name=\"value\">\n <mat-option *ngFor=\"let environment of environments\" [value]=\"environment.environmentId\">{{environment.name}}\n </mat-option>\n </mat-select>\n</mat-form-field>", styles: [".form-field{width:100%}\n"], components: [{ type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: EnvironmentSelectComponent, decorators: [{
|
|
36
|
-
type: Component,
|
|
37
|
-
args: [{
|
|
38
|
-
selector: 'configcat-environment-select',
|
|
39
|
-
templateUrl: './environment-select.component.html',
|
|
40
|
-
styleUrls: ['./environment-select.component.css']
|
|
41
|
-
}]
|
|
42
|
-
}], ctorParameters: function () { return [{ type: i1.PublicApiService }]; }, propDecorators: { valueFormControl: [{
|
|
43
|
-
type: Input
|
|
44
|
-
}], productId: [{
|
|
45
|
-
type: Input
|
|
46
|
-
}] } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi9zZWxlY3RzL2Vudmlyb25tZW50LXNlbGVjdC9lbnZpcm9ubWVudC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3NlbGVjdHMvZW52aXJvbm1lbnQtc2VsZWN0L2Vudmlyb25tZW50LXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixLQUFLLEVBQW1DLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7QUFVMUQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGFBQWE7SUFNM0QsWUFDRSxnQkFBa0M7UUFDbEMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFKMUIsaUJBQVksR0FBdUIsRUFBRSxDQUFDO0lBS3RDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDeEYsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7Z0JBQ2pDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7aUJBQ3BFO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O3dIQTdCVSwwQkFBMEI7NEdBQTFCLDBCQUEwQiwwTENYdkMsc1ZBS2lCOzRGRE1KLDBCQUEwQjtrQkFMdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxXQUFXLEVBQUUscUNBQXFDO29CQUNsRCxTQUFTLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztpQkFDbEQ7dUdBR1UsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3B0aW9uYWwsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS9iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudE1vZGVsIH0gZnJvbSAnbmctY29uZmlnY2F0LXB1YmxpY2FwaSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFB1YmxpY0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb25maWdjYXQtZW52aXJvbm1lbnQtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Vudmlyb25tZW50LXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Vudmlyb25tZW50LXNlbGVjdC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnRTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpIHZhbHVlRm9ybUNvbnRyb2whOiBGb3JtQ29udHJvbDtcbiAgQElucHV0KCkgcHJvZHVjdElkITogc3RyaW5nO1xuICBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50TW9kZWxbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpY0FwaVNlcnZpY2U6IFB1YmxpY0FwaVNlcnZpY2UpIHtcbiAgICBzdXBlcihwdWJsaWNBcGlTZXJ2aWNlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZW52aXJvbm1lbnRzID0gW107XG4gICAgdGhpcy5yZWxvYWRFbnZpcm9ubWVudHMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIHRoaXMucmVsb2FkRW52aXJvbm1lbnRzKCk7XG4gIH1cblxuICByZWxvYWRFbnZpcm9ubWVudHMoKSB7XG4gICAgaWYgKHRoaXMucHJvZHVjdElkKSB7XG4gICAgICB0aGlzLmNyZWF0ZUVudmlyb25tZW50c1NlcnZpY2UoKS5nZXRFbnZpcm9ubWVudHModGhpcy5wcm9kdWN0SWQpLnN1YnNjcmliZShlbnZpcm9ubWVudHMgPT4ge1xuICAgICAgICB0aGlzLmVudmlyb25tZW50cyA9IGVudmlyb25tZW50cztcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnZhbHVlRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5lbnZpcm9ubWVudHNbMF0uZW52aXJvbm1lbnRJZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmb3JtLWZpZWxkXCI+XG4gICAgPG1hdC1zZWxlY3QgcGxhY2Vob2xkZXI9XCJFbnZpcm9ubWVudFwiIFtmb3JtQ29udHJvbF09XCJ2YWx1ZUZvcm1Db250cm9sXCIgKm5nSWY9XCJlbnZpcm9ubWVudHNcIiBuYW1lPVwidmFsdWVcIj5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGVudmlyb25tZW50IG9mIGVudmlyb25tZW50c1wiIFt2YWx1ZV09XCJlbnZpcm9ubWVudC5lbnZpcm9ubWVudElkXCI+e3tlbnZpcm9ubWVudC5uYW1lfX1cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIDwvbWF0LXNlbGVjdD5cbjwvbWF0LWZvcm0tZmllbGQ+Il19
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { BaseComponent } from '../../base/base.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../../_services";
|
|
5
|
-
import * as i2 from "@angular/material/form-field";
|
|
6
|
-
import * as i3 from "@angular/material/select";
|
|
7
|
-
import * as i4 from "@angular/material/core";
|
|
8
|
-
import * as i5 from "@angular/forms";
|
|
9
|
-
import * as i6 from "@angular/common";
|
|
10
|
-
export class ProductSelectComponent extends BaseComponent {
|
|
11
|
-
constructor(publicApiService) {
|
|
12
|
-
super(publicApiService);
|
|
13
|
-
this.products = [];
|
|
14
|
-
}
|
|
15
|
-
ngOnInit() {
|
|
16
|
-
this.products = [];
|
|
17
|
-
this.createProductsService().getProducts().subscribe(products => {
|
|
18
|
-
this.products = products;
|
|
19
|
-
if (this.products.length > 0) {
|
|
20
|
-
this.valueFormControl.setValue(this.products[0].productId, {
|
|
21
|
-
emitEvent: true,
|
|
22
|
-
emitModelToViewChange: true, emitViewToModelChange: true
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
ProductSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: ProductSelectComponent, deps: [{ token: i1.PublicApiService }], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
-
ProductSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: ProductSelectComponent, selector: "configcat-product-select", inputs: { valueFormControl: "valueFormControl" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"form-field\">\n <mat-select placeholder=\"Product\" [formControl]=\"valueFormControl\" name=\"productValue\">\n <mat-option *ngFor=\"let product of products\" [value]=\"product.productId\">{{product.name}}\n </mat-option>\n </mat-select>\n</mat-form-field>", styles: [".form-field{width:100%}\n"], components: [{ type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: ProductSelectComponent, decorators: [{
|
|
31
|
-
type: Component,
|
|
32
|
-
args: [{
|
|
33
|
-
selector: 'configcat-product-select',
|
|
34
|
-
templateUrl: './product-select.component.html',
|
|
35
|
-
styleUrls: ['./product-select.component.css']
|
|
36
|
-
}]
|
|
37
|
-
}], ctorParameters: function () { return [{ type: i1.PublicApiService }]; }, propDecorators: { valueFormControl: [{
|
|
38
|
-
type: Input
|
|
39
|
-
}] } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3NlbGVjdHMvcHJvZHVjdC1zZWxlY3QvcHJvZHVjdC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3NlbGVjdHMvcHJvZHVjdC1zZWxlY3QvcHJvZHVjdC1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsS0FBSyxFQUFtQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7O0FBVTFELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxhQUFhO0lBS3ZELFlBQ0UsZ0JBQWtDO1FBQ2xDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBSjFCLGFBQVEsR0FBbUIsRUFBRSxDQUFDO0lBSzlCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzlELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFO29CQUN6RCxTQUFTLEVBQUUsSUFBSTtvQkFDZixxQkFBcUIsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsSUFBSTtpQkFDekQsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O29IQXJCVSxzQkFBc0I7d0dBQXRCLHNCQUFzQix5SUNYbkMsOFNBS2lCOzRGRE1KLHNCQUFzQjtrQkFMbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxXQUFXLEVBQUUsaUNBQWlDO29CQUM5QyxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztpQkFDOUM7dUdBR1UsZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9wdGlvbmFsLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHVjdE1vZGVsIH0gZnJvbSAnbmctY29uZmlnY2F0LXB1YmxpY2FwaSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFB1YmxpY0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb25maWdjYXQtcHJvZHVjdC1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9kdWN0LXNlbGVjdC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHJvZHVjdFNlbGVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHZhbHVlRm9ybUNvbnRyb2whOiBGb3JtQ29udHJvbDtcbiAgcHJvZHVjdHM6IFByb2R1Y3RNb2RlbFtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljQXBpU2VydmljZTogUHVibGljQXBpU2VydmljZSkge1xuICAgIHN1cGVyKHB1YmxpY0FwaVNlcnZpY2UpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wcm9kdWN0cyA9IFtdO1xuICAgIHRoaXMuY3JlYXRlUHJvZHVjdHNTZXJ2aWNlKCkuZ2V0UHJvZHVjdHMoKS5zdWJzY3JpYmUocHJvZHVjdHMgPT4ge1xuICAgICAgdGhpcy5wcm9kdWN0cyA9IHByb2R1Y3RzO1xuICAgICAgaWYgKHRoaXMucHJvZHVjdHMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnZhbHVlRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5wcm9kdWN0c1swXS5wcm9kdWN0SWQsIHtcbiAgICAgICAgICBlbWl0RXZlbnQ6IHRydWUsXG4gICAgICAgICAgZW1pdE1vZGVsVG9WaWV3Q2hhbmdlOiB0cnVlLCBlbWl0Vmlld1RvTW9kZWxDaGFuZ2U6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxufVxuIiwiPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZm9ybS1maWVsZFwiPlxuICAgIDxtYXQtc2VsZWN0IHBsYWNlaG9sZGVyPVwiUHJvZHVjdFwiIFtmb3JtQ29udHJvbF09XCJ2YWx1ZUZvcm1Db250cm9sXCIgbmFtZT1cInByb2R1Y3RWYWx1ZVwiPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiBwcm9kdWN0c1wiIFt2YWx1ZV09XCJwcm9kdWN0LnByb2R1Y3RJZFwiPnt7cHJvZHVjdC5uYW1lfX1cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIDwvbWF0LXNlbGVjdD5cbjwvbWF0LWZvcm0tZmllbGQ+Il19
|