@volosoft/abp.ng.theme.lepton-x 2.2.1 → 2.3.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/README.md +129 -1
  2. package/account/account/account-layout.component.d.ts +6 -6
  3. package/account/account/account-layout.module.d.ts +20 -22
  4. package/account/account/components/auth-wrapper/auth-wrapper.component.d.ts +7 -8
  5. package/account/account/components/index.d.ts +2 -2
  6. package/account/account/components/tenant-box/tenant-box.component.d.ts +7 -8
  7. package/account/account/index.d.ts +3 -3
  8. package/account/index.d.ts +1 -1
  9. package/assets/css/abp-bundle.css +4 -0
  10. package/assets/css/abp-bundle.rtl.css +4 -0
  11. package/esm2022/account/account/account-layout.component.mjs +20 -0
  12. package/esm2022/account/account/account-layout.module.mjs +52 -0
  13. package/esm2022/account/account/components/auth-wrapper/auth-wrapper.component.mjs +29 -0
  14. package/{esm2020 → esm2022}/account/account/components/index.mjs +2 -2
  15. package/esm2022/account/account/components/tenant-box/tenant-box.component.mjs +22 -0
  16. package/{esm2020 → esm2022}/account/account/index.mjs +3 -3
  17. package/{esm2020 → esm2022}/account/index.mjs +1 -1
  18. package/{esm2020 → esm2022}/account/volosoft-abp.ng.theme.lepton-x-account.mjs +4 -4
  19. package/{esm2020 → esm2022}/index.mjs +1 -1
  20. package/{esm2020 → esm2022}/layouts/index.mjs +2 -2
  21. package/{esm2020 → esm2022}/layouts/side-menu/index.mjs +1 -1
  22. package/{esm2020 → esm2022}/layouts/side-menu/layout/index.mjs +3 -3
  23. package/{esm2020 → esm2022}/layouts/side-menu/layout/providers/index.mjs +1 -1
  24. package/{esm2020 → esm2022}/layouts/side-menu/layout/providers/translate.provider.mjs +16 -16
  25. package/esm2022/layouts/side-menu/layout/side-menu-application-layout.component.mjs +30 -0
  26. package/esm2022/layouts/side-menu/layout/side-menu-layout.module.mjs +74 -0
  27. package/{esm2020 → esm2022}/layouts/top-menu/index.mjs +1 -1
  28. package/{esm2020 → esm2022}/layouts/top-menu/layout/index.mjs +1 -1
  29. package/{esm2020 → esm2022}/layouts/top-menu/layout/providers/index.mjs +1 -1
  30. package/{esm2020 → esm2022}/layouts/top-menu/layout/providers/translate.provider.mjs +12 -12
  31. package/esm2022/layouts/top-menu/layout/top-menu-application-layout.component.mjs +28 -0
  32. package/esm2022/layouts/top-menu/layout/top-menu-layout.module.mjs +79 -0
  33. package/{esm2020 → esm2022}/layouts/volosoft-abp.ng.theme.lepton-x-layouts.mjs +4 -4
  34. package/esm2022/lib/components/abp-validation-error/abp-validation-error.component.mjs +52 -0
  35. package/esm2022/lib/components/abp-validation-error/abp-validation-error.module.mjs +40 -0
  36. package/{esm2020 → esm2022}/lib/components/abp-validation-error/index.mjs +2 -2
  37. package/esm2022/lib/components/http-error/http-error.component.mjs +45 -0
  38. package/esm2022/lib/components/http-error/http-error.module.mjs +26 -0
  39. package/{esm2020 → esm2022}/lib/components/http-error/index.mjs +2 -2
  40. package/{esm2020 → esm2022}/lib/components/index.mjs +2 -2
  41. package/{esm2020 → esm2022}/lib/enums/components.mjs +1 -1
  42. package/{esm2020 → esm2022}/lib/enums/index.mjs +2 -2
  43. package/{esm2020 → esm2022}/lib/enums/user-menu-items.mjs +9 -9
  44. package/{esm2020 → esm2022}/lib/index.mjs +5 -5
  45. package/esm2022/lib/lepton-x.module.mjs +60 -0
  46. package/esm2022/lib/providers/account-layout.provider.mjs +20 -0
  47. package/{esm2020 → esm2022}/lib/providers/init-service.provider.mjs +18 -18
  48. package/{esm2020 → esm2022}/lib/providers/style.provider.mjs +17 -17
  49. package/{esm2020 → esm2022}/lib/providers/translate.provider.mjs +21 -21
  50. package/{esm2020 → esm2022}/lib/providers/user-menu-service.provider.mjs +88 -88
  51. package/esm2022/lib/services/abp-auth.service.mjs +24 -0
  52. package/esm2022/lib/services/abp-settings.service.mjs +125 -0
  53. package/esm2022/lib/services/abp-toolbar.service.mjs +33 -0
  54. package/esm2022/lib/services/abp-translate.service.mjs +47 -0
  55. package/{esm2020 → esm2022}/lib/services/index.mjs +4 -4
  56. package/{esm2020 → esm2022}/lib/tokens/index.mjs +1 -1
  57. package/{esm2020 → esm2022}/lib/tokens/translate-key-map.mjs +2 -2
  58. package/{esm2020 → esm2022}/volosoft-abp.ng.theme.lepton-x.mjs +4 -4
  59. package/fesm2022/volosoft-abp.ng.theme.lepton-x-account.mjs +108 -0
  60. package/fesm2022/volosoft-abp.ng.theme.lepton-x-account.mjs.map +1 -0
  61. package/{fesm2015 → fesm2022}/volosoft-abp.ng.theme.lepton-x-layouts.mjs +188 -188
  62. package/fesm2022/volosoft-abp.ng.theme.lepton-x-layouts.mjs.map +1 -0
  63. package/{fesm2020 → fesm2022}/volosoft-abp.ng.theme.lepton-x.mjs +502 -483
  64. package/fesm2022/volosoft-abp.ng.theme.lepton-x.mjs.map +1 -0
  65. package/index.d.ts +1 -1
  66. package/layouts/index.d.ts +2 -2
  67. package/layouts/side-menu/index.d.ts +1 -1
  68. package/layouts/side-menu/layout/index.d.ts +3 -3
  69. package/layouts/side-menu/layout/providers/index.d.ts +1 -1
  70. package/layouts/side-menu/layout/providers/translate.provider.d.ts +2 -2
  71. package/layouts/side-menu/layout/side-menu-application-layout.component.d.ts +17 -17
  72. package/layouts/side-menu/layout/side-menu-layout.module.d.ts +15 -15
  73. package/layouts/top-menu/index.d.ts +1 -1
  74. package/layouts/top-menu/layout/index.d.ts +1 -1
  75. package/layouts/top-menu/layout/providers/index.d.ts +1 -1
  76. package/layouts/top-menu/layout/providers/translate.provider.d.ts +2 -2
  77. package/layouts/top-menu/layout/top-menu-application-layout.component.d.ts +15 -15
  78. package/layouts/top-menu/layout/top-menu-layout.module.d.ts +16 -16
  79. package/lib/components/abp-validation-error/abp-validation-error.component.d.ts +9 -9
  80. package/lib/components/abp-validation-error/abp-validation-error.module.d.ts +12 -12
  81. package/lib/components/abp-validation-error/index.d.ts +2 -2
  82. package/lib/components/http-error/http-error.component.d.ts +10 -10
  83. package/lib/components/http-error/http-error.module.d.ts +13 -13
  84. package/lib/components/http-error/index.d.ts +2 -2
  85. package/lib/components/index.d.ts +2 -2
  86. package/lib/enums/components.d.ts +20 -20
  87. package/lib/enums/index.d.ts +2 -2
  88. package/lib/enums/user-menu-items.d.ts +8 -8
  89. package/lib/index.d.ts +5 -5
  90. package/lib/lepton-x.module.d.ts +11 -11
  91. package/lib/providers/account-layout.provider.d.ts +8 -0
  92. package/lib/providers/init-service.provider.d.ts +6 -6
  93. package/lib/providers/style.provider.d.ts +3 -3
  94. package/lib/providers/translate.provider.d.ts +6 -6
  95. package/lib/providers/user-menu-service.provider.d.ts +8 -8
  96. package/lib/services/abp-auth.service.d.ts +12 -12
  97. package/lib/services/abp-settings.service.d.ts +26 -26
  98. package/lib/services/abp-toolbar.service.d.ts +13 -13
  99. package/lib/services/abp-translate.service.d.ts +14 -14
  100. package/lib/services/index.d.ts +4 -4
  101. package/lib/tokens/index.d.ts +1 -1
  102. package/lib/tokens/translate-key-map.d.ts +4 -4
  103. package/package.json +37 -29
  104. package/esm2020/account/account/account-layout.component.mjs +0 -19
  105. package/esm2020/account/account/account-layout.module.mjs +0 -71
  106. package/esm2020/account/account/components/auth-wrapper/auth-wrapper.component.mjs +0 -20
  107. package/esm2020/account/account/components/tenant-box/tenant-box.component.mjs +0 -20
  108. package/esm2020/layouts/side-menu/layout/side-menu-application-layout.component.mjs +0 -29
  109. package/esm2020/layouts/side-menu/layout/side-menu-layout.module.mjs +0 -73
  110. package/esm2020/layouts/top-menu/layout/top-menu-application-layout.component.mjs +0 -27
  111. package/esm2020/layouts/top-menu/layout/top-menu-layout.module.mjs +0 -78
  112. package/esm2020/lib/components/abp-validation-error/abp-validation-error.component.mjs +0 -51
  113. package/esm2020/lib/components/abp-validation-error/abp-validation-error.module.mjs +0 -39
  114. package/esm2020/lib/components/http-error/http-error.component.mjs +0 -44
  115. package/esm2020/lib/components/http-error/http-error.module.mjs +0 -25
  116. package/esm2020/lib/lepton-x.module.mjs +0 -57
  117. package/esm2020/lib/services/abp-auth.service.mjs +0 -23
  118. package/esm2020/lib/services/abp-settings.service.mjs +0 -124
  119. package/esm2020/lib/services/abp-toolbar.service.mjs +0 -32
  120. package/esm2020/lib/services/abp-translate.service.mjs +0 -46
  121. package/fesm2015/volosoft-abp.ng.theme.lepton-x-account.mjs +0 -121
  122. package/fesm2015/volosoft-abp.ng.theme.lepton-x-account.mjs.map +0 -1
  123. package/fesm2015/volosoft-abp.ng.theme.lepton-x-layouts.mjs.map +0 -1
  124. package/fesm2015/volosoft-abp.ng.theme.lepton-x.mjs +0 -542
  125. package/fesm2015/volosoft-abp.ng.theme.lepton-x.mjs.map +0 -1
  126. package/fesm2020/volosoft-abp.ng.theme.lepton-x-account.mjs +0 -121
  127. package/fesm2020/volosoft-abp.ng.theme.lepton-x-account.mjs.map +0 -1
  128. package/fesm2020/volosoft-abp.ng.theme.lepton-x-layouts.mjs +0 -219
  129. package/fesm2020/volosoft-abp.ng.theme.lepton-x-layouts.mjs.map +0 -1
  130. package/fesm2020/volosoft-abp.ng.theme.lepton-x.mjs.map +0 -1
