verben-authentication-ui 1.0.37 → 1.1.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 (159) hide show
  1. package/README.md +23 -1
  2. package/esm2022/src/lib/base/core/base-data-page.facade.mjs +215 -0
  3. package/esm2022/src/lib/base/core/base-data-page.service.mjs +103 -0
  4. package/esm2022/src/lib/base/core/base-data-page.state.mjs +203 -0
  5. package/esm2022/src/lib/base/handlers/filter-handler.service.mjs +53 -0
  6. package/esm2022/src/lib/base/handlers/search-handler.service.mjs +31 -0
  7. package/esm2022/src/lib/base/handlers/sort-handler.service.mjs +49 -0
  8. package/esm2022/src/lib/base/models/api-payload.mjs +4 -0
  9. package/esm2022/src/lib/base/models/page-config.interface.mjs +2 -0
  10. package/esm2022/src/lib/base/public-api.mjs +14 -6
  11. package/esm2022/src/lib/base/utils/column-helpers.mjs +45 -0
  12. package/esm2022/src/lib/components/button/button.component.mjs +3 -3
  13. package/esm2022/src/lib/components/forgot-password/forgot-password.component.mjs +2 -2
  14. package/esm2022/src/lib/components/mail/mail.component.mjs +3 -3
  15. package/esm2022/src/lib/components/mail-validation/mail-validation.component.mjs +5 -5
  16. package/esm2022/src/lib/components/o-auth/o-auth.component.mjs +3 -3
  17. package/esm2022/src/lib/components/otp-input/otp-input.component.mjs +2 -2
  18. package/esm2022/src/lib/components/reset-password/reset-password.component.mjs +2 -2
  19. package/esm2022/src/lib/components/role-control/base-table-style.mjs +6 -6
  20. package/esm2022/src/lib/components/role-control/role-control.component.mjs +3 -3
  21. package/esm2022/src/lib/components/sign-in/sign-in.component.mjs +4 -4
  22. package/esm2022/src/lib/components/sign-up/sign-up.component.mjs +6 -6
  23. package/esm2022/src/lib/components/sso/base-table-style.mjs +6 -6
  24. package/esm2022/src/lib/components/sso/sso-form/sso-form.component.mjs +3 -3
  25. package/esm2022/src/lib/components/sso/sso.component.mjs +3 -3
  26. package/esm2022/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.mjs +4 -4
  27. package/esm2022/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.mjs +5 -5
  28. package/esm2022/src/lib/components/user-management/public-api.mjs +2 -1
  29. package/esm2022/src/lib/components/user-management/user-management-card/user-management-card.component.mjs +23 -0
  30. package/esm2022/src/lib/components/user-management/user-management-form/user-management-form.component.mjs +53 -91
  31. package/esm2022/src/lib/components/user-management/user-management-table/user-management-table.component.mjs +68 -0
  32. package/esm2022/src/lib/components/user-management/user-management.component.mjs +98 -509
  33. package/esm2022/src/lib/components/user-management/user-management.module.mjs +11 -80
  34. package/esm2022/src/lib/components/user-management/user-status-badge/user-status-badge.component.mjs +8 -6
  35. package/esm2022/src/lib/components/user-management/user.config.mjs +94 -0
  36. package/esm2022/src/lib/components/user-management/user.facade.mjs +118 -0
  37. package/esm2022/src/lib/components/user-management/user.service.mjs +60 -0
  38. package/esm2022/src/lib/components/user-management/user.state.mjs +33 -0
  39. package/esm2022/src/lib/components/user-request/user-request.component.mjs +8 -8
  40. package/esm2022/src/lib/components/user-request-approval/public-api.mjs +2 -2
  41. package/esm2022/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.mjs +8 -6
  42. package/esm2022/src/lib/components/user-request-approval/user-access-request.config.mjs +79 -0
  43. package/esm2022/src/lib/components/user-request-approval/user-access-request.facade.mjs +123 -0
  44. package/esm2022/src/lib/components/user-request-approval/user-access-request.service.mjs +74 -0
  45. package/esm2022/src/lib/components/user-request-approval/user-access-request.state.mjs +26 -0
  46. package/esm2022/src/lib/components/user-request-approval/user-request-approval-card/user-request-approval-card.component.mjs +23 -0
  47. package/esm2022/src/lib/components/user-request-approval/user-request-approval-form/user-request-approval-form.component.mjs +124 -0
  48. package/esm2022/src/lib/components/user-request-approval/user-request-approval-table/user-request-approval-table.component.mjs +44 -0
  49. package/esm2022/src/lib/components/user-request-approval/user-request-approval.component.mjs +101 -273
  50. package/esm2022/src/lib/components/user-request-approval/user-request-approval.module.mjs +10 -74
  51. package/fesm2022/verben-authentication-ui-src-lib-base.mjs +596 -214
  52. package/fesm2022/verben-authentication-ui-src-lib-base.mjs.map +1 -1
  53. package/fesm2022/verben-authentication-ui-src-lib-components-button.mjs +2 -2
  54. package/fesm2022/verben-authentication-ui-src-lib-components-button.mjs.map +1 -1
  55. package/fesm2022/verben-authentication-ui-src-lib-components-forgot-password.mjs +2 -2
  56. package/fesm2022/verben-authentication-ui-src-lib-components-forgot-password.mjs.map +1 -1
  57. package/fesm2022/verben-authentication-ui-src-lib-components-mail-validation.mjs +4 -4
  58. package/fesm2022/verben-authentication-ui-src-lib-components-mail-validation.mjs.map +1 -1
  59. package/fesm2022/verben-authentication-ui-src-lib-components-mail.mjs +2 -2
  60. package/fesm2022/verben-authentication-ui-src-lib-components-mail.mjs.map +1 -1
  61. package/fesm2022/verben-authentication-ui-src-lib-components-o-auth.mjs +2 -2
  62. package/fesm2022/verben-authentication-ui-src-lib-components-o-auth.mjs.map +1 -1
  63. package/fesm2022/verben-authentication-ui-src-lib-components-otp-input.mjs +2 -2
  64. package/fesm2022/verben-authentication-ui-src-lib-components-otp-input.mjs.map +1 -1
  65. package/fesm2022/verben-authentication-ui-src-lib-components-reset-password.mjs +2 -2
  66. package/fesm2022/verben-authentication-ui-src-lib-components-reset-password.mjs.map +1 -1
  67. package/fesm2022/verben-authentication-ui-src-lib-components-role-control.mjs +7 -7
  68. package/fesm2022/verben-authentication-ui-src-lib-components-role-control.mjs.map +1 -1
  69. package/fesm2022/verben-authentication-ui-src-lib-components-sign-in.mjs +3 -3
  70. package/fesm2022/verben-authentication-ui-src-lib-components-sign-in.mjs.map +1 -1
  71. package/fesm2022/verben-authentication-ui-src-lib-components-sign-up.mjs +5 -5
  72. package/fesm2022/verben-authentication-ui-src-lib-components-sign-up.mjs.map +1 -1
  73. package/fesm2022/verben-authentication-ui-src-lib-components-sso.mjs +9 -9
  74. package/fesm2022/verben-authentication-ui-src-lib-components-sso.mjs.map +1 -1
  75. package/fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs +3 -3
  76. package/fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs.map +1 -1
  77. package/fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs +4 -4
  78. package/fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs.map +1 -1
  79. package/fesm2022/verben-authentication-ui-src-lib-components-user-management.mjs +468 -831
  80. package/fesm2022/verben-authentication-ui-src-lib-components-user-management.mjs.map +1 -1
  81. package/fesm2022/verben-authentication-ui-src-lib-components-user-request-approval.mjs +509 -952
  82. package/fesm2022/verben-authentication-ui-src-lib-components-user-request-approval.mjs.map +1 -1
  83. package/fesm2022/verben-authentication-ui-src-lib-components-user-request.mjs +7 -7
  84. package/fesm2022/verben-authentication-ui-src-lib-components-user-request.mjs.map +1 -1
  85. package/package.json +36 -42
  86. package/src/lib/base/README.md +99 -0
  87. package/src/lib/base/core/base-data-page.facade.d.ts +65 -0
  88. package/src/lib/base/core/base-data-page.service.d.ts +43 -0
  89. package/src/lib/base/core/base-data-page.state.d.ts +68 -0
  90. package/src/lib/base/handlers/filter-handler.service.d.ts +13 -0
  91. package/src/lib/base/handlers/search-handler.service.d.ts +20 -0
  92. package/src/lib/base/handlers/sort-handler.service.d.ts +13 -0
  93. package/src/lib/base/models/api-payload.d.ts +2 -0
  94. package/src/lib/base/models/page-config.interface.d.ts +21 -0
  95. package/src/lib/base/public-api.d.ts +9 -5
  96. package/src/lib/base/utils/column-helpers.d.ts +16 -0
  97. package/src/lib/components/user-management/public-api.d.ts +1 -0
  98. package/src/lib/components/user-management/user-management-card/user-management-card.component.d.ts +11 -0
  99. package/src/lib/components/user-management/user-management-form/user-management-form.component.d.ts +12 -14
  100. package/src/lib/components/user-management/user-management-table/user-management-table.component.d.ts +30 -0
  101. package/src/lib/components/user-management/user-management.component.d.ts +28 -124
  102. package/src/lib/components/user-management/user-management.module.d.ts +8 -8
  103. package/src/lib/components/user-management/user-status-badge/user-status-badge.component.d.ts +1 -1
  104. package/src/lib/components/user-management/user.config.d.ts +13 -0
  105. package/src/lib/components/user-management/user.facade.d.ts +42 -0
  106. package/src/lib/components/user-management/user.service.d.ts +26 -0
  107. package/src/lib/components/user-management/user.state.d.ts +19 -0
  108. package/src/lib/components/user-request-approval/public-api.d.ts +1 -1
  109. package/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.d.ts +1 -1
  110. package/src/lib/components/user-request-approval/user-access-request.config.d.ts +13 -0
  111. package/src/lib/components/user-request-approval/user-access-request.facade.d.ts +36 -0
  112. package/src/lib/components/user-request-approval/user-access-request.service.d.ts +30 -0
  113. package/src/lib/components/user-request-approval/user-access-request.state.d.ts +16 -0
  114. package/src/lib/components/user-request-approval/user-request-approval-card/user-request-approval-card.component.d.ts +11 -0
  115. package/src/lib/components/user-request-approval/user-request-approval-form/user-request-approval-form.component.d.ts +47 -0
  116. package/src/lib/components/user-request-approval/user-request-approval-table/user-request-approval-table.component.d.ts +20 -0
  117. package/src/lib/components/user-request-approval/user-request-approval.component.d.ts +29 -68
  118. package/src/lib/components/user-request-approval/user-request-approval.module.d.ts +7 -6
  119. package/esm2022/src/lib/base/base-data.component.mjs +0 -80
  120. package/esm2022/src/lib/base/base-data.facade.mjs +0 -130
  121. package/esm2022/src/lib/base/base-data.service.mjs +0 -21
  122. package/esm2022/src/lib/base/base-data.state.mjs +0 -74
  123. package/esm2022/src/lib/base/models.mjs +0 -2
  124. package/esm2022/src/lib/components/user-management/base-table-style.mjs +0 -53
  125. package/esm2022/src/lib/components/user-management/services/user-management.service.mjs +0 -110
  126. package/esm2022/src/lib/components/user-management/user-management.columns.mjs +0 -53
  127. package/esm2022/src/lib/components/user-request-approval/access-request.columns.mjs +0 -29
  128. package/esm2022/src/lib/components/user-request-approval/base-table-style.mjs +0 -53
  129. package/esm2022/src/lib/components/user-request-approval/facades/user-access-request.facade.mjs +0 -260
  130. package/esm2022/src/lib/components/user-request-approval/helper.mjs +0 -56
  131. package/esm2022/src/lib/components/user-request-approval/services/user-access-request.service.mjs +0 -92
  132. package/esm2022/src/lib/components/user-request-approval/states/user-access-request.state.mjs +0 -92
  133. package/esm2022/src/lib/components/user-request-approval/user-request-form/user-request-form.component.mjs +0 -105
  134. package/esm2022/src/lib/components/user-request-process/index.mjs +0 -2
  135. package/esm2022/src/lib/components/user-request-process/public-api.mjs +0 -3
  136. package/esm2022/src/lib/components/user-request-process/user-request-process.component.mjs +0 -11
  137. package/esm2022/src/lib/components/user-request-process/user-request-process.module.mjs +0 -18
  138. package/esm2022/src/lib/components/user-request-process/verben-authentication-ui-src-lib-components-user-request-process.mjs +0 -5
  139. package/fesm2022/verben-authentication-ui-src-lib-components-user-request-process.mjs +0 -34
  140. package/fesm2022/verben-authentication-ui-src-lib-components-user-request-process.mjs.map +0 -1
  141. package/src/lib/base/base-data.component.d.ts +0 -32
  142. package/src/lib/base/base-data.facade.d.ts +0 -27
  143. package/src/lib/base/base-data.service.d.ts +0 -14
  144. package/src/lib/base/base-data.state.d.ts +0 -28
  145. package/src/lib/base/models.d.ts +0 -11
  146. package/src/lib/components/user-management/base-table-style.d.ts +0 -1
  147. package/src/lib/components/user-management/services/user-management.service.d.ts +0 -44
  148. package/src/lib/components/user-management/user-management.columns.d.ts +0 -3
  149. package/src/lib/components/user-request-approval/access-request.columns.d.ts +0 -3
  150. package/src/lib/components/user-request-approval/base-table-style.d.ts +0 -1
  151. package/src/lib/components/user-request-approval/facades/user-access-request.facade.d.ts +0 -39
  152. package/src/lib/components/user-request-approval/helper.d.ts +0 -7
  153. package/src/lib/components/user-request-approval/services/user-access-request.service.d.ts +0 -64
  154. package/src/lib/components/user-request-approval/states/user-access-request.state.d.ts +0 -35
  155. package/src/lib/components/user-request-approval/user-request-form/user-request-form.component.d.ts +0 -34
  156. package/src/lib/components/user-request-process/index.d.ts +0 -1
  157. package/src/lib/components/user-request-process/public-api.d.ts +0 -2
  158. package/src/lib/components/user-request-process/user-request-process.component.d.ts +0 -5
  159. package/src/lib/components/user-request-process/user-request-process.module.d.ts +0 -7
