ng-configcat-publicapi-ui 3.0.8 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/_directives/input-display-normalizer.directive.mjs +38 -0
- package/esm2022/lib/_models/flag-state.mjs +2 -0
- package/esm2022/lib/_models/setting-value-formgroup.mjs +2 -0
- package/esm2022/lib/_models/user-comparator.mjs +100 -0
- package/esm2022/lib/_services/app-data-adapter.mjs +18 -0
- package/esm2022/lib/_services/comparison-value-list-helper.mjs +72 -0
- package/esm2022/lib/_services/date-helper.mjs +56 -0
- package/esm2022/lib/_services/form-generator.mjs +359 -0
- package/esm2022/lib/_services/form-helper.mjs +107 -0
- package/esm2022/lib/_services/messaging.service.mjs +26 -0
- package/esm2022/lib/_services/public-api.service.mjs +77 -0
- package/esm2022/lib/_services/setting-list-form-helper.mjs +171 -0
- package/esm2022/lib/_services/tracking.directive.mjs +16 -0
- package/esm2022/lib/ace-editor/ace-editor.component.mjs +137 -0
- package/esm2022/lib/authorization/authorization.component.mjs +62 -0
- package/{esm2020 → esm2022}/lib/base/base-select.component.mjs +4 -4
- package/esm2022/lib/base/base.component.mjs +48 -0
- package/esm2022/lib/bootstrap.mjs +10 -0
- package/{esm2020 → esm2022}/lib/configuration.mjs +4 -4
- package/esm2022/lib/dialogs/confirmation-dialog/confirmation-dialog.mjs +28 -0
- package/{esm2020 → esm2022}/lib/dialogs/delete-setting-dialog/delete-setting-dialog.component.mjs +6 -6
- package/esm2022/lib/dialogs/expand-dialog/expand-dialog.component.mjs +80 -0
- package/esm2022/lib/dialogs/info-dialog/info-dialog.mjs +29 -0
- package/esm2022/lib/dialogs/reason-dialog/reason-dialog.component.mjs +36 -0
- package/{esm2020 → esm2022}/lib/dialogs/save-snackbar/save-snackbar.component.mjs +5 -5
- package/esm2022/lib/ng-configcat-publicapi-ui.module.mjs +285 -0
- package/esm2022/lib/selects/config-select/config-select.component.mjs +60 -0
- package/esm2022/lib/selects/environment-select/environment-select.component.mjs +47 -0
- package/esm2022/lib/selects/product-select/product-select.component.mjs +40 -0
- package/esm2022/lib/selects/setting-select/setting-select.component.mjs +47 -0
- package/esm2022/lib/setting-item/setting-item.component.mjs +118 -0
- package/esm2022/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.mjs +81 -0
- package/esm2022/lib/setting-list/setting/rollout-rules/rollout-rules.component.mjs +293 -0
- package/{esm2020 → esm2022}/lib/setting-list/setting/setting.component.mjs +5 -5
- package/esm2022/lib/setting-list/setting/value/value.component.mjs +37 -0
- package/esm2022/lib/setting-list/setting-list.component.mjs +194 -0
- package/esm2022/lib/v2/feature-flag/date-time-picker/date-time-picker.component.mjs +123 -0
- package/esm2022/lib/v2/feature-flag/dependees-dialog/dependees-dialog.component.mjs +30 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/evaluation-formula.component.mjs +220 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/feature-flag-value/feature-flag-value.component.mjs +61 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/popout-text-editor-dialog/popout-text-editor-dialog.component.mjs +72 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/condition-chip/condition-chip.component.mjs +25 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/conditions.component.mjs +105 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/prerequisite-flag-condition/prerequisite-flag-condition.component.mjs +75 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/segment-condition/segment-condition.component.mjs +48 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/comparator-dialog/comparator-dialog.component.mjs +113 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/popout-list-editor-dialog/popout-list-editor-dialog.component.mjs +251 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/user-condition.component.mjs +444 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/percentage-options/percentage-options.component.mjs +84 -0
- package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/targeting-rule.component.mjs +129 -0
- package/esm2022/lib/v2/feature-flag/feature-flag.component.mjs +190 -0
- package/esm2022/lib/v2/feature-flag/percentage-evaluation-attribute-dialog/percentage-evaluation-attribute-dialog.component.mjs +65 -0
- package/esm2022/lib/v2/feature-flag-item.component.mjs +319 -0
- package/{esm2020 → esm2022}/public-api.mjs +2 -1
- package/fesm2022/ng-configcat-publicapi-ui.mjs +4790 -0
- package/fesm2022/ng-configcat-publicapi-ui.mjs.map +1 -0
- package/lib/_models/flag-state.d.ts +20 -0
- package/lib/_models/setting-value-formgroup.d.ts +69 -0
- package/lib/_models/user-comparator.d.ts +84 -0
- package/lib/_services/app-data-adapter.d.ts +7 -0
- package/lib/_services/comparison-value-list-helper.d.ts +17 -0
- package/lib/_services/date-helper.d.ts +6 -0
- package/lib/_services/form-generator.d.ts +59 -0
- package/lib/_services/form-helper.d.ts +4 -1
- package/lib/_services/messaging.service.d.ts +12 -0
- package/lib/_services/public-api.service.d.ts +2 -1
- package/lib/_services/setting-list-form-helper.d.ts +1 -1
- package/lib/_services/tracking.directive.d.ts +6 -0
- package/lib/ace-editor/ace-editor.component.d.ts +32 -0
- package/lib/authorization/authorization.component.d.ts +2 -2
- package/lib/base/base-select.component.d.ts +1 -1
- package/lib/base/base.component.d.ts +2 -1
- package/lib/bootstrap.d.ts +12 -0
- package/lib/dialogs/confirmation-dialog/confirmation-dialog.d.ts +19 -0
- package/lib/dialogs/info-dialog/info-dialog.d.ts +17 -0
- package/lib/ng-configcat-publicapi-ui.module.d.ts +47 -19
- package/lib/selects/config-select/config-select.component.d.ts +1 -1
- package/lib/selects/environment-select/environment-select.component.d.ts +1 -1
- package/lib/selects/product-select/product-select.component.d.ts +1 -1
- package/lib/selects/setting-select/setting-select.component.d.ts +1 -1
- package/lib/setting-item/setting-item.component.d.ts +4 -2
- package/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.d.ts +1 -1
- package/lib/setting-list/setting/rollout-rules/rollout-rules.component.d.ts +4 -4
- package/lib/setting-list/setting/setting.component.d.ts +1 -1
- package/lib/setting-list/setting/value/value.component.d.ts +1 -1
- package/lib/setting-list/setting-list.component.d.ts +1 -1
- package/lib/v2/feature-flag/date-time-picker/date-time-picker.component.d.ts +25 -0
- package/lib/v2/feature-flag/dependees-dialog/dependees-dialog.component.d.ts +27 -0
- package/lib/v2/feature-flag/evaluation-formula/evaluation-formula.component.d.ts +41 -0
- package/lib/v2/feature-flag/evaluation-formula/feature-flag-value/feature-flag-value.component.d.ts +18 -0
- package/lib/v2/feature-flag/evaluation-formula/popout-text-editor-dialog/popout-text-editor-dialog.component.d.ts +30 -0
- package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/condition-chip/condition-chip.component.d.ts +10 -0
- package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/conditions.component.d.ts +27 -0
- package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/prerequisite-flag-condition/prerequisite-flag-condition.component.d.ts +36 -0
- package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/segment-condition/segment-condition.component.d.ts +21 -0
- package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/comparator-dialog/comparator-dialog.component.d.ts +79 -0
- package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/popout-list-editor-dialog/popout-list-editor-dialog.component.d.ts +63 -0
- package/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/user-condition.component.d.ts +94 -0
- package/lib/v2/feature-flag/evaluation-formula/targeting-rule/percentage-options/percentage-options.component.d.ts +31 -0
- package/lib/v2/feature-flag/evaluation-formula/targeting-rule/targeting-rule.component.d.ts +33 -0
- package/lib/v2/feature-flag/feature-flag.component.d.ts +49 -0
- package/lib/v2/feature-flag/percentage-evaluation-attribute-dialog/percentage-evaluation-attribute-dialog.component.d.ts +28 -0
- package/lib/v2/feature-flag-item.component.d.ts +66 -0
- package/package.json +12 -16
- package/public-api.d.ts +1 -0
- package/public-api.scss +205 -3
- package/esm2020/lib/_directives/input-display-normalizer.directive.mjs +0 -38
- package/esm2020/lib/_services/form-helper.mjs +0 -104
- package/esm2020/lib/_services/public-api.service.mjs +0 -71
- package/esm2020/lib/_services/setting-list-form-helper.mjs +0 -171
- package/esm2020/lib/authorization/authorization.component.mjs +0 -62
- package/esm2020/lib/base/base.component.mjs +0 -45
- package/esm2020/lib/dialogs/expand-dialog/expand-dialog.component.mjs +0 -80
- package/esm2020/lib/dialogs/reason-dialog/reason-dialog.component.mjs +0 -36
- package/esm2020/lib/ng-configcat-publicapi-ui.module.mjs +0 -179
- package/esm2020/lib/selects/config-select/config-select.component.mjs +0 -60
- package/esm2020/lib/selects/environment-select/environment-select.component.mjs +0 -47
- package/esm2020/lib/selects/product-select/product-select.component.mjs +0 -40
- package/esm2020/lib/selects/setting-select/setting-select.component.mjs +0 -47
- package/esm2020/lib/setting-item/setting-item.component.mjs +0 -116
- package/esm2020/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.mjs +0 -81
- package/esm2020/lib/setting-list/setting/rollout-rules/rollout-rules.component.mjs +0 -293
- package/esm2020/lib/setting-list/setting/value/value.component.mjs +0 -37
- package/esm2020/lib/setting-list/setting-list.component.mjs +0 -194
- package/fesm2015/ng-configcat-publicapi-ui.mjs +0 -1786
- package/fesm2015/ng-configcat-publicapi-ui.mjs.map +0 -1
- package/fesm2020/ng-configcat-publicapi-ui.mjs +0 -1763
- package/fesm2020/ng-configcat-publicapi-ui.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/_directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/_models/deleteSettingModel.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/_models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/_models/settingValuesModel.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/_models/updateSettingValuesModel.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/_services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/_services/platform-helper.mjs +0 -0
- /package/{esm2020 → esm2022}/ng-configcat-publicapi-ui.mjs +0 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Injectable, Optional } from '@angular/core';
|
|
2
|
+
import { Configuration as PublicApiConfiguration, ProductsService, EnvironmentsService, ConfigsService, FeatureFlagsSettingsService, FeatureFlagSettingValuesService, MeService, IntegrationLinksService, SegmentsService, FeatureFlagSettingValuesV2Service } from 'ng-configcat-publicapi';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common/http";
|
|
5
|
+
import * as i2 from "../configuration";
|
|
6
|
+
export class PublicApiService {
|
|
7
|
+
constructor(httpClient, configuration) {
|
|
8
|
+
this.httpClient = httpClient;
|
|
9
|
+
this.configuration = configuration;
|
|
10
|
+
}
|
|
11
|
+
createMeService(basicAuthUsername = null, basicAuthPassword = null, basePath = null) {
|
|
12
|
+
return new MeService(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({
|
|
13
|
+
username: basicAuthUsername ?? this.configuration?.basicAuthUsername,
|
|
14
|
+
password: basicAuthPassword ?? this.configuration?.basicAuthPassword
|
|
15
|
+
}));
|
|
16
|
+
}
|
|
17
|
+
createProductsService(basicAuthUsername = null, basicAuthPassword = null, basePath = null) {
|
|
18
|
+
return new ProductsService(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({
|
|
19
|
+
username: basicAuthUsername ?? this.configuration?.basicAuthUsername,
|
|
20
|
+
password: basicAuthPassword ?? this.configuration?.basicAuthPassword
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
createConfigsService(basicAuthUsername = null, basicAuthPassword = null, basePath = null) {
|
|
24
|
+
return new ConfigsService(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({
|
|
25
|
+
username: basicAuthUsername ?? this.configuration?.basicAuthUsername,
|
|
26
|
+
password: basicAuthPassword ?? this.configuration?.basicAuthPassword
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
createEnvironmentsService(basicAuthUsername = null, basicAuthPassword = null, basePath = null) {
|
|
30
|
+
return new EnvironmentsService(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({
|
|
31
|
+
username: basicAuthUsername ?? this.configuration?.basicAuthUsername,
|
|
32
|
+
password: basicAuthPassword ?? this.configuration?.basicAuthPassword
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
createSettingsService(basicAuthUsername = null, basicAuthPassword = null, basePath = null) {
|
|
36
|
+
return new FeatureFlagsSettingsService(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({
|
|
37
|
+
username: basicAuthUsername ?? this.configuration?.basicAuthUsername,
|
|
38
|
+
password: basicAuthPassword ?? this.configuration?.basicAuthPassword
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
createSettingValuesV2Service(basicAuthUsername = null, basicAuthPassword = null, basePath = null) {
|
|
42
|
+
return new FeatureFlagSettingValuesV2Service(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({
|
|
43
|
+
username: basicAuthUsername ?? this.configuration?.basicAuthUsername,
|
|
44
|
+
password: basicAuthPassword ?? this.configuration?.basicAuthPassword
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
createSettingValuesService(basicAuthUsername = null, basicAuthPassword = null, basePath = null) {
|
|
48
|
+
return new FeatureFlagSettingValuesService(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({
|
|
49
|
+
username: basicAuthUsername ?? this.configuration?.basicAuthUsername,
|
|
50
|
+
password: basicAuthPassword ?? this.configuration?.basicAuthPassword
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
createIntegrationLinksService(basicAuthUsername = null, basicAuthPassword = null, basePath = null) {
|
|
54
|
+
return new IntegrationLinksService(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({
|
|
55
|
+
username: basicAuthUsername ?? this.configuration?.basicAuthUsername,
|
|
56
|
+
password: basicAuthPassword ?? this.configuration?.basicAuthPassword
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
createSegmentsService(basicAuthUsername = null, basicAuthPassword = null, basePath = null) {
|
|
60
|
+
return new SegmentsService(this.httpClient, basePath ?? this.configuration?.basePath, new PublicApiConfiguration({
|
|
61
|
+
username: basicAuthUsername ?? this.configuration?.basicAuthUsername,
|
|
62
|
+
password: basicAuthPassword ?? this.configuration?.basicAuthPassword
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
getDashboardBasePath() {
|
|
66
|
+
return this.configuration?.dashboardBasePath ?? 'https://app.configcat.com';
|
|
67
|
+
}
|
|
68
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PublicApiService, deps: [{ token: i1.HttpClient }, { token: i2.Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
69
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PublicApiService, providedIn: 'root' }); }
|
|
70
|
+
}
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PublicApiService, decorators: [{
|
|
72
|
+
type: Injectable,
|
|
73
|
+
args: [{ providedIn: 'root' }]
|
|
74
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.Configuration, decorators: [{
|
|
75
|
+
type: Optional
|
|
76
|
+
}] }] });
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL19zZXJ2aWNlcy9wdWJsaWMtYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUNILGFBQWEsSUFBSSxzQkFBc0IsRUFDdkMsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFDcEQsMkJBQTJCLEVBQUUsK0JBQStCLEVBQUUsU0FBUyxFQUN2RSx1QkFBdUIsRUFDdkIsZUFBZSxFQUNmLGlDQUFpQyxFQUNwQyxNQUFNLHdCQUF3QixDQUFDOzs7O0FBSWhDLE1BQU0sT0FBTyxnQkFBZ0I7SUFFekIsWUFDWSxVQUFzQixFQUNWLGFBQTRCO1FBRHhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDVixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUNwRCxDQUFDO0lBRUQsZUFBZSxDQUFDLG9CQUFtQyxJQUFJLEVBQUUsb0JBQW1DLElBQUksRUFBRSxXQUEwQixJQUFJO1FBQzVILE9BQU8sSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQzFFLElBQUksc0JBQXNCLENBQUM7WUFDdkIsUUFBUSxFQUFFLGlCQUFpQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsaUJBQWlCO1lBQ3BFLFFBQVEsRUFBRSxpQkFBaUIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLGlCQUFpQjtTQUN2RSxDQUFDLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxvQkFBbUMsSUFBSSxFQUFFLG9CQUFtQyxJQUFJLEVBQUUsV0FBMEIsSUFBSTtRQUNsSSxPQUFPLElBQUksZUFB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QUFtQyxJQUFJLEVBQUUsV0FBMEIsSUFBSTtRQUMxSSxPQUFPLElBQUksdUJBQXVCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsSUFBSSxzQkFBc0IsQ0FBQztZQUNySCxRQUFRLEVBQUUsaUJBQWlCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxpQkFBaUI7WUFDcEUsUUFBUSxFQUFFLGlCQUFpQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsaUJBQWlCO1NBQ3ZFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELHFCQUFxQixDQUFDLG9CQUFtQyxJQUFJLEVBQUUsb0JBQW1DLElBQUksRUFBRSxXQUEwQixJQUFJO1FBQ2xJLE9BQU8sSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsSUFBSSxzQkFBc0IsQ0FBQztZQUM3RyxRQUFRLEVBQUUsaUJBQWlCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxpQkFBaUI7WUFDcEUsUUFBUSxFQUFFLGlCQUFpQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsaUJBQWlCO1NBQ3ZFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELG9CQUFvQjtRQUNoQixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLElBQUksMkJBQTJCLENBQUM7SUFDaEYsQ0FBQzs4R0ExRVEsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FESCxNQUFNOzsyRkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBS3pCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gICAgQ29uZmlndXJhdGlvbiBhcyBQdWJsaWNBcGlDb25maWd1cmF0aW9uLFxuICAgIFByb2R1Y3RzU2VydmljZSwgRW52aXJvbm1lbnRzU2VydmljZSwgQ29uZmlnc1NlcnZpY2UsXG4gICAgRmVhdHVyZUZsYWdzU2V0dGluZ3NTZXJ2aWNlLCBGZWF0dXJlRmxhZ1NldHRpbmdWYWx1ZXNTZXJ2aWNlLCBNZVNlcnZpY2UsXG4gICAgSW50ZWdyYXRpb25MaW5rc1NlcnZpY2UsXG4gICAgU2VnbWVudHNTZXJ2aWNlLFxuICAgIEZlYXR1cmVGbGFnU2V0dGluZ1ZhbHVlc1YyU2VydmljZVxufSBmcm9tICduZy1jb25maWdjYXQtcHVibGljYXBpJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9jb25maWd1cmF0aW9uJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQdWJsaWNBcGlTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvbikge1xuICAgIH1cblxuICAgIGNyZWF0ZU1lU2VydmljZShiYXNpY0F1dGhVc2VybmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGJhc2ljQXV0aFBhc3N3b3JkOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYmFzZVBhdGg6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBuZXcgTWVTZXJ2aWNlKHRoaXMuaHR0cENsaWVudCwgYmFzZVBhdGggPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNlUGF0aCxcbiAgICAgICAgICAgIG5ldyBQdWJsaWNBcGlDb25maWd1cmF0aW9uKHtcbiAgICAgICAgICAgICAgICB1c2VybmFtZTogYmFzaWNBdXRoVXNlcm5hbWUgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhVc2VybmFtZSxcbiAgICAgICAgICAgICAgICBwYXNzd29yZDogYmFzaWNBdXRoUGFzc3dvcmQgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhQYXNzd29yZFxuICAgICAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGNyZWF0ZVByb2R1Y3RzU2VydmljZShiYXNpY0F1dGhVc2VybmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGJhc2ljQXV0aFBhc3N3b3JkOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYmFzZVBhdGg6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdHNTZXJ2aWNlKHRoaXMuaHR0cENsaWVudCwgYmFzZVBhdGggPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNlUGF0aCxcbiAgICAgICAgICAgIG5ldyBQdWJsaWNBcGlDb25maWd1cmF0aW9uKHtcbiAgICAgICAgICAgICAgICB1c2VybmFtZTogYmFzaWNBdXRoVXNlcm5hbWUgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhVc2VybmFtZSxcbiAgICAgICAgICAgICAgICBwYXNzd29yZDogYmFzaWNBdXRoUGFzc3dvcmQgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhQYXNzd29yZFxuICAgICAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGNyZWF0ZUNvbmZpZ3NTZXJ2aWNlKGJhc2ljQXV0aFVzZXJuYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYmFzaWNBdXRoUGFzc3dvcmQ6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNlUGF0aDogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb25maWdzU2VydmljZSh0aGlzLmh0dHBDbGllbnQsIGJhc2VQYXRoID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzZVBhdGgsIG5ldyBQdWJsaWNBcGlDb25maWd1cmF0aW9uKHtcbiAgICAgICAgICAgIHVzZXJuYW1lOiBiYXNpY0F1dGhVc2VybmFtZSA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2ljQXV0aFVzZXJuYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGJhc2ljQXV0aFBhc3N3b3JkID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzaWNBdXRoUGFzc3dvcmRcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGNyZWF0ZUVudmlyb25tZW50c1NlcnZpY2UoYmFzaWNBdXRoVXNlcm5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNpY0F1dGhQYXNzd29yZDogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGJhc2VQYXRoOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbmV3IEVudmlyb25tZW50c1NlcnZpY2UodGhpcy5odHRwQ2xpZW50LCBiYXNlUGF0aCA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2VQYXRoLCBuZXcgUHVibGljQXBpQ29uZmlndXJhdGlvbih7XG4gICAgICAgICAgICB1c2VybmFtZTogYmFzaWNBdXRoVXNlcm5hbWUgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhVc2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBiYXNpY0F1dGhQYXNzd29yZCA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2ljQXV0aFBhc3N3b3JkXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBjcmVhdGVTZXR0aW5nc1NlcnZpY2UoYmFzaWNBdXRoVXNlcm5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNpY0F1dGhQYXNzd29yZDogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGJhc2VQYXRoOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbmV3IEZlYXR1cmVGbGFnc1NldHRpbmdzU2VydmljZSh0aGlzLmh0dHBDbGllbnQsIGJhc2VQYXRoID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzZVBhdGgsIG5ldyBQdWJsaWNBcGlDb25maWd1cmF0aW9uKHtcbiAgICAgICAgICAgIHVzZXJuYW1lOiBiYXNpY0F1dGhVc2VybmFtZSA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2ljQXV0aFVzZXJuYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGJhc2ljQXV0aFBhc3N3b3JkID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzaWNBdXRoUGFzc3dvcmRcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGNyZWF0ZVNldHRpbmdWYWx1ZXNWMlNlcnZpY2UoYmFzaWNBdXRoVXNlcm5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNpY0F1dGhQYXNzd29yZDogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGJhc2VQYXRoOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbmV3IEZlYXR1cmVGbGFnU2V0dGluZ1ZhbHVlc1YyU2VydmljZSh0aGlzLmh0dHBDbGllbnQsIGJhc2VQYXRoID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzZVBhdGgsIG5ldyBQdWJsaWNBcGlDb25maWd1cmF0aW9uKHtcbiAgICAgICAgICAgIHVzZXJuYW1lOiBiYXNpY0F1dGhVc2VybmFtZSA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2ljQXV0aFVzZXJuYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGJhc2ljQXV0aFBhc3N3b3JkID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzaWNBdXRoUGFzc3dvcmRcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGNyZWF0ZVNldHRpbmdWYWx1ZXNTZXJ2aWNlKGJhc2ljQXV0aFVzZXJuYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYmFzaWNBdXRoUGFzc3dvcmQ6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNlUGF0aDogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGZWF0dXJlRmxhZ1NldHRpbmdWYWx1ZXNTZXJ2aWNlKHRoaXMuaHR0cENsaWVudCwgYmFzZVBhdGggPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNlUGF0aCwgbmV3IFB1YmxpY0FwaUNvbmZpZ3VyYXRpb24oe1xuICAgICAgICAgICAgdXNlcm5hbWU6IGJhc2ljQXV0aFVzZXJuYW1lID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzaWNBdXRoVXNlcm5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZDogYmFzaWNBdXRoUGFzc3dvcmQgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhQYXNzd29yZFxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgY3JlYXRlSW50ZWdyYXRpb25MaW5rc1NlcnZpY2UoYmFzaWNBdXRoVXNlcm5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNpY0F1dGhQYXNzd29yZDogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGJhc2VQYXRoOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbmV3IEludGVncmF0aW9uTGlua3NTZXJ2aWNlKHRoaXMuaHR0cENsaWVudCwgYmFzZVBhdGggPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNlUGF0aCwgbmV3IFB1YmxpY0FwaUNvbmZpZ3VyYXRpb24oe1xuICAgICAgICAgICAgdXNlcm5hbWU6IGJhc2ljQXV0aFVzZXJuYW1lID8/IHRoaXMuY29uZmlndXJhdGlvbj8uYmFzaWNBdXRoVXNlcm5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZDogYmFzaWNBdXRoUGFzc3dvcmQgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhQYXNzd29yZFxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgY3JlYXRlU2VnbWVudHNTZXJ2aWNlKGJhc2ljQXV0aFVzZXJuYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgYmFzaWNBdXRoUGFzc3dvcmQ6IHN0cmluZyB8IG51bGwgPSBudWxsLCBiYXNlUGF0aDogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTZWdtZW50c1NlcnZpY2UodGhpcy5odHRwQ2xpZW50LCBiYXNlUGF0aCA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2VQYXRoLCBuZXcgUHVibGljQXBpQ29uZmlndXJhdGlvbih7XG4gICAgICAgICAgICB1c2VybmFtZTogYmFzaWNBdXRoVXNlcm5hbWUgPz8gdGhpcy5jb25maWd1cmF0aW9uPy5iYXNpY0F1dGhVc2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBiYXNpY0F1dGhQYXNzd29yZCA/PyB0aGlzLmNvbmZpZ3VyYXRpb24/LmJhc2ljQXV0aFBhc3N3b3JkXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBnZXREYXNoYm9hcmRCYXNlUGF0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbj8uZGFzaGJvYXJkQmFzZVBhdGggPz8gJ2h0dHBzOi8vYXBwLmNvbmZpZ2NhdC5jb20nO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { RolloutRuleComparator, SettingType } from 'ng-configcat-publicapi';
|
|
4
|
+
import { FormHelper } from './form-helper';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/forms";
|
|
7
|
+
export class SettingListFormHelper {
|
|
8
|
+
constructor(formBuilder) {
|
|
9
|
+
this.formBuilder = formBuilder;
|
|
10
|
+
}
|
|
11
|
+
createSettingValuesFormGroup(settingValuesModel) {
|
|
12
|
+
const formGroup = this.formBuilder.group({
|
|
13
|
+
settingValues: this.formBuilder.array(settingValuesModel.settingValues.map(sv => {
|
|
14
|
+
return this.createSettingValueFormGroup(sv, settingValuesModel.readOnly);
|
|
15
|
+
})),
|
|
16
|
+
// Decorator
|
|
17
|
+
environment: this.formBuilder.group({
|
|
18
|
+
environmentId: [{ value: settingValuesModel.environment.environmentId, disabled: true }],
|
|
19
|
+
name: [{ value: settingValuesModel.environment.name, disabled: true }],
|
|
20
|
+
}),
|
|
21
|
+
comparisonAttributes: [[]]
|
|
22
|
+
});
|
|
23
|
+
const rolloutRules = this.getAllRolloutRules(formGroup);
|
|
24
|
+
const comparisonAttributes = this.getComparisonAttributes(rolloutRules);
|
|
25
|
+
formGroup.patchValue({ comparisonAttributes: comparisonAttributes });
|
|
26
|
+
return formGroup;
|
|
27
|
+
}
|
|
28
|
+
createSettingValueFormGroup(settingValueModel, readOnly) {
|
|
29
|
+
if (!settingValueModel.setting) {
|
|
30
|
+
return this.formBuilder.group({});
|
|
31
|
+
}
|
|
32
|
+
return this.formBuilder.group({
|
|
33
|
+
settingId: [settingValueModel.setting.settingId],
|
|
34
|
+
value: [
|
|
35
|
+
{ value: settingValueModel.value, disabled: readOnly },
|
|
36
|
+
this.getValidatorsForSettingType(settingValueModel.setting.settingType)
|
|
37
|
+
],
|
|
38
|
+
rolloutPercentageItems: settingValueModel.rolloutPercentageItems
|
|
39
|
+
? this.formBuilder.array(settingValueModel.rolloutPercentageItems.map(p => {
|
|
40
|
+
// @ts-ignore()
|
|
41
|
+
return this.createRolloutPercentageItemFormGroup(p, readOnly, settingValueModel.setting.settingType);
|
|
42
|
+
}))
|
|
43
|
+
: this.formBuilder.array([]), rolloutRules: settingValueModel.rolloutRules
|
|
44
|
+
? this.formBuilder.array(settingValueModel.rolloutRules.map(r => {
|
|
45
|
+
// @ts-ignore()
|
|
46
|
+
return this.createRolloutRuleFormGroup(r, readOnly, settingValueModel.setting.settingType);
|
|
47
|
+
}))
|
|
48
|
+
: this.formBuilder.array([]),
|
|
49
|
+
updatedAt: [{ value: settingValueModel.updatedAt, disabled: true }],
|
|
50
|
+
lastUpdaterUserEmail: [{ value: settingValueModel.lastUpdaterUserEmail, disabled: true }],
|
|
51
|
+
lastUpdaterUserFullName: [{ value: settingValueModel.lastUpdaterUserFullName, disabled: true }],
|
|
52
|
+
rolloutPercentageItemsSum: [{ value: 100, disabled: false }, [Validators.min(100), Validators.max(100)]],
|
|
53
|
+
// Decoration
|
|
54
|
+
setting: this.formBuilder.group({
|
|
55
|
+
settingId: [{ value: settingValueModel.setting.settingId, disabled: true }],
|
|
56
|
+
key: [{ value: settingValueModel.setting.key, disabled: true }],
|
|
57
|
+
name: [{ value: settingValueModel.setting.name, disabled: true }],
|
|
58
|
+
hint: [{ value: settingValueModel.setting.hint, disabled: true }],
|
|
59
|
+
settingType: [{ value: settingValueModel.setting.settingType, disabled: true }],
|
|
60
|
+
creatorEmail: [{ value: settingValueModel.setting.creatorEmail, disabled: true }],
|
|
61
|
+
creatorFullName: [{ value: settingValueModel.setting.creatorFullName, disabled: true }],
|
|
62
|
+
createdAt: [{ value: settingValueModel.setting.createdAt, disabled: true }]
|
|
63
|
+
}),
|
|
64
|
+
integrationLinks: settingValueModel.integrationLinks ? this.formBuilder.array(settingValueModel.integrationLinks.map(il => {
|
|
65
|
+
return this.formBuilder.group({
|
|
66
|
+
key: [{ value: il.key, disabled: true }],
|
|
67
|
+
description: [{ value: il.description, disabled: true }],
|
|
68
|
+
integrationLinkType: [{ value: il.integrationLinkType, disabled: true }],
|
|
69
|
+
url: [{ value: il.url, disabled: true }],
|
|
70
|
+
});
|
|
71
|
+
})) : this.formBuilder.array([])
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
createRolloutPercentageItemFormGroup(p, readOnly, settingType) {
|
|
75
|
+
return this.formBuilder.group({
|
|
76
|
+
percentage: [{ value: p.percentage, disabled: readOnly }, [Validators.required, Validators.min(0), Validators.max(100)]],
|
|
77
|
+
value: [
|
|
78
|
+
{ value: p.value, disabled: readOnly },
|
|
79
|
+
this.getValidatorsForSettingType(settingType)
|
|
80
|
+
],
|
|
81
|
+
valueDisabled: [
|
|
82
|
+
{ value: p.value, disabled: true }, // For percentage item value
|
|
83
|
+
]
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
createRolloutRuleFormGroup(r, readOnly, settingType) {
|
|
87
|
+
if (r.comparator) {
|
|
88
|
+
return this.formBuilder.group({
|
|
89
|
+
type: [{ value: 0, disabled: true }],
|
|
90
|
+
comparisonAttribute: [{ value: r.comparisonAttribute, disabled: readOnly }, [Validators.required]],
|
|
91
|
+
comparator: [{ value: r.comparator, disabled: readOnly }, [Validators.required]],
|
|
92
|
+
comparisonValue: [{ value: r.comparisonValue, disabled: readOnly }, [Validators.required]],
|
|
93
|
+
value: [
|
|
94
|
+
{ value: r.value, disabled: readOnly },
|
|
95
|
+
this.getValidatorsForSettingType(settingType)
|
|
96
|
+
],
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
else if (r.segmentComparator) {
|
|
100
|
+
return this.formBuilder.group({
|
|
101
|
+
type: [{ value: 1, disabled: true }],
|
|
102
|
+
segmentComparator: [{ value: r.segmentComparator, disabled: readOnly }, [Validators.required]],
|
|
103
|
+
segmentId: [{ value: r.segmentId, disabled: readOnly }, [Validators.required]],
|
|
104
|
+
value: [
|
|
105
|
+
{ value: r.value, disabled: readOnly },
|
|
106
|
+
this.getValidatorsForSettingType(settingType)
|
|
107
|
+
],
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
throw new Error('Invalid rollout rule');
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
getValidatorsForSettingType(settingType) {
|
|
115
|
+
switch (settingType) {
|
|
116
|
+
case SettingType.Int:
|
|
117
|
+
return [Validators.required,
|
|
118
|
+
Validators.min(-2147483648), Validators.max(2147483647), Validators.pattern('^[-+]?[0-9]\\d*$')];
|
|
119
|
+
case SettingType.Double:
|
|
120
|
+
return [Validators.required, Validators.min(-1.79769313486232E+308), Validators.max(1.79769313486232E+308)];
|
|
121
|
+
case SettingType.String:
|
|
122
|
+
case SettingType.Boolean:
|
|
123
|
+
return [Validators.required];
|
|
124
|
+
default:
|
|
125
|
+
return [];
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
getAllRolloutRules(formGroup) {
|
|
129
|
+
const settingValues = formGroup.get('settingValues');
|
|
130
|
+
const rolloutRules = settingValues.controls.map(cv => cv.get('rolloutRules').value);
|
|
131
|
+
return rolloutRules.length === 0 ? rolloutRules : rolloutRules.reduce((a, b) => a.concat(b));
|
|
132
|
+
}
|
|
133
|
+
getComparisonAttributes(rolloutRules) {
|
|
134
|
+
if (rolloutRules.length > 0) {
|
|
135
|
+
const currentComparisonAttributes = rolloutRules.map(r => r.comparisonAttribute);
|
|
136
|
+
const defaultComparisonAttributes = ['Identifier', 'Email', 'Country'];
|
|
137
|
+
const comparisonAttributes = currentComparisonAttributes.filter(c => defaultComparisonAttributes.indexOf(c) === -1);
|
|
138
|
+
return Array.from(new Set(comparisonAttributes));
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
return [];
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
getComparisonValueType(comparator) {
|
|
145
|
+
switch (comparator) {
|
|
146
|
+
case RolloutRuleComparator.NumberEquals:
|
|
147
|
+
case RolloutRuleComparator.NumberDoesNotEqual:
|
|
148
|
+
case RolloutRuleComparator.NumberLess:
|
|
149
|
+
case RolloutRuleComparator.NumberLessOrEquals:
|
|
150
|
+
case RolloutRuleComparator.NumberGreater:
|
|
151
|
+
case RolloutRuleComparator.NumberGreaterOrEquals:
|
|
152
|
+
return 'number';
|
|
153
|
+
default:
|
|
154
|
+
return 'text';
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
normalizeComparisonValue(comparator, comparisonValue) {
|
|
158
|
+
// In the case of number inputs value is a number but API expects
|
|
159
|
+
// a string, so we need to make sure that it's converted to string.
|
|
160
|
+
return comparator && this.getComparisonValueType(comparator) === "number"
|
|
161
|
+
? FormHelper.normalizeNumberStoredAsString(comparisonValue)
|
|
162
|
+
: comparisonValue;
|
|
163
|
+
}
|
|
164
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SettingListFormHelper, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
165
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SettingListFormHelper, providedIn: 'root' }); }
|
|
166
|
+
}
|
|
167
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SettingListFormHelper, decorators: [{
|
|
168
|
+
type: Injectable,
|
|
169
|
+
args: [{ providedIn: 'root' }]
|
|
170
|
+
}], ctorParameters: () => [{ type: i1.UntypedFormBuilder }] });
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1saXN0LWZvcm0taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL19zZXJ2aWNlcy9zZXR0aW5nLWxpc3QtZm9ybS1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQXNCLFVBQVUsRUFBc0MsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRyxPQUFPLEVBQThCLHFCQUFxQixFQUFvQixXQUFXLEVBQXFCLE1BQU0sd0JBQXdCLENBQUM7QUFDN0ksT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRzNDLE1BQU0sT0FBTyxxQkFBcUI7SUFFOUIsWUFBb0IsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO0lBQUksQ0FBQztJQUV4RCw0QkFBNEIsQ0FBQyxrQkFBc0M7UUFDL0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDckMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUNqQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0UsQ0FBQyxDQUFDLENBQUM7WUFFUCxZQUFZO1lBQ1osV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO2dCQUNoQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDeEYsSUFBSSxFQUFFLENBQUMsRUFB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O1FBQ3JELENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO0lBQ0wsQ0FBQztJQUVELHNCQUFzQixDQUFDLFVBQWlDO1FBQ3BELFFBQVEsVUFBVSxFQUFFLENBQUM7WUFDakIsS0FBSyxxQkFBcUIsQ0FBQyxZQUFZLENBQUM7WUFDeEMsS0FBSyxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQztZQUM5QyxLQUFLLHFCQUFxQixDQUFDLFVBQVUsQ0FBQztZQUN0QyxLQUFLLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDO1lBQzlDLEtBQUsscUJBQXFCLENBQUMsYUFBYSxDQUFDO1lBQ3pDLEtBQUsscUJBQXFCLENBQUMscUJBQXFCO2dCQUM1QyxPQUFPLFFBQVEsQ0FBQztZQUNwQjtnQkFDSSxPQUFPLE1BQU0sQ0FBQztRQUN0QixDQUFDO0lBQ0wsQ0FBQztJQUVELHdCQUF3QixDQUFDLFVBQTZDLEVBQUUsZUFBb0I7UUFDeEYsaUVBQWlFO1FBQ2pFLG1FQUFtRTtRQUNuRSxPQUFPLFVBQVUsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLEtBQUssUUFBUTtZQUNyRSxDQUFDLENBQUMsVUFBVSxDQUFDLDZCQUE2QixDQUFDLGVBQWUsQ0FBQztZQUMzRCxDQUFDLENBQUMsZUFBZSxDQUFDO0lBQzFCLENBQUM7OEdBMUtRLHFCQUFxQjtrSEFBckIscUJBQXFCLGNBRFIsTUFBTTs7MkZBQ25CLHFCQUFxQjtrQkFEakMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZXR0aW5nVmFsdWVzTW9kZWwgfSBmcm9tICcuLi9fbW9kZWxzL3NldHRpbmdWYWx1ZXNNb2RlbCc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMsIFVudHlwZWRGb3JtR3JvdXAsIFVudHlwZWRGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb2xsb3V0UGVyY2VudGFnZUl0ZW1Nb2RlbCwgUm9sbG91dFJ1bGVDb21wYXJhdG9yLCBSb2xsb3V0UnVsZU1vZGVsLCBTZXR0aW5nVHlwZSwgU2V0dGluZ1ZhbHVlTW9kZWwgfSBmcm9tICduZy1jb25maWdjYXQtcHVibGljYXBpJztcbmltcG9ydCB7IEZvcm1IZWxwZXIgfSBmcm9tICcuL2Zvcm0taGVscGVyJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTZXR0aW5nTGlzdEZvcm1IZWxwZXIge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyKSB7IH1cblxuICAgIGNyZWF0ZVNldHRpbmdWYWx1ZXNGb3JtR3JvdXAoc2V0dGluZ1ZhbHVlc01vZGVsOiBTZXR0aW5nVmFsdWVzTW9kZWwpIHtcbiAgICAgICAgY29uc3QgZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBzZXR0aW5nVmFsdWVzOiB0aGlzLmZvcm1CdWlsZGVyLmFycmF5KFxuICAgICAgICAgICAgICAgIHNldHRpbmdWYWx1ZXNNb2RlbC5zZXR0aW5nVmFsdWVzLm1hcChzdiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNldHRpbmdWYWx1ZUZvcm1Hcm91cChzdiwgc2V0dGluZ1ZhbHVlc01vZGVsLnJlYWRPbmx5KTtcbiAgICAgICAgICAgICAgICB9KSksXG5cbiAgICAgICAgICAgIC8vIERlY29yYXRvclxuICAgICAgICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgIGVudmlyb25tZW50SWQ6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVzTW9kZWwuZW52aXJvbm1lbnQuZW52aXJvbm1lbnRJZCwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICAgICAgbmFtZTogW3sgdmFsdWU6IHNldHRpbmdWYWx1ZXNNb2RlbC5lbnZpcm9ubWVudC5uYW1lLCBkaXNhYmxlZDogdHJ1ZSB9XSxcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICBjb21wYXJpc29uQXR0cmlidXRlczogW1tdXVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCByb2xsb3V0UnVsZXMgPSB0aGlzLmdldEFsbFJvbGxvdXRSdWxlcyhmb3JtR3JvdXApO1xuICAgICAgICBjb25zdCBjb21wYXJpc29uQXR0cmlidXRlcyA9IHRoaXMuZ2V0Q29tcGFyaXNvbkF0dHJpYnV0ZXMocm9sbG91dFJ1bGVzKTtcbiAgICAgICAgZm9ybUdyb3VwLnBhdGNoVmFsdWUoeyBjb21wYXJpc29uQXR0cmlidXRlczogY29tcGFyaXNvbkF0dHJpYnV0ZXMgfSk7XG4gICAgICAgIHJldHVybiBmb3JtR3JvdXA7XG4gICAgfVxuXG5cbiAgICBjcmVhdGVTZXR0aW5nVmFsdWVGb3JtR3JvdXAoc2V0dGluZ1ZhbHVlTW9kZWw6IFNldHRpbmdWYWx1ZU1vZGVsLCByZWFkT25seTogYm9vbGVhbikge1xuICAgICAgICBpZiAoIXNldHRpbmdWYWx1ZU1vZGVsLnNldHRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHt9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBzZXR0aW5nSWQ6IFtzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLnNldHRpbmdJZF0sXG4gICAgICAgICAgICB2YWx1ZTogW1xuICAgICAgICAgICAgICAgIHsgdmFsdWU6IHNldHRpbmdWYWx1ZU1vZGVsLnZhbHVlLCBkaXNhYmxlZDogcmVhZE9ubHkgfSxcbiAgICAgICAgICAgICAgICB0aGlzLmdldFZhbGlkYXRvcnNGb3JTZXR0aW5nVHlwZShzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLnNldHRpbmdUeXBlKVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHJvbGxvdXRQZXJjZW50YWdlSXRlbXM6IHNldHRpbmdWYWx1ZU1vZGVsLnJvbGxvdXRQZXJjZW50YWdlSXRlbXNcbiAgICAgICAgICAgICAgICA/IHRoaXMuZm9ybUJ1aWxkZXIuYXJyYXkoc2V0dGluZ1ZhbHVlTW9kZWwucm9sbG91dFBlcmNlbnRhZ2VJdGVtcy5tYXAocCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUoKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVSb2xsb3V0UGVyY2VudGFnZUl0ZW1Gb3JtR3JvdXAocCwgcmVhZE9ubHksIHNldHRpbmdWYWx1ZU1vZGVsLnNldHRpbmcuc2V0dGluZ1R5cGUpO1xuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgIDogdGhpcy5mb3JtQnVpbGRlci5hcnJheShbXSksIHJvbGxvdXRSdWxlczogc2V0dGluZ1ZhbHVlTW9kZWwucm9sbG91dFJ1bGVzXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5mb3JtQnVpbGRlci5hcnJheShzZXR0aW5nVmFsdWVNb2RlbC5yb2xsb3V0UnVsZXMubWFwKHIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVSb2xsb3V0UnVsZUZvcm1Hcm91cChyLCByZWFkT25seSwgc2V0dGluZ1ZhbHVlTW9kZWwuc2V0dGluZy5zZXR0aW5nVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZm9ybUJ1aWxkZXIuYXJyYXkoW10pLFxuXG4gICAgICAgICAgICB1cGRhdGVkQXQ6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVNb2RlbC51cGRhdGVkQXQsIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgbGFzdFVwZGF0ZXJVc2VyRW1haWw6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVNb2RlbC5sYXN0VXBkYXRlclVzZXJFbWFpbCwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICBsYXN0VXBkYXRlclVzZXJGdWxsTmFtZTogW3sgdmFsdWU6IHNldHRpbmdWYWx1ZU1vZGVsLmxhc3RVcGRhdGVyVXNlckZ1bGxOYW1lLCBkaXNhYmxlZDogdHJ1ZSB9XSxcblxuICAgICAgICAgICAgcm9sbG91dFBlcmNlbnRhZ2VJdGVtc1N1bTogW3sgdmFsdWU6IDEwMCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFtWYWxpZGF0b3JzLm1pbigxMDApLCBWYWxpZGF0b3JzLm1heCgxMDApXV0sXG4gICAgICAgICAgICAvLyBEZWNvcmF0aW9uXG4gICAgICAgICAgICBzZXR0aW5nOiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgICAgICBzZXR0aW5nSWQ6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLnNldHRpbmdJZCwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICAgICAga2V5OiBbeyB2YWx1ZTogc2V0dGluZ1ZhbHVlTW9kZWwuc2V0dGluZy5rZXksIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgIG5hbWU6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLm5hbWUsIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgIGhpbnQ6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLmhpbnQsIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgIHNldHRpbmdUeXBlOiBbeyB2YWx1ZTogc2V0dGluZ1ZhbHVlTW9kZWwuc2V0dGluZy5zZXR0aW5nVHlwZSwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICAgICAgY3JlYXRvckVtYWlsOiBbeyB2YWx1ZTogc2V0dGluZ1ZhbHVlTW9kZWwuc2V0dGluZy5jcmVhdG9yRW1haWwsIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgIGNyZWF0b3JGdWxsTmFtZTogW3sgdmFsdWU6IHNldHRpbmdWYWx1ZU1vZGVsLnNldHRpbmcuY3JlYXRvckZ1bGxOYW1lLCBkaXNhYmxlZDogdHJ1ZSB9XSxcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IFt7IHZhbHVlOiBzZXR0aW5nVmFsdWVNb2RlbC5zZXR0aW5nLmNyZWF0ZWRBdCwgZGlzYWJsZWQ6IHRydWUgfV1cbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICBpbnRlZ3JhdGlvbkxpbmtzOiBzZXR0aW5nVmFsdWVNb2RlbC5pbnRlZ3JhdGlvbkxpbmtzID8gdGhpcy5mb3JtQnVpbGRlci5hcnJheShzZXR0aW5nVmFsdWVNb2RlbC5pbnRlZ3JhdGlvbkxpbmtzLm1hcChpbCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgICAgICBrZXk6IFt7IHZhbHVlOiBpbC5rZXksIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogW3sgdmFsdWU6IGlsLmRlc2NyaXB0aW9uLCBkaXNhYmxlZDogdHJ1ZSB9XSxcbiAgICAgICAgICAgICAgICAgICAgaW50ZWdyYXRpb25MaW5rVHlwZTogW3sgdmFsdWU6IGlsLmludGVncmF0aW9uTGlua1R5cGUsIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgICAgICB1cmw6IFt7IHZhbHVlOiBpbC51cmwsIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSkpIDogdGhpcy5mb3JtQnVpbGRlci5hcnJheShbXSlcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY3JlYXRlUm9sbG91dFBlcmNlbnRhZ2VJdGVtRm9ybUdyb3VwKHA6IFJvbGxvdXRQZXJjZW50YWdlSXRlbU1vZGVsLCByZWFkT25seTogYm9vbGVhbiwgc2V0dGluZ1R5cGU6IFNldHRpbmdUeXBlIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIHBlcmNlbnRhZ2U6IFt7IHZhbHVlOiBwLnBlcmNlbnRhZ2UsIGRpc2FibGVkOiByZWFkT25seSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KDEwMCldXSxcbiAgICAgICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogcC52YWx1ZSwgZGlzYWJsZWQ6IHJlYWRPbmx5IH0sXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRWYWxpZGF0b3JzRm9yU2V0dGluZ1R5cGUoc2V0dGluZ1R5cGUpXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdmFsdWVEaXNhYmxlZDogW1xuICAgICAgICAgICAgICAgIHsgdmFsdWU6IHAudmFsdWUsIGRpc2FibGVkOiB0cnVlIH0sIC8vIEZvciBwZXJjZW50YWdlIGl0ZW0gdmFsdWVcbiAgICAgICAgICAgIF1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY3JlYXRlUm9sbG91dFJ1bGVGb3JtR3JvdXAocjogUm9sbG91dFJ1bGVNb2RlbCwgcmVhZE9ubHk6IGJvb2xlYW4sIHNldHRpbmdUeXBlOiBTZXR0aW5nVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoci5jb21wYXJhdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICAgICAgdHlwZTogW3sgdmFsdWU6IDAsIGRpc2FibGVkOiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgIGNvbXBhcmlzb25BdHRyaWJ1dGU6IFt7IHZhbHVlOiByLmNvbXBhcmlzb25BdHRyaWJ1dGUsIGRpc2FibGVkOiByZWFkT25seSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgICAgIGNvbXBhcmF0b3I6IFt7IHZhbHVlOiByLmNvbXBhcmF0b3IsIGRpc2FibGVkOiByZWFkT25seSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgICAgIGNvbXBhcmlzb25WYWx1ZTogW3sgdmFsdWU6IHIuY29tcGFyaXNvblZhbHVlLCBkaXNhYmxlZDogcmVhZE9ubHkgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogW1xuICAgICAgICAgICAgICAgICAgICB7IHZhbHVlOiByLnZhbHVlLCBkaXNhYmxlZDogcmVhZE9ubHkgfSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRWYWxpZGF0b3JzRm9yU2V0dGluZ1R5cGUoc2V0dGluZ1R5cGUpXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHIuc2VnbWVudENvbXBhcmF0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBbeyB2YWx1ZTogMSwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgICAgICAgc2VnbWVudENvbXBhcmF0b3I6IFt7IHZhbHVlOiByLnNlZ21lbnRDb21wYXJhdG9yLCBkaXNhYmxlZDogcmVhZE9ubHkgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgICAgICBzZWdtZW50SWQ6IFt7IHZhbHVlOiByLnNlZ21lbnRJZCwgZGlzYWJsZWQ6IHJlYWRPbmx5IH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogci52YWx1ZSwgZGlzYWJsZWQ6IHJlYWRPbmx5IH0sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0VmFsaWRhdG9yc0ZvclNldHRpbmdUeXBlKHNldHRpbmdUeXBlKVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCByb2xsb3V0IHJ1bGUnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VmFsaWRhdG9yc0ZvclNldHRpbmdUeXBlKHNldHRpbmdUeXBlOiBTZXR0aW5nVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgICAgICBzd2l0Y2ggKHNldHRpbmdUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIFNldHRpbmdUeXBlLkludDpcbiAgICAgICAgICAgICAgICByZXR1cm4gW1ZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5taW4oLTIxNDc0ODM2NDgpLCBWYWxpZGF0b3JzLm1heCgyMTQ3NDgzNjQ3KSwgVmFsaWRhdG9ycy5wYXR0ZXJuKCdeWy0rXT9bMC05XVxcXFxkKiQnKV07XG4gICAgICAgICAgICBjYXNlIFNldHRpbmdUeXBlLkRvdWJsZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluKC0xLjc5NzY5MzEzNDg2MjMyRSszMDgpLCBWYWxpZGF0b3JzLm1heCgxLjc5NzY5MzEzNDg2MjMyRSszMDgpXTtcbiAgICAgICAgICAgIGNhc2UgU2V0dGluZ1R5cGUuU3RyaW5nOlxuICAgICAgICAgICAgY2FzZSBTZXR0aW5nVHlwZS5Cb29sZWFuOlxuICAgICAgICAgICAgICAgIHJldHVybiBbVmFsaWRhdG9ycy5yZXF1aXJlZF07XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWxsUm9sbG91dFJ1bGVzKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgICAgICBjb25zdCBzZXR0aW5nVmFsdWVzID0gZm9ybUdyb3VwLmdldCgnc2V0dGluZ1ZhbHVlcycpIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gICAgICAgIGNvbnN0IHJvbGxvdXRSdWxlcyA9IHNldHRpbmdWYWx1ZXMuY29udHJvbHMubWFwKGN2ID0+IChjdi5nZXQoJ3JvbGxvdXRSdWxlcycpIGFzIFVudHlwZWRGb3JtQXJyYXkpLnZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJvbGxvdXRSdWxlcy5sZW5ndGggPT09IDAgPyByb2xsb3V0UnVsZXMgOiByb2xsb3V0UnVsZXMucmVkdWNlKChhLCBiKSA9PiBhLmNvbmNhdChiKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb21wYXJpc29uQXR0cmlidXRlcyhyb2xsb3V0UnVsZXM6IGFueVtdKSB7XG4gICAgICAgIGlmIChyb2xsb3V0UnVsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudENvbXBhcmlzb25BdHRyaWJ1dGVzID0gcm9sbG91dFJ1bGVzLm1hcChyID0+IHIuY29tcGFyaXNvbkF0dHJpYnV0ZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRDb21wYXJpc29uQXR0cmlidXRlcyA9IFsnSWRlbnRpZmllcicsICdFbWFpbCcsICdDb3VudHJ5J107XG4gICAgICAgICAgICBjb25zdCBjb21wYXJpc29uQXR0cmlidXRlcyA9IGN1cnJlbnRDb21wYXJpc29uQXR0cmlidXRlcy5maWx0ZXIoYyA9PiBkZWZhdWx0Q29tcGFyaXNvbkF0dHJpYnV0ZXMuaW5kZXhPZihjKSA9PT0gLTEpO1xuICAgICAgICAgICAgcmV0dXJuIEFycmF5LmZyb20obmV3IFNldChjb21wYXJpc29uQXR0cmlidXRlcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Q29tcGFyaXNvblZhbHVlVHlwZShjb21wYXJhdG9yOiBSb2xsb3V0UnVsZUNvbXBhcmF0b3IpIHtcbiAgICAgICAgc3dpdGNoIChjb21wYXJhdG9yKSB7XG4gICAgICAgICAgICBjYXNlIFJvbGxvdXRSdWxlQ29tcGFyYXRvci5OdW1iZXJFcXVhbHM6XG4gICAgICAgICAgICBjYXNlIFJvbGxvdXRSdWxlQ29tcGFyYXRvci5OdW1iZXJEb2VzTm90RXF1YWw6XG4gICAgICAgICAgICBjYXNlIFJvbGxvdXRSdWxlQ29tcGFyYXRvci5OdW1iZXJMZXNzOlxuICAgICAgICAgICAgY2FzZSBSb2xsb3V0UnVsZUNvbXBhcmF0b3IuTnVtYmVyTGVzc09yRXF1YWxzOlxuICAgICAgICAgICAgY2FzZSBSb2xsb3V0UnVsZUNvbXBhcmF0b3IuTnVtYmVyR3JlYXRlcjpcbiAgICAgICAgICAgIGNhc2UgUm9sbG91dFJ1bGVDb21wYXJhdG9yLk51bWJlckdyZWF0ZXJPckVxdWFsczpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ251bWJlcic7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAndGV4dCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBub3JtYWxpemVDb21wYXJpc29uVmFsdWUoY29tcGFyYXRvcjogUm9sbG91dFJ1bGVDb21wYXJhdG9yIHwgdW5kZWZpbmVkLCBjb21wYXJpc29uVmFsdWU6IGFueSkge1xuICAgICAgICAvLyBJbiB0aGUgY2FzZSBvZiBudW1iZXIgaW5wdXRzIHZhbHVlIGlzIGEgbnVtYmVyIGJ1dCBBUEkgZXhwZWN0c1xuICAgICAgICAvLyBhIHN0cmluZywgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBpdCdzIGNvbnZlcnRlZCB0byBzdHJpbmcuXG4gICAgICAgIHJldHVybiBjb21wYXJhdG9yICYmIHRoaXMuZ2V0Q29tcGFyaXNvblZhbHVlVHlwZShjb21wYXJhdG9yKSA9PT0gXCJudW1iZXJcIlxuICAgICAgICAgICAgPyBGb3JtSGVscGVyLm5vcm1hbGl6ZU51bWJlclN0b3JlZEFzU3RyaW5nKGNvbXBhcmlzb25WYWx1ZSlcbiAgICAgICAgICAgIDogY29tcGFyaXNvblZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class TrackingDirective {
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TrackingDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.3", type: TrackingDirective, selector: "[track]", inputs: { track: "track" }, ngImport: i0 }); }
|
|
6
|
+
}
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TrackingDirective, decorators: [{
|
|
8
|
+
type: Directive,
|
|
9
|
+
args: [{
|
|
10
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
11
|
+
selector: '[track]'
|
|
12
|
+
}]
|
|
13
|
+
}], propDecorators: { track: [{
|
|
14
|
+
type: Input
|
|
15
|
+
}] } });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2tpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL19zZXJ2aWNlcy90cmFja2luZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTWpELE1BQU0sT0FBTyxpQkFBaUI7OEdBQWpCLGlCQUFpQjtrR0FBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUo3QixTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLFNBQVM7aUJBQ3RCOzhCQUVZLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1t0cmFja10nXG59KVxuZXhwb3J0IGNsYXNzIFRyYWNraW5nRGlyZWN0aXZlIHtcbiAgICBASW5wdXQoKSB0cmFjazogc3RyaW5nW107XG4gICAgLy8gSW50ZW50aW9uYWxseSBlbXB0eSBjbGFzcywgdG8gYmUgZWFzaWVyIHRvIGNvcHkgdGhlIHNvdXJjZSBmcm9tIHRoZSBEYXNoYm9hcmQsIHdlIGhhZCB0byBjcmVhdGUgdGhpcyBkaXJlY3RpdmUsIGJ1dCB3ZSBkbyBub3Qgd2FudCB0byB0cmFjayBpbiBpbnRlZ3JhdGlvbnMuXG59XG4iXX0=
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChild } from "@angular/core";
|
|
2
|
+
import { config, edit } from "ace-builds/src-noconflict/ace";
|
|
3
|
+
import "ace-builds/src-noconflict/mode-json";
|
|
4
|
+
import "ace-builds/src-noconflict/theme-tomorrow";
|
|
5
|
+
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class AceEditorComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.onChangeDisabled = false;
|
|
10
|
+
this.valueChange = new EventEmitter();
|
|
11
|
+
// eslint-disable-next-line @angular-eslint/no-output-on-prefix
|
|
12
|
+
this.onChange = new EventEmitter();
|
|
13
|
+
}
|
|
14
|
+
set value(value) {
|
|
15
|
+
const checked = this.transformBoundValue(value);
|
|
16
|
+
if (this._value == checked)
|
|
17
|
+
return;
|
|
18
|
+
this._value = checked ? checked : this.produceDefaultValue();
|
|
19
|
+
if (this.aceEditor) {
|
|
20
|
+
this.writeJsonValue(this._value);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
ngOnInit() {
|
|
24
|
+
config.setModuleUrl("ace/mode/json_worker", "assets/scripts/worker-json.js");
|
|
25
|
+
}
|
|
26
|
+
ngAfterViewInit() {
|
|
27
|
+
setTimeout(() => {
|
|
28
|
+
this.init();
|
|
29
|
+
}, 200);
|
|
30
|
+
}
|
|
31
|
+
ngOnDestroy() {
|
|
32
|
+
this.destroy();
|
|
33
|
+
}
|
|
34
|
+
init() {
|
|
35
|
+
this.aceEditor = edit(this.editor.nativeElement, {
|
|
36
|
+
wrap: true,
|
|
37
|
+
tabSize: 2,
|
|
38
|
+
highlightActiveLine: true,
|
|
39
|
+
theme: "ace/theme/tomorrow",
|
|
40
|
+
fontSize: 14,
|
|
41
|
+
value: this.formatValue(this._value),
|
|
42
|
+
});
|
|
43
|
+
this.aceEditor.setReadOnly(this.readOnly);
|
|
44
|
+
this.aceEditor.session.setMode("ace/mode/json");
|
|
45
|
+
this.aceEditor.on("change", () => {
|
|
46
|
+
if (!this.onChangeDisabled) {
|
|
47
|
+
this._value = this.produceOutput(this.aceEditor.getValue());
|
|
48
|
+
if (this.onChangeModel) {
|
|
49
|
+
this.onChangeModel(this._value);
|
|
50
|
+
}
|
|
51
|
+
this.onChange.emit(this._value);
|
|
52
|
+
this.valueChange.emit(this._value);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
writeJsonValue(value) {
|
|
57
|
+
this.onChangeDisabled = true;
|
|
58
|
+
this.aceEditor.setValue(this.formatValue(value), -1);
|
|
59
|
+
this.onChangeDisabled = false;
|
|
60
|
+
}
|
|
61
|
+
formatValue(value) {
|
|
62
|
+
const parsed = this.parseJsonOrNull(value);
|
|
63
|
+
return parsed ? JSON.stringify(parsed, null, 2) : value;
|
|
64
|
+
}
|
|
65
|
+
produceDefaultValue() {
|
|
66
|
+
return "{}";
|
|
67
|
+
}
|
|
68
|
+
produceOutput(value) {
|
|
69
|
+
const parsed = this.parseJsonOrNull(value);
|
|
70
|
+
return parsed ? JSON.stringify(parsed) : value;
|
|
71
|
+
}
|
|
72
|
+
destroy() {
|
|
73
|
+
if (this.aceEditor) {
|
|
74
|
+
this.aceEditor.destroy();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
parseJsonOrNull(value) {
|
|
78
|
+
try {
|
|
79
|
+
const parsed = JSON.parse(value);
|
|
80
|
+
if (parsed === Infinity) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
return parsed;
|
|
84
|
+
}
|
|
85
|
+
catch (e) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
transformBoundValue(value) {
|
|
90
|
+
if (typeof value === 'object' && value !== null) {
|
|
91
|
+
return JSON.stringify(value);
|
|
92
|
+
}
|
|
93
|
+
return value;
|
|
94
|
+
}
|
|
95
|
+
// ControlValueAccessor
|
|
96
|
+
writeValue(value) {
|
|
97
|
+
this.value = value;
|
|
98
|
+
}
|
|
99
|
+
// ControlValueAccessor
|
|
100
|
+
registerOnChange(fn) {
|
|
101
|
+
this.onChangeModel = fn;
|
|
102
|
+
}
|
|
103
|
+
// ControlValueAccessor
|
|
104
|
+
registerOnTouched() {
|
|
105
|
+
/* unused */
|
|
106
|
+
}
|
|
107
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AceEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
108
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AceEditorComponent, selector: "app-ace-editor", inputs: { value: "value", readOnly: "readOnly" }, outputs: { valueChange: "valueChange", onChange: "onChange" }, providers: [
|
|
109
|
+
{
|
|
110
|
+
provide: NG_VALUE_ACCESSOR,
|
|
111
|
+
useExisting: forwardRef(() => AceEditorComponent),
|
|
112
|
+
multi: true
|
|
113
|
+
}
|
|
114
|
+
], viewQueries: [{ propertyName: "editor", first: true, predicate: ["aceEditor"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"ace-editor-container\" #aceEditor></div>", styles: [".ace-editor-container{width:100%;height:100%;border:thin solid #83b2ff;box-sizing:border-box}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
115
|
+
}
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AceEditorComponent, decorators: [{
|
|
117
|
+
type: Component,
|
|
118
|
+
args: [{ selector: 'app-ace-editor', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
119
|
+
{
|
|
120
|
+
provide: NG_VALUE_ACCESSOR,
|
|
121
|
+
useExisting: forwardRef(() => AceEditorComponent),
|
|
122
|
+
multi: true
|
|
123
|
+
}
|
|
124
|
+
], preserveWhitespaces: false, template: "<div class=\"ace-editor-container\" #aceEditor></div>", styles: [".ace-editor-container{width:100%;height:100%;border:thin solid #83b2ff;box-sizing:border-box}\n"] }]
|
|
125
|
+
}], propDecorators: { editor: [{
|
|
126
|
+
type: ViewChild,
|
|
127
|
+
args: ["aceEditor", { static: true }]
|
|
128
|
+
}], value: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], readOnly: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], valueChange: [{
|
|
133
|
+
type: Output
|
|
134
|
+
}], onChange: [{
|
|
135
|
+
type: Output
|
|
136
|
+
}] } });
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNlLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvYWNlLWVkaXRvci9hY2UtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi9hY2UtZWRpdG9yL2FjZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckssT0FBTyxFQUFPLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sMENBQTBDLENBQUM7QUFDbEQsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWdCekUsTUFBTSxPQUFPLGtCQUFrQjtJQWQvQjtRQWlCVSxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFpQnZCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQywrREFBK0Q7UUFDckQsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0FtR2pEO0lBakhDLElBQ0ksS0FBSyxDQUFDLEtBQWE7UUFDckIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPO1lBQUUsT0FBTztRQUNuQyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJB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a0I7a0JBZDlCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUM7NEJBQ2pELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLHVCQUNvQixLQUFLOzhCQVN3QixNQUFNO3NCQUF2RCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRXBDLEtBQUs7c0JBRFIsS0FBSztnQkFVRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBY2UsIGNvbmZpZywgZWRpdCB9IGZyb20gXCJhY2UtYnVpbGRzL3NyYy1ub2NvbmZsaWN0L2FjZVwiO1xuaW1wb3J0IFwiYWNlLWJ1aWxkcy9zcmMtbm9jb25mbGljdC9tb2RlLWpzb25cIjtcbmltcG9ydCBcImFjZS1idWlsZHMvc3JjLW5vY29uZmxpY3QvdGhlbWUtdG9tb3Jyb3dcIjtcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYWNlLWVkaXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2UtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWNlLWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBY2VFZGl0b3JDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBBY2VFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgYWNlRWRpdG9yOiBBY2UuRWRpdG9yO1xuICBwcml2YXRlIG9uQ2hhbmdlRGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBvbkNoYW5nZU1vZGVsOiBhbnk7XG4gIHByaXZhdGUgX3ZhbHVlOiBhbnk7XG5cbiAgQFZpZXdDaGlsZChcImFjZUVkaXRvclwiLCB7IHN0YXRpYzogdHJ1ZSB9KSBwcml2YXRlIGVkaXRvcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgY29uc3QgY2hlY2tlZCA9IHRoaXMudHJhbnNmb3JtQm91bmRWYWx1ZSh2YWx1ZSk7XG4gICAgaWYgKHRoaXMuX3ZhbHVlID09IGNoZWNrZWQpIHJldHVybjtcbiAgICB0aGlzLl92YWx1ZSA9IGNoZWNrZWQgPyBjaGVja2VkIDogdGhpcy5wcm9kdWNlRGVmYXVsdFZhbHVlKCk7XG4gICAgaWYgKHRoaXMuYWNlRWRpdG9yKSB7XG4gICAgICB0aGlzLndyaXRlSnNvblZhbHVlKHRoaXMuX3ZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSByZWFkT25seTogYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25maWcuc2V0TW9kdWxlVXJsKFwiYWNlL21vZGUvanNvbl93b3JrZXJcIiwgXCJhc3NldHMvc2NyaXB0cy93b3JrZXItanNvbi5qc1wiKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgIH0sIDIwMCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3koKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdCgpIHtcbiAgICB0aGlzLmFjZUVkaXRvciA9IGVkaXQodGhpcy5lZGl0b3IubmF0aXZlRWxlbWVudCwge1xuICAgICAgd3JhcDogdHJ1ZSxcbiAgICAgIHRhYlNpemU6IDIsXG4gICAgICBoaWdobGlnaHRBY3RpdmVMaW5lOiB0cnVlLFxuICAgICAgdGhlbWU6IFwiYWNlL3RoZW1lL3RvbW9ycm93XCIsXG4gICAgICBmb250U2l6ZTogMTQsXG4gICAgICB2YWx1ZTogdGhpcy5mb3JtYXRWYWx1ZSh0aGlzLl92YWx1ZSksXG4gICAgfSk7XG4gICAgdGhpcy5hY2VFZGl0b3Iuc2V0UmVhZE9ubHkodGhpcy5yZWFkT25seSk7XG4gICAgdGhpcy5hY2VFZGl0b3Iuc2Vzc2lvbi5zZXRNb2RlKFwiYWNlL21vZGUvanNvblwiKTtcblxuICAgIHRoaXMuYWNlRWRpdG9yLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgIGlmICghdGhpcy5vbkNoYW5nZURpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5wcm9kdWNlT3V0cHV0KHRoaXMuYWNlRWRpdG9yLmdldFZhbHVlKCkpO1xuICAgICAgICBpZiAodGhpcy5vbkNoYW5nZU1vZGVsKSB7XG4gICAgICAgICAgdGhpcy5vbkNoYW5nZU1vZGVsKHRoaXMuX3ZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodGhpcy5fdmFsdWUpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5fdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB3cml0ZUpzb25WYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZURpc2FibGVkID0gdHJ1ZTtcbiAgICB0aGlzLmFjZUVkaXRvci5zZXRWYWx1ZSh0aGlzLmZvcm1hdFZhbHVlKHZhbHVlKSwgLTEpO1xuICAgIHRoaXMub25DaGFuZ2VEaXNhYmxlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRWYWx1ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlSnNvbk9yTnVsbCh2YWx1ZSk7XG4gICAgcmV0dXJuIHBhcnNlZCA/IEpTT04uc3RyaW5naWZ5KHBhcnNlZCwgbnVsbCwgMikgOiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvZHVjZURlZmF1bHRWYWx1ZSgpIHtcbiAgICByZXR1cm4gXCJ7fVwiO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9kdWNlT3V0cHV0KHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlSnNvbk9yTnVsbCh2YWx1ZSk7XG4gICAgcmV0dXJuIHBhcnNlZCA/IEpTT04uc3RyaW5naWZ5KHBhcnNlZCkgOiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5hY2VFZGl0b3IpIHtcbiAgICAgIHRoaXMuYWNlRWRpdG9yLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhcnNlSnNvbk9yTnVsbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UodmFsdWUpO1xuICAgICAgaWYgKHBhcnNlZCA9PT0gSW5maW5pdHkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gcGFyc2VkO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNmb3JtQm91bmRWYWx1ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZU1vZGVsID0gZm47XG4gIH1cblxuICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvclxuICByZWdpc3Rlck9uVG91Y2hlZCgpIHtcbiAgICAvKiB1bnVzZWQgKi9cbiAgfVxufSIsIjxkaXYgY2xhc3M9XCJhY2UtZWRpdG9yLWNvbnRhaW5lclwiICNhY2VFZGl0b3I+PC9kaXY+Il19
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { FormHelper } from '../_services/form-helper';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/forms";
|
|
6
|
+
import * as i2 from "../_services";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "@angular/material/form-field";
|
|
9
|
+
import * as i5 from "@angular/material/button";
|
|
10
|
+
import * as i6 from "@angular/material/input";
|
|
11
|
+
export class AuthorizationComponent {
|
|
12
|
+
constructor(formBuilder, publicApiService) {
|
|
13
|
+
this.formBuilder = formBuilder;
|
|
14
|
+
this.publicApiService = publicApiService;
|
|
15
|
+
this.basePath = null;
|
|
16
|
+
this.integrationName = 'ConfigCat Feature Flags';
|
|
17
|
+
this.authorized = new EventEmitter();
|
|
18
|
+
this.error = new EventEmitter();
|
|
19
|
+
this.FormHelper = FormHelper;
|
|
20
|
+
}
|
|
21
|
+
ngOnInit() {
|
|
22
|
+
this.formGroup = this.formBuilder.group({
|
|
23
|
+
basicAuthUsername: ['', Validators.required],
|
|
24
|
+
basicAuthPassword: ['', Validators.required],
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
onSubmit() {
|
|
28
|
+
if (!this.formGroup.valid) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const meService = this.publicApiService.createMeService(this.formGroup.controls.basicAuthUsername.value, this.formGroup.controls.basicAuthPassword.value, this.basePath);
|
|
32
|
+
meService.getMe().subscribe(me => {
|
|
33
|
+
this.authorized.emit({
|
|
34
|
+
basicAuthUsername: this.formGroup.controls.basicAuthUsername.value,
|
|
35
|
+
basicAuthPassword: this.formGroup.controls.basicAuthPassword.value,
|
|
36
|
+
email: me.email,
|
|
37
|
+
fullName: me.fullName
|
|
38
|
+
});
|
|
39
|
+
}, () => {
|
|
40
|
+
this.formGroup.setErrors({ invalidAuthorization: 'Invalid Basic auth user name or password' });
|
|
41
|
+
this.error.emit();
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
getPublicApiUrl() {
|
|
45
|
+
return this.publicApiService.getDashboardBasePath() + '/my-account/public-api-credentials';
|
|
46
|
+
}
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AuthorizationComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.PublicApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AuthorizationComponent, selector: "configcat-authorization", inputs: { basePath: "basePath", integrationName: "integrationName" }, outputs: { authorized: "authorized", error: "error" }, ngImport: i0, template: "<form [formGroup]=\"formGroup\" (ngSubmit)=\"onSubmit()\">\n <div class=\"container\">\n <div class=\"form\">\n <p>\n In order to use {{integrationName}} you have to authorize first with your ConfigCat Public API\n credentials.\n </p>\n <ul>\n <li>\n <a [href]=\"getPublicApiUrl()\" target=\"_blank\" rel=\"noopener noreferrer\">\n Get your Basic Auth user name and password</a> to access ConfigCat Public API.\n <br />\n <b>Note!</b> Your ConfigCat account's email address and password will not work here.\n </li>\n <li>\n Type your credentials here and click the Authorize button.\n </li>\n </ul>\n\n <mat-form-field class=\"form-field\" appearance=\"outline\">\n <mat-label>Basic auth user name</mat-label>\n <input matInput placeholder=\"Basic auth user name\" formControlName=\"basicAuthUsername\">\n <mat-error *ngIf=\"formGroup.controls.basicAuthUsername.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.basicAuthUsername)}}\n </mat-error>\n </mat-form-field>\n <mat-form-field class=\"form-field\" appearance=\"outline\">\n <mat-label>Basic auth password</mat-label>\n <input matInput placeholder=\"Basic auth password\" formControlName=\"basicAuthPassword\" type=\"password\"\n autocomplete=\"current-password\">\n <mat-error *ngIf=\"formGroup.controls.basicAuthPassword.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.basicAuthPassword)}}\n </mat-error>\n </mat-form-field>\n <div>\n <button mat-flat-button color=\"primary\" type=\"submit\" class=\"submit\">Authorize</button>\n <mat-error *ngIf=\"formGroup.invalid && formGroup.errors && formGroup.errors.invalidAuthorization\">\n {{formGroup.errors.invalidAuthorization}}</mat-error>\n </div>\n </div>\n </div>\n</form>", styles: [".container{display:flex;margin:8px}.form{width:100%}.form-field{width:100%;margin-bottom:8px}.submit{margin-top:8px;margin-bottom:8px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
|
|
49
|
+
}
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AuthorizationComponent, decorators: [{
|
|
51
|
+
type: Component,
|
|
52
|
+
args: [{ selector: 'configcat-authorization', template: "<form [formGroup]=\"formGroup\" (ngSubmit)=\"onSubmit()\">\n <div class=\"container\">\n <div class=\"form\">\n <p>\n In order to use {{integrationName}} you have to authorize first with your ConfigCat Public API\n credentials.\n </p>\n <ul>\n <li>\n <a [href]=\"getPublicApiUrl()\" target=\"_blank\" rel=\"noopener noreferrer\">\n Get your Basic Auth user name and password</a> to access ConfigCat Public API.\n <br />\n <b>Note!</b> Your ConfigCat account's email address and password will not work here.\n </li>\n <li>\n Type your credentials here and click the Authorize button.\n </li>\n </ul>\n\n <mat-form-field class=\"form-field\" appearance=\"outline\">\n <mat-label>Basic auth user name</mat-label>\n <input matInput placeholder=\"Basic auth user name\" formControlName=\"basicAuthUsername\">\n <mat-error *ngIf=\"formGroup.controls.basicAuthUsername.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.basicAuthUsername)}}\n </mat-error>\n </mat-form-field>\n <mat-form-field class=\"form-field\" appearance=\"outline\">\n <mat-label>Basic auth password</mat-label>\n <input matInput placeholder=\"Basic auth password\" formControlName=\"basicAuthPassword\" type=\"password\"\n autocomplete=\"current-password\">\n <mat-error *ngIf=\"formGroup.controls.basicAuthPassword.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.basicAuthPassword)}}\n </mat-error>\n </mat-form-field>\n <div>\n <button mat-flat-button color=\"primary\" type=\"submit\" class=\"submit\">Authorize</button>\n <mat-error *ngIf=\"formGroup.invalid && formGroup.errors && formGroup.errors.invalidAuthorization\">\n {{formGroup.errors.invalidAuthorization}}</mat-error>\n </div>\n </div>\n </div>\n</form>", styles: [".container{display:flex;margin:8px}.form{width:100%}.form-field{width:100%;margin-bottom:8px}.submit{margin-top:8px;margin-bottom:8px}\n"] }]
|
|
53
|
+
}], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i2.PublicApiService }], propDecorators: { basePath: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], integrationName: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}], authorized: [{
|
|
58
|
+
type: Output
|
|
59
|
+
}], error: [{
|
|
60
|
+
type: Output
|
|
61
|
+
}] } });
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvYXV0aG9yaXphdGlvbi9hdXRob3JpemF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi9hdXRob3JpemF0aW9uL2F1dGhvcml6YXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQXdDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7QUFPdEQsTUFBTSxPQUFPLHNCQUFzQjtJQVNqQyxZQUNVLFdBQStCLEVBQy9CLGdCQUFrQztRQURsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVJuQyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLG9CQUFlLEdBQUcseUJBQXlCLENBQUM7UUFDM0MsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckMsZUFBVSxHQUFHLFVBQVUsQ0FBQztJQUtwQixDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDdEMsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM1QyxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQzdDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQy9DLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWpCLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQ25CLGlCQUFpQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUs7Z0JBQ2xFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUs7Z0JBQ2xFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSztnQkFDZixRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVE7YUFDdEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUNDLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsMENBQTBDLEVBQUUsQ0FBQyxDQUFDO1lBQy9GLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixFQUFFLEdBQUcsb0NBQW9DLENBQUM7SUFDN0YsQ0FBQzs4R0FoRFUsc0JBQXNCO2tHQUF0QixzQkFBc0IsNExDVm5DLDhzRUF5Q087OzJGRC9CTSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UseUJBQXlCO3NIQU8xQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQdWJsaWNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IEZvcm1IZWxwZXIgfSBmcm9tICcuLi9fc2VydmljZXMvZm9ybS1oZWxwZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb25maWdjYXQtYXV0aG9yaXphdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRob3JpemF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0aG9yaXphdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhvcml6YXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGZvcm1Hcm91cCE6IFVudHlwZWRGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGJhc2VQYXRoID0gbnVsbDtcbiAgQElucHV0KCkgaW50ZWdyYXRpb25OYW1lID0gJ0NvbmZpZ0NhdCBGZWF0dXJlIEZsYWdzJztcbiAgQE91dHB1dCgpIGF1dGhvcml6ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgRm9ybUhlbHBlciA9IEZvcm1IZWxwZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcHVibGljQXBpU2VydmljZTogUHVibGljQXBpU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBiYXNpY0F1dGhVc2VybmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGJhc2ljQXV0aFBhc3N3b3JkOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgIH0pO1xuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgaWYgKCF0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1lU2VydmljZSA9IHRoaXMucHVibGljQXBpU2VydmljZS5jcmVhdGVNZVNlcnZpY2UoXG4gICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5iYXNpY0F1dGhVc2VybmFtZS52YWx1ZSxcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmJhc2ljQXV0aFBhc3N3b3JkLnZhbHVlLFxuICAgICAgdGhpcy5iYXNlUGF0aCk7XG5cbiAgICBtZVNlcnZpY2UuZ2V0TWUoKS5zdWJzY3JpYmUobWUgPT4ge1xuICAgICAgdGhpcy5hdXRob3JpemVkLmVtaXQoe1xuICAgICAgICBiYXNpY0F1dGhVc2VybmFtZTogdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuYmFzaWNBdXRoVXNlcm5hbWUudmFsdWUsXG4gICAgICAgIGJhc2ljQXV0aFBhc3N3b3JkOiB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5iYXNpY0F1dGhQYXNzd29yZC52YWx1ZSxcbiAgICAgICAgZW1haWw6IG1lLmVtYWlsLFxuICAgICAgICBmdWxsTmFtZTogbWUuZnVsbE5hbWVcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnNldEVycm9ycyh7IGludmFsaWRBdXRob3JpemF0aW9uOiAnSW52YWxpZCBCYXNpYyBhdXRoIHVzZXIgbmFtZSBvciBwYXNzd29yZCcgfSk7XG4gICAgICAgIHRoaXMuZXJyb3IuZW1pdCgpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBnZXRQdWJsaWNBcGlVcmwoKSB7XG4gICAgcmV0dXJuIHRoaXMucHVibGljQXBpU2VydmljZS5nZXREYXNoYm9hcmRCYXNlUGF0aCgpICsgJy9teS1hY2NvdW50L3B1YmxpYy1hcGktY3JlZGVudGlhbHMnO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgSW4gb3JkZXIgdG8gdXNlIHt7aW50ZWdyYXRpb25OYW1lfX0geW91IGhhdmUgdG8gYXV0aG9yaXplIGZpcnN0IHdpdGggeW91ciBDb25maWdDYXQgUHVibGljIEFQSVxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzLlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiZ2V0UHVibGljQXBpVXJsKClcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBHZXQgeW91ciBCYXNpYyBBdXRoIHVzZXIgbmFtZSBhbmQgcGFzc3dvcmQ8L2E+IHRvIGFjY2VzcyBDb25maWdDYXQgUHVibGljIEFQSS5cbiAgICAgICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgIDxiPk5vdGUhPC9iPiBZb3VyIENvbmZpZ0NhdCBhY2NvdW50J3MgZW1haWwgYWRkcmVzcyBhbmQgcGFzc3dvcmQgd2lsbCBub3Qgd29yayBoZXJlLlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICBUeXBlIHlvdXIgY3JlZGVudGlhbHMgaGVyZSBhbmQgY2xpY2sgdGhlIEF1dGhvcml6ZSBidXR0b24uXG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZvcm0tZmllbGRcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QmFzaWMgYXV0aCB1c2VyIG5hbWU8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJCYXNpYyBhdXRoIHVzZXIgbmFtZVwiIGZvcm1Db250cm9sTmFtZT1cImJhc2ljQXV0aFVzZXJuYW1lXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Hcm91cC5jb250cm9scy5iYXNpY0F1dGhVc2VybmFtZS5pbnZhbGlkXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7Rm9ybUhlbHBlci5nZXRFcnJvck1lc3NhZ2UoZm9ybUdyb3VwLmNvbnRyb2xzLmJhc2ljQXV0aFVzZXJuYW1lKX19XG4gICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZm9ybS1maWVsZFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5CYXNpYyBhdXRoIHBhc3N3b3JkPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiQmFzaWMgYXV0aCBwYXNzd29yZFwiIGZvcm1Db250cm9sTmFtZT1cImJhc2ljQXV0aFBhc3N3b3JkXCIgdHlwZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwiY3VycmVudC1wYXNzd29yZFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtR3JvdXAuY29udHJvbHMuYmFzaWNBdXRoUGFzc3dvcmQuaW52YWxpZFwiPlxuICAgICAgICAgICAgICAgICAgICB7e0Zvcm1IZWxwZXIuZ2V0RXJyb3JNZXNzYWdlKGZvcm1Hcm91cC5jb250cm9scy5iYXNpY0F1dGhQYXNzd29yZCl9fVxuICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwic3VibWl0XCI+QXV0aG9yaXplPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Hcm91cC5pbnZhbGlkICYmIGZvcm1Hcm91cC5lcnJvcnMgJiYgZm9ybUdyb3VwLmVycm9ycy5pbnZhbGlkQXV0aG9yaXphdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICB7e2Zvcm1Hcm91cC5lcnJvcnMuaW52YWxpZEF1dGhvcml6YXRpb259fTwvbWF0LWVycm9yPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9mb3JtPiJdfQ==
|
|
@@ -10,10 +10,10 @@ export class BaseSelectComponent extends BaseComponent {
|
|
|
10
10
|
openChanged(event) {
|
|
11
11
|
this.dropdownOpened.emit(event);
|
|
12
12
|
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: BaseSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: BaseSelectComponent, selector: "base-select", inputs: { customDropdown: "customDropdown" }, outputs: { dropdownOpened: "dropdownOpened" }, usesInheritance: true, ngImport: i0, template: '<div></div>', isInline: true }); }
|
|
13
15
|
}
|
|
14
|
-
|
|
15
|
-
BaseSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BaseSelectComponent, selector: "base-select", inputs: { customDropdown: "customDropdown" }, outputs: { dropdownOpened: "dropdownOpened" }, usesInheritance: true, ngImport: i0, template: '<div></div>', isInline: true });
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BaseSelectComponent, decorators: [{
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: BaseSelectComponent, decorators: [{
|
|
17
17
|
type: Component,
|
|
18
18
|
args: [{
|
|
19
19
|
selector: 'base-select',
|
|
@@ -24,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
24
24
|
}], dropdownOpened: [{
|
|
25
25
|
type: Output
|
|
26
26
|
}] } });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL2Jhc2UvYmFzZS1zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQU1qRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQUp0RDs7UUFNVyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUUvQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7S0FLeEQ7SUFIVyxXQUFXLENBQUMsS0FBVTtRQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDOzhHQVJVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLHVLQUZwQixhQUFhOzsyRkFFWixtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRSxhQUFhO2lCQUN4Qjs4QkFHVSxjQUFjO3NCQUF0QixLQUFLO2dCQUVJLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYXNlLXNlbGVjdCcsXG4gIHRlbXBsYXRlOiAnPGRpdj48L2Rpdj4nXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBjdXN0b21Ecm9wZG93bjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBkcm9wZG93bk9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwcm90ZWN0ZWQgb3BlbkNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZHJvcGRvd25PcGVuZWQuZW1pdChldmVudCk7XG4gIH1cbn1cblxuXG4iXX0=
|