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.
Files changed (58) hide show
  1. package/{esm2015/lib/_models/index.js → esm2020/lib/_models/index.mjs} +0 -0
  2. package/{esm2015/lib/_models/settingValuesModel.js → esm2020/lib/_models/settingValuesModel.mjs} +0 -0
  3. package/{esm2015/lib/_models/updateSettingValuesModel.js → esm2020/lib/_models/updateSettingValuesModel.mjs} +0 -0
  4. package/{esm2015/lib/_services/form-helper.js → esm2020/lib/_services/form-helper.mjs} +0 -0
  5. package/{esm2015/lib/_services/index.js → esm2020/lib/_services/index.mjs} +0 -0
  6. package/esm2020/lib/_services/public-api.service.mjs +68 -0
  7. package/esm2020/lib/_services/setting-list-form-helper.mjs +152 -0
  8. package/esm2020/lib/authorization/authorization.component.mjs +50 -0
  9. package/{esm2015/lib/base/base.component.js → esm2020/lib/base/base.component.mjs} +7 -4
  10. package/{esm2015/lib/configuration.js → esm2020/lib/configuration.mjs} +4 -4
  11. package/esm2020/lib/dialogs/concurrent-dialog/concurrent-dialog.component.mjs +25 -0
  12. package/esm2020/lib/dialogs/expand-dialog/expand-dialog.component.mjs +77 -0
  13. package/esm2020/lib/dialogs/reason-dialog/reason-dialog.component.mjs +36 -0
  14. package/esm2020/lib/dialogs/save-snackbar/save-snackbar.component.mjs +14 -0
  15. package/{esm2015/lib/ng-configcat-publicapi-ui.module.js → esm2020/lib/ng-configcat-publicapi-ui.module.mjs} +5 -5
  16. package/{esm2015/lib/selects/config-select/config-select.component.js → esm2020/lib/selects/config-select/config-select.component.mjs} +7 -12
  17. package/esm2020/lib/selects/environment-select/environment-select.component.mjs +43 -0
  18. package/esm2020/lib/selects/product-select/product-select.component.mjs +36 -0
  19. package/esm2020/lib/selects/setting-select/setting-select.component.mjs +43 -0
  20. package/esm2020/lib/setting-item/setting-item.component.mjs +126 -0
  21. package/esm2020/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.mjs +81 -0
  22. package/esm2020/lib/setting-list/setting/rollout-rules/rollout-rules.component.mjs +295 -0
  23. package/esm2020/lib/setting-list/setting/setting.component.mjs +134 -0
  24. package/esm2020/lib/setting-list/setting/value/value.component.mjs +32 -0
  25. package/esm2020/lib/setting-list/setting-list.component.mjs +197 -0
  26. package/{esm2015/ng-configcat-publicapi-ui.js → esm2020/ng-configcat-publicapi-ui.mjs} +0 -0
  27. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  28. package/fesm2015/ng-configcat-publicapi-ui.mjs +1579 -0
  29. package/fesm2015/ng-configcat-publicapi-ui.mjs.map +1 -0
  30. package/fesm2020/ng-configcat-publicapi-ui.mjs +1560 -0
  31. package/fesm2020/ng-configcat-publicapi-ui.mjs.map +1 -0
  32. package/lib/_services/public-api.service.d.ts +2 -1
  33. package/lib/base/base.component.d.ts +1 -0
  34. package/lib/setting-item/setting-item.component.d.ts +3 -1
  35. package/lib/setting-list/setting/rollout-rules/rollout-rules.component.d.ts +10 -2
  36. package/lib/setting-list/setting/setting.component.d.ts +4 -2
  37. package/lib/setting-list/setting-list.component.d.ts +4 -1
  38. package/package.json +22 -9
  39. package/bundles/ng-configcat-publicapi-ui.umd.js +0 -1979
  40. package/bundles/ng-configcat-publicapi-ui.umd.js.map +0 -1
  41. package/esm2015/lib/_services/public-api.service.js +0 -69
  42. package/esm2015/lib/_services/setting-list-form-helper.js +0 -135
  43. package/esm2015/lib/authorization/authorization.component.js +0 -54
  44. package/esm2015/lib/dialogs/concurrent-dialog/concurrent-dialog.component.js +0 -29
  45. package/esm2015/lib/dialogs/expand-dialog/expand-dialog.component.js +0 -81
  46. package/esm2015/lib/dialogs/reason-dialog/reason-dialog.component.js +0 -40
  47. package/esm2015/lib/dialogs/save-snackbar/save-snackbar.component.js +0 -18
  48. package/esm2015/lib/selects/environment-select/environment-select.component.js +0 -47
  49. package/esm2015/lib/selects/product-select/product-select.component.js +0 -40
  50. package/esm2015/lib/selects/setting-select/setting-select.component.js +0 -47
  51. package/esm2015/lib/setting-item/setting-item.component.js +0 -121
  52. package/esm2015/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.js +0 -87
  53. package/esm2015/lib/setting-list/setting/rollout-rules/rollout-rules.component.js +0 -287
  54. package/esm2015/lib/setting-list/setting/setting.component.js +0 -131
  55. package/esm2015/lib/setting-list/setting/value/value.component.js +0 -39
  56. package/esm2015/lib/setting-list/setting-list.component.js +0 -195
  57. package/fesm2015/ng-configcat-publicapi-ui.js +0 -1574
  58. 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