@anvil-eco/portal-components 0.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anvil-eco-portal-components.mjs","sources":["../../../../../libs/portal/portal-components/src/lib/portal-components/portal-components.ts","../../../../../libs/portal/portal-components/src/lib/portal-components/portal-components.html","../../../../../libs/portal/portal-components/src/lib/welcome-component/welcome.component.html","../../../../../libs/portal/portal-components/src/lib/welcome-component/welcome.component.ts","../../../../../libs/portal/portal-components/src/lib/shared/avatar-editor/avatar-editor.component.html","../../../../../libs/portal/portal-components/src/lib/shared/avatar-editor/avatar-editor.component.ts","../../../../../libs/portal/portal-components/src/lib/shared/settings-nav/settings-nav.component.ts","../../../../../libs/portal/portal-components/src/lib/shared/favicon-editor/favicon-editor.component.html","../../../../../libs/portal/portal-components/src/lib/shared/favicon-editor/favicon-editor.component.ts","../../../../../libs/portal/portal-components/src/lib/enterprise/enterprise-edit-form/enterprise-edit-form.html","../../../../../libs/portal/portal-components/src/lib/enterprise/enterprise-edit-form/enterprise-edit-form.component.ts","../../../../../libs/portal/portal-components/src/lib/auth/auth-layout/auth-layout.component.ts","../../../../../libs/portal/portal-components/src/lib/auth/login-email/login-email.component.ts","../../../../../libs/portal/portal-components/src/lib/auth/login-password/login-password.component.ts","../../../../../libs/portal/portal-components/src/lib/auth/login-password/login-password.component.html","../../../../../libs/portal/portal-components/src/lib/auth/forgot-password/forgot-password.component.ts","../../../../../libs/portal/portal-components/src/lib/auth/reset-password/reset-password.component.ts","../../../../../libs/portal/portal-components/src/lib/auth/verify-pending/verify-pending.component.ts","../../../../../libs/portal/portal-components/src/lib/auth/verify-email/verify-email.component.ts","../../../../../libs/portal/portal-components/src/lib/auth/access-denied/access-denied.component.ts","../../../../../libs/portal/portal-components/src/lib/roles/role-create-general/role-create-general.component.ts","../../../../../libs/portal/portal-components/src/lib/shared/admin-list-nav/admin-list-nav.component.ts","../../../../../libs/portal/portal-components/src/lib/shared/bool-filter/bool-filter.component.ts","../../../../../libs/portal/portal-components/src/lib/roles/role-create-primary/role-create-primary.component.ts","../../../../../libs/portal/portal-components/src/lib/roles/role-list/role-action-cell.component.ts","../../../../../libs/portal/portal-components/src/lib/roles/role-list/role-list.component.html","../../../../../libs/portal/portal-components/src/lib/roles/role-list/role-list.component.ts","../../../../../libs/portal/portal-components/src/lib/roles/role-detail-nav/role-detail-nav.component.ts","../../../../../libs/portal/portal-components/src/lib/roles/role-membership/role-membership.component.html","../../../../../libs/portal/portal-components/src/lib/roles/role-membership/role-membership.component.ts","../../../../../libs/portal/portal-components/src/lib/roles/role-permissions/role-permissions.component.html","../../../../../libs/portal/portal-components/src/lib/roles/role-permissions/role-permissions.component.ts","../../../../../libs/portal/portal-components/src/lib/roles/role-detail/role-detail.component.ts","../../../../../libs/portal/portal-components/src/lib/roles/role-edit/role-edit.component.ts","../../../../../libs/portal/portal-components/src/lib/auth-policies/auth-policy-form-create/auth-policy-form-create.component.ts","../../../../../libs/portal/portal-components/src/lib/auth-policies/auth-policy-form-edit/auth-policy-form-edit.component.ts","../../../../../libs/portal/portal-components/src/lib/auth-policies/auth-policy-list/auth-policy-action-cell.component.ts","../../../../../libs/portal/portal-components/src/lib/auth-policies/auth-policy-list/auth-policy-list.component.ts","../../../../../libs/portal/portal-components/src/lib/users/user-list/user-action-cell.component.ts","../../../../../libs/portal/portal-components/src/lib/users/user-list/user-name-cell.component.html","../../../../../libs/portal/portal-components/src/lib/users/user-list/user-name-cell.component.ts","../../../../../libs/portal/portal-components/src/lib/users/user-form-create/user-form-create.component.ts","../../../../../libs/portal/portal-components/src/lib/users/user-list/user-list.component.html","../../../../../libs/portal/portal-components/src/lib/users/user-list/user-list.component.ts","../../../../../libs/portal/portal-components/src/lib/users/user-detail-nav/user-detail-nav.component.ts","../../../../../libs/portal/portal-components/src/lib/users/user-change-email/user-change-email.component.ts","../../../../../libs/portal/portal-components/src/lib/users/user-update-details/user-update-details.component.ts","../../../../../libs/portal/portal-components/src/lib/users/user-detail/user-detail.component.html","../../../../../libs/portal/portal-components/src/lib/users/user-detail/user-detail.component.ts","../../../../../libs/portal/portal-components/src/lib/users/user-role-membership/user-role-membership.component.html","../../../../../libs/portal/portal-components/src/lib/users/user-role-membership/user-role-membership.component.ts","../../../../../libs/portal/portal-components/src/lib/users/user-login-audits/user-login-audits.component.html","../../../../../libs/portal/portal-components/src/lib/users/user-login-audits/user-login-audits.component.ts","../../../../../libs/portal/portal-components/src/lib/error-entries/error-entry-properties-modal/error-entry-properties-modal.component.ts","../../../../../libs/portal/portal-components/src/lib/error-entries/error-entry-properties-modal/error-entry-properties-modal.component.html","../../../../../libs/portal/portal-components/src/lib/users/user-error-log/user-error-log.component.html","../../../../../libs/portal/portal-components/src/lib/users/user-error-log/user-error-log.component.ts","../../../../../libs/portal/portal-components/src/lib/users/user-profile-form-edit/user-profile-form-edit.component.ts","../../../../../libs/portal/portal-components/src/lib/my-profile/my-profile-overview/my-profile-overview.component.html","../../../../../libs/portal/portal-components/src/lib/my-profile/my-profile-overview/my-profile-overview.component.ts","../../../../../libs/portal/portal-components/src/lib/my-profile/my-profile-email-form/my-profile-email-form.component.ts","../../../../../libs/portal/portal-components/src/lib/my-profile/my-profile-avatar-form/my-profile-avatar-form.component.html","../../../../../libs/portal/portal-components/src/lib/my-profile/my-profile-avatar-form/my-profile-avatar-form.component.ts","../../../../../libs/portal/portal-components/src/lib/my-profile/my-profile-demographics-form/my-profile-demographics-form.component.ts","../../../../../libs/portal/portal-components/src/lib/my-profile/my-profile-reset-password/my-profile-reset-password.component.ts","../../../../../libs/portal/portal-components/src/lib/error-entries/error-entry-list/error-entry-list.component.html","../../../../../libs/portal/portal-components/src/lib/error-entries/error-entry-list/error-entry-list.component.ts","../../../../../libs/portal/portal-components/src/lib/audit-logs/audit-log-list/audit-log-list.component.html","../../../../../libs/portal/portal-components/src/lib/audit-logs/audit-log-list/audit-log-list.component.ts","../../../../../libs/portal/portal-components/src/lib/login-audits/login-audit-list/login-audit-list.component.html","../../../../../libs/portal/portal-components/src/lib/login-audits/login-audit-list/login-audit-list.component.ts","../../../../../libs/portal/portal-components/src/lib/portal/portal-list/portal-action-cell.component.ts","../../../../../libs/portal/portal-components/src/lib/portal/portal-list/portal-name-cell.component.html","../../../../../libs/portal/portal-components/src/lib/portal/portal-list/portal-name-cell.component.ts","../../../../../libs/portal/portal-components/src/lib/portal/portal-list/portal-list.component.html","../../../../../libs/portal/portal-components/src/lib/portal/portal-list/portal-list.component.ts","../../../../../libs/portal/portal-components/src/lib/portal/portal-edit-form/portal-edit-form.component.html","../../../../../libs/portal/portal-components/src/lib/portal/portal-edit-form/portal-edit-form.component.ts","../../../../../libs/portal/portal-components/src/lib/auth/setup-password/setup-password.component.ts","../../../../../libs/portal/portal-components/src/lib/portal.routes.ts","../../../../../libs/portal/portal-components/src/anvil-eco-portal-components.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-portal-components',\n imports: [],\n templateUrl: './portal-components.html',\n styleUrl: './portal-components.css',\n})\nexport class PortalComponents {}\n","<p>PortalComponents works!</p>\n","<div class=\"welcome-content\">\n <p>Welcome to Anvil Portal</p>\n</div>\n\n<!-- Over drawer content -->\n<ng-template overDrawerContent>\n <div class=\"welcome-drawer-header\">\n <span>Details</span>\n <button type=\"button\" class=\"anv-icon-btn\" aria-label=\"Close details panel\" (click)=\"overDrawerOpen.set(false)\">\n <i class=\"bi bi-x-lg\" aria-hidden=\"true\"></i>\n </button>\n </div>\n <hr class=\"welcome-divider\">\n <div class=\"welcome-drawer-body\">\n <p>This panel can surface contextual information, notifications, or quick actions relevant to the current page.</p>\n </div>\n</ng-template>\n","import { Component, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverDrawerContentDirective } from '@anvil-eco/shared-ui';\n\n@Component({\n selector: 'lib-welcome',\n imports: [CommonModule, OverDrawerContentDirective],\n templateUrl: './welcome.component.html',\n styleUrl: './welcome.component.scss',\n})\nexport class WelcomeComponent {\n overDrawerOpen = signal(false);\n}\n","<div class=\"ave-body\">\n\n <!-- Radio group -->\n <div class=\"ave-radio-group\" role=\"radiogroup\" aria-label=\"Avatar source\">\n @for (opt of avatarOptions; track opt.mode) {\n <label class=\"ave-radio-option\" [class.ave-radio-option--active]=\"avatarMode() === opt.mode\">\n <input type=\"radio\" name=\"avatarMode\"\n [value]=\"opt.mode\"\n [checked]=\"avatarMode() === opt.mode\"\n (change)=\"setAvatarMode(opt.mode)\" />\n <i class=\"bi bi-{{ opt.icon }}\" aria-hidden=\"true\"></i>\n <span>{{ opt.label }}</span>\n </label>\n }\n </div>\n\n <!-- Conditional input -->\n <div class=\"ave-avatar-input\">\n @switch (avatarMode()) {\n @case ('icon') {\n <label class=\"ave-field-label\">Bootstrap Icon Class</label>\n <input type=\"text\" class=\"anv-input\"\n placeholder=\"e.g. person-circle\"\n [value]=\"iconClass()\"\n (input)=\"iconClass.set($any($event.target).value)\"\n aria-label=\"Bootstrap icon class\" />\n <span class=\"ave-field-hint\">Enter the icon name without the <code>bi-</code> prefix</span>\n }\n @case ('svg') {\n <label class=\"ave-field-label\">SVG Markup</label>\n <textarea class=\"anv-input anv-input--textarea\" rows=\"5\"\n placeholder=\"Paste SVG string here…\"\n [value]=\"svgString()\"\n (input)=\"svgString.set($any($event.target).value)\"\n aria-label=\"SVG markup\"></textarea>\n }\n @case ('base64') {\n <label class=\"ave-field-label\">Image File</label>\n <input type=\"file\" class=\"ave-file-input\"\n accept=\"image/*\"\n (change)=\"onFileSelected($event)\"\n aria-label=\"Upload image file\" />\n @if (base64Data()) {\n <span class=\"ave-field-hint ave-field-hint--ok\">\n <i class=\"bi bi-check-circle\" aria-hidden=\"true\"></i> Image loaded\n </span>\n }\n }\n @case ('url') {\n <label class=\"ave-field-label\">Image URL</label>\n <input type=\"url\" class=\"anv-input\"\n placeholder=\"https://example.com/avatar.png\"\n [value]=\"urlString()\"\n (input)=\"urlString.set($any($event.target).value)\"\n aria-label=\"Image URL\" />\n }\n }\n </div>\n\n <!-- Preview -->\n <div class=\"ave-avatar-preview\">\n <span class=\"ave-preview-label\">Preview</span>\n <div class=\"ave-preview-box\">\n @switch (avatarPreview().kind) {\n @case ('icon') {\n <i [class]=\"'bi bi-' + avatarPreview().iconClass\" aria-hidden=\"true\"></i>\n }\n @case ('svg') {\n <span [innerHTML]=\"avatarPreview().svgHtml\" aria-hidden=\"true\"></span>\n }\n @case ('base64') {\n <img [src]=\"avatarPreview().src\" alt=\"Avatar preview\" />\n }\n @case ('url') {\n <img [src]=\"avatarPreview().src\" alt=\"Avatar preview\" />\n }\n @default {\n <i class=\"bi bi-person-circle\" aria-hidden=\"true\"></i>\n }\n }\n </div>\n </div>\n\n <!-- Error feedback -->\n <lib-error-alert [sourceId]=\"sourceId\" />\n\n <!-- Actions -->\n <div class=\"ave-actions\">\n <lib-button-base\n variant=\"primary\"\n [disabled]=\"avatarSaving() || avatarRemoving() || !avatarHasValue()\"\n (clicked)=\"saveAvatar()\">\n @if (avatarSaving()) { <span class=\"ave-spinner\" aria-hidden=\"true\"></span> }\n Save Avatar\n </lib-button-base>\n @if (removeFn) {\n <lib-button-base\n variant=\"danger\"\n [disabled]=\"avatarSaving() || avatarRemoving()\"\n (clicked)=\"promptRemoveAvatar()\">\n @if (avatarRemoving()) { <span class=\"ave-spinner\" aria-hidden=\"true\"></span> }\n Remove Avatar\n </lib-button-base>\n }\n </div>\n\n </div>\n\n @if (showRemoveConfirm()) {\n <lib-message-box\n [isVisible]=\"true\"\n [config]=\"removeConfirmConfig\"\n (yes)=\"onRemoveConfirmed()\"\n (no)=\"showRemoveConfirm.set(false)\" />\n }","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { AVATAR_NONE, AvatarService, ResolvedAvatar } from '@anvil-eco/portal-services';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { ButtonBaseComponent, ErrorAlertComponent, ErrorService, MessageBoxComponent, MessageBoxConfig, ToastService } from '@anvil-eco/shared-ui';\n\nexport function inferAvatarType(avatar: string | null | undefined): number {\n if (!avatar) return 0;\n if (avatar.startsWith('data:')) return 2;\n if (avatar.trimStart().toLowerCase().startsWith('<svg')) return 1;\n if (avatar.startsWith('http:') || avatar.startsWith('https:')) return 4;\n return 3;\n}\n\ntype AvatarMode = 'icon' | 'svg' | 'base64' | 'url';\n\nconst AVATAR_MODE: Record<number, AvatarMode> = { 1: 'svg', 2: 'base64', 3: 'icon', 4: 'url' };\n\n@Component({\n selector: 'lib-avatar-editor',\n standalone: true,\n imports: [ButtonBaseComponent, ErrorAlertComponent, MessageBoxComponent],\n encapsulation: ViewEncapsulation.None,\n styleUrl: './avatar-editor.component.scss',\n templateUrl: './avatar-editor.component.html',\n})\nexport class AvatarEditorComponent {\n private readonly avatarService = inject(AvatarService);\n private readonly toastService = inject(ToastService);\n private readonly errorService = inject(ErrorService);\n\n readonly sourceId = 'avatar-editor';\n\n @Input() set initialAvatar(value: string) {\n if (!value || this._initialized) return;\n this._initialized = true;\n const mode = AVATAR_MODE[inferAvatarType(value)];\n if (!mode) return;\n this.avatarMode.set(mode);\n switch (mode) {\n case 'icon': this.iconClass.set(value); break;\n case 'svg': this.svgString.set(value); break;\n case 'base64': this.base64Data.set(value); break;\n case 'url': this.urlString.set(value); break;\n }\n }\n private _initialized = false;\n\n @Input({ required: true }) saveFn!: (avatar: string) => Observable<unknown>;\n @Input() removeFn?: () => Observable<unknown>;\n\n showSuccessToast = input(true);\n\n @Output() saved = new EventEmitter<void>();\n @Output() removed = new EventEmitter<void>();\n @Output() valueChange = new EventEmitter<string>();\n\n readonly avatarOptions: { mode: AvatarMode; label: string; icon: string }[] = [\n { mode: 'icon', label: 'Icon Class', icon: 'bootstrap' },\n { mode: 'svg', label: 'SVG', icon: 'filetype-svg' },\n { mode: 'base64', label: 'File', icon: 'upload' },\n { mode: 'url', label: 'URL', icon: 'link-45deg' },\n ];\n\n readonly avatarMode = signal<AvatarMode>('icon');\n readonly iconClass = signal('');\n readonly svgString = signal('');\n readonly urlString = signal('');\n readonly base64Data = signal('');\n readonly avatarSaving = signal(false);\n readonly avatarRemoving = signal(false);\n readonly showRemoveConfirm = signal(false);\n\n readonly removeConfirmConfig: MessageBoxConfig = {\n title: 'Remove Avatar',\n message: 'Are you sure you want to remove this avatar?',\n context: 'danger',\n yesButton: { text: 'Remove', icon: 'bi bi-trash', context: 'danger' },\n noButton: { text: 'Cancel', context: 'secondary' },\n };\n\n readonly avatarPreview = computed<ResolvedAvatar>(() => {\n switch (this.avatarMode()) {\n case 'icon': return this.avatarService.resolve(this.iconClass() || null, 3);\n case 'svg': return this.avatarService.resolve(this.svgString() || null, 1);\n case 'base64': return this.avatarService.resolve(this.base64Data() || null, 2);\n case 'url': return this.avatarService.resolve(this.urlString() || null, 4);\n default: return AVATAR_NONE;\n }\n });\n\n readonly avatarHasValue = computed(() => {\n switch (this.avatarMode()) {\n case 'icon': return !!this.iconClass().trim();\n case 'svg': return !!this.svgString().trim();\n case 'base64': return !!this.base64Data();\n case 'url': return !!this.urlString().trim();\n default: return false;\n }\n });\n\n setAvatarMode(mode: AvatarMode): void {\n this.avatarMode.set(mode);\n this.errorService.clearError();\n }\n\n onFileSelected(event: Event): void {\n const input = event.target as HTMLInputElement;\n const file = input.files?.[0];\n if (!file) return;\n\n const objectUrl = URL.createObjectURL(file);\n const img = new Image();\n\n img.onload = () => {\n const canvas = document.createElement('canvas');\n canvas.width = canvas.height = 150;\n const ctx = canvas.getContext('2d')!;\n const size = Math.min(img.naturalWidth, img.naturalHeight);\n const sx = (img.naturalWidth - size) / 2;\n const sy = (img.naturalHeight - size) / 2;\n ctx.drawImage(img, sx, sy, size, size, 0, 0, 150, 150);\n URL.revokeObjectURL(objectUrl);\n let dataUrl = canvas.toDataURL('image/webp', 0.8);\n if (!dataUrl.startsWith('data:image/webp')) dataUrl = canvas.toDataURL('image/jpeg', 0.75);\n this.base64Data.set(dataUrl);\n };\n\n img.onerror = () => {\n URL.revokeObjectURL(objectUrl);\n this.errorService.setCustomError('Failed to read image file.', 'Upload Error', false, this.sourceId);\n };\n\n img.src = objectUrl;\n }\n\n saveAvatar(): void {\n const mode = this.avatarMode();\n const avatarMap: Record<AvatarMode, string> = {\n icon: this.iconClass(), svg: this.svgString(), base64: this.base64Data(), url: this.urlString(),\n };\n const avatar = avatarMap[mode];\n\n this.avatarSaving.set(true);\n this.errorService.clearError();\n\n this.saveFn(avatar).subscribe({\n next: () => {\n this.avatarSaving.set(false);\n if (this.showSuccessToast()) {\n this.toastService.show({ message: 'Avatar updated successfully.', type: 'success' });\n }\n this.valueChange.emit(avatar);\n this.saved.emit();\n },\n error: (err: AppError) => {\n this.avatarSaving.set(false);\n this.errorService.setError(err, this.sourceId);\n },\n });\n }\n\n promptRemoveAvatar(): void { this.showRemoveConfirm.set(true); }\n\n onRemoveConfirmed(): void {\n this.showRemoveConfirm.set(false);\n this.avatarRemoving.set(true);\n this.errorService.clearError();\n\n this.removeFn!().subscribe({\n next: () => {\n this.avatarRemoving.set(false);\n this.iconClass.set(''); this.svgString.set(''); this.urlString.set(''); this.base64Data.set('');\n if (this.showSuccessToast()) {\n this.toastService.show({ message: 'Avatar removed successfully.', type: 'success' });\n }\n this.valueChange.emit('');\n this.removed.emit();\n },\n error: (err: AppError) => {\n this.avatarRemoving.set(false);\n this.errorService.setError(err, this.sourceId);\n },\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { PortalNavComponent } from '@anvil-eco/shared-ui';\n\n@Component({\n selector: 'lib-settings-nav',\n standalone: true,\n imports: [PortalNavComponent],\n template: `\n <lib-portal-nav\n startAt=\"portal-settings\"\n layout=\"vertical\"\n [includeRoot]=\"false\"\n [depth]=\"1\">\n </lib-portal-nav>\n `,\n})\nexport class SettingsNavComponent {}\n","<div class=\"fve-body\">\n\n <!-- File input -->\n <div class=\"fve-upload\">\n <label class=\"fve-field-label\" for=\"fve-file\">Favicon file</label>\n <input id=\"fve-file\" type=\"file\" class=\"fve-file-input\"\n accept=\".ico,.png,.svg,image/x-icon,image/png,image/svg+xml\"\n (change)=\"onFileSelected($event)\"\n aria-label=\"Upload favicon file\" />\n <span class=\"fve-field-hint\">Accepted: .ico, .png, .svg</span>\n </div>\n\n <!-- Preview -->\n @if (base64Data()) {\n <div class=\"fve-preview\">\n <span class=\"fve-preview-label\">Preview</span>\n <div class=\"fve-preview-sizes\">\n <div class=\"fve-preview-size\">\n <div class=\"fve-preview-box fve-preview-box--16\">\n <img [src]=\"base64Data()\" alt=\"16×16 preview\" />\n </div>\n <span class=\"fve-size-label\">16×16</span>\n </div>\n <div class=\"fve-preview-size\">\n <div class=\"fve-preview-box fve-preview-box--32\">\n <img [src]=\"base64Data()\" alt=\"32×32 preview\" />\n </div>\n <span class=\"fve-size-label\">32×32</span>\n </div>\n <div class=\"fve-preview-size\">\n <div class=\"fve-preview-box fve-preview-box--64\">\n <img [src]=\"base64Data()\" alt=\"64×64 preview\" />\n </div>\n <span class=\"fve-size-label\">64×64</span>\n </div>\n </div>\n </div>\n }\n\n <!-- Error -->\n <lib-error-alert [sourceId]=\"sourceId\" />\n\n <!-- Actions -->\n <div class=\"fve-actions\">\n <lib-button-base\n variant=\"primary\"\n [disabled]=\"saving() || removing() || !base64Data()\"\n (clicked)=\"save()\">\n @if (saving()) { <span class=\"fve-spinner\" aria-hidden=\"true\"></span> }\n Save Favicon\n </lib-button-base>\n @if (removeFn && base64Data()) {\n <lib-button-base\n variant=\"danger\"\n [disabled]=\"saving() || removing()\"\n (clicked)=\"promptRemove()\">\n @if (removing()) { <span class=\"fve-spinner\" aria-hidden=\"true\"></span> }\n Remove\n </lib-button-base>\n }\n </div>\n\n</div>\n\n@if (showRemoveConfirm()) {\n <lib-message-box\n [isVisible]=\"true\"\n [config]=\"removeConfirmConfig\"\n (yes)=\"onRemoveConfirmed()\"\n (no)=\"showRemoveConfirm.set(false)\" />\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n Output,\n inject,\n signal,\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { ButtonBaseComponent, ErrorAlertComponent, ErrorService, MessageBoxComponent, MessageBoxConfig, ToastService } from '@anvil-eco/shared-ui';\n\n@Component({\n selector: 'lib-favicon-editor',\n standalone: true,\n imports: [ButtonBaseComponent, ErrorAlertComponent, MessageBoxComponent],\n templateUrl: './favicon-editor.component.html',\n styleUrl: './favicon-editor.component.scss',\n})\nexport class FaviconEditorComponent {\n private readonly doc = inject(DOCUMENT);\n private readonly toastService = inject(ToastService);\n private readonly errorService = inject(ErrorService);\n\n readonly sourceId = 'favicon-editor';\n\n @Input() set initialFavicon(value: string) {\n if (!value || this._initialized) return;\n this._initialized = true;\n this.base64Data.set(value);\n }\n private _initialized = false;\n\n @Input({ required: true }) saveFn!: (favicon: string) => Observable<unknown>;\n @Input() removeFn?: () => Observable<unknown>;\n\n @Output() saved = new EventEmitter<void>();\n @Output() removed = new EventEmitter<void>();\n\n readonly base64Data = signal('');\n readonly saving = signal(false);\n readonly removing = signal(false);\n readonly showRemoveConfirm = signal(false);\n\n readonly removeConfirmConfig: MessageBoxConfig = {\n title: 'Remove Favicon',\n message: 'Are you sure you want to remove the favicon?',\n context: 'danger',\n yesButton: { text: 'Remove', icon: 'bi bi-trash', context: 'danger' },\n noButton: { text: 'Cancel', context: 'secondary' },\n };\n\n onFileSelected(event: Event): void {\n const input = event.target as HTMLInputElement;\n const file = input.files?.[0];\n if (!file) return;\n\n this.errorService.clearError();\n const reader = new FileReader();\n\n reader.onload = () => this.base64Data.set(reader.result as string);\n reader.onerror = () =>\n this.errorService.setCustomError('Failed to read favicon file.', 'Upload Error', false, this.sourceId);\n\n reader.readAsDataURL(file);\n }\n\n save(): void {\n const data = this.base64Data();\n if (!data) return;\n\n this.saving.set(true);\n this.errorService.clearError();\n\n this.saveFn(data).subscribe({\n next: () => {\n this.saving.set(false);\n this.applyToDocument(data);\n this.toastService.show({ message: 'Favicon updated successfully.', type: 'success' });\n this.saved.emit();\n },\n error: (err: AppError) => {\n this.saving.set(false);\n this.errorService.setError(err, this.sourceId);\n },\n });\n }\n\n promptRemove(): void { this.showRemoveConfirm.set(true); }\n\n onRemoveConfirmed(): void {\n this.showRemoveConfirm.set(false);\n this.removing.set(true);\n this.errorService.clearError();\n\n this.removeFn!().subscribe({\n next: () => {\n this.removing.set(false);\n this.base64Data.set('');\n this.applyToDocument(null);\n this.toastService.show({ message: 'Favicon removed successfully.', type: 'success' });\n this.removed.emit();\n },\n error: (err: AppError) => {\n this.removing.set(false);\n this.errorService.setError(err, this.sourceId);\n },\n });\n }\n\n private applyToDocument(src: string | null): void {\n let link = this.doc.querySelector<HTMLLinkElement>('link[rel~=\"icon\"]');\n if (!link) {\n link = this.doc.createElement('link');\n link.rel = 'icon';\n this.doc.head.appendChild(link);\n }\n link.href = src ?? '/favicon.ico';\n }\n}\n","<ng-template sideDrawerContent>\n <lib-settings-nav />\n </ng-template>\n\n <div class=\"eef-container\" role=\"main\" aria-label=\"Enterprise settings\">\n\n @if (loading()) {\n <div class=\"eef-loading\" role=\"status\" aria-live=\"polite\">\n <i class=\"bi bi-arrow-repeat\" aria-hidden=\"true\"></i>\n Loading…\n </div>\n }\n\n @if (!loading()) {\n\n <!-- Details card -->\n <lib-card variant=\"solid\">\n <div cardHeader>\n <span class=\"anv-card-title\" id=\"eef-details-heading\">Enterprise Details</span>\n </div>\n <lib-form\n [formGroup]=\"form\"\n [submitFn]=\"submitFn\"\n formId=\"enterpriseDetailsEdit\"\n submitLabel=\"Save Changes\"\n successMessage=\"Enterprise details updated successfully.\"\n aria-labelledby=\"eef-details-heading\">\n <input type=\"hidden\" formControlName=\"id\" aria-hidden=\"true\" />\n <lib-form-field controlName=\"name\" label=\"Name\">\n <input type=\"text\" class=\"anv-input\"\n formControlName=\"name\"\n placeholder=\"Enter enterprise name\"\n aria-label=\"Enterprise name\"\n aria-required=\"true\"\n autocomplete=\"organization\" />\n </lib-form-field>\n <lib-form-field controlName=\"slogan\" label=\"Slogan\">\n <textarea class=\"anv-input anv-input--textarea\"\n formControlName=\"slogan\"\n rows=\"3\"\n placeholder=\"Enter a short slogan or tagline\"\n aria-label=\"Enterprise slogan\"></textarea>\n </lib-form-field>\n </lib-form>\n </lib-card>\n\n <!-- Avatar card -->\n <lib-card variant=\"solid\">\n <div cardHeader>\n <span class=\"anv-card-title\" id=\"eef-avatar-heading\">Avatar</span>\n </div>\n <lib-avatar-editor\n [initialAvatar]=\"initialAvatar\"\n [saveFn]=\"avatarSaveFn\"\n [removeFn]=\"avatarRemoveFn\"\n (saved)=\"onAvatarSaved()\"\n aria-labelledby=\"eef-avatar-heading\" />\n </lib-card>\n\n <!-- Favicon card -->\n <lib-card variant=\"solid\">\n <div cardHeader>\n <span class=\"anv-card-title\" id=\"eef-favicon-heading\">Favicon</span>\n </div>\n <lib-favicon-editor\n [initialFavicon]=\"initialFavicon\"\n [saveFn]=\"faviconSaveFn\"\n [removeFn]=\"faviconRemoveFn\"\n aria-labelledby=\"eef-favicon-heading\" />\n </lib-card>\n\n }\n\n </div>","import { Component, OnInit, inject, signal } from '@angular/core';\nimport { tap } from 'rxjs';\nimport { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\n\nimport { AppError } from '@anvil-eco/shared-core';\nimport { CardComponent, CardHeaderDirective, ErrorAlertComponent, FormComponent, FormFieldComponent, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { SettingsNavComponent } from '../../shared/settings-nav/settings-nav.component';\nimport { Enterprise, EnterpriseUpdate, EnterpriseUpdateAvatar, EnterpriseUpdateFavicon, EnterpriseService, PortalContextService } from '@anvil-eco/portal-services';\nimport { AvatarEditorComponent } from '../../shared/avatar-editor/avatar-editor.component';\nimport { FaviconEditorComponent } from '../../shared/favicon-editor/favicon-editor.component';\n\n@Component({\n selector: 'lib-enterprise-edit-form',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n CardComponent,\n CardHeaderDirective,\n ErrorAlertComponent,\n FormComponent,\n FormFieldComponent,\n AvatarEditorComponent,\n FaviconEditorComponent,\n SideDrawerContentDirective,\n SettingsNavComponent,\n ],\n templateUrl: './enterprise-edit-form.html',\n styleUrls: ['./enterprise-edit-form.scss'],\n})\nexport class EnterpriseEditFormComponent implements OnInit {\n private readonly enterpriseService = inject(EnterpriseService);\n private readonly portalContext = inject(PortalContextService);\n private readonly fb = inject(FormBuilder);\n\n readonly loading = signal(true);\n readonly enterprise = signal<Enterprise | null>(null);\n\n initialAvatar = '';\n initialFavicon = '';\n\n readonly form = this.fb.group({\n id: ['', Validators.required],\n name: ['', [Validators.required, Validators.maxLength(200)]],\n slogan: ['', Validators.maxLength(500)],\n });\n\n readonly submitFn = (data: unknown) =>\n this.enterpriseService.update(data as EnterpriseUpdate).pipe(\n tap(() => this.portalContext.refresh()),\n );\n\n readonly avatarSaveFn = (avatar: string) => {\n const e = this.enterprise();\n return this.enterpriseService.updateAvatar({ id: e?.id ?? '', avatar } as EnterpriseUpdateAvatar).pipe(\n tap(() => this.portalContext.refresh()),\n );\n };\n\n readonly avatarRemoveFn = () =>\n this.enterpriseService.removeAvatar(this.enterprise()?.id ?? '').pipe(\n tap(() => this.portalContext.refresh()),\n );\n\n readonly faviconSaveFn = (favicon: string) => {\n const e = this.enterprise();\n return this.enterpriseService.updateFavicon({ id: e?.id ?? '', favicon } as EnterpriseUpdateFavicon).pipe(\n tap(() => this.portalContext.refresh()),\n );\n };\n\n readonly faviconRemoveFn = () =>\n this.enterpriseService.removeFavicon(this.enterprise()?.id ?? '').pipe(\n tap(() => this.portalContext.refresh()),\n );\n\n ngOnInit(): void {\n this.enterpriseService.getFirst().subscribe({\n next: (enterprise) => {\n this.enterprise.set(enterprise);\n this.form.patchValue({\n id: enterprise.id,\n name: enterprise.name,\n slogan: enterprise.slogan ?? '',\n });\n this.initialAvatar = enterprise.avatar ?? '';\n this.initialFavicon = enterprise.favicon ?? '';\n this.loading.set(false);\n },\n error: (err: AppError) => {\n console.error('Failed to load enterprise', err);\n this.loading.set(false);\n },\n });\n }\n\n onAvatarSaved(): void {\n this.enterpriseService.getFirst().subscribe({\n next: (enterprise) => this.enterprise.set(enterprise),\n });\n }\n\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'lib-auth-layout',\n standalone: true,\n imports: [RouterOutlet],\n encapsulation: ViewEncapsulation.None,\n styleUrl: './auth-layout.component.scss',\n template: `\n <div class=\"anv-auth-bg\">\n <div class=\"anv-auth-card\">\n <div class=\"anv-auth-brand\">\n <span class=\"anv-auth-brand-name\"></span>\n </div>\n <router-outlet />\n </div>\n </div>\n `,\n})\nexport class AuthLayoutComponent {}\n","import { Component, OnInit, ViewEncapsulation, inject } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AuthService, LoginResultCode } from '@anvil-eco/shared-services';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { FormComponent, FormFieldComponent, FormFieldsComponent } from '@anvil-eco/shared-ui';\n\n@Component({\n selector: 'lib-login-email',\n standalone: true,\n imports: [ReactiveFormsModule, FormComponent, FormFieldsComponent, FormFieldComponent],\n encapsulation: ViewEncapsulation.None,\n styleUrl: './login-email.component.scss',\n template: `\n <div class=\"anv-auth-step\">\n <h1 class=\"anv-auth-title\">Sign in</h1>\n <p class=\"anv-auth-subtitle\">Enter your email address to continue.</p>\n\n <lib-form [formGroup]=\"form\"\n [submitFn]=\"submit\"\n formId=\"formAlert-login-email\"\n submitLabel=\"Continue\"\n successMessage=\"\"\n [showCancel]=\"true\"\n cancelLabel=\"Cancel\"\n (cancelled)=\"back()\">\n <lib-form-fields>\n <lib-form-field controlName=\"email\" label=\"Email address\">\n <input type=\"email\"\n formControlName=\"email\"\n placeholder=\"you@example.com\"\n autocomplete=\"email\"\n autofocus />\n </lib-form-field>\n </lib-form-fields>\n </lib-form>\n </div>\n `,\n})\nexport class LoginEmailComponent implements OnInit {\n private auth = inject(AuthService);\n private router = inject(Router);\n private route = inject(ActivatedRoute);\n\n form = new FormGroup({\n email: new FormControl('', [Validators.required, Validators.email]),\n });\n\n ngOnInit(): void {\n const returnUrl = this.route.snapshot.queryParamMap.get('returnUrl');\n if (returnUrl) {\n this.auth.returnUrl.set(returnUrl);\n }\n }\n\n submit = async (data: unknown): Promise<void> => {\n const { email } = data as { email: string };\n const result = await this.auth.checkEmail(email);\n if (!result.ok) {\n throw result.appError;\n }\n const isRoutingStep =\n result.data.resultCode === LoginResultCode.Success ||\n result.data.resultCode === LoginResultCode.PasswordRequired ||\n result.data.resultCode === LoginResultCode.NoPassword ||\n result.data.resultCode === LoginResultCode.EmailUnverified;\n if (!isRoutingStep) {\n throw { title: 'Login Error', message: result.data.message, status: 401,\n severity: 'warning', fieldErrors: {}, timestamp: new Date().toISOString(),\n isTechnical: false } as AppError;\n }\n };\n\n back(): void {\n this.router.navigateByUrl('/');\n }\n}\n","import { Component, OnInit, ViewEncapsulation, inject } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router, RouterLink } from '@angular/router';\nimport { AuthService, LoginResultCode } from '@anvil-eco/shared-services';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { FormComponent, FormFieldComponent, FormFieldsComponent } from '@anvil-eco/shared-ui';\n\n@Component({\n selector: 'lib-login-password',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n RouterLink,\n FormComponent,\n FormFieldsComponent,\n FormFieldComponent,\n ],\n encapsulation: ViewEncapsulation.None,\n styleUrl: './login-password.component.scss',\n templateUrl: './login-password.component.html'\n})\nexport class LoginPasswordComponent implements OnInit {\n private auth = inject(AuthService);\n private router = inject(Router);\n private route = inject(ActivatedRoute);\n\n email = this.auth.pendingEmail;\n\n form = new FormGroup({\n password: new FormControl('', [Validators.required]),\n });\n\n ngOnInit(): void {\n const returnUrl = this.route.snapshot.queryParamMap.get('returnUrl');\n if (returnUrl) {\n this.auth.returnUrl.set(returnUrl);\n }\n if (!this.email()) this.router.navigateByUrl('/auth/login');\n }\n\n submit = async (data: unknown): Promise<void> => {\n const { password } = data as { password: string };\n const result = await this.auth.login(this.email(), password);\n if (!result.ok) {\n throw result.appError;\n }\n if (result.data.resultCode !== LoginResultCode.Success) {\n throw { title: 'Login Error', message: result.data.message, status: 401,\n severity: 'warning', fieldErrors: {}, timestamp: new Date().toISOString(),\n isTechnical: false } as AppError;\n }\n };\n\n back(): void {\n this.router.navigateByUrl('/');\n }\n}\n","<div class=\"anv-auth-step\">\n <h1 class=\"anv-auth-title\">Enter your password</h1>\n <p class=\"anv-auth-subtitle\">Signing in as <strong>{{ email() }}</strong></p>\n\n <lib-form [formGroup]=\"form\"\n [submitFn]=\"submit\"\n formId=\"formAlert-login-password\"\n submitLabel=\"Sign in\"\n successMessage=\"\"\n [showCancel]=\"true\"\n cancelLabel=\"Cancel\"\n (cancelled)=\"back()\">\n \n <lib-form-fields>\n <lib-form-field controlName=\"password\" label=\"Password\">\n <input type=\"password\"\n formControlName=\"password\"\n autocomplete=\"current-password\"\n autofocus />\n </lib-form-field>\n </lib-form-fields>\n <a routerLink=\"/auth/forgot-password\" class=\"anv-auth-forgot-link\">Forgot password?</a>\n </lib-form>\n </div>","import { Component, OnInit, ViewEncapsulation, inject, signal } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AuthService } from '@anvil-eco/shared-services';\nimport { FormComponent, FormFieldComponent, FormFieldsComponent } from '@anvil-eco/shared-ui';\n\n@Component({\n selector: 'lib-forgot-password',\n standalone: true,\n imports: [ReactiveFormsModule, FormComponent, FormFieldsComponent, FormFieldComponent],\n encapsulation: ViewEncapsulation.None,\n styleUrl: './forgot-password.component.scss',\n template: `\n <div class=\"anv-auth-step\">\n @if (sent()) {\n <h1 class=\"anv-auth-title\">Check your email</h1>\n <p class=\"anv-auth-subtitle\">\n We sent a password reset link to <strong>{{ sentEmail() }}</strong>.\n Click the link in the email to set your password.\n </p>\n <p class=\"anv-auth-hint\">Didn't receive it?\n <button type=\"button\" class=\"anv-auth-link-btn\" (click)=\"showForm()\">Try again</button>\n </p>\n } @else {\n <h1 class=\"anv-auth-title\">Forgot your password?</h1>\n <p class=\"anv-auth-subtitle\">Enter your email address and we'll send you a reset link.</p>\n\n <lib-form [formGroup]=\"form\"\n [submitFn]=\"submit\"\n formId=\"formAlert-forgot-password\"\n submitLabel=\"Send reset link\"\n successMessage=\"\"\n [showCancel]=\"true\"\n cancelLabel=\"Cancel\"\n (cancelled)=\"back()\">\n <lib-form-fields>\n <lib-form-field controlName=\"email\" label=\"Email address\">\n <input type=\"email\"\n formControlName=\"email\"\n placeholder=\"you@example.com\"\n autocomplete=\"email\"\n autofocus />\n </lib-form-field>\n </lib-form-fields>\n </lib-form>\n }\n </div>\n `,\n})\nexport class ForgotPasswordComponent implements OnInit {\n private auth = inject(AuthService);\n private route = inject(ActivatedRoute);\n private router = inject(Router);\n\n sent = signal(false);\n sentEmail = signal('');\n\n form = new FormGroup({\n email: new FormControl('', [Validators.required, Validators.email]),\n });\n\n ngOnInit(): void {\n const pending = this.route.snapshot.queryParamMap.get('pending');\n if (pending === 'true') {\n this.sentEmail.set(this.auth.pendingEmail());\n this.sent.set(true);\n }\n }\n\n showForm(): void {\n this.sent.set(false);\n this.router.navigateByUrl('/auth/forgot-password', { replaceUrl: true });\n }\n\n submit = async (data: unknown): Promise<void> => {\n const { email } = data as { email: string };\n const result = await this.auth.forgotPassword(email);\n if (!result.ok) {\n throw result.appError;\n }\n this.sentEmail.set(email);\n this.sent.set(true);\n };\n\n back(): void {\n this.router.navigateByUrl('/auth/login');\n }\n}\n","import { Component, OnInit, ViewEncapsulation, inject, signal } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ReactiveFormsModule, ValidationErrors, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router, RouterLink } from '@angular/router';\nimport { AuthService, LoginResultCode } from '@anvil-eco/shared-services';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { FormComponent, FormFieldComponent, FormFieldsComponent } from '@anvil-eco/shared-ui';\n\nfunction passwordsMatch(group: AbstractControl): ValidationErrors | null {\n const pwControl = group.get('password');\n const cfmControl = group.get('confirm');\n\n if (!pwControl || !cfmControl) return null;\n\n const pw = pwControl.value;\n const cfm = cfmControl.value;\n\n if (pw && cfm && pw !== cfm) {\n const errors = { ...cfmControl.errors, mismatch: true };\n cfmControl.setErrors(errors);\n return { mismatch: true };\n }\n\n if (cfmControl.errors && 'mismatch' in cfmControl.errors) {\n const { mismatch, ...remainingErrors } = cfmControl.errors;\n cfmControl.setErrors(Object.keys(remainingErrors).length ? remainingErrors : null);\n }\n\n return null;\n}\n\n@Component({\n selector: 'lib-reset-password',\n standalone: true,\n imports: [ReactiveFormsModule, FormComponent, FormFieldsComponent, FormFieldComponent, RouterLink],\n encapsulation: ViewEncapsulation.None,\n styleUrl: './reset-password.component.scss',\n template: `\n <div class=\"anv-auth-step\">\n @if (tokenInvalid()) {\n <h1 class=\"anv-auth-title\">Link expired</h1>\n <p class=\"anv-auth-subtitle\">\n This password reset link is invalid or has expired.\n </p>\n <a routerLink=\"/auth/forgot-password\" class=\"anv-btn anv-btn--primary\">\n Request a new link\n </a>\n } @else {\n <h1 class=\"anv-auth-title\">Set your password</h1>\n <p class=\"anv-auth-subtitle\">Choose a new password for your account.</p>\n\n <lib-form [formGroup]=\"form\"\n [submitFn]=\"submit\"\n formId=\"formAlert-reset-password\"\n submitLabel=\"Set password\"\n successMessage=\"\"\n [showCancel]=\"false\">\n <lib-form-fields>\n <lib-form-field controlName=\"password\" label=\"New password\"\n tooltip=\"Minimum 8 characters.\">\n <input type=\"password\"\n formControlName=\"password\"\n autocomplete=\"new-password\"\n autofocus />\n </lib-form-field>\n <lib-form-field controlName=\"confirm\" label=\"Confirm password\"\n [validationMessages]=\"{ mismatch: 'Passwords do not match.' }\">\n <input type=\"password\"\n formControlName=\"confirm\"\n autocomplete=\"new-password\" />\n </lib-form-field>\n </lib-form-fields>\n </lib-form>\n }\n </div>\n `,\n})\nexport class ResetPasswordComponent implements OnInit {\n private auth = inject(AuthService);\n private route = inject(ActivatedRoute);\n private router = inject(Router);\n\n tokenInvalid = signal(false);\n private token = '';\n\n form = new FormGroup({\n password: new FormControl('', [Validators.required, Validators.minLength(8)]),\n confirm: new FormControl('', [Validators.required]),\n }, { validators: passwordsMatch });\n\n ngOnInit(): void {\n const token = this.route.snapshot.queryParamMap.get('token');\n if (!token) {\n this.router.navigateByUrl('/auth/forgot-password');\n return;\n }\n this.token = token;\n }\n\n submit = async (data: unknown): Promise<void> => {\n const { password, confirm } = data as { password: string; confirm: string };\n const resetResult = await this.auth.resetPassword(this.token, password, confirm);\n\n if (!resetResult.ok) {\n if (resetResult.appError.status === 400) {\n this.tokenInvalid.set(true);\n return;\n }\n throw resetResult.appError;\n }\n\n const username = resetResult.data;\n const loginResult = await this.auth.login(username, password);\n\n if (!loginResult.ok) {\n throw loginResult.appError;\n }\n\n if (loginResult.data.resultCode !== LoginResultCode.Success) {\n throw { title: 'Login Error', message: loginResult.data.message, status: 401,\n severity: 'warning', fieldErrors: {}, timestamp: new Date().toISOString(),\n isTechnical: false } as AppError;\n }\n };\n}\n","import { Component, OnInit, ViewEncapsulation, inject, signal } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthService } from '@anvil-eco/shared-services';\nimport { ErrorService, ErrorAlertComponent } from '@anvil-eco/shared-ui';\n\n@Component({\n selector: 'lib-verify-pending',\n standalone: true,\n imports: [ErrorAlertComponent],\n encapsulation: ViewEncapsulation.None,\n styleUrl: './verify-pending.component.scss',\n template: `\n <div class=\"anv-auth-step anv-auth-step--centered\">\n <h1 class=\"anv-auth-title\">Check your email</h1>\n <p class=\"anv-auth-subtitle\">\n We sent a verification link to <strong>{{ email() }}</strong>.\n Click the link in the email to verify your account.\n </p>\n\n <lib-error-alert sourceId=\"verifyPending\" />\n\n @if (resendState() === 'success') {\n <p class=\"anv-auth-resend-ok\" role=\"status\">Email sent! Check your inbox.</p>\n }\n\n <button type=\"button\"\n class=\"anv-auth-resend-btn\"\n [disabled]=\"resendState() === 'sending'\"\n (click)=\"resend()\">\n @if (resendState() === 'sending') {\n Sending&hellip;\n } @else {\n Resend verification email\n }\n </button>\n\n </div>\n `,\n})\nexport class VerifyPendingComponent implements OnInit {\n private auth = inject(AuthService);\n private router = inject(Router);\n private errorService = inject(ErrorService);\n\n email = this.auth.pendingEmail;\n resendState = signal<'idle' | 'sending' | 'success'>('idle');\n\n ngOnInit(): void {\n if (!this.email()) this.router.navigateByUrl('/auth/login');\n else this.sendEmail();\n }\n\n async resend(): Promise<void> {\n await this.sendEmail();\n }\n\n private async sendEmail(): Promise<void> {\n this.resendState.set('sending');\n this.errorService.clearError();\n const result = await this.auth.sendVerificationEmail(this.email());\n if (!result.ok) {\n this.errorService.setCustomError(\n result.appError.message ?? result.appError.title ?? 'Failed to send email.',\n 'Email Error',\n false,\n 'verifyPending'\n );\n this.resendState.set('idle');\n } else {\n this.resendState.set('success');\n }\n }\n\n back(): void {\n this.router.navigateByUrl('/auth/login');\n }\n}\n","import { Component, OnInit, ViewEncapsulation, inject, signal } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { HttpClient } from '@angular/common/http';\nimport { firstValueFrom } from 'rxjs';\n\n@Component({\n selector: 'lib-verify-email',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n styleUrl: './verify-email.component.scss',\n template: `\n <div class=\"anv-auth-step anv-auth-step--centered\">\n @switch (state()) {\n @case ('verifying') {\n <span class=\"anv-verify-spinner\" aria-label=\"Verifying\"></span>\n <p class=\"anv-auth-subtitle\">Verifying your email&hellip;</p>\n }\n @case ('success') {\n <div class=\"anv-verify-icon anv-verify-icon--success\" aria-hidden=\"true\">&#10003;</div>\n <h1 class=\"anv-auth-title\">Email verified!</h1>\n <p class=\"anv-auth-subtitle\">Your account is ready. You can now sign in.</p>\n <button type=\"button\" class=\"anv-verify-btn\" (click)=\"goToLogin()\">Sign in</button>\n }\n @case ('error') {\n <div class=\"anv-verify-icon anv-verify-icon--error\" aria-hidden=\"true\">&#10007;</div>\n <h1 class=\"anv-auth-title\">Verification failed</h1>\n <p class=\"anv-auth-subtitle\">{{ errorMessage() }}</p>\n <button type=\"button\" class=\"anv-verify-btn\" (click)=\"goToLogin()\">Back to sign in</button>\n }\n }\n </div>\n `,\n})\nexport class VerifyEmailComponent implements OnInit {\n private route = inject(ActivatedRoute);\n private router = inject(Router);\n private http = inject(HttpClient);\n\n state = signal<'verifying' | 'success' | 'error'>('verifying');\n errorMessage = signal('');\n\n async ngOnInit(): Promise<void> {\n const token = this.route.snapshot.queryParamMap.get('token');\n if (!token) {\n this.errorMessage.set('No verification token found in the URL.');\n this.state.set('error');\n return;\n }\n try {\n await firstValueFrom(\n this.http.post('/api/users/verify-email', { token })\n );\n this.state.set('success');\n } catch (err: unknown) {\n const msg = (err as { error?: { detail?: string } })?.error?.detail\n ?? 'Verification link is invalid or has expired.';\n this.errorMessage.set(msg);\n this.state.set('error');\n }\n }\n\n goToLogin(): void {\n this.router.navigateByUrl('/auth/login');\n }\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\n@Component({\n selector: 'lib-access-denied',\n standalone: true,\n imports: [RouterLink],\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"anv-auth-step\">\n <h1 class=\"anv-auth-title\">Access Denied</h1>\n <p class=\"anv-auth-subtitle\">\n You do not have permission to view this page.\n </p>\n <a class=\"anv-auth-link-btn\" routerLink=\"/\">Go to Home</a>\n </div>\n `,\n styles: [`\n .anv-auth-step {\n text-align: center;\n }\n .anv-auth-link-btn {\n display: inline-block;\n margin-top: 1rem;\n }\n `],\n})\nexport class AccessDeniedComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n output,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n FormBuilder,\n ReactiveFormsModule,\n Validators,\n type FormGroup,\n} from '@angular/forms';\nimport { FormModalComponent, FormFieldComponent, FormModalFieldsDirective, ErrorAlertComponent } from '@anvil-eco/shared-ui';\nimport { RoleCreateService, type CreateGeneralRoleRequest } from '@anvil-eco/portal-services';\nimport { ErrorService } from '@anvil-eco/shared-ui';\nimport { type AppError } from '@anvil-eco/shared-core';\nimport { ToastService } from '@anvil-eco/shared-ui';\n\n@Component({\n selector: 'lib-role-create-general',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormModalComponent,\n FormFieldComponent,\n FormModalFieldsDirective,\n ErrorAlertComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <lib-form-modal\n [formGroup]=\"form\"\n [submitFn]=\"submitForm\"\n title=\"Create General Role\"\n submitLabel=\"Create\"\n successMessage=\"General role created successfully\"\n [showOverlay]=\"true\"\n (submitted)=\"onSuccess()\"\n (dismissed)=\"onCancel()\"\n (cancelled)=\"onCancel()\">\n <ng-template formModalFields>\n <lib-error-alert sourceId=\"roleCreateGeneral\" />\n <lib-form-field\n controlName=\"name\"\n label=\"Role Name\"\n tooltip=\"Enter a unique name for this role\">\n <input type=\"text\" class=\"anv-input\" formControlName=\"name\" placeholder=\"Enter role name\" />\n </lib-form-field>\n <lib-form-field\n controlName=\"description\"\n label=\"Description\"\n tooltip=\"Optional description of the role\">\n <textarea class=\"anv-input\" formControlName=\"description\" rows=\"3\" placeholder=\"Enter role description (optional)\"></textarea>\n </lib-form-field>\n </ng-template>\n </lib-form-modal>\n `,\n styles: `\n :host {\n display: contents;\n }\n `,\n})\nexport class RoleCreateGeneralComponent {\n private readonly fb = inject(FormBuilder);\n private readonly roleCreateService = inject(RoleCreateService);\n private readonly errorService = inject(ErrorService);\n private readonly toast = inject(ToastService);\n\n created = output<void>();\n cancelled = output<void>();\n\n readonly form: FormGroup = this.fb.group({\n name: ['', [Validators.required, Validators.maxLength(100)]],\n description: ['', [Validators.maxLength(500)]],\n });\n\n readonly submitForm = (value: unknown) => {\n const request: CreateGeneralRoleRequest = {\n name: (value as Record<string, string>)['name'],\n description: (value as Record<string, string>)['description'],\n };\n return this.roleCreateService.createGeneral(request);\n };\n\n onSuccess(): void {\n this.form.reset();\n this.errorService.clearError();\n this.created.emit();\n }\n\n onCancel(): void {\n this.form.reset();\n this.errorService.clearError();\n this.cancelled.emit();\n }\n}\n","import { Component } from '@angular/core';\nimport { PortalNavComponent } from '@anvil-eco/shared-ui';\n\n@Component({\n selector: 'lib-admin-list-nav',\n standalone: true,\n imports: [PortalNavComponent],\n template: `\n <lib-portal-nav\n startAt=\"portal\"\n layout=\"vertical\"\n [includeRoot]=\"false\"\n [depth]=\"2\">\n </lib-portal-nav>\n `,\n})\nexport class AdminListNavComponent {}\n","import { Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { IFilterAngularComp } from 'ag-grid-angular';\nimport { IDoesFilterPassParams, IFilterParams } from 'ag-grid-community';\n\n@Component({\n selector: 'lib-bool-filter',\n standalone: true,\n imports: [FormsModule],\n template: `\n <div class=\"bf-container\">\n <label class=\"bf-option\">\n <input type=\"radio\" name=\"bf\" value=\"\" [(ngModel)]=\"selected\" (ngModelChange)=\"onChange()\">\n All\n </label>\n <label class=\"bf-option\">\n <input type=\"radio\" name=\"bf\" value=\"Yes\" [(ngModel)]=\"selected\" (ngModelChange)=\"onChange()\">\n Yes\n </label>\n <label class=\"bf-option\">\n <input type=\"radio\" name=\"bf\" value=\"No\" [(ngModel)]=\"selected\" (ngModelChange)=\"onChange()\">\n No\n </label>\n </div>\n `,\n styles: [`\n .bf-container {\n padding: 10px 12px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n .bf-option {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 0.875rem;\n cursor: pointer;\n user-select: none;\n }\n input[type=\"radio\"] { cursor: pointer; }\n `],\n})\nexport class BoolFilterComponent implements IFilterAngularComp {\n private params!: IFilterParams;\n selected = '';\n\n agInit(params: IFilterParams): void {\n this.params = params;\n }\n\n isFilterActive(): boolean {\n return this.selected !== '';\n }\n\n doesFilterPass(_params: IDoesFilterPassParams): boolean {\n return true;\n }\n\n getModel(): { filterType: string; values: string[] } | null {\n return this.selected ? { filterType: 'set', values: [this.selected] } : null;\n }\n\n setModel(model: { filterType: string; values: string[] } | null): void {\n this.selected = model?.values?.[0] ?? '';\n }\n\n onChange(): void {\n this.params.filterChangedCallback();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n output,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n FormBuilder,\n ReactiveFormsModule,\n Validators,\n type FormGroup,\n} from '@angular/forms';\nimport { FormModalComponent, FormFieldComponent, FormModalFieldsDirective, ErrorAlertComponent, FilterableSelectComponent, type FilterableSelectChangeEvent } from '@anvil-eco/shared-ui';\nimport { RoleCreateService, AuthPolicyService, type CreatePrimaryRoleRequest, type PortalAuthPolicy } from '@anvil-eco/portal-services';\nimport { ErrorService } from '@anvil-eco/shared-ui';\nimport { type AppError } from '@anvil-eco/shared-core';\nimport { ToastService } from '@anvil-eco/shared-ui';\n\n@Component({\n selector: 'lib-role-create-primary',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormModalComponent,\n FormFieldComponent,\n FormModalFieldsDirective,\n ErrorAlertComponent,\n FilterableSelectComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <lib-form-modal\n [formGroup]=\"form\"\n [submitFn]=\"submitForm\"\n title=\"Create Primary Role\"\n submitLabel=\"Create\"\n successMessage=\"Primary role created successfully\"\n [showOverlay]=\"true\"\n (submitted)=\"onSuccess()\"\n (dismissed)=\"onCancel()\"\n (cancelled)=\"onCancel()\">\n <ng-template formModalFields>\n <lib-error-alert sourceId=\"roleCreatePrimary\" />\n <lib-form-field\n controlName=\"name\"\n label=\"Role Name\"\n tooltip=\"Enter a unique name for this primary role\">\n <input type=\"text\" class=\"anv-input\" formControlName=\"name\" placeholder=\"Enter primary role name\" />\n </lib-form-field>\n <lib-form-field\n controlName=\"portalAuthPolicyId\"\n label=\"Auth Policy\"\n tooltip=\"Select the authentication policy for this primary role\">\n <lib-filterable-select\n formControlName=\"portalAuthPolicyId\"\n textField=\"name\"\n valueField=\"id\"\n [loadItems]=\"loadAuthPolicies\"\n placeholder=\"Select an auth policy...\"\n searchPlaceholder=\"Search auth policies...\"\n noDataText=\"No auth policies found\"\n (valueChange)=\"onAuthPolicyChange($event)\">\n </lib-filterable-select>\n </lib-form-field>\n <lib-form-field\n controlName=\"description\"\n label=\"Description\"\n tooltip=\"Optional description of the primary role\">\n <textarea class=\"anv-input\" formControlName=\"description\" rows=\"3\" placeholder=\"Enter primary role description (optional)\"></textarea>\n </lib-form-field>\n </ng-template>\n </lib-form-modal>\n `,\n styles: `\n :host {\n display: contents;\n }\n `,\n})\nexport class RoleCreatePrimaryComponent {\n private readonly fb = inject(FormBuilder);\n private readonly roleCreateService = inject(RoleCreateService);\n private readonly errorService = inject(ErrorService);\n private readonly toast = inject(ToastService);\n\n created = output<void>();\n cancelled = output<void>();\n\n private readonly authPolicyService = inject(AuthPolicyService);\n\n readonly form: FormGroup = this.fb.group({\n name: ['', [Validators.required, Validators.maxLength(100)]],\n portalAuthPolicyId: ['', Validators.required],\n description: ['', [Validators.maxLength(500)]],\n });\n\n // Load function for filterable-select\n loadAuthPolicies = async (searchTerm: string): Promise<PortalAuthPolicy[]> => {\n try {\n return await this.authPolicyService.search(searchTerm).toPromise() ?? [];\n } catch {\n return [];\n }\n };\n\n onAuthPolicyChange(event: FilterableSelectChangeEvent): void {\n const value = event.value as string | null;\n this.form.patchValue({ portalAuthPolicyId: value });\n }\n\n readonly submitForm = (value: unknown) => {\n const request: CreatePrimaryRoleRequest = {\n name: (value as Record<string, string>)['name'],\n portalAuthPolicyId: (value as Record<string, string>)['portalAuthPolicyId'],\n description: (value as Record<string, string>)['description'],\n };\n return this.roleCreateService.createPrimary(request);\n };\n\n onSuccess(): void {\n this.form.reset();\n this.errorService.clearError();\n this.created.emit();\n }\n\n onCancel(): void {\n this.form.reset();\n this.errorService.clearError();\n this.cancelled.emit();\n }\n}\n","import { Component, inject, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Router } from '@angular/router';\nimport type { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\nimport { AuthService } from '@anvil-eco/shared-services';\nimport { PortalRole, PortalPermissions } from '@anvil-eco/portal-services';\n\n@Component({\n selector: 'lib-role-action-cell',\n standalone: true,\n imports: [CommonModule],\n template: `\n @if (canManage()) {\n <button\n type=\"button\"\n class=\"manage-btn\"\n title=\"Manage Role\"\n (click)=\"navigate()\">\n <i class=\"bi bi-gear\"></i>\n </button>\n }\n `,\n styles: [`\n .manage-btn {\n border: none;\n background: transparent;\n cursor: pointer;\n padding: 0.25rem;\n color: var(--text-primary, #212529);\n font-size: 1rem;\n line-height: 1;\n }\n .manage-btn:hover {\n color: var(--primary, #0d6efd);\n }\n `],\n})\nexport class RoleActionCellComponent implements ICellRendererComp {\n private readonly router = inject(Router);\n private readonly auth = inject(AuthService);\n\n private role!: PortalRole;\n\n canManage = signal(false);\n\n agInit(params: ICellRendererParams): void {\n this.role = params.data;\n this.canManage.set(this.auth.hasPermission(PortalPermissions.Roles.Update));\n }\n\n refresh(params: ICellRendererParams): boolean {\n this.role = params.data;\n this.canManage.set(this.auth.hasPermission(PortalPermissions.Roles.Update));\n return true;\n }\n\n // Required by ICellRendererComp for vanilla JS ag-grid\n getGui(): HTMLElement {\n const container = document.createElement('div');\n container.style.display = 'inline-block';\n return container;\n }\n\n navigate(): void {\n this.router.navigate(['portal', 'roles', this.role.id, 'profile']);\n }\n}\n\n","<ng-template sideDrawerContent>\n <lib-admin-list-nav />\n</ng-template>\n\n<div class=\"anv-list-container\">\n <lib-error-alert sourceId=\"roleList\" />\n\n <div class=\"anv-list-toolbar\">\n <div class=\"anv-list-toolbar-buttons\" style=\"margin-left: auto;\">\n <lib-button-base\n *ngIf=\"canCreate()\"\n variant=\"primary\"\n icon=\"plus\"\n (clicked)=\"onCreateGeneral()\">\n Create General\n </lib-button-base>\n <lib-button-base\n *ngIf=\"canCreate()\"\n variant=\"primary\"\n icon=\"star\"\n (clicked)=\"onCreatePrimary()\">\n Create Primary\n </lib-button-base>\n </div>\n </div>\n\n <ag-grid-angular\n #agGrid\n class=\"ag-theme-quartz rl-grid\"\n [columnDefs]=\"columnDefs\"\n [defaultColDef]=\"defaultColDef\"\n [rowSelection]=\"rowSelection\"\n [rowModelType]=\"'infinite'\"\n [pagination]=\"true\"\n [paginationPageSize]=\"25\"\n [paginationPageSizeSelector]=\"[25, 50, 100]\"\n [cacheBlockSize]=\"25\"\n (gridReady)=\"onGridReady($event)\"\n (filterChanged)=\"onFilterChanged()\"\n (sortChanged)=\"onSortChanged()\"\n (cellClicked)=\"onCellClicked($event)\" />\n\n @if (showCreateGeneralModal()) {\n <lib-role-create-general\n (created)=\"onRoleCreated()\"\n (cancelled)=\"onCreateGeneralModalDismissed()\" />\n }\n\n @if (showCreatePrimaryModal()) {\n <lib-role-create-primary\n (created)=\"onRoleCreated()\"\n (cancelled)=\"onCreatePrimaryModalDismissed()\" />\n }\n\n @if (showDeleteMessageBox()) {\n <lib-message-box\n [isVisible]=\"true\"\n [config]=\"deleteMessageBoxConfig()\"\n (yes)=\"onDeleteConfirmed()\"\n (no)=\"onDeleteCancelled()\" />\n }\n</div>\n","import { Component, OnDestroy, OnInit, inject, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n ColDef, GridReadyEvent, GridApi, RowSelectionOptions,\n ICellRendererParams, CellClickedEvent, IDatasource, IGetRowsParams,\n AllCommunityModule, ModuleRegistry, SortModelItem,\n} from 'ag-grid-community';\nimport { Subject, debounceTime, distinctUntilChanged, takeUntil } from 'rxjs';\n\nimport { RoleReadService, RoleDeleteService, PortalRole, PortalPermissions } from '@anvil-eco/portal-services';\nimport { GridFilterItem, GridQueryRequest } from '@anvil-eco/shared-core';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { ErrorAlertComponent, ErrorService, ToastService, ButtonBaseComponent, MessageBoxComponent, SideDrawerContentDirective, type MessageBoxConfig } from '@anvil-eco/shared-ui';\nimport { AuthService } from '@anvil-eco/shared-services';\nimport { RoleCreateGeneralComponent } from '../role-create-general/role-create-general.component';\nimport { AdminListNavComponent } from '../../shared/admin-list-nav/admin-list-nav.component';\nimport { BoolFilterComponent } from '../../shared/bool-filter/bool-filter.component';\nimport { RoleCreatePrimaryComponent } from '../role-create-primary/role-create-primary.component';\nimport { RoleActionCellComponent } from './role-action-cell.component';\n\nModuleRegistry.registerModules([AllCommunityModule]);\n\nconst EDIT_PERMISSION_ID = '4150784C-23E1-42A4-900A-51F35E1731C5';\n\n@Component({\n selector: 'lib-role-list',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n AgGridAngular,\n ButtonBaseComponent,\n ErrorAlertComponent,\n MessageBoxComponent,\n RoleCreateGeneralComponent,\n RoleCreatePrimaryComponent,\n RoleActionCellComponent,\n SideDrawerContentDirective,\n AdminListNavComponent,\n ],\n templateUrl: './role-list.component.html',\n styleUrl: './role-list.component.scss',\n})\nexport class RoleListComponent implements OnInit, OnDestroy {\n private readonly roleReadService = inject(RoleReadService);\n private readonly roleDeleteService = inject(RoleDeleteService);\n private readonly toast = inject(ToastService);\n private readonly errorService = inject(ErrorService);\n private readonly auth = inject(AuthService);\n\n private gridApi?: GridApi<PortalRole>;\n private readonly destroy$ = new Subject<void>();\n private readonly searchSubject = new Subject<string>();\n\n searchValue = '';\n private currentTerm = '';\n private currentFilterModel: Record<string, unknown> = {};\n private currentSortModel: SortModelItem[] = [];\n\n readonly rowSelection: RowSelectionOptions = {\n mode: 'singleRow',\n checkboxes: false,\n enableClickSelection: true,\n };\n\n private canEdit = (): boolean =>\n this.auth.hasPermission(PortalPermissions.Roles.Update);\n\n private canDelete = (): boolean =>\n this.auth.hasPermission(PortalPermissions.Roles.Delete);\n\n private canViewMembership = (): boolean =>\n this.auth.hasPermission(PortalPermissions.RoleMembership.View) ||\n this.auth.hasPermission(PortalPermissions.RoleMembership.Add) ||\n this.auth.hasPermission(PortalPermissions.RoleMembership.Remove);\n\n private canViewPermissions = (): boolean =>\n this.auth.hasPermission(PortalPermissions.RolePermissions.View) ||\n this.auth.hasPermission(PortalPermissions.RolePermissions.Add) ||\n this.auth.hasPermission(PortalPermissions.RolePermissions.Remove);\n\n protected readonly canCreate = (): boolean =>\n this.auth.hasPermission(PortalPermissions.Roles.Create);\n\n columnDefs: ColDef<PortalRole>[] = [\n {\n headerName: 'Actions',\n width: 60,\n sortable: false,\n filter: false,\n pinned: 'left',\n cellRenderer: RoleActionCellComponent,\n cellRendererParams: {\n onEdit: (role: PortalRole) => this.onEdit(role),\n onMembership: (role: PortalRole) => this.onMembership(role),\n onPermissions: (role: PortalRole) => this.onPermissions(role),\n onDelete: (role: PortalRole) => this.onDelete(role),\n },\n },\n {\n field: 'name',\n headerName: 'Name',\n flex: 2,\n sortable: true,\n },\n {\n field: 'description',\n headerName: 'Description',\n flex: 3,\n sortable: true,\n },\n { field: 'userCount', headerName: 'Users', width: 100, sortable: false, filter: false, type: 'numericColumn' },\n {\n field: 'isSystem',\n headerName: 'System',\n width: 100,\n filter: BoolFilterComponent,\n valueFormatter: (p) => p.value ? 'Yes' : 'No',\n cellStyle: (p) => p.value ? { color: 'orange', fontWeight: 'bold' } : null,\n },\n { field: 'isAdmin', headerName: 'Admin', width: 100, filter: BoolFilterComponent, valueFormatter: (p) => p.value ? 'Yes' : 'No' },\n { field: 'isPrimary', headerName: 'Primary', width: 100, filter: BoolFilterComponent, valueFormatter: (p) => p.value ? 'Yes' : 'No' },\n ];\n\n defaultColDef: ColDef = { resizable: true, minWidth: 80, singleClickEdit: true, filter: true };\n\n ngOnInit(): void {\n this.searchSubject.pipe(\n debounceTime(400),\n distinctUntilChanged(),\n takeUntil(this.destroy$),\n ).subscribe(term => {\n this.currentTerm = term;\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onGridReady(event: GridReadyEvent<PortalRole>): void {\n this.gridApi = event.api;\n setTimeout(() => {\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }, 0);\n }\n\n onFilterChanged(): void {\n this.currentFilterModel = (this.gridApi?.getFilterModel() ?? {}) as Record<string, unknown>;\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n onSortChanged(): void {\n this.currentSortModel = this.gridApi?.getColumnState()\n .filter(s => s.sort)\n .map(s => ({ colId: s.colId, sort: s.sort! } as SortModelItem)) ?? [];\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n onSearchChange(value: string): void {\n this.searchSubject.next(value);\n }\n\n onCellClicked(event: CellClickedEvent<PortalRole>): void {\n if ((event.event as MouseEvent)?.detail === 2 && event.data) {\n this.onEdit(event.data);\n }\n }\n\n private buildDatasource(): IDatasource {\n const filterModel = this.currentFilterModel;\n const sortModel = this.currentSortModel;\n return {\n getRows: (params: IGetRowsParams) => {\n const pageSize = params.endRow - params.startRow;\n const page = Math.floor(params.startRow / pageSize) + 1;\n\n const sortCol = sortModel[0];\n const query: GridQueryRequest = {\n page,\n pageSize,\n sortField: sortCol?.colId,\n sortDirection: sortCol?.sort as 'asc' | 'desc' | undefined,\n filters: this.mapFilterModel(filterModel),\n };\n\n this.roleReadService.getGrid(query).subscribe({\n next: (result) => params.successCallback(result.items, result.totalCount),\n error: (err: AppError) => {\n console.error('Failed to load roles:', err);\n this.errorService.setError(err, 'roleList');\n params.failCallback();\n },\n });\n },\n };\n }\n\n private mapFilterModel(filterModel: Record<string, unknown>): GridFilterItem[] {\n const result: GridFilterItem[] = [];\n for (const [field, raw] of Object.entries(filterModel)) {\n const f = raw as Record<string, unknown>;\n const filterType = f['filterType'] as string;\n if (filterType === 'set') {\n const values = f['values'] as string[];\n if (values?.length === 1) {\n result.push({ field, filterType: 'set', operator: 'equals', value: values[0] });\n }\n } else {\n result.push({\n field,\n filterType: filterType ?? 'text',\n operator: (f['type'] as string) ?? 'contains',\n value: f['filter'] != null ? String(f['filter']) : undefined,\n valueTo: f['filterTo'] != null ? String(f['filterTo']) : undefined,\n });\n }\n }\n return result;\n }\n\n showCreateGeneralModal = signal(false);\n showCreatePrimaryModal = signal(false);\n showDeleteMessageBox = signal(false);\n roleToDelete = signal<PortalRole | null>(null);\n deleteMessageBoxConfig = signal<MessageBoxConfig>({\n title: 'Confirm Delete',\n message: 'Are you sure you want to delete this role?',\n context: 'danger',\n });\n\n onCreateGeneral(): void {\n this.showCreateGeneralModal.set(true);\n }\n\n onCreatePrimary(): void {\n this.showCreatePrimaryModal.set(true);\n }\n\n onCreateGeneralModalDismissed(): void {\n this.showCreateGeneralModal.set(false);\n }\n\n onCreatePrimaryModalDismissed(): void {\n this.showCreatePrimaryModal.set(false);\n }\n\n onRoleCreated(): void {\n this.showCreateGeneralModal.set(false);\n this.showCreatePrimaryModal.set(false);\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n onEdit(role: PortalRole): void {\n console.log('Edit role:', role);\n }\n\n onMembership(role: PortalRole): void {\n console.log('Manage membership for role:', role);\n }\n\n onPermissions(role: PortalRole): void {\n console.log('Manage permissions for role:', role);\n }\n\n\n onDelete(role: PortalRole): void {\n if (role.isSystem) {\n this.toast.show({ message: 'Cannot delete system roles', type: 'warning' });\n return;\n }\n\n this.roleToDelete.set(role);\n this.deleteMessageBoxConfig.set({\n title: 'Confirm Delete',\n message: `Are you sure you want to delete \"${role.name}\"?`,\n context: 'danger',\n });\n this.showDeleteMessageBox.set(true);\n }\n\n onDeleteConfirmed(): void {\n const role = this.roleToDelete();\n if (!role) return;\n\n this.roleDeleteService.delete(role.id).subscribe({\n next: () => {\n this.toast.show({ message: 'Role deleted', type: 'success' });\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n this.showDeleteMessageBox.set(false);\n this.roleToDelete.set(null);\n },\n error: (err: AppError) => {\n console.error('Failed to delete role:', err);\n this.errorService.setError(err, 'roleList');\n this.showDeleteMessageBox.set(false);\n this.roleToDelete.set(null);\n },\n });\n }\n\n onDeleteCancelled(): void {\n this.showDeleteMessageBox.set(false);\n this.roleToDelete.set(null);\n }\n}\n","import { Component, OnInit, ViewEncapsulation, computed, inject, signal } from '@angular/core';\nimport { ActivatedRoute, RouterLink, RouterLinkActive } from '@angular/router';\n\ninterface RoleNavItem {\n label: string;\n icon: string;\n path: string;\n}\n\n@Component({\n selector: 'lib-role-detail-nav',\n standalone: true,\n imports: [RouterLink, RouterLinkActive],\n encapsulation: ViewEncapsulation.None,\n styleUrl: '../../shared/_drawer-nav.scss',\n template: `\n <nav class=\"anv-drawer-nav\" aria-label=\"Role sections\">\n <a\n class=\"anv-drawer-nav-item\"\n routerLink=\"/portal/roles/management\">\n <i class=\"bi bi-person-lines-fill\" aria-hidden=\"true\"></i>\n <span class=\"anv-drawer-nav-label\">Roles</span>\n </a>\n <hr class=\"anv-drawer-nav-divider\" />\n @for (item of navItems(); track item.path) {\n <a\n class=\"anv-drawer-nav-item\"\n [routerLink]=\"item.path\"\n routerLinkActive=\"anv-drawer-nav-item--active\"\n [routerLinkActiveOptions]=\"{ exact: true }\">\n <i class=\"bi bi-{{ item.icon }}\" aria-hidden=\"true\"></i>\n <span class=\"anv-drawer-nav-label\">{{ item.label }}</span>\n </a>\n }\n </nav>\n `,\n})\nexport class RoleDetailNavComponent implements OnInit {\n private readonly route = inject(ActivatedRoute);\n\n readonly roleId = signal<string>('');\n\n readonly navItems = computed<RoleNavItem[]>(() => [\n { label: 'Detail', icon: 'info-circle', path: `/portal/roles/${this.roleId()}/profile` },\n { label: 'Edit', icon: 'pencil', path: `/portal/roles/${this.roleId()}/edit` },\n { label: 'Permissions', icon: 'shield-lock', path: `/portal/roles/${this.roleId()}/permissions` },\n { label: 'Membership', icon: 'people', path: `/portal/roles/${this.roleId()}/membership` },\n ]);\n\n ngOnInit(): void {\n this.roleId.set(this.route.snapshot.paramMap.get('id') ?? '');\n }\n}\n","<ng-template sideDrawerContent>\n <lib-role-detail-nav />\n</ng-template>\n\n<div class=\"rm-container\">\n <lib-error-alert sourceId=\"roleMembership\" />\n\n @if (loading()) {\n <div class=\"rm-loading\">\n <i class=\"bi bi-arrow-repeat rm-spin\" aria-hidden=\"true\"></i>\n Loading…\n </div>\n }\n\n @if (role(); as r) {\n <div class=\"rm-body\">\n <div class=\"rm-header\">\n <h2 class=\"rm-header-title\">{{ r.name }}</h2>\n <p class=\"rm-header-subtitle\">Manage role membership</p>\n </div>\n\n <div class=\"anv-row rm-grid\">\n\n <!-- Current Members (left) -->\n <div class=\"anv-col rm-members-col\">\n <lib-card variant=\"solid\">\n <div cardHeader>\n <div class=\"rm-card-title-row\">\n <span class=\"anv-card-title\">Members</span>\n <lib-badge context=\"secondary\">{{ memberCount() }}</lib-badge>\n </div>\n </div>\n\n <lib-paged-list\n #membersList\n [loadFn]=\"loadMembers\"\n searchPlaceholder=\"Filter members…\"\n emptyText=\"No members assigned to this role.\"\n (totalCountChange)=\"memberCount.set($event)\">\n <ng-template let-member>\n <div class=\"rm-row\" [class.rm-row--inactive]=\"!member.isActive\">\n <div class=\"rm-row-info\">\n <span class=\"rm-user-name\">{{ member.userName }}</span>\n @if (member.email) {\n <span class=\"rm-user-email\">{{ member.email }}</span>\n }\n @if (!member.isActive) {\n <span class=\"rm-user-inactive-badge\">Inactive</span>\n }\n </div>\n <button\n type=\"button\"\n class=\"rm-btn rm-btn--remove\"\n title=\"Remove from role\"\n [disabled]=\"savingId() === member.id\"\n (click)=\"remove(member)\">\n @if (savingId() === member.id) {\n <i class=\"bi bi-arrow-repeat rm-spin\"></i>\n } @else {\n <i class=\"bi bi-x-lg\"></i>\n }\n </button>\n </div>\n </ng-template>\n </lib-paged-list>\n </lib-card>\n </div>\n\n <!-- Add Member (right) -->\n <div class=\"anv-col rm-picker-col\">\n <lib-card variant=\"solid\" class=\"rm-picker-card\">\n <div cardHeader>\n <div class=\"rm-card-title-row\">\n <span class=\"anv-card-title\">Add Member</span>\n </div>\n </div>\n\n <lib-paged-list\n #userPicker\n [loadFn]=\"loadAvailableUsers\"\n searchPlaceholder=\"Filter users…\"\n emptyText=\"No users available to add.\">\n <ng-template let-user>\n <div class=\"rm-row\" [class.rm-row--inactive]=\"!user.isActive\">\n <div class=\"rm-row-info\">\n <span class=\"rm-user-name\">{{ user.username }}</span>\n @if (user.email) {\n <span class=\"rm-user-email\">{{ user.email }}</span>\n }\n @if (!user.isActive) {\n <span class=\"rm-user-inactive-badge\">Inactive</span>\n }\n </div>\n <button\n type=\"button\"\n class=\"rm-btn rm-btn--add\"\n title=\"Add to role\"\n [disabled]=\"savingId() === user.id\"\n (click)=\"add(user)\">\n @if (savingId() === user.id) {\n <i class=\"bi bi-arrow-repeat rm-spin\"></i>\n } @else {\n <i class=\"bi bi-plus-lg\"></i>\n }\n </button>\n </div>\n </ng-template>\n </lib-paged-list>\n </lib-card>\n </div>\n\n </div>\n </div>\n }\n</div>\n","import { Component, OnInit, ViewChild, inject, signal } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { RoleMembershipService, RoleReadService, PortalRoleDetail, UsersReadService, PortalUser, PortalUserDetail } from '@anvil-eco/portal-services';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { BadgeComponent, CardComponent, CardHeaderDirective, ErrorAlertComponent, ErrorService, PagedListComponent, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { RoleDetailNavComponent } from '../role-detail-nav/role-detail-nav.component';\n\n@Component({\n selector: 'lib-role-membership',\n standalone: true,\n imports: [\n BadgeComponent,\n CardComponent,\n CardHeaderDirective,\n ErrorAlertComponent,\n PagedListComponent,\n SideDrawerContentDirective,\n RoleDetailNavComponent,\n ],\n templateUrl: './role-membership.component.html',\n styleUrl: './role-membership.component.scss',\n})\nexport class RoleMembershipComponent implements OnInit {\n private readonly route = inject(ActivatedRoute);\n private readonly membershipService = inject(RoleMembershipService);\n private readonly roleReadService = inject(RoleReadService);\n private readonly usersReadService = inject(UsersReadService);\n private readonly errorService = inject(ErrorService);\n\n @ViewChild('membersList') private membersList?: PagedListComponent<PortalUser>;\n @ViewChild('userPicker') private userPicker?: PagedListComponent<PortalUserDetail>;\n\n readonly loading = signal(true);\n readonly savingId = signal<string | null>(null);\n readonly role = signal<PortalRoleDetail | null>(null);\n readonly memberCount = signal(0);\n\n private roleId = '';\n\n readonly loadMembers = (page: number, pageSize: number, term: string) =>\n this.membershipService.getMembersPaged(this.roleId, page, pageSize, term || undefined);\n\n readonly loadAvailableUsers = (page: number, pageSize: number, term: string) =>\n this.usersReadService.getPaged(page, pageSize, term || undefined, this.roleId);\n\n ngOnInit(): void {\n this.roleId = this.route.snapshot.paramMap.get('id') ?? '';\n\n this.roleReadService.getDetailById(this.roleId).subscribe({\n next: role => {\n this.role.set(role);\n this.loading.set(false);\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'roleMembership');\n this.loading.set(false);\n },\n });\n }\n\n add(user: PortalUserDetail): void {\n this.savingId.set(user.id);\n this.membershipService.addUserToRole(this.roleId, user.id).subscribe({\n next: () => {\n this.savingId.set(null);\n this.membersList?.reload();\n this.userPicker?.reload();\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'roleMembership');\n this.savingId.set(null);\n },\n });\n }\n\n remove(member: PortalUser): void {\n this.savingId.set(member.id);\n this.membershipService.removeUserFromRole(this.roleId, member.id).subscribe({\n next: () => {\n this.savingId.set(null);\n this.membersList?.reload();\n this.userPicker?.reload();\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'roleMembership');\n this.savingId.set(null);\n },\n });\n }\n}\n","<ng-template sideDrawerContent>\n <lib-role-detail-nav />\n</ng-template>\n\n<div class=\"rp-container\">\n <lib-error-alert sourceId=\"rolePermissions\" />\n\n @if (loading()) {\n <div class=\"rp-loading\">\n <i class=\"bi bi-arrow-repeat\" aria-hidden=\"true\"></i>\n Loading…\n </div>\n }\n\n @if (role(); as r) {\n <div class=\"rp-body\">\n <div class=\"rp-header\">\n <h1 class=\"rp-header-title\">{{ r.name }}</h1>\n @if (r.description) {\n <p class=\"rp-header-subtitle\">{{ r.description }}</p>\n }\n </div>\n\n <div class=\"anv-row rp-grid\">\n\n <!-- Add Permission (left) -->\n <div class=\"anv-col-md-6 rp-add-col\">\n <lib-card variant=\"solid\">\n <div cardHeader>\n <div class=\"rp-card-title-row\">\n <span class=\"anv-card-title\">Add Permission</span>\n <lib-badge context=\"secondary\">{{ availableCount() }}</lib-badge>\n </div>\n </div>\n\n <lib-paged-list\n #availableList\n [loadFn]=\"loadAvailable\"\n searchPlaceholder=\"Filter permissions…\"\n emptyText=\"All permissions are already assigned.\"\n (totalCountChange)=\"availableCount.set($event)\">\n <ng-template let-perm>\n <div class=\"rp-row\">\n <div class=\"rp-row-info\">\n <span class=\"rp-perm-name\">{{ perm.name }}</span>\n @if (perm.description) {\n <span class=\"rp-perm-desc\">{{ perm.description }}</span>\n }\n </div>\n @if (perm.isSystem) {\n <lib-badge context=\"secondary\">System</lib-badge>\n }\n <button\n type=\"button\"\n class=\"rp-btn rp-btn--add\"\n [disabled]=\"savingId() === perm.id\"\n (click)=\"add(perm)\"\n aria-label=\"Add {{ perm.name }}\">\n @if (savingId() === perm.id) {\n <i class=\"bi bi-arrow-repeat rp-spin\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"bi bi-plus-lg\" aria-hidden=\"true\"></i>\n }\n </button>\n </div>\n </ng-template>\n </lib-paged-list>\n </lib-card>\n </div>\n\n <!-- Assigned Permissions (right) -->\n <div class=\"anv-col-md-6 rp-assigned-col\">\n <lib-card variant=\"solid\">\n <div cardHeader>\n <div class=\"rp-card-title-row\">\n <span class=\"anv-card-title\">Assigned Permissions</span>\n <lib-badge context=\"secondary\">{{ assignedCount() }}</lib-badge>\n </div>\n </div>\n\n <lib-paged-list\n #assignedList\n [loadFn]=\"loadAssigned\"\n searchPlaceholder=\"Filter assigned…\"\n emptyText=\"No permissions assigned to this role.\"\n (totalCountChange)=\"assignedCount.set($event)\">\n <ng-template let-perm>\n <div class=\"rp-row\">\n <div class=\"rp-row-info\">\n <span class=\"rp-perm-name\">{{ perm.name }}</span>\n @if (perm.description) {\n <span class=\"rp-perm-desc\">{{ perm.description }}</span>\n }\n </div>\n @if (perm.isSystem) {\n <lib-badge context=\"secondary\">System</lib-badge>\n }\n <button\n type=\"button\"\n class=\"rp-btn rp-btn--remove\"\n [disabled]=\"savingId() === perm.id\"\n (click)=\"remove(perm)\"\n aria-label=\"Remove {{ perm.name }}\">\n @if (savingId() === perm.id) {\n <i class=\"bi bi-arrow-repeat rp-spin\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"bi bi-x-lg\" aria-hidden=\"true\"></i>\n }\n </button>\n </div>\n </ng-template>\n </lib-paged-list>\n </lib-card>\n </div>\n\n </div>\n </div>\n }\n</div>\n","import { Component, OnInit, ViewChild, inject, signal } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { RolePermissionService, RoleReadService, PortalPermission, PortalRoleDetail } from '@anvil-eco/portal-services';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { BadgeComponent, CardComponent, CardHeaderDirective, ErrorAlertComponent, ErrorService, PagedListComponent, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { RoleDetailNavComponent } from '../role-detail-nav/role-detail-nav.component';\n\n@Component({\n selector: 'lib-role-permissions',\n standalone: true,\n imports: [\n BadgeComponent,\n CardComponent,\n CardHeaderDirective,\n ErrorAlertComponent,\n PagedListComponent,\n SideDrawerContentDirective,\n RoleDetailNavComponent,\n ],\n templateUrl: './role-permissions.component.html',\n styleUrl: './role-permissions.component.scss',\n})\nexport class RolePermissionsComponent implements OnInit {\n private readonly route = inject(ActivatedRoute);\n private readonly rolePermService = inject(RolePermissionService);\n private readonly roleReadService = inject(RoleReadService);\n private readonly errorService = inject(ErrorService);\n\n @ViewChild('availableList') private availableList?: PagedListComponent<PortalPermission>;\n @ViewChild('assignedList') private assignedList?: PagedListComponent<PortalPermission>;\n\n readonly loading = signal(true);\n readonly savingId = signal<string | null>(null);\n readonly role = signal<PortalRoleDetail | null>(null);\n readonly availableCount = signal(0);\n readonly assignedCount = signal(0);\n\n private roleId = '';\n\n readonly loadAvailable = (page: number, pageSize: number, term: string) =>\n this.rolePermService.getAvailablePermissionsPaged(this.roleId, page, pageSize, term || undefined);\n\n readonly loadAssigned = (page: number, pageSize: number, term: string) =>\n this.rolePermService.getPermissionsForRolePaged(this.roleId, page, pageSize, term || undefined);\n\n ngOnInit(): void {\n this.roleId = this.route.snapshot.paramMap.get('id') ?? '';\n\n this.roleReadService.getDetailById(this.roleId).subscribe({\n next: role => {\n this.role.set(role);\n this.loading.set(false);\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'rolePermissions');\n this.loading.set(false);\n },\n });\n }\n\n add(permission: PortalPermission): void {\n this.savingId.set(permission.id);\n this.rolePermService.addPermissionToRole(this.roleId, permission.id).subscribe({\n next: () => {\n this.savingId.set(null);\n this.assignedList?.reload();\n this.availableList?.reload();\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'rolePermissions');\n this.savingId.set(null);\n },\n });\n }\n\n remove(permission: PortalPermission): void {\n this.savingId.set(permission.id);\n this.rolePermService.removePermissionFromRole(this.roleId, permission.id).subscribe({\n next: () => {\n this.savingId.set(null);\n this.assignedList?.reload();\n this.availableList?.reload();\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'rolePermissions');\n this.savingId.set(null);\n },\n });\n }\n}\n","import { Component, OnInit, inject, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { RoleReadService, PortalRoleDetail } from '@anvil-eco/portal-services';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { ErrorAlertComponent, ErrorService, BadgeComponent, CardComponent, CardHeaderDirective, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { RoleDetailNavComponent } from '../role-detail-nav/role-detail-nav.component';\n\n@Component({\n selector: 'lib-role-detail',\n standalone: true,\n imports: [\n CommonModule,\n ErrorAlertComponent,\n BadgeComponent,\n CardComponent,\n CardHeaderDirective,\n SideDrawerContentDirective,\n RoleDetailNavComponent,\n ],\n template: `\n <ng-template sideDrawerContent>\n <lib-role-detail-nav />\n </ng-template>\n\n <div class=\"role-detail-container\">\n <lib-error-alert sourceId=\"roleDetail\" />\n\n @if (loading()) {\n <div class=\"role-detail-loading\">\n <i class=\"bi bi-arrow-repeat\" aria-hidden=\"true\"></i>\n Loading…\n </div>\n }\n\n @if (role(); as r) {\n\n <lib-card variant=\"solid\">\n <div cardHeader>\n <div class=\"role-header-inner\">\n <span class=\"anv-card-title\">{{ r.name }}</span>\n <div class=\"role-badges\">\n @if (r.isAdmin) {\n <lib-badge context=\"warning\">Admin</lib-badge>\n }\n @if (r.isSystem) {\n <lib-badge context=\"secondary\">System</lib-badge>\n }\n </div>\n </div>\n @if (r.description) {\n <p class=\"role-description\">{{ r.description }}</p>\n }\n </div>\n\n <div class=\"role-sections\">\n <div class=\"detail-section\">\n <h3 class=\"section-title\">Identity</h3>\n <dl class=\"detail-grid\">\n <div class=\"detail-row\">\n <dt>Role ID</dt>\n <dd class=\"mono\">{{ r.id }}</dd>\n </div>\n </dl>\n </div>\n\n <div class=\"detail-section\">\n <h3 class=\"section-title\">Flags</h3>\n <dl class=\"detail-grid\">\n <div class=\"detail-row\">\n <dt>System Role</dt>\n <dd>\n <lib-badge [context]=\"r.isSystem ? 'success' : 'secondary'\">\n {{ r.isSystem ? 'Yes' : 'No' }}\n </lib-badge>\n </dd>\n </div>\n <div class=\"detail-row\">\n <dt>Admin Role</dt>\n <dd>\n <lib-badge [context]=\"r.isAdmin ? 'warning' : 'secondary'\">\n {{ r.isAdmin ? 'Yes' : 'No' }}\n </lib-badge>\n </dd>\n </div>\n </dl>\n </div>\n\n @if (r.authPolicy) {\n <div class=\"detail-section\">\n <h3 class=\"section-title\">Auth Policy</h3>\n <dl class=\"detail-grid\">\n <div class=\"detail-row\">\n <dt>Name</dt>\n <dd>{{ r.authPolicy.name }}</dd>\n </div>\n @if (r.authPolicy.description) {\n <div class=\"detail-row\">\n <dt>Description</dt>\n <dd>{{ r.authPolicy.description }}</dd>\n </div>\n }\n </dl>\n </div>\n }\n </div>\n </lib-card>\n\n <lib-card variant=\"solid\">\n <div cardHeader>\n <div class=\"role-header-inner\">\n <span class=\"anv-card-title\">Users</span>\n <lib-badge context=\"secondary\">{{ r.users.length }}</lib-badge>\n </div>\n </div>\n\n @if (r.users.length === 0) {\n <p class=\"empty-state\">No users assigned to this role.</p>\n } @else {\n <div class=\"list-table\">\n <div class=\"list-header list-grid--users\">\n <span>Username</span>\n <span>Email</span>\n <span>Status</span>\n </div>\n @for (user of r.users; track user.userName) {\n <div class=\"list-row list-grid--users\">\n <span class=\"mono\">{{ user.userName }}</span>\n <span>{{ user.email }}</span>\n <span>\n <lib-badge [context]=\"user.isActive ? 'success' : 'secondary'\">\n {{ user.isActive ? 'Active' : 'Inactive' }}\n </lib-badge>\n </span>\n </div>\n }\n </div>\n }\n </lib-card>\n\n <lib-card variant=\"solid\">\n <div cardHeader>\n <div class=\"role-header-inner\">\n <span class=\"anv-card-title\">Permissions</span>\n <lib-badge context=\"secondary\">{{ r.permissions.length }}</lib-badge>\n </div>\n </div>\n\n @if (r.permissions.length === 0) {\n <p class=\"empty-state\">No permissions assigned to this role.</p>\n } @else {\n <div class=\"list-table\">\n <div class=\"list-header list-grid--perms\">\n <span>Key</span>\n <span>Description</span>\n </div>\n @for (perm of r.permissions; track perm.key) {\n <div class=\"list-row list-grid--perms\">\n <span class=\"mono\">{{ perm.key }}</span>\n <span>{{ perm.description }}</span>\n </div>\n }\n </div>\n }\n </lib-card>\n\n }\n </div>\n `,\n styles: [`\n .role-detail-container {\n padding: 24px;\n max-width: 860px;\n display: flex;\n flex-direction: column;\n gap: 20px;\n }\n\n .role-detail-loading {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--anv-color-secondary, #6c757d);\n font-size: 0.95rem;\n padding: 24px 0;\n }\n\n .role-header-inner {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n }\n\n .role-badges {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n }\n\n .role-description {\n margin: 6px 0 0;\n color: var(--anv-color-secondary, #6c757d);\n font-size: 0.875rem;\n }\n\n .role-sections {\n display: flex;\n flex-direction: column;\n gap: 24px;\n }\n\n .detail-section {\n display: flex;\n flex-direction: column;\n }\n\n .section-title {\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--anv-color-secondary, #6c757d);\n margin: 0 0 8px;\n padding-bottom: 6px;\n border-bottom: 1px solid var(--anv-color-outline, #dee2e6);\n }\n\n .detail-grid {\n margin: 0;\n }\n\n .detail-row {\n display: grid;\n grid-template-columns: 200px 1fr;\n align-items: baseline;\n padding: 7px 0;\n border-bottom: 1px solid var(--anv-color-outline, #f0f0f0);\n }\n\n .detail-row:last-child {\n border-bottom: none;\n }\n\n dt {\n font-weight: 500;\n color: var(--anv-color-secondary, #6c757d);\n font-size: 0.875rem;\n }\n\n dd {\n margin: 0;\n color: var(--anv-color-dark, #212529);\n font-size: 0.9rem;\n }\n\n .mono {\n font-family: var(--anv-font-monospace, monospace);\n font-size: 0.8rem;\n word-break: break-all;\n }\n\n .empty-state {\n color: var(--anv-color-secondary, #6c757d);\n font-size: 0.875rem;\n padding: 4px 0;\n margin: 0;\n }\n\n .list-table {\n display: flex;\n flex-direction: column;\n }\n\n .list-header {\n display: grid;\n padding: 6px 0;\n border-bottom: 2px solid var(--anv-color-outline, #dee2e6);\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--anv-color-secondary, #6c757d);\n }\n\n .list-row {\n display: grid;\n align-items: center;\n padding: 8px 0;\n border-bottom: 1px solid var(--anv-color-outline, #f0f0f0);\n font-size: 0.875rem;\n color: var(--anv-color-dark, #212529);\n }\n\n .list-row:last-child {\n border-bottom: none;\n }\n\n .list-grid--users {\n grid-template-columns: 180px 1fr 90px;\n }\n\n .list-grid--perms {\n grid-template-columns: 280px 1fr;\n }\n `]\n})\nexport class RoleDetailComponent implements OnInit {\n private readonly route = inject(ActivatedRoute);\n private readonly roleReadService = inject(RoleReadService);\n private readonly errorService = inject(ErrorService);\n\n readonly loading = signal(false);\n readonly role = signal<PortalRoleDetail | null>(null);\n\n ngOnInit(): void {\n const id = this.route.snapshot.paramMap.get('id') ?? '';\n this.loading.set(true);\n this.roleReadService.getDetailById(id).subscribe({\n next: (r) => {\n this.role.set(r);\n this.loading.set(false);\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'roleDetail');\n this.loading.set(false);\n },\n });\n }\n}\n","import { Component, OnInit, inject, signal } from '@angular/core';\nimport { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { Router, ActivatedRoute } from '@angular/router';\n\nimport { RoleReadService, RoleUpdateService, AuthPolicyService, type PortalAuthPolicy, type UpdateRoleRequest } from '@anvil-eco/portal-services';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { ErrorAlertComponent, ErrorService, FormComponent, FormFieldComponent, FilterableSelectComponent, type FilterableSelectChangeEvent, CardComponent, CardHeaderDirective, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { RoleDetailNavComponent } from '../role-detail-nav/role-detail-nav.component';\n\n@Component({\n selector: 'lib-role-edit',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n ErrorAlertComponent,\n FormComponent,\n FormFieldComponent,\n FilterableSelectComponent,\n CardComponent,\n CardHeaderDirective,\n SideDrawerContentDirective,\n RoleDetailNavComponent,\n ],\n template: `\n <ng-template sideDrawerContent>\n <lib-role-detail-nav />\n </ng-template>\n\n <div class=\"role-edit-container\">\n\n @if (loading()) {\n <div class=\"role-edit-loading\">\n <i class=\"bi bi-arrow-repeat\" aria-hidden=\"true\"></i>\n Loading…\n </div>\n }\n\n @if (!loading()) {\n <lib-card variant=\"solid\">\n <div cardHeader>\n <span class=\"anv-card-title\">Edit Role</span>\n </div>\n\n <lib-form\n [formGroup]=\"form\"\n [submitFn]=\"submitFn\"\n formId=\"roleEdit\"\n submitLabel=\"Save Changes\"\n successMessage=\"Role updated successfully.\">\n\n <input type=\"hidden\" formControlName=\"id\" />\n\n <lib-form-field controlName=\"name\" label=\"Name\">\n <input\n type=\"text\"\n class=\"anv-input\"\n formControlName=\"name\"\n placeholder=\"Enter role name\"\n aria-label=\"Role name\" />\n </lib-form-field>\n\n <lib-form-field controlName=\"description\" label=\"Description\">\n <textarea\n class=\"anv-input anv-input--textarea\"\n formControlName=\"description\"\n rows=\"3\"\n placeholder=\"Enter role description\"\n aria-label=\"Role description\"></textarea>\n </lib-form-field>\n\n @if (isPrimary()) {\n <div [formGroup]=\"form\">\n <lib-form-field\n controlName=\"portalAuthPolicyId\"\n label=\"Auth Policy\"\n tooltip=\"Change the authentication policy for this primary role\">\n <lib-filterable-select\n formControlName=\"portalAuthPolicyId\"\n textField=\"name\"\n valueField=\"id\"\n [loadItems]=\"loadAuthPolicies\"\n placeholder=\"Select an auth policy...\"\n searchPlaceholder=\"Search auth policies...\"\n noDataText=\"No auth policies found\"\n (valueChange)=\"onAuthPolicyChange($event)\">\n </lib-filterable-select>\n </lib-form-field>\n </div>\n }\n\n <div formFooter>\n <button\n type=\"button\"\n class=\"anv-btn anv-btn--secondary\"\n (click)=\"onCancel()\">\n Cancel\n </button>\n </div>\n\n </lib-form>\n </lib-card>\n }\n\n </div>\n `,\n styles: [`\n .role-edit-container {\n padding: 24px;\n max-width: 600px;\n display: flex;\n flex-direction: column;\n gap: 20px;\n }\n\n .role-edit-loading {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--anv-color-secondary, #6c757d);\n font-size: 0.95rem;\n padding: 24px 0;\n }\n `],\n})\nexport class RoleEditComponent implements OnInit {\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n private readonly roleReadService = inject(RoleReadService);\n private readonly roleUpdateService = inject(RoleUpdateService);\n private readonly authPolicyService = inject(AuthPolicyService);\n private readonly errorService = inject(ErrorService);\n private readonly fb = inject(FormBuilder);\n\n readonly loading = signal(true);\n readonly isPrimary = signal(false);\n\n readonly form = this.fb.group({\n id: ['', Validators.required],\n name: ['', [Validators.required, Validators.maxLength(100)]],\n description: ['', Validators.maxLength(500)],\n portalAuthPolicyId: [null as string | null],\n });\n\n readonly loadAuthPolicies = async (searchTerm: string): Promise<PortalAuthPolicy[]> => {\n try {\n return await this.authPolicyService.search(searchTerm).toPromise() ?? [];\n } catch {\n return [];\n }\n };\n\n onAuthPolicyChange(event: FilterableSelectChangeEvent): void {\n this.form.patchValue({ portalAuthPolicyId: event.value as string | null });\n }\n\n readonly submitFn = (data: unknown): ReturnType<RoleUpdateService['update']> => {\n return this.roleUpdateService.update(data as UpdateRoleRequest);\n };\n\n ngOnInit(): void {\n const id = this.route.snapshot.paramMap.get('id') ?? '';\n\n this.roleReadService.getDetailById(id).subscribe({\n next: (role) => {\n const isPrimary = role.portalAuthPolicyId != null;\n this.isPrimary.set(isPrimary);\n\n if (isPrimary) {\n this.form.get('portalAuthPolicyId')?.setValidators([Validators.required]);\n this.form.get('portalAuthPolicyId')?.updateValueAndValidity();\n }\n\n this.form.patchValue({\n id,\n name: role.name,\n description: role.description,\n portalAuthPolicyId: role.portalAuthPolicyId,\n });\n this.loading.set(false);\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'roleEdit');\n this.loading.set(false);\n },\n });\n }\n\n onCancel(): void {\n const id = this.route.snapshot.paramMap.get('id') ?? '';\n this.router.navigate(['/portal/roles', id, 'profile']);\n }\n}\n","import { Component, inject, output } from '@angular/core';\nimport { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { FormModalComponent, FormModalFieldsDirective, FormFieldComponent } from '@anvil-eco/shared-ui';\nimport { AuthPolicyService, CreateAuthPolicyRequest } from '@anvil-eco/portal-services';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'lib-auth-policy-form-create',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n FormModalComponent,\n FormModalFieldsDirective,\n FormFieldComponent,\n ],\n template: `\n <lib-form-modal\n [formGroup]=\"form\"\n [submitFn]=\"submitFn\"\n [title]=\"'Create Authorization Policy'\"\n [submitLabel]=\"'Create Policy'\"\n [successMessage]=\"'Authorization policy created successfully.'\"\n [showOverlay]=\"true\"\n (dismissed)=\"onDismiss()\"\n (cancelled)=\"onCancel()\"\n (submitted)=\"onSubmitted($event)\">\n \n <ng-template formModalFields>\n <lib-form-field\n controlName=\"name\"\n label=\"Name\">\n <input\n type=\"text\"\n class=\"anv-input\"\n formControlName=\"name\"\n placeholder=\"Enter policy name\"\n aria-label=\"Policy name\" />\n </lib-form-field>\n\n <lib-form-field\n controlName=\"description\"\n label=\"Description\">\n <textarea\n class=\"anv-input anv-input--textarea\"\n formControlName=\"description\"\n rows=\"3\"\n placeholder=\"Enter policy description\"\n aria-label=\"Policy description\"></textarea>\n </lib-form-field>\n\n <div class=\"form-section\">\n <h3 class=\"form-section-title\">Password Requirements</h3>\n\n <lib-form-field\n controlName=\"passwordMinLength\"\n label=\"Minimum Length\">\n <input\n type=\"number\"\n class=\"anv-input\"\n formControlName=\"passwordMinLength\"\n min=\"6\"\n max=\"128\"\n aria-label=\"Minimum password length\" />\n </lib-form-field>\n\n <div class=\"checkbox-group\">\n <label class=\"anv-checkbox\">\n <input type=\"checkbox\" formControlName=\"passwordRequireUpper\" />\n <span>Require uppercase letters</span>\n </label>\n\n <label class=\"anv-checkbox\">\n <input type=\"checkbox\" formControlName=\"passwordRequireLower\" />\n <span>Require lowercase letters</span>\n </label>\n\n <label class=\"anv-checkbox\">\n <input type=\"checkbox\" formControlName=\"passwordRequireDigit\" />\n <span>Require digits</span>\n </label>\n\n <label class=\"anv-checkbox\">\n <input type=\"checkbox\" formControlName=\"passwordRequireNonAlphaNumeric\" />\n <span>Require special characters</span>\n </label>\n </div>\n\n <lib-form-field\n controlName=\"passwordLifetimeDays\"\n label=\"Password Lifetime (days)\">\n <input\n type=\"number\"\n class=\"anv-input\"\n formControlName=\"passwordLifetimeDays\"\n min=\"0\"\n max=\"365\"\n aria-label=\"Password lifetime in days\" />\n </lib-form-field>\n </div>\n\n <div class=\"form-section\">\n <h3 class=\"form-section-title\">Security Options</h3>\n\n <lib-form-field\n controlName=\"maxPasswordAttempts\"\n label=\"Max Password Attempts\">\n <input\n type=\"number\"\n class=\"anv-input\"\n formControlName=\"maxPasswordAttempts\"\n min=\"0\"\n max=\"10\"\n aria-label=\"Number of bad password attempts before account is locked out\" />\n </lib-form-field>\n\n <lib-form-field\n controlName=\"max\"\n label=\"Inactivity Term (days)\">\n <input\n type=\"number\"\n class=\"anv-input\"\n formControlName=\"inactivityTerm\"\n min=\"0\"\n max=\"365\"\n aria-label=\"Inactivity term in days\" />\n </lib-form-field>\n\n <div class=\"checkbox-group\">\n <label class=\"anv-checkbox\">\n <input type=\"checkbox\" formControlName=\"requireMF2\" />\n <span>Require Multi-Factor Authentication</span>\n </label>\n\n <label class=\"anv-checkbox\">\n <input type=\"checkbox\" formControlName=\"requireEmailVerification\" />\n <span>Require email verification</span>\n </label>\n </div>\n </div>\n </ng-template>\n </lib-form-modal>\n `,\n styles: [`\n .form-section {\n margin-top: 24px;\n padding-top: 20px;\n border-top: 1px solid var(--anv-color-outline, #c4cacf);\n }\n\n .form-section-title {\n margin: 0 0 16px 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--anv-color-dark, #01132c);\n }\n\n .checkbox-group {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin: 16px 0;\n }\n\n .anv-checkbox {\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n font-size: 0.9rem;\n color: var(--anv-color-dark, #01132c);\n\n input[type=\"checkbox\"] {\n width: 18px;\n height: 18px;\n accent-color: var(--anv-color-primary, #00174b);\n cursor: pointer;\n }\n }\n\n .anv-input {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid var(--anv-color-outline, #c4cacf);\n border-radius: 6px;\n font-size: 0.9rem;\n background: var(--anv-color-surface, #ffffff);\n color: var(--anv-color-dark, #01132c);\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n\n &:focus {\n outline: none;\n border-color: var(--anv-color-primary, #00174b);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--anv-color-primary, #00174b) 20%, transparent);\n }\n\n &--textarea {\n resize: vertical;\n min-height: 80px;\n }\n }\n `]\n})\nexport class AuthPolicyFormCreateComponent {\n private fb = inject(FormBuilder);\n private authPolicyService = inject(AuthPolicyService);\n\n dismissed = output<void>();\n cancelled = output<void>();\n created = output<void>();\n\n form = this.fb.group({\n name: ['', [Validators.required, Validators.maxLength(100)]],\n description: ['', Validators.maxLength(500)],\n passwordMinLength: [0, [Validators.required, Validators.min(6), Validators.max(128)]],\n passwordRequireUpper: [true],\n passwordRequireLower: [true],\n passwordRequireDigit: [true],\n passwordRequireNonAlphaNumeric: [false],\n maxPasswordAttempts: [3, [Validators.required, Validators.min(0), Validators.max(10)]],\n passwordLifetimeDays: [90, [Validators.required, Validators.min(0), Validators.max(365)]],\n inactivityTerm: [30, [Validators.required, Validators.min(0), Validators.max(365)]],\n requireMF2: [false],\n requireEmailVerification: [true],\n });\n\n submitFn = (data: unknown): Observable<unknown> => {\n const request = data as CreateAuthPolicyRequest;\n return this.authPolicyService.create(request);\n };\n\n onDismiss(): void {\n this.dismissed.emit();\n }\n\n onCancel(): void {\n this.cancelled.emit();\n }\n\n onSubmitted(response: unknown): void {\n this.created.emit();\n }\n}\n","import { Component, inject, output, input, OnInit } from '@angular/core';\nimport { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { FormModalComponent, FormModalFieldsDirective, FormFieldComponent } from '@anvil-eco/shared-ui';\nimport { AuthPolicyService, UpdateAuthPolicyRequest, PortalAuthPolicy } from '@anvil-eco/portal-services';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'lib-auth-policy-form-edit',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n FormModalComponent,\n FormModalFieldsDirective,\n FormFieldComponent,\n ],\n template: `\n <lib-form-modal\n [formGroup]=\"form\"\n [submitFn]=\"submitFn\"\n [title]=\"'Edit Authorization Policy'\"\n [submitLabel]=\"'Save Changes'\"\n [successMessage]=\"'Authorization policy updated successfully.'\"\n [showOverlay]=\"true\"\n (dismissed)=\"onDismiss()\"\n (cancelled)=\"onCancel()\"\n (submitted)=\"onSubmitted($event)\">\n \n <ng-template formModalFields>\n <!-- Hidden ID field -->\n <input type=\"hidden\" formControlName=\"id\" />\n \n <lib-form-field\n controlName=\"name\"\n label=\"Name\">\n <input\n type=\"text\"\n class=\"anv-input\"\n formControlName=\"name\"\n placeholder=\"Enter policy name\"\n aria-label=\"Policy name\" />\n </lib-form-field>\n\n <lib-form-field\n controlName=\"description\"\n label=\"Description\">\n <textarea\n class=\"anv-input anv-input--textarea\"\n formControlName=\"description\"\n rows=\"3\"\n placeholder=\"Enter policy description\"\n aria-label=\"Policy description\"></textarea>\n </lib-form-field>\n\n <div class=\"form-section\">\n <h3 class=\"form-section-title\">Password Requirements</h3>\n\n <lib-form-field\n controlName=\"passwordMinLength\"\n label=\"Minimum Length\">\n <input\n type=\"number\"\n class=\"anv-input\"\n formControlName=\"passwordMinLength\"\n min=\"1\"\n max=\"128\"\n aria-label=\"Minimum password length\" />\n </lib-form-field>\n\n <div class=\"checkbox-group\">\n <label class=\"anv-checkbox\">\n <input type=\"checkbox\" formControlName=\"passwordRequireUpper\" />\n <span>Require uppercase letters</span>\n </label>\n\n <label class=\"anv-checkbox\">\n <input type=\"checkbox\" formControlName=\"passwordRequireLower\" />\n <span>Require lowercase letters</span>\n </label>\n\n <label class=\"anv-checkbox\">\n <input type=\"checkbox\" formControlName=\"passwordRequireDigit\" />\n <span>Require digits</span>\n </label>\n\n <label class=\"anv-checkbox\">\n <input type=\"checkbox\" formControlName=\"passwordRequireNonAlphaNumeric\" />\n <span>Require special characters</span>\n </label>\n </div>\n\n <lib-form-field\n controlName=\"passwordLifetimeDays\"\n label=\"Password Lifetime (days)\">\n <input\n type=\"number\"\n class=\"anv-input\"\n formControlName=\"passwordLifetimeDays\"\n min=\"0\"\n max=\"365\"\n aria-label=\"Password lifetime in days\" />\n </lib-form-field>\n </div>\n\n <div class=\"form-section\">\n <h3 class=\"form-section-title\">Security Options</h3>\n\n <lib-form-field\n controlName=\"maxPasswordAttempts\"\n label=\"Max Password Attempts\">\n <input\n type=\"number\"\n class=\"anv-input\"\n formControlName=\"maxPasswordAttempts\"\n min=\"0\"\n max=\"10\"\n aria-label=\"Number of bad password attempts before account is locked out\" />\n </lib-form-field>\n <lib-form-field\n controlName=\"inactivityTerm\"\n label=\"Inactivity Term (days)\">\n <input\n type=\"number\"\n class=\"anv-input\"\n formControlName=\"inactivityTerm\"\n min=\"0\"\n max=\"365\"\n aria-label=\"Inactivity term in days\" />\n </lib-form-field>\n\n <div class=\"checkbox-group\">\n <label class=\"anv-checkbox\">\n <input type=\"checkbox\" formControlName=\"requireMF2\" />\n <span>Require Multi-Factor Authentication</span>\n </label>\n\n <label class=\"anv-checkbox\">\n <input type=\"checkbox\" formControlName=\"requireEmailVerification\" />\n <span>Require email verification</span>\n </label>\n </div>\n </div>\n </ng-template>\n </lib-form-modal>\n `,\n styles: [`\n .form-section {\n margin-top: 24px;\n padding-top: 20px;\n border-top: 1px solid var(--anv-color-outline, #c4cacf);\n }\n\n .form-section-title {\n margin: 0 0 16px 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--anv-color-text-primary, #212529);\n }\n\n .checkbox-group {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-bottom: 16px;\n }\n\n .anv-checkbox {\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n font-size: 0.875rem;\n color: var(--anv-color-text-secondary, #495057);\n\n input[type=\"checkbox\"] {\n width: 1.125rem;\n height: 1.125rem;\n cursor: pointer;\n }\n\n span {\n user-select: none;\n }\n }\n `],\n})\nexport class AuthPolicyFormEditComponent implements OnInit {\n private fb = inject(FormBuilder);\n private authPolicyService = inject(AuthPolicyService);\n\n // Input - the policy to edit\n policy = input.required<PortalAuthPolicy>();\n\n // Outputs\n dismissed = output<void>();\n cancelled = output<void>();\n updated = output<void>();\n\n form = this.fb.group({\n id: ['', Validators.required],\n name: ['', [Validators.required, Validators.maxLength(100)]],\n description: ['', Validators.maxLength(500)],\n passwordMinLength: [8, [Validators.required, Validators.min(0), Validators.max(128)]],\n passwordRequireUpper: [true],\n passwordRequireLower: [true],\n passwordRequireDigit: [true],\n passwordRequireNonAlphaNumeric: [false],\n maxPasswordAttempts: [3, [Validators.required, Validators.min(0), Validators.max(10)]],\n passwordLifetimeDays: [90, [Validators.required, Validators.min(0), Validators.max(365)]],\n inactivityTerm: [30, [Validators.required, Validators.min(0), Validators.max(365)]],\n requireMF2: [false],\n requireEmailVerification: [true], \n });\n\n submitFn = (data: unknown): Observable<unknown> => \n this.authPolicyService.update(data as UpdateAuthPolicyRequest);\n\n ngOnInit(): void {\n // Populate form with policy data when input is set\n const policyData = this.policy();\n if (policyData) {\n this.form.patchValue({\n id: policyData.id,\n name: policyData.name,\n description: policyData.description,\n passwordMinLength: policyData.passwordMinLength,\n passwordRequireUpper: policyData.passwordRequireUpper,\n passwordRequireLower: policyData.passwordRequireLower,\n passwordRequireDigit: policyData.passwordRequireDigit,\n passwordRequireNonAlphaNumeric: policyData.passwordRequireNonAlphaNumeric,\n passwordLifetimeDays: policyData.passwordLifetimeDays,\n inactivityTerm: policyData.inactivityTerm,\n requireMF2: policyData.requireMF2,\n requireEmailVerification: policyData.requireEmailVerification,\n });\n }\n }\n\n onDismiss(): void {\n this.dismissed.emit();\n }\n\n onCancel(): void {\n this.cancelled.emit();\n }\n\n onSubmitted(response: unknown): void {\n this.updated.emit();\n }\n}\n","import { Component, signal } from '@angular/core';\nimport type { ICellRendererAngularComp } from 'ag-grid-angular';\nimport type { ICellRendererParams } from 'ag-grid-community';\nimport { PortalAuthPolicy, PortalPermissions } from '@anvil-eco/portal-services';\nimport { DropDownComponent, type DropDownItemConfig, type DropDownTogglerConfig } from '@anvil-eco/shared-ui';\n\ninterface AuthPolicyActionParams extends ICellRendererParams {\n onEdit: (policy: PortalAuthPolicy) => void;\n onDelete: (policy: PortalAuthPolicy) => void;\n onSetDefault: (policy: PortalAuthPolicy) => void;\n}\n\n@Component({\n selector: 'lib-auth-policy-action-cell',\n standalone: true,\n imports: [DropDownComponent],\n template: `\n <lib-dropdown [toggler]=\"toggler\" [items]=\"items()\" />\n `,\n styles: [`:host { display: inline-flex; align-items: center; height: 100%; }`],\n})\nexport class AuthPolicyActionCellComponent implements ICellRendererAngularComp {\n readonly toggler: DropDownTogglerConfig = { icon: 'bi bi-three-dots-vertical' };\n\n items = signal<DropDownItemConfig[]>([]);\n\n private policy!: PortalAuthPolicy;\n\n agInit(params: AuthPolicyActionParams): void {\n this.policy = params.data;\n this.buildItems(params);\n }\n\n refresh(params: AuthPolicyActionParams): boolean {\n this.policy = params.data;\n this.buildItems(params);\n return true;\n }\n\n private buildItems(params: AuthPolicyActionParams): void {\n const items: DropDownItemConfig[] = [\n {\n text: 'Edit',\n icon: 'bi bi-pencil',\n permissions: [PortalPermissions.AuthPolicies.Update],\n onClick: () => params.onEdit(this.policy),\n },\n ];\n\n if (!this.policy?.isDefault) {\n items.push({\n text: 'Set as default',\n icon: 'bi bi-star',\n permissions: [PortalPermissions.AuthPolicies.Update],\n onClick: () => params.onSetDefault(this.policy),\n });\n }\n\n items.push(\n { text: '-' },\n {\n text: 'Delete',\n icon: 'bi bi-trash',\n permissions: [PortalPermissions.AuthPolicies.Delete],\n onClick: () => params.onDelete(this.policy),\n },\n );\n\n this.items.set(items);\n }\n}\n","import { Component, inject, signal } from '@angular/core';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n ColDef, GridReadyEvent, GridApi, RowSelectionOptions,\n CellClickedEvent, IDatasource, IGetRowsParams,\n AllCommunityModule, ModuleRegistry, SortModelItem,\n} from 'ag-grid-community';\nimport { A11yModule } from '@angular/cdk/a11y';\n\nimport { AuthPolicyService, PortalAuthPolicy, PortalPermissions } from '@anvil-eco/portal-services';\nimport { GridFilterItem, GridQueryRequest } from '@anvil-eco/shared-core';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { ErrorAlertComponent, ErrorService, ToastService, ButtonBaseComponent, MessageBoxComponent, SideDrawerContentDirective, type MessageBoxConfig } from '@anvil-eco/shared-ui';\nimport { AdminListNavComponent } from '../../shared/admin-list-nav/admin-list-nav.component';\nimport { AuthService } from '@anvil-eco/shared-services';\nimport { AuthPolicyFormCreateComponent } from '../auth-policy-form-create/auth-policy-form-create.component';\nimport { AuthPolicyFormEditComponent } from '../auth-policy-form-edit/auth-policy-form-edit.component';\nimport { AuthPolicyActionCellComponent } from './auth-policy-action-cell.component';\n\nModuleRegistry.registerModules([AllCommunityModule]);\n\n\n@Component({\n selector: 'lib-auth-policy-list',\n standalone: true,\n imports: [\n AgGridAngular,\n ButtonBaseComponent,\n ErrorAlertComponent,\n A11yModule,\n AuthPolicyFormCreateComponent,\n AuthPolicyFormEditComponent,\n AuthPolicyActionCellComponent,\n MessageBoxComponent,\n SideDrawerContentDirective,\n AdminListNavComponent,\n ],\n template: `\n <ng-template sideDrawerContent>\n <lib-admin-list-nav />\n </ng-template>\n\n @if (showCreateForm()) {\n <lib-auth-policy-form-create\n (dismissed)=\"closeCreateForm()\"\n (cancelled)=\"closeCreateForm()\"\n (created)=\"onPolicyCreated()\" />\n }\n\n @if (showEditForm() && selectedPolicy()) {\n <lib-auth-policy-form-edit\n [policy]=\"selectedPolicy()!\"\n (dismissed)=\"closeEditForm()\"\n (cancelled)=\"closeEditForm()\"\n (updated)=\"onPolicyUpdated()\" />\n }\n\n @if (showSetDefaultConfirm() && policyToSetDefault()) {\n <lib-message-box\n [isVisible]=\"showSetDefaultConfirm()\"\n [config]=\"setDefaultMessageBoxConfig\"\n (yes)=\"confirmSetDefault()\"\n (no)=\"cancelSetDefault()\" />\n }\n\n @if (showDeleteConfirm() && policyToDelete()) {\n <lib-message-box\n [isVisible]=\"showDeleteConfirm()\"\n [config]=\"deleteMessageBoxConfig\"\n (yes)=\"confirmDelete()\"\n (no)=\"cancelDelete()\" />\n }\n\n <div class=\"auth-policy-list-container\">\n <lib-error-alert sourceId=\"authPolicyList\" />\n \n <div class=\"toolbar\">\n <lib-button-base \n variant=\"primary\" \n icon=\"plus\" \n (clicked)=\"onCreate()\"\n [permissionIds]=\"[PortalPermissions.AuthPolicies.Create]\">\n Create Policy\n </lib-button-base>\n </div>\n\n <ag-grid-angular\n #agGrid\n class=\"ag-theme-quartz apl-grid\"\n [columnDefs]=\"columnDefs\"\n [defaultColDef]=\"defaultColDef\"\n [rowSelection]=\"rowSelection\"\n [rowModelType]=\"'infinite'\"\n [pagination]=\"true\"\n [paginationPageSize]=\"25\"\n [paginationPageSizeSelector]=\"[25, 50, 100]\"\n [cacheBlockSize]=\"25\"\n (gridReady)=\"onGridReady($event)\"\n (filterChanged)=\"onFilterChanged()\"\n (sortChanged)=\"onSortChanged()\"\n (cellClicked)=\"onCellClicked($event)\" />\n </div>\n `,\n styles: [`\n :host {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n height: 100%;\n }\n\n .auth-policy-list-container {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n padding: 16px;\n }\n\n .apl-grid {\n flex: 1;\n width: 100%;\n min-height: 0;\n }\n\n .page-header {\n margin-bottom: 16px;\n }\n\n .page-header h1 {\n margin: 0;\n font-size: 1.75rem;\n font-weight: 600;\n color: var(--anv-color-dark, #01132c);\n }\n\n .toolbar {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: 12px;\n margin-bottom: 16px;\n }\n\n /* Grid action buttons */\n :host ::ng-deep .anv-grid-btn {\n background: transparent;\n border: none;\n padding: 4px 8px;\n border-radius: 4px;\n cursor: pointer;\n transition: background 0.15s, color 0.15s;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n :host ::ng-deep .anv-grid-btn:hover:not(:disabled) {\n background: var(--anv-color-surface-variant, #e8ecf3);\n }\n\n :host ::ng-deep .anv-grid-btn--edit {\n color: var(--anv-color-primary, #00174b);\n }\n\n :host ::ng-deep .anv-grid-btn--edit:hover:not(:disabled) {\n background: color-mix(in srgb, var(--anv-color-primary, #00174b) 15%, transparent);\n }\n\n :host ::ng-deep .anv-grid-btn--danger {\n color: var(--anv-color-danger, #e86060);\n }\n\n :host ::ng-deep .anv-grid-btn--danger:hover:not(:disabled) {\n background: color-mix(in srgb, var(--anv-color-danger, #e86060) 15%, transparent);\n }\n\n :host ::ng-deep .anv-grid-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n color: var(--anv-color-secondary, #b8c2c7);\n }\n\n `]\n})\nexport class AuthPolicyListComponent {\n private readonly authPolicyService = inject(AuthPolicyService);\n private readonly toast = inject(ToastService);\n private readonly errorService = inject(ErrorService);\n private readonly auth = inject(AuthService);\n\n private gridApi?: GridApi<PortalAuthPolicy>;\n private currentFilterModel: Record<string, unknown> = {};\n private currentSortModel: SortModelItem[] = [];\n showCreateForm = signal(false);\n showEditForm = signal(false);\n selectedPolicy = signal<PortalAuthPolicy | null>(null);\n showDeleteConfirm = signal(false);\n policyToDelete = signal<PortalAuthPolicy | null>(null);\n showSetDefaultConfirm = signal(false);\n policyToSetDefault = signal<PortalAuthPolicy | null>(null);\n\n // Expose permissions to template\n protected readonly PortalPermissions = PortalPermissions;\n\n get setDefaultMessageBoxConfig(): MessageBoxConfig {\n const policy = this.policyToSetDefault();\n return {\n title: 'Set Default Policy',\n message: policy\n ? `Set \"${policy.name}\" as the default authorization policy?`\n : 'Set this policy as the default?',\n context: 'primary',\n yesButton: { text: 'Set as default', icon: 'bi bi-star', context: 'primary' },\n noButton: { text: 'Cancel', context: 'secondary' },\n };\n }\n\n get deleteMessageBoxConfig(): MessageBoxConfig {\n const policy = this.policyToDelete();\n return {\n title: 'Delete Policy',\n message: policy ? `Are you sure you want to delete policy \"${policy.name}\"?` : 'Are you sure you want to delete this policy?',\n context: 'danger',\n yesButton: { text: 'Delete', icon: 'bi bi-trash', context: 'danger' },\n noButton: { text: 'Cancel', context: 'secondary' },\n };\n }\n\n \n readonly rowSelection: RowSelectionOptions = {\n mode: 'singleRow',\n checkboxes: false,\n enableClickSelection: true,\n };\n\n columnDefs: ColDef<PortalAuthPolicy>[] = [\n {\n headerName: 'Actions',\n width: 50,\n sortable: false,\n filter: false,\n pinned: 'left',\n cellRenderer: AuthPolicyActionCellComponent,\n cellRendererParams: {\n onEdit: (policy: PortalAuthPolicy) => this.onEdit(policy),\n onDelete: (policy: PortalAuthPolicy) => this.onDelete(policy),\n onSetDefault: (policy: PortalAuthPolicy) => this.onSetDefault(policy),\n },\n },\n {\n field: 'name',\n headerName: 'Name',\n flex: 2,\n sortable: true,\n },\n {\n field: 'description',\n headerName: 'Description',\n flex: 3,\n sortable: true,\n },\n {\n field: 'isDefault',\n headerName: 'Default',\n width: 90,\n valueFormatter: (p) => p.value ? 'Yes' : 'No',\n cellStyle: (p) => p.value ? { color: 'green' } : { color: 'var(--anv-color-secondary, #b8c2c7)' },\n },\n {\n field: 'passwordMinLength',\n headerName: 'Min Length',\n width: 110,\n sortable: true,\n filter: 'agNumberColumnFilter',\n type: 'numericColumn',\n },\n {\n field: 'passwordRequireUpper',\n headerName: 'Upper',\n width: 90,\n valueFormatter: (p) => p.value ? 'Yes' : 'No',\n cellStyle: (p) => p.value ? { color: 'green' } : { color: 'var(--anv-color-secondary, #b8c2c7)' },\n },\n {\n field: 'passwordRequireLower',\n headerName: 'Lower',\n width: 90,\n valueFormatter: (p) => p.value ? 'Yes' : 'No',\n cellStyle: (p) => p.value ? { color: 'green' } : { color: 'var(--anv-color-secondary, #b8c2c7)' },\n },\n {\n field: 'passwordRequireDigit',\n headerName: 'Digit',\n width: 90,\n valueFormatter: (p) => p.value ? 'Yes' : 'No',\n cellStyle: (p) => p.value ? { color: 'green' } : { color: 'var(--anv-color-secondary, #b8c2c7)' },\n },\n {\n field: 'passwordRequireNonAlphaNumeric',\n headerName: 'Special',\n width: 100,\n valueFormatter: (p) => p.value ? 'Yes' : 'No',\n cellStyle: (p) => p.value ? { color: 'green' } : { color: 'var(--anv-color-secondary, #b8c2c7)' },\n },\n {\n field: 'passwordLifetimeDays',\n headerName: 'Lifetime (days)',\n width: 130,\n sortable: true,\n filter: 'agNumberColumnFilter',\n type: 'numericColumn',\n },\n {\n field: 'requireMF2',\n headerName: 'MFA',\n width: 80,\n valueFormatter: (p) => p.value ? 'Yes' : 'No',\n cellStyle: (p) => p.value ? { color: 'green', fontWeight: 'bold' } : { color: 'var(--anv-color-secondary, #b8c2c7)', fontWeight: 'normal' },\n },\n ];\n\n defaultColDef: ColDef = { resizable: true, minWidth: 80, filter: true };\n\n onGridReady(event: GridReadyEvent<PortalAuthPolicy>): void {\n this.gridApi = event.api;\n setTimeout(() => {\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }, 0);\n }\n\n onFilterChanged(): void {\n this.currentFilterModel = (this.gridApi?.getFilterModel() ?? {}) as Record<string, unknown>;\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n onSortChanged(): void {\n this.currentSortModel = this.gridApi?.getColumnState()\n .filter(s => s.sort)\n .map(s => ({ colId: s.colId, sort: s.sort! } as SortModelItem)) ?? [];\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n onCellClicked(event: CellClickedEvent<PortalAuthPolicy>): void {\n if ((event.event as MouseEvent)?.detail === 2 && event.data) {\n this.onEdit(event.data);\n }\n }\n\n private buildDatasource(): IDatasource {\n const filterModel = this.currentFilterModel;\n const sortModel = this.currentSortModel;\n return {\n getRows: (params: IGetRowsParams) => {\n const pageSize = params.endRow - params.startRow;\n const page = Math.floor(params.startRow / pageSize) + 1;\n\n const sortCol = sortModel[0];\n const query: GridQueryRequest = {\n page,\n pageSize,\n sortField: sortCol?.colId,\n sortDirection: sortCol?.sort as 'asc' | 'desc' | undefined,\n filters: this.mapFilterModel(filterModel),\n };\n\n this.authPolicyService.getGrid(query).subscribe({\n next: (result) => params.successCallback(result.items, result.totalCount),\n error: (err: AppError) => {\n console.error('Failed to load auth policies:', err);\n this.errorService.setError(err, 'authPolicyList');\n params.failCallback();\n },\n });\n },\n };\n }\n\n private mapFilterModel(filterModel: Record<string, unknown>): GridFilterItem[] {\n return Object.entries(filterModel).map(([field, raw]) => {\n const f = raw as Record<string, unknown>;\n return {\n field,\n filterType: (f['filterType'] as string) ?? 'text',\n operator: (f['type'] as string) ?? 'contains',\n value: f['filter'] != null ? String(f['filter']) : undefined,\n valueTo: f['filterTo'] != null ? String(f['filterTo']) : undefined,\n };\n });\n }\n\n onCreate(): void {\n this.showCreateForm.set(true);\n }\n\n closeCreateForm(): void {\n this.showCreateForm.set(false);\n }\n\n onPolicyCreated(): void {\n this.showCreateForm.set(false);\n this.toast.show({ message: 'Authorization policy created successfully', type: 'success' });\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n onEdit(policy: PortalAuthPolicy): void {\n this.selectedPolicy.set(policy);\n this.showEditForm.set(true);\n }\n\n closeEditForm(): void {\n this.showEditForm.set(false);\n this.selectedPolicy.set(null);\n }\n\n onPolicyUpdated(): void {\n this.showEditForm.set(false);\n this.selectedPolicy.set(null);\n this.toast.show({ message: 'Authorization policy updated successfully', type: 'success' });\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n onSetDefault(policy: PortalAuthPolicy): void {\n this.policyToSetDefault.set(policy);\n this.showSetDefaultConfirm.set(true);\n }\n\n confirmSetDefault(): void {\n const policy = this.policyToSetDefault();\n if (!policy) return;\n\n this.showSetDefaultConfirm.set(false);\n this.authPolicyService.setDefault(policy.id).subscribe({\n next: () => {\n this.toast.show({ message: `\"${policy.name}\" set as the default policy`, type: 'success' });\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n this.policyToSetDefault.set(null);\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'authPolicyList');\n this.policyToSetDefault.set(null);\n },\n });\n }\n\n cancelSetDefault(): void {\n this.showSetDefaultConfirm.set(false);\n this.policyToSetDefault.set(null);\n }\n\n onDelete(policy: PortalAuthPolicy): void {\n this.policyToDelete.set(policy);\n this.showDeleteConfirm.set(true);\n }\n\n confirmDelete(): void {\n const policy = this.policyToDelete();\n if (!policy) return;\n\n this.showDeleteConfirm.set(false);\n this.authPolicyService.delete(policy.id).subscribe({\n next: () => {\n this.toast.show({ message: 'Policy deleted', type: 'success' });\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n this.policyToDelete.set(null);\n },\n error: (err: AppError) => {\n console.error('Failed to delete policy:', err);\n this.errorService.setError(err, 'authPolicyList');\n this.policyToDelete.set(null);\n },\n });\n }\n\n cancelDelete(): void {\n this.showDeleteConfirm.set(false);\n this.policyToDelete.set(null);\n }\n}\n","import { Component, inject, signal } from '@angular/core';\nimport { Router } from '@angular/router';\nimport type { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\nimport { AuthService } from '@anvil-eco/shared-services';\nimport { PortalPermissions, PortalUserDetail } from '@anvil-eco/portal-services';\n\n@Component({\n selector: 'lib-user-action-cell',\n standalone: true,\n imports: [],\n template: `\n @if (canView()) {\n <button\n type=\"button\"\n class=\"manage-btn\"\n title=\"View User\"\n (click)=\"navigate()\">\n <i class=\"bi bi-gear\"></i>\n </button>\n }\n `,\n styles: [`\n .manage-btn {\n border: none;\n background: transparent;\n cursor: pointer;\n padding: 0.25rem;\n color: var(--anv-color-dark);\n font-size: 1rem;\n line-height: 1;\n }\n .manage-btn:hover {\n color: var(--anv-color-primary);\n }\n `],\n})\nexport class UserActionCellComponent implements ICellRendererComp {\n private readonly router = inject(Router);\n private readonly auth = inject(AuthService);\n\n private user!: PortalUserDetail;\n\n canView = signal(false);\n\n agInit(params: ICellRendererParams): void {\n this.user = params.data;\n this.canView.set(this.auth.hasPermission(PortalPermissions.Users.View));\n }\n\n refresh(params: ICellRendererParams): boolean {\n this.user = params.data;\n this.canView.set(this.auth.hasPermission(PortalPermissions.Users.View));\n return true;\n }\n\n getGui(): HTMLElement {\n const container = document.createElement('div');\n container.style.display = 'inline-block';\n return container;\n }\n\n navigate(): void {\n this.router.navigate(['portal', 'users', this.user.id, 'detail']);\n }\n}\n","<div class=\"unc-cell\">\n <div class=\"unc-avatar\">\n @switch (resolved().kind) {\n @case ('icon') {\n <i [class]=\"resolved().iconClass + ' unc-avatar-icon'\" aria-hidden=\"true\"></i>\n }\n @case ('svg') {\n <span class=\"unc-avatar-svg\" [innerHTML]=\"resolved().svgHtml\" aria-hidden=\"true\"></span>\n }\n @case ('base64') {\n <img class=\"unc-avatar-img\" [src]=\"resolved().src\" alt=\"\" />\n }\n @case ('url') {\n <img class=\"unc-avatar-img\" [src]=\"resolved().src\" alt=\"\" />\n }\n @default {\n <i class=\"bi bi-person-circle unc-avatar-icon\" aria-hidden=\"true\"></i>\n }\n }\n </div>\n <div class=\"unc-info\">\n <span class=\"unc-name\">{{ sortName() }}</span>\n <span class=\"unc-role\">{{ primaryRole() }}</span>\n </div>\n</div>\n","import { Component, inject, signal } from '@angular/core';\nimport type { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\nimport { AVATAR_NONE, AvatarService, ResolvedAvatar } from '@anvil-eco/portal-services';\nimport { PortalUserDetail } from '@anvil-eco/portal-services';\n\n@Component({\n selector: 'lib-user-name-cell',\n standalone: true,\n imports: [],\n templateUrl: './user-name-cell.component.html',\n styleUrl: './user-name-cell.component.scss',\n})\nexport class UserNameCellComponent implements ICellRendererComp {\n private readonly avatarService = inject(AvatarService);\n\n sortName = signal('');\n primaryRole = signal('');\n resolved = signal<ResolvedAvatar>(AVATAR_NONE);\n\n agInit(params: ICellRendererParams<PortalUserDetail>): void {\n this.setData(params.data);\n }\n\n refresh(params: ICellRendererParams<PortalUserDetail>): boolean {\n this.setData(params.data);\n return true;\n }\n\n getGui(): HTMLElement {\n return document.createElement('div');\n }\n\n private setData(user: PortalUserDetail | undefined): void {\n if (!user) return;\n this.sortName.set(user.sortName ?? '');\n this.primaryRole.set(user.primaryRole ?? '');\n this.resolved.set(this.avatarService.resolve(user.profile?.avatar, user.profile?.avatarType));\n }\n}\n","import { Component, DestroyRef, OnInit, inject, output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { merge, Observable } from 'rxjs';\nimport { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { FormModalComponent, FormModalFieldsDirective, FormFieldComponent } from '@anvil-eco/shared-ui';\nimport { PortalRole, PortalUserCreate, RoleReadService, UsersCreateService } from '@anvil-eco/portal-services';\n\n@Component({\n selector: 'lib-user-form-create',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n FormModalComponent,\n FormModalFieldsDirective,\n FormFieldComponent,\n ],\n template: `\n <lib-form-modal\n [formGroup]=\"form\"\n [submitFn]=\"submitFn\"\n title=\"Create User\"\n submitLabel=\"Create User\"\n successMessage=\"User created successfully.\"\n [showOverlay]=\"true\"\n (dismissed)=\"onDismiss()\"\n (cancelled)=\"onCancel()\"\n (submitted)=\"onSubmitted($event)\">\n\n <ng-template formModalFields>\n <lib-form-field controlName=\"givenName\" label=\"Given Name\">\n <input\n type=\"text\"\n class=\"anv-input\"\n formControlName=\"givenName\"\n placeholder=\"Enter given name\"\n aria-label=\"Given name\" />\n </lib-form-field>\n\n <lib-form-field controlName=\"surname\" label=\"Surname\">\n <input\n type=\"text\"\n class=\"anv-input\"\n formControlName=\"surname\"\n placeholder=\"Enter surname\"\n aria-label=\"Surname\" />\n </lib-form-field>\n\n <lib-form-field controlName=\"displayName\" label=\"Display Name\">\n <input\n type=\"text\"\n class=\"anv-input\"\n formControlName=\"displayName\"\n placeholder=\"Enter display name\"\n aria-label=\"Display name\" />\n </lib-form-field>\n\n <lib-form-field controlName=\"email\" label=\"Email\">\n <input\n type=\"email\"\n class=\"anv-input\"\n formControlName=\"email\"\n placeholder=\"Enter email address\"\n aria-label=\"Email address\" />\n </lib-form-field>\n\n <lib-form-field controlName=\"primaryRoleId\" label=\"Primary Role\">\n <select class=\"anv-input\" formControlName=\"primaryRoleId\" aria-label=\"Primary role\">\n <option [ngValue]=\"null\" disabled>— Select a primary role —</option>\n @for (role of roles; track role.id) {\n <option [ngValue]=\"role.id\">{{ role.name }}</option>\n }\n </select>\n </lib-form-field>\n\n <div class=\"checkbox-group\">\n <label class=\"anv-checkbox\">\n <input type=\"checkbox\" formControlName=\"isActive\" />\n <span>Active</span>\n </label>\n\n <label class=\"anv-checkbox\">\n <input type=\"checkbox\" formControlName=\"isEmailVerified\" />\n <span>Email verified</span>\n </label>\n\n <label class=\"anv-checkbox\">\n <input type=\"checkbox\" formControlName=\"isAdmin\" />\n <span>Administrator</span>\n </label>\n </div>\n </ng-template>\n </lib-form-modal>\n `,\n styles: [`\n .checkbox-group {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 8px;\n }\n\n .anv-checkbox {\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n font-size: 0.9rem;\n color: var(--anv-color-dark, #01132c);\n\n input[type=\"checkbox\"] {\n width: 18px;\n height: 18px;\n accent-color: var(--anv-color-primary, #00174b);\n cursor: pointer;\n }\n }\n\n .anv-input {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid var(--anv-color-outline, #c4cacf);\n border-radius: 6px;\n font-size: 0.9rem;\n background: var(--anv-color-surface, #ffffff);\n color: var(--anv-color-dark, #01132c);\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n\n &:focus {\n outline: none;\n border-color: var(--anv-color-primary, #00174b);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--anv-color-primary, #00174b) 20%, transparent);\n }\n }\n `]\n})\nexport class UserFormCreateComponent implements OnInit {\n private readonly fb = inject(FormBuilder);\n private readonly usersCreateService = inject(UsersCreateService);\n private readonly roleReadService = inject(RoleReadService);\n private readonly destroyRef = inject(DestroyRef);\n\n dismissed = output<void>();\n cancelled = output<void>();\n created = output<void>();\n\n roles: PortalRole[] = [];\n\n form = this.fb.group({\n givenName: ['', [Validators.required, Validators.maxLength(100)]],\n surname: ['', [Validators.required, Validators.maxLength(100)]],\n displayName: ['', [Validators.required, Validators.maxLength(150)]],\n email: ['', [Validators.required, Validators.email, Validators.maxLength(200)]],\n primaryRoleId: [null as string | null, Validators.required],\n isActive: [true],\n isEmailVerified: [false],\n isAdmin: [false],\n });\n\n ngOnInit(): void {\n this.roleReadService.getAll().subscribe({\n next: roles => { this.roles = roles; },\n });\n\n merge(\n this.form.controls.givenName.valueChanges,\n this.form.controls.surname.valueChanges,\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.syncDisplayName());\n }\n\n private syncDisplayName(): void {\n const given = this.form.controls.givenName.value ?? '';\n const surname = this.form.controls.surname.value ?? '';\n this.form.controls.displayName.setValue(`${given} ${surname}`.trim(), { emitEvent: false });\n }\n\n submitFn = (data: unknown): Observable<unknown> => {\n const model = data as PortalUserCreate;\n return this.usersCreateService.create(model);\n };\n\n onDismiss(): void { this.dismissed.emit(); }\n onCancel(): void { this.cancelled.emit(); }\n onSubmitted(_response: unknown): void { this.created.emit(); }\n}\n","<ng-template sideDrawerContent>\n <lib-admin-list-nav />\n</ng-template>\n\n@if (showCreateForm()) {\n <lib-user-form-create\n (dismissed)=\"closeCreateForm()\"\n (cancelled)=\"closeCreateForm()\"\n (created)=\"onUserCreated()\" />\n}\n\n<div class=\"anv-list-container\">\n <lib-error-alert sourceId=\"userList\" />\n\n <div class=\"anv-list-toolbar\">\n <div></div>\n <div class=\"anv-list-toolbar-buttons\">\n <lib-button-base\n variant=\"primary\"\n icon=\"plus\"\n (clicked)=\"onCreate()\"\n [permissionIds]=\"[PortalPermissions.Users.Create]\">\n Create User\n </lib-button-base>\n </div>\n </div>\n\n <ag-grid-angular\n class=\"ag-theme-quartz ul-grid\"\n [columnDefs]=\"columnDefs\"\n [defaultColDef]=\"defaultColDef\"\n [rowSelection]=\"rowSelection\"\n [rowModelType]=\"'infinite'\"\n [rowHeight]=\"52\"\n [pagination]=\"true\"\n [paginationPageSize]=\"25\"\n [paginationPageSizeSelector]=\"[25, 50, 100]\"\n [cacheBlockSize]=\"25\"\n (gridReady)=\"onGridReady($event)\"\n (filterChanged)=\"onFilterChanged()\"\n (sortChanged)=\"onSortChanged()\" />\n</div>\n","import { Component, inject, signal } from '@angular/core';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n AllCommunityModule,\n ColDef,\n GridApi,\n GridReadyEvent,\n IDatasource,\n IGetRowsParams,\n ModuleRegistry,\n RowSelectionOptions,\n SortModelItem,\n} from 'ag-grid-community';\n\nimport { PortalPermissions, PortalUserDetail, UsersReadService } from '@anvil-eco/portal-services';\nimport { GridFilterItem, GridQueryRequest } from '@anvil-eco/shared-core';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { ButtonBaseComponent, ErrorAlertComponent, ErrorService, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { AdminListNavComponent } from '../../shared/admin-list-nav/admin-list-nav.component';\nimport { UserActionCellComponent } from './user-action-cell.component';\nimport { UserNameCellComponent } from './user-name-cell.component';\nimport { BoolFilterComponent } from '../../shared/bool-filter/bool-filter.component';\nimport { UserFormCreateComponent } from '../user-form-create/user-form-create.component';\n\nModuleRegistry.registerModules([AllCommunityModule]);\n\n@Component({\n selector: 'lib-user-list',\n standalone: true,\n imports: [\n AgGridAngular,\n ButtonBaseComponent,\n ErrorAlertComponent,\n UserActionCellComponent,\n UserNameCellComponent,\n UserFormCreateComponent,\n SideDrawerContentDirective,\n AdminListNavComponent,\n ],\n templateUrl: './user-list.component.html',\n styleUrl: './user-list.component.scss',\n})\nexport class UserListComponent {\n private readonly usersReadService = inject(UsersReadService);\n private readonly errorService = inject(ErrorService);\n private gridApi?: GridApi<PortalUserDetail>;\n private currentFilterModel: Record<string, unknown> = {};\n private currentSortModel: SortModelItem[] = [];\n\n showCreateForm = signal(false);\n\n protected readonly PortalPermissions = PortalPermissions;\n\n readonly rowSelection: RowSelectionOptions = {\n mode: 'singleRow',\n checkboxes: false,\n enableClickSelection: true,\n };\n\n readonly columnDefs: ColDef<PortalUserDetail>[] = [\n {\n headerName: '',\n width: 52,\n sortable: false,\n filter: false,\n pinned: 'left',\n cellRenderer: UserActionCellComponent,\n },\n {\n field: 'sortName',\n headerName: 'Name',\n flex: 2,\n sortable: true,\n sort: 'asc',\n cellRenderer: UserNameCellComponent,\n },\n {\n field: 'email',\n headerName: 'Email',\n flex: 3,\n sortable: true,\n },\n {\n field: 'isActive',\n headerName: 'Active',\n width: 100,\n filter: BoolFilterComponent,\n valueFormatter: (p) => p.value ? 'Yes' : 'No',\n cellStyle: (p) => p.value\n ? { color: 'var(--anv-color-success)', fontWeight: '600' }\n : { color: 'var(--anv-color-secondary)', fontWeight: 'normal' },\n },\n {\n field: 'isEmailVerified',\n headerName: 'Verified',\n width: 110,\n filter: BoolFilterComponent,\n valueFormatter: (p) => p.value ? 'Yes' : 'No',\n cellStyle: (p) => p.value\n ? null\n : { color: 'var(--anv-color-danger)', fontWeight: '600' },\n },\n {\n field: 'isSystem',\n headerName: 'System',\n width: 100,\n filter: BoolFilterComponent,\n valueFormatter: (p) => p.value ? 'Yes' : 'No',\n cellStyle: (p) => p.value\n ? { color: 'var(--anv-color-warning)', fontWeight: '600' }\n : null,\n },\n {\n field: 'isAdmin',\n headerName: 'Admin',\n width: 100,\n filter: BoolFilterComponent,\n valueFormatter: (p) => p.value ? 'Yes' : 'No',\n },\n {\n field: 'createDate',\n headerName: 'Created',\n width: 140,\n filter: 'agDateColumnFilter',\n valueFormatter: (p) => p.value ? new Date(p.value).toLocaleDateString() : '',\n },\n ];\n\n readonly defaultColDef: ColDef = { resizable: true, minWidth: 80, filter: true };\n\n onGridReady(event: GridReadyEvent<PortalUserDetail>): void {\n this.gridApi = event.api;\n setTimeout(() => {\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }, 0);\n }\n\n onFilterChanged(): void {\n this.currentFilterModel = (this.gridApi?.getFilterModel() ?? {}) as Record<string, unknown>;\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n onSortChanged(): void {\n this.currentSortModel = this.gridApi?.getColumnState()\n .filter(s => s.sort)\n .map(s => ({ colId: s.colId, sort: s.sort! } as SortModelItem)) ?? [];\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n private buildDatasource(): IDatasource {\n const filterModel = this.currentFilterModel;\n const sortModel = this.currentSortModel;\n return {\n getRows: (params: IGetRowsParams) => {\n const pageSize = params.endRow - params.startRow;\n const page = Math.floor(params.startRow / pageSize) + 1;\n\n const sortCol = sortModel[0];\n const query: GridQueryRequest = {\n page,\n pageSize,\n sortField: sortCol?.colId,\n sortDirection: sortCol?.sort as 'asc' | 'desc' | undefined,\n filters: this.mapFilterModel(filterModel),\n };\n\n this.usersReadService.getGrid(query).subscribe({\n next: (result) => params.successCallback(result.items, result.totalCount),\n error: (err: AppError) => {\n this.errorService.setError(err, 'userList');\n params.failCallback();\n },\n });\n },\n };\n }\n\n onCreate(): void {\n this.showCreateForm.set(true);\n }\n\n closeCreateForm(): void {\n this.showCreateForm.set(false);\n }\n\n onUserCreated(): void {\n this.showCreateForm.set(false);\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n private mapFilterModel(filterModel: Record<string, unknown>): GridFilterItem[] {\n const result: GridFilterItem[] = [];\n for (const [field, raw] of Object.entries(filterModel)) {\n const f = raw as Record<string, unknown>;\n const filterType = f['filterType'] as string;\n if (filterType === 'set') {\n const values = f['values'] as string[];\n if (values?.length === 1) {\n result.push({ field, filterType: 'set', operator: 'equals', value: values[0] });\n }\n } else {\n result.push({\n field,\n filterType: filterType ?? 'text',\n operator: (f['type'] as string) ?? 'contains',\n value: f['filter'] != null ? String(f['filter']) : undefined,\n valueTo: f['filterTo'] != null ? String(f['filterTo']) : undefined,\n });\n }\n }\n return result;\n }\n}\n","import { Component, OnInit, ViewEncapsulation, inject, signal } from '@angular/core';\nimport { ActivatedRoute, RouterLink } from '@angular/router';\nimport { PortalNavComponent } from '@anvil-eco/shared-ui';\n\n@Component({\n selector: 'lib-user-detail-nav',\n standalone: true,\n imports: [RouterLink, PortalNavComponent],\n encapsulation: ViewEncapsulation.None,\n styleUrl: '../../shared/_drawer-nav.scss',\n template: `\n <nav class=\"anv-drawer-nav\" aria-label=\"User sections\">\n <a\n class=\"anv-drawer-nav-item\"\n routerLink=\"/portal/users/management\">\n <i class=\"bi bi-person-lines-fill\" aria-hidden=\"true\"></i>\n <span class=\"anv-drawer-nav-label\">Users</span>\n </a>\n <hr class=\"anv-drawer-nav-divider\" />\n <lib-portal-nav\n startAt=\"portal-users-id\"\n layout=\"vertical\"\n [routeParams]=\"{ id: userId() }\" />\n </nav>\n `,\n})\nexport class UserDetailNavComponent implements OnInit {\n private readonly route = inject(ActivatedRoute);\n\n readonly userId = signal<string>('');\n\n ngOnInit(): void {\n this.userId.set(this.route.snapshot.paramMap.get('id') ?? '');\n }\n}\n","import { ChangeDetectionStrategy, Component, OnInit, inject, input, output } from '@angular/core';\nimport { ReactiveFormsModule, FormBuilder, Validators } from '@angular/forms';\n\nimport { ErrorAlertComponent, FormFieldComponent, FormModalComponent, FormModalFieldsDirective } from '@anvil-eco/shared-ui';\nimport { PortalUserDetail, UsersUpdateService } from '@anvil-eco/portal-services';\n\n@Component({\n selector: 'lib-user-change-email',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n FormModalComponent,\n FormFieldComponent,\n FormModalFieldsDirective,\n ErrorAlertComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <lib-form-modal\n [formGroup]=\"form\"\n [submitFn]=\"submitForm\"\n title=\"Change Email\"\n submitLabel=\"Save\"\n successMessage=\"Email updated successfully.\"\n formId=\"userChangeEmail\"\n [showOverlay]=\"true\"\n (submitted)=\"onSuccess($event)\"\n (dismissed)=\"onCancel()\"\n (cancelled)=\"onCancel()\">\n <ng-template formModalFields>\n <lib-error-alert sourceId=\"userChangeEmail\" />\n <lib-form-field\n controlName=\"email\"\n label=\"New Email Address\">\n <input\n type=\"email\"\n class=\"anv-input\"\n formControlName=\"email\"\n placeholder=\"Enter new email address\"\n autocomplete=\"email\" />\n </lib-form-field>\n <div class=\"anv-check-field\">\n <input\n type=\"checkbox\"\n class=\"anv-checkbox\"\n id=\"setAsVerified\"\n formControlName=\"setAsVerified\" />\n <label for=\"setAsVerified\">Set email as verified immediately</label>\n </div>\n </ng-template>\n </lib-form-modal>\n `,\n styles: `\n :host { display: contents; }\n .anv-check-field {\n margin-top: 4px;\n input[type=\"checkbox\"] { width: auto; vertical-align: middle; }\n label { vertical-align: middle; margin-left: 6px; font-size: 0.875rem; cursor: pointer; }\n }\n `,\n})\nexport class UserChangeEmailComponent implements OnInit {\n private readonly fb = inject(FormBuilder);\n private readonly usersUpdateService = inject(UsersUpdateService);\n\n userId = input.required<string>();\n currentEmail = input<string | null>(null);\n\n submitted = output<PortalUserDetail>();\n cancelled = output<void>();\n\n readonly form = this.fb.group({\n email: ['', [Validators.required, Validators.email, Validators.maxLength(256)]],\n setAsVerified: [false],\n });\n\n ngOnInit(): void {\n this.form.patchValue({ email: this.currentEmail() ?? '' });\n }\n\n readonly submitForm = (value: unknown) => {\n const v = value as { email: string; setAsVerified: boolean };\n return this.usersUpdateService.updateEmail({\n id: this.userId(),\n email: v.email,\n setAsVerified: v.setAsVerified,\n });\n };\n\n onSuccess(response: unknown): void {\n this.submitted.emit(response as PortalUserDetail);\n }\n\n onCancel(): void {\n this.cancelled.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, OnInit, inject, input, output } from '@angular/core';\nimport { ReactiveFormsModule, FormBuilder, Validators } from '@angular/forms';\n\nimport { FormFieldComponent, FormModalComponent, FormModalFieldsDirective } from '@anvil-eco/shared-ui';\nimport { PortalUserUpdate, UsersUpdateService } from '@anvil-eco/portal-services';\n\n@Component({\n selector: 'lib-user-update-details',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n FormModalComponent,\n FormFieldComponent,\n FormModalFieldsDirective,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <lib-form-modal\n [formGroup]=\"form\"\n [submitFn]=\"submitForm\"\n title=\"Edit Display Name\"\n submitLabel=\"Save\"\n successMessage=\"Details updated successfully.\"\n formId=\"userUpdateDetails\"\n [showOverlay]=\"true\"\n (submitted)=\"onSuccess($event)\"\n (dismissed)=\"onCancel()\"\n (cancelled)=\"onCancel()\">\n <ng-template formModalFields>\n <lib-form-field controlName=\"displayName\" label=\"Display Name\">\n <input\n type=\"text\"\n class=\"anv-input\"\n formControlName=\"displayName\"\n placeholder=\"Enter display name\" />\n </lib-form-field>\n </ng-template>\n </lib-form-modal>\n `,\n styles: `:host { display: contents; }`,\n})\nexport class UserUpdateDetailsComponent implements OnInit {\n private readonly fb = inject(FormBuilder);\n private readonly usersUpdateService = inject(UsersUpdateService);\n\n userId = input.required<string>();\n displayName = input<string | null>(null);\n\n submitted = output<PortalUserUpdate>();\n cancelled = output<void>();\n\n readonly form = this.fb.group({\n displayName: ['', [Validators.required, Validators.maxLength(256)]],\n });\n\n ngOnInit(): void {\n this.form.patchValue({ displayName: this.displayName() ?? '' });\n }\n\n readonly submitForm = (value: unknown) => {\n const v = value as { displayName: string };\n return this.usersUpdateService.updateDetails({\n id: this.userId(),\n displayName: v.displayName,\n });\n };\n\n onSuccess(response: unknown): void {\n this.submitted.emit(response as PortalUserUpdate);\n }\n\n onCancel(): void {\n this.cancelled.emit();\n }\n}\n","<ng-template sideDrawerContent>\n <lib-user-detail-nav />\n</ng-template>\n\n<div class=\"ud-container\">\n <lib-error-alert sourceId=\"userDetail\" />\n\n @if (loading()) {\n <div class=\"ud-loading\">\n <i class=\"bi bi-arrow-repeat\" aria-hidden=\"true\"></i>\n Loading…\n </div>\n }\n\n @if (user(); as u) {\n\n @if (canEditUser()) {\n <lib-toolbar class=\"ud-toolbar\">\n <lib-toolbar-group>\n @if (u.isActive) {\n <lib-toolbar-item\n icon=\"person-dash\"\n [permissionIds]=\"updatePermissions\"\n [disabled]=\"saving()\"\n (clicked)=\"onDeactivate()\">\n Deactivate\n </lib-toolbar-item>\n } @else {\n <lib-toolbar-item\n icon=\"person-check\"\n [permissionIds]=\"updatePermissions\"\n [disabled]=\"saving()\"\n (clicked)=\"onActivate()\">\n Activate\n </lib-toolbar-item>\n }\n <lib-toolbar-item\n icon=\"envelope\"\n [permissionIds]=\"updatePermissions\"\n [disabled]=\"saving()\"\n (clicked)=\"onChangeEmail()\">\n Change Email\n </lib-toolbar-item>\n <lib-toolbar-item\n icon=\"lock\"\n [permissionIds]=\"updatePermissions\"\n [disabled]=\"saving()\"\n (clicked)=\"onClearPassword()\">\n Clear Password\n </lib-toolbar-item>\n </lib-toolbar-group>\n\n <lib-toolbar-divider />\n\n <lib-toolbar-group>\n <lib-toolbar-item\n icon=\"trash\"\n variant=\"danger\"\n [permissionIds]=\"deletePermissions\"\n (clicked)=\"onDelete()\">\n Delete\n </lib-toolbar-item>\n </lib-toolbar-group>\n </lib-toolbar>\n }\n\n <!-- Identity card -->\n <lib-card variant=\"solid\">\n <div cardHeader>\n <div class=\"ud-header-inner\">\n <span class=\"anv-card-title\">{{ u.username }}</span>\n <div class=\"ud-badges\">\n @if (!u.isActive) {\n <lib-badge context=\"secondary\">Inactive</lib-badge>\n }\n @if (u.isAdmin) {\n <lib-badge context=\"warning\">Admin</lib-badge>\n }\n @if (u.isSystem) {\n <lib-badge context=\"secondary\">System</lib-badge>\n }\n </div>\n </div>\n @if (u.email) {\n <p class=\"ud-subtitle\">{{ u.email }}</p>\n }\n </div>\n\n <div class=\"ud-sections\">\n\n <div class=\"ud-section\">\n <h3 class=\"ud-section-title\">Identity</h3>\n <dl class=\"ud-grid\">\n <div class=\"ud-row\">\n <dt>Display name</dt>\n <dd class=\"mono\">\n @if (canEditUser()) {\n <button type=\"button\" class=\"ud-inline-edit-btn\" (click)=\"onEditDisplayName()\" title=\"Edit display name\">\n <i class=\"bi bi-pencil\" aria-hidden=\"true\"></i>\n </button>\n }\n {{ u.displayName }}\n </dd>\n </div>\n <div class=\"ud-row\">\n <dt>Record ID</dt>\n <dd>{{ u.id ?? '-' }}</dd>\n </div>\n <div class=\"ud-row\">\n <dt>Primary role</dt>\n <dd>{{ u.primaryRole ?? 'No role assigned' }}</dd>\n </div>\n <div class=\"ud-row\">\n <dt>Email</dt>\n <dd>{{ u.email ?? '—' }}</dd>\n </div>\n <div class=\"ud-row\">\n <dt>Created</dt>\n <dd>{{ formatDate(u.createDate) }}</dd>\n </div>\n </dl>\n </div>\n\n <div class=\"ud-section\">\n <h3 class=\"ud-section-title\">Status &amp; Flags</h3>\n <dl class=\"ud-grid\">\n <div class=\"ud-row\">\n <dt>Active</dt>\n <dd>\n <lib-badge [context]=\"u.isActive ? 'success' : 'secondary'\">\n {{ u.isActive ? 'Yes' : 'No' }}\n </lib-badge>\n </dd>\n </div>\n <div class=\"ud-row\">\n <dt>Email Verified</dt>\n <dd>\n <lib-badge [context]=\"u.isEmailVerified ? 'success' : 'warning'\">\n {{ u.isEmailVerified ? 'Verified' : 'Unverified' }}\n </lib-badge>\n </dd>\n </div>\n <div class=\"ud-row\">\n <dt>System User</dt>\n <dd>\n <lib-badge [context]=\"u.isSystem ? 'warning' : 'secondary'\">\n {{ u.isSystem ? 'Yes' : 'No' }}\n </lib-badge>\n </dd>\n </div>\n <div class=\"ud-row\">\n <dt>Admin User</dt>\n <dd>\n <lib-badge [context]=\"u.isAdmin ? 'warning' : 'secondary'\">\n {{ u.isAdmin ? 'Yes' : 'No' }}\n </lib-badge>\n </dd>\n </div>\n </dl>\n </div>\n\n <div class=\"ud-section\">\n <h3 class=\"ud-section-title\">Security</h3>\n <dl class=\"ud-grid\">\n <div class=\"ud-row\">\n <dt>Password Last Set</dt>\n <dd>{{ formatDate(u.passwordDate) }}</dd>\n </div>\n <div class=\"ud-row\">\n <dt>Locked Out Until</dt>\n <dd>\n @if (u.lockoutDate) {\n <lib-badge context=\"danger\">{{ formatDate(u.lockoutDate) }}</lib-badge>\n } @else {\n <span class=\"ud-muted\">Not locked</span>\n }\n </dd>\n </div>\n </dl>\n </div>\n\n </div>\n </lib-card>\n\n <!-- Roles card -->\n <lib-card variant=\"solid\">\n <div cardHeader>\n <div class=\"ud-header-inner\">\n <span class=\"anv-card-title\">Roles</span>\n <lib-badge context=\"secondary\">{{ u.roles.length }}</lib-badge>\n </div>\n </div>\n\n @if (u.roles.length === 0) {\n <p class=\"ud-empty\">No roles assigned.</p>\n } @else {\n <div class=\"ud-list-table\">\n <div class=\"ud-list-header ud-grid--roles\">\n <span>Name</span>\n <span>Description</span>\n </div>\n @for (role of u.roles; track role.id) {\n <div class=\"ud-list-row ud-grid--roles\">\n <span class=\"ud-role-name\">{{ role.name }}</span>\n <span class=\"ud-muted\">{{ role.description }}</span>\n </div>\n }\n </div>\n }\n </lib-card>\n\n <!-- Profile card -->\n @if (u.profile) {\n <lib-card variant=\"solid\">\n <div cardHeader>\n <div class=\"ud-header-inner\">\n <span class=\"anv-card-title\">Profile</span>\n </div>\n </div>\n\n <div class=\"ud-sections\">\n <div class=\"ud-section\">\n <h3 class=\"ud-section-title\">Personal Details</h3>\n <dl class=\"ud-grid\">\n <div class=\"ud-row\">\n <dt>Given Name</dt>\n <dd>{{ u.profile.givenName || '—' }}</dd>\n </div>\n <div class=\"ud-row\">\n <dt>Surname</dt>\n <dd>{{ u.profile.surname || '—' }}</dd>\n </div>\n </dl>\n </div>\n\n <div class=\"ud-section\">\n <h3 class=\"ud-section-title\">Avatar</h3>\n <dl class=\"ud-grid\">\n <div class=\"ud-row\">\n <dt>Type</dt>\n <dd>{{ avatarTypeLabel() }}</dd>\n </div>\n @if (resolvedProfileAvatar().kind !== 'none') {\n <div class=\"ud-row\">\n <dt>Preview</dt>\n <dd>\n <div class=\"ud-avatar-preview\">\n @switch (resolvedProfileAvatar().kind) {\n @case ('icon') {\n <i [class]=\"resolvedProfileAvatar().iconClass + ' ud-avatar-icon'\" aria-hidden=\"true\"></i>\n }\n @case ('svg') {\n <span class=\"ud-avatar-svg\" [innerHTML]=\"resolvedProfileAvatar().svgHtml\" aria-hidden=\"true\"></span>\n }\n @case ('base64') {\n <img class=\"ud-avatar-img\" [src]=\"resolvedProfileAvatar().src\" alt=\"User avatar\" />\n }\n @case ('url') {\n <img class=\"ud-avatar-img\" [src]=\"resolvedProfileAvatar().src\" alt=\"User avatar\" />\n }\n }\n </div>\n </dd>\n </div>\n }\n </dl>\n </div>\n </div>\n </lib-card>\n }\n\n }\n\n @if (showToggleConfirm()) {\n <lib-message-box\n [isVisible]=\"true\"\n [config]=\"toggleConfirmConfig()\"\n (yes)=\"onToggleConfirmed()\"\n (no)=\"onToggleCancelled()\" />\n }\n\n @if (showDeleteConfirm()) {\n <lib-message-box\n [isVisible]=\"true\"\n [config]=\"deleteConfirmConfig\"\n (yes)=\"onDeleteConfirmed()\"\n (no)=\"onDeleteCancelled()\" />\n }\n\n @if (showClearPasswordConfirm()) {\n <lib-message-box\n [isVisible]=\"true\"\n [config]=\"clearPasswordConfirmConfig\"\n (yes)=\"onClearPasswordConfirmed()\"\n (no)=\"onClearPasswordCancelled()\" />\n }\n\n @if (showChangeEmail() && user(); as u) {\n <lib-user-change-email\n [userId]=\"u.id\"\n [currentEmail]=\"u.email\"\n (submitted)=\"onEmailChanged($event)\"\n (cancelled)=\"onEmailCancelled()\" />\n }\n\n @if (showUpdateDetails() && user(); as u) {\n <lib-user-update-details\n [userId]=\"u.id\"\n [displayName]=\"u.displayName\"\n (submitted)=\"onDetailsUpdated($event)\"\n (cancelled)=\"onDetailsCancelled()\" />\n }\n</div>\n","import { Component, OnInit, computed, inject, signal } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { AuthService } from '@anvil-eco/shared-services';\nimport { AVATAR_NONE, AvatarService, PortalPermissions, PortalUserDetail, PortalUserUpdate, ResolvedAvatar, UsersDeleteService, UsersReadService, UsersUpdateService } from '@anvil-eco/portal-services';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { BadgeComponent, CardComponent, CardHeaderDirective, ErrorAlertComponent, ErrorService, MessageBoxComponent, type MessageBoxConfig, SideDrawerContentDirective, ToolbarComponent, ToolbarDividerComponent, ToolbarGroupComponent, ToolbarItemComponent } from '@anvil-eco/shared-ui';\nimport { UserDetailNavComponent } from '../user-detail-nav/user-detail-nav.component';\nimport { UserChangeEmailComponent } from '../user-change-email/user-change-email.component';\nimport { UserUpdateDetailsComponent } from '../user-update-details/user-update-details.component';\n\n@Component({\n selector: 'lib-user-detail',\n standalone: true,\n imports: [\n BadgeComponent,\n CardComponent,\n CardHeaderDirective,\n ErrorAlertComponent,\n MessageBoxComponent,\n SideDrawerContentDirective,\n ToolbarComponent,\n ToolbarGroupComponent,\n ToolbarItemComponent,\n ToolbarDividerComponent,\n UserDetailNavComponent,\n UserChangeEmailComponent,\n UserUpdateDetailsComponent,\n ],\n templateUrl: './user-detail.component.html',\n styleUrl: './user-detail.component.scss',\n})\nexport class UserDetailComponent implements OnInit {\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n private readonly usersReadService = inject(UsersReadService);\n private readonly usersUpdateService = inject(UsersUpdateService);\n private readonly usersDeleteService = inject(UsersDeleteService);\n private readonly errorService = inject(ErrorService);\n private readonly authService = inject(AuthService);\n private readonly avatarService = inject(AvatarService);\n\n readonly loading = signal(true);\n readonly saving = signal(false);\n readonly user = signal<PortalUserDetail | null>(null);\n\n readonly updatePermissions = [PortalPermissions.Users.Update];\n readonly deletePermissions = [PortalPermissions.Users.Delete];\n\n readonly resolvedProfileAvatar = computed((): ResolvedAvatar => {\n const profile = this.user()?.profile;\n if (!profile) return AVATAR_NONE;\n return this.avatarService.resolve(profile.avatar, profile.avatarType);\n });\n\n readonly avatarTypeLabel = computed((): string => {\n switch (this.user()?.profile?.avatarType ?? 0) {\n case 1: return 'SVG';\n case 2: return 'Base64';\n case 3: return 'Icon';\n case 4: return 'URL';\n default: return 'None';\n }\n });\n\n readonly canEditUser = computed(() => {\n const u = this.user();\n if (!u) return false;\n if (u.isAdmin || u.isSystem) {\n const claim = this.authService.getClaim<boolean | string>('IsAdministrator');\n return claim === true || String(claim).toLowerCase() === 'true';\n }\n return true;\n });\n\n // ── Update Details modal ──────────────────────────────────────────────────────\n readonly showUpdateDetails = signal(false);\n\n onEditDisplayName(): void {\n this.showUpdateDetails.set(true);\n }\n\n onDetailsUpdated(updated: PortalUserUpdate): void {\n const current = this.user();\n if (current) this.user.set({ ...current, displayName: updated.displayName });\n this.showUpdateDetails.set(false);\n }\n\n onDetailsCancelled(): void {\n this.showUpdateDetails.set(false);\n }\n\n // ── Change Email modal ────────────────────────────────────────────────────────\n readonly showChangeEmail = signal(false);\n\n // ── Delete confirmation ─────────────────────────────────────────────────────\n readonly showDeleteConfirm = signal(false);\n readonly deleteConfirmConfig: MessageBoxConfig = {\n title: 'Delete User',\n message: 'This will permanently delete the user and all associated data. This cannot be undone. Continue?',\n context: 'danger',\n };\n\n // ── Clear Password confirmation ──────────────────────────────────────────────\n readonly showClearPasswordConfirm = signal(false);\n readonly clearPasswordConfirmConfig: MessageBoxConfig = {\n title: 'Clear Password',\n message: 'This will remove the user\\'s password and force them to set a new one on next login. Continue?',\n context: 'warning',\n };\n\n // ── Activate / Deactivate confirmation ──────────────────────────────────────\n private readonly pendingToggle = signal<'activate' | 'deactivate' | null>(null);\n readonly showToggleConfirm = signal(false);\n\n readonly toggleConfirmConfig = computed<MessageBoxConfig>(() =>\n this.pendingToggle() === 'deactivate'\n ? { title: 'Deactivate User', message: 'This user will no longer be able to sign in. Continue?', context: 'warning' }\n : { title: 'Activate User', message: 'This will allow the user to sign in again. Continue?', context: 'success' }\n );\n\n ngOnInit(): void {\n const id = this.route.snapshot.paramMap.get('id') ?? '';\n this.usersReadService.getById(id).subscribe({\n next: (u) => {\n this.user.set(u);\n this.loading.set(false);\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'userDetail');\n this.loading.set(false);\n },\n });\n }\n\n onActivate(): void {\n this.pendingToggle.set('activate');\n this.showToggleConfirm.set(true);\n }\n\n onDeactivate(): void {\n this.pendingToggle.set('deactivate');\n this.showToggleConfirm.set(true);\n }\n\n onToggleConfirmed(): void {\n const user = this.user();\n if (!user) return;\n this.showToggleConfirm.set(false);\n this.saving.set(true);\n const call = this.pendingToggle() === 'deactivate'\n ? this.usersUpdateService.inactivate(user.id)\n : this.usersUpdateService.activate(user.id);\n call.subscribe({\n next: (updated) => {\n this.user.set(updated);\n this.saving.set(false);\n this.pendingToggle.set(null);\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'userDetail');\n this.saving.set(false);\n this.pendingToggle.set(null);\n },\n });\n }\n\n onToggleCancelled(): void {\n this.showToggleConfirm.set(false);\n this.pendingToggle.set(null);\n }\n\n onChangeEmail(): void {\n this.showChangeEmail.set(true);\n }\n\n onEmailChanged(updated: PortalUserDetail): void {\n this.user.set(updated);\n this.showChangeEmail.set(false);\n }\n\n onEmailCancelled(): void {\n this.showChangeEmail.set(false);\n }\n\n onClearPassword(): void {\n this.showClearPasswordConfirm.set(true);\n }\n\n onClearPasswordConfirmed(): void {\n const user = this.user();\n if (!user) return;\n this.showClearPasswordConfirm.set(false);\n this.saving.set(true);\n this.usersUpdateService.clearPassword(user.id).subscribe({\n next: (updated) => {\n this.user.set(updated);\n this.saving.set(false);\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'userDetail');\n this.saving.set(false);\n },\n });\n }\n\n onClearPasswordCancelled(): void {\n this.showClearPasswordConfirm.set(false);\n }\n\n onDelete(): void {\n this.showDeleteConfirm.set(true);\n }\n\n onDeleteConfirmed(): void {\n const user = this.user();\n if (!user) return;\n this.showDeleteConfirm.set(false);\n this.saving.set(true);\n this.usersDeleteService.delete(user.id).subscribe({\n next: () => {\n this.router.navigateByUrl('/portal/users/management');\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'userDetail');\n this.saving.set(false);\n },\n });\n }\n\n onDeleteCancelled(): void {\n this.showDeleteConfirm.set(false);\n }\n\n formatDate(value: string | null): string {\n if (!value) return '—';\n return new Date(value).toLocaleDateString(undefined, {\n year: 'numeric', month: 'short', day: 'numeric',\n });\n }\n\n}\n","<ng-template sideDrawerContent>\n <lib-user-detail-nav />\n</ng-template>\n\n<div class=\"urm-container\">\n <lib-error-alert sourceId=\"userRoleMembership\" />\n\n @if (loading()) {\n <div class=\"urm-loading\">\n <i class=\"bi bi-arrow-repeat urm-spin\" aria-hidden=\"true\"></i>\n Loading…\n </div>\n }\n\n @if (user(); as u) {\n <div class=\"urm-body\">\n <div class=\"urm-header\">\n <h2 class=\"urm-header-title\">{{ u.username }}</h2>\n <p class=\"urm-header-subtitle\">Manage role membership</p>\n </div>\n\n <div class=\"anv-row urm-grid\">\n\n <!-- Assigned Roles (left) -->\n <div class=\"anv-col urm-assigned-col\">\n <lib-card variant=\"solid\">\n <div cardHeader>\n <div class=\"urm-card-title-row\">\n <span class=\"anv-card-title\">Assigned Roles</span>\n <lib-badge context=\"secondary\">{{ roleCount() }}</lib-badge>\n </div>\n </div>\n\n <lib-paged-list\n #assignedList\n [loadFn]=\"loadAssignedRoles\"\n searchPlaceholder=\"Filter assigned roles…\"\n emptyText=\"No roles assigned to this user.\"\n (totalCountChange)=\"roleCount.set($event)\">\n <ng-template let-role>\n <div class=\"urm-row\">\n <div class=\"urm-row-info\">\n <span class=\"urm-role-name\">{{ role.name }}</span>\n @if (role.description) {\n <span class=\"urm-role-description\">{{ role.description }}</span>\n }\n <div class=\"urm-row-badges\">\n @if (role.isAdmin) {\n <lib-badge context=\"warning\">Admin</lib-badge>\n }\n @if (role.isSystem) {\n <lib-badge context=\"secondary\">System</lib-badge>\n }\n </div>\n </div>\n <button\n type=\"button\"\n class=\"urm-btn urm-btn--remove\"\n title=\"Remove role\"\n [disabled]=\"savingId() === role.id\"\n (click)=\"remove(role)\">\n @if (savingId() === role.id) {\n <i class=\"bi bi-arrow-repeat urm-spin\"></i>\n } @else {\n <i class=\"bi bi-x-lg\"></i>\n }\n </button>\n </div>\n </ng-template>\n </lib-paged-list>\n </lib-card>\n </div>\n\n <!-- Add Role (right) -->\n <div class=\"anv-col urm-picker-col\">\n <lib-card variant=\"solid\" class=\"urm-picker-card\">\n <div cardHeader>\n <div class=\"urm-card-title-row\">\n <span class=\"anv-card-title\">Add Role</span>\n </div>\n </div>\n\n <lib-paged-list\n #rolePicker\n [loadFn]=\"loadAvailableRoles\"\n searchPlaceholder=\"Filter roles…\"\n emptyText=\"No roles available to add.\">\n <ng-template let-role>\n <div class=\"urm-row\">\n <div class=\"urm-row-info\">\n <span class=\"urm-role-name\">{{ role.name }}</span>\n @if (role.description) {\n <span class=\"urm-role-description\">{{ role.description }}</span>\n }\n <div class=\"urm-row-badges\">\n @if (role.isAdmin) {\n <lib-badge context=\"warning\">Admin</lib-badge>\n }\n @if (role.isSystem) {\n <lib-badge context=\"secondary\">System</lib-badge>\n }\n </div>\n </div>\n <button\n type=\"button\"\n class=\"urm-btn urm-btn--add\"\n title=\"Add role\"\n [disabled]=\"savingId() === role.id\"\n (click)=\"add(role)\">\n @if (savingId() === role.id) {\n <i class=\"bi bi-arrow-repeat urm-spin\"></i>\n } @else {\n <i class=\"bi bi-plus-lg\"></i>\n }\n </button>\n </div>\n </ng-template>\n </lib-paged-list>\n </lib-card>\n </div>\n\n </div>\n </div>\n }\n</div>\n","import { Component, OnInit, ViewChild, inject, signal } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { RoleMembershipService, RoleReadService, PortalRole, PortalUserDetail, UsersReadService } from '@anvil-eco/portal-services';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { BadgeComponent, CardComponent, CardHeaderDirective, ErrorAlertComponent, ErrorService, PagedListComponent, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { UserDetailNavComponent } from '../user-detail-nav/user-detail-nav.component';\n\n@Component({\n selector: 'lib-user-role-membership',\n standalone: true,\n imports: [\n BadgeComponent,\n CardComponent,\n CardHeaderDirective,\n ErrorAlertComponent,\n PagedListComponent,\n SideDrawerContentDirective,\n UserDetailNavComponent,\n ],\n templateUrl: './user-role-membership.component.html',\n styleUrl: './user-role-membership.component.scss',\n})\nexport class UserRoleMembershipComponent implements OnInit {\n private readonly route = inject(ActivatedRoute);\n private readonly membershipService = inject(RoleMembershipService);\n private readonly roleReadService = inject(RoleReadService);\n private readonly usersReadService = inject(UsersReadService);\n private readonly errorService = inject(ErrorService);\n\n @ViewChild('assignedList') private assignedList?: PagedListComponent<PortalRole>;\n @ViewChild('rolePicker') private rolePicker?: PagedListComponent<PortalRole>;\n\n readonly loading = signal(true);\n readonly savingId = signal<string | null>(null);\n readonly user = signal<PortalUserDetail | null>(null);\n readonly roleCount = signal(0);\n\n private userId = '';\n\n readonly loadAssignedRoles = (page: number, pageSize: number, term: string) =>\n this.membershipService.getRolesForUserPaged(this.userId, page, pageSize, term || undefined);\n\n readonly loadAvailableRoles = (page: number, pageSize: number, term: string) =>\n this.roleReadService.getPaged(page, pageSize, term || undefined, this.userId);\n\n ngOnInit(): void {\n this.userId = this.route.snapshot.paramMap.get('id') ?? '';\n\n this.usersReadService.getById(this.userId).subscribe({\n next: user => {\n this.user.set(user);\n this.loading.set(false);\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'userRoleMembership');\n this.loading.set(false);\n },\n });\n }\n\n add(role: PortalRole): void {\n this.savingId.set(role.id);\n this.membershipService.addUserToRole(role.id, this.userId).subscribe({\n next: () => {\n this.savingId.set(null);\n this.assignedList?.reload();\n this.rolePicker?.reload();\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'userRoleMembership');\n this.savingId.set(null);\n },\n });\n }\n\n remove(role: PortalRole): void {\n this.savingId.set(role.id);\n this.membershipService.removeUserFromRole(role.id, this.userId).subscribe({\n next: () => {\n this.savingId.set(null);\n this.assignedList?.reload();\n this.rolePicker?.reload();\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'userRoleMembership');\n this.savingId.set(null);\n },\n });\n }\n}\n","<ng-template sideDrawerContent>\n <lib-user-detail-nav />\n</ng-template>\n\n<div class=\"ula-container\">\n <lib-error-alert sourceId=\"userLoginAudits\" />\n\n @if (loading()) {\n <div class=\"ula-loading\">\n <i class=\"bi bi-arrow-repeat ula-spin\" aria-hidden=\"true\"></i>\n Loading…\n </div>\n }\n\n @if (user(); as u) {\n <div class=\"ula-header\">\n <h2 class=\"ula-header-title\">{{ u.username }}</h2>\n <p class=\"ula-header-subtitle\">Login Audits</p>\n </div>\n\n <lib-card variant=\"solid\">\n <div cardHeader>\n <div class=\"ula-card-header-row\">\n <span class=\"ula-header-label\">\n <i class=\"bi bi-clock-history\" aria-hidden=\"true\"></i>\n Login history\n </span>\n @if (totalCount() !== null) {\n <span class=\"ula-count-badge\">{{ totalCount() }}</span>\n }\n </div>\n </div>\n\n <div class=\"ula-grid-wrap\">\n <ag-grid-angular\n class=\"ag-theme-quartz\"\n [columnDefs]=\"columnDefs\"\n [defaultColDef]=\"defaultColDef\"\n [rowModelType]=\"'infinite'\"\n [pagination]=\"true\"\n [paginationPageSize]=\"25\"\n [paginationPageSizeSelector]=\"[25, 50, 100]\"\n [cacheBlockSize]=\"25\"\n (gridReady)=\"onGridReady($event)\"\n (filterChanged)=\"onFilterChanged()\"\n (sortChanged)=\"onSortChanged()\" />\n </div>\n </lib-card>\n }\n</div>\n","import { Component, OnInit, inject, signal } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n AllCommunityModule,\n ColDef,\n GridApi,\n GridReadyEvent,\n IDatasource,\n IGetRowsParams,\n ModuleRegistry,\n SortModelItem,\n} from 'ag-grid-community';\n\nimport { UsersReadService, PortalUserDetail, PortalUserDetailLoginAudit } from '@anvil-eco/portal-services';\nimport { GridFilterItem, GridQueryRequest } from '@anvil-eco/shared-core';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { CardComponent, CardHeaderDirective, ErrorAlertComponent, ErrorService, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { UserDetailNavComponent } from '../user-detail-nav/user-detail-nav.component';\n\nModuleRegistry.registerModules([AllCommunityModule]);\n\n@Component({\n selector: 'lib-user-login-audits',\n standalone: true,\n imports: [\n AgGridAngular,\n CardComponent,\n CardHeaderDirective,\n ErrorAlertComponent,\n SideDrawerContentDirective,\n UserDetailNavComponent,\n ],\n templateUrl: './user-login-audits.component.html',\n styleUrl: './user-login-audits.component.scss',\n})\nexport class UserLoginAuditsComponent implements OnInit {\n private readonly route = inject(ActivatedRoute);\n private readonly usersReadService = inject(UsersReadService);\n private readonly errorService = inject(ErrorService);\n\n private userId = '';\n private gridApi?: GridApi<PortalUserDetailLoginAudit>;\n private currentFilterModel: Record<string, unknown> = {};\n private currentSortModel: SortModelItem[] = [];\n\n readonly loading = signal(true);\n readonly user = signal<PortalUserDetail | null>(null);\n readonly totalCount = signal<number | null>(null);\n\n readonly defaultColDef: ColDef = { sortable: true, resizable: true, filter: true, minWidth: 80 };\n\n readonly columnDefs: ColDef<PortalUserDetailLoginAudit>[] = [\n {\n field: 'loginTime',\n headerName: 'Date / Time',\n minWidth: 180,\n filter: 'agDateColumnFilter',\n valueFormatter: p => p.value ? new Date(p.value).toLocaleString(undefined, {\n year: 'numeric', month: 'short', day: 'numeric',\n hour: '2-digit', minute: '2-digit',\n }) : '',\n },\n {\n field: 'ipAddress',\n headerName: 'IP Address',\n width: 150,\n valueFormatter: p => p.value ?? '—',\n },\n {\n field: 'browser',\n headerName: 'Browser',\n flex: 1,\n minWidth: 160,\n tooltipField: 'browser',\n valueFormatter: p => p.value ?? '—',\n },\n {\n field: 'isSuccessful',\n headerName: 'Result',\n width: 120,\n valueFormatter: p => p.value ? 'Success' : 'Failed',\n cellClassRules: {\n 'ula-cell--success': p => p.value === true,\n 'ula-cell--failed': p => p.value === false,\n },\n },\n ];\n\n ngOnInit(): void {\n this.userId = this.route.snapshot.paramMap.get('id') ?? '';\n this.usersReadService.getById(this.userId).subscribe({\n next: (user) => {\n this.user.set(user);\n this.loading.set(false);\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'userLoginAudits');\n this.loading.set(false);\n },\n });\n }\n\n onGridReady(event: GridReadyEvent<PortalUserDetailLoginAudit>): void {\n this.gridApi = event.api;\n setTimeout(() => {\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }, 0);\n }\n\n onFilterChanged(): void {\n this.currentFilterModel = (this.gridApi?.getFilterModel() ?? {}) as Record<string, unknown>;\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n onSortChanged(): void {\n this.currentSortModel = this.gridApi?.getColumnState()\n .filter(s => s.sort)\n .map(s => ({ colId: s.colId, sort: s.sort! } as SortModelItem)) ?? [];\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n private buildDatasource(): IDatasource {\n const userId = this.userId;\n const filterModel = this.currentFilterModel;\n const sortModel = this.currentSortModel;\n return {\n getRows: (params: IGetRowsParams) => {\n const pageSize = params.endRow - params.startRow;\n const page = Math.floor(params.startRow / pageSize) + 1;\n const sortCol = sortModel[0];\n const query: GridQueryRequest = {\n page,\n pageSize,\n sortField: sortCol?.colId ?? 'loginTime',\n sortDirection: sortCol?.sort as 'asc' | 'desc' | undefined ?? 'desc',\n filters: this.mapFilterModel(filterModel),\n };\n this.usersReadService.getLoginAuditGrid(userId, query).subscribe({\n next: (result) => {\n this.totalCount.set(result.totalCount);\n params.successCallback(result.items, result.totalCount);\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'userLoginAudits');\n params.failCallback();\n },\n });\n },\n };\n }\n\n private mapFilterModel(filterModel: Record<string, unknown>): GridFilterItem[] {\n return Object.entries(filterModel).map(([field, raw]) => {\n const f = raw as Record<string, unknown>;\n return {\n field,\n filterType: (f['filterType'] as string) ?? 'text',\n operator: (f['type'] as string) ?? 'contains',\n value: f['filter'] != null ? String(f['filter']) : undefined,\n valueTo: f['filterTo'] != null ? String(f['filterTo']) : undefined,\n };\n });\n }\n}\n","import { Component, computed, input, output } from '@angular/core';\nimport { ErrorEntryDetail } from '@anvil-eco/portal-services';\nimport { ModalComponent, ModalHeaderDirective } from '@anvil-eco/shared-ui';\n\n@Component({\n selector: 'lib-error-entry-properties-modal',\n standalone: true,\n imports: [ModalComponent, ModalHeaderDirective],\n templateUrl: './error-entry-properties-modal.component.html',\n styleUrl: './error-entry-properties-modal.component.scss',\n})\nexport class ErrorEntryPropertiesModalComponent {\n readonly entry = input<ErrorEntryDetail | null>(null);\n readonly isOpen = input<boolean>(false);\n readonly closed = output();\n\n readonly formattedProperties = computed(() => {\n const xml = this.entry()?.properties;\n if (!xml) return 'No properties available.';\n return this.formatXml(xml);\n });\n\n private formatXml(xml: string): string {\n try {\n const decoded = xml\n .replace(/&amp;/g, '&')\n .replace(/&lt;/g, '<')\n .replace(/&gt;/g, '>')\n .replace(/&quot;/g, '\"');\n const doc = new DOMParser().parseFromString(decoded, 'application/xml');\n if (doc.querySelector('parsererror')) return xml;\n return this.formatNode(doc.documentElement, 0);\n } catch {\n return xml;\n }\n }\n\n private formatNode(node: Element, depth: number): string {\n const INDENT = ' ';\n const pad = INDENT.repeat(depth);\n const tag = node.tagName;\n const attrs = Array.from(node.attributes)\n .map(a => ` ${a.name}=\"${a.value}\"`)\n .join('');\n\n const childElements = Array.from(node.children);\n const textContent = (node.textContent ?? '').trim();\n\n if (childElements.length === 0) {\n return textContent\n ? `${pad}<${tag}${attrs}>${textContent}</${tag}>`\n : `${pad}<${tag}${attrs} />`;\n }\n\n const children = childElements\n .map(c => this.formatNode(c, depth + 1))\n .join('\\n');\n\n return `${pad}<${tag}${attrs}>\\n${children}\\n${pad}</${tag}>`;\n }\n}\n","<lib-modal\n [isOpen]=\"isOpen()\"\n size=\"lg\"\n (closed)=\"closed.emit()\">\n\n <span modalHeader>\n <i class=\"bi bi-file-code\" aria-hidden=\"true\"></i>\n Event Properties\n </span>\n\n <pre class=\"epm-pre\">{{ formattedProperties() }}</pre>\n\n</lib-modal>\n","<ng-template sideDrawerContent>\n <lib-user-detail-nav />\n</ng-template>\n\n<div class=\"uel-container\">\n <lib-error-alert sourceId=\"userErrorLog\" />\n\n @if (loading()) {\n <div class=\"uel-loading\">\n <i class=\"bi bi-arrow-repeat uel-spin\" aria-hidden=\"true\"></i>\n Loading…\n </div>\n }\n\n @if (user(); as u) {\n <div class=\"uel-header\">\n <h2 class=\"uel-header-title\">{{ u.username }}</h2>\n <p class=\"uel-header-subtitle\">Error Log</p>\n </div>\n\n <lib-card variant=\"solid\">\n <div cardHeader>\n <div class=\"uel-card-header-row\">\n <span class=\"uel-header-label\">\n <i class=\"bi bi-exclamation-triangle\" aria-hidden=\"true\"></i>\n Application errors attributed to this user\n </span>\n @if (totalCount() !== null) {\n <span class=\"uel-count-badge\">{{ totalCount() }}</span>\n }\n </div>\n </div>\n\n <div class=\"uel-grid-wrap\">\n <ag-grid-angular\n class=\"ag-theme-quartz\"\n [columnDefs]=\"columnDefs\"\n [defaultColDef]=\"defaultColDef\"\n [rowModelType]=\"'infinite'\"\n [pagination]=\"true\"\n [paginationPageSize]=\"25\"\n [paginationPageSizeSelector]=\"[25, 50, 100]\"\n [cacheBlockSize]=\"25\"\n (gridReady)=\"onGridReady($event)\"\n (filterChanged)=\"onFilterChanged()\"\n (sortChanged)=\"onSortChanged()\" />\n </div>\n </lib-card>\n }\n</div>\n\n<lib-error-entry-properties-modal\n [isOpen]=\"showModal()\"\n [entry]=\"selectedEntry()\"\n (closed)=\"showModal.set(false)\" />\n","import { Component, OnInit, inject, signal } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n AllCommunityModule,\n ColDef,\n GridApi,\n GridReadyEvent,\n IDatasource,\n IGetRowsParams,\n ModuleRegistry,\n SortModelItem,\n} from 'ag-grid-community';\n\nimport { ErrorEntryService, ErrorEntryDetail } from '@anvil-eco/portal-services';\nimport { GridFilterItem, GridQueryRequest } from '@anvil-eco/shared-core';\nimport { UsersReadService, PortalUserDetail } from '@anvil-eco/portal-services';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { CardComponent, CardHeaderDirective, ErrorAlertComponent, ErrorService, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { UserDetailNavComponent } from '../user-detail-nav/user-detail-nav.component';\nimport { ErrorEntryPropertiesModalComponent } from '../../error-entries/error-entry-properties-modal/error-entry-properties-modal.component';\n\nModuleRegistry.registerModules([AllCommunityModule]);\n\n@Component({\n selector: 'lib-user-error-log',\n standalone: true,\n imports: [\n AgGridAngular,\n CardComponent,\n CardHeaderDirective,\n ErrorAlertComponent,\n SideDrawerContentDirective,\n UserDetailNavComponent,\n ErrorEntryPropertiesModalComponent,\n ],\n templateUrl: './user-error-log.component.html',\n styleUrl: './user-error-log.component.scss',\n})\nexport class UserErrorLogComponent implements OnInit {\n private readonly route = inject(ActivatedRoute);\n private readonly usersReadService = inject(UsersReadService);\n private readonly errorEntryService = inject(ErrorEntryService);\n private readonly errorService = inject(ErrorService);\n\n private userName = '';\n private gridApi?: GridApi<ErrorEntryDetail>;\n private currentFilterModel: Record<string, unknown> = {};\n private currentSortModel: SortModelItem[] = [];\n\n readonly loading = signal(true);\n readonly user = signal<PortalUserDetail | null>(null);\n readonly totalCount = signal<number | null>(null);\n readonly showModal = signal(false);\n readonly selectedEntry = signal<ErrorEntryDetail | null>(null);\n\n readonly defaultColDef: ColDef = { sortable: true, resizable: true, filter: true, minWidth: 80 };\n\n readonly columnDefs: ColDef<ErrorEntryDetail>[] = [\n {\n colId: 'actions',\n headerName: '',\n width: 52,\n sortable: false,\n filter: false,\n resizable: false,\n suppressMovable: true,\n cellRenderer: () => `<div class=\"uel-action-cell\"><button class=\"uel-prop-btn\" aria-label=\"View Properties\" title=\"View Properties\"><i class=\"bi bi-file-code\"></i></button></div>`,\n onCellClicked: (params) => { if (params.data) this.openPropertiesModal(params.data); },\n },\n {\n field: 'timestamp',\n headerName: 'Timestamp',\n minWidth: 180,\n filter: 'agDateColumnFilter',\n valueFormatter: p => p.value ? new Date(p.value).toLocaleString(undefined, {\n year: 'numeric', month: 'short', day: 'numeric',\n hour: '2-digit', minute: '2-digit', second: '2-digit',\n }) : '',\n },\n {\n field: 'level',\n headerName: 'Level',\n width: 100,\n filter: true,\n },\n {\n field: 'message',\n headerName: 'Message',\n flex: 2,\n minWidth: 200,\n filter: true,\n tooltipField: 'message',\n },\n {\n field: 'browser',\n headerName: 'Browser',\n flex: 1,\n minWidth: 140,\n filter: true,\n },\n {\n field: 'ipAddress',\n headerName: 'IP Address',\n width: 140,\n filter: true,\n },\n {\n field: 'exception',\n headerName: 'Exception',\n flex: 2,\n minWidth: 200,\n filter: true,\n tooltipField: 'exception',\n },\n {\n field: 'errorId',\n headerName: 'Reference ID',\n width: 300,\n filter: true,\n },\n ];\n\n openPropertiesModal(entry: ErrorEntryDetail): void {\n this.selectedEntry.set(entry);\n this.showModal.set(true);\n }\n\n ngOnInit(): void {\n const userId = this.route.snapshot.paramMap.get('id') ?? '';\n this.usersReadService.getById(userId).subscribe({\n next: (user) => {\n this.userName = user.email ?? user.username;\n this.user.set(user);\n this.loading.set(false);\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'userErrorLog');\n this.loading.set(false);\n },\n });\n }\n\n onGridReady(event: GridReadyEvent<ErrorEntryDetail>): void {\n this.gridApi = event.api;\n setTimeout(() => {\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }, 0);\n }\n\n onFilterChanged(): void {\n this.currentFilterModel = (this.gridApi?.getFilterModel() ?? {}) as Record<string, unknown>;\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n onSortChanged(): void {\n this.currentSortModel = this.gridApi?.getColumnState()\n .filter(s => s.sort)\n .map(s => ({ colId: s.colId, sort: s.sort! } as SortModelItem)) ?? [];\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n private buildDatasource(): IDatasource {\n const userName = this.userName;\n const filterModel = this.currentFilterModel;\n const sortModel = this.currentSortModel;\n return {\n getRows: (params: IGetRowsParams) => {\n const pageSize = params.endRow - params.startRow;\n const page = Math.floor(params.startRow / pageSize) + 1;\n const sortCol = sortModel[0];\n const query: GridQueryRequest = {\n page,\n pageSize,\n sortField: sortCol?.colId ?? 'timestamp',\n sortDirection: sortCol?.sort as 'asc' | 'desc' | undefined ?? 'desc',\n filters: this.mapFilterModel(filterModel),\n };\n this.errorEntryService.getGridForUser(userName, query).subscribe({\n next: (result) => {\n this.totalCount.set(result.totalCount);\n params.successCallback(result.items, result.totalCount);\n },\n error: (err: AppError) => {\n this.errorService.setError(err, 'userErrorLog');\n params.failCallback();\n },\n });\n },\n };\n }\n\n private mapFilterModel(filterModel: Record<string, unknown>): GridFilterItem[] {\n return Object.entries(filterModel).map(([field, raw]) => {\n const f = raw as Record<string, unknown>;\n return {\n field,\n filterType: (f['filterType'] as string) ?? 'text',\n operator: (f['type'] as string) ?? 'contains',\n value: f['filter'] != null ? String(f['filter']) : undefined,\n valueTo: f['filterTo'] != null ? String(f['filterTo']) : undefined,\n };\n });\n }\n}\n","import { Component, OnInit, inject, signal } from '@angular/core';\nimport { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { PortalUserAvatarUpdate, PortalUserProfileUpdate, UsersReadService, UsersUpdateService } from '@anvil-eco/portal-services';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { CardComponent, CardHeaderDirective, ErrorAlertComponent, FormComponent, FormFieldComponent, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { UserDetailNavComponent } from '../user-detail-nav/user-detail-nav.component';\nimport { AvatarEditorComponent, inferAvatarType } from '../../shared/avatar-editor/avatar-editor.component';\n\n@Component({\n selector: 'lib-user-profile-form-edit',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n ErrorAlertComponent,\n FormComponent,\n FormFieldComponent,\n CardComponent,\n CardHeaderDirective,\n SideDrawerContentDirective,\n UserDetailNavComponent,\n AvatarEditorComponent,\n ],\n template: `\n <ng-template sideDrawerContent>\n <lib-user-detail-nav />\n </ng-template>\n\n <div class=\"upfe-container\">\n\n @if (loading()) {\n <div class=\"upfe-loading\">\n <i class=\"bi bi-arrow-repeat\" aria-hidden=\"true\"></i>\n Loading…\n </div>\n }\n\n @if (!loading()) {\n\n <!-- Demographics card -->\n <lib-card variant=\"solid\">\n <div cardHeader>\n <span class=\"anv-card-title\">Demographics</span>\n </div>\n <lib-form\n [formGroup]=\"form\"\n [submitFn]=\"submitFn\"\n formId=\"userProfileEdit\"\n submitLabel=\"Save Changes\"\n successMessage=\"Profile updated successfully.\">\n <input type=\"hidden\" formControlName=\"id\" />\n <lib-form-field controlName=\"givenName\" label=\"Given Name\">\n <input type=\"text\" class=\"anv-input\" formControlName=\"givenName\"\n placeholder=\"Enter given name\" aria-label=\"Given name\" />\n </lib-form-field>\n <lib-form-field controlName=\"surname\" label=\"Surname\">\n <input type=\"text\" class=\"anv-input\" formControlName=\"surname\"\n placeholder=\"Enter surname\" aria-label=\"Surname\" />\n </lib-form-field>\n <div formFooter>\n <button type=\"button\" class=\"anv-btn anv-btn--secondary\" (click)=\"onCancel()\">\n Cancel\n </button>\n </div>\n </lib-form>\n </lib-card>\n\n <!-- Avatar card -->\n <lib-card variant=\"solid\">\n <div cardHeader>\n <span class=\"anv-card-title\">Avatar</span>\n </div>\n <lib-avatar-editor\n [initialAvatar]=\"initialAvatar\"\n [saveFn]=\"avatarSaveFn\"\n [removeFn]=\"avatarRemoveFn\" />\n </lib-card>\n\n }\n\n </div>\n `,\n styles: [`\n .upfe-container {\n padding: 24px;\n max-width: 600px;\n display: flex;\n flex-direction: column;\n gap: 20px;\n }\n\n .upfe-loading {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--anv-color-secondary, #6c757d);\n font-size: 0.95rem;\n padding: 24px 0;\n }\n\n .anv-input {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid var(--anv-color-outline, #c4cacf);\n border-radius: 6px;\n font-size: 0.9rem;\n background: var(--anv-color-surface, #ffffff);\n color: var(--anv-color-dark, #01132c);\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n box-sizing: border-box;\n\n &:focus {\n outline: none;\n border-color: var(--anv-color-primary, #00174b);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--anv-color-primary, #00174b) 20%, transparent);\n }\n }\n\n .anv-input--textarea { resize: vertical; }\n `],\n})\nexport class UserProfileFormEditComponent implements OnInit {\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n private readonly usersReadService = inject(UsersReadService);\n private readonly usersUpdateService = inject(UsersUpdateService);\n private readonly fb = inject(FormBuilder);\n\n readonly loading = signal(true);\n\n // --- Demographics form ---\n readonly form = this.fb.group({\n id: ['', Validators.required],\n givenName: ['', [Validators.required, Validators.maxLength(100)]],\n surname: ['', [Validators.required, Validators.maxLength(100)]],\n });\n\n readonly submitFn = (data: unknown): ReturnType<UsersUpdateService['updateProfile']> =>\n this.usersUpdateService.updateProfile(data as PortalUserProfileUpdate);\n\n // --- Avatar section ---\n initialAvatar = '';\n\n readonly avatarSaveFn = (avatar: string) => {\n const id = this.route.snapshot.paramMap.get('id') ?? '';\n const model: PortalUserAvatarUpdate = { id, avatar, avatarType: inferAvatarType(avatar) };\n return this.usersUpdateService.updateAvatar(model);\n };\n\n readonly avatarRemoveFn = () => {\n const id = this.route.snapshot.paramMap.get('id') ?? '';\n return this.usersUpdateService.removeAvatar(id);\n };\n\n ngOnInit(): void {\n const id = this.route.snapshot.paramMap.get('id') ?? '';\n\n this.usersReadService.getById(id).subscribe({\n next: (user) => {\n this.form.patchValue({\n id,\n givenName: user.profile?.givenName ?? '',\n surname: user.profile?.surname ?? '',\n });\n this.initialAvatar = user.profile?.avatar ?? '';\n this.loading.set(false);\n },\n error: (err: AppError) => {\n console.error('Failed to load user profile', err);\n this.loading.set(false);\n },\n });\n }\n\n onCancel(): void {\n const id = this.route.snapshot.paramMap.get('id') ?? '';\n this.router.navigate(['/portal/users', id, 'detail']);\n }\n}\n","<ng-template sideDrawerContent>\n <lib-my-profile-nav />\n</ng-template>\n\n<div class=\"mpo-container\">\n\n @if (loading()) {\n <div class=\"mpo-loading\">\n <i class=\"bi bi-arrow-repeat\" aria-hidden=\"true\"></i>\n Loading…\n </div>\n }\n\n @if (!loading()) {\n <div class=\"anv-row\">\n <!-- Left column: profile card -->\n <div class=\"anv-col-md-6\">\n <lib-card variant=\"solid\">\n <div cardHeader>\n <div class=\"mpo-header-row\">\n <span class=\"anv-card-title\">My Profile</span>\n </div>\n </div>\n\n <div class=\"mpo-body\">\n\n <!-- Avatar -->\n <div class=\"mpo-avatar-section\">\n @switch (currentAvatar().kind) {\n @case ('icon') {\n <i [class]=\"'bi bi-' + currentAvatar().iconClass + ' mpo-avatar-icon'\" aria-hidden=\"true\"></i>\n }\n @case ('svg') {\n <span class=\"mpo-avatar-img\" [innerHTML]=\"currentAvatar().svgHtml\" aria-hidden=\"true\"></span>\n }\n @case ('base64') {\n <img class=\"mpo-avatar-img\" [src]=\"currentAvatar().src\" alt=\"Your avatar\" />\n }\n @case ('url') {\n <img class=\"mpo-avatar-img\" [src]=\"currentAvatar().src\" alt=\"Your avatar\" />\n }\n @default {\n <i class=\"bi bi-person-circle mpo-avatar-icon\" aria-hidden=\"true\"></i>\n }\n }\n <a routerLink=\"/my-profile/edit-avatar\" class=\"mpo-avatar-edit-link\">\n <i class=\"bi bi-camera\" aria-hidden=\"true\"></i>\n Change avatar\n </a>\n </div>\n\n <!-- Details -->\n <dl class=\"mpo-details\">\n <div class=\"mpo-row\">\n <dt>Display Name</dt>\n <dd>{{ displayName() }}</dd>\n </div>\n <div class=\"mpo-row\">\n <dt>Given Name</dt>\n <dd>{{ user()?.profile?.givenName || '—' }}</dd>\n </div>\n <div class=\"mpo-row\">\n <dt>Surname</dt>\n <dd>{{ user()?.profile?.surname || '—' }}</dd>\n </div>\n <div class=\"mpo-row\">\n <dt>Email</dt>\n <dd>\n {{ user()?.email || '—' }}\n <a routerLink=\"/my-profile/edit-email\" class=\"mpo-action-link\">\n <i class=\"bi bi-pencil\" aria-hidden=\"true\"></i>\n Change\n </a>\n </dd>\n </div>\n <div class=\"mpo-row\">\n <dt>Primary Role</dt>\n <dd>{{ primaryRole() }}</dd>\n </div>\n </dl>\n\n </div>\n </lib-card>\n </div>\n\n <!-- Right column: shortcut menu placeholder -->\n <div class=\"anv-col-md-6\">\n <lib-card variant=\"solid\">\n <div cardHeader>\n <div class=\"mpo-header-row\">\n <span class=\"anv-card-title\">Shortcuts</span>\n </div>\n </div>\n <div class=\"anv-row mpo-shortcut-grid\">\n @for (shortcut of shortcuts(); track shortcut.path) {\n <div class=\"anv-col-6\">\n <lib-button-base\n variant=\"primary\"\n fill=\"fill\"\n size=\"md\"\n [icon]=\"shortcut.icon\"\n class=\"mpo-shortcut-tile\"\n [ariaLabel]=\"shortcut.label\"\n (clicked)=\"navigate(shortcut.path)\">\n {{ shortcut.label }}\n </lib-button-base>\n </div>\n }\n </div>\n </lib-card>\n </div>\n </div>\n }\n\n</div>\n","import { Component, OnInit, computed, inject, signal } from '@angular/core';\nimport { Router, RouterLink } from '@angular/router';\n\nimport { AvatarService, MyProfileService, PortalUserDetail } from '@anvil-eco/portal-services';\nimport { AppError, type NavigationNode } from '@anvil-eco/shared-core';\nimport { ButtonBaseComponent, CardComponent, CardHeaderDirective, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { NavigationService } from '@anvil-eco/shared-services';\nimport { MyProfileNavComponent } from '@anvil-eco/shared-ui';\n\n@Component({\n selector: 'lib-my-profile-overview',\n standalone: true,\n imports: [\n RouterLink,\n ButtonBaseComponent,\n CardComponent,\n CardHeaderDirective,\n SideDrawerContentDirective,\n MyProfileNavComponent,\n ],\n templateUrl: './my-profile-overview.component.html',\n styleUrls: ['./my-profile-overview.component.scss'],\n})\nexport class MyProfileOverviewComponent implements OnInit {\n private readonly myProfileService = inject(MyProfileService);\n private readonly avatarService = inject(AvatarService);\n private readonly router = inject(Router);\n private readonly navigation = inject(NavigationService);\n\n readonly loading = signal(true);\n readonly user = signal<PortalUserDetail | null>(null);\n\n readonly displayName = computed(() => this.user()?.displayName ?? '');\n readonly primaryRole = computed(() => this.user()?.primaryRole ?? '');\n\n readonly currentAvatar = computed(() =>\n this.avatarService.resolve(this.user()?.profile?.avatar, this.user()?.profile?.avatarType)\n );\n\n readonly shortcuts = computed<NavigationNode[]>(() =>\n this.navigation.getMenuNodes({ startAt: 'my-profile', depth: 1 })\n );\n\n ngOnInit(): void {\n this.myProfileService.getMe().subscribe({\n next: (u) => { this.user.set(u); this.loading.set(false); },\n error: (err: AppError) => { console.error('Failed to load profile', err); this.loading.set(false); },\n });\n }\n\n navigate(path: string): void {\n void this.router.navigate([path]);\n }\n}\n","import { Component, OnInit, inject } from '@angular/core';\nimport { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { tap } from 'rxjs';\n\nimport { AuthService } from '@anvil-eco/shared-services';\nimport { MyProfileService, UserUpdateEmail } from '@anvil-eco/portal-services';\nimport { AlertComponent, CardComponent, CardHeaderDirective, FormComponent, FormFieldComponent, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { MyProfileNavComponent } from '@anvil-eco/shared-ui';\n\n@Component({\n selector: 'lib-my-profile-email-form',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n AlertComponent,\n CardComponent,\n CardHeaderDirective,\n FormComponent,\n FormFieldComponent,\n SideDrawerContentDirective,\n MyProfileNavComponent,\n ],\n template: `\n <ng-template sideDrawerContent>\n <lib-my-profile-nav />\n </ng-template>\n\n <div class=\"mpef-container\">\n <lib-card variant=\"solid\">\n <div cardHeader>\n <span class=\"anv-card-title\">Change Email Address</span>\n </div>\n\n <div class=\"mpef-body\">\n <lib-alert context=\"info\">\n After saving, you will be <strong>signed out</strong> and will need to\n verify your new email address before signing back in.\n </lib-alert>\n\n <lib-form\n [formGroup]=\"form\"\n [submitFn]=\"submitFn\"\n formId=\"myProfileEmail\"\n submitLabel=\"Save & Sign Out\"\n successMessage=\"Email updated. Signing out…\">\n\n <input type=\"hidden\" formControlName=\"id\" />\n <input type=\"hidden\" formControlName=\"setAsVerified\" />\n\n <lib-form-field controlName=\"email\" label=\"New Email Address\">\n <input\n type=\"email\"\n class=\"anv-input\"\n formControlName=\"email\"\n placeholder=\"you@example.com\"\n autocomplete=\"email\"\n aria-label=\"New email address\" />\n </lib-form-field>\n\n <div formFooter>\n <button type=\"button\" class=\"anv-btn anv-btn--secondary\" (click)=\"onCancel()\">\n Cancel\n </button>\n </div>\n\n </lib-form>\n </div>\n </lib-card>\n </div>\n `,\n styles: [`\n .mpef-container {\n padding: 24px;\n max-width: 560px;\n display: flex;\n flex-direction: column;\n gap: 20px;\n }\n\n .mpef-body {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 16px;\n }\n\n .anv-input {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid var(--anv-color-outline, #c4cacf);\n border-radius: 6px;\n font-size: 0.9rem;\n background: var(--anv-color-surface, #ffffff);\n color: var(--anv-color-dark, #01132c);\n box-sizing: border-box;\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n\n &:focus {\n outline: none;\n border-color: var(--anv-color-primary, #00174b);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--anv-color-primary, #00174b) 20%, transparent);\n }\n }\n `],\n})\nexport class MyProfileEmailFormComponent implements OnInit {\n private readonly authService = inject(AuthService);\n private readonly myProfileService = inject(MyProfileService);\n private readonly router = inject(Router);\n private readonly fb = inject(FormBuilder);\n\n readonly form = this.fb.group({\n id: ['', Validators.required],\n email: ['', [Validators.required, Validators.email]],\n setAsVerified: [false],\n });\n\n readonly submitFn = (data: unknown) =>\n this.myProfileService.updateEmail(data as UserUpdateEmail).pipe(\n tap(() => setTimeout(() => this.authService.logout(), 2000))\n );\n\n ngOnInit(): void {\n const id = this.authService.getClaim<string>('user-id') ?? '';\n this.form.patchValue({ id, setAsVerified: false });\n }\n\n onCancel(): void {\n this.router.navigate(['/my-profile/overview']);\n }\n}\n","<ng-template sideDrawerContent>\n <lib-my-profile-nav />\n</ng-template>\n\n<div class=\"mpaf-container\">\n\n @if (loading()) {\n <div class=\"mpaf-loading\">\n <i class=\"bi bi-arrow-repeat\" aria-hidden=\"true\"></i>\n Loading…\n </div>\n }\n\n @if (!loading()) {\n <lib-card variant=\"solid\">\n <div cardHeader>\n <span class=\"anv-card-title\">Avatar</span>\n </div>\n <lib-avatar-editor\n [initialAvatar]=\"initialAvatar\"\n [saveFn]=\"saveFn\"\n [removeFn]=\"removeFn\"\n (saved)=\"onAvatarSaved()\"\n (removed)=\"onAvatarRemoved()\" />\n </lib-card>\n }\n\n</div>\n","import { Component, OnInit, inject, signal } from '@angular/core';\n\nimport { AuthService } from '@anvil-eco/shared-services';\nimport { CurrentUserInfoService, MyProfileService, PortalUserAvatarUpdate } from '@anvil-eco/portal-services';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { CardComponent, CardHeaderDirective, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { MyProfileNavComponent } from '@anvil-eco/shared-ui';\nimport { AvatarEditorComponent, inferAvatarType } from '../../shared/avatar-editor/avatar-editor.component';\n\n\n@Component({\n selector: 'lib-my-profile-avatar-form',\n standalone: true,\n imports: [\n CardComponent,\n CardHeaderDirective,\n SideDrawerContentDirective,\n MyProfileNavComponent,\n AvatarEditorComponent,\n ],\n templateUrl: './my-profile-avatar-form.component.html',\n styleUrl: './my-profile-avatar-form.component.scss',\n})\nexport class MyProfileAvatarFormComponent implements OnInit {\n private readonly authService = inject(AuthService);\n private readonly myProfileService = inject(MyProfileService);\n private readonly currentUserInfoService = inject(CurrentUserInfoService);\n\n readonly loading = signal(true);\n initialAvatar = '';\n\n readonly saveFn = (avatar: string) => {\n const id = this.authService.getClaim<string>('user-id') ?? '';\n const model: PortalUserAvatarUpdate = { id, avatar, avatarType: inferAvatarType(avatar) };\n return this.myProfileService.updateAvatar(model);\n };\n\n readonly removeFn = () => this.myProfileService.removeAvatar();\n\n ngOnInit(): void {\n this.myProfileService.getMe().subscribe({\n next: (user) => {\n this.initialAvatar = user.profile?.avatar ?? '';\n this.loading.set(false);\n },\n error: (err: AppError) => { console.error(err); this.loading.set(false); },\n });\n }\n\n onAvatarSaved(): void { this.currentUserInfoService.refresh(); }\n onAvatarRemoved(): void { this.currentUserInfoService.refresh(); }\n}\n","import { Component, OnInit, inject } from '@angular/core';\nimport { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { tap } from 'rxjs';\n\nimport { AuthService } from '@anvil-eco/shared-services';\nimport { CurrentUserInfoService, MyProfileService, PortalUserProfileUpdate } from '@anvil-eco/portal-services';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { CardComponent, CardHeaderDirective, FormComponent, FormFieldComponent, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { MyProfileNavComponent } from '@anvil-eco/shared-ui';\n\n@Component({\n selector: 'lib-my-profile-demographics-form',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n CardComponent,\n CardHeaderDirective,\n FormComponent,\n FormFieldComponent,\n SideDrawerContentDirective,\n MyProfileNavComponent,\n ],\n template: `\n <ng-template sideDrawerContent>\n <lib-my-profile-nav />\n </ng-template>\n\n <div class=\"mpdf-container\">\n <lib-card variant=\"solid\">\n <div cardHeader>\n <span class=\"anv-card-title\">Demographics</span>\n </div>\n\n <lib-form\n [formGroup]=\"form\"\n [submitFn]=\"submitFn\"\n formId=\"myProfileDemographics\"\n submitLabel=\"Save Changes\"\n successMessage=\"Profile updated successfully.\">\n\n <input type=\"hidden\" formControlName=\"id\" />\n\n <lib-form-field controlName=\"givenName\" label=\"Given Name\">\n <input type=\"text\" class=\"anv-input\" formControlName=\"givenName\"\n placeholder=\"Enter given name\" aria-label=\"Given name\" />\n </lib-form-field>\n\n <lib-form-field controlName=\"surname\" label=\"Surname\">\n <input type=\"text\" class=\"anv-input\" formControlName=\"surname\"\n placeholder=\"Enter surname\" aria-label=\"Surname\" />\n </lib-form-field>\n\n <div formFooter>\n <button type=\"button\" class=\"anv-btn anv-btn--secondary\" (click)=\"onCancel()\">\n Cancel\n </button>\n </div>\n\n </lib-form>\n </lib-card>\n </div>\n `,\n styles: [`\n .mpdf-container {\n padding: 24px;\n max-width: 560px;\n }\n\n .anv-input {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid var(--anv-color-outline, #c4cacf);\n border-radius: 6px;\n font-size: 0.9rem;\n background: var(--anv-color-surface, #ffffff);\n color: var(--anv-color-dark, #01132c);\n box-sizing: border-box;\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n\n &:focus {\n outline: none;\n border-color: var(--anv-color-primary, #00174b);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--anv-color-primary, #00174b) 20%, transparent);\n }\n }\n `],\n})\nexport class MyProfileDemographicsFormComponent implements OnInit {\n private readonly authService = inject(AuthService);\n private readonly myProfileService = inject(MyProfileService);\n private readonly currentUserInfoService = inject(CurrentUserInfoService);\n private readonly router = inject(Router);\n private readonly fb = inject(FormBuilder);\n\n readonly form = this.fb.group({\n id: ['', Validators.required],\n givenName: ['', [Validators.required, Validators.maxLength(100)]],\n surname: ['', [Validators.required, Validators.maxLength(100)]],\n });\n\n readonly submitFn = (data: unknown) =>\n this.myProfileService.updateProfile(data as PortalUserProfileUpdate).pipe(\n tap(() => this.currentUserInfoService.refresh())\n );\n\n ngOnInit(): void {\n const id = this.authService.getClaim<string>('user-id') ?? '';\n this.myProfileService.getMe().subscribe({\n next: (user) => {\n this.form.patchValue({\n id,\n givenName: user.profile?.givenName ?? '',\n surname: user.profile?.surname ?? '',\n });\n },\n error: (err: AppError) => {\n console.error('Failed to load profile', err);\n this.form.patchValue({ id });\n },\n });\n }\n\n onCancel(): void {\n this.router.navigate(['/my-profile/overview']);\n }\n}\n","import { Component, inject, signal } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AuthService } from '@anvil-eco/shared-services';\nimport { MyProfileService } from '@anvil-eco/portal-services';\nimport { AlertComponent, ButtonBaseComponent, CardComponent, CardHeaderDirective, ErrorAlertComponent, ErrorService, MessageBoxComponent, MessageBoxConfig, SideDrawerContentDirective, ToastService } from '@anvil-eco/shared-ui';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { MyProfileNavComponent } from '@anvil-eco/shared-ui';\n\n@Component({\n selector: 'lib-my-profile-reset-password',\n standalone: true,\n imports: [\n AlertComponent,\n ButtonBaseComponent,\n CardComponent,\n CardHeaderDirective,\n ErrorAlertComponent,\n MessageBoxComponent,\n SideDrawerContentDirective,\n MyProfileNavComponent,\n ],\n template: `\n <ng-template sideDrawerContent>\n <lib-my-profile-nav />\n </ng-template>\n\n <div class=\"mprp-container\">\n <lib-card variant=\"solid\">\n <div cardHeader>\n <span class=\"anv-card-title\">Reset Password</span>\n </div>\n\n <div class=\"mprp-body\">\n <lib-alert context=\"info\">\n Resetting your password will <strong>sign you out immediately</strong>.\n When you next sign in, you will be prompted to create a new password.\n </lib-alert>\n\n <lib-error-alert scope=\"mprp\" />\n\n @if (showConfirm()) {\n <lib-message-box\n [isVisible]=\"true\"\n [config]=\"confirmConfig\"\n (yes)=\"onConfirmed()\"\n (no)=\"showConfirm.set(false)\" />\n }\n\n <div class=\"mprp-actions\">\n <lib-button-base\n variant=\"danger\"\n icon=\"key\"\n [disabled]=\"resetting()\"\n (clicked)=\"promptConfirm()\">\n Reset Password\n </lib-button-base>\n <lib-button-base\n variant=\"secondary\"\n (clicked)=\"onCancel()\">\n Cancel\n </lib-button-base>\n </div>\n </div>\n </lib-card>\n </div>\n `,\n styles: [`\n .mprp-container {\n padding: 24px;\n max-width: 560px;\n }\n\n .mprp-body {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 16px;\n }\n\n .mprp-actions {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n }\n `],\n})\nexport class MyProfileResetPasswordComponent {\n private readonly authService = inject(AuthService);\n private readonly myProfileService = inject(MyProfileService);\n private readonly errorService = inject(ErrorService);\n private readonly toastService = inject(ToastService);\n private readonly router = inject(Router);\n\n readonly resetting = signal(false);\n readonly showConfirm = signal(false);\n\n readonly confirmConfig: MessageBoxConfig = {\n title: 'Reset Password',\n message: 'Are you sure? You will be signed out and must set a new password on your next login.',\n context: 'danger',\n yesButton: { text: 'Reset & Sign Out', icon: 'bi bi-key', context: 'danger' },\n noButton: { text: 'Cancel', context: 'secondary' },\n };\n\n promptConfirm(): void {\n this.errorService.clearError();\n this.showConfirm.set(true);\n }\n\n onConfirmed(): void {\n this.showConfirm.set(false);\n this.resetting.set(true);\n this.errorService.clearError();\n\n this.myProfileService.clearPassword().subscribe({\n next: () => {\n this.resetting.set(false);\n this.toastService.show({ message: 'Password reset. Signing out…', type: 'success' });\n setTimeout(() => this.authService.logout(), 2000);\n },\n error: (err: AppError) => {\n this.resetting.set(false);\n this.errorService.setError(err, 'mprp');\n },\n });\n }\n\n onCancel(): void {\n this.router.navigate(['/my-profile/overview']);\n }\n}\n","<ng-template sideDrawerContent>\n <lib-admin-list-nav />\n</ng-template>\n\n<div class=\"anv-list-container\">\n <lib-error-alert sourceId=\"errorEntryList\" />\n\n <ag-grid-angular\n class=\"ag-theme-quartz eel-grid\"\n [columnDefs]=\"columnDefs\"\n [defaultColDef]=\"defaultColDef\"\n [rowModelType]=\"'infinite'\"\n [pagination]=\"true\"\n [paginationPageSize]=\"50\"\n [paginationPageSizeSelector]=\"[25, 50, 100]\"\n [cacheBlockSize]=\"50\"\n (gridReady)=\"onGridReady($event)\"\n (filterChanged)=\"onFilterChanged()\"\n (sortChanged)=\"onSortChanged()\" />\n</div>\n\n<lib-error-entry-properties-modal\n [isOpen]=\"showModal()\"\n [entry]=\"selectedEntry()\"\n (closed)=\"showModal.set(false)\" />\n","import { Component, inject, signal } from '@angular/core';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n AllCommunityModule,\n ColDef,\n GridApi,\n GridReadyEvent,\n IDatasource,\n IGetRowsParams,\n ModuleRegistry,\n SortModelItem,\n} from 'ag-grid-community';\n\nimport { ErrorEntryService, ErrorEntryDetail } from '@anvil-eco/portal-services';\nimport { GridFilterItem, GridQueryRequest } from '@anvil-eco/shared-core';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { ErrorAlertComponent, ErrorService, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { AdminListNavComponent } from '../../shared/admin-list-nav/admin-list-nav.component';\nimport { ErrorEntryPropertiesModalComponent } from '../error-entry-properties-modal/error-entry-properties-modal.component';\n\nModuleRegistry.registerModules([AllCommunityModule]);\n\n@Component({\n selector: 'lib-error-entry-list',\n standalone: true,\n imports: [\n AgGridAngular,\n ErrorAlertComponent,\n SideDrawerContentDirective,\n AdminListNavComponent,\n ErrorEntryPropertiesModalComponent,\n ],\n templateUrl: './error-entry-list.component.html',\n styleUrl: './error-entry-list.component.scss',\n})\nexport class ErrorEntryListComponent {\n private readonly errorEntryService = inject(ErrorEntryService);\n private readonly errorService = inject(ErrorService);\n\n private gridApi?: GridApi<ErrorEntryDetail>;\n private currentFilterModel: Record<string, unknown> = {};\n private currentSortModel: SortModelItem[] = [];\n\n readonly showModal = signal(false);\n readonly selectedEntry = signal<ErrorEntryDetail | null>(null);\n\n readonly defaultColDef: ColDef = { resizable: true, minWidth: 80, filter: true };\n\n readonly columnDefs: ColDef<ErrorEntryDetail>[] = [\n {\n colId: 'actions',\n headerName: '',\n width: 52,\n sortable: false,\n filter: false,\n resizable: false,\n suppressMovable: true,\n cellRenderer: () => `<div class=\"eel-action-cell\"><button class=\"eel-prop-btn\" aria-label=\"View Properties\" title=\"View Properties\"><i class=\"bi bi-file-code\"></i></button></div>`,\n onCellClicked: (params) => { if (params.data) this.openPropertiesModal(params.data); },\n },\n {\n field: 'timestamp',\n headerName: 'Timestamp',\n minWidth: 180,\n filter: 'agDateColumnFilter',\n valueFormatter: p => p.value ? new Date(p.value).toLocaleString(undefined, {\n year: 'numeric', month: 'short', day: 'numeric',\n hour: '2-digit', minute: '2-digit', second: '2-digit',\n }) : '',\n },\n {\n field: 'level',\n headerName: 'Level',\n width: 100,\n cellStyle: p => {\n switch ((p.value as string)?.toLowerCase()) {\n case 'error': return { color: 'var(--anv-color-danger)', fontWeight: '600' };\n case 'warning': return { color: 'var(--anv-color-warning)', fontWeight: '600' };\n default: return null;\n }\n },\n },\n {\n field: 'userName',\n headerName: 'User',\n flex: 2,\n },\n {\n field: 'message',\n headerName: 'Message',\n flex: 4,\n tooltipField: 'message',\n },\n {\n field: 'browser',\n headerName: 'Browser',\n flex: 2,\n },\n {\n field: 'ipAddress',\n headerName: 'IP Address',\n width: 140,\n },\n {\n field: 'exception',\n headerName: 'Exception',\n flex: 3,\n tooltipField: 'exception',\n },\n ];\n\n openPropertiesModal(entry: ErrorEntryDetail): void {\n this.selectedEntry.set(entry);\n this.showModal.set(true);\n }\n\n onGridReady(event: GridReadyEvent<ErrorEntryDetail>): void {\n this.gridApi = event.api;\n setTimeout(() => {\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }, 0);\n }\n\n onFilterChanged(): void {\n this.currentFilterModel = (this.gridApi?.getFilterModel() ?? {}) as Record<string, unknown>;\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n onSortChanged(): void {\n this.currentSortModel = this.gridApi?.getColumnState()\n .filter(s => s.sort)\n .map(s => ({ colId: s.colId, sort: s.sort! } as SortModelItem)) ?? [];\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n private buildDatasource(): IDatasource {\n const filterModel = this.currentFilterModel;\n const sortModel = this.currentSortModel;\n return {\n getRows: (params: IGetRowsParams) => {\n const pageSize = params.endRow - params.startRow;\n const page = Math.floor(params.startRow / pageSize) + 1;\n const sortCol = sortModel[0];\n const query: GridQueryRequest = {\n page,\n pageSize,\n sortField: sortCol?.colId,\n sortDirection: sortCol?.sort as 'asc' | 'desc' | undefined,\n filters: this.mapFilterModel(filterModel),\n };\n this.errorEntryService.getGrid(query).subscribe({\n next: (result) => params.successCallback(result.items, result.totalCount),\n error: (err: AppError) => {\n this.errorService.setError(err, 'errorEntryList');\n params.failCallback();\n },\n });\n },\n };\n }\n\n private mapFilterModel(filterModel: Record<string, unknown>): GridFilterItem[] {\n return Object.entries(filterModel).map(([field, raw]) => {\n const f = raw as Record<string, unknown>;\n return {\n field,\n filterType: (f['filterType'] as string) ?? 'text',\n operator: (f['type'] as string) ?? 'contains',\n value: f['filter'] != null ? String(f['filter']) : undefined,\n valueTo: f['filterTo'] != null ? String(f['filterTo']) : undefined,\n };\n });\n }\n}\n","<ng-template sideDrawerContent>\n <lib-admin-list-nav />\n</ng-template>\n\n<div class=\"anv-list-container\">\n <lib-error-alert sourceId=\"auditLogList\" />\n\n <ag-grid-angular\n class=\"ag-theme-quartz aul-grid\"\n [columnDefs]=\"columnDefs\"\n [defaultColDef]=\"defaultColDef\"\n [rowModelType]=\"'infinite'\"\n [pagination]=\"true\"\n [paginationPageSize]=\"50\"\n [paginationPageSizeSelector]=\"[25, 50, 100]\"\n [cacheBlockSize]=\"50\"\n (gridReady)=\"onGridReady($event)\"\n (filterChanged)=\"onFilterChanged()\"\n (sortChanged)=\"onSortChanged()\" />\n</div>\n\n@if (showDetails() && selectedEntry(); as entry) {\n <div class=\"aul-detail-panel\">\n <div class=\"aul-detail-header\">\n <div class=\"aul-detail-meta\">\n <span class=\"aul-action-badge aul-action-badge--{{ entry.action.toLowerCase() }}\">\n {{ entry.action }}\n </span>\n <strong class=\"aul-detail-entity\">{{ entry.entityName }}</strong>\n <span class=\"aul-detail-pk\">{{ entry.primaryKey }}</span>\n @if (entry.userId) {\n <span class=\"aul-detail-secondary\">\n <i class=\"bi bi-person\"></i> {{ entry.userId }}\n </span>\n }\n <span class=\"aul-detail-secondary\">\n <i class=\"bi bi-clock\"></i> {{ formatTimestamp(entry.timestamp) }}\n </span>\n </div>\n <button class=\"aul-detail-close\" (click)=\"closeDetails()\" aria-label=\"Close details\">\n <i class=\"bi bi-x-lg\"></i>\n </button>\n </div>\n\n @if (entry.changedColumns) {\n <div class=\"aul-detail-changed\">\n <span class=\"aul-detail-label\">Changed:</span>\n {{ formatChangedColumns(entry.changedColumns) }}\n </div>\n }\n\n <div class=\"aul-detail-body\">\n <div class=\"aul-detail-json-block\">\n <div class=\"aul-detail-label\">Old Values</div>\n <pre class=\"aul-detail-pre\">{{ formatJson(entry.oldValues) }}</pre>\n </div>\n <div class=\"aul-detail-json-block\">\n <div class=\"aul-detail-label\">New Values</div>\n <pre class=\"aul-detail-pre\">{{ formatJson(entry.newValues) }}</pre>\n </div>\n </div>\n </div>\n}\n","import { Component, inject, signal } from '@angular/core';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n AllCommunityModule,\n ColDef,\n GridApi,\n GridReadyEvent,\n IDatasource,\n IGetRowsParams,\n ModuleRegistry,\n SortModelItem,\n} from 'ag-grid-community';\n\nimport { AuditLogService, AuditLogDetail } from '@anvil-eco/portal-services';\nimport { GridFilterItem, GridQueryRequest } from '@anvil-eco/shared-core';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { ErrorAlertComponent, ErrorService, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { AdminListNavComponent } from '../../shared/admin-list-nav/admin-list-nav.component';\n\nModuleRegistry.registerModules([AllCommunityModule]);\n\n@Component({\n selector: 'lib-audit-log-list',\n standalone: true,\n imports: [\n AgGridAngular,\n ErrorAlertComponent,\n SideDrawerContentDirective,\n AdminListNavComponent,\n ],\n templateUrl: './audit-log-list.component.html',\n styleUrl: './audit-log-list.component.scss',\n})\nexport class AuditLogListComponent {\n private readonly auditLogService = inject(AuditLogService);\n private readonly errorService = inject(ErrorService);\n\n private gridApi?: GridApi<AuditLogDetail>;\n private currentFilterModel: Record<string, unknown> = {};\n private currentSortModel: SortModelItem[] = [];\n\n readonly showDetails = signal(false);\n readonly selectedEntry = signal<AuditLogDetail | null>(null);\n\n readonly defaultColDef: ColDef = { resizable: true, minWidth: 80, filter: true };\n\n readonly columnDefs: ColDef<AuditLogDetail>[] = [\n {\n colId: 'details',\n headerName: '',\n width: 48,\n sortable: false,\n filter: false,\n resizable: false,\n suppressMovable: true,\n cellRenderer: () => `<div class=\"aul-action-cell\"><button class=\"aul-view-btn\" aria-label=\"View Details\" title=\"View Details\"><i class=\"bi bi-eye\"></i></button></div>`,\n onCellClicked: params => { if (params.data) this.openDetails(params.data); },\n },\n {\n field: 'timestamp',\n headerName: 'Timestamp',\n minWidth: 180,\n filter: 'agDateColumnFilter',\n valueFormatter: p => p.value ? new Date(p.value).toLocaleString(undefined, {\n year: 'numeric', month: 'short', day: 'numeric',\n hour: '2-digit', minute: '2-digit', second: '2-digit',\n }) : '',\n },\n {\n field: 'action',\n headerName: 'Action',\n width: 110,\n cellStyle: p => {\n switch ((p.value as string)?.toLowerCase()) {\n case 'added': return { color: 'var(--anv-color-success)', fontWeight: '600' };\n case 'deleted': return { color: 'var(--anv-color-danger)', fontWeight: '600' };\n case 'modified': return { color: 'var(--anv-color-primary)', fontWeight: '600' };\n default: return null;\n }\n },\n },\n { field: 'entityName', headerName: 'Entity', flex: 2 },\n { field: 'primaryKey', headerName: 'Primary Key', flex: 2 },\n { field: 'userId', headerName: 'User ID', flex: 2 },\n {\n field: 'changedColumns',\n headerName: 'Changed Columns',\n flex: 3,\n valueFormatter: p => this.formatChangedColumns(p.value),\n tooltipValueGetter: p => this.formatChangedColumns(p.value as string | null),\n },\n ];\n\n openDetails(entry: AuditLogDetail): void {\n this.selectedEntry.set(entry);\n this.showDetails.set(true);\n }\n\n closeDetails(): void {\n this.showDetails.set(false);\n this.selectedEntry.set(null);\n }\n\n formatJson(json: string | null): string {\n if (!json) return '—';\n try { return JSON.stringify(JSON.parse(json), null, 2); } catch { return json; }\n }\n\n formatChangedColumns(json: string | null): string {\n if (!json) return '—';\n try {\n const cols = JSON.parse(json) as string[];\n return Array.isArray(cols) ? cols.join(', ') : json;\n } catch { return json; }\n }\n\n formatTimestamp(ts: string): string {\n return new Date(ts).toLocaleString(undefined, {\n year: 'numeric', month: 'short', day: 'numeric',\n hour: '2-digit', minute: '2-digit', second: '2-digit',\n });\n }\n\n onGridReady(event: GridReadyEvent<AuditLogDetail>): void {\n this.gridApi = event.api;\n setTimeout(() => this.gridApi?.setGridOption('datasource', this.buildDatasource()), 0);\n }\n\n onFilterChanged(): void {\n this.currentFilterModel = (this.gridApi?.getFilterModel() ?? {}) as Record<string, unknown>;\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n onSortChanged(): void {\n this.currentSortModel = this.gridApi?.getColumnState()\n .filter(s => s.sort)\n .map(s => ({ colId: s.colId, sort: s.sort! } as SortModelItem)) ?? [];\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n private buildDatasource(): IDatasource {\n const filterModel = this.currentFilterModel;\n const sortModel = this.currentSortModel;\n return {\n getRows: (params: IGetRowsParams) => {\n const pageSize = params.endRow - params.startRow;\n const page = Math.floor(params.startRow / pageSize) + 1;\n const sortCol = sortModel[0];\n const query: GridQueryRequest = {\n page,\n pageSize,\n sortField: sortCol?.colId,\n sortDirection: sortCol?.sort as 'asc' | 'desc' | undefined,\n filters: this.mapFilterModel(filterModel),\n };\n this.auditLogService.getGrid(query).subscribe({\n next: result => params.successCallback(result.items, result.totalCount),\n error: (err: AppError) => {\n this.errorService.setError(err, 'auditLogList');\n params.failCallback();\n },\n });\n },\n };\n }\n\n private mapFilterModel(filterModel: Record<string, unknown>): GridFilterItem[] {\n return Object.entries(filterModel).map(([field, raw]) => {\n const f = raw as Record<string, unknown>;\n const filterType = (f['filterType'] as string) ?? 'text';\n const isDate = filterType === 'date';\n return {\n field,\n filterType,\n operator: (f['type'] as string) ?? 'contains',\n value: isDate\n ? (f['dateFrom'] != null ? String(f['dateFrom']) : undefined)\n : (f['filter'] != null ? String(f['filter']) : undefined),\n valueTo: isDate\n ? (f['dateTo'] != null ? String(f['dateTo']) : undefined)\n : (f['filterTo'] != null ? String(f['filterTo']) : undefined),\n } as GridFilterItem;\n });\n }\n}\n","<ng-template sideDrawerContent>\n <lib-admin-list-nav />\n</ng-template>\n\n<div class=\"anv-list-container\">\n <lib-error-alert sourceId=\"loginAuditList\" />\n\n <ag-grid-angular\n class=\"ag-theme-quartz lal-grid\"\n [columnDefs]=\"columnDefs\"\n [defaultColDef]=\"defaultColDef\"\n [rowModelType]=\"'infinite'\"\n [pagination]=\"true\"\n [paginationPageSize]=\"50\"\n [paginationPageSizeSelector]=\"[25, 50, 100]\"\n [cacheBlockSize]=\"50\"\n (gridReady)=\"onGridReady($event)\"\n (filterChanged)=\"onFilterChanged()\"\n (sortChanged)=\"onSortChanged()\" />\n</div>\n","import { Component, inject } from '@angular/core';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n AllCommunityModule,\n ColDef,\n GridApi,\n GridReadyEvent,\n IDatasource,\n IGetRowsParams,\n ModuleRegistry,\n SortModelItem,\n} from 'ag-grid-community';\n\nimport { LoginAuditService, LoginAuditDetail } from '@anvil-eco/portal-services';\nimport { GridFilterItem, GridQueryRequest } from '@anvil-eco/shared-core';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { ErrorAlertComponent, ErrorService, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { AdminListNavComponent } from '../../shared/admin-list-nav/admin-list-nav.component';\n\nModuleRegistry.registerModules([AllCommunityModule]);\n\n@Component({\n selector: 'lib-login-audit-list',\n standalone: true,\n imports: [\n AgGridAngular,\n ErrorAlertComponent,\n SideDrawerContentDirective,\n AdminListNavComponent,\n ],\n templateUrl: './login-audit-list.component.html',\n styleUrl: './login-audit-list.component.scss',\n})\nexport class LoginAuditListComponent {\n private readonly loginAuditService = inject(LoginAuditService);\n private readonly errorService = inject(ErrorService);\n\n private gridApi?: GridApi<LoginAuditDetail>;\n private currentFilterModel: Record<string, unknown> = {};\n private currentSortModel: SortModelItem[] = [];\n\n readonly defaultColDef: ColDef = { resizable: true, minWidth: 80, filter: true };\n\n readonly columnDefs: ColDef<LoginAuditDetail>[] = [\n {\n field: 'loginTime',\n headerName: 'Login Time',\n colId: 'logintime',\n minWidth: 180,\n sort: 'desc',\n filter: 'agDateColumnFilter',\n valueFormatter: p => p.value\n ? new Date(p.value).toLocaleString(undefined, {\n year: 'numeric', month: 'short', day: 'numeric',\n hour: '2-digit', minute: '2-digit', second: '2-digit',\n })\n : '',\n },\n {\n colId: 'username',\n headerName: 'Username',\n flex: 2,\n filter: false,\n valueGetter: p => p.data?.user?.username ?? p.data?.userId ?? '',\n },\n {\n field: 'ipAddress',\n headerName: 'IP Address',\n colId: 'ipaddress',\n flex: 2,\n filter: 'agTextColumnFilter',\n },\n {\n field: 'browser',\n headerName: 'Browser',\n colId: 'browser',\n flex: 3,\n filter: 'agTextColumnFilter',\n },\n {\n field: 'isSuccessful',\n headerName: 'Result',\n colId: 'issuccessful',\n width: 110,\n filter: false,\n cellRenderer: (p: { value: boolean }) =>\n p.value\n ? `<span class=\"lal-result lal-result--success\"><i class=\"bi bi-check-circle-fill\"></i> Success</span>`\n : `<span class=\"lal-result lal-result--failure\"><i class=\"bi bi-x-circle-fill\"></i> Failed</span>`,\n },\n ];\n\n onGridReady(event: GridReadyEvent<LoginAuditDetail>): void {\n this.gridApi = event.api;\n setTimeout(() => this.gridApi?.setGridOption('datasource', this.buildDatasource()), 0);\n }\n\n onFilterChanged(): void {\n this.currentFilterModel = (this.gridApi?.getFilterModel() ?? {}) as Record<string, unknown>;\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n onSortChanged(): void {\n this.currentSortModel = this.gridApi?.getColumnState()\n .filter(s => s.sort)\n .map(s => ({ colId: s.colId, sort: s.sort! } as SortModelItem)) ?? [];\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n private buildDatasource(): IDatasource {\n const filterModel = this.currentFilterModel;\n const sortModel = this.currentSortModel;\n return {\n getRows: (params: IGetRowsParams) => {\n const pageSize = params.endRow - params.startRow;\n const page = Math.floor(params.startRow / pageSize) + 1;\n const sortCol = sortModel[0];\n const query: GridQueryRequest = {\n page,\n pageSize,\n sortField: sortCol?.colId,\n sortDirection: sortCol?.sort as 'asc' | 'desc' | undefined,\n filters: this.mapFilterModel(filterModel),\n };\n this.loginAuditService.getPaged(query).subscribe({\n next: result => params.successCallback(result.items, result.totalCount),\n error: (err: AppError) => {\n this.errorService.setError(err, 'loginAuditList');\n params.failCallback();\n },\n });\n },\n };\n }\n\n private mapFilterModel(filterModel: Record<string, unknown>): GridFilterItem[] {\n return Object.entries(filterModel).map(([field, raw]) => {\n const f = raw as Record<string, unknown>;\n const filterType = (f['filterType'] as string) ?? 'text';\n const isDate = filterType === 'date';\n return {\n field,\n filterType,\n operator: (f['type'] as string) ?? 'contains',\n value: isDate\n ? (f['dateFrom'] != null ? String(f['dateFrom']) : undefined)\n : (f['filter'] != null ? String(f['filter']) : undefined),\n valueTo: isDate\n ? (f['dateTo'] != null ? String(f['dateTo']) : undefined)\n : (f['filterTo'] != null ? String(f['filterTo']) : undefined),\n } as GridFilterItem;\n });\n }\n}\n","import { Component, inject, signal } from '@angular/core';\nimport { Router } from '@angular/router';\nimport type { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\nimport { AuthService } from '@anvil-eco/shared-services';\nimport { Portal, PortalPermissions } from '@anvil-eco/portal-services';\n\n@Component({\n selector: 'lib-portal-action-cell',\n standalone: true,\n imports: [],\n template: `\n @if (canEdit()) {\n <button\n type=\"button\"\n class=\"manage-btn\"\n title=\"Edit Portal\"\n (click)=\"navigate()\">\n <i class=\"bi bi-gear\"></i>\n </button>\n }\n `,\n styles: [`\n .manage-btn {\n border: none;\n background: transparent;\n cursor: pointer;\n padding: 0.25rem;\n color: var(--anv-color-dark);\n font-size: 1rem;\n line-height: 1;\n }\n .manage-btn:hover {\n color: var(--anv-color-primary);\n }\n `],\n})\nexport class PortalActionCellComponent implements ICellRendererComp {\n private readonly router = inject(Router);\n private readonly auth = inject(AuthService);\n\n private portal!: Portal;\n\n canEdit = signal(false);\n\n agInit(params: ICellRendererParams<Portal>): void {\n this.portal = params.data as Portal;\n this.canEdit.set(this.auth.hasPermission(PortalPermissions.Portal.Update));\n }\n\n refresh(params: ICellRendererParams<Portal>): boolean {\n this.portal = params.data as Portal;\n this.canEdit.set(this.auth.hasPermission(PortalPermissions.Portal.Update));\n return true;\n }\n\n getGui(): HTMLElement {\n const container = document.createElement('div');\n container.style.display = 'inline-block';\n return container;\n }\n\n navigate(): void {\n this.router.navigate(['portal', 'settings', 'portals', this.portal.id, 'edit'], {\n state: { portal: this.portal },\n });\n }\n}\n","<div class=\"pnc-cell\">\n <div class=\"pnc-avatar\">\n @switch (resolved().kind) {\n @case ('icon') {\n <i [class]=\"resolved().iconClass + ' pnc-avatar-icon'\" aria-hidden=\"true\"></i>\n }\n @case ('svg') {\n <span class=\"pnc-avatar-svg\" [innerHTML]=\"resolved().svgHtml\" aria-hidden=\"true\"></span>\n }\n @case ('base64') {\n <img class=\"pnc-avatar-img\" [src]=\"resolved().src\" alt=\"\" />\n }\n @case ('url') {\n <img class=\"pnc-avatar-img\" [src]=\"resolved().src\" alt=\"\" />\n }\n @default {\n <i class=\"bi bi-layout-sidebar pnc-avatar-icon\" aria-hidden=\"true\"></i>\n }\n }\n </div>\n <div class=\"pnc-info\">\n <span class=\"pnc-name\">{{ name() }}</span>\n <span class=\"pnc-desc\">{{ description() }}</span>\n </div>\n</div>\n","import { Component, inject, signal } from '@angular/core';\nimport type { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\nimport { AVATAR_NONE, AvatarService, ResolvedAvatar } from '@anvil-eco/portal-services';\nimport { Portal } from '@anvil-eco/portal-services';\n\n@Component({\n selector: 'lib-portal-name-cell',\n standalone: true,\n imports: [],\n templateUrl: './portal-name-cell.component.html',\n styleUrl: './portal-name-cell.component.scss',\n})\nexport class PortalNameCellComponent implements ICellRendererComp {\n private readonly avatarService = inject(AvatarService);\n\n name = signal('');\n description = signal('');\n resolved = signal<ResolvedAvatar>(AVATAR_NONE);\n\n agInit(params: ICellRendererParams<Portal>): void {\n this.setData(params.data);\n }\n\n refresh(params: ICellRendererParams<Portal>): boolean {\n this.setData(params.data);\n return true;\n }\n\n getGui(): HTMLElement {\n return document.createElement('div');\n }\n\n private setData(portal: Portal | undefined): void {\n if (!portal) return;\n this.name.set(portal.name ?? '');\n this.description.set(portal.description ?? '');\n this.resolved.set(this.avatarService.resolve(portal.avatar));\n }\n}\n","<ng-template sideDrawerContent>\n <lib-settings-nav />\n</ng-template>\n\n<div class=\"anv-list-container\">\n <lib-error-alert sourceId=\"portal-list\" />\n\n <div class=\"anv-list-toolbar\">\n <div></div>\n <div class=\"anv-list-toolbar-buttons\">\n <lib-button-base\n variant=\"primary\"\n icon=\"plus\"\n [permissionIds]=\"[PortalPermissions.Portal.Create]\">\n Create Portal\n </lib-button-base>\n </div>\n </div>\n\n <ag-grid-angular\n class=\"ag-theme-quartz pl-grid\"\n [columnDefs]=\"columnDefs\"\n [defaultColDef]=\"defaultColDef\"\n [rowModelType]=\"'infinite'\"\n [rowHeight]=\"52\"\n [pagination]=\"true\"\n [paginationPageSize]=\"25\"\n [paginationPageSizeSelector]=\"[25, 50, 100]\"\n [cacheBlockSize]=\"25\"\n (gridReady)=\"onGridReady($event)\"\n (filterChanged)=\"onFilterChanged()\"\n (sortChanged)=\"onSortChanged()\" />\n</div>\n","import { Component, inject } from '@angular/core';\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n AllCommunityModule,\n ColDef,\n GridApi,\n GridReadyEvent,\n IDatasource,\n IGetRowsParams,\n ModuleRegistry,\n SortModelItem,\n} from 'ag-grid-community';\n\nimport { GridFilterItem, GridQueryRequest } from '@anvil-eco/shared-core';\nimport { Portal, PortalPermissions, PortalService } from '@anvil-eco/portal-services';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { ButtonBaseComponent, ErrorAlertComponent, ErrorService, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { SettingsNavComponent } from '../../shared/settings-nav/settings-nav.component';\nimport { PortalActionCellComponent } from './portal-action-cell.component';\nimport { PortalNameCellComponent } from './portal-name-cell.component';\n\nModuleRegistry.registerModules([AllCommunityModule]);\n\n@Component({\n selector: 'lib-portal-list',\n standalone: true,\n imports: [\n AgGridAngular,\n ButtonBaseComponent,\n ErrorAlertComponent,\n PortalActionCellComponent,\n PortalNameCellComponent,\n SideDrawerContentDirective,\n SettingsNavComponent,\n ],\n templateUrl: './portal-list.component.html',\n styleUrl: './portal-list.component.scss',\n})\nexport class PortalListComponent {\n private readonly portalService = inject(PortalService);\n private readonly errorService = inject(ErrorService);\n private gridApi?: GridApi<Portal>;\n private currentFilterModel: Record<string, unknown> = {};\n private currentSortModel: SortModelItem[] = [];\n\n protected readonly PortalPermissions = PortalPermissions;\n\n readonly columnDefs: ColDef<Portal>[] = [\n {\n headerName: '',\n width: 52,\n sortable: false,\n filter: false,\n pinned: 'left',\n cellRenderer: PortalActionCellComponent,\n },\n {\n field: 'name',\n headerName: 'Name',\n flex: 2,\n sortable: true,\n sort: 'asc',\n cellRenderer: PortalNameCellComponent,\n },\n {\n field: 'issuerKey',\n headerName: 'Issuer Key',\n flex: 3,\n sortable: true,\n },\n ];\n\n readonly defaultColDef: ColDef = { resizable: true, minWidth: 80, filter: true };\n\n onGridReady(event: GridReadyEvent<Portal>): void {\n this.gridApi = event.api;\n setTimeout(() => {\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }, 0);\n }\n\n onFilterChanged(): void {\n this.currentFilterModel = (this.gridApi?.getFilterModel() ?? {}) as Record<string, unknown>;\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n onSortChanged(): void {\n this.currentSortModel = this.gridApi?.getColumnState()\n .filter(s => s.sort)\n .map(s => ({ colId: s.colId, sort: s.sort! } as SortModelItem)) ?? [];\n this.gridApi?.setGridOption('datasource', this.buildDatasource());\n }\n\n private buildDatasource(): IDatasource {\n const filterModel = this.currentFilterModel;\n const sortModel = this.currentSortModel;\n return {\n getRows: (params: IGetRowsParams) => {\n const pageSize = params.endRow - params.startRow;\n const page = Math.floor(params.startRow / pageSize) + 1;\n const sortCol = sortModel[0];\n\n const query: GridQueryRequest = {\n page,\n pageSize,\n sortField: sortCol?.colId,\n sortDirection: sortCol?.sort as 'asc' | 'desc' | undefined,\n filters: this.mapFilterModel(filterModel),\n };\n\n this.portalService.getGrid(query).subscribe({\n next: (result) => params.successCallback(result.items, result.totalCount),\n error: (err: AppError) => {\n this.errorService.setError(err, 'portal-list');\n params.failCallback();\n },\n });\n },\n };\n }\n\n private mapFilterModel(filterModel: Record<string, unknown>): GridFilterItem[] {\n const result: GridFilterItem[] = [];\n for (const [field, raw] of Object.entries(filterModel)) {\n const f = raw as Record<string, unknown>;\n const filterType = f['filterType'] as string;\n if (filterType === 'set') {\n const values = f['values'] as string[];\n if (values?.length === 1) {\n result.push({ field, filterType: 'set', operator: 'equals', value: values[0] });\n }\n } else {\n result.push({\n field,\n filterType: filterType ?? 'text',\n operator: (f['type'] as string) ?? 'contains',\n value: f['filter'] != null ? String(f['filter']) : undefined,\n valueTo: f['filterTo'] != null ? String(f['filterTo']) : undefined,\n });\n }\n }\n return result;\n }\n}\n","<ng-template sideDrawerContent>\n <lib-settings-nav />\n</ng-template>\n\n<div class=\"pef-container\" role=\"main\" aria-label=\"Portal settings\">\n\n @if (loading()) {\n <div class=\"pef-loading\" role=\"status\" aria-live=\"polite\">\n <i class=\"bi bi-arrow-repeat\" aria-hidden=\"true\"></i>\n Loading…\n </div>\n }\n\n @if (!loading()) {\n\n <!-- Details card -->\n <lib-card variant=\"solid\">\n <div cardHeader>\n <span class=\"anv-card-title\" id=\"pef-details-heading\">Portal Details</span>\n </div>\n <lib-form\n [formGroup]=\"form\"\n [submitFn]=\"submitFn\"\n formId=\"portalDetailsEdit\"\n submitLabel=\"Save Changes\"\n successMessage=\"Portal details updated successfully.\"\n aria-labelledby=\"pef-details-heading\">\n <input type=\"hidden\" formControlName=\"id\" aria-hidden=\"true\" />\n <lib-form-field controlName=\"name\" label=\"Name\">\n <input type=\"text\" class=\"anv-input\"\n formControlName=\"name\"\n placeholder=\"Enter portal name\"\n aria-label=\"Portal name\"\n aria-required=\"true\" />\n </lib-form-field>\n <lib-form-field controlName=\"description\" label=\"Description\">\n <textarea class=\"anv-input anv-input--textarea\"\n formControlName=\"description\"\n rows=\"3\"\n placeholder=\"Enter a description\"\n aria-label=\"Portal description\"></textarea>\n </lib-form-field>\n <lib-form-field controlName=\"designContextId\" label=\"Design Context\" tooltip=\"The design system context applied to this portal\">\n <select class=\"anv-input\" formControlName=\"designContextId\" aria-label=\"Design context\">\n <option [value]=\"null\">— None —</option>\n @for (c of contexts(); track c.id) {\n <option [value]=\"c.id\">{{ c.name }}</option>\n }\n </select>\n </lib-form-field>\n <lib-form-field controlName=\"fiscalYearStartMonth\" label=\"Fiscal Year Start Month\" tooltip=\"Month the fiscal year begins\">\n <select class=\"anv-input\" formControlName=\"fiscalYearStartMonth\" aria-label=\"Fiscal year start month\">\n @for (m of months; track m.value) {\n <option [value]=\"m.value\">{{ m.label }}</option>\n }\n </select>\n </lib-form-field>\n <lib-form-field controlName=\"fiscalYearStartDay\" label=\"Fiscal Year Start Day\" tooltip=\"Day of month the fiscal year begins (1–28)\">\n <input type=\"number\" class=\"anv-input\" formControlName=\"fiscalYearStartDay\" min=\"1\" max=\"28\" />\n </lib-form-field>\n </lib-form>\n </lib-card>\n\n <!-- Avatar card -->\n <lib-card variant=\"solid\">\n <div cardHeader>\n <span class=\"anv-card-title\" id=\"pef-avatar-heading\">Avatar</span>\n </div>\n <lib-avatar-editor\n [initialAvatar]=\"initialAvatar\"\n [saveFn]=\"avatarSaveFn\"\n [removeFn]=\"avatarRemoveFn\"\n aria-labelledby=\"pef-avatar-heading\" />\n </lib-card>\n\n }\n\n</div>\n","import { Component, OnInit, inject, signal } from '@angular/core';\nimport { tap } from 'rxjs';\nimport { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { AppError } from '@anvil-eco/shared-core';\nimport { CardComponent, CardHeaderDirective, ErrorAlertComponent, FormComponent, FormFieldComponent, SideDrawerContentDirective } from '@anvil-eco/shared-ui';\nimport { SettingsNavComponent } from '../../shared/settings-nav/settings-nav.component';\nimport { PortalContextService, PortalContext, PortalDetail, PortalService, PortalUpdate, PortalUpdateAvatar } from '@anvil-eco/portal-services';\nimport { AvatarEditorComponent } from '../../shared/avatar-editor/avatar-editor.component';\n\n@Component({\n selector: 'lib-portal-edit-form',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n CardComponent,\n CardHeaderDirective,\n ErrorAlertComponent,\n FormComponent,\n FormFieldComponent,\n AvatarEditorComponent,\n SideDrawerContentDirective,\n SettingsNavComponent,\n ],\n templateUrl: './portal-edit-form.component.html',\n styleUrl: './portal-edit-form.component.scss',\n})\nexport class PortalEditFormComponent implements OnInit {\n private readonly portalService = inject(PortalService);\n private readonly portalContext = inject(PortalContextService);\n private readonly fb = inject(FormBuilder);\n private readonly route = inject(ActivatedRoute);\n\n readonly loading = signal(true);\n readonly portal = signal<PortalDetail | null>(null);\n readonly contexts = signal<PortalContext[]>([]);\n\n readonly months = [\n { value: 1, label: 'January' },\n { value: 2, label: 'February' },\n { value: 3, label: 'March' },\n { value: 4, label: 'April' },\n { value: 5, label: 'May' },\n { value: 6, label: 'June' },\n { value: 7, label: 'July' },\n { value: 8, label: 'August' },\n { value: 9, label: 'September' },\n { value: 10, label: 'October' },\n { value: 11, label: 'November' },\n { value: 12, label: 'December' },\n ];\n\n initialAvatar = '';\n\n readonly form = this.fb.group({\n id: ['', Validators.required],\n name: ['', [Validators.required, Validators.maxLength(200)]],\n description: ['', Validators.maxLength(500)],\n designContextId: [null as string | null],\n fiscalYearStartMonth: [7, [Validators.required, Validators.min(1), Validators.max(12)]],\n fiscalYearStartDay: [1, [Validators.required, Validators.min(1), Validators.max(28)]],\n });\n\n readonly submitFn = (data: unknown) =>\n this.portalService.update(data as PortalUpdate).pipe(\n tap(() => this.portalContext.refresh()),\n );\n\n readonly avatarSaveFn = (avatar: string) => {\n const id = this.portal()?.id ?? '';\n return this.portalService.updateAvatar({ id, avatar } as PortalUpdateAvatar).pipe(\n tap(() => this.portalContext.refresh()),\n );\n };\n\n readonly avatarRemoveFn = () =>\n this.portalService.removeAvatar(this.portal()?.id ?? '').pipe(\n tap(() => this.portalContext.refresh()),\n );\n\n ngOnInit(): void {\n const id = this.route.snapshot.paramMap.get('id') ?? '';\n\n this.portalService.getContexts().subscribe({\n next: (list) => this.contexts.set(list),\n });\n\n this.portalService.getById(id).subscribe({\n next: (detail) => {\n this.portal.set(detail);\n this.form.patchValue({\n id: detail.id,\n name: detail.name,\n description: detail.description ?? '',\n designContextId: detail.designContextId ?? null,\n fiscalYearStartMonth: detail.fiscalYearStartMonth ?? 7,\n fiscalYearStartDay: detail.fiscalYearStartDay ?? 1,\n });\n this.initialAvatar = detail.avatar ?? '';\n this.loading.set(false);\n },\n error: (err: AppError) => {\n console.error('Failed to load portal', err);\n this.loading.set(false);\n },\n });\n }\n}\n","import { Component, OnInit, ViewEncapsulation, inject } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ReactiveFormsModule, ValidationErrors, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { firstValueFrom } from 'rxjs';\nimport { AuthService, LoginResultCode } from '@anvil-eco/shared-services';\nimport { UsersService } from '@anvil-eco/portal-services';\nimport { AppError } from '@anvil-eco/shared-core';\nimport { FormComponent, FormFieldComponent, FormFieldsComponent } from '@anvil-eco/shared-ui';\n\nfunction passwordsMatch(group: AbstractControl): ValidationErrors | null {\n const pwControl = group.get('password');\n const cfmControl = group.get('confirm');\n \n if (!pwControl || !cfmControl) return null;\n\n const pw = pwControl.value;\n const cfm = cfmControl.value;\n\n if (pw && cfm && pw !== cfm) {\n const errors = { ...cfmControl.errors, mismatch: true };\n cfmControl.setErrors(errors);\n return { mismatch: true };\n }\n\n if (cfmControl.errors && 'mismatch' in cfmControl.errors) {\n const { mismatch, ...remainingErrors } = cfmControl.errors;\n cfmControl.setErrors(Object.keys(remainingErrors).length ? remainingErrors : null);\n }\n\n return null;\n}\n\n@Component({\n selector: 'lib-setup-password',\n standalone: true,\n imports: [ReactiveFormsModule, FormComponent, FormFieldsComponent, FormFieldComponent],\n encapsulation: ViewEncapsulation.None,\n styleUrl: './setup-password.component.scss',\n template: `\n <div class=\"anv-auth-step\">\n <h1 class=\"anv-auth-title\">Set your password</h1>\n <p class=\"anv-auth-subtitle\">Choose a password for <strong>{{ email() }}</strong></p>\n\n <lib-form [formGroup]=\"form\"\n [submitFn]=\"submit\"\n formId=\"formAlert-setup-password\"\n submitLabel=\"Set password\"\n successMessage=\"\"\n [showCancel]=\"true\"\n cancelLabel=\"Cancel\"\n (cancelled)=\"back()\">\n <lib-form-fields>\n <lib-form-field controlName=\"password\" label=\"New password\"\n tooltip=\"Minimum 8 characters.\">\n <input type=\"password\"\n formControlName=\"password\"\n autocomplete=\"new-password\"\n autofocus />\n </lib-form-field>\n <lib-form-field controlName=\"confirm\" label=\"Confirm password\"\n [validationMessages]=\"{ mismatch: 'Passwords do not match.' }\">\n <input type=\"password\"\n formControlName=\"confirm\"\n autocomplete=\"new-password\" />\n </lib-form-field>\n </lib-form-fields>\n </lib-form>\n </div>\n `,\n})\nexport class SetPasswordComponent implements OnInit {\n private auth = inject(AuthService);\n private usersService = inject(UsersService);\n private router = inject(Router);\n\n email = this.auth.pendingEmail;\n\n form = new FormGroup({\n password: new FormControl('', [Validators.required, Validators.minLength(8)]),\n confirm: new FormControl('', [Validators.required]),\n }, { validators: passwordsMatch });\n\n ngOnInit(): void {\n if (!this.email() || !this.auth.pendingUserId()) this.router.navigateByUrl('/auth/login');\n }\n\n back(): void {\n this.router.navigateByUrl('/');\n }\n\n submit = async (data: unknown): Promise<void> => {\n const { password, confirm } = data as { password: string; confirm: string };\n await firstValueFrom(\n this.usersService.setPassword({\n id: this.auth.pendingUserId(),\n password,\n confirmPassword: confirm,\n })\n );\n const result = await this.auth.login(this.email(), password);\n if (!result.ok) {\n throw result.appError;\n }\n if (result.data.resultCode !== LoginResultCode.Success) {\n throw { title: 'Login Error', message: result.data.message, status: 401,\n severity: 'warning', fieldErrors: {}, timestamp: new Date().toISOString(),\n isTechnical: false } as AppError;\n }\n };\n}","import { Route } from '@angular/router';\nimport { PortalPermissions, PortalRoles } from '@anvil-eco/portal-services';\nimport { AuthLayoutComponent } from './auth/auth-layout/auth-layout.component';\nimport { LoginEmailComponent } from './auth/login-email/login-email.component';\nimport { LoginPasswordComponent } from './auth/login-password/login-password.component';\nimport { ForgotPasswordComponent } from './auth/forgot-password/forgot-password.component';\nimport { ResetPasswordComponent } from './auth/reset-password/reset-password.component';\nimport { VerifyPendingComponent } from './auth/verify-pending/verify-pending.component';\nimport { VerifyEmailComponent } from './auth/verify-email/verify-email.component';\nimport { SetPasswordComponent } from './auth/setup-password/setup-password.component';\nimport { AccessDeniedComponent } from './auth/access-denied/access-denied.component';\nimport { RoleListComponent } from './roles/role-list/role-list.component';\nimport { RoleDetailComponent } from './roles/role-detail/role-detail.component';\nimport { RoleEditComponent } from './roles/role-edit/role-edit.component';\nimport { RoleMembershipComponent } from './roles/role-membership/role-membership.component';\nimport { RolePermissionsComponent } from './roles/role-permissions/role-permissions.component';\nimport { AuthPolicyListComponent } from './auth-policies/auth-policy-list/auth-policy-list.component';\nimport { UserListComponent } from './users/user-list/user-list.component';\nimport { UserDetailComponent } from './users/user-detail/user-detail.component';\nimport { UserRoleMembershipComponent } from './users/user-role-membership/user-role-membership.component';\nimport { UserLoginAuditsComponent } from './users/user-login-audits/user-login-audits.component';\nimport { UserErrorLogComponent } from './users/user-error-log/user-error-log.component';\nimport { UserProfileFormEditComponent } from './users/user-profile-form-edit/user-profile-form-edit.component';\nimport { ErrorEntryListComponent } from './error-entries/error-entry-list/error-entry-list.component';\nimport { AuditLogListComponent } from './audit-logs/audit-log-list/audit-log-list.component';\nimport { LoginAuditListComponent } from './login-audits/login-audit-list/login-audit-list.component';\nimport { EnterpriseEditFormComponent } from './enterprise/enterprise-edit-form/enterprise-edit-form.component';\nimport { PortalListComponent } from './portal/portal-list/portal-list.component';\nimport { PortalEditFormComponent } from './portal/portal-edit-form/portal-edit-form.component';\nimport { MyProfileOverviewComponent } from './my-profile/my-profile-overview/my-profile-overview.component';\nimport { MyProfileEmailFormComponent } from './my-profile/my-profile-email-form/my-profile-email-form.component';\nimport { MyProfileAvatarFormComponent } from './my-profile/my-profile-avatar-form/my-profile-avatar-form.component';\nimport { MyProfileDemographicsFormComponent } from './my-profile/my-profile-demographics-form/my-profile-demographics-form.component';\nimport { MyProfileResetPasswordComponent } from './my-profile/my-profile-reset-password/my-profile-reset-password.component';\n\nexport const portalRoute: Route = {\n path: 'portal',\n data: { id: 'portal', label: 'Portal', icon: 'grid' },\n children: [\n {\n path: 'roles',\n data: { id: 'portal-roles', label: 'Roles', icon: 'shield', navLinkTo: '/portal/roles/management', breadcrumbLabel: 'Roles', breadcrumbPath: '/portal/roles/management' },\n children: [\n {\n path: 'management', component: RoleListComponent,\n data: { id: 'portal-roles-list', label: 'Manage', icon: 'person-lines-fill', pageTitle: 'Role Management', hasSideDrawer: true, sideDrawerTitle: 'Navigate', hasOverDrawer: false, permissions: [PortalPermissions.Roles.View, PortalPermissions.Roles.Create, PortalPermissions.Roles.Update, PortalPermissions.Roles.Delete] },\n children: []\n },\n {\n path: ':id',\n data: { id: 'portal-roles-id', breadcrumbLabel: 'Detail', breadcrumbPathSuffix: '/profile' },\n children: [\n { path: 'profile', component: RoleDetailComponent, data: { id: 'portal-roles-detail', icon: 'gear', pageTitle: 'Role Management', hasSideDrawer: true, sideDrawerTitle: 'Role', hasOverDrawer: false, permissions: [PortalPermissions.Roles.Update] } },\n { path: 'permissions', component: RolePermissionsComponent, data: { id: 'portal-roles-permissions', icon: 'shield-lock', pageTitle: 'Role Management', hasSideDrawer: true, sideDrawerTitle: 'Role', hasOverDrawer: false, permissions: [PortalPermissions.RolePermissions.View], breadcrumbLabel: 'Permissions' } },\n { path: 'edit', component: RoleEditComponent, data: { id: 'portal-roles-edit', icon: 'pencil', pageTitle: 'Role Management', hasSideDrawer: true, sideDrawerTitle: 'Role', hasOverDrawer: false, permissions: [PortalPermissions.Roles.Update], breadcrumbLabel: 'Edit' } },\n { path: 'membership', component: RoleMembershipComponent, data: { id: 'portal-roles-membership', icon: 'people', pageTitle: 'Role Management', hasSideDrawer: true, sideDrawerTitle: 'Role', hasOverDrawer: false, permissions: [PortalPermissions.RoleMembership.View], breadcrumbLabel: 'Membership' } },\n ]\n }\n ]\n },\n {\n path: 'users',\n data: { id: 'portal-users', label: 'Users', icon: 'people', navLinkTo: '/portal/users/management', breadcrumbLabel: 'Users', breadcrumbPath: '/portal/users/management' },\n children: [\n {\n path: 'management', component: UserListComponent,\n data: { id: 'portal-users-list', label: 'Manage', icon: 'person-lines-fill', pageTitle: 'User Management', hasSideDrawer: true, sideDrawerTitle: 'Navigate', hasOverDrawer: false, permissions: [PortalPermissions.Users.View] },\n children: []\n },\n {\n path: ':id',\n data: { id: 'portal-users-id', breadcrumbLabel: 'Detail', breadcrumbPathSuffix: '/detail' },\n children: [\n { path: 'detail', component: UserDetailComponent, data: { id: 'portal-users-detail', label: 'Detail', icon: 'person', pageTitle: 'User Management', hasSideDrawer: true, sideDrawerTitle: 'User', hasOverDrawer: false, permissions: [PortalPermissions.Users.View] } },\n { path: 'profile-edit', component: UserProfileFormEditComponent, data: { id: 'portal-users-profile-edit', label: 'Edit Profile', icon: 'pencil-square', pageTitle: 'User Management', hasSideDrawer: true, sideDrawerTitle: 'User', hasOverDrawer: false, permissions: [PortalPermissions.Users.Update], breadcrumbLabel: 'Edit Profile' } },\n { path: 'membership', component: UserRoleMembershipComponent, data: { id: 'portal-users-membership', label: 'Role Membership', icon: 'people', pageTitle: 'User Management', hasSideDrawer: true, sideDrawerTitle: 'User', hasOverDrawer: false, permissions: [PortalPermissions.Users.View], breadcrumbLabel: 'Role Membership' } },\n { path: 'login-audits', component: UserLoginAuditsComponent, data: { id: 'portal-users-login-audits', label: 'Login Audits', icon: 'clock-history', pageTitle: 'User Management', hasSideDrawer: true, sideDrawerTitle: 'User', hasOverDrawer: false, permissions: [PortalPermissions.Users.View], breadcrumbLabel: 'Login Audits' } },\n { path: 'error-log', component: UserErrorLogComponent, data: { id: 'portal-users-error-log', label: 'Error Log', icon: 'exclamation-triangle', pageTitle: 'User Management', hasSideDrawer: true, sideDrawerTitle: 'User', hasOverDrawer: false, permissions: [PortalPermissions.Users.View], breadcrumbLabel: 'Error Log' } },\n ]\n }\n ]\n },\n {\n path: 'auth-policies',\n data: { id: 'portal-auth-policies', label: 'Auth Policies', icon: 'key', navLinkTo: '/portal/auth-policies/list' },\n children: [\n { path: 'list', component: AuthPolicyListComponent, data: { id: 'portal-auth-policies-list', label: 'Manage', icon: 'key', pageTitle: 'Auth Policy Management', hasSideDrawer: true, sideDrawerTitle: 'Navigate', hasOverDrawer: false, permissions: [PortalPermissions.Roles.Update] } }\n ]\n },\n {\n path: 'error-entries',\n data: { id: 'portal-error-entries', label: 'Error Log', icon: 'exclamation-triangle', navLinkTo: '/portal/error-entries/list', permissions: ['admin-only'] },\n children: [\n { path: 'list', component: ErrorEntryListComponent, data: { id: 'portal-error-entries-list', label: 'Manage', icon: 'exclamation-triangle', pageTitle: 'Error Log', hasSideDrawer: true, sideDrawerTitle: 'Navigate', hasOverDrawer: false, permissions: ['admin-only'] } }\n ]\n },\n {\n path: 'audit-log',\n data: { id: 'portal-audit-log', label: 'Audit Log', icon: 'journal-text', navLinkTo: '/portal/audit-log/list', permissions: ['admin-only'] },\n children: [\n { path: 'list', component: AuditLogListComponent, data: { id: 'portal-audit-log-list', label: 'View', icon: 'journal-text', pageTitle: 'Audit Log', hasSideDrawer: true, sideDrawerTitle: 'Navigate', hasOverDrawer: false, permissions: ['admin-only'] } }\n ]\n },\n {\n path: 'login-audits',\n data: { id: 'portal-login-audits', label: 'Login Audits', icon: 'clock-history', navLinkTo: '/portal/login-audits/list', permissions: ['admin-only'] },\n children: [\n { path: 'list', component: LoginAuditListComponent, data: { id: 'portal-login-audits-list', label: 'View', icon: 'clock-history', pageTitle: 'Login Audits', hasSideDrawer: true, sideDrawerTitle: 'Navigate', hasOverDrawer: false, permissions: ['admin-only'] } }\n ]\n },{\n path: 'settings',\n data: { id: 'portal-settings', label: 'Settings', icon: 'gear' },\n children: [\n {\n path: 'enterprise', component: EnterpriseEditFormComponent,\n data: { id: 'portal-settings-enterprise', label: 'Enterprise', icon: 'building', pageTitle: 'Enterprise Settings', hasSideDrawer: true, sideDrawerTitle: 'Navigate', hasOverDrawer: false, breadcrumbLabel: 'Enterprise', permissions: [PortalPermissions.Enterprise.Update] },\n },\n {\n path: 'portals',\n data: { id: 'portal-settings-portals', label: 'Portals', icon: 'layout-sidebar', breadcrumbLabel: 'Portals', breadcrumbPath: '/portal/settings/portals', navLinkTo: '/portal/settings/portals' },\n children: [\n { path: '', component: PortalListComponent, data: { id: 'portal-settings-portals-list', pageTitle: 'Portal Management', hasSideDrawer: true, sideDrawerTitle: 'Navigate', hasOverDrawer: false, permissions: [PortalPermissions.Portal.View] } },\n {\n path: ':id', data: { id: 'portal-settings-portals-id' },\n children: [\n { path: 'edit', component: PortalEditFormComponent, data: { id: 'portal-settings-portals-edit', pageTitle: 'Edit Portal', hasSideDrawer: true, sideDrawerTitle: 'Navigate', hasOverDrawer: false, breadcrumbLabel: 'Edit Portal', permissions: [PortalPermissions.Portal.Update] } },\n ],\n },\n ],\n },\n ],\n }\n ]\n};\n\nexport const myProfileRoute: Route = {\n path: 'my-profile',\n data: { id: 'my-profile', hideFromNav: true, permissions: [] },\n children: [\n { path: '', redirectTo: 'overview', pathMatch: 'full' },\n { path: 'overview', component: MyProfileOverviewComponent, data: { id: 'my-profile-overview', label: 'Overview', icon: 'person-badge', pageTitle: 'My Profile', hasSideDrawer: true, sideDrawerTitle: 'My Account', hasOverDrawer: false, permissions: [] } },\n { path: 'edit-profile', component: MyProfileDemographicsFormComponent, data: { id: 'my-profile-edit', label: 'Edit Profile', icon: 'pencil-square', pageTitle: 'My Profile', hasSideDrawer: true, sideDrawerTitle: 'My Account', hasOverDrawer: false, permissions: [] } },\n { path: 'reset-password', component: MyProfileResetPasswordComponent, data: { id: 'my-profile-reset-password', label: 'Reset Password', icon: 'key', pageTitle: 'My Profile', hasSideDrawer: true, sideDrawerTitle: 'My Account', hasOverDrawer: false, permissions: [] } },\n { path: 'edit-email', component: MyProfileEmailFormComponent, data: { id: 'my-profile-email', label: 'Change Email', icon: 'envelope', pageTitle: 'My Profile', hasSideDrawer: true, sideDrawerTitle: 'My Account', hasOverDrawer: false, permissions: [] } },\n { path: 'edit-avatar', component: MyProfileAvatarFormComponent, data: { id: 'my-profile-avatar', label: 'Change Avatar', icon: 'image', pageTitle: 'My Profile', hasSideDrawer: true, sideDrawerTitle: 'My Account', hasOverDrawer: false, permissions: [] } },\n ],\n};\n\nexport const authRoute: Route = {\n path: 'auth',\n component: AuthLayoutComponent,\n children: [\n { path: '', redirectTo: 'login', pathMatch: 'full' },\n { path: 'login', component: LoginEmailComponent },\n { path: 'access-denied', component: AccessDeniedComponent },\n { path: 'password', component: LoginPasswordComponent },\n { path: 'forgot-password', component: ForgotPasswordComponent },\n { path: 'reset-password', component: ResetPasswordComponent },\n { path: 'verify-pending', component: VerifyPendingComponent },\n { path: 'verify', component: VerifyEmailComponent },\n { path: 'setup-password', component: SetPasswordComponent },\n ],\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_forTrack0","_c0","passwordsMatch","_forTrack1"],"mappings":"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"}