@@ -1,92 +1,23 @@
1
- import { CommonModule } from '@angular/common';
2
- import { HttpClientModule } from '@angular/common/http';
3
1
  import { NgModule } from '@angular/core';
4
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5
2
  import { UserManagementComponent } from './user-management.component';
6
- import { LibUserRequestApprovalModule } from 'verben-authentication-ui/src/lib/components/user-request-approval';
7
- import { CardDataViewModule, CardModule, DataExportModule, DataTableModule, DataViewModule, DataXportModule, DropDownModule, SortTableModule, SvgModule, TableFilterModule, VerbenaBadgeModule, VerbenaButtonModule, VerbenaInputModule, VerbenaSwitchModule, VisibleColumnModule, } from 'verben-ng-ui';
8
- import { UserManagementService } from './services/user-management.service';
9
- import { UserManagementFormComponent } from './user-management-form/user-management-form.component';
10
3
  import { UserStatusBadgeComponent } from './user-status-badge/user-status-badge.component';
11
4
  import * as i0 from "@angular/core";
5
+ /**
6
+ * Backward-compatibility shim. The components are standalone; this module keeps
7
+ * the historical `LibUserManagementModule` name so existing NgModule-based
8
+ * consumers keep working after the rebuild. It no longer depends on the
9
+ * access-request module.
10
+ */
12
11
  export class LibUserManagementModule {
13
12
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibUserManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LibUserManagementModule, declarations: [UserManagementComponent,
15
- UserManagementFormComponent,
16
- UserStatusBadgeComponent], imports: [HttpClientModule,
17
- CommonModule,
18
- DataTableModule,
19
- CardModule,
20
- SvgModule,
21
- DataViewModule,
22
- CardDataViewModule,
23
- SortTableModule,
24
- VisibleColumnModule,
25
- TableFilterModule,
26
- DataExportModule,
27
- DataXportModule,
28
- FormsModule,
29
- ReactiveFormsModule,
30
- VerbenaInputModule,
31
- VerbenaButtonModule,
32
- VerbenaBadgeModule,
33
- DropDownModule,
34
- VerbenaSwitchModule,
35
- LibUserRequestApprovalModule], exports: [UserManagementComponent] });
36
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibUserManagementModule, providers: [UserManagementService], imports: [HttpClientModule,
37
- CommonModule,
38
- DataTableModule,
39
- CardModule,
40
- SvgModule,
41
- DataViewModule,
42
- CardDataViewModule,
43
- SortTableModule,
44
- VisibleColumnModule,
45
- TableFilterModule,
46
- DataExportModule,
47
- DataXportModule,
48
- FormsModule,
49
- ReactiveFormsModule,
50
- VerbenaInputModule,
51
- VerbenaButtonModule,
52
- VerbenaBadgeModule,
53
- DropDownModule,
54
- VerbenaSwitchModule,
55
- LibUserRequestApprovalModule] });
13
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LibUserManagementModule, imports: [UserManagementComponent, UserStatusBadgeComponent], exports: [UserManagementComponent, UserStatusBadgeComponent] });
14
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibUserManagementModule, imports: [UserManagementComponent, UserStatusBadgeComponent] });
56
15
  }
