@rosoftlab/core 1.0.0-alpha-3 → 1.0.0-alpha-5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"rosoftlab-core.mjs","sources":["../../../../projects/rosoftlab/core/src/lib/base-components/field-error-display/field-error-display.component.ts","../../../../projects/rosoftlab/core/src/lib/base-components/field-error-display/field-error-display.component.html","../../../../projects/rosoftlab/core/src/lib/base-components/page-not-found/page-not-found.component.ts","../../../../projects/rosoftlab/core/src/lib/base-components/page-not-found/page-not-found.component.html","../../../../projects/rosoftlab/core/src/lib/base-components/under-construction/under-construction.component.ts","../../../../projects/rosoftlab/core/src/lib/base-components/under-construction/under-construction.component.html","../../../../projects/rosoftlab/core/src/lib/models/base-query-data.ts","../../../../projects/rosoftlab/core/src/lib/services/cache.service.ts","../../../../projects/rosoftlab/core/src/lib/services/base-datastore.service.ts","../../../../projects/rosoftlab/core/src/lib/services/base.service.ts","../../../../projects/rosoftlab/core/src/lib/services/dialog.service.ts","../../../../projects/rosoftlab/core/src/lib/base-components/base-form-edit.component.ts","../../../../projects/rosoftlab/core/src/lib/grid-layout-format.enum.ts","../../../../projects/rosoftlab/core/src/lib/constants/symbols.ts","../../../../projects/rosoftlab/core/src/lib/converters/date/date.converter.ts","../../../../projects/rosoftlab/core/src/lib/decorators/attribute.decorator.ts","../../../../projects/rosoftlab/core/src/lib/decorators/base-datastore-config.decorator.ts","../../../../projects/rosoftlab/core/src/lib/models/base-meta.model.ts","../../../../projects/rosoftlab/core/src/lib/decorators/base-model-config.decorator.ts","../../../../projects/rosoftlab/core/src/lib/decorators/custom.type.decorator.ts","../../../../projects/rosoftlab/core/src/lib/directives/translated-element.directive.ts","../../../../projects/rosoftlab/core/src/lib/directives/translated-content.directive.ts","../../../../projects/rosoftlab/core/src/lib/interceptors/cache.interceptor.ts","../../../../projects/rosoftlab/core/src/lib/models/base.model.ts","../../../../projects/rosoftlab/core/src/lib/models/error-response.model.ts","../../../../projects/rosoftlab/core/src/lib/models/rule.ts","../../../../projects/rosoftlab/core/src/lib/pipes/Nl2brPipe.pipe.ts","../../../../projects/rosoftlab/core/src/lib/pipes/input-error.pipe.ts","../../../../projects/rosoftlab/core/src/lib/configurations.ts","../../../../projects/rosoftlab/core/src/lib/services/datastore.service.ts","../../../../projects/rosoftlab/core/src/lib/providers.ts","../../../../projects/rosoftlab/core/src/lib/resolvers/dynamically-class-resolver.ts","../../../../projects/rosoftlab/core/src/lib/resolvers/dynamically-service-resolver.ts","../../../../projects/rosoftlab/core/src/lib/services/translate-loader.service.ts","../../../../projects/rosoftlab/core/src/lib/rsl-base-module.ts","../../../../projects/rosoftlab/core/src/lib/validators/pattern-validator.ts","../../../../projects/rosoftlab/core/src/lib/utils.ts","../../../../projects/rosoftlab/core/src/public-api.ts","../../../../projects/rosoftlab/core/src/rosoftlab-core.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'rsl-field-error-display',\n templateUrl: './field-error-display.component.html',\n styleUrls: ['./field-error-display.component.scss']\n})\nexport class FieldErrorDisplayComponent {\n\n @Input() errorMsg: string;\n @Input() displayError: boolean;\n\n}\n","<div *ngIf=\"displayError\" >\n <!-- <span class=\"glyphicon glyphicon-remove form-control-feedback fix-error-icon\"></span> -->\n <span class=\"sr-only\">(error)</span>\n <div class=\"error-msg\">\n {{ errorMsg }}\n </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'rsl-page-not-found',\n templateUrl: './page-not-found.component.html',\n styleUrls: ['./page-not-found.component.scss']\n})\nexport class PageNotFoundComponent implements OnInit {\n\n constructor() { \n }\n\n ngOnInit() {\n }\n\n}\n","<div class=\"forms-view-container\">\n <div class=\"under-construction-view-container\">\n Page not found\n </div>\n</div>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'rsl-under-construction',\n templateUrl: './under-construction.component.html',\n styleUrls: ['./under-construction.component.scss']\n})\nexport class UnderConstructionComponent {\n\n constructor() { }\n}\n","<div class=\"forms-view-container\">\n <div class=\"under-construction-view-container\">\n Page under construction\n </div>\n</div>","\r\nexport class BaseQueryData<T> {\r\n constructor(protected jsonApiModels: Array<T>, protected metaData?: any) { }\r\n\r\n public getModels(): T[] {\r\n return this.jsonApiModels;\r\n }\r\n\r\n public getMeta(): any {\r\n return this.metaData;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CacheService {\n private cache: { [key: string]: { data: any, expiration: number } } = {};\n\n constructor() {}\n\n get(key: string): any {\n const cachedItem = this.cache[key];\n if (cachedItem && cachedItem.expiration > Date.now()) {\n return cachedItem.data;\n }\n this.delete(key);\n return null;\n }\n\n set(key: string, data: any, expiresInMs: number): void {\n const expiration = Date.now() + expiresInMs;\n this.cache[key] = { data, expiration };\n }\n\n delete(key: string): void {\n delete this.cache[key];\n }\n\n clearCacheContainingKeyword(keyword: string): void {\n const keysToDelete = Object.keys(this.cache).filter(key => key.includes(keyword));\n keysToDelete.forEach(key => this.delete(key));\n }\n}\n","import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { compare } from 'fast-json-patch';\r\nimport * as qs from 'qs';\r\nimport { Observable, Observer, throwError } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { DatastoreConfig } from '../interfaces/datastore-config.interface';\r\nimport { ModelConfig } from '../interfaces/model-config.interface';\r\nimport { BaseQueryData } from '../models/base-query-data';\r\nimport { BaseModel } from '../models/base.model';\r\nimport { CacheService } from './cache.service';\r\nexport type ModelType<T extends BaseModel> = new (datastore: BaseDatastore, data: any) => T;\r\n\r\n@Injectable()\r\nexport class BaseDatastore {\r\n protected config!: DatastoreConfig;\r\n // tslint:disable-next-line:variable-name\r\n private _store: { [type: string]: { [id: string]: BaseModel } } = {};\r\n // tslint:enable:max-line-length\r\n // tslint:disable-next-line:ban-types\r\n private toQueryString: Function = this.datastoreConfig.overrides\r\n && this.datastoreConfig.overrides.toQueryString ?\r\n this.datastoreConfig.overrides.toQueryString : this._toQueryString;\r\n // tslint:enable:max-line-length\r\n\r\n private get getDirtyAttributes() {\r\n if (this.datastoreConfig.overrides\r\n && this.datastoreConfig.overrides.getDirtyAttributes) {\r\n return this.datastoreConfig.overrides.getDirtyAttributes;\r\n } else {\r\n return BaseDatastore.getDirtyAttributes;\r\n }\r\n }\r\n\r\n public get getAllAttributes() {\r\n if (this.datastoreConfig.overrides\r\n && this.datastoreConfig.overrides.getAllAttributes) {\r\n return this.datastoreConfig.overrides.getAllAttributes;\r\n } else {\r\n return BaseDatastore.getAllAttributes;\r\n }\r\n }\r\n\r\n // protected config: DatastoreConfig;\r\n\r\n private static getDirtyAttributes(attributesMetadata: any): { string: any } {\r\n const dirtyData: any = {};\r\n\r\n for (const propertyName in attributesMetadata) {\r\n if (attributesMetadata.hasOwnProperty(propertyName)) {\r\n const metadata: any = attributesMetadata[propertyName];\r\n\r\n if (metadata.hasDirtyAttributes) {\r\n const attributeName = metadata.serializedName != null ? metadata.serializedName : propertyName;\r\n dirtyData[attributeName] = metadata.serialisationValue ? metadata.serialisationValue : metadata.newValue;\r\n }\r\n }\r\n }\r\n return dirtyData;\r\n }\r\n\r\n private static getAllAttributes(attributesMetadata: any): { string: any } {\r\n const dirtyData: any = {};\r\n\r\n for (const propertyName in attributesMetadata) {\r\n if (attributesMetadata.hasOwnProperty(propertyName)) {\r\n const metadata: any = attributesMetadata[propertyName];\r\n const attributeName = metadata.serializedName != null ? metadata.serializedName : propertyName;\r\n dirtyData[attributeName] = metadata.serialisationValue ? metadata.serialisationValue : metadata.newValue;\r\n }\r\n }\r\n return dirtyData;\r\n }\r\n\r\n constructor(\r\n protected httpClient: HttpClient,\r\n protected cacheService: CacheService\r\n ) {\r\n }\r\n\r\n findAll<T extends BaseModel>(\r\n modelType: ModelType<T>,\r\n params?: any,\r\n headers?: HttpHeaders,\r\n customUrl?: string\r\n ): Observable<BaseQueryData<T>> {\r\n const customHeadhers: HttpHeaders = this.buildHeaders(headers);\r\n const htmlParams = this.buildParams(modelType, params);\r\n const url: string = this.buildUrl(modelType, customUrl);\r\n\r\n const response = this.httpClient.get(url,\r\n { headers: customHeadhers, params: htmlParams, withCredentials: true })\r\n .pipe(\r\n map(res => this.extractQueryData(res, modelType)),\r\n catchError(this.handleError)\r\n );\r\n return response;\r\n\r\n }\r\n\r\n findRecord<T extends BaseModel>(\r\n modelType: ModelType<T>,\r\n id?: string,\r\n params?: any,\r\n headers?: HttpHeaders,\r\n customUrl?: string\r\n ): Observable<T> {\r\n const customHeadhers: HttpHeaders = this.buildHeaders(headers);\r\n let url: string = this.buildUrl(modelType, customUrl);\r\n if (id) {\r\n url += '/' + id;\r\n }\r\n\r\n const htmlParams = this.buildParams(modelType, params);\r\n const response = this.httpClient.get(url, { headers: customHeadhers, params: htmlParams, withCredentials: true })\r\n .pipe(map(res => this.entityToModel(res, modelType, undefined)),\r\n catchError(this.handleError)\r\n );\r\n return response;\r\n\r\n }\r\n getCustom<U, T extends BaseModel>(modelType: ModelType<T>,\r\n params?: any,\r\n headers?: HttpHeaders,\r\n customUrl?: string,\r\n customResponseType?: any): Observable<U> {\r\n const customHeadhers: HttpHeaders = this.buildHeaders(headers);\r\n const url: string = this.buildUrl(modelType, customUrl);\r\n const htmlParams = this.buildParams(modelType, params);\r\n if (!customResponseType)\r\n customResponseType = 'json';\r\n return this.httpClient.get<U>(url, { headers: customHeadhers, params: htmlParams, withCredentials: true, responseType: customResponseType });\r\n }\r\n\r\n postCustom<U, T extends BaseModel>(modelType: ModelType<T>,\r\n body: any,\r\n params?: any,\r\n headers?: HttpHeaders,\r\n customUrl?: string): Observable<U> {\r\n const customHeadhers: HttpHeaders = this.buildHeaders(headers);\r\n const url: string = this.buildUrl(modelType, customUrl);\r\n const htmlParams = this.buildParams(modelType, params);\r\n return this.httpClient.post<U>(url, body, { headers: customHeadhers, params: htmlParams, reportProgress: true, withCredentials: true });\r\n }\r\n\r\n patchCustom<U, T extends BaseModel>(modelType: ModelType<T>,\r\n body: any,\r\n params?: any,\r\n headers?: HttpHeaders,\r\n customUrl?: string): Observable<U> {\r\n const customHeadhers: HttpHeaders = this.buildHeaders(headers);\r\n const url: string = this.buildUrl(modelType, customUrl);\r\n const htmlParams = this.buildParams(modelType, params);\r\n return this.httpClient.patch<U>(url, body, { headers: customHeadhers, params: htmlParams, withCredentials: true });\r\n }\r\n createRecord<T extends BaseModel>(modelType: ModelType<T>, data?: any): T {\r\n return new modelType(this, data);\r\n }\r\n\r\n saveRecord<T extends BaseModel>(\r\n attributesMetadata: any, model: T,\r\n params?: any,\r\n headers?: HttpHeaders,\r\n customUrl?: string,\r\n customBody?: any\r\n ): Observable<T> {\r\n const modelType = model.constructor as ModelType<T>;\r\n const modelConfig: ModelConfig = model.modelConfig;\r\n const customHeadhers: HttpHeaders = this.buildHeaders(headers);\r\n const url: string = this.buildUrl(modelType, customUrl);\r\n const htmlParams = this.buildParams(modelType, params);\r\n\r\n let httpCall: Observable<any>;\r\n\r\n const body = customBody || this.modelToEntity(model, attributesMetadata);\r\n\r\n if (model.id) {\r\n // tslint:disable-next-line:max-line-length\r\n httpCall = this.httpClient.patch(url + '/' + model.id, body, { headers: customHeadhers, params: htmlParams, withCredentials: true });\r\n } else {\r\n httpCall = this.httpClient.post(url, body, { headers: customHeadhers, params: htmlParams, withCredentials: true });\r\n }\r\n\r\n return httpCall\r\n .pipe(\r\n map(res => {\r\n this.cacheService.clearCacheContainingKeyword(url);\r\n const data = this.resetMetadataAttributes(res, attributesMetadata, modelType);\r\n return this.entityToModel(data, modelType);\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n patchRecord<T extends BaseModel>(\r\n attributesMetadata: any, model: T,\r\n origModel: T,\r\n params?: any,\r\n headers?: HttpHeaders,\r\n customUrl?: string\r\n ): Observable<T> {\r\n const modelType = model.constructor as ModelType<T>;\r\n const modelConfig: ModelConfig = model.modelConfig;\r\n const customHeadhers: HttpHeaders = this.buildHeaders(headers);\r\n const url: string = this.buildUrl(modelType, customUrl);\r\n const htmlParams = this.buildParams(modelType, params);\r\n\r\n let httpCall: Observable<any>;\r\n let origData = { id: '' };\r\n if (origModel)\r\n origData = this.modelToEntity(origModel, origModel.attributeMetadata, true);\r\n const newData = this.modelToEntity(model, attributesMetadata, true);\r\n newData.id = origData.id;\r\n const patch = compare(origData, newData);\r\n if (patch.length > 0) {\r\n httpCall = this.httpClient.patch(url + '/' + model.id, patch, { headers: customHeadhers, params: htmlParams, withCredentials: true });\r\n\r\n return httpCall\r\n .pipe(\r\n map(res => {\r\n this.cacheService.clearCacheContainingKeyword(url);\r\n const data = this.resetMetadataAttributes(res, attributesMetadata, modelType);\r\n return this.entityToModel(data, modelType);\r\n }),\r\n catchError(this.handleError)\r\n );\r\n } else {\r\n return new Observable((observer: Observer<T>) => {\r\n observer.next(model);\r\n observer.complete();\r\n });\r\n }\r\n }\r\n // getPatch<T extends BaseModel>(\r\n // model: T,\r\n // origModel: T): any {\r\n\r\n // }\r\n replaceRecord<T extends BaseModel>(\r\n attributesMetadata: any, model: T,\r\n params?: any,\r\n headers?: HttpHeaders,\r\n customUrl?: string,\r\n customBody?: any\r\n ): Observable<T> {\r\n const modelType = model.constructor as ModelType<T>;\r\n const modelConfig: ModelConfig = model.modelConfig;\r\n const customHeadhers: HttpHeaders = this.buildHeaders(headers);\r\n const url: string = this.buildUrl(modelType, customUrl);\r\n const htmlParams = this.buildParams(modelType, params);\r\n\r\n let httpCall: Observable<any>;\r\n\r\n const body = customBody || this.modelToEntity(model, attributesMetadata, true);\r\n\r\n if (model.id) {\r\n httpCall = this.httpClient.put(url + '/' + model.id, body, { headers: customHeadhers, params: htmlParams, withCredentials: true });\r\n } else {\r\n httpCall = this.httpClient.post(url, body, { headers: customHeadhers, params: htmlParams, withCredentials: true });\r\n }\r\n\r\n return httpCall\r\n .pipe(\r\n map(res => {\r\n this.cacheService.clearCacheContainingKeyword(url);\r\n const data = this.resetMetadataAttributes(res, attributesMetadata, modelType);\r\n return this.entityToModel(data, modelType);\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n\r\n deleteRecord<T extends BaseModel>(\r\n modelType: ModelType<T>,\r\n id: string,\r\n headers?: HttpHeaders,\r\n customUrl?: string\r\n ): Observable<{}> {\r\n const customHeadhers: HttpHeaders = this.buildHeaders(headers);\r\n let url: string = this.buildUrl(modelType, customUrl);\r\n if (!url.includes('share')) {\r\n url = url + '/' + id;\r\n }\r\n // const idParam = new HttpParams().set('id', id);\r\n return this.httpClient.delete(url, { headers: customHeadhers, withCredentials: true })\r\n .pipe(\r\n map(res => {\r\n this.cacheService.clearCacheContainingKeyword(url);\r\n return res;\r\n }\r\n ),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public buildUrl<T extends BaseModel>(\r\n modelType: ModelType<T>,\r\n customUrl?: string\r\n ): string {\r\n\r\n if (customUrl) {\r\n return customUrl;\r\n }\r\n\r\n const modelConfig: ModelConfig = Reflect.getMetadata('BaseModelConfig', modelType);\r\n\r\n const baseUrl = modelConfig.baseUrl || this.datastoreConfig.baseUrl;\r\n const apiVersion = modelConfig.apiVersion || this.datastoreConfig.apiVersion;\r\n const modelEndpointUrl: string = modelConfig.modelEndpointUrl || modelConfig.type;\r\n\r\n const url: string = [baseUrl, apiVersion, modelEndpointUrl].filter((x) => x).join('/');\r\n\r\n return url;\r\n }\r\n\r\n protected extractQueryData<T extends BaseModel>(\r\n res: any,\r\n modelType: ModelType<T>\r\n ): BaseQueryData<T> {\r\n let result;\r\n const body: any = res;\r\n const models: T[] = [];\r\n\r\n for (const data of body.data) {\r\n const model = this.entityToModel(data, modelType, undefined);\r\n models.push(model);\r\n }\r\n\r\n result = new BaseQueryData(models, this.parseMeta(body, modelType));\r\n return result;\r\n }\r\n\r\n protected deserializeModel<T extends BaseModel>(modelType: ModelType<T>, data: any) {\r\n data = this.transformSerializedNamesToPropertyNames(modelType, data);\r\n return new modelType(this, data);\r\n }\r\n\r\n protected handleError(error: HttpErrorResponse) {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n // console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n // console.error(\r\n // 'Backend returned code ${error.status}, ' +\r\n // 'body was: ${error.error}');\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError(error);\r\n }\r\n\r\n protected parseMeta(body: any, modelType: ModelType<BaseModel>): any {\r\n const metaModel: any = Reflect.getMetadata('BaseModelConfig', modelType).meta;\r\n return new metaModel(body);\r\n }\r\n\r\n protected resetMetadataAttributes<T extends BaseModel>(res: T, attributesMetadata: any, modelType: ModelType<T>) {\r\n // TODO check why is attributesMetadata from the arguments never used\r\n\r\n for (const propertyName in attributesMetadata) {\r\n if (attributesMetadata.hasOwnProperty(propertyName)) {\r\n const metadata: any = attributesMetadata[propertyName];\r\n\r\n if (metadata.hasDirtyAttributes) {\r\n metadata.hasDirtyAttributes = false;\r\n }\r\n }\r\n }\r\n\r\n if (res) {\r\n res.attributeMetadata = attributesMetadata;\r\n }\r\n return res;\r\n }\r\n\r\n public get datastoreConfig(): DatastoreConfig {\r\n const configFromDecorator: DatastoreConfig = Reflect.getMetadata('BaseDatastoreConfig', this.constructor);\r\n return Object.assign(configFromDecorator, this.config);\r\n }\r\n\r\n protected transformSerializedNamesToPropertyNames<T extends BaseModel>(modelType: ModelType<T>, attributes: any) {\r\n const serializedNameToPropertyName = this.getModelPropertyNames(modelType.prototype);\r\n const properties: any = {};\r\n\r\n Object.keys(serializedNameToPropertyName).forEach((serializedName) => {\r\n if (attributes[serializedName] !== null && attributes[serializedName] !== undefined) {\r\n properties[serializedNameToPropertyName[serializedName]] = attributes[serializedName];\r\n }\r\n });\r\n\r\n return properties;\r\n }\r\n\r\n protected getModelPropertyNames(model: BaseModel) {\r\n return Reflect.getMetadata('AttributeMapping', model);\r\n }\r\n\r\n public buildHeaders(customHeaders?: HttpHeaders): HttpHeaders {\r\n const headers: any = {\r\n Accept: 'application/json-patch+json',\r\n // 'Content-Type': 'application/vnd.api+json',\r\n 'Content-Type': 'application/json-patch+json'\r\n };\r\n if (customHeaders && customHeaders.keys().length) {\r\n // tslint:disable-next-line:variable-name\r\n Object.assign({}, headers, customHeaders.keys().map(header_name => {\r\n headers['' + header_name] = customHeaders.get(header_name);\r\n }));\r\n }\r\n return new HttpHeaders(headers);\r\n }\r\n\r\n public buildParams<T extends BaseModel>(modelType: ModelType<T>,\r\n params: any): HttpParams {\r\n let httpParams = new HttpParams();\r\n if (params) {\r\n Object.keys(params)\r\n .filter(key => {\r\n const v = params[key];\r\n return (Array.isArray(v) || typeof v === 'string') ?\r\n (v.length > 0) :\r\n (v !== null && v !== undefined);\r\n })\r\n .forEach(key => {\r\n httpParams = httpParams.set(key, params[key]);\r\n });\r\n }\r\n const modelConfig: ModelConfig = Reflect.getMetadata('BaseModelConfig', modelType);\r\n httpParams = httpParams.set('bypassCache', modelConfig.bypassCache || false);\r\n return httpParams;\r\n }\r\n\r\n\r\n protected entityToModel<T extends BaseModel>(\r\n res: any,\r\n modelType: ModelType<T>,\r\n model?: T\r\n ) {\r\n return this.extractRecordDataJson(res, modelType, model);\r\n }\r\n\r\n\r\n private extractRecordDataJson<T extends BaseModel>(\r\n res: Response,\r\n modelType: ModelType<T>,\r\n model?: T\r\n ): T {\r\n const body: any = res;\r\n if (!body) {\r\n throw new Error('no body in response');\r\n }\r\n if (model) {\r\n Object.assign(model, body);\r\n }\r\n const deserializedModel = model || this.deserializeModel(modelType, body.data || body);\r\n return deserializedModel;\r\n }\r\n\r\n public modelToEntity<T extends BaseModel>(\r\n model: T,\r\n attributesMetadata: any,\r\n allAttributes: boolean = false\r\n ): any {\r\n let attributes;\r\n if (allAttributes) {\r\n attributes = this.getAllAttributes(attributesMetadata, model);\r\n } else {\r\n attributes = this.getDirtyAttributes(attributesMetadata, model);\r\n }\r\n // this.getRelationships(model, attributes);\r\n return attributes;\r\n }\r\n private _toQueryString(params: any): string {\r\n return qs.stringify(params, { arrayFormat: 'brackets' });\r\n }\r\n\r\n\r\n}\r\n","import { HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { BaseQueryData } from '../models/base-query-data';\nimport { BaseModel } from '../models/base.model';\nimport { BaseDatastore, ModelType } from './base-datastore.service';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BaseService<T extends BaseModel> {\n public modelType: ModelType<T>;\n constructor(public datastore: BaseDatastore) {\n }\n setModelType(modelType: ModelType<T>) {\n this.modelType = modelType;\n }\n\n get(id?: any, customInclude: string = ''): Observable<T> {\n const response = this.datastore.findRecord(this.modelType, id, { customInclude });\n return response;\n }\n\n getAll(page: number,\n pageSize: number,\n sort: string = '',\n filters: string = '',\n customInclude: string = ''): Observable<BaseQueryData<T>> {\n const response = this.datastore.findAll(this.modelType,\n {\n Page: page,\n PageSize: pageSize,\n Sorts: sort,\n Filters: filters,\n customInclude\n });\n return response;\n }\n delete(id: any): Observable<{}> {\n const response = this.datastore.deleteRecord(this.modelType, id);\n return response;\n }\n getCustom<U>(params?: any,\n headers?: HttpHeaders,\n customUrl?: string,\n customResponseType?: any): Observable<U> {\n return this.datastore.getCustom<U, T>(this.modelType, params, headers, customUrl, customResponseType);\n }\n postCustom<U>(\n body: any,\n params?: any,\n headers?: HttpHeaders,\n customUrl?: string): Observable<U> {\n return this.datastore.postCustom<U, T>(this.modelType, body, params, headers, customUrl);\n }\n patchCustom<U>(\n body: any,\n params?: any,\n headers?: HttpHeaders,\n customUrl?: string): Observable<U> {\n return this.datastore.patchCustom<U, T>(this.modelType, body, params, headers, customUrl);\n }\n // checkIfPropertyUnique(property: string, value: any): Observable<boolean> {\n\n // }\n\n save(docTypeOrFormGroup: T | UntypedFormGroup, id?: any, origModel?: T): Observable<T> {\n if (id == null) {\n let fromModel: T;\n if (docTypeOrFormGroup instanceof UntypedFormGroup) {\n fromModel = this.fromFormGroup(docTypeOrFormGroup, id);\n } else {\n fromModel = docTypeOrFormGroup;\n }\n const data = this.datastore.createRecord(this.modelType, fromModel);\n return data.save();\n } else {\n return this.patch(docTypeOrFormGroup, origModel, id);\n }\n }\n\n patch(docTypeOrFormGroup: T | UntypedFormGroup, origModel: T, id?: any): Observable<T> {\n let fromModel: T;\n if (docTypeOrFormGroup instanceof UntypedFormGroup) {\n fromModel = this.fromFormGroup(docTypeOrFormGroup, id);\n } else {\n fromModel = docTypeOrFormGroup;\n }\n const data = this.datastore.createRecord(this.modelType, fromModel);\n return data.patch(origModel);\n }\n\n newModel(data?: any): T {\n return new this.modelType(this.datastore, data);\n }\n\n toFormGroup(fb: UntypedFormBuilder, fromModel?: T): UntypedFormGroup {\n if (fromModel === undefined) {\n fromModel = this.newModel();\n }\n return fromModel.getFromGroup(fb);\n }\n\n fromFormGroup(formGroup: UntypedFormGroup, id?: any): T {\n // const saveModel = this.newModel(formGroup.getRawValue());\n // saveModel.id = id ? id : null;\n // return saveModel;\n const saveModel = this.newModel();\n saveModel.getModelFromFormGroup(formGroup)\n saveModel.id = id ? id : null;\n return saveModel;\n }\n getSelectValues(property: string): Observable<any[]> {\n return null;\n }\n}","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { from, Observable } from 'rxjs';\r\nimport Swal from 'sweetalert2';\r\ndeclare var $: any;\r\n\r\n/**\r\n * Async modal dialog service\r\n * DialogService makes this app easier to test by faking this service.\r\n * TODO: better modal implementation that doesn't use window.confirm\r\n */\r\n@Injectable()\r\nexport class DialogService {\r\n /**\r\n * Ask user to confirm an action. `message` explains the action and choices.\r\n * Returns observable resolving to `true`=confirm or `false`=cancel\r\n */\r\n constructor() { }\r\n confirm(message?: string, text?: string,\r\n confirmButtonText: string = 'Delete',\r\n cancelButtonText: string = 'Cancel'): Observable<boolean> {\r\n const confirmation = Swal.fire({\r\n title: message || 'Are you sure?',\r\n icon: 'warning',\r\n text: text || '',\r\n showCancelButton: true,\r\n confirmButtonText: confirmButtonText,\r\n cancelButtonText: cancelButtonText,\r\n customClass: {\r\n confirmButton: 'btn btn-red btn-fill btn-wd',\r\n cancelButton: 'btn btn-grey btn-fill btn-wd',\r\n },\r\n buttonsStyling: false,\r\n reverseButtons: true\r\n })\r\n\r\n .then((result: any) => {\r\n if (result.value) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }).catch();\r\n return from(confirmation);\r\n }\r\n showSaveMessage(message?: string, title?: string): Observable<boolean> {\r\n const confirmation = Swal.fire({\r\n icon: 'success',\r\n title: message,\r\n timer: 2000,\r\n showConfirmButton: false,\r\n // customClass: 'overflow-hidden',\r\n buttonsStyling: false\r\n }).then(() => {\r\n return true;\r\n }, () => {\r\n return false;\r\n }).catch();\r\n return from(confirmation);\r\n }\r\n showRegisteredMessage(message?: string, title?: string): Observable<boolean> {\r\n const confirmation = Swal.fire({\r\n icon: 'success',\r\n title: message,\r\n showConfirmButton: true,\r\n customClass: {\r\n confirmButton: 'btn btn-success',\r\n },\r\n buttonsStyling: false\r\n }).then(() => {\r\n return true;\r\n }, () => {\r\n return false;\r\n }).catch();\r\n return from(confirmation);\r\n }\r\n\r\n // notification(message?: string, type?: NotificationType, fromPosition?: NotificationFrom, align?: NotificationAlign, timer?: number) {\r\n\r\n // if (!type) {\r\n // type = NotificationType.success;\r\n // }\r\n // if (!fromPosition) {\r\n // fromPosition = NotificationFrom.bottom;\r\n // }\r\n // if (!align) {\r\n // align = NotificationAlign.center;\r\n // }\r\n // if (!timer) {\r\n // timer = 3000;\r\n // }\r\n\r\n // $.notify({\r\n // icon: 'notifications',\r\n // message: message\r\n // }, {\r\n // type: type,\r\n // timer: 3000,\r\n // placement: {\r\n // from: from,\r\n // align: align\r\n // }\r\n // });\r\n // }\r\n showErrorMessage(e: any, message?: string): Observable<boolean> {\r\n if (!message) {\r\n message = 'Validation errors';\r\n }\r\n if (e instanceof HttpErrorResponse) {\r\n // Validation errors\r\n if (e.status === 400) {\r\n const errors = e.error.errors;\r\n if (errors) {\r\n errors.forEach(error => {\r\n message += error.field + ' ' + error.detail + '\\n';\r\n });\r\n // message = errors.detail;\r\n // if (detail.relationships) {\r\n // detail.relationships.forEach(relation => {\r\n // console.log(relation);\r\n // });\r\n // }\r\n }\r\n }\r\n }\r\n const confirmation = Swal.fire({\r\n icon: 'error',\r\n title: message,\r\n // timer: 2000,\r\n showConfirmButton: true,\r\n customClass: {\r\n confirmButton: 'btn btn-success',\r\n },\r\n buttonsStyling: false\r\n }).then(() => {\r\n return true;\r\n }, () => {\r\n return false;\r\n }).catch();\r\n return from(confirmation);\r\n }\r\n getTextTranslation(translationKey: string) {\r\n // // const result = await promise;\r\n // // return result;\r\n // const result = this.translate.instant(translationKey);\r\n // if (result === translationKey) {\r\n return translationKey;\r\n // }\r\n // return result;\r\n }\r\n}\r\n\r\n","import { Location } from '@angular/common';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs';\r\nimport { BaseModel } from '../models/base.model';\r\nimport { BaseService } from '../services/base.service';\r\nimport { DialogService } from '../services/dialog.service';\r\n@Component({\r\n selector: 'app-base.form.edit',\r\n template: ''\r\n})\r\nexport abstract class BaseFormEditComponent<T extends BaseModel> implements OnInit {\r\n baseForm: UntypedFormGroup;\r\n modelId: string;\r\n model: T;\r\n isEdit: boolean;\r\n isLoading = true;\r\n cancelRoute: string;\r\n editRoute: string;\r\n public changeUrlRoute: boolean = true;\r\n constructor(\r\n protected fb: UntypedFormBuilder,\r\n protected router: Router,\r\n protected route: ActivatedRoute,\r\n protected modelService: BaseService<T>,\r\n protected dialogService: DialogService,\r\n protected translate: TranslateService,\r\n protected location: Location\r\n ) {\r\n this.generateForm(this.modelService.newModel());\r\n }\r\n\r\n public afterSave(model: T): Observable<T> {\r\n return new Observable((observer) => {\r\n observer.next(model);\r\n observer.complete();\r\n });\r\n }\r\n\r\n public beforeSave(model: T): Observable<T> {\r\n return new Observable((observer) => {\r\n observer.next(model);\r\n observer.complete();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.initForm();\r\n }\r\n initForm(customInclude: string = '', newModelId: string = null, model: T = null) {\r\n if (model === null) {\r\n this.modelId = this.route.snapshot.paramMap.get('id') ?? newModelId;\r\n this.isEdit = false;\r\n if (this.modelId) {\r\n this.modelService.get(this.modelId, customInclude).subscribe((value: T) => {\r\n this.isEdit = true;\r\n this.generateForm(value)\r\n }\r\n );\r\n } else {\r\n if (this.changeUrlRoute) {\r\n const addUrl = this.router.createUrlTree([]).toString();\r\n this.editRoute = this.router.createUrlTree([addUrl.replace('add', 'edit')]).toString();\r\n }\r\n // }\r\n this.generateForm(this.modelService.newModel());\r\n }\r\n } else {\r\n this.modelId = model.id;\r\n this.isEdit = true;\r\n this.generateForm(model)\r\n }\r\n }\r\n generateForm(model?: T) {\r\n this.isLoading = false;\r\n this.modelId = model.id;\r\n this.model = model;\r\n this.baseForm = this.modelService.toFormGroup(this.fb, model);\r\n this.afterFormGenerated();\r\n }\r\n public afterFormGenerated() {\r\n\r\n }\r\n private getFromGroup(formGroup: UntypedFormGroup | string = null): UntypedFormGroup {\r\n if (!formGroup)\r\n return this.baseForm;\r\n if (formGroup instanceof UntypedFormGroup)\r\n return formGroup;\r\n return this.baseForm.controls[formGroup] as UntypedFormGroup;\r\n }\r\n validateAllFormFields(formGroup: UntypedFormGroup | string = null) {\r\n const fg = this.getFromGroup(formGroup)\r\n Object.keys(fg.controls).forEach(field => {\r\n // console.log(field);\r\n const control = fg.get(field);\r\n if (control instanceof UntypedFormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n } else if (control instanceof UntypedFormGroup) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n isFieldValid(field: string, formGroup: UntypedFormGroup | string = null) {\r\n const fg = this.getFromGroup(formGroup)\r\n const filedControl = fg.get(field)\r\n return !filedControl.valid && filedControl.touched;\r\n }\r\n\r\n isFieldValidFromArray(arrayIndex: number, field: string, arrayName: string = 'formArray') {\r\n const fieldControl = this.baseForm.get(arrayName).get([arrayIndex]).get(field)\r\n return !fieldControl.valid && fieldControl.touched;\r\n }\r\n\r\n displayFieldCss(field: string) {\r\n return {\r\n 'has-error': this.isFieldValid(field),\r\n 'has-feedback': this.isFieldValid(field)\r\n };\r\n }\r\n onCancel() {\r\n this.router.navigate([this.cancelRoute]);\r\n }\r\n onSave() {\r\n this.saveModel(this.baseForm)\r\n }\r\n saveModel(formGroup: UntypedFormGroup | string = null) {\r\n const fg = this.getFromGroup(formGroup)\r\n const that = this;\r\n if (fg) {\r\n if (fg.valid) {\r\n this.beforeSave(this.model).subscribe(_ => {\r\n this.modelService.save(this.baseForm, this.modelId, this.model).subscribe(\r\n (newModel: T) => {\r\n this.model = newModel;\r\n this.modelId = newModel.id;\r\n if (this.editRoute) {\r\n this.isEdit = true;\r\n if (this.changeUrlRoute) {\r\n const url = this.router.createUrlTree([this.editRoute, this.modelId]).toString();\r\n this.location.replaceState(url);\r\n }\r\n }\r\n this.afterSave(newModel).subscribe((val: T) => {\r\n this.dialogService.showSaveMessage('Your changes were saved successfully.').subscribe(d => {\r\n fg.markAsPristine();\r\n });\r\n });\r\n },\r\n err => {\r\n this.serverErrors(err)\r\n });\r\n });\r\n } else {\r\n this.validateAllFormFields(formGroup);\r\n }\r\n }\r\n }\r\n serverErrors(err: any) {\r\n if (err.error) {\r\n if (err.error.errors) {\r\n const validationErrors = err.error.errors;\r\n if (Array.isArray(validationErrors)) {\r\n validationErrors.forEach(prop => {\r\n const formControl = this.baseForm.get(prop);\r\n if (formControl) {\r\n // activate the error message\r\n formControl.setErrors({\r\n serverError: validationErrors[prop].join('\\n')\r\n });\r\n }\r\n });\r\n } else {\r\n const keys = Object.keys(validationErrors);\r\n keys.forEach(prop => {\r\n const formControl = this.baseForm.get(prop);\r\n if (formControl) {\r\n // activate the error message\r\n formControl.setErrors({\r\n serverError: validationErrors[prop].join('\\n')\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n canDeactivate(): Observable<boolean> | boolean {\r\n // Allow synchronous navigation (`true`) if no crisis or the crisis is unchanged\r\n if (!this.baseForm.dirty) {\r\n return true;\r\n }\r\n // Otherwise ask the user with the dialog service and return its\r\n // observable which resolves to true or false when the user decides\r\n return this.dialogService.confirm('Discard changes ?', null, 'Discard');\r\n }\r\n getFiledName(filedTranslationKey: string) {\r\n return { field: this.translate.instant(filedTranslationKey) };\r\n }\r\n getCustomErrorMessage(error: any, fieldLabel: string): string {\r\n return '';\r\n }\r\n getErrorMessageFromArray(arrayIndex: number, field: string, filedTranslationKey: string, arrayName: string = 'formArray'): string {\r\n const fieldControl = this.baseForm.get(arrayName).get([arrayIndex]).get(field)\r\n return this.getErrorMessageForField(fieldControl, filedTranslationKey)\r\n }\r\n getErrorMessage(field: string, filedTranslationKey: string, formGroup: UntypedFormGroup | string = null): string {\r\n const fg = this.getFromGroup(formGroup)\r\n return this.getErrorMessageForField(fg.get(field), filedTranslationKey)\r\n }\r\n getErrorMessageForField(fieldControl: any, filedTranslationKey: string): string {\r\n const error = fieldControl.errors;\r\n const fieldLabel = this.translate.instant(filedTranslationKey);\r\n let rvalue = '';\r\n if (error !== null) {\r\n if (error['required'] === true) {\r\n rvalue = this.translate.instant('General.Field.Required', { field: fieldLabel });\r\n }\r\n if (error['minlength']) {\r\n rvalue = this.translate.instant('General.Field.MinLength', { field: fieldLabel, requiredLength: error.minlength.requiredLength });\r\n }\r\n if (error['email'] === true) {\r\n rvalue = this.translate.instant('General.Field.InvalidEmail');\r\n }\r\n if (error['url'] === true) {\r\n rvalue = this.translate.instant('General.Field.InvalidUrl');\r\n }\r\n if (error['serverError']) {\r\n rvalue = error['serverError'];\r\n }\r\n if (rvalue === '') {\r\n rvalue = this.getCustomErrorMessage(error, fieldLabel);\r\n }\r\n }\r\n return rvalue;\r\n }\r\n}\r\n","export enum GridLayoutFormat {\n none,\n date,\n number,\n percent,\n picture\n}\n\nexport enum CellTextAlign {\n left = 'left',\n center = 'center',\n right = 'right',\n}","// tslint:disable-next-line:variable-name\nexport const AttributeMetadata: any = Symbol('AttributeMetadata');\n","import { parseISO } from 'date-fns';\r\nimport { PropertyConverter } from '../../interfaces/property-converter.interface';\r\n\r\nexport class DateConverter implements PropertyConverter {\r\n mask(value: any) {\r\n if (value instanceof Date && !isNaN(value.getTime())) {\r\n return value;\r\n }\r\n const d = parseISO(value);\r\n if (d instanceof Date && !isNaN(d.getTime())) {\r\n return d\r\n } else {\r\n return value;\r\n }\r\n }\r\n unmask(value: any) {\r\n // const result = format(value, 'YYYY-MM-DDTHH:mm:ssZ');\r\n return value;\r\n }\r\n}\r\n","import 'reflect-metadata';\r\n// import * as Reflect from 'reflect-metadata';\r\nimport { AttributeMetadata } from '../constants/symbols';\r\nimport { DateConverter } from '../converters/date/date.converter';\r\nimport { AttributeDecoratorOptions } from '../interfaces/attribute-decorator-options.interface';\r\n\r\nexport function Attribute(options: AttributeDecoratorOptions = {}): PropertyDecorator {\r\n return (target: any, propertyName: string) => {\r\n\r\n const converter = (dataType: any, value: any, forSerialisation = false): any => {\r\n let attrConverter;\r\n if (dataType) {\r\n if (options.converter) {\r\n attrConverter = options.converter;\r\n } else if (dataType === Date) {\r\n attrConverter = new DateConverter();\r\n } else {\r\n const datatype = new dataType();\r\n\r\n if (datatype.mask && datatype.unmask) {\r\n attrConverter = datatype;\r\n }\r\n }\r\n\r\n if (attrConverter) {\r\n if (!forSerialisation) {\r\n return attrConverter.mask(value);\r\n }\r\n return attrConverter.unmask(value);\r\n }\r\n }\r\n return value;\r\n };\r\n\r\n const saveAnnotations = () => {\r\n const metadata = Reflect.getMetadata('Attribute', target) || {};\r\n\r\n metadata[propertyName] = {\r\n marked: true\r\n };\r\n\r\n Reflect.defineMetadata('Attribute', metadata, target);\r\n\r\n const mappingMetadata = Reflect.getMetadata('AttributeMapping', target) || {};\r\n const serializedPropertyName = options.serializedName !== undefined ? options.serializedName : propertyName;\r\n mappingMetadata[serializedPropertyName] = propertyName;\r\n Reflect.defineMetadata('AttributeMapping', mappingMetadata, target);\r\n\r\n const requiredMetadata = Reflect.getMetadata('AttributeRequired', target) || {};\r\n requiredMetadata[serializedPropertyName] = options.required !== undefined ? options.required : false;\r\n Reflect.defineMetadata('AttributeRequired', requiredMetadata, target);\r\n\r\n const defaultMetadata = Reflect.getMetadata('AttributedefaultValue', target) || {};\r\n defaultMetadata[serializedPropertyName] = options.defaultValue !== undefined ? options.defaultValue : null;\r\n Reflect.defineMetadata('AttributedefaultValue', defaultMetadata, target);\r\n\r\n const formSubGroupMetadata = Reflect.getMetadata('AttributeformSubGroup', target) || {};\r\n formSubGroupMetadata[serializedPropertyName] = options.formSubGroup !== undefined ? options.formSubGroup : null;\r\n Reflect.defineMetadata('AttributeformSubGroup', formSubGroupMetadata, target);\r\n\r\n };\r\n\r\n const setMetadata = (\r\n hasDirtyAttributes: boolean,\r\n instance: any,\r\n oldValue: any,\r\n newValue: any,\r\n isNew: boolean\r\n ) => {\r\n const targetType = Reflect.getMetadata('design:type', target, propertyName);\r\n\r\n if (!instance[AttributeMetadata]) {\r\n instance[AttributeMetadata] = {};\r\n }\r\n\r\n const propertyHasDirtyAttributes = typeof oldValue === 'undefined' && !isNew ? false : hasDirtyAttributes;\r\n\r\n instance[AttributeMetadata][propertyName] = {\r\n newValue,\r\n oldValue,\r\n serializedName: options.serializedName,\r\n hasDirtyAttributes: propertyHasDirtyAttributes,\r\n serialisationValue: converter(targetType, newValue, true)\r\n };\r\n };\r\n\r\n const getter = function () {\r\n return this['_' + (propertyName as string)];\r\n };\r\n\r\n const setter = function (newVal: any) {\r\n const targetType = Reflect.getMetadata('design:type', target, propertyName);\r\n const convertedValue = converter(targetType, newVal);\r\n\r\n if (convertedValue !== this['_' + (propertyName as string)]) {\r\n setMetadata(true, this, this['_' + (propertyName as string)], newVal, !this.id);\r\n this['_' + (propertyName as string)] = convertedValue;\r\n }\r\n };\r\n\r\n if (delete target[propertyName]) {\r\n saveAnnotations();\r\n Object.defineProperty(target, propertyName, {\r\n get: getter,\r\n set: setter,\r\n enumerable: true,\r\n configurable: true\r\n });\r\n }\r\n };\r\n}\r\n","export function BaseDatastoreConfig(config: any = {}) {\r\n // tslint:disable-next-line:only-arrow-functions\r\n return (target: any) => {\r\n Reflect.defineMetadata('BaseDatastoreConfig', config, target);\r\n };\r\n}\r\n","export class BaseMetaModel {\r\n public links: Array<any>;\r\n public meta: any;\r\n\r\n constructor(response: any) {\r\n this.links = response.links || [];\r\n this.meta = response.meta;\r\n }\r\n}\r\n","import { BaseMetaModel } from '../models/base-meta.model';\r\n\r\nexport function BaseModelConfig(config: any = {}) {\r\n return (target: any) => {\r\n if (typeof config['meta'] === 'undefined' || config['meta'] == null) {\r\n config['meta'] = BaseMetaModel;\r\n }\r\n\r\n Reflect.defineMetadata('BaseModelConfig', config, target);\r\n };\r\n}\r\n","export function CustomType(config: any = {}) {\r\n return (target: any, propertyName: string | symbol) => {\r\n const annotations = Reflect.getMetadata('CustomType', target) || [];\r\n\r\n annotations.push({\r\n propertyName,\r\n relationship: config.key || propertyName\r\n });\r\n\r\n Reflect.defineMetadata('CustomType', annotations, target);\r\n };\r\n}\r\n","\nimport { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[translatedElement]',\n})\nexport class TranslatedElementDirective {\n\n @Input('translatedElement')\n public elementKey: string;\n\n constructor(\n public readonly viewRef: ViewContainerRef,\n public readonly templateRef: TemplateRef<any>,\n ) {}\n}","import {\n AfterContentInit, ChangeDetectorRef, ContentChildren, Directive,\n Input, OnDestroy, OnInit, QueryList, Renderer2, ViewContainerRef\n} from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, combineLatest, merge, Observable, Subscription } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\nimport { TranslatedElementDirective } from './translated-element.directive';\n\ninterface TranslationData {\n elements: TranslatedElementDirective[];\n rawTranslation: string;\n}\n\nconst TOKEN_START_DEMARC = '{{';\nconst TOKEN_END_DEMARC = '}}';\n\n// adapted from @kasperlauge's solution in https://github.com/ngx-translate/core/issues/223\n@Directive({\n selector: '[appTranslatedContent]',\n})\nexport class TranslatedContentDirective implements OnInit, OnDestroy, AfterContentInit {\n\n @Input('appTranslatedContent') translationKey: string;\n\n @ContentChildren(TranslatedElementDirective)\n private elements: QueryList<TranslatedElementDirective>;\n\n private subs: Subscription[] = [];\n private rawTranslation: Observable<string>;\n private translationData: Observable<TranslationData>;\n\n constructor(\n private viewRef: ViewContainerRef,\n private renderer: Renderer2,\n private translateService: TranslateService,\n private changeDetectorRef: ChangeDetectorRef,\n ) { }\n\n public ngOnInit(): void {\n this.rawTranslation = merge(\n this.translateService.get(this.translationKey),\n this.translateService.onLangChange.asObservable().pipe(switchMap(() => this.translateService.get(this.translationKey)))\n );\n }\n\n\n public ngAfterContentInit(): void {\n // QueryList.changes doesn't re-emit after its initial value, which we have by now\n // BehaviorSubjects re-emit their initial value on subscription, so we get what we need by merging\n // the BehaviorSubject and the QueryList.changes observable\n const elementsSubject = new BehaviorSubject(this.elements.toArray());\n const elementsChanges = merge(elementsSubject, this.elements.changes);\n\n this.translationData = combineLatest(this.rawTranslation, elementsChanges)\n .pipe(\n map(([rawTranslation]) => {\n return {\n elements: this.elements.toArray(),\n rawTranslation,\n };\n })\n );\n\n this.subs.push(this.translationData.subscribe(this.render.bind(this)));\n }\n\n private render(translationData: TranslationData): void {\n\n if (!translationData.rawTranslation || translationData.rawTranslation === this.translationKey) {\n throw new Error(`No resource matching the key '${this.translationKey}'`);\n }\n\n while (this.viewRef.element.nativeElement.firstChild) {\n this.renderer.removeChild(this.viewRef.element.nativeElement, this.viewRef.element.nativeElement.firstChild);\n }\n\n let lastTokenEnd = 0;\n while (lastTokenEnd < translationData.rawTranslation.length) {\n const tokenStartDemarc = translationData.rawTranslation.indexOf(TOKEN_START_DEMARC, lastTokenEnd);\n if (tokenStartDemarc < 0) {\n break;\n }\n const tokenStart = tokenStartDemarc + TOKEN_START_DEMARC.length;\n const tokenEnd = translationData.rawTranslation.indexOf(TOKEN_END_DEMARC, tokenStart);\n if (tokenEnd < 0) {\n throw new Error(`Encountered unterminated token in translation string '${this.translationKey}'`);\n }\n const tokenEndDemarc = tokenEnd + TOKEN_END_DEMARC.length;\n\n const precedingText = translationData.rawTranslation.substring(lastTokenEnd, tokenStartDemarc);\n const precedingTextElement = this.renderer.createText(precedingText);\n this.renderer.appendChild(this.viewRef.element.nativeElement, precedingTextElement);\n\n const elementKey = translationData.rawTranslation.substring(tokenStart, tokenEnd);\n const embeddedElementTemplate = translationData.elements.find(element => element.elementKey === elementKey);\n if (embeddedElementTemplate) {\n const embeddedElementView = embeddedElementTemplate.viewRef.createEmbeddedView(embeddedElementTemplate.templateRef);\n this.renderer.appendChild(this.viewRef.element.nativeElement, embeddedElementView.rootNodes[0]);\n } else {\n const missingTokenText = translationData.rawTranslation.substring(tokenStartDemarc, tokenEndDemarc);\n const missingTokenElement = this.renderer.createText(missingTokenText);\n this.renderer.appendChild(this.viewRef.element.nativeElement, missingTokenElement);\n }\n\n lastTokenEnd = tokenEndDemarc;\n }\n\n const trailingText = translationData.rawTranslation.substring(lastTokenEnd);\n const trailingTextElement = this.renderer.createText(trailingText);\n\n this.renderer.appendChild(this.viewRef.element.nativeElement, trailingTextElement);\n\n // in case the rendering happens outside of a change detection event, this ensures that any translations in the\n // embedded elements are rendered\n this.changeDetectorRef.detectChanges();\n\n }\n\n public ngOnDestroy(): void {\n this.subs.forEach(sub => sub.unsubscribe());\n }\n}","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport { CacheService } from '../services/cache.service';\r\n\r\n@Injectable()\r\nexport class CacheInterceptor implements HttpInterceptor {\r\n private cache: Map<string, { response: HttpResponse<any>, expiration: number }> = new Map();\r\n\r\n constructor(@Inject('CACHE_EXPIRATION_TIME') private expirationTime: number,\r\n private cacheService: CacheService) { }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n const bypassCache = request.params.get('bypassCache') || false;\r\n\r\n if (bypassCache || request.method !== 'GET') {\r\n return next.handle(request);\r\n }\r\n\r\n if (!bypassCache) {\r\n const cachedResponse = this.cacheService.get(request.urlWithParams);\r\n if (cachedResponse) {\r\n return of(cachedResponse.clone());\r\n //return cachedResponse;\r\n }\r\n }\r\n\r\n return next.handle(request).pipe(\r\n tap((event) => {\r\n if (event instanceof HttpResponse) {\r\n this.cacheService.set(request.urlWithParams, event.clone(), this.expirationTime);\r\n }\r\n })\r\n );\r\n\r\n // const cachedItem = this.cache.get(request.url);\r\n\r\n // if (cachedItem && cachedItem.expiration > Date.now()) {\r\n // return of(cachedItem.response.clone());\r\n // }\r\n\r\n // return next.handle(request).pipe(\r\n // tap(event => {\r\n // if (event instanceof HttpResponse) {\r\n // this.cache.set(request.url, { response: event.clone(), expiration: Date.now() + this.expirationTime });\r\n // }\r\n // })\r\n // );\r\n }\r\n}","import { HttpHeaders } from '@angular/common/http';\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { AttributeMetadata } from '../constants/symbols';\nimport { ModelConfig } from '../interfaces/model-config.interface';\nimport { BaseDatastore, ModelType } from '../services/base-datastore.service';\nexport class BaseModel {\n public highlighted: boolean;\n public id: any;\n [key: string]: any;\n\n // tslint:disable-next-line:variable-name\n constructor(protected _datastore: BaseDatastore, data?: any) {\n if (data) {\n if (data.id) {\n this.id = data.id;\n }\n Object.assign(this, data);\n }\n }\n\n save(\n params?: any,\n headers?: HttpHeaders,\n customUrl?: string,\n customBody?: any): Observable<this> {\n const attributesMetadata: any = this[AttributeMetadata];\n return this._datastore.saveRecord(attributesMetadata, this, params, headers, customUrl, customBody);\n }\n\n patch(\n origModel: this,\n params?: any,\n headers?: HttpHeaders,\n customUrl?: string\n ): Observable<this> {\n const attributesMetadata: any = this[AttributeMetadata];\n return this._datastore.patchRecord(attributesMetadata, this, origModel, params, headers, customUrl);\n }\n\n replace(\n params?: any,\n headers?: HttpHeaders,\n customUrl?: string,\n customBody?: any): Observable<this> {\n const attributesMetadata: any = this[AttributeMetadata];\n return this._datastore.replaceRecord(attributesMetadata, this, params, headers, customUrl, customBody);\n }\n get attributeMetadata(): any {\n const attributesMetadata: any = this[AttributeMetadata];\n return attributesMetadata;\n }\n set attributeMetadata(val: any) {\n this[AttributeMetadata] = val;\n }\n get hasDirtyAttributes() {\n const attributesMetadata: any = this[AttributeMetadata];\n let hasDirtyAttributes = false;\n for (const propertyName in attributesMetadata) {\n if (attributesMetadata.hasOwnProperty(propertyName)) {\n const metadata: any = attributesMetadata[propertyName];\n\n if (metadata.hasDirtyAttributes) {\n hasDirtyAttributes = true;\n break;\n }\n }\n }\n return hasDirtyAttributes;\n }\n\n rollbackAttributes(): void {\n const attributesMetadata: any = this[AttributeMetadata];\n let metadata: any;\n for (const propertyName in attributesMetadata) {\n if (attributesMetadata.hasOwnProperty(propertyName)) {\n if (attributesMetadata[propertyName].hasDirtyAttributes) {\n this[propertyName] = attributesMetadata[propertyName].oldValue;\n metadata = {\n hasDirtyAttributes: false,\n newValue: attributesMetadata[propertyName].oldValue,\n oldValue: undefined\n };\n attributesMetadata[propertyName] = metadata;\n }\n }\n }\n\n this[AttributeMetadata] = attributesMetadata;\n }\n\n get modelConfig(): ModelConfig {\n return Reflect.getMetadata('BaseModelConfig', this.constructor);\n }\n\n\n protected deserializeModel<T extends BaseModel>(modelType: ModelType<T>, data: any) {\n data = this.transformSerializedNamesToPropertyNames(modelType, data);\n return new modelType(this._datastore, data);\n }\n\n\n protected transformSerializedNamesToPropertyNames<T extends BaseModel>(modelType: ModelType<T>, attributes: any) {\n const serializedNameToPropertyName = this.getModelPropertyNames(modelType.prototype);\n const properties: any = {};\n\n Object.keys(serializedNameToPropertyName).forEach((serializedName) => {\n if (attributes[serializedName] !== null && attributes[serializedName] !== undefined) {\n properties[serializedNameToPropertyName[serializedName]] = attributes[serializedName];\n }\n });\n\n return properties;\n }\n\n public getModelPropertyNames(model: BaseModel) {\n return Reflect.getMetadata('AttributeMapping', model);\n }\n public getModelRequiredPropertyNames(model: BaseModel) {\n return Reflect.getMetadata('AttributeRequired', model);\n }\n public getModelDefaultPropertyValues(model: BaseModel) {\n return Reflect.getMetadata('AttributedefaultValue', model);\n }\n\n public getModelSubGroupPropertyNames(model: BaseModel) {\n return Reflect.getMetadata('AttributeformSubGroup', model);\n }\n\n public getFromGroup(fb: UntypedFormBuilder): UntypedFormGroup {\n const props = Object.keys(this.getModelPropertyNames(this));\n const requiredProps = this.getModelRequiredPropertyNames(this);\n const defaultValues = this.getModelDefaultPropertyValues(this);\n const formSubGroupsValues = this.getModelSubGroupPropertyNames(this);\n const controlsConfig: any = {};\n const that = this;\n if (props) {\n props.forEach(property => {\n const value = that[property] !== undefined ? that[property] : defaultValues[property];\n const formSubGroup = formSubGroupsValues[property] ?? null;\n if (requiredProps[property]) {\n if (formSubGroup)\n this.getSubFromGroup(fb, controlsConfig, formSubGroup).addControl(property, fb.control(value, Validators.required));\n else\n controlsConfig[property] = [value, Validators.required];\n } else {\n if (formSubGroup)\n this.getSubFromGroup(fb, controlsConfig, formSubGroup).addControl(property, fb.control(value));\n else\n controlsConfig[property] = value;\n }\n });\n\n }\n return fb.group(controlsConfig);\n }\n private getSubFromGroup(fb: UntypedFormBuilder, controlsConfig: any, subGroup: string): UntypedFormGroup {\n if (!controlsConfig[subGroup])\n controlsConfig[subGroup] = fb.group({});\n return controlsConfig[subGroup];\n }\n\n public getModelFromFormGroup(formGroup: UntypedFormGroup, id?: any) {\n const props = Object.keys(this.getModelPropertyNames(this));\n const formSubGroupsValues = this.getModelSubGroupPropertyNames(this);\n const data: any = {};\n if (id) {\n data.id = id;\n }\n const that = this;\n if (props) {\n props.forEach(property => {\n const formSubGroup = formSubGroupsValues[property] ?? null;\n if (!formSubGroup)\n data[property] = formGroup.controls[property].value ?? null;\n else\n data[property] = (formGroup.controls[formSubGroup] as UntypedFormGroup).controls[property].value ?? null;\n });\n }\n if (data) {\n if (id) {\n this.id = id;\n }\n Object.assign(this, data);\n }\n }\n\n \n\n public getSerializedModel() {\n const attributesMetadata: any = this[AttributeMetadata];\n return this._datastore.modelToEntity(this, attributesMetadata, true);\n }\n getCellClass(property: string) {\n return '';\n }\n}\n","export interface JsonBaseError {\r\n id?: string;\r\n links ?: Array<any>;\r\n status ?: string;\r\n code ?: string;\r\n title ?: string;\r\n detail ?: string;\r\n source ?: {\r\n pointer ?: string;\r\n parameter ?: string\r\n };\r\n meta ?: any;\r\n}\r\n\r\nexport class ErrorResponse {\r\n errors?: JsonBaseError[] = [];\r\n\r\n constructor(errors ?: JsonBaseError[]) {\r\n if (errors) {\r\n this.errors = errors;\r\n }\r\n }\r\n}\r\n","export class Rule {\n rule: any;\n order: number;\n parameters: string[] = [];\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'nl2br'\r\n})\r\nexport class Nl2brPipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): any {\r\n // return value.replace(/\\n/g, '<br />');\r\n if (value) {\r\n value = value.replace(/(?:\\r\\n\\r\\n|\\r\\r|\\n\\n)/g, '</p><p>');\r\n return '<p>' + value.replace(/(?:\\r\\n|\\r|\\n)/g, '<br>') + '</p>';\r\n }\r\n return value;\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'inputError'\r\n})\r\nexport class InputErrorPipe implements PipeTransform {\r\n constructor(protected translate: TranslateService) {\r\n\r\n }\r\n transform(value: any, filedTranslationKey: any): string {\r\n let rvalue = '';\r\n if (value !== null) {\r\n if (value['invalid'] === true) {\r\n rvalue = 'ERROR.INVALID';\r\n }\r\n if (value['mustMatch'] === true) {\r\n rvalue = 'Account.Password.MustMach';\r\n }\r\n if (value['required'] === true) {\r\n const field = this.translate.instant(filedTranslationKey.field);\r\n rvalue = this.translate.instant('General.Field.Required', { field });\r\n }\r\n if (value['minlength']) {\r\n const field = this.translate.instant(filedTranslationKey.field);\r\n rvalue = this.translate.instant('General.Field.MinLength', { field, requiredLength: value.minlength.requiredLength });\r\n }\r\n }\r\n return rvalue;\r\n }\r\n\r\n}","export class Configurations {\r\n public baseUrl: string;\r\n public authUrl: string;\r\n public apiVersion: string;\r\n\r\n constructor() {\r\n this.baseUrl = '';\r\n this.authUrl = '';\r\n this.apiVersion = 'api/v1';\r\n }\r\n\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Configurations } from '../configurations';\r\nimport { BaseDatastoreConfig, DatastoreConfig } from '../core';\r\nimport { BaseDatastore } from './base-datastore.service';\r\nimport { CacheService } from './cache.service';\r\n\r\n\r\n@Injectable()\r\n@BaseDatastoreConfig({ apiVersion: '', baseUrl: '' })\r\nexport class DatastoreCore extends BaseDatastore {\r\n private customConfig: DatastoreConfig\r\n constructor(http: HttpClient, cacheService: CacheService, private configExt: Configurations) {\r\n super(http, cacheService);\r\n this.customConfig = {\r\n apiVersion: this.configExt.apiVersion,\r\n baseUrl: this.configExt.baseUrl\r\n };\r\n this.config = this.customConfig;\r\n }\r\n}\r\n","import { DatePipe, DecimalPipe, PercentPipe } from '@angular/common';\r\nimport { BaseDatastore } from './services/base-datastore.service';\r\nimport { DatastoreCore } from './services/datastore.service';\r\nexport * from './services';\r\n\r\nexport const PROVIDERS: any[] = [\r\n BaseDatastore,\r\n DatastoreCore,\r\n DatePipe,\r\n DecimalPipe,\r\n PercentPipe,\r\n];\r\n","import { ActivatedRouteSnapshot, ResolveFn, RouterStateSnapshot } from '@angular/router';\r\nimport { BaseModel } from '../core';\r\n\r\nexport function DynamicallyModelResolver<T extends BaseModel>(modelsImport: any, className: string | undefined = undefined): ResolveFn<T> {\r\n return (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\r\n if (className == undefined)\r\n className = route.paramMap.get('className');\r\n const instance = getInstance<T>(className, modelsImport);\r\n if (!instance) {\r\n throw new Error(`Invalid className: ${className}`);\r\n }\r\n return instance;\r\n };\r\n}\r\n\r\nfunction getInstance<T>(className: string, modelsImport: any): Promise<T> {\r\n return modelsImport.then((module) => module[toProperCase(className)]);\r\n // return modelsImport.then((module) => ({ modelInstance: module[toProperCase(className)] })\r\n // );\r\n}\r\n\r\nfunction toProperCase(str: string): string {\r\n return str.replace(/\\w\\S*/g, (txt: string) => {\r\n return txt.charAt(0).toUpperCase() + txt.substring(1).toLowerCase();\r\n });\r\n}\r\n","import { ActivatedRouteSnapshot, ResolveFn, RouterStateSnapshot } from '@angular/router';\nimport { BaseModel, BaseService } from '../core';\n\nexport function DynamicallyServiceResolver<T extends BaseModel, U extends BaseService<T>>(serviceImport: any, serviceName: string): ResolveFn<U> {\n return (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\n const instance = getInstance<U>(serviceName, serviceImport);\n if (!instance) {\n throw new Error(`Invalid className: ${serviceName}`);\n }\n return instance;\n };\n}\n\nfunction getInstance<U>(serviceName: string, serviceImport: any): Promise<U> {\n return serviceImport.then((module) => module[toProperCase(serviceName)]); // return Promise.all([serviceImport]).then(\n // (module) => ({\n // serviceInstance: module[toProperCase(serviceName)],\n // })\n // );\n}\n\nfunction toProperCase(str: string): string {\n return str.replace(/\\w\\S*/g, (txt: string) => {\n return txt.charAt(0).toUpperCase() + txt.substring(1).toLowerCase();\n });\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { TranslateLoader } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { Configurations } from '../configurations';\n@Injectable({\n providedIn: 'root'\n})\nexport class TranslateloaderService implements TranslateLoader {\n private _apiUrl = 'No Value';\n private headers: any = new HttpHeaders({\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n });\n constructor(private httpClient: HttpClient,\n @Optional() config?: Configurations) {\n if (config) {\n this._apiUrl = config.baseUrl;\n }\n }\n getTranslation(lang: string): Observable<any> {\n const url = this._apiUrl + '/api/v1/language/' + lang + '/translationlist';\n return this.httpClient.get(url, { headers: this.headers });\n }\n\n}\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { Configurations } from './configurations';\r\nimport { PROVIDERS } from './providers';\r\nimport { TranslateloaderService } from './services/translate-loader.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useClass: TranslateloaderService,\r\n deps: [HttpClient]\r\n },\r\n // missingTranslationHandler: { provide: MissingTranslationHandler, useClass: MyMissingTranslationHandler },\r\n useDefaultLang: false,\r\n }),\r\n ReactiveFormsModule\r\n ],\r\n providers: [\r\n PROVIDERS\r\n ],\r\n exports: [\r\n HttpClientModule,\r\n TranslateModule,\r\n ]\r\n})\r\nexport class RslBaseModule {\r\n public static forRoot(config: Configurations): ModuleWithProviders<RslBaseModule> {\r\n return {\r\n ngModule: RslBaseModule,\r\n providers: [\r\n PROVIDERS,\r\n { provide: Configurations, useValue: config }\r\n ]\r\n };\r\n }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport class CustomValidators {\n static patternValidator(regex: RegExp, error: ValidationErrors): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n if (!control.value) {\n // if control is empty return no error\n return null;\n }\n\n // test the value of the control against the regexp supplied\n const valid = regex.test(control.value);\n\n // if true, return no error (no error), else return error passed in the second parameter\n return valid ? null : error;\n };\n }\n}\n","export function readFileAsync(file: File): Promise<any> {\r\n return new Promise<any>((resolve, reject) => {\r\n const reader = new FileReader();\r\n\r\n reader.onload = (event: any) => {\r\n resolve(event.target.result);\r\n };\r\n\r\n reader.onerror = (event: any) => {\r\n reject(event.target.error);\r\n };\r\n\r\n reader.readAsArrayBuffer(file);\r\n });\r\n}\r\n\r\nexport function getValueFromJsonData(jsonData: any, key: string): any {\r\n // Convert the key and all JSON keys to lowercase\r\n const lowercaseKey = key.toLowerCase();\r\n const lowercaseKeys = Object.keys(jsonData).map(k => k.toLowerCase());\r\n\r\n // Find the lowercase key in the lowercase keys array\r\n const index = lowercaseKeys.indexOf(lowercaseKey);\r\n\r\n // If found, use the original (proper case) key to access the value\r\n if (index !== -1) {\r\n const originalKey = Object.keys(jsonData)[index];\r\n return jsonData[originalKey];\r\n }\r\n\r\n // Key not found\r\n return undefined;\r\n}","/*\n * Public API Surface of core\n */\n\nexport * from './lib/core';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.CacheService","i1.BaseDatastore","i1","i3.BaseService","i4.DialogService","i5","i1.CacheService","i3.Configurations","getInstance","toProperCase","i2.Configurations"],"mappings":"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"}
1
+ {"version":3,"file":"rosoftlab-core.mjs","sources":["../../../../projects/rosoftlab/core/src/lib/base-components/field-error-display/field-error-display.component.ts","../../../../projects/rosoftlab/core/src/lib/base-components/field-error-display/field-error-display.component.html","../../../../projects/rosoftlab/core/src/lib/base-components/page-not-found/page-not-found.component.ts","../../../../projects/rosoftlab/core/src/lib/base-components/page-not-found/page-not-found.component.html","../../../../projects/rosoftlab/core/src/lib/base-components/under-construction/under-construction.component.ts","../../../../projects/rosoftlab/core/src/lib/base-components/under-construction/under-construction.component.html","../../../../projects/rosoftlab/core/src/lib/models/base-query-data.ts","../../../../projects/rosoftlab/core/src/lib/services/cache.service.ts","../../../../projects/rosoftlab/core/src/lib/services/base-datastore.service.ts","../../../../projects/rosoftlab/core/src/lib/services/base.service.ts","../../../../projects/rosoftlab/core/src/lib/base-components/base-form-edit.component.ts","../../../../projects/rosoftlab/core/src/lib/grid-layout-format.enum.ts","../../../../projects/rosoftlab/core/src/lib/constants/symbols.ts","../../../../projects/rosoftlab/core/src/lib/converters/date/date.converter.ts","../../../../projects/rosoftlab/core/src/lib/decorators/attribute.decorator.ts","../../../../projects/rosoftlab/core/src/lib/decorators/base-datastore-config.decorator.ts","../../../../projects/rosoftlab/core/src/lib/models/base-meta.model.ts","../../../../projects/rosoftlab/core/src/lib/decorators/base-model-config.decorator.ts","../../../../projects/rosoftlab/core/src/lib/decorators/custom.type.decorator.ts","../../../../projects/rosoftlab/core/src/lib/interceptors/cache.interceptor.ts","../../../../projects/rosoftlab/core/src/lib/models/base.model.ts","../../../../projects/rosoftlab/core/src/lib/models/error-response.model.ts","../../../../projects/rosoftlab/core/src/lib/models/rule.ts","../../../../projects/rosoftlab/core/src/lib/pipes/Nl2brPipe.pipe.ts","../../../../projects/rosoftlab/core/src/lib/pipes/input-error.pipe.ts","../../../../projects/rosoftlab/core/src/lib/configurations.ts","../../../../projects/rosoftlab/core/src/lib/services/datastore.service.ts","../../../../projects/rosoftlab/core/src/lib/providers.ts","../../../../projects/rosoftlab/core/src/lib/resolvers/dynamically-class-resolver.ts","../../../../projects/rosoftlab/core/src/lib/resolvers/dynamically-service-resolver.ts","../../../../projects/rosoftlab/core/src/lib/services/translate-loader.service.ts","../../../../projects/rosoftlab/core/src/lib/rsl-base-module.ts","../../../../projects/rosoftlab/core/src/lib/validators/pattern-validator.ts","../../../../projects/rosoftlab/core/src/lib/utils.ts","../../../../projects/rosoftlab/core/src/public-api.ts","../../../../projects/rosoftlab/core/src/rosoftlab-core.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'rsl-field-error-display',\n templateUrl: './field-error-display.component.html',\n styleUrls: ['./field-error-display.component.scss']\n})\nexport class FieldErrorDisplayComponent {\n\n @Input() errorMsg: string;\n @Input() displayError: boolean;\n\n}\n","<div *ngIf=\"displayError\" >\n <!-- <span class=\"glyphicon glyphicon-remove form-control-feedback fix-error-icon\"></span> -->\n <span class=\"sr-only\">(error)</span>\n <div class=\"error-msg\">\n {{ errorMsg }}\n </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'rsl-page-not-found',\n templateUrl: './page-not-found.component.html',\n styleUrls: ['./page-not-found.component.scss']\n})\nexport class PageNotFoundComponent implements OnInit {\n\n constructor() { \n }\n\n ngOnInit() {\n }\n\n}\n","<div class=\"forms-view-container\">\n <div class=\"under-construction-view-container\">\n Page not found\n </div>\n</div>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'rsl-under-construction',\n templateUrl: './under-construction.component.html',\n styleUrls: ['./under-construction.component.scss']\n})\nexport class UnderConstructionComponent {\n\n constructor() { }\n}\n","<div class=\"forms-view-container\">\n <div class=\"under-construction-view-container\">\n Page under construction\n </div>\n</div>","\r\nexport class BaseQueryData<T> {\r\n constructor(protected jsonApiModels: Array<T>, protected metaData?: any) { }\r\n\r\n public getModels(): T[] {\r\n return this.jsonApiModels;\r\n }\r\n\r\n public getMeta(): any {\r\n return this.metaData;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CacheService {\n private cache: { [key: string]: { data: any, expiration: number } } = {};\n\n constructor() {}\n\n get(key: string): any {\n const cachedItem = this.cache[key];\n if (cachedItem && cachedItem.expiration > Date.now()) {\n return cachedItem.data;\n }\n this.delete(key);\n return null;\n }\n\n set(key: string, data: any, expiresInMs: number): void {\n const expiration = Date.now() + expiresInMs;\n this.cache[key] = { data, expiration };\n }\n\n delete(key: string): void {\n delete this.cache[key];\n }\n\n clearCacheContainingKeyword(keyword: string): void {\n const keysToDelete = Object.keys(this.cache).filter(key => key.includes(keyword));\n keysToDelete.forEach(key => this.delete(key));\n }\n}\n","import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { compare } from 'fast-json-patch';\r\nimport * as qs from 'qs';\r\nimport { Observable, Observer, throwError } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { DatastoreConfig } from '../interfaces/datastore-config.interface';\r\nimport { ModelConfig } from '../interfaces/model-config.interface';\r\nimport { BaseQueryData } from '../models/base-query-data';\r\nimport { BaseModel } from '../models/base.model';\r\nimport { CacheService } from './cache.service';\r\nexport type ModelType<T extends BaseModel> = new (datastore: BaseDatastore, data: any) => T;\r\n\r\n@Injectable()\r\nexport class BaseDatastore {\r\n protected config!: DatastoreConfig;\r\n // tslint:disable-next-line:variable-name\r\n private _store: { [type: string]: { [id: string]: BaseModel } } = {};\r\n // tslint:enable:max-line-length\r\n // tslint:disable-next-line:ban-types\r\n private toQueryString: Function = this.datastoreConfig.overrides\r\n && this.datastoreConfig.overrides.toQueryString ?\r\n this.datastoreConfig.overrides.toQueryString : this._toQueryString;\r\n // tslint:enable:max-line-length\r\n\r\n private get getDirtyAttributes() {\r\n if (this.datastoreConfig.overrides\r\n && this.datastoreConfig.overrides.getDirtyAttributes) {\r\n return this.datastoreConfig.overrides.getDirtyAttributes;\r\n } else {\r\n return BaseDatastore.getDirtyAttributes;\r\n }\r\n }\r\n\r\n public get getAllAttributes() {\r\n if (this.datastoreConfig.overrides\r\n && this.datastoreConfig.overrides.getAllAttributes) {\r\n return this.datastoreConfig.overrides.getAllAttributes;\r\n } else {\r\n return BaseDatastore.getAllAttributes;\r\n }\r\n }\r\n\r\n // protected config: DatastoreConfig;\r\n\r\n private static getDirtyAttributes(attributesMetadata: any): { string: any } {\r\n const dirtyData: any = {};\r\n\r\n for (const propertyName in attributesMetadata) {\r\n if (attributesMetadata.hasOwnProperty(propertyName)) {\r\n const metadata: any = attributesMetadata[propertyName];\r\n\r\n if (metadata.hasDirtyAttributes) {\r\n const attributeName = metadata.serializedName != null ? metadata.serializedName : propertyName;\r\n dirtyData[attributeName] = metadata.serialisationValue ? metadata.serialisationValue : metadata.newValue;\r\n }\r\n }\r\n }\r\n return dirtyData;\r\n }\r\n\r\n private static getAllAttributes(attributesMetadata: any): { string: any } {\r\n const dirtyData: any = {};\r\n\r\n for (const propertyName in attributesMetadata) {\r\n if (attributesMetadata.hasOwnProperty(propertyName)) {\r\n const metadata: any = attributesMetadata[propertyName];\r\n const attributeName = metadata.serializedName != null ? metadata.serializedName : propertyName;\r\n dirtyData[attributeName] = metadata.serialisationValue ? metadata.serialisationValue : metadata.newValue;\r\n }\r\n }\r\n return dirtyData;\r\n }\r\n\r\n constructor(\r\n protected httpClient: HttpClient,\r\n protected cacheService: CacheService\r\n ) {\r\n }\r\n\r\n findAll<T extends BaseModel>(\r\n modelType: ModelType<T>,\r\n params?: any,\r\n headers?: HttpHeaders,\r\n customUrl?: string\r\n ): Observable<BaseQueryData<T>> {\r\n const customHeadhers: HttpHeaders = this.buildHeaders(headers);\r\n const htmlParams = this.buildParams(modelType, params);\r\n const url: string = this.buildUrl(modelType, customUrl);\r\n\r\n const response = this.httpClient.get(url,\r\n { headers: customHeadhers, params: htmlParams, withCredentials: true })\r\n .pipe(\r\n map(res => this.extractQueryData(res, modelType)),\r\n catchError(this.handleError)\r\n );\r\n return response;\r\n\r\n }\r\n\r\n findRecord<T extends BaseModel>(\r\n modelType: ModelType<T>,\r\n id?: string,\r\n params?: any,\r\n headers?: HttpHeaders,\r\n customUrl?: string\r\n ): Observable<T> {\r\n const customHeadhers: HttpHeaders = this.buildHeaders(headers);\r\n let url: string = this.buildUrl(modelType, customUrl);\r\n if (id) {\r\n url += '/' + id;\r\n }\r\n\r\n const htmlParams = this.buildParams(modelType, params);\r\n const response = this.httpClient.get(url, { headers: customHeadhers, params: htmlParams, withCredentials: true })\r\n .pipe(map(res => this.entityToModel(res, modelType, undefined)),\r\n catchError(this.handleError)\r\n );\r\n return response;\r\n\r\n }\r\n getCustom<U, T extends BaseModel>(modelType: ModelType<T>,\r\n params?: any,\r\n headers?: HttpHeaders,\r\n customUrl?: string,\r\n customResponseType?: any): Observable<U> {\r\n const customHeadhers: HttpHeaders = this.buildHeaders(headers);\r\n const url: string = this.buildUrl(modelType, customUrl);\r\n const htmlParams = this.buildParams(modelType, params);\r\n if (!customResponseType)\r\n customResponseType = 'json';\r\n return this.httpClient.get<U>(url, { headers: customHeadhers, params: htmlParams, withCredentials: true, responseType: customResponseType });\r\n }\r\n\r\n postCustom<U, T extends BaseModel>(modelType: ModelType<T>,\r\n body: any,\r\n params?: any,\r\n headers?: HttpHeaders,\r\n customUrl?: string): Observable<U> {\r\n const customHeadhers: HttpHeaders = this.buildHeaders(headers);\r\n const url: string = this.buildUrl(modelType, customUrl);\r\n const htmlParams = this.buildParams(modelType, params);\r\n return this.httpClient.post<U>(url, body, { headers: customHeadhers, params: htmlParams, reportProgress: true, withCredentials: true });\r\n }\r\n\r\n patchCustom<U, T extends BaseModel>(modelType: ModelType<T>,\r\n body: any,\r\n params?: any,\r\n headers?: HttpHeaders,\r\n customUrl?: string): Observable<U> {\r\n const customHeadhers: HttpHeaders = this.buildHeaders(headers);\r\n const url: string = this.buildUrl(modelType, customUrl);\r\n const htmlParams = this.buildParams(modelType, params);\r\n return this.httpClient.patch<U>(url, body, { headers: customHeadhers, params: htmlParams, withCredentials: true });\r\n }\r\n createRecord<T extends BaseModel>(modelType: ModelType<T>, data?: any): T {\r\n return new modelType(this, data);\r\n }\r\n\r\n saveRecord<T extends BaseModel>(\r\n attributesMetadata: any, model: T,\r\n params?: any,\r\n headers?: HttpHeaders,\r\n customUrl?: string,\r\n customBody?: any\r\n ): Observable<T> {\r\n const modelType = model.constructor as ModelType<T>;\r\n const modelConfig: ModelConfig = model.modelConfig;\r\n const customHeadhers: HttpHeaders = this.buildHeaders(headers);\r\n const url: string = this.buildUrl(modelType, customUrl);\r\n const htmlParams = this.buildParams(modelType, params);\r\n\r\n let httpCall: Observable<any>;\r\n\r\n const body = customBody || this.modelToEntity(model, attributesMetadata);\r\n\r\n if (model.id) {\r\n // tslint:disable-next-line:max-line-length\r\n httpCall = this.httpClient.patch(url + '/' + model.id, body, { headers: customHeadhers, params: htmlParams, withCredentials: true });\r\n } else {\r\n httpCall = this.httpClient.post(url, body, { headers: customHeadhers, params: htmlParams, withCredentials: true });\r\n }\r\n\r\n return httpCall\r\n .pipe(\r\n map(res => {\r\n this.cacheService.clearCacheContainingKeyword(url);\r\n const data = this.resetMetadataAttributes(res, attributesMetadata, modelType);\r\n return this.entityToModel(data, modelType);\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n patchRecord<T extends BaseModel>(\r\n attributesMetadata: any, model: T,\r\n origModel: T,\r\n params?: any,\r\n headers?: HttpHeaders,\r\n customUrl?: string\r\n ): Observable<T> {\r\n const modelType = model.constructor as ModelType<T>;\r\n const modelConfig: ModelConfig = model.modelConfig;\r\n const customHeadhers: HttpHeaders = this.buildHeaders(headers);\r\n const url: string = this.buildUrl(modelType, customUrl);\r\n const htmlParams = this.buildParams(modelType, params);\r\n\r\n let httpCall: Observable<any>;\r\n let origData = { id: '' };\r\n if (origModel)\r\n origData = this.modelToEntity(origModel, origModel.attributeMetadata, true);\r\n const newData = this.modelToEntity(model, attributesMetadata, true);\r\n newData.id = origData.id;\r\n const patch = compare(origData, newData);\r\n if (patch.length > 0) {\r\n httpCall = this.httpClient.patch(url + '/' + model.id, patch, { headers: customHeadhers, params: htmlParams, withCredentials: true });\r\n\r\n return httpCall\r\n .pipe(\r\n map(res => {\r\n this.cacheService.clearCacheContainingKeyword(url);\r\n const data = this.resetMetadataAttributes(res, attributesMetadata, modelType);\r\n return this.entityToModel(data, modelType);\r\n }),\r\n catchError(this.handleError)\r\n );\r\n } else {\r\n return new Observable((observer: Observer<T>) => {\r\n observer.next(model);\r\n observer.complete();\r\n });\r\n }\r\n }\r\n // getPatch<T extends BaseModel>(\r\n // model: T,\r\n // origModel: T): any {\r\n\r\n // }\r\n replaceRecord<T extends BaseModel>(\r\n attributesMetadata: any, model: T,\r\n params?: any,\r\n headers?: HttpHeaders,\r\n customUrl?: string,\r\n customBody?: any\r\n ): Observable<T> {\r\n const modelType = model.constructor as ModelType<T>;\r\n const modelConfig: ModelConfig = model.modelConfig;\r\n const customHeadhers: HttpHeaders = this.buildHeaders(headers);\r\n const url: string = this.buildUrl(modelType, customUrl);\r\n const htmlParams = this.buildParams(modelType, params);\r\n\r\n let httpCall: Observable<any>;\r\n\r\n const body = customBody || this.modelToEntity(model, attributesMetadata, true);\r\n\r\n if (model.id) {\r\n httpCall = this.httpClient.put(url + '/' + model.id, body, { headers: customHeadhers, params: htmlParams, withCredentials: true });\r\n } else {\r\n httpCall = this.httpClient.post(url, body, { headers: customHeadhers, params: htmlParams, withCredentials: true });\r\n }\r\n\r\n return httpCall\r\n .pipe(\r\n map(res => {\r\n this.cacheService.clearCacheContainingKeyword(url);\r\n const data = this.resetMetadataAttributes(res, attributesMetadata, modelType);\r\n return this.entityToModel(data, modelType);\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n\r\n deleteRecord<T extends BaseModel>(\r\n modelType: ModelType<T>,\r\n id: string,\r\n headers?: HttpHeaders,\r\n customUrl?: string\r\n ): Observable<{}> {\r\n const customHeadhers: HttpHeaders = this.buildHeaders(headers);\r\n let url: string = this.buildUrl(modelType, customUrl);\r\n if (!url.includes('share')) {\r\n url = url + '/' + id;\r\n }\r\n // const idParam = new HttpParams().set('id', id);\r\n return this.httpClient.delete(url, { headers: customHeadhers, withCredentials: true })\r\n .pipe(\r\n map(res => {\r\n this.cacheService.clearCacheContainingKeyword(url);\r\n return res;\r\n }\r\n ),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public buildUrl<T extends BaseModel>(\r\n modelType: ModelType<T>,\r\n customUrl?: string\r\n ): string {\r\n\r\n if (customUrl) {\r\n return customUrl;\r\n }\r\n\r\n const modelConfig: ModelConfig = Reflect.getMetadata('BaseModelConfig', modelType);\r\n\r\n const baseUrl = modelConfig.baseUrl || this.datastoreConfig.baseUrl;\r\n const apiVersion = modelConfig.apiVersion || this.datastoreConfig.apiVersion;\r\n const modelEndpointUrl: string = modelConfig.modelEndpointUrl || modelConfig.type;\r\n\r\n const url: string = [baseUrl, apiVersion, modelEndpointUrl].filter((x) => x).join('/');\r\n\r\n return url;\r\n }\r\n\r\n protected extractQueryData<T extends BaseModel>(\r\n res: any,\r\n modelType: ModelType<T>\r\n ): BaseQueryData<T> {\r\n let result;\r\n const body: any = res;\r\n const models: T[] = [];\r\n\r\n for (const data of body.data) {\r\n const model = this.entityToModel(data, modelType, undefined);\r\n models.push(model);\r\n }\r\n\r\n result = new BaseQueryData(models, this.parseMeta(body, modelType));\r\n return result;\r\n }\r\n\r\n protected deserializeModel<T extends BaseModel>(modelType: ModelType<T>, data: any) {\r\n data = this.transformSerializedNamesToPropertyNames(modelType, data);\r\n return new modelType(this, data);\r\n }\r\n\r\n protected handleError(error: HttpErrorResponse) {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n // console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n // console.error(\r\n // 'Backend returned code ${error.status}, ' +\r\n // 'body was: ${error.error}');\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError(error);\r\n }\r\n\r\n protected parseMeta(body: any, modelType: ModelType<BaseModel>): any {\r\n const metaModel: any = Reflect.getMetadata('BaseModelConfig', modelType).meta;\r\n return new metaModel(body);\r\n }\r\n\r\n protected resetMetadataAttributes<T extends BaseModel>(res: T, attributesMetadata: any, modelType: ModelType<T>) {\r\n // TODO check why is attributesMetadata from the arguments never used\r\n\r\n for (const propertyName in attributesMetadata) {\r\n if (attributesMetadata.hasOwnProperty(propertyName)) {\r\n const metadata: any = attributesMetadata[propertyName];\r\n\r\n if (metadata.hasDirtyAttributes) {\r\n metadata.hasDirtyAttributes = false;\r\n }\r\n }\r\n }\r\n\r\n if (res) {\r\n res.attributeMetadata = attributesMetadata;\r\n }\r\n return res;\r\n }\r\n\r\n public get datastoreConfig(): DatastoreConfig {\r\n const configFromDecorator: DatastoreConfig = Reflect.getMetadata('BaseDatastoreConfig', this.constructor);\r\n return Object.assign(configFromDecorator, this.config);\r\n }\r\n\r\n protected transformSerializedNamesToPropertyNames<T extends BaseModel>(modelType: ModelType<T>, attributes: any) {\r\n const serializedNameToPropertyName = this.getModelPropertyNames(modelType.prototype);\r\n const properties: any = {};\r\n\r\n Object.keys(serializedNameToPropertyName).forEach((serializedName) => {\r\n if (attributes[serializedName] !== null && attributes[serializedName] !== undefined) {\r\n properties[serializedNameToPropertyName[serializedName]] = attributes[serializedName];\r\n }\r\n });\r\n\r\n return properties;\r\n }\r\n\r\n protected getModelPropertyNames(model: BaseModel) {\r\n return Reflect.getMetadata('AttributeMapping', model);\r\n }\r\n\r\n public buildHeaders(customHeaders?: HttpHeaders): HttpHeaders {\r\n const headers: any = {\r\n Accept: 'application/json-patch+json',\r\n // 'Content-Type': 'application/vnd.api+json',\r\n 'Content-Type': 'application/json-patch+json'\r\n };\r\n if (customHeaders && customHeaders.keys().length) {\r\n // tslint:disable-next-line:variable-name\r\n Object.assign({}, headers, customHeaders.keys().map(header_name => {\r\n headers['' + header_name] = customHeaders.get(header_name);\r\n }));\r\n }\r\n return new HttpHeaders(headers);\r\n }\r\n\r\n public buildParams<T extends BaseModel>(modelType: ModelType<T>,\r\n params: any): HttpParams {\r\n let httpParams = new HttpParams();\r\n if (params) {\r\n Object.keys(params)\r\n .filter(key => {\r\n const v = params[key];\r\n return (Array.isArray(v) || typeof v === 'string') ?\r\n (v.length > 0) :\r\n (v !== null && v !== undefined);\r\n })\r\n .forEach(key => {\r\n httpParams = httpParams.set(key, params[key]);\r\n });\r\n }\r\n const modelConfig: ModelConfig = Reflect.getMetadata('BaseModelConfig', modelType);\r\n httpParams = httpParams.set('bypassCache', modelConfig.bypassCache || false);\r\n return httpParams;\r\n }\r\n\r\n\r\n protected entityToModel<T extends BaseModel>(\r\n res: any,\r\n modelType: ModelType<T>,\r\n model?: T\r\n ) {\r\n return this.extractRecordDataJson(res, modelType, model);\r\n }\r\n\r\n\r\n private extractRecordDataJson<T extends BaseModel>(\r\n res: Response,\r\n modelType: ModelType<T>,\r\n model?: T\r\n ): T {\r\n const body: any = res;\r\n if (!body) {\r\n throw new Error('no body in response');\r\n }\r\n if (model) {\r\n Object.assign(model, body);\r\n }\r\n const deserializedModel = model || this.deserializeModel(modelType, body.data || body);\r\n return deserializedModel;\r\n }\r\n\r\n public modelToEntity<T extends BaseModel>(\r\n model: T,\r\n attributesMetadata: any,\r\n allAttributes: boolean = false\r\n ): any {\r\n let attributes;\r\n if (allAttributes) {\r\n attributes = this.getAllAttributes(attributesMetadata, model);\r\n } else {\r\n attributes = this.getDirtyAttributes(attributesMetadata, model);\r\n }\r\n // this.getRelationships(model, attributes);\r\n return attributes;\r\n }\r\n private _toQueryString(params: any): string {\r\n return qs.stringify(params, { arrayFormat: 'brackets' });\r\n }\r\n\r\n\r\n}\r\n","import { HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { BaseQueryData } from '../models/base-query-data';\nimport { BaseModel } from '../models/base.model';\nimport { BaseDatastore, ModelType } from './base-datastore.service';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BaseService<T extends BaseModel> {\n public modelType: ModelType<T>;\n constructor(public datastore: BaseDatastore) {\n }\n setModelType(modelType: ModelType<T>) {\n this.modelType = modelType;\n }\n\n get(id?: any, customInclude: string = ''): Observable<T> {\n const response = this.datastore.findRecord(this.modelType, id, { customInclude });\n return response;\n }\n\n getAll(page: number,\n pageSize: number,\n sort: string = '',\n filters: string = '',\n customInclude: string = ''): Observable<BaseQueryData<T>> {\n const response = this.datastore.findAll(this.modelType,\n {\n Page: page,\n PageSize: pageSize,\n Sorts: sort,\n Filters: filters,\n customInclude\n });\n return response;\n }\n delete(id: any): Observable<{}> {\n const response = this.datastore.deleteRecord(this.modelType, id);\n return response;\n }\n getCustom<U>(params?: any,\n headers?: HttpHeaders,\n customUrl?: string,\n customResponseType?: any): Observable<U> {\n return this.datastore.getCustom<U, T>(this.modelType, params, headers, customUrl, customResponseType);\n }\n postCustom<U>(\n body: any,\n params?: any,\n headers?: HttpHeaders,\n customUrl?: string): Observable<U> {\n return this.datastore.postCustom<U, T>(this.modelType, body, params, headers, customUrl);\n }\n patchCustom<U>(\n body: any,\n params?: any,\n headers?: HttpHeaders,\n customUrl?: string): Observable<U> {\n return this.datastore.patchCustom<U, T>(this.modelType, body, params, headers, customUrl);\n }\n // checkIfPropertyUnique(property: string, value: any): Observable<boolean> {\n\n // }\n\n save(docTypeOrFormGroup: T | UntypedFormGroup, id?: any, origModel?: T): Observable<T> {\n if (id == null) {\n let fromModel: T;\n if (docTypeOrFormGroup instanceof UntypedFormGroup) {\n fromModel = this.fromFormGroup(docTypeOrFormGroup, id);\n } else {\n fromModel = docTypeOrFormGroup;\n }\n const data = this.datastore.createRecord(this.modelType, fromModel);\n return data.save();\n } else {\n return this.patch(docTypeOrFormGroup, origModel, id);\n }\n }\n\n patch(docTypeOrFormGroup: T | UntypedFormGroup, origModel: T, id?: any): Observable<T> {\n let fromModel: T;\n if (docTypeOrFormGroup instanceof UntypedFormGroup) {\n fromModel = this.fromFormGroup(docTypeOrFormGroup, id);\n } else {\n fromModel = docTypeOrFormGroup;\n }\n const data = this.datastore.createRecord(this.modelType, fromModel);\n return data.patch(origModel);\n }\n\n newModel(data?: any): T {\n return new this.modelType(this.datastore, data);\n }\n\n toFormGroup(fb: UntypedFormBuilder, fromModel?: T): UntypedFormGroup {\n if (fromModel === undefined) {\n fromModel = this.newModel();\n }\n return fromModel.getFromGroup(fb);\n }\n\n fromFormGroup(formGroup: UntypedFormGroup, id?: any): T {\n // const saveModel = this.newModel(formGroup.getRawValue());\n // saveModel.id = id ? id : null;\n // return saveModel;\n const saveModel = this.newModel();\n saveModel.getModelFromFormGroup(formGroup)\n saveModel.id = id ? id : null;\n return saveModel;\n }\n getSelectValues(property: string): Observable<any[]> {\n return null;\n }\n}","import { Location } from '@angular/common';\r\nimport { Component, Inject, InjectionToken, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs';\r\nimport { BaseModel } from '../models/base.model';\r\nimport { BaseService } from '../services/base.service';\r\nimport { DialogService } from '../services/dialog.service';\r\nconst DialogSERVICE = new InjectionToken<string>('DialogService');\r\n@Component({\r\n selector: 'app-base.form.edit',\r\n template: ''\r\n})\r\nexport abstract class BaseFormEditComponent<T extends BaseModel> implements OnInit {\r\n baseForm: UntypedFormGroup;\r\n modelId: string;\r\n model: T;\r\n isEdit: boolean;\r\n isLoading = true;\r\n cancelRoute: string;\r\n editRoute: string;\r\n public changeUrlRoute: boolean = true;\r\n constructor(\r\n protected fb: UntypedFormBuilder,\r\n protected router: Router,\r\n protected route: ActivatedRoute,\r\n protected modelService: BaseService<T>,\r\n @Inject(DialogSERVICE) protected dialogService: DialogService,\r\n protected translate: TranslateService,\r\n protected location: Location\r\n ) {\r\n this.generateForm(this.modelService.newModel());\r\n }\r\n\r\n public afterSave(model: T): Observable<T> {\r\n return new Observable((observer) => {\r\n observer.next(model);\r\n observer.complete();\r\n });\r\n }\r\n\r\n public beforeSave(model: T): Observable<T> {\r\n return new Observable((observer) => {\r\n observer.next(model);\r\n observer.complete();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.initForm();\r\n }\r\n initForm(customInclude: string = '', newModelId: string = null, model: T = null) {\r\n if (model === null) {\r\n this.modelId = this.route.snapshot.paramMap.get('id') ?? newModelId;\r\n this.isEdit = false;\r\n if (this.modelId) {\r\n this.modelService.get(this.modelId, customInclude).subscribe((value: T) => {\r\n this.isEdit = true;\r\n this.generateForm(value)\r\n }\r\n );\r\n } else {\r\n if (this.changeUrlRoute) {\r\n const addUrl = this.router.createUrlTree([]).toString();\r\n this.editRoute = this.router.createUrlTree([addUrl.replace('add', 'edit')]).toString();\r\n }\r\n // }\r\n this.generateForm(this.modelService.newModel());\r\n }\r\n } else {\r\n this.modelId = model.id;\r\n this.isEdit = true;\r\n this.generateForm(model)\r\n }\r\n }\r\n generateForm(model?: T) {\r\n this.isLoading = false;\r\n this.modelId = model.id;\r\n this.model = model;\r\n this.baseForm = this.modelService.toFormGroup(this.fb, model);\r\n this.afterFormGenerated();\r\n }\r\n public afterFormGenerated() {\r\n\r\n }\r\n private getFromGroup(formGroup: UntypedFormGroup | string = null): UntypedFormGroup {\r\n if (!formGroup)\r\n return this.baseForm;\r\n if (formGroup instanceof UntypedFormGroup)\r\n return formGroup;\r\n return this.baseForm.controls[formGroup] as UntypedFormGroup;\r\n }\r\n validateAllFormFields(formGroup: UntypedFormGroup | string = null) {\r\n const fg = this.getFromGroup(formGroup)\r\n Object.keys(fg.controls).forEach(field => {\r\n // console.log(field);\r\n const control = fg.get(field);\r\n if (control instanceof UntypedFormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n } else if (control instanceof UntypedFormGroup) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n isFieldValid(field: string, formGroup: UntypedFormGroup | string = null) {\r\n const fg = this.getFromGroup(formGroup)\r\n const filedControl = fg.get(field)\r\n return !filedControl.valid && filedControl.touched;\r\n }\r\n\r\n isFieldValidFromArray(arrayIndex: number, field: string, arrayName: string = 'formArray') {\r\n const fieldControl = this.baseForm.get(arrayName).get([arrayIndex]).get(field)\r\n return !fieldControl.valid && fieldControl.touched;\r\n }\r\n\r\n displayFieldCss(field: string) {\r\n return {\r\n 'has-error': this.isFieldValid(field),\r\n 'has-feedback': this.isFieldValid(field)\r\n };\r\n }\r\n onCancel() {\r\n this.router.navigate([this.cancelRoute]);\r\n }\r\n onSave() {\r\n this.saveModel(this.baseForm)\r\n }\r\n saveModel(formGroup: UntypedFormGroup | string = null) {\r\n const fg = this.getFromGroup(formGroup)\r\n const that = this;\r\n if (fg) {\r\n if (fg.valid) {\r\n this.beforeSave(this.model).subscribe(_ => {\r\n this.modelService.save(this.baseForm, this.modelId, this.model).subscribe(\r\n (newModel: T) => {\r\n this.model = newModel;\r\n this.modelId = newModel.id;\r\n if (this.editRoute) {\r\n this.isEdit = true;\r\n if (this.changeUrlRoute) {\r\n const url = this.router.createUrlTree([this.editRoute, this.modelId]).toString();\r\n this.location.replaceState(url);\r\n }\r\n }\r\n this.afterSave(newModel).subscribe((val: T) => {\r\n this.dialogService.showSaveMessage('Your changes were saved successfully.').subscribe(d => {\r\n fg.markAsPristine();\r\n });\r\n });\r\n },\r\n err => {\r\n this.serverErrors(err)\r\n });\r\n });\r\n } else {\r\n this.validateAllFormFields(formGroup);\r\n }\r\n }\r\n }\r\n serverErrors(err: any) {\r\n if (err.error) {\r\n if (err.error.errors) {\r\n const validationErrors = err.error.errors;\r\n if (Array.isArray(validationErrors)) {\r\n validationErrors.forEach(prop => {\r\n const formControl = this.baseForm.get(prop);\r\n if (formControl) {\r\n // activate the error message\r\n formControl.setErrors({\r\n serverError: validationErrors[prop].join('\\n')\r\n });\r\n }\r\n });\r\n } else {\r\n const keys = Object.keys(validationErrors);\r\n keys.forEach(prop => {\r\n const formControl = this.baseForm.get(prop);\r\n if (formControl) {\r\n // activate the error message\r\n formControl.setErrors({\r\n serverError: validationErrors[prop].join('\\n')\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n canDeactivate(): Observable<boolean> | boolean {\r\n // Allow synchronous navigation (`true`) if no crisis or the crisis is unchanged\r\n if (!this.baseForm.dirty) {\r\n return true;\r\n }\r\n // Otherwise ask the user with the dialog service and return its\r\n // observable which resolves to true or false when the user decides\r\n return this.dialogService.confirm('Discard changes ?', null, 'Discard');\r\n }\r\n getFiledName(filedTranslationKey: string) {\r\n return { field: this.translate.instant(filedTranslationKey) };\r\n }\r\n getCustomErrorMessage(error: any, fieldLabel: string): string {\r\n return '';\r\n }\r\n getErrorMessageFromArray(arrayIndex: number, field: string, filedTranslationKey: string, arrayName: string = 'formArray'): string {\r\n const fieldControl = this.baseForm.get(arrayName).get([arrayIndex]).get(field)\r\n return this.getErrorMessageForField(fieldControl, filedTranslationKey)\r\n }\r\n getErrorMessage(field: string, filedTranslationKey: string, formGroup: UntypedFormGroup | string = null): string {\r\n const fg = this.getFromGroup(formGroup)\r\n return this.getErrorMessageForField(fg.get(field), filedTranslationKey)\r\n }\r\n getErrorMessageForField(fieldControl: any, filedTranslationKey: string): string {\r\n const error = fieldControl.errors;\r\n const fieldLabel = this.translate.instant(filedTranslationKey);\r\n let rvalue = '';\r\n if (error !== null) {\r\n if (error['required'] === true) {\r\n rvalue = this.translate.instant('General.Field.Required', { field: fieldLabel });\r\n }\r\n if (error['minlength']) {\r\n rvalue = this.translate.instant('General.Field.MinLength', { field: fieldLabel, requiredLength: error.minlength.requiredLength });\r\n }\r\n if (error['email'] === true) {\r\n rvalue = this.translate.instant('General.Field.InvalidEmail');\r\n }\r\n if (error['url'] === true) {\r\n rvalue = this.translate.instant('General.Field.InvalidUrl');\r\n }\r\n if (error['serverError']) {\r\n rvalue = error['serverError'];\r\n }\r\n if (rvalue === '') {\r\n rvalue = this.getCustomErrorMessage(error, fieldLabel);\r\n }\r\n }\r\n return rvalue;\r\n }\r\n}\r\n","export enum GridLayoutFormat {\n none,\n date,\n number,\n percent,\n picture\n}\n\nexport enum CellTextAlign {\n left = 'left',\n center = 'center',\n right = 'right',\n}","// tslint:disable-next-line:variable-name\nexport const AttributeMetadata: any = Symbol('AttributeMetadata');\n","import { parseISO } from 'date-fns';\r\nimport { PropertyConverter } from '../../interfaces/property-converter.interface';\r\n\r\nexport class DateConverter implements PropertyConverter {\r\n mask(value: any) {\r\n if (value instanceof Date && !isNaN(value.getTime())) {\r\n return value;\r\n }\r\n const d = parseISO(value);\r\n if (d instanceof Date && !isNaN(d.getTime())) {\r\n return d\r\n } else {\r\n return value;\r\n }\r\n }\r\n unmask(value: any) {\r\n // const result = format(value, 'YYYY-MM-DDTHH:mm:ssZ');\r\n return value;\r\n }\r\n}\r\n","import 'reflect-metadata';\r\n// import * as Reflect from 'reflect-metadata';\r\nimport { AttributeMetadata } from '../constants/symbols';\r\nimport { DateConverter } from '../converters/date/date.converter';\r\nimport { AttributeDecoratorOptions } from '../interfaces/attribute-decorator-options.interface';\r\n\r\nexport function Attribute(options: AttributeDecoratorOptions = {}): PropertyDecorator {\r\n return (target: any, propertyName: string) => {\r\n\r\n const converter = (dataType: any, value: any, forSerialisation = false): any => {\r\n let attrConverter;\r\n if (dataType) {\r\n if (options.converter) {\r\n attrConverter = options.converter;\r\n } else if (dataType === Date) {\r\n attrConverter = new DateConverter();\r\n } else {\r\n const datatype = new dataType();\r\n\r\n if (datatype.mask && datatype.unmask) {\r\n attrConverter = datatype;\r\n }\r\n }\r\n\r\n if (attrConverter) {\r\n if (!forSerialisation) {\r\n return attrConverter.mask(value);\r\n }\r\n return attrConverter.unmask(value);\r\n }\r\n }\r\n return value;\r\n };\r\n\r\n const saveAnnotations = () => {\r\n const metadata = Reflect.getMetadata('Attribute', target) || {};\r\n\r\n metadata[propertyName] = {\r\n marked: true\r\n };\r\n\r\n Reflect.defineMetadata('Attribute', metadata, target);\r\n\r\n const mappingMetadata = Reflect.getMetadata('AttributeMapping', target) || {};\r\n const serializedPropertyName = options.serializedName !== undefined ? options.serializedName : propertyName;\r\n mappingMetadata[serializedPropertyName] = propertyName;\r\n Reflect.defineMetadata('AttributeMapping', mappingMetadata, target);\r\n\r\n const requiredMetadata = Reflect.getMetadata('AttributeRequired', target) || {};\r\n requiredMetadata[serializedPropertyName] = options.required !== undefined ? options.required : false;\r\n Reflect.defineMetadata('AttributeRequired', requiredMetadata, target);\r\n\r\n const defaultMetadata = Reflect.getMetadata('AttributedefaultValue', target) || {};\r\n defaultMetadata[serializedPropertyName] = options.defaultValue !== undefined ? options.defaultValue : null;\r\n Reflect.defineMetadata('AttributedefaultValue', defaultMetadata, target);\r\n\r\n const formSubGroupMetadata = Reflect.getMetadata('AttributeformSubGroup', target) || {};\r\n formSubGroupMetadata[serializedPropertyName] = options.formSubGroup !== undefined ? options.formSubGroup : null;\r\n Reflect.defineMetadata('AttributeformSubGroup', formSubGroupMetadata, target);\r\n\r\n };\r\n\r\n const setMetadata = (\r\n hasDirtyAttributes: boolean,\r\n instance: any,\r\n oldValue: any,\r\n newValue: any,\r\n isNew: boolean\r\n ) => {\r\n const targetType = Reflect.getMetadata('design:type', target, propertyName);\r\n\r\n if (!instance[AttributeMetadata]) {\r\n instance[AttributeMetadata] = {};\r\n }\r\n\r\n const propertyHasDirtyAttributes = typeof oldValue === 'undefined' && !isNew ? false : hasDirtyAttributes;\r\n\r\n instance[AttributeMetadata][propertyName] = {\r\n newValue,\r\n oldValue,\r\n serializedName: options.serializedName,\r\n hasDirtyAttributes: propertyHasDirtyAttributes,\r\n serialisationValue: converter(targetType, newValue, true)\r\n };\r\n };\r\n\r\n const getter = function () {\r\n return this['_' + (propertyName as string)];\r\n };\r\n\r\n const setter = function (newVal: any) {\r\n const targetType = Reflect.getMetadata('design:type', target, propertyName);\r\n const convertedValue = converter(targetType, newVal);\r\n\r\n if (convertedValue !== this['_' + (propertyName as string)]) {\r\n setMetadata(true, this, this['_' + (propertyName as string)], newVal, !this.id);\r\n this['_' + (propertyName as string)] = convertedValue;\r\n }\r\n };\r\n\r\n if (delete target[propertyName]) {\r\n saveAnnotations();\r\n Object.defineProperty(target, propertyName, {\r\n get: getter,\r\n set: setter,\r\n enumerable: true,\r\n configurable: true\r\n });\r\n }\r\n };\r\n}\r\n","export function BaseDatastoreConfig(config: any = {}) {\r\n // tslint:disable-next-line:only-arrow-functions\r\n return (target: any) => {\r\n Reflect.defineMetadata('BaseDatastoreConfig', config, target);\r\n };\r\n}\r\n","export class BaseMetaModel {\r\n public links: Array<any>;\r\n public meta: any;\r\n\r\n constructor(response: any) {\r\n this.links = response.links || [];\r\n this.meta = response.meta;\r\n }\r\n}\r\n","import { BaseMetaModel } from '../models/base-meta.model';\r\n\r\nexport function BaseModelConfig(config: any = {}) {\r\n return (target: any) => {\r\n if (typeof config['meta'] === 'undefined' || config['meta'] == null) {\r\n config['meta'] = BaseMetaModel;\r\n }\r\n\r\n Reflect.defineMetadata('BaseModelConfig', config, target);\r\n };\r\n}\r\n","export function CustomType(config: any = {}) {\r\n return (target: any, propertyName: string | symbol) => {\r\n const annotations = Reflect.getMetadata('CustomType', target) || [];\r\n\r\n annotations.push({\r\n propertyName,\r\n relationship: config.key || propertyName\r\n });\r\n\r\n Reflect.defineMetadata('CustomType', annotations, target);\r\n };\r\n}\r\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport { CacheService } from '../services/cache.service';\r\n\r\n@Injectable()\r\nexport class CacheInterceptor implements HttpInterceptor {\r\n private cache: Map<string, { response: HttpResponse<any>, expiration: number }> = new Map();\r\n\r\n constructor(@Inject('CACHE_EXPIRATION_TIME') private expirationTime: number,\r\n private cacheService: CacheService) { }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n const bypassCache = request.params.get('bypassCache') || false;\r\n\r\n if (bypassCache || request.method !== 'GET') {\r\n return next.handle(request);\r\n }\r\n\r\n if (!bypassCache) {\r\n const cachedResponse = this.cacheService.get(request.urlWithParams);\r\n if (cachedResponse) {\r\n return of(cachedResponse.clone());\r\n //return cachedResponse;\r\n }\r\n }\r\n\r\n return next.handle(request).pipe(\r\n tap((event) => {\r\n if (event instanceof HttpResponse) {\r\n this.cacheService.set(request.urlWithParams, event.clone(), this.expirationTime);\r\n }\r\n })\r\n );\r\n\r\n // const cachedItem = this.cache.get(request.url);\r\n\r\n // if (cachedItem && cachedItem.expiration > Date.now()) {\r\n // return of(cachedItem.response.clone());\r\n // }\r\n\r\n // return next.handle(request).pipe(\r\n // tap(event => {\r\n // if (event instanceof HttpResponse) {\r\n // this.cache.set(request.url, { response: event.clone(), expiration: Date.now() + this.expirationTime });\r\n // }\r\n // })\r\n // );\r\n }\r\n}","import { HttpHeaders } from '@angular/common/http';\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { AttributeMetadata } from '../constants/symbols';\nimport { ModelConfig } from '../interfaces/model-config.interface';\nimport { BaseDatastore, ModelType } from '../services/base-datastore.service';\nexport class BaseModel {\n public highlighted: boolean;\n public id: any;\n [key: string]: any;\n\n // tslint:disable-next-line:variable-name\n constructor(protected _datastore: BaseDatastore, data?: any) {\n if (data) {\n if (data.id) {\n this.id = data.id;\n }\n Object.assign(this, data);\n }\n }\n\n save(\n params?: any,\n headers?: HttpHeaders,\n customUrl?: string,\n customBody?: any): Observable<this> {\n const attributesMetadata: any = this[AttributeMetadata];\n return this._datastore.saveRecord(attributesMetadata, this, params, headers, customUrl, customBody);\n }\n\n patch(\n origModel: this,\n params?: any,\n headers?: HttpHeaders,\n customUrl?: string\n ): Observable<this> {\n const attributesMetadata: any = this[AttributeMetadata];\n return this._datastore.patchRecord(attributesMetadata, this, origModel, params, headers, customUrl);\n }\n\n replace(\n params?: any,\n headers?: HttpHeaders,\n customUrl?: string,\n customBody?: any): Observable<this> {\n const attributesMetadata: any = this[AttributeMetadata];\n return this._datastore.replaceRecord(attributesMetadata, this, params, headers, customUrl, customBody);\n }\n get attributeMetadata(): any {\n const attributesMetadata: any = this[AttributeMetadata];\n return attributesMetadata;\n }\n set attributeMetadata(val: any) {\n this[AttributeMetadata] = val;\n }\n get hasDirtyAttributes() {\n const attributesMetadata: any = this[AttributeMetadata];\n let hasDirtyAttributes = false;\n for (const propertyName in attributesMetadata) {\n if (attributesMetadata.hasOwnProperty(propertyName)) {\n const metadata: any = attributesMetadata[propertyName];\n\n if (metadata.hasDirtyAttributes) {\n hasDirtyAttributes = true;\n break;\n }\n }\n }\n return hasDirtyAttributes;\n }\n\n rollbackAttributes(): void {\n const attributesMetadata: any = this[AttributeMetadata];\n let metadata: any;\n for (const propertyName in attributesMetadata) {\n if (attributesMetadata.hasOwnProperty(propertyName)) {\n if (attributesMetadata[propertyName].hasDirtyAttributes) {\n this[propertyName] = attributesMetadata[propertyName].oldValue;\n metadata = {\n hasDirtyAttributes: false,\n newValue: attributesMetadata[propertyName].oldValue,\n oldValue: undefined\n };\n attributesMetadata[propertyName] = metadata;\n }\n }\n }\n\n this[AttributeMetadata] = attributesMetadata;\n }\n\n get modelConfig(): ModelConfig {\n return Reflect.getMetadata('BaseModelConfig', this.constructor);\n }\n\n\n protected deserializeModel<T extends BaseModel>(modelType: ModelType<T>, data: any) {\n data = this.transformSerializedNamesToPropertyNames(modelType, data);\n return new modelType(this._datastore, data);\n }\n\n\n protected transformSerializedNamesToPropertyNames<T extends BaseModel>(modelType: ModelType<T>, attributes: any) {\n const serializedNameToPropertyName = this.getModelPropertyNames(modelType.prototype);\n const properties: any = {};\n\n Object.keys(serializedNameToPropertyName).forEach((serializedName) => {\n if (attributes[serializedName] !== null && attributes[serializedName] !== undefined) {\n properties[serializedNameToPropertyName[serializedName]] = attributes[serializedName];\n }\n });\n\n return properties;\n }\n\n public getModelPropertyNames(model: BaseModel) {\n return Reflect.getMetadata('AttributeMapping', model);\n }\n public getModelRequiredPropertyNames(model: BaseModel) {\n return Reflect.getMetadata('AttributeRequired', model);\n }\n public getModelDefaultPropertyValues(model: BaseModel) {\n return Reflect.getMetadata('AttributedefaultValue', model);\n }\n\n public getModelSubGroupPropertyNames(model: BaseModel) {\n return Reflect.getMetadata('AttributeformSubGroup', model);\n }\n\n public getFromGroup(fb: UntypedFormBuilder): UntypedFormGroup {\n const props = Object.keys(this.getModelPropertyNames(this));\n const requiredProps = this.getModelRequiredPropertyNames(this);\n const defaultValues = this.getModelDefaultPropertyValues(this);\n const formSubGroupsValues = this.getModelSubGroupPropertyNames(this);\n const controlsConfig: any = {};\n const that = this;\n if (props) {\n props.forEach(property => {\n const value = that[property] !== undefined ? that[property] : defaultValues[property];\n const formSubGroup = formSubGroupsValues[property] ?? null;\n if (requiredProps[property]) {\n if (formSubGroup)\n this.getSubFromGroup(fb, controlsConfig, formSubGroup).addControl(property, fb.control(value, Validators.required));\n else\n controlsConfig[property] = [value, Validators.required];\n } else {\n if (formSubGroup)\n this.getSubFromGroup(fb, controlsConfig, formSubGroup).addControl(property, fb.control(value));\n else\n controlsConfig[property] = value;\n }\n });\n\n }\n return fb.group(controlsConfig);\n }\n private getSubFromGroup(fb: UntypedFormBuilder, controlsConfig: any, subGroup: string): UntypedFormGroup {\n if (!controlsConfig[subGroup])\n controlsConfig[subGroup] = fb.group({});\n return controlsConfig[subGroup];\n }\n\n public getModelFromFormGroup(formGroup: UntypedFormGroup, id?: any) {\n const props = Object.keys(this.getModelPropertyNames(this));\n const formSubGroupsValues = this.getModelSubGroupPropertyNames(this);\n const data: any = {};\n if (id) {\n data.id = id;\n }\n const that = this;\n if (props) {\n props.forEach(property => {\n const formSubGroup = formSubGroupsValues[property] ?? null;\n if (!formSubGroup)\n data[property] = formGroup.controls[property].value ?? null;\n else\n data[property] = (formGroup.controls[formSubGroup] as UntypedFormGroup).controls[property].value ?? null;\n });\n }\n if (data) {\n if (id) {\n this.id = id;\n }\n Object.assign(this, data);\n }\n }\n\n \n\n public getSerializedModel() {\n const attributesMetadata: any = this[AttributeMetadata];\n return this._datastore.modelToEntity(this, attributesMetadata, true);\n }\n getCellClass(property: string) {\n return '';\n }\n}\n","export interface JsonBaseError {\r\n id?: string;\r\n links ?: Array<any>;\r\n status ?: string;\r\n code ?: string;\r\n title ?: string;\r\n detail ?: string;\r\n source ?: {\r\n pointer ?: string;\r\n parameter ?: string\r\n };\r\n meta ?: any;\r\n}\r\n\r\nexport class ErrorResponse {\r\n errors?: JsonBaseError[] = [];\r\n\r\n constructor(errors ?: JsonBaseError[]) {\r\n if (errors) {\r\n this.errors = errors;\r\n }\r\n }\r\n}\r\n","export class Rule {\n rule: any;\n order: number;\n parameters: string[] = [];\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'nl2br'\r\n})\r\nexport class Nl2brPipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): any {\r\n // return value.replace(/\\n/g, '<br />');\r\n if (value) {\r\n value = value.replace(/(?:\\r\\n\\r\\n|\\r\\r|\\n\\n)/g, '</p><p>');\r\n return '<p>' + value.replace(/(?:\\r\\n|\\r|\\n)/g, '<br>') + '</p>';\r\n }\r\n return value;\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'inputError'\r\n})\r\nexport class InputErrorPipe implements PipeTransform {\r\n constructor(protected translate: TranslateService) {\r\n\r\n }\r\n transform(value: any, filedTranslationKey: any): string {\r\n let rvalue = '';\r\n if (value !== null) {\r\n if (value['invalid'] === true) {\r\n rvalue = 'ERROR.INVALID';\r\n }\r\n if (value['mustMatch'] === true) {\r\n rvalue = 'Account.Password.MustMach';\r\n }\r\n if (value['required'] === true) {\r\n const field = this.translate.instant(filedTranslationKey.field);\r\n rvalue = this.translate.instant('General.Field.Required', { field });\r\n }\r\n if (value['minlength']) {\r\n const field = this.translate.instant(filedTranslationKey.field);\r\n rvalue = this.translate.instant('General.Field.MinLength', { field, requiredLength: value.minlength.requiredLength });\r\n }\r\n }\r\n return rvalue;\r\n }\r\n\r\n}","export class Configurations {\r\n public baseUrl: string;\r\n public authUrl: string;\r\n public apiVersion: string;\r\n\r\n constructor() {\r\n this.baseUrl = '';\r\n this.authUrl = '';\r\n this.apiVersion = 'api/v1';\r\n }\r\n\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Configurations } from '../configurations';\r\nimport { BaseDatastoreConfig, DatastoreConfig } from '../core';\r\nimport { BaseDatastore } from './base-datastore.service';\r\nimport { CacheService } from './cache.service';\r\n\r\n\r\n@Injectable()\r\n@BaseDatastoreConfig({ apiVersion: '', baseUrl: '' })\r\nexport class DatastoreCore extends BaseDatastore {\r\n private customConfig: DatastoreConfig\r\n constructor(http: HttpClient, cacheService: CacheService, private configExt: Configurations) {\r\n super(http, cacheService);\r\n this.customConfig = {\r\n apiVersion: this.configExt.apiVersion,\r\n baseUrl: this.configExt.baseUrl\r\n };\r\n this.config = this.customConfig;\r\n }\r\n}\r\n","import { DatePipe, DecimalPipe, PercentPipe } from '@angular/common';\r\nimport { BaseDatastore } from './services/base-datastore.service';\r\nimport { DatastoreCore } from './services/datastore.service';\r\nexport * from './services';\r\nexport const PROVIDERS: any[] = [\r\n BaseDatastore,\r\n DatastoreCore,\r\n DatePipe,\r\n DecimalPipe,\r\n PercentPipe\r\n];\r\n","import { ActivatedRouteSnapshot, ResolveFn, RouterStateSnapshot } from '@angular/router';\r\nimport { BaseModel } from '../core';\r\n\r\nexport function DynamicallyModelResolver<T extends BaseModel>(modelsImport: any, className: string | undefined = undefined): ResolveFn<T> {\r\n return (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\r\n if (className == undefined)\r\n className = route.paramMap.get('className');\r\n const instance = getInstance<T>(className, modelsImport);\r\n if (!instance) {\r\n throw new Error(`Invalid className: ${className}`);\r\n }\r\n return instance;\r\n };\r\n}\r\n\r\nfunction getInstance<T>(className: string, modelsImport: any): Promise<T> {\r\n return modelsImport.then((module) => module[toProperCase(className)]);\r\n // return modelsImport.then((module) => ({ modelInstance: module[toProperCase(className)] })\r\n // );\r\n}\r\n\r\nfunction toProperCase(str: string): string {\r\n return str.replace(/\\w\\S*/g, (txt: string) => {\r\n return txt.charAt(0).toUpperCase() + txt.substring(1).toLowerCase();\r\n });\r\n}\r\n","import { ActivatedRouteSnapshot, ResolveFn, RouterStateSnapshot } from '@angular/router';\nimport { BaseModel, BaseService } from '../core';\n\nexport function DynamicallyServiceResolver<T extends BaseModel, U extends BaseService<T>>(serviceImport: any, serviceName: string): ResolveFn<U> {\n return (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\n const instance = getInstance<U>(serviceName, serviceImport);\n if (!instance) {\n throw new Error(`Invalid className: ${serviceName}`);\n }\n return instance;\n };\n}\n\nfunction getInstance<U>(serviceName: string, serviceImport: any): Promise<U> {\n return serviceImport.then((module) => module[toProperCase(serviceName)]); // return Promise.all([serviceImport]).then(\n // (module) => ({\n // serviceInstance: module[toProperCase(serviceName)],\n // })\n // );\n}\n\nfunction toProperCase(str: string): string {\n return str.replace(/\\w\\S*/g, (txt: string) => {\n return txt.charAt(0).toUpperCase() + txt.substring(1).toLowerCase();\n });\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { TranslateLoader } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { Configurations } from '../configurations';\n@Injectable({\n providedIn: 'root'\n})\nexport class TranslateloaderService implements TranslateLoader {\n private _apiUrl = 'No Value';\n private headers: any = new HttpHeaders({\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n });\n constructor(private httpClient: HttpClient,\n @Optional() config?: Configurations) {\n if (config) {\n this._apiUrl = config.baseUrl;\n }\n }\n getTranslation(lang: string): Observable<any> {\n const url = this._apiUrl + '/api/v1/language/' + lang + '/translationlist';\n return this.httpClient.get(url, { headers: this.headers });\n }\n\n}\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { Configurations } from './configurations';\r\nimport { PROVIDERS } from './providers';\r\nimport { TranslateloaderService } from './services/translate-loader.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useClass: TranslateloaderService,\r\n deps: [HttpClient]\r\n },\r\n // missingTranslationHandler: { provide: MissingTranslationHandler, useClass: MyMissingTranslationHandler },\r\n useDefaultLang: false,\r\n }),\r\n ReactiveFormsModule\r\n ],\r\n providers: [\r\n PROVIDERS\r\n ],\r\n exports: [\r\n HttpClientModule,\r\n TranslateModule,\r\n ]\r\n})\r\nexport class RslBaseModule {\r\n public static forRoot(config: Configurations): ModuleWithProviders<RslBaseModule> {\r\n return {\r\n ngModule: RslBaseModule,\r\n providers: [\r\n PROVIDERS,\r\n { provide: Configurations, useValue: config }\r\n ]\r\n };\r\n }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport class CustomValidators {\n static patternValidator(regex: RegExp, error: ValidationErrors): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n if (!control.value) {\n // if control is empty return no error\n return null;\n }\n\n // test the value of the control against the regexp supplied\n const valid = regex.test(control.value);\n\n // if true, return no error (no error), else return error passed in the second parameter\n return valid ? null : error;\n };\n }\n}\n","export function readFileAsync(file: File): Promise<any> {\r\n return new Promise<any>((resolve, reject) => {\r\n const reader = new FileReader();\r\n\r\n reader.onload = (event: any) => {\r\n resolve(event.target.result);\r\n };\r\n\r\n reader.onerror = (event: any) => {\r\n reject(event.target.error);\r\n };\r\n\r\n reader.readAsArrayBuffer(file);\r\n });\r\n}\r\n\r\nexport function getValueFromJsonData(jsonData: any, key: string): any {\r\n // Convert the key and all JSON keys to lowercase\r\n const lowercaseKey = key.toLowerCase();\r\n const lowercaseKeys = Object.keys(jsonData).map(k => k.toLowerCase());\r\n\r\n // Find the lowercase key in the lowercase keys array\r\n const index = lowercaseKeys.indexOf(lowercaseKey);\r\n\r\n // If found, use the original (proper case) key to access the value\r\n if (index !== -1) {\r\n const originalKey = Object.keys(jsonData)[index];\r\n return jsonData[originalKey];\r\n }\r\n\r\n // Key not found\r\n return undefined;\r\n}","/*\n * Public API Surface of core\n */\n\nexport * from './lib/core';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.CacheService","i1.BaseDatastore","i4","i1.CacheService","i1","i3.Configurations","getInstance","toProperCase","i2.Configurations"],"mappings":"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"}