@abp/ng.setting-management 7.2.2 → 7.3.0-rc.1

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 (72) hide show
  1. package/config/index.d.ts +5 -5
  2. package/config/lib/components/email-setting-group/email-setting-group.component.d.ts +28 -28
  3. package/config/lib/enums/index.d.ts +3 -3
  4. package/config/lib/enums/policy-names.d.ts +3 -3
  5. package/config/lib/enums/route-names.d.ts +3 -3
  6. package/config/lib/enums/setting-tab-names.d.ts +3 -3
  7. package/config/lib/providers/features.token.d.ts +13 -13
  8. package/config/lib/providers/index.d.ts +3 -3
  9. package/config/lib/providers/route.provider.d.ts +16 -16
  10. package/config/lib/providers/setting-tab.provider.d.ts +8 -8
  11. package/config/lib/providers/visible.provider.d.ts +8 -8
  12. package/config/lib/proxy/email-settings.service.d.ts +13 -13
  13. package/config/lib/proxy/index.d.ts +2 -2
  14. package/config/lib/proxy/models.d.ts +28 -28
  15. package/config/lib/services/index.d.ts +1 -1
  16. package/config/lib/services/settings-tabs.service.d.ts +6 -6
  17. package/config/lib/setting-management-config.module.d.ts +12 -12
  18. package/config/public-api.d.ts +6 -6
  19. package/{esm2020 → esm2022}/abp-ng.setting-management.mjs +4 -4
  20. package/{esm2020 → esm2022}/config/abp-ng.setting-management-config.mjs +4 -4
  21. package/esm2022/config/lib/components/email-setting-group/email-setting-group.component.mjs +85 -0
  22. package/{esm2020 → esm2022}/config/lib/enums/index.mjs +3 -3
  23. package/{esm2020 → esm2022}/config/lib/enums/policy-names.mjs +1 -1
  24. package/{esm2020 → esm2022}/config/lib/enums/route-names.mjs +1 -1
  25. package/{esm2020 → esm2022}/config/lib/enums/setting-tab-names.mjs +1 -1
  26. package/{esm2020 → esm2022}/config/lib/providers/features.token.mjs +29 -29
  27. package/{esm2020 → esm2022}/config/lib/providers/index.mjs +3 -3
  28. package/{esm2020 → esm2022}/config/lib/providers/route.provider.mjs +33 -33
  29. package/{esm2020 → esm2022}/config/lib/providers/setting-tab.provider.mjs +23 -23
  30. package/{esm2020 → esm2022}/config/lib/providers/visible.provider.mjs +25 -25
  31. package/esm2022/config/lib/proxy/email-settings.service.mjs +34 -0
  32. package/{esm2020 → esm2022}/config/lib/proxy/index.mjs +2 -2
  33. package/{esm2020 → esm2022}/config/lib/proxy/models.mjs +1 -1
  34. package/{esm2020 → esm2022}/config/lib/services/index.mjs +1 -1
  35. package/esm2022/config/lib/services/settings-tabs.service.mjs +13 -0
  36. package/esm2022/config/lib/setting-management-config.module.mjs +36 -0
  37. package/{esm2020 → esm2022}/config/public-api.mjs +6 -6
  38. package/esm2022/lib/components/setting-management.component.mjs +34 -0
  39. package/{esm2020 → esm2022}/lib/enums/components.mjs +1 -1
  40. package/{esm2020 → esm2022}/lib/enums/index.mjs +2 -2
  41. package/{esm2020 → esm2022}/lib/enums/route-names.mjs +1 -1
  42. package/esm2022/lib/setting-management-routing.module.mjs +40 -0
  43. package/esm2022/lib/setting-management.module.mjs +31 -0
  44. package/{esm2020 → esm2022}/public-api.mjs +3 -3
  45. package/fesm2022/abp-ng.setting-management-config.mjs +254 -0
  46. package/fesm2022/abp-ng.setting-management-config.mjs.map +1 -0
  47. package/{fesm2020 → fesm2022}/abp-ng.setting-management.mjs +78 -78
  48. package/fesm2022/abp-ng.setting-management.mjs.map +1 -0
  49. package/index.d.ts +5 -5
  50. package/lib/components/setting-management.component.d.ts +16 -16
  51. package/lib/enums/components.d.ts +3 -3
  52. package/lib/enums/index.d.ts +2 -2
  53. package/lib/enums/route-names.d.ts +3 -3
  54. package/lib/setting-management-routing.module.d.ts +7 -7
  55. package/lib/setting-management.module.d.ts +14 -14
  56. package/package.json +11 -19
  57. package/public-api.d.ts +3 -3
  58. package/config/src/lib/proxy/README.md +0 -17
  59. package/esm2020/config/lib/components/email-setting-group/email-setting-group.component.mjs +0 -84
  60. package/esm2020/config/lib/proxy/email-settings.service.mjs +0 -33
  61. package/esm2020/config/lib/services/settings-tabs.service.mjs +0 -12
  62. package/esm2020/config/lib/setting-management-config.module.mjs +0 -35
  63. package/esm2020/lib/components/setting-management.component.mjs +0 -33
  64. package/esm2020/lib/setting-management-routing.module.mjs +0 -39
  65. package/esm2020/lib/setting-management.module.mjs +0 -30
  66. package/fesm2015/abp-ng.setting-management-config.mjs +0 -254
  67. package/fesm2015/abp-ng.setting-management-config.mjs.map +0 -1
  68. package/fesm2015/abp-ng.setting-management.mjs +0 -100
  69. package/fesm2015/abp-ng.setting-management.mjs.map +0 -1
  70. package/fesm2020/abp-ng.setting-management-config.mjs +0 -254
  71. package/fesm2020/abp-ng.setting-management-config.mjs.map +0 -1
  72. package/fesm2020/abp-ng.setting-management.mjs.map +0 -1