57
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibUserManagementModule, decorators: [{
58
17
  type: NgModule,
59
18
  args: [{
60
- declarations: [
61
- UserManagementComponent,
62
- UserManagementFormComponent,
63
- UserStatusBadgeComponent,
64
- ],
65
- imports: [
66
- HttpClientModule,
67
- CommonModule,
68
- DataTableModule,
69
- CardModule,
70
- SvgModule,
71
- DataViewModule,
72
- CardDataViewModule,
73
- SortTableModule,
74
- VisibleColumnModule,
75
- TableFilterModule,
76
- DataExportModule,
77
- DataXportModule,
78
- FormsModule,
79
- ReactiveFormsModule,
80
- VerbenaInputModule,
81
- VerbenaButtonModule,
82
- VerbenaBadgeModule,
83
- DropDownModule,
84
- VerbenaSwitchModule,
85
- LibUserRequestApprovalModule,
86
- // AsyncLabelPipe,
87
- ],
88
- providers: [UserManagementService],
89
- exports: [UserManagementComponent],
19
+ imports: [UserManagementComponent, UserStatusBadgeComponent],
20
+ exports: [UserManagementComponent, UserStatusBadgeComponent],
90
21
  }]
91
22
  }] });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1tYW5hZ2VtZW50L3VzZXItbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXRFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ2pILE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsVUFBVSxFQUNWLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsY0FBYyxFQUNkLGVBQWUsRUFDZixjQUFjLEVBQ2QsZUFBZSxFQUNmLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLG1CQUFtQixHQUNwQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7QUFvQzNGLE1BQU0sT0FBTyx1QkFBdUI7d0dBQXZCLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLGlCQWhDaEMsdUJBQXVCO1lBQ3ZCLDJCQUEyQjtZQUMzQix3QkFBd0IsYUFHeEIsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFFWixlQUFlO1lBQ2YsVUFBVTtZQUNWLFNBQVM7WUFDVCxjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsbUJBQW1CO1lBRW5CLDRCQUE0QixhQUlwQix1QkFBdUI7eUdBRXRCLHVCQUF1QixhQUh2QixDQUFDLHFCQUFxQixDQUFDLFlBeEJoQyxnQkFBZ0I7WUFDaEIsWUFBWTtZQUVaLGVBQWU7WUFDZixVQUFVO1lBQ1YsU0FBUztZQUNULGNBQWM7WUFDZCxrQkFBa0I7WUFDbEIsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxtQkFBbUI7WUFFbkIsNEJBQTRCOzs0RkFNbkIsdUJBQXVCO2tCQWxDbkMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osdUJBQXVCO3dCQUN2QiwyQkFBMkI7d0JBQzNCLHdCQUF3QjtxQkFDekI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFFWixlQUFlO3dCQUNmLFVBQVU7d0JBQ1YsU0FBUzt3QkFDVCxjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLG1CQUFtQjt3QkFFbkIsNEJBQTRCO3dCQUM1QixrQkFBa0I7cUJBQ25CO29CQUNELFNBQVMsRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNsQyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVzZXJNYW5hZ2VtZW50Q29tcG9uZW50IH0gZnJvbSAnLi91c2VyLW1hbmFnZW1lbnQuY29tcG9uZW50JztcblxuaW1wb3J0IHsgTGliVXNlclJlcXVlc3RBcHByb3ZhbE1vZHVsZSB9IGZyb20gJ3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1yZXF1ZXN0LWFwcHJvdmFsJztcbmltcG9ydCB7XG4gIENhcmREYXRhVmlld01vZHVsZSxcbiAgQ2FyZE1vZHVsZSxcbiAgRGF0YUV4cG9ydE1vZHVsZSxcbiAgRGF0YVRhYmxlTW9kdWxlLFxuICBEYXRhVmlld01vZHVsZSxcbiAgRGF0YVhwb3J0TW9kdWxlLFxuICBEcm9wRG93bk1vZHVsZSxcbiAgU29ydFRhYmxlTW9kdWxlLFxuICBTdmdNb2R1bGUsXG4gIFRhYmxlRmlsdGVyTW9kdWxlLFxuICBWZXJiZW5hQmFkZ2VNb2R1bGUsXG4gIFZlcmJlbmFCdXR0b25Nb2R1bGUsXG4gIFZlcmJlbmFJbnB1dE1vZHVsZSxcbiAgVmVyYmVuYVN3aXRjaE1vZHVsZSxcbiAgVmlzaWJsZUNvbHVtbk1vZHVsZSxcbn0gZnJvbSAndmVyYmVuLW5nLXVpJztcbmltcG9ydCB7IFVzZXJNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdXNlci1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlck1hbmFnZW1lbnRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi91c2VyLW1hbmFnZW1lbnQtZm9ybS91c2VyLW1hbmFnZW1lbnQtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlclN0YXR1c0JhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi91c2VyLXN0YXR1cy1iYWRnZS91c2VyLXN0YXR1cy1iYWRnZS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBVc2VyTWFuYWdlbWVudENvbXBvbmVudCxcbiAgICBVc2VyTWFuYWdlbWVudEZvcm1Db21wb25lbnQsXG4gICAgVXNlclN0YXR1c0JhZGdlQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG5cbiAgICBEYXRhVGFibGVNb2R1bGUsXG4gICAgQ2FyZE1vZHVsZSxcbiAgICBTdmdNb2R1bGUsXG4gICAgRGF0YVZpZXdNb2R1bGUsXG4gICAgQ2FyZERhdGFWaWV3TW9kdWxlLFxuICAgIFNvcnRUYWJsZU1vZHVsZSxcbiAgICBWaXNpYmxlQ29sdW1uTW9kdWxlLFxuICAgIFRhYmxlRmlsdGVyTW9kdWxlLFxuICAgIERhdGFFeHBvcnRNb2R1bGUsXG4gICAgRGF0YVhwb3J0TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVmVyYmVuYUlucHV0TW9kdWxlLFxuICAgIFZlcmJlbmFCdXR0b25Nb2R1bGUsXG4gICAgVmVyYmVuYUJhZGdlTW9kdWxlLFxuICAgIERyb3BEb3duTW9kdWxlLFxuICAgIFZlcmJlbmFTd2l0Y2hNb2R1bGUsXG5cbiAgICBMaWJVc2VyUmVxdWVzdEFwcHJvdmFsTW9kdWxlLFxuICAgIC8vIEFzeW5jTGFiZWxQaXBlLFxuICBdLFxuICBwcm92aWRlcnM6IFtVc2VyTWFuYWdlbWVudFNlcnZpY2VdLFxuICBleHBvcnRzOiBbVXNlck1hbmFnZW1lbnRDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJVc2VyTWFuYWdlbWVudE1vZHVsZSB7IH1cbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1tYW5hZ2VtZW50L3VzZXItbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7QUFFM0Y7Ozs7O0dBS0c7QUFLSCxNQUFNLE9BQU8sdUJBQXVCO3dHQUF2Qix1QkFBdUI7eUdBQXZCLHVCQUF1QixZQUh4Qix1QkFBdUIsRUFBRSx3QkFBd0IsYUFDakQsdUJBQXVCLEVBQUUsd0JBQXdCO3lHQUVoRCx1QkFBdUIsWUFIeEIsdUJBQXVCLEVBQUUsd0JBQXdCOzs0RkFHaEQsdUJBQXVCO2tCQUpuQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixFQUFFLHdCQUF3QixDQUFDO29CQUM1RCxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSx3QkFBd0IsQ0FBQztpQkFDN0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlck1hbmFnZW1lbnRDb21wb25lbnQgfSBmcm9tICcuL3VzZXItbWFuYWdlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlclN0YXR1c0JhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi91c2VyLXN0YXR1cy1iYWRnZS91c2VyLXN0YXR1cy1iYWRnZS5jb21wb25lbnQnO1xuXG4vKipcbiAqIEJhY2t3YXJkLWNvbXBhdGliaWxpdHkgc2hpbS4gVGhlIGNvbXBvbmVudHMgYXJlIHN0YW5kYWxvbmU7IHRoaXMgbW9kdWxlIGtlZXBzXG4gKiB0aGUgaGlzdG9yaWNhbCBgTGliVXNlck1hbmFnZW1lbnRNb2R1bGVgIG5hbWUgc28gZXhpc3RpbmcgTmdNb2R1bGUtYmFzZWRcbiAqIGNvbnN1bWVycyBrZWVwIHdvcmtpbmcgYWZ0ZXIgdGhlIHJlYnVpbGQuIEl0IG5vIGxvbmdlciBkZXBlbmRzIG9uIHRoZVxuICogYWNjZXNzLXJlcXVlc3QgbW9kdWxlLlxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbVXNlck1hbmFnZW1lbnRDb21wb25lbnQsIFVzZXJTdGF0dXNCYWRnZUNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtVc2VyTWFuYWdlbWVudENvbXBvbmVudCwgVXNlclN0YXR1c0JhZGdlQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTGliVXNlck1hbmFnZW1lbnRNb2R1bGUge31cbiJdfQ==
@@ -1,5 +1,7 @@
1
1
  import { Component, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
2
3
  import { Status } from 'verben-authentication-ui/src/lib/models';
4
+ import { VerbenaBadgeModule } from 'verben-ng-ui';
3
5
  import * as i0 from "@angular/core";
4
6
  import * as i1 from "verben-ng-ui";
5
7
  export class UserStatusBadgeComponent {
@@ -7,20 +9,20 @@ export class UserStatusBadgeComponent {
7
9
  badgeConfig() {
8
10
  switch (this.status) {
9
11
  case Status.Active:
10
- return { bgColor: '#CAE1CC', textColor: '#4ABB54', label: 'Active' };
12
+ return { bgColor: 'var(--vbn-color-success-bg)', textColor: 'var(--vbn-color-success)', label: 'Active' };
11
13
  case Status.InActive:
12
- return { bgColor: '#FFDFDF', textColor: '#EB5757', label: 'InActive' };
14
+ return { bgColor: 'var(--vbn-color-error-bg)', textColor: 'var(--vbn-color-error)', label: 'InActive' };
13
15
  default:
14
- return { bgColor: '#827C7C', textColor: '#C3C3C3', label: 'Unknown' };
16
+ return { bgColor: 'var(--vbn-color-text-muted)', textColor: 'var(--vbn-color-border)', label: 'Unknown' };
15
17
  }
16
18
  }
17
19
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserStatusBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserStatusBadgeComponent, selector: "lib-user-status-badge", inputs: { status: "status" }, ngImport: i0, template: "<verbena-badge\n borderRadius=\"9px\"\n [bgColor]=\"badgeConfig().bgColor\"\n [textColor]=\"badgeConfig().textColor\"\n fontSize=\"12px\"\n [text]=\"badgeConfig().label\"\n [pd]=\"'2px 6px'\"\n></verbena-badge>\n", styles: [""], dependencies: [{ kind: "component", type: i1.VerbenaBadgeComponent, selector: "verbena-badge", inputs: ["text", "bgColor", "textColor", "borderRadius", "pd", "fontSize", "width", "height"] }] });
20
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserStatusBadgeComponent, isStandalone: true, selector: "lib-user-status-badge", inputs: { status: "status" }, ngImport: i0, template: "<verbena-badge\n borderRadius=\"9px\"\n [bgColor]=\"badgeConfig().bgColor\"\n [textColor]=\"badgeConfig().textColor\"\n fontSize=\"12px\"\n [text]=\"badgeConfig().label\"\n [pd]=\"'2px 6px'\"\n></verbena-badge>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: VerbenaBadgeModule }, { kind: "component", type: i1.VerbenaBadgeComponent, selector: "verbena-badge", inputs: ["text", "bgColor", "textColor", "borderRadius", "pd", "fontSize", "width", "height"] }] });
19
21
  }
