verben-authentication-ui 0.8.2 → 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"verben-authentication-ui.mjs","sources":["../../../projects/verben-authentication-ui/src/lib/models/ErrorResponse.ts","../../../projects/verben-authentication-ui/src/lib/services/environment.service.ts","../../../projects/verben-authentication-ui/src/lib/services/http-web-request.service.ts","../../../projects/verben-authentication-ui/src/lib/services/util.service.ts","../../../projects/verben-authentication-ui/src/lib/components/reset-password/reset-password.component.ts","../../../projects/verben-authentication-ui/src/lib/components/reset-password/reset-password.component.html","../../../projects/verben-authentication-ui/src/lib/components/reset-password/reset-password.module.ts","../../../projects/verben-authentication-ui/src/lib/models/object-state.ts","../../../projects/verben-authentication-ui/src/lib/models/status.ts","../../../projects/verben-authentication-ui/src/lib/models/request-status.ts","../../../projects/verben-authentication-ui/src/lib/models/auth-mechanism.ts","../../../projects/verben-authentication-ui/src/lib/components/o-auth/o-auth.component.ts","../../../projects/verben-authentication-ui/src/lib/components/o-auth/o-auth.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-request/user-request.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request/user-request.component.html","../../../projects/verben-authentication-ui/src/lib/components/o-auth/o-auth.module.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request/user-request.module.ts","../../../projects/verben-authentication-ui/src/lib/components/mail-validation/mail-validation.component.ts","../../../projects/verben-authentication-ui/src/lib/components/mail-validation/mail-validation.component.html","../../../projects/verben-authentication-ui/src/lib/components/mail-validation/mail-validation.module.ts","../../../projects/verben-authentication-ui/src/lib/components/button/button.component.ts","../../../projects/verben-authentication-ui/src/lib/components/button/button.component.html","../../../projects/verben-authentication-ui/src/lib/components/sign-up/sign-up.component.ts","../../../projects/verben-authentication-ui/src/lib/components/sign-up/sign-up.component.html","../../../projects/verben-authentication-ui/src/lib/components/button/button.module.ts","../../../projects/verben-authentication-ui/src/lib/components/sign-up/sign-up.module.ts","../../../projects/verben-authentication-ui/src/lib/components/sign-in/sign-in.component.ts","../../../projects/verben-authentication-ui/src/lib/components/sign-in/sign-in.component.html","../../../projects/verben-authentication-ui/src/lib/components/sign-in/sign-in.module.ts","../../../projects/verben-authentication-ui/src/lib/components/otp-input/otp-input.component.ts","../../../projects/verben-authentication-ui/src/lib/components/otp-input/otp-input.component.html","../../../projects/verben-authentication-ui/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.ts","../../../projects/verben-authentication-ui/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.html","../../../projects/verben-authentication-ui/src/lib/components/otp-input/otp-input.module.ts","../../../projects/verben-authentication-ui/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.module.ts","../../../projects/verben-authentication-ui/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.ts","../../../projects/verben-authentication-ui/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.html","../../../projects/verben-authentication-ui/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.module.ts","../../../projects/verben-authentication-ui/src/lib/components/mail/mail.component.ts","../../../projects/verben-authentication-ui/src/lib/components/mail/mail.component.html","../../../projects/verben-authentication-ui/src/lib/components/mail/mail.module.ts","../../../projects/verben-authentication-ui/src/lib/components/forgot-password/forgot-password.component.ts","../../../projects/verben-authentication-ui/src/lib/components/forgot-password/forgot-password.component.html","../../../projects/verben-authentication-ui/src/lib/components/forgot-password/forgot-password.module.ts","../../../projects/verben-authentication-ui/src/lib/components/sso/sso.columns.ts","../../../projects/verben-authentication-ui/src/lib/components/sso/helper.ts","../../../projects/verben-authentication-ui/src/lib/components/sso/base-table-style.ts","../../../projects/verben-authentication-ui/src/lib/components/sso/sso-form/sso-form.component.ts","../../../projects/verben-authentication-ui/src/lib/components/sso/sso-form/sso-form.component.html","../../../projects/verben-authentication-ui/src/lib/components/sso/sso.component.ts","../../../projects/verben-authentication-ui/src/lib/components/sso/sso.component.html","../../../projects/verben-authentication-ui/src/lib/components/sso/sso.module.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/access-request.columns.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/base-table-style.ts","../../../projects/verben-authentication-ui/src/lib/models/SearchOperator.ts","../../../projects/verben-authentication-ui/src/lib/models/SearchPropertySign.ts","../../../projects/verben-authentication-ui/src/lib/models/OAuthType.ts","../../../projects/verben-authentication-ui/src/lib/models/user-access-request-status.ts","../../../projects/verben-authentication-ui/src/lib/models/SearchPropertyValueType.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/helper.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/services/user-access-request.service.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/states/user-access-request.state.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/facades/user-access-request.facade.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/user-request-form/use-request-form.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/user-request-form/user-request-form.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/user-request-approval.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/user-request-approval.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/user-request-approval.service.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/user-request-approval.module.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.columns.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/base-table-style.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management-form/use-management-form.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management-form/user-management-form.component.html","../../../projects/verben-authentication-ui/src/lib/models/conditions.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/services/user-management.service.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.module.ts","../../../projects/verben-authentication-ui/src/lib/components/auth-callback/auth-callback.component.ts","../../../projects/verben-authentication-ui/src/lib/components/auth-callback/auth-callback.component.html","../../../projects/verben-authentication-ui/src/lib/components/auth-callback/auth-callback.module.ts","../../../projects/verben-authentication-ui/src/lib/services/authorization.service.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/base-table-style.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/UIs.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/UIActions.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/ChildrenType.ts","../../../projects/verben-authentication-ui/src/lib/models/SortDirection.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/role-control.service.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/role-control.component.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/role-control.component.html","../../../projects/verben-authentication-ui/src/lib/shared/shared.module.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/role-control.module.ts","../../../projects/verben-authentication-ui/src/public-api.ts","../../../projects/verben-authentication-ui/src/verben-authentication-ui.ts"],"sourcesContent":["export class ErrorResponse {\n constructor(\n public ErrorMsg: string,\n public StatusCode?: number,\n public FullLog?: any\n ) {}\n}\n","// In your library's services/environment.service.ts\nimport { Injectable, InjectionToken, Inject } from '@angular/core';\n// import { ENVIRONMENT } from '../models/ENVIRONMENT_TOKEN';\n\nexport const ENVIRONMENT = new InjectionToken<Environment>('environment');\n\nexport interface Environment {\n production: boolean;\n AuthenticationAPI: string;\n Tenant: string;\n APIKey: string;\n Secret: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EnvironmentService {\n constructor(@Inject(ENVIRONMENT) private env: Environment) {}\n\n get environment(): Environment {\n return this.env;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ErrorResponse } from '../models/ErrorResponse';\nimport { EnvironmentService } from './environment.service';\nimport { NotificationService } from 'verben-ng-ui';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HttpWebRequestService {\n isProd: boolean;\n\n constructor(\n private http: HttpClient,\n private envSvc: EnvironmentService,\n private notificationService: NotificationService\n ) {\n this.isProd = this.envSvc.environment.production;\n }\n\n private buildHeaders() {\n return {\n 'Content-Type': 'application/json',\n Authorization:\n 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJNYWlsQWRkcmVzcyI6InZlcmJlbmFAZ21haWwuY29tIiwiQXBwbGljYXRpb24iOiIiLCJOYW1lIjoiVmVyYmVuYSBMb2dpYyBMaW1pdGVkIiwiUm9sZUlEIjoiUk9MLVpYQVhYVCIsIlRlbmFudElkIjoiUERMVEM2IiwiU2VydmljZU5hbWUiOiJXaGl0ZTM2MCIsIm5iZiI6MTczNjUxMjUwNSwiZXhwIjoxNzM2NzI4NTA1LCJpYXQiOjE3MzY1MTI1MDV9.D8BEM7t9c_dxuPVDqx-IG5SLpMWEiexQ1VeubefvF5s',\n };\n }\n\n private buildUrl(url: string, baseUrl: string): string {\n return `${baseUrl}/${url}`;\n }\n\n private handleError(err: any): ErrorResponse {\n const msg =\n err?.ErrorMsg ||\n (err?.errors?.values as string[])?.toString() ||\n `Error occurred`;\n this.notificationService.error(msg, { timeout: 10000 });\n return new ErrorResponse(msg);\n }\n\n private request<T>(\n method: 'GET' | 'POST' | 'PUT' | 'DELETE',\n url: string,\n body?: any,\n baseUrl: string = this.envSvc.environment.AuthenticationAPI\n ): Promise<T> | Observable<T> {\n const options = {\n headers: this.buildHeaders(),\n };\n\n const requestUrl = this.buildUrl(url, baseUrl);\n\n switch (method) {\n case 'GET':\n return new Promise((resolve) =>\n this.http.get<T>(requestUrl, options).subscribe({\n next: resolve,\n error: (err) => resolve(this.handleError(err) as T),\n })\n );\n case 'POST':\n return new Promise((resolve) =>\n this.http.post<T>(requestUrl, body, options).subscribe({\n next: resolve,\n error: (err) => resolve(this.handleError(err) as T),\n })\n );\n case 'PUT':\n return this.http.put<T>(requestUrl, body, options);\n case 'DELETE':\n return this.http.delete<T>(requestUrl, options);\n }\n }\n\n get<T>(url: string, baseUrl?: string): Promise<T> {\n return this.request('GET', url, undefined, baseUrl) as Promise<T>;\n }\n\n post<T>(url: string, body: any, baseUrl?: string): Promise<T> {\n return this.request(\n 'POST',\n url,\n JSON.stringify(body),\n baseUrl\n ) as Promise<T>;\n }\n\n postFile<T>(url: string, formData: FormData, baseUrl?: string): Promise<T> {\n return new Promise((resolve) =>\n this.http\n .post<T>(\n this.buildUrl(\n url,\n baseUrl || this.envSvc.environment.AuthenticationAPI\n ),\n formData\n )\n .subscribe({\n next: resolve,\n error: (err) => resolve(this.handleError(err) as T),\n })\n );\n }\n\n put<T>(url: string, body: any, baseUrl?: string): Observable<T> {\n return this.request('PUT', url, body, baseUrl) as Observable<T>;\n }\n\n delete<T>(url: string, baseUrl?: string): Observable<T> {\n return this.request('DELETE', url, undefined, baseUrl) as Observable<T>;\n }\n}\n","import {\n Inject,\n Injectable,\n InjectionToken,\n Optional,\n SkipSelf,\n} from '@angular/core';\nimport { UTIL_SERVICE } from 'verben-ng-ui';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UtilService {\n constructor(\n @Optional()\n @Inject(UTIL_SERVICE)\n private parentUtilService: any\n ) {}\n\n sendBI(state: boolean): void {\n if (this.parentUtilService && this.parentUtilService.sendBI) {\n this.parentUtilService.sendBI(state);\n } else {\n console.warn('Util Service is not provided');\n }\n }\n\n showInfo(message: string): void {\n if (this.parentUtilService && this.parentUtilService.showInfo) {\n this.parentUtilService.showInfo(message);\n } else {\n console.warn('Util Service is not provided');\n }\n }\n showSuccess(message: string): void {\n if (this.parentUtilService && this.parentUtilService.showSuccess) {\n this.parentUtilService.showSuccess(message);\n } else {\n console.warn('Util Service is not provided');\n }\n }\n showError(message: string): void {\n if (this.parentUtilService && this.parentUtilService.showError) {\n this.parentUtilService.showError(message);\n } else {\n console.warn('Util Service is not provided');\n }\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport { ResetPasswordData } from './ResetPasswordData';\nimport { HttpWebRequestService } from '../../services/http-web-request.service';\nimport { ErrorResponse } from '../../models/ErrorResponse';\nimport { ResponseKeyValue } from '../../models/ResponseKeyValue';\nimport { PasswordRequestParam } from '../../models/PasswordRequestParam';\nimport { UtilService } from '../../services/util.service';\n\n@Component({\n selector: 'verben-reset-password',\n templateUrl: './reset-password.component.html',\n styleUrl: './reset-password.component.css',\n})\n\nexport class ResetPasswordComponent {\n @Input() title: string = 'Reset Password';\n @Input() subTitle: string = 'Create a New Password';\n @Input() buttonCaption: string = 'Submit';\n @Input() buttonTextColor?: string;\n @Input() buttonBackgroundColor?: string;\n @Input() showOldPassword: boolean = false;\n @Input() token?: string;\n\n @Output() onSubmit: EventEmitter<ResetPasswordData> = new EventEmitter();\n @Output() onSubmitEnd: EventEmitter<ResponseKeyValue | ErrorResponse> =\n new EventEmitter();\n\n resetPasswordForm: FormGroup;\n\n constructor(\n private fb: FormBuilder,\n private server: HttpWebRequestService,\n private utilService: UtilService\n ) {\n this.resetPasswordForm = this.fb.group({\n OldPassword: new FormControl<string | null>(\n null,\n this.oldPasswordValidator.bind(this)\n ),\n Password: new FormControl<string | null>(null, Validators.required),\n ConfirmPassword: new FormControl<string | null>(null, [\n Validators.required,\n this.confirmPasswordValidator.bind(this),\n ]),\n });\n }\n\n checkForm(): boolean {\n return this.resetPasswordForm.valid;\n }\n\n oldPasswordValidator(control: AbstractControl): ValidationErrors | null {\n if (this.showOldPassword && control.value == null) {\n return { customValidation: true };\n }\n return null;\n }\n confirmPasswordValidator(control: AbstractControl): ValidationErrors | null {\n if (\n this.resetPasswordForm &&\n this.resetPasswordForm.controls['Password'] &&\n this.resetPasswordForm.controls['Password'].value !== control.value\n ) {\n return { customValidation: true };\n }\n return null;\n }\n\n async submit() {\n if (!this.checkForm()) {\n return;\n }\n var data: ResetPasswordData = {\n OldPassword: this.showOldPassword\n ? this.resetPasswordForm.controls['OldPassword'].value\n : undefined,\n Password: this.resetPasswordForm.controls['Password'].value,\n ConfirmPassword: this.resetPasswordForm.controls['ConfirmPassword'].value,\n };\n this.onSubmit.emit(data);\n var passwordRequest: PasswordRequestParam = {\n NewPassword: data.Password,\n OldPassword: data.OldPassword,\n Token: this.token,\n };\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `User/CompleteChangePasswordRequest`,\n passwordRequest\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.onSubmitEnd.emit(res);\n } else {\n var result = res as ResponseKeyValue;\n this.onSubmitEnd.emit(result);\n }\n }\n}\n\n","<div [formGroup]=\"this.resetPasswordForm\" class=\"reset-password-container flex flex-col\">\n <div class=\"reset-password-header flex flex-col\">\n <div class=\"reset-password-title\">{{title}}</div>\n <div class=\"reset-password-subtitle\">{{subTitle}}</div>\n </div>\n <div *ngIf=\"showOldPassword\" class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Old Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"OldPassword\" [passwordToggle]=\"true\"\n type=\"password\"></verbena-input>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">New Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"Password\" [passwordToggle]=\"true\"\n type=\"password\"></verbena-input>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Confirm Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"ConfirmPassword\" [passwordToggle]=\"true\"\n type=\"password\"></verbena-input>\n </div>\n <verbena-button fontWeight=\"700\" (click)=\"submit()\" [text]=\"buttonCaption\" width=\"100%\" [textColor]=\"buttonTextColor\"\n [bgColor]=\"buttonBackgroundColor\" borderRadius=\"25px\" [disable]=\"!this.checkForm()\"></verbena-button>\n\n</div>","import { NgModule } from '@angular/core';\nimport { ResetPasswordComponent } from './reset-password.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [ResetPasswordComponent],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n CommonModule,\n ],\n exports: [ResetPasswordComponent],\n})\nexport class ResetPasswordModule {}\n","export enum ObjectState {\n New = 'New',\n Changed = 'Changed',\n Unchanged = 'Unchanged',\n Removed = 'Removed',\n}\n","export enum Status {\n InActive = \"InActive\",\n Active = \"Active\",\n }\n ","export enum RequestStatus {\n Pending='Pending'\n }\n ","export enum MechanismType {\n InApp = 'InApp',\n Google = 'Google',\n Apple = 'Apple',\n MicrosoftAD = 'MicrosoftAD',\n}\n\nexport interface AuthMechanism {\n AuthMechanism: string;\n ClientId: string;\n ClientSecret: string;\n RedirectUri: string;\n Scope: string;\n TenantId?:string\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { AuthMechanism, MechanismType } from '../../models/auth-mechanism';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { HttpWebRequestService } from '../../services/http-web-request.service';\nimport { UtilService } from '../../services/util.service';\n\ndeclare global {\n interface Window {\n google: any;\n }\n}\n\n@Component({\n selector: 'verben-o-auth',\n templateUrl: './o-auth.component.html',\n styleUrl: './o-auth.component.css',\n})\nexport class OAuthComponent implements OnInit {\n showGoogle: boolean = false;\n showMicrosoft: boolean = false;\n showApple: boolean = false;\n @Input() authMechanisms: AuthMechanism[] | null = null;\n @Output() emitMechanismFn = new EventEmitter<string>();\n page: string = '';\n type: string = '';\n\n constructor(private router: Router) {}\n\n ngOnInit(): void {\n this.loadPage();\n this.loadGoogleScript();\n if (this.authMechanisms !== null) {\n this.authMechanisms = this.authMechanisms.filter(\n (item) => item.AuthMechanism !== MechanismType.InApp\n );\n }\n }\n\n loadPage() {\n this.page = this.router.url;\n }\n\n loadGoogleScript(): void {\n if (!document.getElementById('google-jssdk')) {\n const script = document.createElement('script');\n script.src = 'https://accounts.google.com/gsi/client';\n script.id = 'google-jssdk';\n script.async = true;\n script.defer = true;\n script.onload = () => console.log('Google SDK loaded');\n script.onerror = () => console.log('Error loading Google SDK');\n document.head.appendChild(script);\n }\n }\n\n oAuthWithGoogle(data: AuthMechanism) {\n this.type = data.AuthMechanism;\n localStorage.setItem('type', JSON.stringify(this.type));\n const redirectUri = encodeURIComponent(data.RedirectUri);\n const scope = encodeURIComponent('openid email profile');\n const responseType = 'code';\n const state = encodeURIComponent(JSON.stringify({ returnTo: this.page }));\n const authUrl = `https://accounts.google.com/o/oauth2/v2/auth?client_id=${data.ClientId}&redirect_uri=${redirectUri}&response_type=${responseType}&scope=${scope}&state=${state}`;\n window.location.href = authUrl;\n }\n\n oAuthWithApple() {}\n\n oAuthWithMicrosoft(data: AuthMechanism) {\n this.type = data.AuthMechanism;\n const cleanUrl = window.location.href.split('?')[0];\n window.history.replaceState({}, document.title, cleanUrl); // Update the URL without reloading\n localStorage.setItem('type', JSON.stringify(this.type));\n const redirectUri = encodeURIComponent(data.RedirectUri);\n const scope = encodeURIComponent('openid email profile');\n const responseType = 'code';\n const state = encodeURIComponent(JSON.stringify({ returnTo: this.page }));\n // const authUrl = `https://login.microsoftonline.com/${data.TenantId}/oauth2/v2.0/authorize?client_id=${data.ClientId}&response_type=${responseType}&redirect_uri=${redirectUri}&response_mode=query&state=${state}`;\n const authUrl = `https://login.microsoftonline.com/common/oauth2/v2.0/authorize\n?client_id=${data.ClientId}\n&response_type=${responseType}\n&redirect_uri=${redirectUri}&scope=${scope}\n&response_mode=query&state=${state}`;\n window.location.href = authUrl;\n }\n\n checkForValue(value: string) {\n switch (value) {\n case MechanismType.Google:\n return 'google-logo';\n case MechanismType.Apple:\n return 'apple-logo';\n case MechanismType.MicrosoftAD:\n return 'microsoft-logo';\n default:\n return '';\n }\n }\n\n handleOauthClick(value: AuthMechanism) {\n switch (value.AuthMechanism) {\n case MechanismType.Google:\n return this.oAuthWithGoogle(value);\n break;\n case MechanismType.Apple:\n return this.oAuthWithApple();\n break;\n case MechanismType.MicrosoftAD:\n return this.oAuthWithMicrosoft(value);\n break;\n default:\n return '';\n }\n }\n}\n","<section class=\"oauthWrapper\"> \n <div class=\"OrFlexWrapper\">\n <hr/>\n <span>OR</span>\n <hr/>\n </div>\n <div class=\"btnWrapper\">\n <div *ngFor=\"let btn of authMechanisms, let i = index\"> \n <verbena-button\n [svg]=\"checkForValue(btn.AuthMechanism)\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n [text]=\"'Continue with ' + btn.AuthMechanism\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n (click)=\"handleOauthClick(btn)\"\n ></verbena-button>\n </div> \n </div> \n</section>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport { HttpWebRequestService } from '../../services/http-web-request.service';\nimport { UserRequestPayload } from '../../models/UserRequest';\nimport { ObjectState } from '../../models/object-state';\nimport { UtilService } from '../../services/util.service';\nimport { ResponseKeyValue } from '../../models/ResponseKeyValue';\nimport { ErrorResponse } from '../../models/ErrorResponse';\nimport { Status } from '../../models/status';\nimport { RequestStatus } from '../../models/request-status';\nimport { EnvironmentService } from '../../services/environment.service';\nimport { AuthMechanism, MechanismType } from '../../models/auth-mechanism';\nimport { ActivatedRoute } from '@angular/router';\nimport { OAuthResponse } from '../../models/oauth-response';\nimport { Role } from '../../models/Role';\n\n@Component({\n selector: 'lib-user-request',\n templateUrl: './user-request.component.html',\n styleUrls: ['./user-request.component.css'],\n})\nexport class UserRequestComponent {\n @Input() width: string = '500px';\n @Input() headingTitle: string = 'Request an account';\n @Input() headingClass: string =\n 'font-medium text-[2rem] leading-[48px] text-[#333]';\n @Input() customClass: string = '';\n @Input() bgColor: string = '#fff';\n @Input() boxShadow: string = '4px 4px 4px rgba(0, 0, 0, 0.25)';\n @Input() border: string = '1px solid #66666680';\n @Input() borderRadius: string = '24px';\n @Input() textColor: string = '#333';\n @Input() height: string = 'auto';\n @Input() pd: string = '32px 48px';\n isFormEditable: boolean = true;\n tenant: string;\n secret: string;\n hidePassword: boolean = false;\n isCode: boolean = false;\n @Input() text: string = 'Send Request';\n @Input() color: string = 'black';\n @Input() btnBorder: string = '1px solid #FFE681';\n @Input() btnBorderRadius: string = '40px';\n @Input() btnBgColor: string = '#FFE681';\n @Input() btnWidth: string = '100%';\n @Input() btnPd: string = '10px 20px';\n @Input() termsLink: string = '';\n @Input() privacyLink: string = '';\n @Input() routerLink: string = '';\n @Output() formSubmit = new EventEmitter<UserRequestPayload[]>();\n @Output() googleClick = new EventEmitter();\n @Output() onSubmitSuccess = new EventEmitter<any>();\n @Output() appleClick = new EventEmitter();\n @Output() microsoftClick = new EventEmitter();\n @Output() onSubmitGoogleAuth: EventEmitter<ResponseKeyValue | ErrorResponse> =\n new EventEmitter();\n @Output() onSubmitResponseEnd: EventEmitter<any> = new EventEmitter();\n userRequestForm: FormGroup;\n tenantDetails: any | null = null;\n AuthMechanisms: AuthMechanism[] | null = null;\n showform: boolean = false;\n code: string = '';\n type: string = '';\n constructor(\n private fb: FormBuilder,\n private server: HttpWebRequestService,\n private utilService: UtilService,\n private envSvc: EnvironmentService,\n private route: ActivatedRoute\n ) {\n this.tenant = this.envSvc.environment.Tenant;\n this.secret = this.envSvc.environment.Secret;\n this.userRequestForm = this.fb.group<{\n [K in keyof UserRequestPayload]: FormControl<UserRequestPayload[K]>;\n }>(\n {\n Code: new FormControl('', { nonNullable: true }),\n FirstName: new FormControl('', {\n nonNullable: true,\n validators: [Validators.required],\n }),\n LastName: new FormControl('', {\n nonNullable: true,\n validators: [Validators.required],\n }),\n MailAddress: new FormControl('', {\n nonNullable: true,\n validators: [Validators.required, Validators.email],\n }),\n Password: new FormControl('', {\n nonNullable: true,\n validators: [Validators.required, Validators.minLength(8)],\n }),\n PhoneNumber: new FormControl('', { nonNullable: true }),\n OtherName: new FormControl('', { nonNullable: true }),\n Role: new FormControl<Role>(\n {\n Name: '',\n Description: '',\n Application: '',\n RoleContexts: [],\n APIKey: '',\n Id: '',\n id: '',\n ServiceName: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n },\n { nonNullable: true }\n ),\n Tags: new FormControl<[]>([], { nonNullable: true }),\n Status: new FormControl<Status>(Status.Active, { nonNullable: true }),\n RequestStatus: new FormControl<RequestStatus>(RequestStatus.Pending, {\n nonNullable: true,\n }),\n UpdatedAt: new FormControl(new Date(), { nonNullable: true }),\n CreatedAt: new FormControl(new Date(), { nonNullable: true }),\n Id: new FormControl('', { nonNullable: true }),\n DataState: new FormControl<ObjectState>(ObjectState.New, {\n nonNullable: true,\n }),\n TenantId: new FormControl('', { nonNullable: true }),\n Token: new FormControl('', { nonNullable: true }),\n SignUpType: new FormControl(MechanismType.InApp, { nonNullable: true }),\n ServiceName: new FormControl('', { nonNullable: true }),\n ActionBy: new FormControl('', { nonNullable: true }),\n Comment: new FormControl('', { nonNullable: true }),\n },\n { validators: this.passwordMatchValidator }\n );\n }\n passwordMatchValidator(control: AbstractControl): ValidationErrors | null {\n const password = control.get('Password')?.value;\n const confirmPassword = control.get('ConfirmPassword')?.value;\n\n return password === confirmPassword ? null : { passwordMismatch: true };\n }\n\n get passwordMismatchError(): boolean {\n return this.userRequestForm.hasError('passwordMismatch');\n }\n\n get styles() {\n return {\n 'background-color': this.bgColor,\n 'box-shadow': this.boxShadow,\n border: this.border,\n 'border-radius': this.borderRadius,\n color: this.textColor,\n 'max-width': this.width,\n height: this.height,\n padding: this.pd,\n };\n }\n async ngOnInit() {\n await this.getTenantConfig();\n this.route.queryParams.subscribe((params) => {\n this.code = params['code'];\n this.type = params['type'];\n if (this.code) {\n this.verifyUserDetails();\n }\n });\n }\n\n async getTenantConfig() {\n this.userRequestForm.addControl(\n 'ConfirmPassword',\n new FormControl('', Validators.required)\n );\n const res = await this.server.get(\n `Tenant/GetTenantConfigByKey/${this.tenant}`\n );\n this.tenantDetails = res;\n this.AuthMechanisms = this.tenantDetails?.AuthMechanisms;\n if (\n !this.tenantDetails?.AuthMechanism &&\n this.tenantDetails?.AuthMechanism !== MechanismType.InApp\n ) {\n this.showform = false;\n } else if (this.tenantDetails?.AuthMechanism === MechanismType.InApp) {\n this.showform = true;\n } else if (this.AuthMechanisms !== null) {\n this.showform = this.AuthMechanisms.some((item) =>\n item.AuthMechanism.includes(MechanismType.InApp)\n );\n }\n }\n checkForm(): boolean {\n return this.userRequestForm.valid;\n }\n handleGoogleAuth() {\n if (this.AuthMechanisms !== null) {\n const data = this.AuthMechanisms.filter(\n (item) => item.AuthMechanism === MechanismType.Google\n );\n this.googleClick.emit();\n }\n }\n handleAppleAuth() {\n this.appleClick.emit();\n }\n handleMicrosoft() {\n if (this.AuthMechanisms !== null) {\n const data = this.AuthMechanisms.filter(\n (item) => item.AuthMechanism === MechanismType.MicrosoftAD\n );\n this.microsoftClick.emit();\n }\n }\n\n async submitForm() {\n if (!this.checkForm()) {\n return;\n }\n\n const formValue = this.userRequestForm.getRawValue();\n const { ConfirmPassword, ...payload } = formValue;\n\n const payloadToSubmit: UserRequestPayload[] = [payload];\n\n this.formSubmit.emit(payloadToSubmit);\n this.utilService.sendBI(true);\n\n try {\n const res = await this.server.post(\n `User/SaveUserAccessRequests`,\n payloadToSubmit\n );\n\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n this.onSubmitResponseEnd.emit(res);\n } else {\n const result = res as ResponseKeyValue;\n this.onSubmitResponseEnd.emit(result);\n this.onSubmitSuccess.emit(result);\n }\n } catch (error) {\n this.utilService.sendBI(false);\n console.error('Unexpected error:', error);\n this.onSubmitResponseEnd.emit(error);\n }\n }\n async verifyUserDetails() {\n if (this.AuthMechanisms !== null && this.tenant) {\n const data: any = this.AuthMechanisms.find((item) =>\n item.AuthMechanism.includes(this.type)\n );\n const payload = {\n AuthCode: this.code,\n Tenant: this.tenant,\n AuthMechanism: data.AuthMechanism,\n };\n\n this.utilService.sendBI(true);\n const res: OAuthResponse = await this.server.post(\n `Authentication/GetUserDetails`,\n payload\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.onSubmitGoogleAuth.emit(res);\n } else {\n this.userRequestForm.controls['FirstName'].setValue(res.FirstName);\n this.userRequestForm.controls['LastName'].setValue(res.LastName);\n this.userRequestForm.controls['MailAddress'].setValue(res.Email);\n this.userRequestForm.controls['Token'].setValue(res.AccessToken);\n this.userRequestForm.controls['SignUpType'].setValue(this.type);\n this.userRequestForm.controls['Password'].clearValidators();\n this.userRequestForm.controls['Password'].updateValueAndValidity();\n this.userRequestForm.controls['ConfirmPassword'].clearValidators();\n this.userRequestForm.controls[\n 'ConfirmPassword'\n ].updateValueAndValidity();\n this.hidePassword = true;\n }\n }\n }\n}\n","<section [ngStyle]=\"styles\" class=\"{{ customClass }}\">\n <h2 class=\"{{ headingClass }}\">\n {{ headingTitle }}\n </h2>\n\n <form\n [formGroup]=\"userRequestForm\"\n (ngSubmit)=\"submitForm()\"\n class=\"flex flex-col gap-5 mt-3\"\n >\n <verbena-input\n [label]=\"'First Name'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n formControlName=\"FirstName\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <verbena-input\n [label]=\"'Last Name'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n formControlName=\"LastName\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <verbena-input\n [label]=\"'E-mail Address'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'email'\"\n formControlName=\"MailAddress\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [customErrorMessages]=\"{\n required: 'Email address is required',\n email: 'Email address must be valid'\n }\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"!hidePassword\"\n [label]=\"'Password'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [passwordToggle]=\"true\"\n formControlName=\"Password\"\n [required]=\"true\"\n [type]=\"'password'\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"!hidePassword\"\n [label]=\"'Confirm Password'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n formControlName=\"ConfirmPassword\"\n [showBorder]=\"true\"\n [passwordToggle]=\"true\"\n [bgColor]=\"'white'\"\n [minLength]=\"userRequestForm.controls['Password'].value?.length\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [customErrorMessages]=\"{\n minLength:'Confirm Password must match password',\n required: 'Confirm Password is required and must match password',\n password: 'Password does not match',\n }\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-button\n [class]=\"'mt-6'\"\n [disable]=\"!this.checkForm()\"\n [text]=\"text\"\n [bgColor]=\"btnBgColor\"\n [textColor]=\"color\"\n [buttonClass]=\"'cursor-not-allowed'\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [pd]=\"btnPd\"\n [ngClass]=\"{\n 'cursor-not-allowed':!checkForm()\n }\"\n [width]=\"btnWidth\"\n buttonClass=\"font-medium text-[22px] leading-[33px]\"\n ></verbena-button>\n </form>\n\n <div class=\"mt-2\" *ngIf=\"AuthMechanisms !== null\"> \n <verben-o-auth \n [authMechanisms]=\"AuthMechanisms\"\n ></verben-o-auth>\n </div>\n</section>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';\nimport { OAuthComponent } from './o-auth.component';\n\n@NgModule({\n declarations: [OAuthComponent],\n imports: [CommonModule,VerbenaInputModule,VerbenaButtonModule],\n exports: [OAuthComponent]\n})\nexport class OAuthModule {}","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';\nimport { CommonModule } from '@angular/common';\nimport { UserRequestComponent } from './user-request.component';\nimport { OAuthModule } from '../o-auth/o-auth.module';\n\n@NgModule({\n declarations: [UserRequestComponent],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n CommonModule,\n OAuthModule\n ],\n exports: [UserRequestComponent],\n})\nexport class UserRequestModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-mail-validation',\n templateUrl: './mail-validation.component.html',\n styleUrls: ['./mail-validation.component.css']\n})\nexport class MailValidationComponent {\n @Input() customClass: string = '';\n @Input() bgColor: string = '#fff';\n @Input() boxShadow: string = '4px 4px 4px rgba(0, 0, 0, 0.25)';\n @Input() border: string = '1px solid #66666680';\n @Input() borderRadius: string = '24px';\n @Input() textColor: string = '#666666';\n @Input() height: string = 'auto';\n @Input() pd: string = '32px 48px';\n @Input() width: string = '600px';\n @Input() text: string = 'Login';\n @Input() textAlign: string = 'center';\n @Input() color: string = 'black';\n @Input() textSize: string = '32px';\n @Input() btnBorder: string = '1px solid #FFE681';\n @Input() btnBorderRadius: string = \"40px\";\n @Input() btnBgColor: string = '#FFE681';\n @Input() btnWidth: string = '100%';\n @Input() btnPd: string = '7px 10px';\n\n @Output() resendOtp = new EventEmitter<void>();\n @Output() proceedToNextStep = new EventEmitter<'verified' | 'accessGranted'>();\n @Output() login = new EventEmitter<void>();\n\n currentStep: 'linkSent' | 'verified' | 'accessGranted' = 'linkSent';\n\n handleResendOtp() {\n this.resendOtp.emit();\n }\n\n goToNextStep() {\n switch (this.currentStep) {\n case 'linkSent':\n this.currentStep = 'verified';\n this.proceedToNextStep.emit(this.currentStep);\n break;\n case 'verified':\n this.currentStep = 'accessGranted';\n this.proceedToNextStep.emit(this.currentStep);\n break;\n }\n }\n get styles() {\n return {\n 'background-color': this.bgColor,\n 'box-shadow': this.boxShadow,\n 'border': this.border,\n 'border-radius': this.borderRadius,\n 'color': this.textColor,\n 'max-width': this.width,\n 'margin': '0 auto',\n 'height': this.height,\n 'padding': this.pd,\n };\n }\n handleLogin() {\n this.login.emit();\n }\n}\n","<section [ngStyle]=\"styles\" class=\"{{ customClass }}\">\n <div *ngIf=\"currentStep === 'linkSent'\">\n <p [style.color]=\"textColor\" [style.font-size]=\"textSize\">\n Follow the link sent to your e-mail to verify your e-mail address\n </p>\n <p class=\"mt-4\" (click)=\"handleResendOtp()\">\n Didn't get a link? <a href=\"#\" class=\"underline resend\">Resend</a>\n </p>\n </div>\n\n <div *ngIf=\"currentStep === 'verified'\">\n <p [style.color]=\"textColor\" [style.font-size]=\"textSize\">\n Your e-mail has been verified! You will be notified when your access has\n been authorized\n </p>\n </div>\n\n <div *ngIf=\"currentStep === 'accessGranted'\">\n <p [style.color]=\"textColor\" [style.font-size]=\"textSize\">\n Your e-mail has been verified!\n </p>\n <div class=\"mt-4\">\n <verbena-button\n [text]=\"text\"\n [bgColor]=\"btnBgColor\"\n [textColor]=\"color\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [pd]=\"btnPd\"\n (click)=\"handleLogin()\"\n [width]=\"btnWidth\"\n textSize=\"'22px'\"\n buttonClass=\"font-medium text-[22px] leading-[33px]\"\n ></verbena-button>\n </div>\n </div>\n</section>\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';\nimport { CommonModule } from '@angular/common';\nimport { MailValidationComponent } from './mail-validation.component';\n\n@NgModule({\n declarations: [MailValidationComponent],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n CommonModule,\n ],\n exports: [MailValidationComponent],\n})\nexport class MailValidationModule {}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-button',\n templateUrl: './button.component.html',\n styleUrl: './button.component.css'\n})\nexport class ButtonComponent{\n @Input() text: string = '';\n @Input() color: string = 'black';\n @Input() border: string = '1px solid #FFE681';\n @Input() borderRadius:string = \"40px\"\n @Input() bgColor: string = '#FFE681';\n @Input() width: string = '100%';\n @Input() pd: string = '10px 20px';\n @Input() buttonClass: string = '';\n @Input() disabled: boolean = false;\n\n @Output() buttonClick = new EventEmitter<void>();\n\n handleClick(){ \n this.buttonClick.emit();\n }\n}\n","<verbena-button\n[text]=\"text\"\n[bgColor]=\"bgColor\"\n[textColor]=\"color\"\n[border]=\"border\"\n[borderRadius]=\"borderRadius\"\n[pd]=\"pd\"\n[width]=\"width\"\n[disable]=\"disabled\"\n[ngStyle]=\"{'cursor': disabled ? 'not-allowed' : 'pointer' }\"\nbuttonClass=\"font-medium text-[22px] leading-[33px] {{buttonClass}}\"\n(click)=\"handleClick()\"\n></verbena-button>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { SignUpData } from '../../models/sign-up';\nimport { HttpWebRequestService } from '../../services/http-web-request.service';\nimport { ErrorResponse } from '../../models/ErrorResponse';\nimport { ResponseKeyValue } from '../../models/ResponseKeyValue';\nimport { UtilService } from '../../services/util.service';\nimport { ObjectState } from '../../models/object-state';\n\n@Component({\n selector: 'verben-sign-up',\n templateUrl: './sign-up.component.html',\n styleUrl: './sign-up.component.css',\n})\nexport class SignUpComponent {\n @Input() headlingText: string = 'Create an account';\n @Input() width: string = '';\n @Input() maxWidth: string = '';\n @Input() margin: string = '';\n @Input() pd: string = '';\n @Input() customClass: string = '';\n @Input() headlingClass: string = '';\n @Input() bgColor: string = '#fff';\n @Input() boxShadow: string = '4px 4px 4px rgba(0, 0, 0, 0.25)';\n @Input() border: string = '1px solid #66666680';\n @Input() borderRadius: string = '24px';\n @Input() height: string = 'auto';\n @Input() textColor: string = '#333';\n @Input() disabled: boolean = false;\n\n // button styles\n @Input() btnClass: string = '';\n @Input() btnBgColor: string = '#FFE681';\n @Input() btnColor: string = '';\n @Input() btnBorder: string = '';\n @Input() btnBorderRadius: string = '24px';\n @Input() btnPd: string = '';\n @Input() btnText: string = 'Create account';\n\n //inputStyles\n @Input() inputLabelColor: string = '';\n @Input() inputBgColor: string = 'transparent';\n @Input() inputBorder: string = '1px solid #66666659';\n @Input() inputBorderRadius: string = '12px';\n\n // links\n @Input() termsLink: string = '';\n @Input() privacyLink: string = '';\n @Input() routerLink: string = '';\n\n @Output() formSubmit = new EventEmitter<SignUpData>();\n @Output() onSubmitEnd: EventEmitter<ResponseKeyValue | ErrorResponse> =\n new EventEmitter();\n @Output() googleClick = new EventEmitter();\n @Output() appleClick = new EventEmitter();\n\n signUpForm: FormGroup;\n\n constructor(\n private fb: FormBuilder,\n private server: HttpWebRequestService,\n private utilService: UtilService\n ) {\n this.signUpForm = this.fb.group(\n {\n Firstname: new FormControl<string | null>(null, Validators.required),\n Lastname: new FormControl<string | null>(null, Validators.required),\n Email: new FormControl<string | null>(null, [\n Validators.required,\n Validators.email,\n ]),\n Password: new FormControl<string | null>(null, [\n Validators.required,\n Validators.minLength(8),\n ]),\n Confirmpassword: new FormControl<string | null>(null, [\n Validators.required,\n Validators.minLength(8),\n ]),\n Terms: new FormControl<boolean>(false, [Validators.requiredTrue]),\n },\n { validators: this.passwordMatchValidator }\n );\n }\n\n private passwordMatchValidator: ValidatorFn = (\n group: AbstractControl\n ): ValidationErrors | null => {\n const password = group.get('Password')?.value;\n const confirmPassword = group.get('Confirmpassword')?.value;\n return password === confirmPassword ? null : { passwordMismatch: true };\n };\n\n checkForm(): boolean {\n return this.signUpForm.valid;\n }\n\n async submit() {\n if (!this.checkForm()) {\n return;\n }\n const data: SignUpData = {\n Firstname: this.signUpForm.controls['Firstname'].value,\n Lastname: this.signUpForm.controls['Lastname'].value,\n Email: this.signUpForm.controls['Email'].value,\n Password: this.signUpForm.controls['Password'].value,\n Terms: this.signUpForm.controls['Terms'].value,\n Id: '61f7e48f0c651345677b7775',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n id: '61f7e48f0c651345677b7775',\n TenantId: 'James',\n Code: '',\n ServiceName: '',\n };\n\n const payload = [\n {\n ...data,\n Code: '123 ',\n ServiceName: 'Test 1',\n MailAddress: data.Email,\n OtherName: 'James',\n Status: 'Inactive',\n PhoneNumber: '07012345678',\n TenantId: '61f7e48f0c651345677b7775',\n Role: ['tester'],\n Tags: [\n {\n Name: 'checker',\n IsOptional: true,\n },\n ],\n },\n ];\n\n this.formSubmit.emit(data);\n this.utilService.sendBI(true);\n const res = await this.server.post(`User/SaveUsers`, payload);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.onSubmitEnd.emit(res);\n } else {\n var result = res as ResponseKeyValue;\n this.onSubmitEnd.emit(result);\n }\n }\n\n handleGoogleAuth() {\n this.googleClick.emit();\n }\n handleAppleAuth() {\n this.appleClick.emit();\n }\n\n get styles() {\n return {\n 'background-color': this.bgColor,\n 'box-shadow': this.boxShadow,\n border: this.border,\n 'border-radius': this.borderRadius,\n color: this.textColor,\n width: this.width,\n 'max-width': this.maxWidth,\n margin: this.margin,\n height: this.height,\n padding: this.pd,\n };\n }\n}\n","<section [ngStyle]=\"styles\" class=\"{{ customClass }}\">\n <h2 class=\"{{headlingClass}}\">\n {{headlingText}}\n </h2>\n <form [formGroup]=\"signUpForm\" (ngSubmit)=\"submit()\" class=\"flexWrapper\">\n <verbena-input\n [label]=\"'First name'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n formControlName=\"Firstname\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n [customErrorMessages]=\"{required:'First name is required'}\"\n ></verbena-input>\n <verbena-input\n [label]=\"'Last name'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n formControlName=\"Lastname\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n [customErrorMessages]=\"{required:'Last name is required'}\"\n ></verbena-input>\n <verbena-input\n [label]=\"'Email'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'email'\"\n formControlName=\"Email\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <verbena-input\n [label]=\"'Password'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n formControlName=\"Password\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n [passwordToggle]=\"true\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <div>\n <verbena-input\n [label]=\"'Confirm Password'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n formControlName=\"Confirmpassword\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"false\"\n [errorBorderColor]=\"'red'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <span *ngIf=\"signUpForm.hasError('passwordMismatch') && signUpForm.get('Confirmpassword')?.dirty\">\n <small class=\"error-text\">Passwords do not match.</small>\n </span>\n </div>\n <div>\n <div class=\"checkBoxWrapper\">\n <input type=\"checkbox\" id=\"terms\" formControlName=\"Terms\" class=\"checBoxInput\" />\n <label for=\"terms\"\n class=\"break-all font-normal leading-6\"\n >By creating an account, I agree to our <a [attr.href]=\"termsLink\">Terms of use</a> and\n <a [attr.href]=\"privacyLink\">Privacy Policy</a></label\n >\n </div>\n <p *ngIf=\"signUpForm.controls['Terms'].invalid && signUpForm.controls['Terms'].touched\">\n <small class=\"error-text\">Please agree to the terms of use and privacy policy.</small>\n </p>\n </div>\n <lib-button\n [buttonClass]=\"btnClass\"\n [color]=\"btnColor\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [bgColor]=\"btnBgColor\"\n [pd]=\"btnPd\"\n [text]=\"btnText\"\n type=\"submit\"\n [disabled]=\"!this.checkForm()\"\n [ngStyle]=\"{'margin-top':'10px'}\"\n ></lib-button>\n <verben-o-auth\n (googleClick)=\"handleGoogleAuth()\"\n (appleClick)=\"handleAppleAuth()\"\n ></verben-o-auth>\n <p>\n Already have an account?\n <a [routerLink]=\"routerLink\" class=\"\">Log in</a>\n </p>\n </form>\n </section>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VerbenaButtonModule } from 'verben-ng-ui';\nimport { ButtonComponent } from './button.component';\nimport { FormsModule } from '@angular/forms';\n@NgModule({\n declarations: [ButtonComponent],\n imports: [CommonModule,VerbenaButtonModule,FormsModule],\n exports: [ButtonComponent]\n})\nexport class ButtonModule {}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { SignUpComponent } from './sign-up.component';\nimport { VerbenaInputModule } from 'verben-ng-ui';\nimport { OAuthModule } from '../o-auth/o-auth.module';\nimport { ButtonModule } from '../button/button.module';\nimport { ReactiveFormsModule } from '@angular/forms';\n@NgModule({\n declarations: [SignUpComponent],\n imports: [CommonModule, FormsModule, VerbenaInputModule, RouterLink,ButtonModule,OAuthModule,ReactiveFormsModule],\n exports: [SignUpComponent]\n})\nexport class SignUpModule {}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport { LoginData } from '../../models/log-in';\nimport { HttpWebRequestService } from '../../services/http-web-request.service';\nimport { UtilService } from '../../services/util.service';\nimport { ErrorResponse } from '../../models/ErrorResponse';\nimport { ResponseKeyValue } from '../../models/ResponseKeyValue';\nimport { EnvironmentService } from '../../services/environment.service';\nimport { AuthMechanism, MechanismType } from '../../models/auth-mechanism';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { IOauthResp } from '../../models/oauth-resp';\nimport {TenantConfig} from '../../models/TenantConfig'\n\n@Component({\n selector: 'verben-sign-in',\n templateUrl: './sign-in.component.html',\n styleUrl: './sign-in.component.css',\n})\nexport class SignInComponent implements OnInit {\n @Input() headlingText: string = 'Sign in';\n @Input() width: string = '';\n @Input() maxWidth: string = '';\n @Input() margin: string = '';\n @Input() pd: string = '';\n @Input() customClass: string = '';\n @Input() headlingClass: string = '';\n @Input() bgColor: string = '#fff';\n @Input() boxShadow: string = '4px 4px 4px rgba(0, 0, 0, 0.25)';\n @Input() border: string = '1px solid #66666680';\n @Input() borderRadius: string = '24px';\n @Input() textColor: string = '#333';\n @Input() height: string = 'auto';\n @Input() forgetPasswordClass: string = '';\n @Input() requestAccessClass: string = '';\n @Input() createAccountClass: string = '';\n @Input() createAccountLinkClass: string = '';\n\n // links\n @Input() forgetPasswordLink: string = '';\n @Input() createAccountLink: string = '';\n @Input() requestAccessLink: string = '';\n // button styles\n @Input() btnClass: string = '';\n @Input() btnBgColor: string = '#FFE681';\n @Input() btnColor: string = '';\n @Input() btnBorder: string = '';\n @Input() btnBorderRadius: string = '24px';\n @Input() btnPd: string = '';\n @Input() btnText: string = 'Log in';\n\n //inputStyles\n @Input() inputLabelColor: string = '';\n @Input() inputBgColor: string = 'transparent';\n @Input() inputBorder: string = '1px solid #66666659';\n @Input() inputBorderRadius: string = '12px';\n @Input() termsErrorText: string =\n 'Please agree to the terms of use and privacy policy.';\n\n @Output() formSubmit = new EventEmitter<LoginData>();\n @Output() onSubmitEnd: EventEmitter<ResponseKeyValue | ErrorResponse> =\n new EventEmitter();\n @Output() onGoogleAuthResponse: EventEmitter<\n ResponseKeyValue | ErrorResponse\n > = new EventEmitter();\n @Output() onSubmitGoogleAuth: EventEmitter<ResponseKeyValue | ErrorResponse> = new EventEmitter();\n @Output() tenantConfigLoaded = new EventEmitter<TenantConfig | null>();\n @Output() googleClick = new EventEmitter();\n @Output() microsoftClick = new EventEmitter();\n @Output() appleClick = new EventEmitter();\n\n tenantDetails: any | null = null;\n AuthMechanisms: AuthMechanism[] | null = null;\n showform: boolean = false;\n loginForm: FormGroup;\n apiKey: string;\n secret: string;\n isLoading: boolean = false;\n code: string = '';\n type: string = '';\n mechanismType: string = '';\n OauthData: IOauthResp = {\n AccessToken: '',\n Email: '',\n FirstName: '',\n LastName: '',\n };\n configData:TenantConfig | null = null\n\n constructor(\n private fb: FormBuilder,\n private server: HttpWebRequestService,\n private utilService: UtilService,\n private envSvc: EnvironmentService,\n private route: ActivatedRoute,\n private router: Router\n ) {\n this.loginForm = this.fb.group({\n Email: new FormControl<string | null>(null, [\n Validators.required,\n Validators.email,\n ]),\n Password: new FormControl<string | null>(null, [\n Validators.required,\n Validators.minLength(5),\n ]),\n });\n this.apiKey = this.envSvc.environment.Tenant;\n this.secret = this.envSvc.environment.Secret;\n }\n\n async ngOnInit() {\n await this.getTenantConfig();\n this.route.queryParams.subscribe((params) => {\n this.code = params['code'];\n this.type = params['type'];\n if (this.code) {\n this.verifyUserDetails();\n }\n });\n }\n\n async getTenantConfig() {\n try{ \n const res = await this.server.get<TenantConfig>(\n `Tenant/GetTenantConfigByKey/${this.apiKey}`\n );\n this.tenantDetails = res;\n this.configData = res;\n this.AuthMechanisms = this.tenantDetails?.AuthMechanisms;\n if (\n !this.tenantDetails?.AuthMechanism &&\n this.tenantDetails?.AuthMechanism !== MechanismType.InApp\n ) {\n this.showform = false;\n } else {\n this.showform = true;\n }\n this.tenantConfigLoaded.emit(this.configData);\n }catch(err){ \n const msg = err;\n this.tenantConfigLoaded.emit(null);\n }\n }\n\n checkForm(): boolean {\n return this.loginForm.valid;\n }\n\n async verifyUserDetails() {\n if (this.AuthMechanisms !== null && this.apiKey) {\n const data: any = this.AuthMechanisms.find((item) =>\n item.AuthMechanism.includes(this.type)\n );\n const payload = {\n AuthCode: this.code,\n Tenant: this.apiKey,\n AuthMechanism: data.AuthMechanism,\n };\n\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `Authentication/GetUserDetails`,\n payload\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return;\n } else {\n var result = res as IOauthResp;\n this.OauthData = {\n AccessToken: result?.AccessToken,\n Email: result?.Email,\n FirstName: result?.FirstName,\n LastName: result?.LastName,\n };\n\n this.submit(data.AuthMechanism);\n }\n }\n }\n\n async submit(type: string) {\n let data: LoginData = {\n MailAddress: '',\n Password: '',\n LoginType: type,\n Tenant: this.apiKey,\n Secrete: this.secret,\n Token: '',\n };\n \n if (type === MechanismType.InApp && this.checkForm()) {\n data = {\n ...data,\n MailAddress: this.loginForm.controls['Email'].value,\n Password: this.loginForm.controls['Password'].value,\n };\n } else if (type === MechanismType.Google || type === MechanismType.MicrosoftAD) {\n data = {\n ...data,\n MailAddress: this.OauthData?.Email,\n Token: this.OauthData?.AccessToken,\n };\n }\n \n this.formSubmit.emit(data);\n this.utilService.sendBI(true); // Preserving your utilService call\n this.isLoading = true;\n \n console.log('Payload being sent:', data); // Debugging step\n \n try {\n const res = await this.server.post(`Authentication/Login`, data);\n console.log('Response:', res);\n this.utilService.sendBI(false); // Stop utilService tracking on success/failure\n this.isLoading = false;\n \n if (res instanceof ErrorResponse) {\n this.onSubmitEnd.emit(res);\n } else {\n const result = res as ResponseKeyValue;\n this.onSubmitEnd.emit(result);\n }\n } catch (error) {\n this.utilService.sendBI(false); // Stop utilService tracking on error\n this.isLoading = false;\n console.error('Error during login:', error);\n }\n }\n \n get styles() {\n return {\n 'background-color': this.bgColor,\n 'box-shadow': this.boxShadow,\n border: this.border,\n 'border-radius': this.borderRadius,\n color: this.textColor,\n width: this.width,\n 'max-width': this.maxWidth,\n margin: this.margin,\n height: this.height,\n padding: this.pd,\n };\n }\n}\n","<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h2 class=\"{{headlingClass}}\">{{headlingText}}</h2>\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"submit('InApp')\" class=\"flexWrapper\"> \n <div class=\"formWrapper\" *ngIf=\"showform\"> \n <verbena-input\n [label]=\"'Email'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'email'\"\n formControlName=\"Email\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <div> \n <verbena-input\n [label]=\"'Password'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n formControlName=\"Password\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n [passwordToggle]=\"true\"\n [passLength]=\"5\"\n [customErrorMessages]=\"{\n password:'Password is required'\n }\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <div class=\"pwdWrapper\"> \n <p clas=\"mb-0\"> <a [routerLink]=\"forgetPasswordLink\" class=\"{{forgetPasswordClass}}\">Forgot password</a></p>\n </div>\n </div>\n <lib-button \n [buttonClass]=\"btnClass\"\n [color]=\"btnColor\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [bgColor]=\"btnBgColor\"\n [pd]=\"btnPd\"\n [text]=\"btnText\" \n type=\"submit\" \n [disabled]=\"!this.checkForm()\"\n ></lib-button>\n </div>\n <div> \n <p *ngIf=\"requestAccessLink\">\n <a [routerLink]=\"requestAccessLink\" class=\"{{requestAccessClass}}\">Click here to request user access</a>\n </p>\n \n </div>\n </form>\n <div> \n <div *ngIf=\"AuthMechanisms !== null\"> \n <verben-o-auth \n [authMechanisms]=\"AuthMechanisms\"\n ></verben-o-auth>\n </div>\n <p class=\"{{createAccountClass}}\" *ngIf=\"createAccountLink\">\n Don't have an account?\n <a [routerLink]=\"createAccountLink\" class=\"{{createAccountLinkClass}}\">Create an account</a>\n </p>\n </div>\n </section>\n ","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SignInComponent } from '../sign-in/sign-in.component';\nimport { FormsModule } from '@angular/forms';\nimport { RouterLink} from '@angular/router';\nimport { VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';\nimport { OAuthModule } from '../o-auth/o-auth.module';\nimport { ButtonModule } from '../button/button.module';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [SignInComponent],\n imports: [CommonModule,FormsModule,VerbenaInputModule,VerbenaButtonModule,RouterLink,OAuthModule,ButtonModule,ReactiveFormsModule],\n exports: [SignInComponent]\n})\nexport class SignInModule {}\n\n","import { Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { FormBuilder, FormArray, FormControl, FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'verben-otp-input',\n templateUrl: './otp-input.component.html',\n styleUrl: './otp-input.component.css'\n})\nexport class OtpInputComponent implements OnInit {\n @Input() length: number = 6;\n @Input() otpClass: string = '';\n @Output() otpChange = new EventEmitter<string>();\n\n otpForm!: FormGroup;\n\n constructor(private fb: FormBuilder) {}\n\n ngOnInit() {\n this.otpForm = this.fb.group({\n otpArray: this.fb.array(Array(this.length).fill('').map(() => new FormControl('')))\n });\n\n this.otpArray.valueChanges.subscribe(() => {\n this.emitOtp();\n });\n }\n\n get otpArray(): FormArray {\n return this.otpForm.get('otpArray') as FormArray;\n }\n\n handleInput(event: any, index: number) {\n let value = event.target.value;\n\n // /\\d/.test(value)\n if (value.length > 0) {\n value = value.toUpperCase();\n this.otpArray.at(index).setValue(value);\n\n if (index < this.length - 1) {\n this.focusNextInput(index);\n }\n } else {\n this.otpArray.at(index).setValue(''); \n }\n }\n\n handleKeydown(event: KeyboardEvent, index: number) {\n if (event.key === 'Backspace') {\n const currentValue = this.otpArray.at(index).value;\n \n if (currentValue) {\n this.otpArray.at(index).setValue('');\n } else if (index > 0) {\n this.focusPreviousInput(index);\n }\n }\n }\n\n handlePaste(event: ClipboardEvent) {\n event.preventDefault();\n const pastedData = (event.clipboardData?.getData('text') || '').toUpperCase();\n const validData = pastedData.slice(0, this.length);\n\n validData.split('').forEach((char, index) => {\n this.otpArray.at(index).setValue(char);\n });\n\n const nextIndex = validData.length < this.length ? validData.length : this.length - 1;\n this.focusNextInput(nextIndex - 1);\n }\n\n\n private focusNextInput(index: number) {\n const nextInput = document.getElementById(`otp-input-${index + 1}`);\n nextInput?.focus();\n }\n\n private focusPreviousInput(index: number) {\n const prevInput = document.getElementById(`otp-input-${index - 1}`);\n prevInput?.focus();\n }\n\n private emitOtp() {\n const otp = this.otpArray.value.join('');\n this.otpChange.emit(otp);\n }\n}\n","<form [formGroup]=\"otpForm\" >\n <div formArrayName=\"otpArray\" class=\"otp-container\">\n <input\n *ngFor=\"let control of otpArray.controls; let i = index\"\n [id]=\"'otp-input-' + i\"\n class=\"otp-input {{otpClass}}\"\n maxlength=\"1\"\n (input)=\"handleInput($event, i)\"\n (keydown)=\"handleKeydown($event, i)\"\n (paste)=\"handlePaste($event)\"\n [formControlName]=\"i\"\n type=\"text\"\n />\n </div>\n</form>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { HttpWebRequestService } from '../../services/http-web-request.service';\nimport { UtilService } from '../../services/util.service';\nimport { ErrorResponse } from '../../models/ErrorResponse';\nimport { ResponseKeyValue } from '../../models/ResponseKeyValue';\nimport { OtpData } from '../../models/otpValue';\nimport { User } from '../../models/user';\nimport { ObjectState } from '../../models/object-state';\nimport { MainUser } from '../../models/mainUser';\nimport { ResendOtpData } from '../../models/resend-otp-data';\nimport { MechanismType } from '../../models/auth-mechanism';\n\n@Component({\n selector: 'verben-auth-otp',\n templateUrl: './two-factor-auth-otp.component.html',\n styleUrl: './two-factor-auth-otp.component.css',\n})\nexport class TwoFactorAuthOtpComponent {\n @Input() customClass: string = '';\n @Input() headlingClass: string = '';\n @Input() headlingText: string = 'Two Factor Authentication';\n @Input() paragraphClass: string = '';\n @Input() resendClass: string = '';\n @Input() width: string = '';\n @Input() maxWidth: string = '';\n @Input() margin: string = '';\n @Input() pd: string = '';\n @Input() bgColor: string = '#fff';\n @Input() boxShadow: string = '4px 4px 4px rgba(0, 0, 0, 0.25)';\n @Input() border: string = '1px solid #66666680';\n @Input() borderRadius: string = '24px';\n @Input() textColor: string = '#333';\n @Input() height: string = 'auto';\n @Input() length: number = 6;\n @Input() otpClass: string = '';\n @Input() resendOtpData: ResendOtpData = {\n MailAddress: '',\n Password: '',\n LoginType: 'InApp',\n Tenant: 'PDLTC6',\n Secrete: '$White360$',\n RedirectUri: '/auth/otp',\n };\n\n @Input() User:any={}\n\n @Input() OtpData: OtpData = {\n User: this.User,\n Token: '',\n ValidateUrl: '',\n Secret: '',\n OTP: '',\n Info: '',\n Provider:MechanismType.InApp\n };\n\n @Input() btnClass: string = '';\n @Input() btnBgColor: string = '#FFE681';\n @Input() btnColor: string = '';\n @Input() btnBorder: string = '';\n @Input() btnBorderRadius: string = '24px';\n @Input() btnPd: string = '';\n @Input() btnText: string = 'Submit';\n\n otpValue: string = '';\n otpForm!: FormGroup;\n\n @Output() buttonClick = new EventEmitter<string>();\n @Output() otpChange = new EventEmitter<string>();\n @Output() clearStore = new EventEmitter<any>();\n @Output() onSubmitEnd: EventEmitter<ResponseKeyValue | ErrorResponse> =\n new EventEmitter();\n @Output() resend: EventEmitter<ResponseKeyValue | ErrorResponse> =\n new EventEmitter();\n\n constructor(\n private fb: FormBuilder,\n private server: HttpWebRequestService,\n private utilService: UtilService\n ) {}\n\n ngOnInit() {\n this.otpForm = this.fb.group({\n otpValue: ['', [Validators.required, Validators.minLength(6)]],\n });\n }\n\n onOtpChange(value: string) {\n this.otpValue = value;\n this.otpForm.get('otpValue')?.setValue(value);\n this.otpChange.emit(this.otpValue);\n }\n\n async submitData() {\n const data: OtpData = {\n User:this.User,\n Token: this.OtpData.Token,\n ValidateUrl: this.OtpData.ValidateUrl,\n Secret: this.OtpData.Secret,\n OTP: this.OtpData.OTP,\n Info: this.OtpData.Info,\n Provider:this.OtpData.Provider\n };\n this.clearStore.emit()\n if (this.otpForm.valid) {\n this.utilService.sendBI(true);\n const res = await this.server.post(`Authentication/Validate`, data);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.onSubmitEnd.emit(res);\n } else {\n var result = res as ResponseKeyValue;\n this.onSubmitEnd.emit(result);\n }\n }\n }\n\n async resendOtp() {\n const data: ResendOtpData = {\n MailAddress: this.resendOtpData?.MailAddress,\n Password: this.resendOtpData?.Password,\n LoginType: this.resendOtpData?.LoginType,\n Tenant: this.resendOtpData?.Tenant,\n Secrete: this.resendOtpData?.Secrete,\n\n RedirectUri: this.resendOtpData?.RedirectUri,\n };\n\n this.utilService.sendBI(true);\n const res = await this.server.post(`Authentication/ResendOTP`, data);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.resend.emit(res);\n } else {\n var result = res as ResponseKeyValue;\n this.resend.emit(result);\n }\n }\n\n get styles() {\n return {\n 'background-color': this.bgColor,\n 'box-shadow': this.boxShadow,\n border: this.border,\n 'border-radius': this.borderRadius,\n color: this.textColor,\n width: this.width,\n 'max-width': this.maxWidth,\n margin: this.margin,\n height: this.height,\n padding: this.pd,\n };\n }\n}\n","<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h3 class=\"{{headlingClass}}\">{{headlingText}}</h3>\n <div class=\"otpWrapper\"> \n <p class=\"{{paragraphClass}}\">Enter the {{length}} digit code sent to you</p>\n <verben-otp-input \n [length]=\"length\" \n (otpChange)=\"onOtpChange($event)\"\n [otpClass]=\"otpClass\"\n ></verben-otp-input>\n </div>\n <lib-button \n [buttonClass]=\"btnClass\"\n [color]=\"btnColor\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [bgColor]=\"btnBgColor\"\n [pd]=\"btnPd\"\n [text]=\"btnText\" \n (buttonClick)=\"submitData()\"\n [disabled]=\"!otpForm.valid\"\n ></lib-button>\n <p class=\"resendWrapper\">\n Didn’t get a code?\n <a class=\"{{resendClass}}\" (click)=\"resendOtp()\">Resend</a>\n </p>\n \n</section>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { VerbenaInputModule } from 'verben-ng-ui';\nimport { OAuthModule } from '../o-auth/o-auth.module';\nimport { ButtonModule } from '../button/button.module';\nimport { OtpInputComponent } from './otp-input.component';\n\n@NgModule({\n declarations: [OtpInputComponent],\n imports: [CommonModule, FormsModule,VerbenaInputModule, RouterLink,ButtonModule,OAuthModule,ReactiveFormsModule],\n exports: [OtpInputComponent]\n})\nexport class OtpInputModule {}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TwoFactorAuthOtpComponent } from './two-factor-auth-otp.component';\nimport { ButtonModule } from '../button/button.module';\nimport { OtpInputModule } from '../otp-input/otp-input.module';\nimport { RouterLink } from '@angular/router';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n\n@NgModule({\n declarations: [TwoFactorAuthOtpComponent],\n imports: [CommonModule,ButtonModule,OtpInputModule,RouterLink,ReactiveFormsModule],\n exports: [TwoFactorAuthOtpComponent]\n})\nexport class TwoFactorAuthOtpModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'verben-two-factor-auth-setup',\n templateUrl: './two-factor-auth-setup.component.html',\n styleUrl: './two-factor-auth-setup.component.css'\n})\n\nexport class TwoFactorAuthSetupComponent {\n @Input() customClass: string = ''\n @Input() headlingClass: string = ''\n @Input() headlingText: string = 'Set Up Two Factor Authentication'\n @Input() paragraphClass: string = ''\n @Input() buttonClass: string = ''\n @Input() width: string = '';\n @Input() maxWidth: string = '';\n @Input() margin: string = '';\n @Input() pd: string = '';\n @Input() bgColor: string = '#fff';\n @Input() boxShadow: string = '4px 4px 4px rgba(0, 0, 0, 0.25)';\n @Input() border: string = '1px solid #66666680';\n @Input() borderRadius: string = '24px';\n @Input() textColor: string = '#333';\n @Input() height: string = '';\n\n @Output() smsClick = new EventEmitter();\n @Output() mailClick = new EventEmitter();\n @Output() skipClick = new EventEmitter();\n\n \n continueWithSMS(){ \n this.smsClick.emit()\n }\n continueWithMail(){ \n this.mailClick.emit()\n }\n handleSkip(){ \n this.skipClick.emit()\n }\n\n\n get styles() {\n return {\n 'background-color': this.bgColor,\n 'box-shadow': this.boxShadow,\n 'border': this.border,\n 'border-radius': this.borderRadius,\n 'color': this.textColor,\n 'width': this.width,\n 'max-width':this.maxWidth,\n 'margin':this.margin,\n 'height': this.height,\n 'padding':this.pd\n };\n }\n\n}\n","<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h3 class=\"{{headlingClass}}\">{{headlingText}}</h3>\n <div class=\"setUpBtnWrapper\">\n <verbena-button\n svg=\"2fa-mail\"\n [svgHeight]=\"16\"\n [svgWidth]=\"20\"\n text=\"Continue with Mail\"\n bgColor=\"white\"\n textColor=\"#333333\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mb-2\"\n (click)=\"continueWithMail()\"\n ></verbena-button>\n <verbena-button\n svg=\"2fa-sms\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with SMS\"\n bgColor=\"white\"\n textColor=\"#333333\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n (click)=\"continueWithSMS()\"\n ></verbena-button>\n <!-- <div class=\"iconWrapper\" (click)=\"handleSkip()\"> \n <p class=\"{{paragraphClass}}\">Skip for now</p>\n <verben-svg \n icon=\"skip-forward\"\n [height]=\"24\"\n [width]=\"24\"\n />\n </div> -->\n</div>\n</section>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TwoFactorAuthSetupComponent } from './two-factor-auth-setup.component';\nimport { SvgModule, VerbenaButtonModule } from 'verben-ng-ui';\n\n@NgModule({\n declarations: [TwoFactorAuthSetupComponent],\n imports: [CommonModule,VerbenaButtonModule,SvgModule],\n exports: [TwoFactorAuthSetupComponent]\n})\nexport class TwoFactorAuthSetupModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n\n@Component({\n selector: 'verben-mail-message',\n templateUrl: './mail.component.html',\n styleUrl: './mail.component.css'\n})\n\n\nexport class MailComponent {\n @Input() customClass: string = ''\n @Input() headlingClass: string = ''\n @Input() width: string = '';\n @Input() maxWidth: string = '';\n @Input() margin: string = '';\n @Input() pd: string = '';\n @Input() bgColor: string = '#fff';\n @Input() boxShadow: string = '4px 4px 4px rgba(0, 0, 0, 0.25)';\n @Input() border: string = '1px solid #66666680';\n @Input() borderRadius: string = '24px';\n @Input() textColor: string = '#333';\n @Input() height: string = 'auto';\n\n @Output() buttonClick = new EventEmitter();\n\n goToLogin(){ \n this.buttonClick.emit()\n }\n\n get styles() {\n return {\n 'background-color': this.bgColor,\n 'box-shadow': this.boxShadow,\n 'border': this.border,\n 'border-radius': this.borderRadius,\n 'color': this.textColor,\n 'width': this.width,\n 'max-width':this.maxWidth,\n 'margin':this.margin,\n 'height': this.height,\n 'padding':this.pd\n };\n }\n\n}\n\n","<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h3 class=\"{{headlingClass}}\">Your e-mail has been verified!</h3>\n <lib-button \n text=\"Login\" \n buttonClass=\"\"\n (click)=\"goToLogin()\"\n ></lib-button> \n</section>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterLink} from '@angular/router';\nimport { ButtonModule } from '../button/button.module';\nimport { MailComponent } from './mail.component';\n\n@NgModule({\n declarations: [MailComponent],\n imports: [CommonModule, FormsModule,RouterLink,ButtonModule],\n exports: [MailComponent]\n})\nexport class MailModule {}","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport { ForgotPasswordData } from './ForgotPasswordData';\nimport { HttpWebRequestService } from '../../services/http-web-request.service';\nimport { ErrorResponse } from '../../models/ErrorResponse';\nimport { ResponseKeyValue } from '../../models/ResponseKeyValue';\nimport { UtilService } from '../../services/util.service';\n\n@Component({\n selector: 'verben-forgot-password',\n templateUrl: './forgot-password.component.html',\n styleUrl: './forgot-password.component.css',\n})\nexport class ForgotPasswordComponent {\n @Input() title: string = 'Forgot Password';\n @Input() subTitle: string = 'Enter the e-mail you used during registration';\n @Input() buttonCaption: string = 'Submit';\n @Input() buttonTextColor?: string;\n @Input() buttonBackgroundColor?: string;\n\n @Output() onSubmit: EventEmitter<ForgotPasswordData> = new EventEmitter();\n @Output() onSubmitEnd: EventEmitter<ResponseKeyValue | ErrorResponse> =\n new EventEmitter();\n\n forgotPasswordForm: FormGroup;\n isSubmitted: boolean = false;\n\n constructor(\n private fb: FormBuilder,\n private server: HttpWebRequestService,\n private utilService: UtilService\n ) {\n this.forgotPasswordForm = this.fb.group({\n Email: new FormControl<string | null>(null, [\n Validators.required,\n this.emailValidator.bind(this),\n ]),\n });\n }\n\n isValidEmail(mail: string): boolean {\n const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\n return emailPattern.test(mail);\n }\n\n emailValidator(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n if (this.isValidEmail(value) == false) {\n return { customValidation: true };\n }\n\n return null;\n }\n\n checkForm(): boolean {\n return this.forgotPasswordForm.valid;\n }\n\n async submit() {\n if (!this.checkForm()) {\n return;\n }\n var data: ForgotPasswordData = {\n Email: this.forgotPasswordForm.controls['Email'].value,\n };\n this.onSubmit.emit(data);\n this.utilService.sendBI(true);\n const res = await this.server.get(\n `User/PasswordChangeRequest/${data.Email}`\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.onSubmitEnd.emit(res);\n } else {\n var result = res as ResponseKeyValue;\n this.onSubmitEnd.emit(result);\n this.isSubmitted = true;\n }\n }\n}\n","<div *ngIf=\"!isSubmitted\" [formGroup]=\"this.forgotPasswordForm\" class=\"reset-password-container flex flex-col\">\n <div class=\"reset-password-header flex flex-col\">\n <div class=\"reset-password-title\">{{title}}</div>\n <div class=\"reset-password-subtitle\">{{subTitle}}</div>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Email</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"Email\" type=\"email\"></verbena-input>\n </div>\n <verbena-button fontWeight=\"700\" (click)=\"submit()\" [text]=\"buttonCaption\" width=\"100%\" [textColor]=\"buttonTextColor\"\n [bgColor]=\"buttonBackgroundColor\" borderRadius=\"25px\" [disable]=\"!this.checkForm()\"></verbena-button>\n</div>\n<div *ngIf=\"isSubmitted\" class=\"reset-password-container flex flex-col\">\n <div class=\"reset-password-title resend-title\">Follow the link sent to your e-mail to proceed</div>\n <div class=\"flex gap-1\">\n <span class=\"resend-caption\">Didn't get a link?</span> <span class=\"resend-caption resend-link\"\n (click)=\"submit()\">Resend</span>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { ForgotPasswordComponent } from './forgot-password.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [ForgotPasswordComponent],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n CommonModule,\n ],\n exports: [ForgotPasswordComponent],\n})\nexport class ForgotPasswordModule {}\n","\nimport { ColumnDefinition } from 'verben-ng-ui';\nimport { SingleSignOn } from '../../models/single-sign-on';\n\nexport const columns: ColumnDefinition<SingleSignOn>[] = [\n {\n id: 'createdAt',\n header: 'Created',\n accessorKey: 'CreatedAt',\n },\n {\n id: 'name',\n header: 'Name',\n accessorKey: 'Name',\n },\n {\n id: 'description',\n header: 'Description',\n accessorKey: 'Description',\n },\n {\n id: 'link',\n header: 'Link',\n accessorKey: 'Link',\n },\n {\n id: 'logo',\n header: 'Logo',\n accessorKey: 'Logo',\n },\n { id: 'actions', header: 'Actions', accessorKey: 'Name' },\n];\n","import { ObjectState } from '../../models/object-state';\nimport { SingleSignOn } from '../../models/single-sign-on';\n\nexport const mockData: SingleSignOn[] = new Array(10).fill(1).map((id, i) => ({\n Name: `Name ${id + i}`,\n Id: id,\n id: id.toString(),\n Description: `Sign in option ${id + i}`,\n Logo: `./assets/images/test-logo.png`,\n Link: `Link ${id + i}`,\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: `Tenant ${id + i}`,\n Code: '',\n ServiceName: '',\n}));\n","export const baseStyle: any = {\n width: '100%',\n fontFamily: '\"Fraunces\", serif',\n fontSize: '125%',\n whiteSpace: 'nowrap',\n margin: '0',\n border: '1px solid #D4A007',\n borderRadius: '16px',\n borderCollapse: 'separate',\n borderSpacing: '0',\n tableLayout: 'fixed',\n overflow: 'hidden',\n rows: {\n even: {\n backgroundColor: '#FDFDFD',\n },\n odd: {\n backgroundColor: '#F1F4FB',\n },\n height: '68px',\n },\n cells: {\n padding: '0.5rem 1rem',\n },\n header: {\n stickyTop: true,\n zIndex: 2,\n backgroundColor: '#EFF2FB',\n fontWeight: 'bold',\n textAlign: 'left',\n padding: '12px 16px',\n height: '40px',\n },\n footer: {\n stickyBottom: true,\n zIndex: 2,\n padding: '3px',\n },\n // body: {\n // background: '#fff',\n // padding: '4px 5px',\n // textAlign: 'center',\n // },\n // firstColumn: {\n // stickyLeft: true,\n // zIndex: 1,\n // },\n lastColumn: {\n stickyRight: true,\n zIndex: 1,\n },\n};\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { CardData } from 'verben-ng-ui';\n\n\n@Component({\n selector: 'lib-sso-form',\n templateUrl: './sso-form.component.html',\n styleUrl: './sso-form.component.css',\n})\nexport class SsoFormComponent {\n isUploading: boolean = false;\n uploadedFileName: string | null = null;\n fileUploadError: string | null = null;\n @Input() currentData:CardData|null=null\n @Output() switchView = new EventEmitter<undefined>();\n\n form: FormGroup;\n\n constructor(private fb: FormBuilder) {\n this.form = this.fb.group({\n Description: [''],\n Name: [''],\n Link: [''],\n Logo: [''],\n });\n }\n\n ngOnInit(): void {}\n\n onSave(): void {\n if (this.form.valid) {\n // Emit save event with form value\n console.log('Form saved:', this.form.value);\n }\n }\n onDelete(): void {\n // Emit delete event\n console.log('Delete requested');\n }\n onFileSelected(event: Event) {\n const input = event.target as HTMLInputElement;\n if (input.files && input.files.length > 0) {\n const file = input.files[0];\n this.fileUploadError = null;\n if (!file) {\n this.isUploading = true;\n }\n if (file.size > 5000000) {\n this.fileUploadError = 'File size exceeds 5MB limit.';\n this.uploadedFileName = null;\n this.isUploading = false; // Reset isUploading state\n } else {\n this.uploadedFileName = file.name;\n }\n } else {\n this.isUploading = false;\n }\n }\n\n removeFile() {\n this.uploadedFileName = null;\n this.fileUploadError = null;\n const fileInput = document.getElementById('attachment') as HTMLInputElement;\n if (fileInput) {\n fileInput.value = '';\n }\n }\n\n}\n","<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative\"\n>\n <verbena-input\n name=\"Name\"\n label=\"Name:\"\n formControlName=\"Name\"\n [(ngModel)]=\"currentData?.data.Name\"\n />\n <verbena-input\n label=\"Description:\"\n name=\"Description\"\n formControlName=\"Description\"\n [(ngModel)]=\"currentData?.data.Description\"\n />\n <verbena-input\n label=\"Link:\"\n name=\"Link\"\n formControlName=\"Link\"\n [(ngModel)]=\"currentData?.data.Link\"\n/>\n<span class=\"block my-2 \">Logo</span>\n<label [style.background-color]=\"'#f9f9f9'\" class=\"border cursor-pointer border-secondary-200 rounded-md w-full px-4 py-2 flex justify-between\">\n <span *ngIf=\"!uploadedFileName\">{{isUploading?\"uploading...\":\"Upload a photo\"}}</span>\n <span *ngIf=\"fileUploadError\" class=\"error\">{{ fileUploadError }}</span>\n <div *ngIf=\"uploadedFileName\" class=\"flex items-center text-sm gap-2 border border-primary rounded-lg px-3 \">\n <span>{{ uploadedFileName }}</span>\n <button\n [style.color]=\"'black'\"\n type=\"button\"\n (click)=\"removeFile()\"\n >\n &#x2715;\n </button>\n </div>\n <input\n id=\"logo\"\n[type]=\"'file'\"\n label=\"Logo:\"\n name=\"Logo\"\n accept=\"image/png\"\n formControlName=\"Logo\"\n (change)=\"onFileSelected($event)\"\n formControlName=\"Logo\"\n/>\n<span class=\"flex gap-2\">\n<span class=\"bg-primary flex icon-container rounded-md justify-center items-center\">\n <img src=\"./assets/icons/cam.png\" class=\"icon-width\"/>\n</span>\n<span class=\"bg-primary flex icon-container rounded-md justify-center items-center\">\n <img src=\"./assets/icons/file.png\" class=\"icon-width2\"/>\n</span>\n</span>\n</label>\n\n <!-- buttons -->\n <div\n class=\"flex justify-between bottom-8 left-0 right-0 px-3 pb-2 absolute\"\n style=\"\n display: flex;\n justify-content: space-between;\n position: absolute;\n padding: 8px 12px;\n right: 0;\n left: 0;\n bottom: 32;\n \"\n >\n <!-- <verbena-button\n text=\"Delete\"\n class=\"bg-secondary-200 text-[black]\"\n (click)=\"onDelete()\"\n />\n <verbena-button\n text=\"Save\"\n class=\"bg-primary text-[black]\"\n (click)=\"onSave()\"\n />\n\n <verbena-button\n text=\"Secondary Button\"\n styleType=\"secondary\"\n ></verbena-button> -->\n <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n [bgColor]=\"'#999999'\"\n [textColor]=\"'#404040'\"\n borderRadius=\"10px\"\n ></verbena-button>\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Switch To Table\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n <verbena-button\n text=\"Save\"\n bgColor=\"#28a745\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n [bgColor]=\"'#FFE681'\"\n width=\"114px\"\n height=\"39px\"\n ></verbena-button>\n </div>\n</form>\n","import { Component, ViewChild } from '@angular/core';\nimport { columns } from './sso.columns';\nimport { mockData } from './helper';\nimport { baseStyle } from './base-table-style';\nimport {\n CardData,\n CardDataViewComponent,\n ColumnDefinition,\n DataFilterType,\n DataViewComponent,\n IDataFilter,\n} from 'verben-ng-ui';\nimport { SingleSignOn } from '../../models/single-sign-on';\n\n\n\n@Component({\n selector: 'lib-sso',\n templateUrl: './sso.component.html',\n styleUrl: './sso.component.css',\n})\nexport class SsoComponent {\n @ViewChild('vdcv') cardDataView!: CardDataViewComponent;\n @ViewChild('vdv') dataView!: DataViewComponent;\n\n columns = columns;\n data = mockData;\n filteredColumns: ColumnDefinition<SingleSignOn>[] =columns\n styles = baseStyle;\n currentData: CardData | null = null;\n isGridView = true;\n selected: CardData | null = null;\n\n cardData: CardData[] = mockData.map(({ Name, Description, Link,Logo }) => ({\n selected: false,\n title: Name,\n data: { Name, Description,Link,Logo } as Partial<SingleSignOn>,\n body: [\n { title: 'Description', value:Description??'' },\n ],\n children: [],\n }));\n\n openDetailView(name: string) {\n const cardItem = this.getCardDataByMailAddress(name);\n if (cardItem && this.cardDataView) {\n this.dataView.toggleView();\n this.cardData.forEach((item) => {\n item.selected = false;\n if (item.children) {\n item.children.forEach((child) => (child.selected = false));\n }\n });\n\n cardItem.selected = true;\n this.currentData = this.cardDataView.onItemClick(cardItem);\n }\n }\n\n getCardDataByMailAddress(name: string): CardData | undefined {\n return this.cardData.find(({ data }) => data.Name === name);\n }\n\n onViewChange(isGridView: boolean): void {\n isGridView=isGridView\n \n if (this.currentData) {\n this.cardDataView?.clearData();\n this.currentData = null;\n }\n\n if (this.selected) {\n this.cardDataView.onItemClick(this.selected);\n }\n }\n\n openFormView(index: number) {\n const item = this.cardData[index];\n console.log('ITEM = ', item);\n }\n\n handleExport(exportedData: Partial<any>[]) {\n console.log('Exported data:', exportedData);\n this.downloadCSV(exportedData);\n }\n\n /**\n *\n * @param data Simple csv export for testing\n */\n private downloadCSV(data: Partial<any>[]) {\n const headers = Object.keys(data[0]);\n const csvContent = [\n headers.join(','),\n ...data.map((row) => headers.map((header) => row[header]).join(',')),\n ].join('\\n');\n\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const link = document.createElement('a');\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', 'export.csv');\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n\n onSelectionChange(selectedRows:SingleSignOn[]) {\n console.log('Selection changed:', selectedRows);\n // Handle the selection change\n }\n\n /**\n * Copied over from card view doc until I understand usage\n */\n selectedColumnCount: number = 0;\n selectedFilterTableCount: number = 0;\n isOPen: boolean = true;\n selectedSortCount: number = 0;\n showColumn: boolean = false;\n showSort: boolean = false;\n showExport: boolean = false;\n selectedAll: boolean = false;\n showFilter: boolean = false;\n visibleColumns: IDataFilter[] = columns.map((col) => ({\n checked: false,\n name: typeof col.header === 'string' ? col.header : col.id,\n type: DataFilterType.Bool,\n }));\n filterArray: IDataFilter[] = [\n {\n name: 'Name',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'Description',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'Logo',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'Link',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'CreatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n ];\n sortOptions: IDataFilter[] = [\n {\n name: 'Name',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'Description',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'Link',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'Logo',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'CreatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n ];\n clearData() {\n this.currentData = {} as CardData;\n }\n loadMore() {\n this.cardData = this.cardData.concat(this.cardData);\n }\n onColumnChange(event: boolean) {\n this.showColumn = event;\n }\n onSortChange(event: boolean) {\n this.showSort = false\n console.log(event);\n }\n\n \n onColumnsUpdated(updatedColumns: IDataFilter[]) {\n this.showColumn = false;\n this.selectedColumnCount = updatedColumns.length;\n \n if (updatedColumns) {\n // Filter columns to include only visible ones\n this.filteredColumns = this.columns.filter((col) =>\n this.visibleColumns.find(\n (filter) => filter.name === col.header && filter.checked\n )\n );\n \n // Reorder columns based on the order in visibleColumns\n const visibleColumnOrder = this.visibleColumns\n .filter((filter) => filter.checked)\n .map((filter) => filter.name);\n \n this.columns.sort((a, b) => {\n const indexA = visibleColumnOrder.indexOf(a.header as string);\n const indexB = visibleColumnOrder.indexOf(b.header as string);\n return indexA - indexB;\n });\n }\n }\n \n onFilterApplied(appliedFilter: IDataFilter[]) {\n this.showFilter=false\n if (Array.isArray(appliedFilter)) {\n this.selectedFilterTableCount = appliedFilter.length;\n } else {\n console.log('appliedFilter is not an array');\n }\n }\n \n onSortUpdated(updatedSorts: IDataFilter[]) {\n this.onSortChange(false);\n this.selectedSortCount = updatedSorts.length;\n console.log(updatedSorts);\n \n }\n\n onStateChange(event: { key: string; value: boolean }): void {\n switch (event.key) {\n case 'column':\n this.showColumn=event.value\n break;\n case 'sort':\n this.showSort=event.value\n break;\n case 'export':\n this.showExport=event.value\n break;\n case 'filter':\n this.showFilter=event.value\n break;\n default:\n break;\n }\n }\n}\n","<div class=\"space-y-8\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n isToggle:true\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedSortCount]=\"selectedSortCount\"\n [selectedColumnCount]=\"selectedColumnCount\"\n [selectedFilterTableCount]=\"selectedFilterTableCount\"\n [showColumnChild]=\"showColumn\"\n [showSortChild]=\"showSort\"\n [showFilterChild]=\"showFilter\"\n [isTableView]=\"false\"\n [selectedFilterTableCount]=\"0\"\n [cardIcon]=\"'list-view'\"\n [tableIcon]=\"'table-view'\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n >\n <div table-content>\n <lib-data-table\n [data]=\"data\"\n [columns]=\"filteredColumns\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"logo\">\n <ng-template #cell let-value>\n <img class=\"logo-width\" [src]=\"value\"/>\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value let-deleteRow let-rowIndex>\n <div class=\"flex space-x-8\" style=\"display: flex; gap: 24px\">\n <verben-svg\n (click)=\"openDetailView(value)\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#3479E9\"\n fill=\"white\"\n class=\"cursor-pointer\"\n ></verben-svg>\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#E20000\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n <ng-template #header>\n <strong>Actions</strong>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"Link\"\n border=\"5px\"\n [cardDataList]=\"cardData\"\n rbgColor=\"#f5f6f9\"\n >\n <verben-left-card-data-view class=\"\">\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"Link\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\"\n [cardDataList]=\"cardData\"\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <verben-svg\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"vlcd.showChildren(item)\"\n [ngClass]=\"vlcd.showToggle(item) ? 'visible' : 'invisible'\"\n class=\"items-center flex pr-1 cursor-pointer\"\n [icon]=\"item.isChildrenExpanded ? 'minus' : 'plus'\"\n />\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\"\n >\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex flex-col py-2 px-4 w-full\">\n <div class=\"flex\">\n <span class=\"font-bold text-sm\">{{ item.data.Name }}</span>\n </div>\n @for (ciItem of item.body; track ciItem.value) {\n <div class=\"flex items-center justify-between gap-2\">\n <div>\n <span class=\"text-muted font-light text-xs\"\n >{{ ciItem.title }}:</span\n >\n <span class=\"text-black text-xs font-semibold\">{{ item.data.Description }}</span>\n </div>\n <img class=\"logo-width\" [alt]=\"ciItem.title\" [src]=\"item.data.Logo\"/>\n </div>\n }\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <lib-sso-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n ></lib-sso-form>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"float-right\">\n <div class=\"flex gap-2 mt-1\">\n <span class=\"paginator-text\"\n >{{ cardData.length }} records loaded</span\n >\n <button (click)=\"loadMore()\" class=\"load-more\">Load more</button>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n (filtersApplied)=\"onFilterApplied($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport {\n DataViewModule,\n TableFilterModule,\n SortTableModule,\n DataExportModule,\n VisibleColumnModule,\n VerbenaButtonModule,\n CardDataViewModule,\n SvgModule,\n VerbenaInputModule,\n DataTableModule,\n VerbenaTextareaModule,\n} from 'verben-ng-ui';\nimport { SsoComponent } from './sso.component';\nimport { SsoFormComponent } from './sso-form/sso-form.component';\n@NgModule({\n declarations: [SsoComponent,SsoFormComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DataViewModule,\n TableFilterModule,\n SortTableModule,\n DataExportModule,\n VisibleColumnModule,\n VerbenaButtonModule,\n CardDataViewModule,\n VerbenaInputModule,\n SvgModule,\n VerbenaTextareaModule,\n DataTableModule,\n ],\n exports: [SsoComponent],\n})\nexport class SsoModule {}\n","import { ColumnDefinition } from 'verben-ng-ui';\nimport { UserAccessRequest } from '../../models/user-access-request';\n\nexport const columns: ColumnDefinition<UserAccessRequest>[] = [\n {\n id: 'createdAt',\n header: 'CREATED',\n accessorKey: 'CreatedAt',\n },\n {\n id: 'user',\n header: 'NAME',\n accessorFn: (row) => `${row.FirstName} ${row.LastName}`,\n },\n {\n id: 'mail',\n header: 'E-MAIL',\n accessorKey: 'MailAddress',\n },\n {\n id: 'role',\n header: 'ROLE',\n accessorFn: (row) => row.Role?.Name,\n },\n {\n id: 'status',\n header: 'STATUS',\n accessorKey: 'RequestStatus',\n },\n { id: 'actions', header: 'Actions', accessorKey: 'MailAddress' },\n];\n","export const baseStyle: any = {\n width: '100%',\n fontFamily: '\"Fraunces\", serif',\n fontSize: '125%',\n whiteSpace: 'nowrap',\n margin: '0',\n border: '1px solid #D4A007',\n borderRadius: '16px',\n borderCollapse: 'separate',\n borderSpacing: '0',\n // tableLayout: 'fixed',\n overflow: 'hidden',\n rows: {\n even: {\n backgroundColor: '#FDFDFD',\n },\n odd: {\n backgroundColor: '#F1F4FB',\n },\n height: '68px',\n },\n cells: {\n padding: '0.5rem 1rem',\n },\n header: {\n // stickyTop: true,\n // zIndex: 2,\n backgroundColor: '#EFF2FB',\n fontWeight: 'bold',\n textAlign: 'left',\n padding: '12px 16px',\n height: '40px',\n },\n footer: {\n // stickyBottom: true,\n // zIndex: 2,\n padding: '3px',\n },\n // body: {\n // background: '#fff',\n // padding: '4px 5px',\n // textAlign: 'center',\n // },\n // firstColumn: {\n // stickyLeft: true,\n // zIndex: 1,\n // },\n lastColumn: {\n // stickyRight: true,\n // zIndex: 1,\n },\n};\n","export enum SearchOperator {\n And = 'And',\n Or = 'Or',\n}\n","export enum SearchPropertySign {\n EQ = 'EQ',\n NEQ = 'NEQ',\n GT = 'GT',\n GTE = 'GTE',\n LT = 'LT',\n LTE = 'LTE',\n LIKE = 'LIKE',\n}\n","export enum OAuthType {\n InApp = 'InApp',\n Google = 'Google',\n Facebook = 'Facebook',\n OAuth = 'OAuth',\n MicrosoftAD = 'MicrosoftAD',\n}\n","export enum UserAccessRequestStatus {\n Pending = 'Pending',\n Approved = 'Approved',\n Declined = 'Declined',\n}\n","export enum SearchPropertyValueType {\n Int = 'Int',\n Float = 'Float',\n Decimal = 'Decimal',\n Double = 'Double',\n String = 'String',\n Bool = 'Bool',\n Date = 'Date',\n}\n","import { DataFilterType, IDataFilter } from 'verben-ng-ui';\nimport { OAuthType } from '../../models/OAuthType';\nimport { ObjectState } from '../../models/object-state';\nimport { UserAccessRequest } from '../../models/user-access-request';\nimport { UserAccessRequestStatus } from '../../models/user-access-request-status';\nimport { SearchPropertyValueType } from '../../models/SearchPropertyValueType';\n\nexport const roles: { id: string; name: string }[] = [\n { id: 'admin', name: 'Admin' },\n { id: 'manager', name: 'Manager' },\n { id: 'staff', name: 'Staff' },\n];\n\nexport const mockData: UserAccessRequest[] = new Array(10)\n .fill(1)\n .map((id, i) => ({\n FirstName: `First ${id + i}`,\n LastName: `Last ${id + i}`,\n OtherName: `Other ${id + i}`,\n Id: id + i,\n id: (id + i).toString(),\n MailAddress: `user${id + i}@mail.com`,\n PhoneNumber: `+23480000000${id + i}`,\n RequestStatus: randomEnum(UserAccessRequestStatus),\n RoleID: roles[Math.floor(Math.random() * roles.length)].id,\n Password: '1234567',\n ExpireOn: new Date(),\n IsSeeded: false,\n OTPExpireOn: new Date(),\n Tenants: [],\n SignupType: OAuthType.InApp,\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: `Tenant${id + i}`,\n Code: '',\n ServiceName: '',\n }));\n\nfunction randomEnum<T extends object>(anEnum: T): T[keyof T] {\n const enumValues = Object.values(anEnum) as unknown as T[keyof T][];\n const randomIndex = Math.floor(Math.random() * enumValues.length);\n return enumValues[randomIndex];\n}\n\nexport function convertDataFilterTypeToSearchPropertyValueType(\n type: DataFilterType\n) {\n switch (type) {\n case DataFilterType.String:\n return SearchPropertyValueType.String;\n case DataFilterType.Integer:\n return SearchPropertyValueType.Int;\n case DataFilterType.Decimal:\n return SearchPropertyValueType.Decimal;\n case DataFilterType.Credit:\n return SearchPropertyValueType.Float;\n case DataFilterType.Date:\n return SearchPropertyValueType.Date;\n case DataFilterType.Bool:\n return SearchPropertyValueType.Bool;\n case DataFilterType.Number:\n return SearchPropertyValueType.Int;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Observable, from } from 'rxjs';\nimport { HttpWebRequestService } from '../../../services/http-web-request.service';\nimport { UserAccessRequest } from '../../../models/user-access-request';\nimport { Paged } from '../../../models/paged';\nimport { Role } from '../../../models/Role';\nimport { SearchPropertyValue } from '../../../models/SearchPropertyValue';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserAccessRequestService {\n private readonly BASE_URL = 'User';\n\n constructor(private httpService: HttpWebRequestService) {}\n\n /**\n * Get user access requests with pagination and sorting\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the user access requests\n */\n getUserAccessRequests(\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<Paged<UserAccessRequest>> {\n const url = `${this.BASE_URL}/GetUserAccessRequests/${skip}/${limit}/${sortParam}/${sortOrder}`;\n return this.httpService.get(url) as Promise<Paged<UserAccessRequest>>;\n }\n\n getRoles(): Promise<Paged<Role>> {\n const url = `Role/GetRoles/0/0`;\n return this.httpService.get(url) as Promise<Paged<Role>>;\n }\n\n /**\n * Get user access requests with additional parameter, pagination and sorting\n * @param param Search parameter\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the filtered user access requests\n */\n getUserAccessRequestWithParam(\n param: string,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<Paged<UserAccessRequest>> {\n const url = `${this.BASE_URL}/GetUserAccessRequestWithParam/${param}/${skip}/${limit}/${sortParam}/${sortOrder}`;\n return this.httpService.get(url) as Promise<Paged<UserAccessRequest>>;\n }\n\n /**\n * Get user access requests with additional parameter, pagination and sorting\n * @param params Filter parameters\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the filtered user access requests\n */\n getUserAccessRequestByFilterParams(\n params: SearchPropertyValue[],\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<Paged<UserAccessRequest>> {\n const url = `${this.BASE_URL}/SearchUserAccessRequest/${skip}/${limit}/${sortParam}/${sortOrder}`;\n return this.httpService.post(url, params) as Promise<\n Paged<UserAccessRequest>\n >;\n }\n\n /**\n * Save multiple user access requests\n * @param requests Array of user access requests to save\n * @returns Promise containing the save operation result\n */\n saveUserAccessRequests(requests: UserAccessRequest[]): Promise<any> {\n const url = `${this.BASE_URL}/SaveUserAccessRequests`;\n return this.httpService.post(url, requests);\n }\n\n /**\n * Approve or reject multiple user access requests\n * @param requests Array of user access requests to save\n * @param isApproval True for approval, false for decline\n * @returns Promise containing the save operation result\n */\n processUserAccessRequests(\n requests: UserAccessRequest[],\n isApproval: boolean\n ): Promise<any> {\n const url = `${this.BASE_URL}/UserAccessRequestAction/${isApproval}`;\n return this.httpService.post(url, requests);\n }\n\n /**\n * Delete multiple user access requests\n * @param requestIds Array of request IDs to delete\n * @returns Observable containing the delete operation result\n */\n deleteUserAccessRequests(requestIds: string[]): Observable<any> {\n const url = `${this.BASE_URL}/DeleteUserAccessRequests`;\n return this.httpService.delete(`${url}?data=${requestIds.join(',')}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { QueryParams } from '../../../models/query-params';\nimport { UserAccessRequest } from '../../../models/user-access-request';\nimport { Role } from '../../../models/Role';\nimport { IDataFilter } from 'verben-ng-ui';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserAccessRequestState {\n private updating$ = new BehaviorSubject<boolean>(false);\n private requests$ = new BehaviorSubject<UserAccessRequest[]>([]);\n private roles$ = new BehaviorSubject<Role[]>([]);\n private searchTerm$ = new BehaviorSubject<string>('');\n private queryParams$ = new BehaviorSubject<QueryParams<UserAccessRequest>>({\n skip: 0,\n limit: 20,\n sortParam: 'CreatedAt',\n sortOrder: 'asc',\n });\n private filterParams$ = new BehaviorSubject<IDataFilter[]>([]);\n\n isUpdating$(): Observable<boolean> {\n return this.updating$.asObservable();\n }\n\n setUpdating(isUpdating: boolean): void {\n this.updating$.next(isUpdating);\n }\n\n getRequests$(): Observable<UserAccessRequest[]> {\n return this.requests$.asObservable();\n }\n\n setRequests(requests: UserAccessRequest[]): void {\n this.requests$.next(requests);\n }\n\n getFilterParams$(): Observable<IDataFilter[]> {\n return this.filterParams$.asObservable();\n }\n\n setFilterParams(params: IDataFilter[]): void {\n this.filterParams$.next(params);\n }\n\n getRoles$(): Observable<Role[]> {\n return this.roles$.asObservable();\n }\n\n setRoles(roles: Role[]): void {\n this.roles$.next(roles);\n }\n\n appendRequests(newRequests: UserAccessRequest[]): void {\n const currentRequests = this.requests$.getValue();\n this.requests$.next([...currentRequests, ...newRequests]);\n }\n\n getSearchTerm$(): Observable<string> {\n return this.searchTerm$.asObservable();\n }\n\n getSearchTermValue(): string {\n return this.searchTerm$.getValue();\n }\n\n setSearchTerm(term: string): void {\n this.searchTerm$.next(term);\n }\n\n getQueryParams$(): Observable<QueryParams<UserAccessRequest>> {\n return this.queryParams$.asObservable();\n }\n\n getQueryParamsValue(): QueryParams<UserAccessRequest> {\n return this.queryParams$.getValue();\n }\n\n updateQueryParams(params: Partial<QueryParams<UserAccessRequest>>): void {\n this.queryParams$.next({ ...this.queryParams$.getValue(), ...params });\n }\n\n resetPagination(): void {\n const currentParams = this.queryParams$.getValue();\n this.queryParams$.next({ ...currentParams, skip: 0 });\n }\n\n addRequest(request: UserAccessRequest): void {\n const currentValue = this.requests$.getValue();\n this.requests$.next([...currentValue, request]);\n }\n\n updateRequest(updatedRequest: UserAccessRequest): void {\n const requests = this.requests$.getValue();\n const index = requests.findIndex((r) => r.Id === updatedRequest.Id);\n if (index !== -1) {\n requests[index] = updatedRequest;\n this.requests$.next([...requests]);\n }\n }\n\n removeRequest(requestId: string): void {\n const currentValue = this.requests$.getValue();\n this.requests$.next(currentValue.filter((r) => r.Id !== requestId));\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n Observable,\n Subject,\n catchError,\n debounceTime,\n distinctUntilChanged,\n from,\n lastValueFrom,\n takeUntil,\n tap,\n throwError,\n} from 'rxjs';\nimport { UserAccessRequestState } from '../states/user-access-request.state';\nimport { UserAccessRequest } from '../../../models/user-access-request';\nimport { QueryParams } from '../../../models/query-params';\nimport { UserAccessRequestService } from '../services/user-access-request.service';\nimport { UserAccessRequestStatus } from '../../../models/user-access-request-status';\nimport { SearchOperator } from '../../../models/SearchOperator';\nimport { SearchPropertySign } from '../../../models/SearchPropertySign';\n\nimport { Role } from '../../../models/Role';\nimport { UtilService } from '../../../services/util.service';\nimport { IDataFilter } from 'verben-ng-ui';\nimport { convertDataFilterTypeToSearchPropertyValueType } from '../helper';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserAccessRequestFacade {\n private searchSubject = new Subject<string>();\n private destroy$ = new Subject<void>();\n\n constructor(\n private userAccessRequestService: UserAccessRequestService,\n private userAccessRequestState: UserAccessRequestState,\n private utilService: UtilService\n ) {\n // Set up debounced search handling\n this.searchSubject\n .pipe(\n debounceTime(1000),\n distinctUntilChanged(),\n takeUntil(this.destroy$)\n )\n .subscribe((searchTerm) => {\n this.handleSearch(searchTerm);\n });\n\n this.isUpdating$().subscribe((loading) => {\n this.utilService.sendBI(loading);\n });\n\n this.getFilterParams$().subscribe((params) => {\n if (params.length) {\n } else {\n this.loadRequests();\n }\n });\n }\n\n destroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n isUpdating$(): Observable<boolean> {\n return this.userAccessRequestState.isUpdating$();\n }\n\n getRequests$(): Observable<UserAccessRequest[]> {\n return this.userAccessRequestState.getRequests$();\n }\n\n getFilterParams$(): Observable<IDataFilter[]> {\n return this.userAccessRequestState.getFilterParams$();\n }\n\n getRoles$(): Observable<Role[]> {\n return this.userAccessRequestState.getRoles$();\n }\n\n getQueryParams$(): Observable<QueryParams<UserAccessRequest>> {\n return this.userAccessRequestState.getQueryParams$();\n }\n\n getSearchTerm$(): Observable<string> {\n return this.userAccessRequestState.getSearchTerm$();\n }\n\n // Search handling\n search(term: string): void {\n this.searchSubject.next(term);\n }\n\n private async handleSearch(searchTerm: string): Promise<void> {\n this.userAccessRequestState.setSearchTerm(searchTerm);\n this.userAccessRequestState.resetPagination();\n\n try {\n this.userAccessRequestState.setUpdating(true);\n if (searchTerm.trim()) {\n await this.loadRequestsWithParam(searchTerm);\n } else {\n await this.loadRequests();\n }\n } catch (error) {\n console.error('Search failed:', error);\n throw error;\n } finally {\n this.userAccessRequestState.setUpdating(false);\n }\n }\n\n async filter(filterParams: IDataFilter[]): Promise<void> {\n this.userAccessRequestState.resetPagination();\n this.userAccessRequestState.setFilterParams(filterParams);\n }\n\n // Load more handling\n async loadMore(): Promise<void> {\n try {\n this.userAccessRequestState.setUpdating(true);\n const currentParams = this.userAccessRequestState.getQueryParamsValue();\n const searchTerm = this.userAccessRequestState.getSearchTermValue();\n\n // Update skip value\n const newSkip = currentParams.skip + currentParams.limit;\n this.userAccessRequestState.updateQueryParams({ skip: newSkip });\n\n // Load and append data\n const response = searchTerm\n ? await this.userAccessRequestService.getUserAccessRequestWithParam(\n searchTerm,\n newSkip,\n currentParams.limit,\n currentParams.sortParam || 'createdDate',\n currentParams.sortOrder\n )\n : await this.userAccessRequestService.getUserAccessRequests(\n newSkip,\n currentParams.limit,\n currentParams.sortParam || 'createdDate',\n currentParams.sortOrder\n );\n\n this.userAccessRequestState.appendRequests(response.Result);\n } catch (error) {\n console.error('Load more failed:', error);\n throw error;\n } finally {\n this.userAccessRequestState.setUpdating(false);\n }\n }\n\n async loadRequests(): Promise<void> {\n try {\n this.userAccessRequestState.setUpdating(true);\n const params = this.userAccessRequestState.getQueryParamsValue();\n\n const requests =\n await this.userAccessRequestService.getUserAccessRequests(\n params.skip,\n params.limit,\n params.sortParam || 'createdDate',\n params.sortOrder\n );\n\n this.userAccessRequestState.setRequests(requests.Result);\n } catch (error) {\n console.error('Failed to load requests:', error);\n throw error;\n } finally {\n this.userAccessRequestState.setUpdating(false);\n }\n }\n\n async loadRoles(): Promise<void> {\n try {\n // this.userAccessRequestState.setUpdating(true);\n // const params = this.userAccessRequestState.getQueryParamsValue();\n\n const requests = await this.userAccessRequestService.getRoles();\n\n this.userAccessRequestState.setRoles(requests.Result);\n } catch (error) {\n console.error('Failed to load requests:', error);\n throw error;\n } finally {\n // this.userAccessRequestState.setUpdating(false);\n }\n }\n\n async loadRequestsWithParam(param: string): Promise<void> {\n try {\n this.userAccessRequestState.setUpdating(true);\n const params = this.userAccessRequestState.getQueryParamsValue();\n\n const requests =\n await this.userAccessRequestService.getUserAccessRequestWithParam(\n param,\n params.skip,\n params.limit,\n params.sortParam || 'createdDate',\n params.sortOrder\n );\n\n this.userAccessRequestState.setRequests(requests.Result);\n } catch (error) {\n console.error('Failed to load requests with param:', error);\n throw error;\n } finally {\n this.userAccessRequestState.setUpdating(false);\n }\n }\n\n async loadRequestsByFilterParams(filterParams: IDataFilter[]): Promise<void> {\n try {\n this.userAccessRequestState.setUpdating(true);\n const params = this.userAccessRequestState.getQueryParamsValue();\n\n const requests =\n await this.userAccessRequestService.getUserAccessRequestByFilterParams(\n filterParams.map((filter) => ({\n PropertyName: filter.name,\n EntityValue: filter.value,\n type: convertDataFilterTypeToSearchPropertyValueType(filter.type),\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n })),\n params.skip,\n params.limit,\n params.sortParam || 'createdDate',\n params.sortOrder\n );\n\n this.userAccessRequestState.setRequests(requests.Result);\n } catch (error) {\n console.error('Failed to load requests with param:', error);\n throw error;\n } finally {\n this.userAccessRequestState.setUpdating(false);\n }\n }\n\n updateQueryParams(params: Partial<QueryParams<UserAccessRequest>>): void {\n this.userAccessRequestState.updateQueryParams(params);\n this.loadRequests();\n }\n\n async addRequest(request: Partial<UserAccessRequest>): Promise<void> {\n try {\n this.userAccessRequestState.setUpdating(true);\n const newRequest = { ...request } as UserAccessRequest;\n this.userAccessRequestState.addRequest(newRequest);\n\n await this.userAccessRequestService.saveUserAccessRequests([newRequest]);\n await this.loadRequests(); // Reload to get server-side changes\n } catch (error) {\n console.error('Failed to add request:', error);\n this.userAccessRequestState.removeRequest(request.Id!);\n throw error;\n } finally {\n this.userAccessRequestState.setUpdating(false);\n }\n }\n\n async updateRequest(request: UserAccessRequest): Promise<void> {\n try {\n this.userAccessRequestState.setUpdating(true);\n await this.userAccessRequestService.saveUserAccessRequests([request]);\n this.userAccessRequestState.updateRequest(request);\n } catch (error) {\n console.error('Failed to update request:', error);\n throw error;\n } finally {\n this.userAccessRequestState.setUpdating(false);\n }\n }\n\n async deleteRequest(requestId: string): Promise<void> {\n try {\n this.userAccessRequestState.setUpdating(true);\n await lastValueFrom(\n this.userAccessRequestService.deleteUserAccessRequests([requestId])\n );\n this.userAccessRequestState.removeRequest(requestId);\n } catch (error) {\n console.error('Failed to delete request:', error);\n throw error;\n } finally {\n this.userAccessRequestState.setUpdating(false);\n }\n }\n\n async approveRequest(request: UserAccessRequest): Promise<void> {\n try {\n this.userAccessRequestState.setUpdating(true);\n const response =\n await this.userAccessRequestService.processUserAccessRequests(\n [request],\n true\n );\n // console.log(response);\n const data = (response as UserAccessRequest[])?.[0];\n if (data) {\n this.userAccessRequestState.updateRequest(data);\n }\n } catch (error) {\n console.error('Failed to update request:', error);\n throw error;\n } finally {\n this.userAccessRequestState.setUpdating(false);\n }\n }\n}\n\nenum DateFilterTypes {\n Before = SearchPropertySign.LT,\n On = SearchPropertySign.EQ,\n After = SearchPropertySign.GT,\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { CardData } from 'verben-ng-ui';\nimport { Role } from '../../../models/Role';\nimport { UserAccessRequestStatus } from '../../../models/user-access-request-status';\n\ninterface UserFormData {\n MailAddress: string;\n Name: string;\n PhoneNumber: string;\n}\n\n@Component({\n selector: 'lib-user-request-form',\n templateUrl: './user-request-form.component.html',\n styleUrl: './user-request-form.component.css',\n})\nexport class UserRequestFormComponent {\n @Input() roles: Role[] = [];\n @Input()\n get currentData(): CardData | null {\n return this._currentData;\n }\n set currentData(value: CardData | null) {\n this._currentData = value;\n console.log(value?.data);\n if (value?.data) {\n this.form.patchValue({\n MailAddress: value.data.MailAddress || '',\n FirstName: value.data.FirstName || '',\n LastName: value.data.LastName || '',\n OtherName: value.data.OtherName || '',\n PhoneNumber: value.data.PhoneNumber || '',\n RoleID: value.data.RoleID || '',\n });\n } else {\n this.form.reset();\n }\n }\n\n private _currentData: CardData | null = null;\n\n @Output() switchView = new EventEmitter<undefined>();\n @Output() onApproval = new EventEmitter<{ email: string; role: string }>();\n\n form: FormGroup;\n\n // roles: WritableSignal<Role[]> = signal([]);\n\n constructor(private fb: FormBuilder) {\n this.form = this.fb.group({\n MailAddress: ['', { readonly: true }],\n FirstName: ['', { readonly: true }],\n LastName: ['', { readonly: true }],\n OtherName: ['', { readonly: true }],\n PhoneNumber: ['', { readonly: true }],\n RoleID: ['', { validators: [Validators.required] }],\n });\n }\n\n ngOnInit(): void {\n // this.userAccessRequestFacade.getRoles$().subscribe((data) => {\n // this.roles.set(data);\n // });\n // try {\n // this.userAccessRequestFacade.loadRoles();\n // } catch (error) {\n // // Handle error\n // }\n console.log(this.currentData?.data);\n }\n\n onSave(): void {\n if (this.form.valid) {\n // Emit save event with form value\n console.log('Form saved:', this.form.value);\n }\n }\n\n onDelete(): void {\n // Emit delete event\n console.log('Delete requested');\n }\n\n disableProcessing(): boolean {\n return (\n this.currentData?.data?.RequestStatus !==\n UserAccessRequestStatus.Pending || !this.form.valid\n );\n }\n}\n","<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\"\n>\n <verbena-input\n name=\"MailAddress\"\n label=\"Mail Address:\"\n formControlName=\"MailAddress\"\n [readOnly]=\"true\"\n />\n <verbena-input\n label=\"First Name:\"\n name=\"FirstName\"\n type=\"text\"\n formControlName=\"FirstName\"\n [readOnly]=\"true\"\n />\n <verbena-input\n label=\"Last Name:\"\n name=\"LastName\"\n type=\"text\"\n formControlName=\"LastName\"\n [readOnly]=\"true\"\n />\n <verbena-input\n label=\"OtherName:\"\n name=\"OtherName\"\n type=\"text\"\n formControlName=\"OtherName\"\n [readOnly]=\"true\"\n />\n <verbena-input\n label=\"Phone Number:\"\n name=\"PhoneNumber\"\n type=\"tel\"\n formControlName=\"PhoneNumber\"\n [readOnly]=\"true\"\n />\n\n <div class=\"space-y-1\">\n <label for=\"role\">Role</label>\n\n <verben-drop-down\n label=\"Role\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [filter]=\"true\"\n [showClear]=\"true\"\n placeholder=\"\"\n [(options)]=\"roles\"\n id=\"role\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n formControlName=\"RoleID\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <!-- buttons -->\n <div class=\"flex justify-between my-2\">\n <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Reject\"\n styleType=\"danger\"\n borderRadius=\"10px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button>\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Switch To Table\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n <verbena-button\n (click)=\"\n onApproval.emit({\n email: form.get('MailAddress')?.value,\n role: form.get('RoleId')?.value\n })\n \"\n text=\"Approve\"\n bgColor=\"#28a745\"\n textColor=\"white\"\n border=\"1px solid #28a745\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button>\n </div>\n</form>\n","import { Component, Input } from '@angular/core';\nimport { UserAccessRequestStatus } from '../../../models/user-access-request-status';\n\n@Component({\n selector: 'lib-user-access-request-status-badge',\n templateUrl: './user-access-request-status-badge.component.html',\n styleUrl: './user-access-request-status-badge.component.css',\n})\nexport class UserAccessRequestStatusBadgeComponent {\n @Input() status: UserAccessRequestStatus = UserAccessRequestStatus.Pending;\n\n badgeConfig() {\n switch (this.status) {\n case UserAccessRequestStatus.Approved:\n return { bgColor: '#CAE1CC', textColor: '#4ABB54', label: 'Approved' };\n case UserAccessRequestStatus.Declined:\n return { bgColor: '#FFDFDF', textColor: '#EB5757', label: 'Rejected' };\n default:\n return { bgColor: '#827C7C', textColor: '#C3C3C3', label: 'Pending' };\n }\n }\n}\n","<verbena-badge\n borderRadius=\"9px\"\n [bgColor]=\"badgeConfig().bgColor\"\n [textColor]=\"badgeConfig().textColor\"\n fontSize=\"12px\"\n [text]=\"badgeConfig().label\"\n [pd]=\"'2px 6px'\"\n></verbena-badge>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n OnInit,\n Signal,\n signal,\n ViewChild,\n WritableSignal,\n} from '@angular/core';\nimport { columns } from './access-request.columns';\nimport { baseStyle } from './base-table-style';\nimport { UserAccessRequest } from '../../models/user-access-request';\nimport { Role } from '../../models/Role';\nimport {\n CardData,\n CardDataViewComponent,\n ColumnDefinition,\n DataFilterType,\n DataViewComponent,\n IDataFilter,\n} from 'verben-ng-ui';\nimport { UserAccessRequestFacade } from './facades/user-access-request.facade';\n\ninterface UserFormData {\n MailAddress: string;\n Name: string;\n PhoneNumber: string;\n}\n\n@Component({\n selector: 'lib-user-request-approval',\n templateUrl: './user-request-approval.component.html',\n styleUrl: './user-request-approval.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UserRequestApprovalComponent implements OnInit {\n @ViewChild('vdcv') cardDataView!: CardDataViewComponent;\n @ViewChild('vdv') dataView!: DataViewComponent;\n\n columns: ColumnDefinition<UserAccessRequest>[] = columns;\n // visibleColumnDef: WritableSignal<ColumnDefinition<UserAccessRequest>[]> =\n // signal(columns);\n visibleColumnDef = this.columns;\n data: WritableSignal<UserAccessRequest[]> = signal([]);\n styles = baseStyle;\n currentData: CardData | null = null;\n isGridView = true;\n selected: CardData | null = null;\n\n cardData: Signal<CardData[]> = computed(() =>\n this.data()?.map(\n ({\n FirstName,\n LastName,\n MailAddress,\n PhoneNumber,\n RoleID,\n RequestStatus,\n Role,\n }) => ({\n selected: false,\n title: `${FirstName} ${LastName}`,\n data: {\n FirstName,\n LastName,\n MailAddress,\n PhoneNumber,\n RoleID,\n RequestStatus,\n Role,\n } as Partial<UserAccessRequest>,\n body: [{ title: 'Role', value: Role?.Name ?? '' }],\n children: [],\n })\n )\n );\n\n roles: WritableSignal<Role[]> = signal([]);\n\n constructor(\n private cdr: ChangeDetectorRef,\n // private service: UserRequestApprovalService,\n private userAccessRequestFacade: UserAccessRequestFacade\n ) {}\n\n async ngOnInit() {\n // this.data = this.service.getMockUserRequests();\n this.userAccessRequestFacade.getRequests$().subscribe((data) => {\n this.data.set(data);\n });\n\n this.userAccessRequestFacade.getRoles$().subscribe((data) => {\n this.roles.set(data);\n });\n\n try {\n this.userAccessRequestFacade.loadRequests();\n this.userAccessRequestFacade.loadRoles();\n } catch (error) {\n // Handle error\n }\n }\n\n ngOnDestroy() {\n this.userAccessRequestFacade.destroy();\n }\n\n handleSearch(event: { key: string; value: string }) {\n this.userAccessRequestFacade.search(event.value);\n }\n\n async loadMore() {\n try {\n await this.userAccessRequestFacade.loadMore();\n } catch (error) {\n // Handle error\n }\n }\n\n // To search with parameter:\n async searchRequests(param: string) {\n try {\n await this.userAccessRequestFacade.loadRequestsWithParam(param);\n } catch (error) {\n // Handle error\n }\n }\n\n async onApprove(approvalData: { email: string; role: string }) {\n const data = this.data().find(\n ({ MailAddress }) => MailAddress === approvalData.email\n );\n\n if (data) {\n await this.userAccessRequestFacade.approveRequest({\n ...data,\n RoleID: approvalData.role,\n });\n }\n }\n\n openDetailView(mailAddress: string) {\n const cardItem = this.getCardDataByMailAddress(mailAddress);\n if (cardItem && this.cardDataView) {\n this.dataView.toggleView();\n // First reset all selections\n this.cardData().forEach((item) => {\n item.selected = false;\n if (item.children) {\n item.children.forEach((child) => (child.selected = false));\n }\n });\n\n // Set the selected item\n cardItem.selected = true;\n this.currentData = this.cardDataView.onItemClick(cardItem);\n\n // Force change detection if needed\n // this.changeDetectorRef.detectChanges();\n }\n }\n\n getCardDataByMailAddress(mailAddress: string): CardData | undefined {\n return this.cardData().find(({ data }) => data.MailAddress === mailAddress);\n }\n\n onViewChange(isGridView: boolean): void {\n this.isGridView = isGridView;\n // Reset selection when switching views\n if (this.currentData) {\n this.cardDataView?.clearData();\n this.currentData = null;\n }\n\n console.log('SELECTED', this.selected);\n\n if (this.selected) {\n this.cardDataView.onItemClick(this.selected);\n }\n }\n\n openFormView(index: number) {\n const item = this.cardData()[index];\n console.log('ITEM = ', item);\n }\n\n handleExport(exportedData: Partial<any>[]) {\n console.log('Exported data:', exportedData);\n this.downloadCSV(exportedData);\n }\n\n /**\n * @param data Simple csv export for testing\n */\n private downloadCSV(data: Partial<any>[]) {\n const headers = Object.keys(data[0]);\n const csvContent = [\n headers.join(','),\n ...data.map((row) => headers.map((header) => row[header]).join(',')),\n ].join('\\n');\n\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const link = document.createElement('a');\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', 'export.csv');\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n\n onSelectionChange(selectedRows: UserAccessRequest[]) {\n console.log('Selection changed:', selectedRows);\n // Handle the selection change\n }\n\n /**\n * Copied over from card view doc until I understand usage\n */\n selectedColumnCount: number = 0;\n selectedFilterTableCount: number = 0;\n isOPen: boolean = true;\n selectedSortCount: number = 0;\n showColumn: boolean = false;\n showSort: boolean = false;\n selectedAll: boolean = false;\n visibleColumns: IDataFilter[] = columns.map((col) => ({\n checked: true,\n name: typeof col.header === 'string' ? col.header : col.id,\n type: DataFilterType.Bool,\n }));\n filterArray: IDataFilter[] = [\n {\n name: 'Name',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'MailAddress',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'PhoneNumber',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'CreatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n ];\n\n sortOptions: IDataFilter[] = [\n {\n name: 'Name',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'MailAddress',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'PhoneNumber',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'CreatedAt',\n type: DataFilterType.Date,\n checked: true,\n },\n ];\n clearData() {\n this.currentData = {} as CardData;\n }\n\n onColumnChange(event: boolean) {\n this.showColumn = event;\n }\n onSortChange(event: boolean) {\n this.showSort = event;\n console.log(event);\n }\n onColumnsUpdated(updatedColumns: IDataFilter[]) {\n console.log(updatedColumns);\n const updatedColumnDef: ColumnDefinition<UserAccessRequest>[] = [];\n updatedColumns.forEach((col) => {\n const matchingCol = this.columns.find(\n (column) => column.header === col.name || column.id === col.name\n );\n if (matchingCol) {\n updatedColumnDef.push(matchingCol);\n }\n });\n\n console.log(updatedColumnDef);\n this.visibleColumnDef = [...updatedColumnDef];\n this.cdr.markForCheck();\n\n this.onColumnChange(false);\n this.selectedColumnCount = updatedColumns.length;\n }\n onSortUpdated(updatedSorts: IDataFilter[]) {\n this.onSortChange(false);\n this.selectedSortCount = updatedSorts.length;\n console.log(updatedSorts);\n }\n\n onStateChange(event: { key: string; value: boolean }): void {\n console.log(`State changed for ${event.key}:`, event.value);\n }\n\n onFilterSet(event: IDataFilter[]): void {\n console.log(event);\n this.userAccessRequestFacade.filter(event);\n }\n}\n","<div class=\"space-y-8\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n isCreate: false,\n isToggle: true,\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"0\"\n [selectedSortCount]=\"0\"\n [selectedFilterTableCount]=\"0\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n (onSearchChange)=\"handleSearch($event)\"\n >\n <div table-content>\n <lib-data-table\n [data]=\"data()\"\n [columns]=\"visibleColumnDef\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"status\">\n <ng-template #cell let-value>\n <lib-user-access-request-status-badge\n [status]=\"value\"\n ></lib-user-access-request-status-badge>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value let-deleteRow>\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"openDetailView(value)\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n <!-- <button (click)=\"openDetailView(value)\">Open</button>\n <button (click)=\"selected = cardData[rowIndex]; vdv.toggleView()\">\n Switch\n </button> -->\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n <!-- <ng-template #header>\n <strong>Actions</strong>\n </ng-template> -->\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"MailAddress\"\n border=\"5px\"\n [cardDataList]=\"cardData()\"\n rbgColor=\"#f5f6f9\"\n mg=\"20px\"\n >\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"MailAddress\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\"\n [cardDataList]=\"cardData()\"\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\"\n >\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex-1 flex items-end gap-y-2 gap-x-4 p-4\">\n <div class=\"flex-1 space-y-2\">\n <span\n class=\"font-semibold text-[#404040] flex-1 truncate\"\n >{{ item.title }}</span\n >\n\n <p class=\"flex items-center my-1\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Phone Number:</label\n >\n <span id=\"phone\" class=\"text-sm truncate\">{{\n item.data.PhoneNumber\n }}</span>\n </p>\n </div>\n\n <div class=\"grid gap-y-1\">\n <p class=\"grid\">\n <label\n for=\"role\"\n class=\"text-[10px] font-light text-[#404040]\"\n >Role</label\n >\n <span id=\"role\" class=\"text-sm font-medium\">{{\n item.data?.Role?.Name\n }}</span>\n </p>\n\n <lib-user-access-request-status-badge\n [status]=\"item.data.RequestStatus\"\n ></lib-user-access-request-status-badge>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <lib-user-request-form\n [roles]=\"roles()\"\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n (onApproval)=\"onApprove($event)\"\n ></lib-user-request-form>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"w-full\">\n <div\n [ngClass]=\"{\n 'flex gap-2 items-center': true,\n 'justify-between': true,\n 'justify-end': vdcv.hasCurrentItem()\n }\"\n >\n <verbena-button\n *ngIf=\"!vdcv.hasCurrentItem()\"\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n <div\n class=\"flex {{\n vdcv.hasCurrentItem() ? 'flex-1' : ''\n }} justify-end items-center gap-5\"\n >\n <span class=\"paginator-text\"\n >{{ cardData().length }} records loaded</span\n >\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[#3479E9] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n (filtersApplied)=\"onFilterSet($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data()\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n\n <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-between\">\n <div class=\"message-log-button-container flex justify-between\">\n <verbena-button\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n </div>\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData().length }} records loaded</span>\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[#3479E9] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n</div>\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { UserAccessRequest } from '../../models/user-access-request';\nimport { UserAccessRequestStatus } from '../../models/user-access-request-status';\nimport { ObjectState } from '../../models/object-state';\nimport { mockData } from './helper';\n\nexport interface ServiceConfig {\n resourceEndpoint: string;\n}\n\nexport const SERVICE_CONFIG = new InjectionToken<ServiceConfig>(\n 'ServiceConfig'\n);\n\n@Injectable()\nexport class UserRequestApprovalService {\n // protected readonly baseUrl: string;\n protected readonly resourceEndpoint: string;\n roles: { id: string; name: string }[] = [\n { id: 'admin', name: 'Admin' },\n { id: 'manager', name: 'Manager' },\n { id: 'staff', name: 'Staff' },\n ];\n\n constructor() { // @Inject(SERVICE_CONFIG) config: ServiceConfig // protected httpClient: HttpClient,\n // this.baseUrl = environment.serviceUrl;\n // this.resourceEndpoint = config.resourceEndpoint;\n this.resourceEndpoint = '';\n }\n\n getMockUserRequests(): UserAccessRequest[] {\n return mockData;\n }\n\n // getUserRequests() {\n // return this.httpClient.get<UserAccessRequest[]>(`${this.resourceEndpoint}`);\n // }\n\n // getUserRequestById(id: number) {\n // return this.httpClient.get<UserAccessRequest>(\n // `${this.resourceEndpoint}/${id}`\n // );\n // }\n\n // processUserReuqests(ids: string[], approval: boolean = true) {\n // return this.httpClient.post<UserAccessRequest[]>(\n // `${this.resourceEndpoint}`,\n // ids\n // );\n // }\n}\n\nfunction randomEnum<T extends object>(anEnum: T): T[keyof T] {\n const enumValues = Object.values(anEnum) as unknown as T[keyof T][];\n const randomIndex = Math.floor(Math.random() * enumValues.length);\n return enumValues[randomIndex];\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UserRequestApprovalComponent } from './user-request-approval.component';\nimport {\n CardDataViewModule,\n CardModule,\n DataExportModule,\n DataTableModule,\n DataViewModule,\n DropDownModule,\n SortTableModule,\n SvgModule,\n TableFilterModule,\n VerbenaBadgeModule,\n VerbenaButtonModule,\n VerbenaInputModule,\n VisibleColumnModule,\n} from 'verben-ng-ui';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { UserRequestFormComponent } from './user-request-form/use-request-form.component';\nimport { UserAccessRequestStatusBadgeComponent } from './user-access-request-status-badge/user-access-request-status-badge.component';\nimport { UserRequestApprovalService } from './user-request-approval.service';\n\n@NgModule({\n declarations: [\n UserRequestApprovalComponent,\n UserRequestFormComponent,\n UserAccessRequestStatusBadgeComponent,\n ],\n imports: [\n CommonModule,\n\n DataTableModule,\n CardModule,\n SvgModule,\n DataViewModule,\n CardDataViewModule,\n SortTableModule,\n VisibleColumnModule,\n TableFilterModule,\n DataExportModule,\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n VerbenaBadgeModule,\n DropDownModule,\n ],\n providers: [UserRequestApprovalService],\n exports: [UserRequestApprovalComponent, UserAccessRequestStatusBadgeComponent],\n})\nexport class LibUserRequestApprovalModule {}\n","import { UserManagement } from './../../models/user-management';\nimport { ColumnDefinition } from 'verben-ng-ui';\n\n\nexport const columns: ColumnDefinition<UserManagement>[] = [\n {\n id: 'select',\n header: '',\n },\n {\n id: 'createdAt',\n header: 'CREATED',\n accessorKey: 'CreatedAt',\n },\n {\n id: 'user',\n header: 'NAME',\n accessorFn: (row) => `${row.FirstName} ${row.LastName}`,\n },\n {\n id: 'mail',\n header: 'E-MAIL',\n accessorKey: 'MailAddress',\n },\n\n {\n id: 'address',\n header: 'ADDRESS',\n accessorKey: 'Address',\n },\n {\n id: 'phone',\n header: 'PHONE NUMBER',\n accessorKey: 'PhoneNumber',\n },\n {\n id: 'role',\n header: 'ROLE',\n accessorKey: 'Role',\n },\n {\n id: 'status',\n header: 'STATUS',\n accessorKey: 'Status',\n },\n {\n id: 'actions',\n header: 'ACTIONS',\n accessorKey: 'MailAddress',\n },\n];\n","export const baseStyle: any = {\n width:\"100%\",\n fontFamily: '\"Fraunces\", serif',\n fontSize: '125%',\n whiteSpace: 'nowrap',\n margin: '0',\n border: '1px solid #D4A007',\n borderRadius: '16px',\n borderCollapse: 'separate',\n borderSpacing: '0',\n // tableLayout: 'fixed',\n overflow: 'hidden',\n rows: {\n even: {\n backgroundColor: '#FDFDFD',\n },\n odd: {\n backgroundColor: '#F1F4FB',\n },\n height: '68px',\n },\n cells: {\n padding: '0.5rem 1rem',\n },\n header: {\n stickyTop: true,\n zIndex: 2,\n backgroundColor: '#EFF2FB',\n fontWeight: 'bold',\n textAlign: 'left',\n padding: '12px 16px',\n height: '30px',\n },\n footer: {\n // stickyBottom: true,\n // zIndex: 2,\n padding: '3px',\n },\n // body: {\n // background: '#fff',\n // padding: '4px 5px',\n // textAlign: 'center',\n // },\n // firstColumn: {\n // stickyLeft: true,\n // zIndex: 1,\n // },\n lastColumn: {\n // stickyRight: true,\n // zIndex: 1,\n },\n};\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { CardData } from 'verben-ng-ui';\nimport { Role } from '../../../models/Role';\nimport { Status } from '../../../models/status';\n\n\ninterface UserFormData {\n MailAddress: string;\n FirstName: string;\n PhoneNumber: string;\n}\n\n@Component({\n selector: 'lib-user-request-form',\n templateUrl: './user-management-form.component.html',\n styleUrl: './user-management-form.component.css',\n})\nexport class UserManagementFormComponent {\n // @Input() roles: Role[] = [];\n // @Input() status: Status[] = [];\n \n @Input() set currentData(value: CardData | null) {\n if (value?.data) {\n this.form.patchValue({\n MailAddress: value.data.MailAddress || '',\n FirstName: value.data.FirstName || '',\n PhoneNumber: value.data.PhoneNumber || '',\n Address: value.data.Address || '',\n Role: value.data.RoleID || '',\n Status: value.data.Status || '',\n });\n } else {\n this.form.reset();\n }\n }\n \n @Output() switchView = new EventEmitter<undefined>();\n @Output() onApproval = new EventEmitter<{ email: string; role: string }>();\n\n\n form: FormGroup;\n\n roles: { id: string; name: string }[] = [\n { id: 'admin', name: 'Admin' },\n { id: 'manager', name: 'Manager' },\n { id: 'staff', name: 'Staff' },\n ];\n status: { id: string; name: string }[] = [\n { id: '1', name: 'Active' },\n { id: '2', name: 'pending' },\n { id: '3', name: 'Approved' },\n ];\n\n \n\n constructor(private fb: FormBuilder) {\n this.form = this.fb.group({\n MailAddress: ['', { readonly: true }],\n FirstName: ['', { readonly: true }],\n PhoneNumber: ['', { readonly: true }],\n Address: ['', { readonly: true }],\n Status: ['', { readonly: true }],\n Role: ['', { readonly: true }],\n RoleId: [''],\n });\n }\n\n ngOnInit(): void {}\n\n onSave(): void {\n if (this.form.valid) {\n // Emit save event with form value\n console.log('Form saved:', this.form.value);\n }\n }\n\n onDelete(): void {\n // Emit delete event\n console.log('Delete requested');\n }\n}\n","<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4 \"\n>\n\n <verbena-input\n label=\"Name:\"\n name=\"FirstName\"\n type=\"text\"\n \n formControlName=\"FirstName\"\n\n\n />\n <verbena-input\n label=\"Phone Number:\"\n name=\"PhoneNumber\"\n type=\"tel\"\n formControlName=\"PhoneNumber\"\n \n />\n <verbena-input\n name=\"MailAddress\"\n label=\"E-Mail Address:\"\n [type]=\"'email'\"\n formControlName=\"MailAddress\"\n \n />\n\n\n <verbena-input\n label=\"Address\"\n name=\"Address\"\n type=\"text\"\n formControlName=\"Address\"\n \n />\n \n <div class=\"space-y-1\">\n <label for=\"role\">Role</label>\n\n <verben-drop-down\n label=\"Role\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [filter]=\"true\"\n [showClear]=\"true\"\n placeholder=\"\"\n [(options)]=\"roles\"\n id=\"role\"\n optionLabel=\"Name\"\n optionValue=\"Id\"\n formControlName=\"RoleId\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down\n label=\"Status\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [filter]=\"true\"\n [showClear]=\"true\"\n placeholder=\"\"\n [(options)]=\"status\"\n id=\"status\"\n optionLabel=\"Name\"\n optionValue=\"Id\"\n formControlName=\"RoleId\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n <!-- <verbena-input\n label=\"Status\"\n name=\"Status\"\n type=\"text\"\n formControlName=\"Status\"\n \n /> -->\n\n <!-- buttons -->\n\n</form>\n","export enum ConditionOptions {\n LessThan = \"LT\", \n GreaterThan = \"GT\", \n Equal = \"EQ\", \n NotEqual = \"NEQ\", \n On = \"EQ\", \n Before = \"LT\",\n After = \"GT\", \n Yes = \"EQ\", \n No = \"NEQ\" \n}"," import { Injectable } from '@angular/core';\n import { Observable } from 'rxjs';\n import { HttpWebRequestService } from '../../../services/http-web-request.service';\n import { UserManagement } from '../../../models/user-management';\n import { ErrorResponse } from '../../../models/ErrorResponse';\n import { PagedResult } from '../../../models/PagedResult';\n\n @Injectable({\n providedIn: 'root',\n })\n export class UserManagementService {\n // private readonly BASE_URL = 'https://auth.white360.net/User';\n\n constructor(private httpService: HttpWebRequestService) {}\n\n /**\n * Get users with pagination and sorting\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the list of users\n */\n async getUsers(\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<UserManagement[] | ErrorResponse> {\n // var response : User[] | ErrorResponse;\n const url = `User/GetUsers/${skip}/${limit}/${sortParam}/${sortOrder}`;\n const res = await this.httpService.get(url)\n\n if (res instanceof ErrorResponse) {\n return res;\n } else {\n return (res as PagedResult<UserManagement>).Result;\n }\n\n\n }\n\n\n\n /**\n * Get users with an additional search parameter, pagination, and sorting\n * @param param Search parameter\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the filtered list of users\n */\n async getUsersWithParam(\n param: string,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<UserManagement[]> {\n const url = `User/GetUserWithParam/${param}/${skip}/${limit}/${sortParam}/${sortOrder}`;\n return await this.httpService.get(url) as UserManagement[];\n }\n\n async getRealUsers(\n role: string | null,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ){\n let url: string;\n \n if (role) {\n // Role is provided, use the \"GetUserWithParam\" endpoint\n url = `User/GetUserWithParam/${role}/${skip}/${limit}/${sortParam}/${sortOrder}`;\n } else {\n // Role is null, use the \"GetUsers\" endpoint\n url = `User/GetUsers/${skip}/${limit}/${sortParam}/${sortOrder}`;\n }\n \n const res = await this.httpService.get(url);\n \n if (res instanceof ErrorResponse) {\n return res;\n } else {\n return (res as PagedResult<UserManagement>)\n }\n }\n \n\n /**\n * Save multiple users\n * @param users Array of users to save\n * @returns Promise containing the save operation result\n */\n saveUsers(users: UserManagement[]): Promise<any> {\n const url = `User/SaveUsers`;\n return this.httpService.post(url, users);\n }\n\n /**\n * Delete multiple users\n * @param userIds Array of user IDs to delete\n * @returns Observable containing the delete operation result\n */\n deleteUsers(userIds: string[]): Observable<any> {\n const url = `User/DeleteUsers`;\n return this.httpService.delete(`${url}?data=${userIds.join(',')}`);\n }\n }\n","import { Component, Input, ViewChild } from '@angular/core';\nimport { columns } from './user-management.columns';\n\nimport { SearchPropertySign } from '../../models/SearchPropertySign';\nimport { mockData } from './helper';\nimport { UtilService } from '../../services/util.service';\nimport { PagedResult } from '../../models/PagedResult';\nimport { baseStyle } from './base-table-style';\nimport { HttpWebRequestService } from '../../services/http-web-request.service';\nimport { UserManagement } from '../../models/user-management';\n\nimport {\n CardData,\n DataFilterType,\n IDataFilter,\n DropdownLoadEvent,\n DropdownChangeEvent,\n ColumnDefinition,\n ConditionalOptions,\n CardDataViewComponent,\n DataViewComponent,\n} from 'verben-ng-ui';\nimport { UserAccessRequestStatus } from '../../models/user-access-request-status';\nimport { ObjectState } from '../../models/object-state';\nimport { EnvironmentService } from '../../services/environment.service';\nimport { UserManagementService } from './services/user-management.service';\nimport { User } from '../../models/user';\nimport { ErrorResponse } from '../../models/ErrorResponse';\nimport { UserManagementFormComponent } from './user-management-form/use-management-form.component';\nimport { Subject, debounceTime, BehaviorSubject } from 'rxjs';\nimport { ConditionOptions } from '../../models/conditions';\nimport { ActivatedRoute } from '@angular/router';\nimport { UserAccessRequestService } from '../user-request-approval/services/user-access-request.service';\nimport { Role } from '../../models/Role';\n\n\nenum DateFilterTypes {\n Before = SearchPropertySign.LT,\n On = SearchPropertySign.EQ,\n After = SearchPropertySign.GT,\n}\n\n\ninterface TestParentObject {\n Id: string;\n Name: string;\n}\n\n\n@Component({\n selector: 'lib-user-management',\n templateUrl: './user-management.component.html',\n styleUrl: './user-management.component.css',\n})\nexport class UserManagementComponent {\n @ViewChild('vdcv') cardDataView!: CardDataViewComponent;\n @ViewChild('vdv') dataView!: DataViewComponent;\n @ViewChild(UserManagementFormComponent) childComponent!: UserManagementFormComponent;\n private currentSearchTerm: string = '';\n\n\n filteredColumns: ColumnDefinition<UserManagement>[] =columns\n skip: number = 0;\n users:UserManagement[]=[]\n searchTerm$ = new Subject<string>();\n @Input() searchDebounceTime: number = 500;\n @Input() pageSize: number = 1;\n pageState: PagedResult<UserManagement> | null = null;\n errorMessage: string = '';\n appliedFilters: boolean = false;\n isLoading: boolean = false;\n hasMore: boolean = true;\n limit: number = 20;\n sortParam: string = 'name';\n sortOrder: string = 'asc';\n Roles:Role[]=[]\n dataFit: PagedResult<UserManagement> = {\n PageSize: 1,\n Skip: 0,\n Total: 0,\n Result: [],\n LastItem: [''],\n IsLoadingResults: false\n };\n\n \n\n currentFilters: IDataFilter[] = [];\n currentSorts: IDataFilter[] = [];\n\n\n\n role: string = '';\n\n cardContextHistory: CardData[] = [];\n param: string | null | undefined;\n\n constructor(\n private route: ActivatedRoute,\n private userManagementService: UserManagementService,\n private userRole: UserAccessRequestService,\n private server: HttpWebRequestService,\n private utilService: UtilService,\n private envSvc: EnvironmentService\n ) {}\n\n async ngOnInit(): Promise<void> {\n this.selectedParent = '1';\n this.selectedOption = ['Opt 1'];\n this.selectedOptionTwo = ['1'];\n this.selectedOptionThree = '1';\n \n\n this.getRoles()\n this.route.paramMap.subscribe(params => {\n this.role = params.get('role') || ''; // Default to an empty string if no role\n this.fetchUsers();\n });\n \n\n \n }\n\n \n cardData: CardData[] = [];\n\n data: any[] = []; \n\n \n\n\n\n\n async fetchUsers(sortValue: string = 'CreatedAt', order: string = 'asc') {\n this.isLoading = true;\n this.utilService.sendBI(true);\n\n try {\n const res = await this.userManagementService.getRealUsers(this.role, this.skip,this.limit, this.sortParam, this.sortOrder)\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n // Handle error response\n console.error('Error fetching logs:', res);\n } else {\n const response = res as PagedResult<UserManagement>;\n this.dataFit = response;\n this.users = [...this.users, ...response.Result];\n this.cardData = this.formatCardData(this.users);\n this.skip += this.pageSize;\n this.hasMore = this.skip < response.Total;\n }\n } catch (error) {\n console.error('Error:', error);\n } finally {\n this.isLoading = false;\n }\n }\n\n\n async getRoles() {\n this.utilService.sendBI(true);\n \n try {\n const res = await this.userRole.getRoles();\n this.utilService.sendBI(false);\n \n if (res instanceof ErrorResponse) {\n console.error('Error fetching roles:', res);\n return undefined;\n } \n \n const response = res as PagedResult<Role>;\n this.Roles = response.Result;\n \n } catch (error) {\n console.error('Error fetching roles:', error);\n return undefined;\n }\n }\n \nhandleRoleId(value:string){\n const matchedRole = this.Roles.filter((role) => role.Name === value);\n return matchedRole[0]?.Code;\n}\n /**\n * Format users into CardData for the UI library\n * @param users Array of users to format\n * @returns Array of CardData\n */\n private formatCardData(users: User[]): CardData[] {\n return users.map(user => ({\n selected: false, // Default selection state\n title: `${user.FirstName} ${user.LastName}`, // Display user's name as title\n data: { ...user }, // Pass the entire user object\n body: [\n { title: 'Name', value: `${user.FirstName} ${user.LastName}` },\n { title: 'E-Mail Address', value: user.MailAddress },\n { title: 'Phone Number', value: user.PhoneNumber || 'N/A' },\n ],\n children: [], // Add child data if necessary\n }));\n }\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n columns = columns;\n styles = baseStyle;\n\n selectedParent?: string;\n basicOption?: string;\n selectedOption: string[] = [];\n selectedOptionTwo: string[] = [];\n selectedOptionThree?: string;\n missingObject: any;\n\n\n\n // clearLogs(sortValue: string = 'CreatedAt', order: string = 'asc') {\n // this.User = []; // Clear the logs array\n // this.skip = 0; // Reset the skip value\n // this.hasMore = true; // Reset the flag to allow fetching more logs\n // this.appliedFilters = false;\n // this.fetchUsers();\n // }\n\n\n \n\n // Grid view properties\n isGridView: boolean = true;\n currentData!: CardData;\n selectedColumnCount: number = 0;\n selectedFilterTableCount: number = 0;\n isOPen: boolean = true;\n selectedSortCount: number = 0;\n showFilter: boolean = false;\n searchTerm: string = '';\n showColumn: boolean = false;\n showSort: boolean = false;\n selectedAll: boolean = false;\n visibleColumns: IDataFilter[] = columns.map((col) => ({\n checked: false,\n name: typeof col.header === 'string' ? col.header : col.id,\n type: DataFilterType.Bool,\n }));\n\n filterArray: IDataFilter[] = [\n { name: 'FirstName', type: DataFilterType.String, checked: false },\n { name: 'LastName', type: DataFilterType.String, checked: false },\n { name: 'MailAddress', type: DataFilterType.String, checked: false },\n { name: 'Status', type: DataFilterType.String, checked: false },\n { name: 'PhoneNumber', type: DataFilterType.String, checked: false },\n { name: 'CreatedAt', type: DataFilterType.Date, checked: false },\n { name: 'Role', type: DataFilterType.String, checked: false },\n ];\n\n\n\n sortOptions: IDataFilter[] = [\n { name: 'Name', type: DataFilterType.String, checked: false },\n { name: 'MailAddress', type: DataFilterType.String, checked: false },\n { name: 'PhoneNumber', type: DataFilterType.String, checked: false },\n { name: 'CreatedAt', type: DataFilterType.Date, checked: false },\n ];\n\n testParents: TestParentObject[] = [\n { Id: '1', Name: 'Manager' },\n { Id: '2', Name: 'Administrator' },\n { Id: '3', Name: 'Jelom' },\n ];\n\n getParentLabel(context: any): string {\n console.log({ MissingObj: this.missingObject });\n return this.missingObject.Name;\n }\n\n async loadMoreParents(event: DropdownLoadEvent): Promise<TestParentObject[]> {\n console.log({ ParentLoadEvent: JSON.parse(JSON.stringify(event)) });\n return await new Promise((resolve) =>\n setTimeout(\n () =>\n resolve([\n { Id: '1', Name: 'Jimly' },\n { Id: '2', Name: 'Jecil' },\n { Id: '3', Name: 'Jelom' },\n { Id: '4', Name: 'Jemima' },\n { Id: '5', Name: 'Akintunde' },\n ]),\n 3000\n )\n );\n }\n\n\n onSave(): void {\n if (this.childComponent.form.valid) {\n // const userData: User = this.childComponent.form.value;\n // console.log('Payload:', [userData]); // Log the payload to check its structure\n \n // this.userManagementService.saveUsers([userData]).then(\n // (result) => {\n // if (result instanceof ErrorResponse) {\n // console.error('ErrorResponse from server:', result.ErrorMsg);\n // } else {\n // console.log('User saved successfully:', result);\n // }\n // },\n // (error) => {\n // console.error('Unexpected error saving user:', error);\n // }\n // );\n console.log(this.childComponent.form.value);\n \n } else {\n console.error('Form is invalid');\n }\n }\n\n onDelete(): void {\n console.log('Child form delete triggered');\n // Perform delete logic here\n }\n onDropdownChange(event: DropdownChangeEvent): void {\n // console.log({\n // 'Test Parent Value': this.selectedParent,\n // ...\n // });\n }\n\n onSelectionChange(selectedRows: UserManagement[]) {\n console.log('Selection changed:', selectedRows);\n // Handle the selection change\n }\n\n handleExport(exportedData: Partial<any>[]) {\n console.log('Exported data:', exportedData);\n this.downloadCSV(exportedData);\n }\n\n private downloadCSV(data: Partial<any>[]) {\n const headers = Object.keys(data[0]);\n const csvContent = [\n headers.join(','),\n ...data.map((row) => headers.map((header) => row[header]).join(',')),\n ].join('\\n');\n\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const link = document.createElement('a');\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', 'export.csv');\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n\n\n getCardDataByMailAddress(mailAddress: string): CardData | undefined {\n console.log('cardData array:', this.cardData);\n console.log(mailAddress);\n\n return this.cardData.find(({ data }) => data?.MailAddress === mailAddress);\n }\n\n openDetailView(mailAddress: string) {\n const cardItem = this.getCardDataByMailAddress(mailAddress);\n console.log(cardItem);\n\n if (cardItem && this.cardDataView) {\n this.dataView.toggleView();\n // First reset all selections\n this.cardData.forEach((item) => {\n item.selected = false;\n if (item.children) {\n item.children.forEach((child) => (child.selected = false));\n }\n });\n\n // Set the selected item\n cardItem.selected = true;\n this.currentData = this.cardDataView.onItemClick(cardItem);\n\n // Force change detection if needed\n // this.changeDetectorRef.detectChanges();\n }\n }\n\n\n\n\n \n\n\n\n reset() {\n this.skip = 0;\n this.pageSize = 20;\n }\n\n\n clearData() {\n this.currentData = {} as CardData;\n }\n\n \n loadMore() {\n if (this.hasMore) {\n this.fetchUsers();\n }\n }\n\n onColumnChange(event: boolean) {\n this.showColumn = event;\n }\n\n onSortChange(event: boolean) {\n this.showSort = event;\n console.log(event);\n }\n\n onColumnsUpdated(updatedColumns: IDataFilter[]) {\n this.onColumnChange(false);\n this.selectedColumnCount = updatedColumns.length;\n\n if (updatedColumns) {\n // Filter columns to include only visible ones\n this.filteredColumns = this.columns.filter((col) =>\n this.visibleColumns.find(\n (filter) => filter.name === col.header && filter.checked\n )\n );\n \n // Reorder columns based on the order in visibleColumns\n const visibleColumnOrder = this.visibleColumns\n .filter((filter) => filter.checked)\n .map((filter) => filter.name);\n \n this.columns.sort((a, b) => {\n const indexA = visibleColumnOrder.indexOf(a.header as string);\n const indexB = visibleColumnOrder.indexOf(b.header as string);\n return indexA - indexB;\n });\n }\n }\n\n async postSearch(payload: any) {\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `User/SearchUsers/0/10/CreatedAt/asc`,\n payload\n );\n\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.appliedFilters = false;\n return;\n } else {\n this.appliedFilters = true;\n const response = res as PagedResult<UserManagement>;\n this.dataFit = response;\n this.users = response.Result;\n this.cardData = this.formatCardData(this.users) ;\n }\n }\n\n\n \n onFilterApplied(appliedFilter: IDataFilter[]) {\n this.showFilter = false;\n if (Array.isArray(appliedFilter)) {\n this.selectedFilterTableCount = appliedFilter.length;\n console.log(appliedFilter);\n\n const queryParams = appliedFilter\n .filter((filter) => filter.checked)\n .map((filter) => ({\n PropertyName: filter.name,\n EntityValue: filter.name==='Role'?this.handleRoleId(filter.value):filter.value,\n Type: filter.type,\n Operator: 'And',\n Sign: this.getCondition(filter.condition),\n }));\n\n this.postSearch(queryParams);\n }\n }\n\n getCondition(value: any): ConditionOptions | undefined {\n switch (value) {\n case ConditionalOptions.On:\n return ConditionOptions.On;\n case ConditionalOptions.After:\n return ConditionOptions.After;\n case ConditionalOptions.Before:\n return ConditionOptions.Before;\n case ConditionalOptions.NotEqual:\n return ConditionOptions.NotEqual;\n default:\n return undefined; // Explicitly return undefined for invalid cases\n }\n }\n \n onSortUpdated(updatedSorts: IDataFilter[]): void {\n this.currentSorts = updatedSorts;\n \n }\n\n async onSearch(event: { key: string; value: string }) {\n this.searchTerm = event.value;\n this.reset();\n if (!this.searchTerm) {\n this.clearLogs('CreatedAt', 'asc');\n return;\n }\n\n this.isLoading = true;\n this.utilService.sendBI(true);\n\n try {\n const res = await this.server.get(\n `User/GetUserWithParam/${this.searchTerm}/${this.skip}/${this.pageSize}/CreatedAt/asc`\n );\n\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n console.error('Error during search:', res);\n this.appliedFilters = false;\n } else {\n const response = res as PagedResult<UserManagement>;\n this.dataFit = response;\n this.users = response.Result;\n this.cardData = this.formatCardData(this.users);\n\n }\n } catch (error) {\n console.error('Search error:', error);\n this.appliedFilters = false;\n } finally {\n this.isLoading = false;\n }\n }\n\n clearLogs(sortValue: string = 'CreatedAt', order: string = 'asc') {\n this.users= []; // Clear the logs array\n this.skip = 0; // Reset the skip value\n this.hasMore = true; // Reset the flag to allow fetching more logs\n this.appliedFilters = false;\n this.fetchUsers(sortValue, order);\n }\n\n\n \n\n onViewChange(isGridView: boolean): void {}\n\n onStateChange(event: { key: string; value: boolean }): void {\n console.log(`State changed for ${event.key}:`, event.value);\n if (event.key === 'create') {\n console.log('peace is a boy');\n\n \n\n // const newUser = this.newItem()\n\n // if ( newUser && this.cardDataView) {\n // this.dataView.toggleView();\n // // First reset all selections\n // this.cardData.forEach((item) => {\n // item.selected = false;\n // if (item.children) {\n // item.children.forEach((child) => (child.selected = false));\n // }\n // });\n\n // this.currentData = this.cardDataView.onItemClick(newUser);\n\n // // Force change detection if needed\n // // this.changeDetectorRef.detectChanges();\n // }\n }\n }\n}\n","<div class=\"flex flex-col gap-4 message-log-container\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n \n isToggle:true\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"0\"\n (onSearchChange)=\"onSearch($event)\"\n [searchValue]=\"searchTerm\"\n \n [searchValue]=\"searchTerm\"\n [selectedSortCount]=\"0\"\n [showFilterChild]=\"showFilter\"\n [selectedFilterTableCount]=\"0\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n [isTableView]=\"false\"\n >\n <div class=\"mt-2\" table-content>\n <lib-data-table\n [data]=\"users\"\n [columns]=\"filteredColumns\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-container libColumn=\"select\">\n <ng-template #cell let-isSelected=\"isSelected\" let-toggleRowSelection=\"toggleRowSelection\">\n <input type=\"checkbox\" [checked]=\"isSelected\" (change)=\"toggleRowSelection()\" />\n </ng-template>\n <ng-template #header let-allRowsSelected=\"allRowsSelected\" let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\">\n <input type=\"checkbox\" [checked]=\"allRowsSelected()\" [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\" />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value let-deleteRow >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"openDetailView(value)\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n <ng-template #header>\n <strong>Actions</strong>\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"status\">\n <ng-template\n #cell\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-deleteRow=\"deleteRow\"\n let-value=\"value\"\n >\n <verbena-badge\n borderRadius=\"20px\"\n width=\"121px\"\n text=\"{{value}}\"\n bgColor=\"#D6F3E6\"\n textColor=\"#2DB76F\"\n pd=\"5px 15px\"\n fontSize=\"16px\"\n >\n\n\n </verbena-badge>\n </ng-template>\n </ng-container>\n\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"MailAddress\"\n border=\"5px\"\n [cardDataList]=\"cardData\"\n rbgColor=\"#f5f6f9\"\n mg=\"0px\"\n class=\"gap-1\"\n >\n <verben-left-card-data-view class=\"m-0 gap-2\" >\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"MailAddress\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\"\n [cardDataList]=\"cardData\"\n\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <verben-svg\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"vlcd.showChildren(item)\"\n [ngClass]=\"vlcd.showToggle(item) ? 'visible' : 'invisible'\"\n class=\"items-center flex cursor-pointer\"\n [icon]=\"item.isChildrenExpanded ? 'minus' : 'plus'\"\n />\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\"\n >\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex-1 flex items-end gap-y-2 gap-x-4 p-4\">\n <div class=\"flex-1 space-y-2\">\n <span\n class=\"font-semibold text-[#404040] flex-1 truncate\"\n >{{ item.title }}</span\n >\n\n <p class=\"flex items-center my-1\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Phone Number:</label\n >\n <span id=\"phone\" class=\"text-sm truncate\">{{\n item.data.PhoneNumber\n }}</span>\n </p>\n </div>\n\n <div class=\"grid gap-y-1\">\n <p class=\"grid\">\n <label\n for=\"role\"\n class=\"text-[10px] font-light text-[#404040]\"\n >Role</label\n >\n <span id=\"role\" class=\"text-sm font-medium\">{{\n item.data?.Role?.Name\n }}</span>\n </p>\n\n <lib-user-access-request-status-badge\n [status]=\"item.data.RequestStatus\"\n ></lib-user-access-request-status-badge>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <div class=\" bg-secondary-100 py-2 flex flex-col gap-20 px-2\">\n <lib-user-request-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n ></lib-user-request-form>\n <div class=\"flex justify-between bottom-8 left-0 right-0 p-3\">\n <verbena-button text=\"Delete\" bgColor=\"#999999\" textColor=\"white\"\n border=\"1px solid #999999\" (click)=\"onDelete()\"></verbena-button>\n <div class=\"flex gap-3\">\n <verbena-button (click)=\"vdv.toggleView()\" text=\"Switch To Table\"\n styleType=\"ylw-outline\"></verbena-button>\n <verbena-button text=\"Save\" bgColor=\"#FFE681\" (click)=\"onSave()\" textColor=\"#404040\"\n border=\"1px solid #FFE681\">\n <!-- (click)=\"\" -->\n </verbena-button>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"w-full\">\n <div\n [ngClass]=\"{\n 'flex gap-2 items-center': true,\n 'justify-between': true,\n 'justify-end': vdcv.hasCurrentItem()\n }\"\n >\n <verbena-button\n *ngIf=\"!vdcv.hasCurrentItem()\"\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n <div\n class=\"flex {{\n vdcv.hasCurrentItem() ? 'flex-1' : ''\n }} justify-end items-center gap-5\"\n >\n <span class=\"paginator-text\"\n >{{ cardData.length }} records loaded</span\n >\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[#3479E9] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n (filtersApplied)=\"onFilterApplied($event)\"\n \n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n <div *ngIf=\"!vdcv.hasCurrentItem() && this.cardContextHistory.length == 0\"\n class=\"message-log-button-container flex justify-between\">\n \n </div>\n\n <div *ngIf=\"vdv.isTableView\" class=\"w-full flex gap-2 justify-between\">\n <div class=\"message-log-button-container flex justify-between\">\n <verbena-button\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n </div>\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData.length }} records loaded</span>\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[#3479E9] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n</div>\n\n\n","\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UserManagementComponent } from './user-management.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport {\n CardDataViewModule,\n CardModule,\n DataExportModule,\n DataTableModule,\n DataViewModule,\n SortTableModule,\n SvgModule,\n TableFilterModule,\n VerbenaButtonModule,\n VerbenaInputModule,\n VisibleColumnModule,\n DropDownModule,\n\n VerbenaBadgeModule\n} from 'verben-ng-ui';\nimport { UserManagementFormComponent } from './user-management-form/use-management-form.component';\nimport { UserManagementService } from './services/user-management.service';\nimport { LibUserRequestApprovalModule } from '../user-request-approval/user-request-approval.module';\n\n@NgModule({\n declarations: [UserManagementComponent, UserManagementFormComponent],\n imports: [\n HttpClientModule,\n CommonModule,\n\n DataTableModule,\n CardModule,\n SvgModule,\n DataViewModule,\n CardDataViewModule,\n SortTableModule,\n VisibleColumnModule,\n TableFilterModule,\n DataExportModule,\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n VerbenaBadgeModule,\n DropDownModule,\n\n LibUserRequestApprovalModule\n ],\n providers: [UserManagementService],\n exports: [UserManagementComponent],\n})\nexport class LibUserManagementModule {}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'verben-auth-callback',\n templateUrl: './auth-callback.component.html',\n styleUrl: './auth-callback.component.css'\n})\nexport class AuthCallbackComponent implements OnInit {\n code: string = '';\n previousUrl: string = '';\n type: string = '';\n @Input() redirectText?:string;\n \n constructor(private router: Router,\n private route: ActivatedRoute\n ) {}\n\n ngOnInit() {\n this.getType()\n this.handleRedirect();\n }\n \n getType(){ \n const data = localStorage.getItem('type')\n if(data){ \n this.type = JSON.parse(data)\n }\n }\n handleRedirect() {\n const params = new URLSearchParams(window.location.search);\n const code = params.get('code');\n const stateParam = params.get('state');\n console.log({code:code, state:stateParam}, 'data');\n \n\n if (code && stateParam) {\n try {\n const state = JSON.parse(decodeURIComponent(stateParam));\n // const returnTo = state.returnTo || '/';\n const splitStateArray=state.returnTo.split('?');\n const returnTo = splitStateArray.length>0?splitStateArray[0]:state.returnTo;\n const queryParams: any = { code };\n if (this.type) {\n queryParams.type = this.type;\n }\n\n this.router.navigate([returnTo], { queryParams });\n // this.router.navigate([returnTo], { queryParams: { code } });\n } catch (e) {\n const msg = e\n }\n }\n }\n \n}\n","<section class=\"wrapper\"> \n <div class=\"flexWrapper\"> \n <p class=\"{{redirectText}}\">Redirecting ...</p>\n <div class=\"loader\"></div>\n </div>\n</section>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AuthCallbackComponent } from './auth-callback.component';\n\n@NgModule({\n declarations: [AuthCallbackComponent],\n imports: [CommonModule],\n exports: [AuthCallbackComponent]\n})\nexport class AuthCallbackModule {}","import { Injectable, InjectionToken, Inject, Optional } from '@angular/core';\n\nexport const AUTHORIZATION_CONFIG = new InjectionToken<AuthorizationConfig[]>(\n 'authorization_config'\n);\n\nexport interface AuthorizationConfig {\n Name: string;\n Actions: string[];\n}\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthorizationService {\n constructor(\n @Optional()\n @Inject(AUTHORIZATION_CONFIG)\n private auth: AuthorizationConfig[]\n ) {}\n\n get authorizationConfig(): AuthorizationConfig[] {\n return this.auth ? this.auth : [];\n }\n}\n","export const baseStyle: any = {\n width: '100%',\n fontFamily: '\"Fraunces\", serif',\n fontSize: '125%',\n whiteSpace: 'nowrap',\n margin: '0',\n border: '1px solid #D4A007',\n borderRadius: '16px',\n borderCollapse: 'separate',\n borderSpacing: '0',\n // tableLayout: 'fixed',\n overflow: 'hidden',\n rows: {\n even: {\n backgroundColor: '#FDFDFD',\n },\n odd: {\n backgroundColor: '#F1F4FB',\n },\n height: '68px',\n },\n cells: {\n padding: '0.5rem 1rem',\n },\n header: {\n // stickyTop: true,\n // zIndex: 2,\n backgroundColor: '#EFF2FB',\n fontWeight: 'bold',\n textAlign: 'left',\n padding: '12px 16px',\n height: '30px',\n },\n footer: {\n // stickyBottom: true,\n // zIndex: 2,\n padding: '3px',\n },\n // body: {\n // background: '#fff',\n // padding: '4px 5px',\n // textAlign: 'center',\n // },\n // firstColumn: {\n // stickyLeft: true,\n // zIndex: 1,\n // },\n lastColumn: {\n // stickyRight: true,\n // zIndex: 1,\n },\n};\n","export enum UIs {\n ProductDistribution = 'ProductDistribution',\n Terminals = 'Terminals',\n Meters = 'Meters',\n ProductInbound = 'ProductInbound',\n TerminalDocumentation = 'TerminalDocumentation',\n Laboratories = 'Laboratories',\n Surveyors = 'Surveyors',\n Products = 'Products',\n Stocks = 'Stocks',\n Tanks = 'Tanks',\n Customers = 'Customers',\n ProductAllocation = 'ProductAllocation',\n ReleaseManagement = 'ReleaseManagement',\n ProductPricing = 'ProductPricing',\n Purchases = 'Purchases',\n Agents = 'Agents',\n Banks = 'Banks',\n Vendors = 'Vendors',\n Vessels = 'Vessels',\n ExpenseList = 'ExpenseList',\n ProcurementDocumentation = 'ProcurementDocumentation',\n Journal = 'Journal',\n JournalTemplate = 'JournalTemplate',\n RecurringJournal = 'RecurringJournal',\n InterCompanyJournal = 'InterCompanyJournal',\n InterCompanyJournalTemplate = 'InterCompanyJournalTemplate',\n UserManagement = 'UserManagement',\n AccessRequest = 'AccessRequest',\n RolesAndPermissions = 'RolesAndPermissions',\n AuditTrail = 'AuditTrail',\n LogViewer = 'LogViewer',\n MessageHistory = 'MessageHistory',\n MessageConfig = 'MessageConfig',\n MessageList = 'MessageList',\n Config = 'Config',\n Reports = 'Reports',\n}\n","export enum UIActions {\n Save = 'Save',\n Edit = 'Edit',\n Delete = 'Delete',\n}\n","export enum ChildrenType {\n Permission = 'Permission',\n Action = 'Action',\n}\n","export enum SortDirection {\n Asc = 'Asc',\n Desc = 'Desc',\n None = 'None',\n}\n","import { Injectable } from '@angular/core';\nimport { ColumnDefinition } from 'verben-ng-ui';\nimport { Role } from '../../models/Role';\nimport { AuthorizationService } from '../../services/authorization.service';\nimport { MappedRole } from './MappedRole';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RoleControlService {\n constructor() {}\n\n get roleColumns(): ColumnDefinition<MappedRole>[] {\n return [\n {\n id: 'select',\n header: '',\n },\n {\n id: 'createdAt',\n header: 'CREATED',\n accessorKey: 'CreatedAt',\n },\n {\n id: 'updatedAt',\n header: 'UPDATED',\n accessorKey: 'UpdatedAt',\n },\n {\n id: 'name',\n header: 'NAME',\n accessorFn: (row: MappedRole) => {\n return row;\n },\n },\n {\n id: 'permissions',\n header: 'PERMISSIONS',\n accessorFn: (row: MappedRole) => {\n const sum = row.RoleContexts.filter((x) => x.Selected == true).length;\n return `${sum} of ${row.RoleContexts.length} Permissions`;\n },\n },\n {\n id: 'actions',\n header: 'ACTIONS',\n accessorFn: (row: MappedRole) => {\n return row;\n },\n },\n ];\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n QueryList,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { RoleControlService } from './role-control.service';\nimport {\n CardData,\n CardDataViewComponent,\n ColumnDefinition,\n DataFilterType,\n DataTableComponent,\n DataViewComponent,\n IDataFilter,\n VerbenPopUpComponent,\n} from 'verben-ng-ui';\nimport { Role } from '../../models/Role';\nimport { baseStyle } from './base-table-style';\nimport { ObjectState } from '../../models/object-state';\nimport { RoleContext } from '../../models/RoleContext';\nimport { UIs } from './UIs';\nimport { RoleAction } from '../../models/RoleAction';\nimport { UIActions } from './UIActions';\nimport { MappedRole } from './MappedRole';\nimport {\n AuthorizationConfig,\n AuthorizationService,\n} from '../../services/authorization.service';\nimport { MappedRoleContext } from './MappedRoleContext';\nimport { MappedRoleAction } from './MappedRoleAction';\nimport { ChildrenType } from './ChildrenType';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { UtilService } from '../../services/util.service';\nimport { HttpWebRequestService } from '../../services/http-web-request.service';\nimport { ErrorResponse } from '../../models/ErrorResponse';\nimport { PagedResult } from '../../models/PagedResult';\nimport { SearchPropertyValue } from '../../models/SearchPropertyValue';\nimport { SearchOperator } from '../../models/SearchOperator';\nimport { SearchPropertySign } from '../../models/SearchPropertySign';\nimport { EnvironmentService } from '../../services/environment.service';\nimport { ApplicationRoleContext } from '../../models/ApplicationRoleContext';\nimport { ApplicationRoleAction } from '../../models/ApplicationRoleAction';\nimport { SearchPropertyValueType } from '../../models/SearchPropertyValueType';\nimport { debounceTime, Subject } from 'rxjs';\nimport { SortDirection } from '../../models/SortDirection';\n\nenum DateFilterTypes {\n Before = SearchPropertySign.LT,\n On = SearchPropertySign.EQ,\n After = SearchPropertySign.GT,\n}\n\n@Component({\n selector: 'lib-role-control',\n templateUrl: './role-control.component.html',\n styleUrl: './role-control.component.css',\n})\nexport class RoleControlComponent implements OnInit {\n visibleColumnDef: ColumnDefinition<MappedRole>[] = [];\n styles = baseStyle;\n data: MappedRole[] = [];\n cardData: CardData[] = [];\n currentData: CardData | null = null;\n currentExpandedCard: CardData | null = null;\n cardContext: CardData | null = null;\n cardContextHistory: CardData[] = [];\n cardContextHistoryData: CardData[][] = [];\n @ViewChild('vdcv') cardDataView!: CardDataViewComponent;\n @ViewChild('vdv') dataView!: DataViewComponent;\n @ViewChildren('popup') popUps!: QueryList<VerbenPopUpComponent>;\n @ViewChild('dt') tableView!: DataTableComponent<MappedRole>;\n @Input() isGlobal: boolean = true;\n @Input() serviceName: string | null = null;\n @Input() application: string | null = null;\n @Input() pageSize: number = 10;\n @Input() searchDebounceTime: number = 500;\n pageState: PagedResult<Role> | null = null;\n sourceData: AuthorizationConfig[] = [];\n isOpen: boolean = false;\n openDropdownId: string | null = null;\n currentFilters: IDataFilter[] = [];\n currentSorts: IDataFilter[] = [];\n searchTerm$ = new Subject<string>();\n\n visibleColumns: IDataFilter[] = [];\n\n filterArray: IDataFilter[] = [\n {\n name: 'CreatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n {\n name: 'UpdatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n ];\n\n sortOptions: IDataFilter[] = [\n {\n name: 'CreatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n {\n name: 'UpdatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n ];\n\n // private _searchItem: string = '';\n // get searchItem(): string {\n // return this._searchItem\n // }\n // set searchItem(value: string) {\n // this._searchItem = value;\n // this.searchTerm$.next(value);\n // }\n\n // form: FormGroup;\n childPermissionRef: ChildrenType = ChildrenType.Permission;\n\n roleContextsStore: ApplicationRoleContext[] = [];\n roleActionsStore: ApplicationRoleAction[] = [];\n private currentSearchTerm: string = '';\n\n constructor(\n private authService: AuthorizationService,\n private roleControlSvc: RoleControlService,\n private utilService: UtilService,\n private server: HttpWebRequestService,\n private cdr: ChangeDetectorRef,\n private fb: FormBuilder,\n private envSvc: EnvironmentService\n ) {\n this.visibleColumnDef = roleControlSvc.roleColumns;\n this.visibleColumns = roleControlSvc.roleColumns.map((col) => ({\n checked: true,\n name: typeof col.header === 'string' ? col.header : col.id,\n type: DataFilterType.Bool,\n }));\n // this.form = this.fb.group({\n // Name: new FormControl<string | null>(null, Validators.required),\n // });\n }\n\n async ngOnInit(): Promise<void> {\n const mockData = this.getMockRoles();\n const roles = await this.getAllRoles();\n if (this.isGlobal) {\n const contextsRes = await this.getSavedContexts();\n if (contextsRes) {\n this.roleContextsStore = contextsRes;\n this.roleActionsStore = contextsRes.flatMap((x) => x.RoleActions);\n const authConfig: AuthorizationConfig[] = contextsRes.map((x) => {\n return {\n Name: x.Name,\n Actions: x.RoleActions.map((y) => {\n return y.Name;\n }),\n };\n });\n this.sourceData = authConfig;\n }\n } else {\n this.sourceData = this.authService.authorizationConfig;\n }\n if (roles) {\n this.setUpMappedData(roles);\n this.setUpCardData();\n }\n this.searchTerm$\n .pipe(debounceTime(this.searchDebounceTime)) // Adjust debounce time here (in ms)\n .subscribe(async (searchTerm) => {\n this.currentSearchTerm = searchTerm;\n this.updateFiltersAndSorts(true);\n });\n }\n\n async getSavedContexts(): Promise<ApplicationRoleContext[] | undefined> {\n if (!this.isGlobal || !this.serviceName) {\n return undefined;\n }\n var payload: SearchPropertyValue[] = [\n {\n PropertyName: 'ServiceName',\n EntityValue: this.serviceName,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n {\n PropertyName: 'APIKey',\n EntityValue: this.envSvc.environment.APIKey,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n ];\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `Application/SearchApplicationRoleContexts/0/0`,\n payload\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return undefined;\n } else {\n var result = (res as PagedResult<ApplicationRoleContext>).Result;\n return result;\n }\n }\n async getAllRoles(): Promise<Role[] | undefined> {\n // var payload: SearchPropertyValue[] = [\n // {\n // PropertyName: 'APIKey',\n // EntityValue: this.envSvc.environment.APIKey,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ\n // }\n // ]\n this.utilService.sendBI(true);\n const res = await this.server.get(`Role/GetRoles/0/${this.pageSize}`);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return undefined;\n } else {\n this.pageState = res as PagedResult<Role>;\n var result = (res as PagedResult<Role>).Result;\n return result;\n }\n }\n\n async loadMore() {\n if (!this.pageState) {\n return;\n }\n this.utilService.sendBI(true);\n const res =\n this.currentFilters.length > 0 ||\n this.currentSorts.length > 0 ||\n this.currentSearchTerm.trim().length > 0\n ? await this.loadMoreFiltersAndSorts()\n : await this.server.get(\n `Role/GetRoles/${this.pageState.Skip}/${this.pageSize}`\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return;\n } else {\n this.pageState = res as PagedResult<Role>;\n var result = (res as PagedResult<Role>).Result;\n const data = this.setUpMappedDataExtra(result);\n this.data = this.data.concat(data);\n this.setUpCardDataExtra(data);\n }\n }\n\n getApplicationContextCode(name: string): string {\n const item = this.roleContextsStore.find((x) => x.Name == name);\n return item ? item.Code : '';\n }\n getApplicationActionCode(name: string): string {\n const item = this.roleActionsStore.find((x) => x.Name == name);\n return item ? item.Code : '';\n }\n\n findParent(cardData: CardData[], target: CardData): CardData | null {\n for (const item of cardData) {\n if (item.children.includes(target)) {\n return item; // Immediate parent found\n }\n const parent = this.findParent(item.children, target);\n if (parent) {\n return parent;\n }\n }\n return null; // Not found\n }\n\n isCheckboxDisabled(item: CardData): boolean {\n const parent =\n this.cardContextHistoryData.length > 0\n ? this.findParent(this.cardContextHistoryData[0], item)\n : this.findParent(this.cardData, item);\n if (\n parent &&\n parent.data.ChildrenType &&\n parent.data.ChildrenType == ChildrenType.Action &&\n parent.data.Selected == false\n ) {\n return true;\n }\n return false;\n }\n\n setUpMappedData(data: Role[]) {\n this.data = data.map((x) => {\n return {\n ...x,\n id: x.Id,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = x.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? x.RoleContexts[existingId].RoleActions.findIndex(\n (c) => c.Name == action\n )\n : -1;\n\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: x.Code,\n Context: '',\n id:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction].id\n : '',\n Id:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction].Id\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: x.TenantId,\n Code:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .Code\n : '',\n ServiceName:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: x.Code,\n id: existingId > -1 ? x.RoleContexts[existingId].id : '',\n Id: existingId > -1 ? x.RoleContexts[existingId].Id : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: x.TenantId,\n Code: existingId > -1 ? x.RoleContexts[existingId].Code : '',\n ServiceName:\n existingId > -1 ? x.RoleContexts[existingId].ServiceName : '',\n APIKey:\n existingId > -1\n ? x.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(config.Name),\n };\n\n return context;\n }),\n };\n });\n }\n setUpMappedDataExtra(data: Role[]): MappedRole[] {\n return data.map((x) => {\n return {\n ...x,\n id: x.Id,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = x.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? x.RoleContexts[existingId].RoleActions.findIndex(\n (c) => c.Name == action\n )\n : -1;\n\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: x.Code,\n Context: '',\n id:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction].id\n : '',\n Id:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction].Id\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: x.TenantId,\n Code:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .Code\n : '',\n ServiceName:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: x.Code,\n id: existingId > -1 ? x.RoleContexts[existingId].id : '',\n Id: existingId > -1 ? x.RoleContexts[existingId].Id : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: x.TenantId,\n Code: existingId > -1 ? x.RoleContexts[existingId].Code : '',\n ServiceName:\n existingId > -1 ? x.RoleContexts[existingId].ServiceName : '',\n APIKey:\n existingId > -1\n ? x.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(config.Name),\n };\n\n return context;\n }),\n };\n });\n }\n\n setUpCardData() {\n const cardData: CardData[] = this.data.map((x) => {\n return {\n selected: false,\n title: x.Name,\n data: x,\n body: [],\n children: x.RoleContexts.map((c) => {\n return {\n selected: false,\n title: this.getFormattedName(c.Name),\n data: c,\n body: [],\n children: c.RoleActions.map((a) => {\n return {\n selected: false,\n title: this.getFormattedName(a.Name),\n data: a,\n body: [],\n children: [],\n };\n }),\n };\n }),\n };\n });\n this.cardData = cardData;\n }\n setUpCardDataExtra(baseData: MappedRole[]) {\n const cardData: CardData[] = baseData.map((x) => {\n return {\n selected: false,\n title: x.Name,\n data: x,\n body: [],\n children: x.RoleContexts.map((c) => {\n return {\n selected: false,\n title: this.getFormattedName(c.Name),\n data: c,\n body: [],\n children: c.RoleActions.map((a) => {\n return {\n selected: false,\n title: this.getFormattedName(a.Name),\n data: a,\n body: [],\n children: [],\n };\n }),\n };\n }),\n };\n });\n this.cardData = this.cardData.concat(cardData);\n }\n\n getFormattedName(name: string): string {\n // Split the key on capital letters, handling \"And\" as lowercase\n const words = name\n .split(/(?=[A-Z])/)\n .map((word) => (word === 'And' ? 'and' : word));\n // Join the words with spaces\n return words.join(' ');\n }\n\n viewDetailsFromTable(data: MappedRole) {\n const cardData = this.cardData.find((x) => x.data == data);\n if (cardData) {\n this.viewDetails(cardData);\n }\n this.closePopUp();\n }\n\n viewDetails(context: CardData) {\n this.cardContextHistory.push(context);\n this.cardContextHistoryData.push(this.cardData);\n this.cardData = context.children;\n this.cardDataView.clearData();\n }\n viewDetailsChild(context: CardData) {\n if (this.currentExpandedCard) {\n this.cardContextHistory.push(this.currentExpandedCard);\n this.cardContextHistory.push(context);\n this.cardContextHistoryData.push(this.cardData);\n this.cardContextHistoryData.push(this.currentExpandedCard.children);\n this.cardData = context.children;\n this.cardDataView.clearData();\n }\n }\n\n roleCardClicked(item: CardData) {\n this.currentData = this.cardDataView.onItemClick(item);\n // if (this.currentData) {\n // this.form.controls['Name'].setValue(this.currentData.data?.Name);\n // }\n }\n\n toggleChildren(item: CardData) {\n var currToggleState = item.isChildrenExpanded;\n this.cardData.forEach((_) => {\n _.isChildrenExpanded = false;\n });\n item.isChildrenExpanded = !currToggleState;\n if (item.isChildrenExpanded) {\n this.currentExpandedCard = item;\n } else {\n this.currentExpandedCard = null;\n }\n }\n\n goToTableView() {\n if (!this.currentData) {\n return;\n }\n this.dataView.toggleView();\n const id = this.currentData.data ? this.currentData.data.Id : '';\n if (id.trim().length > 0 && !this.tableView.isRowEditing(id)) {\n this.tableView.toggleRowEdit(id);\n }\n }\n closeDetails() {\n this.cardData =\n this.cardContextHistoryData[this.cardContextHistoryData.length - 1];\n this.cardContextHistoryData.pop();\n this.cardContextHistory.pop();\n setTimeout(() => {\n if (this.dataView.isTableView) {\n this.dataView.toggleView();\n }\n }, 200);\n }\n\n getCardSubCaption(item: CardData) {\n const selected = item.children.filter((x) => x.data.Selected).length;\n const total = item.children.length;\n return `${selected} of ${total} ${\n total > 1 ? item.data.ChildrenType + 's' : item.data.ChildrenType\n }`;\n }\n\n getUpdatedRole(role: MappedRole): Role {\n const newRole = role;\n newRole.RoleContexts = role.RoleContexts.filter((x) => x.Selected).map(\n (y) => {\n y.RoleActions = y.RoleActions.filter((z) => z.Selected);\n return y;\n }\n );\n newRole.DataState =\n newRole.DataState == ObjectState.New\n ? ObjectState.New\n : ObjectState.Changed;\n newRole.Id = newRole.DataState == ObjectState.New ? '' : newRole.Id;\n return newRole as Role;\n }\n async saveRole() {\n if (this.currentData) {\n var role: MappedRole = this.currentData.data as MappedRole;\n // role.Name = this.form.controls['Name'].value;\n if (this.currentData.data.Name.trim().length == 0) {\n this.utilService.showInfo('Role name cannot be empty');\n return;\n }\n const mappedRole = this.getUpdatedRole(JSON.parse(JSON.stringify(role)));\n this.utilService.sendBI(true);\n const res = await this.server.post(`Role/SaveRoles`, [mappedRole]);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n } else {\n this.utilService.showSuccess('Role saved successfully');\n const result = res as Role[];\n if (result.length > 0) {\n var roleResult = result[0];\n var mappedRoleSave: MappedRole = {\n ...roleResult,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = roleResult.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? roleResult.RoleContexts[\n existingId\n ].RoleActions.findIndex((c) => c.Name == action)\n : -1;\n\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: roleResult.Code,\n Context: '',\n id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].id\n : '',\n Id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Id\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n ServiceName:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction:\n this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: roleResult.Code,\n id:\n existingId > -1 ? roleResult.RoleContexts[existingId].id : '',\n Id:\n existingId > -1 ? roleResult.RoleContexts[existingId].Id : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingId > -1\n ? roleResult.RoleContexts[existingId].Code\n : '',\n ServiceName:\n existingId > -1\n ? roleResult.RoleContexts[existingId].ServiceName\n : '',\n APIKey:\n existingId > -1\n ? roleResult.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(\n config.Name\n ),\n };\n\n return context;\n }),\n };\n\n const itemIndex = this.data.findIndex(\n (x) => x == this.currentData?.data\n );\n if (itemIndex > -1) {\n this.data[itemIndex].Code = mappedRoleSave.Code;\n this.data[itemIndex].Id = mappedRoleSave.Id;\n this.data[itemIndex].DataState = mappedRoleSave.DataState;\n this.data[itemIndex].TenantId = mappedRoleSave.TenantId;\n this.data[itemIndex].ServiceName = mappedRoleSave.ServiceName;\n mappedRoleSave.RoleContexts.forEach((x, i) => {\n this.data[itemIndex].RoleContexts[i].Role = mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].Code = x.Code;\n this.data[itemIndex].RoleContexts[i].ServiceName = x.ServiceName;\n x.RoleActions.forEach((y, j) => {\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Role =\n mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Code =\n y.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[\n j\n ].ServiceName = y.ServiceName;\n });\n });\n this.data = this.data.map((x) => x);\n // this.currentData = {\n // selected: true,\n // title: mappedRoleSave.Name,\n // data: mappedRoleSave,\n // isChildrenExpanded: this.currentData.isChildrenExpanded,\n // body: [],\n // children: mappedRoleSave.RoleContexts.map((c) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(c.Name),\n // data: c,\n // body: [],\n // children: c.RoleActions.map((a) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(a.Name),\n // data: a,\n // body: [],\n // children: [],\n // };\n // }),\n // };\n // }),\n // };\n }\n }\n }\n }\n }\n async tableSaveRole(role: MappedRole, callBack: () => any) {\n if (role.Name.trim().length == 0) {\n this.utilService.showInfo('Role name cannot be empty');\n return;\n }\n const mappedRole = this.getUpdatedRole(JSON.parse(JSON.stringify(role)));\n this.utilService.sendBI(true);\n const res = await this.server.post(`Role/SaveRoles`, [mappedRole]);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n } else {\n this.utilService.showSuccess('Role saved successfully');\n const result = res as Role[];\n if (result.length > 0) {\n var roleResult = result[0];\n var mappedRoleSave: MappedRole = {\n ...roleResult,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = roleResult.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? roleResult.RoleContexts[existingId].RoleActions.findIndex(\n (c) => c.Name == action\n )\n : -1;\n\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: roleResult.Code,\n Context: '',\n id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].id\n : '',\n Id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Id\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n ServiceName:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: roleResult.Code,\n id: existingId > -1 ? roleResult.RoleContexts[existingId].id : '',\n Id: existingId > -1 ? roleResult.RoleContexts[existingId].Id : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n ServiceName:\n existingId > -1\n ? roleResult.RoleContexts[existingId].ServiceName\n : '',\n APIKey:\n existingId > -1\n ? roleResult.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(\n config.Name\n ),\n };\n\n return context;\n }),\n };\n\n const itemIndex = this.data.findIndex(\n (x) => x == this.currentData?.data\n );\n if (itemIndex > -1) {\n this.data[itemIndex].Code = mappedRoleSave.Code;\n this.data[itemIndex].Id = mappedRoleSave.Id;\n this.data[itemIndex].DataState = mappedRoleSave.DataState;\n this.data[itemIndex].TenantId = mappedRoleSave.TenantId;\n this.data[itemIndex].ServiceName = mappedRoleSave.ServiceName;\n mappedRoleSave.RoleContexts.forEach((x, i) => {\n this.data[itemIndex].RoleContexts[i].Role = mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].Code = x.Code;\n this.data[itemIndex].RoleContexts[i].ServiceName = x.ServiceName;\n x.RoleActions.forEach((y, j) => {\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Role =\n mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Code = y.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].ServiceName =\n y.ServiceName;\n });\n });\n this.data = this.data.map((x) => x);\n }\n callBack();\n }\n }\n }\n\n async saveRoleDynamic(item: CardData) {\n if (this.isCheckboxDisabled(item)) {\n this.utilService.showInfo('Parent UI not selected');\n return;\n }\n\n var role: CardData | null =\n this.cardContextHistory.length > 0\n ? this.cardContextHistory[0]\n : this.currentExpandedCard\n ? this.currentExpandedCard\n : null;\n var cardDataRef: CardData[] | null =\n this.cardContextHistoryData.length > 0\n ? this.cardContextHistoryData[0]\n : this.currentExpandedCard\n ? this.cardData\n : null;\n // const isExpandedCard: boolean =\n // this.cardContextHistory.length > 0\n // ? false\n // : this.currentExpandedCard\n // ? true\n // : false;\n if (!role) {\n return;\n }\n if (role.data.Name.trim().length == 0) {\n item.data.Selected = false;\n this.utilService.showInfo('Role name cannot be empty');\n return;\n }\n item.data.Selected = !item.data.Selected;\n const mappedRole = this.getUpdatedRole(\n JSON.parse(JSON.stringify(role.data))\n );\n this.utilService.sendBI(true);\n const res = await this.server.post(`Role/SaveRoles`, [mappedRole]);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n item.data.Selected = false;\n } else {\n this.utilService.showSuccess('Role saved successfully');\n const result = res as Role[];\n if (result.length > 0) {\n var roleResult = result[0];\n var mappedRoleSave: MappedRole = {\n ...roleResult,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = roleResult.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? roleResult.RoleContexts[existingId].RoleActions.findIndex(\n (c) => c.Name == action\n )\n : -1;\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: roleResult.Code,\n Context: '',\n id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].id\n : '',\n Id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Id\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n ServiceName:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: roleResult.Code,\n id: existingId > -1 ? roleResult.RoleContexts[existingId].id : '',\n Id: existingId > -1 ? roleResult.RoleContexts[existingId].Id : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n ServiceName:\n existingId > -1\n ? roleResult.RoleContexts[existingId].ServiceName\n : '',\n APIKey:\n existingId > -1\n ? roleResult.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(\n config.Name\n ),\n };\n return context;\n }),\n };\n const itemIndex = cardDataRef\n ? cardDataRef.findIndex((x) => x.data == role?.data)\n : -1;\n if (itemIndex > -1) {\n this.data[itemIndex].Code = mappedRoleSave.Code;\n this.data[itemIndex].Id = mappedRoleSave.Id;\n this.data[itemIndex].DataState = mappedRoleSave.DataState;\n this.data[itemIndex].TenantId = mappedRoleSave.TenantId;\n this.data[itemIndex].ServiceName = mappedRoleSave.ServiceName;\n mappedRoleSave.RoleContexts.forEach((x, i) => {\n this.data[itemIndex].RoleContexts[i].Role = mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].Code = x.Code;\n this.data[itemIndex].RoleContexts[i].ServiceName = x.ServiceName;\n x.RoleActions.forEach((y, j) => {\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Role =\n mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Code = y.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].ServiceName =\n y.ServiceName;\n });\n });\n // this.data[itemIndex].RoleContexts = mappedRoleSave.RoleContexts;\n\n this.data = this.data.map((x) => x);\n // if (cardDataRef) {\n // console.log({\n // XDataIsHere: JSON.parse(JSON.stringify(cardDataRef)),\n // });\n // cardDataRef[itemIndex] = {\n // selected: cardDataRef[itemIndex].selected,\n // isChildrenExpanded: cardDataRef[itemIndex].isChildrenExpanded,\n // title: mappedRoleSave.Name,\n // data: mappedRoleSave,\n // body: [],\n // children: mappedRoleSave.RoleContexts.map((c) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(c.Name),\n // data: c,\n // body: [],\n // children: c.RoleActions.map((a) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(a.Name),\n // data: a,\n // body: [],\n // children: [],\n // };\n // }),\n // };\n // }),\n // };\n // }\n }\n }\n }\n }\n\n saveDataAll() {\n const roles: Role[] = this.data.map((x) => {\n return {\n ...x,\n RoleContexts: x.RoleContexts.filter((y) => y.Selected).map((z) => {\n return {\n ...z,\n RoleActions: z.RoleActions.filter(\n (a) => a.Selected\n ) as RoleAction[],\n };\n }) as RoleContext[],\n };\n });\n }\n\n updateTable() {\n this.data = this.data.map((x) => x);\n }\n\n onViewChange(isGridView: boolean): void {}\n onStateChange(event: { key: string; value: boolean }): void {\n switch (event.key) {\n case 'create':\n var newMappedRole: MappedRole = {\n RoleContexts: this.sourceData.map((config) => {\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: false,\n RoleActions: config.Actions.map((action) => {\n var act: MappedRoleAction = {\n Selected: false,\n Name: action,\n Role: '',\n Context: '',\n id: '',\n Id: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n ServiceName: '',\n APIKey: this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: '',\n id: '',\n Id: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n ServiceName: '',\n APIKey: this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(\n config.Name\n ),\n };\n\n return context;\n }),\n ChildrenType: ChildrenType.Permission,\n Name: '',\n id: (this.cardData.length + 1).toString(),\n Id: (this.cardData.length + 1).toString(),\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n ServiceName: '',\n Application: this.application ? this.application : undefined,\n APIKey: this.envSvc.environment.APIKey,\n };\n const cardData: CardData = {\n selected: false,\n title: newMappedRole.Name,\n data: newMappedRole,\n body: [],\n children: newMappedRole.RoleContexts.map((c) => {\n return {\n selected: false,\n title: this.getFormattedName(c.Name),\n data: c,\n body: [],\n children: c.RoleActions.map((a) => {\n return {\n selected: false,\n title: this.getFormattedName(a.Name),\n data: a,\n body: [],\n children: [],\n };\n }),\n };\n }),\n };\n this.data = this.data.concat([newMappedRole]);\n this.cardData.push(cardData);\n this.roleCardClicked(cardData);\n this.dataView.isTableView = false;\n break;\n default:\n break;\n }\n }\n\n showTableView: boolean = false;\n onSelectionChange(selectedRows: Role[]) {}\n retryMessage() {}\n onColumnsUpdated(updatedColumns: IDataFilter[]) {\n const updatedColumnDef: ColumnDefinition<MappedRole>[] = [];\n updatedColumns.forEach((col) => {\n const matchingCol = this.roleControlSvc.roleColumns.find(\n (column) => column.header === col.name || column.id === col.name\n );\n if (matchingCol) {\n updatedColumnDef.push(matchingCol);\n }\n });\n\n this.visibleColumnDef = [...updatedColumnDef];\n }\n\n async updateFiltersAndSorts(isSearch: boolean = false) {\n if (!isSearch) {\n this.dataView.onClearSearch();\n this.currentSearchTerm = '';\n this.cdr.detectChanges();\n const clickEvent = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n });\n document.dispatchEvent(clickEvent);\n }\n var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n return {\n PropertyName: x.name,\n EntityValue: x.value,\n Operator: SearchOperator.And,\n Sign:\n x.condition && Object.keys(DateFilterTypes).includes(x.condition)\n ? (DateFilterTypes[\n x.condition as keyof typeof DateFilterTypes\n ] as unknown as SearchPropertySign)\n : SearchPropertySign.EQ,\n Type: SearchPropertyValueType.Date,\n };\n });\n payload.push({\n PropertyName: 'APIKey',\n EntityValue: this.envSvc.environment.APIKey,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n for (let sort of this.currentSorts) {\n payload.push({\n PropertyName: sort.name,\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort:\n sort.value.toLowerCase() == SortDirection.Asc.toLowerCase()\n ? SortDirection.Asc\n : sort.value.toLowerCase() == SortDirection.Desc.toLowerCase()\n ? SortDirection.Desc\n : SortDirection.None,\n });\n }\n const searchTermExists = this.currentSearchTerm.trim().length > 0;\n this.utilService.sendBI(true);\n const res = searchTermExists\n ? await this.server.get(\n `Role/GetRolesWithParam/${this.currentSearchTerm.trim()}/0/${\n this.pageSize\n }`\n )\n : await this.server.post(`Role/SearchRoles/0/${this.pageSize}`, payload);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.currentFilters = [];\n this.currentSorts = [];\n return undefined;\n } else {\n this.pageState = res as PagedResult<Role>;\n var result = (res as PagedResult<Role>).Result;\n this.setUpMappedData(result);\n this.setUpCardData();\n }\n }\n async loadMoreFiltersAndSorts(): Promise<PagedResult<Role> | undefined> {\n if (!this.pageState) {\n return;\n }\n var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n return {\n PropertyName: x.name,\n EntityValue: x.value,\n Operator: SearchOperator.And,\n Sign:\n x.condition && Object.keys(DateFilterTypes).includes(x.condition)\n ? (DateFilterTypes[\n x.condition as keyof typeof DateFilterTypes\n ] as unknown as SearchPropertySign)\n : SearchPropertySign.EQ,\n Type: SearchPropertyValueType.Date,\n };\n });\n payload.push({\n PropertyName: 'APIKey',\n EntityValue: this.envSvc.environment.APIKey,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n for (let sort of this.currentSorts) {\n payload.push({\n PropertyName: sort.name,\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort:\n sort.value.toLowerCase() == SortDirection.Asc.toLowerCase()\n ? SortDirection.Asc\n : sort.value.toLowerCase() == SortDirection.Desc.toLowerCase()\n ? SortDirection.Desc\n : SortDirection.None,\n });\n }\n const searchTermExists = this.currentSearchTerm.trim().length > 0;\n this.utilService.sendBI(true);\n const res = searchTermExists\n ? await this.server.get(\n `Role/GetRolesWithParam/${this.currentSearchTerm.trim()}/${\n this.pageState.Skip\n }/${this.pageSize}`\n )\n : await this.server.post(\n `Role/SearchRoles/${this.pageState.Skip}/${this.pageSize}`,\n payload\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return undefined;\n } else {\n var result = res as PagedResult<Role>;\n return result;\n }\n }\n onFilterUpdated(updatedFilters: IDataFilter[] | string) {\n // Ensure updatedFilters is an array\n if (Array.isArray(updatedFilters)) {\n this.currentFilters = updatedFilters;\n this.updateFiltersAndSorts();\n }\n }\n onSortUpdated(updatedSorts: IDataFilter[]) {\n this.currentSorts = updatedSorts;\n console.log({ CurrSorts: this.currentSorts });\n this.updateFiltersAndSorts();\n }\n\n handleSearch(event: { key: string; value: string }) {\n this.searchTerm$.next(event.value);\n }\n\n handleExport(exportedData: Partial<any>[]) {\n // console.log('Exported data:', exportedData);\n this.downloadCSV(exportedData);\n }\n private downloadCSV(data: Partial<any>[]) {\n const headers = Object.keys(data[0]);\n const csvContent = [\n headers.join(','),\n ...data.map((row) => headers.map((header) => row[header]).join(',')),\n ].join('\\n');\n\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const link = document.createElement('a');\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', 'export.csv');\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n\n getMockRoles(): Role[] {\n return new Array(10).fill(1).map((id, i) => ({\n Id: id + i,\n id: (id + i).toString(),\n Name: this.mockNames[i] || '',\n RoleContexts: this.randomContexts(),\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: `Tenant${id + i}`,\n Code: '',\n ServiceName: '',\n APIKey: '',\n }));\n }\n\n mockNames: string[] = [\n 'Admin',\n 'Super Admin',\n 'Manager',\n 'Intern',\n 'Production Manager',\n 'CEO',\n 'CTO',\n 'COO',\n 'Developer',\n 'Engineer',\n ];\n\n randomName(): string {\n const randomIndex = Math.floor(Math.random() * this.mockNames.length);\n return this.mockNames[randomIndex];\n }\n\n randomContexts(): RoleContext[] {\n const randomNumber = Math.floor(\n Math.random() * Object.keys(UIs).length + 1\n );\n var returnArray: RoleContext[] = [];\n const usedList: number[] = [];\n for (let i = 0; i < randomNumber; i++) {\n let randomIndex;\n do {\n randomIndex = Math.floor(Math.random() * Object.keys(UIs).length);\n } while (usedList.includes(randomIndex));\n\n returnArray.push({\n Id: 'context' + i,\n id: ('context' + i).toString(),\n Name: Object.keys(UIs)[randomIndex],\n Role: '',\n RoleActions: this.randomActions(),\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: `Tenant${'context' + i}`,\n Code: '',\n ServiceName: '',\n APIKey: '',\n ApplicationRoleContext: '',\n });\n usedList.push(randomIndex);\n }\n return returnArray;\n }\n\n randomActions(): RoleAction[] {\n const randomNumber = Math.floor(\n Math.random() * Object.keys(UIActions).length + 1\n );\n var returnArray: RoleAction[] = [];\n const usedList: number[] = [];\n for (let i = 0; i < randomNumber; i++) {\n let randomIndex;\n do {\n randomIndex = Math.floor(Math.random() * Object.keys(UIActions).length);\n } while (usedList.includes(randomIndex));\n\n returnArray.push({\n Id: 'action' + i,\n id: ('action' + i).toString(),\n Name: Object.keys(UIActions)[randomIndex],\n Role: '',\n Context: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: `Tenant${'action' + i}`,\n Code: '',\n ServiceName: '',\n APIKey: '',\n ApplicationRoleAction: '',\n });\n usedList.push(randomIndex);\n }\n return returnArray;\n }\n\n closePopUp() {\n this.openDropdownId = null;\n this.popUps.forEach((popUp) => {\n if (popUp.dropdownOpen) {\n popUp.toggleDropdown();\n }\n });\n }\n\n updateItem(value: any, key: string): any {\n return {\n [key]: value,\n };\n }\n\n editValue(value: MappedRole) {\n const card = this.cardData.find((x) => x.data.Id == value.Id);\n if (card && this.cardDataView) {\n this.dataView.toggleView();\n card.selected = true;\n this.currentData = this.cardDataView.onItemClick(card);\n this.closePopUp();\n // if (this.currentData) {\n // this.form.controls['Name'].setValue(this.currentData.data?.Name);\n // }\n }\n }\n}\n","<div #messageLog class=\"flex flex-col gap-4 message-log-container\">\n <div *ngIf=\"this.cardContextHistory.length > 0\"\n class=\"context-banner py-3 px-4 rounded-xl flex item-center justify-space-between gap-3\">\n <div class=\"flex gap-2 flex-1 context-banner-content\">\n <div class=\"context-content items-center flex gap-2\" *ngFor=\"let context of this.cardContextHistory; index as i\">\n <div class=\"context-main-content-container flex gap-4\">\n <span class=\"context-caption font-bold text-[#404040]\">{{context.data.ChildrenType &&\n context.data.ChildrenType == childPermissionRef? context.data.Name: context.title}}</span>\n <span *ngIf=\"i == this.cardContextHistory.length -1\"\n class=\"context-subcaption\">{{this.getCardSubCaption(context)}}</span>\n </div>\n <div *ngIf=\"i < this.cardContextHistory.length -1\">/</div>\n </div>\n </div>\n <div class=\"flex justify-end\">\n <verben-svg (click)=\"closeDetails()\" class=\"cursor-pointer\" icon=\"close-circle-full\" [width]=\"20\"\n [height]=\"20\"></verben-svg>\n </div>\n </div>\n <verben-data-view #vdv [viewState]=\"{\n isSearch: this.cardContextHistory.length == 0,\n isColumn: this.cardContextHistory.length == 0,\n isFilter: this.cardContextHistory.length == 0,\n isSort: this.cardContextHistory.length == 0,\n isExport: this.cardContextHistory.length == 0,\n isSelect: this.cardContextHistory.length == 0,\n isCreate: this.cardContextHistory.length == 0,\n isToggle:this.cardContextHistory.length == 0,\n }\" [buttonClass]=\"'my-custom-button-class'\" [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\" [isTableView]=\"this.cardContextHistory.length == 0\"\n [selectedColumnCount]=\"0\" [selectedSortCount]=\"0\" [selectedFilterTableCount]=\"0\" (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\" (onSearchChange)=\"handleSearch($event)\">\n <div class=\"mt-2\" table-content>\n <lib-data-table #dt [data]=\"data\" [columns]=\"visibleColumnDef\" [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\">\n <ng-container libColumn=\"select\">\n <ng-template #cell let-isSelected=\"isSelected\" let-toggleRowSelection=\"toggleRowSelection\">\n <input type=\"checkbox\" [checked]=\"isSelected\" (change)=\"toggleRowSelection()\" />\n </ng-template>\n <ng-template #header let-allRowsSelected=\"allRowsSelected\" let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\">\n <input type=\"checkbox\" [checked]=\"allRowsSelected()\" [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\" />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"updatedAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"name\">\n <ng-template #cell let-row=\"row\" let-value>\n {{value.Name}}\n </ng-template>\n <ng-template #cellEdit let-row=\"row\" let-updateValue=\"updateValue\" let-updateData=\"updateData\" let-value>\n <div class=\"width-max\">\n <verbena-input [(ngModel)]=\"value.Name\"></verbena-input>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-isEditing=\"isEditing\" let-toggleRowEdit=\"toggleRowEdit\" let-row=\"row\" let-value>\n <verben-pop-Up #popup [customStyles]=\"{'z-index': '99'}\" [enableMouseLeave]=\"false\">\n <verben-svg class=\"cursor-pointer actions-icon\" dropdown-trigger icon=\"list\"></verben-svg>\n <div class=\"pop-up-content flex flex-col\" dropdown-content>\n <div (click)=\"toggleRowEdit(); closePopUp(); \" class=\"pop-up-value cursor-pointer\">Edit</div>\n <div (click)=\"viewDetailsFromTable(value)\" class=\"pop-up-value cursor-pointer\">View Details</div>\n <div class=\"pop-up-value cursor-pointer\">View Users</div>\n </div>\n </verben-pop-Up>\n <!-- <div class=\"flex gap-4 items-center\">\n <verben-svg (click)=\"editValue(value)\" icon=\"edit\" [width]=\"15\" [height]=\"15\"\n class=\"cursor-pointer\"></verben-svg>\n <span (click)=\"viewDetailsFromTable(value)\" class=\"view-links view-details\">view details</span>\n <span class=\"view-links view-users\">view users</span>\n </div> -->\n </ng-template>\n <ng-template #cellEdit let-isEditing=\"isEditing\" let-toggleRowEdit=\"toggleRowEdit\" let-row=\"row\" let-value>\n <div class=\"flex gap-2 items-center\">\n <verben-svg icon=\"tick\" [width]=\"15\" [height]=\"15\"\n (click)=\"tableSaveRole(value, toggleRowEdit)\"></verben-svg>\n <verben-svg icon=\"delete\" [width]=\"15\" [height]=\"15\"></verben-svg>\n <verben-svg icon=\"cardViewAlt\" [width]=\"15\" [height]=\"15\" (click)=\"editValue(value)\"></verben-svg>\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view borderRadius=\"12px\" #vdcv dataId=\"Id\" border=\"5px\" [cardDataList]=\"cardData\"\n rbgColor=\"#f5f6f9\" mg=\"0px\">\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data #vlcd [parent]=\"vdcv\" dataId=\"MailAddress\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\" [cardDataList]=\"cardData\">\n <ng-template #card let-item>\n <div (click)=\"roleCardClicked(item)\"\n *ngIf=\"item.data.ChildrenType && item.data.ChildrenType == childPermissionRef\"\n class=\"flex cursor-pointer h-[max-content]\">\n <verben-svg [width]=\"15\" [height]=\"15\" (click)=\"toggleChildren(item); $event.stopPropagation()\"\n [ngClass]=\"item.children && item.children.length?'visible':'invisible'\"\n class=\"items-center flex pr-1 cursor-pointer\" [icon]=\"item.isChildrenExpanded?'minus':'plus'\" />\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"py-3 px-4 flex-1 h-[100%]\">\n <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n <div class=\"flex flex-col flex-1 card-min-height justify-between h-[100%]\">\n <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n item.data.Name\n }}</h3>\n <span class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\">\n {{getCardSubCaption(item)}}\n </span>\n </div>\n\n <div *ngIf=\"item.children && item.children.length > 0\" class=\"flex items-end h-[100%]\">\n <p (click)=\"viewDetails(item); $event.stopPropagation()\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\">\n view details</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!item.data.ChildrenType || item.data.ChildrenType !== childPermissionRef\"\n class=\"flex h-[max-content]\">\n <verben-svg [ngClass]=\"item.children && item.children.length?'visible':'invisible'\" [width]=\"15\"\n [height]=\"15\" (click)=\"toggleChildren(item)\" class=\"items-center flex pr-1 cursor-pointer\"\n [icon]=\"item.isChildrenExpanded?'minus':'plus'\" />\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"py-3 px-4 flex-1 flex gap-2 h-[100%] items-start\">\n <input *ngIf=\"item.data?.Selected != undefined\" [disabled]=\"this.isCheckboxDisabled(item)\"\n type=\"checkbox\" class=\"mt-1 cursor-pointer\" [(ngModel)]=\"item.data.Selected\"\n (click)=\"$event.preventDefault(); this.saveRoleDynamic(item)\" />\n <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n <div class=\"flex flex-col flex-1 card-min-height justify-between h-[100%]\">\n <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n item.title\n }}</h3>\n <span class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\">\n {{getCardSubCaption(item)}}\n </span>\n </div>\n\n <div *ngIf=\"item.children && item.children.length > 0\" class=\"flex items-end h-[100%]\">\n <p (click)=\"viewDetails(item)\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\">\n view details</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n <ng-template #cardChild let-item>\n <div class=\"flex h-[max-content]\">\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"py-3 px-4 flex-1 flex gap-2 h-[100%] items-start\">\n <input *ngIf=\"item.data?.Selected != undefined\" [disabled]=\"this.isCheckboxDisabled(item)\"\n type=\"checkbox\" class=\"mt-1 cursor-pointer\" [(ngModel)]=\"item.data.Selected\"\n (click)=\"$event.preventDefault(); this.saveRoleDynamic(item)\" />\n <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n <div class=\"flex flex-col flex-1 card-min-height justify-between h-[100%]\">\n <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n item.title\n }}</h3>\n <span class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\">\n {{getCardSubCaption(item)}}\n </span>\n </div>\n\n <div *ngIf=\"item.children && item.children.length > 0\" class=\"flex items-end h-[100%]\">\n <p (click)=\"viewDetailsChild(item)\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\">\n view details</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n <verben-right-card-data-view *ngIf=\"this.cardContextHistory.length == 0\">\n <ng-template #parent>\n <div *ngIf=\"this.currentData\"\n class=\"flex flex-col rounded-xl h-full w-full justify-between relative space-y-4\">\n <verbena-input name=\"Name\" label=\"Name\" (ngModelChange)=\"updateTable()\"\n [(ngModel)]=\"this.currentData.data.Name\" />\n\n <!-- buttons -->\n <div class=\"flex justify-between bottom-8 left-0 right-0\">\n <verbena-button class=\"verben-delete-button\" text=\"Delete\"></verbena-button>\n <div class=\"flex gap-3\">\n <verbena-button class=\"verben-switch-button\" (click)=\"goToTableView()\"\n text=\"Switch To Table\"></verbena-button>\n <verbena-button class=\"verben-primary-button\" (click)=\"this.saveRole()\" text=\"Save\"></verbena-button>\n </div>\n </div>\n </div>\n\n </ng-template>\n </verben-right-card-data-view>\n <!-- <verben-right-card-data-view>\n yeshhhhhh\n </verben-right-card-data-view> -->\n\n <verben-card-data-view-footer *ngIf=\"this.cardContextHistory.length == 0\">\n <div class=\"flex gap-2 justify-between\">\n <div *ngIf=\"!vdcv.hasCurrentItem() && this.cardContextHistory.length == 0\"\n class=\"message-log-button-container flex justify-between\">\n <verbena-button [fontWeight]=\"'bold'\" [bgColor]=\"'#8E8D87'\" [borderRadius]=\"'4px'\" [textColor]=\"'#fff'\"\n [text]=\"'Delete'\">\n </verbena-button>\n </div>\n <div class=\"flex {{vdcv.hasCurrentItem()?'flex-1':''}} justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData.length }} records loaded</span>\n <button (click)=\"loadMore()\" class=\"load-more view-links\">Load more</button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column (columnsUpdated)=\"onColumnsUpdated($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"400px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter (filtersApplied)=\"onFilterUpdated($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"420px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" tertiaryColor=\"#404040\" [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table (selectedOptions)=\"onSortUpdated($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"400px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" tertiaryColor=\"#404040\" [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-between\">\n <div class=\"message-log-button-container flex justify-between\">\n <verbena-button [fontWeight]=\"'bold'\" [bgColor]=\"'#8E8D87'\" [borderRadius]=\"'4px'\" [textColor]=\"'#fff'\"\n [text]=\"'Delete'\">\n </verbena-button>\n </div>\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData.length }} records loaded</span>\n <button (click)=\"loadMore()\" class=\"load-more view-links\">Load more</button>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n CardDataViewModule,\n CardModule,\n DataExportModule,\n DataTableModule,\n DataViewModule,\n DropDownModule,\n SortTableModule,\n SvgModule,\n TableFilterModule,\n VerbenaBadgeModule,\n VerbenaButtonModule,\n VerbenaInputModule,\n VerbenaSwitchModule,\n VerbenDialogueModule,\n VisibleColumnModule,\n VerbenaTextareaModule,\n VerbenPopUpModule,\n ChipModule,\n} from 'verben-ng-ui';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n exports: [\n CommonModule,\n DataTableModule,\n CardModule,\n SvgModule,\n DataViewModule,\n CardDataViewModule,\n SortTableModule,\n VisibleColumnModule,\n TableFilterModule,\n DataExportModule,\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n VerbenaBadgeModule,\n VerbenDialogueModule,\n DropDownModule,\n VerbenaTextareaModule,\n VerbenaSwitchModule,\n VerbenPopUpModule,\n ChipModule,\n ],\n})\nexport class SharedModule {}\n","import { NgModule } from '@angular/core';\nimport { RoleControlComponent } from './role-control.component';\nimport { SharedModule } from '../../shared/shared.module';\n\n@NgModule({\n declarations: [RoleControlComponent],\n imports: [SharedModule],\n exports: [RoleControlComponent],\n})\nexport class RoleControlModule {}\n","/*\n * Public API Surface of verben-ng-ui\n */\n\n// export * from './lib/verben-ng-ui.service';\n// export * from './lib/verben-ng-ui.component';\n\n// Exporting modules\n\nexport * from './lib/components/reset-password/reset-password.component';\nexport * from './lib/components/reset-password/reset-password.module';\nexport * from './lib/components/reset-password/ResetPasswordData';\n//user-request-lib\nexport * from './lib/components/user-request/user-request.component';\nexport * from './lib/components/user-request/user-request.module';\nexport * from './lib/models/UserRequest';\n//mail-validation\nexport * from './lib/components/mail-validation/mail-validation.component';\nexport * from './lib/components/mail-validation/mail-validation.module';\n\n//sign up\nexport * from './lib/components/sign-up/sign-up.component';\nexport * from './lib/components/sign-up/sign-up.module';\n//sign in\nexport * from './lib/components/sign-in/sign-in.module';\nexport * from './lib/components/sign-in/sign-in.component';\n//Otp\nexport * from './lib/components/two-factor-auth-otp/two-factor-auth-otp.module';\nexport * from './lib/components/two-factor-auth-otp/two-factor-auth-otp.component';\n//2FA\nexport * from './lib/components/two-factor-auth-setup/two-factor-auth-setup.module';\nexport * from './lib/components/two-factor-auth-setup/two-factor-auth-setup.component';\n//sign up\nexport * from './lib/components/mail/mail.module';\nexport * from './lib/components/mail/mail.component';\n\nexport * from './lib/components/forgot-password/forgot-password.component';\nexport * from './lib/components/forgot-password/forgot-password.module';\nexport * from './lib/components/forgot-password/ForgotPasswordData';\nexport * from './lib/components/sso/sso.component';\nexport * from './lib/components/sso/sso.module';\n\nexport * from './lib/components/user-request-approval/user-request-approval.module';\nexport * from './lib/components/user-request-approval/user-request-approval.component';\nexport * from './lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component';\n\nexport * from './lib/components/user-management/user-management.module';\nexport * from './lib/components/user-management/user-management.component';\nexport * from './lib/components/user-request-approval/user-request-approval.service';\n\nexport * from './lib/components/auth-callback/auth-callback.component';\nexport * from './lib/components/auth-callback/auth-callback.module';\n\nexport * from './lib/services/environment.service';\nexport * from './lib/services/authorization.service';\n\nexport * from './lib/components/role-control/role-control.component';\nexport * from './lib/components/role-control/role-control.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.EnvironmentService","i3","i1","i2.HttpWebRequestService","i3.UtilService","i4","i5","i2","i4.EnvironmentService","i6","i8.OAuthComponent","i7.ButtonComponent","i7","i9.ButtonComponent","i5.ButtonComponent","i6.OtpInputComponent","i2.ButtonComponent","columns","mockData","baseStyle","i3.SsoFormComponent","randomEnum","i1.HttpWebRequestService","i1.UserAccessRequestService","i2.UserAccessRequestState","DateFilterTypes","i1.UserAccessRequestFacade","i4.UserRequestFormComponent","i5.UserAccessRequestStatusBadgeComponent","i2.UserManagementService","i3.UserAccessRequestService","i4.HttpWebRequestService","i5.UtilService","i6.EnvironmentService","i9.UserAccessRequestStatusBadgeComponent","i10.UserManagementFormComponent","i1.AuthorizationService","i2.RoleControlService"],"mappings":"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"}
1
+ {"version":3,"file":"verben-authentication-ui.mjs","sources":["../../../projects/verben-authentication-ui/src/lib/models/ErrorResponse.ts","../../../projects/verben-authentication-ui/src/lib/services/environment.service.ts","../../../projects/verben-authentication-ui/src/lib/services/http-web-request.service.ts","../../../projects/verben-authentication-ui/src/lib/services/util.service.ts","../../../projects/verben-authentication-ui/src/lib/components/reset-password/reset-password.component.ts","../../../projects/verben-authentication-ui/src/lib/components/reset-password/reset-password.component.html","../../../projects/verben-authentication-ui/src/lib/components/reset-password/reset-password.module.ts","../../../projects/verben-authentication-ui/src/lib/models/object-state.ts","../../../projects/verben-authentication-ui/src/lib/models/status.ts","../../../projects/verben-authentication-ui/src/lib/models/request-status.ts","../../../projects/verben-authentication-ui/src/lib/models/auth-mechanism.ts","../../../projects/verben-authentication-ui/src/lib/components/o-auth/o-auth.component.ts","../../../projects/verben-authentication-ui/src/lib/components/o-auth/o-auth.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-request/user-request.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request/user-request.component.html","../../../projects/verben-authentication-ui/src/lib/components/o-auth/o-auth.module.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request/user-request.module.ts","../../../projects/verben-authentication-ui/src/lib/components/mail-validation/mail-validation.component.ts","../../../projects/verben-authentication-ui/src/lib/components/mail-validation/mail-validation.component.html","../../../projects/verben-authentication-ui/src/lib/components/mail-validation/mail-validation.module.ts","../../../projects/verben-authentication-ui/src/lib/services/encryption.service.ts","../../../projects/verben-authentication-ui/src/lib/components/button/button.component.ts","../../../projects/verben-authentication-ui/src/lib/components/button/button.component.html","../../../projects/verben-authentication-ui/src/lib/components/sign-up/sign-up.component.ts","../../../projects/verben-authentication-ui/src/lib/components/sign-up/sign-up.component.html","../../../projects/verben-authentication-ui/src/lib/components/button/button.module.ts","../../../projects/verben-authentication-ui/src/lib/components/sign-up/sign-up.module.ts","../../../projects/verben-authentication-ui/src/lib/components/sign-in/sign-in.component.ts","../../../projects/verben-authentication-ui/src/lib/components/sign-in/sign-in.component.html","../../../projects/verben-authentication-ui/src/lib/components/sign-in/sign-in.module.ts","../../../projects/verben-authentication-ui/src/lib/components/otp-input/otp-input.component.ts","../../../projects/verben-authentication-ui/src/lib/components/otp-input/otp-input.component.html","../../../projects/verben-authentication-ui/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.ts","../../../projects/verben-authentication-ui/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.html","../../../projects/verben-authentication-ui/src/lib/components/otp-input/otp-input.module.ts","../../../projects/verben-authentication-ui/src/lib/components/two-factor-auth-otp/two-factor-auth-otp.module.ts","../../../projects/verben-authentication-ui/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.ts","../../../projects/verben-authentication-ui/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.html","../../../projects/verben-authentication-ui/src/lib/components/two-factor-auth-setup/two-factor-auth-setup.module.ts","../../../projects/verben-authentication-ui/src/lib/components/mail/mail.component.ts","../../../projects/verben-authentication-ui/src/lib/components/mail/mail.component.html","../../../projects/verben-authentication-ui/src/lib/components/mail/mail.module.ts","../../../projects/verben-authentication-ui/src/lib/components/forgot-password/forgot-password.component.ts","../../../projects/verben-authentication-ui/src/lib/components/forgot-password/forgot-password.component.html","../../../projects/verben-authentication-ui/src/lib/components/forgot-password/forgot-password.module.ts","../../../projects/verben-authentication-ui/src/lib/components/sso/sso.columns.ts","../../../projects/verben-authentication-ui/src/lib/components/sso/helper.ts","../../../projects/verben-authentication-ui/src/lib/components/sso/base-table-style.ts","../../../projects/verben-authentication-ui/src/lib/components/sso/sso-form/sso-form.component.ts","../../../projects/verben-authentication-ui/src/lib/components/sso/sso-form/sso-form.component.html","../../../projects/verben-authentication-ui/src/lib/components/sso/sso.component.ts","../../../projects/verben-authentication-ui/src/lib/components/sso/sso.component.html","../../../projects/verben-authentication-ui/src/lib/components/sso/sso.module.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/access-request.columns.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/base-table-style.ts","../../../projects/verben-authentication-ui/src/lib/models/SearchOperator.ts","../../../projects/verben-authentication-ui/src/lib/models/SearchPropertySign.ts","../../../projects/verben-authentication-ui/src/lib/models/OAuthType.ts","../../../projects/verben-authentication-ui/src/lib/models/user-access-request-status.ts","../../../projects/verben-authentication-ui/src/lib/models/SearchPropertyValueType.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/helper.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/services/user-access-request.service.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/states/user-access-request.state.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/facades/user-access-request.facade.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/user-request-form/use-request-form.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/user-request-form/user-request-form.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/user-request-approval.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/user-request-approval.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/user-request-approval.service.ts","../../../projects/verben-authentication-ui/src/lib/components/user-request-approval/user-request-approval.module.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.columns.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/base-table-style.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management-form/use-management-form.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management-form/user-management-form.component.html","../../../projects/verben-authentication-ui/src/lib/models/conditions.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/services/user-management.service.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.component.ts","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.component.html","../../../projects/verben-authentication-ui/src/lib/components/user-management/user-management.module.ts","../../../projects/verben-authentication-ui/src/lib/components/auth-callback/auth-callback.component.ts","../../../projects/verben-authentication-ui/src/lib/components/auth-callback/auth-callback.component.html","../../../projects/verben-authentication-ui/src/lib/components/auth-callback/auth-callback.module.ts","../../../projects/verben-authentication-ui/src/lib/services/authorization.service.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/base-table-style.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/UIs.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/UIActions.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/ChildrenType.ts","../../../projects/verben-authentication-ui/src/lib/models/SortDirection.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/role-control.service.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/role-control.component.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/role-control.component.html","../../../projects/verben-authentication-ui/src/lib/shared/shared.module.ts","../../../projects/verben-authentication-ui/src/lib/components/role-control/role-control.module.ts","../../../projects/verben-authentication-ui/src/public-api.ts","../../../projects/verben-authentication-ui/src/verben-authentication-ui.ts"],"sourcesContent":["export class ErrorResponse {\n constructor(\n public ErrorMsg: string,\n public StatusCode?: number,\n public FullLog?: any\n ) {}\n}\n","// In your library's services/environment.service.ts\nimport { Injectable, InjectionToken, Inject } from '@angular/core';\n// import { ENVIRONMENT } from '../models/ENVIRONMENT_TOKEN';\n\nexport const ENVIRONMENT = new InjectionToken<Environment>('environment');\n\nexport interface Environment {\n production: boolean;\n AuthenticationAPI: string;\n Tenant: string;\n APIKey: string;\n Secret: string;\n IvString :string;\n keyString:string;\n\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EnvironmentService {\n constructor(@Inject(ENVIRONMENT) private env: Environment) {}\n\n get environment(): Environment {\n return this.env;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ErrorResponse } from '../models/ErrorResponse';\nimport { EnvironmentService } from './environment.service';\nimport { NotificationService } from 'verben-ng-ui';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HttpWebRequestService {\n isProd: boolean;\n\n constructor(\n private http: HttpClient,\n private envSvc: EnvironmentService,\n private notificationService: NotificationService\n ) {\n this.isProd = this.envSvc.environment.production;\n }\n\n private buildHeaders() {\n return {\n 'Content-Type': 'application/json',\n Authorization:\n 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJNYWlsQWRkcmVzcyI6InZlcmJlbmFAZ21haWwuY29tIiwiQXBwbGljYXRpb24iOiIiLCJOYW1lIjoiVmVyYmVuYSBMb2dpYyBMaW1pdGVkIiwiUm9sZUlEIjoiUk9MLVpYQVhYVCIsIlRlbmFudElkIjoiUERMVEM2IiwiU2VydmljZU5hbWUiOiJXaGl0ZTM2MCIsIm5iZiI6MTczNjUxMjUwNSwiZXhwIjoxNzM2NzI4NTA1LCJpYXQiOjE3MzY1MTI1MDV9.D8BEM7t9c_dxuPVDqx-IG5SLpMWEiexQ1VeubefvF5s',\n };\n }\n\n private buildUrl(url: string, baseUrl: string): string {\n return `${baseUrl}/${url}`;\n }\n\n private handleError(err: any): ErrorResponse {\n const msg =\n err?.ErrorMsg ||\n (err?.errors?.values as string[])?.toString() ||\n `Error occurred`;\n this.notificationService.error(msg, { timeout: 10000 });\n return new ErrorResponse(msg);\n }\n\n private request<T>(\n method: 'GET' | 'POST' | 'PUT' | 'DELETE',\n url: string,\n body?: any,\n baseUrl: string = this.envSvc.environment.AuthenticationAPI\n ): Promise<T> | Observable<T> {\n const options = {\n headers: this.buildHeaders(),\n };\n\n const requestUrl = this.buildUrl(url, baseUrl);\n\n switch (method) {\n case 'GET':\n return new Promise((resolve) =>\n this.http.get<T>(requestUrl, options).subscribe({\n next: resolve,\n error: (err) => resolve(this.handleError(err) as T),\n })\n );\n case 'POST':\n return new Promise((resolve) =>\n this.http.post<T>(requestUrl, body, options).subscribe({\n next: resolve,\n error: (err) => resolve(this.handleError(err) as T),\n })\n );\n case 'PUT':\n return this.http.put<T>(requestUrl, body, options);\n case 'DELETE':\n return this.http.delete<T>(requestUrl, options);\n }\n }\n\n get<T>(url: string, baseUrl?: string): Promise<T> {\n return this.request('GET', url, undefined, baseUrl) as Promise<T>;\n }\n\n post<T>(url: string, body: any, baseUrl?: string): Promise<T> {\n return this.request(\n 'POST',\n url,\n JSON.stringify(body),\n baseUrl\n ) as Promise<T>;\n }\n\n postFile<T>(url: string, formData: FormData, baseUrl?: string): Promise<T> {\n return new Promise((resolve) =>\n this.http\n .post<T>(\n this.buildUrl(\n url,\n baseUrl || this.envSvc.environment.AuthenticationAPI\n ),\n formData\n )\n .subscribe({\n next: resolve,\n error: (err) => resolve(this.handleError(err) as T),\n })\n );\n }\n\n put<T>(url: string, body: any, baseUrl?: string): Observable<T> {\n return this.request('PUT', url, body, baseUrl) as Observable<T>;\n }\n\n delete<T>(url: string, baseUrl?: string): Observable<T> {\n return this.request('DELETE', url, undefined, baseUrl) as Observable<T>;\n }\n}\n","import {\n Inject,\n Injectable,\n InjectionToken,\n Optional,\n SkipSelf,\n} from '@angular/core';\nimport { UTIL_SERVICE } from 'verben-ng-ui';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UtilService {\n constructor(\n @Optional()\n @Inject(UTIL_SERVICE)\n private parentUtilService: any\n ) {}\n\n sendBI(state: boolean): void {\n if (this.parentUtilService && this.parentUtilService.sendBI) {\n this.parentUtilService.sendBI(state);\n } else {\n console.warn('Util Service is not provided');\n }\n }\n\n showInfo(message: string): void {\n if (this.parentUtilService && this.parentUtilService.showInfo) {\n this.parentUtilService.showInfo(message);\n } else {\n console.warn('Util Service is not provided');\n }\n }\n showSuccess(message: string): void {\n if (this.parentUtilService && this.parentUtilService.showSuccess) {\n this.parentUtilService.showSuccess(message);\n } else {\n console.warn('Util Service is not provided');\n }\n }\n showError(message: string): void {\n if (this.parentUtilService && this.parentUtilService.showError) {\n this.parentUtilService.showError(message);\n } else {\n console.warn('Util Service is not provided');\n }\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport { ResetPasswordData } from './ResetPasswordData';\nimport { HttpWebRequestService } from '../../services/http-web-request.service';\nimport { ErrorResponse } from '../../models/ErrorResponse';\nimport { ResponseKeyValue } from '../../models/ResponseKeyValue';\nimport { PasswordRequestParam } from '../../models/PasswordRequestParam';\nimport { UtilService } from '../../services/util.service';\n\n@Component({\n selector: 'verben-reset-password',\n templateUrl: './reset-password.component.html',\n styleUrl: './reset-password.component.css',\n})\n\nexport class ResetPasswordComponent {\n @Input() title: string = 'Reset Password';\n @Input() subTitle: string = 'Create a New Password';\n @Input() buttonCaption: string = 'Submit';\n @Input() buttonTextColor?: string;\n @Input() buttonBackgroundColor?: string;\n @Input() showOldPassword: boolean = false;\n @Input() token?: string;\n\n @Output() onSubmit: EventEmitter<ResetPasswordData> = new EventEmitter();\n @Output() onSubmitEnd: EventEmitter<ResponseKeyValue | ErrorResponse> =\n new EventEmitter();\n\n resetPasswordForm: FormGroup;\n\n constructor(\n private fb: FormBuilder,\n private server: HttpWebRequestService,\n private utilService: UtilService\n ) {\n this.resetPasswordForm = this.fb.group({\n OldPassword: new FormControl<string | null>(\n null,\n this.oldPasswordValidator.bind(this)\n ),\n Password: new FormControl<string | null>(null, Validators.required),\n ConfirmPassword: new FormControl<string | null>(null, [\n Validators.required,\n this.confirmPasswordValidator.bind(this),\n ]),\n });\n }\n\n checkForm(): boolean {\n return this.resetPasswordForm.valid;\n }\n\n oldPasswordValidator(control: AbstractControl): ValidationErrors | null {\n if (this.showOldPassword && control.value == null) {\n return { customValidation: true };\n }\n return null;\n }\n confirmPasswordValidator(control: AbstractControl): ValidationErrors | null {\n if (\n this.resetPasswordForm &&\n this.resetPasswordForm.controls['Password'] &&\n this.resetPasswordForm.controls['Password'].value !== control.value\n ) {\n return { customValidation: true };\n }\n return null;\n }\n\n async submit() {\n if (!this.checkForm()) {\n return;\n }\n var data: ResetPasswordData = {\n OldPassword: this.showOldPassword\n ? this.resetPasswordForm.controls['OldPassword'].value\n : undefined,\n Password: this.resetPasswordForm.controls['Password'].value,\n ConfirmPassword: this.resetPasswordForm.controls['ConfirmPassword'].value,\n };\n this.onSubmit.emit(data);\n var passwordRequest: PasswordRequestParam = {\n NewPassword: data.Password,\n OldPassword: data.OldPassword,\n Token: this.token,\n };\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `User/CompleteChangePasswordRequest`,\n passwordRequest\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.onSubmitEnd.emit(res);\n } else {\n var result = res as ResponseKeyValue;\n this.onSubmitEnd.emit(result);\n }\n }\n}\n\n","<div [formGroup]=\"this.resetPasswordForm\" class=\"reset-password-container flex flex-col\">\n <div class=\"reset-password-header flex flex-col\">\n <div class=\"reset-password-title\">{{title}}</div>\n <div class=\"reset-password-subtitle\">{{subTitle}}</div>\n </div>\n <div *ngIf=\"showOldPassword\" class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Old Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"OldPassword\" [passwordToggle]=\"true\"\n type=\"password\"></verbena-input>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">New Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"Password\" [passwordToggle]=\"true\"\n type=\"password\"></verbena-input>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Confirm Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"ConfirmPassword\" [passwordToggle]=\"true\"\n type=\"password\"></verbena-input>\n </div>\n <verbena-button fontWeight=\"700\" (click)=\"submit()\" [text]=\"buttonCaption\" width=\"100%\" [textColor]=\"buttonTextColor\"\n [bgColor]=\"buttonBackgroundColor\" borderRadius=\"25px\" [disable]=\"!this.checkForm()\"></verbena-button>\n\n</div>","import { NgModule } from '@angular/core';\nimport { ResetPasswordComponent } from './reset-password.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [ResetPasswordComponent],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n CommonModule,\n ],\n exports: [ResetPasswordComponent],\n})\nexport class ResetPasswordModule {}\n","export enum ObjectState {\n New = 'New',\n Changed = 'Changed',\n Unchanged = 'Unchanged',\n Removed = 'Removed',\n}\n","export enum Status {\n InActive = \"InActive\",\n Active = \"Active\",\n }\n ","export enum RequestStatus {\n Pending='Pending'\n }\n ","export enum MechanismType {\n InApp = 'InApp',\n Google = 'Google',\n Apple = 'Apple',\n MicrosoftAD = 'MicrosoftAD',\n}\n\nexport interface AuthMechanism {\n AuthMechanism: string;\n ClientId: string;\n ClientSecret: string;\n RedirectUri: string;\n Scope: string;\n TenantId?:string\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { AuthMechanism, MechanismType } from '../../models/auth-mechanism';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { HttpWebRequestService } from '../../services/http-web-request.service';\nimport { UtilService } from '../../services/util.service';\n\ndeclare global {\n interface Window {\n google: any;\n }\n}\n\n@Component({\n selector: 'verben-o-auth',\n templateUrl: './o-auth.component.html',\n styleUrl: './o-auth.component.css',\n})\nexport class OAuthComponent implements OnInit {\n showGoogle: boolean = false;\n showMicrosoft: boolean = false;\n showApple: boolean = false;\n @Input() authMechanisms: AuthMechanism[] | null = null;\n @Output() emitMechanismFn = new EventEmitter<string>();\n page: string = '';\n type: string = '';\n\n constructor(private router: Router) {}\n\n ngOnInit(): void {\n this.loadPage();\n this.loadGoogleScript();\n if (this.authMechanisms !== null) {\n this.authMechanisms = this.authMechanisms.filter(\n (item) => item.AuthMechanism !== MechanismType.InApp\n );\n }\n }\n\n loadPage() {\n this.page = this.router.url;\n }\n\n loadGoogleScript(): void {\n if (!document.getElementById('google-jssdk')) {\n const script = document.createElement('script');\n script.src = 'https://accounts.google.com/gsi/client';\n script.id = 'google-jssdk';\n script.async = true;\n script.defer = true;\n script.onload = () => console.log('Google SDK loaded');\n script.onerror = () => console.log('Error loading Google SDK');\n document.head.appendChild(script);\n }\n }\n\n oAuthWithGoogle(data: AuthMechanism) {\n this.type = data.AuthMechanism;\n localStorage.setItem('type', JSON.stringify(this.type));\n const redirectUri = encodeURIComponent(data.RedirectUri);\n const scope = encodeURIComponent('openid email profile');\n const responseType = 'code';\n const state = encodeURIComponent(JSON.stringify({ returnTo: this.page }));\n const authUrl = `https://accounts.google.com/o/oauth2/v2/auth?client_id=${data.ClientId}&redirect_uri=${redirectUri}&response_type=${responseType}&scope=${scope}&state=${state}`;\n window.location.href = authUrl;\n }\n\n oAuthWithApple() {}\n\n oAuthWithMicrosoft(data: AuthMechanism) {\n this.type = data.AuthMechanism;\n const cleanUrl = window.location.href.split('?')[0];\n window.history.replaceState({}, document.title, cleanUrl); // Update the URL without reloading\n localStorage.setItem('type', JSON.stringify(this.type));\n const redirectUri = encodeURIComponent(data.RedirectUri);\n const scope = encodeURIComponent('openid email profile');\n const responseType = 'code';\n const state = encodeURIComponent(JSON.stringify({ returnTo: this.page }));\n // const authUrl = `https://login.microsoftonline.com/${data.TenantId}/oauth2/v2.0/authorize?client_id=${data.ClientId}&response_type=${responseType}&redirect_uri=${redirectUri}&response_mode=query&state=${state}`;\n const authUrl = `https://login.microsoftonline.com/common/oauth2/v2.0/authorize\n?client_id=${data.ClientId}\n&response_type=${responseType}\n&redirect_uri=${redirectUri}&scope=${scope}\n&response_mode=query&state=${state}`;\n window.location.href = authUrl;\n }\n\n checkForValue(value: string) {\n switch (value) {\n case MechanismType.Google:\n return 'google-logo';\n case MechanismType.Apple:\n return 'apple-logo';\n case MechanismType.MicrosoftAD:\n return 'microsoft-logo';\n default:\n return '';\n }\n }\n\n handleOauthClick(value: AuthMechanism) {\n switch (value.AuthMechanism) {\n case MechanismType.Google:\n return this.oAuthWithGoogle(value);\n break;\n case MechanismType.Apple:\n return this.oAuthWithApple();\n break;\n case MechanismType.MicrosoftAD:\n return this.oAuthWithMicrosoft(value);\n break;\n default:\n return '';\n }\n }\n}\n","<section class=\"oauthWrapper\"> \n <div class=\"OrFlexWrapper\">\n <hr/>\n <span>OR</span>\n <hr/>\n </div>\n <div class=\"btnWrapper\">\n <div *ngFor=\"let btn of authMechanisms, let i = index\"> \n <verbena-button\n [svg]=\"checkForValue(btn.AuthMechanism)\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n [text]=\"'Continue with ' + btn.AuthMechanism\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n (click)=\"handleOauthClick(btn)\"\n ></verbena-button>\n </div> \n </div> \n</section>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport { HttpWebRequestService } from '../../services/http-web-request.service';\nimport { UserRequestPayload } from '../../models/UserRequest';\nimport { ObjectState } from '../../models/object-state';\nimport { UtilService } from '../../services/util.service';\nimport { ResponseKeyValue } from '../../models/ResponseKeyValue';\nimport { ErrorResponse } from '../../models/ErrorResponse';\nimport { Status } from '../../models/status';\nimport { RequestStatus } from '../../models/request-status';\nimport { EnvironmentService } from '../../services/environment.service';\nimport { AuthMechanism, MechanismType } from '../../models/auth-mechanism';\nimport { ActivatedRoute } from '@angular/router';\nimport { OAuthResponse } from '../../models/oauth-response';\nimport { Role } from '../../models/Role';\n\n@Component({\n selector: 'lib-user-request',\n templateUrl: './user-request.component.html',\n styleUrls: ['./user-request.component.css'],\n})\nexport class UserRequestComponent {\n @Input() width: string = '500px';\n @Input() headingTitle: string = 'Request an account';\n @Input() headingClass: string =\n 'font-medium text-[2rem] leading-[48px] text-[#333]';\n @Input() customClass: string = '';\n @Input() bgColor: string = '#fff';\n @Input() boxShadow: string = '4px 4px 4px rgba(0, 0, 0, 0.25)';\n @Input() border: string = '1px solid #66666680';\n @Input() borderRadius: string = '24px';\n @Input() textColor: string = '#333';\n @Input() height: string = 'auto';\n @Input() pd: string = '32px 48px';\n isFormEditable: boolean = true;\n tenant: string;\n secret: string;\n hidePassword: boolean = false;\n isCode: boolean = false;\n @Input() text: string = 'Send Request';\n @Input() color: string = 'black';\n @Input() btnBorder: string = '1px solid #FFE681';\n @Input() btnBorderRadius: string = '40px';\n @Input() btnBgColor: string = '#FFE681';\n @Input() btnWidth: string = '100%';\n @Input() btnPd: string = '10px 20px';\n @Input() termsLink: string = '';\n @Input() privacyLink: string = '';\n @Input() routerLink: string = '';\n @Output() formSubmit = new EventEmitter<UserRequestPayload[]>();\n @Output() googleClick = new EventEmitter();\n @Output() onSubmitSuccess = new EventEmitter<any>();\n @Output() appleClick = new EventEmitter();\n @Output() microsoftClick = new EventEmitter();\n @Output() onSubmitGoogleAuth: EventEmitter<ResponseKeyValue | ErrorResponse> =\n new EventEmitter();\n @Output() onSubmitResponseEnd: EventEmitter<any> = new EventEmitter();\n userRequestForm: FormGroup;\n tenantDetails: any | null = null;\n AuthMechanisms: AuthMechanism[] | null = null;\n showform: boolean = false;\n code: string = '';\n type: string = '';\n constructor(\n private fb: FormBuilder,\n private server: HttpWebRequestService,\n private utilService: UtilService,\n private envSvc: EnvironmentService,\n private route: ActivatedRoute\n ) {\n this.tenant = this.envSvc.environment.Tenant;\n this.secret = this.envSvc.environment.Secret;\n this.userRequestForm = this.fb.group<{\n [K in keyof UserRequestPayload]: FormControl<UserRequestPayload[K]>;\n }>(\n {\n Code: new FormControl('', { nonNullable: true }),\n FirstName: new FormControl('', {\n nonNullable: true,\n validators: [Validators.required],\n }),\n LastName: new FormControl('', {\n nonNullable: true,\n validators: [Validators.required],\n }),\n MailAddress: new FormControl('', {\n nonNullable: true,\n validators: [Validators.required, Validators.email],\n }),\n Password: new FormControl('', {\n nonNullable: true,\n validators: [Validators.required, Validators.minLength(8)],\n }),\n PhoneNumber: new FormControl('', { nonNullable: true }),\n OtherName: new FormControl('', { nonNullable: true }),\n Role: new FormControl<Role>(\n {\n Name: '',\n Description: '',\n Application: '',\n RoleContexts: [],\n APIKey: '',\n Id: '',\n id: '',\n ServiceName: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n },\n { nonNullable: true }\n ),\n Tags: new FormControl<[]>([], { nonNullable: true }),\n Status: new FormControl<Status>(Status.Active, { nonNullable: true }),\n RequestStatus: new FormControl<RequestStatus>(RequestStatus.Pending, {\n nonNullable: true,\n }),\n UpdatedAt: new FormControl(new Date(), { nonNullable: true }),\n CreatedAt: new FormControl(new Date(), { nonNullable: true }),\n Id: new FormControl('', { nonNullable: true }),\n DataState: new FormControl<ObjectState>(ObjectState.New, {\n nonNullable: true,\n }),\n TenantId: new FormControl('', { nonNullable: true }),\n Token: new FormControl('', { nonNullable: true }),\n SignUpType: new FormControl(MechanismType.InApp, { nonNullable: true }),\n ServiceName: new FormControl('', { nonNullable: true }),\n ActionBy: new FormControl('', { nonNullable: true }),\n Comment: new FormControl('', { nonNullable: true }),\n },\n { validators: this.passwordMatchValidator }\n );\n }\n passwordMatchValidator(control: AbstractControl): ValidationErrors | null {\n const password = control.get('Password')?.value;\n const confirmPassword = control.get('ConfirmPassword')?.value;\n\n return password === confirmPassword ? null : { passwordMismatch: true };\n }\n\n get passwordMismatchError(): boolean {\n return this.userRequestForm.hasError('passwordMismatch');\n }\n\n get styles() {\n return {\n 'background-color': this.bgColor,\n 'box-shadow': this.boxShadow,\n border: this.border,\n 'border-radius': this.borderRadius,\n color: this.textColor,\n 'max-width': this.width,\n height: this.height,\n padding: this.pd,\n };\n }\n async ngOnInit() {\n await this.getTenantConfig();\n this.route.queryParams.subscribe((params) => {\n this.code = params['code'];\n this.type = params['type'];\n if (this.code) {\n this.verifyUserDetails();\n }\n });\n }\n\n async getTenantConfig() {\n this.userRequestForm.addControl(\n 'ConfirmPassword',\n new FormControl('', Validators.required)\n );\n const res = await this.server.get(\n `Tenant/GetTenantConfigByKey/${this.tenant}`\n );\n this.tenantDetails = res;\n this.AuthMechanisms = this.tenantDetails?.AuthMechanisms;\n if (\n !this.tenantDetails?.AuthMechanism &&\n this.tenantDetails?.AuthMechanism !== MechanismType.InApp\n ) {\n this.showform = false;\n } else if (this.tenantDetails?.AuthMechanism === MechanismType.InApp) {\n this.showform = true;\n } else if (this.AuthMechanisms !== null) {\n this.showform = this.AuthMechanisms.some((item) =>\n item.AuthMechanism.includes(MechanismType.InApp)\n );\n }\n }\n checkForm(): boolean {\n return this.userRequestForm.valid;\n }\n handleGoogleAuth() {\n if (this.AuthMechanisms !== null) {\n const data = this.AuthMechanisms.filter(\n (item) => item.AuthMechanism === MechanismType.Google\n );\n this.googleClick.emit();\n }\n }\n handleAppleAuth() {\n this.appleClick.emit();\n }\n handleMicrosoft() {\n if (this.AuthMechanisms !== null) {\n const data = this.AuthMechanisms.filter(\n (item) => item.AuthMechanism === MechanismType.MicrosoftAD\n );\n this.microsoftClick.emit();\n }\n }\n\n async submitForm() {\n if (!this.checkForm()) {\n return;\n }\n\n const formValue = this.userRequestForm.getRawValue();\n const { ConfirmPassword, ...payload } = formValue;\n\n const payloadToSubmit: UserRequestPayload[] = [payload];\n\n this.formSubmit.emit(payloadToSubmit);\n this.utilService.sendBI(true);\n\n try {\n const res = await this.server.post(\n `User/SaveUserAccessRequests`,\n payloadToSubmit\n );\n\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n this.onSubmitResponseEnd.emit(res);\n } else {\n const result = res as ResponseKeyValue;\n this.onSubmitResponseEnd.emit(result);\n this.onSubmitSuccess.emit(result);\n }\n } catch (error) {\n this.utilService.sendBI(false);\n console.error('Unexpected error:', error);\n this.onSubmitResponseEnd.emit(error);\n }\n }\n async verifyUserDetails() {\n if (this.AuthMechanisms !== null && this.tenant) {\n const data: any = this.AuthMechanisms.find((item) =>\n item.AuthMechanism.includes(this.type)\n );\n const payload = {\n AuthCode: this.code,\n Tenant: this.tenant,\n AuthMechanism: data.AuthMechanism,\n };\n\n this.utilService.sendBI(true);\n const res: OAuthResponse = await this.server.post(\n `Authentication/GetUserDetails`,\n payload\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.onSubmitGoogleAuth.emit(res);\n } else {\n this.userRequestForm.controls['FirstName'].setValue(res.FirstName);\n this.userRequestForm.controls['LastName'].setValue(res.LastName);\n this.userRequestForm.controls['MailAddress'].setValue(res.Email);\n this.userRequestForm.controls['Token'].setValue(res.AccessToken);\n this.userRequestForm.controls['SignUpType'].setValue(this.type);\n this.userRequestForm.controls['Password'].clearValidators();\n this.userRequestForm.controls['Password'].updateValueAndValidity();\n this.userRequestForm.controls['ConfirmPassword'].clearValidators();\n this.userRequestForm.controls[\n 'ConfirmPassword'\n ].updateValueAndValidity();\n this.hidePassword = true;\n }\n }\n }\n}\n","<section [ngStyle]=\"styles\" class=\"{{ customClass }}\">\n <h2 class=\"{{ headingClass }}\">\n {{ headingTitle }}\n </h2>\n\n <form\n [formGroup]=\"userRequestForm\"\n (ngSubmit)=\"submitForm()\"\n class=\"flex flex-col gap-5 mt-3\"\n >\n <verbena-input\n [label]=\"'First Name'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n formControlName=\"FirstName\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <verbena-input\n [label]=\"'Last Name'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n formControlName=\"LastName\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <verbena-input\n [label]=\"'E-mail Address'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'email'\"\n formControlName=\"MailAddress\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [customErrorMessages]=\"{\n required: 'Email address is required',\n email: 'Email address must be valid'\n }\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"!hidePassword\"\n [label]=\"'Password'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [passwordToggle]=\"true\"\n formControlName=\"Password\"\n [required]=\"true\"\n [type]=\"'password'\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"!hidePassword\"\n [label]=\"'Confirm Password'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n formControlName=\"ConfirmPassword\"\n [showBorder]=\"true\"\n [passwordToggle]=\"true\"\n [bgColor]=\"'white'\"\n [minLength]=\"userRequestForm.controls['Password'].value?.length\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [customErrorMessages]=\"{\n minLength:'Confirm Password must match password',\n required: 'Confirm Password is required and must match password',\n password: 'Password does not match',\n }\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-button\n [class]=\"'mt-6'\"\n [disable]=\"!this.checkForm()\"\n [text]=\"text\"\n [bgColor]=\"btnBgColor\"\n [textColor]=\"color\"\n [buttonClass]=\"'cursor-not-allowed'\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [pd]=\"btnPd\"\n [ngClass]=\"{\n 'cursor-not-allowed':!checkForm()\n }\"\n [width]=\"btnWidth\"\n buttonClass=\"font-medium text-[22px] leading-[33px]\"\n ></verbena-button>\n </form>\n\n <div class=\"mt-2\" *ngIf=\"AuthMechanisms !== null\"> \n <verben-o-auth \n [authMechanisms]=\"AuthMechanisms\"\n ></verben-o-auth>\n </div>\n</section>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';\nimport { OAuthComponent } from './o-auth.component';\n\n@NgModule({\n declarations: [OAuthComponent],\n imports: [CommonModule,VerbenaInputModule,VerbenaButtonModule],\n exports: [OAuthComponent]\n})\nexport class OAuthModule {}","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';\nimport { CommonModule } from '@angular/common';\nimport { UserRequestComponent } from './user-request.component';\nimport { OAuthModule } from '../o-auth/o-auth.module';\n\n@NgModule({\n declarations: [UserRequestComponent],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n CommonModule,\n OAuthModule\n ],\n exports: [UserRequestComponent],\n})\nexport class UserRequestModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-mail-validation',\n templateUrl: './mail-validation.component.html',\n styleUrls: ['./mail-validation.component.css']\n})\nexport class MailValidationComponent {\n @Input() customClass: string = '';\n @Input() bgColor: string = '#fff';\n @Input() boxShadow: string = '4px 4px 4px rgba(0, 0, 0, 0.25)';\n @Input() border: string = '1px solid #66666680';\n @Input() borderRadius: string = '24px';\n @Input() textColor: string = '#666666';\n @Input() height: string = 'auto';\n @Input() pd: string = '32px 48px';\n @Input() width: string = '600px';\n @Input() text: string = 'Login';\n @Input() textAlign: string = 'center';\n @Input() color: string = 'black';\n @Input() textSize: string = '32px';\n @Input() btnBorder: string = '1px solid #FFE681';\n @Input() btnBorderRadius: string = \"40px\";\n @Input() btnBgColor: string = '#FFE681';\n @Input() btnWidth: string = '100%';\n @Input() btnPd: string = '7px 10px';\n\n @Output() resendOtp = new EventEmitter<void>();\n @Output() proceedToNextStep = new EventEmitter<'verified' | 'accessGranted'>();\n @Output() login = new EventEmitter<void>();\n\n currentStep: 'linkSent' | 'verified' | 'accessGranted' = 'linkSent';\n\n handleResendOtp() {\n this.resendOtp.emit();\n }\n\n goToNextStep() {\n switch (this.currentStep) {\n case 'linkSent':\n this.currentStep = 'verified';\n this.proceedToNextStep.emit(this.currentStep);\n break;\n case 'verified':\n this.currentStep = 'accessGranted';\n this.proceedToNextStep.emit(this.currentStep);\n break;\n }\n }\n get styles() {\n return {\n 'background-color': this.bgColor,\n 'box-shadow': this.boxShadow,\n 'border': this.border,\n 'border-radius': this.borderRadius,\n 'color': this.textColor,\n 'max-width': this.width,\n 'margin': '0 auto',\n 'height': this.height,\n 'padding': this.pd,\n };\n }\n handleLogin() {\n this.login.emit();\n }\n}\n","<section [ngStyle]=\"styles\" class=\"{{ customClass }}\">\n <div *ngIf=\"currentStep === 'linkSent'\">\n <p [style.color]=\"textColor\" [style.font-size]=\"textSize\">\n Follow the link sent to your e-mail to verify your e-mail address\n </p>\n <p class=\"mt-4\" (click)=\"handleResendOtp()\">\n Didn't get a link? <a href=\"#\" class=\"underline resend\">Resend</a>\n </p>\n </div>\n\n <div *ngIf=\"currentStep === 'verified'\">\n <p [style.color]=\"textColor\" [style.font-size]=\"textSize\">\n Your e-mail has been verified! You will be notified when your access has\n been authorized\n </p>\n </div>\n\n <div *ngIf=\"currentStep === 'accessGranted'\">\n <p [style.color]=\"textColor\" [style.font-size]=\"textSize\">\n Your e-mail has been verified!\n </p>\n <div class=\"mt-4\">\n <verbena-button\n [text]=\"text\"\n [bgColor]=\"btnBgColor\"\n [textColor]=\"color\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [pd]=\"btnPd\"\n (click)=\"handleLogin()\"\n [width]=\"btnWidth\"\n textSize=\"'22px'\"\n buttonClass=\"font-medium text-[22px] leading-[33px]\"\n ></verbena-button>\n </div>\n </div>\n</section>\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';\nimport { CommonModule } from '@angular/common';\nimport { MailValidationComponent } from './mail-validation.component';\n\n@NgModule({\n declarations: [MailValidationComponent],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n CommonModule,\n ],\n exports: [MailValidationComponent],\n})\nexport class MailValidationModule {}\n","import { Injectable } from '@angular/core';\nimport CryptoJS from 'crypto-js';\nimport {EnvironmentService } from './environment.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EncryptionService {\n\n private ivString :string=''\n private keyString:string=''\n constructor(\n\n private envSvc: EnvironmentService,\n\n ) {\n this.ivString=this.envSvc.environment.IvString\n this.keyString=this.envSvc.environment.keyString\n }\n encryptData(data: string): string {\n try {\n const encrypted = CryptoJS.AES.encrypt(\n data,\n CryptoJS.enc.Utf8.parse(this.keyString),\n {\n iv: CryptoJS.enc.Utf8.parse(this.ivString),\n }\n );\n\n // Return the encrypted data as a string\n return encrypted.toString();\n } catch (error) {\n console.error('Encryption error:', error);\n return data; // Return original data if encryption fails\n }\n }\n\n decryptData(data: string): string {\n try {\n // Decrypt the data\n const decrypted = CryptoJS.AES.decrypt(\n data,\n CryptoJS.enc.Utf8.parse(this.keyString),\n {\n iv: CryptoJS.enc.Utf8.parse(this.ivString),\n }\n );\n\n // Convert the decrypted data to a UTF-8 string\n return decrypted.toString(CryptoJS.enc.Utf8);\n } catch (error) {\n console.error('Decryption error:', error);\n return data; // Return original data if decryption fails\n }\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-button',\n templateUrl: './button.component.html',\n styleUrl: './button.component.css'\n})\nexport class ButtonComponent{\n @Input() text: string = '';\n @Input() color: string = 'black';\n @Input() border: string = '1px solid #FFE681';\n @Input() borderRadius:string = \"40px\"\n @Input() bgColor: string = '#FFE681';\n @Input() width: string = '100%';\n @Input() pd: string = '10px 20px';\n @Input() buttonClass: string = '';\n @Input() disabled: boolean = false;\n\n @Output() buttonClick = new EventEmitter<void>();\n\n handleClick(){ \n this.buttonClick.emit();\n }\n}\n","<verbena-button\n[text]=\"text\"\n[bgColor]=\"bgColor\"\n[textColor]=\"color\"\n[border]=\"border\"\n[borderRadius]=\"borderRadius\"\n[pd]=\"pd\"\n[width]=\"width\"\n[disable]=\"disabled\"\n[ngStyle]=\"{'cursor': disabled ? 'not-allowed' : 'pointer' }\"\nbuttonClass=\"font-medium text-[22px] leading-[33px] {{buttonClass}}\"\n(click)=\"handleClick()\"\n></verbena-button>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { SignUpData } from '../../models/sign-up';\nimport { HttpWebRequestService } from '../../services/http-web-request.service';\nimport { ErrorResponse } from '../../models/ErrorResponse';\nimport { ResponseKeyValue } from '../../models/ResponseKeyValue';\nimport { UtilService } from '../../services/util.service';\nimport { ObjectState } from '../../models/object-state';\nimport { EncryptionService } from '../../services/encryption.service';\n\n@Component({\n selector: 'verben-sign-up',\n templateUrl: './sign-up.component.html',\n styleUrl: './sign-up.component.css',\n})\nexport class SignUpComponent {\n @Input() headlingText: string = 'Create an account';\n @Input() width: string = '';\n @Input() maxWidth: string = '';\n @Input() margin: string = '';\n @Input() pd: string = '';\n @Input() customClass: string = '';\n @Input() headlingClass: string = '';\n @Input() bgColor: string = '#fff';\n @Input() boxShadow: string = '4px 4px 4px rgba(0, 0, 0, 0.25)';\n @Input() border: string = '1px solid #66666680';\n @Input() borderRadius: string = '24px';\n @Input() height: string = 'auto';\n @Input() textColor: string = '#333';\n @Input() disabled: boolean = false;\n\n // button styles\n @Input() btnClass: string = '';\n @Input() btnBgColor: string = '#FFE681';\n @Input() btnColor: string = '';\n @Input() btnBorder: string = '';\n @Input() btnBorderRadius: string = '24px';\n @Input() btnPd: string = '';\n @Input() btnText: string = 'Create account';\n\n //inputStyles\n @Input() inputLabelColor: string = '';\n @Input() inputBgColor: string = 'transparent';\n @Input() inputBorder: string = '1px solid #66666659';\n @Input() inputBorderRadius: string = '12px';\n\n // links\n @Input() termsLink: string = '';\n @Input() privacyLink: string = '';\n @Input() routerLink: string = '';\n\n @Output() formSubmit = new EventEmitter<SignUpData>();\n @Output() onSubmitEnd: EventEmitter<ResponseKeyValue | ErrorResponse> =\n new EventEmitter();\n @Output() googleClick = new EventEmitter();\n @Output() appleClick = new EventEmitter();\n\n signUpForm: FormGroup;\n\n constructor(\n private fb: FormBuilder,\n private server: HttpWebRequestService,\n private utilService: UtilService,\n private encryptionService: EncryptionService\n ) {\n this.signUpForm = this.fb.group(\n {\n Firstname: new FormControl<string | null>(null, Validators.required),\n Lastname: new FormControl<string | null>(null, Validators.required),\n Email: new FormControl<string | null>(null, [\n Validators.required,\n Validators.email,\n ]),\n Password: new FormControl<string | null>(null, [\n Validators.required,\n Validators.minLength(8),\n ]),\n Confirmpassword: new FormControl<string | null>(null, [\n Validators.required,\n Validators.minLength(8),\n ]),\n Terms: new FormControl<boolean>(false, [Validators.requiredTrue]),\n },\n { validators: this.passwordMatchValidator }\n );\n }\n\n private passwordMatchValidator: ValidatorFn = (\n group: AbstractControl\n ): ValidationErrors | null => {\n const password = group.get('Password')?.value;\n const confirmPassword = group.get('Confirmpassword')?.value;\n return password === confirmPassword ? null : { passwordMismatch: true };\n };\n\n checkForm(): boolean {\n return this.signUpForm.valid;\n }\n\n async submit() {\n if (!this.checkForm()) {\n return;\n }\n const data: SignUpData = {\n Firstname: this.signUpForm.controls['Firstname'].value,\n Lastname: this.signUpForm.controls['Lastname'].value,\n Email: this.signUpForm.controls['Email'].value,\n Password:this.encryptionService.encryptData(this.signUpForm.controls['Password'].value),\n Terms: this.signUpForm.controls['Terms'].value,\n Id: '61f7e48f0c651345677b7775',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n id: '61f7e48f0c651345677b7775',\n TenantId: 'James',\n Code: '',\n ServiceName: '',\n };\n const payload = [\n {\n ...data,\n Code: '123 ',\n ServiceName: 'Test 1',\n MailAddress: data.Email,\n OtherName: 'James',\n Status: 'Inactive',\n PhoneNumber: '07012345678',\n TenantId: '61f7e48f0c651345677b7775',\n Role: ['tester'],\n Tags: [\n {\n Name: 'checker',\n IsOptional: true,\n },\n ],\n },\n ];\n\n this.formSubmit.emit(data);\n this.utilService.sendBI(true);\n const res = await this.server.post(`User/SaveUsers`, payload);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.onSubmitEnd.emit(res);\n } else {\n var result = res as ResponseKeyValue;\n this.onSubmitEnd.emit(result);\n }\n }\n\n handleGoogleAuth() {\n this.googleClick.emit();\n }\n handleAppleAuth() {\n this.appleClick.emit();\n }\n\n get styles() {\n return {\n 'background-color': this.bgColor,\n 'box-shadow': this.boxShadow,\n border: this.border,\n 'border-radius': this.borderRadius,\n color: this.textColor,\n width: this.width,\n 'max-width': this.maxWidth,\n margin: this.margin,\n height: this.height,\n padding: this.pd,\n };\n }\n}\n","<section [ngStyle]=\"styles\" class=\"{{ customClass }}\">\n <h2 class=\"{{headlingClass}}\">\n {{headlingText}}\n </h2>\n <form [formGroup]=\"signUpForm\" (ngSubmit)=\"submit()\" class=\"flexWrapper\">\n <verbena-input\n [label]=\"'First name'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n formControlName=\"Firstname\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n [customErrorMessages]=\"{required:'First name is required'}\"\n ></verbena-input>\n <verbena-input\n [label]=\"'Last name'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n formControlName=\"Lastname\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n [customErrorMessages]=\"{required:'Last name is required'}\"\n ></verbena-input>\n <verbena-input\n [label]=\"'Email'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'email'\"\n formControlName=\"Email\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <verbena-input\n [label]=\"'Password'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n formControlName=\"Password\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n [passwordToggle]=\"true\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <div>\n <verbena-input\n [label]=\"'Confirm Password'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n formControlName=\"Confirmpassword\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"false\"\n [errorBorderColor]=\"'red'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <span *ngIf=\"signUpForm.hasError('passwordMismatch') && signUpForm.get('Confirmpassword')?.dirty\">\n <small class=\"error-text\">Passwords do not match.</small>\n </span>\n </div>\n <div>\n <div class=\"checkBoxWrapper\">\n <input type=\"checkbox\" id=\"terms\" formControlName=\"Terms\" class=\"checBoxInput\" />\n <label for=\"terms\"\n class=\"break-all font-normal leading-6\"\n >By creating an account, I agree to our <a [attr.href]=\"termsLink\">Terms of use</a> and\n <a [attr.href]=\"privacyLink\">Privacy Policy</a></label\n >\n </div>\n <p *ngIf=\"signUpForm.controls['Terms'].invalid && signUpForm.controls['Terms'].touched\">\n <small class=\"error-text\">Please agree to the terms of use and privacy policy.</small>\n </p>\n </div>\n <lib-button\n [buttonClass]=\"btnClass\"\n [color]=\"btnColor\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [bgColor]=\"btnBgColor\"\n [pd]=\"btnPd\"\n [text]=\"btnText\"\n type=\"submit\"\n [disabled]=\"!this.checkForm()\"\n [ngStyle]=\"{'margin-top':'10px'}\"\n ></lib-button>\n <verben-o-auth\n (googleClick)=\"handleGoogleAuth()\"\n (appleClick)=\"handleAppleAuth()\"\n ></verben-o-auth>\n <p>\n Already have an account?\n <a [routerLink]=\"routerLink\" class=\"\">Log in</a>\n </p>\n </form>\n </section>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VerbenaButtonModule } from 'verben-ng-ui';\nimport { ButtonComponent } from './button.component';\nimport { FormsModule } from '@angular/forms';\n@NgModule({\n declarations: [ButtonComponent],\n imports: [CommonModule,VerbenaButtonModule,FormsModule],\n exports: [ButtonComponent]\n})\nexport class ButtonModule {}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { SignUpComponent } from './sign-up.component';\nimport { VerbenaInputModule } from 'verben-ng-ui';\nimport { OAuthModule } from '../o-auth/o-auth.module';\nimport { ButtonModule } from '../button/button.module';\nimport { ReactiveFormsModule } from '@angular/forms';\n@NgModule({\n declarations: [SignUpComponent],\n imports: [CommonModule, FormsModule, VerbenaInputModule, RouterLink,ButtonModule,OAuthModule,ReactiveFormsModule],\n exports: [SignUpComponent]\n})\nexport class SignUpModule {}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport { LoginData } from '../../models/log-in';\nimport { HttpWebRequestService } from '../../services/http-web-request.service';\nimport { UtilService } from '../../services/util.service';\nimport { ErrorResponse } from '../../models/ErrorResponse';\nimport { ResponseKeyValue } from '../../models/ResponseKeyValue';\nimport { EnvironmentService } from '../../services/environment.service';\nimport { AuthMechanism, MechanismType } from '../../models/auth-mechanism';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { IOauthResp } from '../../models/oauth-resp';\nimport {TenantConfig} from '../../models/TenantConfig'\nimport { EncryptionService } from '../../services/encryption.service';\n\n@Component({\n selector: 'verben-sign-in',\n templateUrl: './sign-in.component.html',\n styleUrl: './sign-in.component.css',\n})\nexport class SignInComponent implements OnInit {\n @Input() headlingText: string = 'Sign in';\n @Input() width: string = '';\n @Input() maxWidth: string = '';\n @Input() margin: string = '';\n @Input() pd: string = '';\n @Input() customClass: string = '';\n @Input() headlingClass: string = '';\n @Input() bgColor: string = '#fff';\n @Input() boxShadow: string = '4px 4px 4px rgba(0, 0, 0, 0.25)';\n @Input() border: string = '1px solid #66666680';\n @Input() borderRadius: string = '24px';\n @Input() textColor: string = '#333';\n @Input() height: string = 'auto';\n @Input() forgetPasswordClass: string = '';\n @Input() requestAccessClass: string = '';\n @Input() createAccountClass: string = '';\n @Input() createAccountLinkClass: string = '';\n\n // links\n @Input() forgetPasswordLink: string = '';\n @Input() createAccountLink: string = '';\n @Input() requestAccessLink: string = '';\n // button styles\n @Input() btnClass: string = '';\n @Input() btnBgColor: string = '#FFE681';\n @Input() btnColor: string = '';\n @Input() btnBorder: string = '';\n @Input() btnBorderRadius: string = '24px';\n @Input() btnPd: string = '';\n @Input() btnText: string = 'Log in';\n\n //inputStyles\n @Input() inputLabelColor: string = '';\n @Input() inputBgColor: string = 'transparent';\n @Input() inputBorder: string = '1px solid #66666659';\n @Input() inputBorderRadius: string = '12px';\n @Input() termsErrorText: string =\n 'Please agree to the terms of use and privacy policy.';\n\n @Output() formSubmit = new EventEmitter<LoginData>();\n @Output() onSubmitEnd: EventEmitter<ResponseKeyValue | ErrorResponse> =\n new EventEmitter();\n @Output() onGoogleAuthResponse: EventEmitter<\n ResponseKeyValue | ErrorResponse\n > = new EventEmitter();\n @Output() onSubmitGoogleAuth: EventEmitter<ResponseKeyValue | ErrorResponse> = new EventEmitter();\n @Output() tenantConfigLoaded = new EventEmitter<TenantConfig | null>();\n @Output() googleClick = new EventEmitter();\n @Output() microsoftClick = new EventEmitter();\n @Output() appleClick = new EventEmitter();\n\n tenantDetails: any | null = null;\n AuthMechanisms: AuthMechanism[] | null = null;\n showform: boolean = false;\n loginForm: FormGroup;\n apiKey: string;\n secret: string;\n isLoading: boolean = false;\n code: string = '';\n type: string = '';\n mechanismType: string = '';\n OauthData: IOauthResp = {\n AccessToken: '',\n Email: '',\n FirstName: '',\n LastName: '',\n };\n configData:TenantConfig | null = null\n\n constructor(\n private fb: FormBuilder,\n private server: HttpWebRequestService,\n private utilService: UtilService,\n private envSvc: EnvironmentService,\n private route: ActivatedRoute,\n private router: Router,\n private encryptionService: EncryptionService\n ) {\n this.loginForm = this.fb.group({\n Email: new FormControl<string | null>(null, [\n Validators.required,\n Validators.email,\n ]),\n Password: new FormControl<string | null>(null, [\n Validators.required,\n Validators.minLength(5),\n ]),\n });\n this.apiKey = this.envSvc.environment.Tenant;\n this.secret = this.envSvc.environment.Secret;\n }\n\n async ngOnInit() {\n await this.getTenantConfig();\n this.route.queryParams.subscribe((params) => {\n this.code = params['code'];\n this.type = params['type'];\n if (this.code) {\n this.verifyUserDetails();\n }\n });\n }\n\n async getTenantConfig() {\n try{ \n const res = await this.server.get<TenantConfig>(\n `Tenant/GetTenantConfigByKey/${this.apiKey}`\n );\n this.tenantDetails = res;\n this.configData = res;\n this.AuthMechanisms = this.tenantDetails?.AuthMechanisms;\n if (\n !this.tenantDetails?.AuthMechanism &&\n this.tenantDetails?.AuthMechanism !== MechanismType.InApp\n ) {\n this.showform = false;\n } else {\n this.showform = true;\n }\n this.tenantConfigLoaded.emit(this.configData);\n }catch(err){ \n const msg = err;\n this.tenantConfigLoaded.emit(null);\n }\n }\n\n checkForm(): boolean {\n return this.loginForm.valid;\n }\n\n async verifyUserDetails() {\n if (this.AuthMechanisms !== null && this.apiKey) {\n const data: any = this.AuthMechanisms.find((item) =>\n item.AuthMechanism.includes(this.type)\n );\n const payload = {\n AuthCode: this.code,\n Tenant: this.apiKey,\n AuthMechanism: data.AuthMechanism,\n };\n\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `Authentication/GetUserDetails`,\n payload\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return;\n } else {\n var result = res as IOauthResp;\n this.OauthData = {\n AccessToken: result?.AccessToken,\n Email: result?.Email,\n FirstName: result?.FirstName,\n LastName: result?.LastName,\n };\n\n this.submit(data.AuthMechanism);\n }\n }\n }\n\n async submit(type: string) {\n let data: LoginData = {\n MailAddress: '',\n Password: '',\n LoginType: type,\n Tenant: this.apiKey,\n Secrete: this.secret,\n Token: '',\n };\n \n if (type === MechanismType.InApp && this.checkForm()) {\n data = {\n ...data,\n MailAddress: this.loginForm.controls['Email'].value,\n Password: this.encryptionService.encryptData(this.loginForm.controls['Password'].value),\n };\n } else if (type === MechanismType.Google || type === MechanismType.MicrosoftAD) {\n data = {\n ...data,\n MailAddress: this.OauthData?.Email,\n Token: this.OauthData?.AccessToken,\n };\n }\n \n this.formSubmit.emit(data);\n this.utilService.sendBI(true); // Preserving your utilService call\n this.isLoading = true;\n \n \n \n try {\n const res = await this.server.post(`Authentication/Login`, data);\n console.log('Response:', res);\n this.utilService.sendBI(false); // Stop utilService tracking on success/failure\n this.isLoading = false;\n \n if (res instanceof ErrorResponse) {\n this.onSubmitEnd.emit(res);\n } else {\n const result = res as ResponseKeyValue;\n this.onSubmitEnd.emit(result);\n }\n } catch (error) {\n this.utilService.sendBI(false); // Stop utilService tracking on error\n this.isLoading = false;\n console.error('Error during login:', error);\n }\n }\n \n get styles() {\n return {\n 'background-color': this.bgColor,\n 'box-shadow': this.boxShadow,\n border: this.border,\n 'border-radius': this.borderRadius,\n color: this.textColor,\n width: this.width,\n 'max-width': this.maxWidth,\n margin: this.margin,\n height: this.height,\n padding: this.pd,\n };\n }\n}\n","<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h2 class=\"{{headlingClass}}\">{{headlingText}}</h2>\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"submit('InApp')\" class=\"flexWrapper\"> \n <div class=\"formWrapper\" *ngIf=\"showform\"> \n <verbena-input\n [label]=\"'Email'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'email'\"\n formControlName=\"Email\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <div> \n <verbena-input\n [label]=\"'Password'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n formControlName=\"Password\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n [passwordToggle]=\"true\"\n [passLength]=\"5\"\n [customErrorMessages]=\"{\n password:'Password is required'\n }\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <div class=\"pwdWrapper\"> \n <p clas=\"mb-0\"> <a [routerLink]=\"forgetPasswordLink\" class=\"{{forgetPasswordClass}}\">Forgot password</a></p>\n </div>\n </div>\n <lib-button \n [buttonClass]=\"btnClass\"\n [color]=\"btnColor\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [bgColor]=\"btnBgColor\"\n [pd]=\"btnPd\"\n [text]=\"btnText\" \n type=\"submit\" \n [disabled]=\"!this.checkForm()\"\n ></lib-button>\n </div>\n <div> \n <p *ngIf=\"requestAccessLink\">\n <a [routerLink]=\"requestAccessLink\" class=\"{{requestAccessClass}}\">Click here to request user access</a>\n </p>\n \n </div>\n </form>\n <div> \n <div *ngIf=\"AuthMechanisms !== null\"> \n <verben-o-auth \n [authMechanisms]=\"AuthMechanisms\"\n ></verben-o-auth>\n </div>\n <p class=\"{{createAccountClass}}\" *ngIf=\"createAccountLink\">\n Don't have an account?\n <a [routerLink]=\"createAccountLink\" class=\"{{createAccountLinkClass}}\">Create an account</a>\n </p>\n </div>\n </section>\n ","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SignInComponent } from '../sign-in/sign-in.component';\nimport { FormsModule } from '@angular/forms';\nimport { RouterLink} from '@angular/router';\nimport { VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';\nimport { OAuthModule } from '../o-auth/o-auth.module';\nimport { ButtonModule } from '../button/button.module';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [SignInComponent],\n imports: [CommonModule,FormsModule,VerbenaInputModule,VerbenaButtonModule,RouterLink,OAuthModule,ButtonModule,ReactiveFormsModule],\n exports: [SignInComponent]\n})\nexport class SignInModule {}\n\n","import { Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { FormBuilder, FormArray, FormControl, FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'verben-otp-input',\n templateUrl: './otp-input.component.html',\n styleUrl: './otp-input.component.css'\n})\nexport class OtpInputComponent implements OnInit {\n @Input() length: number = 6;\n @Input() otpClass: string = '';\n @Output() otpChange = new EventEmitter<string>();\n\n otpForm!: FormGroup;\n\n constructor(private fb: FormBuilder) {}\n\n ngOnInit() {\n this.otpForm = this.fb.group({\n otpArray: this.fb.array(Array(this.length).fill('').map(() => new FormControl('')))\n });\n\n this.otpArray.valueChanges.subscribe(() => {\n this.emitOtp();\n });\n }\n\n get otpArray(): FormArray {\n return this.otpForm.get('otpArray') as FormArray;\n }\n\n handleInput(event: any, index: number) {\n let value = event.target.value;\n\n // /\\d/.test(value)\n if (value.length > 0) {\n value = value.toUpperCase();\n this.otpArray.at(index).setValue(value);\n\n if (index < this.length - 1) {\n this.focusNextInput(index);\n }\n } else {\n this.otpArray.at(index).setValue(''); \n }\n }\n\n handleKeydown(event: KeyboardEvent, index: number) {\n if (event.key === 'Backspace') {\n const currentValue = this.otpArray.at(index).value;\n \n if (currentValue) {\n this.otpArray.at(index).setValue('');\n } else if (index > 0) {\n this.focusPreviousInput(index);\n }\n }\n }\n\n handlePaste(event: ClipboardEvent) {\n event.preventDefault();\n const pastedData = (event.clipboardData?.getData('text') || '').toUpperCase();\n const validData = pastedData.slice(0, this.length);\n\n validData.split('').forEach((char, index) => {\n this.otpArray.at(index).setValue(char);\n });\n\n const nextIndex = validData.length < this.length ? validData.length : this.length - 1;\n this.focusNextInput(nextIndex - 1);\n }\n\n\n private focusNextInput(index: number) {\n const nextInput = document.getElementById(`otp-input-${index + 1}`);\n nextInput?.focus();\n }\n\n private focusPreviousInput(index: number) {\n const prevInput = document.getElementById(`otp-input-${index - 1}`);\n prevInput?.focus();\n }\n\n private emitOtp() {\n const otp = this.otpArray.value.join('');\n this.otpChange.emit(otp);\n }\n}\n","<form [formGroup]=\"otpForm\" >\n <div formArrayName=\"otpArray\" class=\"otp-container\">\n <input\n *ngFor=\"let control of otpArray.controls; let i = index\"\n [id]=\"'otp-input-' + i\"\n class=\"otp-input {{otpClass}}\"\n maxlength=\"1\"\n (input)=\"handleInput($event, i)\"\n (keydown)=\"handleKeydown($event, i)\"\n (paste)=\"handlePaste($event)\"\n [formControlName]=\"i\"\n type=\"text\"\n />\n </div>\n</form>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { HttpWebRequestService } from '../../services/http-web-request.service';\nimport { UtilService } from '../../services/util.service';\nimport { ErrorResponse } from '../../models/ErrorResponse';\nimport { ResponseKeyValue } from '../../models/ResponseKeyValue';\nimport { OtpData } from '../../models/otpValue';\nimport { User } from '../../models/user';\nimport { ObjectState } from '../../models/object-state';\nimport { MainUser } from '../../models/mainUser';\nimport { ResendOtpData } from '../../models/resend-otp-data';\nimport { MechanismType } from '../../models/auth-mechanism';\n\n@Component({\n selector: 'verben-auth-otp',\n templateUrl: './two-factor-auth-otp.component.html',\n styleUrl: './two-factor-auth-otp.component.css',\n})\nexport class TwoFactorAuthOtpComponent {\n @Input() customClass: string = '';\n @Input() headlingClass: string = '';\n @Input() headlingText: string = 'Two Factor Authentication';\n @Input() paragraphClass: string = '';\n @Input() resendClass: string = '';\n @Input() width: string = '';\n @Input() maxWidth: string = '';\n @Input() margin: string = '';\n @Input() pd: string = '';\n @Input() bgColor: string = '#fff';\n @Input() boxShadow: string = '4px 4px 4px rgba(0, 0, 0, 0.25)';\n @Input() border: string = '1px solid #66666680';\n @Input() borderRadius: string = '24px';\n @Input() textColor: string = '#333';\n @Input() height: string = 'auto';\n @Input() length: number = 6;\n @Input() otpClass: string = '';\n @Input() resendOtpData: ResendOtpData = {\n MailAddress: '',\n Password: '',\n LoginType: 'InApp',\n Tenant: 'PDLTC6',\n Secrete: '$White360$',\n RedirectUri: '/auth/otp',\n };\n\n @Input() User:any={}\n\n @Input() OtpData: OtpData = {\n User: this.User,\n Token: '',\n ValidateUrl: '',\n Secret: '',\n OTP: '',\n Info: '',\n Provider:MechanismType.InApp\n };\n\n @Input() btnClass: string = '';\n @Input() btnBgColor: string = '#FFE681';\n @Input() btnColor: string = '';\n @Input() btnBorder: string = '';\n @Input() btnBorderRadius: string = '24px';\n @Input() btnPd: string = '';\n @Input() btnText: string = 'Submit';\n\n otpValue: string = '';\n otpForm!: FormGroup;\n\n @Output() buttonClick = new EventEmitter<string>();\n @Output() otpChange = new EventEmitter<string>();\n @Output() clearStore = new EventEmitter<any>();\n @Output() onSubmitEnd: EventEmitter<ResponseKeyValue | ErrorResponse> =\n new EventEmitter();\n @Output() resend: EventEmitter<ResponseKeyValue | ErrorResponse> =\n new EventEmitter();\n\n constructor(\n private fb: FormBuilder,\n private server: HttpWebRequestService,\n private utilService: UtilService\n ) {}\n\n ngOnInit() {\n this.otpForm = this.fb.group({\n otpValue: ['', [Validators.required, Validators.minLength(6)]],\n });\n }\n\n onOtpChange(value: string) {\n this.otpValue = value;\n this.otpForm.get('otpValue')?.setValue(value);\n this.otpChange.emit(this.otpValue);\n }\n\n async submitData() {\n const data: OtpData = {\n User:this.User,\n Token: this.OtpData.Token,\n ValidateUrl: this.OtpData.ValidateUrl,\n Secret: this.OtpData.Secret,\n OTP: this.OtpData.OTP,\n Info: this.OtpData.Info,\n Provider:this.OtpData.Provider\n };\n this.clearStore.emit()\n if (this.otpForm.valid) {\n this.utilService.sendBI(true);\n const res = await this.server.post(`Authentication/Validate`, data);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.onSubmitEnd.emit(res);\n } else {\n var result = res as ResponseKeyValue;\n this.onSubmitEnd.emit(result);\n }\n }\n }\n\n async resendOtp() {\n const data: ResendOtpData = {\n MailAddress: this.resendOtpData?.MailAddress,\n Password: this.resendOtpData?.Password,\n LoginType: this.resendOtpData?.LoginType,\n Tenant: this.resendOtpData?.Tenant,\n Secrete: this.resendOtpData?.Secrete,\n\n RedirectUri: this.resendOtpData?.RedirectUri,\n };\n\n this.utilService.sendBI(true);\n const res = await this.server.post(`Authentication/ResendOTP`, data);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.resend.emit(res);\n } else {\n var result = res as ResponseKeyValue;\n this.resend.emit(result);\n }\n }\n\n get styles() {\n return {\n 'background-color': this.bgColor,\n 'box-shadow': this.boxShadow,\n border: this.border,\n 'border-radius': this.borderRadius,\n color: this.textColor,\n width: this.width,\n 'max-width': this.maxWidth,\n margin: this.margin,\n height: this.height,\n padding: this.pd,\n };\n }\n}\n","<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h3 class=\"{{headlingClass}}\">{{headlingText}}</h3>\n <div class=\"otpWrapper\"> \n <p class=\"{{paragraphClass}}\">Enter the {{length}} digit code sent to you</p>\n <verben-otp-input \n [length]=\"length\" \n (otpChange)=\"onOtpChange($event)\"\n [otpClass]=\"otpClass\"\n ></verben-otp-input>\n </div>\n <lib-button \n [buttonClass]=\"btnClass\"\n [color]=\"btnColor\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [bgColor]=\"btnBgColor\"\n [pd]=\"btnPd\"\n [text]=\"btnText\" \n (buttonClick)=\"submitData()\"\n [disabled]=\"!otpForm.valid\"\n ></lib-button>\n <p class=\"resendWrapper\">\n Didn’t get a code?\n <a class=\"{{resendClass}}\" (click)=\"resendOtp()\">Resend</a>\n </p>\n \n</section>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { VerbenaInputModule } from 'verben-ng-ui';\nimport { OAuthModule } from '../o-auth/o-auth.module';\nimport { ButtonModule } from '../button/button.module';\nimport { OtpInputComponent } from './otp-input.component';\n\n@NgModule({\n declarations: [OtpInputComponent],\n imports: [CommonModule, FormsModule,VerbenaInputModule, RouterLink,ButtonModule,OAuthModule,ReactiveFormsModule],\n exports: [OtpInputComponent]\n})\nexport class OtpInputModule {}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TwoFactorAuthOtpComponent } from './two-factor-auth-otp.component';\nimport { ButtonModule } from '../button/button.module';\nimport { OtpInputModule } from '../otp-input/otp-input.module';\nimport { RouterLink } from '@angular/router';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n\n@NgModule({\n declarations: [TwoFactorAuthOtpComponent],\n imports: [CommonModule,ButtonModule,OtpInputModule,RouterLink,ReactiveFormsModule],\n exports: [TwoFactorAuthOtpComponent]\n})\nexport class TwoFactorAuthOtpModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'verben-two-factor-auth-setup',\n templateUrl: './two-factor-auth-setup.component.html',\n styleUrl: './two-factor-auth-setup.component.css'\n})\n\nexport class TwoFactorAuthSetupComponent {\n @Input() customClass: string = ''\n @Input() headlingClass: string = ''\n @Input() headlingText: string = 'Set Up Two Factor Authentication'\n @Input() paragraphClass: string = ''\n @Input() buttonClass: string = ''\n @Input() width: string = '';\n @Input() maxWidth: string = '';\n @Input() margin: string = '';\n @Input() pd: string = '';\n @Input() bgColor: string = '#fff';\n @Input() boxShadow: string = '4px 4px 4px rgba(0, 0, 0, 0.25)';\n @Input() border: string = '1px solid #66666680';\n @Input() borderRadius: string = '24px';\n @Input() textColor: string = '#333';\n @Input() height: string = '';\n\n @Output() smsClick = new EventEmitter();\n @Output() mailClick = new EventEmitter();\n @Output() skipClick = new EventEmitter();\n\n \n continueWithSMS(){ \n this.smsClick.emit()\n }\n continueWithMail(){ \n this.mailClick.emit()\n }\n handleSkip(){ \n this.skipClick.emit()\n }\n\n\n get styles() {\n return {\n 'background-color': this.bgColor,\n 'box-shadow': this.boxShadow,\n 'border': this.border,\n 'border-radius': this.borderRadius,\n 'color': this.textColor,\n 'width': this.width,\n 'max-width':this.maxWidth,\n 'margin':this.margin,\n 'height': this.height,\n 'padding':this.pd\n };\n }\n\n}\n","<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h3 class=\"{{headlingClass}}\">{{headlingText}}</h3>\n <div class=\"setUpBtnWrapper\">\n <verbena-button\n svg=\"2fa-mail\"\n [svgHeight]=\"16\"\n [svgWidth]=\"20\"\n text=\"Continue with Mail\"\n bgColor=\"white\"\n textColor=\"#333333\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mb-2\"\n (click)=\"continueWithMail()\"\n ></verbena-button>\n <verbena-button\n svg=\"2fa-sms\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with SMS\"\n bgColor=\"white\"\n textColor=\"#333333\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n (click)=\"continueWithSMS()\"\n ></verbena-button>\n <!-- <div class=\"iconWrapper\" (click)=\"handleSkip()\"> \n <p class=\"{{paragraphClass}}\">Skip for now</p>\n <verben-svg \n icon=\"skip-forward\"\n [height]=\"24\"\n [width]=\"24\"\n />\n </div> -->\n</div>\n</section>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TwoFactorAuthSetupComponent } from './two-factor-auth-setup.component';\nimport { SvgModule, VerbenaButtonModule } from 'verben-ng-ui';\n\n@NgModule({\n declarations: [TwoFactorAuthSetupComponent],\n imports: [CommonModule,VerbenaButtonModule,SvgModule],\n exports: [TwoFactorAuthSetupComponent]\n})\nexport class TwoFactorAuthSetupModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n\n@Component({\n selector: 'verben-mail-message',\n templateUrl: './mail.component.html',\n styleUrl: './mail.component.css'\n})\n\n\nexport class MailComponent {\n @Input() customClass: string = ''\n @Input() headlingClass: string = ''\n @Input() width: string = '';\n @Input() maxWidth: string = '';\n @Input() margin: string = '';\n @Input() pd: string = '';\n @Input() bgColor: string = '#fff';\n @Input() boxShadow: string = '4px 4px 4px rgba(0, 0, 0, 0.25)';\n @Input() border: string = '1px solid #66666680';\n @Input() borderRadius: string = '24px';\n @Input() textColor: string = '#333';\n @Input() height: string = 'auto';\n\n @Output() buttonClick = new EventEmitter();\n\n goToLogin(){ \n this.buttonClick.emit()\n }\n\n get styles() {\n return {\n 'background-color': this.bgColor,\n 'box-shadow': this.boxShadow,\n 'border': this.border,\n 'border-radius': this.borderRadius,\n 'color': this.textColor,\n 'width': this.width,\n 'max-width':this.maxWidth,\n 'margin':this.margin,\n 'height': this.height,\n 'padding':this.pd\n };\n }\n\n}\n\n","<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h3 class=\"{{headlingClass}}\">Your e-mail has been verified!</h3>\n <lib-button \n text=\"Login\" \n buttonClass=\"\"\n (click)=\"goToLogin()\"\n ></lib-button> \n</section>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterLink} from '@angular/router';\nimport { ButtonModule } from '../button/button.module';\nimport { MailComponent } from './mail.component';\n\n@NgModule({\n declarations: [MailComponent],\n imports: [CommonModule, FormsModule,RouterLink,ButtonModule],\n exports: [MailComponent]\n})\nexport class MailModule {}","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport { ForgotPasswordData } from './ForgotPasswordData';\nimport { HttpWebRequestService } from '../../services/http-web-request.service';\nimport { ErrorResponse } from '../../models/ErrorResponse';\nimport { ResponseKeyValue } from '../../models/ResponseKeyValue';\nimport { UtilService } from '../../services/util.service';\n\n@Component({\n selector: 'verben-forgot-password',\n templateUrl: './forgot-password.component.html',\n styleUrl: './forgot-password.component.css',\n})\nexport class ForgotPasswordComponent {\n @Input() title: string = 'Forgot Password';\n @Input() subTitle: string = 'Enter the e-mail you used during registration';\n @Input() buttonCaption: string = 'Submit';\n @Input() buttonTextColor?: string;\n @Input() buttonBackgroundColor?: string;\n\n @Output() onSubmit: EventEmitter<ForgotPasswordData> = new EventEmitter();\n @Output() onSubmitEnd: EventEmitter<ResponseKeyValue | ErrorResponse> =\n new EventEmitter();\n\n forgotPasswordForm: FormGroup;\n isSubmitted: boolean = false;\n\n constructor(\n private fb: FormBuilder,\n private server: HttpWebRequestService,\n private utilService: UtilService\n ) {\n this.forgotPasswordForm = this.fb.group({\n Email: new FormControl<string | null>(null, [\n Validators.required,\n this.emailValidator.bind(this),\n ]),\n });\n }\n\n isValidEmail(mail: string): boolean {\n const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\n return emailPattern.test(mail);\n }\n\n emailValidator(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n\n if (this.isValidEmail(value) == false) {\n return { customValidation: true };\n }\n\n return null;\n }\n\n checkForm(): boolean {\n return this.forgotPasswordForm.valid;\n }\n\n async submit() {\n if (!this.checkForm()) {\n return;\n }\n var data: ForgotPasswordData = {\n Email: this.forgotPasswordForm.controls['Email'].value,\n };\n this.onSubmit.emit(data);\n this.utilService.sendBI(true);\n const res = await this.server.get(\n `User/PasswordChangeRequest/${data.Email}`\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.onSubmitEnd.emit(res);\n } else {\n var result = res as ResponseKeyValue;\n this.onSubmitEnd.emit(result);\n this.isSubmitted = true;\n }\n }\n}\n","<div *ngIf=\"!isSubmitted\" [formGroup]=\"this.forgotPasswordForm\" class=\"reset-password-container flex flex-col\">\n <div class=\"reset-password-header flex flex-col\">\n <div class=\"reset-password-title\">{{title}}</div>\n <div class=\"reset-password-subtitle\">{{subTitle}}</div>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Email</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"Email\" type=\"email\"></verbena-input>\n </div>\n <verbena-button fontWeight=\"700\" (click)=\"submit()\" [text]=\"buttonCaption\" width=\"100%\" [textColor]=\"buttonTextColor\"\n [bgColor]=\"buttonBackgroundColor\" borderRadius=\"25px\" [disable]=\"!this.checkForm()\"></verbena-button>\n</div>\n<div *ngIf=\"isSubmitted\" class=\"reset-password-container flex flex-col\">\n <div class=\"reset-password-title resend-title\">Follow the link sent to your e-mail to proceed</div>\n <div class=\"flex gap-1\">\n <span class=\"resend-caption\">Didn't get a link?</span> <span class=\"resend-caption resend-link\"\n (click)=\"submit()\">Resend</span>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { ForgotPasswordComponent } from './forgot-password.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { VerbenaButtonModule, VerbenaInputModule } from 'verben-ng-ui';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [ForgotPasswordComponent],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n CommonModule,\n ],\n exports: [ForgotPasswordComponent],\n})\nexport class ForgotPasswordModule {}\n","\nimport { ColumnDefinition } from 'verben-ng-ui';\nimport { SingleSignOn } from '../../models/single-sign-on';\n\nexport const columns: ColumnDefinition<SingleSignOn>[] = [\n {\n id: 'createdAt',\n header: 'Created',\n accessorKey: 'CreatedAt',\n },\n {\n id: 'name',\n header: 'Name',\n accessorKey: 'Name',\n },\n {\n id: 'description',\n header: 'Description',\n accessorKey: 'Description',\n },\n {\n id: 'link',\n header: 'Link',\n accessorKey: 'Link',\n },\n {\n id: 'logo',\n header: 'Logo',\n accessorKey: 'Logo',\n },\n { id: 'actions', header: 'Actions', accessorKey: 'Name' },\n];\n","import { ObjectState } from '../../models/object-state';\nimport { SingleSignOn } from '../../models/single-sign-on';\n\nexport const mockData: SingleSignOn[] = new Array(10).fill(1).map((id, i) => ({\n Name: `Name ${id + i}`,\n Id: id,\n id: id.toString(),\n Description: `Sign in option ${id + i}`,\n Logo: `./assets/images/test-logo.png`,\n Link: `Link ${id + i}`,\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: `Tenant ${id + i}`,\n Code: '',\n ServiceName: '',\n}));\n","export const baseStyle: any = {\n width: '100%',\n fontFamily: '\"Fraunces\", serif',\n fontSize: '125%',\n whiteSpace: 'nowrap',\n margin: '0',\n border: '1px solid #D4A007',\n borderRadius: '16px',\n borderCollapse: 'separate',\n borderSpacing: '0',\n tableLayout: 'fixed',\n overflow: 'hidden',\n rows: {\n even: {\n backgroundColor: '#FDFDFD',\n },\n odd: {\n backgroundColor: '#F1F4FB',\n },\n height: '68px',\n },\n cells: {\n padding: '0.5rem 1rem',\n },\n header: {\n stickyTop: true,\n zIndex: 2,\n backgroundColor: '#EFF2FB',\n fontWeight: 'bold',\n textAlign: 'left',\n padding: '12px 16px',\n height: '40px',\n },\n footer: {\n stickyBottom: true,\n zIndex: 2,\n padding: '3px',\n },\n // body: {\n // background: '#fff',\n // padding: '4px 5px',\n // textAlign: 'center',\n // },\n // firstColumn: {\n // stickyLeft: true,\n // zIndex: 1,\n // },\n lastColumn: {\n stickyRight: true,\n zIndex: 1,\n },\n};\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { CardData } from 'verben-ng-ui';\n\n\n@Component({\n selector: 'lib-sso-form',\n templateUrl: './sso-form.component.html',\n styleUrl: './sso-form.component.css',\n})\nexport class SsoFormComponent {\n isUploading: boolean = false;\n uploadedFileName: string | null = null;\n fileUploadError: string | null = null;\n @Input() currentData:CardData|null=null\n @Output() switchView = new EventEmitter<undefined>();\n\n form: FormGroup;\n\n constructor(private fb: FormBuilder) {\n this.form = this.fb.group({\n Description: [''],\n Name: [''],\n Link: [''],\n Logo: [''],\n });\n }\n\n ngOnInit(): void {}\n\n onSave(): void {\n if (this.form.valid) {\n // Emit save event with form value\n console.log('Form saved:', this.form.value);\n }\n }\n onDelete(): void {\n // Emit delete event\n console.log('Delete requested');\n }\n onFileSelected(event: Event) {\n const input = event.target as HTMLInputElement;\n if (input.files && input.files.length > 0) {\n const file = input.files[0];\n this.fileUploadError = null;\n if (!file) {\n this.isUploading = true;\n }\n if (file.size > 5000000) {\n this.fileUploadError = 'File size exceeds 5MB limit.';\n this.uploadedFileName = null;\n this.isUploading = false; // Reset isUploading state\n } else {\n this.uploadedFileName = file.name;\n }\n } else {\n this.isUploading = false;\n }\n }\n\n removeFile() {\n this.uploadedFileName = null;\n this.fileUploadError = null;\n const fileInput = document.getElementById('attachment') as HTMLInputElement;\n if (fileInput) {\n fileInput.value = '';\n }\n }\n\n}\n","<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative\"\n>\n <verbena-input\n name=\"Name\"\n label=\"Name:\"\n formControlName=\"Name\"\n [(ngModel)]=\"currentData?.data.Name\"\n />\n <verbena-input\n label=\"Description:\"\n name=\"Description\"\n formControlName=\"Description\"\n [(ngModel)]=\"currentData?.data.Description\"\n />\n <verbena-input\n label=\"Link:\"\n name=\"Link\"\n formControlName=\"Link\"\n [(ngModel)]=\"currentData?.data.Link\"\n/>\n<span class=\"block my-2 \">Logo</span>\n<label [style.background-color]=\"'#f9f9f9'\" class=\"border cursor-pointer border-secondary-200 rounded-md w-full px-4 py-2 flex justify-between\">\n <span *ngIf=\"!uploadedFileName\">{{isUploading?\"uploading...\":\"Upload a photo\"}}</span>\n <span *ngIf=\"fileUploadError\" class=\"error\">{{ fileUploadError }}</span>\n <div *ngIf=\"uploadedFileName\" class=\"flex items-center text-sm gap-2 border border-primary rounded-lg px-3 \">\n <span>{{ uploadedFileName }}</span>\n <button\n [style.color]=\"'black'\"\n type=\"button\"\n (click)=\"removeFile()\"\n >\n &#x2715;\n </button>\n </div>\n <input\n id=\"logo\"\n[type]=\"'file'\"\n label=\"Logo:\"\n name=\"Logo\"\n accept=\"image/png\"\n formControlName=\"Logo\"\n (change)=\"onFileSelected($event)\"\n formControlName=\"Logo\"\n/>\n<span class=\"flex gap-2\">\n<span class=\"bg-primary flex icon-container rounded-md justify-center items-center\">\n <img src=\"./assets/icons/cam.png\" class=\"icon-width\"/>\n</span>\n<span class=\"bg-primary flex icon-container rounded-md justify-center items-center\">\n <img src=\"./assets/icons/file.png\" class=\"icon-width2\"/>\n</span>\n</span>\n</label>\n\n <!-- buttons -->\n <div\n class=\"flex justify-between bottom-8 left-0 right-0 px-3 pb-2 absolute\"\n style=\"\n display: flex;\n justify-content: space-between;\n position: absolute;\n padding: 8px 12px;\n right: 0;\n left: 0;\n bottom: 32;\n \"\n >\n <!-- <verbena-button\n text=\"Delete\"\n class=\"bg-secondary-200 text-[black]\"\n (click)=\"onDelete()\"\n />\n <verbena-button\n text=\"Save\"\n class=\"bg-primary text-[black]\"\n (click)=\"onSave()\"\n />\n\n <verbena-button\n text=\"Secondary Button\"\n styleType=\"secondary\"\n ></verbena-button> -->\n <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n [bgColor]=\"'#999999'\"\n [textColor]=\"'#404040'\"\n borderRadius=\"10px\"\n ></verbena-button>\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Switch To Table\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n <verbena-button\n text=\"Save\"\n bgColor=\"#28a745\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n [bgColor]=\"'#FFE681'\"\n width=\"114px\"\n height=\"39px\"\n ></verbena-button>\n </div>\n</form>\n","import { Component, ViewChild } from '@angular/core';\nimport { columns } from './sso.columns';\nimport { mockData } from './helper';\nimport { baseStyle } from './base-table-style';\nimport {\n CardData,\n CardDataViewComponent,\n ColumnDefinition,\n DataFilterType,\n DataViewComponent,\n IDataFilter,\n} from 'verben-ng-ui';\nimport { SingleSignOn } from '../../models/single-sign-on';\n\n\n\n@Component({\n selector: 'lib-sso',\n templateUrl: './sso.component.html',\n styleUrl: './sso.component.css',\n})\nexport class SsoComponent {\n @ViewChild('vdcv') cardDataView!: CardDataViewComponent;\n @ViewChild('vdv') dataView!: DataViewComponent;\n\n columns = columns;\n data = mockData;\n filteredColumns: ColumnDefinition<SingleSignOn>[] =columns\n styles = baseStyle;\n currentData: CardData | null = null;\n isGridView = true;\n selected: CardData | null = null;\n\n cardData: CardData[] = mockData.map(({ Name, Description, Link,Logo }) => ({\n selected: false,\n title: Name,\n data: { Name, Description,Link,Logo } as Partial<SingleSignOn>,\n body: [\n { title: 'Description', value:Description??'' },\n ],\n children: [],\n }));\n\n openDetailView(name: string) {\n const cardItem = this.getCardDataByMailAddress(name);\n if (cardItem && this.cardDataView) {\n this.dataView.toggleView();\n this.cardData.forEach((item) => {\n item.selected = false;\n if (item.children) {\n item.children.forEach((child) => (child.selected = false));\n }\n });\n\n cardItem.selected = true;\n this.currentData = this.cardDataView.onItemClick(cardItem);\n }\n }\n\n getCardDataByMailAddress(name: string): CardData | undefined {\n return this.cardData.find(({ data }) => data.Name === name);\n }\n\n onViewChange(isGridView: boolean): void {\n isGridView=isGridView\n \n if (this.currentData) {\n this.cardDataView?.clearData();\n this.currentData = null;\n }\n\n if (this.selected) {\n this.cardDataView.onItemClick(this.selected);\n }\n }\n\n openFormView(index: number) {\n const item = this.cardData[index];\n console.log('ITEM = ', item);\n }\n\n handleExport(exportedData: Partial<any>[]) {\n console.log('Exported data:', exportedData);\n this.downloadCSV(exportedData);\n }\n\n /**\n *\n * @param data Simple csv export for testing\n */\n private downloadCSV(data: Partial<any>[]) {\n const headers = Object.keys(data[0]);\n const csvContent = [\n headers.join(','),\n ...data.map((row) => headers.map((header) => row[header]).join(',')),\n ].join('\\n');\n\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const link = document.createElement('a');\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', 'export.csv');\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n\n onSelectionChange(selectedRows:SingleSignOn[]) {\n console.log('Selection changed:', selectedRows);\n // Handle the selection change\n }\n\n /**\n * Copied over from card view doc until I understand usage\n */\n selectedColumnCount: number = 0;\n selectedFilterTableCount: number = 0;\n isOPen: boolean = true;\n selectedSortCount: number = 0;\n showColumn: boolean = false;\n showSort: boolean = false;\n showExport: boolean = false;\n selectedAll: boolean = false;\n showFilter: boolean = false;\n visibleColumns: IDataFilter[] = columns.map((col) => ({\n checked: false,\n name: typeof col.header === 'string' ? col.header : col.id,\n type: DataFilterType.Bool,\n }));\n filterArray: IDataFilter[] = [\n {\n name: 'Name',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'Description',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'Logo',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'Link',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'CreatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n ];\n sortOptions: IDataFilter[] = [\n {\n name: 'Name',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'Description',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'Link',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'Logo',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'CreatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n ];\n clearData() {\n this.currentData = {} as CardData;\n }\n loadMore() {\n this.cardData = this.cardData.concat(this.cardData);\n }\n onColumnChange(event: boolean) {\n this.showColumn = event;\n }\n onSortChange(event: boolean) {\n this.showSort = false\n console.log(event);\n }\n\n \n onColumnsUpdated(updatedColumns: IDataFilter[]) {\n this.showColumn = false;\n this.selectedColumnCount = updatedColumns.length;\n \n if (updatedColumns) {\n // Filter columns to include only visible ones\n this.filteredColumns = this.columns.filter((col) =>\n this.visibleColumns.find(\n (filter) => filter.name === col.header && filter.checked\n )\n );\n \n // Reorder columns based on the order in visibleColumns\n const visibleColumnOrder = this.visibleColumns\n .filter((filter) => filter.checked)\n .map((filter) => filter.name);\n \n this.columns.sort((a, b) => {\n const indexA = visibleColumnOrder.indexOf(a.header as string);\n const indexB = visibleColumnOrder.indexOf(b.header as string);\n return indexA - indexB;\n });\n }\n }\n \n onFilterApplied(appliedFilter: IDataFilter[]) {\n this.showFilter=false\n if (Array.isArray(appliedFilter)) {\n this.selectedFilterTableCount = appliedFilter.length;\n } else {\n console.log('appliedFilter is not an array');\n }\n }\n \n onSortUpdated(updatedSorts: IDataFilter[]) {\n this.onSortChange(false);\n this.selectedSortCount = updatedSorts.length;\n console.log(updatedSorts);\n \n }\n\n onStateChange(event: { key: string; value: boolean }): void {\n switch (event.key) {\n case 'column':\n this.showColumn=event.value\n break;\n case 'sort':\n this.showSort=event.value\n break;\n case 'export':\n this.showExport=event.value\n break;\n case 'filter':\n this.showFilter=event.value\n break;\n default:\n break;\n }\n }\n}\n","<div class=\"space-y-8\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n isToggle:true\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedSortCount]=\"selectedSortCount\"\n [selectedColumnCount]=\"selectedColumnCount\"\n [selectedFilterTableCount]=\"selectedFilterTableCount\"\n [showColumnChild]=\"showColumn\"\n [showSortChild]=\"showSort\"\n [showFilterChild]=\"showFilter\"\n [isTableView]=\"false\"\n [selectedFilterTableCount]=\"0\"\n [cardIcon]=\"'list-view'\"\n [tableIcon]=\"'table-view'\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n >\n <div table-content>\n <lib-data-table\n [data]=\"data\"\n [columns]=\"filteredColumns\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"logo\">\n <ng-template #cell let-value>\n <img class=\"logo-width\" [src]=\"value\"/>\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value let-deleteRow let-rowIndex>\n <div class=\"flex space-x-8\" style=\"display: flex; gap: 24px\">\n <verben-svg\n (click)=\"openDetailView(value)\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#3479E9\"\n fill=\"white\"\n class=\"cursor-pointer\"\n ></verben-svg>\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#E20000\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n <ng-template #header>\n <strong>Actions</strong>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"Link\"\n border=\"5px\"\n [cardDataList]=\"cardData\"\n rbgColor=\"#f5f6f9\"\n >\n <verben-left-card-data-view class=\"\">\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"Link\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\"\n [cardDataList]=\"cardData\"\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <verben-svg\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"vlcd.showChildren(item)\"\n [ngClass]=\"vlcd.showToggle(item) ? 'visible' : 'invisible'\"\n class=\"items-center flex pr-1 cursor-pointer\"\n [icon]=\"item.isChildrenExpanded ? 'minus' : 'plus'\"\n />\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\"\n >\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex flex-col py-2 px-4 w-full\">\n <div class=\"flex\">\n <span class=\"font-bold text-sm\">{{ item.data.Name }}</span>\n </div>\n @for (ciItem of item.body; track ciItem.value) {\n <div class=\"flex items-center justify-between gap-2\">\n <div>\n <span class=\"text-muted font-light text-xs\"\n >{{ ciItem.title }}:</span\n >\n <span class=\"text-black text-xs font-semibold\">{{ item.data.Description }}</span>\n </div>\n <img class=\"logo-width\" [alt]=\"ciItem.title\" [src]=\"item.data.Logo\"/>\n </div>\n }\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <lib-sso-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n ></lib-sso-form>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"float-right\">\n <div class=\"flex gap-2 mt-1\">\n <span class=\"paginator-text\"\n >{{ cardData.length }} records loaded</span\n >\n <button (click)=\"loadMore()\" class=\"load-more\">Load more</button>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n (filtersApplied)=\"onFilterApplied($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport {\n DataViewModule,\n TableFilterModule,\n SortTableModule,\n DataExportModule,\n VisibleColumnModule,\n VerbenaButtonModule,\n CardDataViewModule,\n SvgModule,\n VerbenaInputModule,\n DataTableModule,\n VerbenaTextareaModule,\n} from 'verben-ng-ui';\nimport { SsoComponent } from './sso.component';\nimport { SsoFormComponent } from './sso-form/sso-form.component';\n@NgModule({\n declarations: [SsoComponent,SsoFormComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DataViewModule,\n TableFilterModule,\n SortTableModule,\n DataExportModule,\n VisibleColumnModule,\n VerbenaButtonModule,\n CardDataViewModule,\n VerbenaInputModule,\n SvgModule,\n VerbenaTextareaModule,\n DataTableModule,\n ],\n exports: [SsoComponent],\n})\nexport class SsoModule {}\n","import { ColumnDefinition } from 'verben-ng-ui';\nimport { UserAccessRequest } from '../../models/user-access-request';\n\nexport const columns: ColumnDefinition<UserAccessRequest>[] = [\n {\n id: 'createdAt',\n header: 'CREATED',\n accessorKey: 'CreatedAt',\n },\n {\n id: 'user',\n header: 'NAME',\n accessorFn: (row) => `${row.FirstName} ${row.LastName}`,\n },\n {\n id: 'mail',\n header: 'E-MAIL',\n accessorKey: 'MailAddress',\n },\n {\n id: 'role',\n header: 'ROLE',\n accessorFn: (row) => row.Role?.Name,\n },\n {\n id: 'status',\n header: 'STATUS',\n accessorKey: 'RequestStatus',\n },\n { id: 'actions', header: 'Actions', accessorKey: 'MailAddress' },\n];\n","export const baseStyle: any = {\n width: '100%',\n fontFamily: '\"Fraunces\", serif',\n fontSize: '125%',\n whiteSpace: 'nowrap',\n margin: '0',\n border: '1px solid #D4A007',\n borderRadius: '16px',\n borderCollapse: 'separate',\n borderSpacing: '0',\n // tableLayout: 'fixed',\n overflow: 'hidden',\n rows: {\n even: {\n backgroundColor: '#FDFDFD',\n },\n odd: {\n backgroundColor: '#F1F4FB',\n },\n height: '68px',\n },\n cells: {\n padding: '0.5rem 1rem',\n },\n header: {\n // stickyTop: true,\n // zIndex: 2,\n backgroundColor: '#EFF2FB',\n fontWeight: 'bold',\n textAlign: 'left',\n padding: '12px 16px',\n height: '40px',\n },\n footer: {\n // stickyBottom: true,\n // zIndex: 2,\n padding: '3px',\n },\n // body: {\n // background: '#fff',\n // padding: '4px 5px',\n // textAlign: 'center',\n // },\n // firstColumn: {\n // stickyLeft: true,\n // zIndex: 1,\n // },\n lastColumn: {\n // stickyRight: true,\n // zIndex: 1,\n },\n};\n","export enum SearchOperator {\n And = 'And',\n Or = 'Or',\n}\n","export enum SearchPropertySign {\n EQ = 'EQ',\n NEQ = 'NEQ',\n GT = 'GT',\n GTE = 'GTE',\n LT = 'LT',\n LTE = 'LTE',\n LIKE = 'LIKE',\n}\n","export enum OAuthType {\n InApp = 'InApp',\n Google = 'Google',\n Facebook = 'Facebook',\n OAuth = 'OAuth',\n MicrosoftAD = 'MicrosoftAD',\n}\n","export enum UserAccessRequestStatus {\n Pending = 'Pending',\n Approved = 'Approved',\n Declined = 'Declined',\n}\n","export enum SearchPropertyValueType {\n Int = 'Int',\n Float = 'Float',\n Decimal = 'Decimal',\n Double = 'Double',\n String = 'String',\n Bool = 'Bool',\n Date = 'Date',\n}\n","import { DataFilterType, IDataFilter } from 'verben-ng-ui';\nimport { OAuthType } from '../../models/OAuthType';\nimport { ObjectState } from '../../models/object-state';\nimport { UserAccessRequest } from '../../models/user-access-request';\nimport { UserAccessRequestStatus } from '../../models/user-access-request-status';\nimport { SearchPropertyValueType } from '../../models/SearchPropertyValueType';\n\nexport const roles: { id: string; name: string }[] = [\n { id: 'admin', name: 'Admin' },\n { id: 'manager', name: 'Manager' },\n { id: 'staff', name: 'Staff' },\n];\n\nexport const mockData: UserAccessRequest[] = new Array(10)\n .fill(1)\n .map((id, i) => ({\n FirstName: `First ${id + i}`,\n LastName: `Last ${id + i}`,\n OtherName: `Other ${id + i}`,\n Id: id + i,\n id: (id + i).toString(),\n MailAddress: `user${id + i}@mail.com`,\n PhoneNumber: `+23480000000${id + i}`,\n RequestStatus: randomEnum(UserAccessRequestStatus),\n RoleID: roles[Math.floor(Math.random() * roles.length)].id,\n Password: '1234567',\n ExpireOn: new Date(),\n IsSeeded: false,\n OTPExpireOn: new Date(),\n Tenants: [],\n SignupType: OAuthType.InApp,\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: `Tenant${id + i}`,\n Code: '',\n ServiceName: '',\n }));\n\nfunction randomEnum<T extends object>(anEnum: T): T[keyof T] {\n const enumValues = Object.values(anEnum) as unknown as T[keyof T][];\n const randomIndex = Math.floor(Math.random() * enumValues.length);\n return enumValues[randomIndex];\n}\n\nexport function convertDataFilterTypeToSearchPropertyValueType(\n type: DataFilterType\n) {\n switch (type) {\n case DataFilterType.String:\n return SearchPropertyValueType.String;\n case DataFilterType.Integer:\n return SearchPropertyValueType.Int;\n case DataFilterType.Decimal:\n return SearchPropertyValueType.Decimal;\n case DataFilterType.Credit:\n return SearchPropertyValueType.Float;\n case DataFilterType.Date:\n return SearchPropertyValueType.Date;\n case DataFilterType.Bool:\n return SearchPropertyValueType.Bool;\n case DataFilterType.Number:\n return SearchPropertyValueType.Int;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Observable, from } from 'rxjs';\nimport { HttpWebRequestService } from '../../../services/http-web-request.service';\nimport { UserAccessRequest } from '../../../models/user-access-request';\nimport { Paged } from '../../../models/paged';\nimport { Role } from '../../../models/Role';\nimport { SearchPropertyValue } from '../../../models/SearchPropertyValue';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserAccessRequestService {\n private readonly BASE_URL = 'User';\n\n constructor(private httpService: HttpWebRequestService) {}\n\n /**\n * Get user access requests with pagination and sorting\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the user access requests\n */\n getUserAccessRequests(\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<Paged<UserAccessRequest>> {\n const url = `${this.BASE_URL}/GetUserAccessRequests/${skip}/${limit}/${sortParam}/${sortOrder}`;\n return this.httpService.get(url) as Promise<Paged<UserAccessRequest>>;\n }\n\n getRoles(): Promise<Paged<Role>> {\n const url = `Role/GetRoles/0/0`;\n return this.httpService.get(url) as Promise<Paged<Role>>;\n }\n\n /**\n * Get user access requests with additional parameter, pagination and sorting\n * @param param Search parameter\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the filtered user access requests\n */\n getUserAccessRequestWithParam(\n param: string,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<Paged<UserAccessRequest>> {\n const url = `${this.BASE_URL}/GetUserAccessRequestWithParam/${param}/${skip}/${limit}/${sortParam}/${sortOrder}`;\n return this.httpService.get(url) as Promise<Paged<UserAccessRequest>>;\n }\n\n /**\n * Get user access requests with additional parameter, pagination and sorting\n * @param params Filter parameters\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the filtered user access requests\n */\n getUserAccessRequestByFilterParams(\n params: SearchPropertyValue[],\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<Paged<UserAccessRequest>> {\n const url = `${this.BASE_URL}/SearchUserAccessRequest/${skip}/${limit}/${sortParam}/${sortOrder}`;\n return this.httpService.post(url, params) as Promise<\n Paged<UserAccessRequest>\n >;\n }\n\n /**\n * Save multiple user access requests\n * @param requests Array of user access requests to save\n * @returns Promise containing the save operation result\n */\n saveUserAccessRequests(requests: UserAccessRequest[]): Promise<any> {\n const url = `${this.BASE_URL}/SaveUserAccessRequests`;\n return this.httpService.post(url, requests);\n }\n\n /**\n * Approve or reject multiple user access requests\n * @param requests Array of user access requests to save\n * @param isApproval True for approval, false for decline\n * @returns Promise containing the save operation result\n */\n processUserAccessRequests(\n requests: UserAccessRequest[],\n isApproval: boolean\n ): Promise<any> {\n const url = `${this.BASE_URL}/UserAccessRequestAction/${isApproval}`;\n return this.httpService.post(url, requests);\n }\n\n /**\n * Delete multiple user access requests\n * @param requestIds Array of request IDs to delete\n * @returns Observable containing the delete operation result\n */\n deleteUserAccessRequests(requestIds: string[]): Observable<any> {\n const url = `${this.BASE_URL}/DeleteUserAccessRequests`;\n return this.httpService.delete(`${url}?data=${requestIds.join(',')}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { QueryParams } from '../../../models/query-params';\nimport { UserAccessRequest } from '../../../models/user-access-request';\nimport { Role } from '../../../models/Role';\nimport { IDataFilter } from 'verben-ng-ui';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserAccessRequestState {\n private updating$ = new BehaviorSubject<boolean>(false);\n private requests$ = new BehaviorSubject<UserAccessRequest[]>([]);\n private roles$ = new BehaviorSubject<Role[]>([]);\n private searchTerm$ = new BehaviorSubject<string>('');\n private queryParams$ = new BehaviorSubject<QueryParams<UserAccessRequest>>({\n skip: 0,\n limit: 20,\n sortParam: 'CreatedAt',\n sortOrder: 'asc',\n });\n private filterParams$ = new BehaviorSubject<IDataFilter[]>([]);\n\n isUpdating$(): Observable<boolean> {\n return this.updating$.asObservable();\n }\n\n setUpdating(isUpdating: boolean): void {\n this.updating$.next(isUpdating);\n }\n\n getRequests$(): Observable<UserAccessRequest[]> {\n return this.requests$.asObservable();\n }\n\n setRequests(requests: UserAccessRequest[]): void {\n this.requests$.next(requests);\n }\n\n getFilterParams$(): Observable<IDataFilter[]> {\n return this.filterParams$.asObservable();\n }\n\n setFilterParams(params: IDataFilter[]): void {\n this.filterParams$.next(params);\n }\n\n getRoles$(): Observable<Role[]> {\n return this.roles$.asObservable();\n }\n\n setRoles(roles: Role[]): void {\n this.roles$.next(roles);\n }\n\n appendRequests(newRequests: UserAccessRequest[]): void {\n const currentRequests = this.requests$.getValue();\n this.requests$.next([...currentRequests, ...newRequests]);\n }\n\n getSearchTerm$(): Observable<string> {\n return this.searchTerm$.asObservable();\n }\n\n getSearchTermValue(): string {\n return this.searchTerm$.getValue();\n }\n\n setSearchTerm(term: string): void {\n this.searchTerm$.next(term);\n }\n\n getQueryParams$(): Observable<QueryParams<UserAccessRequest>> {\n return this.queryParams$.asObservable();\n }\n\n getQueryParamsValue(): QueryParams<UserAccessRequest> {\n return this.queryParams$.getValue();\n }\n\n updateQueryParams(params: Partial<QueryParams<UserAccessRequest>>): void {\n this.queryParams$.next({ ...this.queryParams$.getValue(), ...params });\n }\n\n resetPagination(): void {\n const currentParams = this.queryParams$.getValue();\n this.queryParams$.next({ ...currentParams, skip: 0 });\n }\n\n addRequest(request: UserAccessRequest): void {\n const currentValue = this.requests$.getValue();\n this.requests$.next([...currentValue, request]);\n }\n\n updateRequest(updatedRequest: UserAccessRequest): void {\n const requests = this.requests$.getValue();\n const index = requests.findIndex((r) => r.Id === updatedRequest.Id);\n if (index !== -1) {\n requests[index] = updatedRequest;\n this.requests$.next([...requests]);\n }\n }\n\n removeRequest(requestId: string): void {\n const currentValue = this.requests$.getValue();\n this.requests$.next(currentValue.filter((r) => r.Id !== requestId));\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n Observable,\n Subject,\n catchError,\n debounceTime,\n distinctUntilChanged,\n from,\n lastValueFrom,\n takeUntil,\n tap,\n throwError,\n} from 'rxjs';\nimport { UserAccessRequestState } from '../states/user-access-request.state';\nimport { UserAccessRequest } from '../../../models/user-access-request';\nimport { QueryParams } from '../../../models/query-params';\nimport { UserAccessRequestService } from '../services/user-access-request.service';\nimport { UserAccessRequestStatus } from '../../../models/user-access-request-status';\nimport { SearchOperator } from '../../../models/SearchOperator';\nimport { SearchPropertySign } from '../../../models/SearchPropertySign';\n\nimport { Role } from '../../../models/Role';\nimport { UtilService } from '../../../services/util.service';\nimport { IDataFilter } from 'verben-ng-ui';\nimport { convertDataFilterTypeToSearchPropertyValueType } from '../helper';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserAccessRequestFacade {\n private searchSubject = new Subject<string>();\n private destroy$ = new Subject<void>();\n\n constructor(\n private userAccessRequestService: UserAccessRequestService,\n private userAccessRequestState: UserAccessRequestState,\n private utilService: UtilService\n ) {\n // Set up debounced search handling\n this.searchSubject\n .pipe(\n debounceTime(1000),\n distinctUntilChanged(),\n takeUntil(this.destroy$)\n )\n .subscribe((searchTerm) => {\n this.handleSearch(searchTerm);\n });\n\n this.isUpdating$().subscribe((loading) => {\n this.utilService.sendBI(loading);\n });\n\n this.getFilterParams$().subscribe((params) => {\n if (params.length) {\n } else {\n this.loadRequests();\n }\n });\n }\n\n destroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n isUpdating$(): Observable<boolean> {\n return this.userAccessRequestState.isUpdating$();\n }\n\n getRequests$(): Observable<UserAccessRequest[]> {\n return this.userAccessRequestState.getRequests$();\n }\n\n getFilterParams$(): Observable<IDataFilter[]> {\n return this.userAccessRequestState.getFilterParams$();\n }\n\n getRoles$(): Observable<Role[]> {\n return this.userAccessRequestState.getRoles$();\n }\n\n getQueryParams$(): Observable<QueryParams<UserAccessRequest>> {\n return this.userAccessRequestState.getQueryParams$();\n }\n\n getSearchTerm$(): Observable<string> {\n return this.userAccessRequestState.getSearchTerm$();\n }\n\n // Search handling\n search(term: string): void {\n this.searchSubject.next(term);\n }\n\n private async handleSearch(searchTerm: string): Promise<void> {\n this.userAccessRequestState.setSearchTerm(searchTerm);\n this.userAccessRequestState.resetPagination();\n\n try {\n this.userAccessRequestState.setUpdating(true);\n if (searchTerm.trim()) {\n await this.loadRequestsWithParam(searchTerm);\n } else {\n await this.loadRequests();\n }\n } catch (error) {\n console.error('Search failed:', error);\n throw error;\n } finally {\n this.userAccessRequestState.setUpdating(false);\n }\n }\n\n async filter(filterParams: IDataFilter[]): Promise<void> {\n this.userAccessRequestState.resetPagination();\n this.userAccessRequestState.setFilterParams(filterParams);\n }\n\n // Load more handling\n async loadMore(): Promise<void> {\n try {\n this.userAccessRequestState.setUpdating(true);\n const currentParams = this.userAccessRequestState.getQueryParamsValue();\n const searchTerm = this.userAccessRequestState.getSearchTermValue();\n\n // Update skip value\n const newSkip = currentParams.skip + currentParams.limit;\n this.userAccessRequestState.updateQueryParams({ skip: newSkip });\n\n // Load and append data\n const response = searchTerm\n ? await this.userAccessRequestService.getUserAccessRequestWithParam(\n searchTerm,\n newSkip,\n currentParams.limit,\n currentParams.sortParam || 'createdDate',\n currentParams.sortOrder\n )\n : await this.userAccessRequestService.getUserAccessRequests(\n newSkip,\n currentParams.limit,\n currentParams.sortParam || 'createdDate',\n currentParams.sortOrder\n );\n\n this.userAccessRequestState.appendRequests(response.Result);\n } catch (error) {\n console.error('Load more failed:', error);\n throw error;\n } finally {\n this.userAccessRequestState.setUpdating(false);\n }\n }\n\n async loadRequests(): Promise<void> {\n try {\n this.userAccessRequestState.setUpdating(true);\n const params = this.userAccessRequestState.getQueryParamsValue();\n\n const requests =\n await this.userAccessRequestService.getUserAccessRequests(\n params.skip,\n params.limit,\n params.sortParam || 'createdDate',\n params.sortOrder\n );\n\n this.userAccessRequestState.setRequests(requests.Result);\n } catch (error) {\n console.error('Failed to load requests:', error);\n throw error;\n } finally {\n this.userAccessRequestState.setUpdating(false);\n }\n }\n\n async loadRoles(): Promise<void> {\n try {\n // this.userAccessRequestState.setUpdating(true);\n // const params = this.userAccessRequestState.getQueryParamsValue();\n\n const requests = await this.userAccessRequestService.getRoles();\n\n this.userAccessRequestState.setRoles(requests.Result);\n } catch (error) {\n console.error('Failed to load requests:', error);\n throw error;\n } finally {\n // this.userAccessRequestState.setUpdating(false);\n }\n }\n\n async loadRequestsWithParam(param: string): Promise<void> {\n try {\n this.userAccessRequestState.setUpdating(true);\n const params = this.userAccessRequestState.getQueryParamsValue();\n\n const requests =\n await this.userAccessRequestService.getUserAccessRequestWithParam(\n param,\n params.skip,\n params.limit,\n params.sortParam || 'createdDate',\n params.sortOrder\n );\n\n this.userAccessRequestState.setRequests(requests.Result);\n } catch (error) {\n console.error('Failed to load requests with param:', error);\n throw error;\n } finally {\n this.userAccessRequestState.setUpdating(false);\n }\n }\n\n async loadRequestsByFilterParams(filterParams: IDataFilter[]): Promise<void> {\n try {\n this.userAccessRequestState.setUpdating(true);\n const params = this.userAccessRequestState.getQueryParamsValue();\n\n const requests =\n await this.userAccessRequestService.getUserAccessRequestByFilterParams(\n filterParams.map((filter) => ({\n PropertyName: filter.name,\n EntityValue: filter.value,\n type: convertDataFilterTypeToSearchPropertyValueType(filter.type),\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n })),\n params.skip,\n params.limit,\n params.sortParam || 'createdDate',\n params.sortOrder\n );\n\n this.userAccessRequestState.setRequests(requests.Result);\n } catch (error) {\n console.error('Failed to load requests with param:', error);\n throw error;\n } finally {\n this.userAccessRequestState.setUpdating(false);\n }\n }\n\n updateQueryParams(params: Partial<QueryParams<UserAccessRequest>>): void {\n this.userAccessRequestState.updateQueryParams(params);\n this.loadRequests();\n }\n\n async addRequest(request: Partial<UserAccessRequest>): Promise<void> {\n try {\n this.userAccessRequestState.setUpdating(true);\n const newRequest = { ...request } as UserAccessRequest;\n this.userAccessRequestState.addRequest(newRequest);\n\n await this.userAccessRequestService.saveUserAccessRequests([newRequest]);\n await this.loadRequests(); // Reload to get server-side changes\n } catch (error) {\n console.error('Failed to add request:', error);\n this.userAccessRequestState.removeRequest(request.Id!);\n throw error;\n } finally {\n this.userAccessRequestState.setUpdating(false);\n }\n }\n\n async updateRequest(request: UserAccessRequest): Promise<void> {\n try {\n this.userAccessRequestState.setUpdating(true);\n await this.userAccessRequestService.saveUserAccessRequests([request]);\n this.userAccessRequestState.updateRequest(request);\n } catch (error) {\n console.error('Failed to update request:', error);\n throw error;\n } finally {\n this.userAccessRequestState.setUpdating(false);\n }\n }\n\n async deleteRequest(requestId: string): Promise<void> {\n try {\n this.userAccessRequestState.setUpdating(true);\n await lastValueFrom(\n this.userAccessRequestService.deleteUserAccessRequests([requestId])\n );\n this.userAccessRequestState.removeRequest(requestId);\n } catch (error) {\n console.error('Failed to delete request:', error);\n throw error;\n } finally {\n this.userAccessRequestState.setUpdating(false);\n }\n }\n\n async approveRequest(request: UserAccessRequest): Promise<void> {\n try {\n this.userAccessRequestState.setUpdating(true);\n const response =\n await this.userAccessRequestService.processUserAccessRequests(\n [request],\n true\n );\n // console.log(response);\n const data = (response as UserAccessRequest[])?.[0];\n if (data) {\n this.userAccessRequestState.updateRequest(data);\n }\n } catch (error) {\n console.error('Failed to update request:', error);\n throw error;\n } finally {\n this.userAccessRequestState.setUpdating(false);\n }\n }\n}\n\nenum DateFilterTypes {\n Before = SearchPropertySign.LT,\n On = SearchPropertySign.EQ,\n After = SearchPropertySign.GT,\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { CardData } from 'verben-ng-ui';\nimport { Role } from '../../../models/Role';\nimport { UserAccessRequestStatus } from '../../../models/user-access-request-status';\n\ninterface UserFormData {\n MailAddress: string;\n Name: string;\n PhoneNumber: string;\n}\n\n@Component({\n selector: 'lib-user-request-form',\n templateUrl: './user-request-form.component.html',\n styleUrl: './user-request-form.component.css',\n})\nexport class UserRequestFormComponent {\n @Input() roles: Role[] = [];\n @Input()\n get currentData(): CardData | null {\n return this._currentData;\n }\n set currentData(value: CardData | null) {\n this._currentData = value;\n console.log(value?.data);\n if (value?.data) {\n this.form.patchValue({\n MailAddress: value.data.MailAddress || '',\n FirstName: value.data.FirstName || '',\n LastName: value.data.LastName || '',\n OtherName: value.data.OtherName || '',\n PhoneNumber: value.data.PhoneNumber || '',\n RoleID: value.data.RoleID || '',\n });\n } else {\n this.form.reset();\n }\n }\n\n private _currentData: CardData | null = null;\n\n @Output() switchView = new EventEmitter<undefined>();\n @Output() onApproval = new EventEmitter<{ email: string; role: string }>();\n\n form: FormGroup;\n\n // roles: WritableSignal<Role[]> = signal([]);\n\n constructor(private fb: FormBuilder) {\n this.form = this.fb.group({\n MailAddress: ['', { readonly: true }],\n FirstName: ['', { readonly: true }],\n LastName: ['', { readonly: true }],\n OtherName: ['', { readonly: true }],\n PhoneNumber: ['', { readonly: true }],\n RoleID: ['', { validators: [Validators.required] }],\n });\n }\n\n ngOnInit(): void {\n // this.userAccessRequestFacade.getRoles$().subscribe((data) => {\n // this.roles.set(data);\n // });\n // try {\n // this.userAccessRequestFacade.loadRoles();\n // } catch (error) {\n // // Handle error\n // }\n console.log(this.currentData?.data);\n }\n\n onSave(): void {\n if (this.form.valid) {\n // Emit save event with form value\n console.log('Form saved:', this.form.value);\n }\n }\n\n onDelete(): void {\n // Emit delete event\n console.log('Delete requested');\n }\n\n disableProcessing(): boolean {\n return (\n this.currentData?.data?.RequestStatus !==\n UserAccessRequestStatus.Pending || !this.form.valid\n );\n }\n}\n","<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\"\n>\n <verbena-input\n name=\"MailAddress\"\n label=\"Mail Address:\"\n formControlName=\"MailAddress\"\n [readOnly]=\"true\"\n />\n <verbena-input\n label=\"First Name:\"\n name=\"FirstName\"\n type=\"text\"\n formControlName=\"FirstName\"\n [readOnly]=\"true\"\n />\n <verbena-input\n label=\"Last Name:\"\n name=\"LastName\"\n type=\"text\"\n formControlName=\"LastName\"\n [readOnly]=\"true\"\n />\n <verbena-input\n label=\"OtherName:\"\n name=\"OtherName\"\n type=\"text\"\n formControlName=\"OtherName\"\n [readOnly]=\"true\"\n />\n <verbena-input\n label=\"Phone Number:\"\n name=\"PhoneNumber\"\n type=\"tel\"\n formControlName=\"PhoneNumber\"\n [readOnly]=\"true\"\n />\n\n <div class=\"space-y-1\">\n <label for=\"role\">Role</label>\n\n <verben-drop-down\n label=\"Role\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [filter]=\"true\"\n [showClear]=\"true\"\n placeholder=\"\"\n [(options)]=\"roles\"\n id=\"role\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n formControlName=\"RoleID\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <!-- buttons -->\n <div class=\"flex justify-between my-2\">\n <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Reject\"\n styleType=\"danger\"\n borderRadius=\"10px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button>\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Switch To Table\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n <verbena-button\n (click)=\"\n onApproval.emit({\n email: form.get('MailAddress')?.value,\n role: form.get('RoleId')?.value\n })\n \"\n text=\"Approve\"\n bgColor=\"#28a745\"\n textColor=\"white\"\n border=\"1px solid #28a745\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button>\n </div>\n</form>\n","import { Component, Input } from '@angular/core';\nimport { UserAccessRequestStatus } from '../../../models/user-access-request-status';\n\n@Component({\n selector: 'lib-user-access-request-status-badge',\n templateUrl: './user-access-request-status-badge.component.html',\n styleUrl: './user-access-request-status-badge.component.css',\n})\nexport class UserAccessRequestStatusBadgeComponent {\n @Input() status: UserAccessRequestStatus = UserAccessRequestStatus.Pending;\n\n badgeConfig() {\n switch (this.status) {\n case UserAccessRequestStatus.Approved:\n return { bgColor: '#CAE1CC', textColor: '#4ABB54', label: 'Approved' };\n case UserAccessRequestStatus.Declined:\n return { bgColor: '#FFDFDF', textColor: '#EB5757', label: 'Rejected' };\n default:\n return { bgColor: '#827C7C', textColor: '#C3C3C3', label: 'Pending' };\n }\n }\n}\n","<verbena-badge\n borderRadius=\"9px\"\n [bgColor]=\"badgeConfig().bgColor\"\n [textColor]=\"badgeConfig().textColor\"\n fontSize=\"12px\"\n [text]=\"badgeConfig().label\"\n [pd]=\"'2px 6px'\"\n></verbena-badge>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n OnInit,\n Signal,\n signal,\n ViewChild,\n WritableSignal,\n} from '@angular/core';\nimport { columns } from './access-request.columns';\nimport { baseStyle } from './base-table-style';\nimport { UserAccessRequest } from '../../models/user-access-request';\nimport { Role } from '../../models/Role';\nimport {\n CardData,\n CardDataViewComponent,\n ColumnDefinition,\n DataFilterType,\n DataViewComponent,\n IDataFilter,\n} from 'verben-ng-ui';\nimport { UserAccessRequestFacade } from './facades/user-access-request.facade';\n\ninterface UserFormData {\n MailAddress: string;\n Name: string;\n PhoneNumber: string;\n}\n\n@Component({\n selector: 'lib-user-request-approval',\n templateUrl: './user-request-approval.component.html',\n styleUrl: './user-request-approval.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UserRequestApprovalComponent implements OnInit {\n @ViewChild('vdcv') cardDataView!: CardDataViewComponent;\n @ViewChild('vdv') dataView!: DataViewComponent;\n\n columns: ColumnDefinition<UserAccessRequest>[] = columns;\n // visibleColumnDef: WritableSignal<ColumnDefinition<UserAccessRequest>[]> =\n // signal(columns);\n visibleColumnDef = this.columns;\n data: WritableSignal<UserAccessRequest[]> = signal([]);\n styles = baseStyle;\n currentData: CardData | null = null;\n isGridView = true;\n selected: CardData | null = null;\n\n cardData: Signal<CardData[]> = computed(() =>\n this.data()?.map(\n ({\n FirstName,\n LastName,\n MailAddress,\n PhoneNumber,\n RoleID,\n RequestStatus,\n Role,\n }) => ({\n selected: false,\n title: `${FirstName} ${LastName}`,\n data: {\n FirstName,\n LastName,\n MailAddress,\n PhoneNumber,\n RoleID,\n RequestStatus,\n Role,\n } as Partial<UserAccessRequest>,\n body: [{ title: 'Role', value: Role?.Name ?? '' }],\n children: [],\n })\n )\n );\n\n roles: WritableSignal<Role[]> = signal([]);\n\n constructor(\n private cdr: ChangeDetectorRef,\n // private service: UserRequestApprovalService,\n private userAccessRequestFacade: UserAccessRequestFacade\n ) {}\n\n async ngOnInit() {\n // this.data = this.service.getMockUserRequests();\n this.userAccessRequestFacade.getRequests$().subscribe((data) => {\n this.data.set(data);\n });\n\n this.userAccessRequestFacade.getRoles$().subscribe((data) => {\n this.roles.set(data);\n });\n\n try {\n this.userAccessRequestFacade.loadRequests();\n this.userAccessRequestFacade.loadRoles();\n } catch (error) {\n // Handle error\n }\n }\n\n ngOnDestroy() {\n this.userAccessRequestFacade.destroy();\n }\n\n handleSearch(event: { key: string; value: string }) {\n this.userAccessRequestFacade.search(event.value);\n }\n\n async loadMore() {\n try {\n await this.userAccessRequestFacade.loadMore();\n } catch (error) {\n // Handle error\n }\n }\n\n // To search with parameter:\n async searchRequests(param: string) {\n try {\n await this.userAccessRequestFacade.loadRequestsWithParam(param);\n } catch (error) {\n // Handle error\n }\n }\n\n async onApprove(approvalData: { email: string; role: string }) {\n const data = this.data().find(\n ({ MailAddress }) => MailAddress === approvalData.email\n );\n\n if (data) {\n await this.userAccessRequestFacade.approveRequest({\n ...data,\n RoleID: approvalData.role,\n });\n }\n }\n\n openDetailView(mailAddress: string) {\n const cardItem = this.getCardDataByMailAddress(mailAddress);\n if (cardItem && this.cardDataView) {\n this.dataView.toggleView();\n // First reset all selections\n this.cardData().forEach((item) => {\n item.selected = false;\n if (item.children) {\n item.children.forEach((child) => (child.selected = false));\n }\n });\n\n // Set the selected item\n cardItem.selected = true;\n this.currentData = this.cardDataView.onItemClick(cardItem);\n\n // Force change detection if needed\n // this.changeDetectorRef.detectChanges();\n }\n }\n\n getCardDataByMailAddress(mailAddress: string): CardData | undefined {\n return this.cardData().find(({ data }) => data.MailAddress === mailAddress);\n }\n\n onViewChange(isGridView: boolean): void {\n this.isGridView = isGridView;\n // Reset selection when switching views\n if (this.currentData) {\n this.cardDataView?.clearData();\n this.currentData = null;\n }\n\n console.log('SELECTED', this.selected);\n\n if (this.selected) {\n this.cardDataView.onItemClick(this.selected);\n }\n }\n\n openFormView(index: number) {\n const item = this.cardData()[index];\n console.log('ITEM = ', item);\n }\n\n handleExport(exportedData: Partial<any>[]) {\n console.log('Exported data:', exportedData);\n this.downloadCSV(exportedData);\n }\n\n /**\n * @param data Simple csv export for testing\n */\n private downloadCSV(data: Partial<any>[]) {\n const headers = Object.keys(data[0]);\n const csvContent = [\n headers.join(','),\n ...data.map((row) => headers.map((header) => row[header]).join(',')),\n ].join('\\n');\n\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const link = document.createElement('a');\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', 'export.csv');\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n\n onSelectionChange(selectedRows: UserAccessRequest[]) {\n console.log('Selection changed:', selectedRows);\n // Handle the selection change\n }\n\n /**\n * Copied over from card view doc until I understand usage\n */\n selectedColumnCount: number = 0;\n selectedFilterTableCount: number = 0;\n isOPen: boolean = true;\n selectedSortCount: number = 0;\n showColumn: boolean = false;\n showSort: boolean = false;\n selectedAll: boolean = false;\n visibleColumns: IDataFilter[] = columns.map((col) => ({\n checked: true,\n name: typeof col.header === 'string' ? col.header : col.id,\n type: DataFilterType.Bool,\n }));\n filterArray: IDataFilter[] = [\n {\n name: 'Name',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'MailAddress',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'PhoneNumber',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'CreatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n ];\n\n sortOptions: IDataFilter[] = [\n {\n name: 'Name',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'MailAddress',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'PhoneNumber',\n type: DataFilterType.String,\n checked: false,\n },\n {\n name: 'CreatedAt',\n type: DataFilterType.Date,\n checked: true,\n },\n ];\n clearData() {\n this.currentData = {} as CardData;\n }\n\n onColumnChange(event: boolean) {\n this.showColumn = event;\n }\n onSortChange(event: boolean) {\n this.showSort = event;\n console.log(event);\n }\n onColumnsUpdated(updatedColumns: IDataFilter[]) {\n console.log(updatedColumns);\n const updatedColumnDef: ColumnDefinition<UserAccessRequest>[] = [];\n updatedColumns.forEach((col) => {\n const matchingCol = this.columns.find(\n (column) => column.header === col.name || column.id === col.name\n );\n if (matchingCol) {\n updatedColumnDef.push(matchingCol);\n }\n });\n\n console.log(updatedColumnDef);\n this.visibleColumnDef = [...updatedColumnDef];\n this.cdr.markForCheck();\n\n this.onColumnChange(false);\n this.selectedColumnCount = updatedColumns.length;\n }\n onSortUpdated(updatedSorts: IDataFilter[]) {\n this.onSortChange(false);\n this.selectedSortCount = updatedSorts.length;\n console.log(updatedSorts);\n }\n\n onStateChange(event: { key: string; value: boolean }): void {\n console.log(`State changed for ${event.key}:`, event.value);\n }\n\n onFilterSet(event: IDataFilter[]): void {\n console.log(event);\n this.userAccessRequestFacade.filter(event);\n }\n}\n","<div class=\"space-y-8\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n isCreate: false,\n isToggle: true,\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"0\"\n [selectedSortCount]=\"0\"\n [selectedFilterTableCount]=\"0\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n (onSearchChange)=\"handleSearch($event)\"\n >\n <div table-content>\n <lib-data-table\n [data]=\"data()\"\n [columns]=\"visibleColumnDef\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"status\">\n <ng-template #cell let-value>\n <lib-user-access-request-status-badge\n [status]=\"value\"\n ></lib-user-access-request-status-badge>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value let-deleteRow>\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"openDetailView(value)\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n <!-- <button (click)=\"openDetailView(value)\">Open</button>\n <button (click)=\"selected = cardData[rowIndex]; vdv.toggleView()\">\n Switch\n </button> -->\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n <!-- <ng-template #header>\n <strong>Actions</strong>\n </ng-template> -->\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"MailAddress\"\n border=\"5px\"\n [cardDataList]=\"cardData()\"\n rbgColor=\"#f5f6f9\"\n mg=\"20px\"\n >\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"MailAddress\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\"\n [cardDataList]=\"cardData()\"\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\"\n >\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex-1 flex items-end gap-y-2 gap-x-4 p-4\">\n <div class=\"flex-1 space-y-2\">\n <span\n class=\"font-semibold text-[#404040] flex-1 truncate\"\n >{{ item.title }}</span\n >\n\n <p class=\"flex items-center my-1\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Phone Number:</label\n >\n <span id=\"phone\" class=\"text-sm truncate\">{{\n item.data.PhoneNumber\n }}</span>\n </p>\n </div>\n\n <div class=\"grid gap-y-1\">\n <p class=\"grid\">\n <label\n for=\"role\"\n class=\"text-[10px] font-light text-[#404040]\"\n >Role</label\n >\n <span id=\"role\" class=\"text-sm font-medium\">{{\n item.data?.Role?.Name\n }}</span>\n </p>\n\n <lib-user-access-request-status-badge\n [status]=\"item.data.RequestStatus\"\n ></lib-user-access-request-status-badge>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <lib-user-request-form\n [roles]=\"roles()\"\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n (onApproval)=\"onApprove($event)\"\n ></lib-user-request-form>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"w-full\">\n <div\n [ngClass]=\"{\n 'flex gap-2 items-center': true,\n 'justify-between': true,\n 'justify-end': vdcv.hasCurrentItem()\n }\"\n >\n <verbena-button\n *ngIf=\"!vdcv.hasCurrentItem()\"\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n <div\n class=\"flex {{\n vdcv.hasCurrentItem() ? 'flex-1' : ''\n }} justify-end items-center gap-5\"\n >\n <span class=\"paginator-text\"\n >{{ cardData().length }} records loaded</span\n >\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[#3479E9] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n (filtersApplied)=\"onFilterSet($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data()\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n\n <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-between\">\n <div class=\"message-log-button-container flex justify-between\">\n <verbena-button\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n </div>\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData().length }} records loaded</span>\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[#3479E9] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n</div>\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { UserAccessRequest } from '../../models/user-access-request';\nimport { UserAccessRequestStatus } from '../../models/user-access-request-status';\nimport { ObjectState } from '../../models/object-state';\nimport { mockData } from './helper';\n\nexport interface ServiceConfig {\n resourceEndpoint: string;\n}\n\nexport const SERVICE_CONFIG = new InjectionToken<ServiceConfig>(\n 'ServiceConfig'\n);\n\n@Injectable()\nexport class UserRequestApprovalService {\n // protected readonly baseUrl: string;\n protected readonly resourceEndpoint: string;\n roles: { id: string; name: string }[] = [\n { id: 'admin', name: 'Admin' },\n { id: 'manager', name: 'Manager' },\n { id: 'staff', name: 'Staff' },\n ];\n\n constructor() { // @Inject(SERVICE_CONFIG) config: ServiceConfig // protected httpClient: HttpClient,\n // this.baseUrl = environment.serviceUrl;\n // this.resourceEndpoint = config.resourceEndpoint;\n this.resourceEndpoint = '';\n }\n\n getMockUserRequests(): UserAccessRequest[] {\n return mockData;\n }\n\n // getUserRequests() {\n // return this.httpClient.get<UserAccessRequest[]>(`${this.resourceEndpoint}`);\n // }\n\n // getUserRequestById(id: number) {\n // return this.httpClient.get<UserAccessRequest>(\n // `${this.resourceEndpoint}/${id}`\n // );\n // }\n\n // processUserReuqests(ids: string[], approval: boolean = true) {\n // return this.httpClient.post<UserAccessRequest[]>(\n // `${this.resourceEndpoint}`,\n // ids\n // );\n // }\n}\n\nfunction randomEnum<T extends object>(anEnum: T): T[keyof T] {\n const enumValues = Object.values(anEnum) as unknown as T[keyof T][];\n const randomIndex = Math.floor(Math.random() * enumValues.length);\n return enumValues[randomIndex];\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UserRequestApprovalComponent } from './user-request-approval.component';\nimport {\n CardDataViewModule,\n CardModule,\n DataExportModule,\n DataTableModule,\n DataViewModule,\n DropDownModule,\n SortTableModule,\n SvgModule,\n TableFilterModule,\n VerbenaBadgeModule,\n VerbenaButtonModule,\n VerbenaInputModule,\n VisibleColumnModule,\n} from 'verben-ng-ui';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { UserRequestFormComponent } from './user-request-form/use-request-form.component';\nimport { UserAccessRequestStatusBadgeComponent } from './user-access-request-status-badge/user-access-request-status-badge.component';\nimport { UserRequestApprovalService } from './user-request-approval.service';\n\n@NgModule({\n declarations: [\n UserRequestApprovalComponent,\n UserRequestFormComponent,\n UserAccessRequestStatusBadgeComponent,\n ],\n imports: [\n CommonModule,\n\n DataTableModule,\n CardModule,\n SvgModule,\n DataViewModule,\n CardDataViewModule,\n SortTableModule,\n VisibleColumnModule,\n TableFilterModule,\n DataExportModule,\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n VerbenaBadgeModule,\n DropDownModule,\n ],\n providers: [UserRequestApprovalService],\n exports: [UserRequestApprovalComponent, UserAccessRequestStatusBadgeComponent],\n})\nexport class LibUserRequestApprovalModule {}\n","import { UserManagement } from './../../models/user-management';\nimport { ColumnDefinition } from 'verben-ng-ui';\n\n\nexport const columns: ColumnDefinition<UserManagement>[] = [\n {\n id: 'select',\n header: '',\n },\n {\n id: 'createdAt',\n header: 'CREATED',\n accessorKey: 'CreatedAt',\n },\n {\n id: 'user',\n header: 'NAME',\n accessorFn: (row) => `${row.FirstName} ${row.LastName}`,\n },\n {\n id: 'mail',\n header: 'E-MAIL',\n accessorKey: 'MailAddress',\n },\n\n {\n id: 'address',\n header: 'ADDRESS',\n accessorKey: 'Address',\n },\n {\n id: 'phone',\n header: 'PHONE NUMBER',\n accessorKey: 'PhoneNumber',\n },\n {\n id: 'role',\n header: 'ROLE',\n accessorKey: 'Role',\n },\n {\n id: 'status',\n header: 'STATUS',\n accessorKey: 'Status',\n },\n {\n id: 'actions',\n header: 'ACTIONS',\n accessorKey: 'MailAddress',\n },\n];\n","export const baseStyle: any = {\n width:\"100%\",\n fontFamily: '\"Fraunces\", serif',\n fontSize: '125%',\n whiteSpace: 'nowrap',\n margin: '0',\n border: '1px solid #D4A007',\n borderRadius: '16px',\n borderCollapse: 'separate',\n borderSpacing: '0',\n // tableLayout: 'fixed',\n overflow: 'hidden',\n rows: {\n even: {\n backgroundColor: '#FDFDFD',\n },\n odd: {\n backgroundColor: '#F1F4FB',\n },\n height: '68px',\n },\n cells: {\n padding: '0.5rem 1rem',\n },\n header: {\n stickyTop: true,\n zIndex: 2,\n backgroundColor: '#EFF2FB',\n fontWeight: 'bold',\n textAlign: 'left',\n padding: '12px 16px',\n height: '30px',\n },\n footer: {\n // stickyBottom: true,\n // zIndex: 2,\n padding: '3px',\n },\n // body: {\n // background: '#fff',\n // padding: '4px 5px',\n // textAlign: 'center',\n // },\n // firstColumn: {\n // stickyLeft: true,\n // zIndex: 1,\n // },\n lastColumn: {\n // stickyRight: true,\n // zIndex: 1,\n },\n};\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { CardData } from 'verben-ng-ui';\nimport { Role } from '../../../models/Role';\nimport { Status } from '../../../models/status';\n\n\ninterface UserFormData {\n MailAddress: string;\n FirstName: string;\n PhoneNumber: string;\n}\n\n@Component({\n selector: 'lib-user-request-form',\n templateUrl: './user-management-form.component.html',\n styleUrl: './user-management-form.component.css',\n})\nexport class UserManagementFormComponent {\n // @Input() roles: Role[] = [];\n // @Input() status: Status[] = [];\n \n @Input() set currentData(value: CardData | null) {\n if (value?.data) {\n this.form.patchValue({\n MailAddress: value.data.MailAddress || '',\n FirstName: value.data.FirstName || '',\n PhoneNumber: value.data.PhoneNumber || '',\n Address: value.data.Address || '',\n Role: value.data.RoleID || '',\n Status: value.data.Status || '',\n });\n } else {\n this.form.reset();\n }\n }\n \n @Output() switchView = new EventEmitter<undefined>();\n @Output() onApproval = new EventEmitter<{ email: string; role: string }>();\n\n\n form: FormGroup;\n\n roles: { id: string; name: string }[] = [\n { id: 'admin', name: 'Admin' },\n { id: 'manager', name: 'Manager' },\n { id: 'staff', name: 'Staff' },\n ];\n status: { id: string; name: string }[] = [\n { id: '1', name: 'Active' },\n { id: '2', name: 'pending' },\n { id: '3', name: 'Approved' },\n ];\n\n \n\n constructor(private fb: FormBuilder) {\n this.form = this.fb.group({\n MailAddress: ['', { readonly: true }],\n FirstName: ['', { readonly: true }],\n PhoneNumber: ['', { readonly: true }],\n Address: ['', { readonly: true }],\n Status: ['', { readonly: true }],\n Role: ['', { readonly: true }],\n RoleId: [''],\n });\n }\n\n ngOnInit(): void {}\n\n onSave(): void {\n if (this.form.valid) {\n // Emit save event with form value\n console.log('Form saved:', this.form.value);\n }\n }\n\n onDelete(): void {\n // Emit delete event\n console.log('Delete requested');\n }\n}\n","<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4 \"\n>\n\n <verbena-input\n label=\"Name:\"\n name=\"FirstName\"\n type=\"text\"\n \n formControlName=\"FirstName\"\n\n\n />\n <verbena-input\n label=\"Phone Number:\"\n name=\"PhoneNumber\"\n type=\"tel\"\n formControlName=\"PhoneNumber\"\n \n />\n <verbena-input\n name=\"MailAddress\"\n label=\"E-Mail Address:\"\n [type]=\"'email'\"\n formControlName=\"MailAddress\"\n \n />\n\n\n <verbena-input\n label=\"Address\"\n name=\"Address\"\n type=\"text\"\n formControlName=\"Address\"\n \n />\n \n <div class=\"space-y-1\">\n <label for=\"role\">Role</label>\n\n <verben-drop-down\n label=\"Role\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [filter]=\"true\"\n [showClear]=\"true\"\n placeholder=\"\"\n [(options)]=\"roles\"\n id=\"role\"\n optionLabel=\"Name\"\n optionValue=\"Id\"\n formControlName=\"RoleId\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down\n label=\"Status\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [filter]=\"true\"\n [showClear]=\"true\"\n placeholder=\"\"\n [(options)]=\"status\"\n id=\"status\"\n optionLabel=\"Name\"\n optionValue=\"Id\"\n formControlName=\"RoleId\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n <!-- <verbena-input\n label=\"Status\"\n name=\"Status\"\n type=\"text\"\n formControlName=\"Status\"\n \n /> -->\n\n <!-- buttons -->\n\n</form>\n","export enum ConditionOptions {\n LessThan = \"LT\", \n GreaterThan = \"GT\", \n Equal = \"EQ\", \n NotEqual = \"NEQ\", \n On = \"EQ\", \n Before = \"LT\",\n After = \"GT\", \n Yes = \"EQ\", \n No = \"NEQ\" \n}"," import { Injectable } from '@angular/core';\n import { Observable } from 'rxjs';\n import { HttpWebRequestService } from '../../../services/http-web-request.service';\n import { UserManagement } from '../../../models/user-management';\n import { ErrorResponse } from '../../../models/ErrorResponse';\n import { PagedResult } from '../../../models/PagedResult';\n\n @Injectable({\n providedIn: 'root',\n })\n export class UserManagementService {\n // private readonly BASE_URL = 'https://auth.white360.net/User';\n\n constructor(private httpService: HttpWebRequestService) {}\n\n /**\n * Get users with pagination and sorting\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the list of users\n */\n async getUsers(\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<UserManagement[] | ErrorResponse> {\n // var response : User[] | ErrorResponse;\n const url = `User/GetUsers/${skip}/${limit}/${sortParam}/${sortOrder}`;\n const res = await this.httpService.get(url)\n\n if (res instanceof ErrorResponse) {\n return res;\n } else {\n return (res as PagedResult<UserManagement>).Result;\n }\n\n\n }\n\n\n\n /**\n * Get users with an additional search parameter, pagination, and sorting\n * @param param Search parameter\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the filtered list of users\n */\n async getUsersWithParam(\n param: string,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<UserManagement[]> {\n const url = `User/GetUserWithParam/${param}/${skip}/${limit}/${sortParam}/${sortOrder}`;\n return await this.httpService.get(url) as UserManagement[];\n }\n\n async getRealUsers(\n role: string | null,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ){\n let url: string;\n \n if (role) {\n // Role is provided, use the \"GetUserWithParam\" endpoint\n url = `User/GetUserWithParam/${role}/${skip}/${limit}/${sortParam}/${sortOrder}`;\n } else {\n // Role is null, use the \"GetUsers\" endpoint\n url = `User/GetUsers/${skip}/${limit}/${sortParam}/${sortOrder}`;\n }\n \n const res = await this.httpService.get(url);\n \n if (res instanceof ErrorResponse) {\n return res;\n } else {\n return (res as PagedResult<UserManagement>)\n }\n }\n \n\n /**\n * Save multiple users\n * @param users Array of users to save\n * @returns Promise containing the save operation result\n */\n saveUsers(users: UserManagement[]): Promise<any> {\n const url = `User/SaveUsers`;\n return this.httpService.post(url, users);\n }\n\n /**\n * Delete multiple users\n * @param userIds Array of user IDs to delete\n * @returns Observable containing the delete operation result\n */\n deleteUsers(userIds: string[]): Observable<any> {\n const url = `User/DeleteUsers`;\n return this.httpService.delete(`${url}?data=${userIds.join(',')}`);\n }\n }\n","import { Component, Input, ViewChild } from '@angular/core';\nimport { columns } from './user-management.columns';\n\nimport { SearchPropertySign } from '../../models/SearchPropertySign';\nimport { mockData } from './helper';\nimport { UtilService } from '../../services/util.service';\nimport { PagedResult } from '../../models/PagedResult';\nimport { baseStyle } from './base-table-style';\nimport { HttpWebRequestService } from '../../services/http-web-request.service';\nimport { UserManagement } from '../../models/user-management';\n\nimport {\n CardData,\n DataFilterType,\n IDataFilter,\n DropdownLoadEvent,\n DropdownChangeEvent,\n ColumnDefinition,\n ConditionalOptions,\n CardDataViewComponent,\n DataViewComponent,\n} from 'verben-ng-ui';\nimport { UserAccessRequestStatus } from '../../models/user-access-request-status';\nimport { ObjectState } from '../../models/object-state';\nimport { EnvironmentService } from '../../services/environment.service';\nimport { UserManagementService } from './services/user-management.service';\nimport { User } from '../../models/user';\nimport { ErrorResponse } from '../../models/ErrorResponse';\nimport { UserManagementFormComponent } from './user-management-form/use-management-form.component';\nimport { Subject, debounceTime, BehaviorSubject } from 'rxjs';\nimport { ConditionOptions } from '../../models/conditions';\nimport { ActivatedRoute } from '@angular/router';\nimport { UserAccessRequestService } from '../user-request-approval/services/user-access-request.service';\nimport { Role } from '../../models/Role';\n\n\nenum DateFilterTypes {\n Before = SearchPropertySign.LT,\n On = SearchPropertySign.EQ,\n After = SearchPropertySign.GT,\n}\n\n\ninterface TestParentObject {\n Id: string;\n Name: string;\n}\n\n\n@Component({\n selector: 'lib-user-management',\n templateUrl: './user-management.component.html',\n styleUrl: './user-management.component.css',\n})\nexport class UserManagementComponent {\n @ViewChild('vdcv') cardDataView!: CardDataViewComponent;\n @ViewChild('vdv') dataView!: DataViewComponent;\n @ViewChild(UserManagementFormComponent) childComponent!: UserManagementFormComponent;\n private currentSearchTerm: string = '';\n\n\n filteredColumns: ColumnDefinition<UserManagement>[] =columns\n skip: number = 0;\n users:UserManagement[]=[]\n searchTerm$ = new Subject<string>();\n @Input() searchDebounceTime: number = 500;\n @Input() pageSize: number = 1;\n pageState: PagedResult<UserManagement> | null = null;\n errorMessage: string = '';\n appliedFilters: boolean = false;\n isLoading: boolean = false;\n hasMore: boolean = true;\n limit: number = 20;\n sortParam: string = 'name';\n sortOrder: string = 'asc';\n Roles:Role[]=[]\n dataFit: PagedResult<UserManagement> = {\n PageSize: 1,\n Skip: 0,\n Total: 0,\n Result: [],\n LastItem: [''],\n IsLoadingResults: false\n };\n\n \n\n currentFilters: IDataFilter[] = [];\n currentSorts: IDataFilter[] = [];\n\n\n\n role: string = '';\n\n cardContextHistory: CardData[] = [];\n param: string | null | undefined;\n\n constructor(\n private route: ActivatedRoute,\n private userManagementService: UserManagementService,\n private userRole: UserAccessRequestService,\n private server: HttpWebRequestService,\n private utilService: UtilService,\n private envSvc: EnvironmentService\n ) {}\n\n async ngOnInit(): Promise<void> {\n this.selectedParent = '1';\n this.selectedOption = ['Opt 1'];\n this.selectedOptionTwo = ['1'];\n this.selectedOptionThree = '1';\n \n\n this.getRoles()\n this.route.paramMap.subscribe(params => {\n this.role = params.get('role') || ''; // Default to an empty string if no role\n this.fetchUsers();\n });\n \n\n \n }\n\n \n cardData: CardData[] = [];\n\n data: any[] = []; \n\n \n\n\n\n\n async fetchUsers(sortValue: string = 'CreatedAt', order: string = 'asc') {\n this.isLoading = true;\n this.utilService.sendBI(true);\n\n try {\n const res = await this.userManagementService.getRealUsers(this.role, this.skip,this.limit, this.sortParam, this.sortOrder)\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n // Handle error response\n console.error('Error fetching logs:', res);\n } else {\n const response = res as PagedResult<UserManagement>;\n this.dataFit = response;\n this.users = [...this.users, ...response.Result];\n this.cardData = this.formatCardData(this.users);\n this.skip += this.pageSize;\n this.hasMore = this.skip < response.Total;\n }\n } catch (error) {\n console.error('Error:', error);\n } finally {\n this.isLoading = false;\n }\n }\n\n\n async getRoles() {\n this.utilService.sendBI(true);\n \n try {\n const res = await this.userRole.getRoles();\n this.utilService.sendBI(false);\n \n if (res instanceof ErrorResponse) {\n console.error('Error fetching roles:', res);\n return undefined;\n } \n \n const response = res as PagedResult<Role>;\n this.Roles = response.Result;\n \n } catch (error) {\n console.error('Error fetching roles:', error);\n return undefined;\n }\n }\n \nhandleRoleId(value:string){\n const matchedRole = this.Roles.filter((role) => role.Name === value);\n return matchedRole[0]?.Code;\n}\n /**\n * Format users into CardData for the UI library\n * @param users Array of users to format\n * @returns Array of CardData\n */\n private formatCardData(users: User[]): CardData[] {\n return users.map(user => ({\n selected: false, // Default selection state\n title: `${user.FirstName} ${user.LastName}`, // Display user's name as title\n data: { ...user }, // Pass the entire user object\n body: [\n { title: 'Name', value: `${user.FirstName} ${user.LastName}` },\n { title: 'E-Mail Address', value: user.MailAddress },\n { title: 'Phone Number', value: user.PhoneNumber || 'N/A' },\n ],\n children: [], // Add child data if necessary\n }));\n }\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n columns = columns;\n styles = baseStyle;\n\n selectedParent?: string;\n basicOption?: string;\n selectedOption: string[] = [];\n selectedOptionTwo: string[] = [];\n selectedOptionThree?: string;\n missingObject: any;\n\n\n\n // clearLogs(sortValue: string = 'CreatedAt', order: string = 'asc') {\n // this.User = []; // Clear the logs array\n // this.skip = 0; // Reset the skip value\n // this.hasMore = true; // Reset the flag to allow fetching more logs\n // this.appliedFilters = false;\n // this.fetchUsers();\n // }\n\n\n \n\n // Grid view properties\n isGridView: boolean = true;\n currentData!: CardData;\n selectedColumnCount: number = 0;\n selectedFilterTableCount: number = 0;\n isOPen: boolean = true;\n selectedSortCount: number = 0;\n showFilter: boolean = false;\n searchTerm: string = '';\n showColumn: boolean = false;\n showSort: boolean = false;\n selectedAll: boolean = false;\n visibleColumns: IDataFilter[] = columns.map((col) => ({\n checked: false,\n name: typeof col.header === 'string' ? col.header : col.id,\n type: DataFilterType.Bool,\n }));\n\n filterArray: IDataFilter[] = [\n { name: 'FirstName', type: DataFilterType.String, checked: false },\n { name: 'LastName', type: DataFilterType.String, checked: false },\n { name: 'MailAddress', type: DataFilterType.String, checked: false },\n { name: 'Status', type: DataFilterType.String, checked: false },\n { name: 'PhoneNumber', type: DataFilterType.String, checked: false },\n { name: 'CreatedAt', type: DataFilterType.Date, checked: false },\n { name: 'Role', type: DataFilterType.String, checked: false },\n ];\n\n\n\n sortOptions: IDataFilter[] = [\n { name: 'Name', type: DataFilterType.String, checked: false },\n { name: 'MailAddress', type: DataFilterType.String, checked: false },\n { name: 'PhoneNumber', type: DataFilterType.String, checked: false },\n { name: 'CreatedAt', type: DataFilterType.Date, checked: false },\n ];\n\n testParents: TestParentObject[] = [\n { Id: '1', Name: 'Manager' },\n { Id: '2', Name: 'Administrator' },\n { Id: '3', Name: 'Jelom' },\n ];\n\n getParentLabel(context: any): string {\n console.log({ MissingObj: this.missingObject });\n return this.missingObject.Name;\n }\n\n async loadMoreParents(event: DropdownLoadEvent): Promise<TestParentObject[]> {\n console.log({ ParentLoadEvent: JSON.parse(JSON.stringify(event)) });\n return await new Promise((resolve) =>\n setTimeout(\n () =>\n resolve([\n { Id: '1', Name: 'Jimly' },\n { Id: '2', Name: 'Jecil' },\n { Id: '3', Name: 'Jelom' },\n { Id: '4', Name: 'Jemima' },\n { Id: '5', Name: 'Akintunde' },\n ]),\n 3000\n )\n );\n }\n\n\n onSave(): void {\n if (this.childComponent.form.valid) {\n // const userData: User = this.childComponent.form.value;\n // console.log('Payload:', [userData]); // Log the payload to check its structure\n \n // this.userManagementService.saveUsers([userData]).then(\n // (result) => {\n // if (result instanceof ErrorResponse) {\n // console.error('ErrorResponse from server:', result.ErrorMsg);\n // } else {\n // console.log('User saved successfully:', result);\n // }\n // },\n // (error) => {\n // console.error('Unexpected error saving user:', error);\n // }\n // );\n console.log(this.childComponent.form.value);\n \n } else {\n console.error('Form is invalid');\n }\n }\n\n onDelete(): void {\n console.log('Child form delete triggered');\n // Perform delete logic here\n }\n onDropdownChange(event: DropdownChangeEvent): void {\n // console.log({\n // 'Test Parent Value': this.selectedParent,\n // ...\n // });\n }\n\n onSelectionChange(selectedRows: UserManagement[]) {\n console.log('Selection changed:', selectedRows);\n // Handle the selection change\n }\n\n handleExport(exportedData: Partial<any>[]) {\n console.log('Exported data:', exportedData);\n this.downloadCSV(exportedData);\n }\n\n private downloadCSV(data: Partial<any>[]) {\n const headers = Object.keys(data[0]);\n const csvContent = [\n headers.join(','),\n ...data.map((row) => headers.map((header) => row[header]).join(',')),\n ].join('\\n');\n\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const link = document.createElement('a');\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', 'export.csv');\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n\n\n getCardDataByMailAddress(mailAddress: string): CardData | undefined {\n console.log('cardData array:', this.cardData);\n console.log(mailAddress);\n\n return this.cardData.find(({ data }) => data?.MailAddress === mailAddress);\n }\n\n openDetailView(mailAddress: string) {\n const cardItem = this.getCardDataByMailAddress(mailAddress);\n console.log(cardItem);\n\n if (cardItem && this.cardDataView) {\n this.dataView.toggleView();\n // First reset all selections\n this.cardData.forEach((item) => {\n item.selected = false;\n if (item.children) {\n item.children.forEach((child) => (child.selected = false));\n }\n });\n\n // Set the selected item\n cardItem.selected = true;\n this.currentData = this.cardDataView.onItemClick(cardItem);\n\n // Force change detection if needed\n // this.changeDetectorRef.detectChanges();\n }\n }\n\n\n\n\n \n\n\n\n reset() {\n this.skip = 0;\n this.pageSize = 20;\n }\n\n\n clearData() {\n this.currentData = {} as CardData;\n }\n\n \n loadMore() {\n if (this.hasMore) {\n this.fetchUsers();\n }\n }\n\n onColumnChange(event: boolean) {\n this.showColumn = event;\n }\n\n onSortChange(event: boolean) {\n this.showSort = event;\n console.log(event);\n }\n\n onColumnsUpdated(updatedColumns: IDataFilter[]) {\n this.onColumnChange(false);\n this.selectedColumnCount = updatedColumns.length;\n\n if (updatedColumns) {\n // Filter columns to include only visible ones\n this.filteredColumns = this.columns.filter((col) =>\n this.visibleColumns.find(\n (filter) => filter.name === col.header && filter.checked\n )\n );\n \n // Reorder columns based on the order in visibleColumns\n const visibleColumnOrder = this.visibleColumns\n .filter((filter) => filter.checked)\n .map((filter) => filter.name);\n \n this.columns.sort((a, b) => {\n const indexA = visibleColumnOrder.indexOf(a.header as string);\n const indexB = visibleColumnOrder.indexOf(b.header as string);\n return indexA - indexB;\n });\n }\n }\n\n async postSearch(payload: any) {\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `User/SearchUsers/0/10/CreatedAt/asc`,\n payload\n );\n\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.appliedFilters = false;\n return;\n } else {\n this.appliedFilters = true;\n const response = res as PagedResult<UserManagement>;\n this.dataFit = response;\n this.users = response.Result;\n this.cardData = this.formatCardData(this.users) ;\n }\n }\n\n\n \n onFilterApplied(appliedFilter: IDataFilter[]) {\n this.showFilter = false;\n if (Array.isArray(appliedFilter)) {\n this.selectedFilterTableCount = appliedFilter.length;\n console.log(appliedFilter);\n\n const queryParams = appliedFilter\n .filter((filter) => filter.checked)\n .map((filter) => ({\n PropertyName: filter.name,\n EntityValue: filter.name==='Role'?this.handleRoleId(filter.value):filter.value,\n Type: filter.type,\n Operator: 'And',\n Sign: this.getCondition(filter.condition),\n }));\n\n this.postSearch(queryParams);\n }\n }\n\n getCondition(value: any): ConditionOptions | undefined {\n switch (value) {\n case ConditionalOptions.On:\n return ConditionOptions.On;\n case ConditionalOptions.After:\n return ConditionOptions.After;\n case ConditionalOptions.Before:\n return ConditionOptions.Before;\n case ConditionalOptions.NotEqual:\n return ConditionOptions.NotEqual;\n default:\n return undefined; // Explicitly return undefined for invalid cases\n }\n }\n \n onSortUpdated(updatedSorts: IDataFilter[]): void {\n this.currentSorts = updatedSorts;\n \n }\n\n async onSearch(event: { key: string; value: string }) {\n this.searchTerm = event.value;\n this.reset();\n if (!this.searchTerm) {\n this.clearLogs('CreatedAt', 'asc');\n return;\n }\n\n this.isLoading = true;\n this.utilService.sendBI(true);\n\n try {\n const res = await this.server.get(\n `User/GetUserWithParam/${this.searchTerm}/${this.skip}/${this.pageSize}/CreatedAt/asc`\n );\n\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n console.error('Error during search:', res);\n this.appliedFilters = false;\n } else {\n const response = res as PagedResult<UserManagement>;\n this.dataFit = response;\n this.users = response.Result;\n this.cardData = this.formatCardData(this.users);\n\n }\n } catch (error) {\n console.error('Search error:', error);\n this.appliedFilters = false;\n } finally {\n this.isLoading = false;\n }\n }\n\n clearLogs(sortValue: string = 'CreatedAt', order: string = 'asc') {\n this.users= []; // Clear the logs array\n this.skip = 0; // Reset the skip value\n this.hasMore = true; // Reset the flag to allow fetching more logs\n this.appliedFilters = false;\n this.fetchUsers(sortValue, order);\n }\n\n\n \n\n onViewChange(isGridView: boolean): void {}\n\n onStateChange(event: { key: string; value: boolean }): void {\n console.log(`State changed for ${event.key}:`, event.value);\n if (event.key === 'create') {\n console.log('peace is a boy');\n\n \n\n // const newUser = this.newItem()\n\n // if ( newUser && this.cardDataView) {\n // this.dataView.toggleView();\n // // First reset all selections\n // this.cardData.forEach((item) => {\n // item.selected = false;\n // if (item.children) {\n // item.children.forEach((child) => (child.selected = false));\n // }\n // });\n\n // this.currentData = this.cardDataView.onItemClick(newUser);\n\n // // Force change detection if needed\n // // this.changeDetectorRef.detectChanges();\n // }\n }\n }\n}\n","<div class=\"flex flex-col gap-4 message-log-container\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n \n isToggle:true\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"0\"\n (onSearchChange)=\"onSearch($event)\"\n [searchValue]=\"searchTerm\"\n \n [searchValue]=\"searchTerm\"\n [selectedSortCount]=\"0\"\n [showFilterChild]=\"showFilter\"\n [selectedFilterTableCount]=\"0\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n [isTableView]=\"false\"\n >\n <div class=\"mt-2\" table-content>\n <lib-data-table\n [data]=\"users\"\n [columns]=\"filteredColumns\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <ng-container libColumn=\"select\">\n <ng-template #cell let-isSelected=\"isSelected\" let-toggleRowSelection=\"toggleRowSelection\">\n <input type=\"checkbox\" [checked]=\"isSelected\" (change)=\"toggleRowSelection()\" />\n </ng-template>\n <ng-template #header let-allRowsSelected=\"allRowsSelected\" let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\">\n <input type=\"checkbox\" [checked]=\"allRowsSelected()\" [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\" />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value let-deleteRow >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"openDetailView(value)\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n <ng-template #header>\n <strong>Actions</strong>\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"status\">\n <ng-template\n #cell\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-deleteRow=\"deleteRow\"\n let-value=\"value\"\n >\n <verbena-badge\n borderRadius=\"20px\"\n width=\"121px\"\n text=\"{{value}}\"\n bgColor=\"#D6F3E6\"\n textColor=\"#2DB76F\"\n pd=\"5px 15px\"\n fontSize=\"16px\"\n >\n\n\n </verbena-badge>\n </ng-template>\n </ng-container>\n\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"MailAddress\"\n border=\"5px\"\n [cardDataList]=\"cardData\"\n rbgColor=\"#f5f6f9\"\n mg=\"0px\"\n class=\"gap-1\"\n >\n <verben-left-card-data-view class=\"m-0 gap-2\" >\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"MailAddress\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\"\n [cardDataList]=\"cardData\"\n\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <verben-svg\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"vlcd.showChildren(item)\"\n [ngClass]=\"vlcd.showToggle(item) ? 'visible' : 'invisible'\"\n class=\"items-center flex cursor-pointer\"\n [icon]=\"item.isChildrenExpanded ? 'minus' : 'plus'\"\n />\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\"\n >\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex-1 flex items-end gap-y-2 gap-x-4 p-4\">\n <div class=\"flex-1 space-y-2\">\n <span\n class=\"font-semibold text-[#404040] flex-1 truncate\"\n >{{ item.title }}</span\n >\n\n <p class=\"flex items-center my-1\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Phone Number:</label\n >\n <span id=\"phone\" class=\"text-sm truncate\">{{\n item.data.PhoneNumber\n }}</span>\n </p>\n </div>\n\n <div class=\"grid gap-y-1\">\n <p class=\"grid\">\n <label\n for=\"role\"\n class=\"text-[10px] font-light text-[#404040]\"\n >Role</label\n >\n <span id=\"role\" class=\"text-sm font-medium\">{{\n item.data?.Role?.Name\n }}</span>\n </p>\n\n <lib-user-access-request-status-badge\n [status]=\"item.data.RequestStatus\"\n ></lib-user-access-request-status-badge>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <div class=\" bg-secondary-100 py-2 flex flex-col gap-20 px-2\">\n <lib-user-request-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n ></lib-user-request-form>\n <div class=\"flex justify-between bottom-8 left-0 right-0 p-3\">\n <verbena-button text=\"Delete\" bgColor=\"#999999\" textColor=\"white\"\n border=\"1px solid #999999\" (click)=\"onDelete()\"></verbena-button>\n <div class=\"flex gap-3\">\n <verbena-button (click)=\"vdv.toggleView()\" text=\"Switch To Table\"\n styleType=\"ylw-outline\"></verbena-button>\n <verbena-button text=\"Save\" bgColor=\"#FFE681\" (click)=\"onSave()\" textColor=\"#404040\"\n border=\"1px solid #FFE681\">\n <!-- (click)=\"\" -->\n </verbena-button>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"w-full\">\n <div\n [ngClass]=\"{\n 'flex gap-2 items-center': true,\n 'justify-between': true,\n 'justify-end': vdcv.hasCurrentItem()\n }\"\n >\n <verbena-button\n *ngIf=\"!vdcv.hasCurrentItem()\"\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n <div\n class=\"flex {{\n vdcv.hasCurrentItem() ? 'flex-1' : ''\n }} justify-end items-center gap-5\"\n >\n <span class=\"paginator-text\"\n >{{ cardData.length }} records loaded</span\n >\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[#3479E9] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"\n ></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n (filtersApplied)=\"onFilterApplied($event)\"\n \n ></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table\n (selectedOptions)=\"onSortUpdated($event)\"\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"400px\"\n textColor=\"black\"\n\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"\n ></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n <div *ngIf=\"!vdcv.hasCurrentItem() && this.cardContextHistory.length == 0\"\n class=\"message-log-button-container flex justify-between\">\n \n </div>\n\n <div *ngIf=\"vdv.isTableView\" class=\"w-full flex gap-2 justify-between\">\n <div class=\"message-log-button-container flex justify-between\">\n <verbena-button\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n </div>\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData.length }} records loaded</span>\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[#3479E9] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n</div>\n\n\n","\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UserManagementComponent } from './user-management.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport {\n CardDataViewModule,\n CardModule,\n DataExportModule,\n DataTableModule,\n DataViewModule,\n SortTableModule,\n SvgModule,\n TableFilterModule,\n VerbenaButtonModule,\n VerbenaInputModule,\n VisibleColumnModule,\n DropDownModule,\n\n VerbenaBadgeModule\n} from 'verben-ng-ui';\nimport { UserManagementFormComponent } from './user-management-form/use-management-form.component';\nimport { UserManagementService } from './services/user-management.service';\nimport { LibUserRequestApprovalModule } from '../user-request-approval/user-request-approval.module';\n\n@NgModule({\n declarations: [UserManagementComponent, UserManagementFormComponent],\n imports: [\n HttpClientModule,\n CommonModule,\n\n DataTableModule,\n CardModule,\n SvgModule,\n DataViewModule,\n CardDataViewModule,\n SortTableModule,\n VisibleColumnModule,\n TableFilterModule,\n DataExportModule,\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n VerbenaBadgeModule,\n DropDownModule,\n\n LibUserRequestApprovalModule\n ],\n providers: [UserManagementService],\n exports: [UserManagementComponent],\n})\nexport class LibUserManagementModule {}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'verben-auth-callback',\n templateUrl: './auth-callback.component.html',\n styleUrl: './auth-callback.component.css'\n})\nexport class AuthCallbackComponent implements OnInit {\n code: string = '';\n previousUrl: string = '';\n type: string = '';\n @Input() redirectText?:string;\n \n constructor(private router: Router,\n private route: ActivatedRoute\n ) {}\n\n ngOnInit() {\n this.getType()\n this.handleRedirect();\n }\n \n getType(){ \n const data = localStorage.getItem('type')\n if(data){ \n this.type = JSON.parse(data)\n }\n }\n handleRedirect() {\n const params = new URLSearchParams(window.location.search);\n const code = params.get('code');\n const stateParam = params.get('state');\n console.log({code:code, state:stateParam}, 'data');\n \n\n if (code && stateParam) {\n try {\n const state = JSON.parse(decodeURIComponent(stateParam));\n // const returnTo = state.returnTo || '/';\n const splitStateArray=state.returnTo.split('?');\n const returnTo = splitStateArray.length>0?splitStateArray[0]:state.returnTo;\n const queryParams: any = { code };\n if (this.type) {\n queryParams.type = this.type;\n }\n\n this.router.navigate([returnTo], { queryParams });\n // this.router.navigate([returnTo], { queryParams: { code } });\n } catch (e) {\n const msg = e\n }\n }\n }\n \n}\n","<section class=\"wrapper\"> \n <div class=\"flexWrapper\"> \n <p class=\"{{redirectText}}\">Redirecting ...</p>\n <div class=\"loader\"></div>\n </div>\n</section>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AuthCallbackComponent } from './auth-callback.component';\n\n@NgModule({\n declarations: [AuthCallbackComponent],\n imports: [CommonModule],\n exports: [AuthCallbackComponent]\n})\nexport class AuthCallbackModule {}","import { Injectable, InjectionToken, Inject, Optional } from '@angular/core';\n\nexport const AUTHORIZATION_CONFIG = new InjectionToken<AuthorizationConfig[]>(\n 'authorization_config'\n);\n\nexport interface AuthorizationConfig {\n Name: string;\n Actions: string[];\n}\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthorizationService {\n constructor(\n @Optional()\n @Inject(AUTHORIZATION_CONFIG)\n private auth: AuthorizationConfig[]\n ) {}\n\n get authorizationConfig(): AuthorizationConfig[] {\n return this.auth ? this.auth : [];\n }\n}\n","export const baseStyle: any = {\n width: '100%',\n fontFamily: '\"Fraunces\", serif',\n fontSize: '125%',\n whiteSpace: 'nowrap',\n margin: '0',\n border: '1px solid #D4A007',\n borderRadius: '16px',\n borderCollapse: 'separate',\n borderSpacing: '0',\n // tableLayout: 'fixed',\n overflow: 'hidden',\n rows: {\n even: {\n backgroundColor: '#FDFDFD',\n },\n odd: {\n backgroundColor: '#F1F4FB',\n },\n height: '68px',\n },\n cells: {\n padding: '0.5rem 1rem',\n },\n header: {\n // stickyTop: true,\n // zIndex: 2,\n backgroundColor: '#EFF2FB',\n fontWeight: 'bold',\n textAlign: 'left',\n padding: '12px 16px',\n height: '30px',\n },\n footer: {\n // stickyBottom: true,\n // zIndex: 2,\n padding: '3px',\n },\n // body: {\n // background: '#fff',\n // padding: '4px 5px',\n // textAlign: 'center',\n // },\n // firstColumn: {\n // stickyLeft: true,\n // zIndex: 1,\n // },\n lastColumn: {\n // stickyRight: true,\n // zIndex: 1,\n },\n};\n","export enum UIs {\n ProductDistribution = 'ProductDistribution',\n Terminals = 'Terminals',\n Meters = 'Meters',\n ProductInbound = 'ProductInbound',\n TerminalDocumentation = 'TerminalDocumentation',\n Laboratories = 'Laboratories',\n Surveyors = 'Surveyors',\n Products = 'Products',\n Stocks = 'Stocks',\n Tanks = 'Tanks',\n Customers = 'Customers',\n ProductAllocation = 'ProductAllocation',\n ReleaseManagement = 'ReleaseManagement',\n ProductPricing = 'ProductPricing',\n Purchases = 'Purchases',\n Agents = 'Agents',\n Banks = 'Banks',\n Vendors = 'Vendors',\n Vessels = 'Vessels',\n ExpenseList = 'ExpenseList',\n ProcurementDocumentation = 'ProcurementDocumentation',\n Journal = 'Journal',\n JournalTemplate = 'JournalTemplate',\n RecurringJournal = 'RecurringJournal',\n InterCompanyJournal = 'InterCompanyJournal',\n InterCompanyJournalTemplate = 'InterCompanyJournalTemplate',\n UserManagement = 'UserManagement',\n AccessRequest = 'AccessRequest',\n RolesAndPermissions = 'RolesAndPermissions',\n AuditTrail = 'AuditTrail',\n LogViewer = 'LogViewer',\n MessageHistory = 'MessageHistory',\n MessageConfig = 'MessageConfig',\n MessageList = 'MessageList',\n Config = 'Config',\n Reports = 'Reports',\n}\n","export enum UIActions {\n Save = 'Save',\n Edit = 'Edit',\n Delete = 'Delete',\n}\n","export enum ChildrenType {\n Permission = 'Permission',\n Action = 'Action',\n}\n","export enum SortDirection {\n Asc = 'Asc',\n Desc = 'Desc',\n None = 'None',\n}\n","import { Injectable } from '@angular/core';\nimport { ColumnDefinition } from 'verben-ng-ui';\nimport { Role } from '../../models/Role';\nimport { AuthorizationService } from '../../services/authorization.service';\nimport { MappedRole } from './MappedRole';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RoleControlService {\n constructor() {}\n\n get roleColumns(): ColumnDefinition<MappedRole>[] {\n return [\n {\n id: 'select',\n header: '',\n },\n {\n id: 'createdAt',\n header: 'CREATED',\n accessorKey: 'CreatedAt',\n },\n {\n id: 'updatedAt',\n header: 'UPDATED',\n accessorKey: 'UpdatedAt',\n },\n {\n id: 'name',\n header: 'NAME',\n accessorFn: (row: MappedRole) => {\n return row;\n },\n },\n {\n id: 'permissions',\n header: 'PERMISSIONS',\n accessorFn: (row: MappedRole) => {\n const sum = row.RoleContexts.filter((x) => x.Selected == true).length;\n return `${sum} of ${row.RoleContexts.length} Permissions`;\n },\n },\n {\n id: 'actions',\n header: 'ACTIONS',\n accessorFn: (row: MappedRole) => {\n return row;\n },\n },\n ];\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n QueryList,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { RoleControlService } from './role-control.service';\nimport {\n CardData,\n CardDataViewComponent,\n ColumnDefinition,\n DataFilterType,\n DataTableComponent,\n DataViewComponent,\n IDataFilter,\n VerbenPopUpComponent,\n} from 'verben-ng-ui';\nimport { Role } from '../../models/Role';\nimport { baseStyle } from './base-table-style';\nimport { ObjectState } from '../../models/object-state';\nimport { RoleContext } from '../../models/RoleContext';\nimport { UIs } from './UIs';\nimport { RoleAction } from '../../models/RoleAction';\nimport { UIActions } from './UIActions';\nimport { MappedRole } from './MappedRole';\nimport {\n AuthorizationConfig,\n AuthorizationService,\n} from '../../services/authorization.service';\nimport { MappedRoleContext } from './MappedRoleContext';\nimport { MappedRoleAction } from './MappedRoleAction';\nimport { ChildrenType } from './ChildrenType';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { UtilService } from '../../services/util.service';\nimport { HttpWebRequestService } from '../../services/http-web-request.service';\nimport { ErrorResponse } from '../../models/ErrorResponse';\nimport { PagedResult } from '../../models/PagedResult';\nimport { SearchPropertyValue } from '../../models/SearchPropertyValue';\nimport { SearchOperator } from '../../models/SearchOperator';\nimport { SearchPropertySign } from '../../models/SearchPropertySign';\nimport { EnvironmentService } from '../../services/environment.service';\nimport { ApplicationRoleContext } from '../../models/ApplicationRoleContext';\nimport { ApplicationRoleAction } from '../../models/ApplicationRoleAction';\nimport { SearchPropertyValueType } from '../../models/SearchPropertyValueType';\nimport { debounceTime, Subject } from 'rxjs';\nimport { SortDirection } from '../../models/SortDirection';\n\nenum DateFilterTypes {\n Before = SearchPropertySign.LT,\n On = SearchPropertySign.EQ,\n After = SearchPropertySign.GT,\n}\n\n@Component({\n selector: 'lib-role-control',\n templateUrl: './role-control.component.html',\n styleUrl: './role-control.component.css',\n})\nexport class RoleControlComponent implements OnInit {\n visibleColumnDef: ColumnDefinition<MappedRole>[] = [];\n styles = baseStyle;\n data: MappedRole[] = [];\n cardData: CardData[] = [];\n currentData: CardData | null = null;\n currentExpandedCard: CardData | null = null;\n cardContext: CardData | null = null;\n cardContextHistory: CardData[] = [];\n cardContextHistoryData: CardData[][] = [];\n @ViewChild('vdcv') cardDataView!: CardDataViewComponent;\n @ViewChild('vdv') dataView!: DataViewComponent;\n @ViewChildren('popup') popUps!: QueryList<VerbenPopUpComponent>;\n @ViewChild('dt') tableView!: DataTableComponent<MappedRole>;\n @Input() isGlobal: boolean = true;\n @Input() serviceName: string | null = null;\n @Input() application: string | null = null;\n @Input() pageSize: number = 10;\n @Input() searchDebounceTime: number = 500;\n pageState: PagedResult<Role> | null = null;\n sourceData: AuthorizationConfig[] = [];\n isOpen: boolean = false;\n openDropdownId: string | null = null;\n currentFilters: IDataFilter[] = [];\n currentSorts: IDataFilter[] = [];\n searchTerm$ = new Subject<string>();\n\n visibleColumns: IDataFilter[] = [];\n\n filterArray: IDataFilter[] = [\n {\n name: 'CreatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n {\n name: 'UpdatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n ];\n\n sortOptions: IDataFilter[] = [\n {\n name: 'CreatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n {\n name: 'UpdatedAt',\n type: DataFilterType.Date,\n checked: false,\n },\n ];\n\n // private _searchItem: string = '';\n // get searchItem(): string {\n // return this._searchItem\n // }\n // set searchItem(value: string) {\n // this._searchItem = value;\n // this.searchTerm$.next(value);\n // }\n\n // form: FormGroup;\n childPermissionRef: ChildrenType = ChildrenType.Permission;\n\n roleContextsStore: ApplicationRoleContext[] = [];\n roleActionsStore: ApplicationRoleAction[] = [];\n private currentSearchTerm: string = '';\n\n constructor(\n private authService: AuthorizationService,\n private roleControlSvc: RoleControlService,\n private utilService: UtilService,\n private server: HttpWebRequestService,\n private cdr: ChangeDetectorRef,\n private fb: FormBuilder,\n private envSvc: EnvironmentService\n ) {\n this.visibleColumnDef = roleControlSvc.roleColumns;\n this.visibleColumns = roleControlSvc.roleColumns.map((col) => ({\n checked: true,\n name: typeof col.header === 'string' ? col.header : col.id,\n type: DataFilterType.Bool,\n }));\n // this.form = this.fb.group({\n // Name: new FormControl<string | null>(null, Validators.required),\n // });\n }\n\n async ngOnInit(): Promise<void> {\n const mockData = this.getMockRoles();\n const roles = await this.getAllRoles();\n if (this.isGlobal) {\n const contextsRes = await this.getSavedContexts();\n if (contextsRes) {\n this.roleContextsStore = contextsRes;\n this.roleActionsStore = contextsRes.flatMap((x) => x.RoleActions);\n const authConfig: AuthorizationConfig[] = contextsRes.map((x) => {\n return {\n Name: x.Name,\n Actions: x.RoleActions.map((y) => {\n return y.Name;\n }),\n };\n });\n this.sourceData = authConfig;\n }\n } else {\n this.sourceData = this.authService.authorizationConfig;\n }\n if (roles) {\n this.setUpMappedData(roles);\n this.setUpCardData();\n }\n this.searchTerm$\n .pipe(debounceTime(this.searchDebounceTime)) // Adjust debounce time here (in ms)\n .subscribe(async (searchTerm) => {\n this.currentSearchTerm = searchTerm;\n this.updateFiltersAndSorts(true);\n });\n }\n\n async getSavedContexts(): Promise<ApplicationRoleContext[] | undefined> {\n if (!this.isGlobal || !this.serviceName) {\n return undefined;\n }\n var payload: SearchPropertyValue[] = [\n {\n PropertyName: 'ServiceName',\n EntityValue: this.serviceName,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n {\n PropertyName: 'APIKey',\n EntityValue: this.envSvc.environment.APIKey,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n ];\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `Application/SearchApplicationRoleContexts/0/0`,\n payload\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return undefined;\n } else {\n var result = (res as PagedResult<ApplicationRoleContext>).Result;\n return result;\n }\n }\n async getAllRoles(): Promise<Role[] | undefined> {\n // var payload: SearchPropertyValue[] = [\n // {\n // PropertyName: 'APIKey',\n // EntityValue: this.envSvc.environment.APIKey,\n // Operator: SearchOperator.And,\n // Sign: SearchPropertySign.EQ\n // }\n // ]\n this.utilService.sendBI(true);\n const res = await this.server.get(`Role/GetRoles/0/${this.pageSize}`);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return undefined;\n } else {\n this.pageState = res as PagedResult<Role>;\n var result = (res as PagedResult<Role>).Result;\n return result;\n }\n }\n\n async loadMore() {\n if (!this.pageState) {\n return;\n }\n this.utilService.sendBI(true);\n const res =\n this.currentFilters.length > 0 ||\n this.currentSorts.length > 0 ||\n this.currentSearchTerm.trim().length > 0\n ? await this.loadMoreFiltersAndSorts()\n : await this.server.get(\n `Role/GetRoles/${this.pageState.Skip}/${this.pageSize}`\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return;\n } else {\n this.pageState = res as PagedResult<Role>;\n var result = (res as PagedResult<Role>).Result;\n const data = this.setUpMappedDataExtra(result);\n this.data = this.data.concat(data);\n this.setUpCardDataExtra(data);\n }\n }\n\n getApplicationContextCode(name: string): string {\n const item = this.roleContextsStore.find((x) => x.Name == name);\n return item ? item.Code : '';\n }\n getApplicationActionCode(name: string): string {\n const item = this.roleActionsStore.find((x) => x.Name == name);\n return item ? item.Code : '';\n }\n\n findParent(cardData: CardData[], target: CardData): CardData | null {\n for (const item of cardData) {\n if (item.children.includes(target)) {\n return item; // Immediate parent found\n }\n const parent = this.findParent(item.children, target);\n if (parent) {\n return parent;\n }\n }\n return null; // Not found\n }\n\n isCheckboxDisabled(item: CardData): boolean {\n const parent =\n this.cardContextHistoryData.length > 0\n ? this.findParent(this.cardContextHistoryData[0], item)\n : this.findParent(this.cardData, item);\n if (\n parent &&\n parent.data.ChildrenType &&\n parent.data.ChildrenType == ChildrenType.Action &&\n parent.data.Selected == false\n ) {\n return true;\n }\n return false;\n }\n\n setUpMappedData(data: Role[]) {\n this.data = data.map((x) => {\n return {\n ...x,\n id: x.Id,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = x.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? x.RoleContexts[existingId].RoleActions.findIndex(\n (c) => c.Name == action\n )\n : -1;\n\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: x.Code,\n Context: '',\n id:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction].id\n : '',\n Id:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction].Id\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: x.TenantId,\n Code:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .Code\n : '',\n ServiceName:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: x.Code,\n id: existingId > -1 ? x.RoleContexts[existingId].id : '',\n Id: existingId > -1 ? x.RoleContexts[existingId].Id : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: x.TenantId,\n Code: existingId > -1 ? x.RoleContexts[existingId].Code : '',\n ServiceName:\n existingId > -1 ? x.RoleContexts[existingId].ServiceName : '',\n APIKey:\n existingId > -1\n ? x.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(config.Name),\n };\n\n return context;\n }),\n };\n });\n }\n setUpMappedDataExtra(data: Role[]): MappedRole[] {\n return data.map((x) => {\n return {\n ...x,\n id: x.Id,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = x.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? x.RoleContexts[existingId].RoleActions.findIndex(\n (c) => c.Name == action\n )\n : -1;\n\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: x.Code,\n Context: '',\n id:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction].id\n : '',\n Id:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction].Id\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: x.TenantId,\n Code:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .Code\n : '',\n ServiceName:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? x.RoleContexts[existingId].RoleActions[existingAction]\n .APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: x.Code,\n id: existingId > -1 ? x.RoleContexts[existingId].id : '',\n Id: existingId > -1 ? x.RoleContexts[existingId].Id : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: x.TenantId,\n Code: existingId > -1 ? x.RoleContexts[existingId].Code : '',\n ServiceName:\n existingId > -1 ? x.RoleContexts[existingId].ServiceName : '',\n APIKey:\n existingId > -1\n ? x.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(config.Name),\n };\n\n return context;\n }),\n };\n });\n }\n\n setUpCardData() {\n const cardData: CardData[] = this.data.map((x) => {\n return {\n selected: false,\n title: x.Name,\n data: x,\n body: [],\n children: x.RoleContexts.map((c) => {\n return {\n selected: false,\n title: this.getFormattedName(c.Name),\n data: c,\n body: [],\n children: c.RoleActions.map((a) => {\n return {\n selected: false,\n title: this.getFormattedName(a.Name),\n data: a,\n body: [],\n children: [],\n };\n }),\n };\n }),\n };\n });\n this.cardData = cardData;\n }\n setUpCardDataExtra(baseData: MappedRole[]) {\n const cardData: CardData[] = baseData.map((x) => {\n return {\n selected: false,\n title: x.Name,\n data: x,\n body: [],\n children: x.RoleContexts.map((c) => {\n return {\n selected: false,\n title: this.getFormattedName(c.Name),\n data: c,\n body: [],\n children: c.RoleActions.map((a) => {\n return {\n selected: false,\n title: this.getFormattedName(a.Name),\n data: a,\n body: [],\n children: [],\n };\n }),\n };\n }),\n };\n });\n this.cardData = this.cardData.concat(cardData);\n }\n\n getFormattedName(name: string): string {\n // Split the key on capital letters, handling \"And\" as lowercase\n const words = name\n .split(/(?=[A-Z])/)\n .map((word) => (word === 'And' ? 'and' : word));\n // Join the words with spaces\n return words.join(' ');\n }\n\n viewDetailsFromTable(data: MappedRole) {\n const cardData = this.cardData.find((x) => x.data == data);\n if (cardData) {\n this.viewDetails(cardData);\n }\n this.closePopUp();\n }\n\n viewDetails(context: CardData) {\n this.cardContextHistory.push(context);\n this.cardContextHistoryData.push(this.cardData);\n this.cardData = context.children;\n this.cardDataView.clearData();\n }\n viewDetailsChild(context: CardData) {\n if (this.currentExpandedCard) {\n this.cardContextHistory.push(this.currentExpandedCard);\n this.cardContextHistory.push(context);\n this.cardContextHistoryData.push(this.cardData);\n this.cardContextHistoryData.push(this.currentExpandedCard.children);\n this.cardData = context.children;\n this.cardDataView.clearData();\n }\n }\n\n roleCardClicked(item: CardData) {\n this.currentData = this.cardDataView.onItemClick(item);\n // if (this.currentData) {\n // this.form.controls['Name'].setValue(this.currentData.data?.Name);\n // }\n }\n\n toggleChildren(item: CardData) {\n var currToggleState = item.isChildrenExpanded;\n this.cardData.forEach((_) => {\n _.isChildrenExpanded = false;\n });\n item.isChildrenExpanded = !currToggleState;\n if (item.isChildrenExpanded) {\n this.currentExpandedCard = item;\n } else {\n this.currentExpandedCard = null;\n }\n }\n\n goToTableView() {\n if (!this.currentData) {\n return;\n }\n this.dataView.toggleView();\n const id = this.currentData.data ? this.currentData.data.Id : '';\n if (id.trim().length > 0 && !this.tableView.isRowEditing(id)) {\n this.tableView.toggleRowEdit(id);\n }\n }\n closeDetails() {\n this.cardData =\n this.cardContextHistoryData[this.cardContextHistoryData.length - 1];\n this.cardContextHistoryData.pop();\n this.cardContextHistory.pop();\n setTimeout(() => {\n if (this.dataView.isTableView) {\n this.dataView.toggleView();\n }\n }, 200);\n }\n\n getCardSubCaption(item: CardData) {\n const selected = item.children.filter((x) => x.data.Selected).length;\n const total = item.children.length;\n return `${selected} of ${total} ${\n total > 1 ? item.data.ChildrenType + 's' : item.data.ChildrenType\n }`;\n }\n\n getUpdatedRole(role: MappedRole): Role {\n const newRole = role;\n newRole.RoleContexts = role.RoleContexts.filter((x) => x.Selected).map(\n (y) => {\n y.RoleActions = y.RoleActions.filter((z) => z.Selected);\n return y;\n }\n );\n newRole.DataState =\n newRole.DataState == ObjectState.New\n ? ObjectState.New\n : ObjectState.Changed;\n newRole.Id = newRole.DataState == ObjectState.New ? '' : newRole.Id;\n return newRole as Role;\n }\n async saveRole() {\n if (this.currentData) {\n var role: MappedRole = this.currentData.data as MappedRole;\n // role.Name = this.form.controls['Name'].value;\n if (this.currentData.data.Name.trim().length == 0) {\n this.utilService.showInfo('Role name cannot be empty');\n return;\n }\n const mappedRole = this.getUpdatedRole(JSON.parse(JSON.stringify(role)));\n this.utilService.sendBI(true);\n const res = await this.server.post(`Role/SaveRoles`, [mappedRole]);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n } else {\n this.utilService.showSuccess('Role saved successfully');\n const result = res as Role[];\n if (result.length > 0) {\n var roleResult = result[0];\n var mappedRoleSave: MappedRole = {\n ...roleResult,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = roleResult.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? roleResult.RoleContexts[\n existingId\n ].RoleActions.findIndex((c) => c.Name == action)\n : -1;\n\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: roleResult.Code,\n Context: '',\n id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].id\n : '',\n Id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Id\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n ServiceName:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction:\n this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: roleResult.Code,\n id:\n existingId > -1 ? roleResult.RoleContexts[existingId].id : '',\n Id:\n existingId > -1 ? roleResult.RoleContexts[existingId].Id : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingId > -1\n ? roleResult.RoleContexts[existingId].Code\n : '',\n ServiceName:\n existingId > -1\n ? roleResult.RoleContexts[existingId].ServiceName\n : '',\n APIKey:\n existingId > -1\n ? roleResult.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(\n config.Name\n ),\n };\n\n return context;\n }),\n };\n\n const itemIndex = this.data.findIndex(\n (x) => x == this.currentData?.data\n );\n if (itemIndex > -1) {\n this.data[itemIndex].Code = mappedRoleSave.Code;\n this.data[itemIndex].Id = mappedRoleSave.Id;\n this.data[itemIndex].DataState = mappedRoleSave.DataState;\n this.data[itemIndex].TenantId = mappedRoleSave.TenantId;\n this.data[itemIndex].ServiceName = mappedRoleSave.ServiceName;\n mappedRoleSave.RoleContexts.forEach((x, i) => {\n this.data[itemIndex].RoleContexts[i].Role = mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].Code = x.Code;\n this.data[itemIndex].RoleContexts[i].ServiceName = x.ServiceName;\n x.RoleActions.forEach((y, j) => {\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Role =\n mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Code =\n y.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[\n j\n ].ServiceName = y.ServiceName;\n });\n });\n this.data = this.data.map((x) => x);\n // this.currentData = {\n // selected: true,\n // title: mappedRoleSave.Name,\n // data: mappedRoleSave,\n // isChildrenExpanded: this.currentData.isChildrenExpanded,\n // body: [],\n // children: mappedRoleSave.RoleContexts.map((c) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(c.Name),\n // data: c,\n // body: [],\n // children: c.RoleActions.map((a) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(a.Name),\n // data: a,\n // body: [],\n // children: [],\n // };\n // }),\n // };\n // }),\n // };\n }\n }\n }\n }\n }\n async tableSaveRole(role: MappedRole, callBack: () => any) {\n if (role.Name.trim().length == 0) {\n this.utilService.showInfo('Role name cannot be empty');\n return;\n }\n const mappedRole = this.getUpdatedRole(JSON.parse(JSON.stringify(role)));\n this.utilService.sendBI(true);\n const res = await this.server.post(`Role/SaveRoles`, [mappedRole]);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n } else {\n this.utilService.showSuccess('Role saved successfully');\n const result = res as Role[];\n if (result.length > 0) {\n var roleResult = result[0];\n var mappedRoleSave: MappedRole = {\n ...roleResult,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = roleResult.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? roleResult.RoleContexts[existingId].RoleActions.findIndex(\n (c) => c.Name == action\n )\n : -1;\n\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: roleResult.Code,\n Context: '',\n id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].id\n : '',\n Id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Id\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n ServiceName:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: roleResult.Code,\n id: existingId > -1 ? roleResult.RoleContexts[existingId].id : '',\n Id: existingId > -1 ? roleResult.RoleContexts[existingId].Id : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n ServiceName:\n existingId > -1\n ? roleResult.RoleContexts[existingId].ServiceName\n : '',\n APIKey:\n existingId > -1\n ? roleResult.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(\n config.Name\n ),\n };\n\n return context;\n }),\n };\n\n const itemIndex = this.data.findIndex(\n (x) => x == this.currentData?.data\n );\n if (itemIndex > -1) {\n this.data[itemIndex].Code = mappedRoleSave.Code;\n this.data[itemIndex].Id = mappedRoleSave.Id;\n this.data[itemIndex].DataState = mappedRoleSave.DataState;\n this.data[itemIndex].TenantId = mappedRoleSave.TenantId;\n this.data[itemIndex].ServiceName = mappedRoleSave.ServiceName;\n mappedRoleSave.RoleContexts.forEach((x, i) => {\n this.data[itemIndex].RoleContexts[i].Role = mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].Code = x.Code;\n this.data[itemIndex].RoleContexts[i].ServiceName = x.ServiceName;\n x.RoleActions.forEach((y, j) => {\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Role =\n mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Code = y.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].ServiceName =\n y.ServiceName;\n });\n });\n this.data = this.data.map((x) => x);\n }\n callBack();\n }\n }\n }\n\n async saveRoleDynamic(item: CardData) {\n if (this.isCheckboxDisabled(item)) {\n this.utilService.showInfo('Parent UI not selected');\n return;\n }\n\n var role: CardData | null =\n this.cardContextHistory.length > 0\n ? this.cardContextHistory[0]\n : this.currentExpandedCard\n ? this.currentExpandedCard\n : null;\n var cardDataRef: CardData[] | null =\n this.cardContextHistoryData.length > 0\n ? this.cardContextHistoryData[0]\n : this.currentExpandedCard\n ? this.cardData\n : null;\n // const isExpandedCard: boolean =\n // this.cardContextHistory.length > 0\n // ? false\n // : this.currentExpandedCard\n // ? true\n // : false;\n if (!role) {\n return;\n }\n if (role.data.Name.trim().length == 0) {\n item.data.Selected = false;\n this.utilService.showInfo('Role name cannot be empty');\n return;\n }\n item.data.Selected = !item.data.Selected;\n const mappedRole = this.getUpdatedRole(\n JSON.parse(JSON.stringify(role.data))\n );\n this.utilService.sendBI(true);\n const res = await this.server.post(`Role/SaveRoles`, [mappedRole]);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n item.data.Selected = false;\n } else {\n this.utilService.showSuccess('Role saved successfully');\n const result = res as Role[];\n if (result.length > 0) {\n var roleResult = result[0];\n var mappedRoleSave: MappedRole = {\n ...roleResult,\n ChildrenType: ChildrenType.Permission,\n RoleContexts: this.sourceData.map((config) => {\n const existingId = roleResult.RoleContexts.findIndex(\n (y) => y.Name == config.Name\n );\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: existingId > -1 ? true : false,\n RoleActions: config.Actions.map((action) => {\n const existingAction =\n existingId > -1\n ? roleResult.RoleContexts[existingId].RoleActions.findIndex(\n (c) => c.Name == action\n )\n : -1;\n var act: MappedRoleAction = {\n Selected: existingAction > -1 ? true : false,\n Name: action,\n Role: roleResult.Code,\n Context: '',\n id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].id\n : '',\n Id:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Id\n : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].Code\n : '',\n ServiceName:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].ServiceName\n : '',\n APIKey:\n existingAction > -1\n ? roleResult.RoleContexts[existingId].RoleActions[\n existingAction\n ].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: roleResult.Code,\n id: existingId > -1 ? roleResult.RoleContexts[existingId].id : '',\n Id: existingId > -1 ? roleResult.RoleContexts[existingId].Id : '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: roleResult.TenantId,\n Code:\n existingId > -1 ? roleResult.RoleContexts[existingId].Code : '',\n ServiceName:\n existingId > -1\n ? roleResult.RoleContexts[existingId].ServiceName\n : '',\n APIKey:\n existingId > -1\n ? roleResult.RoleContexts[existingId].APIKey\n : this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(\n config.Name\n ),\n };\n return context;\n }),\n };\n const itemIndex = cardDataRef\n ? cardDataRef.findIndex((x) => x.data == role?.data)\n : -1;\n if (itemIndex > -1) {\n this.data[itemIndex].Code = mappedRoleSave.Code;\n this.data[itemIndex].Id = mappedRoleSave.Id;\n this.data[itemIndex].DataState = mappedRoleSave.DataState;\n this.data[itemIndex].TenantId = mappedRoleSave.TenantId;\n this.data[itemIndex].ServiceName = mappedRoleSave.ServiceName;\n mappedRoleSave.RoleContexts.forEach((x, i) => {\n this.data[itemIndex].RoleContexts[i].Role = mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].Code = x.Code;\n this.data[itemIndex].RoleContexts[i].ServiceName = x.ServiceName;\n x.RoleActions.forEach((y, j) => {\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Role =\n mappedRoleSave.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].Code = y.Code;\n this.data[itemIndex].RoleContexts[i].RoleActions[j].ServiceName =\n y.ServiceName;\n });\n });\n // this.data[itemIndex].RoleContexts = mappedRoleSave.RoleContexts;\n\n this.data = this.data.map((x) => x);\n // if (cardDataRef) {\n // console.log({\n // XDataIsHere: JSON.parse(JSON.stringify(cardDataRef)),\n // });\n // cardDataRef[itemIndex] = {\n // selected: cardDataRef[itemIndex].selected,\n // isChildrenExpanded: cardDataRef[itemIndex].isChildrenExpanded,\n // title: mappedRoleSave.Name,\n // data: mappedRoleSave,\n // body: [],\n // children: mappedRoleSave.RoleContexts.map((c) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(c.Name),\n // data: c,\n // body: [],\n // children: c.RoleActions.map((a) => {\n // return {\n // selected: false,\n // title: this.getFormattedName(a.Name),\n // data: a,\n // body: [],\n // children: [],\n // };\n // }),\n // };\n // }),\n // };\n // }\n }\n }\n }\n }\n\n saveDataAll() {\n const roles: Role[] = this.data.map((x) => {\n return {\n ...x,\n RoleContexts: x.RoleContexts.filter((y) => y.Selected).map((z) => {\n return {\n ...z,\n RoleActions: z.RoleActions.filter(\n (a) => a.Selected\n ) as RoleAction[],\n };\n }) as RoleContext[],\n };\n });\n }\n\n updateTable() {\n this.data = this.data.map((x) => x);\n }\n\n onViewChange(isGridView: boolean): void {}\n onStateChange(event: { key: string; value: boolean }): void {\n switch (event.key) {\n case 'create':\n var newMappedRole: MappedRole = {\n RoleContexts: this.sourceData.map((config) => {\n var context: MappedRoleContext = {\n ChildrenType: ChildrenType.Action,\n Selected: false,\n RoleActions: config.Actions.map((action) => {\n var act: MappedRoleAction = {\n Selected: false,\n Name: action,\n Role: '',\n Context: '',\n id: '',\n Id: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n ServiceName: '',\n APIKey: this.envSvc.environment.APIKey,\n ApplicationRoleAction: this.getApplicationActionCode(action),\n };\n return act;\n }),\n Name: config.Name,\n Role: '',\n id: '',\n Id: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n ServiceName: '',\n APIKey: this.envSvc.environment.APIKey,\n ApplicationRoleContext: this.getApplicationContextCode(\n config.Name\n ),\n };\n\n return context;\n }),\n ChildrenType: ChildrenType.Permission,\n Name: '',\n id: (this.cardData.length + 1).toString(),\n Id: (this.cardData.length + 1).toString(),\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: '',\n Code: '',\n ServiceName: '',\n Application: this.application ? this.application : undefined,\n APIKey: this.envSvc.environment.APIKey,\n };\n const cardData: CardData = {\n selected: false,\n title: newMappedRole.Name,\n data: newMappedRole,\n body: [],\n children: newMappedRole.RoleContexts.map((c) => {\n return {\n selected: false,\n title: this.getFormattedName(c.Name),\n data: c,\n body: [],\n children: c.RoleActions.map((a) => {\n return {\n selected: false,\n title: this.getFormattedName(a.Name),\n data: a,\n body: [],\n children: [],\n };\n }),\n };\n }),\n };\n this.data = this.data.concat([newMappedRole]);\n this.cardData.push(cardData);\n this.roleCardClicked(cardData);\n this.dataView.isTableView = false;\n break;\n default:\n break;\n }\n }\n\n showTableView: boolean = false;\n onSelectionChange(selectedRows: Role[]) {}\n retryMessage() {}\n onColumnsUpdated(updatedColumns: IDataFilter[]) {\n const updatedColumnDef: ColumnDefinition<MappedRole>[] = [];\n updatedColumns.forEach((col) => {\n const matchingCol = this.roleControlSvc.roleColumns.find(\n (column) => column.header === col.name || column.id === col.name\n );\n if (matchingCol) {\n updatedColumnDef.push(matchingCol);\n }\n });\n\n this.visibleColumnDef = [...updatedColumnDef];\n }\n\n async updateFiltersAndSorts(isSearch: boolean = false) {\n if (!isSearch) {\n this.dataView.onClearSearch();\n this.currentSearchTerm = '';\n this.cdr.detectChanges();\n const clickEvent = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n });\n document.dispatchEvent(clickEvent);\n }\n var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n return {\n PropertyName: x.name,\n EntityValue: x.value,\n Operator: SearchOperator.And,\n Sign:\n x.condition && Object.keys(DateFilterTypes).includes(x.condition)\n ? (DateFilterTypes[\n x.condition as keyof typeof DateFilterTypes\n ] as unknown as SearchPropertySign)\n : SearchPropertySign.EQ,\n Type: SearchPropertyValueType.Date,\n };\n });\n payload.push({\n PropertyName: 'APIKey',\n EntityValue: this.envSvc.environment.APIKey,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n for (let sort of this.currentSorts) {\n payload.push({\n PropertyName: sort.name,\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort:\n sort.value.toLowerCase() == SortDirection.Asc.toLowerCase()\n ? SortDirection.Asc\n : sort.value.toLowerCase() == SortDirection.Desc.toLowerCase()\n ? SortDirection.Desc\n : SortDirection.None,\n });\n }\n const searchTermExists = this.currentSearchTerm.trim().length > 0;\n this.utilService.sendBI(true);\n const res = searchTermExists\n ? await this.server.get(\n `Role/GetRolesWithParam/${this.currentSearchTerm.trim()}/0/${\n this.pageSize\n }`\n )\n : await this.server.post(`Role/SearchRoles/0/${this.pageSize}`, payload);\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n this.currentFilters = [];\n this.currentSorts = [];\n return undefined;\n } else {\n this.pageState = res as PagedResult<Role>;\n var result = (res as PagedResult<Role>).Result;\n this.setUpMappedData(result);\n this.setUpCardData();\n }\n }\n async loadMoreFiltersAndSorts(): Promise<PagedResult<Role> | undefined> {\n if (!this.pageState) {\n return;\n }\n var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n return {\n PropertyName: x.name,\n EntityValue: x.value,\n Operator: SearchOperator.And,\n Sign:\n x.condition && Object.keys(DateFilterTypes).includes(x.condition)\n ? (DateFilterTypes[\n x.condition as keyof typeof DateFilterTypes\n ] as unknown as SearchPropertySign)\n : SearchPropertySign.EQ,\n Type: SearchPropertyValueType.Date,\n };\n });\n payload.push({\n PropertyName: 'APIKey',\n EntityValue: this.envSvc.environment.APIKey,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n });\n for (let sort of this.currentSorts) {\n payload.push({\n PropertyName: sort.name,\n EntityValue: '',\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n Sort:\n sort.value.toLowerCase() == SortDirection.Asc.toLowerCase()\n ? SortDirection.Asc\n : sort.value.toLowerCase() == SortDirection.Desc.toLowerCase()\n ? SortDirection.Desc\n : SortDirection.None,\n });\n }\n const searchTermExists = this.currentSearchTerm.trim().length > 0;\n this.utilService.sendBI(true);\n const res = searchTermExists\n ? await this.server.get(\n `Role/GetRolesWithParam/${this.currentSearchTerm.trim()}/${\n this.pageState.Skip\n }/${this.pageSize}`\n )\n : await this.server.post(\n `Role/SearchRoles/${this.pageState.Skip}/${this.pageSize}`,\n payload\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return undefined;\n } else {\n var result = res as PagedResult<Role>;\n return result;\n }\n }\n onFilterUpdated(updatedFilters: IDataFilter[] | string) {\n // Ensure updatedFilters is an array\n if (Array.isArray(updatedFilters)) {\n this.currentFilters = updatedFilters;\n this.updateFiltersAndSorts();\n }\n }\n onSortUpdated(updatedSorts: IDataFilter[]) {\n this.currentSorts = updatedSorts;\n console.log({ CurrSorts: this.currentSorts });\n this.updateFiltersAndSorts();\n }\n\n handleSearch(event: { key: string; value: string }) {\n this.searchTerm$.next(event.value);\n }\n\n handleExport(exportedData: Partial<any>[]) {\n // console.log('Exported data:', exportedData);\n this.downloadCSV(exportedData);\n }\n private downloadCSV(data: Partial<any>[]) {\n const headers = Object.keys(data[0]);\n const csvContent = [\n headers.join(','),\n ...data.map((row) => headers.map((header) => row[header]).join(',')),\n ].join('\\n');\n\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const link = document.createElement('a');\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', 'export.csv');\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n\n getMockRoles(): Role[] {\n return new Array(10).fill(1).map((id, i) => ({\n Id: id + i,\n id: (id + i).toString(),\n Name: this.mockNames[i] || '',\n RoleContexts: this.randomContexts(),\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: `Tenant${id + i}`,\n Code: '',\n ServiceName: '',\n APIKey: '',\n }));\n }\n\n mockNames: string[] = [\n 'Admin',\n 'Super Admin',\n 'Manager',\n 'Intern',\n 'Production Manager',\n 'CEO',\n 'CTO',\n 'COO',\n 'Developer',\n 'Engineer',\n ];\n\n randomName(): string {\n const randomIndex = Math.floor(Math.random() * this.mockNames.length);\n return this.mockNames[randomIndex];\n }\n\n randomContexts(): RoleContext[] {\n const randomNumber = Math.floor(\n Math.random() * Object.keys(UIs).length + 1\n );\n var returnArray: RoleContext[] = [];\n const usedList: number[] = [];\n for (let i = 0; i < randomNumber; i++) {\n let randomIndex;\n do {\n randomIndex = Math.floor(Math.random() * Object.keys(UIs).length);\n } while (usedList.includes(randomIndex));\n\n returnArray.push({\n Id: 'context' + i,\n id: ('context' + i).toString(),\n Name: Object.keys(UIs)[randomIndex],\n Role: '',\n RoleActions: this.randomActions(),\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: `Tenant${'context' + i}`,\n Code: '',\n ServiceName: '',\n APIKey: '',\n ApplicationRoleContext: '',\n });\n usedList.push(randomIndex);\n }\n return returnArray;\n }\n\n randomActions(): RoleAction[] {\n const randomNumber = Math.floor(\n Math.random() * Object.keys(UIActions).length + 1\n );\n var returnArray: RoleAction[] = [];\n const usedList: number[] = [];\n for (let i = 0; i < randomNumber; i++) {\n let randomIndex;\n do {\n randomIndex = Math.floor(Math.random() * Object.keys(UIActions).length);\n } while (usedList.includes(randomIndex));\n\n returnArray.push({\n Id: 'action' + i,\n id: ('action' + i).toString(),\n Name: Object.keys(UIActions)[randomIndex],\n Role: '',\n Context: '',\n CreatedAt: new Date(),\n UpdatedAt: new Date(),\n DataState: ObjectState.New,\n TenantId: `Tenant${'action' + i}`,\n Code: '',\n ServiceName: '',\n APIKey: '',\n ApplicationRoleAction: '',\n });\n usedList.push(randomIndex);\n }\n return returnArray;\n }\n\n closePopUp() {\n this.openDropdownId = null;\n this.popUps.forEach((popUp) => {\n if (popUp.dropdownOpen) {\n popUp.toggleDropdown();\n }\n });\n }\n\n updateItem(value: any, key: string): any {\n return {\n [key]: value,\n };\n }\n\n editValue(value: MappedRole) {\n const card = this.cardData.find((x) => x.data.Id == value.Id);\n if (card && this.cardDataView) {\n this.dataView.toggleView();\n card.selected = true;\n this.currentData = this.cardDataView.onItemClick(card);\n this.closePopUp();\n // if (this.currentData) {\n // this.form.controls['Name'].setValue(this.currentData.data?.Name);\n // }\n }\n }\n}\n","<div #messageLog class=\"flex flex-col gap-4 message-log-container\">\n <div *ngIf=\"this.cardContextHistory.length > 0\"\n class=\"context-banner py-3 px-4 rounded-xl flex item-center justify-space-between gap-3\">\n <div class=\"flex gap-2 flex-1 context-banner-content\">\n <div class=\"context-content items-center flex gap-2\" *ngFor=\"let context of this.cardContextHistory; index as i\">\n <div class=\"context-main-content-container flex gap-4\">\n <span class=\"context-caption font-bold text-[#404040]\">{{context.data.ChildrenType &&\n context.data.ChildrenType == childPermissionRef? context.data.Name: context.title}}</span>\n <span *ngIf=\"i == this.cardContextHistory.length -1\"\n class=\"context-subcaption\">{{this.getCardSubCaption(context)}}</span>\n </div>\n <div *ngIf=\"i < this.cardContextHistory.length -1\">/</div>\n </div>\n </div>\n <div class=\"flex justify-end\">\n <verben-svg (click)=\"closeDetails()\" class=\"cursor-pointer\" icon=\"close-circle-full\" [width]=\"20\"\n [height]=\"20\"></verben-svg>\n </div>\n </div>\n <verben-data-view #vdv [viewState]=\"{\n isSearch: this.cardContextHistory.length == 0,\n isColumn: this.cardContextHistory.length == 0,\n isFilter: this.cardContextHistory.length == 0,\n isSort: this.cardContextHistory.length == 0,\n isExport: this.cardContextHistory.length == 0,\n isSelect: this.cardContextHistory.length == 0,\n isCreate: this.cardContextHistory.length == 0,\n isToggle:this.cardContextHistory.length == 0,\n }\" [buttonClass]=\"'my-custom-button-class'\" [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\" [isTableView]=\"this.cardContextHistory.length == 0\"\n [selectedColumnCount]=\"0\" [selectedSortCount]=\"0\" [selectedFilterTableCount]=\"0\" (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\" (onSearchChange)=\"handleSearch($event)\">\n <div class=\"mt-2\" table-content>\n <lib-data-table #dt [data]=\"data\" [columns]=\"visibleColumnDef\" [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\">\n <ng-container libColumn=\"select\">\n <ng-template #cell let-isSelected=\"isSelected\" let-toggleRowSelection=\"toggleRowSelection\">\n <input type=\"checkbox\" [checked]=\"isSelected\" (change)=\"toggleRowSelection()\" />\n </ng-template>\n <ng-template #header let-allRowsSelected=\"allRowsSelected\" let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\">\n <input type=\"checkbox\" [checked]=\"allRowsSelected()\" [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\" />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"updatedAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"name\">\n <ng-template #cell let-row=\"row\" let-value>\n {{value.Name}}\n </ng-template>\n <ng-template #cellEdit let-row=\"row\" let-updateValue=\"updateValue\" let-updateData=\"updateData\" let-value>\n <div class=\"width-max\">\n <verbena-input [(ngModel)]=\"value.Name\"></verbena-input>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-isEditing=\"isEditing\" let-toggleRowEdit=\"toggleRowEdit\" let-row=\"row\" let-value>\n <verben-pop-Up #popup [customStyles]=\"{'z-index': '99'}\" [enableMouseLeave]=\"false\">\n <verben-svg class=\"cursor-pointer actions-icon\" dropdown-trigger icon=\"list\"></verben-svg>\n <div class=\"pop-up-content flex flex-col\" dropdown-content>\n <div (click)=\"toggleRowEdit(); closePopUp(); \" class=\"pop-up-value cursor-pointer\">Edit</div>\n <div (click)=\"viewDetailsFromTable(value)\" class=\"pop-up-value cursor-pointer\">View Details</div>\n <div class=\"pop-up-value cursor-pointer\">View Users</div>\n </div>\n </verben-pop-Up>\n <!-- <div class=\"flex gap-4 items-center\">\n <verben-svg (click)=\"editValue(value)\" icon=\"edit\" [width]=\"15\" [height]=\"15\"\n class=\"cursor-pointer\"></verben-svg>\n <span (click)=\"viewDetailsFromTable(value)\" class=\"view-links view-details\">view details</span>\n <span class=\"view-links view-users\">view users</span>\n </div> -->\n </ng-template>\n <ng-template #cellEdit let-isEditing=\"isEditing\" let-toggleRowEdit=\"toggleRowEdit\" let-row=\"row\" let-value>\n <div class=\"flex gap-2 items-center\">\n <verben-svg icon=\"tick\" [width]=\"15\" [height]=\"15\"\n (click)=\"tableSaveRole(value, toggleRowEdit)\"></verben-svg>\n <verben-svg icon=\"delete\" [width]=\"15\" [height]=\"15\"></verben-svg>\n <verben-svg icon=\"cardViewAlt\" [width]=\"15\" [height]=\"15\" (click)=\"editValue(value)\"></verben-svg>\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view borderRadius=\"12px\" #vdcv dataId=\"Id\" border=\"5px\" [cardDataList]=\"cardData\"\n rbgColor=\"#f5f6f9\" mg=\"0px\">\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data #vlcd [parent]=\"vdcv\" dataId=\"MailAddress\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\" [cardDataList]=\"cardData\">\n <ng-template #card let-item>\n <div (click)=\"roleCardClicked(item)\"\n *ngIf=\"item.data.ChildrenType && item.data.ChildrenType == childPermissionRef\"\n class=\"flex cursor-pointer h-[max-content]\">\n <verben-svg [width]=\"15\" [height]=\"15\" (click)=\"toggleChildren(item); $event.stopPropagation()\"\n [ngClass]=\"item.children && item.children.length?'visible':'invisible'\"\n class=\"items-center flex pr-1 cursor-pointer\" [icon]=\"item.isChildrenExpanded?'minus':'plus'\" />\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"py-3 px-4 flex-1 h-[100%]\">\n <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n <div class=\"flex flex-col flex-1 card-min-height justify-between h-[100%]\">\n <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n item.data.Name\n }}</h3>\n <span class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\">\n {{getCardSubCaption(item)}}\n </span>\n </div>\n\n <div *ngIf=\"item.children && item.children.length > 0\" class=\"flex items-end h-[100%]\">\n <p (click)=\"viewDetails(item); $event.stopPropagation()\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\">\n view details</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!item.data.ChildrenType || item.data.ChildrenType !== childPermissionRef\"\n class=\"flex h-[max-content]\">\n <verben-svg [ngClass]=\"item.children && item.children.length?'visible':'invisible'\" [width]=\"15\"\n [height]=\"15\" (click)=\"toggleChildren(item)\" class=\"items-center flex pr-1 cursor-pointer\"\n [icon]=\"item.isChildrenExpanded?'minus':'plus'\" />\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"py-3 px-4 flex-1 flex gap-2 h-[100%] items-start\">\n <input *ngIf=\"item.data?.Selected != undefined\" [disabled]=\"this.isCheckboxDisabled(item)\"\n type=\"checkbox\" class=\"mt-1 cursor-pointer\" [(ngModel)]=\"item.data.Selected\"\n (click)=\"$event.preventDefault(); this.saveRoleDynamic(item)\" />\n <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n <div class=\"flex flex-col flex-1 card-min-height justify-between h-[100%]\">\n <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n item.title\n }}</h3>\n <span class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\">\n {{getCardSubCaption(item)}}\n </span>\n </div>\n\n <div *ngIf=\"item.children && item.children.length > 0\" class=\"flex items-end h-[100%]\">\n <p (click)=\"viewDetails(item)\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\">\n view details</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n <ng-template #cardChild let-item>\n <div class=\"flex h-[max-content]\">\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"py-3 px-4 flex-1 flex gap-2 h-[100%] items-start\">\n <input *ngIf=\"item.data?.Selected != undefined\" [disabled]=\"this.isCheckboxDisabled(item)\"\n type=\"checkbox\" class=\"mt-1 cursor-pointer\" [(ngModel)]=\"item.data.Selected\"\n (click)=\"$event.preventDefault(); this.saveRoleDynamic(item)\" />\n <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n <div class=\"flex flex-col flex-1 card-min-height justify-between h-[100%]\">\n <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n item.title\n }}</h3>\n <span class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\">\n {{getCardSubCaption(item)}}\n </span>\n </div>\n\n <div *ngIf=\"item.children && item.children.length > 0\" class=\"flex items-end h-[100%]\">\n <p (click)=\"viewDetailsChild(item)\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\">\n view details</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n <verben-right-card-data-view *ngIf=\"this.cardContextHistory.length == 0\">\n <ng-template #parent>\n <div *ngIf=\"this.currentData\"\n class=\"flex flex-col rounded-xl h-full w-full justify-between relative space-y-4\">\n <verbena-input name=\"Name\" label=\"Name\" (ngModelChange)=\"updateTable()\"\n [(ngModel)]=\"this.currentData.data.Name\" />\n\n <!-- buttons -->\n <div class=\"flex justify-between bottom-8 left-0 right-0\">\n <verbena-button class=\"verben-delete-button\" text=\"Delete\"></verbena-button>\n <div class=\"flex gap-3\">\n <verbena-button class=\"verben-switch-button\" (click)=\"goToTableView()\"\n text=\"Switch To Table\"></verbena-button>\n <verbena-button class=\"verben-primary-button\" (click)=\"this.saveRole()\" text=\"Save\"></verbena-button>\n </div>\n </div>\n </div>\n\n </ng-template>\n </verben-right-card-data-view>\n <!-- <verben-right-card-data-view>\n yeshhhhhh\n </verben-right-card-data-view> -->\n\n <verben-card-data-view-footer *ngIf=\"this.cardContextHistory.length == 0\">\n <div class=\"flex gap-2 justify-between\">\n <div *ngIf=\"!vdcv.hasCurrentItem() && this.cardContextHistory.length == 0\"\n class=\"message-log-button-container flex justify-between\">\n <verbena-button [fontWeight]=\"'bold'\" [bgColor]=\"'#8E8D87'\" [borderRadius]=\"'4px'\" [textColor]=\"'#fff'\"\n [text]=\"'Delete'\">\n </verbena-button>\n </div>\n <div class=\"flex {{vdcv.hasCurrentItem()?'flex-1':''}} justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData.length }} records loaded</span>\n <button (click)=\"loadMore()\" class=\"load-more view-links\">Load more</button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column (columnsUpdated)=\"onColumnsUpdated($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"400px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter (filtersApplied)=\"onFilterUpdated($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"420px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" tertiaryColor=\"#404040\" [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table (selectedOptions)=\"onSortUpdated($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"400px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" tertiaryColor=\"#404040\" [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-between\">\n <div class=\"message-log-button-container flex justify-between\">\n <verbena-button [fontWeight]=\"'bold'\" [bgColor]=\"'#8E8D87'\" [borderRadius]=\"'4px'\" [textColor]=\"'#fff'\"\n [text]=\"'Delete'\">\n </verbena-button>\n </div>\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData.length }} records loaded</span>\n <button (click)=\"loadMore()\" class=\"load-more view-links\">Load more</button>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n CardDataViewModule,\n CardModule,\n DataExportModule,\n DataTableModule,\n DataViewModule,\n DropDownModule,\n SortTableModule,\n SvgModule,\n TableFilterModule,\n VerbenaBadgeModule,\n VerbenaButtonModule,\n VerbenaInputModule,\n VerbenaSwitchModule,\n VerbenDialogueModule,\n VisibleColumnModule,\n VerbenaTextareaModule,\n VerbenPopUpModule,\n ChipModule,\n} from 'verben-ng-ui';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n exports: [\n CommonModule,\n DataTableModule,\n CardModule,\n SvgModule,\n DataViewModule,\n CardDataViewModule,\n SortTableModule,\n VisibleColumnModule,\n TableFilterModule,\n DataExportModule,\n FormsModule,\n ReactiveFormsModule,\n VerbenaInputModule,\n VerbenaButtonModule,\n VerbenaBadgeModule,\n VerbenDialogueModule,\n DropDownModule,\n VerbenaTextareaModule,\n VerbenaSwitchModule,\n VerbenPopUpModule,\n ChipModule,\n ],\n})\nexport class SharedModule {}\n","import { NgModule } from '@angular/core';\nimport { RoleControlComponent } from './role-control.component';\nimport { SharedModule } from '../../shared/shared.module';\n\n@NgModule({\n declarations: [RoleControlComponent],\n imports: [SharedModule],\n exports: [RoleControlComponent],\n})\nexport class RoleControlModule {}\n","/*\n * Public API Surface of verben-ng-ui\n */\n\n// export * from './lib/verben-ng-ui.service';\n// export * from './lib/verben-ng-ui.component';\n\n// Exporting modules\n\nexport * from './lib/components/reset-password/reset-password.component';\nexport * from './lib/components/reset-password/reset-password.module';\nexport * from './lib/components/reset-password/ResetPasswordData';\n//user-request-lib\nexport * from './lib/components/user-request/user-request.component';\nexport * from './lib/components/user-request/user-request.module';\nexport * from './lib/models/UserRequest';\n//mail-validation\nexport * from './lib/components/mail-validation/mail-validation.component';\nexport * from './lib/components/mail-validation/mail-validation.module';\n\n//sign up\nexport * from './lib/components/sign-up/sign-up.component';\nexport * from './lib/components/sign-up/sign-up.module';\n//sign in\nexport * from './lib/components/sign-in/sign-in.module';\nexport * from './lib/components/sign-in/sign-in.component';\n//Otp\nexport * from './lib/components/two-factor-auth-otp/two-factor-auth-otp.module';\nexport * from './lib/components/two-factor-auth-otp/two-factor-auth-otp.component';\n//2FA\nexport * from './lib/components/two-factor-auth-setup/two-factor-auth-setup.module';\nexport * from './lib/components/two-factor-auth-setup/two-factor-auth-setup.component';\n//sign up\nexport * from './lib/components/mail/mail.module';\nexport * from './lib/components/mail/mail.component';\n\nexport * from './lib/components/forgot-password/forgot-password.component';\nexport * from './lib/components/forgot-password/forgot-password.module';\nexport * from './lib/components/forgot-password/ForgotPasswordData';\nexport * from './lib/components/sso/sso.component';\nexport * from './lib/components/sso/sso.module';\n\nexport * from './lib/components/user-request-approval/user-request-approval.module';\nexport * from './lib/components/user-request-approval/user-request-approval.component';\nexport * from './lib/components/user-request-approval/user-access-request-status-badge/user-access-request-status-badge.component';\n\nexport * from './lib/components/user-management/user-management.module';\nexport * from './lib/components/user-management/user-management.component';\nexport * from './lib/components/user-request-approval/user-request-approval.service';\n\nexport * from './lib/components/auth-callback/auth-callback.component';\nexport * from './lib/components/auth-callback/auth-callback.module';\n\nexport * from './lib/services/environment.service';\nexport * from './lib/services/authorization.service';\n\nexport * from './lib/components/role-control/role-control.component';\nexport * from './lib/components/role-control/role-control.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.EnvironmentService","i3","i1","i2.HttpWebRequestService","i3.UtilService","i4","i5","i2","i4.EnvironmentService","i6","i8.OAuthComponent","i1.EnvironmentService","i4.EncryptionService","i7","i8.ButtonComponent","i9.OAuthComponent","i6.EncryptionService","i10.ButtonComponent","i5.ButtonComponent","i6.OtpInputComponent","i2.ButtonComponent","columns","mockData","baseStyle","i3.SsoFormComponent","randomEnum","i1.HttpWebRequestService","i1.UserAccessRequestService","i2.UserAccessRequestState","DateFilterTypes","i1.UserAccessRequestFacade","i4.UserRequestFormComponent","i5.UserAccessRequestStatusBadgeComponent","i2.UserManagementService","i3.UserAccessRequestService","i4.HttpWebRequestService","i5.UtilService","i6.EnvironmentService","i9.UserAccessRequestStatusBadgeComponent","i10.UserManagementFormComponent","i1.AuthorizationService","i2.RoleControlService"],"mappings":"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"}