verben-authentication-ui 1.0.23 → 1.0.26

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-src-lib-services.mjs","sources":["../../../projects/verben-authentication-ui/src/lib/services/authorization.service.ts","../../../projects/verben-authentication-ui/src/lib/services/environment.service.ts","../../../projects/verben-authentication-ui/src/lib/services/encryption.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/services/import.service.ts","../../../projects/verben-authentication-ui/src/lib/services/label.service.ts","../../../projects/verben-authentication-ui/src/lib/services/verben-authentication-ui-src-lib-services.ts"],"sourcesContent":["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","// 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 ReportingAPI: string;\n MessagingAPI: string;\n WorkflowAPI: 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 { 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 isProd:boolean\n private ivString\n private keyString\n constructor(\n\n private envSvc: EnvironmentService,\n\n ) {\n this.ivString=this.envSvc.environment.IvString\n this.keyString=this.envSvc.environment.keyString\n this.isProd = this.envSvc.environment.production;\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 { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ErrorResponse } from 'verben-authentication-ui/src/lib/models';\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.eyJNYWlsQWRkcmVzcyI6InZlcmJlbmFAZ21haWwuY29tIiwiQXBwbGljYXRpb24iOiIiLCJOYW1lIjoiVmVyYmVuYSBMb2dpYyBMaW1pdGVkIiwiUm9sZUlEIjoiUk9MLVpYQVhYVCIsIlRlbmFudElkIjoiUERMVEM2IiwiU2VydmljZU5hbWUiOiJXaGl0ZTM2MCIsIkNvbXBhbnkiOiJDT00tNkxJNjNIIiwibmJmIjoxNzQ3MTMxNTk1LCJleHAiOjE3NDczNDc1OTUsImlhdCI6MTc0NzEzMTU5NX0.X-5xj31h2ON268n1sTq6eFhphsiZ1k9JhkJ91R2-PKI',\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 { Injectable } from '@angular/core';\nimport { HttpWebRequestService } from './http-web-request.service';\nimport { BaseModel } from 'verben-authentication-ui/src/lib/models';\nimport { PagedResult } from 'verben-authentication-ui/src/lib/models';\nimport { ObjectState } from 'verben-authentication-ui/src/lib/models';\nimport { ErrorResponse } from 'verben-authentication-ui/src/lib/models';\nimport { UtilService } from './util.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImportService<T extends BaseModel> {\n constructor(\n private utilService: UtilService,\n private server: HttpWebRequestService //private cdr: ChangeDetectorRef\n ) {}\n\n // onComplete(\n // event: any[],\n // defaults: T,\n // endpoint: string | null,\n // baseUrl: string,\n // dataRef: T[],\n // cardDataRef: CardData[],\n // pagedState: PagedResult<T> | null = null,\n // stringProps: (keyof T)[] = []\n // ) {\n // const normalized = event.map((raw) => {\n // const def = defaults;\n // let merged: T = {\n // ...def,\n // ...raw,\n // Code: raw.Code ? String(raw.Code) : '',\n // };\n\n // stringProps.forEach((key) => {\n // const value = raw[key];\n // merged[key] = value != null ? String(value) : ('' as any);\n // });\n // const dateProps: (keyof T)[] = ['CreatedAt', 'UpdatedAt'];\n // dateProps.forEach((key) => {\n // const val = merged[key];\n\n // let dateObj: Date;\n\n // if (val instanceof Date) {\n // dateObj = val;\n // } else if (typeof val === 'number') {\n // dateObj = this.excelSerialToDate(val);\n // } else if (typeof val === 'string') {\n // dateObj = new Date(val);\n // } else {\n // dateObj = new Date();\n // }\n // if (isNaN(dateObj.getTime())) {\n // dateObj = new Date();\n // }\n // merged[key] = dateObj.toISOString() as any;\n // });\n\n // return merged;\n // });\n\n // if (normalized && normalized.length > 0) {\n // this.saveImportedDataBatch(\n // normalized,\n // endpoint,\n // baseUrl,\n // dataRef,\n // cardDataRef,\n // pagedState\n // );\n // }\n // }\n\n // async saveImportedDataBatch(\n // items: T[],\n // endpoint: string | null,\n // baseUrl: string,\n // dataRef: T[],\n // cardDataRef: CardData[],\n // pagedState: PagedResult<T> | null = null\n // ) {\n // if (!items?.length) return;\n\n // const preparedItems = items.map((item) => ({\n // ...item,\n // DataState: ObjectState.New,\n // Id: '',\n // }));\n\n // if (!endpoint) {\n // preparedItems.forEach((srv, idx) => {\n // const newItem = {\n // ...srv,\n // Id: dataRef.length.toString(),\n // id: dataRef.length.toString(),\n // };\n\n // const cardData: CardData = {\n // selected: false,\n // title: newItem.Id.toString(),\n // data: newItem,\n // body: [],\n // children: [],\n // };\n\n // dataRef.push(newItem);\n // cardDataRef.push(cardData);\n // if (pagedState) {\n // pagedState.Skip += 1;\n // }\n // });\n // return;\n // }\n\n // this.utilService.sendBI(true);\n // const res = await this.server.post(endpoint, preparedItems, baseUrl);\n // this.utilService.sendBI(false);\n\n // if (res instanceof ErrorResponse) {\n // return;\n // } else {\n // this.utilService.showSuccess('Operation Account saved successfully');\n // const result = res as T[];\n\n // result.forEach((srv, idx) => {\n // const newItem = {\n // ...srv,\n // Id: srv.Code,\n // id: srv.Code,\n // };\n\n // const cardData: CardData = {\n // selected: false,\n // title: newItem.Id.toString(),\n // data: newItem,\n // body: [],\n // children: [],\n // };\n\n // dataRef.push(newItem);\n // // this.cdr.detectChanges();\n // cardDataRef.push(cardData);\n // if (pagedState) {\n // pagedState.Skip += 1;\n // }\n // });\n // }\n // }\n onComplete(\n event: any[],\n defaults: T,\n endpoint: string | null,\n baseUrl: string,\n entity: string,\n updateCallback: (items: T[]) => void,\n pagedState: PagedResult<T> | null = null,\n stringProps: (keyof T)[] = [],\n numberProps: (keyof T)[] = [],\n datePropsExtras: (keyof T)[] = []\n ) {\n const normalized = event.map((raw) => {\n const def = defaults;\n let merged: T = {\n ...def,\n ...raw,\n Code: raw.Code ? String(raw.Code) : '',\n };\n\n stringProps.forEach((key) => {\n const value = raw[key];\n merged[key] = value != null ? String(value) : ('' as any);\n });\n\n numberProps.forEach((key) => {\n const value = raw[key];\n\n if (typeof value === 'string') {\n // Only parse if it's a valid number\n const num = value === '' || isNaN(Number(value)) ? 0 : Number(value);\n merged[key] = num as any;\n } else {\n merged[key] = value;\n }\n });\n\n const dateProps: (keyof T)[] = (\n ['CreatedAt', 'UpdatedAt'] as (keyof T)[]\n ).concat(datePropsExtras);\n dateProps.forEach((key) => {\n const val = merged[key];\n\n let dateObj: Date;\n\n if (val instanceof Date) {\n dateObj = val;\n } else if (typeof val === 'number') {\n dateObj = this.excelSerialToDate(val);\n } else if (typeof val === 'string') {\n dateObj = new Date(val);\n } else {\n dateObj = new Date();\n }\n if (isNaN(dateObj.getTime())) {\n dateObj = new Date();\n }\n merged[key] = dateObj.toISOString() as any;\n });\n\n return merged;\n });\n\n if (normalized && normalized.length > 0) {\n this.saveImportedDataBatch(\n normalized,\n endpoint,\n baseUrl,\n entity,\n updateCallback,\n pagedState\n );\n }\n }\n\n async saveImportedDataBatch(\n items: T[],\n endpoint: string | null,\n baseUrl: string,\n entity: string,\n updateCallback: (items: T[]) => void,\n pagedState: PagedResult<T> | null = null\n ) {\n if (!items?.length) return;\n\n const preparedItems = items.map((item) => ({\n ...item,\n DataState: ObjectState.New,\n Id: '',\n }));\n\n if (!endpoint) {\n preparedItems.forEach((srv, idx) => {\n srv.Id = `UPLOAD ${idx}`;\n srv.id = `UPLOAD ${idx}`;\n });\n updateCallback(preparedItems);\n\n if (pagedState) {\n pagedState.Skip += preparedItems.length;\n }\n\n return;\n }\n\n this.utilService.sendBI(true);\n const res = await this.server.post(endpoint, preparedItems, baseUrl);\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n return;\n } else {\n this.utilService.showSuccess(`${entity} upload successful`);\n const result = res as T[];\n\n result.forEach((srv, idx) => {\n srv.Id = srv.Code;\n srv.id = srv.Code;\n // const newItem = {\n // ...srv,\n // Id: srv.Code,\n // id: srv.Code,\n // };\n\n // const cardData: CardData = {\n // selected: false,\n // title: newItem.Id.toString(),\n // data: newItem,\n // body: [],\n // children: [],\n // };\n });\n\n updateCallback(result);\n\n if (pagedState) {\n pagedState.Skip += result.length;\n }\n }\n }\n\n excelSerialToDate(serial: number): Date {\n 1;\n const excelEpoch = new Date(Date.UTC(1899, 11, 30));\n const millisPerDay = 24 * 60 * 60 * 1000;\n\n return new Date(excelEpoch.getTime() + serial * millisPerDay);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpWebRequestService } from './http-web-request.service';\nimport { SearchDynamicWrapper } from 'verben-authentication-ui/src/lib/models';\nimport { SearchOperator } from 'verben-authentication-ui/src/lib/models';\nimport { SearchPropertySign } from 'verben-authentication-ui/src/lib/models';\nimport { ErrorResponse } from 'verben-authentication-ui/src/lib/models';\nimport { PagedResult } from 'verben-authentication-ui/src/lib/models';\nimport { Observable, of } from 'rxjs';\nimport { UtilService } from './util.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LabelService {\n private cache = new Map<string, string>();\n private inFlightRequests = new Map<string, Promise<string>>();\n\n constructor(\n private utilService: UtilService,\n private server: HttpWebRequestService\n ) {}\n\n async getAsyncLabel(\n value: any,\n entity: string,\n labelProp: string,\n env: string,\n key: string = 'Code'\n ): Promise<string> {\n const cacheKey = `${entity}_${labelProp}_${value}_${env}_${key}`;\n\n if (this.cache.has(cacheKey)) {\n const value = this.cache.get(cacheKey)!;\n return value;\n }\n\n var payload: SearchDynamicWrapper = {\n Fields: [labelProp],\n SearchKeyValues: [\n {\n PropertyName: key,\n EntityValue: value,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n ],\n };\n\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `SearchDynamic${entity}/0/1`,\n payload,\n env\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return '';\n } else {\n const result = (res as PagedResult<string>).Result;\n const label = result.length > 0 ? result[0] : value;\n this.cache.set(cacheKey, label);\n return label;\n }\n }\n\n async getAsyncLabelWithRequestTracking(\n value: any,\n entity: string,\n labelProp: string,\n env: string,\n key: string = 'Code'\n ): Promise<string> {\n const cacheKey = `${entity}_${labelProp}_${value}_${env}_${key}`;\n\n if (this.cache.has(cacheKey)) {\n return this.cache.get(cacheKey)!;\n }\n\n if (this.inFlightRequests.has(cacheKey)) {\n return this.inFlightRequests.get(cacheKey)!;\n }\n\n const requestPromise = (async () => {\n const payload: SearchDynamicWrapper = {\n Fields: [labelProp],\n SearchKeyValues: [\n {\n PropertyName: key,\n EntityValue: value,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n ],\n };\n\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `SearchDynamic${entity}/0/1`,\n payload,\n env\n );\n this.utilService.sendBI(false);\n\n let label: string;\n if (res instanceof ErrorResponse) {\n label = '';\n } else {\n const result = (res as PagedResult<string>).Result;\n label = result.length > 0 ? result[0] : value;\n }\n\n this.cache.set(cacheKey, label);\n this.inFlightRequests.delete(cacheKey);\n\n return label;\n })();\n\n // Save the in-flight request\n this.inFlightRequests.set(cacheKey, requestPromise);\n\n return requestPromise;\n }\n\n async getAsyncLabelWithRequestTrackingNoGateway(\n value: any,\n entity: string,\n labelProp: string,\n env: string,\n controller: string,\n key: string = 'Code'\n ): Promise<string> {\n const cacheKey = `${entity}_${labelProp}_${value}_${env}_${key}_${controller}`;\n\n if (this.cache.has(cacheKey)) {\n return this.cache.get(cacheKey)!;\n }\n\n if (this.inFlightRequests.has(cacheKey)) {\n return this.inFlightRequests.get(cacheKey)!;\n }\n\n const requestPromise = (async () => {\n const payload: SearchDynamicWrapper = {\n Fields: [labelProp],\n SearchKeyValues: [\n {\n PropertyName: key,\n EntityValue: value,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n ],\n };\n\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `${controller}/SearchDynamic${entity}s/0/1`,\n payload,\n env\n );\n this.utilService.sendBI(false);\n\n let label: string;\n if (res instanceof ErrorResponse) {\n label = '';\n } else {\n const result = (res as PagedResult<string>).Result;\n label = result.length > 0 ? result[0] : value;\n }\n\n this.cache.set(cacheKey, label);\n this.inFlightRequests.delete(cacheKey);\n\n return label;\n })();\n\n // Save the in-flight request\n this.inFlightRequests.set(cacheKey, requestPromise);\n\n return requestPromise;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.EnvironmentService","i2.EnvironmentService","i1.UtilService","i2.HttpWebRequestService"],"mappings":";;;;;;;;MAEa,oBAAoB,GAAG,IAAI,cAAc,CACpD,sBAAsB,EACtB;MASW,oBAAoB,CAAA;AAIrB,IAAA,IAAA,CAAA;AAHV,IAAA,WAAA,CAGU,IAA2B,EAAA;QAA3B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAuB;KACjC;AAEJ,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;KACnC;AATU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kBAGrB,oBAAoB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAHnB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA;;4FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,QAAQ;;0BACR,MAAM;2BAAC,oBAAoB,CAAA;;;AChBhC;AAEA;MAEa,WAAW,GAAG,IAAI,cAAc,CAAc,aAAa,EAAE;MAmB7D,kBAAkB,CAAA;AACY,IAAA,GAAA,CAAA;AAAzC,IAAA,WAAA,CAAyC,GAAgB,EAAA;QAAhB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAa;KAAI;AAE7D,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,GAAG,CAAC;KACjB;AALU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBACT,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AADpB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAEc,MAAM;2BAAC,WAAW,CAAA;;;MCjBpB,iBAAiB,CAAA;AAMlB,IAAA,MAAA,CAAA;AALV,IAAA,MAAM,CAAQ;AACN,IAAA,QAAQ,CAAA;AACR,IAAA,SAAS,CAAA;AACjB,IAAA,WAAA,CAEU,MAA0B,EAAA;QAA1B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAoB;QAGlC,IAAI,CAAC,QAAQ,GAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAA;QAC9C,IAAI,CAAC,SAAS,GAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAA;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC;KAClD;AACD,IAAA,WAAW,CAAC,IAAY,EAAA;AACtB,QAAA,IAAI;YACF,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CACpC,IAAI,EACJ,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EACvC;AACE,gBAAA,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC3C,aAAA,CACF,CAAC;;AAGF,YAAA,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;SAC7B;QAAC,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;SACb;KACF;AAED,IAAA,WAAW,CAAC,IAAY,EAAA;AACtB,QAAA,IAAI;;YAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CACpC,IAAI,EACJ,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EACvC;AACE,gBAAA,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC3C,aAAA,CACF,CAAC;;YAGF,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC9C;QAAC,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;SACb;KACF;wGAhDU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCIY,qBAAqB,CAAA;AAItB,IAAA,IAAA,CAAA;AACA,IAAA,MAAA,CAAA;AACA,IAAA,mBAAA,CAAA;AALV,IAAA,MAAM,CAAU;AAEhB,IAAA,WAAA,CACU,IAAgB,EAChB,MAA0B,EAC1B,mBAAwC,EAAA;QAFxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAoB;QAC1B,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QAEhD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC;KAClD;IAEO,YAAY,GAAA;QAClB,OAAO;AACL,YAAA,cAAc,EAAE,kBAAkB;AAClC,YAAA,aAAa,EACX,8XAA8X;SACjY,CAAC;KACH;IAEO,QAAQ,CAAC,GAAW,EAAE,OAAe,EAAA;AAC3C,QAAA,OAAO,CAAG,EAAA,OAAO,CAAI,CAAA,EAAA,GAAG,EAAE,CAAC;KAC5B;AAEO,IAAA,WAAW,CAAC,GAAQ,EAAA;AAC1B,QAAA,MAAM,GAAG,GACP,GAAG,EAAE,QAAQ;AACZ,YAAA,GAAG,EAAE,MAAM,EAAE,MAAmB,EAAE,QAAQ,EAAE;AAC7C,YAAA,CAAA,cAAA,CAAgB,CAAC;AACnB,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACxD,QAAA,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;KAC/B;AAEO,IAAA,OAAO,CACb,MAAyC,EACzC,GAAW,EACX,IAAU,EACV,OAAkB,GAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAA;AAE3D,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE;SAC7B,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE/C,QAAQ,MAAM;AACZ,YAAA,KAAK,KAAK;gBACR,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC;AAC9C,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,KAAK,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAM,CAAC;AACpD,iBAAA,CAAC,CACH,CAAC;AACJ,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAI,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC;AACrD,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,KAAK,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAM,CAAC;AACpD,iBAAA,CAAC,CACH,CAAC;AACJ,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACrD,YAAA,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAI,UAAU,EAAE,OAAO,CAAC,CAAC;SACnD;KACF;IAED,GAAG,CAAI,GAAW,EAAE,OAAgB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAe,CAAC;KACnE;AAED,IAAA,IAAI,CAAI,GAAW,EAAE,IAAS,EAAE,OAAgB,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,OAAO,CACjB,MAAM,EACN,GAAG,EACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EACpB,OAAO,CACM,CAAC;KACjB;AAED,IAAA,QAAQ,CAAI,GAAW,EAAE,QAAkB,EAAE,OAAgB,EAAA;QAC3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KACzB,IAAI,CAAC,IAAI;AACN,aAAA,IAAI,CACH,IAAI,CAAC,QAAQ,CACX,GAAG,EACH,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CACrD,EACD,QAAQ,CACT;AACA,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,KAAK,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAM,CAAC;AACpD,SAAA,CAAC,CACL,CAAC;KACH;AAED,IAAA,GAAG,CAAI,GAAW,EAAE,IAAS,EAAE,OAAgB,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAkB,CAAC;KACjE;IAED,MAAM,CAAI,GAAW,EAAE,OAAgB,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAkB,CAAC;KACzE;wGAtGU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCGY,WAAW,CAAA;AAIZ,IAAA,iBAAA,CAAA;AAHV,IAAA,WAAA,CAGU,iBAAsB,EAAA;QAAtB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAK;KAC5B;AAEJ,IAAA,MAAM,CAAC,KAAc,EAAA;QACnB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AAC3D,YAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACtC;aAAM;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;SAC9C;KACF;AAED,IAAA,QAAQ,CAAC,OAAe,EAAA;QACtB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;AAC7D,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SAC1C;aAAM;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;SAC9C;KACF;AACD,IAAA,WAAW,CAAC,OAAe,EAAA;QACzB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;AAChE,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SAC7C;aAAM;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;SAC9C;KACF;AACD,IAAA,SAAS,CAAC,OAAe,EAAA;QACvB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;AAC9D,YAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SAC3C;aAAM;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;SAC9C;KACF;AAnCU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,kBAGZ,YAAY,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAHX,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA;;4FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,QAAQ;;0BACR,MAAM;2BAAC,YAAY,CAAA;;;MCJX,aAAa,CAAA;AAEd,IAAA,WAAA,CAAA;AACA,IAAA,MAAA,CAAA;AAFV,IAAA,WAAA,CACU,WAAwB,EACxB,MAA6B;;QAD7B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAuB;KACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuIJ,UAAU,CACR,KAAY,EACZ,QAAW,EACX,QAAuB,EACvB,OAAe,EACf,MAAc,EACd,cAAoC,EACpC,UAAA,GAAoC,IAAI,EACxC,WAA2B,GAAA,EAAE,EAC7B,WAA2B,GAAA,EAAE,EAC7B,eAAA,GAA+B,EAAE,EAAA;QAEjC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;YACnC,MAAM,GAAG,GAAG,QAAQ,CAAC;AACrB,YAAA,IAAI,MAAM,GAAM;AACd,gBAAA,GAAG,GAAG;AACN,gBAAA,GAAG,GAAG;AACN,gBAAA,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;aACvC,CAAC;AAEF,YAAA,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAC1B,gBAAA,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACvB,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAI,EAAU,CAAC;AAC5D,aAAC,CAAC,CAAC;AAEH,YAAA,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAC1B,gBAAA,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AAEvB,gBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;;oBAE7B,MAAM,GAAG,GAAG,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACrE,oBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,GAAU,CAAC;iBAC1B;qBAAM;AACL,oBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;iBACrB;AACH,aAAC,CAAC,CAAC;AAEH,YAAA,MAAM,SAAS,GACb,CAAC,WAAW,EAAE,WAAW,CAC1B,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAC1B,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACxB,gBAAA,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAExB,gBAAA,IAAI,OAAa,CAAC;AAElB,gBAAA,IAAI,GAAG,YAAY,IAAI,EAAE;oBACvB,OAAO,GAAG,GAAG,CAAC;iBACf;AAAM,qBAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAClC,oBAAA,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;iBACvC;AAAM,qBAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAClC,oBAAA,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;iBACzB;qBAAM;AACL,oBAAA,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;iBACtB;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE;AAC5B,oBAAA,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;iBACtB;gBACD,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,WAAW,EAAS,CAAC;AAC7C,aAAC,CAAC,CAAC;AAEH,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC,CAAC;QAEH,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,qBAAqB,CACxB,UAAU,EACV,QAAQ,EACR,OAAO,EACP,MAAM,EACN,cAAc,EACd,UAAU,CACX,CAAC;SACH;KACF;AAED,IAAA,MAAM,qBAAqB,CACzB,KAAU,EACV,QAAuB,EACvB,OAAe,EACf,MAAc,EACd,cAAoC,EACpC,aAAoC,IAAI,EAAA;QAExC,IAAI,CAAC,KAAK,EAAE,MAAM;YAAE,OAAO;QAE3B,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;AACzC,YAAA,GAAG,IAAI;YACP,SAAS,EAAE,WAAW,CAAC,GAAG;AAC1B,YAAA,EAAE,EAAE,EAAE;AACP,SAAA,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,QAAQ,EAAE;YACb,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;AACjC,gBAAA,GAAG,CAAC,EAAE,GAAG,CAAU,OAAA,EAAA,GAAG,EAAE,CAAC;AACzB,gBAAA,GAAG,CAAC,EAAE,GAAG,CAAU,OAAA,EAAA,GAAG,EAAE,CAAC;AAC3B,aAAC,CAAC,CAAC;YACH,cAAc,CAAC,aAAa,CAAC,CAAC;YAE9B,IAAI,UAAU,EAAE;AACd,gBAAA,UAAU,CAAC,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC;aACzC;YAED,OAAO;SACR;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE/B,QAAA,IAAI,GAAG,YAAY,aAAa,EAAE;YAChC,OAAO;SACR;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAG,EAAA,MAAM,CAAoB,kBAAA,CAAA,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,GAAU,CAAC;YAE1B,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;AAC1B,gBAAA,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;AAClB,gBAAA,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;;;;;;;;;;;;;AAcpB,aAAC,CAAC,CAAC;YAEH,cAAc,CAAC,MAAM,CAAC,CAAC;YAEvB,IAAI,UAAU,EAAE;AACd,gBAAA,UAAU,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC;aAClC;SACF;KACF;AAED,IAAA,iBAAiB,CAAC,MAAc,EAAA;AAC9B,QAAA,CAAC,CAAC;AACF,QAAA,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEzC,QAAA,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,YAAY,CAAC,CAAC;KAC/D;wGA9RU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCGY,YAAY,CAAA;AAKb,IAAA,WAAA,CAAA;AACA,IAAA,MAAA,CAAA;AALF,IAAA,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;AAClC,IAAA,gBAAgB,GAAG,IAAI,GAAG,EAA2B,CAAC;IAE9D,WACU,CAAA,WAAwB,EACxB,MAA6B,EAAA;QAD7B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAuB;KACnC;AAEJ,IAAA,MAAM,aAAa,CACjB,KAAU,EACV,MAAc,EACd,SAAiB,EACjB,GAAW,EACX,GAAA,GAAc,MAAM,EAAA;AAEpB,QAAA,MAAM,QAAQ,GAAG,CAAG,EAAA,MAAM,CAAI,CAAA,EAAA,SAAS,CAAI,CAAA,EAAA,KAAK,CAAI,CAAA,EAAA,GAAG,CAAI,CAAA,EAAA,GAAG,EAAE,CAAC;QAEjE,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;AACxC,YAAA,OAAO,KAAK,CAAC;SACd;AAED,QAAA,IAAI,OAAO,GAAyB;YAClC,MAAM,EAAE,CAAC,SAAS,CAAC;AACnB,YAAA,eAAe,EAAE;AACf,gBAAA;AACE,oBAAA,YAAY,EAAE,GAAG;AACjB,oBAAA,WAAW,EAAE,KAAK;oBAClB,QAAQ,EAAE,cAAc,CAAC,GAAG;oBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,iBAAA;AACF,aAAA;SACF,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,CAAA,aAAA,EAAgB,MAAM,CAAM,IAAA,CAAA,EAC5B,OAAO,EACP,GAAG,CACJ,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,GAAG,YAAY,aAAa,EAAE;AAChC,YAAA,OAAO,EAAE,CAAC;SACX;aAAM;AACL,YAAA,MAAM,MAAM,GAAI,GAA2B,CAAC,MAAM,CAAC;AACnD,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACpD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAChC,YAAA,OAAO,KAAK,CAAC;SACd;KACF;AAED,IAAA,MAAM,gCAAgC,CACpC,KAAU,EACV,MAAc,EACd,SAAiB,EACjB,GAAW,EACX,GAAA,GAAc,MAAM,EAAA;AAEpB,QAAA,MAAM,QAAQ,GAAG,CAAG,EAAA,MAAM,CAAI,CAAA,EAAA,SAAS,CAAI,CAAA,EAAA,KAAK,CAAI,CAAA,EAAA,GAAG,CAAI,CAAA,EAAA,GAAG,EAAE,CAAC;QAEjE,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;SAClC;QAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACvC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;SAC7C;AAED,QAAA,MAAM,cAAc,GAAG,CAAC,YAAW;AACjC,YAAA,MAAM,OAAO,GAAyB;gBACpC,MAAM,EAAE,CAAC,SAAS,CAAC;AACnB,gBAAA,eAAe,EAAE;AACf,oBAAA;AACE,wBAAA,YAAY,EAAE,GAAG;AACjB,wBAAA,WAAW,EAAE,KAAK;wBAClB,QAAQ,EAAE,cAAc,CAAC,GAAG;wBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,qBAAA;AACF,iBAAA;aACF,CAAC;AAEF,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,YAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,CAAA,aAAA,EAAgB,MAAM,CAAM,IAAA,CAAA,EAC5B,OAAO,EACP,GAAG,CACJ,CAAC;AACF,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE/B,YAAA,IAAI,KAAa,CAAC;AAClB,YAAA,IAAI,GAAG,YAAY,aAAa,EAAE;gBAChC,KAAK,GAAG,EAAE,CAAC;aACZ;iBAAM;AACL,gBAAA,MAAM,MAAM,GAAI,GAA2B,CAAC,MAAM,CAAC;AACnD,gBAAA,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;aAC/C;YAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEvC,YAAA,OAAO,KAAK,CAAC;SACd,GAAG,CAAC;;QAGL,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AAEpD,QAAA,OAAO,cAAc,CAAC;KACvB;AAED,IAAA,MAAM,yCAAyC,CAC7C,KAAU,EACV,MAAc,EACd,SAAiB,EACjB,GAAW,EACX,UAAkB,EAClB,MAAc,MAAM,EAAA;AAEpB,QAAA,MAAM,QAAQ,GAAG,CAAG,EAAA,MAAM,IAAI,SAAS,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,GAAG,CAAI,CAAA,EAAA,GAAG,CAAI,CAAA,EAAA,UAAU,EAAE,CAAC;QAE/E,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;SAClC;QAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACvC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;SAC7C;AAED,QAAA,MAAM,cAAc,GAAG,CAAC,YAAW;AACjC,YAAA,MAAM,OAAO,GAAyB;gBACpC,MAAM,EAAE,CAAC,SAAS,CAAC;AACnB,gBAAA,eAAe,EAAE;AACf,oBAAA;AACE,wBAAA,YAAY,EAAE,GAAG;AACjB,wBAAA,WAAW,EAAE,KAAK;wBAClB,QAAQ,EAAE,cAAc,CAAC,GAAG;wBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,qBAAA;AACF,iBAAA;aACF,CAAC;AAEF,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,YAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,GAAG,UAAU,CAAA,cAAA,EAAiB,MAAM,CAAO,KAAA,CAAA,EAC3C,OAAO,EACP,GAAG,CACJ,CAAC;AACF,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE/B,YAAA,IAAI,KAAa,CAAC;AAClB,YAAA,IAAI,GAAG,YAAY,aAAa,EAAE;gBAChC,KAAK,GAAG,EAAE,CAAC;aACZ;iBAAM;AACL,gBAAA,MAAM,MAAM,GAAI,GAA2B,CAAC,MAAM,CAAC;AACnD,gBAAA,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;aAC/C;YAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEvC,YAAA,OAAO,KAAK,CAAC;SACd,GAAG,CAAC;;QAGL,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AAEpD,QAAA,OAAO,cAAc,CAAC;KACvB;wGAvKU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA;;4FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACZD;;AAEG;;;;"}
1
+ {"version":3,"file":"verben-authentication-ui-src-lib-services.mjs","sources":["../../../projects/verben-authentication-ui/src/lib/services/authorization.service.ts","../../../projects/verben-authentication-ui/src/lib/services/environment.service.ts","../../../projects/verben-authentication-ui/src/lib/services/encryption.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/services/import.service.ts","../../../projects/verben-authentication-ui/src/lib/services/label.service.ts","../../../projects/verben-authentication-ui/src/lib/services/verben-authentication-ui-src-lib-services.ts"],"sourcesContent":["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","// In your library's services/environment.service.ts\nimport { Inject, Injectable, InjectionToken } 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 ReportingAPI: string;\n MessagingAPI: string;\n WorkflowAPI: string;\n RevenueAPI: 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 { 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 isProd:boolean\n private ivString\n private keyString\n constructor(\n\n private envSvc: EnvironmentService,\n\n ) {\n this.ivString=this.envSvc.environment.IvString\n this.keyString=this.envSvc.environment.keyString\n this.isProd = this.envSvc.environment.production;\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 { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ErrorResponse } from 'verben-authentication-ui/src/lib/models';\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.eyJNYWlsQWRkcmVzcyI6InZlcmJlbmFAZ21haWwuY29tIiwiQXBwbGljYXRpb24iOiIiLCJOYW1lIjoiVmVyYmVuYSBMb2dpYyBMaW1pdGVkIiwiUm9sZUlEIjoiUk9MLVpYQVhYVCIsIlRlbmFudElkIjoiUERMVEM2IiwiU2VydmljZU5hbWUiOiJXaGl0ZTM2MCIsIkNvbXBhbnkiOiJDT00tNkxJNjNIIiwibmJmIjoxNzQ3MTMxNTk1LCJleHAiOjE3NDczNDc1OTUsImlhdCI6MTc0NzEzMTU5NX0.X-5xj31h2ON268n1sTq6eFhphsiZ1k9JhkJ91R2-PKI',\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 { Injectable } from '@angular/core';\nimport { HttpWebRequestService } from './http-web-request.service';\nimport { BaseModel } from 'verben-authentication-ui/src/lib/models';\nimport { PagedResult } from 'verben-authentication-ui/src/lib/models';\nimport { ObjectState } from 'verben-authentication-ui/src/lib/models';\nimport { ErrorResponse } from 'verben-authentication-ui/src/lib/models';\nimport { UtilService } from './util.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImportService<T extends BaseModel> {\n constructor(\n private utilService: UtilService,\n private server: HttpWebRequestService //private cdr: ChangeDetectorRef\n ) {}\n\n // onComplete(\n // event: any[],\n // defaults: T,\n // endpoint: string | null,\n // baseUrl: string,\n // dataRef: T[],\n // cardDataRef: CardData[],\n // pagedState: PagedResult<T> | null = null,\n // stringProps: (keyof T)[] = []\n // ) {\n // const normalized = event.map((raw) => {\n // const def = defaults;\n // let merged: T = {\n // ...def,\n // ...raw,\n // Code: raw.Code ? String(raw.Code) : '',\n // };\n\n // stringProps.forEach((key) => {\n // const value = raw[key];\n // merged[key] = value != null ? String(value) : ('' as any);\n // });\n // const dateProps: (keyof T)[] = ['CreatedAt', 'UpdatedAt'];\n // dateProps.forEach((key) => {\n // const val = merged[key];\n\n // let dateObj: Date;\n\n // if (val instanceof Date) {\n // dateObj = val;\n // } else if (typeof val === 'number') {\n // dateObj = this.excelSerialToDate(val);\n // } else if (typeof val === 'string') {\n // dateObj = new Date(val);\n // } else {\n // dateObj = new Date();\n // }\n // if (isNaN(dateObj.getTime())) {\n // dateObj = new Date();\n // }\n // merged[key] = dateObj.toISOString() as any;\n // });\n\n // return merged;\n // });\n\n // if (normalized && normalized.length > 0) {\n // this.saveImportedDataBatch(\n // normalized,\n // endpoint,\n // baseUrl,\n // dataRef,\n // cardDataRef,\n // pagedState\n // );\n // }\n // }\n\n // async saveImportedDataBatch(\n // items: T[],\n // endpoint: string | null,\n // baseUrl: string,\n // dataRef: T[],\n // cardDataRef: CardData[],\n // pagedState: PagedResult<T> | null = null\n // ) {\n // if (!items?.length) return;\n\n // const preparedItems = items.map((item) => ({\n // ...item,\n // DataState: ObjectState.New,\n // Id: '',\n // }));\n\n // if (!endpoint) {\n // preparedItems.forEach((srv, idx) => {\n // const newItem = {\n // ...srv,\n // Id: dataRef.length.toString(),\n // id: dataRef.length.toString(),\n // };\n\n // const cardData: CardData = {\n // selected: false,\n // title: newItem.Id.toString(),\n // data: newItem,\n // body: [],\n // children: [],\n // };\n\n // dataRef.push(newItem);\n // cardDataRef.push(cardData);\n // if (pagedState) {\n // pagedState.Skip += 1;\n // }\n // });\n // return;\n // }\n\n // this.utilService.sendBI(true);\n // const res = await this.server.post(endpoint, preparedItems, baseUrl);\n // this.utilService.sendBI(false);\n\n // if (res instanceof ErrorResponse) {\n // return;\n // } else {\n // this.utilService.showSuccess('Operation Account saved successfully');\n // const result = res as T[];\n\n // result.forEach((srv, idx) => {\n // const newItem = {\n // ...srv,\n // Id: srv.Code,\n // id: srv.Code,\n // };\n\n // const cardData: CardData = {\n // selected: false,\n // title: newItem.Id.toString(),\n // data: newItem,\n // body: [],\n // children: [],\n // };\n\n // dataRef.push(newItem);\n // // this.cdr.detectChanges();\n // cardDataRef.push(cardData);\n // if (pagedState) {\n // pagedState.Skip += 1;\n // }\n // });\n // }\n // }\n onComplete(\n event: any[],\n defaults: T,\n endpoint: string | null,\n baseUrl: string,\n entity: string,\n updateCallback: (items: T[]) => void,\n pagedState: PagedResult<T> | null = null,\n stringProps: (keyof T)[] = [],\n numberProps: (keyof T)[] = [],\n datePropsExtras: (keyof T)[] = []\n ) {\n const normalized = event.map((raw) => {\n const def = defaults;\n let merged: T = {\n ...def,\n ...raw,\n Code: raw.Code ? String(raw.Code) : '',\n };\n\n stringProps.forEach((key) => {\n const value = raw[key];\n merged[key] = value != null ? String(value) : ('' as any);\n });\n\n numberProps.forEach((key) => {\n const value = raw[key];\n\n if (typeof value === 'string') {\n // Only parse if it's a valid number\n const num = value === '' || isNaN(Number(value)) ? 0 : Number(value);\n merged[key] = num as any;\n } else {\n merged[key] = value;\n }\n });\n\n const dateProps: (keyof T)[] = (\n ['CreatedAt', 'UpdatedAt'] as (keyof T)[]\n ).concat(datePropsExtras);\n dateProps.forEach((key) => {\n const val = merged[key];\n\n let dateObj: Date;\n\n if (val instanceof Date) {\n dateObj = val;\n } else if (typeof val === 'number') {\n dateObj = this.excelSerialToDate(val);\n } else if (typeof val === 'string') {\n dateObj = new Date(val);\n } else {\n dateObj = new Date();\n }\n if (isNaN(dateObj.getTime())) {\n dateObj = new Date();\n }\n merged[key] = dateObj.toISOString() as any;\n });\n\n return merged;\n });\n\n if (normalized && normalized.length > 0) {\n this.saveImportedDataBatch(\n normalized,\n endpoint,\n baseUrl,\n entity,\n updateCallback,\n pagedState\n );\n }\n }\n\n async saveImportedDataBatch(\n items: T[],\n endpoint: string | null,\n baseUrl: string,\n entity: string,\n updateCallback: (items: T[]) => void,\n pagedState: PagedResult<T> | null = null\n ) {\n if (!items?.length) return;\n\n const preparedItems = items.map((item) => ({\n ...item,\n DataState: ObjectState.New,\n Id: '',\n }));\n\n if (!endpoint) {\n preparedItems.forEach((srv, idx) => {\n srv.Id = `UPLOAD ${idx}`;\n srv.id = `UPLOAD ${idx}`;\n });\n updateCallback(preparedItems);\n\n if (pagedState) {\n pagedState.Skip += preparedItems.length;\n }\n\n return;\n }\n\n this.utilService.sendBI(true);\n const res = await this.server.post(endpoint, preparedItems, baseUrl);\n this.utilService.sendBI(false);\n\n if (res instanceof ErrorResponse) {\n return;\n } else {\n this.utilService.showSuccess(`${entity} upload successful`);\n const result = res as T[];\n\n result.forEach((srv, idx) => {\n srv.Id = srv.Code;\n srv.id = srv.Code;\n // const newItem = {\n // ...srv,\n // Id: srv.Code,\n // id: srv.Code,\n // };\n\n // const cardData: CardData = {\n // selected: false,\n // title: newItem.Id.toString(),\n // data: newItem,\n // body: [],\n // children: [],\n // };\n });\n\n updateCallback(result);\n\n if (pagedState) {\n pagedState.Skip += result.length;\n }\n }\n }\n\n excelSerialToDate(serial: number): Date {\n 1;\n const excelEpoch = new Date(Date.UTC(1899, 11, 30));\n const millisPerDay = 24 * 60 * 60 * 1000;\n\n return new Date(excelEpoch.getTime() + serial * millisPerDay);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpWebRequestService } from './http-web-request.service';\nimport { SearchDynamicWrapper } from 'verben-authentication-ui/src/lib/models';\nimport { SearchOperator } from 'verben-authentication-ui/src/lib/models';\nimport { SearchPropertySign } from 'verben-authentication-ui/src/lib/models';\nimport { ErrorResponse } from 'verben-authentication-ui/src/lib/models';\nimport { PagedResult } from 'verben-authentication-ui/src/lib/models';\nimport { Observable, of } from 'rxjs';\nimport { UtilService } from './util.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LabelService {\n private cache = new Map<string, string>();\n private inFlightRequests = new Map<string, Promise<string>>();\n\n constructor(\n private utilService: UtilService,\n private server: HttpWebRequestService\n ) {}\n\n async getAsyncLabel(\n value: any,\n entity: string,\n labelProp: string,\n env: string,\n key: string = 'Code'\n ): Promise<string> {\n const cacheKey = `${entity}_${labelProp}_${value}_${env}_${key}`;\n\n if (this.cache.has(cacheKey)) {\n const value = this.cache.get(cacheKey)!;\n return value;\n }\n\n var payload: SearchDynamicWrapper = {\n Fields: [labelProp],\n SearchKeyValues: [\n {\n PropertyName: key,\n EntityValue: value,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n ],\n };\n\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `SearchDynamic${entity}/0/1`,\n payload,\n env\n );\n this.utilService.sendBI(false);\n if (res instanceof ErrorResponse) {\n return '';\n } else {\n const result = (res as PagedResult<string>).Result;\n const label = result.length > 0 ? result[0] : value;\n this.cache.set(cacheKey, label);\n return label;\n }\n }\n\n async getAsyncLabelWithRequestTracking(\n value: any,\n entity: string,\n labelProp: string,\n env: string,\n key: string = 'Code'\n ): Promise<string> {\n const cacheKey = `${entity}_${labelProp}_${value}_${env}_${key}`;\n\n if (this.cache.has(cacheKey)) {\n return this.cache.get(cacheKey)!;\n }\n\n if (this.inFlightRequests.has(cacheKey)) {\n return this.inFlightRequests.get(cacheKey)!;\n }\n\n const requestPromise = (async () => {\n const payload: SearchDynamicWrapper = {\n Fields: [labelProp],\n SearchKeyValues: [\n {\n PropertyName: key,\n EntityValue: value,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n ],\n };\n\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `SearchDynamic${entity}/0/1`,\n payload,\n env\n );\n this.utilService.sendBI(false);\n\n let label: string;\n if (res instanceof ErrorResponse) {\n label = '';\n } else {\n const result = (res as PagedResult<string>).Result;\n label = result.length > 0 ? result[0] : value;\n }\n\n this.cache.set(cacheKey, label);\n this.inFlightRequests.delete(cacheKey);\n\n return label;\n })();\n\n // Save the in-flight request\n this.inFlightRequests.set(cacheKey, requestPromise);\n\n return requestPromise;\n }\n\n async getAsyncLabelWithRequestTrackingNoGateway(\n value: any,\n entity: string,\n labelProp: string,\n env: string,\n controller: string,\n key: string = 'Code'\n ): Promise<string> {\n const cacheKey = `${entity}_${labelProp}_${value}_${env}_${key}_${controller}`;\n\n if (this.cache.has(cacheKey)) {\n return this.cache.get(cacheKey)!;\n }\n\n if (this.inFlightRequests.has(cacheKey)) {\n return this.inFlightRequests.get(cacheKey)!;\n }\n\n const requestPromise = (async () => {\n const payload: SearchDynamicWrapper = {\n Fields: [labelProp],\n SearchKeyValues: [\n {\n PropertyName: key,\n EntityValue: value,\n Operator: SearchOperator.And,\n Sign: SearchPropertySign.EQ,\n },\n ],\n };\n\n this.utilService.sendBI(true);\n const res = await this.server.post(\n `${controller}/SearchDynamic${entity}s/0/1`,\n payload,\n env\n );\n this.utilService.sendBI(false);\n\n let label: string;\n if (res instanceof ErrorResponse) {\n label = '';\n } else {\n const result = (res as PagedResult<string>).Result;\n label = result.length > 0 ? result[0] : value;\n }\n\n this.cache.set(cacheKey, label);\n this.inFlightRequests.delete(cacheKey);\n\n return label;\n })();\n\n // Save the in-flight request\n this.inFlightRequests.set(cacheKey, requestPromise);\n\n return requestPromise;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.EnvironmentService","i2.EnvironmentService","i1.UtilService","i2.HttpWebRequestService"],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "verben-authentication-ui",
3
- "version": "1.0.23",
3
+ "version": "1.0.26",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "^18.2.0",
6
6
  "@angular/common": "^14.0.0 || ^18.0.0",
7
7
  "@angular/core": "^14.0.0 || ^18.0.0",
8
- "verben-ng-ui": "^1.2.27"
8
+ "verben-ng-ui": "^1.2.55"
9
9
  },