20
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserStatusBadgeComponent, decorators: [{
21
23
  type: Component,
22
- args: [{ selector: 'lib-user-status-badge', template: "<verbena-badge\n borderRadius=\"9px\"\n [bgColor]=\"badgeConfig().bgColor\"\n [textColor]=\"badgeConfig().textColor\"\n fontSize=\"12px\"\n [text]=\"badgeConfig().label\"\n [pd]=\"'2px 6px'\"\n></verbena-badge>\n" }]
24
+ args: [{ selector: 'lib-user-status-badge', standalone: true, imports: [CommonModule, VerbenaBadgeModule], template: "<verbena-badge\n borderRadius=\"9px\"\n [bgColor]=\"badgeConfig().bgColor\"\n [textColor]=\"badgeConfig().textColor\"\n fontSize=\"12px\"\n [text]=\"badgeConfig().label\"\n [pd]=\"'2px 6px'\"\n></verbena-badge>\n" }]
23
25
  }], propDecorators: { status: [{
24
26
  type: Input
25
27
  }] } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zdGF0dXMtYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLWF1dGhlbnRpY2F0aW9uLXVpL3NyYy9saWIvY29tcG9uZW50cy91c2VyLW1hbmFnZW1lbnQvdXNlci1zdGF0dXMtYmFkZ2UvdXNlci1zdGF0dXMtYmFkZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLWF1dGhlbnRpY2F0aW9uLXVpL3NyYy9saWIvY29tcG9uZW50cy91c2VyLW1hbmFnZW1lbnQvdXNlci1zdGF0dXMtYmFkZ2UvdXNlci1zdGF0dXMtYmFkZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7QUFPakUsTUFBTSxPQUFPLHdCQUF3QjtJQUMxQixNQUFNLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUV4QyxXQUFXO1FBQ1QsUUFBUSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEIsS0FBSyxNQUFNLENBQUMsTUFBTTtnQkFDaEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDdkUsS0FBSyxNQUFNLENBQUMsUUFBUTtnQkFDbEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUM7WUFDekU7Z0JBQ0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDMUUsQ0FBQztJQUNILENBQUM7d0dBWlUsd0JBQXdCOzRGQUF4Qix3QkFBd0IsMkZDUnJDLDROQVFBOzs0RkRBYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsdUJBQXVCOzhCQUt4QixNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdGF0dXMgfSBmcm9tICd2ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItdXNlci1zdGF0dXMtYmFkZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1zdGF0dXMtYmFkZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdXNlci1zdGF0dXMtYmFkZ2UuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJTdGF0dXNCYWRnZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHN0YXR1czogU3RhdHVzID0gU3RhdHVzLkFjdGl2ZTtcblxuICBiYWRnZUNvbmZpZygpIHtcbiAgICBzd2l0Y2ggKHRoaXMuc3RhdHVzKSB7XG4gICAgICBjYXNlIFN0YXR1cy5BY3RpdmU6XG4gICAgICAgIHJldHVybiB7IGJnQ29sb3I6ICcjQ0FFMUNDJywgdGV4dENvbG9yOiAnIzRBQkI1NCcsIGxhYmVsOiAnQWN0aXZlJyB9O1xuICAgICAgY2FzZSBTdGF0dXMuSW5BY3RpdmU6XG4gICAgICAgIHJldHVybiB7IGJnQ29sb3I6ICcjRkZERkRGJywgdGV4dENvbG9yOiAnI0VCNTc1NycsIGxhYmVsOiAnSW5BY3RpdmUnIH07XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4geyBiZ0NvbG9yOiAnIzgyN0M3QycsIHRleHRDb2xvcjogJyNDM0MzQzMnLCBsYWJlbDogJ1Vua25vd24nIH07XG4gICAgfVxuICB9XG59XG4iLCI8dmVyYmVuYS1iYWRnZVxuICBib3JkZXJSYWRpdXM9XCI5cHhcIlxuICBbYmdDb2xvcl09XCJiYWRnZUNvbmZpZygpLmJnQ29sb3JcIlxuICBbdGV4dENvbG9yXT1cImJhZGdlQ29uZmlnKCkudGV4dENvbG9yXCJcbiAgZm9udFNpemU9XCIxMnB4XCJcbiAgW3RleHRdPVwiYmFkZ2VDb25maWcoKS5sYWJlbFwiXG4gIFtwZF09XCInMnB4IDZweCdcIlxuPjwvdmVyYmVuYS1iYWRnZT5cbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zdGF0dXMtYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLWF1dGhlbnRpY2F0aW9uLXVpL3NyYy9saWIvY29tcG9uZW50cy91c2VyLW1hbmFnZW1lbnQvdXNlci1zdGF0dXMtYmFkZ2UvdXNlci1zdGF0dXMtYmFkZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLWF1dGhlbnRpY2F0aW9uLXVpL3NyYy9saWIvY29tcG9uZW50cy91c2VyLW1hbmFnZW1lbnQvdXNlci1zdGF0dXMtYmFkZ2UvdXNlci1zdGF0dXMtYmFkZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQVNsRCxNQUFNLE9BQU8sd0JBQXdCO0lBQzFCLE1BQU0sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBRXhDLFdBQVc7UUFDVCxRQUFRLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixLQUFLLE1BQU0sQ0FBQyxNQUFNO2dCQUNoQixPQUFPLEVBQUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDNUcsS0FBSyxNQUFNLENBQUMsUUFBUTtnQkFDbEIsT0FBTyxFQUFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQzFHO2dCQUNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsU0FBUyxFQUFFLHlCQUF5QixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUM5RyxDQUFDO0lBQ0gsQ0FBQzt3R0FaVSx3QkFBd0I7NEZBQXhCLHdCQUF3QiwrR0NackMsNE5BUUEseUREQVksWUFBWSw4QkFBRSxrQkFBa0I7OzRGQUkvQix3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQzs4QkFLbEMsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gJ3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBWZXJiZW5hQmFkZ2VNb2R1bGUgfSBmcm9tICd2ZXJiZW4tbmctdWknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItdXNlci1zdGF0dXMtYmFkZ2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBWZXJiZW5hQmFkZ2VNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1zdGF0dXMtYmFkZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdXNlci1zdGF0dXMtYmFkZ2UuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJTdGF0dXNCYWRnZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHN0YXR1czogU3RhdHVzID0gU3RhdHVzLkFjdGl2ZTtcblxuICBiYWRnZUNvbmZpZygpIHtcbiAgICBzd2l0Y2ggKHRoaXMuc3RhdHVzKSB7XG4gICAgICBjYXNlIFN0YXR1cy5BY3RpdmU6XG4gICAgICAgIHJldHVybiB7IGJnQ29sb3I6ICd2YXIoLS12Ym4tY29sb3Itc3VjY2Vzcy1iZyknLCB0ZXh0Q29sb3I6ICd2YXIoLS12Ym4tY29sb3Itc3VjY2VzcyknLCBsYWJlbDogJ0FjdGl2ZScgfTtcbiAgICAgIGNhc2UgU3RhdHVzLkluQWN0aXZlOlxuICAgICAgICByZXR1cm4geyBiZ0NvbG9yOiAndmFyKC0tdmJuLWNvbG9yLWVycm9yLWJnKScsIHRleHRDb2xvcjogJ3ZhcigtLXZibi1jb2xvci1lcnJvciknLCBsYWJlbDogJ0luQWN0aXZlJyB9O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHsgYmdDb2xvcjogJ3ZhcigtLXZibi1jb2xvci10ZXh0LW11dGVkKScsIHRleHRDb2xvcjogJ3ZhcigtLXZibi1jb2xvci1ib3JkZXIpJywgbGFiZWw6ICdVbmtub3duJyB9O1xuICAgIH1cbiAgfVxufVxuIiwiPHZlcmJlbmEtYmFkZ2VcbiAgYm9yZGVyUmFkaXVzPVwiOXB4XCJcbiAgW2JnQ29sb3JdPVwiYmFkZ2VDb25maWcoKS5iZ0NvbG9yXCJcbiAgW3RleHRDb2xvcl09XCJiYWRnZUNvbmZpZygpLnRleHRDb2xvclwiXG4gIGZvbnRTaXplPVwiMTJweFwiXG4gIFt0ZXh0XT1cImJhZGdlQ29uZmlnKCkubGFiZWxcIlxuICBbcGRdPVwiJzJweCA2cHgnXCJcbj48L3ZlcmJlbmEtYmFkZ2U+XG4iXX0=
