@yomotech/view-toolkit 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/fesm2022/yomotech-view-toolkit.mjs +1893 -0
  2. package/fesm2022/yomotech-view-toolkit.mjs.map +1 -0
  3. package/package.json +47 -36
  4. package/types/yomotech-view-toolkit.d.ts +301 -0
  5. package/ng-package.json +0 -7
  6. package/src/lib/app-version.ts +0 -2
  7. package/src/lib/containers/card/card.component.css +0 -0
  8. package/src/lib/containers/card/card.component.html +0 -449
  9. package/src/lib/containers/card/card.component.ts +0 -471
  10. package/src/lib/containers/form/form.component.css +0 -0
  11. package/src/lib/containers/form/form.component.html +0 -1
  12. package/src/lib/containers/form/form.component.ts +0 -12
  13. package/src/lib/containers/grid/grid.component.css +0 -0
  14. package/src/lib/containers/grid/grid.component.html +0 -1
  15. package/src/lib/containers/grid/grid.component.ts +0 -12
  16. package/src/lib/containers/pagination/pagination.component.css +0 -0
  17. package/src/lib/containers/pagination/pagination.component.html +0 -1
  18. package/src/lib/containers/pagination/pagination.component.ts +0 -12
  19. package/src/lib/services/app-version-reset.service.ts +0 -59
  20. package/src/lib/services/config.service.ts +0 -128
  21. package/src/lib/services/couchdb.ts +0 -224
  22. package/src/lib/services/mobile-keycloak.service.ts +0 -116
  23. package/src/lib/services/network-log.service.ts +0 -27
  24. package/src/lib/services/notification.service.ts +0 -26
  25. package/src/lib/services/pouchdb.service.ts +0 -183
  26. package/src/lib/services/request.service.ts +0 -125
  27. package/src/lib/services/utility.service.ts +0 -593
  28. package/src/lib/view-toolkit.module.ts +0 -25
  29. package/src/lib/view-toolkit.spec.ts +0 -23
  30. package/src/lib/view-toolkit.ts +0 -15
  31. package/src/public-api.ts +0 -22
  32. package/tsconfig.lib.json +0 -17
  33. package/tsconfig.lib.prod.json +0 -11
  34. package/tsconfig.spec.json +0 -15
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yomotech-view-toolkit.mjs","sources":["../../../projects/view-toolkit/src/lib/containers/grid/grid.component.ts","../../../projects/view-toolkit/src/lib/containers/grid/grid.component.html","../../../projects/view-toolkit/src/lib/services/request.service.ts","../../../projects/view-toolkit/src/lib/services/utility.service.ts","../../../projects/view-toolkit/src/lib/containers/card/card.component.ts","../../../projects/view-toolkit/src/lib/containers/card/card.component.html","../../../projects/view-toolkit/src/lib/containers/form/form.component.ts","../../../projects/view-toolkit/src/lib/containers/form/form.component.html","../../../projects/view-toolkit/src/lib/containers/pagination/pagination.component.ts","../../../projects/view-toolkit/src/lib/containers/pagination/pagination.component.html","../../../projects/view-toolkit/src/lib/view-toolkit.module.ts","../../../projects/view-toolkit/src/lib/app-version.ts","../../../projects/view-toolkit/src/lib/services/app-version-reset.service.ts","../../../projects/view-toolkit/src/lib/services/couchdb.ts","../../../projects/view-toolkit/src/lib/services/config.service.ts","../../../projects/view-toolkit/src/lib/services/mobile-keycloak.service.ts","../../../projects/view-toolkit/src/lib/services/network-log.service.ts","../../../projects/view-toolkit/src/lib/services/notification.service.ts","../../../projects/view-toolkit/src/lib/services/pouchdb.service.ts","../../../projects/view-toolkit/src/public-api.ts","../../../projects/view-toolkit/src/yomotech-view-toolkit.ts"],"sourcesContent":["import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vt-grid',\r\n imports: [],\r\n standalone: true,\r\n templateUrl: './grid.component.html',\r\n styleUrl: './grid.component.css',\r\n})\r\nexport class GridComponent {\r\n\r\n}\r\n","<p>grid works!</p>\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RequestService {\r\n pageSize: number = 0;\r\n constructor(private http: HttpClient) { }\r\n\r\n getAllProject() {\r\n return this.http.get(\"../assets/main/layout_schema.json\");\r\n }\r\n\r\n getEnvironmet(selectedProject: any) {\r\n return this.http.get(`../../assets/projects/${selectedProject}/environments/environment.json`);\r\n }\r\n\r\n getSectionInfo(url: string, envUrl?: any, passToken: boolean = false, selectedProject: string = '', userInfo: any = null) {\r\n if (envUrl) {\r\n if (passToken && selectedProject) {\r\n return this.http.get(envUrl + url, {\r\n headers: this.createAuthorizationHeader(userInfo),\r\n })\r\n } else {\r\n return this.http.get(envUrl + url);\r\n }\r\n } else {\r\n return this.http.get(url);\r\n };\r\n }\r\n\r\n getMainLayout(selectedProject: any) {\r\n return this.http.get(`../assets/projects/${selectedProject}/main/layout_schema.json`)\r\n }\r\n\r\n getInfo(url: string) {\r\n return this.http.get(url);\r\n }\r\n\r\n dynamicCall(method: string = \"get\", body: any = null, url: string, passToken: boolean = false, selectedProject: string = '', userInfo: any = null) {\r\n switch (method.toLowerCase()) {\r\n case 'get':\r\n if (passToken && selectedProject) {\r\n return this.http.get(url, {\r\n headers: this.createAuthorizationHeader(userInfo),\r\n })\r\n } else {\r\n return this.http.get(url);\r\n }\r\n\r\n case 'post':\r\n if (passToken && selectedProject) {\r\n return this.http.post(url, body, {\r\n headers: this.createAuthorizationHeader(userInfo),\r\n })\r\n } else {\r\n return this.http.post(url, body);\r\n }\r\n case 'put':\r\n if (passToken && selectedProject) {\r\n return this.http.put(url, body, {\r\n headers: this.createAuthorizationHeader(userInfo),\r\n })\r\n } else {\r\n return this.http.put(url, body);\r\n }\r\n case 'delete':\r\n if (passToken && selectedProject) {\r\n return this.http.delete(url, {\r\n headers: this.createAuthorizationHeader(userInfo),\r\n })\r\n } else {\r\n return this.http.delete(url);\r\n };\r\n case 'patch':\r\n return this.http.patch(url, body);\r\n default:\r\n throw new Error(`Unsupported HTTP method: ${method}`);\r\n }\r\n }\r\n\r\n createAuthorizationHeader(userInfo: any, tokenExist: boolean = false) {\r\n let authHeaders: HttpHeaders = new HttpHeaders();\r\n let token = tokenExist ? userInfo : userInfo && userInfo.jwt ? userInfo.jwt : userInfo?.authToken ? userInfo?.authToken : '';\r\n return authHeaders.set(\r\n 'Authorization',\r\n 'Bearer ' + token\r\n )\r\n }\r\n\r\n getLoginUser(token: any) {\r\n return this.http.get(\"https://dev-78992019.okta.com/oauth2/default/v1/userinfo\", {\r\n headers: this.createAuthorizationHeader(token, true),\r\n })\r\n }\r\n\r\n saveDb(token: any, userInfo: any, order: any = {}) {\r\n if (token) {\r\n const headers = new HttpHeaders({\r\n 'Authorization': `Bearer ${token}`,\r\n 'Accept': 'application/json'\r\n });\r\n let url2: any = `${userInfo.p5_backend_url}/assetsmobileservice/Zeiterfassung/registerTimeRecording?company=${userInfo.p5_group}/${userInfo.p5_client}/${userInfo.p5_plant ? userInfo.p5_plant : \" \"}&appVersion=1&resourceNo=${userInfo.p5_resource_no}`\r\n console.log('userInfo: ', userInfo);\r\n this.http.post(url2, order, { headers }).subscribe({\r\n next: res => {\r\n console.log('Save-res: ', res);\r\n }\r\n })\r\n }\r\n }\r\n\r\n getSaveOrder(token: any, userInfo: any, fromDate: any, toDate: any) {\r\n // if (token) {\r\n const headers = new HttpHeaders({\r\n 'Authorization': `Bearer ${token}`,\r\n 'Accept': 'application/json'\r\n });\r\n let url = `${userInfo.p5_backend_url}/assetsmobileservice/Zeiterfassung/requestBookedTimeRecording?resourceNo=${userInfo.p5_resource_no}&workDayFrom=${fromDate}&workDayTo=${toDate}&company=${userInfo.p5_group}/${userInfo.p5_client}/${userInfo.p5_plant ? userInfo.p5_plant : \" \"}&appVersion=1`\r\n return this.http.post(url, {}, { headers })\r\n // }\r\n }\r\n}\r\n\r\n","import { Platform } from '@angular/cdk/platform';\r\nimport { Injectable } from '@angular/core';\r\nimport { Preferences } from '@capacitor/preferences';\r\nimport { RequestService } from './request.service';\r\nimport { loadStripe } from '@stripe/stripe-js';\r\nimport { lastValueFrom } from 'rxjs';\r\n// import { Couchdb } from './couchdb';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UtilityService {\r\n stripe: any = null;\r\n\r\n constructor(private platform: Platform,\r\n // private couchdbService: Couchdb, \r\n private requestService: RequestService) { }\r\n\r\n getScope(scope: any) {\r\n let propertyScope = \"\";\r\n let start = scope?.indexOf(\"#/\") + 2;\r\n let end = scope?.indexOf(\"/\", start);\r\n if (start && end) {\r\n propertyScope = scope.substring(start, end);\r\n }\r\n return propertyScope;\r\n }\r\n\r\n getProperty(scope: any, itemInfo?: any) {\r\n const property = scope?.reference ? scope?.reference.split('/').pop() : '';\r\n return { key: property, productSchema: itemInfo.propertySchema[property] };\r\n }\r\n\r\n async setStorage(key: string, value: any) {\r\n if ((this.platform.ANDROID || this.platform.IOS) && !this.platform?.isBrowser) {\r\n await Preferences.set({ key, value });\r\n } else {\r\n sessionStorage.setItem(key, value);\r\n }\r\n }\r\n\r\n async getStorage(key: string) {\r\n if ((this.platform.ANDROID || this.platform.IOS) && !this.platform?.isBrowser) {\r\n const { value } = await Preferences.get({ key });\r\n return value;\r\n } else {\r\n const storage = sessionStorage.getItem(key);\r\n return storage;\r\n }\r\n }\r\n\r\n async setLocalStorage(key: string, value: any) {\r\n const stringValue = JSON.stringify(value);\r\n if ((this.platform.ANDROID || this.platform.IOS) && !this.platform?.isBrowser) {\r\n await Preferences.set({ key, value: stringValue });\r\n } else {\r\n localStorage.setItem(key, stringValue);\r\n }\r\n }\r\n\r\n async removeLocalStorage(keyName: string) {\r\n if ((this.platform.ANDROID || this.platform.IOS) && !this.platform?.isBrowser) {\r\n await Preferences.remove({ key: keyName });\r\n } else {\r\n localStorage.removeItem(keyName);\r\n }\r\n }\r\n\r\n async removeStorage(key: string) {\r\n if ((this.platform.ANDROID || this.platform.IOS) && !this.platform?.isBrowser) {\r\n await Preferences.remove({ key });\r\n } else {\r\n sessionStorage.removeItem(key);\r\n }\r\n }\r\n\r\n async getLocalStorage(key: string) {\r\n if ((this.platform.ANDROID || this.platform.IOS) && !this.platform?.isBrowser) {\r\n const { value } = await Preferences.get({ key });\r\n return value ? JSON.parse(value) : null;\r\n } else {\r\n const value = localStorage.getItem(key);\r\n return value ? JSON.parse(value) : null;\r\n }\r\n }\r\n\r\n async showAllProjects() {\r\n await this.removeStorage('selectedProject');\r\n window.location.reload();\r\n }\r\n\r\n parseBodyObject(obj: any): any {\r\n const jsonString = JSON.stringify(obj);\r\n const replacedString = jsonString.replace(/{{(.*?)}}/g, (match, expression) => {\r\n try {\r\n return new Function(`return ${expression.trim()};`).call(this);\r\n } catch (error) {\r\n console.error(`Error evaluating expression: ${expression}`, error);\r\n return match;\r\n }\r\n });\r\n return JSON.parse(replacedString);\r\n }\r\n\r\n getTotalPrice(tableitemInfo: any): number {\r\n const total = tableitemInfo.data.reduce((total: any, item: any) => {\r\n if (item.quantity && !isNaN(item.quantity)) {\r\n return total + (item.unitPrice * item.quantity);\r\n }\r\n return total;\r\n }, 0);\r\n return total.toFixed(2);\r\n }\r\n\r\n getTotalQuantity(tableitemInfo: any) {\r\n let quantity = 0;\r\n tableitemInfo.data.forEach((cartItem: any) => {\r\n if (cartItem.quantity) {\r\n quantity = cartItem.quantity + quantity;\r\n }\r\n });\r\n return quantity;\r\n }\r\n\r\n replacePaginationParams(url: string, currentPage: number, pageSize: number): string {\r\n if (url.includes('{{pageNumber}}')) {\r\n url = url.replace(/{{pageNumber}}/g, currentPage.toString());\r\n }\r\n\r\n if (url.includes('{{pageSize}}') && pageSize !== undefined) {\r\n url = url.replace(/{{pageSize}}/g, pageSize.toString());\r\n }\r\n return url;\r\n }\r\n\r\n customButton(option: any, propertySchema: any, projectSeleted: any, environment: any) {\r\n if (option.url) {\r\n let body = {}\r\n if (option.propertyKey) {\r\n body = Object.keys(propertySchema[option.propertyKey]).reduce((acc, key) => {\r\n acc[key] = propertySchema[option.propertyKey][key]?.value;\r\n return acc;\r\n }, {} as Record<string, string>);\r\n }\r\n let url = environment?.apiUrl + option.url;\r\n this.requestService.dynamicCall(option.method, body, url, option.passToken, projectSeleted).subscribe((res) => {\r\n window.location.reload();\r\n })\r\n }\r\n }\r\n\r\n setDefaultUser(item: any, userInfo: any, environment: any) {\r\n let schema: any = item;\r\n let role = \"default\";\r\n if (environment?.login?.type === \"keycloak\") {\r\n if (userInfo?.name && item.options?.userRoleMapping) {\r\n schema = item.options[item.options?.userRoleMapping[role]];\r\n }\r\n } else if (environment?.login?.type === \"jwtToken\") {\r\n if (item.options?.loginResponse && item.options?.loginResponse.storageType == \"sessionStorage\") {\r\n if (userInfo) {\r\n role = userInfo[item.options?.loginResponse.role]?.toLowerCase();\r\n }\r\n schema = item.options[item.options?.userRoleMapping[role]];\r\n }\r\n }\r\n return schema;\r\n }\r\n\r\n setTableData(data: any, options: any = {}, tableitemInfo: any, projectSeleted: any) {\r\n if (options?.pagination?.pageSize && options?.pagination?.scrollable) {\r\n tableitemInfo.pageSize = options?.pagination?.pageSize;\r\n }\r\n let records: any;\r\n if (options.dataKey) {\r\n records = data[options.dataKey];\r\n } else if (options.key && data?._embedded) {\r\n records = data?._embedded[options.key];\r\n } else {\r\n if (!data?._embedded?.products && !Array.isArray(data)) {\r\n records = [data];\r\n } else {\r\n records = data?._embedded?.products;\r\n }\r\n }\r\n tableitemInfo.totalRecords = data?.totalPages ? data?.totalPages : data?.page?.totalElements;\r\n tableitemInfo.data = records.map((record: any) => ({\r\n ...record,\r\n ...(record.hasOwnProperty('imageUrl') && record.imageUrl\r\n ? { imageUrl: `${projectSeleted}/pages/images/` + record.imageUrl.split('/').pop() }\r\n : {})\r\n }));\r\n return tableitemInfo;\r\n }\r\n\r\n setOktaWebCredential(environment: any, projectName: any) {\r\n return {\r\n logo: `favicon.ico`,\r\n baseUrl: environment.login.web.issuer.split('/oauth2')[0],\r\n clientId: environment.login.web.clientId,\r\n redirectUri: environment.login.web.redirectUri,\r\n authParams: {\r\n pkce: true,\r\n issuer: environment.login.web.issuer,\r\n scopes: environment.login.web.scopes\r\n }\r\n }\r\n }\r\n\r\n setOktaMobileCredential(environment: any) {\r\n return {\r\n appId: environment.login.mobile.clientId,\r\n authorizationBaseUrl: environment.login.mobile.authorizationBaseUrl,\r\n accessTokenEndpoint: environment.login.mobile.accessTokenEndpoint,\r\n redirectUrl: environment.login.mobile.redirectUrl,\r\n scope: environment.login.mobile.scope,\r\n responseType: environment.login.mobile.responseType,\r\n pkceEnabled: environment.login.mobile.pkceEnabled\r\n }\r\n }\r\n\r\n\r\n async setupStripePaymentForm(\r\n environment: any,\r\n form: any,\r\n onCardChange: (message: string) => void\r\n ): Promise<void> {\r\n let hasCreditCard = false;\r\n\r\n if (form.layoutSchema?.formSections) {\r\n form.layoutSchema.formSections.forEach((formSection: any) => {\r\n if (formSection.formFields?.length > 0) {\r\n const foundCreditCard = formSection.formFields.some((formField: any) => {\r\n const scopeKey = this.getScope(formField.scope?.reference);\r\n return form.propertySchema[scopeKey] &&\r\n form.propertySchema[scopeKey][formField.scope?.reference.split('/').pop()]?.type === 'carditCard';\r\n });\r\n if (foundCreditCard) {\r\n hasCreditCard = true;\r\n return;\r\n }\r\n }\r\n });\r\n }\r\n\r\n if (hasCreditCard) {\r\n this.stripe = await loadStripe(environment.stripePublishableKey);\r\n const elements = this.stripe.elements();\r\n const cardElement = elements.create('card', { hidePostalCode: true });\r\n cardElement.mount('#card-element');\r\n\r\n cardElement.on('change', (event: { complete: boolean, error?: { message: string } }) => {\r\n if (event.complete) {\r\n onCardChange('');\r\n } else if (event.error) {\r\n onCardChange(event.error.message);\r\n }\r\n });\r\n }\r\n }\r\n\r\n async formData(form: any, environment: any, cartInfo: any): Promise<void> {\r\n if (form.layoutSchema?.formSections) {\r\n for (const formSection of form.layoutSchema.formSections) {\r\n if (formSection.formFields?.length > 0) {\r\n for (const formField of formSection.formFields) {\r\n const scope = this.getScope(formField.scope?.reference);\r\n const fieldKey = formField.scope?.reference.split('/').pop();\r\n const field = form.propertySchema?.[scope]?.[fieldKey];\r\n\r\n if (!field) continue;\r\n\r\n // Checkbox logic with copy action\r\n if (field.type === 'checkbox' && formField.option?.innerAction?.action === 'copy') {\r\n const fromSchema = form.propertySchema[formField.option.innerAction.from];\r\n const toSchema = form.propertySchema[formField.option.innerAction.to];\r\n const keys = Object.keys(fromSchema);\r\n\r\n keys.forEach((key: any) => {\r\n if (toSchema[key]) {\r\n const sourceValue = fromSchema?.[key]?.value;\r\n toSchema[key].value = sourceValue || '';\r\n }\r\n });\r\n }\r\n\r\n // Dropdown logic (async data fetching)\r\n if (field.type === 'dropdown' && formField.option?.data_url) {\r\n try {\r\n const res: any = await lastValueFrom(this.requestService.getInfo(environment.apiUrl + formField.option.data_url));\r\n const key = Object.keys(res._embedded || {})[0];\r\n if (key) {\r\n field.data = res._embedded[key];\r\n }\r\n } catch (err) {\r\n console.error('Failed to load dropdown data', err);\r\n }\r\n }\r\n\r\n // Cart info logic for string fields\r\n if (field.type === 'string' && formField?.option?.cartInfo) {\r\n if (field.value?.toString()?.includes('{{quantity}}')) {\r\n field.value = cartInfo.quantity;\r\n } else if (field.value?.toString()?.includes('{{totalPrice}}')) {\r\n field.value = cartInfo.totalPrice;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n async processData(\r\n data: any,\r\n options: {\r\n dataKey?: string;\r\n setImageUrl?: boolean;\r\n showTable?: boolean;\r\n projectSelected: string;\r\n },\r\n tenantName: any\r\n ): Promise<any[]> {\r\n if (options.dataKey) {\r\n data = data[options.dataKey];\r\n } else {\r\n if (!data?._embedded?.products && !Array.isArray(data)) {\r\n data = [data];\r\n } else {\r\n data = data?._embedded?.products;\r\n }\r\n }\r\n const transformed = await Promise.all(\r\n data.map(async (record: any) => {\r\n let imageUrl = record.imageUrl;\r\n const imagePath = `pages/images/` +\r\n record?.imageUrl?.split('/').pop();\r\n if (\r\n tenantName &&\r\n record?.imageUrl &&\r\n options.setImageUrl\r\n ) {\r\n try {\r\n imageUrl = \"\";\r\n // imageUrl = await this.couchdbService.getFileContentFromCouchDb(\r\n // `${tenantName}_${options.projectSelected}`,\r\n // imagePath\r\n // );\r\n } catch (err) {\r\n console.warn(`Failed to fetch image from CouchDB for ${imagePath}`, err);\r\n imageUrl = '';\r\n }\r\n }\r\n return {\r\n ...record,\r\n ...(imageUrl ? { imageUrl } : {}),\r\n ...(imagePath ? { imagePath } : {}),\r\n };\r\n })\r\n );\r\n\r\n return transformed;\r\n }\r\n\r\n async setTableDataImages(records: any, tenantName: any, projectSelected: any): Promise<any[]> {\r\n const transformed = await Promise.all(\r\n records.map(async (record: any) => {\r\n let imageUrl = record.imageUrl;\r\n const imagePath = record?.imagePath ? record?.imagePath : `pages/images/` +\r\n record?.imageUrl?.split('/').pop();\r\n if (\r\n tenantName &&\r\n record?.imageUrl &&\r\n record.hasOwnProperty('imageUrl')\r\n ) {\r\n try {\r\n imageUrl = \"\";\r\n // imageUrl = await this.couchdbService.getFileContentFromCouchDb(\r\n // `${tenantName}_${projectSelected}`,\r\n // imagePath\r\n // );\r\n } catch (err) {\r\n console.warn(`Failed to fetch image from CouchDB for ${imagePath}`, err);\r\n imageUrl = '';\r\n }\r\n }\r\n return {\r\n ...record,\r\n ...(imageUrl ? { imageUrl } : {}),\r\n };\r\n })\r\n );\r\n return transformed;\r\n }\r\n\r\n // set date in localstorage\r\n normalizeDatesForStorage(obj: any): any {\r\n const normalized: any = {};\r\n Object.entries(obj).forEach(([key, value]: any) => {\r\n if (this.isDateLike(value)) {\r\n const date = value instanceof Date ? value : new Date(value);\r\n normalized[key] = this.toLocalISOString(date);\r\n } else {\r\n normalized[key] = value;\r\n }\r\n });\r\n return normalized;\r\n }\r\n\r\n\r\n isDateLike(value: any): boolean {\r\n if (!value) return false;\r\n\r\n // Actual Date object\r\n if (value instanceof Date && !isNaN(value.getTime())) {\r\n return true;\r\n }\r\n\r\n // ISO string (UTC or local)\r\n if (typeof value === 'string') {\r\n return false;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n toLocalISOString(date: Date): string {\r\n const tzOffset = date.getTimezoneOffset() * 60000;\r\n return new Date(date.getTime() - tzOffset)\r\n .toISOString()\r\n .slice(0, 19);\r\n }\r\n\r\n // restore date Field from localstorage\r\n restoreDatesFromStorage(records: any[], propertySchema: any): any[] {\r\n if (!Array.isArray(records)) return records;\r\n if (!propertySchema) return records;\r\n\r\n return records.map(record => {\r\n const restored = { ...record };\r\n\r\n Object.keys(propertySchema).forEach(scopeKey => {\r\n const schemaGroup = propertySchema[scopeKey];\r\n if (!schemaGroup) return;\r\n\r\n Object.keys(schemaGroup).forEach(fieldKey => {\r\n const fieldSchema = schemaGroup[fieldKey];\r\n const value = restored[fieldKey];\r\n if (!value || typeof value !== 'string') return;\r\n\r\n // ✅ DATE or TIME fields only\r\n if (fieldSchema.type === 'date' || fieldSchema.type === 'time') {\r\n restored[fieldKey] = this.parseLocalISODate(value);\r\n }\r\n });\r\n });\r\n\r\n return restored;\r\n });\r\n }\r\n\r\n parseLocalISODate(value: string): Date {\r\n // Remove Z to avoid UTC shift\r\n const clean = value.replace('Z', '');\r\n const [datePart, timePart = '00:00:00.000'] = clean.split('T');\r\n\r\n const [y, m, d] = datePart.split('-').map(Number);\r\n const [hh = 0, mm = 0, ss = 0, ms = 0] =\r\n timePart.split(/[:.]/).map(Number);\r\n\r\n return new Date(y, m - 1, d, hh, mm, ss, ms);\r\n }\r\n\r\n // savecard conversion\r\n convertToDailyLogs(cardOrCards: any | any[]): any[] {\r\n // Normalize input to array\r\n const cards = Array.isArray(cardOrCards) ? cardOrCards : [cardOrCards];\r\n\r\n const results: any[] = [];\r\n\r\n for (const card of cards) {\r\n\r\n const fromDate = new Date(card.fromDate);\r\n const toDate = new Date(card.toDate);\r\n\r\n const fromTime = new Date(card.workDayTimeFrom);\r\n const toTime = new Date(card.workDayTimeTo);\r\n\r\n // Normalize dates to midnight\r\n const startDay = new Date(fromDate);\r\n startDay.setHours(0, 0, 0, 0);\r\n\r\n const endDay = new Date(toDate);\r\n endDay.setHours(0, 0, 0, 0);\r\n\r\n let currentDay = new Date(startDay);\r\n\r\n while (currentDay <= endDay) {\r\n const isFirstDay = this.isSameDay(currentDay, fromDate);\r\n const isLastDay = this.isSameDay(currentDay, toDate);\r\n const isSameDay = isFirstDay && isLastDay;\r\n\r\n let workFrom: Date;\r\n let workTo: Date;\r\n\r\n // SAME DAY\r\n if (isSameDay) {\r\n workFrom = this.applyTimeToDay(currentDay, fromTime);\r\n workTo = this.applyTimeToDay(currentDay, toTime);\r\n }\r\n // FIRST DAY\r\n else if (isFirstDay) {\r\n workFrom = this.applyTimeToDay(currentDay, fromTime);\r\n workTo = this.endOfDay(currentDay);\r\n }\r\n // LAST DAY\r\n else if (isLastDay) {\r\n workFrom = this.startOfDay(currentDay);\r\n workTo = this.applyTimeToDay(currentDay, toTime);\r\n }\r\n // MIDDLE DAY\r\n else {\r\n workFrom = this.startOfDay(currentDay);\r\n workTo = this.endOfDay(currentDay);\r\n }\r\n\r\n results.push({\r\n comment: card.comments || \"\",\r\n onCallDuty: false,\r\n timeCredit: false,\r\n workDay: this.toLocalISO(currentDay, 0, 0),\r\n workDayTimeFrom: this.toLocalISO(workFrom),\r\n workDayTimeTo: this.toLocalISO(workTo),\r\n workOrderNo: card.workOrderNo,\r\n workType: \"A\"\r\n });\r\n\r\n currentDay.setDate(currentDay.getDate() + 1);\r\n }\r\n }\r\n\r\n return results;\r\n }\r\n private applyTimeToDay(day: Date, time: Date): Date {\r\n const d = new Date(day);\r\n d.setHours(time.getHours(), time.getMinutes(), 0, 0);\r\n return d;\r\n }\r\n\r\n private startOfDay(d: Date): Date {\r\n const x = new Date(d);\r\n x.setHours(0, 0, 0, 0);\r\n return x;\r\n }\r\n\r\n private endOfDay(d: Date): Date {\r\n const x = new Date(d);\r\n x.setHours(23, 59, 0, 0);\r\n return x;\r\n }\r\n\r\n private isSameDay(a: Date, b: Date): boolean {\r\n return (\r\n a.getFullYear() === b.getFullYear() &&\r\n a.getMonth() === b.getMonth() &&\r\n a.getDate() === b.getDate()\r\n );\r\n }\r\n\r\n private toLocalISO(date: Date, hour?: number, minute?: number): string {\r\n const d = new Date(date);\r\n\r\n if (hour !== undefined && minute !== undefined) {\r\n d.setHours(hour, minute, 0, 0);\r\n }\r\n\r\n const pad = (n: number) => String(n).padStart(2, '0');\r\n\r\n const year = d.getFullYear();\r\n const month = pad(d.getMonth() + 1);\r\n const day = pad(d.getDate());\r\n const hrs = pad(d.getHours());\r\n const mins = pad(d.getMinutes());\r\n\r\n const offset = -d.getTimezoneOffset();\r\n const sign = offset >= 0 ? '+' : '-';\r\n const offH = pad(Math.floor(Math.abs(offset) / 60));\r\n const offM = pad(Math.abs(offset) % 60);\r\n\r\n return `${year}-${month}-${day}T${hrs}:${mins}:00${sign}${offH}:${offM}`;\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectorRef, Component, EventEmitter, Input, NgZone, Output } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { UtilityService } from '../../services/utility.service';\r\nimport { RequestService } from '../../services/request.service';\r\n\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { SimpleChanges } from '@angular/core';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { CapacitorHttp } from '@capacitor/core';\r\n\r\nimport { NzIconModule } from 'ng-zorro-antd/icon';\r\nimport { NzButtonModule } from 'ng-zorro-antd/button';\r\nimport { NzDatePickerModule } from 'ng-zorro-antd/date-picker';\r\nimport { NzModalModule, NzModalService } from 'ng-zorro-antd/modal';\r\n\r\nimport { DatePickerModule } from 'primeng/datepicker';\r\nimport { Platform } from '@angular/cdk/platform';\r\n\r\n@Component({\r\n selector: 'vt-card',\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NzIconModule,\r\n DatePickerModule,\r\n NzButtonModule,\r\n NzDatePickerModule,\r\n NzModalModule,\r\n // StringComponent,\r\n // PaginationComponent\r\n ],\r\n standalone: true,\r\n templateUrl: './card.component.html',\r\n styleUrl: './card.component.css',\r\n})\r\nexport class CardComponent {\r\n @Input() itemInfo: any = {};\r\n @Input() currentPage: number = 0;\r\n @Input() pageSize: number = 5;\r\n @Input() selectedLanguageInfo: any = {};\r\n @Input() pages: number[] = [];\r\n @Output() cardButtonClick: EventEmitter<any> = new EventEmitter();\r\n @Output() cardHeaderButtonClick: EventEmitter<any> = new EventEmitter();\r\n @Output() linkDetails: EventEmitter<any> = new EventEmitter();\r\n @Output() imageDetails: EventEmitter<any> = new EventEmitter();\r\n @Output() onPageSizeChange: EventEmitter<any> = new EventEmitter();\r\n @Output() onPageChange: EventEmitter<any> = new EventEmitter();\r\n cardPerRow: string = \"col-12 md:col-6 lg:col-\";\r\n isLoading: boolean = false;\r\n layoutSchemaCopy: any = {};\r\n headerSchemaCopy: any = {};\r\n footerSchemaCopy: any = {};\r\n\r\n\r\n constructor(\r\n private utilityService: UtilityService,\r\n private platform: Platform,\r\n private http: HttpClient,\r\n private cdr: ChangeDetectorRef,\r\n private zone: NgZone,\r\n private modalService: NzModalService,\r\n private oauthService: OAuthService,\r\n private requestService: RequestService) {\r\n }\r\n\r\n ngOnInit() {\r\n if ((this.platform.ANDROID || this.platform.IOS) && !this.platform?.isBrowser) {\r\n this.cardPerRow = \"col-\";\r\n } else {\r\n this.cardPerRow = \"col-12 md:col-6 lg:col-\";\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['itemInfo']) {\r\n if (this.itemInfo.layoutSchema) {\r\n this.layoutSchemaCopy = JSON.parse(JSON.stringify(this.itemInfo.layoutSchema));\r\n }\r\n if (this.itemInfo.header) {\r\n this.headerSchemaCopy = JSON.parse(JSON.stringify(this.itemInfo.header));\r\n }\r\n if (this.itemInfo.footer) {\r\n this.footerSchemaCopy = JSON.parse(JSON.stringify(this.itemInfo.footer));\r\n }\r\n }\r\n if ((changes['selectedLanguageInfo'] || this.selectedLanguageInfo) && this.selectedLanguageInfo.selectedLanguage) {\r\n this.itemInfo.footer = this.updatebuttonLanguage(this.footerSchemaCopy, this.selectedLanguageInfo.selectedLanguage)\r\n this.itemInfo.header = this.updatebuttonLanguage(this.headerSchemaCopy, this.selectedLanguageInfo.selectedLanguage)\r\n this.itemInfo.layoutSchema = this.updateLayoutLanguage(this.layoutSchemaCopy, this.selectedLanguageInfo.selectedLanguage)\r\n }\r\n }\r\n\r\n private safeUpdate(fn: () => void) {\r\n if (NgZone.isInAngularZone()) {\r\n fn();\r\n this.cdr.markForCheck();\r\n } else {\r\n this.zone.run(() => {\r\n fn();\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n forceNumericKeyboard(event: any) {\r\n const input = event?.target as HTMLInputElement;\r\n if (input && input.tagName === 'INPUT') {\r\n input.setAttribute('inputmode', 'numeric'); // Android\r\n input.setAttribute('pattern', '[0-9:]*'); // iOS\r\n input.setAttribute('type', 'tel'); // strongest signal\r\n }\r\n }\r\n\r\n onDateTyping(event: any) {\r\n const input = event.target as HTMLInputElement;\r\n if (!input) return;\r\n let digits = input.value.replace(/\\D/g, '');\r\n digits = digits.substring(0, 8);\r\n let formatted = '';\r\n if (digits.length <= 4) {\r\n formatted = digits;\r\n } else if (digits.length <= 6) {\r\n formatted = `${digits.slice(0, 4)}-${digits.slice(4)}`;\r\n } else {\r\n formatted = `${digits.slice(0, 4)}-${digits.slice(4, 6)}-${digits.slice(6)}`;\r\n }\r\n input.value = formatted;\r\n }\r\n\r\n updatebuttonLanguage<T>(\r\n schema: T,\r\n translations: Record<string, string>\r\n ): T {\r\n const cloned = JSON.parse(JSON.stringify(schema));\r\n\r\n const walk = (obj: any) => {\r\n if (!obj || typeof obj !== 'object') return;\r\n\r\n // ✅ Replace direct caption (e.g. button.caption)\r\n if (typeof obj.caption === 'string') {\r\n const original = obj.caption;\r\n obj.caption = translations[original] ?? original;\r\n }\r\n\r\n // ✅ Replace modalTitle if present\r\n if (typeof obj.modalTitle === 'string') {\r\n const original = obj.modalTitle;\r\n obj.modalTitle = translations[original] ?? original;\r\n }\r\n\r\n // 🔁 Recurse\r\n Object.keys(obj).forEach((key) => {\r\n const value = obj[key];\r\n if (typeof value === 'object') {\r\n walk(value);\r\n }\r\n });\r\n };\r\n\r\n walk(cloned);\r\n return cloned;\r\n }\r\n\r\n\r\n updateLayoutLanguage<T>(\r\n schema: T,\r\n translations: Record<string, string>\r\n ): T {\r\n // Deep clone to avoid mutating original schema\r\n const cloned = JSON.parse(JSON.stringify(schema));\r\n\r\n const walk = (obj: any) => {\r\n if (!obj || typeof obj !== 'object') return;\r\n\r\n // ✅ If label.caption exists → translate it\r\n if (obj.label && typeof obj.label.caption === 'string') {\r\n const originalCaption = obj.label.caption;\r\n obj.label.caption =\r\n translations[originalCaption] ?? originalCaption;\r\n }\r\n\r\n // 🔁 Recurse into object properties\r\n Object.keys(obj).forEach((key) => {\r\n const value = obj[key];\r\n if (typeof value === 'object') {\r\n walk(value);\r\n }\r\n });\r\n };\r\n\r\n walk(cloned);\r\n return cloned;\r\n }\r\n\r\n dateChangeEvent(filter: any, value: any) {\r\n const scope = this.getScope(filter.scope.reference);\r\n const field = filter.scope?.reference.split('/').pop();\r\n this.itemInfo.propertySchema[scope][field].value = value\r\n this.applyDateFilter(this.extractFilterValues(this.itemInfo.propertySchema[scope]))\r\n }\r\n\r\n async applyDateFilter(filters: any) {\r\n const from = filters.fromDateFilter ? new Date(filters.fromDateFilter) : null;\r\n const to = filters.toDateFilter ? new Date(filters.toDateFilter) : null;\r\n if (to && from) {\r\n const formattedFrom = this.formatToOffsetISO(from);\r\n const formattedTo = this.formatToOffsetISO(to);\r\n const keycloakInfo: any = await this.utilityService.getLocalStorage('KeycloakInfo');\r\n const logined: any = await this.utilityService.getLocalStorage('loginedUser');\r\n this.safeUpdate(() => this.isLoading = true);\r\n if (this.platform.ANDROID || this.platform.IOS) {\r\n let saveOrder = await this.getSaveOrder(keycloakInfo?.token, keycloakInfo, formattedFrom, formattedTo)\r\n this.itemInfo.data = saveOrder?.length > 0 ? saveOrder : []\r\n this.safeUpdate(() => this.isLoading = false);\r\n } else {\r\n this.requestService.getSaveOrder(logined?.token, logined, formattedFrom, formattedTo).subscribe((saveOrders: any) => {\r\n const updatedData = this.utilityService.restoreDatesFromStorage(saveOrders, this.itemInfo.propertySchema);\r\n this.itemInfo.data = updatedData?.length > 0 ? updatedData : []\r\n this.safeUpdate(() => this.isLoading = false);\r\n })\r\n }\r\n }\r\n }\r\n\r\n async getSaveOrder(\r\n token: string,\r\n userInfo: any,\r\n fromDate: any,\r\n toDate: any\r\n ) {\r\n if (!token) {\r\n return;\r\n }\r\n\r\n const company = userInfo.p5_plant\r\n ? `${userInfo.p5_group}/${userInfo.p5_client}/${userInfo.p5_plant}`\r\n : `${userInfo.p5_group}/${userInfo.p5_client}/`;\r\n\r\n const url = `${userInfo.p5_backend_url}/assetsmobileservice/Zeiterfassung/requestBookedTimeRecording`;\r\n\r\n try {\r\n const response = await CapacitorHttp.post({\r\n url,\r\n params: {\r\n resourceNo: userInfo.p5_resource_no,\r\n workDayFrom: fromDate,\r\n workDayTo: toDate,\r\n company,\r\n appVersion: '1',\r\n },\r\n headers: {\r\n Authorization: `Bearer ${token}`, // ✅ REQUIRED\r\n Accept: 'application/json',\r\n },\r\n // ❗ NO BODY needed for this endpoint\r\n });\r\n\r\n console.log('getSaveOrder response:', response.data);\r\n return response.data;\r\n\r\n } catch (error) {\r\n console.error('Failed to fetch saved orders', error);\r\n throw error;\r\n }\r\n }\r\n\r\n formatToOffsetISO(date: Date): string {\r\n if (!date) return \"\";\r\n\r\n const pad = (n: number, len = 2) => String(n).padStart(len, \"0\");\r\n const year = date.getFullYear();\r\n const month = pad(date.getMonth() + 1);\r\n const day = pad(date.getDate());\r\n const hours = pad(date.getHours());\r\n const minutes = pad(date.getMinutes());\r\n const seconds = pad(date.getSeconds());\r\n const ms = pad(date.getMilliseconds(), 4); // 4-digit milliseconds\r\n\r\n // timezone offset\r\n const offset = -date.getTimezoneOffset(); // in minutes\r\n const offSign = offset >= 0 ? \"+\" : \"-\";\r\n const offHours = pad(Math.floor(Math.abs(offset) / 60));\r\n const offMinutes = pad(Math.abs(offset) % 60);\r\n\r\n return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}:${ms}${offSign}${offHours}:${offMinutes}`;\r\n }\r\n\r\n extractFilterValues(schema: Record<string, any>): Record<string, any> {\r\n return Object.keys(schema).reduce((acc, key) => {\r\n if (key.includes('Filter') && schema[key]?.value !== undefined) {\r\n acc[key] = schema[key].value;\r\n }\r\n return acc;\r\n }, {} as Record<string, any>);\r\n }\r\n\r\n invokeOnPageSizeChange(pageSize: any) {\r\n this.onPageSizeChange.emit(pageSize);\r\n }\r\n\r\n invokeGoToPage(page: any) {\r\n this.onPageChange.emit(page);\r\n }\r\n\r\n invokeOnCardHeader(element: any) {\r\n this.cardHeaderButtonClick.emit(element);\r\n }\r\n\r\n invokeOnCardFooter(element: any) {\r\n // this.cardHeaderButtonClick.emit(element);\r\n this.d4_SaveAll();\r\n }\r\n\r\n async invokeButtonClick(layout: any, record: any, recordIndex: any) {\r\n if (layout?.option?.action === \"delete\" && layout?.option?.storageType == \"localstorage\") {\r\n if (layout?.option?.deleteMessage) {\r\n this.showConfirm(layout?.option, recordIndex);\r\n }\r\n } else if (layout?.option?.action === \"save\" && layout?.option?.storageType === \"database\") {\r\n const final_array = this.utilityService.convertToDailyLogs(record);\r\n await this.saveToDb(final_array, recordIndex, layout.option.data_url)\r\n } else {\r\n this.cardButtonClick.emit({ layout: layout, record: record, recordIndex: recordIndex });\r\n }\r\n }\r\n\r\n showConfirm(option: any, recordIndex: any) {\r\n this.modalService.confirm({\r\n nzTitle: this.selectedLanguageInfo && this.selectedLanguageInfo?.selectedLanguage['Confirm'] ? this.selectedLanguageInfo.selectedLanguage['Confirm'] : 'Confirm',\r\n nzContent: this.selectedLanguageInfo && this.selectedLanguageInfo?.selectedLanguage[option.deleteMessage] ? this.selectedLanguageInfo.selectedLanguage[option.deleteMessage] : option.deleteMessage,\r\n nzOkText: this.selectedLanguageInfo && this.selectedLanguageInfo?.selectedLanguage['Delete'] ? this.selectedLanguageInfo.selectedLanguage['Delete'] : 'Delete',\r\n nzCancelText: this.selectedLanguageInfo && this.selectedLanguageInfo?.selectedLanguage['Cancel'] ? this.selectedLanguageInfo.selectedLanguage['Cancel'] : 'Cancel',\r\n nzOnOk: () => this.deleteRecord(recordIndex, option.data_url)\r\n })\r\n }\r\n\r\n async d4_SaveAll() {\r\n let allOrders: any[] = [];\r\n for (let i = 0; i < this.itemInfo.data.length; i++) {\r\n const element = this.itemInfo.data[i];\r\n const dailyLogs = this.utilityService.convertToDailyLogs(element);\r\n if (Array.isArray(dailyLogs)) {\r\n allOrders.push(...dailyLogs);\r\n }\r\n }\r\n await this.saveToDb(allOrders, null, true);\r\n }\r\n\r\n\r\n deleteRecord(recordIndex: any, data_url: any) {\r\n this.itemInfo.data.splice(recordIndex, 1);\r\n this.utilityService.setLocalStorage('timeRecords', JSON.stringify(this.itemInfo.data));\r\n }\r\n\r\n deleteAllRecord() {\r\n this.itemInfo.data = []\r\n this.utilityService.setLocalStorage('timeRecords', JSON.stringify(this.itemInfo.data));\r\n }\r\n\r\n async saveToDb(orders: any, orderIndex?: any, data_url?: any, deleteAll: boolean = false) {\r\n this.safeUpdate(() => this.isLoading = true);\r\n const token = this.oauthService.getAccessToken(); // whatever you have\r\n const logined: any = await this.utilityService.getLocalStorage('loginedUser');\r\n const keycloakInfo: any = await this.utilityService.getLocalStorage('KeycloakInfo');\r\n let saveobject = {\r\n ressourceNo: logined?.p5_resource_no ? logined.p5_resource_no : keycloakInfo?.p5_resource_no,\r\n returnTimeRecordingLine: orders\r\n }\r\n if (this.platform.ANDROID || this.platform.IOS) {\r\n const res = await this.mobileSaveDb(keycloakInfo.token, keycloakInfo, saveobject, orderIndex, data_url, deleteAll);\r\n } else {\r\n this.webSaveDb(token, logined, saveobject, orderIndex, data_url, deleteAll);\r\n }\r\n }\r\n\r\n webSaveDb(token: any, userInfo: any, order: any = {}, orderIndex?: any, dataUrl?: any, deleteAll: boolean = false) {\r\n if (token) {\r\n const headers = new HttpHeaders({\r\n 'Authorization': `Bearer ${token}`,\r\n 'Accept': 'application/json'\r\n });\r\n let url2: any = `${userInfo.p5_backend_url}/assetsmobileservice/Zeiterfassung/registerTimeRecording?company=${userInfo.p5_group}/${userInfo.p5_client}/${userInfo.p5_plant ? userInfo.p5_plant : \" \"}&appVersion=1&resourceNo=${userInfo.p5_resource_no}`\r\n this.http.post(url2, order, { headers }).subscribe({\r\n next: res => {\r\n this.safeUpdate(() => this.isLoading = false);\r\n if (orderIndex && orderIndex > -1) {\r\n this.deleteRecord(orderIndex, dataUrl)\r\n } else {\r\n this.deleteAllRecord();\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n async mobileSaveDb(token: string, userInfo: any, order: any = {}, orderIndex: number, dataUrl: any, deleteAll: boolean = false) {\r\n if (!token) {\r\n console.log(\"NO-token\", token);\r\n return;\r\n }\r\n\r\n const company = userInfo.p5_plant\r\n ? `${userInfo.p5_group}/${userInfo.p5_client}/${userInfo.p5_plant}`\r\n : `${userInfo.p5_group}/${userInfo.p5_client}/`;\r\n\r\n const url = `${userInfo.p5_backend_url}/assetsmobileservice/Zeiterfassung/registerTimeRecording`;\r\n\r\n try {\r\n const response = await CapacitorHttp.post({\r\n url,\r\n params: {\r\n company,\r\n appVersion: '1',\r\n resourceNo: userInfo.p5_resource_no,\r\n },\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n data: order,\r\n });\r\n if (orderIndex != null && orderIndex > -1) {\r\n this.deleteRecord(orderIndex, dataUrl);\r\n } else {\r\n this.deleteAllRecord();\r\n }\r\n this.safeUpdate(() => this.isLoading = false);\r\n\r\n\r\n return response.data;\r\n\r\n } catch (error) {\r\n this.safeUpdate(() => this.isLoading = false);\r\n console.error('Failed to save time recording', error);\r\n throw error;\r\n }\r\n }\r\n\r\n showLinkDetails(option: any, record: any) {\r\n this.linkDetails.emit({ option: option, record: record })\r\n }\r\n\r\n showImageDetails(option: any, record: any) {\r\n this.imageDetails.emit({ option: option, record: record })\r\n }\r\n\r\n getProperty(scope: any) {\r\n const property = scope ? scope.split('/').pop() : '';\r\n return { key: property, productSchema: this.itemInfo.propertySchema[this.getScope(scope)][property] };\r\n }\r\n\r\n getStyleWithoutClasses(styleObject: any) {\r\n if (!styleObject) {\r\n return { classes: '', style: {} };\r\n }\r\n const { classes, ...styleWithoutClasses } = styleObject;\r\n return { classes: classes && classes.length > 0 ? classes[0] : '', style: styleWithoutClasses };\r\n }\r\n\r\n getScope(scope: any) {\r\n let propertyScope = \"\";\r\n let start = scope?.indexOf(\"#/\") + 2;\r\n let end = scope?.indexOf(\"/\", start);\r\n if (start && end) {\r\n propertyScope = scope.substring(start, end);\r\n }\r\n return propertyScope;\r\n }\r\n}\r\n","<!-- Loader Spinner -->\r\n<div *ngIf=\"isLoading\" class=\"loader-overlay\">\r\n <div class=\"spinner\"></div>\r\n</div>\r\n<span *ngIf=\"this.selectedLanguageInfo?.selectedLanguage\">\r\n <!-- top pagination on card -->\r\n <div *ngIf=\"itemInfo?.layoutSchema?.pagination?.pageSize && itemInfo?.layoutSchema?.pagination?.top\">\r\n <!-- <app-pagination [itemInfo]=\"itemInfo\" [pageSize]=\"pageSize\" [currentPage]=\"currentPage\" [pages]=\"pages\"\r\n (pageSizeChange)=\"invokeOnPageSizeChange($event)\" (onGoToPage)=\"invokeGoToPage($event)\">\r\n </app-pagination> -->\r\n </div>\r\n <div *ngIf=\"itemInfo?.header?.elements\" [style]=\"getStyleWithoutClasses(itemInfo?.header?.style).style\"\r\n [class]=\"getStyleWithoutClasses(itemInfo?.header?.style).classes\">\r\n <span *ngFor=\"let element of itemInfo.header?.elements; let c = index\">\r\n <ng-container\r\n [ngSwitch]=\"element.scope?.reference && itemInfo.propertySchema[getScope(element.scope?.reference)] ? itemInfo.propertySchema[getScope(element.scope?.reference)][element.scope?.reference.split('/').pop()]?.type : 'default'\">\r\n\r\n <!-- String Control -->\r\n <div *ngSwitchCase=\"'string'\" [class]=\"element.option?.visible ? 'card-field-wrapper' : 'hidden'\">\r\n\r\n <!-- LABEL -->\r\n <span *ngIf=\"element.label?.caption\" [style]=\"getStyleWithoutClasses(element.label?.style).style\"\r\n [class]=\"element.label?.style?.classes?.[0]\">\r\n {{ element.label.caption }}\r\n </span>\r\n </div>\r\n\r\n <!-- Date control -->\r\n <div *ngSwitchCase=\"'date'\" class=\"mb-3\">\r\n <span *ngIf=\"element.option.protected\" [style]=\"getStyleWithoutClasses(element?.label?.style).style\"\r\n [class]=\"element?.label?.style?.classes[0]\">\r\n <!-- <app-string [formField]=\"element\" [modalItemInfo]=\"itemInfo\">\r\n </app-string> -->\r\n </span>\r\n <div *ngIf=\"!element.option.protected\"\r\n [class]=\"element?.layout == 'horizontal' ? 'horizontal-layout' : ''\"\r\n [ngClass]=\"element?.style?.classes[0]\" [style]=\"getStyleWithoutClasses(element?.style).style\">\r\n <label [style]=\"getStyleWithoutClasses(element?.label?.style).style\"\r\n [class]=\"element?.label?.style?.classes[0]\">{{ element.label?.value\r\n ?\r\n element.label?.value : element.label?.caption ?\r\n element.label?.caption :\r\n itemInfo.propertySchema[getScope(element.scope?.reference)][element.scope?.reference.split('/').pop()]?.caption\r\n }}</label>\r\n <p-datepicker (ngModelChange)=\"dateChangeEvent(element, $event)\" [showIcon]=\"true\" type=\"number\"\r\n inputmode=\"numeric\"\r\n [dateFormat]=\"itemInfo.propertySchema[getScope(element.scope?.reference)][element.scope?.reference.split('/').pop()]?.format ? itemInfo.propertySchema[getScope(element.scope?.reference)][element.scope?.reference.split('/').pop()].format : 'yy-mm-dd'\"\r\n [(ngModel)]=\"itemInfo.propertySchema[getScope(element.scope?.reference)][element.scope?.reference.split('/').pop()].value\"\r\n (onFocus)=\"forceNumericKeyboard($event)\" (onInput)=\"onDateTyping($event)\"\r\n [class]=\"element?.scope?.style?.classes[0]\"\r\n [style]=\"getStyleWithoutClasses(element?.scope?.style).style\">\r\n </p-datepicker>\r\n </div>\r\n </div>\r\n\r\n <!-- Button Control -->\r\n <div *ngSwitchCase=\"'default'\" [class]=\"element.option?.visible ? 'row' : 'hidden'\"\r\n (click)=\"invokeOnCardHeader(element)\">\r\n <button nz-button [style]=\"getStyleWithoutClasses(element.style).style\"\r\n [class]=\"element.option.protected ? 'disabled-button' : getStyleWithoutClasses(element.style).classes\">\r\n <ng-container *ngIf=\"!element.caption; else textContent\">\r\n <i nz-icon [nzType]=\"element.icon\" nzTheme=\"outline\"></i>\r\n </ng-container>\r\n <ng-template #textContent>\r\n {{ element.caption }}\r\n </ng-template>\r\n </button>\r\n </div>\r\n </ng-container>\r\n </span>\r\n </div>\r\n <div [class]=\"itemInfo.class\" [style]=\"itemInfo.style\">\r\n <div *ngFor=\"let record of itemInfo.data; let k = index\"\r\n [ngClass]=\"itemInfo.layoutSchema.pagination ? itemInfo.layoutSchema.pagination ? cardPerRow + itemInfo.layoutSchema?.stylePerCard?.elementPerRow[k % itemInfo.layoutSchema?.stylePerCard?.elementPerRow.length] : '' : ''\">\r\n <div [class]=\"itemInfo.layoutSchema?.stylePerCard?.classes[0]\">\r\n <div *ngFor=\"let layout of itemInfo.layoutSchema.cards\">\r\n <ng-container\r\n [ngSwitch]=\"layout?.scope?.reference && itemInfo.propertySchema[getScope(layout.scope?.reference)] ? itemInfo.propertySchema[getScope(layout.scope?.reference)][layout.scope?.reference.split('/').pop()]?.type : layout?.type == 'HorizontalLayout' ? 'HorizontalLayout' : 'default'\">\r\n <!-- Image Control -->\r\n <div *ngSwitchCase=\"'image'\" [class]=\"layout.option?.visible ? 'row' : 'hidden'\">\r\n <!-- <img [class]=\"getStyleWithoutClasses(layout?.scope?.style).classes\"\r\n [style]=\"getStyleWithoutClasses(layout?.scope?.style).style\"\r\n [src]=\"layout?.option?.src ? layout?.option?.src : record[layout.scope?.reference.split('/').pop()]\"\r\n alt=\"{{ layout.label ? layout.label : getProperty(layout.scope?.reference).productSchema.caption }}\"\r\n (click)=\"showImageDetails(layout.option, record)\" /> -->\r\n </div>\r\n\r\n <!-- String Control -->\r\n <div *ngSwitchCase=\"'string'\" [class]=\"layout.option?.visible ? 'card-field-wrapper' : 'hidden'\"\r\n [style]=\"getStyleWithoutClasses(layout?.scope?.style).style\">\r\n\r\n <!-- LABEL -->\r\n <span *ngIf=\"layout?.label?.caption\" [class]=\"layout.label?.style?.classes?.[0]\">\r\n {{ layout.label.caption }}\r\n </span>\r\n\r\n <!-- VALUE -->\r\n <p *ngIf=\"layout.option?.protected && layout.option?.visible\"\r\n [class]=\"getStyleWithoutClasses(layout?.scope?.style).classes\"\r\n (click)=\"showLinkDetails(layout.option, record)\">\r\n {{\r\n record?.[layout.scope?.reference.split('/').pop()]\r\n ?? itemInfo.propertySchema[\r\n getScope(layout.scope?.reference)\r\n ]?.[layout.scope?.reference.split('/').pop()]?.default\r\n ?? '--'\r\n }}\r\n </p>\r\n </div>\r\n\r\n <!-- Date Control -->\r\n <div *ngSwitchCase=\"'date'\" [class]=\"layout.option?.visible ? 'card-field-wrapper' : 'hidden'\"\r\n [style]=\"getStyleWithoutClasses(layout?.scope?.style).style\">\r\n\r\n <!-- LABEL -->\r\n <span *ngIf=\"layout?.label?.caption\" [class]=\"layout.label?.style?.classes?.[0]\">\r\n {{ layout.label.caption }}\r\n </span>\r\n\r\n <!-- VALUE -->\r\n <p *ngIf=\"layout.option?.protected && layout.option?.visible\"\r\n [class]=\"getStyleWithoutClasses(layout?.scope?.style).classes\"\r\n (click)=\"showLinkDetails(layout.option, record)\">\r\n {{\r\n record?.[layout.scope?.reference.split('/').pop()]\r\n ?? itemInfo.propertySchema[\r\n getScope(layout.scope?.reference)\r\n ]?.[layout.scope?.reference.split('/').pop()]?.default\r\n ?? '--'\r\n }}\r\n </p>\r\n </div>\r\n\r\n <!-- Time Control -->\r\n <div *ngSwitchCase=\"'time'\" [class]=\"layout.option?.visible ? 'card-field-wrapper' : 'hidden'\"\r\n [style]=\"getStyleWithoutClasses(layout?.scope?.style).style\">\r\n\r\n <!-- LABEL -->\r\n <span *ngIf=\"layout?.label?.caption\" [class]=\"layout.label?.style?.classes?.[0]\">\r\n {{ layout.label.caption }}\r\n </span>\r\n\r\n <!-- VALUE -->\r\n <p *ngIf=\"layout.option?.protected && layout.option?.visible\"\r\n [class]=\"getStyleWithoutClasses(layout?.scope?.style).classes\"\r\n (click)=\"showLinkDetails(layout.option, record)\">\r\n {{\r\n record?.[layout.scope?.reference.split('/').pop()]\r\n ?? itemInfo.propertySchema[\r\n getScope(layout.scope?.reference)\r\n ]?.[layout.scope?.reference.split('/').pop()]?.default\r\n ?? '--'\r\n }}\r\n </p>\r\n </div>\r\n\r\n <!-- number Control -->\r\n <div *ngSwitchCase=\"'number'\" [class]=\"layout.option?.visible ? 'row' : 'hidden'\">\r\n <h3 *ngIf=\"itemInfo.propertySchema[getScope(layout.scope?.reference)] && itemInfo.propertySchema[getScope(layout.scope?.reference)][layout.scope?.reference.split('/').pop()]?.format.currency\"\r\n [class]=\"getStyleWithoutClasses(layout?.scope?.style).classes\"\r\n [style]=\"getStyleWithoutClasses(layout?.scope?.style).style\">\r\n {{ record[layout.scope?.reference.split('/').pop()] | currency: layout.option?.currency\r\n ?\r\n layout.option.currency\r\n :\r\n 'USD' }}\r\n </h3>\r\n </div>\r\n\r\n <!-- Button Control -->\r\n <div *ngSwitchCase=\"'default'\" [class]=\"layout.option?.visible ? 'row' : 'hidden'\">\r\n <button [style]=\"getStyleWithoutClasses(layout?.style).style\"\r\n [class]=\"layout.option.protected ? 'disabled-button' : getStyleWithoutClasses(layout?.style).classes\"\r\n (click)=\"invokeButtonClick(layout, record, k)\">\r\n <ng-container *ngIf=\"!layout.caption; else textContent\">\r\n <i nz-icon [nzType]=\"layout.icon\" nzTheme=\"outline\"></i>\r\n </ng-container>\r\n <ng-template #textContent>\r\n {{ layout.caption }}\r\n </ng-template>\r\n </button>\r\n </div>\r\n\r\n <!-- HorizontalLayout Control -->\r\n <div *ngSwitchCase=\"'HorizontalLayout'\">\r\n <div [class]=\"getStyleWithoutClasses(layout?.style).classes\"\r\n [style]=\"getStyleWithoutClasses(layout?.style).style\">\r\n <ng-container *ngFor=\"let innerLayout of layout.elements\">\r\n <ng-container\r\n [ngSwitch]=\"innerLayout.scope?.reference && itemInfo.propertySchema[getScope(innerLayout.scope?.reference)] ? itemInfo.propertySchema[getScope(innerLayout.scope?.reference)][innerLayout.scope?.reference.split('/').pop()]?.type : 'default'\">\r\n <!-- Image Control -->\r\n <div *ngSwitchCase=\"'image'\"\r\n [class]=\"innerLayout.option?.visible ? 'row' : 'hidden'\">\r\n <!-- <img [class]=\"getStyleWithoutClasses(innerLayout?.scope?.style).classes\"\r\n [style]=\"getStyleWithoutClasses(innerLayout?.scope?.style).style\"\r\n [src]=\"innerLayout?.option?.src ? innerLayout?.option?.src : record[innerLayout.scope?.reference.split('/').pop()]\"\r\n alt=\"{{ innerLayout.label ? innerLayout.label : getProperty(innerLayout.scope?.reference).productSchema.caption }}\"\r\n (click)=\"showImageDetails(innerLayout.option, record)\" /> -->\r\n </div>\r\n\r\n <!-- String Control -->\r\n <div *ngSwitchCase=\"'string'\"\r\n [class]=\"innerLayout.option?.visible ? 'card-field-wrapper' : 'hidden'\">\r\n\r\n <!-- LABEL -->\r\n <span *ngIf=\"innerLayout.label?.caption\"\r\n [style]=\"getStyleWithoutClasses(innerLayout.label?.style).style\"\r\n [class]=\"innerLayout.label?.style?.classes?.[0]\">\r\n {{ innerLayout.label.caption }}\r\n </span>\r\n\r\n <!-- VALUE -->\r\n <h3 *ngIf=\"innerLayout.option?.protected && innerLayout.option?.visible\"\r\n [class]=\"getStyleWithoutClasses(innerLayout?.scope?.style).classes\"\r\n [style]=\"getStyleWithoutClasses(innerLayout?.scope?.style).style\"\r\n (click)=\"showLinkDetails(innerLayout.option, record)\">\r\n\r\n <!-- DATE FORMAT -->\r\n <ng-container *ngIf=\"innerLayout.option?.dateFormat; else checkTime\">\r\n {{\r\n record?.[innerLayout.scope?.reference.split('/').pop()]\r\n ? (record[innerLayout.scope?.reference.split('/').pop()] | date:\r\n innerLayout.option.dateFormat)\r\n : '--'\r\n }}\r\n </ng-container>\r\n\r\n <!-- TIME FORMAT -->\r\n <ng-template #checkTime>\r\n <ng-container\r\n *ngIf=\"innerLayout.option?.timeFormat; else normalValue\">\r\n {{\r\n record?.[innerLayout.scope?.reference.split('/').pop()]\r\n ? (record[innerLayout.scope?.reference.split('/').pop()] | date:\r\n innerLayout.option.timeFormat)\r\n : '--'\r\n }}\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- NORMAL STRING -->\r\n <ng-template #normalValue>\r\n {{\r\n record?.[innerLayout.scope?.reference.split('/').pop()]\r\n ?? '--'\r\n }}\r\n </ng-template>\r\n\r\n </h3>\r\n </div>\r\n\r\n <!-- number Control -->\r\n <div *ngSwitchCase=\"'number'\"\r\n [class]=\"innerLayout.option?.visible ? 'row' : 'hidden'\">\r\n <h3 *ngIf=\"itemInfo.propertySchema[getScope(innerLayout.scope?.reference)] &&itemInfo.propertySchema[getScope(innerLayout.scope?.reference)][innerLayout.scope?.reference.split('/').pop()]?.format.currency\"\r\n [class]=\"getStyleWithoutClasses(innerLayout?.scope?.style).classes\"\r\n [style]=\"getStyleWithoutClasses(innerLayout?.scope?.style).style\">\r\n {{ record[innerLayout.scope?.reference.split('/').pop()] | currency:\r\n innerLayout.option?.currency ?\r\n innerLayout.option.currency\r\n :\r\n 'USD' }}\r\n </h3>\r\n </div>\r\n\r\n <!-- Date Control -->\r\n <div *ngSwitchCase=\"'date'\"\r\n [class]=\"innerLayout.option?.visible ? 'card-field-wrapper' : 'hidden'\">\r\n\r\n <!-- LABEL -->\r\n <span *ngIf=\"innerLayout.label?.caption\"\r\n [style]=\"getStyleWithoutClasses(innerLayout.label?.style).style\"\r\n [class]=\"innerLayout.label?.style?.classes?.[0]\">\r\n {{ innerLayout.label.caption }}\r\n </span>\r\n\r\n <!-- VALUE -->\r\n <h3 *ngIf=\"innerLayout.option?.protected && innerLayout.option?.visible\"\r\n [class]=\"getStyleWithoutClasses(innerLayout?.scope?.style).classes\"\r\n [style]=\"getStyleWithoutClasses(innerLayout?.scope?.style).style\"\r\n (click)=\"showLinkDetails(innerLayout.option, record)\">\r\n\r\n <!-- DATE FORMAT -->\r\n <ng-container *ngIf=\"innerLayout.option?.dateFormat; else checkTime\">\r\n {{\r\n record?.[innerLayout.scope?.reference.split('/').pop()]\r\n ? (record[innerLayout.scope?.reference.split('/').pop()] | date:\r\n innerLayout.option.dateFormat)\r\n : '--'\r\n }}\r\n </ng-container>\r\n\r\n <!-- TIME FORMAT -->\r\n <ng-template #checkTime>\r\n <ng-container\r\n *ngIf=\"innerLayout.option?.timeFormat; else normalValue\">\r\n {{\r\n record?.[innerLayout.scope?.reference.split('/').pop()]\r\n ? (record[innerLayout.scope?.reference.split('/').pop()] | date:\r\n innerLayout.option.timeFormat)\r\n : '--'\r\n }}\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- NORMAL STRING -->\r\n <ng-template #normalValue>\r\n {{\r\n record?.[innerLayout.scope?.reference.split('/').pop()]\r\n ?? '--'\r\n }}\r\n </ng-template>\r\n\r\n </h3>\r\n </div>\r\n\r\n <!-- Time Control -->\r\n <div *ngSwitchCase=\"'time'\"\r\n [class]=\"innerLayout.option?.visible ? 'card-field-wrapper' : 'hidden'\">\r\n\r\n <!-- LABEL -->\r\n <span *ngIf=\"innerLayout.label?.caption\"\r\n [style]=\"getStyleWithoutClasses(innerLayout.label?.style).style\"\r\n [class]=\"innerLayout.label?.style?.classes?.[0]\">\r\n {{ innerLayout.label.caption }}\r\n </span>\r\n\r\n <!-- VALUE -->\r\n <h3 *ngIf=\"innerLayout.option?.protected && innerLayout.option?.visible\"\r\n [class]=\"getStyleWithoutClasses(innerLayout?.scope?.style).classes\"\r\n [style]=\"getStyleWithoutClasses(innerLayout?.scope?.style).style\"\r\n (click)=\"showLinkDetails(innerLayout.option, record)\">\r\n\r\n <!-- DATE FORMAT -->\r\n <ng-container *ngIf=\"innerLayout.option?.dateFormat; else checkTime\">\r\n {{\r\n record?.[innerLayout.scope?.reference.split('/').pop()]\r\n ? (record[innerLayout.scope?.reference.split('/').pop()] | date:\r\n innerLayout.option.dateFormat)\r\n : '--'\r\n }}\r\n </ng-container>\r\n\r\n <!-- TIME FORMAT -->\r\n <ng-template #checkTime>\r\n <ng-container\r\n *ngIf=\"innerLayout.option?.timeFormat; else normalValue\">\r\n {{\r\n record?.[innerLayout.scope?.reference.split('/').pop()]\r\n ? (record[innerLayout.scope?.reference.split('/').pop()] | date:\r\n innerLayout.option.timeFormat)\r\n : '--'\r\n }}\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- NORMAL STRING -->\r\n <ng-template #normalValue>\r\n {{\r\n record?.[innerLayout.scope?.reference.split('/').pop()]\r\n ?? '--'\r\n }}\r\n </ng-template>\r\n\r\n </h3>\r\n </div>\r\n\r\n <!-- Button Control -->\r\n <div *ngSwitchCase=\"'default'\">\r\n <button nz-button [style]=\"getStyleWithoutClasses(innerLayout?.style).style\"\r\n [class]=\"innerLayout.option?.visible ? innerLayout.option.protected ? 'disabled-button' : getStyleWithoutClasses(innerLayout?.style).classes : 'hidden'\"\r\n (click)=\"invokeButtonClick(innerLayout, record, k)\">\r\n <ng-container *ngIf=\"!innerLayout.caption; else textContent\">\r\n <i nz-icon [nzType]=\"innerLayout.icon\" nzTheme=\"outline\"></i>\r\n </ng-container>\r\n <ng-template #textContent>\r\n {{ innerLayout.caption }}\r\n </ng-template>\r\n </button>\r\n </div>\r\n\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"itemInfo?.footer?.elements && itemInfo?.data && itemInfo?.data.length\"\r\n [class]=\"getStyleWithoutClasses(itemInfo?.footer?.style).classes\">\r\n <span *ngFor=\"let element of itemInfo.footer?.elements; let c = index\">\r\n <ng-container\r\n [ngSwitch]=\"element.scope?.reference && itemInfo.propertySchema[getScope(element.scope?.reference)] ? itemInfo.propertySchema[getScope(element.scope?.reference)][element.scope?.reference.split('/').pop()]?.type : 'default'\">\r\n\r\n <!-- Date control -->\r\n <div *ngSwitchCase=\"'date'\" class=\"form-group mb-3\">\r\n <span *ngIf=\"element.option.protected\" [style]=\"getStyleWithoutClasses(element?.label?.style).style\"\r\n [class]=\"element?.label?.style?.classes[0]\">\r\n <h5>{{\r\n itemInfo.propertySchema[getScope(element.scope?.reference)][element.scope?.reference.split('/').pop()]?.caption\r\n }}\r\n </h5>\r\n </span>\r\n <div *ngIf=\"!element.option.protected\">\r\n <div [class]=\"element?.layout == 'horizontal' ? 'horizontal-layout' : 'row'\">\r\n <label [style]=\"getStyleWithoutClasses(element?.label?.style).style\"\r\n [class]=\"element?.label?.style?.classes[0]\">{{ element.label?.value\r\n ?\r\n element.label?.value : element.label?.caption ?\r\n element.label?.caption :\r\n itemInfo.propertySchema[getScope(element.scope?.reference)][element.scope?.reference.split('/').pop()]?.caption\r\n }}</label>\r\n\r\n <nz-date-picker [required]=\"element.option.required\" [name]=\"element.scope?.reference\"\r\n [nzDisabled]=\"element?.option?.disabled\"\r\n (ngModelChange)=\"dateChangeEvent(element, $event)\"\r\n [nzFormat]=\"itemInfo.propertySchema[getScope(element.scope?.reference)][element.scope?.reference.split('/').pop()]?.format ? itemInfo.propertySchema[getScope(element.scope?.reference)][element.scope?.reference.split('/').pop()]?.format : 'yyyy-MM-dd'\"\r\n [(ngModel)]=\"itemInfo.propertySchema[getScope(element.scope?.reference)][element.scope?.reference.split('/').pop()].value\"\r\n [style]=\"getStyleWithoutClasses(element?.style).style\"></nz-date-picker>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <!-- Button Control -->\r\n <div *ngSwitchCase=\"'default'\" [class]=\"element.option?.visible ? 'row' : 'hidden'\"\r\n (click)=\"invokeOnCardFooter(element)\">\r\n <button nz-button [style]=\"getStyleWithoutClasses(element.style).style\"\r\n [class]=\"element.option.protected ? 'disabled-button' : getStyleWithoutClasses(element.style).classes\">\r\n <ng-container *ngIf=\"!element.caption; else textContent\">\r\n <i nz-icon [nzType]=\"element.icon\" nzTheme=\"outline\"></i>\r\n </ng-container>\r\n <ng-template #textContent>\r\n {{ element.caption }}\r\n </ng-template>\r\n </button>\r\n </div>\r\n </ng-container>\r\n </span>\r\n </div>\r\n <!-- bottom pagination on card -->\r\n <!-- <div *ngIf=\"itemInfo?.layoutSchema?.pagination && itemInfo?.layoutSchema?.pagination?.bottom\">\r\n <app-pagination [itemInfo]=\"itemInfo\" [pageSize]=\"pageSize\" [currentPage]=\"currentPage\" [pages]=\"pages\"\r\n (pageSizeChange)=\"invokeOnPageSizeChange($event)\" (onGoToPage)=\"invokeGoToPage($event)\">\r\n </app-pagination>\r\n </div> -->\r\n</span>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vt-form',\r\n imports: [],\r\n standalone: true,\r\n templateUrl: './form.component.html',\r\n styleUrl: './form.component.css',\r\n})\r\nexport class FormComponent {\r\n\r\n}\r\n","<p>form works!</p>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vt-pagination',\r\n imports: [],\r\n standalone: true,\r\n templateUrl: './pagination.component.html',\r\n styleUrl: './pagination.component.css',\r\n})\r\nexport class PaginationComponent {\r\n\r\n}\r\n","<p>pagination works!</p>\r\n","// lib/view-toolkit.module.ts\r\n\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { GridComponent } from \"./containers/grid/grid.component\";\r\nimport { NgModule } from '@angular/core';\r\nimport { CardComponent } from \"./containers/card/card.component\";\r\nimport { FormComponent } from \"./containers/form/form.component\";\r\nimport { PaginationComponent } from \"./containers/pagination/pagination.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CardComponent,\r\n FormComponent,\r\n GridComponent,\r\n PaginationComponent\r\n ],\r\n exports: [\r\n CardComponent,\r\n FormComponent,\r\n GridComponent,\r\n PaginationComponent\r\n ]\r\n})\r\nexport class ViewToolkitModule { }","// AUTO-GENERATED. Do not edit.\nexport const APP_VERSION = '1.0.204';\n","import { Injectable } from '@angular/core';\r\nimport { Preferences } from '@capacitor/preferences';\r\nimport { APP_VERSION } from '../app-version';\r\nimport { Platform } from '@angular/cdk/platform';\r\n\r\nconst VERSION_KEY = 'APP_VERSION';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppVersionResetService {\r\n\r\n constructor(\r\n private platform: Platform) {\r\n }\r\n\r\n\r\n async run(): Promise<void> {\r\n if (this.platform.ANDROID || this.platform.IOS) {\r\n await this.clearNativeIfChanged();\r\n // this.clearWebIfChanged();\r\n // return;\r\n }\r\n }\r\n\r\n private async clearNativeIfChanged(): Promise<void> {\r\n const { value: savedVersion } = await Preferences.get({ key: VERSION_KEY });\r\n if (savedVersion === APP_VERSION) return;\r\n console.log(`🧹 Clearing Capacitor Preferences (new build ${APP_VERSION})`);\r\n await Preferences.clear();\r\n this.clearWebStores();\r\n await Preferences.set({ key: VERSION_KEY, value: APP_VERSION });\r\n }\r\n\r\n // private clearWebIfChanged(): void {\r\n // const savedVersion = sessionStorage.getItem(VERSION_KEY) || localStorage.getItem(VERSION_KEY);\r\n // if (savedVersion === APP_VERSION) return;\r\n // this.clearWebStores();\r\n // localStorage.setItem(VERSION_KEY, APP_VERSION);\r\n // sessionStorage.setItem(VERSION_KEY, APP_VERSION);\r\n // }\r\n\r\n private clearWebStores(): void {\r\n try { localStorage.clear(); } catch { }\r\n try { sessionStorage.clear(); } catch { }\r\n try {\r\n if (typeof document !== 'undefined' && document.cookie) {\r\n document.cookie.split(';').forEach((c) => {\r\n const eqPos = c.indexOf('=');\r\n const name = eqPos > -1 ? c.substring(0, eqPos).trim() : c.trim();\r\n if (name) {\r\n document.cookie = `${name}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/`;\r\n }\r\n });\r\n }\r\n } catch { }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { UtilityService } from './utility.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class Couchdb {\r\n private readonly couchDbBaseUrl = 'https://couchdb.yomotech.de';\r\n\r\n constructor(private utilityService: UtilityService) { }\r\n\r\n async getTenantDatabases(tenantKey: any): Promise<any[]> {\r\n if (!tenantKey || !tenantKey.trim()) {\r\n throw new Error('Missing tenantKey');\r\n }\r\n\r\n const response = await fetch(`https://couchdb.yomotech.de/tenant-dbs`, {\r\n method: 'GET',\r\n headers: {\r\n Accept: 'application/json',\r\n 'X-Tenant-Key': tenantKey.trim(),\r\n },\r\n });\r\n\r\n const data = await this.parseJsonOrText(response);\r\n\r\n if (!response.ok) {\r\n throw new Error(\r\n `GET /tenant-dbs -> ${response.status} ${this.stringifyErrorDetails(data)}`\r\n );\r\n }\r\n\r\n return data;\r\n }\r\n\r\n private async parseJsonOrText(response: Response): Promise<any> {\r\n const rawText = await response.text();\r\n\r\n if (!rawText) return null;\r\n\r\n try {\r\n return JSON.parse(rawText);\r\n } catch {\r\n return rawText;\r\n }\r\n }\r\n\r\n private stringifyErrorDetails(data: any): string {\r\n if (typeof data === 'string') return data;\r\n\r\n try {\r\n return JSON.stringify(data);\r\n } catch {\r\n return 'Unknown error';\r\n }\r\n }\r\n\r\n async getFileContentFromCouchDb(\r\n couchDbName: string,\r\n filePath: string\r\n ): Promise<any | null> {\r\n try {\r\n\r\n const dbName = couchDbName;\r\n console.log('dbName: ', dbName);\r\n console.log('filePath: ', filePath);\r\n const docId = filePath?.trim();\r\n if (!docId) {\r\n console.error('Missing file path');\r\n return null;\r\n }\r\n\r\n const response = await fetch(this.getDocumentUrl(dbName, docId), {\r\n method: 'GET',\r\n headers: await this.getReadHeaders(),\r\n });\r\n\r\n const doc = await this.parseJsonOrText(response);\r\n\r\n if (!response.ok) {\r\n console.error(\r\n `Failed to fetch file \"${docId}\" from \"${dbName}\": ${response.status}`,\r\n doc\r\n );\r\n return null;\r\n }\r\n\r\n if (!doc?.data) {\r\n console.error(`Document \"${docId}\" does not contain file data`);\r\n return null;\r\n }\r\n\r\n // do not decode images as utf8 text\r\n if (this.isImageFile(doc.name || doc.path || docId, doc.contentType)) {\r\n return {\r\n type: 'base64file',\r\n mimeType: doc.contentType || this.getImageMimeType(docId),\r\n base64: doc.data,\r\n };\r\n }\r\n\r\n const decodedContent = this.fromBase64(doc.data);\r\n\r\n if (this.isJsonFile(doc.name || doc.path || docId, doc.contentType)) {\r\n try {\r\n return JSON.parse(decodedContent);\r\n } catch (jsonError) {\r\n console.error(`Failed to parse JSON for file \"${docId}\"`, jsonError);\r\n return decodedContent;\r\n }\r\n }\r\n\r\n return decodedContent;\r\n } catch (error) {\r\n console.error(\r\n `Unexpected error while fetching file \"${filePath}\" from \"${couchDbName}\"`,\r\n error\r\n );\r\n return null;\r\n }\r\n }\r\n\r\n private isImageFile(fileNameOrPath: string, contentType?: string): boolean {\r\n const lower = (fileNameOrPath || '').toLowerCase();\r\n\r\n return (\r\n lower.endsWith('.png') ||\r\n lower.endsWith('.jpg') ||\r\n lower.endsWith('.jpeg') ||\r\n lower.endsWith('.ico') ||\r\n lower.endsWith('.svg') ||\r\n (contentType || '').startsWith('image/')\r\n );\r\n }\r\n\r\n private getImageMimeType(fileNameOrPath: string): string {\r\n const lower = (fileNameOrPath || '').toLowerCase();\r\n\r\n if (lower.endsWith('.png')) return 'image/png';\r\n if (lower.endsWith('.jpg') || lower.endsWith('.jpeg')) return 'image/jpeg';\r\n if (lower.endsWith('.ico')) return 'image/x-icon';\r\n if (lower.endsWith('.svg')) return 'image/svg+xml';\r\n\r\n return 'image/png';\r\n }\r\n\r\n private fromBase64(base64: string): string {\r\n try {\r\n return decodeURIComponent(escape(atob(base64)));\r\n } catch {\r\n return atob(base64);\r\n }\r\n }\r\n\r\n private isJsonFile(fileNameOrPath: string, contentType?: string): boolean {\r\n const lower = (fileNameOrPath || '').toLowerCase();\r\n return lower.endsWith('.json') || contentType === 'application/json';\r\n }\r\n\r\n private getDocumentUrl(dbName: string, docId: string): string {\r\n return `${this.getDbUrl(dbName)}/${encodeURIComponent(docId)}`;\r\n }\r\n\r\n private getDbUrl(dbName: string): string {\r\n return `${this.couchDbBaseUrl}/${dbName}`;\r\n }\r\n\r\n private async getReadHeaders(): Promise<HeadersInit> {\r\n return {\r\n Accept: 'application/json',\r\n ...(await this.buildTenantHeaders()),\r\n };\r\n }\r\n\r\n private async buildTenantHeaders(): Promise<HeadersInit> {\r\n let tenantKey: any = await this.utilityService.getStorage('tenantKey');\r\n let tenantName: any = await this.utilityService.getStorage('tenantName');\r\n\r\n if (typeof tenantKey !== 'string' || !tenantKey.trim()) {\r\n return {\r\n 'X-Tenant-Key': tenantKey.trim(),\r\n };\r\n } else if (typeof tenantName !== 'string' || !tenantName.trim()) {\r\n return {\r\n 'X-Tenant': tenantName.trim(),\r\n };\r\n }\r\n throw new Error('Missing tenantKey');\r\n\r\n }\r\n\r\n async getImageSrcFromCouchDb(\r\n couchDbName: string,\r\n filePath: string\r\n ): Promise<string> {\r\n const dbName = couchDbName;\r\n const docId = filePath?.trim();\r\n\r\n if (!docId) {\r\n throw new Error('Missing file path');\r\n }\r\n\r\n const response = await fetch(this.getDocumentUrl(dbName, docId), {\r\n method: 'GET',\r\n headers: await this.getReadHeaders(),\r\n });\r\n\r\n const doc = await this.parseJsonOrText(response);\r\n\r\n if (!response.ok) {\r\n throw new Error(\r\n `Failed to fetch image \"${docId}\" from \"${dbName}\": ${response.status} ${this.stringifyErrorDetails(doc)}`\r\n );\r\n }\r\n\r\n if (!doc?.data) {\r\n throw new Error(`Document \"${docId}\" does not contain image data`);\r\n }\r\n\r\n const mimeType = doc.contentType || 'image/png';\r\n\r\n return `data:${mimeType};base64,${doc.data}`;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { UtilityService } from './utility.service';\r\nimport { Platform } from '@angular/cdk/platform';\r\nimport { Couchdb } from './couchdb';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigService {\r\n private config: any;\r\n private skipOkta = false;\r\n private keycloakConfig: any;\r\n\r\n constructor(private couchdbService: Couchdb, private utilityService: UtilityService, private platform: Platform) { }\r\n\r\n async loadOktaConfig(projectName: string): Promise<void> {\r\n try {\r\n let tenantKey: any = \"\";\r\n let tenantName: any = \"\";\r\n if (this.platform.ANDROID || this.platform.IOS) {\r\n tenantKey = await this.utilityService.getLocalStorage('tenantKey');\r\n tenantName = await this.utilityService.getLocalStorage('tenantName');\r\n } else {\r\n tenantKey = await this.utilityService.getStorage('tenantKey');\r\n tenantName = await this.utilityService.getStorage('tenantName');\r\n }\r\n this.config = await this.couchdbService.getFileContentFromCouchDb(\r\n `${tenantName}_${projectName}`,\r\n 'environments/environment.json'\r\n );\r\n if (this.platform.ANDROID || this.platform.IOS) {\r\n if (this.config.environment.login.mobile) {\r\n this.setConfiguration(this.config.environment.login.mobile);\r\n } else {\r\n this.setConfiguration(null);\r\n }\r\n } else {\r\n if (this.config.environment.login.web) {\r\n this.setConfiguration(this.config.environment.login.web);\r\n } else {\r\n this.setConfiguration(null);\r\n }\r\n }\r\n\r\n } catch (err) {\r\n console.error('Error loading config:', err);\r\n }\r\n }\r\n\r\n setConfiguration(config: any) {\r\n if (config) {\r\n this.config = config;\r\n } else {\r\n this.config = {\r\n issuer: 'http://dummy',\r\n clientId: 'dummy',\r\n redirectUri: 'http://dummy',\r\n pkce: true,\r\n };\r\n }\r\n }\r\n\r\n skipOktaConfig() {\r\n this.skipOkta = true;\r\n }\r\n\r\n get oktaConfig() {\r\n if (this.skipOkta) {\r\n return null;\r\n }\r\n return this.config;\r\n }\r\n\r\n async loadKeycloakConfig(projectName: string): Promise<void> {\r\n let tenantKey: any = \"\";\r\n let tenantName: any = \"\";\r\n if (this.platform.ANDROID || this.platform.IOS) {\r\n tenantKey = await this.utilityService.getLocalStorage('tenantKey');\r\n tenantName = await this.utilityService.getLocalStorage('tenantName');\r\n } else {\r\n tenantKey = await this.utilityService.getStorage('tenantKey');\r\n tenantName = await this.utilityService.getStorage('tenantName');\r\n }\r\n const env = await this.couchdbService.getFileContentFromCouchDb(\r\n `${tenantName}_${projectName}`,\r\n 'environments/environment.json'\r\n );\r\n if (env?.environment?.login.type === \"keycloak\") {\r\n if (this.platform.ANDROID || this.platform.IOS) {\r\n this.keycloakConfig = {\r\n issuer: \"https://keycloak-poc.wilken.de/realms/p5\",\r\n clientId: \"mobile\",\r\n redirectUri: \"de.yomotech:/login/callback\",\r\n logoutRedirectUri: \"de.yomotech:/login/callback\",\r\n scope: \"openid profile email\",\r\n responseType: \"code\"\r\n }\r\n } else {\r\n this.keycloakConfig = {\r\n issuer: env?.environment?.login?.web?.issuer ?? 'http://dummy',\r\n clientId: env?.environment?.login?.web?.clientId ?? 'dummy',\r\n redirectUri: window.location.origin,\r\n responseType: 'code',\r\n scope: 'openid profile email',\r\n showDebugInformation: true\r\n };\r\n }\r\n } else {\r\n this.keycloakConfig = {};\r\n }\r\n }\r\n\r\n getKeycloakConfig() {\r\n return this.keycloakConfig;\r\n }\r\n\r\n getKeycloakMobileConfig() {\r\n if (!this.keycloakConfig) return null;\r\n return {\r\n issuer: this.keycloakConfig?.issuer,\r\n clientId: this.keycloakConfig?.clientId,\r\n redirectUri: this.keycloakConfig.redirectUri,\r\n logoutRedirectUri: this.keycloakConfig.logoutRedirectUri,\r\n scope: this.keycloakConfig.scope,\r\n responseType: this.keycloakConfig.responseType\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ConfigService } from './config.service';\r\nimport { Capacitor } from '@capacitor/core';\r\nimport { App } from '@capacitor/app';\r\nimport { Browser } from '@capacitor/browser';\r\nimport { OAuth2Client } from '@byteowls/capacitor-oauth2';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Platform } from '@angular/cdk/platform';\r\nimport { UtilityService } from './utility.service';\r\n\r\n\r\nexport interface MobileAuthTokens {\r\n access_token: string;\r\n refresh_token?: string;\r\n id_token?: string;\r\n expires_in?: number;\r\n token_type?: string;\r\n}\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MobileKeycloakService {\r\n\r\n private tokens: MobileAuthTokens | any = null;\r\n constructor(private config: ConfigService, private http: HttpClient, private utilityService: UtilityService, private platform: Platform) {\r\n if (Capacitor.isNativePlatform()) {\r\n App.addListener('appUrlOpen', async (url: any) => {\r\n // Nothing to do here; capacitor-oauth2 resolves internally.\r\n // Keep listener to satisfy deep link expectations.\r\n });\r\n }\r\n }\r\n\r\n async login(): Promise<any> {\r\n if (!Capacitor.isNativePlatform()) return null;\r\n const cfg: any = this.config.getKeycloakMobileConfig();\r\n const discoveryUrl = `${cfg.issuer}/.well-known/openid-configuration`;\r\n const discovery: any = await (await fetch(discoveryUrl)).json();\r\n const result = await OAuth2Client.authenticate({\r\n appId: cfg.clientId, // <--- Keycloak clientId goes here\r\n authorizationBaseUrl: discovery.authorization_endpoint,\r\n accessTokenEndpoint: discovery.token_endpoint,\r\n responseType: 'code',\r\n redirectUrl: cfg.redirectUri,\r\n scope: cfg.scope,\r\n pkceEnabled: true,\r\n logsEnabled: true\r\n });\r\n console.log('result-KEyClaok: ', result);\r\n this.tokens = {\r\n access_token: result?.access_token_response?.access_token ? result?.access_token_response?.access_token : result.access_token,\r\n refresh_token: result?.access_token_response?.refresh_token,\r\n id_token: result?.access_token_response?.id_token,\r\n expires_in: result?.access_token_response?.expires_at ? result?.access_token_response?.expires_at : result?.access_token_response?.expires_in,\r\n token_type: result?.access_token_response?.token_type\r\n };\r\n let keycloakLoginUser = \"\";\r\n if (this.tokens.access_token) {\r\n keycloakLoginUser = await this.getUserInfo(this.tokens.access_token, cfg.issuer);\r\n console.log('keycloakLoginUser: ', keycloakLoginUser);\r\n if (keycloakLoginUser) {\r\n this.tokens['issuer'] = cfg.issuer;\r\n this.utilityService.setLocalStorage(\"KeycloakInfo\", this.tokens);\r\n if (this.platform.ANDROID || this.platform.IOS) {\r\n window.location.reload();\r\n }\r\n }\r\n }\r\n return keycloakLoginUser;\r\n }\r\n\r\n async getUserInfo(accessToken: any, issuer: any): Promise<any> {\r\n try {\r\n const headers = new HttpHeaders({\r\n Authorization: `Bearer ${accessToken}`,\r\n });\r\n const url = `${issuer}/protocol/openid-connect/userinfo`;\r\n return await this.http.get(url, { headers }).toPromise();\r\n } catch (err) {\r\n console.error('Error fetching user info:', err);\r\n throw err;\r\n }\r\n }\r\n\r\n getAccessToken(): string | null {\r\n return this.tokens?.access_token ?? null;\r\n }\r\n\r\n getRefreshToken(): string | null {\r\n return this.tokens?.refresh_token ?? null;\r\n }\r\n\r\n async logout(): Promise<void> {\r\n const keycloakInfo: any = await this.utilityService.getLocalStorage('KeycloakInfo');\r\n const cfg: any = this.config.getKeycloakMobileConfig();\r\n const idToken = keycloakInfo?.keycloakInfo?.id_token;\r\n const accessToken = keycloakInfo?.keycloakInfo?.access_token;\r\n if (!idToken || !accessToken) {\r\n console.warn('No tokens found for logout');\r\n return;\r\n }\r\n const endSessionUrl =\r\n `${cfg.issuer}/protocol/openid-connect/logout` +\r\n `?id_token_hint=${encodeURIComponent(idToken)}` +\r\n `&client_id=${encodeURIComponent(cfg.clientId)}` +\r\n `&post_logout_redirect_uri=${encodeURIComponent(cfg.logoutRedirectUri)}`;\r\n console.log('Logout URL:', endSessionUrl);\r\n await Browser.open({ url: endSessionUrl });\r\n this.tokens = null;\r\n await this.utilityService.removeLocalStorage('KeycloakInfo');\r\n window.location.reload();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NetworkLogService {\r\n\r\n private logs: any[] = [];\r\n\r\n addLog(log: any) {\r\n this.logs.unshift(log); // latest first\r\n localStorage.setItem('networkLogs', JSON.stringify(this.logs));\r\n }\r\n\r\n getLogsByDate(date: string): any[] {\r\n return this.logs.filter(l => l.date === date);\r\n }\r\n\r\n getAll(): any[] {\r\n return [...this.logs];\r\n }\r\n\r\n clear() {\r\n this.logs = [];\r\n localStorage.removeItem('networkLogs');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n\r\n constructor(public toastr: ToastrService) { }\r\n\r\n success(message: string, time: number = 5000) {\r\n this.toastr.success(message, \"\", { messageClass: 'toaster-font', titleClass: 'toaster-font', closeButton: true, timeOut: time });\r\n }\r\n\r\n info(message: string, time: number = 5000) {\r\n this.toastr.info(message, \"\", { messageClass: 'toaster-font', titleClass: 'toaster-font', closeButton: true, timeOut: time });\r\n }\r\n\r\n warning(message: string, time: number = 20000) {\r\n this.toastr.warning(message, \"\", { messageClass: 'toaster-font', titleClass: 'toaster-font', closeButton: true, timeOut: time });\r\n }\r\n\r\n error(error: string, time: number = 20000, message?: string,) {\r\n this.toastr.error(error, message, { messageClass: 'toaster-font', titleClass: 'toaster-font', closeButton: true, timeOut: time });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport PouchDB from 'pouchdb';\r\nimport JSZip from 'jszip';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PouchdbService {\r\n private db = new PouchDB(\"\");\r\n\r\n async uploadAndStoreZip(zipFile: File, couchDbURl?: any): Promise<void> {\r\n const zip = await JSZip.loadAsync(zipFile);\r\n const fileName = zipFile?.name?.replace('.zip', '');\r\n const envFilePath = `${fileName}/environments/environment.json`;\r\n const envFile = zip.file(envFilePath);\r\n if (envFile && !couchDbURl) {\r\n const envFileContent = await envFile.async('string');\r\n try {\r\n const jsonData = JSON.parse(envFileContent);\r\n if (jsonData?.environment?.couchdbUrl) {\r\n this.db = new PouchDB(jsonData.environment.couchdbUrl);\r\n }\r\n } catch (e) {\r\n console.error('Invalid JSON in environment.json:', e);\r\n }\r\n } else {\r\n this.db = new PouchDB(couchDbURl);\r\n }\r\n\r\n // Proceed to upload all files\r\n const savePromises: Promise<any>[] = [];\r\n zip.forEach((relativePath: any, file: any) => {\r\n if (!file.dir) {\r\n savePromises.push(\r\n file.async('base64').then((content: any) => {\r\n const docId = relativePath.toString();\r\n console.log('docId: ', docId);\r\n return this.db.put({\r\n _id: docId,\r\n data: content,\r\n type: 'file',\r\n contentType: this.getMimeType(file.name)\r\n }).catch((err: any) => {\r\n if (err.status === 409) {\r\n return this.db.get(docId).then((existing: any) => {\r\n return this.db.put({\r\n ...existing,\r\n data: content,\r\n contentType: this.getMimeType(file.name)\r\n });\r\n });\r\n }\r\n throw err;\r\n });\r\n })\r\n );\r\n }\r\n });\r\n await Promise.all(savePromises);\r\n }\r\n\r\n async getFile(path: string, remoteDB: any): Promise<Blob> {\r\n try {\r\n if (remoteDB) {\r\n this.db = new PouchDB(remoteDB);\r\n }\r\n const doc: any = await this.db.get(path);\r\n return this.decodeBlob(doc);\r\n } catch (err: any) {\r\n if (err.status === 404 && remoteDB) {\r\n try {\r\n const remoteDoc: any = await this.db.get(path);\r\n return this.decodeBlob(remoteDoc);\r\n } catch (remoteErr) {\r\n throw remoteErr;\r\n }\r\n } else {\r\n throw err;\r\n }\r\n }\r\n }\r\n\r\n private decodeBlob(doc: any): Blob {\r\n const byteCharacters = atob(doc.data);\r\n const byteNumbers = new Array(byteCharacters.length).fill(0).map((_, i) => byteCharacters.charCodeAt(i));\r\n const byteArray = new Uint8Array(byteNumbers);\r\n return new Blob([byteArray], { type: doc.contentType });\r\n }\r\n\r\n async getTextFile(path: string, remotedbUrl: any): Promise<any> {\r\n const blob = await this.getFile(path, remotedbUrl);\r\n if (blob?.type && blob?.type === 'application/x-x509-ca-cert') {\r\n const base64Der = await this.blobToBase64(blob);\r\n return base64Der;\r\n }\r\n if (blob?.type && blob?.type.startsWith('image/')) {\r\n return URL.createObjectURL(blob);\r\n } else if (blob?.type && blob?.type === 'application/json') {\r\n const text = await blob.text();\r\n return JSON.parse(text);\r\n } else {\r\n return await blob.text();\r\n }\r\n }\r\n\r\n blobToBase64(blob: Blob): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onloadend = () => {\r\n const base64 = (reader.result as string).split(',')[1];\r\n resolve(base64);\r\n };\r\n reader.onerror = reject;\r\n reader.readAsDataURL(blob);\r\n });\r\n }\r\n\r\n getMimeType(fileName: string): string {\r\n const extension = fileName.split('.').pop()?.toLowerCase();\r\n const mimeMap: any = {\r\n 'json': 'application/json',\r\n 'css': 'text/css',\r\n 'scss': 'text/x-scss',\r\n 'jpg': 'image/jpeg',\r\n 'jpeg': 'image/jpeg',\r\n 'png': 'image/png',\r\n 'ico': 'image/x-icon',\r\n 'svg': 'image/svg+xml',\r\n 'html': 'text/html',\r\n 'js': 'application/javascript',\r\n 'ts': 'application/typescript',\r\n 'txt': 'text/plain',\r\n 'der': 'application/x-x509-ca-cert'\r\n };\r\n return mimeMap[extension || ''] || 'application/octet-stream';\r\n }\r\n\r\n async getAllDatabasesWithContent(couchdbBaseUrl: any): Promise<{ databaseName: string; content: boolean }[]> {\r\n const connStr = couchdbBaseUrl;\r\n const urlObj = new URL(connStr);\r\n const credentials = `${urlObj.username}:${urlObj.password}`;\r\n const originalPortMatch = connStr.match(/:(\\d+)(?=\\/|$)/);\r\n const port = originalPortMatch ? originalPortMatch[1] : \"\";\r\n const baseUrl = `${urlObj.protocol}//${urlObj.hostname}${port ? `:${port}` : \"\"}`;\r\n const authHeader = {\r\n 'Authorization': 'Basic ' + btoa(`${credentials}`)\r\n };\r\n const response = await fetch(`${baseUrl}/_all_dbs`, {\r\n headers: authHeader\r\n });\r\n\r\n if (!response.ok) {\r\n throw new Error(`Error fetching databases: ${response.statusText}`);\r\n }\r\n\r\n const dbNames: string[] = await response.json();\r\n const results: { databaseName: string; content: boolean }[] = [];\r\n for (const dbName of dbNames) {\r\n try {\r\n const docsResponse = await fetch(`${baseUrl}/${dbName}/_all_docs?limit=1`, {\r\n headers: authHeader\r\n });\r\n\r\n if (!docsResponse.ok) {\r\n results.push({ databaseName: dbName, content: false });\r\n continue;\r\n }\r\n\r\n const docsData = await docsResponse.json();\r\n results.push({\r\n databaseName: dbName,\r\n content: docsData.total_rows > 0\r\n });\r\n\r\n } catch (err) {\r\n console.log('err: ', err);\r\n results.push({ databaseName: dbName, content: false });\r\n }\r\n }\r\n return results;\r\n }\r\n\r\n}\r\n","/*\r\n * Public API Surface of view-toolkit\r\n */\r\n\r\nexport * from './lib/view-toolkit.module';\r\n\r\n// container\r\nexport * from './lib/containers/card/card.component';\r\nexport * from './lib/containers/form/form.component';\r\nexport * from './lib/containers/grid/grid.component';\r\nexport * from './lib/containers/pagination/pagination.component';\r\n\r\n// services\r\nexport * from './lib/services/app-version-reset.service';\r\nexport * from './lib/services/config.service';\r\nexport * from './lib/services/couchdb';\r\nexport * from './lib/services/mobile-keycloak.service';\r\nexport * from './lib/services/network-log.service';\r\nexport * from './lib/services/notification.service';\r\nexport * from './lib/services/pouchdb.service';\r\nexport * from './lib/services/request.service';\r\nexport * from './lib/services/utility.service';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.RequestService","i1.UtilityService","i2","i3","i6.RequestService","i1.Couchdb","i2.UtilityService","i1.ConfigService","i3.UtilityService","i4"],"mappings":"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"}
package/package.json CHANGED
@@ -1,37 +1,48 @@
1
- {
2
- "name": "@yomotech/view-toolkit",
3
- "version": "0.0.3",
4
- "peerDependencies": {
5
- "@angular/animations": "^21.1.2",
6
- "@angular/cdk": "^21.1.2",
7
- "@angular/common": "^21.1.2",
8
- "@angular/core": "^21.1.2",
9
- "@angular/forms": "^21.1.2",
10
- "@angular/material": "^21.1.2",
11
- "@angular/platform-browser": "^21.1.2",
12
- "@angular/router": "^21.1.2",
13
- "@ant-design/icons-angular": "^21.0.0",
14
- "@byteowls/capacitor-oauth2": "^5.0.0",
15
- "@capacitor/app": "^7.1.0",
16
- "@capacitor/browser": "^7.0.2",
17
- "@capacitor/core": "^7.2.0",
18
- "@capacitor/preferences": "^7.0.1",
19
- "@ionic/angular": "^8.0.0",
20
- "@stripe/stripe-js": "^5.5.0",
21
- "angular-oauth2-oidc": "^17.0.2",
22
- "jszip": "^3.10.1",
23
- "ng-zorro-antd": "^21.1.0",
24
- "ngx-toastr": "^19.1.0",
25
- "pouchdb": "^9.0.0",
26
- "pouchdb-core": "^9.0.0",
27
- "primeflex": "^4.0.0",
28
- "primeicons": "^7.0.0",
29
- "primeng": "^21.1.1",
30
- "rxjs": "~7.8.0",
31
- "zone.js": "^0.16.0"
32
- },
33
- "dependencies": {
34
- "tslib": "^2.3.0"
35
- },
36
- "sideEffects": false
1
+ {
2
+ "name": "@yomotech/view-toolkit",
3
+ "version": "0.0.4",
4
+ "peerDependencies": {
5
+ "@angular/animations": "^21.1.2",
6
+ "@angular/cdk": "^21.1.2",
7
+ "@angular/common": "^21.1.2",
8
+ "@angular/core": "^21.1.2",
9
+ "@angular/forms": "^21.1.2",
10
+ "@angular/material": "^21.1.2",
11
+ "@angular/platform-browser": "^21.1.2",
12
+ "@angular/router": "^21.1.2",
13
+ "@ant-design/icons-angular": "^21.0.0",
14
+ "@byteowls/capacitor-oauth2": "^5.0.0",
15
+ "@capacitor/app": "^7.1.0",
16
+ "@capacitor/browser": "^7.0.2",
17
+ "@capacitor/core": "^7.2.0",
18
+ "@capacitor/preferences": "^7.0.1",
19
+ "@ionic/angular": "^8.0.0",
20
+ "@stripe/stripe-js": "^5.5.0",
21
+ "angular-oauth2-oidc": "^17.0.2",
22
+ "jszip": "^3.10.1",
23
+ "ng-zorro-antd": "^21.1.0",
24
+ "ngx-toastr": "^19.1.0",
25
+ "pouchdb": "^9.0.0",
26
+ "pouchdb-core": "^9.0.0",
27
+ "primeflex": "^4.0.0",
28
+ "primeicons": "^7.0.0",
29
+ "primeng": "^21.1.1",
30
+ "rxjs": "~7.8.0",
31
+ "zone.js": "^0.16.0"
32
+ },
33
+ "dependencies": {
34
+ "tslib": "^2.3.0"
35
+ },
36
+ "sideEffects": false,
37
+ "module": "fesm2022/yomotech-view-toolkit.mjs",
38
+ "typings": "types/yomotech-view-toolkit.d.ts",
39
+ "exports": {
40
+ "./package.json": {
41
+ "default": "./package.json"
42
+ },
43
+ ".": {
44
+ "types": "./types/yomotech-view-toolkit.d.ts",
45
+ "default": "./fesm2022/yomotech-view-toolkit.mjs"
46
+ }
47
+ }
37
48
  }