10
10
  "dependencies": {
11
11
  "tslib": "^2.3.0"
@@ -35,18 +35,18 @@
35
35
  "esm": "./esm2022/src/lib/base/verben-authentication-ui-src-lib-base.mjs",
36
36
  "default": "./fesm2022/verben-authentication-ui-src-lib-base.mjs"
37
37
  },
38
- "./src/lib/models": {
39
- "types": "./src/lib/models/index.d.ts",
40
- "esm2022": "./esm2022/src/lib/models/verben-authentication-ui-src-lib-models.mjs",
41
- "esm": "./esm2022/src/lib/models/verben-authentication-ui-src-lib-models.mjs",
42
- "default": "./fesm2022/verben-authentication-ui-src-lib-models.mjs"
43
- },
44
38
  "./src/lib/pipes": {
45
39
  "types": "./src/lib/pipes/index.d.ts",
46
40
  "esm2022": "./esm2022/src/lib/pipes/verben-authentication-ui-src-lib-pipes.mjs",
47
41
  "esm": "./esm2022/src/lib/pipes/verben-authentication-ui-src-lib-pipes.mjs",
48
42
  "default": "./fesm2022/verben-authentication-ui-src-lib-pipes.mjs"
49
43
  },
44
+ "./src/lib/models": {
45
+ "types": "./src/lib/models/index.d.ts",
46
+ "esm2022": "./esm2022/src/lib/models/verben-authentication-ui-src-lib-models.mjs",
47
+ "esm": "./esm2022/src/lib/models/verben-authentication-ui-src-lib-models.mjs",
48
+ "default": "./fesm2022/verben-authentication-ui-src-lib-models.mjs"
49
+ },
50
50
  "./src/lib/services": {
51
51
  "types": "./src/lib/services/index.d.ts",
52
52
  "esm2022": "./esm2022/src/lib/services/verben-authentication-ui-src-lib-services.mjs",
@@ -107,23 +107,17 @@
107
107
  "esm": "./esm2022/src/lib/components/role-control/verben-authentication-ui-src-lib-components-role-control.mjs",
108
108
  "default": "./fesm2022/verben-authentication-ui-src-lib-components-role-control.mjs"
109
109
  },
