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.
- package/esm2022/src/lib/components/user-management/services/user-management.service.mjs +24 -2
- package/esm2022/src/lib/components/user-management/user-management-form/user-management-form.component.mjs +41 -8
- package/esm2022/src/lib/components/user-management/user-management.component.mjs +5 -7
- package/esm2022/src/lib/models/user.mjs +1 -1
- package/esm2022/src/lib/services/environment.service.mjs +2 -2
- package/fesm2022/verben-authentication-ui-src-lib-components-user-management.mjs +126 -72
- package/fesm2022/verben-authentication-ui-src-lib-components-user-management.mjs.map +1 -1
- package/fesm2022/verben-authentication-ui-src-lib-services.mjs.map +1 -1
- package/package.json +25 -25
- package/src/lib/components/user-management/services/user-management.service.d.ts +3 -3
- package/src/lib/components/user-management/user-management-form/user-management-form.component.d.ts +15 -6
- package/src/lib/components/user-management/user-management.component.d.ts +7 -12
- package/src/lib/models/user.d.ts +1 -0
- package/src/lib/services/environment.service.d.ts +1 -0
|
@@ -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":"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"}
|
|
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.
|
|
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.
|
|
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-
|
|
123
|
-
"types": "./src/lib/components/sign-
|
|
124
|
-
"esm2022": "./esm2022/src/lib/components/sign-
|
|
125
|
-
"esm": "./esm2022/src/lib/components/sign-
|
|
126
|
-
"default": "./fesm2022/verben-authentication-ui-src-lib-components-sign-
|
|
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 {
|
|
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
|
}
|
package/src/lib/components/user-management/user-management-form/user-management-form.component.d.ts
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { FormBuilder, FormGroup } from '@angular/forms';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
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
|
-
|
|
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 {
|
|
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;
|
package/src/lib/models/user.d.ts
CHANGED