verben-authentication-ui 1.1.0 → 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 +42 -48
  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 +1 @@
1
- {"version":3,"file":"verben-authentication-ui-src-lib-components-user-management.mjs","sources":["../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.columns.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/base-table-style.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/services/user-management.service.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management-form/user-management-form.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management-form/user-management-form.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-status-badge/user-status-badge.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-status-badge/user-status-badge.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.module.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/verben-authentication-ui-src-lib-components-user-management.ts"],"sourcesContent":["import { ColumnDefinition } from 'verben-ng-ui';\nimport { User } from 'verben-authentication-ui/src/lib/models';\n\nexport const columns: ColumnDefinition<User>[] = [\n {\n id: 'select',\n header: '',\n },\n {\n id: 'createdAt',\n header: 'CREATED',\n accessorKey: 'CreatedAt',\n },\n {\n id: 'user',\n header: 'NAME',\n accessorFn: (row) => `${row.FirstName} ${row.LastName}`,\n formControlName: 'FirstName',\n },\n {\n id: 'mail',\n header: 'E-MAIL',\n accessorKey: 'MailAddress',\n formControlName: 'MailAddress',\n },\n\n // {\n // id: 'address',\n // header: 'ADDRESS',\n // accessorKey: 'Address',\n // formControlName: 'Address',\n // },\n {\n id: 'phone',\n header: 'PHONE NUMBER',\n accessorKey: 'PhoneNumber',\n formControlName: 'PhoneNumber',\n },\n {\n id: 'role',\n header: 'ROLE',\n accessorKey: 'Role',\n formControlName: 'RoleID',\n },\n {\n id: 'status',\n header: 'STATUS',\n accessorKey: 'Status',\n formControlName: 'Status',\n },\n {\n id: 'actions',\n header: 'ACTIONS',\n accessorKey: 'MailAddress',\n },\n];\n","export const baseStyle: any = {\n width:\"100%\",\n fontFamily: '\"Fraunces\", serif',\n fontSize: '125%',\n whiteSpace: 'nowrap',\n margin: '0',\n border: '1px solid #D4A007',\n borderRadius: '16px',\n borderCollapse: 'separate',\n borderSpacing: '0',\n // tableLayout: 'fixed',\n overflow: 'hidden',\n rows: {\n even: {\n backgroundColor: '#FDFDFD',\n },\n odd: {\n backgroundColor: '#F1F4FB',\n },\n height: '68px',\n },\n cells: {\n padding: '0.5rem 1rem',\n },\n header: {\n stickyTop: true,\n zIndex: 2,\n backgroundColor: '#EFF2FB',\n fontWeight: 'bold',\n textAlign: 'left',\n padding: '12px 16px',\n height: '30px',\n },\n footer: {\n // stickyBottom: true,\n // zIndex: 2,\n padding: '3px',\n },\n // body: {\n // background: '#fff',\n // padding: '4px 5px',\n // textAlign: 'center',\n // },\n // firstColumn: {\n // stickyLeft: true,\n // zIndex: 1,\n // },\n lastColumn: {\n // stickyRight: true,\n // zIndex: 1,\n },\n};\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ErrorResponse, PagedResult, SearchDynamicWrapper, SearchOperator, SearchPropertySign, SortDirection, User } from 'verben-authentication-ui/src/lib/models';\nimport { HttpWebRequestService } from 'verben-authentication-ui/src/lib/services';\nimport { DropdownLoadEvent } from 'verben-ng-ui';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserManagementService {\n // private readonly BASE_URL = 'https://auth.white360.net/User';\n\n constructor(private httpService: HttpWebRequestService) { }\n\n /**\n * Get users with pagination and sorting\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the list of users\n */\n async getUsers(\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string,\n ): Promise<User[] | ErrorResponse> {\n // var response : User[] | ErrorResponse;\n const url = `GetUsers/${skip}/${limit}/${sortParam}/${sortOrder}`;\n const res = await this.httpService.get(url);\n\n if (res instanceof ErrorResponse) {\n return res;\n } else {\n return (res as PagedResult<User>).Result;\n }\n }\n\n /**\n * Get users with an additional search parameter, pagination, and sorting\n * @param param Search parameter\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the filtered list of users\n */\n async getUsersWithParam(\n param: string,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string,\n ): Promise<User[]> {\n const url = `GetUserWithParam/${param}/${skip}/${limit}/${sortParam}/${sortOrder}`;\n return (await this.httpService.get(url)) as User[];\n }\n\n async getRealUsers(\n role: string | null,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string,\n ) {\n let url: string;\n\n if (role) {\n // Role is provided, use the \"GetUserWithParam\" endpoint\n url = `GetUserWithParam/${role}/${skip}/${limit}/${sortParam}/${sortOrder}`;\n } else {\n // Role is null, use the \"GetUsers\" endpoint\n url = `GetUsers/${skip}/${limit}/${sortParam}/${sortOrder}`;\n }\n\n const res = await this.httpService.get(url);\n\n if (res instanceof ErrorResponse) {\n return res;\n } else {\n return res as PagedResult<User>;\n }\n }\n\n /**\n * Save multiple users\n * @param users Array of users to save\n * @returns Promise containing the save operation result\n */\n saveUsers(users: User[]): Promise<any> {\n const url = `SaveUsers`;\n return this.httpService.post(url, users);\n }\n\n /**\n * Delete multiple users\n * @param userIds Array of user IDs to delete\n * @returns Observable containing the delete operation result\n */\n deleteUsers(userIds: string[]): Observable<any> {\n const url = `DeleteUsers`;\n return this.httpService.delete(`${url}?data=${userIds.join(',')}`);\n }\n\n async loadEntities<T>(\n entity: string,\n fields: string[],\n env: string,\n event: DropdownLoadEvent | null = null\n ): Promise<T[]> {\n var payload: SearchDynamicWrapper = {\n Fields: fields,\n SearchKeyValues: [\n {\n PropertyName: 'Code',\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort: SortDirection.Asc,\n },\n ],\n };\n\n const res = await this.httpService.post(\n `SearchDynamic${entity}/0/0`,\n payload,\n env\n );\n if (res instanceof ErrorResponse) {\n return [];\n } else {\n var result = (res as PagedResult<T>).Result;\n return result;\n }\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { Role, Status, Tag, User } from 'verben-authentication-ui/src/lib/models';\nimport { EnvironmentService } from 'verben-authentication-ui/src/lib/services';\nimport { CardData, DropdownChangeEvent } from 'verben-ng-ui';\nimport { UserManagementService } from '../services/user-management.service';\n\ninterface UserFormData {\n MailAddress: string;\n FirstName: string;\n LastName: string;\n PhoneNumber: string;\n}\n\ninterface Warehouse {\n Name: string;\n Code: string;\n}\n\n@Component({\n selector: 'lib-user-request-form',\n templateUrl: './user-management-form.component.html',\n styleUrl: './user-management-form.component.css',\n})\nexport class UserManagementFormComponent {\n // @Input() roles: Role[] = [];\n // @Input() status: Status[] = [];\n\n @Input() set currentData(value: CardData | null) {\n if (value?.data) {\n // Convert comma-separated warehouse codes back to array for dropdown\n // const warehouseCodes = value.data.Warehouses\n // ? value.data.Warehouses.split(',').filter((code: string) => code.trim())\n // : [];\n\n this.form.patchValue({\n MailAddress: value.data.MailAddress || '',\n FirstName: value.data.FirstName || '',\n LastName: value.data.LastName || '',\n PhoneNumber: value.data.PhoneNumber || '',\n // Address: value.data.Address || '',\n RoleID: value.data.RoleID || '',\n Tags: value.data.Tags || [],\n Status: value.data.Status || Status.Active,\n // Warehouses: warehouseCodes,\n });\n } else {\n this.form.reset();\n }\n }\n @Input() roles: Role[] = [];\n @Input() tags: Tag[] = [];\n\n @Output() switchView = new EventEmitter<undefined>();\n @Output() onFormSave = new EventEmitter<Partial<User>>();\n\n form: FormGroup;\n statusOptions = Object.values(Status);\n // warehouses: Warehouse[] = [];\n\n constructor(\n private fb: FormBuilder,\n private userManagementService: UserManagementService,\n private envService: EnvironmentService\n ) {\n this.form = this.fb.group({\n MailAddress: ['', { readonly: true }],\n FirstName: ['', { readonly: true }],\n LastName: ['', { readonly: true }],\n PhoneNumber: ['', { readonly: true }],\n // Address: ['', { readonly: true }],\n Status: ['', { readonly: true }],\n RoleID: [''],\n Tags: [[]],\n // Warehouses: [[]],\n });\n }\n\n ngOnInit(): void {\n // this.loadWarehouses();\n }\n\n // async loadWarehouses(): Promise<void> {\n // try {\n // this.warehouses = await this.userManagementService.loadEntities<Warehouse>(\n // 'Warehouse',\n // ['Name', 'Code'],\n // this.envService.environment.RevenueAPI\n // );\n // } catch (error) {\n // console.error('Error loading warehouses:', error);\n // this.warehouses = [];\n // }\n // }\n\n // onWarehouseChange(event: DropdownChangeEvent): void {\n // // Convert array of warehouse codes to comma-separated string\n // const selectedCodes = event.value as string[];\n // const commaSeparated = selectedCodes ? selectedCodes.join(',') : '';\n\n // // Update the form with the comma-separated value for saving\n // this.form.patchValue({\n // Warehouses: commaSeparated\n // }, { emitEvent: false });\n // }\n\n onSave(): void {\n if (this.form.valid) {\n // Emit save event with form value\n console.log('Form saved:', this.form.value);\n this.onFormSave.emit(this.form.value);\n }\n }\n\n onDelete(): void {\n // Emit delete event\n console.log('Delete requested');\n }\n}\n","<form [formGroup]=\"form\" class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\">\n <verbena-input label=\"First Name:\" name=\"FirstName\" type=\"text\" formControlName=\"FirstName\" />\n <verbena-input label=\"Last Name:\" name=\"LastName\" type=\"text\" formControlName=\"LastName\" />\n <verbena-input label=\"Phone Number:\" name=\"PhoneNumber\" type=\"tel\" formControlName=\"PhoneNumber\" />\n <verbena-input name=\"MailAddress\" label=\"E-Mail Address:\" [type]=\"'email'\" formControlName=\"MailAddress\" />\n <!-- <verbena-input\n label=\"Address\"\n name=\"Address\"\n type=\"text\"\n formControlName=\"Address\"\n /> -->\n\n <div class=\"space-y-1\">\n <label for=\"role\">Role</label>\n\n <verben-drop-down label=\"Role\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"roles\" id=\"role\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"RoleID\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"tags\">Tags</label>\n\n <verben-drop-down label=\"Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"tags\" id=\"tags\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Tags\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <!-- <div class=\"space-y-1\">\n <label for=\"warehouses\">Warehouses</label>\n\n <verben-drop-down label=\"Warehouses\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\"\n [showClear]=\"true\" placeholder=\"\" [(options)]=\"warehouses\" id=\"warehouses\" optionLabel=\"Name\" optionValue=\"Code\"\n formControlName=\"Warehouses\" (onChange)=\"onWarehouseChange($event)\" class=\"form-control\">\n </verben-drop-down>\n </div> -->\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"false\" [showClear]=\"false\"\n placeholder=\"\" [(options)]=\"statusOptions\" id=\"status\" formControlName=\"Status\" class=\"form-control\">\n </verben-drop-down>\n </div>\n</form>\n","import { Component, Input } from '@angular/core';\nimport { Status } from 'verben-authentication-ui/src/lib/models';\n\n@Component({\n selector: 'lib-user-status-badge',\n templateUrl: './user-status-badge.component.html',\n styleUrl: './user-status-badge.component.css',\n})\nexport class UserStatusBadgeComponent {\n @Input() status: Status = Status.Active;\n\n badgeConfig() {\n switch (this.status) {\n case Status.Active:\n return { bgColor: '#CAE1CC', textColor: '#4ABB54', label: 'Active' };\n case Status.InActive:\n return { bgColor: '#FFDFDF', textColor: '#EB5757', label: 'InActive' };\n default:\n return { bgColor: '#827C7C', textColor: '#C3C3C3', label: 'Unknown' };\n }\n }\n}\n","<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","import {\n Component,\n Input,\n signal,\n ViewChild,\n WritableSignal,\n} from '@angular/core';\nimport { columns } from './user-management.columns';\n\nimport { PagedResult, SearchPropertySign } from 'verben-authentication-ui/src/lib/models';\nimport { HttpWebRequestService, UtilService } from 'verben-authentication-ui/src/lib/services';\nimport { baseStyle } from './base-table-style';\n\nimport { FormBuilder } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { UserAccessRequestService } from 'verben-authentication-ui/src/lib/components/user-request-approval';\nimport { ConditionOptions, ErrorResponse, ObjectState, Role, Status, Tag, User } from 'verben-authentication-ui/src/lib/models';\nimport { EnvironmentService } from 'verben-authentication-ui/src/lib/services';\nimport {\n CardData,\n CardDataViewComponent,\n ColumnDefinition,\n ConditionalOptions,\n DataFilterType,\n DataViewComponent,\n DropdownChangeEvent,\n FormGroupConfig,\n IDataFilter\n} from 'verben-ng-ui';\nimport { UserManagementService } from './services/user-management.service';\nimport { UserManagementFormComponent } from './user-management-form/user-management-form.component';\n\nenum DateFilterTypes {\n Before = SearchPropertySign.LT,\n On = SearchPropertySign.EQ,\n After = SearchPropertySign.GT,\n}\n\ninterface TestParentObject {\n Id: string;\n Name: string;\n}\n\n@Component({\n selector: 'lib-user-management',\n templateUrl: './user-management.component.html',\n styleUrl: './user-management.component.css',\n})\nexport class UserManagementComponent {\n @ViewChild('vdcv') cardDataView!: CardDataViewComponent;\n @ViewChild('vdv') dataView!: DataViewComponent;\n @ViewChild(UserManagementFormComponent)\n childComponent!: UserManagementFormComponent;\n private currentSearchTerm: string = '';\n\n allColumns: ColumnDefinition<User>[] = columns;\n filteredColumns: ColumnDefinition<User>[] = columns;\n skip: number = 0;\n users: User[] = [];\n searchTerm$ = new Subject<string>();\n @Input() searchDebounceTime: number = 500;\n @Input() pageSize: number = 1;\n pageState: PagedResult<User> | null = null;\n errorMessage: string = '';\n appliedFilters: boolean = false;\n isLoading: boolean = false;\n hasMore: boolean = true;\n limit: number = 20;\n sortParam: string = 'name';\n sortOrder: string = 'asc';\n Roles: Role[] = [];\n Tags: WritableSignal<Tag[]> = signal([]);\n dataFit: PagedResult<User> = {\n PageSize: 1,\n Skip: 0,\n Total: 0,\n Result: [],\n LastItem: [''],\n IsLoadingResults: false,\n };\n\n currentFilters: IDataFilter[] = [];\n currentSorts: IDataFilter[] = [];\n\n role: string = '';\n\n cardContextHistory: CardData[] = [];\n param: string | null | undefined;\n formGroupConfig: WritableSignal<FormGroupConfig<any>>;\n statuses = Object.values(Status);\n\n constructor(\n private route: ActivatedRoute,\n private userManagementService: UserManagementService,\n private userRole: UserAccessRequestService,\n private server: HttpWebRequestService,\n private utilService: UtilService,\n private envSvc: EnvironmentService,\n private fb: FormBuilder,\n ) {\n this.formGroupConfig = signal({\n controls: {\n MailAddress: this.fb.control(''),\n FirstName: this.fb.control(''),\n PhoneNumber: this.fb.control(''),\n Address: this.fb.control(''),\n RoleID: this.fb.control(''),\n Tags: this.fb.control([]),\n Warehouses: this.fb.control(''),\n Status: this.fb.control(''),\n },\n // validatorOrOpts: null,\n // asyncValidator: null,\n });\n }\n\n async ngOnInit(): Promise<void> {\n this.getRoles();\n this.getTags();\n this.route.paramMap.subscribe((params) => {\n this.role = params.get('role') || ''; // Default to an empty string if no role\n this.fetchUsers();\n });\n }\n\n cardData: CardData[] = [];\n\n data: any[] = [];\n\n async fetchUsers(sortValue: string = 'CreatedAt', order: string = 'asc') {\n this.isLoading = true;\n this.utilService.sendBI(true);\n\n try {\n const res = await this.userManagementService.getRealUsers(\n this.role,\n this.skip,\n this.limit,\n this.sortParam,\n this.sortOrder,\n );\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n // Handle error response\n console.error('Error fetching logs:', res);\n } else {\n const response = res as PagedResult<User>;\n this.dataFit = response;\n this.users = [...this.users, ...response.Result];\n this.cardData = this.formatCardData(this.users);\n this.skip = response.Skip;\n this.hasMore = this.skip < response.Total;\n }\n } catch (error) {\n console.error('Error:', error);\n } finally {\n this.isLoading = false;\n }\n }\n\n async getRoles() {\n this.utilService.sendBI(true);\n\n try {\n const res = await this.userRole.getRoles();\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n console.error('Error fetching roles:', res);\n return undefined;\n }\n\n const response = res as PagedResult<Role>;\n this.Roles = response.Result;\n } catch (error) {\n console.error('Error fetching roles:', error);\n return undefined;\n }\n }\n\n async getTags() {\n this.utilService.sendBI(true);\n\n try {\n const res = await this.userRole.getTags();\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n console.error('Error fetching roles:', res);\n return undefined;\n }\n const response = res as PagedResult<Tag>;\n this.Tags.set(response.Result);\n } catch (error) {\n console.error('Error fetching roles:', error);\n return undefined;\n }\n }\n\n handleRoleId(value: string) {\n const matchedRole = this.Roles.filter((role) => role.Name === value);\n return matchedRole[0]?.Code;\n }\n /**\n * Format users into CardData for the UI library\n * @param users Array of users to format\n * @returns Array of CardData\n */\n private formatCardData(users: User[]): CardData[] {\n return users.map((user) => ({\n selected: false, // Default selection state\n title: `${user.FirstName} ${user.LastName}`, // Display user's name as title\n data: { ...user }, // Pass the entire user object\n body: [\n { title: 'Name', value: `${user.FirstName} ${user.LastName}` },\n { title: 'E-Mail Address', value: user.MailAddress },\n { title: 'Phone Number', value: user.PhoneNumber || 'N/A' },\n ],\n children: [], // Add child data if necessary\n }));\n }\n\n columns = columns;\n styles = baseStyle;\n\n selectedParent?: string;\n basicOption?: string;\n selectedOption: string[] = [];\n selectedOptionTwo: string[] = [];\n selectedOptionThree?: string;\n missingObject: any;\n\n // clearLogs(sortValue: string = 'CreatedAt', order: string = 'asc') {\n // this.User = []; // Clear the logs array\n // this.skip = 0; // Reset the skip value\n // this.hasMore = true; // Reset the flag to allow fetching more logs\n // this.appliedFilters = false;\n // this.fetchUsers();\n // }\n\n // Grid view properties\n isGridView: boolean = true;\n currentData!: CardData;\n selectedColumnCount: number = 0;\n selectedFilterTableCount: number = 0;\n isOPen: boolean = true;\n selectedSortCount: number = 0;\n showFilter: boolean = false;\n searchTerm: string = '';\n showColumn: boolean = false;\n showSort: boolean = false;\n selectedAll: boolean = false;\n visibleColumns: IDataFilter[] = columns.map((col) => ({\n checked: false,\n name: typeof col.header === 'string' ? col.header : col.id,\n type: DataFilterType.Bool,\n }));\n\n filterArray: IDataFilter[] = [\n { name: 'FirstName', type: DataFilterType.String, checked: false },\n { name: 'LastName', type: DataFilterType.String, checked: false },\n { name: 'MailAddress', type: DataFilterType.String, checked: false },\n { name: 'Status', type: DataFilterType.String, checked: false },\n { name: 'PhoneNumber', type: DataFilterType.String, checked: false },\n { name: 'CreatedAt', type: DataFilterType.Date, checked: false },\n { name: 'Role', type: DataFilterType.String, checked: false },\n ];\n\n sortOptions: IDataFilter[] = [\n { name: 'Name', type: DataFilterType.String, checked: false },\n { name: 'MailAddress', type: DataFilterType.String, checked: false },\n { name: 'PhoneNumber', type: DataFilterType.String, checked: false },\n { name: 'CreatedAt', type: DataFilterType.Date, checked: false },\n ];\n\n testParents: TestParentObject[] = [\n { Id: '1', Name: 'Manager' },\n { Id: '2', Name: 'Administrator' },\n { Id: '3', Name: 'Jelom' },\n ];\n\n getParentLabel(context: any): string {\n console.log({ MissingObj: this.missingObject });\n return this.missingObject.Name;\n }\n\n onSave(): void {\n if (this.childComponent.form.valid) {\n // const userData: User = this.childComponent.form.value;\n // console.log('Payload:', [userData]); // Log the payload to check its structure\n\n this.utilService.sendBI(true);\n this.userManagementService\n .saveUsers([\n {\n ...this.currentData?.data,\n ...this.childComponent.form.value,\n DataState:\n this.currentData?.data.DataState === ObjectState.Unchanged\n ? ObjectState.Changed\n : this.currentData?.data.DataState,\n },\n ])\n .then(\n (result) => {\n if (result instanceof ErrorResponse) {\n } else {\n this.utilService.showSuccess('User saved successfully');\n }\n },\n (error) => {\n console.error('Unexpected error saving user:', error);\n },\n )\n .finally(() => {\n this.utilService.sendBI(false);\n });\n console.log(this.childComponent.form.value);\n } else {\n console.error('Form is invalid');\n }\n }\n\n async onDataSave(event: {\n index: number;\n key: number | string;\n data: Partial<User>;\n }) {\n const payload = {\n ...this.users[event.index],\n ...event.data,\n DataState:\n this.users[event.index]?.DataState === ObjectState.Unchanged\n ? ObjectState.Changed\n : ObjectState.New,\n } as User;\n\n this.utilService.sendBI(true);\n this.userManagementService\n .saveUsers([payload])\n .then(\n (result) => {\n if (result instanceof ErrorResponse) {\n } else {\n if (result[0]) {\n this.users = this.users.map((user, index) => {\n if (index === event.index) return result[0] as User;\n return user;\n });\n }\n this.utilService.showSuccess('User saved successfully');\n }\n },\n (error) => {\n console.error('Unexpected error saving user:', error);\n },\n )\n .finally(() => {\n this.utilService.sendBI(false);\n });\n }\n\n onDelete(): void {\n console.log('Child form delete triggered');\n // Perform delete logic here\n }\n onDropdownChange(event: DropdownChangeEvent): void {\n // console.log({\n // 'Test Parent Value': this.selectedParent,\n // ...\n // });\n }\n\n onSelectionChange(selectedRows: User[]) {\n console.log('Selection changed:', selectedRows);\n // Handle the selection change\n }\n\n handleExport(exportedData: Partial<any>[]) {\n console.log('Exported data:', exportedData);\n this.downloadCSV(exportedData);\n }\n\n private downloadCSV(data: Partial<any>[]) {\n const headers = Object.keys(data[0]);\n const csvContent = [\n headers.join(','),\n ...data.map((row) => headers.map((header) => row[header]).join(',')),\n ].join('\\n');\n\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const link = document.createElement('a');\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', 'export.csv');\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n\n getCardDataByMailAddress(mailAddress: string): CardData | undefined {\n console.log('cardData array:', this.cardData);\n console.log(mailAddress);\n\n return this.cardData.find(({ data }) => data?.MailAddress === mailAddress);\n }\n\n openDetailView(mailAddress: string) {\n const cardItem = this.getCardDataByMailAddress(mailAddress);\n console.log(cardItem);\n\n if (cardItem && this.cardDataView) {\n this.dataView.toggleView();\n // First reset all selections\n this.cardData.forEach((item) => {\n item.selected = false;\n if (item.children) {\n item.children.forEach((child) => (child.selected = false));\n }\n });\n\n // Set the selected item\n cardItem.selected = true;\n this.currentData = this.cardDataView.onItemClick(cardItem);\n\n // Force change detection if needed\n // this.changeDetectorRef.detectChanges();\n }\n }\n\n reset() {\n this.skip = 0;\n this.pageSize = 20;\n }\n\n clearData() {\n this.currentData = {} as CardData;\n }\n\n loadMore() {\n if (this.hasMore) {\n this.fetchUsers();\n }\n }\n\n onColumnChange(event: boolean) {\n this.showColumn = event;\n }\n\n onSortChange(event: boolean) {\n this.showSort = event;\n console.log(event);\n }\n\n onColumnsUpdated(updatedColumns: IDataFilter[]) {\n this.onColumnChange(false);\n this.selectedColumnCount = updatedColumns.length;\n\n if (updatedColumns) {\n // Filter columns to include only visible ones\n this.filteredColumns = this.columns.filter((col) =>\n this.visibleColumns.find(\n (filter) => filter.name === col.header && filter.checked,\n ),\n );\n\n // Reorder columns based on the order in visibleColumns\n const visibleColumnOrder = this.visibleColumns\n .filter((filter) => filter.checked)\n .map((filter) => filter.name);\n\n this.columns.sort((a, b) => {\n const indexA = visibleColumnOrder.indexOf(a.header as string);\n const indexB = visibleColumnOrder.indexOf(b.header as string);\n return indexA - indexB;\n });\n }\n }\n\n async postSearch(payload: any) {\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `SearchUsers/0/10/CreatedAt/asc`,\n payload,\n );\n\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.appliedFilters = false;\n return;\n } else {\n this.appliedFilters = true;\n const response = res as PagedResult<User>;\n this.dataFit = response;\n this.users = response.Result;\n this.cardData = this.formatCardData(this.users);\n }\n }\n\n onFilterApplied(appliedFilter: IDataFilter[]) {\n this.showFilter = false;\n if (Array.isArray(appliedFilter)) {\n this.selectedFilterTableCount = appliedFilter.length;\n console.log(appliedFilter);\n\n const queryParams = appliedFilter\n .filter((filter) => filter.checked)\n .map((filter) => ({\n PropertyName: filter.name,\n EntityValue:\n filter.name === 'Role'\n ? this.handleRoleId(filter.value)\n : filter.value,\n Type: filter.type,\n Operator: 'And',\n Sign: this.getCondition(filter.condition),\n }));\n\n this.postSearch(queryParams);\n }\n }\n\n getCondition(value: any): ConditionOptions | undefined {\n switch (value) {\n case ConditionalOptions.On:\n return ConditionOptions.On;\n case ConditionalOptions.After:\n return ConditionOptions.After;\n case ConditionalOptions.Before:\n return ConditionOptions.Before;\n case ConditionalOptions.NotEqual:\n return ConditionOptions.NotEqual;\n default:\n return undefined; // Explicitly return undefined for invalid cases\n }\n }\n\n onSortUpdated(updatedSorts: IDataFilter[]): void {\n this.currentSorts = updatedSorts;\n }\n\n async onSearch(event: { key: string; value: string }) {\n this.searchTerm = event.value;\n this.reset();\n if (!this.searchTerm) {\n this.clearLogs('CreatedAt', 'asc');\n return;\n }\n\n this.isLoading = true;\n this.utilService.sendBI(true);\n\n try {\n const res = await this.server.get(\n `GetUserWithParam/${this.searchTerm}/${this.skip}/${this.pageSize}/CreatedAt/asc`,\n );\n\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n console.error('Error during search:', res);\n this.appliedFilters = false;\n } else {\n const response = res as PagedResult<User>;\n this.dataFit = response;\n this.users = response.Result;\n this.cardData = this.formatCardData(this.users);\n }\n } catch (error) {\n console.error('Search error:', error);\n this.appliedFilters = false;\n } finally {\n this.isLoading = false;\n }\n }\n\n clearLogs(sortValue: string = 'CreatedAt', order: string = 'asc') {\n this.users = []; // Clear the logs array\n this.skip = 0; // Reset the skip value\n this.hasMore = true; // Reset the flag to allow fetching more logs\n this.appliedFilters = false;\n this.fetchUsers(sortValue, order);\n }\n\n onViewChange(isGridView: boolean): void { }\n\n onStateChange(event: { key: string; value: boolean }): void {\n console.log(`State changed for ${event.key}:`, event.value);\n if (event.key === 'create') {\n console.log('peace is a boy');\n\n // const newUser = this.newItem()\n\n // if ( newUser && this.cardDataView) {\n // this.dataView.toggleView();\n // // First reset all selections\n // this.cardData.forEach((item) => {\n // item.selected = false;\n // if (item.children) {\n // item.children.forEach((child) => (child.selected = false));\n // }\n // });\n\n // this.currentData = this.cardDataView.onItemClick(newUser);\n\n // // Force change detection if needed\n // // this.changeDetectorRef.detectChanges();\n // }\n }\n }\n\n getRoleName(roleId: string): string {\n const role = this.Roles.find((role) => role.Code === roleId);\n return role ? role.Name : '';\n }\n}\n","<div class=\"flex flex-col gap-4 message-log-container\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n\n isToggle: true\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"selectedColumnCount\"\n [selectedSortCount]=\"selectedSortCount\"\n [selectedFilterTableCount]=\"selectedFilterTableCount\"\n (onSearchChange)=\"onSearch($event)\"\n [searchValue]=\"searchTerm\"\n [showFilterChild]=\"showFilter\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n [isTableView]=\"false\"\n >\n <div class=\"mt-2\" table-content>\n <lib-data-table\n [data]=\"users\"\n [columns]=\"filteredColumns\"\n [formGroupConfig]=\"formGroupConfig()\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n (rowSave)=\"onDataSave($event)\"\n >\n <ng-container libColumn=\"select\">\n <ng-template\n #cell\n let-isSelected=\"isSelected\"\n let-toggleRowSelection=\"toggleRowSelection\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"isSelected\"\n (change)=\"toggleRowSelection()\"\n />\n </ng-template>\n <ng-template\n #header\n let-allRowsSelected=\"allRowsSelected\"\n let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"allRowsSelected()\"\n [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"user\">\n <ng-template #cellEdit let-formControl=\"formControl\" let-value>\n <verbena-input\n name=\"FirstName\"\n type=\"text\"\n [formControl]=\"formControl\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"mail\">\n <ng-template #cellEdit let-formControl=\"formControl\" let-value>\n <verbena-input\n name=\"MailAddress\"\n type=\"email\"\n [formControl]=\"formControl\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"phone\">\n <ng-template #cellEdit let-formControl=\"formControl\" let-value>\n <verbena-input\n name=\"PhoneNumber\"\n type=\"tel\"\n [formControl]=\"formControl\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"address\">\n <ng-template #cellEdit let-formControl=\"formControl\" let-value>\n <verbena-input\n name=\"Address\"\n type=\"text\"\n [formControl]=\"formControl\"\n />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"role\">\n <ng-template #cellEdit let-formControl=\"formControl\" let-value>\n <verben-drop-down\n name=\"Role\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [filter]=\"true\"\n [showClear]=\"true\"\n placeholder=\"\"\n [(options)]=\"Roles\"\n id=\"role\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n [formControl]=\"formControl\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template\n #cell\n let-value\n let-deleteRow=\"deleteRow\"\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-row=\"row\"\n let-rowIndex=\"rowIndex\"\n >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"toggleRowEdit()\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n <ng-template\n #cellEdit\n let-value\n let-deleteRow=\"deleteRow\"\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-row=\"row\"\n let-rowIndex=\"rowIndex\"\n >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"toggleRowEdit()\"\n icon=\"tick\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"toggleRowEdit()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <!-- <verben-svg\n icon=\"cardViewAlt\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n (click)=\"goToCardView(value)\"\n ></verben-svg> -->\n </div>\n </ng-template>\n <ng-template #header>\n <strong>Actions</strong>\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"status\">\n <ng-template\n #cell\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-deleteRow=\"deleteRow\"\n let-value=\"value\"\n >\n <lib-user-status-badge [status]=\"value\"></lib-user-status-badge>\n </ng-template>\n\n <ng-template\n #cellEdit\n let-rowIndex=\"rowIndex\"\n let-formControl=\"formControl\"\n >\n <verben-drop-down\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Set status\"\n [options]=\"statuses\"\n [formControl]=\"formControl\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"MailAddress\"\n border=\"5px\"\n [cardDataList]=\"cardData\"\n rbgColor=\"#f5f6f9\"\n mg=\"0px\"\n class=\"gap-1\"\n >\n <verben-left-card-data-view class=\"m-0 gap-2\">\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"MailAddress\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\"\n [cardDataList]=\"cardData\"\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <verben-svg\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"vlcd.showChildren(item)\"\n [ngClass]=\"vlcd.showToggle(item) ? 'visible' : 'invisible'\"\n class=\"items-center flex cursor-pointer\"\n [icon]=\"item.isChildrenExpanded ? 'minus' : 'plus'\"\n />\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\"\n >\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex-1 flex items-end gap-y-2 gap-x-4 p-4\">\n <div class=\"flex-1 space-y-2\">\n <span\n class=\"font-semibold text-[#404040] flex-1 truncate\"\n >{{ item.title }}</span\n >\n\n <p class=\"flex items-center my-1\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Role:</label\n >\n <span id=\"phone\" class=\"text-sm truncate\">{{\n getRoleName(item.data.RoleID)\n }}</span>\n </p>\n </div>\n\n <div class=\"grid gap-y-1\">\n <p class=\"grid\">\n <!-- <label\n for=\"role\"\n class=\"text-[10px] font-light text-[#404040]\"\n >Role</label\n >\n <span id=\"role\" class=\"text-sm font-medium\">{{\n item.data?.Role?.Name\n }}</span> -->\n </p>\n\n <lib-user-status-badge\n [status]=\"item.data.Status\"\n ></lib-user-status-badge>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <div class=\"bg-secondary-100 py-2 flex flex-col gap-20 px-2\">\n <lib-user-request-form\n [roles]=\"Roles\"\n [tags]=\"Tags()\"\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n ></lib-user-request-form>\n <div class=\"flex justify-end bottom-8 left-0 right-0 p-3\">\n <!-- <verbena-button text=\"Delete\" bgColor=\"#999999\" textColor=\"white\"\n border=\"1px solid #999999\" (click)=\"onDelete()\"></verbena-button> -->\n <div class=\"flex gap-3\">\n <verbena-button\n (click)=\"vdv.toggleView()\"\n text=\"Switch To Table\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n <verbena-button\n text=\"Save\"\n bgColor=\"#FFE681\"\n (click)=\"onSave()\"\n textColor=\"#404040\"\n border=\"1px solid #FFE681\"\n >\n <!-- (click)=\"\" -->\n </verbena-button>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"w-full\">\n <div\n [ngClass]=\"{\n 'flex gap-2 items-center': true,\n 'justify-end': true,\n }\"\n >\n <!-- <verbena-button\n *ngIf=\"!vdcv.hasCurrentItem()\"\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button> -->\n <div\n class=\"flex {{\n vdcv.hasCurrentItem() ? 'flex-1' : ''\n }} justify-end items-center gap-5\"\n >\n <span class=\"paginator-text\"\n >{{ cardData.length }} records loaded</span\n >\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[#3479E9] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n (filtersApplied)=\"onFilterApplied($event)\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-xport\n [columns]=\"allColumns\"\n [data]=\"users\"\n >\n </lib-data-xport>\n </div>\n </verben-data-view>\n <div\n *ngIf=\"!vdcv.hasCurrentItem() && this.cardContextHistory.length == 0\"\n class=\"message-log-button-container flex justify-between\"\n ></div>\n\n <div *ngIf=\"vdv.isTableView\" class=\"w-full flex gap-2 justify-end\">\n <!-- <div class=\"message-log-button-container flex justify-between\">\n <verbena-button\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n </div> -->\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData.length }} records loaded</span>\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[#3479E9] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { UserManagementComponent } from './user-management.component';\n\nimport { LibUserRequestApprovalModule } from 'verben-authentication-ui/src/lib/components/user-request-approval';\nimport {\n CardDataViewModule,\n CardModule,\n DataExportModule,\n DataTableModule,\n DataViewModule,\n DataXportModule,\n DropDownModule,\n SortTableModule,\n SvgModule,\n TableFilterModule,\n VerbenaBadgeModule,\n VerbenaButtonModule,\n VerbenaInputModule,\n VerbenaSwitchModule,\n VisibleColumnModule,\n} from 'verben-ng-ui';\nimport { UserManagementService } from './services/user-management.service';\nimport { UserManagementFormComponent } from './user-management-form/user-management-form.component';\nimport { UserStatusBadgeComponent } from './user-status-badge/user-status-badge.component';\n\n@NgModule({\n declarations: [\n UserManagementComponent,\n UserManagementFormComponent,\n UserStatusBadgeComponent,\n ],\n imports: [\n HttpClientModule,\n CommonModule,\n\n DataTableModule,\n CardModule,\n SvgModule,\n DataViewModule,\n CardDataViewModule,\n SortTableModule,\n VisibleColumnModule,\n TableFilterModule,\n DataExportModule,\n DataXportModule,\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n VerbenaBadgeModule,\n DropDownModule,\n VerbenaSwitchModule,\n\n LibUserRequestApprovalModule,\n // AsyncLabelPipe,\n ],\n providers: [UserManagementService],\n exports: [UserManagementComponent],\n})\nexport class LibUserManagementModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.UserManagementService","i3","i4","i5","i8.UserManagementFormComponent","i9.UserStatusBadgeComponent"],"mappings":"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"}
1
+ {"version":3,"file":"verben-authentication-ui-src-lib-components-user-management.mjs","sources":["../../../projects/verben-authentication-ui/src/lib/components/user-management/user-status-badge/user-status-badge.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-status-badge/user-status-badge.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management-card/user-management-card.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management-card/user-management-card.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-management/user.config.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management-form/user-management-form.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management-form/user-management-form.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-management/user.state.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user.service.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user.facade.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management-table/user-management-table.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management-table/user-management-table.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.module.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/verben-authentication-ui-src-lib-components-user-management.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Status } from 'verben-authentication-ui/src/lib/models';\nimport { VerbenaBadgeModule } from 'verben-ng-ui';\n\n@Component({\n selector: 'lib-user-status-badge',\n standalone: true,\n imports: [CommonModule, VerbenaBadgeModule],\n templateUrl: './user-status-badge.component.html',\n styleUrl: './user-status-badge.component.css',\n})\nexport class UserStatusBadgeComponent {\n @Input() status: Status = Status.Active;\n\n badgeConfig() {\n switch (this.status) {\n case Status.Active:\n return { bgColor: 'var(--vbn-color-success-bg)', textColor: 'var(--vbn-color-success)', label: 'Active' };\n case Status.InActive:\n return { bgColor: 'var(--vbn-color-error-bg)', textColor: 'var(--vbn-color-error)', label: 'InActive' };\n default:\n return { bgColor: 'var(--vbn-color-text-muted)', textColor: 'var(--vbn-color-border)', label: 'Unknown' };\n }\n }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { User } from 'verben-authentication-ui/src/lib/models';\nimport { UserStatusBadgeComponent } from '../user-status-badge/user-status-badge.component';\n\n/**\n * Presentational card for a single user in the card view.\n */\n@Component({\n selector: 'lib-user-management-card',\n standalone: true,\n imports: [CommonModule, UserStatusBadgeComponent],\n templateUrl: './user-management-card.component.html',\n styleUrls: ['./user-management-card.component.css'],\n})\nexport class UserManagementCardComponent {\n @Input() user!: User;\n @Input() selected = false;\n}\n","<div class=\"flex cursor-pointer w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"selected ? 'bg-primary' : 'bg-secondary-200'\"></div>\n <div class=\"flex-1 flex items-end gap-y-2 gap-x-4 p-4\">\n <div class=\"flex-1 space-y-2\">\n <span class=\"font-semibold text-[var(--vbn-color-text)] flex-1 truncate\">\n {{ user.FirstName }} {{ user.LastName }}\n </span>\n <p class=\"flex items-center my-1 gap-1\">\n <label class=\"text-[10px] font-light\">E-Mail:</label>\n <span class=\"text-sm truncate\">{{ user.MailAddress }}</span>\n </p>\n </div>\n <div class=\"grid gap-y-1\">\n <lib-user-status-badge [status]=\"user.Status\"></lib-user-status-badge>\n </div>\n </div>\n</div>\n","import { FormBuilder } from '@angular/forms';\nimport { User } from 'verben-authentication-ui/src/lib/models';\nimport { BasePageConfig } from 'verben-authentication-ui/src/lib/base';\nimport { CardData, ColumnDefinition } from 'verben-ng-ui';\n\nconst fb = new FormBuilder();\n\n/**\n * Column definitions for the user table.\n * Single source of truth for table, filter, sort, and export.\n * The role column keys on `RoleID`; the table renders it as the role name.\n */\nexport const USER_COLUMNS: ColumnDefinition<User>[] = [\n {\n id: 'select',\n header: '',\n canExport: false,\n },\n {\n id: 'createdAt',\n header: 'CREATED',\n accessorKey: 'CreatedAt',\n },\n {\n id: 'user',\n header: 'NAME',\n accessorFn: (row) => `${row.FirstName} ${row.LastName}`,\n formControlName: 'FirstName',\n },\n {\n id: 'mail',\n header: 'E-MAIL',\n accessorKey: 'MailAddress',\n formControlName: 'MailAddress',\n },\n {\n id: 'phone',\n header: 'PHONE NUMBER',\n accessorKey: 'PhoneNumber',\n formControlName: 'PhoneNumber',\n },\n {\n id: 'role',\n header: 'ROLE',\n accessorKey: 'RoleID',\n formControlName: 'RoleID',\n },\n {\n id: 'status',\n header: 'STATUS',\n accessorKey: 'Status',\n formControlName: 'Status',\n },\n {\n id: 'actions',\n header: 'ACTIONS',\n canExport: false,\n },\n];\n\n/**\n * Page configuration for user management.\n */\nexport const USER_CONFIG: BasePageConfig<User> = {\n endpoint: 'User',\n pageSize: 20,\n columns: USER_COLUMNS,\n cardDataMapper: (user: User): CardData => ({\n selected: false,\n title: `${user.FirstName} ${user.LastName}`,\n data: user,\n body: [\n { title: 'Name', value: `${user.FirstName} ${user.LastName}` },\n { title: 'E-Mail Address', value: user.MailAddress },\n { title: 'Phone Number', value: user.PhoneNumber || 'N/A' },\n ],\n children: [],\n }),\n searchDebounceTime: 500,\n\n formGroupConfig: {\n controls: {\n MailAddress: fb.control(''),\n FirstName: fb.control(''),\n LastName: fb.control(''),\n PhoneNumber: fb.control(''),\n RoleID: fb.control(''),\n Tags: fb.control([]),\n Status: fb.control(''),\n },\n },\n\n enableCreate: false,\n enableImport: false,\n enableExport: true,\n enableFilter: true,\n enableSort: true,\n enableSearch: true,\n enableCardView: true,\n enableTableRowEdit: true,\n};\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, effect, input, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { ObjectState, Role, Status, Tag, User } from 'verben-authentication-ui/src/lib/models';\nimport { DropDownModule, VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';\nimport { USER_CONFIG } from '../user.config';\n\n/**\n * Form for editing a user's role, tags, and status.\n * Identity fields are read-only.\n */\n@Component({\n selector: 'lib-user-management-form',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n DropDownModule,\n ],\n templateUrl: './user-management-form.component.html',\n styleUrls: ['./user-management-form.component.css'],\n})\nexport class UserManagementFormComponent {\n user = input<User>();\n roles = input<Role[]>([]);\n tags = input<Tag[]>([]);\n\n @Output() save = new EventEmitter<User>();\n @Output() switchToTable = new EventEmitter<void>();\n\n form: FormGroup;\n statusOptions = Object.values(Status);\n\n constructor(private fb: FormBuilder) {\n this.form = this.fb.group(USER_CONFIG.formGroupConfig!.controls);\n\n effect(() => {\n const user = this.user();\n if (user && this.form) {\n this.form.patchValue({\n MailAddress: user.MailAddress || '',\n FirstName: user.FirstName || '',\n LastName: user.LastName || '',\n PhoneNumber: user.PhoneNumber || '',\n RoleID: user.RoleID || '',\n Tags: (user as unknown as { Tags?: string[] }).Tags || [],\n Status: user.Status || Status.Active,\n });\n }\n });\n }\n\n onSave(): void {\n if (this.form.valid) {\n const merged: User = {\n ...(this.user() as User),\n ...this.form.getRawValue(),\n DataState:\n this.user()?.DataState === ObjectState.New\n ? ObjectState.New\n : ObjectState.Changed,\n };\n this.save.emit(merged);\n }\n }\n\n onSwitchToTable(): void {\n this.switchToTable.emit();\n }\n}\n","<form [formGroup]=\"form\" (ngSubmit)=\"onSave()\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\">\n <verbena-input label=\"First Name:\" name=\"FirstName\" type=\"text\" formControlName=\"FirstName\" [readOnly]=\"true\" />\n <verbena-input label=\"Last Name:\" name=\"LastName\" type=\"text\" formControlName=\"LastName\" [readOnly]=\"true\" />\n <verbena-input label=\"Phone Number:\" name=\"PhoneNumber\" type=\"tel\" formControlName=\"PhoneNumber\" [readOnly]=\"true\" />\n <verbena-input name=\"MailAddress\" label=\"E-Mail Address:\" [type]=\"'email'\" formControlName=\"MailAddress\"\n [readOnly]=\"true\" />\n\n <div class=\"space-y-1\">\n <label for=\"role\">Role</label>\n <verben-drop-down styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"true\" [showClear]=\"true\"\n placeholder=\"\" [options]=\"roles()\" id=\"role\" optionLabel=\"Name\" optionValue=\"Code\" formControlName=\"RoleID\"\n class=\"form-control\"></verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"tags\">Tags</label>\n <verben-drop-down styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\" [filter]=\"true\" [showClear]=\"true\"\n placeholder=\"\" [options]=\"tags()\" id=\"tags\" optionLabel=\"Name\" optionValue=\"Code\" formControlName=\"Tags\"\n class=\"form-control\"></verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n <verben-drop-down styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" [filter]=\"false\" [showClear]=\"false\"\n placeholder=\"\" [options]=\"statusOptions\" id=\"status\" formControlName=\"Status\"\n class=\"form-control\"></verben-drop-down>\n </div>\n\n <!-- Form Actions -->\n <div class=\"flex justify-end gap-4 my-2 items-center\">\n <verbena-button styleType=\"ylw-outline\" text=\"Switch To Table\" (click)=\"onSwitchToTable()\" type=\"button\">\n </verbena-button>\n <verbena-button text=\"Save\" type=\"submit\" bgColor=\"#FFE681\" textColor=\"#404040\" borderRadius=\"10px\"\n pd=\"10px 20px\" width=\"114px\" height=\"39px\"></verbena-button>\n </div>\n</form>\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Role, Tag, User } from 'verben-authentication-ui/src/lib/models';\nimport { BaseDataPageState } from 'verben-authentication-ui/src/lib/base';\n\n/**\n * State for the user-management page.\n * Adds the roles/tags lists used by the form's dropdowns.\n */\n@Injectable()\nexport class UserState extends BaseDataPageState<User> {\n private roles$ = new BehaviorSubject<Role[]>([]);\n private tags$ = new BehaviorSubject<Tag[]>([]);\n\n getRoles$(): Observable<Role[]> {\n return this.roles$.asObservable();\n }\n\n getRolesValue(): Role[] {\n return this.roles$.getValue();\n }\n\n setRoles(roles: Role[]): void {\n this.roles$.next(roles);\n }\n\n getTags$(): Observable<Tag[]> {\n return this.tags$.asObservable();\n }\n\n setTags(tags: Tag[]): void {\n this.tags$.next(tags);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ErrorResponse,\n PagedResult,\n Role,\n Tag,\n User,\n} from 'verben-authentication-ui/src/lib/models';\nimport { HttpWebRequestService } from 'verben-authentication-ui/src/lib/services';\nimport {\n BaseDataPageService,\n FilterHandlerService,\n SortHandlerService,\n} from 'verben-authentication-ui/src/lib/base';\n\n/**\n * Service for user API operations.\n *\n * The auth API pluralises names, appends a `/{sortParam}/{sortOrder}` suffix to\n * reads, and deletes via a query string, so the base URL seams are overridden.\n * Roles/tags are loaded here so this page no longer depends on the\n * access-request module.\n */\n@Injectable()\nexport class UserService extends BaseDataPageService<User> {\n private readonly defaultSort = 'CreatedAt/Asc';\n\n constructor(\n server: HttpWebRequestService,\n filterHandler: FilterHandlerService,\n sortHandler: SortHandlerService,\n ) {\n super(server, filterHandler, sortHandler);\n }\n\n getEndpoint(): string {\n return 'User';\n }\n\n // ===== URL seams =====\n\n protected override listUrl(skip: number, limit: number): string {\n return `GetUsers/${skip}/${limit}/${this.defaultSort}`;\n }\n\n protected override searchTermUrl(term: string, skip: number, limit: number): string {\n return `GetUserWithParam/${term}/${skip}/${limit}/${this.defaultSort}`;\n }\n\n protected override filterSearchUrl(skip: number, limit: number): string {\n return `SearchUsers/${skip}/${limit}/${this.defaultSort}`;\n }\n\n protected override saveUrl(): string {\n return 'SaveUsers';\n }\n\n protected override deleteUrl(itemIds: string[]): string {\n return `DeleteUsers?data=${itemIds.join(',')}`;\n }\n\n // ===== Lookups =====\n\n async getRoles(): Promise<Role[]> {\n const res = await this.server.get<PagedResult<Role>>('GetRoles/0/0');\n if (res instanceof ErrorResponse) {\n return [];\n }\n return res.Result ?? [];\n }\n\n async getTags(): Promise<Tag[]> {\n const res = await this.server.get<PagedResult<Tag>>('GetTags/0/0');\n if (res instanceof ErrorResponse) {\n return [];\n }\n return res.Result ?? [];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n ObjectState,\n OAuthType,\n Role,\n Status,\n Tag,\n User,\n} from 'verben-authentication-ui/src/lib/models';\nimport { UtilService } from 'verben-authentication-ui/src/lib/services';\nimport {\n BaseDataPageFacade,\n SearchHandlerService,\n} from 'verben-authentication-ui/src/lib/base';\nimport { ColumnDefinition } from 'verben-ng-ui';\nimport { USER_CONFIG } from './user.config';\nimport { UserService } from './user.service';\nimport { UserState } from './user.state';\n\n/**\n * Facade for the user-management page.\n */\n@Injectable()\nexport class UserFacade extends BaseDataPageFacade<User> {\n private userService: UserService;\n private blankUser?: User;\n\n constructor(\n state: UserState,\n service: UserService,\n searchHandler: SearchHandlerService,\n utilService: UtilService,\n ) {\n super(state, service, searchHandler, utilService, USER_CONFIG);\n this.userService = service;\n }\n\n // ===== Custom observables =====\n\n get roles$(): Observable<Role[]> {\n return (this.state as UserState).getRoles$();\n }\n\n get tags$(): Observable<Tag[]> {\n return (this.state as UserState).getTags$();\n }\n\n // ===== Runtime configuration (from component @Inputs) =====\n\n applyRuntimeConfig(options: { pageSize?: number; searchDebounceTime?: number }): void {\n if (options.pageSize && options.pageSize > 0) {\n this.state.updateQueryParams({ limit: options.pageSize });\n }\n if (options.searchDebounceTime && options.searchDebounceTime > 0) {\n this.searchHandler.setDebounceTime(options.searchDebounceTime);\n }\n }\n\n /** Seed an initial search term (used by the optional `role` input). */\n setInitialSearch(term: string): void {\n this.state.setSearchTerm(term);\n }\n\n // ===== Lookups =====\n\n async loadRoles(): Promise<void> {\n (this.state as UserState).setRoles(await this.userService.getRoles());\n }\n\n async loadTags(): Promise<void> {\n (this.state as UserState).setTags(await this.userService.getTags());\n }\n\n getRoleName(roleId: string): string {\n return (this.state as UserState).getRolesValue().find((r) => r.Code === roleId)?.Name ?? '';\n }\n\n // ===== View management =====\n\n /**\n * Select the user to show in the form. The form template binds to\n * currentCardData(), so route selection through selectCard (reusing the\n * matching card from the loaded list when present) rather than a separate\n * selected-user stream that nothing reads.\n */\n openForm(user?: User): void {\n const target = user ?? this.createEmptyUser();\n const existing = this.cardData().find((card) => card.data?.Code === target.Code);\n this.selectCard(existing ?? this.getConfig().cardDataMapper(target));\n }\n\n closeForm(): void {\n this.selectCard(null);\n }\n\n handleColumnsUpdated(columns: ColumnDefinition<User>[]): void {\n this.updateVisibleColumns(columns);\n }\n\n // ===== User operations =====\n\n async saveUser(user: User): Promise<boolean> {\n const payload: User = {\n ...user,\n DataState:\n user.DataState === ObjectState.New ? ObjectState.New : ObjectState.Changed,\n };\n const success = await this.saveItems([payload]);\n if (success) {\n this.closeForm();\n await this.refresh();\n }\n return success;\n }\n\n async deleteUser(id: string): Promise<boolean> {\n const success = await this.deleteItems([id]);\n if (success) {\n this.closeForm();\n await this.refresh();\n }\n return success;\n }\n\n // ===== Empty placeholder =====\n\n get emptyUser(): User {\n return (this.blankUser ??= this.createEmptyUser());\n }\n\n private createEmptyUser(): User {\n return {\n id: Date.now().toString(),\n Id: '',\n Code: '',\n TenantId: '',\n ServiceName: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n Password: '',\n FirstName: '',\n LastName: '',\n MailAddress: '',\n IsSeeded: false,\n Status: Status.Active,\n SignupType: OAuthType.InApp,\n } as User;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, viewChild } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { Status, User } from 'verben-authentication-ui/src/lib/models';\nimport {\n ColumnDefinition,\n DataTableComponent,\n DataTableModule,\n DropDownModule,\n FormGroupConfig,\n SvgModule,\n VerbenaInputModule,\n} from 'verben-ng-ui';\nimport { UserFacade } from '../user.facade';\nimport { UserStatusBadgeComponent } from '../user-status-badge/user-status-badge.component';\n\n/**\n * Table view for users with inline row editing.\n */\n@Component({\n selector: 'lib-user-management-table',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n DataTableModule,\n SvgModule,\n DropDownModule,\n VerbenaInputModule,\n UserStatusBadgeComponent,\n ],\n templateUrl: './user-management-table.component.html',\n styleUrls: ['./user-management-table.component.css'],\n})\nexport class UserManagementTableComponent {\n tableView = viewChild<DataTableComponent<User>>(DataTableComponent);\n\n @Input() users: User[] = [];\n @Input() columns: ColumnDefinition<User>[] = [];\n @Input() isLoading = false;\n @Input() formGroupConfig?: FormGroupConfig<any>;\n\n @Output() view = new EventEmitter<User>();\n @Output() delete = new EventEmitter<User>();\n @Output() saveRow = new EventEmitter<User>();\n\n statuses = Object.values(Status);\n\n constructor(public facade: UserFacade) {}\n\n onView(user: User): void {\n this.view.emit(user);\n }\n\n onDelete(user: User): void {\n this.delete.emit(user);\n }\n\n onRowSaved(event: { index: number; key: number | string; data: Partial<User> }): void {\n const original = this.users[event.index] ?? ({} as User);\n this.saveRow.emit({ ...original, ...event.data });\n }\n}\n","<div class=\"table-container\" [class.loading]=\"isLoading\">\n <lib-data-table [data]=\"users\" [columns]=\"columns\" [formGroupConfig]=\"formGroupConfig\" dataKey=\"Code\"\n (rowSave)=\"onRowSaved($event)\">\n <!-- Select -->\n <ng-container libColumn=\"select\">\n <ng-template #cell let-isSelected=\"isSelected\" let-toggleRowSelection=\"toggleRowSelection\">\n <input type=\"checkbox\" [checked]=\"isSelected\" (change)=\"toggleRowSelection()\" />\n </ng-template>\n </ng-container>\n\n <!-- Created -->\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>{{ value | date }}</ng-template>\n </ng-container>\n\n <!-- Mail -->\n <ng-container libColumn=\"mail\">\n <ng-template #cell let-value>{{ value }}</ng-template>\n <ng-template #cellEdit let-control=\"control\">\n <verbena-input name=\"MailAddress\" [formControl]=\"control\" placeHolder=\"Enter E-Mail\" />\n </ng-template>\n </ng-container>\n\n <!-- Phone -->\n <ng-container libColumn=\"phone\">\n <ng-template #cell let-value>{{ value }}</ng-template>\n <ng-template #cellEdit let-control=\"control\">\n <verbena-input name=\"PhoneNumber\" [formControl]=\"control\" placeHolder=\"Enter Phone Number\" />\n </ng-template>\n </ng-container>\n\n <!-- Role -->\n <ng-container libColumn=\"role\">\n <ng-template #cell let-value>{{ facade.getRoleName(value) || 'N/A' }}</ng-template>\n <ng-template #cellEdit let-control=\"control\">\n <verben-drop-down [width]=\"'100%'\" [formControl]=\"control\" placeHolder=\"Select Role\"\n [options]=\"(facade.roles$ | async) ?? []\" optionLabel=\"Name\" optionValue=\"Code\" [filter]=\"true\"\n [showClear]=\"true\"></verben-drop-down>\n </ng-template>\n </ng-container>\n\n <!-- Status -->\n <ng-container libColumn=\"status\">\n <ng-template #cell let-value>\n <lib-user-status-badge [status]=\"value\"></lib-user-status-badge>\n </ng-template>\n <ng-template #cellEdit let-control=\"control\">\n <verben-drop-down [width]=\"'100%'\" [formControl]=\"control\" placeHolder=\"Select Status\" [options]=\"statuses\"\n [filter]=\"false\" [showClear]=\"false\"></verben-drop-down>\n </ng-template>\n </ng-container>\n\n <!-- Actions -->\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-row=\"row\" let-toggleRowEdit=\"toggleRowEdit\">\n <div class=\"flex gap-6\">\n <verben-svg (click)=\"toggleRowEdit()\" icon=\"edit\" [width]=\"15\" [height]=\"15\"\n class=\"cursor-pointer\"></verben-svg>\n <verben-svg (click)=\"onView(row)\" icon=\"eye\" [width]=\"15\" [height]=\"15\" class=\"cursor-pointer\"></verben-svg>\n <verben-svg (click)=\"onDelete(row)\" icon=\"delete\" [width]=\"15\" [height]=\"15\"\n class=\"cursor-pointer\"></verben-svg>\n </div>\n </ng-template>\n <ng-template #cellEdit let-toggleRowEdit=\"toggleRowEdit\">\n <div class=\"flex gap-6\">\n <verben-svg (click)=\"toggleRowEdit()\" icon=\"tick\" [width]=\"15\" [height]=\"15\"\n class=\"cursor-pointer\"></verben-svg>\n <verben-svg (click)=\"toggleRowEdit()\" icon=\"delete\" [width]=\"15\" [height]=\"15\"\n class=\"cursor-pointer\"></verben-svg>\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n\n <div *ngIf=\"users.length === 0 && !isLoading\" class=\"empty-state\">\n <p>No users found</p>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { User } from 'verben-authentication-ui/src/lib/models';\nimport { SearchHandlerService } from 'verben-authentication-ui/src/lib/base';\nimport {\n CardData,\n CardDataViewComponent,\n CardDataViewModule,\n DataColumnsModule,\n DataFilterModule,\n DataSortModule,\n DataViewComponent,\n DataViewModule,\n DataXportModule,\n FilterCondition,\n SortCondition,\n} from 'verben-ng-ui';\nimport { UserManagementCardComponent } from './user-management-card/user-management-card.component';\nimport { UserManagementFormComponent } from './user-management-form/user-management-form.component';\nimport { UserManagementTableComponent } from './user-management-table/user-management-table.component';\nimport { UserFacade } from './user.facade';\nimport { UserService } from './user.service';\nimport { UserState } from './user.state';\n\n/**\n * User-management page. Lists users in table/card views with inline row editing\n * and a form panel, driven by the base-page facade.\n */\n@Component({\n selector: 'lib-user-management',\n standalone: true,\n imports: [\n CommonModule,\n DataViewModule,\n DataColumnsModule,\n DataFilterModule,\n DataSortModule,\n DataXportModule,\n CardDataViewModule,\n UserManagementTableComponent,\n UserManagementCardComponent,\n UserManagementFormComponent,\n ],\n templateUrl: './user-management.component.html',\n styleUrls: ['./user-management.component.css'],\n providers: [UserFacade, UserState, UserService, SearchHandlerService],\n})\nexport class UserManagementComponent implements OnInit {\n @Input() searchDebounceTime = 500;\n @Input() pageSize = 20;\n /** Optional role filter, applied as the initial search term. */\n @Input() role = '';\n\n @ViewChild('vdv') vdv!: DataViewComponent;\n @ViewChild('vdcv') cardDataView!: CardDataViewComponent;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(public facade: UserFacade) {}\n\n ngOnInit(): void {\n this.facade.applyRuntimeConfig({\n pageSize: this.pageSize,\n searchDebounceTime: this.searchDebounceTime,\n });\n if (this.role) {\n this.facade.setInitialSearch(this.role);\n }\n\n this.facade.cardSelectionCleared$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.clearCardView());\n\n this.facade.loadData();\n this.facade.loadRoles();\n this.facade.loadTags();\n }\n\n private clearCardView(): void {\n const view = this.cardDataView;\n if (!view) return;\n view.clearData();\n if (view.rightContent) {\n view.rightContent.parentData = null as unknown as CardData;\n }\n }\n\n // ===== Filter / Sort / Search =====\n\n onFilterApplied(filters: FilterCondition[]): void {\n this.facade.applyFilters(filters);\n }\n\n onSortApplied(sorts: SortCondition[]): void {\n this.facade.applySorts(sorts);\n }\n\n onSearch(term: string): void {\n this.facade.onSearch(term);\n }\n\n onColumnsUpdated(columns: any): void {\n this.facade.handleColumnsUpdated(columns);\n }\n\n onLoadMore(): void {\n this.facade.loadMore();\n }\n\n // ===== Table events =====\n\n onViewUser(user: User): void {\n this.facade.openForm(user);\n this.vdv.toggleView();\n }\n\n onDeleteUser(user: User): void {\n const name = `${user.FirstName} ${user.LastName}`.trim() || user.MailAddress;\n if (confirm(`Delete user ${name}?`)) {\n this.facade.deleteUser(user.Id || user.Code);\n }\n }\n\n onSaveRow(user: User): void {\n this.facade.saveUser(user);\n }\n\n userCardClicked(selectedCard: CardData): void {\n this.facade.selectCard(selectedCard);\n }\n\n // ===== Form events =====\n\n onSaveUser(user: User): void {\n this.facade.saveUser(user);\n this.vdv.toggleView();\n }\n}\n","<div class=\"user-management-page space-y-8\">\n <verben-data-view #vdv [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isCreate: false,\n isToggle: true,\n isImport: false,\n }\" [selectedColumnCount]=\"(facade.visibleColumns$ | async)?.length ?? 0\"\n [selectedSortCount]=\"(facade.sorts$ | async)?.length ?? 0\"\n [selectedFilterTableCount]=\"(facade.filters$ | async)?.length ?? 0\"\n (onSearchChange)=\"onSearch($event.value)\">\n\n <!-- Table View -->\n <div table-content>\n <lib-user-management-table [users]=\"(facade.items$ | async) ?? []\"\n [columns]=\"(facade.visibleColumns$ | async) ?? []\" [isLoading]=\"(facade.isLoading$ | async) ?? false\"\n [formGroupConfig]=\"facade.getConfig().formGroupConfig\" (view)=\"onViewUser($event)\"\n (delete)=\"onDeleteUser($event)\" (saveRow)=\"onSaveRow($event)\">\n </lib-user-management-table>\n </div>\n\n <!-- Card View -->\n <div card-content>\n <verben-card-data-view #vdcv [cardDataList]=\"facade.cardData()\" borderRadius=\"12px\" dataId=\"Code\" [border]=\"'5px'\"\n rbgColor=\"var(--vbn-color-surface-alt)\" mg=\"20px\">\n\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data #vlcd [parent]=\"vdcv\" dataId=\"Code\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\" [cardDataList]=\"facade.cardData()\">\n <ng-template #card let-item>\n <div (click)=\"userCardClicked(vdcv.onItemClick(item))\" class=\"cursor-pointer h-[max-content]\">\n <lib-user-management-card [user]=\"item.data\" [selected]=\"item.selected\"></lib-user-management-card>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <lib-user-management-form [user]=\"facade.currentCardData()?.data ?? facade.emptyUser\"\n [roles]=\"(facade.roles$ | async) ?? []\" [tags]=\"(facade.tags$ | async) ?? []\"\n (save)=\"onSaveUser($event)\" (switchToTable)=\"vdv.toggleView()\">\n </lib-user-management-form>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"w-full\">\n <div class=\"flex gap-2 items-center justify-end\">\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ (facade.items$ | async)?.length }} records loaded</span>\n <button class=\"load-more view-links text-[var(--vbn-color-border-focus)] underline\"\n [disabled]=\"(facade.isLoading$ | async) ?? false\" (click)=\"onLoadMore()\">Load More</button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n\n <!-- Column Selector -->\n <div column-content>\n <lib-data-columns [columns]=\"facade.getColumns()\" (columnsUpdated)=\"onColumnsUpdated($event)\"></lib-data-columns>\n </div>\n\n <!-- Filter -->\n <div filter-content>\n <lib-data-filter [columns]=\"facade.getColumns()\" [data]=\"(facade.items$ | async) ?? []\"\n (filterApplied)=\"onFilterApplied($event)\"></lib-data-filter>\n </div>\n\n <!-- Sort -->\n <div sort-content>\n <lib-data-sort [columns]=\"facade.getColumns()\" [data]=\"(facade.items$ | async) ?? []\"\n (sortApplied)=\"onSortApplied($event)\"></lib-data-sort>\n </div>\n\n <!-- Export -->\n <div export-content>\n <lib-data-xport [columns]=\"facade.getColumns()\" [data]=\"(facade.items$ | async) ?? []\"></lib-data-xport>\n </div>\n </verben-data-view>\n\n <!-- Table View Load More -->\n <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-end mt-4 px-4\">\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ (facade.items$ | async)?.length }} records loaded</span>\n <button class=\"load-more view-links text-[var(--vbn-color-border-focus)] underline\"\n [disabled]=\"(facade.isLoading$ | async) ?? false\" (click)=\"onLoadMore()\">Load More</button>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { UserManagementComponent } from './user-management.component';\nimport { UserStatusBadgeComponent } from './user-status-badge/user-status-badge.component';\n\n/**\n * Backward-compatibility shim. The components are standalone; this module keeps\n * the historical `LibUserManagementModule` name so existing NgModule-based\n * consumers keep working after the rebuild. It no longer depends on the\n * access-request module.\n */\n@NgModule({\n imports: [UserManagementComponent, UserStatusBadgeComponent],\n exports: [UserManagementComponent, UserStatusBadgeComponent],\n})\nexport class LibUserManagementModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i1.UserState","i2.UserService","i3","i4","i1.UserFacade"],"mappings":"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"}