110
- "./src/lib/components/sign-in": {
111
- "types": "./src/lib/components/sign-in/index.d.ts",
112
- "esm2022": "./esm2022/src/lib/components/sign-in/verben-authentication-ui-src-lib-components-sign-in.mjs",
113
- "esm": "./esm2022/src/lib/components/sign-in/verben-authentication-ui-src-lib-components-sign-in.mjs",
114
- "default": "./fesm2022/verben-authentication-ui-src-lib-components-sign-in.mjs"
115
- },
116
110
  "./src/lib/components/reset-password": {
117
111
  "types": "./src/lib/components/reset-password/index.d.ts",
118
112
  "esm2022": "./esm2022/src/lib/components/reset-password/verben-authentication-ui-src-lib-components-reset-password.mjs",
119
113
  "esm": "./esm2022/src/lib/components/reset-password/verben-authentication-ui-src-lib-components-reset-password.mjs",
120
114
  "default": "./fesm2022/verben-authentication-ui-src-lib-components-reset-password.mjs"
121
115
  },
122
- "./src/lib/components/sign-up": {
123
- "types": "./src/lib/components/sign-up/index.d.ts",
124
- "esm2022": "./esm2022/src/lib/components/sign-up/verben-authentication-ui-src-lib-components-sign-up.mjs",
125
- "esm": "./esm2022/src/lib/components/sign-up/verben-authentication-ui-src-lib-components-sign-up.mjs",
126
- "default": "./fesm2022/verben-authentication-ui-src-lib-components-sign-up.mjs"
116
+ "./src/lib/components/sign-in": {
117
+ "types": "./src/lib/components/sign-in/index.d.ts",
118
+ "esm2022": "./esm2022/src/lib/components/sign-in/verben-authentication-ui-src-lib-components-sign-in.mjs",
119
+ "esm": "./esm2022/src/lib/components/sign-in/verben-authentication-ui-src-lib-components-sign-in.mjs",
120
+ "default": "./fesm2022/verben-authentication-ui-src-lib-components-sign-in.mjs"
127
121
  },
128
122
  "./src/lib/components/sso": {
129
123
  "types": "./src/lib/components/sso/index.d.ts",
@@ -131,24 +125,30 @@
131
125
  "esm": "./esm2022/src/lib/components/sso/verben-authentication-ui-src-lib-components-sso.mjs",
132
126
  "default": "./fesm2022/verben-authentication-ui-src-lib-components-sso.mjs"
133
127
  },
128
+ "./src/lib/components/sign-up": {
129
+ "types": "./src/lib/components/sign-up/index.d.ts",
130
+ "esm2022": "./esm2022/src/lib/components/sign-up/verben-authentication-ui-src-lib-components-sign-up.mjs",
131
+ "esm": "./esm2022/src/lib/components/sign-up/verben-authentication-ui-src-lib-components-sign-up.mjs",
132
+ "default": "./fesm2022/verben-authentication-ui-src-lib-components-sign-up.mjs"
133
+ },
134
134
  "./src/lib/components/two-factor-auth-otp": {
135
135
  "types": "./src/lib/components/two-factor-auth-otp/index.d.ts",
136
136
  "esm2022": "./esm2022/src/lib/components/two-factor-auth-otp/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs",
137
137
  "esm": "./esm2022/src/lib/components/two-factor-auth-otp/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs",
138
138
  "default": "./fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-otp.mjs"
139
139
  },
140
- "./src/lib/components/two-factor-auth-setup": {
141
- "types": "./src/lib/components/two-factor-auth-setup/index.d.ts",
142
- "esm2022": "./esm2022/src/lib/components/two-factor-auth-setup/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs",
143
- "esm": "./esm2022/src/lib/components/two-factor-auth-setup/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs",
144
- "default": "./fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs"
145
- },
146
140
  "./src/lib/components/user-management": {
147
141
  "types": "./src/lib/components/user-management/index.d.ts",
148
142
  "esm2022": "./esm2022/src/lib/components/user-management/verben-authentication-ui-src-lib-components-user-management.mjs",
149
143
  "esm": "./esm2022/src/lib/components/user-management/verben-authentication-ui-src-lib-components-user-management.mjs",
150
144
  "default": "./fesm2022/verben-authentication-ui-src-lib-components-user-management.mjs"
151
145
  },
146
+ "./src/lib/components/two-factor-auth-setup": {
147
+ "types": "./src/lib/components/two-factor-auth-setup/index.d.ts",
148
+ "esm2022": "./esm2022/src/lib/components/two-factor-auth-setup/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs",
149
+ "esm": "./esm2022/src/lib/components/two-factor-auth-setup/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs",
150
+ "default": "./fesm2022/verben-authentication-ui-src-lib-components-two-factor-auth-setup.mjs"
151
+ },
152
152
  "./src/lib/components/user-request": {
153
153
  "types": "./src/lib/components/user-request/index.d.ts",
154
154
  "esm2022": "./esm2022/src/lib/components/user-request/verben-authentication-ui-src-lib-components-user-request.mjs",
@@ -1,8 +1,7 @@
1
1
  import { Observable } from 'rxjs';
2
+ import { ErrorResponse, PagedResult, User } from 'verben-authentication-ui/src/lib/models';
2
3
  import { HttpWebRequestService } from 'verben-authentication-ui/src/lib/services';
3
- import { ErrorResponse } from 'verben-authentication-ui/src/lib/models';
4
- import { PagedResult } from 'verben-authentication-ui/src/lib/models';
5
- import { User } from 'verben-authentication-ui/src/lib/models';
4
+ import { DropdownLoadEvent } from 'verben-ng-ui';
6
5
  import * as i0 from "@angular/core";
7
6
  export declare class UserManagementService {
8
7
  private httpService;
@@ -39,6 +38,7 @@ export declare class UserManagementService {
39
38
  * @returns Observable containing the delete operation result
40
39
  */
41
40
  deleteUsers(userIds: string[]): Observable<any>;
41
+ loadEntities<T>(entity: string, fields: string[], env: string, event?: DropdownLoadEvent | null): Promise<T[]>;
42
42
  static ɵfac: i0.ɵɵFactoryDeclaration<UserManagementService, never>;
43
43
  static ɵprov: i0.ɵɵInjectableDeclaration<UserManagementService>;
44
44
  }
@@ -1,13 +1,18 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { FormBuilder, FormGroup } from '@angular/forms';
3
- import { CardData } from 'verben-ng-ui';
4
- import { Role } from 'verben-authentication-ui/src/lib/models';
5
- import { Tag } from 'verben-authentication-ui/src/lib/models';
6
- import { Status } from 'verben-authentication-ui/src/lib/models';
7
- import { User } from 'verben-authentication-ui/src/lib/models';
3
+ import { Role, Status, Tag, User } from 'verben-authentication-ui/src/lib/models';
4
+ import { EnvironmentService } from 'verben-authentication-ui/src/lib/services';
5
+ import { CardData, DropdownChangeEvent } from 'verben-ng-ui';
6
+ import { UserManagementService } from '../services/user-management.service';
8
7
  import * as i0 from "@angular/core";
8
+ interface Warehouse {
9
+ Name: string;
10
+ Code: string;
11
+ }
9
12
  export declare class UserManagementFormComponent {
10
13
  private fb;
14
+ private userManagementService;
15
+ private envService;
11
16
  set currentData(value: CardData | null);
12
17
  roles: Role[];
13
18
  tags: Tag[];
@@ -15,10 +20,14 @@ export declare class UserManagementFormComponent {
15
20
  onFormSave: EventEmitter<Partial<User>>;
16
21
  form: FormGroup;
17
22
  statusOptions: Status[];
18
- constructor(fb: FormBuilder);
23
+ warehouses: Warehouse[];
24
+ constructor(fb: FormBuilder, userManagementService: UserManagementService, envService: EnvironmentService);
19
25
  ngOnInit(): void;
26
+ loadWarehouses(): Promise<void>;
27
+ onWarehouseChange(event: DropdownChangeEvent): void;
20
28
  onSave(): void;
21
29
  onDelete(): void;
22
30
  static ɵfac: i0.ɵɵFactoryDeclaration<UserManagementFormComponent, never>;
23
31
  static ɵcmp: i0.ɵɵComponentDeclaration<UserManagementFormComponent, "lib-user-request-form", never, { "currentData": { "alias": "currentData"; "required": false; }; "roles": { "alias": "roles"; "required": false; }; "tags": { "alias": "tags"; "required": false; }; }, { "switchView": "switchView"; "onFormSave": "onFormSave"; }, never, never, false, never>;
24
32
  }
33
+ export {};
@@ -1,20 +1,15 @@
1
1
  import { WritableSignal } from '@angular/core';
2
- import { UtilService } from 'verben-authentication-ui/src/lib/services';
3
2
  import { PagedResult } from 'verben-authentication-ui/src/lib/models';
4
- import { HttpWebRequestService } from 'verben-authentication-ui/src/lib/services';
5
- import { CardData, IDataFilter, DropdownChangeEvent, ColumnDefinition, CardDataViewComponent, DataViewComponent, FormGroupConfig } from 'verben-ng-ui';
3
+ import { HttpWebRequestService, UtilService } from 'verben-authentication-ui/src/lib/services';
4
+ import { FormBuilder } from '@angular/forms';
5
+ import { ActivatedRoute } from '@angular/router';
6
+ import { Subject } from 'rxjs';
7
+ import { UserAccessRequestService } from 'verben-authentication-ui/src/lib/components/user-request-approval';
8
+ import { ConditionOptions, Role, Status, Tag, User } from 'verben-authentication-ui/src/lib/models';
6
9
  import { EnvironmentService } from 'verben-authentication-ui/src/lib/services';
10
+ import { CardData, CardDataViewComponent, ColumnDefinition, DataViewComponent, DropdownChangeEvent, FormGroupConfig, IDataFilter } from 'verben-ng-ui';
7
11
  import { UserManagementService } from './services/user-management.service';
8
- import { User } from 'verben-authentication-ui/src/lib/models';
9
12
  import { UserManagementFormComponent } from './user-management-form/user-management-form.component';
10
- import { Subject } from 'rxjs';
11
- import { ConditionOptions } from 'verben-authentication-ui/src/lib/models';
12
- import { ActivatedRoute } from '@angular/router';
13
- import { UserAccessRequestService } from 'verben-authentication-ui/src/lib/components/user-request-approval';
14
- import { Role } from 'verben-authentication-ui/src/lib/models';
15
- import { Tag } from 'verben-authentication-ui/src/lib/models';
16
- import { FormBuilder } from '@angular/forms';
17
- import { Status } from 'verben-authentication-ui/src/lib/models';
18
13
  import * as i0 from "@angular/core";
19
14
  interface TestParentObject {
20
15
  Id: string;
@@ -15,4 +15,5 @@ export interface User extends BaseModel {
15
15
  Role?: Role;
16
16
  Status: Status;
17
17
  SignupType: OAuthType;
18
+ Warehouses?: string;
18
19
  }
@@ -7,6 +7,7 @@ export interface Environment {
7
7
  ReportingAPI: string;
8
8
  MessagingAPI: string;
9
9
  WorkflowAPI: string;
10
+ RevenueAPI: string;
10
11
  Tenant: string;
11
12
  APIKey: string;
12
13
  Secret: string;