@@ -0,0 +1,94 @@
1
+ import { FormBuilder } from '@angular/forms';
2
+ const fb = new FormBuilder();
3
+ /**
4
+ * Column definitions for the user table.
5
+ * Single source of truth for table, filter, sort, and export.
6
+ * The role column keys on `RoleID`; the table renders it as the role name.
7
+ */
8
+ export const USER_COLUMNS = [
9
+ {
10
+ id: 'select',
11
+ header: '',
12
+ canExport: false,
13
+ },
14
+ {
15
+ id: 'createdAt',
16
+ header: 'CREATED',
17
+ accessorKey: 'CreatedAt',
18
+ },
19
+ {
20
+ id: 'user',
21
+ header: 'NAME',
22
+ accessorFn: (row) => `${row.FirstName} ${row.LastName}`,
23
+ formControlName: 'FirstName',
24
+ },
25
+ {
26
+ id: 'mail',
27
+ header: 'E-MAIL',
28
+ accessorKey: 'MailAddress',
29
+ formControlName: 'MailAddress',
30
+ },
31
+ {
32
+ id: 'phone',
33
+ header: 'PHONE NUMBER',
34
+ accessorKey: 'PhoneNumber',
35
+ formControlName: 'PhoneNumber',
36
+ },
37
+ {
38
+ id: 'role',
39
+ header: 'ROLE',
40
+ accessorKey: 'RoleID',
41
+ formControlName: 'RoleID',
42
+ },
43
+ {
44
+ id: 'status',
45
+ header: 'STATUS',
46
+ accessorKey: 'Status',
47
+ formControlName: 'Status',
48
+ },
49
+ {
50
+ id: 'actions',
51
+ header: 'ACTIONS',
52
+ canExport: false,
53
+ },
54
+ ];
55
+ /**
56
+ * Page configuration for user management.
57
+ */
58
+ export const USER_CONFIG = {
59
+ endpoint: 'User',
60
+ pageSize: 20,
61
+ columns: USER_COLUMNS,
62
+ cardDataMapper: (user) => ({
63
+ selected: false,
64
+ title: `${user.FirstName} ${user.LastName}`,
65
+ data: user,
66
+ body: [
67
+ { title: 'Name', value: `${user.FirstName} ${user.LastName}` },
68
+ { title: 'E-Mail Address', value: user.MailAddress },
69
+ { title: 'Phone Number', value: user.PhoneNumber || 'N/A' },
70
+ ],
71
+ children: [],
72
+ }),
73
+ searchDebounceTime: 500,
74
+ formGroupConfig: {
75
+ controls: {
76
+ MailAddress: fb.control(''),
77
+ FirstName: fb.control(''),
78
+ LastName: fb.control(''),
79
+ PhoneNumber: fb.control(''),
80
+ RoleID: fb.control(''),
81
+ Tags: fb.control([]),
82
+ Status: fb.control(''),
83
+ },
84
+ },
85
+ enableCreate: false,
86
+ enableImport: false,
87
+ enableExport: true,
88
+ enableFilter: true,
89
+ enableSort: true,
90
+ enableSearch: true,
91
+ enableCardView: true,
92
+ enableTableRowEdit: true,
93
+ };
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3VzZXItbWFuYWdlbWVudC91c2VyLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLN0MsTUFBTSxFQUFFLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUU3Qjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUE2QjtJQUNwRDtRQUNFLEVBQUUsRUFBRSxRQUFRO1FBQ1osTUFBTSxFQUFFLEVBQUU7UUFDVixTQUFTLEVBQUUsS0FBSztLQUNqQjtJQUNEO1FBQ0UsRUFBRSxFQUFFLFdBQVc7UUFDZixNQUFNLEVBQUUsU0FBUztRQUNqQixXQUFXLEVBQUUsV0FBVztLQUN6QjtJQUNEO1FBQ0UsRUFBRSxFQUFFLE1BQU07UUFDVixNQUFNLEVBQUUsTUFBTTtRQUNkLFVBQVUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUU7UUFDdkQsZUFBZSxFQUFFLFdBQVc7S0FDN0I7SUFDRDtRQUNFLEVBQUUsRUFBRSxNQUFNO1FBQ1YsTUFBTSxFQUFFLFFBQVE7UUFDaEIsV0FBVyxFQUFFLGFBQWE7UUFDMUIsZUFBZSxFQUFFLGFBQWE7S0FDL0I7SUFDRDtRQUNFLEVBQUUsRUFBRSxPQUFPO1FBQ1gsTUFBTSxFQUFFLGNBQWM7UUFDdEIsV0FBVyxFQUFFLGFBQWE7UUFDMUIsZUFBZSxFQUFFLGFBQWE7S0FDL0I7SUFDRDtRQUNFLEVBQUUsRUFBRSxNQUFNO1FBQ1YsTUFBTSxFQUFFLE1BQU07UUFDZCxXQUFXLEVBQUUsUUFBUTtRQUNyQixlQUFlLEVBQUUsUUFBUTtLQUMxQjtJQUNEO1FBQ0UsRUFBRSxFQUFFLFFBQVE7UUFDWixNQUFNLEVBQUUsUUFBUTtRQUNoQixXQUFXLEVBQUUsUUFBUTtRQUNyQixlQUFlLEVBQUUsUUFBUTtLQUMxQjtJQUNEO1FBQ0UsRUFBRSxFQUFFLFNBQVM7UUFDYixNQUFNLEVBQUUsU0FBUztRQUNqQixTQUFTLEVBQUUsS0FBSztLQUNqQjtDQUNGLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBeUI7SUFDL0MsUUFBUSxFQUFFLE1BQU07SUFDaEIsUUFBUSxFQUFFLEVBQUU7SUFDWixPQUFPLEVBQUUsWUFBWTtJQUNyQixjQUFjLEVBQUUsQ0FBQyxJQUFVLEVBQVksRUFBRSxDQUFDLENBQUM7UUFDekMsUUFBUSxFQUFFLEtBQUs7UUFDZixLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDM0MsSUFBSSxFQUFFLElBQUk7UUFDVixJQUFJLEVBQUU7WUFDSixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDOUQsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEQsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLEtBQUssRUFBRTtTQUM1RDtRQUNELFFBQVEsRUFBRSxFQUFFO0tBQ2IsQ0FBQztJQUNGLGtCQUFrQixFQUFFLEdBQUc7SUFFdkIsZUFBZSxFQUFFO1FBQ2YsUUFBUSxFQUFFO1lBQ1IsV0FBVyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzNCLFNBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN6QixRQUFRLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDeEIsV0FBVyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzNCLE1BQU0sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN0QixJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDcEIsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1NBQ3ZCO0tBQ0Y7SUFFRCxZQUFZLEVBQUUsS0FBSztJQUNuQixZQUFZLEVBQUUsS0FBSztJQUNuQixZQUFZLEVBQUUsSUFBSTtJQUNsQixZQUFZLEVBQUUsSUFBSTtJQUNsQixVQUFVLEVBQUUsSUFBSTtJQUNoQixZQUFZLEVBQUUsSUFBSTtJQUNsQixjQUFjLEVBQUUsSUFBSTtJQUNwQixrQkFBa0IsRUFBRSxJQUFJO0NBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICd2ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgQmFzZVBhZ2VDb25maWcgfSBmcm9tICd2ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9iYXNlJztcbmltcG9ydCB7IENhcmREYXRhLCBDb2x1bW5EZWZpbml0aW9uIH0gZnJvbSAndmVyYmVuLW5nLXVpJztcblxuY29uc3QgZmIgPSBuZXcgRm9ybUJ1aWxkZXIoKTtcblxuLyoqXG4gKiBDb2x1bW4gZGVmaW5pdGlvbnMgZm9yIHRoZSB1c2VyIHRhYmxlLlxuICogU2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3IgdGFibGUsIGZpbHRlciwgc29ydCwgYW5kIGV4cG9ydC5cbiAqIFRoZSByb2xlIGNvbHVtbiBrZXlzIG9uIGBSb2xlSURgOyB0aGUgdGFibGUgcmVuZGVycyBpdCBhcyB0aGUgcm9sZSBuYW1lLlxuICovXG5leHBvcnQgY29uc3QgVVNFUl9DT0xVTU5TOiBDb2x1bW5EZWZpbml0aW9uPFVzZXI+W10gPSBbXG4gIHtcbiAgICBpZDogJ3NlbGVjdCcsXG4gICAgaGVhZGVyOiAnJyxcbiAgICBjYW5FeHBvcnQ6IGZhbHNlLFxuICB9LFxuICB7XG4gICAgaWQ6ICdjcmVhdGVkQXQnLFxuICAgIGhlYWRlcjogJ0NSRUFURUQnLFxuICAgIGFjY2Vzc29yS2V5OiAnQ3JlYXRlZEF0JyxcbiAgfSxcbiAge1xuICAgIGlkOiAndXNlcicsXG4gICAgaGVhZGVyOiAnTkFNRScsXG4gICAgYWNjZXNzb3JGbjogKHJvdykgPT4gYCR7cm93LkZpcnN0TmFtZX0gJHtyb3cuTGFzdE5hbWV9YCxcbiAgICBmb3JtQ29udHJvbE5hbWU6ICdGaXJzdE5hbWUnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdtYWlsJyxcbiAgICBoZWFkZXI6ICdFLU1BSUwnLFxuICAgIGFjY2Vzc29yS2V5OiAnTWFpbEFkZHJlc3MnLFxuICAgIGZvcm1Db250cm9sTmFtZTogJ01haWxBZGRyZXNzJyxcbiAgfSxcbiAge1xuICAgIGlkOiAncGhvbmUnLFxuICAgIGhlYWRlcjogJ1BIT05FIE5VTUJFUicsXG4gICAgYWNjZXNzb3JLZXk6ICdQaG9uZU51bWJlcicsXG4gICAgZm9ybUNvbnRyb2xOYW1lOiAnUGhvbmVOdW1iZXInLFxuICB9LFxuICB7XG4gICAgaWQ6ICdyb2xlJyxcbiAgICBoZWFkZXI6ICdST0xFJyxcbiAgICBhY2Nlc3NvcktleTogJ1JvbGVJRCcsXG4gICAgZm9ybUNvbnRyb2xOYW1lOiAnUm9sZUlEJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnc3RhdHVzJyxcbiAgICBoZWFkZXI6ICdTVEFUVVMnLFxuICAgIGFjY2Vzc29yS2V5OiAnU3RhdHVzJyxcbiAgICBmb3JtQ29udHJvbE5hbWU6ICdTdGF0dXMnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdhY3Rpb25zJyxcbiAgICBoZWFkZXI6ICdBQ1RJT05TJyxcbiAgICBjYW5FeHBvcnQ6IGZhbHNlLFxuICB9LFxuXTtcblxuLyoqXG4gKiBQYWdlIGNvbmZpZ3VyYXRpb24gZm9yIHVzZXIgbWFuYWdlbWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IFVTRVJfQ09ORklHOiBCYXNlUGFnZUNvbmZpZzxVc2VyPiA9IHtcbiAgZW5kcG9pbnQ6ICdVc2VyJyxcbiAgcGFnZVNpemU6IDIwLFxuICBjb2x1bW5zOiBVU0VSX0NPTFVNTlMsXG4gIGNhcmREYXRhTWFwcGVyOiAodXNlcjogVXNlcik6IENhcmREYXRhID0+ICh7XG4gICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgIHRpdGxlOiBgJHt1c2VyLkZpcnN0TmFtZX0gJHt1c2VyLkxhc3ROYW1lfWAsXG4gICAgZGF0YTogdXNlcixcbiAgICBib2R5OiBbXG4gICAgICB7IHRpdGxlOiAnTmFtZScsIHZhbHVlOiBgJHt1c2VyLkZpcnN0TmFtZX0gJHt1c2VyLkxhc3ROYW1lfWAgfSxcbiAgICAgIHsgdGl0bGU6ICdFLU1haWwgQWRkcmVzcycsIHZhbHVlOiB1c2VyLk1haWxBZGRyZXNzIH0sXG4gICAgICB7IHRpdGxlOiAnUGhvbmUgTnVtYmVyJywgdmFsdWU6IHVzZXIuUGhvbmVOdW1iZXIgfHwgJ04vQScgfSxcbiAgICBdLFxuICAgIGNoaWxkcmVuOiBbXSxcbiAgfSksXG4gIHNlYXJjaERlYm91bmNlVGltZTogNTAwLFxuXG4gIGZvcm1Hcm91cENvbmZpZzoge1xuICAgIGNvbnRyb2xzOiB7XG4gICAgICBNYWlsQWRkcmVzczogZmIuY29udHJvbCgnJyksXG4gICAgICBGaXJzdE5hbWU6IGZiLmNvbnRyb2woJycpLFxuICAgICAgTGFzdE5hbWU6IGZiLmNvbnRyb2woJycpLFxuICAgICAgUGhvbmVOdW1iZXI6IGZiLmNvbnRyb2woJycpLFxuICAgICAgUm9sZUlEOiBmYi5jb250cm9sKCcnKSxcbiAgICAgIFRhZ3M6IGZiLmNvbnRyb2woW10pLFxuICAgICAgU3RhdHVzOiBmYi5jb250cm9sKCcnKSxcbiAgICB9LFxuICB9LFxuXG4gIGVuYWJsZUNyZWF0ZTogZmFsc2UsXG4gIGVuYWJsZUltcG9ydDogZmFsc2UsXG4gIGVuYWJsZUV4cG9ydDogdHJ1ZSxcbiAgZW5hYmxlRmlsdGVyOiB0cnVlLFxuICBlbmFibGVTb3J0OiB0cnVlLFxuICBlbmFibGVTZWFyY2g6IHRydWUsXG4gIGVuYWJsZUNhcmRWaWV3OiB0cnVlLFxuICBlbmFibGVUYWJsZVJvd0VkaXQ6IHRydWUsXG59O1xuIl19
@@ -0,0 +1,118 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ObjectState, OAuthType, Status, } from 'verben-authentication-ui/src/lib/models';
3
+ import { BaseDataPageFacade, } from 'verben-authentication-ui/src/lib/base';
4
+ import { USER_CONFIG } from './user.config';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./user.state";
7
+ import * as i2 from "./user.service";
8
+ import * as i3 from "verben-authentication-ui/src/lib/base";
9
+ import * as i4 from "verben-authentication-ui/src/lib/services";
10
+ /**
11
+ * Facade for the user-management page.
12
+ */
13
+ export class UserFacade extends BaseDataPageFacade {
14
+ userService;
15
+ blankUser;
16
+ constructor(state, service, searchHandler, utilService) {
17
+ super(state, service, searchHandler, utilService, USER_CONFIG);
18
+ this.userService = service;
19
+ }
20
+ // ===== Custom observables =====
21
+ get roles$() {
22
+ return this.state.getRoles$();
23
+ }
24
+ get tags$() {
25
+ return this.state.getTags$();
26
+ }
27
+ // ===== Runtime configuration (from component @Inputs) =====
28
+ applyRuntimeConfig(options) {
29
+ if (options.pageSize && options.pageSize > 0) {
30
+ this.state.updateQueryParams({ limit: options.pageSize });
31
+ }
32
+ if (options.searchDebounceTime && options.searchDebounceTime > 0) {
33
+ this.searchHandler.setDebounceTime(options.searchDebounceTime);
34
+ }
35
+ }
36
+ /** Seed an initial search term (used by the optional `role` input). */
37
+ setInitialSearch(term) {
38
+ this.state.setSearchTerm(term);
39
+ }
40
+ // ===== Lookups =====
41
+ async loadRoles() {
42
+ this.state.setRoles(await this.userService.getRoles());
43
+ }
44
+ async loadTags() {
45
+ this.state.setTags(await this.userService.getTags());
46
+ }
47
+ getRoleName(roleId) {
48
+ return this.state.getRolesValue().find((r) => r.Code === roleId)?.Name ?? '';
49
+ }
50
+ // ===== View management =====
51
+ /**
52
+ * Select the user to show in the form. The form template binds to
53
+ * currentCardData(), so route selection through selectCard (reusing the
54
+ * matching card from the loaded list when present) rather than a separate
55
+ * selected-user stream that nothing reads.
56
+ */
57
+ openForm(user) {
58
+ const target = user ?? this.createEmptyUser();
59
+ const existing = this.cardData().find((card) => card.data?.Code === target.Code);
60
+ this.selectCard(existing ?? this.getConfig().cardDataMapper(target));
61
+ }
62
+ closeForm() {
63
+ this.selectCard(null);
64
+ }
65
+ handleColumnsUpdated(columns) {
66
+ this.updateVisibleColumns(columns);
67
+ }
68
+ // ===== User operations =====
69
+ async saveUser(user) {
70
+ const payload = {
71
+ ...user,
72
+ DataState: user.DataState === ObjectState.New ? ObjectState.New : ObjectState.Changed,
73
+ };
74
+ const success = await this.saveItems([payload]);
75
+ if (success) {
76
+ this.closeForm();
77
+ await this.refresh();
78
+ }
79
+ return success;
80
+ }
81
+ async deleteUser(id) {
82
+ const success = await this.deleteItems([id]);
83
+ if (success) {
84
+ this.closeForm();
85
+ await this.refresh();
86
+ }
87
+ return success;
88
+ }
89
+ // ===== Empty placeholder =====
90
+ get emptyUser() {
91
+ return (this.blankUser ??= this.createEmptyUser());
92
+ }
93
+ createEmptyUser() {
94
+ return {
95
+ id: Date.now().toString(),
96
+ Id: '',
97
+ Code: '',
98
+ TenantId: '',
99
+ ServiceName: '',
100
+ CreatedAt: new Date(),
101
+ UpdatedAt: new Date(),
102
+ DataState: ObjectState.New,
103
+ Password: '',
104
+ FirstName: '',
105
+ LastName: '',
106
+ MailAddress: '',
107
+ IsSeeded: false,
108
+ Status: Status.Active,
109
+ SignupType: OAuthType.InApp,
110
+ };
111
+ }
112
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserFacade, deps: [{ token: i1.UserState }, { token: i2.UserService }, { token: i3.SearchHandlerService }, { token: i4.UtilService }], target: i0.ɵɵFactoryTarget.Injectable });
113
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserFacade });
114
+ }
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserFacade, decorators: [{
116
+ type: Injectable
117
+ }], ctorParameters: () => [{ type: i1.UserState }, { type: i2.UserService }, { type: i3.SearchHandlerService }, { type: i4.UtilService }] });
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3VzZXItbWFuYWdlbWVudC91c2VyLmZhY2FkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUVULE1BQU0sR0FHUCxNQUFNLHlDQUF5QyxDQUFDO0FBRWpELE9BQU8sRUFDTCxrQkFBa0IsR0FFbkIsTUFBTSx1Q0FBdUMsQ0FBQztBQUUvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFJNUM7O0dBRUc7QUFFSCxNQUFNLE9BQU8sVUFBVyxTQUFRLGtCQUF3QjtJQUM5QyxXQUFXLENBQWM7SUFDekIsU0FBUyxDQUFRO0lBRXpCLFlBQ0UsS0FBZ0IsRUFDaEIsT0FBb0IsRUFDcEIsYUFBbUMsRUFDbkMsV0FBd0I7UUFFeEIsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztJQUM3QixDQUFDO0lBRUQsaUNBQWlDO0lBRWpDLElBQUksTUFBTTtRQUNSLE9BQVEsSUFBSSxDQUFDLEtBQW1CLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQVEsSUFBSSxDQUFDLEtBQW1CLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELDZEQUE2RDtJQUU3RCxrQkFBa0IsQ0FBQyxPQUEyRDtRQUM1RSxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzVELENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDakUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNILENBQUM7SUFFRCx1RUFBdUU7SUFDdkUsZ0JBQWdCLENBQUMsSUFBWTtRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsc0JBQXNCO0lBRXRCLEtBQUssQ0FBQyxTQUFTO1FBQ1osSUFBSSxDQUFDLEtBQW1CLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUTtRQUNYLElBQUksQ0FBQyxLQUFtQixDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWM7UUFDeEIsT0FBUSxJQUFJLENBQUMsS0FBbUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUM5RixDQUFDO0lBRUQsOEJBQThCO0lBRTlCOzs7OztPQUtHO0lBQ0gsUUFBUSxDQUFDLElBQVc7UUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM5QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsb0JBQW9CLENBQUMsT0FBaUM7UUFDcEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCw4QkFBOEI7SUFFOUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFVO1FBQ3ZCLE1BQU0sT0FBTyxHQUFTO1lBQ3BCLEdBQUcsSUFBSTtZQUNQLFNBQVMsRUFDUCxJQUFJLENBQUMsU0FBUyxLQUFLLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPO1NBQzdFLENBQUM7UUFDRixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2hELElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQVU7UUFDekIsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3QyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsZ0NBQWdDO0lBRWhDLElBQUksU0FBUztRQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTyxlQUFlO1FBQ3JCLE9BQU87WUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRTtZQUN6QixFQUFFLEVBQUUsRUFBRTtZQUNOLElBQUksRUFBRSxFQUFFO1lBQ1IsUUFBUSxFQUFFLEVBQUU7WUFDWixXQUFXLEVBQUUsRUFBRTtZQUNmLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRTtZQUNyQixTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDckIsU0FBUyxFQUFFLFdBQVcsQ0FBQyxHQUFHO1lBQzFCLFFBQVEsRUFBRSxFQUFFO1lBQ1osU0FBUyxFQUFFLEVBQUU7WUFDYixRQUFRLEVBQUUsRUFBRTtZQUNaLFdBQVcsRUFBRSxFQUFFO1lBQ2YsUUFBUSxFQUFFLEtBQUs7WUFDZixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07WUFDckIsVUFBVSxFQUFFLFNBQVMsQ0FBQyxLQUFLO1NBQ3BCLENBQUM7SUFDWixDQUFDO3dHQTdIVSxVQUFVOzRHQUFWLFVBQVU7OzRGQUFWLFVBQVU7a0JBRHRCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBPYmplY3RTdGF0ZSxcbiAgT0F1dGhUeXBlLFxuICBSb2xlLFxuICBTdGF0dXMsXG4gIFRhZyxcbiAgVXNlcixcbn0gZnJvbSAndmVyYmVuLWF1dGhlbnRpY2F0aW9uLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAndmVyYmVuLWF1dGhlbnRpY2F0aW9uLXVpL3NyYy9saWIvc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgQmFzZURhdGFQYWdlRmFjYWRlLFxuICBTZWFyY2hIYW5kbGVyU2VydmljZSxcbn0gZnJvbSAndmVyYmVuLWF1dGhlbnRpY2F0aW9uLXVpL3NyYy9saWIvYmFzZSc7XG5pbXBvcnQgeyBDb2x1bW5EZWZpbml0aW9uIH0gZnJvbSAndmVyYmVuLW5nLXVpJztcbmltcG9ydCB7IFVTRVJfQ09ORklHIH0gZnJvbSAnLi91c2VyLmNvbmZpZyc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4vdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJTdGF0ZSB9IGZyb20gJy4vdXNlci5zdGF0ZSc7XG5cbi8qKlxuICogRmFjYWRlIGZvciB0aGUgdXNlci1tYW5hZ2VtZW50IHBhZ2UuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVc2VyRmFjYWRlIGV4dGVuZHMgQmFzZURhdGFQYWdlRmFjYWRlPFVzZXI+IHtcbiAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2U7XG4gIHByaXZhdGUgYmxhbmtVc2VyPzogVXNlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzdGF0ZTogVXNlclN0YXRlLFxuICAgIHNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHNlYXJjaEhhbmRsZXI6IFNlYXJjaEhhbmRsZXJTZXJ2aWNlLFxuICAgIHV0aWxTZXJ2aWNlOiBVdGlsU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoc3RhdGUsIHNlcnZpY2UsIHNlYXJjaEhhbmRsZXIsIHV0aWxTZXJ2aWNlLCBVU0VSX0NPTkZJRyk7XG4gICAgdGhpcy51c2VyU2VydmljZSA9IHNlcnZpY2U7XG4gIH1cblxuICAvLyA9PT09PSBDdXN0b20gb2JzZXJ2YWJsZXMgPT09PT1cblxuICBnZXQgcm9sZXMkKCk6IE9ic2VydmFibGU8Um9sZVtdPiB7XG4gICAgcmV0dXJuICh0aGlzLnN0YXRlIGFzIFVzZXJTdGF0ZSkuZ2V0Um9sZXMkKCk7XG4gIH1cblxuICBnZXQgdGFncyQoKTogT2JzZXJ2YWJsZTxUYWdbXT4ge1xuICAgIHJldHVybiAodGhpcy5zdGF0ZSBhcyBVc2VyU3RhdGUpLmdldFRhZ3MkKCk7XG4gIH1cblxuICAvLyA9PT09PSBSdW50aW1lIGNvbmZpZ3VyYXRpb24gKGZyb20gY29tcG9uZW50IEBJbnB1dHMpID09PT09XG5cbiAgYXBwbHlSdW50aW1lQ29uZmlnKG9wdGlvbnM6IHsgcGFnZVNpemU/OiBudW1iZXI7IHNlYXJjaERlYm91bmNlVGltZT86IG51bWJlciB9KTogdm9pZCB7XG4gICAgaWYgKG9wdGlvbnMucGFnZVNpemUgJiYgb3B0aW9ucy5wYWdlU2l6ZSA+IDApIHtcbiAgICAgIHRoaXMuc3RhdGUudXBkYXRlUXVlcnlQYXJhbXMoeyBsaW1pdDogb3B0aW9ucy5wYWdlU2l6ZSB9KTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuc2VhcmNoRGVib3VuY2VUaW1lICYmIG9wdGlvbnMuc2VhcmNoRGVib3VuY2VUaW1lID4gMCkge1xuICAgICAgdGhpcy5zZWFyY2hIYW5kbGVyLnNldERlYm91bmNlVGltZShvcHRpb25zLnNlYXJjaERlYm91bmNlVGltZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFNlZWQgYW4gaW5pdGlhbCBzZWFyY2ggdGVybSAodXNlZCBieSB0aGUgb3B0aW9uYWwgYHJvbGVgIGlucHV0KS4gKi9cbiAgc2V0SW5pdGlhbFNlYXJjaCh0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLnNldFNlYXJjaFRlcm0odGVybSk7XG4gIH1cblxuICAvLyA9PT09PSBMb29rdXBzID09PT09XG5cbiAgYXN5bmMgbG9hZFJvbGVzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICh0aGlzLnN0YXRlIGFzIFVzZXJTdGF0ZSkuc2V0Um9sZXMoYXdhaXQgdGhpcy51c2VyU2VydmljZS5nZXRSb2xlcygpKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWRUYWdzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICh0aGlzLnN0YXRlIGFzIFVzZXJTdGF0ZSkuc2V0VGFncyhhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmdldFRhZ3MoKSk7XG4gIH1cblxuICBnZXRSb2xlTmFtZShyb2xlSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLnN0YXRlIGFzIFVzZXJTdGF0ZSkuZ2V0Um9sZXNWYWx1ZSgpLmZpbmQoKHIpID0+IHIuQ29kZSA9PT0gcm9sZUlkKT8uTmFtZSA/PyAnJztcbiAgfVxuXG4gIC8vID09PT09IFZpZXcgbWFuYWdlbWVudCA9PT09PVxuXG4gIC8qKlxuICAgKiBTZWxlY3QgdGhlIHVzZXIgdG8gc2hvdyBpbiB0aGUgZm9ybS4gVGhlIGZvcm0gdGVtcGxhdGUgYmluZHMgdG9cbiAgICogY3VycmVudENhcmREYXRhKCksIHNvIHJvdXRlIHNlbGVjdGlvbiB0aHJvdWdoIHNlbGVjdENhcmQgKHJldXNpbmcgdGhlXG4gICAqIG1hdGNoaW5nIGNhcmQgZnJvbSB0aGUgbG9hZGVkIGxpc3Qgd2hlbiBwcmVzZW50KSByYXRoZXIgdGhhbiBhIHNlcGFyYXRlXG4gICAqIHNlbGVjdGVkLXVzZXIgc3RyZWFtIHRoYXQgbm90aGluZyByZWFkcy5cbiAgICovXG4gIG9wZW5Gb3JtKHVzZXI/OiBVc2VyKTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gdXNlciA/PyB0aGlzLmNyZWF0ZUVtcHR5VXNlcigpO1xuICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5jYXJkRGF0YSgpLmZpbmQoKGNhcmQpID0+IGNhcmQuZGF0YT8uQ29kZSA9PT0gdGFyZ2V0LkNvZGUpO1xuICAgIHRoaXMuc2VsZWN0Q2FyZChleGlzdGluZyA/PyB0aGlzLmdldENvbmZpZygpLmNhcmREYXRhTWFwcGVyKHRhcmdldCkpO1xuICB9XG5cbiAgY2xvc2VGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0Q2FyZChudWxsKTtcbiAgfVxuXG4gIGhhbmRsZUNvbHVtbnNVcGRhdGVkKGNvbHVtbnM6IENvbHVtbkRlZmluaXRpb248VXNlcj5bXSk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmlzaWJsZUNvbHVtbnMoY29sdW1ucyk7XG4gIH1cblxuICAvLyA9PT09PSBVc2VyIG9wZXJhdGlvbnMgPT09PT1cblxuICBhc3luYyBzYXZlVXNlcih1c2VyOiBVc2VyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgcGF5bG9hZDogVXNlciA9IHtcbiAgICAgIC4uLnVzZXIsXG4gICAgICBEYXRhU3RhdGU6XG4gICAgICAgIHVzZXIuRGF0YVN0YXRlID09PSBPYmplY3RTdGF0ZS5OZXcgPyBPYmplY3RTdGF0ZS5OZXcgOiBPYmplY3RTdGF0ZS5DaGFuZ2VkLFxuICAgIH07XG4gICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IHRoaXMuc2F2ZUl0ZW1zKFtwYXlsb2FkXSk7XG4gICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgIHRoaXMuY2xvc2VGb3JtKCk7XG4gICAgICBhd2FpdCB0aGlzLnJlZnJlc2goKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH1cblxuICBhc3luYyBkZWxldGVVc2VyKGlkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgdGhpcy5kZWxldGVJdGVtcyhbaWRdKTtcbiAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgdGhpcy5jbG9zZUZvcm0oKTtcbiAgICAgIGF3YWl0IHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgICByZXR1cm4gc3VjY2VzcztcbiAgfVxuXG4gIC8vID09PT09IEVtcHR5IHBsYWNlaG9sZGVyID09PT09XG5cbiAgZ2V0IGVtcHR5VXNlcigpOiBVc2VyIHtcbiAgICByZXR1cm4gKHRoaXMuYmxhbmtVc2VyID8/PSB0aGlzLmNyZWF0ZUVtcHR5VXNlcigpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRW1wdHlVc2VyKCk6IFVzZXIge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogRGF0ZS5ub3coKS50b1N0cmluZygpLFxuICAgICAgSWQ6ICcnLFxuICAgICAgQ29kZTogJycsXG4gICAgICBUZW5hbnRJZDogJycsXG4gICAgICBTZXJ2aWNlTmFtZTogJycsXG4gICAgICBDcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICBVcGRhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICBEYXRhU3RhdGU6IE9iamVjdFN0YXRlLk5ldyxcbiAgICAgIFBhc3N3b3JkOiAnJyxcbiAgICAgIEZpcnN0TmFtZTogJycsXG4gICAgICBMYXN0TmFtZTogJycsXG4gICAgICBNYWlsQWRkcmVzczogJycsXG4gICAgICBJc1NlZWRlZDogZmFsc2UsXG4gICAgICBTdGF0dXM6IFN0YXR1cy5BY3RpdmUsXG4gICAgICBTaWdudXBUeXBlOiBPQXV0aFR5cGUuSW5BcHAsXG4gICAgfSBhcyBVc2VyO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,60 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ErrorResponse, } from 'verben-authentication-ui/src/lib/models';
3
+ import { BaseDataPageService, } from 'verben-authentication-ui/src/lib/base';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "verben-authentication-ui/src/lib/services";
6
+ import * as i2 from "verben-authentication-ui/src/lib/base";
7
+ /**
8
+ * Service for user API operations.
9
+ *
10
+ * The auth API pluralises names, appends a `/{sortParam}/{sortOrder}` suffix to
11
+ * reads, and deletes via a query string, so the base URL seams are overridden.
12
+ * Roles/tags are loaded here so this page no longer depends on the
13
+ * access-request module.
14
+ */
15
+ export class UserService extends BaseDataPageService {
16
+ defaultSort = 'CreatedAt/Asc';
17
+ constructor(server, filterHandler, sortHandler) {
18
+ super(server, filterHandler, sortHandler);
19
+ }
20
+ getEndpoint() {
21
+ return 'User';
22
+ }
23
+ // ===== URL seams =====
24
+ listUrl(skip, limit) {
25
+ return `GetUsers/${skip}/${limit}/${this.defaultSort}`;
26
+ }
27
+ searchTermUrl(term, skip, limit) {
28
+ return `GetUserWithParam/${term}/${skip}/${limit}/${this.defaultSort}`;
29
+ }
30
+ filterSearchUrl(skip, limit) {
31
+ return `SearchUsers/${skip}/${limit}/${this.defaultSort}`;
32
+ }
33
+ saveUrl() {
34
+ return 'SaveUsers';
35
+ }
36
+ deleteUrl(itemIds) {
37
+ return `DeleteUsers?data=${itemIds.join(',')}`;
38
+ }
39
+ // ===== Lookups =====
40
+ async getRoles() {
41
+ const res = await this.server.get('GetRoles/0/0');
42
+ if (res instanceof ErrorResponse) {
43
+ return [];
44
+ }
45
+ return res.Result ?? [];
46
+ }
47
+ async getTags() {
48
+ const res = await this.server.get('GetTags/0/0');
49
+ if (res instanceof ErrorResponse) {
50
+ return [];
51
+ }
52
+ return res.Result ?? [];
53
+ }
54
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserService, deps: [{ token: i1.HttpWebRequestService }, { token: i2.FilterHandlerService }, { token: i2.SortHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
55
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserService });
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserService, decorators: [{
58
+ type: Injectable
59
+ }], ctorParameters: () => [{ type: i1.HttpWebRequestService }, { type: i2.FilterHandlerService }, { type: i2.SortHandlerService }] });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLWF1dGhlbnRpY2F0aW9uLXVpL3NyYy9saWIvY29tcG9uZW50cy91c2VyLW1hbmFnZW1lbnQvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUNMLGFBQWEsR0FLZCxNQUFNLHlDQUF5QyxDQUFDO0FBRWpELE9BQU8sRUFDTCxtQkFBbUIsR0FHcEIsTUFBTSx1Q0FBdUMsQ0FBQzs7OztBQUUvQzs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFPLFdBQVksU0FBUSxtQkFBeUI7SUFDdkMsV0FBVyxHQUFHLGVBQWUsQ0FBQztJQUUvQyxZQUNFLE1BQTZCLEVBQzdCLGFBQW1DLEVBQ25DLFdBQStCO1FBRS9CLEtBQUssQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELHdCQUF3QjtJQUVMLE9BQU8sQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUNwRCxPQUFPLFlBQVksSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVrQixhQUFhLENBQUMsSUFBWSxFQUFFLElBQVksRUFBRSxLQUFhO1FBQ3hFLE9BQU8sb0JBQW9CLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6RSxDQUFDO0lBRWtCLGVBQWUsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUM1RCxPQUFPLGVBQWUsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVrQixPQUFPO1FBQ3hCLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFa0IsU0FBUyxDQUFDLE9BQWlCO1FBQzVDLE9BQU8sb0JBQW9CLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsc0JBQXNCO0lBRXRCLEtBQUssQ0FBQyxRQUFRO1FBQ1osTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBb0IsY0FBYyxDQUFDLENBQUM7UUFDckUsSUFBSSxHQUFHLFlBQVksYUFBYSxFQUFFLENBQUM7WUFDakMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFtQixhQUFhLENBQUMsQ0FBQztRQUNuRSxJQUFJLEdBQUcsWUFBWSxhQUFhLEVBQUUsQ0FBQztZQUNqQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7d0dBckRVLFdBQVc7NEdBQVgsV0FBVzs7NEZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEVycm9yUmVzcG9uc2UsXG4gIFBhZ2VkUmVzdWx0LFxuICBSb2xlLFxuICBUYWcsXG4gIFVzZXIsXG59IGZyb20gJ3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBIdHRwV2ViUmVxdWVzdFNlcnZpY2UgfSBmcm9tICd2ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICBCYXNlRGF0YVBhZ2VTZXJ2aWNlLFxuICBGaWx0ZXJIYW5kbGVyU2VydmljZSxcbiAgU29ydEhhbmRsZXJTZXJ2aWNlLFxufSBmcm9tICd2ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9iYXNlJztcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciB1c2VyIEFQSSBvcGVyYXRpb25zLlxuICpcbiAqIFRoZSBhdXRoIEFQSSBwbHVyYWxpc2VzIG5hbWVzLCBhcHBlbmRzIGEgYC97c29ydFBhcmFtfS97c29ydE9yZGVyfWAgc3VmZml4IHRvXG4gKiByZWFkcywgYW5kIGRlbGV0ZXMgdmlhIGEgcXVlcnkgc3RyaW5nLCBzbyB0aGUgYmFzZSBVUkwgc2VhbXMgYXJlIG92ZXJyaWRkZW4uXG4gKiBSb2xlcy90YWdzIGFyZSBsb2FkZWQgaGVyZSBzbyB0aGlzIHBhZ2Ugbm8gbG9uZ2VyIGRlcGVuZHMgb24gdGhlXG4gKiBhY2Nlc3MtcmVxdWVzdCBtb2R1bGUuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVc2VyU2VydmljZSBleHRlbmRzIEJhc2VEYXRhUGFnZVNlcnZpY2U8VXNlcj4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTb3J0ID0gJ0NyZWF0ZWRBdC9Bc2MnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNlcnZlcjogSHR0cFdlYlJlcXVlc3RTZXJ2aWNlLFxuICAgIGZpbHRlckhhbmRsZXI6IEZpbHRlckhhbmRsZXJTZXJ2aWNlLFxuICAgIHNvcnRIYW5kbGVyOiBTb3J0SGFuZGxlclNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKHNlcnZlciwgZmlsdGVySGFuZGxlciwgc29ydEhhbmRsZXIpO1xuICB9XG5cbiAgZ2V0RW5kcG9pbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1VzZXInO1xuICB9XG5cbiAgLy8gPT09PT0gVVJMIHNlYW1zID09PT09XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGxpc3RVcmwoc2tpcDogbnVtYmVyLCBsaW1pdDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYEdldFVzZXJzLyR7c2tpcH0vJHtsaW1pdH0vJHt0aGlzLmRlZmF1bHRTb3J0fWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2VhcmNoVGVybVVybCh0ZXJtOiBzdHJpbmcsIHNraXA6IG51bWJlciwgbGltaXQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBHZXRVc2VyV2l0aFBhcmFtLyR7dGVybX0vJHtza2lwfS8ke2xpbWl0fS8ke3RoaXMuZGVmYXVsdFNvcnR9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaWx0ZXJTZWFyY2hVcmwoc2tpcDogbnVtYmVyLCBsaW1pdDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFNlYXJjaFVzZXJzLyR7c2tpcH0vJHtsaW1pdH0vJHt0aGlzLmRlZmF1bHRTb3J0fWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2F2ZVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnU2F2ZVVzZXJzJztcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBkZWxldGVVcmwoaXRlbUlkczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIHJldHVybiBgRGVsZXRlVXNlcnM/ZGF0YT0ke2l0ZW1JZHMuam9pbignLCcpfWA7XG4gIH1cblxuICAvLyA9PT09PSBMb29rdXBzID09PT09XG5cbiAgYXN5bmMgZ2V0Um9sZXMoKTogUHJvbWlzZTxSb2xlW10+IHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnNlcnZlci5nZXQ8UGFnZWRSZXN1bHQ8Um9sZT4+KCdHZXRSb2xlcy8wLzAnKTtcbiAgICBpZiAocmVzIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gcmVzLlJlc3VsdCA/PyBbXTtcbiAgfVxuXG4gIGFzeW5jIGdldFRhZ3MoKTogUHJvbWlzZTxUYWdbXT4ge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuc2VydmVyLmdldDxQYWdlZFJlc3VsdDxUYWc+PignR2V0VGFncy8wLzAnKTtcbiAgICBpZiAocmVzIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gcmVzLlJlc3VsdCA/PyBbXTtcbiAgfVxufVxuIl19
@@ -0,0 +1,33 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { BaseDataPageState } from 'verben-authentication-ui/src/lib/base';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * State for the user-management page.
7
+ * Adds the roles/tags lists used by the form's dropdowns.
8
+ */
9
+ export class UserState extends BaseDataPageState {
10
+ roles$ = new BehaviorSubject([]);
11
+ tags$ = new BehaviorSubject([]);
12
+ getRoles$() {
13
+ return this.roles$.asObservable();
14
+ }
15
+ getRolesValue() {
16
+ return this.roles$.getValue();
17
+ }
18
+ setRoles(roles) {
19
+ this.roles$.next(roles);
20
+ }
21
+ getTags$() {
22
+ return this.tags$.asObservable();
23
+ }
24
+ setTags(tags) {
25
+ this.tags$.next(tags);
26
+ }
27
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserState, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
28
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserState });
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserState, decorators: [{
31
+ type: Injectable
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1tYW5hZ2VtZW50L3VzZXIuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQUUxRTs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sU0FBVSxTQUFRLGlCQUF1QjtJQUM1QyxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7SUFDekMsS0FBSyxHQUFHLElBQUksZUFBZSxDQUFRLEVBQUUsQ0FBQyxDQUFDO0lBRS9DLFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBVztRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO3dHQXRCVSxTQUFTOzRHQUFULFNBQVM7OzRGQUFULFNBQVM7a0JBRHJCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJvbGUsIFRhZywgVXNlciB9IGZyb20gJ3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL21vZGVscyc7XG5pbXBvcnQgeyBCYXNlRGF0YVBhZ2VTdGF0ZSB9IGZyb20gJ3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2Jhc2UnO1xuXG4vKipcbiAqIFN0YXRlIGZvciB0aGUgdXNlci1tYW5hZ2VtZW50IHBhZ2UuXG4gKiBBZGRzIHRoZSByb2xlcy90YWdzIGxpc3RzIHVzZWQgYnkgdGhlIGZvcm0ncyBkcm9wZG93bnMuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVc2VyU3RhdGUgZXh0ZW5kcyBCYXNlRGF0YVBhZ2VTdGF0ZTxVc2VyPiB7XG4gIHByaXZhdGUgcm9sZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSb2xlW10+KFtdKTtcbiAgcHJpdmF0ZSB0YWdzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFnW10+KFtdKTtcblxuICBnZXRSb2xlcyQoKTogT2JzZXJ2YWJsZTxSb2xlW10+IHtcbiAgICByZXR1cm4gdGhpcy5yb2xlcyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXRSb2xlc1ZhbHVlKCk6IFJvbGVbXSB7XG4gICAgcmV0dXJuIHRoaXMucm9sZXMkLmdldFZhbHVlKCk7XG4gIH1cblxuICBzZXRSb2xlcyhyb2xlczogUm9sZVtdKTogdm9pZCB7XG4gICAgdGhpcy5yb2xlcyQubmV4dChyb2xlcyk7XG4gIH1cblxuICBnZXRUYWdzJCgpOiBPYnNlcnZhYmxlPFRhZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMudGFncyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBzZXRUYWdzKHRhZ3M6IFRhZ1tdKTogdm9pZCB7XG4gICAgdGhpcy50YWdzJC5uZXh0KHRhZ3MpO1xuICB9XG59XG4iXX0=