@@ -1,10 +1,10 @@
1
- export var eUserMenuItems;
2
- (function (eUserMenuItems) {
3
- eUserMenuItems["LinkedAccounts"] = "LinkedAccounts";
4
- eUserMenuItems["MyAccount"] = "MyAccount";
5
- eUserMenuItems["Logout"] = "Logout";
6
- eUserMenuItems["SecurityLogs"] = "SecurityLogs";
7
- eUserMenuItems["BackToImpersonator"] = "BackToImpersonator";
8
- eUserMenuItems["AuthorityDelegation"] = "AuthorityDelegation";
9
- })(eUserMenuItems || (eUserMenuItems = {}));
1
+ export var eUserMenuItems;
2
+ (function (eUserMenuItems) {
3
+ eUserMenuItems["LinkedAccounts"] = "LinkedAccounts";
4
+ eUserMenuItems["MyAccount"] = "MyAccount";
5
+ eUserMenuItems["Logout"] = "Logout";
6
+ eUserMenuItems["SecurityLogs"] = "SecurityLogs";
7
+ eUserMenuItems["BackToImpersonator"] = "BackToImpersonator";
8
+ eUserMenuItems["AuthorityDelegation"] = "AuthorityDelegation";
9
+ })(eUserMenuItems || (eUserMenuItems = {}));
10
10
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tZW51LWl0ZW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy92b2xvLWxlcHRvbi14L3NyYy9saWIvZW51bXMvdXNlci1tZW51LWl0ZW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGNBT1g7QUFQRCxXQUFZLGNBQWM7SUFDeEIsbURBQWlDLENBQUE7SUFDakMseUNBQXVCLENBQUE7SUFDdkIsbUNBQWlCLENBQUE7SUFDakIsK0NBQTZCLENBQUE7SUFDN0IsMkRBQXlDLENBQUE7SUFDekMsNkRBQTJDLENBQUE7QUFDN0MsQ0FBQyxFQVBXLGNBQWMsS0FBZCxjQUFjLFFBT3pCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gZVVzZXJNZW51SXRlbXMge1xyXG4gIExpbmtlZEFjY291bnRzID0gJ0xpbmtlZEFjY291bnRzJyxcclxuICBNeUFjY291bnQgPSAnTXlBY2NvdW50JyxcclxuICBMb2dvdXQgPSAnTG9nb3V0JyxcclxuICBTZWN1cml0eUxvZ3MgPSAnU2VjdXJpdHlMb2dzJyxcclxuICBCYWNrVG9JbXBlcnNvbmF0b3IgPSAnQmFja1RvSW1wZXJzb25hdG9yJyxcclxuICBBdXRob3JpdHlEZWxlZ2F0aW9uID0gJ0F1dGhvcml0eURlbGVnYXRpb24nLFxyXG59XHJcbiJdfQ==
@@ -1,6 +1,6 @@
1
- export * from './components/index';
2
- export * from './enums/index';
3
- export * from './services/index';
4
- export * from './lepton-x.module';
5
- export * from './tokens/index';
1
+ export * from './components/index';
2
+ export * from './enums/index';
3
+ export * from './services/index';
4
+ export * from './lepton-x.module';
5
+ export * from './tokens/index';
6
6
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3ZvbG8tbGVwdG9uLXgvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2luZGV4JztcclxuZXhwb3J0ICogZnJvbSAnLi9lbnVtcy9pbmRleCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvaW5kZXgnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xlcHRvbi14Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdG9rZW5zL2luZGV4JztcclxuIl19
@@ -0,0 +1,60 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { LpxModule } from '@volosoft/ngx-lepton-x';
3
+ import { PROFILE_PICTURE_PROVIDERS } from '@volo/abp.commercial.ng.ui/config';
4
+ import { AbpValidationErrorModule } from './components/abp-validation-error/abp-validation-error.module';
5
+ import { LPX_STYLE_PROVIDER } from './providers/style.provider';
6
+ import { INIT_SERVICE_PROVIDER } from './providers/init-service.provider';
7
+ import { LPX_TRANSLATE_KEYS_PROVIDER, LPX_TRANSLATE_PROVIDER, } from './providers/translate.provider';
8
+ import { HttpErrorModule } from './components/http-error/http-error.module';
9
+ import { LeptonXAbpCoreModule } from '@volo/abp.ng.lepton-x.core';
10
+ import { LEPTON_X_USER_MENU_PROVIDERS } from './providers/user-menu-service.provider';
11
+ import { ACCOUNT_LAYOUT_PROVIDER } from './providers/account-layout.provider';
12
+ import * as i0 from "@angular/core";
13
+ class ThemeLeptonXModule {
14
+ static forRoot(options) {
15
+ return {
16
+ ngModule: ThemeLeptonXModule,
17
+ providers: [
18
+ LPX_STYLE_PROVIDER,
19
+ PROFILE_PICTURE_PROVIDERS,
20
+ LEPTON_X_USER_MENU_PROVIDERS,
21
+ INIT_SERVICE_PROVIDER,
22
+ AbpValidationErrorModule.forRoot().providers,
23
+ // TODO: muhammed: Create an injection token for theme settings
24
+ LpxModule.forRoot({
25
+ ...createLpxModuleOptions(options),
26
+ }).providers,
27
+ LPX_TRANSLATE_KEYS_PROVIDER,
28
+ LPX_TRANSLATE_PROVIDER,
29
+ LeptonXAbpCoreModule.forRoot().providers,
30
+ ACCOUNT_LAYOUT_PROVIDER,
31
+ ],
32
+ };
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: ThemeLeptonXModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
35
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.6", ngImport: i0, type: ThemeLeptonXModule, imports: [HttpErrorModule], exports: [HttpErrorModule] }); }
36
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: ThemeLeptonXModule, imports: [HttpErrorModule, HttpErrorModule] }); }
37
+ }
38
+ export { ThemeLeptonXModule };
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: ThemeLeptonXModule, decorators: [{
40
+ type: NgModule,
41
+ args: [{
42
+ imports: [HttpErrorModule],
43
+ exports: [HttpErrorModule],
44
+ }]
45
+ }] });
46
+ function createLpxModuleOptions(options) {
47
+ return {
48
+ ...options,
49
+ styleFactory: (styles) => {
50
+ styles.push({
51
+ bundleName: 'abp-bundle',
52
+ });
53
+ if (options?.styleFactory) {
54
+ return options.styleFactory(styles);
55
+ }
56
+ return styles;
57
+ },
58
+ };
59
+ }
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVwdG9uLXgubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy92b2xvLWxlcHRvbi14L3NyYy9saWIvbGVwdG9uLXgubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXhFLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN6RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLHNCQUFzQixHQUN2QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFJOUUsTUFJYSxrQkFBa0I7SUFDN0IsTUFBTSxDQUFDLE9BQU8sQ0FDWixPQUFtQztRQUVuQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixTQUFTLEVBQUU7Z0JBQ1Qsa0JBQWtCO2dCQUNsQix5QkFBeUI7Z0JBQ3pCLDRCQUE0QjtnQkFDNUIscUJBQXFCO2dCQUNyQix3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFxQjtnQkFDeEQsK0RBQStEO2dCQUMvRCxTQUFTLENBQUMsT0FBTyxDQUFDO29CQUNoQixHQUFHLHNCQUFzQixDQUFDLE9BQU8sQ0FBQztpQkFDbkMsQ0FBQyxDQUFDLFNBQXFCO2dCQUN4QiwyQkFBMkI7Z0JBQzNCLHNCQUFzQjtnQkFDdEIsb0JBQW9CLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBcUI7Z0JBQ3BELHVCQUF1QjthQUN4QjtTQUNGLENBQUM7SUFDSixDQUFDOzhHQXRCVSxrQkFBa0I7K0dBQWxCLGtCQUFrQixZQUhuQixlQUFlLGFBQ2YsZUFBZTsrR0FFZCxrQkFBa0IsWUFIbkIsZUFBZSxFQUNmLGVBQWU7O1NBRWQsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBSjlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMxQixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzNCOztBQXlCRCxTQUFTLHNCQUFzQixDQUM3QixPQUFtQztJQUVuQyxPQUFPO1FBQ0wsR0FBRyxPQUFPO1FBQ1YsWUFBWSxFQUFFLENBQUMsTUFBaUIsRUFBRSxFQUFFO1lBQ2xDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ1YsVUFBVSxFQUFFLFlBQVk7YUFDekIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxPQUFPLEVBQUUsWUFBWSxFQUFFO2dCQUN6QixPQUFPLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDckM7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTHB4U3R5bGVzIH0gZnJvbSAnQHZvbG8vbmd4LWxlcHRvbi14LmNvcmUnO1xyXG5pbXBvcnQgeyBMcHhNb2R1bGUsIExweE9wdGlvbnMgfSBmcm9tICdAdm9sb3NvZnQvbmd4LWxlcHRvbi14JztcclxuaW1wb3J0IHsgUFJPRklMRV9QSUNUVVJFX1BST1ZJREVSUyB9IGZyb20gJ0B2b2xvL2FicC5jb21tZXJjaWFsLm5nLnVpL2NvbmZpZyc7XHJcbmltcG9ydCB7IEFicFZhbGlkYXRpb25FcnJvck1vZHVsZSB9IGZyb20gJy4vY29tcG9uZW50cy9hYnAtdmFsaWRhdGlvbi1lcnJvci9hYnAtdmFsaWRhdGlvbi1lcnJvci5tb2R1bGUnO1xyXG5pbXBvcnQgeyBMUFhfU1RZTEVfUFJPVklERVIgfSBmcm9tICcuL3Byb3ZpZGVycy9zdHlsZS5wcm92aWRlcic7XHJcbmltcG9ydCB7IElOSVRfU0VSVklDRV9QUk9WSURFUiB9IGZyb20gJy4vcHJvdmlkZXJzL2luaXQtc2VydmljZS5wcm92aWRlcic7XHJcbmltcG9ydCB7XHJcbiAgTFBYX1RSQU5TTEFURV9LRVlTX1BST1ZJREVSLFxyXG4gIExQWF9UUkFOU0xBVEVfUFJPVklERVIsXHJcbn0gZnJvbSAnLi9wcm92aWRlcnMvdHJhbnNsYXRlLnByb3ZpZGVyJztcclxuaW1wb3J0IHsgSHR0cEVycm9yTW9kdWxlIH0gZnJvbSAnLi9jb21wb25lbnRzL2h0dHAtZXJyb3IvaHR0cC1lcnJvci5tb2R1bGUnO1xyXG5pbXBvcnQgeyBMZXB0b25YQWJwQ29yZU1vZHVsZSB9IGZyb20gJ0B2b2xvL2FicC5uZy5sZXB0b24teC5jb3JlJztcclxuaW1wb3J0IHsgTEVQVE9OX1hfVVNFUl9NRU5VX1BST1ZJREVSUyB9IGZyb20gJy4vcHJvdmlkZXJzL3VzZXItbWVudS1zZXJ2aWNlLnByb3ZpZGVyJztcclxuaW1wb3J0IHsgQUNDT1VOVF9MQVlPVVRfUFJPVklERVIgfSBmcm9tICcuL3Byb3ZpZGVycy9hY2NvdW50LWxheW91dC5wcm92aWRlcic7XHJcblxyXG5leHBvcnQgdHlwZSBUaGVtZUxlcHRvblhNb2R1bGVPcHRpb25zID0gTHB4T3B0aW9ucztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW0h0dHBFcnJvck1vZHVsZV0sXHJcbiAgZXhwb3J0czogW0h0dHBFcnJvck1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUaGVtZUxlcHRvblhNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KFxyXG4gICAgb3B0aW9ucz86IFRoZW1lTGVwdG9uWE1vZHVsZU9wdGlvbnNcclxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFRoZW1lTGVwdG9uWE1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IFRoZW1lTGVwdG9uWE1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgTFBYX1NUWUxFX1BST1ZJREVSLFxyXG4gICAgICAgIFBST0ZJTEVfUElDVFVSRV9QUk9WSURFUlMsXHJcbiAgICAgICAgTEVQVE9OX1hfVVNFUl9NRU5VX1BST1ZJREVSUyxcclxuICAgICAgICBJTklUX1NFUlZJQ0VfUFJPVklERVIsXHJcbiAgICAgICAgQWJwVmFsaWRhdGlvbkVycm9yTW9kdWxlLmZvclJvb3QoKS5wcm92aWRlcnMgYXMgUHJvdmlkZXIsXHJcbiAgICAgICAgLy8gVE9ETzogbXVoYW1tZWQ6IENyZWF0ZSBhbiBpbmplY3Rpb24gdG9rZW4gZm9yIHRoZW1lIHNldHRpbmdzXHJcbiAgICAgICAgTHB4TW9kdWxlLmZvclJvb3Qoe1xyXG4gICAgICAgICAgLi4uY3JlYXRlTHB4TW9kdWxlT3B0aW9ucyhvcHRpb25zKSxcclxuICAgICAgICB9KS5wcm92aWRlcnMgYXMgUHJvdmlkZXIsXHJcbiAgICAgICAgTFBYX1RSQU5TTEFURV9LRVlTX1BST1ZJREVSLFxyXG4gICAgICAgIExQWF9UUkFOU0xBVEVfUFJPVklERVIsXHJcbiAgICAgICAgTGVwdG9uWEFicENvcmVNb2R1bGUuZm9yUm9vdCgpLnByb3ZpZGVycyBhcyBQcm92aWRlcixcclxuICAgICAgICBBQ0NPVU5UX0xBWU9VVF9QUk9WSURFUixcclxuICAgICAgXSxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbmZ1bmN0aW9uIGNyZWF0ZUxweE1vZHVsZU9wdGlvbnMoXHJcbiAgb3B0aW9ucz86IFRoZW1lTGVwdG9uWE1vZHVsZU9wdGlvbnNcclxuKTogTHB4T3B0aW9ucyB7XHJcbiAgcmV0dXJuIHtcclxuICAgIC4uLm9wdGlvbnMsXHJcbiAgICBzdHlsZUZhY3Rvcnk6IChzdHlsZXM6IExweFN0eWxlcykgPT4ge1xyXG4gICAgICBzdHlsZXMucHVzaCh7XHJcbiAgICAgICAgYnVuZGxlTmFtZTogJ2FicC1idW5kbGUnLFxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKG9wdGlvbnM/LnN0eWxlRmFjdG9yeSkge1xyXG4gICAgICAgIHJldHVybiBvcHRpb25zLnN0eWxlRmFjdG9yeShzdHlsZXMpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBzdHlsZXM7XHJcbiAgICB9LFxyXG4gIH07XHJcbn1cclxuIl19
@@ -0,0 +1,20 @@
1
+ import { ReplaceableComponentsService } from "@abp/ng.core";
2
+ import { APP_INITIALIZER, Injector } from "@angular/core";
3
+ import { AccountLayoutComponent } from "@volosoft/abp.ng.theme.lepton-x/account";
4
+ export const ACCOUNT_LAYOUT_PROVIDER = {
5
+ provide: APP_INITIALIZER,
6
+ useFactory: initAccountLayout,
7
+ deps: [Injector],
8
+ multi: true,
9
+ };
10
+ export function initAccountLayout(injector) {
11
+ function init() {
12
+ const replaceableComponents = injector.get(ReplaceableComponentsService);
13
+ replaceableComponents.add({
14
+ key: "Theme.AccountLayoutComponent" /* eThemeLeptonXComponents.AccountLayout */,
15
+ component: AccountLayoutComponent,
16
+ });
17
+ }
18
+ return init;
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1sYXlvdXQucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3ZvbG8tbGVwdG9uLXgvc3JjL2xpYi9wcm92aWRlcnMvYWNjb3VudC1sYXlvdXQucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRWpGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ25DLE9BQU8sRUFBRSxlQUFlO0lBQ3hCLFVBQVUsRUFBRSxpQkFBaUI7SUFDN0IsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQ2hCLEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQTtBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxRQUFrQjtJQUNsRCxTQUFTLElBQUk7UUFDWCxNQUFNLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUN6RSxxQkFBcUIsQ0FBQyxHQUFHLENBQUM7WUFDeEIsR0FBRyw0RUFBdUM7WUFDMUMsU0FBUyxFQUFFLHNCQUFzQjtTQUNsQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVwbGFjZWFibGVDb21wb25lbnRzU2VydmljZSB9IGZyb20gXCJAYWJwL25nLmNvcmVcIjtcclxuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBJbmplY3RvciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGVUaGVtZUxlcHRvblhDb21wb25lbnRzIH0gZnJvbSBcIi4uL2VudW1zXCI7XHJcbmltcG9ydCB7IEFjY291bnRMYXlvdXRDb21wb25lbnQgfSBmcm9tIFwiQHZvbG9zb2Z0L2FicC5uZy50aGVtZS5sZXB0b24teC9hY2NvdW50XCI7XHJcblxyXG5leHBvcnQgY29uc3QgQUNDT1VOVF9MQVlPVVRfUFJPVklERVIgPSB7XHJcbiAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICB1c2VGYWN0b3J5OiBpbml0QWNjb3VudExheW91dCxcclxuICAgIGRlcHM6IFtJbmplY3Rvcl0sXHJcbiAgICBtdWx0aTogdHJ1ZSxcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGluaXRBY2NvdW50TGF5b3V0KGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgZnVuY3Rpb24gaW5pdCgpIHtcclxuICAgICAgY29uc3QgcmVwbGFjZWFibGVDb21wb25lbnRzID0gaW5qZWN0b3IuZ2V0KFJlcGxhY2VhYmxlQ29tcG9uZW50c1NlcnZpY2UpO1xyXG4gICAgICByZXBsYWNlYWJsZUNvbXBvbmVudHMuYWRkKHtcclxuICAgICAgICBrZXk6IGVUaGVtZUxlcHRvblhDb21wb25lbnRzLkFjY291bnRMYXlvdXQsXHJcbiAgICAgICAgY29tcG9uZW50OiBBY2NvdW50TGF5b3V0Q29tcG9uZW50LFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBpbml0O1xyXG4gIH1cclxuICAiXX0=
@@ -1,19 +1,19 @@
1
- import { APP_INITIALIZER } from '@angular/core';
2
- import { AbpNavbarService } from '@volo/abp.ng.lepton-x.core';
3
- import { AbpToolbarService } from '../services/abp-toolbar.service';
4
- import { AbpSettingsService } from '../services/abp-settings.service';
5
- export const INIT_SERVICE_PROVIDER = {
6
- provide: APP_INITIALIZER,
7
- useFactory: initServices,
8
- deps: [AbpNavbarService, AbpToolbarService, AbpSettingsService],
9
- multi: true,
10
- };
11
- export function initServices(navbar, abpToolbar, setting) {
12
- function init() {
13
- abpToolbar.listenNavItems();
14
- setting.setUpListeners();
15
- navbar.initRoutes();
16
- }
17
- return init;
18
- }
1
+ import { APP_INITIALIZER } from '@angular/core';
2
+ import { AbpNavbarService } from '@volo/abp.ng.lepton-x.core';
3
+ import { AbpToolbarService } from '../services/abp-toolbar.service';
4
+ import { AbpSettingsService } from '../services/abp-settings.service';
5
+ export const INIT_SERVICE_PROVIDER = {
6
+ provide: APP_INITIALIZER,
7
+ useFactory: initServices,
8
+ deps: [AbpNavbarService, AbpToolbarService, AbpSettingsService],
9
+ multi: true,
10
+ };
11
+ export function initServices(navbar, abpToolbar, setting) {
12
+ function init() {
13
+ abpToolbar.listenNavItems();
14
+ setting.setUpListeners();
15
+ navbar.initRoutes();
16
+ }
17
+ return init;
18
+ }
19
19
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1zZXJ2aWNlLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy92b2xvLWxlcHRvbi14L3NyYy9saWIvcHJvdmlkZXJzL2luaXQtc2VydmljZS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXRFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFhO0lBQzdDLE9BQU8sRUFBRSxlQUFlO0lBQ3hCLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLElBQUksRUFBRSxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixDQUFDO0lBQy9ELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sVUFBVSxZQUFZLENBQzFCLE1BQXdCLEVBQ3hCLFVBQTZCLEVBQzdCLE9BQTJCO0lBRTNCLFNBQVMsSUFBSTtRQUNYLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM1QixPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFicE5hdmJhclNlcnZpY2UgfSBmcm9tICdAdm9sby9hYnAubmcubGVwdG9uLXguY29yZSc7XHJcbmltcG9ydCB7IEFicFRvb2xiYXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYWJwLXRvb2xiYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEFicFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FicC1zZXR0aW5ncy5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBjb25zdCBJTklUX1NFUlZJQ0VfUFJPVklERVI6IFByb3ZpZGVyID0ge1xyXG4gIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICB1c2VGYWN0b3J5OiBpbml0U2VydmljZXMsXHJcbiAgZGVwczogW0FicE5hdmJhclNlcnZpY2UsIEFicFRvb2xiYXJTZXJ2aWNlLCBBYnBTZXR0aW5nc1NlcnZpY2VdLFxyXG4gIG11bHRpOiB0cnVlLFxyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGluaXRTZXJ2aWNlcyhcclxuICBuYXZiYXI6IEFicE5hdmJhclNlcnZpY2UsXHJcbiAgYWJwVG9vbGJhcjogQWJwVG9vbGJhclNlcnZpY2UsXHJcbiAgc2V0dGluZzogQWJwU2V0dGluZ3NTZXJ2aWNlXHJcbikge1xyXG4gIGZ1bmN0aW9uIGluaXQoKSB7XHJcbiAgICBhYnBUb29sYmFyLmxpc3Rlbk5hdkl0ZW1zKCk7XHJcbiAgICBzZXR0aW5nLnNldFVwTGlzdGVuZXJzKCk7XHJcbiAgICBuYXZiYXIuaW5pdFJvdXRlcygpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGluaXQ7XHJcbn1cclxuIl19
@@ -1,18 +1,18 @@
1
- import { APP_INITIALIZER } from '@angular/core';
2
- export const LPX_STYLE_PROVIDER = {
3
- provide: APP_INITIALIZER,
4
- useFactory: initStyles,
5
- multi: true,
6
- };
7
- export function initStyles() {
8
- function init() {
9
- const loader = document.querySelector('#lp-page-loader');
10
- if (loader) {
11
- loader.style.background = 'var(--background)';
12
- setTimeout(() => loader.parentNode?.removeChild(loader), 500);
13
- }
14
- return Promise.resolve();
15
- }
16
- return init;
17
- }
1
+ import { APP_INITIALIZER } from '@angular/core';
2
+ export const LPX_STYLE_PROVIDER = {
3
+ provide: APP_INITIALIZER,
4
+ useFactory: initStyles,
5
+ multi: true,
6
+ };
7
+ export function initStyles() {
8
+ function init() {
9
+ const loader = document.querySelector('#lp-page-loader');
10
+ if (loader) {
11
+ loader.style.background = 'var(--background)';
12
+ setTimeout(() => loader.parentNode?.removeChild(loader), 500);
13
+ }
14
+ return Promise.resolve();
15
+ }
16
+ return init;
17
+ }
18
18
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3ZvbG8tbGVwdG9uLXgvc3JjL2xpYi9wcm92aWRlcnMvc3R5bGUucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUUxRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBYTtJQUMxQyxPQUFPLEVBQUUsZUFBZTtJQUN4QixVQUFVLEVBQUUsVUFBVTtJQUN0QixLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRixNQUFNLFVBQVUsVUFBVTtJQUN4QixTQUFTLElBQUk7UUFDWCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFnQixDQUFDO1FBQ3hFLElBQUksTUFBTSxFQUFFO1lBQ1YsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsbUJBQW1CLENBQUM7WUFDOUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQy9EO1FBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBjb25zdCBMUFhfU1RZTEVfUFJPVklERVI6IFByb3ZpZGVyID0ge1xyXG4gIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICB1c2VGYWN0b3J5OiBpbml0U3R5bGVzLFxyXG4gIG11bHRpOiB0cnVlLFxyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGluaXRTdHlsZXMoKSB7XHJcbiAgZnVuY3Rpb24gaW5pdCgpIHtcclxuICAgIGNvbnN0IGxvYWRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNscC1wYWdlLWxvYWRlcicpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYgKGxvYWRlcikge1xyXG4gICAgICBsb2FkZXIuc3R5bGUuYmFja2dyb3VuZCA9ICd2YXIoLS1iYWNrZ3JvdW5kKSc7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gbG9hZGVyLnBhcmVudE5vZGU/LnJlbW92ZUNoaWxkKGxvYWRlciksIDUwMCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW5pdDtcclxufVxyXG4iXX0=
@@ -1,22 +1,22 @@
1
- import { LanguageTranslateKeys, LPX_TRANSLATE_SERVICE_TOKEN, } from '@volo/ngx-lepton-x.core';
2
- import { AbpTranslateService } from '../services/abp-translate.service';
3
- import { LPX_TRANSLATE_KEY_MAP_TOKEN } from '../tokens/translate-key-map';
4
- import { ThemeTranslateKeys, } from '@volosoft/ngx-lepton-x';
5
- export const LPX_TRANSLATE_PROVIDER = {
6
- provide: LPX_TRANSLATE_SERVICE_TOKEN,
7
- useClass: AbpTranslateService,
8
- };
9
- export const translateKeys = {
10
- [LanguageTranslateKeys.SettingsTitle]: 'LeptonX::Language',
11
- [ThemeTranslateKeys.AppearanceTitle]: 'LeptonX::Appearance',
12
- [ThemeTranslateKeys.DarkMode]: 'LeptonX::Theme:dark',
13
- [ThemeTranslateKeys.LightMode]: 'LeptonX::Theme:light',
14
- [ThemeTranslateKeys.SemiDarkMode]: 'LeptonX::Theme:dim',
15
- [ThemeTranslateKeys.System]: 'LeptonX::Theme:system',
16
- };
17
- export const LPX_TRANSLATE_KEYS_PROVIDER = {
18
- provide: LPX_TRANSLATE_KEY_MAP_TOKEN,
19
- multi: true,
20
- useValue: translateKeys,
21
- };
1
+ import { LanguageTranslateKeys, LPX_TRANSLATE_SERVICE_TOKEN, } from '@volo/ngx-lepton-x.core';
2
+ import { AbpTranslateService } from '../services/abp-translate.service';
3
+ import { LPX_TRANSLATE_KEY_MAP_TOKEN } from '../tokens/translate-key-map';
4
+ import { ThemeTranslateKeys, } from '@volosoft/ngx-lepton-x';
5
+ export const LPX_TRANSLATE_PROVIDER = {
6
+ provide: LPX_TRANSLATE_SERVICE_TOKEN,
7
+ useClass: AbpTranslateService,
8
+ };
9
+ export const translateKeys = {
10
+ [LanguageTranslateKeys.SettingsTitle]: 'LeptonX::Language',
11
+ [ThemeTranslateKeys.AppearanceTitle]: 'LeptonX::Appearance',
12
+ [ThemeTranslateKeys.DarkMode]: 'LeptonX::Theme:dark',
13
+ [ThemeTranslateKeys.LightMode]: 'LeptonX::Theme:light',
14
+ [ThemeTranslateKeys.SemiDarkMode]: 'LeptonX::Theme:dim',
15
+ [ThemeTranslateKeys.System]: 'LeptonX::Theme:system',
16
+ };
17
+ export const LPX_TRANSLATE_KEYS_PROVIDER = {
18
+ provide: LPX_TRANSLATE_KEY_MAP_TOKEN,
19
+ multi: true,
20
+ useValue: translateKeys,
21
+ };
22
22
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy92b2xvLWxlcHRvbi14L3NyYy9saWIvcHJvdmlkZXJzL3RyYW5zbGF0ZS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wscUJBQXFCLEVBRXJCLDJCQUEyQixHQUM1QixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFFLE9BQU8sRUFDTCxrQkFBa0IsR0FFbkIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBYTtJQUM5QyxPQUFPLEVBQUUsMkJBQTJCO0lBQ3BDLFFBQVEsRUFBRSxtQkFBbUI7Q0FDOUIsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBbUQ7SUFDM0UsQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsRUFBRSxtQkFBbUI7SUFDMUQsQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxxQkFBcUI7SUFDM0QsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxxQkFBcUI7SUFDcEQsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxzQkFBc0I7SUFDdEQsQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsRUFBRSxvQkFBb0I7SUFDdkQsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSx1QkFBdUI7Q0FDckQsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFhO0lBQ25ELE9BQU8sRUFBRSwyQkFBMkI7SUFDcEMsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsYUFBYTtDQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBMYW5ndWFnZVRyYW5zbGF0ZUtleXMsXHJcbiAgTGFuZ3VhZ2VUcmFuc2xhdGVWYWx1ZXMsXHJcbiAgTFBYX1RSQU5TTEFURV9TRVJWSUNFX1RPS0VOLFxyXG59IGZyb20gJ0B2b2xvL25neC1sZXB0b24teC5jb3JlJztcclxuaW1wb3J0IHsgQWJwVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FicC10cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IExQWF9UUkFOU0xBVEVfS0VZX01BUF9UT0tFTiB9IGZyb20gJy4uL3Rva2Vucy90cmFuc2xhdGUta2V5LW1hcCc7XHJcbmltcG9ydCB7XHJcbiAgVGhlbWVUcmFuc2xhdGVLZXlzLFxyXG4gIFRoZW1lVHJhbnNsYXRlVmFsdWVzLFxyXG59IGZyb20gJ0B2b2xvc29mdC9uZ3gtbGVwdG9uLXgnO1xyXG5cclxuZXhwb3J0IGNvbnN0IExQWF9UUkFOU0xBVEVfUFJPVklERVI6IFByb3ZpZGVyID0ge1xyXG4gIHByb3ZpZGU6IExQWF9UUkFOU0xBVEVfU0VSVklDRV9UT0tFTixcclxuICB1c2VDbGFzczogQWJwVHJhbnNsYXRlU2VydmljZSxcclxufTtcclxuZXhwb3J0IGNvbnN0IHRyYW5zbGF0ZUtleXM6IFRoZW1lVHJhbnNsYXRlVmFsdWVzICYgTGFuZ3VhZ2VUcmFuc2xhdGVWYWx1ZXMgPSB7XHJcbiAgW0xhbmd1YWdlVHJhbnNsYXRlS2V5cy5TZXR0aW5nc1RpdGxlXTogJ0xlcHRvblg6Okxhbmd1YWdlJyxcclxuICBbVGhlbWVUcmFuc2xhdGVLZXlzLkFwcGVhcmFuY2VUaXRsZV06ICdMZXB0b25YOjpBcHBlYXJhbmNlJyxcclxuICBbVGhlbWVUcmFuc2xhdGVLZXlzLkRhcmtNb2RlXTogJ0xlcHRvblg6OlRoZW1lOmRhcmsnLFxyXG4gIFtUaGVtZVRyYW5zbGF0ZUtleXMuTGlnaHRNb2RlXTogJ0xlcHRvblg6OlRoZW1lOmxpZ2h0JyxcclxuICBbVGhlbWVUcmFuc2xhdGVLZXlzLlNlbWlEYXJrTW9kZV06ICdMZXB0b25YOjpUaGVtZTpkaW0nLFxyXG4gIFtUaGVtZVRyYW5zbGF0ZUtleXMuU3lzdGVtXTogJ0xlcHRvblg6OlRoZW1lOnN5c3RlbScsXHJcbn07XHJcbmV4cG9ydCBjb25zdCBMUFhfVFJBTlNMQVRFX0tFWVNfUFJPVklERVI6IFByb3ZpZGVyID0ge1xyXG4gIHByb3ZpZGU6IExQWF9UUkFOU0xBVEVfS0VZX01BUF9UT0tFTixcclxuICBtdWx0aTogdHJ1ZSxcclxuICB1c2VWYWx1ZTogdHJhbnNsYXRlS2V5cyxcclxufTtcclxuIl19
@@ -1,89 +1,89 @@
1
- import { AuthService, ConfigStateService, NAVIGATE_TO_MANAGE_PROFILE, } from '@abp/ng.core';
2
- import { UserMenuService } from '@abp/ng.theme.shared';
3
- import { APP_INITIALIZER, Injector } from '@angular/core';
4
- import { ImpersonationService, NAVIGATE_TO_MY_SECURITY_LOGS, OPEN_MY_LINK_USERS_MODAL, OPEN_AUTHORITY_DELEGATION_MODAL } from '@volo/abp.commercial.ng.ui/config';
5
- import { eUserMenuItems } from '../enums/user-menu-items';
6
- export const LEPTON_X_USER_MENU_PROVIDERS = [
7
- {
8
- provide: APP_INITIALIZER,
9
- useFactory: configureUserMenu,
10
- deps: [Injector],
11
- multi: true,
12
- },
13
- ];
14
- export function configureUserMenu(injector) {
15
- const userMenu = injector.get(UserMenuService);
16
- const authService = injector.get(AuthService);
17
- const navigateToManageProfile = injector.get(NAVIGATE_TO_MANAGE_PROFILE);
18
- const navigateToMySecurityLogs = injector.get(NAVIGATE_TO_MY_SECURITY_LOGS);
19
- const configStateService = injector.get(ConfigStateService);
20
- const impersonateService = injector.get(ImpersonationService);
21
- const openMyLinkUsersModal = injector.get(OPEN_MY_LINK_USERS_MODAL, null);
22
- const openAuthorityDelegationModal = injector.get(OPEN_AUTHORITY_DELEGATION_MODAL, null);
23
- return () => {
24
- userMenu.addItems([
25
- {
26
- id: eUserMenuItems.LinkedAccounts,
27
- order: 100,
28
- textTemplate: {
29
- icon: 'bi bi-link',
30
- text: 'AbpAccount::LinkedAccounts',
31
- },
32
- action: () => openMyLinkUsersModal(),
33
- visible: () => !!openMyLinkUsersModal,
34
- },
35
- {
36
- id: eUserMenuItems.AuthorityDelegation,
37
- order: 100,
38
- textTemplate: {
39
- text: 'AbpAccount::AuthorityDelegation',
40
- icon: 'fa fa-users',
41
- },
42
- action: () => openAuthorityDelegationModal(),
43
- },
44
- {
45
- id: eUserMenuItems.MyAccount,
46
- order: 100,
47
- textTemplate: {
48
- icon: 'bi bi-sliders',
49
- text: 'AbpAccount::MyAccount',
50
- },
51
- action: () => navigateToManageProfile(),
52
- },
53
- {
54
- id: eUserMenuItems.SecurityLogs,
55
- order: 100,
56
- textTemplate: {
57
- icon: 'bi bi-list-ul',
58
- text: 'AbpAccount::MySecurityLogs',
59
- },
60
- action: () => navigateToMySecurityLogs(),
61
- },
62
- {
63
- id: eUserMenuItems.Logout,
64
- order: 102,
65
- textTemplate: {
66
- icon: 'bi bi-box-arrow-right',
67
- text: 'AbpUi::Logout',
68
- },
69
- action: () => {
70
- authService.logout().subscribe();
71
- },
72
- },
73
- {
74
- id: eUserMenuItems.BackToImpersonator,
75
- order: 101,
76
- textTemplate: {
77
- text: 'AbpAccount::BackToImpersonator',
78
- icon: 'fa fa-arrow-left',
79
- },
80
- visible: () => {
81
- const { currentUser: { impersonatorUserId: userId }, } = configStateService.getAll();
82
- return !!userId;
83
- },
84
- action: () => impersonateService.impersonate({}).subscribe(),
85
- },
86
- ]);
87
- };
88
- }
1
+ import { AuthService, ConfigStateService, NAVIGATE_TO_MANAGE_PROFILE, } from '@abp/ng.core';
2
+ import { UserMenuService } from '@abp/ng.theme.shared';
3
+ import { APP_INITIALIZER, Injector } from '@angular/core';
4
+ import { ImpersonationService, NAVIGATE_TO_MY_SECURITY_LOGS, OPEN_MY_LINK_USERS_MODAL, OPEN_AUTHORITY_DELEGATION_MODAL } from '@volo/abp.commercial.ng.ui/config';
5
+ import { eUserMenuItems } from '../enums/user-menu-items';
6
+ export const LEPTON_X_USER_MENU_PROVIDERS = [
7
+ {
8
+ provide: APP_INITIALIZER,
9
+ useFactory: configureUserMenu,
10
+ deps: [Injector],
11
+ multi: true,
12
+ },
13
+ ];
14
+ export function configureUserMenu(injector) {
15
+ const userMenu = injector.get(UserMenuService);
16
+ const authService = injector.get(AuthService);
17
+ const navigateToManageProfile = injector.get(NAVIGATE_TO_MANAGE_PROFILE);
18
+ const navigateToMySecurityLogs = injector.get(NAVIGATE_TO_MY_SECURITY_LOGS);
19
+ const configStateService = injector.get(ConfigStateService);
20
+ const impersonateService = injector.get(ImpersonationService);
21
+ const openMyLinkUsersModal = injector.get(OPEN_MY_LINK_USERS_MODAL, null);
22
+ const openAuthorityDelegationModal = injector.get(OPEN_AUTHORITY_DELEGATION_MODAL, null);
23
+ return () => {
24
+ userMenu.addItems([
25
+ {
26
+ id: eUserMenuItems.LinkedAccounts,
27
+ order: 100,
28
+ textTemplate: {
29
+ icon: 'bi bi-link',
30
+ text: 'AbpAccount::LinkedAccounts',
31
+ },
32
+ action: () => openMyLinkUsersModal(),
33
+ visible: () => !!openMyLinkUsersModal,
34
+ },
35
+ {
36
+ id: eUserMenuItems.AuthorityDelegation,
37
+ order: 100,
38
+ textTemplate: {
39
+ text: 'AbpAccount::AuthorityDelegation',
40
+ icon: 'fa fa-users',
41
+ },
42
+ action: () => openAuthorityDelegationModal(),
43
+ },
44
+ {
45
+ id: eUserMenuItems.MyAccount,
46
+ order: 100,
47
+ textTemplate: {
48
+ icon: 'bi bi-sliders',
49
+ text: 'AbpAccount::MyAccount',
50
+ },
51
+ action: () => navigateToManageProfile(),
52
+ },
53
+ {
54
+ id: eUserMenuItems.SecurityLogs,
55
+ order: 100,
56
+ textTemplate: {
57
+ icon: 'bi bi-list-ul',
58
+ text: 'AbpAccount::MySecurityLogs',
59
+ },
60
+ action: () => navigateToMySecurityLogs(),
61
+ },
62
+ {
63
+ id: eUserMenuItems.Logout,
64
+ order: 102,
65
+ textTemplate: {
66
+ icon: 'bi bi-box-arrow-right',
67
+ text: 'AbpUi::Logout',
68
+ },
69
+ action: () => {
70
+ authService.logout().subscribe();
71
+ },
72
+ },
73
+ {
74
+ id: eUserMenuItems.BackToImpersonator,
75
+ order: 101,
76
+ textTemplate: {
77
+ text: 'AbpAccount::BackToImpersonator',
78
+ icon: 'fa fa-arrow-left',
79
+ },
80
+ visible: () => {
81
+ const { currentUser: { impersonatorUserId: userId }, } = configStateService.getAll();
82
+ return !!userId;
83
+ },
84
+ action: () => impersonateService.impersonate({}).subscribe(),
85
+ },
86
+ ]);
87
+ };
88
+ }
89
89
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tZW51LXNlcnZpY2UucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3ZvbG8tbGVwdG9uLXgvc3JjL2xpYi9wcm92aWRlcnMvdXNlci1tZW51LXNlcnZpY2UucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxrQkFBa0IsRUFDbEIsMEJBQTBCLEdBQzNCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLDRCQUE0QixFQUM1Qix3QkFBd0IsRUFDeEIsK0JBQStCLEVBQ2hDLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTFELE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHO0lBQzFDO1FBQ0UsT0FBTyxFQUFFLGVBQWU7UUFDeEIsVUFBVSxFQUFFLGlCQUFpQjtRQUM3QixJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUM7UUFDaEIsS0FBSyxFQUFFLElBQUk7S0FDWjtDQUNGLENBQUM7QUFFRixNQUFNLFVBQVUsaUJBQWlCLENBQUMsUUFBa0I7SUFDbEQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMvQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sdUJBQXVCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sd0JBQXdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQzVFLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzVELE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzlELE1BQU0sb0JBQW9CLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FDdkMsd0JBQXdCLEVBQ3hCLElBQUksQ0FDUyxDQUFDO0lBQ2hCLE1BQU0sNEJBQTRCLEdBQUssUUFBUSxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsRUFBRSxJQUFJLENBQWUsQ0FBQztJQUV6RyxPQUFPLEdBQUcsRUFBRTtRQUNWLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDaEI7Z0JBQ0UsRUFBRSxFQUFFLGNBQWMsQ0FBQyxjQUFjO2dCQUNqQyxLQUFLLEVBQUUsR0FBRztnQkFDVixZQUFZLEVBQUU7b0JBQ1osSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLElBQUksRUFBRSw0QkFBNEI7aUJBQ25DO2dCQUNELE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRTtnQkFDcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxvQkFBb0I7YUFDdEM7WUFDRDtnQkFDRSxFQUFFLEVBQUUsY0FBYyxDQUFDLG1CQUFtQjtnQkFDdEMsS0FBSyxFQUFFLEdBQUc7Z0JBQ1YsWUFBWSxFQUFFO29CQUNKLElBQUksRUFBRSxpQ0FBaUM7b0JBQ3ZDLElBQUksRUFBRSxhQUFhO2lCQUNwQjtnQkFDVCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsNEJBQTRCLEVBQUU7YUFDN0M7WUFDRDtnQkFDRSxFQUFFLEVBQUUsY0FBYyxDQUFDLFNBQVM7Z0JBQzVCLEtBQUssRUFBRSxHQUFHO2dCQUNWLFlBQVksRUFBRTtvQkFDWixJQUFJLEVBQUUsZUFBZTtvQkFDckIsSUFBSSxFQUFFLHVCQUF1QjtpQkFDOUI7Z0JBQ0QsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixFQUFFO2FBQ3hDO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLGNBQWMsQ0FBQyxZQUFZO2dCQUMvQixLQUFLLEVBQUUsR0FBRztnQkFDVixZQUFZLEVBQUU7b0JBQ1osSUFBSSxFQUFFLGVBQWU7b0JBQ3JCLElBQUksRUFBRSw0QkFBNEI7aUJBQ25DO2dCQUNELE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRTthQUN6QztZQUNEO2dCQUNFLEVBQUUsRUFBRSxjQUFjLENBQUMsTUFBTTtnQkFDekIsS0FBSyxFQUFFLEdBQUc7Z0JBQ1YsWUFBWSxFQUFFO29CQUNaLElBQUksRUFBRSx1QkFBdUI7b0JBQzdCLElBQUksRUFBRSxlQUFlO2lCQUN0QjtnQkFDRCxNQUFNLEVBQUUsR0FBRyxFQUFFO29CQUNYLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbkMsQ0FBQzthQUNGO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLGNBQWMsQ0FBQyxrQkFBa0I7Z0JBQ3JDLEtBQUssRUFBRSxHQUFHO2dCQUNWLFlBQVksRUFBRTtvQkFDWixJQUFJLEVBQUUsZ0NBQWdDO29CQUN0QyxJQUFJLEVBQUUsa0JBQWtCO2lCQUN6QjtnQkFDRCxPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUNaLE1BQU0sRUFDSixXQUFXLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsR0FDNUMsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDaEMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDO2dCQUNsQixDQUFDO2dCQUNELE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFO2FBQzdEO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQXV0aFNlcnZpY2UsXHJcbiAgQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4gIE5BVklHQVRFX1RPX01BTkFHRV9QUk9GSUxFLFxyXG59IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IFVzZXJNZW51U2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEltcGVyc29uYXRpb25TZXJ2aWNlLFxyXG4gIE5BVklHQVRFX1RPX01ZX1NFQ1VSSVRZX0xPR1MsXHJcbiAgT1BFTl9NWV9MSU5LX1VTRVJTX01PREFMLFxyXG4gIE9QRU5fQVVUSE9SSVRZX0RFTEVHQVRJT05fTU9EQUxcclxufSBmcm9tICdAdm9sby9hYnAuY29tbWVyY2lhbC5uZy51aS9jb25maWcnO1xyXG5pbXBvcnQgeyBlVXNlck1lbnVJdGVtcyB9IGZyb20gJy4uL2VudW1zL3VzZXItbWVudS1pdGVtcyc7XHJcbiBcclxuZXhwb3J0IGNvbnN0IExFUFRPTl9YX1VTRVJfTUVOVV9QUk9WSURFUlMgPSBbXHJcbiAge1xyXG4gICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgdXNlRmFjdG9yeTogY29uZmlndXJlVXNlck1lbnUsXHJcbiAgICBkZXBzOiBbSW5qZWN0b3JdLFxyXG4gICAgbXVsdGk6IHRydWUsXHJcbiAgfSxcclxuXTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb25maWd1cmVVc2VyTWVudShpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICBjb25zdCB1c2VyTWVudSA9IGluamVjdG9yLmdldChVc2VyTWVudVNlcnZpY2UpO1xyXG4gIGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KEF1dGhTZXJ2aWNlKTtcclxuICBjb25zdCBuYXZpZ2F0ZVRvTWFuYWdlUHJvZmlsZSA9IGluamVjdG9yLmdldChOQVZJR0FURV9UT19NQU5BR0VfUFJPRklMRSk7XHJcbiAgY29uc3QgbmF2aWdhdGVUb015U2VjdXJpdHlMb2dzID0gaW5qZWN0b3IuZ2V0KE5BVklHQVRFX1RPX01ZX1NFQ1VSSVRZX0xPR1MpO1xyXG4gIGNvbnN0IGNvbmZpZ1N0YXRlU2VydmljZSA9IGluamVjdG9yLmdldChDb25maWdTdGF0ZVNlcnZpY2UpO1xyXG4gIGNvbnN0IGltcGVyc29uYXRlU2VydmljZSA9IGluamVjdG9yLmdldChJbXBlcnNvbmF0aW9uU2VydmljZSk7XHJcbiAgY29uc3Qgb3Blbk15TGlua1VzZXJzTW9kYWwgPSBpbmplY3Rvci5nZXQoXHJcbiAgICBPUEVOX01ZX0xJTktfVVNFUlNfTU9EQUwsXHJcbiAgICBudWxsXHJcbiAgKSBhcyAoKSA9PiB2b2lkO1xyXG4gIGNvbnN0IG9wZW5BdXRob3JpdHlEZWxlZ2F0aW9uTW9kYWwgPSAgIGluamVjdG9yLmdldChPUEVOX0FVVEhPUklUWV9ERUxFR0FUSU9OX01PREFMLCBudWxsKSBhcyAoKSA9PiB2b2lkO1xyXG5cclxuICByZXR1cm4gKCkgPT4ge1xyXG4gICAgdXNlck1lbnUuYWRkSXRlbXMoW1xyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IGVVc2VyTWVudUl0ZW1zLkxpbmtlZEFjY291bnRzLFxyXG4gICAgICAgIG9yZGVyOiAxMDAsXHJcbiAgICAgICAgdGV4dFRlbXBsYXRlOiB7XHJcbiAgICAgICAgICBpY29uOiAnYmkgYmktbGluaycsXHJcbiAgICAgICAgICB0ZXh0OiAnQWJwQWNjb3VudDo6TGlua2VkQWNjb3VudHMnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYWN0aW9uOiAoKSA9PiBvcGVuTXlMaW5rVXNlcnNNb2RhbCgpLFxyXG4gICAgICAgIHZpc2libGU6ICgpID0+ICEhb3Blbk15TGlua1VzZXJzTW9kYWwsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogZVVzZXJNZW51SXRlbXMuQXV0aG9yaXR5RGVsZWdhdGlvbixcclxuICAgICAgICBvcmRlcjogMTAwLFxyXG4gICAgICAgIHRleHRUZW1wbGF0ZToge1xyXG4gICAgICAgICAgICAgICAgICB0ZXh0OiAnQWJwQWNjb3VudDo6QXV0aG9yaXR5RGVsZWdhdGlvbicsXHJcbiAgICAgICAgICAgICAgICAgIGljb246ICdmYSBmYS11c2VycycsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgIGFjdGlvbjogKCkgPT4gb3BlbkF1dGhvcml0eURlbGVnYXRpb25Nb2RhbCgpLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IGVVc2VyTWVudUl0ZW1zLk15QWNjb3VudCxcclxuICAgICAgICBvcmRlcjogMTAwLFxyXG4gICAgICAgIHRleHRUZW1wbGF0ZToge1xyXG4gICAgICAgICAgaWNvbjogJ2JpIGJpLXNsaWRlcnMnLFxyXG4gICAgICAgICAgdGV4dDogJ0FicEFjY291bnQ6Ok15QWNjb3VudCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBhY3Rpb246ICgpID0+IG5hdmlnYXRlVG9NYW5hZ2VQcm9maWxlKCksXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogZVVzZXJNZW51SXRlbXMuU2VjdXJpdHlMb2dzLFxyXG4gICAgICAgIG9yZGVyOiAxMDAsXHJcbiAgICAgICAgdGV4dFRlbXBsYXRlOiB7XHJcbiAgICAgICAgICBpY29uOiAnYmkgYmktbGlzdC11bCcsXHJcbiAgICAgICAgICB0ZXh0OiAnQWJwQWNjb3VudDo6TXlTZWN1cml0eUxvZ3MnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYWN0aW9uOiAoKSA9PiBuYXZpZ2F0ZVRvTXlTZWN1cml0eUxvZ3MoKSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiBlVXNlck1lbnVJdGVtcy5Mb2dvdXQsXHJcbiAgICAgICAgb3JkZXI6IDEwMixcclxuICAgICAgICB0ZXh0VGVtcGxhdGU6IHtcclxuICAgICAgICAgIGljb246ICdiaSBiaS1ib3gtYXJyb3ctcmlnaHQnLFxyXG4gICAgICAgICAgdGV4dDogJ0FicFVpOjpMb2dvdXQnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB7XHJcbiAgICAgICAgICBhdXRoU2VydmljZS5sb2dvdXQoKS5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IGVVc2VyTWVudUl0ZW1zLkJhY2tUb0ltcGVyc29uYXRvcixcclxuICAgICAgICBvcmRlcjogMTAxLFxyXG4gICAgICAgIHRleHRUZW1wbGF0ZToge1xyXG4gICAgICAgICAgdGV4dDogJ0FicEFjY291bnQ6OkJhY2tUb0ltcGVyc29uYXRvcicsXHJcbiAgICAgICAgICBpY29uOiAnZmEgZmEtYXJyb3ctbGVmdCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB2aXNpYmxlOiAoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB7XHJcbiAgICAgICAgICAgIGN1cnJlbnRVc2VyOiB7IGltcGVyc29uYXRvclVzZXJJZDogdXNlcklkIH0sXHJcbiAgICAgICAgICB9ID0gY29uZmlnU3RhdGVTZXJ2aWNlLmdldEFsbCgpO1xyXG4gICAgICAgICAgcmV0dXJuICEhdXNlcklkO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYWN0aW9uOiAoKSA9PiBpbXBlcnNvbmF0ZVNlcnZpY2UuaW1wZXJzb25hdGUoe30pLnN1YnNjcmliZSgpLFxyXG4gICAgICB9LFxyXG4gICAgXSk7XHJcbiAgfTtcclxufVxyXG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { UserProfileService } from '@volo/ngx-lepton-x.core';
3
+ import { map } from 'rxjs/operators';
4
+ import { AuthService as AuthCoreService } from '@abp/ng.core';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@volo/ngx-lepton-x.core";
7
+ import * as i2 from "@abp/ng.core";
8
+ class AbpAuthService {
9
+ constructor(userProfileService, authService) {
10
+ this.userProfileService = userProfileService;
11
+ this.authService = authService;
12
+ this.isUserExists$ = this.userProfileService.user$.pipe(map((user) => user && !!user.userName));
13
+ }
14
+ navigateToLogin() {
15
+ this.authService.navigateToLogin();
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: AbpAuthService, deps: [{ token: i1.UserProfileService }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
18
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: AbpAuthService }); }
19
+ }
20
+ export { AbpAuthService };
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: AbpAuthService, decorators: [{
22
+ type: Injectable
23
+ }], ctorParameters: function () { return [{ type: i1.UserProfileService }, { type: i2.AuthService }]; } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLWF1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdm9sby1sZXB0b24teC9zcmMvbGliL3NlcnZpY2VzL2FicC1hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFdBQVcsSUFBSSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFFOUQsTUFDYSxjQUFjO0lBQ3pCLFlBQ1Usa0JBQXNDLEVBQ3RDLFdBQTRCO1FBRDVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBR3RDLGtCQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2hELEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3ZDLENBQUM7SUFKQyxDQUFDO0lBTUosZUFBZTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDckMsQ0FBQzs4R0FaVSxjQUFjO2tIQUFkLGNBQWM7O1NBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSwgVXNlclByb2ZpbGVTZXJ2aWNlIH0gZnJvbSAnQHZvbG8vbmd4LWxlcHRvbi14LmNvcmUnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIGFzIEF1dGhDb3JlU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBYnBBdXRoU2VydmljZSBpbXBsZW1lbnRzIEF1dGhTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdXNlclByb2ZpbGVTZXJ2aWNlOiBVc2VyUHJvZmlsZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoQ29yZVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIGlzVXNlckV4aXN0cyQgPSB0aGlzLnVzZXJQcm9maWxlU2VydmljZS51c2VyJC5waXBlKFxyXG4gICAgbWFwKCh1c2VyKSA9PiB1c2VyICYmICEhdXNlci51c2VyTmFtZSlcclxuICApO1xyXG5cclxuICBuYXZpZ2F0ZVRvTG9naW4oKTogdm9pZCB7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLm5hdmlnYXRlVG9Mb2dpbigpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,125 @@
1
+ import { Inject, Injectable, Optional } from '@angular/core';
2
+ import { filter, map, switchMap } from 'rxjs/operators';
3
+ import { BehaviorSubject, combineLatest, of } from 'rxjs';
4
+ import { LanguageService, UserProfileService, } from '@volo/ngx-lepton-x.core';
5
+ import { ConfigStateService, getLocaleDirection, NAVIGATE_TO_MANAGE_PROFILE, SessionStateService, } from '@abp/ng.core';
6
+ import { NAVIGATE_TO_MY_SECURITY_LOGS, OPEN_MY_LINK_USERS_MODAL, PROFILE_PICTURE, } from '@volo/abp.commercial.ng.ui/config';
7
+ import { UserMenuService } from '@abp/ng.theme.shared';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@abp/ng.core";
10
+ import * as i2 from "@volo/ngx-lepton-x.core";
11
+ import * as i3 from "@abp/ng.theme.shared";
12
+ import * as i4 from "rxjs";
13
+ class AbpSettingsService {
14
+ constructor(sessionService, configStateService, languageService, userProfileService, profilePicture$, navigateToManageProfile, navigateToMySecurityLogs, openMyLinkUsersModal, userMenuService) {
15
+ this.sessionService = sessionService;
16
+ this.configStateService = configStateService;
17
+ this.languageService = languageService;
18
+ this.userProfileService = userProfileService;
19
+ this.profilePicture$ = profilePicture$;
20
+ this.navigateToManageProfile = navigateToManageProfile;
21
+ this.navigateToMySecurityLogs = navigateToMySecurityLogs;
22
+ this.openMyLinkUsersModal = openMyLinkUsersModal;
23
+ this.userMenuService = userMenuService;
24
+ }
25
+ setUpListeners() {
26
+ this.listenToLangChange();
27
+ this.setLanguageOptions();
28
+ this.setUserProfile();
29
+ this.setProfilePicture();
30
+ this.setUserMenuGroups();
31
+ }
32
+ setUserProfile() {
33
+ const emptyStringOnNull = (value) => value || '';
34
+ const currentUser$ = this.configStateService
35
+ .getOne$('currentUser')
36
+ .pipe(filter(Boolean));
37
+ const currentTenant$ = this.configStateService
38
+ .getOne$('currentTenant')
39
+ .pipe(filter(Boolean));
40
+ combineLatest([currentUser$, currentTenant$]).subscribe(([currentUser, currentTenant]) => {
41
+ this.userProfileService.patchUser({
42
+ userName: currentUser.userName,
43
+ fullName: emptyStringOnNull(currentUser.name) +
44
+ ' ' +
45
+ emptyStringOnNull(currentUser.surName),
46
+ email: currentUser.email,
47
+ tenant: currentTenant,
48
+ });
49
+ });
50
+ }
51
+ setUserMenuGroups() {
52
+ this.userMenuService.items$.subscribe((userMenu) => {
53
+ const userActionGroups = userMenu.reduce((acc, curr, index) => {
54
+ const menuItem = {
55
+ icon: curr.textTemplate?.icon,
56
+ text: curr.textTemplate?.text,
57
+ component: curr?.component,
58
+ action: () => {
59
+ curr.action();
60
+ return of(true);
61
+ },
62
+ visible: curr.visible,
63
+ };
64
+ const setIndex = index === userMenu.length - 1 ? 1 : 0;
65
+ acc[setIndex].push(menuItem);
66
+ return acc;
67
+ }, [[], []]);
68
+ this.userProfileService.patchUser({
69
+ userActionGroups,
70
+ });
71
+ });
72
+ }
73
+ setProfilePicture() {
74
+ this.profilePicture$
75
+ .pipe(filter(Boolean))
76
+ .subscribe((avatar) => this.userProfileService.patchUser({
77
+ avatar: {
78
+ type: avatar.type,
79
+ source: avatar.source || '',
80
+ },
81
+ }));
82
+ }
83
+ setLanguageOptions() {
84
+ this.sessionService
85
+ .getLanguage$()
86
+ .pipe(switchMap((currentLang) => this.configStateService.getDeep$('localization.languages').pipe(filter(Boolean), map((languages) => languages.map(({ cultureName, ...rest }) => ({
87
+ ...rest,
88
+ cultureName,
89
+ selected: cultureName === currentLang,
90
+ isRTL: getLocaleDirection(cultureName) === 'rtl',
91
+ }))))))
92
+ .subscribe((settings) => {
93
+ this.languageService.setLanguages(settings);
94
+ });
95
+ }
96
+ listenToLangChange() {
97
+ this.languageService.selectedLanguage$
98
+ .pipe(filter(Boolean))
99
+ .subscribe((lang) => {
100
+ this.sessionService.setLanguage(lang?.cultureName || '');
101
+ });
102
+ }
103
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: AbpSettingsService, deps: [{ token: i1.SessionStateService }, { token: i1.ConfigStateService }, { token: i2.LanguageService }, { token: i2.UserProfileService }, { token: PROFILE_PICTURE }, { token: NAVIGATE_TO_MANAGE_PROFILE }, { token: NAVIGATE_TO_MY_SECURITY_LOGS }, { token: OPEN_MY_LINK_USERS_MODAL, optional: true }, { token: i3.UserMenuService }], target: i0.ɵɵFactoryTarget.Injectable }); }
104
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: AbpSettingsService, providedIn: 'root' }); }
105
+ }
106
+ export { AbpSettingsService };
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: AbpSettingsService, decorators: [{
108
+ type: Injectable,
109
+ args: [{ providedIn: 'root' }]
110
+ }], ctorParameters: function () { return [{ type: i1.SessionStateService }, { type: i1.ConfigStateService }, { type: i2.LanguageService }, { type: i2.UserProfileService }, { type: i4.BehaviorSubject, decorators: [{
111
+ type: Inject,
112
+ args: [PROFILE_PICTURE]
113
+ }] }, { type: undefined, decorators: [{
114
+ type: Inject,
115
+ args: [NAVIGATE_TO_MANAGE_PROFILE]
116
+ }] }, { type: undefined, decorators: [{
117
+ type: Inject,
118
+ args: [NAVIGATE_TO_MY_SECURITY_LOGS]
119
+ }] }, { type: undefined, decorators: [{
120
+ type: Optional
121
+ }, {
122
+ type: Inject,
123
+ args: [OPEN_MY_LINK_USERS_MODAL]
124
+ }] }, { type: i3.UserMenuService }]; } });
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLXNldHRpbmdzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3ZvbG8tbGVwdG9uLXgvc3JjL2xpYi9zZXJ2aWNlcy9hYnAtc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFDTCxlQUFlLEVBRWYsa0JBQWtCLEdBQ25CLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNMLGtCQUFrQixFQUdsQixrQkFBa0IsRUFFbEIsMEJBQTBCLEVBQzFCLG1CQUFtQixHQUNwQixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLHdCQUF3QixFQUN4QixlQUFlLEdBRWhCLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFFdkQsTUFDYSxrQkFBa0I7SUFDN0IsWUFDVSxjQUFtQyxFQUNuQyxrQkFBc0MsRUFDdEMsZUFBZ0MsRUFDaEMsa0JBQXNDLEVBRXRDLGVBQXFELEVBQ2xCLHVCQUE0QixFQUMxQix3QkFBNkIsRUFDckIsb0JBQW9CLEVBQ2pFLGVBQWdDO1FBVGhDLG1CQUFjLEdBQWQsY0FBYyxDQUFxQjtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBRXRDLG9CQUFlLEdBQWYsZUFBZSxDQUFz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QUksRUFBRSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQXJIVSxrQkFBa0Isd0pBTW5CLGVBQWUsYUFFZiwwQkFBMEIsYUFDMUIsNEJBQTRCLGFBQ2hCLHdCQUF3QjtrSEFWbkMsa0JBQWtCLGNBREwsTUFBTTs7U0FDbkIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFPN0IsTUFBTTsyQkFBQyxlQUFlOzswQkFFdEIsTUFBTTsyQkFBQywwQkFBMEI7OzBCQUNqQyxNQUFNOzJCQUFDLDRCQUE0Qjs7MEJBQ25DLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gIExweExhbmd1YWdlLFxyXG4gIFVzZXJQcm9maWxlU2VydmljZSxcclxufSBmcm9tICdAdm9sby9uZ3gtbGVwdG9uLXguY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4gIEN1cnJlbnRVc2VyRHRvLFxyXG4gIEN1cnJlbnRUZW5hbnREdG8sXHJcbiAgZ2V0TG9jYWxlRGlyZWN0aW9uLFxyXG4gIExhbmd1YWdlSW5mbyxcclxuICBOQVZJR0FURV9UT19NQU5BR0VfUFJPRklMRSxcclxuICBTZXNzaW9uU3RhdGVTZXJ2aWNlLFxyXG59IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIE5BVklHQVRFX1RPX01ZX1NFQ1VSSVRZX0xPR1MsXHJcbiAgT1BFTl9NWV9MSU5LX1VTRVJTX01PREFMLFxyXG4gIFBST0ZJTEVfUElDVFVSRSxcclxuICBQcm9maWxlUGljdHVyZUltYWdlLFxyXG59IGZyb20gJ0B2b2xvL2FicC5jb21tZXJjaWFsLm5nLnVpL2NvbmZpZyc7XHJcbmltcG9ydCB7IFVzZXJNZW51U2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBBYnBTZXR0aW5nc1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXNzaW9uU2VydmljZTogU2Vzc2lvblN0YXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlnU3RhdGVTZXJ2aWNlOiBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1c2VyUHJvZmlsZVNlcnZpY2U6IFVzZXJQcm9maWxlU2VydmljZSxcclxuICAgIEBJbmplY3QoUFJPRklMRV9QSUNUVVJFKVxyXG4gICAgcHJpdmF0ZSBwcm9maWxlUGljdHVyZSQ6IEJlaGF2aW9yU3ViamVjdDxQcm9maWxlUGljdHVyZUltYWdlPixcclxuICAgIEBJbmplY3QoTkFWSUdBVEVfVE9fTUFOQUdFX1BST0ZJTEUpIHB1YmxpYyBuYXZpZ2F0ZVRvTWFuYWdlUHJvZmlsZTogYW55LFxyXG4gICAgQEluamVjdChOQVZJR0FURV9UT19NWV9TRUNVUklUWV9MT0dTKSBwdWJsaWMgbmF2aWdhdGVUb015U2VjdXJpdHlMb2dzOiBhbnksXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE9QRU5fTVlfTElOS19VU0VSU19NT0RBTCkgcHVibGljIG9wZW5NeUxpbmtVc2Vyc01vZGFsLFxyXG4gICAgcHJpdmF0ZSB1c2VyTWVudVNlcnZpY2U6IFVzZXJNZW51U2VydmljZVxyXG4gICkge31cclxuXHJcbiAgc2V0VXBMaXN0ZW5lcnMoKSB7XHJcbiAgICB0aGlzLmxpc3RlblRvTGFuZ0NoYW5nZSgpO1xyXG4gICAgdGhpcy5zZXRMYW5ndWFnZU9wdGlvbnMoKTtcclxuICAgIHRoaXMuc2V0VXNlclByb2ZpbGUoKTtcclxuICAgIHRoaXMuc2V0UHJvZmlsZVBpY3R1cmUoKTtcclxuICAgIHRoaXMuc2V0VXNlck1lbnVHcm91cHMoKTtcclxuICB9XHJcblxyXG4gIHNldFVzZXJQcm9maWxlKCkge1xyXG4gICAgY29uc3QgZW1wdHlTdHJpbmdPbk51bGwgPSAodmFsdWU/OiBzdHJpbmcpID0+IHZhbHVlIHx8ICcnO1xyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRVc2VyJCA9IHRoaXMuY29uZmlnU3RhdGVTZXJ2aWNlXHJcbiAgICAgIC5nZXRPbmUkKCdjdXJyZW50VXNlcicpXHJcbiAgICAgIC5waXBlKGZpbHRlcjxDdXJyZW50VXNlckR0bz4oQm9vbGVhbikpO1xyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRUZW5hbnQkID0gdGhpcy5jb25maWdTdGF0ZVNlcnZpY2VcclxuICAgICAgLmdldE9uZSQoJ2N1cnJlbnRUZW5hbnQnKVxyXG4gICAgICAucGlwZShmaWx0ZXI8Q3VycmVudFRlbmFudER0bz4oQm9vbGVhbikpO1xyXG5cclxuICAgIGNvbWJpbmVMYXRlc3QoW2N1cnJlbnRVc2VyJCwgY3VycmVudFRlbmFudCRdKS5zdWJzY3JpYmUoXHJcbiAgICAgIChbY3VycmVudFVzZXIsIGN1cnJlbnRUZW5hbnRdKSA9PiB7XHJcbiAgICAgICAgdGhpcy51c2VyUHJvZmlsZVNlcnZpY2UucGF0Y2hVc2VyKHtcclxuICAgICAgICAgIHVzZXJOYW1lOiBjdXJyZW50VXNlci51c2VyTmFtZSxcclxuICAgICAgICAgIGZ1bGxOYW1lOlxyXG4gICAgICAgICAgICBlbXB0eVN0cmluZ09uTnVsbChjdXJyZW50VXNlci5uYW1lKSArXHJcbiAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgIGVtcHR5U3RyaW5nT25OdWxsKGN1cnJlbnRVc2VyLnN1ck5hbWUpLFxyXG4gICAgICAgICAgZW1haWw6IGN1cnJlbnRVc2VyLmVtYWlsLFxyXG4gICAgICAgICAgdGVuYW50OiBjdXJyZW50VGVuYW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc2V0VXNlck1lbnVHcm91cHMoKSB7XHJcbiAgICB0aGlzLnVzZXJNZW51U2VydmljZS5pdGVtcyQuc3Vic2NyaWJlKCh1c2VyTWVudSkgPT4ge1xyXG4gICAgICBjb25zdCB1c2VyQWN0aW9uR3JvdXBzID0gdXNlck1lbnUucmVkdWNlKFxyXG4gICAgICAgIChhY2MsIGN1cnIsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBtZW51SXRlbSA9IHtcclxuICAgICAgICAgICAgaWNvbjogY3Vyci50ZXh0VGVtcGxhdGU/Lmljb24sXHJcbiAgICAgICAgICAgIHRleHQ6IGN1cnIudGV4dFRlbXBsYXRlPy50ZXh0LFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IGN1cnI/LmNvbXBvbmVudCxcclxuICAgICAgICAgICAgYWN0aW9uOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgY3Vyci5hY3Rpb24oKTtcclxuICAgICAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHZpc2libGU6IGN1cnIudmlzaWJsZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBjb25zdCBzZXRJbmRleCA9IGluZGV4ID09PSB1c2VyTWVudS5sZW5ndGggLSAxID8gMSA6IDA7XHJcbiAgICAgICAgICBhY2Nbc2V0SW5kZXhdLnB1c2gobWVudUl0ZW0pO1xyXG4gICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICB9LFxyXG4gICAgICAgIFtbXSwgW11dXHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLnVzZXJQcm9maWxlU2VydmljZS5wYXRjaFVzZXIoe1xyXG4gICAgICAgIHVzZXJBY3Rpb25Hcm91cHMsXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQcm9maWxlUGljdHVyZSgpIHtcclxuICAgIHRoaXMucHJvZmlsZVBpY3R1cmUkXHJcbiAgICAgIC5waXBlKGZpbHRlcjxQcm9maWxlUGljdHVyZUltYWdlPihCb29sZWFuKSlcclxuICAgICAgLnN1YnNjcmliZSgoYXZhdGFyKSA9PlxyXG4gICAgICAgIHRoaXMudXNlclByb2ZpbGVTZXJ2aWNlLnBhdGNoVXNlcih7XHJcbiAgICAgICAgICBhdmF0YXI6IHtcclxuICAgICAgICAgICAgdHlwZTogYXZhdGFyLnR5cGUsXHJcbiAgICAgICAgICAgIHNvdXJjZTogYXZhdGFyLnNvdXJjZSB8fCAnJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHNldExhbmd1YWdlT3B0aW9ucygpIHtcclxuICAgIHRoaXMuc2Vzc2lvblNlcnZpY2VcclxuICAgICAgLmdldExhbmd1YWdlJCgpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoY3VycmVudExhbmcpID0+XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ1N0YXRlU2VydmljZS5nZXREZWVwJCgnbG9jYWxpemF0aW9uLmxhbmd1YWdlcycpLnBpcGUoXHJcbiAgICAgICAgICAgIGZpbHRlcjxMYW5ndWFnZUluZm9bXT4oQm9vbGVhbiksXHJcbiAgICAgICAgICAgIG1hcCgobGFuZ3VhZ2VzOiBMYW5ndWFnZUluZm9bXSkgPT5cclxuICAgICAgICAgICAgICBsYW5ndWFnZXMubWFwPExweExhbmd1YWdlPigoeyBjdWx0dXJlTmFtZSwgLi4ucmVzdCB9KSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgLi4ucmVzdCxcclxuICAgICAgICAgICAgICAgIGN1bHR1cmVOYW1lLFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGN1bHR1cmVOYW1lID09PSBjdXJyZW50TGFuZyxcclxuICAgICAgICAgICAgICAgIGlzUlRMOiBnZXRMb2NhbGVEaXJlY3Rpb24oY3VsdHVyZU5hbWUpID09PSAncnRsJyxcclxuICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChzZXR0aW5ncykgPT4ge1xyXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnNldExhbmd1YWdlcyhzZXR0aW5ncyk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbGlzdGVuVG9MYW5nQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5sYW5ndWFnZVNlcnZpY2Uuc2VsZWN0ZWRMYW5ndWFnZSRcclxuICAgICAgLnBpcGUoZmlsdGVyPExweExhbmd1YWdlIHwgdW5kZWZpbmVkPihCb29sZWFuKSlcclxuICAgICAgLnN1YnNjcmliZSgobGFuZykgPT4ge1xyXG4gICAgICAgIHRoaXMuc2Vzc2lvblNlcnZpY2Uuc2V0TGFuZ3VhZ2UobGFuZz8uY3VsdHVyZU5hbWUgfHwgJycpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIl19