@cauca-911/management 22.0.4 → 22.0.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"cauca-911-management.mjs","sources":["../../../projects/cauca-management/src/lib/provide-cauca-management.ts","../../../projects/cauca-management/src/lib/management.routes.ts","../../../projects/cauca-management/src/lib/core/api/group-management.service.ts","../../../projects/cauca-management/src/lib/components/group-list-grid/group-list-grid.component.ts","../../../projects/cauca-management/src/lib/components/group-list-grid/group-list-grid.component.html","../../../projects/cauca-management/src/lib/pages/groups-page/groups-page.component.ts","../../../projects/cauca-management/src/lib/pages/groups-page/groups-page.component.html","../../../projects/cauca-management/src/lib/core/functions/generate-group.ts","../../../projects/cauca-management/src/lib/core/states/group-edition-state.service.ts","../../../projects/cauca-management/src/lib/core/models/user-for-group.ts","../../../projects/cauca-management/src/lib/core/api/user-search.service.ts","../../../projects/cauca-management/src/lib/components/group-user-selection-dialog/group-user-selection-dialog.component.html","../../../projects/cauca-management/src/lib/components/group-user-selection-dialog/group-user-selection-dialog.component.ts","../../../projects/cauca-management/src/lib/components/group-user-edition-list/group-user-edition-list.component.html","../../../projects/cauca-management/src/lib/components/group-user-edition-list/group-user-edition-list.component.ts","../../../projects/cauca-management/src/lib/core/models/group.ts","../../../projects/cauca-management/src/lib/core/api/permission-management.service.ts","../../../projects/cauca-management/src/lib/components/group-permission-list/group-permission-list.component.html","../../../projects/cauca-management/src/lib/components/group-permission-list/group-permission-list.component.ts","../../../projects/cauca-management/src/lib/components/group-edition-form/group-edition-form.component.html","../../../projects/cauca-management/src/lib/components/group-edition-form/group-edition-form.component.ts","../../../projects/cauca-management/src/lib/pages/group-edition-page/group-edition-page.component.html","../../../projects/cauca-management/src/lib/pages/group-edition-page/group-edition-page.component.ts","../../../projects/cauca-management/src/lib/core/api/user-permission-detail.service.ts","../../../projects/cauca-management/src/lib/core/models/user-permission-detail.ts","../../../projects/cauca-management/src/lib/components/user-permission-list/user-permission-list.component.html","../../../projects/cauca-management/src/lib/components/user-permission-list/user-permission-list.component.ts","../../../projects/cauca-management/src/lib/components/user-permissions-dialog/user-permissions-dialog.component.html","../../../projects/cauca-management/src/lib/components/user-permissions-dialog/user-permissions-dialog.component.ts","../../../projects/cauca-management/src/lib/components/scope-list-grid-column/scope-list-grid-column.component.html","../../../projects/cauca-management/src/lib/components/scope-list-grid-column/scope-list-grid-column.component.ts","../../../projects/cauca-management/src/lib/components/user-list-grid/user-list-grid.component.html","../../../projects/cauca-management/src/lib/components/user-list-grid/user-list-grid.component.ts","../../../projects/cauca-management/src/lib/pages/users-page/users-page.component.ts","../../../projects/cauca-management/src/lib/pages/users-page/users-page.component.html","../../../projects/cauca-management/src/public-api.ts","../../../projects/cauca-management/src/cauca-911-management.ts"],"sourcesContent":["import { EnvironmentProviders, InjectionToken, Injector, Provider, Type } from '@angular/core';\r\nimport { RefreshablePermissionState } from '../public-api';\r\n\r\nexport const MANAGEMENT_URL_PREFIX = new InjectionToken<string>('MANAGEMENT_URL_PREFIX');\r\nexport const MANAGEMENT_ROUTE_SEGMENT = new InjectionToken<string>('MANAGEMENT_ROUTE_SEGMENT');\r\nexport const REFRESHABLE_PERMISSION_STATE_TOKEN = new InjectionToken<RefreshablePermissionState>('REFRESHABLE_PERMISSION_STATE_TOKEN');\r\n\r\nexport interface CaucaManagementConfig {\r\n managementUrlPrefix?: string | null;\r\n managementRouteSegment?: string | null;\r\n refreshablePermissionState: Type<RefreshablePermissionState>;\r\n}\r\n\r\nexport function provideCaucaManagement(config: CaucaManagementConfig): (Provider | EnvironmentProviders)[] {\r\n return [\r\n ...(config?.managementUrlPrefix != null\r\n ? [{ provide: MANAGEMENT_URL_PREFIX, useValue: config.managementUrlPrefix }]\r\n : []),\r\n ...(config?.managementRouteSegment != null\r\n ? [{ provide: MANAGEMENT_ROUTE_SEGMENT, useValue: config.managementRouteSegment }]\r\n : []),\r\n { provide: REFRESHABLE_PERMISSION_STATE_TOKEN, useFactory: (injector: Injector) => injector.get(config.refreshablePermissionState), deps: [Injector] } \r\n ];\r\n}","import { Routes } from '@angular/router';\r\nimport { pendingChangesGuard } from '@cauca-911/material';\r\n\r\nexport const managementGroupRoutes: Routes = [{\r\n path: 'groups',\r\n loadComponent: () => import('./pages/groups-page/groups-page.component').then(m => m.GroupsPageComponent),\r\n }, {\r\n path: 'groups/:id',\r\n loadComponent: () => import('./pages/group-edition-page/group-edition-page.component').then(m => m.GroupEditionPageComponent),\r\n canDeactivate: [pendingChangesGuard],\r\n }];","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { firstValueFrom } from 'rxjs';\nimport { Group } from '../models/group';\nimport { MANAGEMENT_URL_PREFIX } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GroupManagementService {\n\n private readonly client = inject(HttpClient);\n private readonly baseUrl = inject(CaucaCoreService).getConfig().apiUrl;\n private readonly urlPrefix = inject(MANAGEMENT_URL_PREFIX, { optional: true }) ?? '';\n\n public async deleteGroup(groupId: string): Promise<void> {\n await firstValueFrom(this.client.delete(this.buildApiUrl(`GroupManagement/${groupId}`)));\n }\n\n public async save(group: Group): Promise<void> {\n await firstValueFrom( this.client.post<Group>(this.buildApiUrl(`GroupManagement`), group));\n }\n\n public async get(groupId: string): Promise<Group> {\n return await firstValueFrom(this.client.get<Group>(this.buildApiUrl(`GroupManagement/${groupId}`)));\n }\n\n private buildApiUrl(path: string): string {\n const normalizedApiUrl = this.baseUrl.replace(/\\/+$/, '');\n const normalizedPrefix = this.urlPrefix.trim().replace(/^\\/+|\\/+$/g, '');\n return normalizedPrefix\n ? `${normalizedApiUrl}/${normalizedPrefix}/${path}`\n : `${normalizedApiUrl}/${path}`;\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, OnInit, ViewChild } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { MatSort } from '@angular/material/sort';\nimport { Router } from '@angular/router';\nimport ODataFilterBuilder from 'odata-filter-builder';\nimport { ODataFilter } from 'odata-data-source';\nimport { DialogService } from '@cauca-911/material';\nimport { DataGridCommandsColumnComponent, OdataGridComponent, SortableDataGridCheckColumnComponent, SortableDataGridColumnComponent } from '@cauca-911/datagrid';\nimport { GroupManagementService } from '../../core/api/group-management.service';\n\n@Component({\n selector: 'cauca-group-list-grid',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatSort, OdataGridComponent, SortableDataGridColumnComponent, SortableDataGridCheckColumnComponent, DataGridCommandsColumnComponent, TranslatePipe],\n templateUrl: './group-list-grid.component.html',\n styleUrl: './group-list-grid.component.scss'\n})\nexport class GroupListGridComponent implements OnInit {\n\n public readonly columns = computed(() => this.getColumns());\n\n @ViewChild(OdataGridComponent, { static: true }) public table!: OdataGridComponent;\n @ViewChild(MatSort, { static: true }) public sort!: MatSort;\n\n private readonly router = inject(Router);\n private readonly dialog = inject(DialogService);\n private readonly service = inject(GroupManagementService);\n\n public ngOnInit(): void {\n this.table.setUpSort(this.sort);\n }\n\n public createGroup(): void {\n this.router.navigate([this.router.url, 'new']);\n }\n\n public async deleteGroup(group: any): Promise<void> {\n if (await this.dialog.askForDeleteConfirmation(group.name, 'management.group', true)) {\n try {\n await this.service.deleteGroup(group.id);\n this.table.refreshData();\n } catch {\n await this.dialog.showDeletionError(group.name);\n }\n }\n }\n\n public filterPredicate = (filter: string): ODataFilter[] => {\n let builder = new ODataFilterBuilder();\n if (filter) {\n builder = builder.and(ODataFilterBuilder('or')\n .contains('searchableGroup', filter)\n .contains('searchableUsers', filter)\n );\n }\n return [{getFilter: () => [builder.toString()]}];\n };\n\n private getColumns(): string[] {\n const baseColumns = ['name', 'assignableByAllUsers'];\n return [...baseColumns, 'buttons'];\n }\n}\n\n","<cauca-odata-grid matSort\n [showTableOptions]=\"true\"\n class=\"groups-datagrid\"\n aria-describedby=\"Groups table\"\n resourceName=\"GroupList\"\n [showAddButton]=\"true\"\n (addButtonClick)=\"createGroup()\"\n [addButtonLabel]=\"'groups.addButtonLabel'| translate\"\n [baseSort]=\"['name']\"\n [filterPredicate]=\"filterPredicate\"\n [displayedColumns]=\"columns()\">\n\n <cauca-sortable-data-grid-column id=\"name\" prop=\"name\" [label]=\"'groups.groupNameColumnLabel'|translate\"/>\n <cauca-sortable-data-grid-check-column id=\"is-assignable-all-users\" prop=\"assignableByAllUsers\" [label]=\"'groups.assignableByAllUsersColumnLabel'|translate\" width=\"200px\" />\n <cauca-data-grid-commands-column id=\"buttons\" prop=\"buttons\" [canDelete]=\"true\" [canEdit]=\"true\" editLinkField=\"id\" (deleteClick)=\"deleteGroup($event)\" />\n\n</cauca-odata-grid>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { PageTitleComponent } from '@cauca-911/material';\nimport { GroupListGridComponent } from '../../components/group-list-grid/group-list-grid.component';\n\n@Component({\n selector: 'cauca-groups-page',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatCardModule, PageTitleComponent, GroupListGridComponent],\n templateUrl: './groups-page.component.html',\n styleUrl: './groups-page.component.scss'\n})\nexport class GroupsPageComponent {\n}\n","<cauca-page-title\n [showBreadcrumb]=\"true\"\n caption=\"menu.groups\"\n baseCrumb=\"menu.management\"\n breadcrumb=\"menu.groups\" />\n\n<mat-card class=\"page-content\">\n\n <mat-card-content class=\"page-content-grid\">\n <cauca-group-list-grid />\n </mat-card-content>\n\n</mat-card>\n","import { v4 as uuid } from 'uuid';\nimport { Group } from '../models/group';\n\nexport function generateGroup(): Group {\n return {\n id: uuid(),\n name: '',\n assignableByAllUsers: false,\n permissions: [],\n users: []\n };\n}","import { inject, Injectable } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { GroupManagementService } from '../api/group-management.service';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Group, GroupUser } from '../models/group';\nimport { generateGroup } from '../functions/generate-group';\nimport { startWith } from 'rxjs';\nimport { REFRESHABLE_PERMISSION_STATE_TOKEN } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GroupEditionStateService {\n public isEditionMode = true;\n public form = this.generateForm();\n public id: string| null = null;\n\n public readonly users = toSignal(\n this.form.get('users')!.valueChanges.pipe(startWith(this.form.get('users')!.value)),\n { initialValue: [] as GroupUser[] }\n );\n\n private readonly usersControl = this.form.get('users') as FormControl<GroupUser[]>;\n private currentGroup: Group| null = null;\n private readonly dataService = inject(GroupManagementService);\n private readonly userPermissionStateService = inject(REFRESHABLE_PERMISSION_STATE_TOKEN);\n\n public async setGroup(id: string): Promise<void> {\n if (id === 'new') {\n this.isEditionMode = false;\n this.generateNewGroup();\n } else {\n this.setCurrentGroup(await this.dataService.get(id));\n }\n }\n\n public async saveData(): Promise<boolean> {\n const data = this.getUpdatedGroup();\n if (this.form.valid) {\n this.form.disable();\n await this.dataService.save(data);\n await this.refreshCurrentUserPermissions();\n return true;\n } else {\n return false;\n }\n }\n\n public generateNewGroup(): void {\n this.currentGroup = generateGroup();\n this.setCurrentGroup(this.currentGroup);\n this.form.markAsPristine();\n }\n\n public setCurrentGroup(group: Group): void {\n this.id = group.id;\n this.currentGroup = group;\n if (!this.isEditionMode) {\n this.form.get('name')!.setValidators(Validators.required);\n }\n this.form.patchValue(group);\n this.form.get('users')!.setValue(group.users || []);\n this.form.get('permissions')!.setValue(group.permissions || []);\n this.form.markAsPristine();\n }\n\n public getUpdatedGroup(): Group {\n const formValues = this.form.value;\n return {\n ...this.currentGroup,\n ...formValues,\n };\n }\n\n public isDirty(): boolean {\n return this.form.dirty;\n }\n\n public isValid(): boolean {\n this.form.updateValueAndValidity();\n return this.form.valid;\n }\n\n public showErrors(): void {\n this.form.markAllAsTouched();\n }\n\n public addUsers(users: GroupUser[]): void {\n const current = this.usersControl.value ?? [];\n const existingIds = new Set(current.map(u => u.id));\n const newUsers = users.filter(u => !existingIds.has(u.id));\n this.usersControl.setValue([...current, ...newUsers]);\n this.form.markAsDirty();\n }\n\n public removeUser(userId: string): void {\n const current = this.usersControl.value ?? [];\n this.usersControl.setValue(current.filter(u => u.id !== userId));\n this.form.markAsDirty();\n }\n\n private async refreshCurrentUserPermissions() {\n try {\n await this.userPermissionStateService.refresh();\n } catch (error) {\n console.error('Error refreshing user permissions after group save', error);\n }\n }\n\n private generateForm(): FormGroup {\n const formGroup = new FormGroup({\n name: new FormControl('', [Validators.required]),\n assignableByAllUsers: new FormControl(false),\n users: new FormControl([]),\n permissions: new FormControl([])\n });\n return formGroup;\n }\n}\n","export interface UserForGroupData {\r\n id: string;\r\n firstName: string;\r\n lastName: string;\r\n additionalInformation: string|undefined;\r\n}\r\n\r\nexport class UserForGroup {\r\n public id: string;\r\n public firstName: string;\r\n public lastName: string;\r\n public fullName: string;\r\n public additionalInformation: string|undefined;\r\n\r\n public constructor(data: UserForGroupData) {\r\n this.id = data.id;\r\n this.firstName = data.firstName;\r\n this.lastName = data.lastName;\r\n this.fullName = `${data.firstName} ${data.lastName}`;\r\n this.additionalInformation = data.additionalInformation;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { firstValueFrom } from 'rxjs';\nimport { UserForGroup, UserForGroupData } from '../models/user-for-group';\nimport { MANAGEMENT_URL_PREFIX } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserSearchService {\n\n private readonly client = inject(HttpClient);\n private readonly baseUrl = inject(CaucaCoreService).getConfig().apiUrl;\n private readonly urlPrefix = inject(MANAGEMENT_URL_PREFIX, { optional: true }) ?? '';\n\n public async search(\n query: string,\n excludedUserIds: string[],\n skip: number,\n top: number\n ): Promise<{ items: UserForGroup[]; totalCount: number }> {\n const url = this.buildApiUrl('UserSearch');\n const body: { query: string; skip: number; top: number; excludedUserIds: string[] } = {\n query,\n skip,\n top,\n excludedUserIds\n };\n const response = await firstValueFrom(\n this.client.post<{ items: UserForGroupData[]; totalCount: number }>(url, body)\n );\n return {\n items: response.items.map(u => new UserForGroup(u)),\n totalCount: response.totalCount\n };\n }\n\n private buildApiUrl(path: string): string {\n const normalizedApiUrl = this.baseUrl.replace(/\\/+$/, '');\n const normalizedPrefix = this.urlPrefix.trim().replace(/^\\/+|\\/+$/g, '');\n return normalizedPrefix\n ? `${normalizedApiUrl}/${normalizedPrefix}/${path}`\n : `${normalizedApiUrl}/${path}`;\n }\n}\n","<div mat-dialog-title>\n <div class=\"h6\">{{ 'groupEdition.userSelectionTitle' | translate }}</div>\n <cauca-icon-button id=\"closeButton\" (buttonClick)=\"closeClick()\" icon=\"close\" />\n</div>\n\n<mat-dialog-content class=\"dialog-content\">\n <mat-form-field subscriptSizing=\"dynamic\" class=\"search-field\">\n <mat-label>{{ 'groupEdition.searchUserPlaceholder' | translate }}</mat-label>\n <input matInput type=\"text\" [value]=\"searchTerm()\" (input)=\"searchTerm.set($any($event.target).value)\" />\n <mat-icon matSuffix>search</mat-icon>\n </mat-form-field>\n\n @if (searchTerm().length >= 0 && searchTerm().length < MIN_SEARCH_LENGTH) {\n <div class=\"search-hint body2\">{{ 'groupEdition.searchMinChars' | translate }}</div>\n }\n\n <div class=\"results-region\">\n <cauca-loading-error (retryRequest)=\"searchResource.reload()\" />\n\n @if (searchResource.isLoading() && !results().length) {\n <cauca-loading-spinner-indicator />\n } @else if (results().length) {\n <mat-selection-list class=\"results-list\" [compareWith]=\"compareUserById\" (selectionChange)=\"onSelectionChange($event)\">\n @for (user of results(); track user.id; let i = $index) {\n <mat-list-option\n [value]=\"user\"\n [selected]=\"selectedUserIds().has(user.id)\"\n color=\"primary\"\n class=\"result-item\"\n [class.result-item--even]=\"i % 2 === 1\">\n <span matListItemTitle>{{ user.fullName }}</span>\n @if (user.additionalInformation) {\n <span matListItemSubtitle>{{ user.additionalInformation }}</span>\n }\n </mat-list-option>\n }\n </mat-selection-list>\n\n @if (totalCount() > PAGE_SIZE) {\n <cauca-list-paginator\n #resultPaginator\n [itemsCount]=\"totalCount()\"\n [pageSize]=\"PAGE_SIZE\"\n (pageChange)=\"onPageChange($event)\" />\n }\n } @else if (!searchResource.isLoading() && totalCount() === 0 && debouncedSearch().length >= MIN_SEARCH_LENGTH) {\n <div class=\"no-results body2\">{{ 'noResult' | translate }}</div>\n }\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"dialog-actions\">\n <div class=\"selected-users-panel\">\n <span class=\"selected-users-label caption\">{{ 'groupEdition.selectedUsersLabel' | translate }}</span>\n <div class=\"selected-users-names body2\" [matTooltip]=\"selectedUsersLabel()\">{{ selectedUsersLabel() }}</div>\n </div>\n <cauca-stroked-button color=\"primary\" label=\"cancel\" (buttonClick)=\"cancel()\" />\n <cauca-raised-button\n color=\"primary\"\n label=\"ok\"\n [isDisabled]=\"selectedUsers().length === 0\"\n (buttonClick)=\"confirm()\" />\n</mat-dialog-actions>\n","import { ChangeDetectionStrategy, Component, computed, effect, inject, resource, signal, untracked, viewChild } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule, MatSelectionListChange } from '@angular/material/list';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { debounceTime } from 'rxjs';\nimport { LoadingSpinnerIndicatorComponent, LoadingErrorComponent, StrokedButtonComponent, RaisedButtonComponent, LoadingStateService, ListPaginatorComponent, IconButtonComponent } from '@cauca-911/material';\nimport { toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\nimport { UserSearchService } from '../../core/api/user-search.service';\nimport { UserForGroup } from '../../core/models/user-for-group';\nimport { GroupUser } from '../../core/models/group';\n\nexport interface GroupUserSelectionDialogData {\n currentUserIds: string[];\n}\n\n@Component({\n selector: 'cauca-group-user-selection-dialog',\n standalone: true,\n imports: [\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n MatListModule,\n FormsModule,\n TranslatePipe,\n LoadingSpinnerIndicatorComponent,\n LoadingErrorComponent,\n StrokedButtonComponent,\n RaisedButtonComponent,\n ListPaginatorComponent,\n MatTooltipModule,\n IconButtonComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [UserSearchService, LoadingStateService],\n templateUrl: './group-user-selection-dialog.component.html',\n styleUrl: './group-user-selection-dialog.component.scss'\n})\nexport class GroupUserSelectionDialogComponent {\n protected readonly MIN_SEARCH_LENGTH = 3;\n protected readonly PAGE_SIZE = 10;\n protected readonly data = inject<GroupUserSelectionDialogData>(MAT_DIALOG_DATA);\n protected readonly searchTerm = signal('');\n protected readonly selectedUsers = signal<GroupUser[]>([]);\n protected readonly currentPage = signal(1);\n protected readonly paginator = viewChild<ListPaginatorComponent>('resultPaginator');\n\n protected readonly selectedUserIds = computed(() => new Set(this.selectedUsers().map(u => u.id)));\n\n protected readonly selectedUsersLabel = computed(() =>\n [...this.selectedUsers()]\n .sort((a, b) => toLowerCaseAndWithoutDiacritics(a.fullName).localeCompare(toLowerCaseAndWithoutDiacritics(b.fullName)))\n .map(u => u.fullName)\n .join(', ')\n );\n\n protected readonly debouncedSearch = toSignal(\n toObservable(this.searchTerm).pipe(debounceTime(300)),\n { initialValue: '' }\n );\n\n protected readonly searchResource = resource({\n params: computed(() => ({ query: this.debouncedSearch(), page: this.currentPage() })),\n loader: ({ params }) => {\n if (params.query.length < this.MIN_SEARCH_LENGTH) {\n return Promise.resolve({ items: [], totalCount: 0 });\n }\n const skip = (params.page - 1) * this.PAGE_SIZE;\n return this.userSearchService.search(params.query, this.data.currentUserIds, skip, this.PAGE_SIZE);\n }\n });\n\n protected readonly results = computed(() => this.lastResult().items);\n protected readonly totalCount = computed(() => this.lastResult().totalCount);\n\n private readonly lastResult = signal<{ items: UserForGroup[]; totalCount: number }>({ items: [], totalCount: 0 });\n private readonly dialogRef = inject(MatDialogRef<GroupUserSelectionDialogComponent>);\n private readonly userSearchService = inject(UserSearchService);\n\n public constructor() {\n effect(() => {\n const value = this.searchResource.value();\n if (value) {\n untracked(() => this.lastResult.set(value));\n }\n });\n\n effect(() => {\n this.debouncedSearch();\n untracked(() => {\n this.currentPage.set(1);\n this.paginator()?.moveToFirst();\n this.lastResult.set({ items: [], totalCount: 0 });\n });\n });\n }\n\n public closeClick(): void {\n this.dialogRef.close();\n }\n\n public toggleUser(user: UserForGroup): void {\n const groupUser: GroupUser = { id: user.id, fullName: user.fullName, additionalInformation: user.additionalInformation };\n if (this.selectedUserIds().has(user.id)) {\n this.selectedUsers.update(current => current.filter(u => u.id !== user.id));\n } else {\n this.selectedUsers.update(current => [...current, groupUser]);\n }\n }\n\n public onPageChange(page: number): void {\n this.currentPage.set(page);\n }\n\n public onSelectionChange(event: MatSelectionListChange): void {\n for (const option of event.options) {\n this.toggleUser(option.value as UserForGroup);\n }\n }\n\n public cancel(): void {\n this.dialogRef.close();\n }\n\n public confirm(): void {\n this.dialogRef.close(this.selectedUsers());\n }\n\n protected readonly compareUserById = (a: UserForGroup, b: UserForGroup): boolean => a?.id === b?.id;\n}\n","<div class=\"user-edition-list\">\n\n <mat-form-field subscriptSizing=\"dynamic\" class=\"filter-field\">\n <mat-label>{{ 'groupEdition.filterUsersPlaceholder' | translate }}</mat-label>\n <input matInput type=\"text\" [value]=\"filterTerm()\" (input)=\"filterTerm.set($any($event.target).value)\" />\n <mat-icon matSuffix>search</mat-icon>\n </mat-form-field>\n\n <mat-list class=\"users-list\">\n @for (user of pagedUsers(); track user.id) {\n <mat-list-item class=\"user-item\">\n <mat-icon matListItemIcon>person</mat-icon>\n <div matListItemTitle class=\"user-name\">{{ user.fullName }}</div>\n @if (user.additionalInformation) {\n <div matListItemLine class=\"user-additional-information\">{{ user.additionalInformation }}</div>\n }\n <cauca-icon-button\n matListItemMeta\n class=\"delete-button\"\n icon=\"delete\"\n color=\"error\"\n (buttonClick)=\"removeUser(user)\"\n [attr.aria-label]=\"'groupEdition.removeUserLabel' | translate\" />\n </mat-list-item>\n } @empty {\n @if (filterTerm()) {\n <div class=\"no-users body2\">{{ 'groupEdition.noFilteredUsers' | translate }}</div>\n } @else {\n <div class=\"no-users body2\">{{ 'groupEdition.noUsers' | translate }}</div>\n }\n }\n </mat-list>\n\n @if (filteredUsers().length > PAGE_SIZE) {\n <cauca-list-paginator\n #paginator\n [itemsCount]=\"filteredUsers().length\"\n [pageSize]=\"PAGE_SIZE\"\n (pageChange)=\"onPageChange($event)\" />\n }\n\n <cauca-raised-button\n class=\"add-users-button\"\n color=\"primary\"\n label=\"groupEdition.addUsersButton\"\n (buttonClick)=\"openAddUsersDialog()\" />\n</div>\n","import { ChangeDetectionStrategy, Component, computed, effect, inject, signal, untracked, viewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { DialogService, IconButtonComponent, ListPaginatorComponent, RaisedButtonComponent } from '@cauca-911/material';\nimport { toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\nimport { GroupEditionStateService } from '../../core/states/group-edition-state.service';\nimport { GroupUser } from '../../core/models/group';\nimport { GroupUserSelectionDialogComponent, GroupUserSelectionDialogData } from '../group-user-selection-dialog/group-user-selection-dialog.component';\nimport { MatListModule } from '@angular/material/list';\n\n@Component({\n selector: 'cauca-group-user-edition-list',\n standalone: true,\n imports: [TranslatePipe, IconButtonComponent, RaisedButtonComponent, ListPaginatorComponent, MatFormFieldModule, MatInputModule, MatIconModule, FormsModule, MatListModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DialogService],\n templateUrl: './group-user-edition-list.component.html',\n styleUrl: './group-user-edition-list.component.scss'\n})\nexport class GroupUserEditionListComponent {\n protected readonly PAGE_SIZE = 10;\n protected readonly currentPage = signal(1);\n protected readonly filterTerm = signal('');\n protected readonly paginator = viewChild<ListPaginatorComponent>('paginator');\n\n protected readonly sortedUsers = computed(() =>\n [...this.state.users()].sort((a, b) =>\n toLowerCaseAndWithoutDiacritics(a.fullName).localeCompare(toLowerCaseAndWithoutDiacritics(b.fullName))\n )\n );\n\n protected readonly filteredUsers = computed(() => {\n const term = toLowerCaseAndWithoutDiacritics(this.filterTerm());\n if (!term) return this.sortedUsers();\n return this.sortedUsers().filter(u => toLowerCaseAndWithoutDiacritics(u.fullName).includes(term));\n });\n\n protected readonly pagedUsers = computed(() => {\n const start = (this.currentPage() - 1) * this.PAGE_SIZE;\n return this.filteredUsers().slice(start, start + this.PAGE_SIZE);\n });\n\n private readonly state = inject(GroupEditionStateService);\n private readonly dialogService = inject(DialogService);\n private readonly dialog = inject(MatDialog);\n\n public constructor() {\n effect(() => {\n this.filterTerm();\n untracked(() => {\n this.currentPage.set(1);\n this.paginator()?.moveToFirst();\n });\n });\n }\n\n public async removeUser(user: GroupUser): Promise<void> {\n const confirmed = await this.dialogService.askForDeleteConfirmation(\n user.fullName,\n 'groupEdition.userEntityName',\n true\n );\n if (confirmed) {\n this.state.removeUser(user.id);\n this.clampCurrentPage();\n }\n }\n\n public onPageChange(page: number): void {\n this.currentPage.set(page);\n }\n\n public openAddUsersDialog(): void {\n const currentUserIds = this.state.users().map((u: GroupUser) => u.id);\n const dialogData: GroupUserSelectionDialogData = { currentUserIds };\n\n this.dialog.open(GroupUserSelectionDialogComponent, {\n width: '600px',\n maxHeight: '80vh',\n autoFocus: false,\n data: dialogData\n }).afterClosed().subscribe((selectedUsers: GroupUser[] | undefined) => {\n if (selectedUsers?.length) {\n this.state.addUsers(selectedUsers);\n this.paginator()?.moveToFirst();\n this.currentPage.set(1);\n }\n });\n }\n\n private clampCurrentPage(): void {\n const total = untracked(this.filteredUsers).length;\n const maxPage = Math.ceil(total / this.PAGE_SIZE) || 1;\n if (untracked(this.currentPage) > maxPage) {\n this.currentPage.set(1);\n this.paginator()?.moveToFirst();\n }\n }\n}\n","import { Permission } from \"./permission\";\nimport { v4 as uuid } from 'uuid';\n\nexport interface Group {\n id: string;\n name: string;\n assignableByAllUsers: boolean;\n permissions: GroupPermission[];\n users: GroupUser[];\n}\n\nexport interface GroupUser {\n id: string;\n fullName: string;\n additionalInformation?: string|undefined;\n}\n\nexport interface GroupPermission {\n idModulePermission: string;\n isAllowed: boolean;\n idGroup: string;\n id: string;\n}\n\nexport class PermissionValue {\n public id: string;\n public name: string;\n public allowed: boolean|null;\n\n private permission: Permission;\n private groupPermission: GroupPermission|null|undefined;\n\n public constructor(permission: Permission, groupPermission: GroupPermission|null|undefined) {\n this.id = permission.id;\n this.permission = permission;\n this.groupPermission = groupPermission;\n this.name = permission.name;\n this.allowed = groupPermission?.isAllowed ?? null;\n }\n\n public toGroupPermission(idGroup: string): GroupPermission|null {\n if (this.allowed === null) {\n return null;\n } else if (this.groupPermission) {\n return { ...this.groupPermission, isAllowed: this.allowed };\n } else {\n return { id: uuid(), idGroup, idModulePermission: this.permission.id, isAllowed: this.allowed };\n }\n }\n}","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { firstValueFrom } from 'rxjs';\nimport { Permission } from '../models/permission';\nimport { MANAGEMENT_URL_PREFIX } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionManagementService {\n\n private readonly client = inject(HttpClient);\n private readonly baseUrl = this.buildBaseUrl(\n inject(CaucaCoreService).getConfig().apiUrl, \n inject(MANAGEMENT_URL_PREFIX, { optional: true }));\n\n public async get(): Promise<Permission[]> {\n return await firstValueFrom(this.client.get<Permission[]>(this.buildApiUrl(`PermissionManagement`)));\n }\n\n private buildBaseUrl(apiUrl: string, urlPrefix: string | null): string {\n const normalizedApiUrl = apiUrl.replace(/\\/+$/, '');\n const normalizedPrefix = urlPrefix?.trim().replace(/^\\/+|\\/+$/g, '');\n return normalizedPrefix\n ? `${normalizedApiUrl}/${normalizedPrefix}`\n : normalizedApiUrl;\n }\n\n private buildApiUrl(path: string): string {\n const normalizedApiUrl = this.baseUrl.replace(/\\/+$/, '');\n return `${normalizedApiUrl}/${path}`;\n }\n}\n","<mat-form-field subscriptSizing=\"dynamic\" appearance=\"outline\" class=\"full-width-field grid-search-box\">\n <mat-label>{{ 'dataGrid.keywordsLabel' | translate }}</mat-label>\n <input matInput [(ngModel)]=\"searchText\">\n <mat-icon matSuffix>search</mat-icon>\n</mat-form-field>\n\n<mat-selection-list id=\"permission-list\">\n @for (permission of filteredPermissionsValues(); track permission.id) {\n <mat-list-item class=\"permission-item\">\n <mat-checkbox\n [color]=\"permission.allowed === null ? undefined : 'primary'\"\n [indeterminate]=\"permission.allowed === null\"\n [checked]=\"permission.allowed\"\n (click)=\"onValueChange(permission)\" >\n {{permission.name}}\n </mat-checkbox>\n </mat-list-item>\n } @empty {\n <div class=\"no-result\">\n <mat-icon class=\"no-result-icon\">grid_off</mat-icon>\n <div class=\"no-result-text body2\">{{ 'noResult' | translate }}</div>\n </div>\n }\n\n</mat-selection-list>\n","import { ChangeDetectionStrategy, Component, computed, inject, model, OnInit, signal } from '@angular/core';\nimport { MatListModule } from '@angular/material/list';\nimport { MatFormField, MatLabel, MatSuffix } from '@angular/material/form-field';\nimport { MatInput } from '@angular/material/input';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatIcon } from '@angular/material/icon';\nimport { PermissionValue, GroupPermission } from '../../core/models/group';\nimport { Permission } from '../../core/models/permission';\nimport { GroupEditionStateService } from '../../core/states/group-edition-state.service';\nimport { PermissionManagementService } from '../../core/api/permission-management.service';\nimport { toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\n@Component({\n selector: 'cauca-group-permission-list',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatListModule, MatFormField, MatLabel, MatInput, MatSuffix, TranslatePipe, FormsModule, MatIcon, MatCheckboxModule],\n templateUrl: './group-permission-list.component.html',\n styleUrl: './group-permission-list.component.scss',\n})\nexport class GroupPermissionListComponent implements OnInit {\n\n public searchText = model<string>('');\n public currentPermissions = signal<PermissionValue[]>([]);\n public filteredPermissionsValues = computed(() =>\n this.currentPermissions()?.filter((permission) => toLowerCaseAndWithoutDiacritics(permission.name)\n .includes(toLowerCaseAndWithoutDiacritics(this.searchText()))) || []);\n\n private readonly service = inject(PermissionManagementService);\n private readonly state = inject(GroupEditionStateService);\n private modulePermissions!: Permission[];\n\n public async ngOnInit(): Promise<void> {\n await this.loadData();\n }\n\n public onValueChange(value: PermissionValue): void {\n if (value.allowed === null) {\n value.allowed = true;\n } else if (value.allowed) {\n value.allowed = false;\n } else {\n value.allowed = null;\n }\n this.state.form.get('permissions')!.setValue(this.toGroupPermissions(this.state.id!));\n }\n\n private async loadData(): Promise<void> {\n try {\n this.modulePermissions = await this.service.get();\n const values = this.modulePermissions\n .map((permission) => new PermissionValue(permission, this.getPermissions().find((groupPermission) => groupPermission.idModulePermission === permission.id)));\n this.currentPermissions.set(values);\n } catch {\n this.modulePermissions = [];\n }\n }\n\n private toGroupPermissions(idGroup: string): GroupPermission[] {\n return this.currentPermissions().map((permissionValue) => permissionValue.toGroupPermission(idGroup))\n .filter((groupPermission) => groupPermission !== null) as GroupPermission[];\n }\n\n private getPermissions(): GroupPermission[] {\n return this.state.form.get('permissions')!.value;\n }\n\n}\n","<div [formGroup]=\"state.form\">\n\n <cauca-group-container id=\"group-options\" caption=\"groupEdition.groupNameFieldLabel\">\n <mat-form-field id=\"group-name\">\n <mat-label>{{ 'groupEdition.nameFieldLabel' | translate }}</mat-label>\n <input matInput type=\"text\" formControlName=\"name\" required>\n @if (state.form.get(\"name\").hasError('required')) {<mat-error>{{'error.requiredField' | translate}}</mat-error>}\n </mat-form-field>\n <mat-slide-toggle id=\"assignable-by-all-users\" formControlName=\"assignableByAllUsers\" color=\"primary\">{{'groupEdition.assignableByAllUsersLabel' | translate}}</mat-slide-toggle>\n </cauca-group-container>\n\n <mat-divider />\n\n <cauca-group-container id=\"group-users\" caption=\"groupEdition.groupUsersFieldLabel\">\n <cauca-group-user-edition-list />\n </cauca-group-container>\n\n <mat-divider />\n\n <cauca-group-container id=\"group-permissions\" caption=\"groupEdition.groupPermissionsFieldLabel\">\n <cauca-group-permission-list />\n </cauca-group-container>\n\n</div>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatInputModule } from '@angular/material/input';\nimport { GroupUserEditionListComponent } from '../group-user-edition-list/group-user-edition-list.component';\nimport { GroupPermissionListComponent } from '../group-permission-list/group-permission-list.component';\nimport { GroupContainerComponent } from '@cauca-911/material';\nimport { GroupEditionStateService } from '../../core/states/group-edition-state.service';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'cauca-group-edition-form',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TranslatePipe, MatFormFieldModule, MatInputModule, MatSlideToggleModule, MatDividerModule, ReactiveFormsModule, GroupContainerComponent, GroupUserEditionListComponent, GroupPermissionListComponent],\n templateUrl: './group-edition-form.component.html',\n styleUrl: './group-edition-form.component.scss'\n})\nexport class GroupEditionFormComponent {\n public readonly state = inject(GroupEditionStateService);\n}\n","<cauca-page-title\n [caption]=\"title()\"\n baseCrumb=\"menu.management\"\n [breadcrumb]=\"title()\"\n [location]=\"currentLocation()\"\n [showBreadcrumb]=\"true\" />\n\n<mat-card>\n\n <mat-card-content>\n\n <cauca-loading-spinner-indicator />\n <cauca-loading-error (retryRequest)=\"loadData()\" />\n\n @if (isLoaded()) {\n <cauca-group-edition-form />\n }\n\n @if (showSavingError()) {\n <div class=\"spacer\"></div>\n <cauca-saving-error-box [show]=\"showSavingError()\" />\n }\n\n </mat-card-content>\n\n <mat-card-actions>\n <div class=\"spacer\"></div>\n <cauca-stroked-button class=\"cancel-button\" color=\"primary\" label=\"cancel\" [isDisabled]=\"isSaving()\" (buttonClick)=\"cancel()\" />\n <cauca-raised-button class=\"save-button\" color=\"primary\" label=\"save\" [isInProgress]=\"isSaving()\" (buttonClick)=\"save()\" />\n </mat-card-actions>\n\n</mat-card>\n","import { ChangeDetectionStrategy, Component, computed, HostListener, inject, input, OnInit, signal } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { Router } from '@angular/router';\nimport { PageTitleComponent, LoadingSpinnerIndicatorComponent, LoadingErrorComponent, SavingErrorBoxComponent, StrokedButtonComponent, RaisedButtonComponent, LoadingStateService, DialogService, ConfirmationResult, OnDeactivate } from '@cauca-911/material';\nimport { GroupEditionFormComponent } from '../../components/group-edition-form/group-edition-form.component';\nimport { GroupManagementService } from '../../core/api/group-management.service';\nimport { GroupEditionStateService } from '../../core/states/group-edition-state.service';\nimport { MANAGEMENT_ROUTE_SEGMENT } from '../../provide-cauca-management';\n\n@Component({\n selector: 'cauca-group-edition-page',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [PageTitleComponent, MatCardModule, LoadingSpinnerIndicatorComponent, LoadingErrorComponent, SavingErrorBoxComponent, StrokedButtonComponent, RaisedButtonComponent, GroupEditionFormComponent],\n templateUrl: './group-edition-page.component.html',\n styleUrl: './group-edition-page.component.scss',\n providers: [\n GroupEditionStateService,\n LoadingStateService,\n GroupManagementService,\n ]\n})\nexport class GroupEditionPageComponent implements OnInit, OnDeactivate {\n\n public readonly id = input.required<string>();\n public readonly isLoaded = signal<boolean>(false);\n public readonly isSaving = signal<boolean>(false);\n public readonly showSavingError = signal(false);\n public readonly title = computed(() => 'groupEdition.' + (this.id() === 'new' ? 'newGroupTitle' : 'editGroupTitle'));\n public readonly currentLocation = computed(() => [{ link: this.groupsPath, title: 'menu.groups' }]);\n\n private readonly state = inject(GroupEditionStateService);\n private readonly dialog = inject(DialogService);\n private readonly router = inject(Router);\n private readonly managementRouteSegment = inject(MANAGEMENT_ROUTE_SEGMENT, { optional: true });\n private readonly groupsPath = this.buildGroupsPath();\n private isClosing = false;\n\n public ngOnInit(): void {\n this.loadData();\n }\n\n public async canDeactivate(): Promise<boolean> {\n return await this.canCancel();\n }\n\n public async cancel(): Promise<void> {\n if (await this.canCancel()) {\n this.isClosing = true;\n await this.router.navigate([this.groupsPath]);\n }\n }\n\n public async save(): Promise<void> {\n try {\n await this.tryToSave();\n } catch {\n this.showSavingError.set(true);\n } finally {\n this.resetSavingState();\n }\n }\n\n public async loadData(): Promise<void> {\n try {\n await this.state.setGroup(this.id());\n this.isLoaded.set(true);\n } catch (e) {\n console.error(e);\n this.isLoaded.set(false);\n }\n }\n\n @HostListener('window:beforeunload', ['$event'])\n protected async onBeforeUnload(e: BeforeUnloadEvent): Promise<void> {\n if (await this.canCancel()) {\n e.preventDefault();\n }\n }\n\n private async tryToSave(): Promise<void> {\n this.initializeSavingState();\n if (await this.state.saveData()) {\n this.isClosing = true;\n this.router.navigate([this.groupsPath]);\n } else {\n this.showValidationError();\n }\n }\n\n private buildGroupsPath(): string {\n const defaultRouteSegment = 'management';\n const rawRouteSegment = this.managementRouteSegment?.trim();\n\n if (rawRouteSegment == null || rawRouteSegment === '') {\n return `/${defaultRouteSegment}/groups`;\n }\n\n const normalizedRouteSegment = rawRouteSegment\n .split('/')\n .map(segment => segment.trim())\n .find(segment => segment !== '') ?? defaultRouteSegment;\n\n return `/${normalizedRouteSegment}/groups`;\n }\n\n private async canCancel(): Promise<boolean> {\n return this.isClosing || !this.state.isDirty() || await this.askForCancelConfirmation() === ConfirmationResult.Yes;\n }\n\n private initializeSavingState(): void {\n this.isSaving.set(true);\n this.showSavingError.set(false);\n }\n\n private resetSavingState(): void {\n this.isSaving.set(false);\n this.state.form.enable();\n }\n\n private async askForCancelConfirmation(): Promise<ConfirmationResult> {\n return await this.dialog.askForConfirmation('cancelEditionDialog.title', 'cancelEditionDialog.message');\n }\n\n private showValidationError(): void {\n this.state.form.markAllAsTouched();\n this.dialog.showDialog('validationErrorDialog.title', 'validationErrorDialog.messageNext');\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { LoadingStateService } from '@cauca-911/material';\nimport { Observable } from 'rxjs';\nimport { UserPermissionDetail } from '../models/user-permission-detail';\nimport { MANAGEMENT_URL_PREFIX } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserPermissionDetailService {\n\n private readonly client = inject(HttpClient);\n private readonly loadingState = inject(LoadingStateService, { optional: true });\n private readonly baseUrl = this.buildBaseUrl(\n inject(CaucaCoreService).getConfig().apiUrl,\n inject(MANAGEMENT_URL_PREFIX, { optional: true }));\n\n public getForUser(userId: string): Observable<UserPermissionDetail[]> {\n const request$ = this.client.get<UserPermissionDetail[]>(this.buildApiUrl(`UserPermissionDetails/user/${userId}`));\n return this.loadingState ? this.loadingState.withLoadingIndicator(request$) : request$;\n }\n\n private buildBaseUrl(apiUrl: string, urlPrefix: string | null): string {\n const normalizedApiUrl = apiUrl.replace(/\\/+$/, '');\n const normalizedPrefix = urlPrefix?.trim().replace(/^\\/+|\\/+$/g, '');\n return normalizedPrefix\n ? `${normalizedApiUrl}/${normalizedPrefix}`\n : normalizedApiUrl;\n }\n\n private buildApiUrl(path: string): string {\n const normalizedApiUrl = this.baseUrl.replace(/\\/+$/, '');\n return `${normalizedApiUrl}/${path}`;\n }\n}\n","export enum PermissionStatus {\n Undefined = 0,\n Allowed = 1,\n Denied = 2\n}\n\nexport enum UserPermissionOriginKind {\n Group = 0,\n UserOverride = 1\n}\n\nexport interface UserPermissionOrigin {\n kind: UserPermissionOriginKind;\n groupId: string | null;\n groupName: string | null;\n isAllowed: boolean;\n}\n\nexport interface UserPermissionDetail {\n idModulePermission: string;\n tag: string;\n name: string;\n status: PermissionStatus;\n origins: UserPermissionOrigin[];\n}\n","<mat-form-field subscriptSizing=\"dynamic\" appearance=\"outline\" class=\"search-field\">\n <mat-label>{{ 'dataGrid.keywordsLabel' | translate }}</mat-label>\n <input matInput type=\"text\" [value]=\"searchText()\" (input)=\"searchText.set($any($event.target).value)\">\n <mat-icon matSuffix>search</mat-icon>\n</mat-form-field>\n\n<mat-list id=\"permission-list\">\n @for (permission of filteredPermissions(); track permission.idModulePermission) {\n <mat-list-item class=\"permission-item\">\n\n <mat-icon matListItemIcon\n [class.allowed]=\"permission.status === PermissionStatus.Allowed\"\n [class.denied]=\"permission.status !== PermissionStatus.Allowed\">\n @if (permission.status === PermissionStatus.Allowed) {\n check\n } @else {\n block\n }\n </mat-icon>\n\n <div matListItemTitle>{{ permission.name }}</div>\n\n <cauca-icon-button\n matListItemMeta\n icon=\"info\"\n [matMenuTriggerFor]=\"originsMenu\" />\n\n <mat-menu #originsMenu=\"matMenu\">\n <div class=\"origins-menu-content\" (click)=\"$event.stopPropagation()\">\n <div class=\"origin-item body2\">{{ 'userPermissionDetails.originsLabel' | translate }}</div>\n @for (origin of permission.origins; track $index) {\n <div class=\"origin-item\">\n <mat-icon [class.allowed]=\"origin.isAllowed\" [class.denied]=\"!origin.isAllowed\">\n @if (origin.isAllowed) {\n check\n } @else {\n block\n }\n </mat-icon>\n <span class=\"origin-name body1\">\n {{ origin.kind === UserPermissionOriginKind.UserOverride\n ? ('userPermissionDetails.userOverrideOrigin' | translate)\n : origin.groupName }}\n </span>\n </div>\n } @empty {\n <div class=\"origin-item\">\n <span class=\"no-origins\">{{ 'userPermissionDetails.noOrigins' | translate }}</span>\n </div>\n }\n </div>\n </mat-menu>\n\n </mat-list-item>\n } @empty {\n <div class=\"no-result\">\n <mat-icon class=\"no-result-icon\">grid_off</mat-icon>\n <div class=\"no-result-text body2\">{{ 'noResult' | translate }}</div>\n </div>\n }\n</mat-list>\n","import { ChangeDetectionStrategy, Component, computed, input, signal } from '@angular/core';\nimport { MatListModule } from '@angular/material/list';\nimport { MatFormField, MatLabel, MatSuffix } from '@angular/material/form-field';\nimport { MatInput } from '@angular/material/input';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { IconButtonComponent } from '@cauca-911/material';\nimport { toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\nimport { PermissionStatus, UserPermissionDetail, UserPermissionOriginKind } from '../../core/models/user-permission-detail';\n\n@Component({\n selector: 'cauca-user-permission-list',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatListModule, MatFormField, MatLabel, MatInput, MatSuffix, MatIcon, MatMenuModule, TranslatePipe, IconButtonComponent],\n templateUrl: './user-permission-list.component.html',\n styleUrl: './user-permission-list.component.scss',\n})\nexport class UserPermissionListComponent {\n\n public readonly permissions = input.required<UserPermissionDetail[]>();\n public readonly PermissionStatus = PermissionStatus;\n public readonly UserPermissionOriginKind = UserPermissionOriginKind;\n\n public readonly searchText = signal<string>('');\n\n public readonly filteredPermissions = computed(() =>\n this.permissions().filter((permission) => toLowerCaseAndWithoutDiacritics(permission.name)\n .includes(toLowerCaseAndWithoutDiacritics(this.searchText()))));\n}\n","<div mat-dialog-title>\n <div class=\"title-block\">\n <div class=\"h6\">{{ 'userPermissionDetails.title' | translate }}</div>\n @if (data.userDisplayName) {\n <div class=\"subtitle body2\">{{ data.userDisplayName }}</div>\n }\n </div>\n</div>\n\n<mat-dialog-content class=\"dialog-content\">\n <cauca-loading-spinner-indicator />\n <cauca-loading-error (retryRequest)=\"permissionsResource.reload()\" />\n\n <cauca-user-permission-list [permissions]=\"permissions()\" />\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\">\n <cauca-raised-button color=\"primary\" label=\"close\" (buttonClick)=\"closeDialog()\" />\n</mat-dialog-actions>\n","import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { rxResource } from '@angular/core/rxjs-interop';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { LoadingErrorComponent, LoadingSpinnerIndicatorComponent, LoadingStateService, RaisedButtonComponent } from '@cauca-911/material';\nimport { UserPermissionDetailService } from '../../core/api/user-permission-detail.service';\nimport { UserPermissionDetail } from '../../core/models/user-permission-detail';\nimport { UserPermissionListComponent } from '../user-permission-list/user-permission-list.component';\n\nexport interface UserPermissionsDialogData {\n userId: string;\n userDisplayName?: string;\n}\n\n@Component({\n selector: 'cauca-user-permissions-dialog',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatDialogModule,\n TranslatePipe,\n LoadingSpinnerIndicatorComponent,\n LoadingErrorComponent,\n RaisedButtonComponent,\n UserPermissionListComponent,\n ],\n providers: [LoadingStateService],\n templateUrl: './user-permissions-dialog.component.html',\n styleUrl: './user-permissions-dialog.component.scss'\n})\nexport class UserPermissionsDialogComponent {\n\n public readonly data = inject<UserPermissionsDialogData>(MAT_DIALOG_DATA);\n\n public readonly permissionsResource = rxResource<UserPermissionDetail[], string>({\n params: () => this.data.userId,\n stream: ({ params: userId }) => this.service.getForUser(userId)\n });\n public readonly permissions = computed(() => this.permissionsResource.value() ?? []);\n\n private readonly dialogRef = inject(MatDialogRef<UserPermissionsDialogComponent>);\n private readonly service = inject(UserPermissionDetailService);\n\n public closeDialog(): void {\n this.dialogRef.close();\n }\n}\n","<ng-container matColumnDef=\"{{ prop() }}\">\n\n <th mat-header-cell *matHeaderCellDef [ngStyle]=\"{'width': width()}\">\n {{ label() ?? capitalize(prop()) }}\n </th>\n\n <td mat-cell *matCellDef=\"let row\">\n @if (row[prop()] === allToken) {\n <span>{{ allLabel() | translate }}</span>\n } @else if (showToolTip()) {\n <span [matTooltip]=\"row[prop()]\">{{ row[prop()] }}</span>\n } @else {\n <span>{{ row[prop()] }}</span>\n }\n </td>\n\n <td mat-footer-cell *matFooterCellDef></td>\n\n</ng-container>\n","import { NgStyle } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, forwardRef, inject, input } from '@angular/core';\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef, MatTable } from '@angular/material/table';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { BaseGridColumnComponent, DataGridComponent, OdataGridComponent } from '@cauca-911/datagrid';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n/** The value a read view emits for a scope covering everything, in place of a list of names. */\nexport const AllScopeToken = 'ALL';\n\nfunction resolveTable(): MatTable<unknown> | undefined {\n const odata = inject(OdataGridComponent, { optional: true });\n const grid = inject(DataGridComponent, { optional: true });\n return (grid ?? odata)?.table;\n}\n\n@Component({\n selector: 'cauca-scope-list-grid-column',\n templateUrl: './scope-list-grid-column.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: BaseGridColumnComponent, useExisting: forwardRef(() => ScopeListGridColumnComponent) }],\n imports: [\n MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef, MatFooterCell, MatFooterCellDef,\n NgStyle, MatTooltip, TranslatePipe,\n ],\n})\nexport class ScopeListGridColumnComponent extends BaseGridColumnComponent {\n /** Translation key shown instead of the list when the row's scope covers everything. */\n public readonly allLabel = input.required<string>();\n\n protected readonly allToken = AllScopeToken;\n\n /**\n * The `providers` alias above is what makes the grid's `ContentChildren(BaseGridColumnComponent)`\n * match this subclass; without it the column registers nowhere and renders as an empty slot.\n */\n public constructor() {\n super(resolveTable());\n }\n}\n","<cauca-odata-grid\n matSort\n matSortActive=\"userName\"\n matSortDirection=\"asc\"\n aria-label=\"Users table\"\n resourceName=\"UserList\"\n [persistState]=\"persistState()\"\n [showTableOptions]=\"true\"\n [showRefreshButton]=\"true\"\n [showAddButton]=\"showAddButton()\"\n [addButtonLabel]=\"addButtonLabel() | translate\"\n (addButtonClick)=\"addClick.emit()\"\n [baseSort]=\"['userName']\"\n [filterPredicate]=\"filterPredicate\"\n [displayedColumns]=\"columns()\">\n\n <cauca-sortable-data-grid-column id=\"userName\" prop=\"userName\" [showToolTip]=\"true\"\n [label]=\"'userList.column.userName' | translate\"/>\n <cauca-sortable-data-grid-column id=\"firstName\" prop=\"firstName\" [showToolTip]=\"true\"\n [label]=\"'userList.column.firstName' | translate\"/>\n <cauca-sortable-data-grid-column id=\"lastName\" prop=\"lastName\" [showToolTip]=\"true\"\n [label]=\"'userList.column.lastName' | translate\"/>\n\n @for (column of extraColumns(); track column.prop) {\n @switch (column.kind) {\n @case ('scope') {\n <cauca-scope-list-grid-column [id]=\"column.prop\" [prop]=\"column.prop\"\n [width]=\"column.width ?? ''\"\n [showToolTip]=\"column.showToolTip ?? true\"\n [allLabel]=\"column.allLabel ?? ''\"\n [label]=\"column.label | translate\"/>\n }\n @case ('check') {\n <cauca-sortable-data-grid-check-column [id]=\"column.prop\" [prop]=\"column.prop\"\n [width]=\"column.width ?? ''\"\n [label]=\"column.label | translate\"/>\n }\n @default {\n <cauca-sortable-data-grid-column [id]=\"column.prop\" [prop]=\"column.prop\"\n [width]=\"column.width ?? ''\"\n [showToolTip]=\"column.showToolTip ?? true\"\n [label]=\"column.label | translate\"/>\n }\n }\n }\n\n @if (hasRowActions()) {\n <cauca-data-grid-menu-column id=\"buttons\" prop=\"menu\"\n [canEdit]=\"canEdit()\"\n [canDelete]=\"canDelete()\"\n [editLinkField]=\"editLinkField()\"\n (deleteClick)=\"onDelete($event)\">\n <ng-template #menuTemplate let-row=\"row\">\n @if (showPermissions()) {\n <cauca-menu-item icon=\"list\" label=\"userList.viewPermissions\" [translateLabel]=\"true\"\n (buttonClick)=\"openPermissions(row)\"/>\n }\n </ng-template>\n </cauca-data-grid-menu-column>\n }\n\n</cauca-odata-grid>\n","import { ChangeDetectionStrategy, Component, OnInit, computed, inject, input, output, viewChild } from '@angular/core';\nimport { MatSort } from '@angular/material/sort';\nimport { DataGridMenuColumnComponent, OdataGridComponent, SortableDataGridCheckColumnComponent, SortableDataGridColumnComponent } from '@cauca-911/datagrid';\nimport { DialogService, MenuItemComponent } from '@cauca-911/material';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ODataFilter } from 'odata-data-source';\nimport f from 'odata-filter-builder';\nimport { UserGridColumn } from '../../core/models/user-grid-column';\nimport { UserListRow } from '../../core/models/user-list-row';\nimport { ScopeListGridColumnComponent } from '../scope-list-grid-column/scope-list-grid-column.component';\nimport { UserPermissionsDialogComponent } from '../user-permissions-dialog/user-permissions-dialog.component';\n\n/** The intersection of every site's feed, from `UserListItem` in `Cause.SecurityManagement`. */\nconst SharedColumns = ['userName', 'firstName', 'lastName'];\n\nconst SharedSearchedColumns = ['searchableUserName', 'searchableFirstName', 'searchableLastName'];\n\n@Component({\n selector: 'cauca-user-list-grid',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatSort, OdataGridComponent, SortableDataGridColumnComponent, SortableDataGridCheckColumnComponent,\n ScopeListGridColumnComponent, DataGridMenuColumnComponent, MenuItemComponent, TranslatePipe,\n ],\n templateUrl: './user-list-grid.component.html',\n})\nexport class UserListGridComponent implements OnInit {\n\n /**\n * Read when the grid registers its columns, in `ngAfterContentInit`. Changing it afterwards\n * recomputes `columns()` but does not re-run `applyColumns()`, so the MatTable is asked to\n * render a column id it never registered and throws `Could not find column with id \"X\"`.\n * `showPermissions`, `canEdit` and `canDelete` gate the row-action column the same way and\n * carry the same constraint — and are the more likely one to hit, since a consumer binds them\n * to an async permission signal more readily than it replaces the column list.\n */\n public readonly extraColumns = input<UserGridColumn[]>([]);\n public readonly showAddButton = input(false);\n /** Translation key. */\n public readonly addButtonLabel = input('');\n public readonly canEdit = input(false);\n public readonly canDelete = input(false);\n public readonly editLinkField = input('id');\n public readonly showPermissions = input(false);\n public readonly persistState = input(true);\n\n public readonly addClick = output<void>();\n public readonly deleteClick = output<UserListRow>();\n\n protected readonly hasRowActions = computed(() =>\n this.showPermissions() || this.canEdit() || this.canDelete());\n\n protected readonly columns = computed(() => [\n ...SharedColumns,\n ...this.extraColumns().map(column => column.prop),\n ...(this.hasRowActions() ? ['menu'] : []),\n ]);\n\n private readonly grid = viewChild.required(OdataGridComponent);\n private readonly sort = viewChild.required(MatSort);\n private readonly dialog = inject(DialogService);\n\n public ngOnInit(): void {\n this.grid().setUpSort(this.sort());\n }\n\n public refresh(): void {\n this.grid().refreshData();\n }\n\n protected readonly filterPredicate = (filter: string): ODataFilter[] => {\n const searched = [\n ...SharedSearchedColumns,\n ...this.extraColumns()\n .map(column => column.searchableProp)\n .filter((prop): prop is string => !!prop),\n ];\n const computedFilter = filter\n ? searched.reduce((builder, column) => builder.contains(column, filter), f('or'))\n : f();\n\n return [{ getFilter: () => [computedFilter.toString()] }];\n };\n\n protected async openPermissions(row: UserListRow): Promise<void> {\n await this.dialog.showCustomDialog(\n UserPermissionsDialogComponent,\n { userId: row.id, userDisplayName: `${row.firstName} ${row.lastName}` },\n { width: '600px' });\n }\n\n protected onDelete(row: unknown): void {\n this.deleteClick.emit(row as UserListRow);\n }\n}\n","import { ChangeDetectionStrategy, Component, input, output, viewChild } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { PageTitleComponent } from '@cauca-911/material';\nimport { UserListGridComponent } from '../../components/user-list-grid/user-list-grid.component';\nimport { UserGridColumn } from '../../core/models/user-grid-column';\nimport { UserListRow } from '../../core/models/user-list-row';\n\n@Component({\n selector: 'cauca-users-page',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatCardModule, PageTitleComponent, UserListGridComponent],\n templateUrl: './users-page.component.html',\n})\nexport class UsersPageComponent {\n\n /** Translation keys. Every site names its users page and its menu differently. */\n public readonly caption = input('management.users');\n public readonly baseCrumb = input('menu.management');\n public readonly breadcrumb = input('management.users');\n\n public readonly extraColumns = input<UserGridColumn[]>([]);\n public readonly showAddButton = input(false);\n public readonly addButtonLabel = input('');\n public readonly canEdit = input(false);\n public readonly canDelete = input(false);\n public readonly editLinkField = input('id');\n public readonly showPermissions = input(false);\n public readonly persistState = input(true);\n\n public readonly addClick = output<void>();\n public readonly deleteClick = output<UserListRow>();\n\n private readonly grid = viewChild.required(UserListGridComponent);\n\n public refresh(): void {\n this.grid().refresh();\n }\n}\n","<cauca-page-title\n [showBreadcrumb]=\"true\"\n [caption]=\"caption()\"\n [baseCrumb]=\"baseCrumb()\"\n [breadcrumb]=\"breadcrumb()\"/>\n\n<mat-card class=\"page-content\">\n\n <mat-card-content class=\"page-content-grid\">\n <cauca-user-list-grid\n [extraColumns]=\"extraColumns()\"\n [showAddButton]=\"showAddButton()\"\n [addButtonLabel]=\"addButtonLabel()\"\n [canEdit]=\"canEdit()\"\n [canDelete]=\"canDelete()\"\n [editLinkField]=\"editLinkField()\"\n [showPermissions]=\"showPermissions()\"\n [persistState]=\"persistState()\"\n (addClick)=\"addClick.emit()\"\n (deleteClick)=\"deleteClick.emit($event)\"/>\n </mat-card-content>\n\n</mat-card>\n","/*\n * Public API Surface of cauca-management\n */\n\n\nexport * from './lib/provide-cauca-management';\nexport * from './lib/management.routes';\nexport * from './lib/core/refreshable-permission-state';\n\nexport * from './lib/pages/groups-page/groups-page.component';\nexport * from './lib/pages/group-edition-page/group-edition-page.component';\n\nexport * from './lib/components/user-permissions-dialog/user-permissions-dialog.component';\nexport * from './lib/pages/users-page/users-page.component';\nexport * from './lib/components/user-list-grid/user-list-grid.component';\nexport * from './lib/components/scope-list-grid-column/scope-list-grid-column.component';\nexport * from './lib/core/models/user-grid-column';\nexport * from './lib/core/models/user-list-row';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","uuid","_forTrack0","i1","i2","i5","i3","i4","f"],"mappings":"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"}
1
+ {"version":3,"file":"cauca-911-management.mjs","sources":["../../../projects/cauca-management/src/lib/provide-cauca-management.ts","../../../projects/cauca-management/src/lib/management.routes.ts","../../../projects/cauca-management/src/lib/core/api/group-management.service.ts","../../../projects/cauca-management/src/lib/components/group-list-grid/group-list-grid.component.ts","../../../projects/cauca-management/src/lib/components/group-list-grid/group-list-grid.component.html","../../../projects/cauca-management/src/lib/pages/groups-page/groups-page.component.ts","../../../projects/cauca-management/src/lib/pages/groups-page/groups-page.component.html","../../../projects/cauca-management/src/lib/core/functions/generate-group.ts","../../../projects/cauca-management/src/lib/core/states/group-edition-state.service.ts","../../../projects/cauca-management/src/lib/core/models/user-for-group.ts","../../../projects/cauca-management/src/lib/core/api/user-search.service.ts","../../../projects/cauca-management/src/lib/components/group-user-selection-dialog/group-user-selection-dialog.component.html","../../../projects/cauca-management/src/lib/components/group-user-selection-dialog/group-user-selection-dialog.component.ts","../../../projects/cauca-management/src/lib/components/group-user-edition-list/group-user-edition-list.component.html","../../../projects/cauca-management/src/lib/components/group-user-edition-list/group-user-edition-list.component.ts","../../../projects/cauca-management/src/lib/core/models/group.ts","../../../projects/cauca-management/src/lib/core/api/permission-management.service.ts","../../../projects/cauca-management/src/lib/components/group-permission-list/group-permission-list.component.html","../../../projects/cauca-management/src/lib/components/group-permission-list/group-permission-list.component.ts","../../../projects/cauca-management/src/lib/components/group-edition-form/group-edition-form.component.html","../../../projects/cauca-management/src/lib/components/group-edition-form/group-edition-form.component.ts","../../../projects/cauca-management/src/lib/pages/group-edition-page/group-edition-page.component.html","../../../projects/cauca-management/src/lib/pages/group-edition-page/group-edition-page.component.ts","../../../projects/cauca-management/src/lib/core/api/user-permission-detail.service.ts","../../../projects/cauca-management/src/lib/core/models/user-permission-detail.ts","../../../projects/cauca-management/src/lib/components/user-permission-list/user-permission-list.component.html","../../../projects/cauca-management/src/lib/components/user-permission-list/user-permission-list.component.ts","../../../projects/cauca-management/src/lib/components/user-permissions-dialog/user-permissions-dialog.component.html","../../../projects/cauca-management/src/lib/components/user-permissions-dialog/user-permissions-dialog.component.ts","../../../projects/cauca-management/src/lib/components/scope-list-grid-column/scope-list-grid-column.component.html","../../../projects/cauca-management/src/lib/components/scope-list-grid-column/scope-list-grid-column.component.ts","../../../projects/cauca-management/src/lib/components/user-list-grid/user-list-grid.component.html","../../../projects/cauca-management/src/lib/components/user-list-grid/user-list-grid.component.ts","../../../projects/cauca-management/src/lib/pages/users-page/users-page.component.ts","../../../projects/cauca-management/src/lib/pages/users-page/users-page.component.html","../../../projects/cauca-management/src/lib/core/models/user-for-edition.ts","../../../projects/cauca-management/src/lib/core/models/user-edition.schema.ts","../../../projects/cauca-management/src/lib/core/api/user-edition.service.ts","../../../projects/cauca-management/src/lib/core/api/assignable-groups.service.ts","../../../projects/cauca-management/src/lib/components/user-login-fields/user-login-fields.component.html","../../../projects/cauca-management/src/lib/components/user-login-fields/user-login-fields.component.ts","../../../projects/cauca-management/src/lib/components/user-personal-information-fields/user-personal-information-fields.component.html","../../../projects/cauca-management/src/lib/components/user-personal-information-fields/user-personal-information-fields.component.ts","../../../projects/cauca-management/src/lib/components/user-groups-selector/user-groups-selector.component.html","../../../projects/cauca-management/src/lib/components/user-groups-selector/user-groups-selector.component.ts","../../../projects/cauca-management/src/public-api.ts","../../../projects/cauca-management/src/cauca-911-management.ts"],"sourcesContent":["import { EnvironmentProviders, InjectionToken, Injector, Provider, Type } from '@angular/core';\r\nimport { RefreshablePermissionState } from '../public-api';\r\n\r\nexport const MANAGEMENT_URL_PREFIX = new InjectionToken<string>('MANAGEMENT_URL_PREFIX');\r\nexport const MANAGEMENT_ROUTE_SEGMENT = new InjectionToken<string>('MANAGEMENT_ROUTE_SEGMENT');\r\nexport const REFRESHABLE_PERMISSION_STATE_TOKEN = new InjectionToken<RefreshablePermissionState>('REFRESHABLE_PERMISSION_STATE_TOKEN');\r\n\r\nexport interface CaucaManagementConfig {\r\n managementUrlPrefix?: string | null;\r\n managementRouteSegment?: string | null;\r\n refreshablePermissionState: Type<RefreshablePermissionState>;\r\n}\r\n\r\nexport function provideCaucaManagement(config: CaucaManagementConfig): (Provider | EnvironmentProviders)[] {\r\n return [\r\n ...(config?.managementUrlPrefix != null\r\n ? [{ provide: MANAGEMENT_URL_PREFIX, useValue: config.managementUrlPrefix }]\r\n : []),\r\n ...(config?.managementRouteSegment != null\r\n ? [{ provide: MANAGEMENT_ROUTE_SEGMENT, useValue: config.managementRouteSegment }]\r\n : []),\r\n { provide: REFRESHABLE_PERMISSION_STATE_TOKEN, useFactory: (injector: Injector) => injector.get(config.refreshablePermissionState), deps: [Injector] } \r\n ];\r\n}","import { Routes } from '@angular/router';\r\nimport { pendingChangesGuard } from '@cauca-911/material';\r\n\r\nexport const managementGroupRoutes: Routes = [{\r\n path: 'groups',\r\n loadComponent: () => import('./pages/groups-page/groups-page.component').then(m => m.GroupsPageComponent),\r\n }, {\r\n path: 'groups/:id',\r\n loadComponent: () => import('./pages/group-edition-page/group-edition-page.component').then(m => m.GroupEditionPageComponent),\r\n canDeactivate: [pendingChangesGuard],\r\n }];","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { firstValueFrom } from 'rxjs';\nimport { Group } from '../models/group';\nimport { MANAGEMENT_URL_PREFIX } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GroupManagementService {\n\n private readonly client = inject(HttpClient);\n private readonly baseUrl = inject(CaucaCoreService).getConfig().apiUrl;\n private readonly urlPrefix = inject(MANAGEMENT_URL_PREFIX, { optional: true }) ?? '';\n\n public async deleteGroup(groupId: string): Promise<void> {\n await firstValueFrom(this.client.delete(this.buildApiUrl(`GroupManagement/${groupId}`)));\n }\n\n public async save(group: Group): Promise<void> {\n await firstValueFrom( this.client.post<Group>(this.buildApiUrl(`GroupManagement`), group));\n }\n\n public async get(groupId: string): Promise<Group> {\n return await firstValueFrom(this.client.get<Group>(this.buildApiUrl(`GroupManagement/${groupId}`)));\n }\n\n private buildApiUrl(path: string): string {\n const normalizedApiUrl = this.baseUrl.replace(/\\/+$/, '');\n const normalizedPrefix = this.urlPrefix.trim().replace(/^\\/+|\\/+$/g, '');\n return normalizedPrefix\n ? `${normalizedApiUrl}/${normalizedPrefix}/${path}`\n : `${normalizedApiUrl}/${path}`;\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, OnInit, ViewChild } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { MatSort } from '@angular/material/sort';\nimport { Router } from '@angular/router';\nimport ODataFilterBuilder from 'odata-filter-builder';\nimport { ODataFilter } from 'odata-data-source';\nimport { DialogService } from '@cauca-911/material';\nimport { DataGridCommandsColumnComponent, OdataGridComponent, SortableDataGridCheckColumnComponent, SortableDataGridColumnComponent } from '@cauca-911/datagrid';\nimport { GroupManagementService } from '../../core/api/group-management.service';\n\n@Component({\n selector: 'cauca-group-list-grid',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatSort, OdataGridComponent, SortableDataGridColumnComponent, SortableDataGridCheckColumnComponent, DataGridCommandsColumnComponent, TranslatePipe],\n templateUrl: './group-list-grid.component.html',\n styleUrl: './group-list-grid.component.scss'\n})\nexport class GroupListGridComponent implements OnInit {\n\n public readonly columns = computed(() => this.getColumns());\n\n @ViewChild(OdataGridComponent, { static: true }) public table!: OdataGridComponent;\n @ViewChild(MatSort, { static: true }) public sort!: MatSort;\n\n private readonly router = inject(Router);\n private readonly dialog = inject(DialogService);\n private readonly service = inject(GroupManagementService);\n\n public ngOnInit(): void {\n this.table.setUpSort(this.sort);\n }\n\n public createGroup(): void {\n this.router.navigate([this.router.url, 'new']);\n }\n\n public async deleteGroup(group: any): Promise<void> {\n if (await this.dialog.askForDeleteConfirmation(group.name, 'management.group', true)) {\n try {\n await this.service.deleteGroup(group.id);\n this.table.refreshData();\n } catch {\n await this.dialog.showDeletionError(group.name);\n }\n }\n }\n\n public filterPredicate = (filter: string): ODataFilter[] => {\n let builder = new ODataFilterBuilder();\n if (filter) {\n builder = builder.and(ODataFilterBuilder('or')\n .contains('searchableGroup', filter)\n .contains('searchableUsers', filter)\n );\n }\n return [{getFilter: () => [builder.toString()]}];\n };\n\n private getColumns(): string[] {\n const baseColumns = ['name', 'assignableByAllUsers'];\n return [...baseColumns, 'buttons'];\n }\n}\n\n","<cauca-odata-grid matSort\n [showTableOptions]=\"true\"\n class=\"groups-datagrid\"\n aria-describedby=\"Groups table\"\n resourceName=\"GroupList\"\n [showAddButton]=\"true\"\n (addButtonClick)=\"createGroup()\"\n [addButtonLabel]=\"'groups.addButtonLabel'| translate\"\n [baseSort]=\"['name']\"\n [filterPredicate]=\"filterPredicate\"\n [displayedColumns]=\"columns()\">\n\n <cauca-sortable-data-grid-column id=\"name\" prop=\"name\" [label]=\"'groups.groupNameColumnLabel'|translate\"/>\n <cauca-sortable-data-grid-check-column id=\"is-assignable-all-users\" prop=\"assignableByAllUsers\" [label]=\"'groups.assignableByAllUsersColumnLabel'|translate\" width=\"200px\" />\n <cauca-data-grid-commands-column id=\"buttons\" prop=\"buttons\" [canDelete]=\"true\" [canEdit]=\"true\" editLinkField=\"id\" (deleteClick)=\"deleteGroup($event)\" />\n\n</cauca-odata-grid>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { PageTitleComponent } from '@cauca-911/material';\nimport { GroupListGridComponent } from '../../components/group-list-grid/group-list-grid.component';\n\n@Component({\n selector: 'cauca-groups-page',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatCardModule, PageTitleComponent, GroupListGridComponent],\n templateUrl: './groups-page.component.html',\n styleUrl: './groups-page.component.scss'\n})\nexport class GroupsPageComponent {\n}\n","<cauca-page-title\n [showBreadcrumb]=\"true\"\n caption=\"menu.groups\"\n baseCrumb=\"menu.management\"\n breadcrumb=\"menu.groups\" />\n\n<mat-card class=\"page-content\">\n\n <mat-card-content class=\"page-content-grid\">\n <cauca-group-list-grid />\n </mat-card-content>\n\n</mat-card>\n","import { v4 as uuid } from 'uuid';\nimport { Group } from '../models/group';\n\nexport function generateGroup(): Group {\n return {\n id: uuid(),\n name: '',\n assignableByAllUsers: false,\n permissions: [],\n users: []\n };\n}","import { inject, Injectable } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { GroupManagementService } from '../api/group-management.service';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Group, GroupUser } from '../models/group';\nimport { generateGroup } from '../functions/generate-group';\nimport { startWith } from 'rxjs';\nimport { REFRESHABLE_PERMISSION_STATE_TOKEN } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GroupEditionStateService {\n public isEditionMode = true;\n public form = this.generateForm();\n public id: string| null = null;\n\n public readonly users = toSignal(\n this.form.get('users')!.valueChanges.pipe(startWith(this.form.get('users')!.value)),\n { initialValue: [] as GroupUser[] }\n );\n\n private readonly usersControl = this.form.get('users') as FormControl<GroupUser[]>;\n private currentGroup: Group| null = null;\n private readonly dataService = inject(GroupManagementService);\n private readonly userPermissionStateService = inject(REFRESHABLE_PERMISSION_STATE_TOKEN);\n\n public async setGroup(id: string): Promise<void> {\n if (id === 'new') {\n this.isEditionMode = false;\n this.generateNewGroup();\n } else {\n this.setCurrentGroup(await this.dataService.get(id));\n }\n }\n\n public async saveData(): Promise<boolean> {\n const data = this.getUpdatedGroup();\n if (this.form.valid) {\n this.form.disable();\n await this.dataService.save(data);\n await this.refreshCurrentUserPermissions();\n return true;\n } else {\n return false;\n }\n }\n\n public generateNewGroup(): void {\n this.currentGroup = generateGroup();\n this.setCurrentGroup(this.currentGroup);\n this.form.markAsPristine();\n }\n\n public setCurrentGroup(group: Group): void {\n this.id = group.id;\n this.currentGroup = group;\n if (!this.isEditionMode) {\n this.form.get('name')!.setValidators(Validators.required);\n }\n this.form.patchValue(group);\n this.form.get('users')!.setValue(group.users || []);\n this.form.get('permissions')!.setValue(group.permissions || []);\n this.form.markAsPristine();\n }\n\n public getUpdatedGroup(): Group {\n const formValues = this.form.value;\n return {\n ...this.currentGroup,\n ...formValues,\n };\n }\n\n public isDirty(): boolean {\n return this.form.dirty;\n }\n\n public isValid(): boolean {\n this.form.updateValueAndValidity();\n return this.form.valid;\n }\n\n public showErrors(): void {\n this.form.markAllAsTouched();\n }\n\n public addUsers(users: GroupUser[]): void {\n const current = this.usersControl.value ?? [];\n const existingIds = new Set(current.map(u => u.id));\n const newUsers = users.filter(u => !existingIds.has(u.id));\n this.usersControl.setValue([...current, ...newUsers]);\n this.form.markAsDirty();\n }\n\n public removeUser(userId: string): void {\n const current = this.usersControl.value ?? [];\n this.usersControl.setValue(current.filter(u => u.id !== userId));\n this.form.markAsDirty();\n }\n\n private async refreshCurrentUserPermissions() {\n try {\n await this.userPermissionStateService.refresh();\n } catch (error) {\n console.error('Error refreshing user permissions after group save', error);\n }\n }\n\n private generateForm(): FormGroup {\n const formGroup = new FormGroup({\n name: new FormControl('', [Validators.required]),\n assignableByAllUsers: new FormControl(false),\n users: new FormControl([]),\n permissions: new FormControl([])\n });\n return formGroup;\n }\n}\n","export interface UserForGroupData {\r\n id: string;\r\n firstName: string;\r\n lastName: string;\r\n additionalInformation: string|undefined;\r\n}\r\n\r\nexport class UserForGroup {\r\n public id: string;\r\n public firstName: string;\r\n public lastName: string;\r\n public fullName: string;\r\n public additionalInformation: string|undefined;\r\n\r\n public constructor(data: UserForGroupData) {\r\n this.id = data.id;\r\n this.firstName = data.firstName;\r\n this.lastName = data.lastName;\r\n this.fullName = `${data.firstName} ${data.lastName}`;\r\n this.additionalInformation = data.additionalInformation;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { firstValueFrom } from 'rxjs';\nimport { UserForGroup, UserForGroupData } from '../models/user-for-group';\nimport { MANAGEMENT_URL_PREFIX } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserSearchService {\n\n private readonly client = inject(HttpClient);\n private readonly baseUrl = inject(CaucaCoreService).getConfig().apiUrl;\n private readonly urlPrefix = inject(MANAGEMENT_URL_PREFIX, { optional: true }) ?? '';\n\n public async search(\n query: string,\n excludedUserIds: string[],\n skip: number,\n top: number\n ): Promise<{ items: UserForGroup[]; totalCount: number }> {\n const url = this.buildApiUrl('UserSearch');\n const body: { query: string; skip: number; top: number; excludedUserIds: string[] } = {\n query,\n skip,\n top,\n excludedUserIds\n };\n const response = await firstValueFrom(\n this.client.post<{ items: UserForGroupData[]; totalCount: number }>(url, body)\n );\n return {\n items: response.items.map(u => new UserForGroup(u)),\n totalCount: response.totalCount\n };\n }\n\n private buildApiUrl(path: string): string {\n const normalizedApiUrl = this.baseUrl.replace(/\\/+$/, '');\n const normalizedPrefix = this.urlPrefix.trim().replace(/^\\/+|\\/+$/g, '');\n return normalizedPrefix\n ? `${normalizedApiUrl}/${normalizedPrefix}/${path}`\n : `${normalizedApiUrl}/${path}`;\n }\n}\n","<div mat-dialog-title>\n <div class=\"h6\">{{ 'groupEdition.userSelectionTitle' | translate }}</div>\n <cauca-icon-button id=\"closeButton\" (buttonClick)=\"closeClick()\" icon=\"close\" />\n</div>\n\n<mat-dialog-content class=\"dialog-content\">\n <mat-form-field subscriptSizing=\"dynamic\" class=\"search-field\">\n <mat-label>{{ 'groupEdition.searchUserPlaceholder' | translate }}</mat-label>\n <input matInput type=\"text\" [value]=\"searchTerm()\" (input)=\"searchTerm.set($any($event.target).value)\" />\n <mat-icon matSuffix>search</mat-icon>\n </mat-form-field>\n\n @if (searchTerm().length >= 0 && searchTerm().length < MIN_SEARCH_LENGTH) {\n <div class=\"search-hint body2\">{{ 'groupEdition.searchMinChars' | translate }}</div>\n }\n\n <div class=\"results-region\">\n <cauca-loading-error (retryRequest)=\"searchResource.reload()\" />\n\n @if (searchResource.isLoading() && !results().length) {\n <cauca-loading-spinner-indicator />\n } @else if (results().length) {\n <mat-selection-list class=\"results-list\" [compareWith]=\"compareUserById\" (selectionChange)=\"onSelectionChange($event)\">\n @for (user of results(); track user.id; let i = $index) {\n <mat-list-option\n [value]=\"user\"\n [selected]=\"selectedUserIds().has(user.id)\"\n color=\"primary\"\n class=\"result-item\"\n [class.result-item--even]=\"i % 2 === 1\">\n <span matListItemTitle>{{ user.fullName }}</span>\n @if (user.additionalInformation) {\n <span matListItemSubtitle>{{ user.additionalInformation }}</span>\n }\n </mat-list-option>\n }\n </mat-selection-list>\n\n @if (totalCount() > PAGE_SIZE) {\n <cauca-list-paginator\n #resultPaginator\n [itemsCount]=\"totalCount()\"\n [pageSize]=\"PAGE_SIZE\"\n (pageChange)=\"onPageChange($event)\" />\n }\n } @else if (!searchResource.isLoading() && totalCount() === 0 && debouncedSearch().length >= MIN_SEARCH_LENGTH) {\n <div class=\"no-results body2\">{{ 'noResult' | translate }}</div>\n }\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"dialog-actions\">\n <div class=\"selected-users-panel\">\n <span class=\"selected-users-label caption\">{{ 'groupEdition.selectedUsersLabel' | translate }}</span>\n <div class=\"selected-users-names body2\" [matTooltip]=\"selectedUsersLabel()\">{{ selectedUsersLabel() }}</div>\n </div>\n <cauca-stroked-button color=\"primary\" label=\"cancel\" (buttonClick)=\"cancel()\" />\n <cauca-raised-button\n color=\"primary\"\n label=\"ok\"\n [isDisabled]=\"selectedUsers().length === 0\"\n (buttonClick)=\"confirm()\" />\n</mat-dialog-actions>\n","import { ChangeDetectionStrategy, Component, computed, effect, inject, resource, signal, untracked, viewChild } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule, MatSelectionListChange } from '@angular/material/list';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { debounceTime } from 'rxjs';\nimport { LoadingSpinnerIndicatorComponent, LoadingErrorComponent, StrokedButtonComponent, RaisedButtonComponent, LoadingStateService, ListPaginatorComponent, IconButtonComponent } from '@cauca-911/material';\nimport { toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\nimport { UserSearchService } from '../../core/api/user-search.service';\nimport { UserForGroup } from '../../core/models/user-for-group';\nimport { GroupUser } from '../../core/models/group';\n\nexport interface GroupUserSelectionDialogData {\n currentUserIds: string[];\n}\n\n@Component({\n selector: 'cauca-group-user-selection-dialog',\n standalone: true,\n imports: [\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n MatListModule,\n FormsModule,\n TranslatePipe,\n LoadingSpinnerIndicatorComponent,\n LoadingErrorComponent,\n StrokedButtonComponent,\n RaisedButtonComponent,\n ListPaginatorComponent,\n MatTooltipModule,\n IconButtonComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [UserSearchService, LoadingStateService],\n templateUrl: './group-user-selection-dialog.component.html',\n styleUrl: './group-user-selection-dialog.component.scss'\n})\nexport class GroupUserSelectionDialogComponent {\n protected readonly MIN_SEARCH_LENGTH = 3;\n protected readonly PAGE_SIZE = 10;\n protected readonly data = inject<GroupUserSelectionDialogData>(MAT_DIALOG_DATA);\n protected readonly searchTerm = signal('');\n protected readonly selectedUsers = signal<GroupUser[]>([]);\n protected readonly currentPage = signal(1);\n protected readonly paginator = viewChild<ListPaginatorComponent>('resultPaginator');\n\n protected readonly selectedUserIds = computed(() => new Set(this.selectedUsers().map(u => u.id)));\n\n protected readonly selectedUsersLabel = computed(() =>\n [...this.selectedUsers()]\n .sort((a, b) => toLowerCaseAndWithoutDiacritics(a.fullName).localeCompare(toLowerCaseAndWithoutDiacritics(b.fullName)))\n .map(u => u.fullName)\n .join(', ')\n );\n\n protected readonly debouncedSearch = toSignal(\n toObservable(this.searchTerm).pipe(debounceTime(300)),\n { initialValue: '' }\n );\n\n protected readonly searchResource = resource({\n params: computed(() => ({ query: this.debouncedSearch(), page: this.currentPage() })),\n loader: ({ params }) => {\n if (params.query.length < this.MIN_SEARCH_LENGTH) {\n return Promise.resolve({ items: [], totalCount: 0 });\n }\n const skip = (params.page - 1) * this.PAGE_SIZE;\n return this.userSearchService.search(params.query, this.data.currentUserIds, skip, this.PAGE_SIZE);\n }\n });\n\n protected readonly results = computed(() => this.lastResult().items);\n protected readonly totalCount = computed(() => this.lastResult().totalCount);\n\n private readonly lastResult = signal<{ items: UserForGroup[]; totalCount: number }>({ items: [], totalCount: 0 });\n private readonly dialogRef = inject(MatDialogRef<GroupUserSelectionDialogComponent>);\n private readonly userSearchService = inject(UserSearchService);\n\n public constructor() {\n effect(() => {\n const value = this.searchResource.value();\n if (value) {\n untracked(() => this.lastResult.set(value));\n }\n });\n\n effect(() => {\n this.debouncedSearch();\n untracked(() => {\n this.currentPage.set(1);\n this.paginator()?.moveToFirst();\n this.lastResult.set({ items: [], totalCount: 0 });\n });\n });\n }\n\n public closeClick(): void {\n this.dialogRef.close();\n }\n\n public toggleUser(user: UserForGroup): void {\n const groupUser: GroupUser = { id: user.id, fullName: user.fullName, additionalInformation: user.additionalInformation };\n if (this.selectedUserIds().has(user.id)) {\n this.selectedUsers.update(current => current.filter(u => u.id !== user.id));\n } else {\n this.selectedUsers.update(current => [...current, groupUser]);\n }\n }\n\n public onPageChange(page: number): void {\n this.currentPage.set(page);\n }\n\n public onSelectionChange(event: MatSelectionListChange): void {\n for (const option of event.options) {\n this.toggleUser(option.value as UserForGroup);\n }\n }\n\n public cancel(): void {\n this.dialogRef.close();\n }\n\n public confirm(): void {\n this.dialogRef.close(this.selectedUsers());\n }\n\n protected readonly compareUserById = (a: UserForGroup, b: UserForGroup): boolean => a?.id === b?.id;\n}\n","<div class=\"user-edition-list\">\n\n <mat-form-field subscriptSizing=\"dynamic\" class=\"filter-field\">\n <mat-label>{{ 'groupEdition.filterUsersPlaceholder' | translate }}</mat-label>\n <input matInput type=\"text\" [value]=\"filterTerm()\" (input)=\"filterTerm.set($any($event.target).value)\" />\n <mat-icon matSuffix>search</mat-icon>\n </mat-form-field>\n\n <mat-list class=\"users-list\">\n @for (user of pagedUsers(); track user.id) {\n <mat-list-item class=\"user-item\">\n <mat-icon matListItemIcon>person</mat-icon>\n <div matListItemTitle class=\"user-name\">{{ user.fullName }}</div>\n @if (user.additionalInformation) {\n <div matListItemLine class=\"user-additional-information\">{{ user.additionalInformation }}</div>\n }\n <cauca-icon-button\n matListItemMeta\n class=\"delete-button\"\n icon=\"delete\"\n color=\"error\"\n (buttonClick)=\"removeUser(user)\"\n [attr.aria-label]=\"'groupEdition.removeUserLabel' | translate\" />\n </mat-list-item>\n } @empty {\n @if (filterTerm()) {\n <div class=\"no-users body2\">{{ 'groupEdition.noFilteredUsers' | translate }}</div>\n } @else {\n <div class=\"no-users body2\">{{ 'groupEdition.noUsers' | translate }}</div>\n }\n }\n </mat-list>\n\n @if (filteredUsers().length > PAGE_SIZE) {\n <cauca-list-paginator\n #paginator\n [itemsCount]=\"filteredUsers().length\"\n [pageSize]=\"PAGE_SIZE\"\n (pageChange)=\"onPageChange($event)\" />\n }\n\n <cauca-raised-button\n class=\"add-users-button\"\n color=\"primary\"\n label=\"groupEdition.addUsersButton\"\n (buttonClick)=\"openAddUsersDialog()\" />\n</div>\n","import { ChangeDetectionStrategy, Component, computed, effect, inject, signal, untracked, viewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { DialogService, IconButtonComponent, ListPaginatorComponent, RaisedButtonComponent } from '@cauca-911/material';\nimport { toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\nimport { GroupEditionStateService } from '../../core/states/group-edition-state.service';\nimport { GroupUser } from '../../core/models/group';\nimport { GroupUserSelectionDialogComponent, GroupUserSelectionDialogData } from '../group-user-selection-dialog/group-user-selection-dialog.component';\nimport { MatListModule } from '@angular/material/list';\n\n@Component({\n selector: 'cauca-group-user-edition-list',\n standalone: true,\n imports: [TranslatePipe, IconButtonComponent, RaisedButtonComponent, ListPaginatorComponent, MatFormFieldModule, MatInputModule, MatIconModule, FormsModule, MatListModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DialogService],\n templateUrl: './group-user-edition-list.component.html',\n styleUrl: './group-user-edition-list.component.scss'\n})\nexport class GroupUserEditionListComponent {\n protected readonly PAGE_SIZE = 10;\n protected readonly currentPage = signal(1);\n protected readonly filterTerm = signal('');\n protected readonly paginator = viewChild<ListPaginatorComponent>('paginator');\n\n protected readonly sortedUsers = computed(() =>\n [...this.state.users()].sort((a, b) =>\n toLowerCaseAndWithoutDiacritics(a.fullName).localeCompare(toLowerCaseAndWithoutDiacritics(b.fullName))\n )\n );\n\n protected readonly filteredUsers = computed(() => {\n const term = toLowerCaseAndWithoutDiacritics(this.filterTerm());\n if (!term) return this.sortedUsers();\n return this.sortedUsers().filter(u => toLowerCaseAndWithoutDiacritics(u.fullName).includes(term));\n });\n\n protected readonly pagedUsers = computed(() => {\n const start = (this.currentPage() - 1) * this.PAGE_SIZE;\n return this.filteredUsers().slice(start, start + this.PAGE_SIZE);\n });\n\n private readonly state = inject(GroupEditionStateService);\n private readonly dialogService = inject(DialogService);\n private readonly dialog = inject(MatDialog);\n\n public constructor() {\n effect(() => {\n this.filterTerm();\n untracked(() => {\n this.currentPage.set(1);\n this.paginator()?.moveToFirst();\n });\n });\n }\n\n public async removeUser(user: GroupUser): Promise<void> {\n const confirmed = await this.dialogService.askForDeleteConfirmation(\n user.fullName,\n 'groupEdition.userEntityName',\n true\n );\n if (confirmed) {\n this.state.removeUser(user.id);\n this.clampCurrentPage();\n }\n }\n\n public onPageChange(page: number): void {\n this.currentPage.set(page);\n }\n\n public openAddUsersDialog(): void {\n const currentUserIds = this.state.users().map((u: GroupUser) => u.id);\n const dialogData: GroupUserSelectionDialogData = { currentUserIds };\n\n this.dialog.open(GroupUserSelectionDialogComponent, {\n width: '600px',\n maxHeight: '80vh',\n autoFocus: false,\n data: dialogData\n }).afterClosed().subscribe((selectedUsers: GroupUser[] | undefined) => {\n if (selectedUsers?.length) {\n this.state.addUsers(selectedUsers);\n this.paginator()?.moveToFirst();\n this.currentPage.set(1);\n }\n });\n }\n\n private clampCurrentPage(): void {\n const total = untracked(this.filteredUsers).length;\n const maxPage = Math.ceil(total / this.PAGE_SIZE) || 1;\n if (untracked(this.currentPage) > maxPage) {\n this.currentPage.set(1);\n this.paginator()?.moveToFirst();\n }\n }\n}\n","import { Permission } from \"./permission\";\nimport { v4 as uuid } from 'uuid';\n\nexport interface Group {\n id: string;\n name: string;\n assignableByAllUsers: boolean;\n permissions: GroupPermission[];\n users: GroupUser[];\n}\n\nexport interface GroupUser {\n id: string;\n fullName: string;\n additionalInformation?: string|undefined;\n}\n\nexport interface GroupPermission {\n idModulePermission: string;\n isAllowed: boolean;\n idGroup: string;\n id: string;\n}\n\nexport class PermissionValue {\n public id: string;\n public name: string;\n public allowed: boolean|null;\n\n private permission: Permission;\n private groupPermission: GroupPermission|null|undefined;\n\n public constructor(permission: Permission, groupPermission: GroupPermission|null|undefined) {\n this.id = permission.id;\n this.permission = permission;\n this.groupPermission = groupPermission;\n this.name = permission.name;\n this.allowed = groupPermission?.isAllowed ?? null;\n }\n\n public toGroupPermission(idGroup: string): GroupPermission|null {\n if (this.allowed === null) {\n return null;\n } else if (this.groupPermission) {\n return { ...this.groupPermission, isAllowed: this.allowed };\n } else {\n return { id: uuid(), idGroup, idModulePermission: this.permission.id, isAllowed: this.allowed };\n }\n }\n}","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { firstValueFrom } from 'rxjs';\nimport { Permission } from '../models/permission';\nimport { MANAGEMENT_URL_PREFIX } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionManagementService {\n\n private readonly client = inject(HttpClient);\n private readonly baseUrl = this.buildBaseUrl(\n inject(CaucaCoreService).getConfig().apiUrl, \n inject(MANAGEMENT_URL_PREFIX, { optional: true }));\n\n public async get(): Promise<Permission[]> {\n return await firstValueFrom(this.client.get<Permission[]>(this.buildApiUrl(`PermissionManagement`)));\n }\n\n private buildBaseUrl(apiUrl: string, urlPrefix: string | null): string {\n const normalizedApiUrl = apiUrl.replace(/\\/+$/, '');\n const normalizedPrefix = urlPrefix?.trim().replace(/^\\/+|\\/+$/g, '');\n return normalizedPrefix\n ? `${normalizedApiUrl}/${normalizedPrefix}`\n : normalizedApiUrl;\n }\n\n private buildApiUrl(path: string): string {\n const normalizedApiUrl = this.baseUrl.replace(/\\/+$/, '');\n return `${normalizedApiUrl}/${path}`;\n }\n}\n","<mat-form-field subscriptSizing=\"dynamic\" appearance=\"outline\" class=\"full-width-field grid-search-box\">\n <mat-label>{{ 'dataGrid.keywordsLabel' | translate }}</mat-label>\n <input matInput [(ngModel)]=\"searchText\">\n <mat-icon matSuffix>search</mat-icon>\n</mat-form-field>\n\n<mat-selection-list id=\"permission-list\">\n @for (permission of filteredPermissionsValues(); track permission.id) {\n <mat-list-item class=\"permission-item\">\n <mat-checkbox\n [color]=\"permission.allowed === null ? undefined : 'primary'\"\n [indeterminate]=\"permission.allowed === null\"\n [checked]=\"permission.allowed\"\n (click)=\"onValueChange(permission)\" >\n {{permission.name}}\n </mat-checkbox>\n </mat-list-item>\n } @empty {\n <div class=\"no-result\">\n <mat-icon class=\"no-result-icon\">grid_off</mat-icon>\n <div class=\"no-result-text body2\">{{ 'noResult' | translate }}</div>\n </div>\n }\n\n</mat-selection-list>\n","import { ChangeDetectionStrategy, Component, computed, inject, model, OnInit, signal } from '@angular/core';\nimport { MatListModule } from '@angular/material/list';\nimport { MatFormField, MatLabel, MatSuffix } from '@angular/material/form-field';\nimport { MatInput } from '@angular/material/input';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatIcon } from '@angular/material/icon';\nimport { PermissionValue, GroupPermission } from '../../core/models/group';\nimport { Permission } from '../../core/models/permission';\nimport { GroupEditionStateService } from '../../core/states/group-edition-state.service';\nimport { PermissionManagementService } from '../../core/api/permission-management.service';\nimport { toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\n@Component({\n selector: 'cauca-group-permission-list',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatListModule, MatFormField, MatLabel, MatInput, MatSuffix, TranslatePipe, FormsModule, MatIcon, MatCheckboxModule],\n templateUrl: './group-permission-list.component.html',\n styleUrl: './group-permission-list.component.scss',\n})\nexport class GroupPermissionListComponent implements OnInit {\n\n public searchText = model<string>('');\n public currentPermissions = signal<PermissionValue[]>([]);\n public filteredPermissionsValues = computed(() =>\n this.currentPermissions()?.filter((permission) => toLowerCaseAndWithoutDiacritics(permission.name)\n .includes(toLowerCaseAndWithoutDiacritics(this.searchText()))) || []);\n\n private readonly service = inject(PermissionManagementService);\n private readonly state = inject(GroupEditionStateService);\n private modulePermissions!: Permission[];\n\n public async ngOnInit(): Promise<void> {\n await this.loadData();\n }\n\n public onValueChange(value: PermissionValue): void {\n if (value.allowed === null) {\n value.allowed = true;\n } else if (value.allowed) {\n value.allowed = false;\n } else {\n value.allowed = null;\n }\n this.state.form.get('permissions')!.setValue(this.toGroupPermissions(this.state.id!));\n }\n\n private async loadData(): Promise<void> {\n try {\n this.modulePermissions = await this.service.get();\n const values = this.modulePermissions\n .map((permission) => new PermissionValue(permission, this.getPermissions().find((groupPermission) => groupPermission.idModulePermission === permission.id)));\n this.currentPermissions.set(values);\n } catch {\n this.modulePermissions = [];\n }\n }\n\n private toGroupPermissions(idGroup: string): GroupPermission[] {\n return this.currentPermissions().map((permissionValue) => permissionValue.toGroupPermission(idGroup))\n .filter((groupPermission) => groupPermission !== null) as GroupPermission[];\n }\n\n private getPermissions(): GroupPermission[] {\n return this.state.form.get('permissions')!.value;\n }\n\n}\n","<div [formGroup]=\"state.form\">\n\n <cauca-group-container id=\"group-options\" caption=\"groupEdition.groupNameFieldLabel\">\n <mat-form-field id=\"group-name\">\n <mat-label>{{ 'groupEdition.nameFieldLabel' | translate }}</mat-label>\n <input matInput type=\"text\" formControlName=\"name\" required>\n @if (state.form.get(\"name\").hasError('required')) {<mat-error>{{'error.requiredField' | translate}}</mat-error>}\n </mat-form-field>\n <mat-slide-toggle id=\"assignable-by-all-users\" formControlName=\"assignableByAllUsers\" color=\"primary\">{{'groupEdition.assignableByAllUsersLabel' | translate}}</mat-slide-toggle>\n </cauca-group-container>\n\n <mat-divider />\n\n <cauca-group-container id=\"group-users\" caption=\"groupEdition.groupUsersFieldLabel\">\n <cauca-group-user-edition-list />\n </cauca-group-container>\n\n <mat-divider />\n\n <cauca-group-container id=\"group-permissions\" caption=\"groupEdition.groupPermissionsFieldLabel\">\n <cauca-group-permission-list />\n </cauca-group-container>\n\n</div>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatInputModule } from '@angular/material/input';\nimport { GroupUserEditionListComponent } from '../group-user-edition-list/group-user-edition-list.component';\nimport { GroupPermissionListComponent } from '../group-permission-list/group-permission-list.component';\nimport { GroupContainerComponent } from '@cauca-911/material';\nimport { GroupEditionStateService } from '../../core/states/group-edition-state.service';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'cauca-group-edition-form',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TranslatePipe, MatFormFieldModule, MatInputModule, MatSlideToggleModule, MatDividerModule, ReactiveFormsModule, GroupContainerComponent, GroupUserEditionListComponent, GroupPermissionListComponent],\n templateUrl: './group-edition-form.component.html',\n styleUrl: './group-edition-form.component.scss'\n})\nexport class GroupEditionFormComponent {\n public readonly state = inject(GroupEditionStateService);\n}\n","<cauca-page-title\n [caption]=\"title()\"\n baseCrumb=\"menu.management\"\n [breadcrumb]=\"title()\"\n [location]=\"currentLocation()\"\n [showBreadcrumb]=\"true\" />\n\n<mat-card>\n\n <mat-card-content>\n\n <cauca-loading-spinner-indicator />\n <cauca-loading-error (retryRequest)=\"loadData()\" />\n\n @if (isLoaded()) {\n <cauca-group-edition-form />\n }\n\n @if (showSavingError()) {\n <div class=\"spacer\"></div>\n <cauca-saving-error-box [show]=\"showSavingError()\" />\n }\n\n </mat-card-content>\n\n <mat-card-actions>\n <div class=\"spacer\"></div>\n <cauca-stroked-button class=\"cancel-button\" color=\"primary\" label=\"cancel\" [isDisabled]=\"isSaving()\" (buttonClick)=\"cancel()\" />\n <cauca-raised-button class=\"save-button\" color=\"primary\" label=\"save\" [isInProgress]=\"isSaving()\" (buttonClick)=\"save()\" />\n </mat-card-actions>\n\n</mat-card>\n","import { ChangeDetectionStrategy, Component, computed, HostListener, inject, input, OnInit, signal } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { Router } from '@angular/router';\nimport { PageTitleComponent, LoadingSpinnerIndicatorComponent, LoadingErrorComponent, SavingErrorBoxComponent, StrokedButtonComponent, RaisedButtonComponent, LoadingStateService, DialogService, ConfirmationResult, OnDeactivate } from '@cauca-911/material';\nimport { GroupEditionFormComponent } from '../../components/group-edition-form/group-edition-form.component';\nimport { GroupManagementService } from '../../core/api/group-management.service';\nimport { GroupEditionStateService } from '../../core/states/group-edition-state.service';\nimport { MANAGEMENT_ROUTE_SEGMENT } from '../../provide-cauca-management';\n\n@Component({\n selector: 'cauca-group-edition-page',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [PageTitleComponent, MatCardModule, LoadingSpinnerIndicatorComponent, LoadingErrorComponent, SavingErrorBoxComponent, StrokedButtonComponent, RaisedButtonComponent, GroupEditionFormComponent],\n templateUrl: './group-edition-page.component.html',\n styleUrl: './group-edition-page.component.scss',\n providers: [\n GroupEditionStateService,\n LoadingStateService,\n GroupManagementService,\n ]\n})\nexport class GroupEditionPageComponent implements OnInit, OnDeactivate {\n\n public readonly id = input.required<string>();\n public readonly isLoaded = signal<boolean>(false);\n public readonly isSaving = signal<boolean>(false);\n public readonly showSavingError = signal(false);\n public readonly title = computed(() => 'groupEdition.' + (this.id() === 'new' ? 'newGroupTitle' : 'editGroupTitle'));\n public readonly currentLocation = computed(() => [{ link: this.groupsPath, title: 'menu.groups' }]);\n\n private readonly state = inject(GroupEditionStateService);\n private readonly dialog = inject(DialogService);\n private readonly router = inject(Router);\n private readonly managementRouteSegment = inject(MANAGEMENT_ROUTE_SEGMENT, { optional: true });\n private readonly groupsPath = this.buildGroupsPath();\n private isClosing = false;\n\n public ngOnInit(): void {\n this.loadData();\n }\n\n public async canDeactivate(): Promise<boolean> {\n return await this.canCancel();\n }\n\n public async cancel(): Promise<void> {\n if (await this.canCancel()) {\n this.isClosing = true;\n await this.router.navigate([this.groupsPath]);\n }\n }\n\n public async save(): Promise<void> {\n try {\n await this.tryToSave();\n } catch {\n this.showSavingError.set(true);\n } finally {\n this.resetSavingState();\n }\n }\n\n public async loadData(): Promise<void> {\n try {\n await this.state.setGroup(this.id());\n this.isLoaded.set(true);\n } catch (e) {\n console.error(e);\n this.isLoaded.set(false);\n }\n }\n\n @HostListener('window:beforeunload', ['$event'])\n protected async onBeforeUnload(e: BeforeUnloadEvent): Promise<void> {\n if (await this.canCancel()) {\n e.preventDefault();\n }\n }\n\n private async tryToSave(): Promise<void> {\n this.initializeSavingState();\n if (await this.state.saveData()) {\n this.isClosing = true;\n this.router.navigate([this.groupsPath]);\n } else {\n this.showValidationError();\n }\n }\n\n private buildGroupsPath(): string {\n const defaultRouteSegment = 'management';\n const rawRouteSegment = this.managementRouteSegment?.trim();\n\n if (rawRouteSegment == null || rawRouteSegment === '') {\n return `/${defaultRouteSegment}/groups`;\n }\n\n const normalizedRouteSegment = rawRouteSegment\n .split('/')\n .map(segment => segment.trim())\n .find(segment => segment !== '') ?? defaultRouteSegment;\n\n return `/${normalizedRouteSegment}/groups`;\n }\n\n private async canCancel(): Promise<boolean> {\n return this.isClosing || !this.state.isDirty() || await this.askForCancelConfirmation() === ConfirmationResult.Yes;\n }\n\n private initializeSavingState(): void {\n this.isSaving.set(true);\n this.showSavingError.set(false);\n }\n\n private resetSavingState(): void {\n this.isSaving.set(false);\n this.state.form.enable();\n }\n\n private async askForCancelConfirmation(): Promise<ConfirmationResult> {\n return await this.dialog.askForConfirmation('cancelEditionDialog.title', 'cancelEditionDialog.message');\n }\n\n private showValidationError(): void {\n this.state.form.markAllAsTouched();\n this.dialog.showDialog('validationErrorDialog.title', 'validationErrorDialog.messageNext');\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { LoadingStateService } from '@cauca-911/material';\nimport { Observable } from 'rxjs';\nimport { UserPermissionDetail } from '../models/user-permission-detail';\nimport { MANAGEMENT_URL_PREFIX } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserPermissionDetailService {\n\n private readonly client = inject(HttpClient);\n private readonly loadingState = inject(LoadingStateService, { optional: true });\n private readonly baseUrl = this.buildBaseUrl(\n inject(CaucaCoreService).getConfig().apiUrl,\n inject(MANAGEMENT_URL_PREFIX, { optional: true }));\n\n public getForUser(userId: string): Observable<UserPermissionDetail[]> {\n const request$ = this.client.get<UserPermissionDetail[]>(this.buildApiUrl(`UserPermissionDetails/user/${userId}`));\n return this.loadingState ? this.loadingState.withLoadingIndicator(request$) : request$;\n }\n\n private buildBaseUrl(apiUrl: string, urlPrefix: string | null): string {\n const normalizedApiUrl = apiUrl.replace(/\\/+$/, '');\n const normalizedPrefix = urlPrefix?.trim().replace(/^\\/+|\\/+$/g, '');\n return normalizedPrefix\n ? `${normalizedApiUrl}/${normalizedPrefix}`\n : normalizedApiUrl;\n }\n\n private buildApiUrl(path: string): string {\n const normalizedApiUrl = this.baseUrl.replace(/\\/+$/, '');\n return `${normalizedApiUrl}/${path}`;\n }\n}\n","export enum PermissionStatus {\n Undefined = 0,\n Allowed = 1,\n Denied = 2\n}\n\nexport enum UserPermissionOriginKind {\n Group = 0,\n UserOverride = 1\n}\n\nexport interface UserPermissionOrigin {\n kind: UserPermissionOriginKind;\n groupId: string | null;\n groupName: string | null;\n isAllowed: boolean;\n}\n\nexport interface UserPermissionDetail {\n idModulePermission: string;\n tag: string;\n name: string;\n status: PermissionStatus;\n origins: UserPermissionOrigin[];\n}\n","<mat-form-field subscriptSizing=\"dynamic\" appearance=\"outline\" class=\"search-field\">\n <mat-label>{{ 'dataGrid.keywordsLabel' | translate }}</mat-label>\n <input matInput type=\"text\" [value]=\"searchText()\" (input)=\"searchText.set($any($event.target).value)\">\n <mat-icon matSuffix>search</mat-icon>\n</mat-form-field>\n\n<mat-list id=\"permission-list\">\n @for (permission of filteredPermissions(); track permission.idModulePermission) {\n <mat-list-item class=\"permission-item\">\n\n <mat-icon matListItemIcon\n [class.allowed]=\"permission.status === PermissionStatus.Allowed\"\n [class.denied]=\"permission.status !== PermissionStatus.Allowed\">\n @if (permission.status === PermissionStatus.Allowed) {\n check\n } @else {\n block\n }\n </mat-icon>\n\n <div matListItemTitle>{{ permission.name }}</div>\n\n <cauca-icon-button\n matListItemMeta\n icon=\"info\"\n [matMenuTriggerFor]=\"originsMenu\" />\n\n <mat-menu #originsMenu=\"matMenu\">\n <div class=\"origins-menu-content\" (click)=\"$event.stopPropagation()\">\n <div class=\"origin-item body2\">{{ 'userPermissionDetails.originsLabel' | translate }}</div>\n @for (origin of permission.origins; track $index) {\n <div class=\"origin-item\">\n <mat-icon [class.allowed]=\"origin.isAllowed\" [class.denied]=\"!origin.isAllowed\">\n @if (origin.isAllowed) {\n check\n } @else {\n block\n }\n </mat-icon>\n <span class=\"origin-name body1\">\n {{ origin.kind === UserPermissionOriginKind.UserOverride\n ? ('userPermissionDetails.userOverrideOrigin' | translate)\n : origin.groupName }}\n </span>\n </div>\n } @empty {\n <div class=\"origin-item\">\n <span class=\"no-origins\">{{ 'userPermissionDetails.noOrigins' | translate }}</span>\n </div>\n }\n </div>\n </mat-menu>\n\n </mat-list-item>\n } @empty {\n <div class=\"no-result\">\n <mat-icon class=\"no-result-icon\">grid_off</mat-icon>\n <div class=\"no-result-text body2\">{{ 'noResult' | translate }}</div>\n </div>\n }\n</mat-list>\n","import { ChangeDetectionStrategy, Component, computed, input, signal } from '@angular/core';\nimport { MatListModule } from '@angular/material/list';\nimport { MatFormField, MatLabel, MatSuffix } from '@angular/material/form-field';\nimport { MatInput } from '@angular/material/input';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { IconButtonComponent } from '@cauca-911/material';\nimport { toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\nimport { PermissionStatus, UserPermissionDetail, UserPermissionOriginKind } from '../../core/models/user-permission-detail';\n\n@Component({\n selector: 'cauca-user-permission-list',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatListModule, MatFormField, MatLabel, MatInput, MatSuffix, MatIcon, MatMenuModule, TranslatePipe, IconButtonComponent],\n templateUrl: './user-permission-list.component.html',\n styleUrl: './user-permission-list.component.scss',\n})\nexport class UserPermissionListComponent {\n\n public readonly permissions = input.required<UserPermissionDetail[]>();\n public readonly PermissionStatus = PermissionStatus;\n public readonly UserPermissionOriginKind = UserPermissionOriginKind;\n\n public readonly searchText = signal<string>('');\n\n public readonly filteredPermissions = computed(() =>\n this.permissions().filter((permission) => toLowerCaseAndWithoutDiacritics(permission.name)\n .includes(toLowerCaseAndWithoutDiacritics(this.searchText()))));\n}\n","<div mat-dialog-title>\n <div class=\"title-block\">\n <div class=\"h6\">{{ 'userPermissionDetails.title' | translate }}</div>\n @if (data.userDisplayName) {\n <div class=\"subtitle body2\">{{ data.userDisplayName }}</div>\n }\n </div>\n</div>\n\n<mat-dialog-content class=\"dialog-content\">\n <cauca-loading-spinner-indicator />\n <cauca-loading-error (retryRequest)=\"permissionsResource.reload()\" />\n\n <cauca-user-permission-list [permissions]=\"permissions()\" />\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\">\n <cauca-raised-button color=\"primary\" label=\"close\" (buttonClick)=\"closeDialog()\" />\n</mat-dialog-actions>\n","import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { rxResource } from '@angular/core/rxjs-interop';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { LoadingErrorComponent, LoadingSpinnerIndicatorComponent, LoadingStateService, RaisedButtonComponent } from '@cauca-911/material';\nimport { UserPermissionDetailService } from '../../core/api/user-permission-detail.service';\nimport { UserPermissionDetail } from '../../core/models/user-permission-detail';\nimport { UserPermissionListComponent } from '../user-permission-list/user-permission-list.component';\n\nexport interface UserPermissionsDialogData {\n userId: string;\n userDisplayName?: string;\n}\n\n@Component({\n selector: 'cauca-user-permissions-dialog',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatDialogModule,\n TranslatePipe,\n LoadingSpinnerIndicatorComponent,\n LoadingErrorComponent,\n RaisedButtonComponent,\n UserPermissionListComponent,\n ],\n providers: [LoadingStateService],\n templateUrl: './user-permissions-dialog.component.html',\n styleUrl: './user-permissions-dialog.component.scss'\n})\nexport class UserPermissionsDialogComponent {\n\n public readonly data = inject<UserPermissionsDialogData>(MAT_DIALOG_DATA);\n\n public readonly permissionsResource = rxResource<UserPermissionDetail[], string>({\n params: () => this.data.userId,\n stream: ({ params: userId }) => this.service.getForUser(userId)\n });\n public readonly permissions = computed(() => this.permissionsResource.value() ?? []);\n\n private readonly dialogRef = inject(MatDialogRef<UserPermissionsDialogComponent>);\n private readonly service = inject(UserPermissionDetailService);\n\n public closeDialog(): void {\n this.dialogRef.close();\n }\n}\n","<ng-container matColumnDef=\"{{ prop() }}\">\n\n <th mat-header-cell *matHeaderCellDef [ngStyle]=\"{'width': width()}\">\n {{ label() ?? capitalize(prop()) }}\n </th>\n\n <td mat-cell *matCellDef=\"let row\">\n @if (row[prop()] === allToken) {\n <span>{{ allLabel() | translate }}</span>\n } @else if (showToolTip()) {\n <span [matTooltip]=\"row[prop()]\">{{ row[prop()] }}</span>\n } @else {\n <span>{{ row[prop()] }}</span>\n }\n </td>\n\n <td mat-footer-cell *matFooterCellDef></td>\n\n</ng-container>\n","import { NgStyle } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, forwardRef, inject, input } from '@angular/core';\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef, MatTable } from '@angular/material/table';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { BaseGridColumnComponent, DataGridComponent, OdataGridComponent } from '@cauca-911/datagrid';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n/** The value a read view emits for a scope covering everything, in place of a list of names. */\nexport const AllScopeToken = 'ALL';\n\nfunction resolveTable(): MatTable<unknown> | undefined {\n const odata = inject(OdataGridComponent, { optional: true });\n const grid = inject(DataGridComponent, { optional: true });\n return (grid ?? odata)?.table;\n}\n\n@Component({\n selector: 'cauca-scope-list-grid-column',\n templateUrl: './scope-list-grid-column.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: BaseGridColumnComponent, useExisting: forwardRef(() => ScopeListGridColumnComponent) }],\n imports: [\n MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef, MatFooterCell, MatFooterCellDef,\n NgStyle, MatTooltip, TranslatePipe,\n ],\n})\nexport class ScopeListGridColumnComponent extends BaseGridColumnComponent {\n /** Translation key shown instead of the list when the row's scope covers everything. */\n public readonly allLabel = input.required<string>();\n\n protected readonly allToken = AllScopeToken;\n\n /**\n * The `providers` alias above is what makes the grid's `ContentChildren(BaseGridColumnComponent)`\n * match this subclass; without it the column registers nowhere and renders as an empty slot.\n */\n public constructor() {\n super(resolveTable());\n }\n}\n","<cauca-odata-grid\n matSort\n matSortActive=\"userName\"\n matSortDirection=\"asc\"\n aria-label=\"Users table\"\n resourceName=\"UserList\"\n [persistState]=\"persistState()\"\n [showTableOptions]=\"true\"\n [showRefreshButton]=\"true\"\n [showAddButton]=\"showAddButton()\"\n [addButtonLabel]=\"addButtonLabel() | translate\"\n (addButtonClick)=\"addClick.emit()\"\n [baseSort]=\"['userName']\"\n [filterPredicate]=\"filterPredicate\"\n [displayedColumns]=\"columns()\">\n\n <cauca-sortable-data-grid-column id=\"userName\" prop=\"userName\" [showToolTip]=\"true\"\n [label]=\"'userList.column.userName' | translate\"/>\n <cauca-sortable-data-grid-column id=\"firstName\" prop=\"firstName\" [showToolTip]=\"true\"\n [label]=\"'userList.column.firstName' | translate\"/>\n <cauca-sortable-data-grid-column id=\"lastName\" prop=\"lastName\" [showToolTip]=\"true\"\n [label]=\"'userList.column.lastName' | translate\"/>\n\n @for (column of extraColumns(); track column.prop) {\n @switch (column.kind) {\n @case ('scope') {\n <cauca-scope-list-grid-column [id]=\"column.prop\" [prop]=\"column.prop\"\n [width]=\"column.width ?? ''\"\n [showToolTip]=\"column.showToolTip ?? true\"\n [allLabel]=\"column.allLabel ?? ''\"\n [visibleByDefault]=\"column.visibleByDefault ?? true\"\n [label]=\"column.label | translate\"/>\n }\n @case ('check') {\n <cauca-sortable-data-grid-check-column [id]=\"column.prop\" [prop]=\"column.prop\"\n [width]=\"column.width ?? ''\"\n [visibleByDefault]=\"column.visibleByDefault ?? true\"\n [label]=\"column.label | translate\"/>\n }\n @default {\n <cauca-sortable-data-grid-column [id]=\"column.prop\" [prop]=\"column.prop\"\n [width]=\"column.width ?? ''\"\n [showToolTip]=\"column.showToolTip ?? true\"\n [visibleByDefault]=\"column.visibleByDefault ?? true\"\n [label]=\"column.label | translate\"/>\n }\n }\n }\n\n @if (hasRowActions()) {\n <cauca-data-grid-menu-column id=\"buttons\" prop=\"menu\"\n [canEdit]=\"canEdit()\"\n [canDelete]=\"canDelete()\"\n [editLinkField]=\"editLinkField()\"\n (deleteClick)=\"onDelete($event)\">\n <ng-template #menuTemplate let-row=\"row\">\n @if (showPermissions()) {\n <cauca-menu-item icon=\"list\" label=\"userList.viewPermissions\" [translateLabel]=\"true\"\n (buttonClick)=\"openPermissions(row)\"/>\n }\n </ng-template>\n </cauca-data-grid-menu-column>\n }\n\n</cauca-odata-grid>\n","import { ChangeDetectionStrategy, Component, OnInit, computed, inject, input, output, viewChild } from '@angular/core';\nimport { MatSort } from '@angular/material/sort';\nimport { DataGridMenuColumnComponent, OdataGridComponent, SortableDataGridCheckColumnComponent, SortableDataGridColumnComponent } from '@cauca-911/datagrid';\nimport { DialogService, MenuItemComponent } from '@cauca-911/material';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ODataFilter } from 'odata-data-source';\nimport f from 'odata-filter-builder';\nimport { UserGridColumn } from '../../core/models/user-grid-column';\nimport { UserListRow } from '../../core/models/user-list-row';\nimport { ScopeListGridColumnComponent } from '../scope-list-grid-column/scope-list-grid-column.component';\nimport { UserPermissionsDialogComponent } from '../user-permissions-dialog/user-permissions-dialog.component';\n\n/** The intersection of every site's feed, from `UserListItem` in `Cause.SecurityManagement`. */\nconst SharedColumns = ['userName', 'firstName', 'lastName'];\n\nconst SharedSearchedColumns = ['searchableUserName', 'searchableFirstName', 'searchableLastName'];\n\n@Component({\n selector: 'cauca-user-list-grid',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatSort, OdataGridComponent, SortableDataGridColumnComponent, SortableDataGridCheckColumnComponent,\n ScopeListGridColumnComponent, DataGridMenuColumnComponent, MenuItemComponent, TranslatePipe,\n ],\n templateUrl: './user-list-grid.component.html',\n})\nexport class UserListGridComponent implements OnInit {\n\n /**\n * Read when the grid registers its columns, in `ngAfterContentInit`. Changing it afterwards\n * recomputes `columns()` but does not re-run `applyColumns()`, so the MatTable is asked to\n * render a column id it never registered and throws `Could not find column with id \"X\"`.\n * `showPermissions`, `canEdit` and `canDelete` gate the row-action column the same way and\n * carry the same constraint — and are the more likely one to hit, since a consumer binds them\n * to an async permission signal more readily than it replaces the column list.\n */\n public readonly extraColumns = input<UserGridColumn[]>([]);\n public readonly showAddButton = input(false);\n /** Translation key. */\n public readonly addButtonLabel = input('');\n public readonly canEdit = input(false);\n public readonly canDelete = input(false);\n public readonly editLinkField = input('id');\n public readonly showPermissions = input(false);\n public readonly persistState = input(true);\n\n public readonly addClick = output<void>();\n public readonly deleteClick = output<UserListRow>();\n\n protected readonly hasRowActions = computed(() =>\n this.showPermissions() || this.canEdit() || this.canDelete());\n\n protected readonly columns = computed(() => [\n ...SharedColumns,\n ...this.extraColumns().map(column => column.prop),\n ...(this.hasRowActions() ? ['menu'] : []),\n ]);\n\n private readonly grid = viewChild.required(OdataGridComponent);\n private readonly sort = viewChild.required(MatSort);\n private readonly dialog = inject(DialogService);\n\n public ngOnInit(): void {\n this.grid().setUpSort(this.sort());\n }\n\n public refresh(): void {\n this.grid().refreshData();\n }\n\n protected readonly filterPredicate = (filter: string): ODataFilter[] => {\n const searched = [\n ...SharedSearchedColumns,\n ...this.extraColumns()\n .map(column => column.searchableProp)\n .filter((prop): prop is string => !!prop),\n ];\n const computedFilter = filter\n ? searched.reduce((builder, column) => builder.contains(column, filter), f('or'))\n : f();\n\n return [{ getFilter: () => [computedFilter.toString()] }];\n };\n\n protected async openPermissions(row: UserListRow): Promise<void> {\n await this.dialog.showCustomDialog(\n UserPermissionsDialogComponent,\n { userId: row.id, userDisplayName: `${row.firstName} ${row.lastName}` },\n { width: '600px' });\n }\n\n protected onDelete(row: unknown): void {\n this.deleteClick.emit(row as UserListRow);\n }\n}\n","import { ChangeDetectionStrategy, Component, input, output, viewChild } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { PageTitleComponent } from '@cauca-911/material';\nimport { UserListGridComponent } from '../../components/user-list-grid/user-list-grid.component';\nimport { UserGridColumn } from '../../core/models/user-grid-column';\nimport { UserListRow } from '../../core/models/user-list-row';\n\n@Component({\n selector: 'cauca-users-page',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatCardModule, PageTitleComponent, UserListGridComponent],\n templateUrl: './users-page.component.html',\n})\nexport class UsersPageComponent {\n\n /** Translation keys. Every site names its users page and its menu differently. */\n public readonly caption = input('management.users');\n public readonly baseCrumb = input('menu.management');\n public readonly breadcrumb = input('management.users');\n\n public readonly extraColumns = input<UserGridColumn[]>([]);\n public readonly showAddButton = input(false);\n public readonly addButtonLabel = input('');\n public readonly canEdit = input(false);\n public readonly canDelete = input(false);\n public readonly editLinkField = input('id');\n public readonly showPermissions = input(false);\n public readonly persistState = input(true);\n\n public readonly addClick = output<void>();\n public readonly deleteClick = output<UserListRow>();\n\n private readonly grid = viewChild.required(UserListGridComponent);\n\n public refresh(): void {\n this.grid().refresh();\n }\n}\n","<cauca-page-title\n [showBreadcrumb]=\"true\"\n [caption]=\"caption()\"\n [baseCrumb]=\"baseCrumb()\"\n [breadcrumb]=\"breadcrumb()\"/>\n\n<mat-card class=\"page-content\">\n\n <mat-card-content class=\"page-content-grid\">\n <cauca-user-list-grid\n [extraColumns]=\"extraColumns()\"\n [showAddButton]=\"showAddButton()\"\n [addButtonLabel]=\"addButtonLabel()\"\n [canEdit]=\"canEdit()\"\n [canDelete]=\"canDelete()\"\n [editLinkField]=\"editLinkField()\"\n [showPermissions]=\"showPermissions()\"\n [persistState]=\"persistState()\"\n (addClick)=\"addClick.emit()\"\n (deleteClick)=\"deleteClick.emit($event)\"/>\n </mat-card-content>\n\n</mat-card>\n","export interface UserLoginForEdition {\n userName: string;\n password: string;\n twoFactorAuthenticatorEnabled: boolean;\n}\n\nexport interface UserPersonalInformationForEdition {\n firstName: string;\n lastName: string;\n email: string;\n phoneNumber: string;\n}\n\nexport interface UserForEditionBase {\n id: string;\n login: UserLoginForEdition;\n personalInformation: UserPersonalInformationForEdition;\n groupIds: string[];\n}\n\n/** What creation sends as the identifier. */\nexport const EmptyUserId = '00000000-0000-0000-0000-000000000000';\n\nexport function createEmptyUserForEdition(): UserForEditionBase {\n return {\n id: EmptyUserId,\n login: { userName: '', password: '', twoFactorAuthenticatorEnabled: true },\n personalInformation: { firstName: '', lastName: '', email: '', phoneNumber: '' },\n groupIds: [],\n };\n}\n","import { email, maxLength, pattern, readonly, required, Schema, schema, validateHttp } from '@angular/forms/signals';\nimport { UserLoginForEdition, UserPersonalInformationForEdition } from './user-for-edition';\n\nconst RequiredMessage = 'error.requiredField';\nconst MaxLengthMessage = 'error.maxLength';\n\nexport interface UserLoginSchemaOptions {\n /**\n * Whether this is a creation — the password rule is required only then.\n *\n * A consumer binding `cauca-user-login-fields` must pass this same value to that component's\n * own `isNew` input; nothing here checks the two agree, and a mismatch shows the password as\n * optional (or required) without matching what actually gets validated.\n *\n * Never add a `disabled()` rule to the password field based on this or any other condition:\n * `cauca-password-selection`'s `setDisabledState(true)` disables its inner form group, which\n * makes the group invalid and fires `onChange('')`, silently wiping the stored password.\n */\n readonly isNew: () => boolean;\n /**\n * Builds the availability URL for one candidate name. The caller closes over the id of the\n * user being edited, so this takes only the name.\n */\n readonly userNameAvailabilityUrl: (userName: string) => string;\n}\n\nexport function createUserLoginSchema(options: UserLoginSchemaOptions): Schema<UserLoginForEdition> {\n return schema<UserLoginForEdition>((login) => {\n required(login.userName, { message: RequiredMessage });\n maxLength(login.userName, 100, { message: MaxLengthMessage });\n\n validateHttp(login.userName, {\n request: (context) => {\n const userName = context.value();\n return userName ? options.userNameAvailabilityUrl(userName) : undefined;\n },\n onSuccess: (isAvailable: boolean) => (isAvailable\n ? undefined\n : { kind: 'userNameTaken', message: 'management.userNameAlreadyUsed' }),\n onError: () => undefined,\n debounce: 400,\n });\n\n required(login.password, {\n when: () => options.isNew(),\n message: RequiredMessage,\n });\n });\n}\n\nexport interface UserPersonalInformationSchemaOptions {\n /** Whether the email field is read-only, e.g. because it is managed by an external identity provider. */\n readonly isEmailReadOnly: () => boolean;\n}\n\nexport function createUserPersonalInformationSchema(\n options: UserPersonalInformationSchemaOptions,\n): Schema<UserPersonalInformationForEdition> {\n return schema<UserPersonalInformationForEdition>((info) => {\n required(info.firstName, { message: RequiredMessage });\n maxLength(info.firstName, 100, { message: MaxLengthMessage });\n required(info.lastName, { message: RequiredMessage });\n maxLength(info.lastName, 100, { message: MaxLengthMessage });\n required(info.email, { message: RequiredMessage });\n email(info.email, { message: 'error.invalidEmail' });\n maxLength(info.email, 100, { message: MaxLengthMessage });\n readonly(info.email, { when: () => options.isEmailReadOnly() });\n pattern(info.phoneNumber, /^(\\d{10})?$/, { message: 'error.invalidPhoneNumber' });\n });\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { Observable } from 'rxjs';\nimport { UserForEditionBase } from '../models/user-for-edition';\nimport { MANAGEMENT_URL_PREFIX } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserEditionService<TUserForEdition extends UserForEditionBase> {\n\n private readonly client = inject(HttpClient);\n private readonly baseUrl = inject(CaucaCoreService).getConfig().apiUrl;\n private readonly urlPrefix = inject(MANAGEMENT_URL_PREFIX, { optional: true }) ?? '';\n\n public getForEdition(userId: string): Observable<TUserForEdition> {\n return this.client.get<TUserForEdition>(this.buildApiUrl(`UserEdition/${userId}`));\n }\n\n public saveForEdition(user: TUserForEdition): Observable<void> {\n return this.client.post<void>(this.buildApiUrl('UserEdition'), user);\n }\n\n public userNameAvailabilityUrl(userName: string, userId: string): string {\n const params = new HttpParams({ fromObject: { userName, userId } });\n return `${this.buildApiUrl('UserEdition/username-available')}?${params.toString()}`;\n }\n\n private buildApiUrl(path: string): string {\n const normalizedApiUrl = this.baseUrl.replace(/\\/+$/, '');\n const normalizedPrefix = this.urlPrefix.trim().replace(/^\\/+|\\/+$/g, '');\n return normalizedPrefix\n ? `${normalizedApiUrl}/${normalizedPrefix}/${path}`\n : `${normalizedApiUrl}/${path}`;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { Observable } from 'rxjs';\nimport { AssignableGroup } from '../models/assignable-group';\nimport { MANAGEMENT_URL_PREFIX } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AssignableGroupsService {\n\n private readonly client = inject(HttpClient);\n private readonly baseUrl = inject(CaucaCoreService).getConfig().apiUrl;\n private readonly urlPrefix = inject(MANAGEMENT_URL_PREFIX, { optional: true }) ?? '';\n\n public getAssignableGroups(): Observable<AssignableGroup[]> {\n return this.client.get<AssignableGroup[]>(this.buildApiUrl('GroupList/assignable'));\n }\n\n private buildApiUrl(path: string): string {\n const normalizedApiUrl = this.baseUrl.replace(/\\/+$/, '');\n const normalizedPrefix = this.urlPrefix.trim().replace(/^\\/+|\\/+$/g, '');\n return normalizedPrefix\n ? `${normalizedApiUrl}/${normalizedPrefix}/${path}`\n : `${normalizedApiUrl}/${path}`;\n }\n}\n","<cauca-expandable-panel [caption]=\"'userEdition.loginSectionCaption' | translate\">\n <div class=\"user-login-fields\">\n <mat-form-field id=\"user-name-field\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'management.userName' | translate }}</mat-label>\n <input matInput [attr.aria-label]=\"'management.userName' | translate\" [formField]=\"field().userName\">\n @if (isValidatingUserName()) {\n <mat-progress-spinner matSuffix diameter=\"16\" mode=\"indeterminate\"/>\n }\n </mat-form-field>\n <cauca-field-errors [field]=\"field().userName\"/>\n\n <div class=\"password-fields\">\n <cauca-password-selection [required]=\"isNew()\" [formField]=\"field().password\"/>\n </div>\n\n <mat-slide-toggle color=\"primary\" [formField]=\"field().twoFactorAuthenticatorEnabled\">\n {{ 'userEdition.twoFactorAuthenticatorEnabled' | translate }}\n </mat-slide-toggle>\n\n <ng-content/>\n </div>\n</cauca-expandable-panel>\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { FieldTree, FormField } from '@angular/forms/signals';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { ExpandablePanelComponent, FieldErrorsComponent, PasswordSelectionComponent } from '@cauca-911/material';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { UserLoginForEdition } from '../../core/models/user-for-edition';\n\n@Component({\n selector: 'cauca-user-login-fields',\n imports: [\n ExpandablePanelComponent,\n FieldErrorsComponent,\n FormField,\n MatFormFieldModule,\n MatInputModule,\n MatProgressSpinnerModule,\n MatSlideToggleModule,\n PasswordSelectionComponent,\n TranslatePipe,\n ],\n templateUrl: './user-login-fields.component.html',\n styleUrl: './user-login-fields.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UserLoginFieldsComponent {\n public readonly field = input.required<FieldTree<UserLoginForEdition>>();\n public readonly isNew = input(false);\n public readonly isValidatingUserName = input(false);\n}\n","<cauca-expandable-panel [caption]=\"'userEdition.personalInformationSectionCaption' | translate\">\n <div class=\"user-personal-information-fields\">\n <mat-form-field id=\"first-name-field\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'management.firstName' | translate }}</mat-label>\n <input matInput [attr.aria-label]=\"'management.firstName' | translate\" [formField]=\"field().firstName\">\n </mat-form-field>\n <cauca-field-errors [field]=\"field().firstName\"/>\n\n <mat-form-field id=\"last-name-field\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'management.lastName' | translate }}</mat-label>\n <input matInput [attr.aria-label]=\"'management.lastName' | translate\" [formField]=\"field().lastName\">\n </mat-form-field>\n <cauca-field-errors [field]=\"field().lastName\"/>\n\n <mat-form-field id=\"email-field\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'management.email' | translate }}</mat-label>\n <input matInput [attr.aria-label]=\"'management.email' | translate\" [formField]=\"field().email\">\n @if (isEmailReadOnly() && emailHint()) {\n <mat-hint>{{ emailHint() | translate }}</mat-hint>\n }\n </mat-form-field>\n <cauca-field-errors [field]=\"field().email\"/>\n\n <cauca-phone-number-input [formField]=\"field().phoneNumber\" [label]=\"'management.phoneNumber'\"/>\n\n <ng-content/>\n </div>\n</cauca-expandable-panel>\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { FieldTree, FormField } from '@angular/forms/signals';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { ExpandablePanelComponent, FieldErrorsComponent, PhoneNumberInputComponent } from '@cauca-911/material';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { UserPersonalInformationForEdition } from '../../core/models/user-for-edition';\n\n@Component({\n selector: 'cauca-user-personal-information-fields',\n imports: [\n ExpandablePanelComponent,\n FieldErrorsComponent,\n FormField,\n MatFormFieldModule,\n MatInputModule,\n PhoneNumberInputComponent,\n TranslatePipe,\n ],\n templateUrl: './user-personal-information-fields.component.html',\n styleUrl: './user-personal-information-fields.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UserPersonalInformationFieldsComponent {\n public readonly field = input.required<FieldTree<UserPersonalInformationForEdition>>();\n public readonly isEmailReadOnly = input(false);\n public readonly emailHint = input('');\n}\n","<mat-form-field class=\"user-groups-selector-field\" subscriptSizing=\"dynamic\">\n <mat-label>{{ label() | translate }}</mat-label>\n <mat-select multiple [value]=\"value()\" [disabled]=\"isSelectDisabled()\"\n [required]=\"required()\"\n [attr.aria-invalid]=\"invalid()\"\n [attr.name]=\"name() || null\"\n (valueChange)=\"onSelectionChange($event)\">\n <mat-option>\n <ngx-mat-select-search\n [formControl]=\"filterControl\"\n [placeholderLabel]=\"'search' | translate\"\n [noEntriesFoundLabel]=\"'noResult' | translate\"/>\n </mat-option>\n\n @for (option of filteredOptions(); track option.id) {\n <mat-option [value]=\"option.id\">{{ option.name }}</mat-option>\n }\n </mat-select>\n</mat-form-field>\n\n<cauca-control-field-errors [touched]=\"touched()\" [errors]=\"errors()\"/>\n","import { ChangeDetectionStrategy, Component, computed, inject, input, model, output } from '@angular/core';\nimport { rxResource, toSignal } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { FormValueControl, ValidationError } from '@angular/forms/signals';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ControlFieldErrorsComponent } from '@cauca-911/material';\nimport { toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport { AssignableGroupsService } from '../../core/api/assignable-groups.service';\nimport { AssignableGroup } from '../../core/models/assignable-group';\n\n@Component({\n selector: 'cauca-user-groups-selector',\n imports: [\n ControlFieldErrorsComponent,\n MatFormFieldModule,\n MatSelectModule,\n NgxMatSelectSearchModule,\n ReactiveFormsModule,\n TranslatePipe,\n ],\n templateUrl: './user-groups-selector.component.html',\n styleUrl: './user-groups-selector.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UserGroupsSelectorComponent implements FormValueControl<string[]> {\n public readonly value = model<string[]>([]);\n public readonly label = input<string>('management.groups');\n public readonly disabled = input(false);\n // Shadowing the `readonly` keyword as a property name is mandated by\n // `FormUiControl.readonly` — see `base-file-picker.ts`.\n public readonly readonly = input(false);\n public readonly required = input(false);\n public readonly invalid = input(false);\n public readonly touched = input(false);\n public readonly name = input<string>('');\n public readonly errors = input<readonly ValidationError.WithOptionalFieldTree[]>([]);\n\n public readonly touch = output<void>();\n\n protected readonly filterControl = new FormControl('');\n\n protected readonly options = computed<AssignableGroup[]>(() => this.groups.value());\n\n protected readonly filteredOptions = computed<AssignableGroup[]>(() => {\n const filter = toLowerCaseAndWithoutDiacritics(this.filterText() ?? '');\n return filter\n ? this.options().filter((option) => toLowerCaseAndWithoutDiacritics(option.name).includes(filter))\n : this.options();\n });\n\n protected readonly isSelectDisabled = computed(() =>\n this.disabled() || this.readonly() || this.options().length === 0);\n\n private readonly assignableGroupsService = inject(AssignableGroupsService);\n\n private readonly filterText = toSignal(this.filterControl.valueChanges, { initialValue: '' });\n\n private readonly groups = rxResource({\n stream: () => this.assignableGroupsService.getAssignableGroups(),\n defaultValue: [] as AssignableGroup[],\n });\n\n protected onSelectionChange(groupIds: string[]): void {\n this.value.set(groupIds);\n this.touch.emit();\n }\n}\n","/*\n * Public API Surface of cauca-management\n */\n\n\nexport * from './lib/provide-cauca-management';\nexport * from './lib/management.routes';\nexport * from './lib/core/refreshable-permission-state';\n\nexport * from './lib/pages/groups-page/groups-page.component';\nexport * from './lib/pages/group-edition-page/group-edition-page.component';\n\nexport * from './lib/components/user-permissions-dialog/user-permissions-dialog.component';\nexport * from './lib/pages/users-page/users-page.component';\nexport * from './lib/components/user-list-grid/user-list-grid.component';\nexport * from './lib/components/scope-list-grid-column/scope-list-grid-column.component';\nexport * from './lib/core/models/user-grid-column';\nexport * from './lib/core/models/user-list-row';\nexport * from './lib/core/models/user-for-edition';\nexport * from './lib/core/models/user-edition.schema';\nexport * from './lib/core/models/assignable-group';\nexport * from './lib/core/api/user-edition.service';\nexport * from './lib/core/api/assignable-groups.service';\nexport * from './lib/components/user-login-fields/user-login-fields.component';\nexport * from './lib/components/user-personal-information-fields/user-personal-information-fields.component';\nexport * from './lib/components/user-groups-selector/user-groups-selector.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","uuid","_forTrack0","i1","i2","i5","i3","i4","f"],"mappings":"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"}