package/config/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@abp/ng.setting-management/config" />
5
- export * from './public-api';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@abp/ng.setting-management/config" />
5
+ export * from './public-api';
@@ -1,28 +1,28 @@
1
- import { NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';
2
- import { ToasterService } from '@abp/ng.theme.shared';
3
- import { OnInit } from '@angular/core';
4
- import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
5
- import { SettingManagementPolicyNames } from '../../enums/policy-names';
6
- import { EmailSettingsService } from '../../proxy/email-settings.service';
7
- import * as i0 from "@angular/core";
8
- export declare class EmailSettingGroupComponent implements OnInit {
9
- private emailSettingsService;
10
- private fb;
11
- private toasterService;
12
- form: UntypedFormGroup;
13
- emailTestForm: UntypedFormGroup;
14
- saving: boolean;
15
- emailingPolicy: SettingManagementPolicyNames;
16
- isEmailTestModalOpen: boolean;
17
- modalSize: NgbModalOptions;
18
- constructor(emailSettingsService: EmailSettingsService, fb: UntypedFormBuilder, toasterService: ToasterService);
19
- ngOnInit(): void;
20
- private getData;
21
- private buildForm;
22
- submit(): void;
23
- openSendEmailModal(): void;
24
- buildEmailTestForm(): void;
25
- emailTestFormSubmit(): void;
26
- static ɵfac: i0.ɵɵFactoryDeclaration<EmailSettingGroupComponent, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<EmailSettingGroupComponent, "abp-email-setting-group", never, {}, {}, never, never, false, never>;
28
- }
1
+ import { NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';
2
+ import { ToasterService } from '@abp/ng.theme.shared';
3
+ import { OnInit } from '@angular/core';
4
+ import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
5
+ import { SettingManagementPolicyNames } from '../../enums/policy-names';
6
+ import { EmailSettingsService } from '../../proxy/email-settings.service';
7
+ import * as i0 from "@angular/core";
8
+ export declare class EmailSettingGroupComponent implements OnInit {
9
+ private emailSettingsService;
10
+ private fb;
11
+ private toasterService;
12
+ form: UntypedFormGroup;
13
+ emailTestForm: UntypedFormGroup;
14
+ saving: boolean;
15
+ emailingPolicy: SettingManagementPolicyNames;
16
+ isEmailTestModalOpen: boolean;
17
+ modalSize: NgbModalOptions;
18
+ constructor(emailSettingsService: EmailSettingsService, fb: UntypedFormBuilder, toasterService: ToasterService);
19
+ ngOnInit(): void;
20
+ private getData;
21
+ private buildForm;
22
+ submit(): void;
23
+ openSendEmailModal(): void;
24
+ buildEmailTestForm(): void;
25
+ emailTestFormSubmit(): void;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<EmailSettingGroupComponent, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<EmailSettingGroupComponent, "abp-email-setting-group", never, {}, {}, never, never, false, never>;
28
+ }
@@ -1,3 +1,3 @@
1
- export * from './route-names';
2
- export * from './setting-tab-names';
3
- export * from './policy-names';
1
+ export * from './route-names';
2
+ export * from './setting-tab-names';
3
+ export * from './policy-names';
@@ -1,3 +1,3 @@
1
- export declare const enum SettingManagementPolicyNames {
2
- Emailing = "SettingManagement.Emailing"
3
- }
1
+ export declare const enum SettingManagementPolicyNames {
2
+ Emailing = "SettingManagement.Emailing"
3
+ }
@@ -1,3 +1,3 @@
1
- export declare const enum eSettingManagementRouteNames {
2
- Settings = "AbpSettingManagement::Settings"
3
- }
1
+ export declare const enum eSettingManagementRouteNames {
2
+ Settings = "AbpSettingManagement::Settings"
3
+ }
@@ -1,3 +1,3 @@
1
- export declare const enum eSettingManamagementSettingTabNames {
2
- EmailSettingGroup = "AbpSettingManagement::Menu:Emailing"
3
- }
1
+ export declare const enum eSettingManamagementSettingTabNames {
2
+ EmailSettingGroup = "AbpSettingManagement::Menu:Emailing"
3
+ }
@@ -1,13 +1,13 @@
1
- import { noop } from '@abp/ng.core';
2
- import { InjectionToken } from '@angular/core';
3
- import { Observable } from 'rxjs';
4
- export declare const SETTING_MANAGEMENT_FEATURES: InjectionToken<Observable<{
5
- enable: boolean;
6
- }>>;
7
- export declare const SETTING_MANAGEMENT_ROUTE_VISIBILITY: InjectionToken<Observable<boolean>>;
8
- export declare const SETTING_MANAGEMENT_FEATURES_PROVIDERS: {
9
- provide: InjectionToken<readonly (() => void | Observable<unknown> | Promise<unknown>)[]>;
10
- useFactory: typeof noop;
11
- deps: InjectionToken<Observable<boolean>>[];
12
- multi: boolean;
13
- }[];
1
+ import { noop } from '@abp/ng.core';
2
+ import { InjectionToken } from '@angular/core';
3
+ import { Observable } from 'rxjs';
4
+ export declare const SETTING_MANAGEMENT_FEATURES: InjectionToken<Observable<{
5
+ enable: boolean;
6
+ }>>;
7
+ export declare const SETTING_MANAGEMENT_ROUTE_VISIBILITY: InjectionToken<Observable<boolean>>;
8
+ export declare const SETTING_MANAGEMENT_FEATURES_PROVIDERS: {
9
+ provide: InjectionToken<readonly (() => void | Observable<unknown> | Promise<unknown>)[]>;
10
+ useFactory: typeof noop;
11
+ deps: InjectionToken<Observable<boolean>>[];
12
+ multi: boolean;
13
+ }[];
@@ -1,3 +1,3 @@
1
- export * from './route.provider';
2
- export * from './setting-tab.provider';
3
- export * from './visible.provider';
1
+ export * from './route.provider';
2
+ export * from './setting-tab.provider';
3
+ export * from './visible.provider';
@@ -1,16 +1,16 @@
1
- import { noop, RoutesService } from '@abp/ng.core';
2
- import { InjectionToken } from '@angular/core';
3
- import { Observable } from 'rxjs';
4
- export declare function configureRoutes(routesService: RoutesService): () => void;
5
- export declare const SETTING_MANAGEMENT_HAS_SETTING: InjectionToken<Observable<boolean>>;
6
- export declare const SETTING_MANAGEMENT_ROUTE_PROVIDERS: ({
7
- provide: InjectionToken<readonly (() => void | Observable<unknown> | Promise<unknown>)[]>;
8
- useFactory: typeof configureRoutes;
9
- deps: (typeof RoutesService)[];
10
- multi: boolean;
11
- } | {
12
- provide: InjectionToken<readonly (() => void | Observable<unknown> | Promise<unknown>)[]>;
13
- useFactory: typeof noop;
14
- deps: InjectionToken<Observable<boolean>>[];
15
- multi: boolean;
16
- })[];
1
+ import { noop, RoutesService } from '@abp/ng.core';
2
+ import { InjectionToken } from '@angular/core';
3
+ import { Observable } from 'rxjs';
4
+ export declare function configureRoutes(routesService: RoutesService): () => void;
5
+ export declare const SETTING_MANAGEMENT_HAS_SETTING: InjectionToken<Observable<boolean>>;
6
+ export declare const SETTING_MANAGEMENT_ROUTE_PROVIDERS: ({
7
+ provide: InjectionToken<readonly (() => void | Observable<unknown> | Promise<unknown>)[]>;
8
+ useFactory: typeof configureRoutes;
9
+ deps: (typeof RoutesService)[];
10
+ multi: boolean;
11
+ } | {
12
+ provide: InjectionToken<readonly (() => void | Observable<unknown> | Promise<unknown>)[]>;
13
+ useFactory: typeof noop;
14
+ deps: InjectionToken<Observable<boolean>>[];
15
+ multi: boolean;
16
+ })[];
@@ -1,8 +1,8 @@
1
- import { SettingTabsService } from '../services/settings-tabs.service';
2
- export declare const SETTING_MANAGEMENT_SETTING_TAB_PROVIDERS: {
3
- provide: import("@angular/core").InjectionToken<readonly (() => void | import("rxjs").Observable<unknown> | Promise<unknown>)[]>;
4
- useFactory: typeof configureSettingTabs;
5
- deps: (typeof SettingTabsService)[];
6
- multi: boolean;
7
- }[];
8
- export declare function configureSettingTabs(settingTabs: SettingTabsService): () => void;
1
+ import { SettingTabsService } from '../services/settings-tabs.service';
2
+ export declare const SETTING_MANAGEMENT_SETTING_TAB_PROVIDERS: {
3
+ provide: import("@angular/core").InjectionToken<readonly (() => void | import("rxjs").Observable<unknown> | Promise<unknown>)[]>;
4
+ useFactory: typeof configureSettingTabs;
5
+ deps: (typeof SettingTabsService)[];
6
+ multi: boolean;
7
+ }[];
8
+ export declare function configureSettingTabs(settingTabs: SettingTabsService): () => void;
@@ -1,8 +1,8 @@
1
- import { Injector } from '@angular/core';
2
- export declare const SETTING_MANAGEMENT_VISIBLE_PROVIDERS: {
3
- provide: import("@angular/core").InjectionToken<readonly (() => void | import("rxjs").Observable<unknown> | Promise<unknown>)[]>;
4
- useFactory: typeof setSettingManagementVisibility;
5
- deps: (typeof Injector)[];
6
- multi: boolean;
7
- }[];
8
- export declare function setSettingManagementVisibility(injector: Injector): () => void;
1
+ import { Injector } from '@angular/core';
2
+ export declare const SETTING_MANAGEMENT_VISIBLE_PROVIDERS: {
3
+ provide: import("@angular/core").InjectionToken<readonly (() => void | import("rxjs").Observable<unknown> | Promise<unknown>)[]>;
4
+ useFactory: typeof setSettingManagementVisibility;
5
+ deps: (typeof Injector)[];
6
+ multi: boolean;
7
+ }[];
8
+ export declare function setSettingManagementVisibility(injector: Injector): () => void;
@@ -1,13 +1,13 @@
1
- import type { EmailSettingsDto, SendTestEmailInput, UpdateEmailSettingsDto } from './models';
2
- import { RestService } from '@abp/ng.core';
3
- import * as i0 from "@angular/core";
4
- export declare class EmailSettingsService {
5
- private restService;
6
- apiName: string;
7
- get: () => import("rxjs").Observable<EmailSettingsDto>;
8
- sendTestEmail: (input: SendTestEmailInput) => import("rxjs").Observable<void>;
9
- update: (input: UpdateEmailSettingsDto) => import("rxjs").Observable<void>;
10
- constructor(restService: RestService);
11
- static ɵfac: i0.ɵɵFactoryDeclaration<EmailSettingsService, never>;
12
- static ɵprov: i0.ɵɵInjectableDeclaration<EmailSettingsService>;
13
- }
1
+ import type { EmailSettingsDto, SendTestEmailInput, UpdateEmailSettingsDto } from './models';
2
+ import { RestService } from '@abp/ng.core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class EmailSettingsService {
5
+ private restService;
6
+ apiName: string;
7
+ get: () => import("rxjs").Observable<EmailSettingsDto>;
8
+ sendTestEmail: (input: SendTestEmailInput) => import("rxjs").Observable<void>;
9
+ update: (input: UpdateEmailSettingsDto) => import("rxjs").Observable<void>;
10
+ constructor(restService: RestService);
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<EmailSettingsService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<EmailSettingsService>;
13
+ }
@@ -1,2 +1,2 @@
1
- export * from './email-settings.service';
2
- export * from './models';
1
+ export * from './email-settings.service';
2
+ export * from './models';
@@ -1,28 +1,28 @@
1
- export interface EmailSettingsDto {
2
- smtpHost?: string;
3
- smtpPort: number;
4
- smtpUserName?: string;
5
- smtpPassword?: string;
6
- smtpDomain?: string;
7
- smtpEnableSsl: boolean;
8
- smtpUseDefaultCredentials: boolean;
9
- defaultFromAddress?: string;
10
- defaultFromDisplayName?: string;
11
- }
12
- export interface SendTestEmailInput {
13
- senderEmailAddress: string;
14
- targetEmailAddress: string;
15
- subject: string;
16
- body?: string;
17
- }
18
- export interface UpdateEmailSettingsDto {
19
- smtpHost?: string;
20
- smtpPort: number;
21
- smtpUserName?: string;
22
- smtpPassword?: string;
23
- smtpDomain?: string;
24
- smtpEnableSsl: boolean;
25
- smtpUseDefaultCredentials: boolean;
26
- defaultFromAddress: string;
27
- defaultFromDisplayName: string;
28
- }
1
+ export interface EmailSettingsDto {
2
+ smtpHost?: string;
3
+ smtpPort: number;
4
+ smtpUserName?: string;
5
+ smtpPassword?: string;
6
+ smtpDomain?: string;
7
+ smtpEnableSsl: boolean;
8
+ smtpUseDefaultCredentials: boolean;
9
+ defaultFromAddress?: string;
10
+ defaultFromDisplayName?: string;
11
+ }
12
+ export interface SendTestEmailInput {
13
+ senderEmailAddress: string;
14
+ targetEmailAddress: string;
15
+ subject: string;
16
+ body?: string;
17
+ }
18
+ export interface UpdateEmailSettingsDto {
19
+ smtpHost?: string;
20
+ smtpPort: number;
21
+ smtpUserName?: string;
22
+ smtpPassword?: string;
23
+ smtpDomain?: string;
24
+ smtpEnableSsl: boolean;
25
+ smtpUseDefaultCredentials: boolean;
26
+ defaultFromAddress: string;
27
+ defaultFromDisplayName: string;
28
+ }
@@ -1 +1 @@
1
- export * from './settings-tabs.service';
1
+ export * from './settings-tabs.service';
@@ -1,6 +1,6 @@
1
- import { ABP, AbstractNavTreeService } from '@abp/ng.core';
2
- import * as i0 from "@angular/core";
3
- export declare class SettingTabsService extends AbstractNavTreeService<ABP.Tab> {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<SettingTabsService, never>;
5
- static ɵprov: i0.ɵɵInjectableDeclaration<SettingTabsService>;
6
- }
1
+ import { ABP, AbstractNavTreeService } from '@abp/ng.core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class SettingTabsService extends AbstractNavTreeService<ABP.Tab> {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<SettingTabsService, never>;
5
+ static ɵprov: i0.ɵɵInjectableDeclaration<SettingTabsService>;
6
+ }
@@ -1,12 +1,12 @@
1
- import { ModuleWithProviders } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./components/email-setting-group/email-setting-group.component";
4
- import * as i2 from "@abp/ng.core";
5
- import * as i3 from "@abp/ng.theme.shared";
6
- import * as i4 from "@ngx-validate/core";
7
- export declare class SettingManagementConfigModule {
8
- static forRoot(): ModuleWithProviders<SettingManagementConfigModule>;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<SettingManagementConfigModule, never>;
10
- static ɵmod: i0.ɵɵNgModuleDeclaration<SettingManagementConfigModule, [typeof i1.EmailSettingGroupComponent], [typeof i2.CoreModule, typeof i3.ThemeSharedModule, typeof i4.NgxValidateCoreModule], [typeof i1.EmailSettingGroupComponent]>;
11
- static ɵinj: i0.ɵɵInjectorDeclaration<SettingManagementConfigModule>;
12
- }
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./components/email-setting-group/email-setting-group.component";
4
+ import * as i2 from "@abp/ng.core";
5
+ import * as i3 from "@abp/ng.theme.shared";
6
+ import * as i4 from "@ngx-validate/core";
7
+ export declare class SettingManagementConfigModule {
8
+ static forRoot(): ModuleWithProviders<SettingManagementConfigModule>;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<SettingManagementConfigModule, never>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SettingManagementConfigModule, [typeof i1.EmailSettingGroupComponent], [typeof i2.CoreModule, typeof i3.ThemeSharedModule, typeof i4.NgxValidateCoreModule], [typeof i1.EmailSettingGroupComponent]>;
11
+ static ɵinj: i0.ɵɵInjectorDeclaration<SettingManagementConfigModule>;
12
+ }
@@ -1,6 +1,6 @@
1
- export * from './lib/components/email-setting-group/email-setting-group.component';
2
- export * from './lib/enums';
3
- export * from './lib/providers';
4
- export * from './lib/proxy';
5
- export * from './lib/services';
6
- export * from './lib/setting-management-config.module';
1
+ export * from './lib/components/email-setting-group/email-setting-group.component';
2
+ export * from './lib/enums';
3
+ export * from './lib/providers';
4
+ export * from './lib/proxy';
5
+ export * from './lib/services';
6
+ export * from './lib/setting-management-config.module';
@@ -1,5 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
5
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnNldHRpbmctbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NldHRpbmctbWFuYWdlbWVudC9zcmMvYWJwLW5nLnNldHRpbmctbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,5 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
5
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnNldHRpbmctbWFuYWdlbWVudC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zZXR0aW5nLW1hbmFnZW1lbnQvY29uZmlnL3NyYy9hYnAtbmcuc2V0dGluZy1tYW5hZ2VtZW50LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,85 @@
1
+ import { collapse, ToasterService } from '@abp/ng.theme.shared';
2
+ import { Component } from '@angular/core';
3
+ import { UntypedFormBuilder, Validators } from '@angular/forms';
4
+ import { finalize } from 'rxjs/operators';
5
+ import { EmailSettingsService } from '../../proxy/email-settings.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../proxy/email-settings.service";
8
+ import * as i2 from "@angular/forms";
9
+ import * as i3 from "@abp/ng.theme.shared";
10
+ import * as i4 from "@angular/common";
11
+ import * as i5 from "@abp/ng.core";
12
+ import * as i6 from "@ngx-validate/core";
13
+ class EmailSettingGroupComponent {
14
+ constructor(emailSettingsService, fb, toasterService) {
15
+ this.emailSettingsService = emailSettingsService;
16
+ this.fb = fb;
17
+ this.toasterService = toasterService;
18
+ this.saving = false;
19
+ this.emailingPolicy = "SettingManagement.Emailing" /* SettingManagementPolicyNames.Emailing */;
20
+ this.isEmailTestModalOpen = false;
21
+ this.modalSize = { size: "lg" };
22
+ }
23
+ ngOnInit() {
24
+ this.getData();
25
+ }
26
+ getData() {
27
+ this.emailSettingsService.get().subscribe(res => {
28
+ this.buildForm(res);
29
+ });
30
+ }
31
+ buildForm(emailSettings) {
32
+ this.form = this.fb.group({
33
+ defaultFromDisplayName: [emailSettings.defaultFromDisplayName, [Validators.required]],
34
+ defaultFromAddress: [emailSettings.defaultFromAddress, [Validators.required]],
35
+ smtpHost: [emailSettings.smtpHost],
36
+ smtpPort: [emailSettings.smtpPort, [Validators.required]],
37
+ smtpEnableSsl: [emailSettings.smtpEnableSsl],
38
+ smtpUseDefaultCredentials: [emailSettings.smtpUseDefaultCredentials],
39
+ smtpDomain: [emailSettings.smtpDomain],
40
+ smtpUserName: [emailSettings.smtpUserName],
41
+ smtpPassword: [emailSettings.smtpPassword],
42
+ });
43
+ }
44
+ submit() {
45
+ if (this.saving || this.form.invalid)
46
+ return;
47
+ this.saving = true;
48
+ this.emailSettingsService
49
+ .update(this.form.value)
50
+ .pipe(finalize(() => (this.saving = false)))
51
+ .subscribe(() => {
52
+ this.toasterService.success('AbpSettingManagement::SuccessfullySaved');
53
+ this.getData();
54
+ });
55
+ }
56
+ openSendEmailModal() {
57
+ this.buildEmailTestForm();
58
+ this.isEmailTestModalOpen = true;
59
+ }
60
+ buildEmailTestForm() {
61
+ this.emailTestForm = this.fb.group({
62
+ senderEmailAddress: ['', [Validators.required, Validators.email]],
63
+ targetEmailAddress: ['', [Validators.required, Validators.email]],
64
+ subject: ['', [Validators.required]],
65
+ body: [''],
66
+ });
67
+ }
68
+ emailTestFormSubmit() {
69
+ if (this.emailTestForm.invalid) {
70
+ return;
71
+ }
72
+ this.emailSettingsService.sendTestEmail(this.emailTestForm.value).subscribe(res => {
73
+ this.toasterService.success('AbpSettingManagement::SuccessfullySent');
74
+ this.isEmailTestModalOpen = false;
75
+ });
76
+ }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: EmailSettingGroupComponent, deps: [{ token: i1.EmailSettingsService }, { token: i2.UntypedFormBuilder }, { token: i3.ToasterService }], target: i0.ɵɵFactoryTarget.Component }); }
78
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: EmailSettingGroupComponent, selector: "abp-email-setting-group", ngImport: i0, template: "<h2>{{ 'AbpSettingManagement::Menu:Emailing' | abpLocalization }}</h2>\r\n\r\n<hr class=\"my-3\" />\r\n\r\n<form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\" [validateOnSubmit]=\"true\">\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\"\r\n >{{ 'AbpSettingManagement::DefaultFromDisplayName' | abpLocalization\r\n }}<span class=\"ms-1\">*</span></label\r\n >\r\n <input type=\"text\" class=\"form-control\" formControlName=\"defaultFromDisplayName\" />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\"\r\n >{{ 'AbpSettingManagement::DefaultFromAddress' | abpLocalization\r\n }}<span class=\"ms-1\">*</span></label\r\n >\r\n <input type=\"text\" class=\"form-control\" formControlName=\"defaultFromAddress\" />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\">{{ 'AbpSettingManagement::SmtpHost' | abpLocalization }}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"smtpHost\" />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\"\r\n >{{ 'AbpSettingManagement::SmtpPort' | abpLocalization }}<span class=\"ms-1\">*</span></label\r\n >\r\n <input type=\"number\" class=\"form-control\" formControlName=\"smtpPort\" />\r\n </div>\r\n\r\n <div class=\"form-check mb-2\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"smtp-enable-ssl\"\r\n class=\"form-check-input\"\r\n formControlName=\"smtpEnableSsl\"\r\n />\r\n <label class=\"form-check-label\" for=\"smtp-enable-ssl\">{{\r\n 'AbpSettingManagement::SmtpEnableSsl' | abpLocalization\r\n }}</label>\r\n </div>\r\n <div class=\"form-check mb-2\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"smtp-use-default-credentials\"\r\n class=\"form-check-input\"\r\n formControlName=\"smtpUseDefaultCredentials\"\r\n />\r\n <label class=\"form-check-label\" for=\"smtp-use-default-credentials\">{{\r\n 'AbpSettingManagement::SmtpUseDefaultCredentials' | abpLocalization\r\n }}</label>\r\n </div>\r\n\r\n <div\r\n [@collapse]=\"{\r\n value: form.get('smtpUseDefaultCredentials')?.value ? 'collapsed' : 'expanded',\r\n params: { time: '200ms', easing: 'linear' }\r\n }\"\r\n >\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\">{{ 'AbpSettingManagement::SmtpDomain' | abpLocalization }}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"smtpDomain\" />\r\n </div>\r\n\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\">{{ 'AbpSettingManagement::SmtpUserName' | abpLocalization }}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"smtpUserName\" />\r\n </div>\r\n\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\">{{ 'AbpSettingManagement::SmtpPassword' | abpLocalization }}</label>\r\n <input type=\"password\" class=\"form-control\" formControlName=\"smtpPassword\" />\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <button type=\"submit\" class=\"btn btn-primary\">\r\n {{ 'AbpSettingManagement::Save' | abpLocalization }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n (click)=\"openSendEmailModal()\"\r\n class=\"btn btn-primary mx-2\"\r\n *abpPermission=\"emailingPolicy\"\r\n >\r\n <i class=\"fa f-send\" aria-hidden=\"true\"></i>\r\n {{ 'AbpSettingManagement::SendTestEmail' | abpLocalization }}\r\n </button>\r\n</form>\r\n\r\n<abp-modal [(visible)]=\"isEmailTestModalOpen\" [options]=\"modalSize\">\r\n <ng-template #abpHeader>\r\n <h3>{{ 'SendTestEmail' | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"emailTestForm\" id=\"emailTestForm\" (ngSubmit)=\"emailTestFormSubmit()\">\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\">{{\r\n 'AbpSettingManagement::SenderEmailAddress' | abpLocalization\r\n }}</label>\r\n <input class=\"form-control\" formControlName=\"senderEmailAddress\" />\r\n </div>\r\n\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\">{{\r\n 'AbpSettingManagement::TargetEmailAddress' | abpLocalization\r\n }}</label>\r\n <input class=\"form-control\" formControlName=\"targetEmailAddress\" />\r\n </div>\r\n\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\">{{ 'AbpSettingManagement::Subject' | abpLocalization }}</label>\r\n <input class=\"form-control\" formControlName=\"subject\" />\r\n </div>\r\n\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\">{{ 'AbpSettingManagement::Body' | abpLocalization }}</label>\r\n <textarea class=\"form-control\" formControlName=\"body\"></textarea>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <abp-button\r\n buttonType=\"submit\"\r\n iconClass=\"fa fa-send\"\r\n formName=\"emailTestForm\"\r\n [disabled]=\"emailTestForm.invalid && emailTestForm.dirty\"\r\n >\r\n <span>{{ 'AbpTenantManagement::Send' | abpLocalization }}</span>\r\n </abp-button>\r\n\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>Close</button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", 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]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i5.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: i6.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i6.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "pipe", type: i5.LocalizationPipe, name: "abpLocalization" }], animations: [collapse] }); }
79
+ }
80
+ export { EmailSettingGroupComponent };
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: EmailSettingGroupComponent, decorators: [{
82
+ type: Component,
83
+ args: [{ selector: 'abp-email-setting-group', animations: [collapse], template: "<h2>{{ 'AbpSettingManagement::Menu:Emailing' | abpLocalization }}</h2>\r\n\r\n<hr class=\"my-3\" />\r\n\r\n<form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\" [validateOnSubmit]=\"true\">\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\"\r\n >{{ 'AbpSettingManagement::DefaultFromDisplayName' | abpLocalization\r\n }}<span class=\"ms-1\">*</span></label\r\n >\r\n <input type=\"text\" class=\"form-control\" formControlName=\"defaultFromDisplayName\" />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\"\r\n >{{ 'AbpSettingManagement::DefaultFromAddress' | abpLocalization\r\n }}<span class=\"ms-1\">*</span></label\r\n >\r\n <input type=\"text\" class=\"form-control\" formControlName=\"defaultFromAddress\" />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\">{{ 'AbpSettingManagement::SmtpHost' | abpLocalization }}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"smtpHost\" />\r\n </div>\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\"\r\n >{{ 'AbpSettingManagement::SmtpPort' | abpLocalization }}<span class=\"ms-1\">*</span></label\r\n >\r\n <input type=\"number\" class=\"form-control\" formControlName=\"smtpPort\" />\r\n </div>\r\n\r\n <div class=\"form-check mb-2\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"smtp-enable-ssl\"\r\n class=\"form-check-input\"\r\n formControlName=\"smtpEnableSsl\"\r\n />\r\n <label class=\"form-check-label\" for=\"smtp-enable-ssl\">{{\r\n 'AbpSettingManagement::SmtpEnableSsl' | abpLocalization\r\n }}</label>\r\n </div>\r\n <div class=\"form-check mb-2\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"smtp-use-default-credentials\"\r\n class=\"form-check-input\"\r\n formControlName=\"smtpUseDefaultCredentials\"\r\n />\r\n <label class=\"form-check-label\" for=\"smtp-use-default-credentials\">{{\r\n 'AbpSettingManagement::SmtpUseDefaultCredentials' | abpLocalization\r\n }}</label>\r\n </div>\r\n\r\n <div\r\n [@collapse]=\"{\r\n value: form.get('smtpUseDefaultCredentials')?.value ? 'collapsed' : 'expanded',\r\n params: { time: '200ms', easing: 'linear' }\r\n }\"\r\n >\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\">{{ 'AbpSettingManagement::SmtpDomain' | abpLocalization }}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"smtpDomain\" />\r\n </div>\r\n\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\">{{ 'AbpSettingManagement::SmtpUserName' | abpLocalization }}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"smtpUserName\" />\r\n </div>\r\n\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\">{{ 'AbpSettingManagement::SmtpPassword' | abpLocalization }}</label>\r\n <input type=\"password\" class=\"form-control\" formControlName=\"smtpPassword\" />\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <button type=\"submit\" class=\"btn btn-primary\">\r\n {{ 'AbpSettingManagement::Save' | abpLocalization }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n (click)=\"openSendEmailModal()\"\r\n class=\"btn btn-primary mx-2\"\r\n *abpPermission=\"emailingPolicy\"\r\n >\r\n <i class=\"fa f-send\" aria-hidden=\"true\"></i>\r\n {{ 'AbpSettingManagement::SendTestEmail' | abpLocalization }}\r\n </button>\r\n</form>\r\n\r\n<abp-modal [(visible)]=\"isEmailTestModalOpen\" [options]=\"modalSize\">\r\n <ng-template #abpHeader>\r\n <h3>{{ 'SendTestEmail' | abpLocalization }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"emailTestForm\" id=\"emailTestForm\" (ngSubmit)=\"emailTestFormSubmit()\">\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\">{{\r\n 'AbpSettingManagement::SenderEmailAddress' | abpLocalization\r\n }}</label>\r\n <input class=\"form-control\" formControlName=\"senderEmailAddress\" />\r\n </div>\r\n\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\">{{\r\n 'AbpSettingManagement::TargetEmailAddress' | abpLocalization\r\n }}</label>\r\n <input class=\"form-control\" formControlName=\"targetEmailAddress\" />\r\n </div>\r\n\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\">{{ 'AbpSettingManagement::Subject' | abpLocalization }}</label>\r\n <input class=\"form-control\" formControlName=\"subject\" />\r\n </div>\r\n\r\n <div class=\"mb-3 form-group\">\r\n <label class=\"form-label\">{{ 'AbpSettingManagement::Body' | abpLocalization }}</label>\r\n <textarea class=\"form-control\" formControlName=\"body\"></textarea>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <abp-button\r\n buttonType=\"submit\"\r\n iconClass=\"fa fa-send\"\r\n formName=\"emailTestForm\"\r\n [disabled]=\"emailTestForm.invalid && emailTestForm.dirty\"\r\n >\r\n <span>{{ 'AbpTenantManagement::Send' | abpLocalization }}</span>\r\n </abp-button>\r\n\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>Close</button>\r\n </ng-template>\r\n</abp-modal>\r\n" }]
84
+ }], ctorParameters: function () { return [{ type: i1.EmailSettingsService }, { type: i2.UntypedFormBuilder }, { type: i3.ToasterService }]; } });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtc2V0dGluZy1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zZXR0aW5nLW1hbmFnZW1lbnQvY29uZmlnL3NyYy9saWIvY29tcG9uZW50cy9lbWFpbC1zZXR0aW5nLWdyb3VwL2VtYWlsLXNldHRpbmctZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2V0dGluZy1tYW5hZ2VtZW50L2NvbmZpZy9zcmMvbGliL2NvbXBvbmVudHMvZW1haWwtc2V0dGluZy1ncm91cC9lbWFpbC1zZXR0aW5nLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQW9CLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7QUFHMUUsTUFLYSwwQkFBMEI7SUFRckMsWUFDVSxvQkFBMEMsRUFDMUMsRUFBc0IsRUFDdEIsY0FBOEI7UUFGOUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUN0QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFSeEMsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLG1CQUFjLDRFQUF5QztRQUN2RCx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsY0FBUyxHQUFrQixFQUFFLElBQUksRUFBQyxJQUFJLEVBQUMsQ0FBQTtJQU1wQyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sT0FBTztRQUNiLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxTQUFTLENBQUMsYUFBK0I7UUFDL0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixzQkFBc0IsRUFBRSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyRixrQkFBa0IsRUFBRSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3RSxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1lBQ2xDLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekQsYUFBYSxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztZQUM1Qyx5QkFBeUIsRUFBRSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQztZQUNwRSxVQUFVLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1lBQ3RDLFlBQVksRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7WUFDMUMsWUFBWSxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztTQUMzQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBRTdDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxvQkFBb0I7YUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDM0MsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNqQyxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pFLGtCQUFrQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUNYLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxtQkFBbUI7UUFFakIsSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBQztZQUM1QixPQUFPO1NBQ1I7UUFDQSxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2pGLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQTtJQUVKLENBQUM7OEdBMUVVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLCtEQ2R2Qyw4d0tBeUlBLG1qRkQ3SGMsQ0FBQyxRQUFRLENBQUM7O1NBRVgsMEJBQTBCOzJGQUExQiwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UseUJBQXlCLGNBRXZCLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdiTW9kYWxPcHRpb25zIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBjb2xsYXBzZSwgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNldHRpbmdNYW5hZ2VtZW50UG9saWN5TmFtZXMgfSBmcm9tICcuLi8uLi9lbnVtcy9wb2xpY3ktbmFtZXMnO1xyXG5pbXBvcnQgeyBFbWFpbFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb3h5L2VtYWlsLXNldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbWFpbFNldHRpbmdzRHRvIH0gZnJvbSAnLi4vLi4vcHJveHkvbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLWVtYWlsLXNldHRpbmctZ3JvdXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnZW1haWwtc2V0dGluZy1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgYW5pbWF0aW9uczogW2NvbGxhcHNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVtYWlsU2V0dGluZ0dyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBmb3JtITogVW50eXBlZEZvcm1Hcm91cDtcclxuICBlbWFpbFRlc3RGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIHNhdmluZyA9IGZhbHNlO1xyXG4gIGVtYWlsaW5nUG9saWN5ID0gU2V0dGluZ01hbmFnZW1lbnRQb2xpY3lOYW1lcy5FbWFpbGluZztcclxuICBpc0VtYWlsVGVzdE1vZGFsT3BlbiA9IGZhbHNlO1xyXG4gIG1vZGFsU2l6ZTpOZ2JNb2RhbE9wdGlvbnM9IHsgc2l6ZTpcImxnXCJ9IFxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZW1haWxTZXR0aW5nc1NlcnZpY2U6IEVtYWlsU2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSB0b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREYXRhKCkge1xyXG4gICAgdGhpcy5lbWFpbFNldHRpbmdzU2VydmljZS5nZXQoKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5idWlsZEZvcm0ocmVzKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZEZvcm0oZW1haWxTZXR0aW5nczogRW1haWxTZXR0aW5nc0R0bykge1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGRlZmF1bHRGcm9tRGlzcGxheU5hbWU6IFtlbWFpbFNldHRpbmdzLmRlZmF1bHRGcm9tRGlzcGxheU5hbWUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIGRlZmF1bHRGcm9tQWRkcmVzczogW2VtYWlsU2V0dGluZ3MuZGVmYXVsdEZyb21BZGRyZXNzLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBzbXRwSG9zdDogW2VtYWlsU2V0dGluZ3Muc210cEhvc3RdLFxyXG4gICAgICBzbXRwUG9ydDogW2VtYWlsU2V0dGluZ3Muc210cFBvcnQsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIHNtdHBFbmFibGVTc2w6IFtlbWFpbFNldHRpbmdzLnNtdHBFbmFibGVTc2xdLFxyXG4gICAgICBzbXRwVXNlRGVmYXVsdENyZWRlbnRpYWxzOiBbZW1haWxTZXR0aW5ncy5zbXRwVXNlRGVmYXVsdENyZWRlbnRpYWxzXSxcclxuICAgICAgc210cERvbWFpbjogW2VtYWlsU2V0dGluZ3Muc210cERvbWFpbl0sXHJcbiAgICAgIHNtdHBVc2VyTmFtZTogW2VtYWlsU2V0dGluZ3Muc210cFVzZXJOYW1lXSxcclxuICAgICAgc210cFBhc3N3b3JkOiBbZW1haWxTZXR0aW5ncy5zbXRwUGFzc3dvcmRdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zYXZpbmcgfHwgdGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLnNhdmluZyA9IHRydWU7XHJcbiAgICB0aGlzLmVtYWlsU2V0dGluZ3NTZXJ2aWNlXHJcbiAgICAgIC51cGRhdGUodGhpcy5mb3JtLnZhbHVlKVxyXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5zYXZpbmcgPSBmYWxzZSkpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLnN1Y2Nlc3MoJ0FicFNldHRpbmdNYW5hZ2VtZW50OjpTdWNjZXNzZnVsbHlTYXZlZCcpO1xyXG4gICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgb3BlblNlbmRFbWFpbE1vZGFsKCkge1xyXG4gICAgdGhpcy5idWlsZEVtYWlsVGVzdEZvcm0oKTtcclxuICAgIHRoaXMuaXNFbWFpbFRlc3RNb2RhbE9wZW4gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgYnVpbGRFbWFpbFRlc3RGb3JtKCkge1xyXG4gICAgdGhpcy5lbWFpbFRlc3RGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIHNlbmRlckVtYWlsQWRkcmVzczogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF1dLFxyXG4gICAgICB0YXJnZXRFbWFpbEFkZHJlc3M6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdXSxcclxuICAgICAgc3ViamVjdDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBib2R5OiBbJyddLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBlbWFpbFRlc3RGb3JtU3VibWl0KCkge1xyXG5cclxuICAgIGlmKHRoaXMuZW1haWxUZXN0Rm9ybS5pbnZhbGlkKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgIHRoaXMuZW1haWxTZXR0aW5nc1NlcnZpY2Uuc2VuZFRlc3RFbWFpbCh0aGlzLmVtYWlsVGVzdEZvcm0udmFsdWUpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLnN1Y2Nlc3MoJ0FicFNldHRpbmdNYW5hZ2VtZW50OjpTdWNjZXNzZnVsbHlTZW50Jyk7XHJcbiAgICAgIHRoaXMuaXNFbWFpbFRlc3RNb2RhbE9wZW4gPSBmYWxzZTtcclxuICAgIH0pXHJcbiAgICAgIFxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGgyPnt7ICdBYnBTZXR0aW5nTWFuYWdlbWVudDo6TWVudTpFbWFpbGluZycgfCBhYnBMb2NhbGl6YXRpb24gfX08L2gyPlxyXG5cclxuPGhyIGNsYXNzPVwibXktM1wiIC8+XHJcblxyXG48Zm9ybSAqbmdJZj1cImZvcm1cIiBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwic3VibWl0KClcIiBbdmFsaWRhdGVPblN1Ym1pdF09XCJ0cnVlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIm1iLTMgZm9ybS1ncm91cFwiPlxyXG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiXHJcbiAgICAgID57eyAnQWJwU2V0dGluZ01hbmFnZW1lbnQ6OkRlZmF1bHRGcm9tRGlzcGxheU5hbWUnIHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgICAgIH19PHNwYW4gY2xhc3M9XCJtcy0xXCI+Kjwvc3Bhbj48L2xhYmVsXHJcbiAgICA+XHJcbiAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRlZmF1bHRGcm9tRGlzcGxheU5hbWVcIiAvPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtYi0zIGZvcm0tZ3JvdXBcIj5cclxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIlxyXG4gICAgICA+e3sgJ0FicFNldHRpbmdNYW5hZ2VtZW50OjpEZWZhdWx0RnJvbUFkZHJlc3MnIHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgICAgIH19PHNwYW4gY2xhc3M9XCJtcy0xXCI+Kjwvc3Bhbj48L2xhYmVsXHJcbiAgICA+XHJcbiAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRlZmF1bHRGcm9tQWRkcmVzc1wiIC8+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1iLTMgZm9ybS1ncm91cFwiPlxyXG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7ICdBYnBTZXR0aW5nTWFuYWdlbWVudDo6U210cEhvc3QnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9sYWJlbD5cclxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwic210cEhvc3RcIiAvPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtYi0zIGZvcm0tZ3JvdXBcIj5cclxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIlxyXG4gICAgICA+e3sgJ0FicFNldHRpbmdNYW5hZ2VtZW50OjpTbXRwUG9ydCcgfCBhYnBMb2NhbGl6YXRpb24gfX08c3BhbiBjbGFzcz1cIm1zLTFcIj4qPC9zcGFuPjwvbGFiZWxcclxuICAgID5cclxuICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJzbXRwUG9ydFwiIC8+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTJcIj5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICBpZD1cInNtdHAtZW5hYmxlLXNzbFwiXHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInNtdHBFbmFibGVTc2xcIlxyXG4gICAgLz5cclxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJzbXRwLWVuYWJsZS1zc2xcIj57e1xyXG4gICAgICAnQWJwU2V0dGluZ01hbmFnZW1lbnQ6OlNtdHBFbmFibGVTc2wnIHwgYWJwTG9jYWxpemF0aW9uXHJcbiAgICB9fTwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbWItMlwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgIGlkPVwic210cC11c2UtZGVmYXVsdC1jcmVkZW50aWFsc1wiXHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInNtdHBVc2VEZWZhdWx0Q3JlZGVudGlhbHNcIlxyXG4gICAgLz5cclxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJzbXRwLXVzZS1kZWZhdWx0LWNyZWRlbnRpYWxzXCI+e3tcclxuICAgICAgJ0FicFNldHRpbmdNYW5hZ2VtZW50OjpTbXRwVXNlRGVmYXVsdENyZWRlbnRpYWxzJyB8IGFicExvY2FsaXphdGlvblxyXG4gICAgfX08L2xhYmVsPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2XHJcbiAgICBbQGNvbGxhcHNlXT1cIntcclxuICAgICAgdmFsdWU6IGZvcm0uZ2V0KCdzbXRwVXNlRGVmYXVsdENyZWRlbnRpYWxzJyk/LnZhbHVlID8gJ2NvbGxhcHNlZCcgOiAnZXhwYW5kZWQnLFxyXG4gICAgICBwYXJhbXM6IHsgdGltZTogJzIwMG1zJywgZWFzaW5nOiAnbGluZWFyJyB9XHJcbiAgICB9XCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWItMyBmb3JtLWdyb3VwXCI+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eyAnQWJwU2V0dGluZ01hbmFnZW1lbnQ6OlNtdHBEb21haW4nIHwgYWJwTG9jYWxpemF0aW9uIH19PC9sYWJlbD5cclxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJzbXRwRG9tYWluXCIgLz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtYi0zIGZvcm0tZ3JvdXBcIj5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7ICdBYnBTZXR0aW5nTWFuYWdlbWVudDo6U210cFVzZXJOYW1lJyB8IGFicExvY2FsaXphdGlvbiB9fTwvbGFiZWw+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwic210cFVzZXJOYW1lXCIgLz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtYi0zIGZvcm0tZ3JvdXBcIj5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7ICdBYnBTZXR0aW5nTWFuYWdlbWVudDo6U210cFBhc3N3b3JkJyB8IGFicExvY2FsaXphdGlvbiB9fTwvbGFiZWw+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwicGFzc3dvcmRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInNtdHBQYXNzd29yZFwiIC8+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGhyIC8+XHJcblxyXG4gIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XHJcbiAgICB7eyAnQWJwU2V0dGluZ01hbmFnZW1lbnQ6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgPC9idXR0b24+XHJcbiAgPGJ1dHRvblxyXG4gICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAoY2xpY2spPVwib3BlblNlbmRFbWFpbE1vZGFsKClcIlxyXG4gICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXgtMlwiXHJcbiAgICAqYWJwUGVybWlzc2lvbj1cImVtYWlsaW5nUG9saWN5XCJcclxuICA+XHJcbiAgICA8aSBjbGFzcz1cImZhIGYtc2VuZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgIHt7ICdBYnBTZXR0aW5nTWFuYWdlbWVudDo6U2VuZFRlc3RFbWFpbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICA8L2J1dHRvbj5cclxuPC9mb3JtPlxyXG5cclxuPGFicC1tb2RhbCBbKHZpc2libGUpXT1cImlzRW1haWxUZXN0TW9kYWxPcGVuXCIgW29wdGlvbnNdPVwibW9kYWxTaXplXCI+XHJcbiAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XHJcbiAgICA8aDM+e3sgJ1NlbmRUZXN0RW1haWwnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9oMz5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImVtYWlsVGVzdEZvcm1cIiBpZD1cImVtYWlsVGVzdEZvcm1cIiAobmdTdWJtaXQpPVwiZW1haWxUZXN0Rm9ybVN1Ym1pdCgpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIGZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3tcclxuICAgICAgICAgICdBYnBTZXR0aW5nTWFuYWdlbWVudDo6U2VuZGVyRW1haWxBZGRyZXNzJyB8IGFicExvY2FsaXphdGlvblxyXG4gICAgICAgIH19PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJzZW5kZXJFbWFpbEFkZHJlc3NcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIGZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3tcclxuICAgICAgICAgICdBYnBTZXR0aW5nTWFuYWdlbWVudDo6VGFyZ2V0RW1haWxBZGRyZXNzJyB8IGFicExvY2FsaXphdGlvblxyXG4gICAgICAgIH19PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ0YXJnZXRFbWFpbEFkZHJlc3NcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIGZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3sgJ0FicFNldHRpbmdNYW5hZ2VtZW50OjpTdWJqZWN0JyB8IGFicExvY2FsaXphdGlvbiB9fTwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwic3ViamVjdFwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eyAnQWJwU2V0dGluZ01hbmFnZW1lbnQ6OkJvZHknIHwgYWJwTG9jYWxpemF0aW9uIH19PC9sYWJlbD5cclxuICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJib2R5XCI+PC90ZXh0YXJlYT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XHJcbiAgICA8YWJwLWJ1dHRvblxyXG4gICAgICBidXR0b25UeXBlPVwic3VibWl0XCJcclxuICAgICAgaWNvbkNsYXNzPVwiZmEgZmEtc2VuZFwiXHJcbiAgICAgIGZvcm1OYW1lPVwiZW1haWxUZXN0Rm9ybVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJlbWFpbFRlc3RGb3JtLmludmFsaWQgJiYgZW1haWxUZXN0Rm9ybS5kaXJ0eVwiXHJcbiAgICA+XHJcbiAgICAgIDxzcGFuPnt7ICdBYnBUZW5hbnRNYW5hZ2VtZW50OjpTZW5kJyB8IGFicExvY2FsaXphdGlvbiB9fTwvc3Bhbj5cclxuICAgIDwvYWJwLWJ1dHRvbj5cclxuXHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+Q2xvc2U8L2J1dHRvbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2FicC1tb2RhbD5cclxuIl19
@@ -1,4 +1,4 @@
1
- export * from './route-names';
2
- export * from './setting-tab-names';
3
- export * from './policy-names';
1
+ export * from './route-names';
2
+ export * from './setting-tab-names';
3
+ export * from './policy-names';
4
4
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zZXR0aW5nLW1hbmFnZW1lbnQvY29uZmlnL3NyYy9saWIvZW51bXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yb3V0ZS1uYW1lcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2V0dGluZy10YWItbmFtZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BvbGljeS1uYW1lcyc7XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LW5hbWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2V0dGluZy1tYW5hZ2VtZW50L2NvbmZpZy9zcmMvbGliL2VudW1zL3BvbGljeS1uYW1lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVudW0gU2V0dGluZ01hbmFnZW1lbnRQb2xpY3lOYW1lcyB7XHJcbiAgRW1haWxpbmcgPSAnU2V0dGluZ01hbmFnZW1lbnQuRW1haWxpbmcnLFxyXG4gfVxyXG5cclxuIl19
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtbmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zZXR0aW5nLW1hbmFnZW1lbnQvY29uZmlnL3NyYy9saWIvZW51bXMvcm91dGUtbmFtZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnVtIGVTZXR0aW5nTWFuYWdlbWVudFJvdXRlTmFtZXMge1xyXG4gIFNldHRpbmdzID0gJ0FicFNldHRpbmdNYW5hZ2VtZW50OjpTZXR0aW5ncycsXHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy10YWItbmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zZXR0aW5nLW1hbmFnZW1lbnQvY29uZmlnL3NyYy9saWIvZW51bXMvc2V0dGluZy10YWItbmFtZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnVtIGVTZXR0aW5nTWFuYW1hZ2VtZW50U2V0dGluZ1RhYk5hbWVzIHtcclxuICBFbWFpbFNldHRpbmdHcm91cCA9ICdBYnBTZXR0aW5nTWFuYWdlbWVudDo6TWVudTpFbWFpbGluZycsXHJcbn1cclxuIl19