@dflat-core/web 1.0.48 → 1.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,17 +1,19 @@
1
1
  import { CommonModule } from "@angular/common";
2
2
  import * as i0 from "@angular/core";
3
- import { Directive, Injectable, NgModule } from "@angular/core";
3
+ import { Directive, Injectable, NgModule, inject } from "@angular/core";
4
4
  import * as i1 from "@dflat-core/web/core";
5
5
  import { Utilities } from "@dflat-core/web/core";
6
+ import * as i3 from "@dflat-core/web/core-services";
7
+ import { InitCacheService } from "@dflat-core/web/core-services";
6
8
  import * as i2 from "@angular/common/http";
7
9
  import { HttpParams } from "@angular/common/http";
8
10
  import { map } from "rxjs/operators";
9
- import * as i3 from "@dflat-core/web/core-services";
10
11
  var DataService = class DataService {
11
12
  constructor(env, httpClient, headerService) {
12
13
  this.env = env;
13
14
  this.headerService = headerService;
14
15
  this.baseUrl = this.env.apiUrl;
16
+ this.initCache = inject(InitCacheService);
15
17
  this.httpClient = httpClient;
16
18
  }
17
19
  getFormattedParams(params) {
@@ -50,13 +52,17 @@ var DataService = class DataService {
50
52
  }
51
53
  return requestParams;
52
54
  }
55
+ getCached(entityKey, action) {
56
+ return this.initCache.get(`${entityKey}/${action}`, () => this.httpClient.get(this.baseUrl + `/${entityKey}/${action}`, {}));
57
+ }
58
+ clearCached(entityKey) {
59
+ this.initCache.clear(Utilities.IsNil(entityKey) ? null : `${entityKey}/`);
60
+ }
53
61
  getViewFilterDescriptors(entityKey) {
54
- let _url = this.baseUrl + `/${entityKey}/GetFilterDescriptors`;
55
- return this.httpClient.get(_url);
62
+ return this.getCached(entityKey, "GetFilterDescriptors");
56
63
  }
57
64
  getViewColumns(entityKey) {
58
- let _url = this.baseUrl + `/${entityKey}/GetGridColumns`;
59
- return this.httpClient.get(_url);
65
+ return this.getCached(entityKey, "GetGridColumns");
60
66
  }
61
67
  search(entityKey, filter) {
62
68
  let _url = this.baseUrl + `/${entityKey}/Search`;
@@ -71,12 +77,12 @@ var DataService = class DataService {
71
77
  return this.httpClient.get(_url);
72
78
  }
73
79
  getEmptyFilter(entityKey) {
74
- let _url = this.baseUrl + `/${entityKey}/GetEmptyFilter`;
75
- return this.httpClient.get(_url, {});
80
+ return this.getCached(entityKey, "GetEmptyFilter");
76
81
  }
77
82
  getEntityViewModel(entityKey, id) {
78
83
  let _url = this.baseUrl + `/${entityKey}/GetEntityViewModel?`;
79
84
  if (id === void 0 || id === null) throw new Error("The parameter 'id' must be defined and cannot be null.");
85
+ else if (id === 0) return this.getCached(entityKey, "GetEntityViewModel?id=0");
80
86
  else _url += "id=" + encodeURI("" + id);
81
87
  _url = _url.replace(/[?&]$/, "");
82
88
  return this.httpClient.get(_url).pipe(map((resp) => resp));
@@ -87,8 +93,7 @@ var DataService = class DataService {
87
93
  return this.httpClient.get(_url, { params: requestParams });
88
94
  }
89
95
  getExtendedActions(entityKey) {
90
- const _url = this.baseUrl + `/${entityKey}/GetExtendedActions`;
91
- return this.httpClient.get(_url, {});
96
+ return this.getCached(entityKey, "GetExtendedActions");
92
97
  }
93
98
  getTrackRecordProperties(entityKey, entityIds) {
94
99
  let _url = this.baseUrl + `/${entityKey}/GetTrackRecordProperties`;
@@ -319,8 +324,7 @@ var EntityDataService = class EntityDataService {
319
324
  return this.dataService.httpClient.get(_url, {});
320
325
  }
321
326
  getColumns() {
322
- const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetColumns`;
323
- return this.dataService.httpClient.get(_url, {});
327
+ return this.dataService.getCached(this.getEntityKey(), "GetColumns");
324
328
  }
325
329
  getDetails(id) {
326
330
  const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetDetails`;
@@ -328,8 +332,7 @@ var EntityDataService = class EntityDataService {
328
332
  return this.dataService.httpClient.get(_url, { params: requestParams });
329
333
  }
330
334
  getEmptyFilter() {
331
- const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetEmptyFilter`;
332
- return this.dataService.httpClient.get(_url, {});
335
+ return this.dataService.getCached(this.getEntityKey(), "GetEmptyFilter");
333
336
  }
334
337
  getEntityViewModel(id) {
335
338
  const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetEntityViewModel`;
@@ -337,8 +340,7 @@ var EntityDataService = class EntityDataService {
337
340
  return this.dataService.httpClient.get(_url, { params: requestParams });
338
341
  }
339
342
  getExtendedActions() {
340
- const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetExtendedActions`;
341
- return this.dataService.httpClient.get(_url, {});
343
+ return this.dataService.getCached(this.getEntityKey(), "GetExtendedActions");
342
344
  }
343
345
  getExtendedProperties(entityIds) {
344
346
  const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetExtendedProperties`;
@@ -346,8 +348,7 @@ var EntityDataService = class EntityDataService {
346
348
  return this.dataService.httpClient.get(_url, { params: requestParams });
347
349
  }
348
350
  getFilterDescriptors() {
349
- const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetFilterDescriptors`;
350
- return this.dataService.httpClient.get(_url, {});
351
+ return this.dataService.getCached(this.getEntityKey(), "GetFilterDescriptors");
351
352
  }
352
353
  getSortColumn(col) {
353
354
  const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetSortColumn`;
@@ -1 +1 @@
1
- {"version":3,"file":"dflat-core-web-core-data.mjs","names":["i1.DataService"],"sources":["../../core-data/src/lib/services/data-service.ts","../../core-data/src/lib/core-data.module.ts","../../core-data/src/lib/services/entity-data-service.ts"],"sourcesContent":["import { EnvironmentBase, Utilities } from '@dflat-core/web/core';\r\nimport { ActionDescriptor, ColumnDescriptor, EntityViewModelWithFields, EntityWithSpecifics, ExtendedProperty, FilterDescriptor, PagedList, SaveResult, SaveResults, TrackRecordProperty } from '@dflat-core/web/core-model';\r\nimport { HeadersService } from '@dflat-core/web/core-services';\r\nimport { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Injectable, Type } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n\r\n@Injectable()\r\nexport class DataService {\r\n\r\n baseUrl = this.env.apiUrl;\r\n httpClient: HttpClient;\r\n data: any[];\r\n constructor(\r\n private env: EnvironmentBase,\r\n httpClient: HttpClient,\r\n private headerService: HeadersService) {\r\n this.httpClient = httpClient\r\n }\r\n\r\n getFormattedParams(params: any): any {\r\n // Point d'entrée public : conserve le comportement historique\r\n // (stringify uniquement quand params racine est un tableau).\r\n if (Array.isArray(params)) {\r\n if (params.length > 0 && typeof (params[0]) === 'number') {\r\n return JSON.stringify(params);\r\n }\r\n const result = params.map(entity => this.formatValueRecursive(entity));\r\n return JSON.stringify(result);\r\n }\r\n\r\n return this.formatValueRecursive(params);\r\n }\r\n\r\n // Transforme récursivement un objet/tableau/valeur, sans jamais stringifier.\r\n // Utilisée pour descendre dans les propriétés imbriquées (ex: un tableau\r\n // d'objets contenu dans une propriété d'un objet racine), qui étaient\r\n // auparavant copiées telles quelles et donc jamais nettoyées de leurs Date.\r\n private formatValueRecursive(val: any): any {\r\n if (val === undefined || val === null) {\r\n return val;\r\n }\r\n\r\n if (val instanceof Date) {\r\n return `${Utilities.Format2Digits(val.getFullYear())}-${Utilities.Format2Digits(val.getMonth() + 1)}-${Utilities.Format2Digits(val.getDate())}T00:00:00.000Z`;\r\n }\r\n\r\n if (Array.isArray(val)) {\r\n // Tableau de nombres : on le laisse tel quel (comme au niveau racine)\r\n if (val.length > 0 && typeof (val[0]) === 'number') {\r\n return val;\r\n }\r\n return val.map(item => this.formatValueRecursive(item));\r\n }\r\n\r\n if (typeof val === 'object') {\r\n const result: any = {};\r\n for (let key in val) {\r\n if (val.hasOwnProperty(key)) {\r\n const propVal = val[key];\r\n if (propVal !== undefined && propVal !== null) {\r\n result[key] = this.formatValueRecursive(propVal);\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n // primitive (string, number, boolean...) : inchangé\r\n return val;\r\n }\r\n\r\n\r\n getUrlQueryParams(filter: any): HttpParams {\r\n let requestParams = new HttpParams();\r\n let formattedFilter = this.getFormattedParams(filter);\r\n for (let key in formattedFilter) {\r\n if (formattedFilter.hasOwnProperty(key)) {\r\n let vals = formattedFilter[key];\r\n if (Array.isArray(vals) && vals.length > 0)\r\n {\r\n for (let key2 in vals) {\r\n requestParams = requestParams.append(key, vals[key2]);\r\n }\r\n }\r\n else if (typeof vals === 'object') {\r\n requestParams = requestParams.set(key, JSON.stringify(vals));\r\n }\r\n else\r\n {\r\n requestParams = requestParams.set(key, vals);\r\n }\r\n }\r\n }\r\n return requestParams;\r\n }\r\n\r\n /*getUrlQueryArrayParams(filter: any): HttpParams {\r\n let requestParams = new HttpParams();\r\n let formattedFilter = this.getFormattedParams(filter);\r\n for (let key in formattedFilter) {\r\n if (formattedFilter.hasOwnProperty(key)) {\r\n let vals = formattedFilter[key];\r\n for (let key2 in vals) {\r\n requestParams = requestParams.append(key, vals[key2]);\r\n }\r\n }\r\n }\r\n return requestParams;\r\n }*/\r\n\r\n getViewFilterDescriptors(entityKey: string): Observable<FilterDescriptor[]> {\r\n let _url = this.baseUrl + `/${entityKey}/GetFilterDescriptors`;\r\n return this.httpClient.get<FilterDescriptor[]>(_url);\r\n }\r\n\r\n getViewColumns(entityKey: string): Observable<ColumnDescriptor[]> {\r\n let _url = this.baseUrl + `/${entityKey}/GetGridColumns`;\r\n return this.httpClient.get<ColumnDescriptor[]>(_url);\r\n }\r\n\r\n search<TData>(entityKey: string, filter: any): Observable<PagedList<TData>> {\r\n let _url = this.baseUrl + `/${entityKey}/Search`;\r\n let requestParams = this.getUrlQueryParams(filter);\r\n return this.httpClient.get<PagedList<TData>>(_url, { params: requestParams });\r\n }\r\n\r\n getDetails<TData>(entityKey: string, id: number): Observable<TData> {\r\n let _url = this.baseUrl + `/${entityKey}/GetDetails?`;\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined and cannot be null.\");\r\n else\r\n _url += \"id=\" + encodeURI(\"\" + id);\r\n\r\n _url = _url.replace(/[?&]$/, \"\");\r\n\r\n return this.httpClient.get<TData>(_url);\r\n }\r\n\r\n getEmptyFilter<T>(entityKey: string): Observable<T> {\r\n let _url = this.baseUrl + `/${entityKey}/GetEmptyFilter`;\r\n return this.httpClient.get<T>(_url, {});\r\n }\r\n\r\n /**\r\n * fonction \"async\" liant le front(Angular) et le back(C#)\r\n * - Principalement appelée par \"src.app.core.layout.BaseEditorComponent.loadEntityViewModel()\" lorsque l'on cherche à afficher un Objet de type \"EntityViewModel\"\r\n * - C'est elle qui lance l'appel à la fonction \"back\" BaseFilterController.GetEntityViewModel<TData>(id).\r\n * - Puis elle crée un observable avec la réponse qu'elle obtient du \"back\"\r\n *\r\n * @async\r\n * @function\r\n * @name getEntityViewModel<TData>\r\n * @param {string} entityKey\r\n * @param {number} id\r\n * @returns {(Observable)EntityViewModelWithFields<TData>}\r\n * @memberof DataService\r\n * @summary Demande les données d'une entité au back(C#) à travers \"getEntityViewModel\".\r\n * @see {@link src.app.core.layout.BaseEditorComponent.loadEntityViewModel()} for more information\r\n * @throws new Error(\"The parameter 'id' must be defined and cannot be null.\") if (id === undefined ou id === null)\r\n */\r\n getEntityViewModel<TData>(entityKey: string, id: number): Observable<EntityViewModelWithFields<TData>> {\r\n let _url = this. baseUrl + `/${entityKey}/GetEntityViewModel?`;\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined and cannot be null.\");\r\n else\r\n _url += \"id=\" + encodeURI(\"\" + id);\r\n\r\n _url = _url.replace(/[?&]$/, \"\");\r\n\r\n return this.httpClient.get(_url).pipe(\r\n map((resp: Response) => <EntityViewModelWithFields<TData>>resp));\r\n }\r\n\r\n getExtendedProperties(entityKey: string, entityIds: number[]): Observable<ExtendedProperty[]> {\r\n let _url = this.baseUrl + `/${entityKey}/GetExtendedProperties`;\r\n\r\n let requestParams = this.getUrlQueryParams({ entityIds: entityIds });\r\n return this.httpClient.get<ExtendedProperty[]>(_url, { params: requestParams });\r\n }\r\n\r\n getExtendedActions (entityKey: string) : Observable<ActionDescriptor[]> {\r\n const _url = this.baseUrl + `/${entityKey}/GetExtendedActions`;\r\n return this.httpClient.get<ActionDescriptor[]>(_url, {});\r\n }\r\n \r\n getTrackRecordProperties(entityKey: string, entityIds: number[]): Observable<TrackRecordProperty[]> {\r\n let _url = this.baseUrl + `/${entityKey}/GetTrackRecordProperties`;\r\n\r\n let requestParams = this.getUrlQueryParams({ entityIds: entityIds });\r\n return this.httpClient.get<TrackRecordProperty[]>(_url, { params: requestParams });\r\n }\r\n\r\n saveEntity<TData>(entityKey: string, entity: TData): Observable<SaveResult> {\r\n let _url = this.baseUrl + `/${entityKey}/SaveEntity`;\r\n return this.httpClient.post<SaveResult>(_url, this.getFormattedParams(entity));\r\n }\r\n\r\n deleteEntity<TData>(entityKey: string, entity: TData): Observable<SaveResult> {\r\n let _url = this.baseUrl + `/${entityKey}/DeleteEntity`;\r\n return this.httpClient.post<SaveResult>(_url, this.getFormattedParams(entity));\r\n }\r\n\r\n deleteEntities<TData>(entityKey: string, entities: TData[]): Observable<SaveResults<TData>> {\r\n let _url = this.baseUrl + `/${entityKey}/DeleteEntities`;\r\n return this.httpClient.post<SaveResults<TData>>(_url, this.getFormattedParams(entities));\r\n }\r\n\r\n saveEntities<TData>(entityKey: string, entities: TData[]): Observable<SaveResults<TData>> {\r\n let _url = this.baseUrl + `/${entityKey}/saveEntities`;\r\n let toSave = [];\r\n entities.forEach(entity => {\r\n toSave.push(this.getFormattedParams(entity));\r\n });\r\n return this.httpClient.post<SaveResults<TData>>(_url, JSON.stringify(toSave));\r\n }\r\n\r\n\r\n\r\n SaveEntityWithSpecifics<TData>(entityKey: string, DataToSave: EntityWithSpecifics<TData>): Observable<{ success: boolean, rowVersion?: Date }> {\r\n let _url = this.baseUrl + `/${entityKey}/SaveEntityWithSpecifics`;\r\n return this.httpClient.post<{ success: boolean, rowVersion?: Date }>(_url, this.getFormattedParams(DataToSave));\r\n }\r\n\r\n exportAll<TData>(entityKey: string, filter: any) {\r\n let _url = this.baseUrl + `/${entityKey}/ExportAll`;\r\n let requestParams = this.getUrlQueryParams(filter);\r\n\r\n return this.httpClient.get(_url, { observe: 'response', params: requestParams, withCredentials: true, responseType: 'blob' })\r\n .pipe(map((r: HttpResponse<Blob>) => this.getFileInfo(r)))\r\n }\r\n\r\n exportResults<TData>(entityKey: string, exportModel: any) {\r\n let _url = this.baseUrl + `/${entityKey}/ExportResults`;\r\n const _body = JSON.stringify(exportModel);\r\n\r\n return this.httpClient.post(_url, _body, { observe: 'response', responseType: 'blob' })\r\n .pipe(map((r: HttpResponse<Blob>) => this.getFileInfo(r)));\r\n }\r\n\r\n public getFileInfo(resp: HttpResponse<Blob>): { fileBlob: Blob, fileName: string } {\r\n var type = resp.headers.get(\"Content-Type\");\r\n let b = new Blob([resp.body], { type: type });\r\n return {\r\n fileBlob: b,\r\n fileName: (resp.headers.get(\"Content-Disposition\") || \"\").split(\";\")[1].trim().split(\"=\")[1].replace(/['\"]/g, '')\r\n };\r\n }\r\n\r\n uploadFileToExtract(file: File, inputId: number, correlationId: string) {\r\n return this.uploadFiles(\"/DataImport/PostImportFile\", [file], { inputId: inputId, correlationId: correlationId });\r\n }\r\n\r\n uploadFilesWithParams(files: File[], customParams?: {}, forceMultipleFiles: boolean = false): Observable<any> {\r\n\r\n const _url = this.baseUrl + \"/DataImport/PostFiles\";\r\n\r\n let formData = new FormData();\r\n if (files.length == 1 && !forceMultipleFiles) {\r\n formData.append('file', files[0]);\r\n }\r\n else {\r\n for (var i = 0; i < files.length; i++) {\r\n formData.append('files', files[i]);\r\n }\r\n }\r\n\r\n formData.append('data', JSON.stringify((customParams as any).dataModel));\r\n let params = new HttpParams();\r\n\r\n return this.httpClient.post(_url, formData, {\r\n params,\r\n reportProgress: true,\r\n observe: 'body',\r\n headers: this.headerService.authFileUploadHeaders()\r\n });\r\n }\r\n\r\n uploadFiles(url: string, files: File[], customParams?: {}, forceMultipleFiles: boolean = false): Observable<any> {\r\n\r\n const _url = this.baseUrl + url;\r\n\r\n let formData = new FormData();\r\n if (files.length == 1 && !forceMultipleFiles) {\r\n formData.append('file', files[0]);\r\n }\r\n else {\r\n for (var i = 0; i < files.length; i++) {\r\n formData.append('files', files[i]);\r\n }\r\n }\r\n\r\n if (customParams) {\r\n for (let p in customParams) {\r\n if (customParams.hasOwnProperty(p)) {\r\n formData.append(p, customParams[p]);\r\n }\r\n }\r\n }\r\n\r\n let params = new HttpParams();\r\n\r\n\r\n return this.httpClient.post(_url, formData, {\r\n params,\r\n reportProgress: true,\r\n observe: 'body',\r\n headers: this.headerService.authFileUploadHeaders()\r\n });\r\n }\r\n\r\n uploadFilesWithEvents(url: string, files: File[], customParams?: {}, forceMultipleFiles: boolean = false): Observable<any> {\r\n\r\n const _url = this.baseUrl + url;\r\n\r\n let formData = new FormData();\r\n if (files.length == 1 && !forceMultipleFiles) {\r\n formData.append('file', files[0]);\r\n }\r\n else {\r\n for (var i = 0; i < files.length; i++) {\r\n formData.append('files', files[i]);\r\n }\r\n }\r\n\r\n if (customParams) {\r\n for (let p in customParams) {\r\n if (customParams.hasOwnProperty(p)) {\r\n formData.append(p, customParams[p]);\r\n }\r\n }\r\n }\r\n\r\n let params = new HttpParams();\r\n return this.httpClient.post<any>(_url, formData, {\r\n params,\r\n reportProgress: true,\r\n observe: 'events',\r\n headers: this.headerService.authFileUploadHeaders()\r\n });\r\n\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { DataService } from './services/data-service';\r\n\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n providers: [DataService]\r\n})\r\nexport class CoreDataModule {}\r\n","import { ActionDescriptor, ColumnDescriptor, EntityViewModel, EntityViewModelWithFields, EntityWithSpecifics, ExportModel, ExtendedProperty, FilterDescriptor, FilterViewModel, PagedList, SaveResult, SaveResults, TrackRecordProperty } from '@dflat-core/web/core-model';\r\n\r\nimport { DataService } from './data-service';\r\nimport { HttpResponse } from '@angular/common/http';\r\nimport { Directive } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Directive()\r\nexport abstract class EntityDataService<TData extends EntityViewModel, TFilter extends FilterViewModel> \r\n{\r\n abstract getEntityKey(): string;\r\n\r\n constructor(protected dataService : DataService) {}\r\n deleteEntities (sources:TData[]) : Observable<SaveResults<TData>> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/DeleteEntities`;\r\n const requestParams = this.dataService.getFormattedParams(sources);\r\n return this.dataService.httpClient.post<SaveResults<TData>>(_url, requestParams);\r\n }\r\n\r\n deleteEntity (source:TData) : Observable<SaveResult> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/DeleteEntity`;\r\n const requestParams = this.dataService.getFormattedParams(source);\r\n return this.dataService.httpClient.post<SaveResult>(_url, requestParams);\r\n }\r\n\r\n exportAll (filter:TFilter) {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/ExportAll`;\r\n const requestParams = this.dataService.getFormattedParams(filter);\r\n return this.dataService.httpClient.get(_url, { observe: 'response', params: requestParams, withCredentials: true, responseType: 'blob' }).pipe(map((r: HttpResponse<Blob>) => this.dataService.getFileInfo(r)));\r\n }\r\n\r\n exportResults (model:ExportModel<TFilter>) {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/ExportResults`;\r\n const requestParams = this.dataService.getFormattedParams(model);\r\n return this.dataService.httpClient.get(_url, { observe: 'response', params: requestParams, withCredentials: true, responseType: 'blob' }).pipe(map((r: HttpResponse<Blob>) => this.dataService.getFileInfo(r)));\r\n }\r\n\r\n getAlternateEntityViewModel (id:number) : Observable<EntityViewModelWithFields<TData>> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetAlternateEntityViewModel`;\r\n const requestParams = this.dataService.getUrlQueryParams({ id:id });\r\n return this.dataService.httpClient.get<EntityViewModelWithFields<TData>>(_url, { params: requestParams });\r\n }\r\n\r\n getCacheManager () : Observable<TData[]> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetCacheManager`;\r\n return this.dataService.httpClient.get<TData[]>(_url, {});\r\n }\r\n\r\n getColumns () : Observable<ColumnDescriptor[]> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetColumns`;\r\n return this.dataService.httpClient.get<ColumnDescriptor[]>(_url, {});\r\n }\r\n\r\n getDetails (id:number) : Observable<TData> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetDetails`;\r\n const requestParams = this.dataService.getUrlQueryParams({ id:id });\r\n return this.dataService.httpClient.get<TData>(_url, { params: requestParams });\r\n }\r\n\r\n getEmptyFilter () : Observable<TFilter> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetEmptyFilter`;\r\n return this.dataService.httpClient.get<TFilter>(_url, {});\r\n }\r\n\r\n getEntityViewModel (id:number) : Observable<EntityViewModelWithFields<TData>> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetEntityViewModel`;\r\n const requestParams = this.dataService.getUrlQueryParams({ id:id });\r\n return this.dataService.httpClient.get<EntityViewModelWithFields<TData>>(_url, { params: requestParams });\r\n }\r\n\r\n getExtendedActions () : Observable<ActionDescriptor[]> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetExtendedActions`;\r\n return this.dataService.httpClient.get<ActionDescriptor[]>(_url, {});\r\n }\r\n\r\n getExtendedProperties (entityIds:number[]) : Observable<ExtendedProperty[]> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetExtendedProperties`;\r\n const requestParams = this.dataService.getUrlQueryParams({ entityIds:entityIds });\r\n return this.dataService.httpClient.get<ExtendedProperty[]>(_url, { params: requestParams });\r\n }\r\n\r\n getFilterDescriptors () : Observable<FilterDescriptor[]> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetFilterDescriptors`;\r\n return this.dataService.httpClient.get<FilterDescriptor[]>(_url, {});\r\n }\r\n\r\n getSortColumn (col:string) : Observable<string> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetSortColumn`;\r\n const requestParams = this.dataService.getUrlQueryParams({ col:col });\r\n return this.dataService.httpClient.get<string>(_url, { params: requestParams });\r\n }\r\n\r\n getTrackRecordProperties (entityIds:number[]) : Observable<TrackRecordProperty[]> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetTrackRecordProperties`;\r\n const requestParams = this.dataService.getUrlQueryParams({ entityIds:entityIds });\r\n return this.dataService.httpClient.get<TrackRecordProperty[]>(_url, { params: requestParams });\r\n }\r\n \r\n saveEntities (sources:TData[]) : Observable<SaveResults<TData>> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/SaveEntities`;\r\n const requestParams = this.dataService.getFormattedParams(sources);\r\n return this.dataService.httpClient.post<SaveResults<TData>>(_url, requestParams);\r\n }\r\n\r\n saveEntity (source:TData) : Observable<SaveResult> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/SaveEntity`;\r\n const requestParams = this.dataService.getFormattedParams(source);\r\n return this.dataService.httpClient.post<SaveResult>(_url, requestParams);\r\n }\r\n\r\n saveEntityWithSpecifics (source:EntityWithSpecifics<TData>) : Observable<any> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/SaveEntityWithSpecifics`;\r\n const requestParams = this.dataService.getFormattedParams(source);\r\n return this.dataService.httpClient.post<any>(_url, requestParams);\r\n }\r\n\r\n search (filter:TFilter) : Observable<PagedList<TData>> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/Search`;\r\n const requestParams = this.dataService.getFormattedParams(filter);\r\n return this.dataService.httpClient.get<PagedList<TData>>(_url, { params: requestParams });\r\n }\r\n\r\n toggleFavorite (filter:TFilter) : Observable<any> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/ToggleFavorite`;\r\n const requestParams = this.dataService.getFormattedParams(filter);\r\n return this.dataService.httpClient.post<any>(_url, requestParams);\r\n }\r\n\r\n}\r\n"],"mappings":";;;;;;;;;AAUA,IAAa,cAAb,MAAa,YAAW;CAKpB,YACY,KACR,YACQ,eAA6B;EAF7B,KAAA,MAAA;EAEA,KAAA,gBAAA;EANZ,KAAA,UAAU,KAAK,IAAI;EAOf,KAAK,aAAa;CACtB;CAEA,mBAAmB,QAAW;EAG1B,IAAI,MAAM,QAAQ,MAAM,GAAG;GACvB,IAAI,OAAO,SAAS,KAAK,OAAQ,OAAO,OAAQ,UAC5C,OAAO,KAAK,UAAU,MAAM;GAEhC,MAAM,SAAS,OAAO,KAAI,WAAU,KAAK,qBAAqB,MAAM,CAAC;GACrE,OAAO,KAAK,UAAU,MAAM;EAChC;EAEA,OAAO,KAAK,qBAAqB,MAAM;CAC3C;CAMQ,qBAAqB,KAAQ;EACjC,IAAI,QAAQ,UAAa,QAAQ,MAC7B,OAAO;EAGX,IAAI,eAAe,MACf,OAAO,GAAG,UAAU,cAAc,IAAI,YAAW,CAAE,EAAC,GAAI,UAAU,cAAc,IAAI,SAAQ,IAAK,CAAC,EAAC,GAAI,UAAU,cAAc,IAAI,QAAO,CAAE,EAAC;EAGjJ,IAAI,MAAM,QAAQ,GAAG,GAAG;GAEpB,IAAI,IAAI,SAAS,KAAK,OAAQ,IAAI,OAAQ,UACtC,OAAO;GAEX,OAAO,IAAI,KAAI,SAAQ,KAAK,qBAAqB,IAAI,CAAC;EAC1D;EAEA,IAAI,OAAO,QAAQ,UAAU;GACzB,MAAM,SAAc,CAAA;GACpB,KAAK,IAAI,OAAO,KACZ,IAAI,IAAI,eAAe,GAAG,GAAG;IACzB,MAAM,UAAU,IAAI;IACpB,IAAI,YAAY,UAAa,YAAY,MACrC,OAAO,OAAO,KAAK,qBAAqB,OAAO;GAEvD;GAEJ,OAAO;EACX;EAGA,OAAO;CACX;CAGA,kBAAkB,QAAW;EACzB,IAAI,gBAAgB,IAAI,WAAU;EAClC,IAAI,kBAAkB,KAAK,mBAAmB,MAAM;EACpD,KAAK,IAAI,OAAO,iBACZ,IAAI,gBAAgB,eAAe,GAAG,GAAG;GACrC,IAAI,OAAO,gBAAgB;GAC3B,IAAI,MAAM,QAAQ,IAAI,KAAM,KAAK,SAAS,GAEtC,KAAK,IAAI,QAAQ,MACjB,gBAAgB,cAAc,OAAO,KAAK,KAAK,KAAK;QAGnD,IAAI,OAAO,SAAS,UACrB,gBAAgB,cAAc,IAAI,KAAK,KAAK,UAAU,IAAI,CAAC;QAI3D,gBAAgB,cAAc,IAAI,KAAK,IAAI;EAEnD;EAEJ,OAAO;CACX;CAgBA,yBAAyB,WAAiB;EACtC,IAAI,OAAO,KAAK,UAAU,IAAI,UAAS;EACvC,OAAO,KAAK,WAAW,IAAwB,IAAI;CACvD;CAEA,eAAe,WAAiB;EAC5B,IAAI,OAAO,KAAK,UAAU,IAAI,UAAS;EACvC,OAAO,KAAK,WAAW,IAAwB,IAAI;CACvD;CAEA,OAAc,WAAmB,QAAW;EACxC,IAAI,OAAO,KAAK,UAAU,IAAI,UAAS;EACvC,IAAI,gBAAgB,KAAK,kBAAkB,MAAM;EACjD,OAAO,KAAK,WAAW,IAAsB,MAAM,EAAE,QAAQ,cAAa,CAAE;CAChF;CAEA,WAAkB,WAAmB,IAAU;EAC3C,IAAI,OAAO,KAAK,UAAU,IAAI,UAAS;EACvC,IAAI,OAAO,UAAa,OAAO,MAC3B,MAAM,IAAI,MAAM,wDAAwD;OAExE,QAAQ,QAAQ,UAAU,KAAK,EAAE;EAErC,OAAO,KAAK,QAAQ,SAAS,EAAE;EAE/B,OAAO,KAAK,WAAW,IAAW,IAAI;CAC1C;CAEA,eAAkB,WAAiB;EAC/B,IAAI,OAAO,KAAK,UAAU,IAAI,UAAS;EACvC,OAAO,KAAK,WAAW,IAAO,MAAM,CAAA,CAAE;CAC1C;CAmBA,mBAA0B,WAAmB,IAAU;EACnD,IAAI,OAAO,KAAS,UAAU,IAAI,UAAS;EAC3C,IAAI,OAAO,UAAa,OAAO,MAC3B,MAAM,IAAI,MAAM,wDAAwD;OAExE,QAAQ,QAAQ,UAAU,KAAK,EAAE;EAErC,OAAO,KAAK,QAAQ,SAAS,EAAE;EAE/B,OAAO,KAAK,WAAW,IAAI,IAAI,CAAC,CAAC,KAC7B,KAAK,SAAqD,IAAI,CAAC;CACvE;CAEA,sBAAsB,WAAmB,WAAmB;EACxD,IAAI,OAAO,KAAK,UAAU,IAAI,UAAS;EAEvC,IAAI,gBAAgB,KAAK,kBAAkB,EAAa,UAAS,CAAE;EACnE,OAAO,KAAK,WAAW,IAAwB,MAAM,EAAE,QAAQ,cAAa,CAAE;CAClF;CAEA,mBAAoB,WAAiB;EACjC,MAAM,OAAO,KAAK,UAAU,IAAI,UAAS;EACzC,OAAO,KAAK,WAAW,IAAwB,MAAM,CAAA,CAAE;CAC3D;CAEA,yBAAyB,WAAmB,WAAmB;EAC3D,IAAI,OAAO,KAAK,UAAU,IAAI,UAAS;EAEvC,IAAI,gBAAgB,KAAK,kBAAkB,EAAa,UAAS,CAAE;EACnE,OAAO,KAAK,WAAW,IAA2B,MAAM,EAAE,QAAQ,cAAa,CAAE;CACrF;CAEA,WAAkB,WAAmB,QAAa;EAC9C,IAAI,OAAO,KAAK,UAAU,IAAI,UAAS;EACvC,OAAO,KAAK,WAAW,KAAiB,MAAM,KAAK,mBAAmB,MAAM,CAAC;CACjF;CAEA,aAAoB,WAAmB,QAAa;EAChD,IAAI,OAAO,KAAK,UAAU,IAAI,UAAS;EACvC,OAAO,KAAK,WAAW,KAAiB,MAAM,KAAK,mBAAmB,MAAM,CAAC;CACjF;CAEA,eAAsB,WAAmB,UAAiB;EACtD,IAAI,OAAO,KAAK,UAAU,IAAI,UAAS;EACvC,OAAO,KAAK,WAAW,KAAyB,MAAM,KAAK,mBAAmB,QAAQ,CAAC;CAC3F;CAEA,aAAoB,WAAmB,UAAiB;EACpD,IAAI,OAAO,KAAK,UAAU,IAAI,UAAS;EACvC,IAAI,SAAS,CAAA;EACb,SAAS,SAAQ,WAAS;GACtB,OAAO,KAAK,KAAK,mBAAmB,MAAM,CAAC;EAC/C,CAAC;EACD,OAAO,KAAK,WAAW,KAAyB,MAAM,KAAK,UAAU,MAAM,CAAC;CAChF;CAIA,wBAA+B,WAAmB,YAAsC;EACpF,IAAI,OAAO,KAAK,UAAU,IAAI,UAAS;EACvC,OAAO,KAAK,WAAW,KAA8C,MAAM,KAAK,mBAAmB,UAAU,CAAC;CAClH;CAEA,UAAiB,WAAmB,QAAW;EAC3C,IAAI,OAAO,KAAK,UAAU,IAAI,UAAS;EACvC,IAAI,gBAAgB,KAAK,kBAAkB,MAAM;EAEjD,OAAO,KAAK,WAAW,IAAI,MAAM;GAAE,SAAS;GAAY,QAAQ;GAAe,iBAAiB;GAAM,cAAc;EAAM,CAAE,CAAC,CACxH,KAAK,KAAK,MAA0B,KAAK,YAAY,CAAC,CAAC,CAAC;CACjE;CAEA,cAAqB,WAAmB,aAAgB;EACpD,IAAI,OAAO,KAAK,UAAU,IAAI,UAAS;EACvC,MAAM,QAAQ,KAAK,UAAU,WAAW;EAExC,OAAO,KAAK,WAAW,KAAK,MAAM,OAAO;GAAE,SAAS;GAAY,cAAc;EAAM,CAAE,CAAC,CAClF,KAAK,KAAK,MAA0B,KAAK,YAAY,CAAC,CAAC,CAAC;CACjE;CAEO,YAAY,MAAwB;EACvC,IAAI,OAAO,KAAK,QAAQ,IAAI,cAAc;EAE1C,OAAO;GACH,UAAU,IAFF,KAAK,CAAC,KAAK,IAAI,GAAG,EAAQ,KAAI,CAE5B;GACV,WAAW,KAAK,QAAQ,IAAI,qBAAqB,KAAK,GAAA,CAAI,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,KAAI,CAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,SAAS,EAAE;EACnH;CACL;CAEA,oBAAoB,MAAY,SAAiB,eAAqB;EAClE,OAAO,KAAK,YAAY,8BAA8B,CAAC,IAAI,GAAG;GAAW;GAAwB;EAAa,CAAE;CACpH;CAEA,sBAAsB,OAAe,cAAmB,qBAA8B,OAAK;EAEvF,MAAM,OAAO,KAAK,UAAU;EAE5B,IAAI,WAAW,IAAI,SAAQ;EAC3B,IAAI,MAAM,UAAU,KAAK,CAAC,oBACtB,SAAS,OAAO,QAAQ,MAAM,EAAE;OAGhC,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAC9B,SAAS,OAAO,SAAS,MAAM,EAAE;EAIzC,SAAS,OAAO,QAAQ,KAAK,UAAW,aAAqB,SAAS,CAAC;EACvE,IAAI,SAAS,IAAI,WAAU;EAE3B,OAAO,KAAK,WAAW,KAAK,MAAM,UAAU;GACxC;GACA,gBAAgB;GAChB,SAAS;GACT,SAAS,KAAK,cAAc,sBAAqB;EACpD,CAAA;CACL;CAEC,YAAY,KAAa,OAAe,cAAmB,qBAA8B,OAAK;EAE3F,MAAM,OAAO,KAAK,UAAU;EAE5B,IAAI,WAAW,IAAI,SAAQ;EAC3B,IAAI,MAAM,UAAU,KAAK,CAAC,oBACtB,SAAS,OAAO,QAAQ,MAAM,EAAE;OAGhC,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAC9B,SAAS,OAAO,SAAS,MAAM,EAAE;EAIzC,IAAI,cACA;QAAK,IAAI,KAAK,cACV,IAAI,aAAa,eAAe,CAAC,GAC7B,SAAS,OAAO,GAAG,aAAa,EAAE;EAE1C;EAGJ,IAAI,SAAS,IAAI,WAAU;EAG3B,OAAO,KAAK,WAAW,KAAK,MAAM,UAAU;GACxC;GACA,gBAAgB;GAChB,SAAS;GACT,SAAS,KAAK,cAAc,sBAAqB;EACpD,CAAA;CACL;CAEA,sBAAsB,KAAa,OAAe,cAAmB,qBAA8B,OAAK;EAEpG,MAAM,OAAO,KAAK,UAAU;EAE5B,IAAI,WAAW,IAAI,SAAQ;EAC3B,IAAI,MAAM,UAAU,KAAK,CAAC,oBACtB,SAAS,OAAO,QAAQ,MAAM,EAAE;OAGhC,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAC9B,SAAS,OAAO,SAAS,MAAM,EAAE;EAIzC,IAAI,cACA;QAAK,IAAI,KAAK,cACV,IAAI,aAAa,eAAe,CAAC,GAC7B,SAAS,OAAO,GAAG,aAAa,EAAE;EAE1C;EAGJ,IAAI,SAAS,IAAI,WAAU;EAC3B,OAAO,KAAK,WAAW,KAAU,MAAM,UAAU;GAC7C;GACA,gBAAgB;GAChB,SAAS;GACT,SAAS,KAAK,cAAc,sBAAqB;EACpD,CAAA;CAEL;CA7US;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAW,MAAA;IAAA,EAAA,OAAA,GAAA,gBAAA;IAAA,EAAA,OAAA,GAAA,WAAA;IAAA,EAAA,OAAA,GAAA,eAAA;GAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAX;EAAA,KAAA,QAAA,GAAA,sBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;EAAW,CAAA;CAAA;;AAAX,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAW,YAAA,CAAA,EADvB,MAAA,WAAA,CAAA;;;;;;;ACCD,IAAa,iBAAb,MAAa,eAAc;CAAd;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAc,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAd;EAAA,KAAA,OAAA,GAAA,oBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAc,SAAA,CAHf,YAAY;EAAA,CAAA;CAAA;CAGX;EAAA,KAAA,OAAA,GAAA,oBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAc,WAFb,CAAC,WAAW;GAAC,SAAA,CADf,YAAY;EAAA,CAAA;CAAA;;AAGX,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAc,YAAA,CAAA;EAJ1B,MAAA;EAAS,MAAA,CAAA;GACR,SAAS,CAAC,YAAY;GACtB,WAAY,CAAC,WAAW;EACzB,CAAA;;;ACAD,IAAsB,oBAAtB,MAAsB,kBAAiB;CAInC,YAAsB,aAAyB;EAAzB,KAAA,cAAA;CAA4B;CAClD,eAAgB,SAAe;EAC3B,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,MAAM,gBAAgB,KAAK,YAAY,mBAAmB,OAAO;EACjE,OAAO,KAAK,YAAY,WAAW,KAAyB,MAAM,aAAa;CACnF;CAEA,aAAc,QAAY;EACtB,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,MAAM,gBAAgB,KAAK,YAAY,mBAAmB,MAAM;EAChE,OAAO,KAAK,YAAY,WAAW,KAAiB,MAAM,aAAa;CAC3E;CAEA,UAAW,QAAc;EACrB,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,MAAM,gBAAgB,KAAK,YAAY,mBAAmB,MAAM;EAChE,OAAO,KAAK,YAAY,WAAW,IAAI,MAAM;GAAE,SAAS;GAAY,QAAQ;GAAe,iBAAiB;GAAM,cAAc;EAAM,CAAE,CAAC,CAAC,KAAK,KAAK,MAA0B,KAAK,YAAY,YAAY,CAAC,CAAC,CAAC;CAClN;CAEA,cAAe,OAA0B;EACrC,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,MAAM,gBAAgB,KAAK,YAAY,mBAAmB,KAAK;EAC/D,OAAO,KAAK,YAAY,WAAW,IAAI,MAAM;GAAE,SAAS;GAAY,QAAQ;GAAe,iBAAiB;GAAM,cAAc;EAAM,CAAE,CAAC,CAAC,KAAK,KAAK,MAA0B,KAAK,YAAY,YAAY,CAAC,CAAC,CAAC;CAClN;CAEA,4BAA6B,IAAS;EAClC,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,MAAM,gBAAgB,KAAK,YAAY,kBAAkB,EAAK,GAAE,CAAE;EAClE,OAAO,KAAK,YAAY,WAAW,IAAsC,MAAM,EAAE,QAAQ,cAAa,CAAE;CAC5G;CAEA,kBAAe;EACX,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,OAAO,KAAK,YAAY,WAAW,IAAa,MAAM,CAAA,CAAE;CAC5D;CAEA,aAAU;EACN,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,OAAO,KAAK,YAAY,WAAW,IAAwB,MAAM,CAAA,CAAE;CACvE;CAEA,WAAY,IAAS;EACjB,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,MAAM,gBAAgB,KAAK,YAAY,kBAAkB,EAAK,GAAE,CAAE;EAClE,OAAO,KAAK,YAAY,WAAW,IAAW,MAAM,EAAE,QAAQ,cAAa,CAAE;CACjF;CAEA,iBAAc;EACV,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,OAAO,KAAK,YAAY,WAAW,IAAa,MAAM,CAAA,CAAE;CAC5D;CAEA,mBAAoB,IAAS;EACzB,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,MAAM,gBAAgB,KAAK,YAAY,kBAAkB,EAAK,GAAE,CAAE;EAClE,OAAO,KAAK,YAAY,WAAW,IAAsC,MAAM,EAAE,QAAQ,cAAa,CAAE;CAC5G;CAEA,qBAAkB;EACd,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,OAAO,KAAK,YAAY,WAAW,IAAwB,MAAM,CAAA,CAAE;CACvE;CAEA,sBAAuB,WAAkB;EACrC,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,MAAM,gBAAgB,KAAK,YAAY,kBAAkB,EAAY,UAAS,CAAE;EAChF,OAAO,KAAK,YAAY,WAAW,IAAwB,MAAM,EAAE,QAAQ,cAAa,CAAE;CAC9F;CAEA,uBAAoB;EAChB,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,OAAO,KAAK,YAAY,WAAW,IAAwB,MAAM,CAAA,CAAE;CACvE;CAEA,cAAe,KAAU;EACrB,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,MAAM,gBAAgB,KAAK,YAAY,kBAAkB,EAAM,IAAG,CAAE;EACpE,OAAO,KAAK,YAAY,WAAW,IAAY,MAAM,EAAE,QAAQ,cAAa,CAAE;CAClF;CAEA,yBAA0B,WAAkB;EACxC,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,MAAM,gBAAgB,KAAK,YAAY,kBAAkB,EAAY,UAAS,CAAE;EAChF,OAAO,KAAK,YAAY,WAAW,IAA2B,MAAM,EAAE,QAAQ,cAAa,CAAE;CACjG;CAEA,aAAc,SAAe;EACzB,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,MAAM,gBAAgB,KAAK,YAAY,mBAAmB,OAAO;EACjE,OAAO,KAAK,YAAY,WAAW,KAAyB,MAAM,aAAa;CACnF;CAEA,WAAY,QAAY;EACpB,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,MAAM,gBAAgB,KAAK,YAAY,mBAAmB,MAAM;EAChE,OAAO,KAAK,YAAY,WAAW,KAAiB,MAAM,aAAa;CAC3E;CAEA,wBAAyB,QAAiC;EACtD,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,MAAM,gBAAgB,KAAK,YAAY,mBAAmB,MAAM;EAChE,OAAO,KAAK,YAAY,WAAW,KAAU,MAAM,aAAa;CACpE;CAEA,OAAQ,QAAc;EAClB,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,MAAM,gBAAgB,KAAK,YAAY,mBAAmB,MAAM;EAChE,OAAO,KAAK,YAAY,WAAW,IAAsB,MAAM,EAAE,QAAQ,cAAa,CAAE;CAC5F;CAEA,eAAgB,QAAc;EAC1B,MAAM,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,aAAY,EAAE;EAC/D,MAAM,gBAAgB,KAAK,YAAY,mBAAmB,MAAM;EAChE,OAAO,KAAK,YAAY,WAAW,KAAU,MAAM,aAAa;CACpE;CAtHkB;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAiB,MAAA,CAAA,EAAA,OAAAA,YAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAjB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAiB,cAAA;GAAA,UAAA;EAAA,CAAA;CAAA;;AAAjB,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAiB,YAAA,CAAA,EADtC,MAAA,UAAA,CAAA"}
1
+ {"version":3,"file":"dflat-core-web-core-data.mjs","names":["i1.DataService"],"sources":["../../core-data/src/lib/services/data-service.ts","../../core-data/src/lib/core-data.module.ts","../../core-data/src/lib/services/entity-data-service.ts"],"sourcesContent":["import { EnvironmentBase, Utilities } from '@dflat-core/web/core';\r\nimport { ActionDescriptor, ColumnDescriptor, EntityViewModelWithFields, EntityWithSpecifics, ExtendedProperty, FilterDescriptor, PagedList, SaveResult, SaveResults, TrackRecordProperty } from '@dflat-core/web/core-model';\r\nimport { HeadersService, InitCacheService } from '@dflat-core/web/core-services';\r\nimport { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { inject, Injectable, Type } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n\r\n@Injectable()\r\nexport class DataService {\r\n\r\n baseUrl = this.env.apiUrl;\r\n httpClient: HttpClient;\r\n data: any[];\r\n private initCache = inject(InitCacheService);\r\n constructor(\r\n private env: EnvironmentBase,\r\n httpClient: HttpClient,\r\n private headerService: HeadersService) {\r\n this.httpClient = httpClient\r\n }\r\n\r\n getFormattedParams(params: any): any {\r\n // Point d'entrée public : conserve le comportement historique\r\n // (stringify uniquement quand params racine est un tableau).\r\n if (Array.isArray(params)) {\r\n if (params.length > 0 && typeof (params[0]) === 'number') {\r\n return JSON.stringify(params);\r\n }\r\n const result = params.map(entity => this.formatValueRecursive(entity));\r\n return JSON.stringify(result);\r\n }\r\n\r\n return this.formatValueRecursive(params);\r\n }\r\n\r\n // Transforme récursivement un objet/tableau/valeur, sans jamais stringifier.\r\n // Utilisée pour descendre dans les propriétés imbriquées (ex: un tableau\r\n // d'objets contenu dans une propriété d'un objet racine), qui étaient\r\n // auparavant copiées telles quelles et donc jamais nettoyées de leurs Date.\r\n private formatValueRecursive(val: any): any {\r\n if (val === undefined || val === null) {\r\n return val;\r\n }\r\n\r\n if (val instanceof Date) {\r\n return `${Utilities.Format2Digits(val.getFullYear())}-${Utilities.Format2Digits(val.getMonth() + 1)}-${Utilities.Format2Digits(val.getDate())}T00:00:00.000Z`;\r\n }\r\n\r\n if (Array.isArray(val)) {\r\n // Tableau de nombres : on le laisse tel quel (comme au niveau racine)\r\n if (val.length > 0 && typeof (val[0]) === 'number') {\r\n return val;\r\n }\r\n return val.map(item => this.formatValueRecursive(item));\r\n }\r\n\r\n if (typeof val === 'object') {\r\n const result: any = {};\r\n for (let key in val) {\r\n if (val.hasOwnProperty(key)) {\r\n const propVal = val[key];\r\n if (propVal !== undefined && propVal !== null) {\r\n result[key] = this.formatValueRecursive(propVal);\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n // primitive (string, number, boolean...) : inchangé\r\n return val;\r\n }\r\n\r\n\r\n getUrlQueryParams(filter: any): HttpParams {\r\n let requestParams = new HttpParams();\r\n let formattedFilter = this.getFormattedParams(filter);\r\n for (let key in formattedFilter) {\r\n if (formattedFilter.hasOwnProperty(key)) {\r\n let vals = formattedFilter[key];\r\n if (Array.isArray(vals) && vals.length > 0)\r\n {\r\n for (let key2 in vals) {\r\n requestParams = requestParams.append(key, vals[key2]);\r\n }\r\n }\r\n else if (typeof vals === 'object') {\r\n requestParams = requestParams.set(key, JSON.stringify(vals));\r\n }\r\n else\r\n {\r\n requestParams = requestParams.set(key, vals);\r\n }\r\n }\r\n }\r\n return requestParams;\r\n }\r\n\r\n /*getUrlQueryArrayParams(filter: any): HttpParams {\r\n let requestParams = new HttpParams();\r\n let formattedFilter = this.getFormattedParams(filter);\r\n for (let key in formattedFilter) {\r\n if (formattedFilter.hasOwnProperty(key)) {\r\n let vals = formattedFilter[key];\r\n for (let key2 in vals) {\r\n requestParams = requestParams.append(key, vals[key2]);\r\n }\r\n }\r\n }\r\n return requestParams;\r\n }*/\r\n\r\n /**\r\n * Appel GET sans paramètre gardé dans le cache d'initialisation (InitCacheService) : données\r\n * chargées avant la recherche, identiques d'une ouverture de l'écran à l'autre. Le cache est\r\n * vidé au redémarrage de l'API (horodatage du jeton d'accès) et au changement d'utilisateur.\r\n */\r\n getCached<T>(entityKey: string, action: string): Observable<T> {\r\n return this.initCache.get<T>(`${entityKey}/${action}`,\r\n () => this.httpClient.get<T>(this.baseUrl + `/${entityKey}/${action}`, {}));\r\n }\r\n\r\n /** Vide le cache d'initialisation d'une entité, ou tout le cache. */\r\n clearCached(entityKey?: string): void {\r\n this.initCache.clear(Utilities.IsNil(entityKey) ? null : `${entityKey}/`);\r\n }\r\n\r\n getViewFilterDescriptors(entityKey: string): Observable<FilterDescriptor[]> {\r\n return this.getCached<FilterDescriptor[]>(entityKey, 'GetFilterDescriptors');\r\n }\r\n\r\n getViewColumns(entityKey: string): Observable<ColumnDescriptor[]> {\r\n return this.getCached<ColumnDescriptor[]>(entityKey, 'GetGridColumns');\r\n }\r\n\r\n search<TData>(entityKey: string, filter: any): Observable<PagedList<TData>> {\r\n let _url = this.baseUrl + `/${entityKey}/Search`;\r\n let requestParams = this.getUrlQueryParams(filter);\r\n return this.httpClient.get<PagedList<TData>>(_url, { params: requestParams });\r\n }\r\n\r\n getDetails<TData>(entityKey: string, id: number): Observable<TData> {\r\n let _url = this.baseUrl + `/${entityKey}/GetDetails?`;\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined and cannot be null.\");\r\n else\r\n _url += \"id=\" + encodeURI(\"\" + id);\r\n\r\n _url = _url.replace(/[?&]$/, \"\");\r\n\r\n return this.httpClient.get<TData>(_url);\r\n }\r\n\r\n getEmptyFilter<T>(entityKey: string): Observable<T> {\r\n return this.getCached<T>(entityKey, 'GetEmptyFilter');\r\n }\r\n\r\n /**\r\n * fonction \"async\" liant le front(Angular) et le back(C#)\r\n * - Principalement appelée par \"src.app.core.layout.BaseEditorComponent.loadEntityViewModel()\" lorsque l'on cherche à afficher un Objet de type \"EntityViewModel\"\r\n * - C'est elle qui lance l'appel à la fonction \"back\" BaseFilterController.GetEntityViewModel<TData>(id).\r\n * - Puis elle crée un observable avec la réponse qu'elle obtient du \"back\"\r\n *\r\n * @async\r\n * @function\r\n * @name getEntityViewModel<TData>\r\n * @param {string} entityKey\r\n * @param {number} id\r\n * @returns {(Observable)EntityViewModelWithFields<TData>}\r\n * @memberof DataService\r\n * @summary Demande les données d'une entité au back(C#) à travers \"getEntityViewModel\".\r\n * @see {@link src.app.core.layout.BaseEditorComponent.loadEntityViewModel()} for more information\r\n * @throws new Error(\"The parameter 'id' must be defined and cannot be null.\") if (id === undefined ou id === null)\r\n */\r\n getEntityViewModel<TData>(entityKey: string, id: number): Observable<EntityViewModelWithFields<TData>> {\r\n let _url = this. baseUrl + `/${entityKey}/GetEntityViewModel?`;\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined and cannot be null.\");\r\n else if (id === 0)\r\n // Formulaire vide (id 0) : donnée d'initialisation, gardée en cache.\r\n return this.getCached<EntityViewModelWithFields<TData>>(entityKey, 'GetEntityViewModel?id=0');\r\n else\r\n _url += \"id=\" + encodeURI(\"\" + id);\r\n\r\n _url = _url.replace(/[?&]$/, \"\");\r\n\r\n return this.httpClient.get(_url).pipe(\r\n map((resp: Response) => <EntityViewModelWithFields<TData>>resp));\r\n }\r\n\r\n getExtendedProperties(entityKey: string, entityIds: number[]): Observable<ExtendedProperty[]> {\r\n let _url = this.baseUrl + `/${entityKey}/GetExtendedProperties`;\r\n\r\n let requestParams = this.getUrlQueryParams({ entityIds: entityIds });\r\n return this.httpClient.get<ExtendedProperty[]>(_url, { params: requestParams });\r\n }\r\n\r\n getExtendedActions (entityKey: string) : Observable<ActionDescriptor[]> {\r\n return this.getCached<ActionDescriptor[]>(entityKey, 'GetExtendedActions');\r\n }\r\n \r\n getTrackRecordProperties(entityKey: string, entityIds: number[]): Observable<TrackRecordProperty[]> {\r\n let _url = this.baseUrl + `/${entityKey}/GetTrackRecordProperties`;\r\n\r\n let requestParams = this.getUrlQueryParams({ entityIds: entityIds });\r\n return this.httpClient.get<TrackRecordProperty[]>(_url, { params: requestParams });\r\n }\r\n\r\n saveEntity<TData>(entityKey: string, entity: TData): Observable<SaveResult> {\r\n let _url = this.baseUrl + `/${entityKey}/SaveEntity`;\r\n return this.httpClient.post<SaveResult>(_url, this.getFormattedParams(entity));\r\n }\r\n\r\n deleteEntity<TData>(entityKey: string, entity: TData): Observable<SaveResult> {\r\n let _url = this.baseUrl + `/${entityKey}/DeleteEntity`;\r\n return this.httpClient.post<SaveResult>(_url, this.getFormattedParams(entity));\r\n }\r\n\r\n deleteEntities<TData>(entityKey: string, entities: TData[]): Observable<SaveResults<TData>> {\r\n let _url = this.baseUrl + `/${entityKey}/DeleteEntities`;\r\n return this.httpClient.post<SaveResults<TData>>(_url, this.getFormattedParams(entities));\r\n }\r\n\r\n saveEntities<TData>(entityKey: string, entities: TData[]): Observable<SaveResults<TData>> {\r\n let _url = this.baseUrl + `/${entityKey}/saveEntities`;\r\n let toSave = [];\r\n entities.forEach(entity => {\r\n toSave.push(this.getFormattedParams(entity));\r\n });\r\n return this.httpClient.post<SaveResults<TData>>(_url, JSON.stringify(toSave));\r\n }\r\n\r\n\r\n\r\n SaveEntityWithSpecifics<TData>(entityKey: string, DataToSave: EntityWithSpecifics<TData>): Observable<{ success: boolean, rowVersion?: Date }> {\r\n let _url = this.baseUrl + `/${entityKey}/SaveEntityWithSpecifics`;\r\n return this.httpClient.post<{ success: boolean, rowVersion?: Date }>(_url, this.getFormattedParams(DataToSave));\r\n }\r\n\r\n exportAll<TData>(entityKey: string, filter: any) {\r\n let _url = this.baseUrl + `/${entityKey}/ExportAll`;\r\n let requestParams = this.getUrlQueryParams(filter);\r\n\r\n return this.httpClient.get(_url, { observe: 'response', params: requestParams, withCredentials: true, responseType: 'blob' })\r\n .pipe(map((r: HttpResponse<Blob>) => this.getFileInfo(r)))\r\n }\r\n\r\n exportResults<TData>(entityKey: string, exportModel: any) {\r\n let _url = this.baseUrl + `/${entityKey}/ExportResults`;\r\n const _body = JSON.stringify(exportModel);\r\n\r\n return this.httpClient.post(_url, _body, { observe: 'response', responseType: 'blob' })\r\n .pipe(map((r: HttpResponse<Blob>) => this.getFileInfo(r)));\r\n }\r\n\r\n public getFileInfo(resp: HttpResponse<Blob>): { fileBlob: Blob, fileName: string } {\r\n var type = resp.headers.get(\"Content-Type\");\r\n let b = new Blob([resp.body], { type: type });\r\n return {\r\n fileBlob: b,\r\n fileName: (resp.headers.get(\"Content-Disposition\") || \"\").split(\";\")[1].trim().split(\"=\")[1].replace(/['\"]/g, '')\r\n };\r\n }\r\n\r\n uploadFileToExtract(file: File, inputId: number, correlationId: string) {\r\n return this.uploadFiles(\"/DataImport/PostImportFile\", [file], { inputId: inputId, correlationId: correlationId });\r\n }\r\n\r\n uploadFilesWithParams(files: File[], customParams?: {}, forceMultipleFiles: boolean = false): Observable<any> {\r\n\r\n const _url = this.baseUrl + \"/DataImport/PostFiles\";\r\n\r\n let formData = new FormData();\r\n if (files.length == 1 && !forceMultipleFiles) {\r\n formData.append('file', files[0]);\r\n }\r\n else {\r\n for (var i = 0; i < files.length; i++) {\r\n formData.append('files', files[i]);\r\n }\r\n }\r\n\r\n formData.append('data', JSON.stringify((customParams as any).dataModel));\r\n let params = new HttpParams();\r\n\r\n return this.httpClient.post(_url, formData, {\r\n params,\r\n reportProgress: true,\r\n observe: 'body',\r\n headers: this.headerService.authFileUploadHeaders()\r\n });\r\n }\r\n\r\n uploadFiles(url: string, files: File[], customParams?: {}, forceMultipleFiles: boolean = false): Observable<any> {\r\n\r\n const _url = this.baseUrl + url;\r\n\r\n let formData = new FormData();\r\n if (files.length == 1 && !forceMultipleFiles) {\r\n formData.append('file', files[0]);\r\n }\r\n else {\r\n for (var i = 0; i < files.length; i++) {\r\n formData.append('files', files[i]);\r\n }\r\n }\r\n\r\n if (customParams) {\r\n for (let p in customParams) {\r\n if (customParams.hasOwnProperty(p)) {\r\n formData.append(p, customParams[p]);\r\n }\r\n }\r\n }\r\n\r\n let params = new HttpParams();\r\n\r\n\r\n return this.httpClient.post(_url, formData, {\r\n params,\r\n reportProgress: true,\r\n observe: 'body',\r\n headers: this.headerService.authFileUploadHeaders()\r\n });\r\n }\r\n\r\n uploadFilesWithEvents(url: string, files: File[], customParams?: {}, forceMultipleFiles: boolean = false): Observable<any> {\r\n\r\n const _url = this.baseUrl + url;\r\n\r\n let formData = new FormData();\r\n if (files.length == 1 && !forceMultipleFiles) {\r\n formData.append('file', files[0]);\r\n }\r\n else {\r\n for (var i = 0; i < files.length; i++) {\r\n formData.append('files', files[i]);\r\n }\r\n }\r\n\r\n if (customParams) {\r\n for (let p in customParams) {\r\n if (customParams.hasOwnProperty(p)) {\r\n formData.append(p, customParams[p]);\r\n }\r\n }\r\n }\r\n\r\n let params = new HttpParams();\r\n return this.httpClient.post<any>(_url, formData, {\r\n params,\r\n reportProgress: true,\r\n observe: 'events',\r\n headers: this.headerService.authFileUploadHeaders()\r\n });\r\n\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { DataService } from './services/data-service';\r\n\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n providers: [DataService]\r\n})\r\nexport class CoreDataModule {}\r\n","import { ActionDescriptor, ColumnDescriptor, EntityViewModel, EntityViewModelWithFields, EntityWithSpecifics, ExportModel, ExtendedProperty, FilterDescriptor, FilterViewModel, PagedList, SaveResult, SaveResults, TrackRecordProperty } from '@dflat-core/web/core-model';\r\n\r\nimport { DataService } from './data-service';\r\nimport { HttpResponse } from '@angular/common/http';\r\nimport { Directive } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Directive()\r\nexport abstract class EntityDataService<TData extends EntityViewModel, TFilter extends FilterViewModel> \r\n{\r\n abstract getEntityKey(): string;\r\n\r\n constructor(protected dataService : DataService) {}\r\n deleteEntities (sources:TData[]) : Observable<SaveResults<TData>> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/DeleteEntities`;\r\n const requestParams = this.dataService.getFormattedParams(sources);\r\n return this.dataService.httpClient.post<SaveResults<TData>>(_url, requestParams);\r\n }\r\n\r\n deleteEntity (source:TData) : Observable<SaveResult> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/DeleteEntity`;\r\n const requestParams = this.dataService.getFormattedParams(source);\r\n return this.dataService.httpClient.post<SaveResult>(_url, requestParams);\r\n }\r\n\r\n exportAll (filter:TFilter) {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/ExportAll`;\r\n const requestParams = this.dataService.getFormattedParams(filter);\r\n return this.dataService.httpClient.get(_url, { observe: 'response', params: requestParams, withCredentials: true, responseType: 'blob' }).pipe(map((r: HttpResponse<Blob>) => this.dataService.getFileInfo(r)));\r\n }\r\n\r\n exportResults (model:ExportModel<TFilter>) {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/ExportResults`;\r\n const requestParams = this.dataService.getFormattedParams(model);\r\n return this.dataService.httpClient.get(_url, { observe: 'response', params: requestParams, withCredentials: true, responseType: 'blob' }).pipe(map((r: HttpResponse<Blob>) => this.dataService.getFileInfo(r)));\r\n }\r\n\r\n getAlternateEntityViewModel (id:number) : Observable<EntityViewModelWithFields<TData>> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetAlternateEntityViewModel`;\r\n const requestParams = this.dataService.getUrlQueryParams({ id:id });\r\n return this.dataService.httpClient.get<EntityViewModelWithFields<TData>>(_url, { params: requestParams });\r\n }\r\n\r\n getCacheManager () : Observable<TData[]> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetCacheManager`;\r\n return this.dataService.httpClient.get<TData[]>(_url, {});\r\n }\r\n\r\n getColumns () : Observable<ColumnDescriptor[]> {\r\n return this.dataService.getCached<ColumnDescriptor[]>(this.getEntityKey(), 'GetColumns');\r\n }\r\n\r\n getDetails (id:number) : Observable<TData> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetDetails`;\r\n const requestParams = this.dataService.getUrlQueryParams({ id:id });\r\n return this.dataService.httpClient.get<TData>(_url, { params: requestParams });\r\n }\r\n\r\n getEmptyFilter () : Observable<TFilter> {\r\n return this.dataService.getCached<TFilter>(this.getEntityKey(), 'GetEmptyFilter');\r\n }\r\n\r\n getEntityViewModel (id:number) : Observable<EntityViewModelWithFields<TData>> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetEntityViewModel`;\r\n const requestParams = this.dataService.getUrlQueryParams({ id:id });\r\n return this.dataService.httpClient.get<EntityViewModelWithFields<TData>>(_url, { params: requestParams });\r\n }\r\n\r\n getExtendedActions () : Observable<ActionDescriptor[]> {\r\n return this.dataService.getCached<ActionDescriptor[]>(this.getEntityKey(), 'GetExtendedActions');\r\n }\r\n\r\n getExtendedProperties (entityIds:number[]) : Observable<ExtendedProperty[]> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetExtendedProperties`;\r\n const requestParams = this.dataService.getUrlQueryParams({ entityIds:entityIds });\r\n return this.dataService.httpClient.get<ExtendedProperty[]>(_url, { params: requestParams });\r\n }\r\n\r\n getFilterDescriptors () : Observable<FilterDescriptor[]> {\r\n return this.dataService.getCached<FilterDescriptor[]>(this.getEntityKey(), 'GetFilterDescriptors');\r\n }\r\n\r\n getSortColumn (col:string) : Observable<string> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetSortColumn`;\r\n const requestParams = this.dataService.getUrlQueryParams({ col:col });\r\n return this.dataService.httpClient.get<string>(_url, { params: requestParams });\r\n }\r\n\r\n getTrackRecordProperties (entityIds:number[]) : Observable<TrackRecordProperty[]> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/GetTrackRecordProperties`;\r\n const requestParams = this.dataService.getUrlQueryParams({ entityIds:entityIds });\r\n return this.dataService.httpClient.get<TrackRecordProperty[]>(_url, { params: requestParams });\r\n }\r\n \r\n saveEntities (sources:TData[]) : Observable<SaveResults<TData>> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/SaveEntities`;\r\n const requestParams = this.dataService.getFormattedParams(sources);\r\n return this.dataService.httpClient.post<SaveResults<TData>>(_url, requestParams);\r\n }\r\n\r\n saveEntity (source:TData) : Observable<SaveResult> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/SaveEntity`;\r\n const requestParams = this.dataService.getFormattedParams(source);\r\n return this.dataService.httpClient.post<SaveResult>(_url, requestParams);\r\n }\r\n\r\n saveEntityWithSpecifics (source:EntityWithSpecifics<TData>) : Observable<any> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/SaveEntityWithSpecifics`;\r\n const requestParams = this.dataService.getFormattedParams(source);\r\n return this.dataService.httpClient.post<any>(_url, requestParams);\r\n }\r\n\r\n search (filter:TFilter) : Observable<PagedList<TData>> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/Search`;\r\n const requestParams = this.dataService.getFormattedParams(filter);\r\n return this.dataService.httpClient.get<PagedList<TData>>(_url, { params: requestParams });\r\n }\r\n\r\n toggleFavorite (filter:TFilter) : Observable<any> {\r\n const _url = this.dataService.baseUrl + `/${this.getEntityKey()}/ToggleFavorite`;\r\n const requestParams = this.dataService.getFormattedParams(filter);\r\n return this.dataService.httpClient.post<any>(_url, requestParams);\r\n }\r\n\r\n}\r\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dflat-core-web-core-model.mjs","names":[],"sources":["../../core-model/src/lib/core-model.module.ts","../../core-model/src/lib/model/interface.generated.ts","../../core-model/src/lib/interface.ts","../../core-model/src/lib/model/model.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class CoreModelModule {}\r\n","export interface ViewModel {\r\n}\r\n\r\nexport interface ExtendedProperty {\r\n EntityId? : number;\r\n FieldType? : number;\r\n PropertyId? : number;\r\n PropertyName? : string;\r\n Value? : string;\r\n}\r\n\r\nexport enum ValidatorTypes {\r\n None = 0,\r\n MaxLength = 1,\r\n MinLength = 2,\r\n Max = 4,\r\n Min = 8,\r\n Email = 16,\r\n Required = 32,\r\n Unicity = 64,\r\n Nullable = 128,\r\n}\r\n\r\nexport interface PagingViewModel {\r\n EnablePaging? : boolean;\r\n Offset? : number;\r\n SortColumn? : string;\r\n SortDirection? : string;\r\n SpecificSortClause? : string;\r\n Take? : number;\r\n}\r\n\r\nexport interface EntityViewModel extends ViewModel {\r\n ExtendedProperties? : ExtendedProperty[];\r\n Id? : number;\r\n IsEditable? : boolean;\r\n IsSelected? : boolean;\r\n IsStorable? : boolean;\r\n Name? : string;\r\n RowVersion? : Date;\r\n}\r\n\r\nexport interface TextWithStyle {\r\n GreenText? : string;\r\n RedText? : string;\r\n YellowText? : string;\r\n}\r\n\r\nexport interface INode {\r\n Childrens? : INode[];\r\n Code? : string;\r\n Description? : string;\r\n Id? : number;\r\n ParentId? : number;\r\n UniqueName? : string;\r\n}\r\n\r\nexport interface FilterViewModel extends PagingViewModel {\r\n AdditionalFilter? : string;\r\n AggregateClause? : string;\r\n BrandId? : number;\r\n CustomFieldIds? : string;\r\n Id? : number;\r\n IsCsvExport? : boolean;\r\n Keywords? : string;\r\n}\r\n\r\nexport enum FilterType {\r\n String = 0,\r\n Integer = 1,\r\n Date = 2,\r\n ComboBox = 3,\r\n CheckBox = 4,\r\n Email = 5,\r\n WeekNumber = 6,\r\n Text = 7,\r\n Custom = 8,\r\n RadioButton = 9,\r\n TextZoneWithButton = 10,\r\n HorizComboBox = 11,\r\n TextWithButton = 12,\r\n DropFileZone = 13,\r\n DateTime = 14,\r\n Password = 15,\r\n TreeSelector = 16,\r\n Decimal = 17,\r\n}\r\n\r\nexport interface FieldValidators {\r\n MaxLength? : number;\r\n MaxValue? : number;\r\n MinValue? : number;\r\n ValidatorType? : ValidatorTypes;\r\n}\r\n\r\nexport enum ConditionalResults {\r\n Hide = 0,\r\n ReadOnly = 1,\r\n}\r\n\r\nexport enum ColumnSpans {\r\n Single = 0,\r\n Full = 1,\r\n}\r\n\r\nexport interface FieldDescriptor {\r\n BoolConditioningFieldValue? : boolean;\r\n ButtonLabel? : string;\r\n CascadeDependency? : boolean;\r\n CascadeDependencyProperty? : string;\r\n ColumnIndex? : number;\r\n ColumnSpan? : ColumnSpans;\r\n ConditionalResult? : ConditionalResults;\r\n ConditioningField? : string;\r\n ConditioningFieldValue? : number[];\r\n CurrentFilters? : any;\r\n Data? : any;\r\n DataFilter? : FilterViewModel;\r\n Description? : string;\r\n DisplayMember? : string;\r\n ExportPropertyName? : string;\r\n FieldValidators? : FieldValidators;\r\n FilterDistinct? : boolean;\r\n FilterType? : FilterType;\r\n HideSelected? : boolean;\r\n Highlight? : boolean;\r\n InputType? : string;\r\n IsClearable? : boolean;\r\n IsConditional? : boolean;\r\n IsConditioning? : boolean;\r\n IsExtendedProperty? : boolean;\r\n IsHidden? : boolean;\r\n IsStatic? : boolean;\r\n KeepPlace? : boolean;\r\n Label? : string;\r\n ModalEntityKey? : string;\r\n ModalOnly? : boolean;\r\n ModalPropertyName? : string;\r\n ModalPropertyValue? : string;\r\n ModalTitle? : string;\r\n ModalTriggerIdProperty? : string;\r\n ModalTriggerIdPropertyValue? : string;\r\n MultipleSelection? : boolean;\r\n NotDefaultRequired? : boolean;\r\n OriginalData? : any;\r\n PropertyLength? : number;\r\n PropertyName? : string;\r\n ReadOnly? : boolean;\r\n Required? : boolean;\r\n TextWithStyle? : TextWithStyle;\r\n ToolTip? : string;\r\n ValueMember? : string;\r\n}\r\n\r\nexport interface EntityFilterViewModel<T> extends FilterViewModel {\r\n}\r\n\r\nexport enum ApiErrorTypes {\r\n Unknown = 0,\r\n DatabaseError = 1,\r\n SystemError = 2,\r\n UserError = 3,\r\n}\r\n\r\nexport interface TreeItem<T> {\r\n checked? : boolean;\r\n children? : TreeItem<T>[];\r\n childrenCount? : number;\r\n text? : string;\r\n value? : number;\r\n}\r\n\r\nexport interface Section {\r\n FieldViewModels? : FieldDescriptor[];\r\n IsCustomFieldSection? : boolean;\r\n IsFileSection? : boolean;\r\n IsTrackRecordSection? : boolean;\r\n Name? : string;\r\n}\r\n\r\nexport interface Display {\r\n baseUrl? : string;\r\n completingCaracter? : string;\r\n currency? : string;\r\n enumMap? : string[];\r\n format? : string;\r\n handleError? : boolean;\r\n imagePath? : string;\r\n imgBase? : string;\r\n multiplier? : number;\r\n nullCaseText? : string;\r\n sourceProperty? : string;\r\n type? : string;\r\n width? : number;\r\n}\r\n\r\nexport interface BasicNode {\r\n Childrens? : INode[];\r\n Code? : string;\r\n Description? : string;\r\n Id? : number;\r\n ParentId? : number;\r\n UniqueName? : string;\r\n}\r\n\r\nexport interface ApiError {\r\n ApiErrorType? : ApiErrorTypes;\r\n ErrorCode? : number;\r\n Message? : string;\r\n StackTrace? : string;\r\n}\r\n\r\nexport enum ActionDisplay {\r\n Button = 0,\r\n TextAndButton = 1,\r\n}\r\n\r\n\r\nexport interface TabToSave<TResult> {\r\n Data? : TResult[];\r\n TitleOfTab? : string;\r\n}\r\n\r\nexport interface SaveResult {\r\n DisplayMessage? : boolean;\r\n Error? : ApiError;\r\n ErrorMessage? : string;\r\n Id? : number;\r\n RowVersion? : Date;\r\n Success? : boolean;\r\n Warnings? : string[];\r\n}\r\n\r\nexport interface ColumnDescriptor {\r\n Display? : Display;\r\n Expression? : string;\r\n FieldName? : string;\r\n IsComputed? : boolean;\r\n IsFilterEnabled? : boolean;\r\n IsNumericExpression? : boolean;\r\n Name? : string;\r\n Property? : string;\r\n TableAlias? : string;\r\n ToolTipProperty? : string;\r\n}\r\n\r\nexport interface AggregationValue {\r\n Key? : string;\r\n Value? : any;\r\n}\r\n\r\nexport interface ActionDescriptor {\r\n ActionDisplay? : ActionDisplay;\r\n Description? : string;\r\n FormDescriptor? : Section[];\r\n Icon? : string;\r\n IconUrl? : string;\r\n Label? : string;\r\n Name? : string;\r\n RequestType? : string;\r\n}\r\n\r\nexport interface TrackRecordProperty {\r\n CreatedBy? : string;\r\n CreationDate? : Date;\r\n CreationDateString? : string;\r\n Id? : number;\r\n ModificationDate? : Date;\r\n ModificationDateString? : string;\r\n ModifiedBy? : string;\r\n}\r\n\r\nexport interface SaveResults<TResult> extends SaveResult {\r\n SaveErrorEntities? : TResult[];\r\n}\r\n\r\nexport interface RunActionContext {\r\n Action? : ActionDescriptor;\r\n CorrelationId? : string;\r\n EntityIds? : number[];\r\n EntityKey? : string;\r\n File? : any;\r\n FileId? : number;\r\n FormValue? : any;\r\n RequestId? : number;\r\n}\r\n\r\nexport interface PagedList<T> {\r\n Aggregates? : AggregationValue[];\r\n Skip? : number;\r\n Take? : number;\r\n TotalRowCount? : number;\r\n Values? : T[];\r\n}\r\n\r\nexport enum ImageFormats {\r\n Undefined = 0,\r\n JPG = 1,\r\n PNG = 2,\r\n GIF = 3,\r\n TIFF = 4,\r\n BMP = 5,\r\n SVG = 6,\r\n}\r\n\r\nexport interface FilterDescriptor extends FieldDescriptor {\r\n DisplayImage? : boolean;\r\n}\r\n\r\nexport interface ExportModel<T> {\r\n Columns? : ColumnDescriptor[];\r\n Filter? : T;\r\n}\r\n\r\nexport interface EntityWithSpecifics<TResult> {\r\n Entity? : TResult;\r\n Tabs? : TabToSave<TResult>[];\r\n}\r\n\r\nexport interface EntityViewModelWithFields<T> {\r\n FieldSections? : Section[];\r\n SpecificSection? : any;\r\n ViewModel? : T;\r\n}\r\n\r\nexport enum TextSearch {\r\n Contains = 0,\r\n StartsWith = 1,\r\n EndsWith = 2,\r\n}\r\n\r\nexport enum ExportType {\r\n CSV = 0,\r\n EXCEL = 1,\r\n}\r\n\r\nexport enum AggregateFunction {\r\n Count = 0,\r\n Sum = 1,\r\n Min = 2,\r\n Max = 3,\r\n Avg = 4,\r\n}\r\n\r\nexport enum ActionResultStatus {\r\n OK = 0,\r\n KO = 1,\r\n}\r\n\r\n","import { Utilities } from '@dflat-core/web/core';\r\nimport { ComponentRef, TemplateRef, Type } from '@angular/core';\r\n\r\nimport { ActionDescriptor, ColumnDescriptor, EntityViewModel, EntityViewModelWithFields, FieldDescriptor, FieldValidators, FilterDescriptor, FilterViewModel } from './model/interface.generated';\r\n\r\nexport interface IIdentifiable {\r\n Id?: number;\r\n}\r\n\r\nexport class UserUpdatedMessage {\r\n constructor(public userKey: string) { }\r\n}\r\n\r\nexport interface IUserCredential extends IIdentifiable {\r\n AccessToken: string; \r\n RefreshToken: string; \r\n Username?: string; \r\n FirstName?: string; \r\n LastName?: string;\r\n Email?: string;\r\n IsAdmin?: boolean;\r\n IsDelivery?: boolean;\r\n IsPartner?: boolean;\r\n PhoneNumber?: string;\r\n IsActive?: boolean;\r\n IsPartnerActive?: boolean;\r\n IsDeliveryActive?: boolean;\r\n\r\n Id?: number;\r\n CompanyId?: number;\r\n Permissions: string[];\r\n ProfileImageUrl: string;\r\n AvatarUrl: string;\r\n\r\n}\r\nexport class User implements IUserCredential {\r\n \r\n public AccessToken: string;\r\n public RefreshToken: string;\r\n public Username?: string;\r\n public FirstName?: string;\r\n public LastName?: string;\r\n public Email?: string;\r\n public PhoneNumber?: string;\r\n public IsAdmin?: boolean;\r\n public IsDelivery?: boolean;\r\n public IsPartner?: boolean;\r\n public Id?: number;\r\n public CompanyId?: number;\r\n public Permissions: string[];\r\n public ProfileImageUrl: string;\r\n public IsActive?: boolean;\r\n public IsPartnerActive?: boolean;\r\n public IsDeliveryActive?: boolean;\r\n public IsConnected: boolean = false;\r\n public AvatarUrl: string;\r\n \r\n public constructor(data: IUserCredential) {\r\n this.Username = data.Username;\r\n this.FirstName = data.FirstName;\r\n this.LastName = data.LastName;\r\n this.Email = data.Email;\r\n this.PhoneNumber = data.PhoneNumber;\r\n this.ProfileImageUrl = data.ProfileImageUrl;\r\n this.IsAdmin = data.IsAdmin;\r\n this.IsPartner = data.IsPartner;\r\n this.IsDelivery = data.IsDelivery;\r\n this.IsAdmin = data.IsAdmin;\r\n this.IsPartner = data.IsPartner;\r\n this.IsDelivery = data.IsDelivery;\r\n this.IsActive = data.IsActive;\r\n this.IsPartnerActive = data.IsPartnerActive;\r\n this.IsDeliveryActive = data.IsDeliveryActive;\r\n this.Id = data.Id;\r\n this.CompanyId = data.CompanyId;\r\n this.AccessToken = data.AccessToken;\r\n this.AvatarUrl = data.AvatarUrl;\r\n }\r\n \r\n\r\n public getName() {\r\n return this.FirstName + ' ' + this.LastName;\r\n }\r\n\r\n \r\n}\r\n\r\n\r\nexport interface INotification {\r\n id:string;\r\n content: string;\r\n class: string;\r\n link: string;\r\n entityType:string;\r\n entityId?:number;\r\n}\r\n \r\nexport class Notification implements INotification {\r\n public id:string;\r\n public content: string;\r\n public class: string;\r\n public link: string;\r\n public entityType:string;\r\n public entityId?:number\r\n public constructor(data: Partial<INotification> = {}) {\r\n this.id = data.id || '';\r\n this.content = data.content || '';\r\n this.class = data.class || '';\r\n this.link = data.link || '';\r\n this.entityType = data.entityType || '';\r\n this.entityId = data.entityId;\r\n }\r\n}\r\n\r\nexport class ChannelData<T> {\r\n Channel: string;\r\n Data: T;\r\n\r\n public constructor(channel: string, data: T) {\r\n this.Channel= channel;\r\n this.Data= data;\r\n }\r\n}\r\n\r\nexport class IMessage {\r\n Channel: string;\r\n Data: any;\r\n}\r\n\r\nexport class Message implements IMessage \r\n{\r\n Channel: string;\r\n Data: any;\r\n\r\n public constructor(channel: string, data: any) {\r\n this.Channel= channel;\r\n this.Data= data;\r\n }\r\n}\r\nexport interface NumberDictionary<T> {\r\n [Key: number]: T;\r\n}\r\nexport interface Dictionary<T> {\r\n [Key: string]: T;\r\n}\r\n\r\n\r\n\r\nexport class NumberDictionnaryWrapper<T> {\r\n\r\n dictionary: NumberDictionary<T> = {};\r\n get(key: number) {\r\n return this.dictionary[key];\r\n }\r\n\r\n containsKey(key: number) {\r\n if (typeof this.dictionary[key] === \"undefined\") {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n\r\nexport class DictionnaryWrapper<T> {\r\n\r\n dictionary: Dictionary<T> = {};\r\n get(key: string) {\r\n return this.dictionary[key];\r\n }\r\n\r\n containsKey(key: string) {\r\n if (typeof this.dictionary[key] === \"undefined\") {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n getPartKey(key: string) {\r\n\r\n if (typeof this.dictionary[key] === \"undefined\" ) {\r\n let keyFound = Object.keys(this.dictionary).find(obj => key.includes(obj));\r\n if(keyFound) {\r\n key = keyFound\r\n }\r\n }\r\n\r\n return this.dictionary[key];\r\n }\r\n\r\n containsKeyOrPartKey(key: string) {\r\n let routeFound = Object.keys(this.dictionary).find(obj => key.includes(obj));\r\n \r\n if(!Utilities.IsNil(routeFound)){\r\n return true;\r\n }\r\n\r\n if (typeof this.dictionary[key] === \"undefined\" ) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n getValues() {\r\n return Object.keys(this.dictionary).map(key => this.dictionary[key]);\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n// export interface FilterDescriptor {\r\n// FieldValidators?: FieldValidators;\r\n// Label?: string;\r\n// FilterType?: FilterType;\r\n// PropertyName?: string;\r\n// DisplayMember?: string;\r\n// ValueMember?: string;\r\n// Data?: any;\r\n// Highlight?: boolean;\r\n// ToolTip?: string;\r\n// IsStatic?: boolean;\r\n// Required?: boolean;\r\n// NotDefaultRequired?: boolean;\r\n// ReadOnly?: boolean;\r\n// IsHidden?: boolean;\r\n// KeepPlace?: boolean;\r\n// IsConditioning?: boolean;\r\n// IsConditional?: boolean;\r\n// ConditioningField?: string;\r\n// ConditioningFieldValue?: number;\r\n// BoolConditioningFieldValue?: boolean;\r\n// OriginalData?: any;\r\n// CascadeDependency?: boolean;\r\n// CascadeDependencyProperty?: string;\r\n// FilterDistinct?: boolean;\r\n// MultipleSelection?: boolean;\r\n// HideSelected?: boolean;\r\n// ColumnSpan?: ColumnSpans;\r\n// ColumnIndex?: number;\r\n// InputType?: string;\r\n// CurrentFilters?: {};\r\n\r\n// ModalEntityKey?: string;\r\n// ModalPropertyName?: string;\r\n// ModalPropertyValue?: string;\r\n// ModalTitle?: string;\r\n// }\r\n\r\n\r\n\r\nexport interface SpecificSection {\r\n Name?: string,\r\n IconUrl?:string,\r\n Template?: Type<any> | TemplateRef<any> | ComponentRef<any> | any,\r\n Context?: {},\r\n Data?: any[],\r\n Component?: any,\r\n refreshFunction?: () => void\r\n}\r\nexport interface SectionError {\r\n Name?: string,\r\n FieldValidators?: FieldValidators;\r\n Errors?: string[]\r\n}\r\n\r\nexport interface IFilterDescriptorExtra {\r\n Field?: FilterDescriptor;\r\n DisplayedValue?: string;\r\n}\r\n\r\nexport interface TextZoneButtonEvent {\r\n Field: FieldDescriptor;\r\n Value: string;\r\n }\r\n \r\n export interface FieldEvent {\r\n Field: FieldDescriptor;\r\n Event: Event;\r\n }\r\n \r\n export interface EntityConfig {\r\n actions: ActionDescriptor[];\r\n columns: ColumnDescriptor[];\r\n emptyFilter: FilterViewModel;\r\n filterDescriptors: FilterDescriptor[];\r\n viewModel: EntityViewModelWithFields<EntityViewModel>;\r\n }\r\n\r\n // export interface CachedConfig {\r\n // timestamp: number;\r\n // config : EntityConfig;\r\n // }\r\n\r\n export interface PropertyEditorEvent {\r\n field: FieldDescriptor;\r\n value: any;\r\n type: 'value' | 'pending' | 'file' | 'selector' | 'button'| 'reset';\r\n }","export class HistoryItem {\r\n date: string;\r\n hour: string;\r\n url: string;\r\n icon1: string;\r\n menu1: string;\r\n icon2: string;\r\n menu2: string;\r\n}\r\n\r\nexport enum FilterOperator {\r\n Contains = 0,\r\n StartsWith = 1,\r\n EndsWith = 2,\r\n Equals = 3\r\n}\r\nexport interface FilterClause {\r\n PropertyName : string;\r\n FilterValue : string;\r\n Operator : FilterOperator\r\n}\r\n\r\nexport interface FilterRow {\r\n ClausesByPropertyName : Map<string, FilterClause>;\r\n}\r\n\r\nexport interface FilterQuery {\r\n Rows : FilterRow[];\r\n}\r\n\r\nexport enum CustomFieldTypes {\r\n String = 0,\r\n Integer = 1,\r\n Date = 2,\r\n ComboBox = 3,\r\n Checkbox = 4,\r\n Email = 5,\r\n WeekNumber = 6,\r\n Text = 7,\r\n Custom = 8,\r\n Number = 9,\r\n}"],"mappings":"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"}
1
+ {"version":3,"file":"dflat-core-web-core-model.mjs","names":[],"sources":["../../core-model/src/lib/core-model.module.ts","../../core-model/src/lib/model/interface.generated.ts","../../core-model/src/lib/interface.ts","../../core-model/src/lib/model/model.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class CoreModelModule {}\r\n","export interface ViewModel {\r\n}\r\n\r\nexport interface ExtendedProperty {\r\n EntityId? : number;\r\n FieldType? : number;\r\n PropertyId? : number;\r\n PropertyName? : string;\r\n Value? : string;\r\n}\r\n\r\nexport enum ValidatorTypes {\r\n None = 0,\r\n MaxLength = 1,\r\n MinLength = 2,\r\n Max = 4,\r\n Min = 8,\r\n Email = 16,\r\n Required = 32,\r\n Unicity = 64,\r\n Nullable = 128,\r\n}\r\n\r\nexport interface PagingViewModel {\r\n EnablePaging? : boolean;\r\n Offset? : number;\r\n SortColumn? : string;\r\n SortDirection? : string;\r\n SpecificSortClause? : string;\r\n Take? : number;\r\n}\r\n\r\nexport interface EntityViewModel extends ViewModel {\r\n ExtendedProperties? : ExtendedProperty[];\r\n Id? : number;\r\n IsEditable? : boolean;\r\n IsSelected? : boolean;\r\n IsStorable? : boolean;\r\n Name? : string;\r\n RowVersion? : Date;\r\n}\r\n\r\nexport interface TextWithStyle {\r\n GreenText? : string;\r\n RedText? : string;\r\n YellowText? : string;\r\n}\r\n\r\nexport interface INode {\r\n Childrens? : INode[];\r\n Code? : string;\r\n Description? : string;\r\n Id? : number;\r\n ParentId? : number;\r\n UniqueName? : string;\r\n}\r\n\r\nexport interface FilterViewModel extends PagingViewModel {\r\n AdditionalFilter? : string;\r\n AggregateClause? : string;\r\n BrandId? : number;\r\n CustomFieldIds? : string;\r\n Id? : number;\r\n IsCsvExport? : boolean;\r\n Keywords? : string;\r\n}\r\n\r\nexport enum FilterType {\r\n String = 0,\r\n Integer = 1,\r\n Date = 2,\r\n ComboBox = 3,\r\n CheckBox = 4,\r\n Email = 5,\r\n WeekNumber = 6,\r\n Text = 7,\r\n Custom = 8,\r\n RadioButton = 9,\r\n TextZoneWithButton = 10,\r\n HorizComboBox = 11,\r\n TextWithButton = 12,\r\n DropFileZone = 13,\r\n DateTime = 14,\r\n Password = 15,\r\n TreeSelector = 16,\r\n Decimal = 17,\r\n}\r\n\r\nexport interface FieldValidators {\r\n MaxLength? : number;\r\n MaxValue? : number;\r\n MinValue? : number;\r\n ValidatorType? : ValidatorTypes;\r\n}\r\n\r\nexport enum ConditionalResults {\r\n Hide = 0,\r\n ReadOnly = 1,\r\n}\r\n\r\nexport enum ColumnSpans {\r\n Single = 0,\r\n Full = 1,\r\n}\r\n\r\nexport interface FieldDescriptor {\r\n BoolConditioningFieldValue? : boolean;\r\n ButtonLabel? : string;\r\n CascadeDependency? : boolean;\r\n CascadeDependencyProperty? : string;\r\n ColumnIndex? : number;\r\n ColumnSpan? : ColumnSpans;\r\n ConditionalResult? : ConditionalResults;\r\n ConditioningField? : string;\r\n ConditioningFieldValue? : number[];\r\n CurrentFilters? : any;\r\n Data? : any;\r\n DataFilter? : FilterViewModel;\r\n Description? : string;\r\n DisplayMember? : string;\r\n ExportPropertyName? : string;\r\n FieldValidators? : FieldValidators;\r\n FilterDistinct? : boolean;\r\n FilterType? : FilterType;\r\n HideSelected? : boolean;\r\n Highlight? : boolean;\r\n InputType? : string;\r\n IsClearable? : boolean;\r\n IsConditional? : boolean;\r\n IsConditioning? : boolean;\r\n IsExtendedProperty? : boolean;\r\n IsHidden? : boolean;\r\n IsStatic? : boolean;\r\n KeepPlace? : boolean;\r\n Label? : string;\r\n ModalEntityKey? : string;\r\n ModalOnly? : boolean;\r\n ModalPropertyName? : string;\r\n ModalPropertyValue? : string;\r\n ModalTitle? : string;\r\n ModalTriggerIdProperty? : string;\r\n ModalTriggerIdPropertyValue? : string;\r\n MultipleSelection? : boolean;\r\n NotDefaultRequired? : boolean;\r\n OriginalData? : any;\r\n PropertyLength? : number;\r\n PropertyName? : string;\r\n ReadOnly? : boolean;\r\n Required? : boolean;\r\n TextWithStyle? : TextWithStyle;\r\n ToolTip? : string;\r\n ValueMember? : string;\r\n}\r\n\r\nexport interface EntityFilterViewModel<T> extends FilterViewModel {\r\n}\r\n\r\nexport enum ApiErrorTypes {\r\n Unknown = 0,\r\n DatabaseError = 1,\r\n SystemError = 2,\r\n UserError = 3,\r\n}\r\n\r\nexport interface TreeItem<T> {\r\n checked? : boolean;\r\n children? : TreeItem<T>[];\r\n childrenCount? : number;\r\n text? : string;\r\n value? : number;\r\n}\r\n\r\nexport interface Section {\r\n FieldViewModels? : FieldDescriptor[];\r\n IsCustomFieldSection? : boolean;\r\n IsFileSection? : boolean;\r\n IsTrackRecordSection? : boolean;\r\n Name? : string;\r\n}\r\n\r\nexport interface Display {\r\n baseUrl? : string;\r\n completingCaracter? : string;\r\n currency? : string;\r\n enumMap? : string[];\r\n format? : string;\r\n handleError? : boolean;\r\n imagePath? : string;\r\n imgBase? : string;\r\n multiplier? : number;\r\n nullCaseText? : string;\r\n sourceProperty? : string;\r\n type? : string;\r\n width? : number;\r\n}\r\n\r\nexport interface BasicNode {\r\n Childrens? : INode[];\r\n Code? : string;\r\n Description? : string;\r\n Id? : number;\r\n ParentId? : number;\r\n UniqueName? : string;\r\n}\r\n\r\nexport interface ApiError {\r\n ApiErrorType? : ApiErrorTypes;\r\n ErrorCode? : number;\r\n Message? : string;\r\n StackTrace? : string;\r\n}\r\n\r\nexport enum ActionDisplay {\r\n Button = 0,\r\n TextAndButton = 1,\r\n}\r\n\r\n\r\nexport interface TabToSave<TResult> {\r\n Data? : TResult[];\r\n TitleOfTab? : string;\r\n}\r\n\r\nexport interface SaveResult {\r\n DisplayMessage? : boolean;\r\n Error? : ApiError;\r\n ErrorMessage? : string;\r\n Id? : number;\r\n RowVersion? : Date;\r\n Success? : boolean;\r\n Warnings? : string[];\r\n}\r\n\r\nexport interface ColumnDescriptor {\r\n Display? : Display;\r\n Expression? : string;\r\n FieldName? : string;\r\n IsComputed? : boolean;\r\n IsFilterEnabled? : boolean;\r\n IsNumericExpression? : boolean;\r\n Name? : string;\r\n Property? : string;\r\n TableAlias? : string;\r\n ToolTipProperty? : string;\r\n}\r\n\r\nexport interface AggregationValue {\r\n Key? : string;\r\n Value? : any;\r\n}\r\n\r\nexport interface ActionDescriptor {\r\n ActionDisplay? : ActionDisplay;\r\n Description? : string;\r\n FormDescriptor? : Section[];\r\n Icon? : string;\r\n IconUrl? : string;\r\n Label? : string;\r\n Name? : string;\r\n RequestType? : string;\r\n}\r\n\r\nexport interface TrackRecordProperty {\r\n CreatedBy? : string;\r\n CreationDate? : Date;\r\n CreationDateString? : string;\r\n Id? : number;\r\n ModificationDate? : Date;\r\n ModificationDateString? : string;\r\n ModifiedBy? : string;\r\n}\r\n\r\nexport interface SaveResults<TResult> extends SaveResult {\r\n SaveErrorEntities? : TResult[];\r\n}\r\n\r\nexport interface RunActionContext {\r\n Action? : ActionDescriptor;\r\n CorrelationId? : string;\r\n EntityIds? : number[];\r\n EntityKey? : string;\r\n File? : any;\r\n FileId? : number;\r\n FormValue? : any;\r\n RequestId? : number;\r\n}\r\n\r\nexport interface PagedList<T> {\r\n Aggregates? : AggregationValue[];\r\n Skip? : number;\r\n Take? : number;\r\n TotalRowCount? : number;\r\n Values? : T[];\r\n}\r\n\r\nexport enum ImageFormats {\r\n Undefined = 0,\r\n JPG = 1,\r\n PNG = 2,\r\n GIF = 3,\r\n TIFF = 4,\r\n BMP = 5,\r\n SVG = 6,\r\n}\r\n\r\nexport interface FilterDescriptor extends FieldDescriptor {\r\n DisplayImage? : boolean;\r\n}\r\n\r\nexport interface ExportModel<T> {\r\n Columns? : ColumnDescriptor[];\r\n Filter? : T;\r\n}\r\n\r\nexport interface EntityWithSpecifics<TResult> {\r\n Entity? : TResult;\r\n Tabs? : TabToSave<TResult>[];\r\n}\r\n\r\nexport interface EntityViewModelWithFields<T> {\r\n FieldSections? : Section[];\r\n SpecificSection? : any;\r\n ViewModel? : T;\r\n}\r\n\r\nexport enum TextSearch {\r\n Contains = 0,\r\n StartsWith = 1,\r\n EndsWith = 2,\r\n}\r\n\r\nexport enum ExportType {\r\n CSV = 0,\r\n EXCEL = 1,\r\n}\r\n\r\nexport enum AggregateFunction {\r\n Count = 0,\r\n Sum = 1,\r\n Min = 2,\r\n Max = 3,\r\n Avg = 4,\r\n}\r\n\r\nexport enum ActionResultStatus {\r\n OK = 0,\r\n KO = 1,\r\n}\r\n\r\n","import { Utilities } from '@dflat-core/web/core';\r\nimport { ComponentRef, TemplateRef, Type } from '@angular/core';\r\n\r\nimport { ActionDescriptor, ColumnDescriptor, EntityViewModel, EntityViewModelWithFields, FieldDescriptor, FieldValidators, FilterDescriptor, FilterViewModel } from './model/interface.generated';\r\n\r\nexport interface IIdentifiable {\r\n Id?: number;\r\n}\r\n\r\nexport class UserUpdatedMessage {\r\n constructor(public userKey: string) { }\r\n}\r\n\r\nexport interface IUserCredential extends IIdentifiable {\r\n AccessToken: string; \r\n RefreshToken: string; \r\n Username?: string; \r\n FirstName?: string; \r\n LastName?: string;\r\n Email?: string;\r\n IsAdmin?: boolean;\r\n IsDelivery?: boolean;\r\n IsPartner?: boolean;\r\n PhoneNumber?: string;\r\n IsActive?: boolean;\r\n IsPartnerActive?: boolean;\r\n IsDeliveryActive?: boolean;\r\n\r\n Id?: number;\r\n CompanyId?: number;\r\n Permissions: string[];\r\n ProfileImageUrl: string;\r\n AvatarUrl: string;\r\n\r\n}\r\n/** Fournisseur d'identité externe proposé à l'écran de connexion (Account/GetLoginProviders). */\r\nexport interface IExternalLoginProvider {\r\n /** Google, Microsoft ou Apple. */\r\n Provider: string;\r\n /** Identifiant de l'application chez le fournisseur. */\r\n ClientId: string;\r\n /** Microsoft seulement : locataire du point d'accès (common par défaut). */\r\n TenantId?: string;\r\n}\r\n\r\nexport class User implements IUserCredential {\r\n \r\n public AccessToken: string;\r\n public RefreshToken: string;\r\n public Username?: string;\r\n public FirstName?: string;\r\n public LastName?: string;\r\n public Email?: string;\r\n public PhoneNumber?: string;\r\n public IsAdmin?: boolean;\r\n public IsDelivery?: boolean;\r\n public IsPartner?: boolean;\r\n public Id?: number;\r\n public CompanyId?: number;\r\n public Permissions: string[];\r\n public ProfileImageUrl: string;\r\n public IsActive?: boolean;\r\n public IsPartnerActive?: boolean;\r\n public IsDeliveryActive?: boolean;\r\n public IsConnected: boolean = false;\r\n public AvatarUrl: string;\r\n \r\n public constructor(data: IUserCredential) {\r\n this.Username = data.Username;\r\n this.FirstName = data.FirstName;\r\n this.LastName = data.LastName;\r\n this.Email = data.Email;\r\n this.PhoneNumber = data.PhoneNumber;\r\n this.ProfileImageUrl = data.ProfileImageUrl;\r\n this.IsAdmin = data.IsAdmin;\r\n this.IsPartner = data.IsPartner;\r\n this.IsDelivery = data.IsDelivery;\r\n this.IsAdmin = data.IsAdmin;\r\n this.IsPartner = data.IsPartner;\r\n this.IsDelivery = data.IsDelivery;\r\n this.IsActive = data.IsActive;\r\n this.IsPartnerActive = data.IsPartnerActive;\r\n this.IsDeliveryActive = data.IsDeliveryActive;\r\n this.Id = data.Id;\r\n this.CompanyId = data.CompanyId;\r\n this.AccessToken = data.AccessToken;\r\n this.AvatarUrl = data.AvatarUrl;\r\n }\r\n \r\n\r\n public getName() {\r\n return this.FirstName + ' ' + this.LastName;\r\n }\r\n\r\n \r\n}\r\n\r\n\r\nexport interface INotification {\r\n id:string;\r\n content: string;\r\n class: string;\r\n link: string;\r\n entityType:string;\r\n entityId?:number;\r\n}\r\n \r\nexport class Notification implements INotification {\r\n public id:string;\r\n public content: string;\r\n public class: string;\r\n public link: string;\r\n public entityType:string;\r\n public entityId?:number\r\n public constructor(data: Partial<INotification> = {}) {\r\n this.id = data.id || '';\r\n this.content = data.content || '';\r\n this.class = data.class || '';\r\n this.link = data.link || '';\r\n this.entityType = data.entityType || '';\r\n this.entityId = data.entityId;\r\n }\r\n}\r\n\r\nexport class ChannelData<T> {\r\n Channel: string;\r\n Data: T;\r\n\r\n public constructor(channel: string, data: T) {\r\n this.Channel= channel;\r\n this.Data= data;\r\n }\r\n}\r\n\r\nexport class IMessage {\r\n Channel: string;\r\n Data: any;\r\n}\r\n\r\nexport class Message implements IMessage \r\n{\r\n Channel: string;\r\n Data: any;\r\n\r\n public constructor(channel: string, data: any) {\r\n this.Channel= channel;\r\n this.Data= data;\r\n }\r\n}\r\nexport interface NumberDictionary<T> {\r\n [Key: number]: T;\r\n}\r\nexport interface Dictionary<T> {\r\n [Key: string]: T;\r\n}\r\n\r\n\r\n\r\nexport class NumberDictionnaryWrapper<T> {\r\n\r\n dictionary: NumberDictionary<T> = {};\r\n get(key: number) {\r\n return this.dictionary[key];\r\n }\r\n\r\n containsKey(key: number) {\r\n if (typeof this.dictionary[key] === \"undefined\") {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n\r\nexport class DictionnaryWrapper<T> {\r\n\r\n dictionary: Dictionary<T> = {};\r\n get(key: string) {\r\n return this.dictionary[key];\r\n }\r\n\r\n containsKey(key: string) {\r\n if (typeof this.dictionary[key] === \"undefined\") {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n getPartKey(key: string) {\r\n\r\n if (typeof this.dictionary[key] === \"undefined\" ) {\r\n let keyFound = Object.keys(this.dictionary).find(obj => key.includes(obj));\r\n if(keyFound) {\r\n key = keyFound\r\n }\r\n }\r\n\r\n return this.dictionary[key];\r\n }\r\n\r\n containsKeyOrPartKey(key: string) {\r\n let routeFound = Object.keys(this.dictionary).find(obj => key.includes(obj));\r\n \r\n if(!Utilities.IsNil(routeFound)){\r\n return true;\r\n }\r\n\r\n if (typeof this.dictionary[key] === \"undefined\" ) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n getValues() {\r\n return Object.keys(this.dictionary).map(key => this.dictionary[key]);\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n// export interface FilterDescriptor {\r\n// FieldValidators?: FieldValidators;\r\n// Label?: string;\r\n// FilterType?: FilterType;\r\n// PropertyName?: string;\r\n// DisplayMember?: string;\r\n// ValueMember?: string;\r\n// Data?: any;\r\n// Highlight?: boolean;\r\n// ToolTip?: string;\r\n// IsStatic?: boolean;\r\n// Required?: boolean;\r\n// NotDefaultRequired?: boolean;\r\n// ReadOnly?: boolean;\r\n// IsHidden?: boolean;\r\n// KeepPlace?: boolean;\r\n// IsConditioning?: boolean;\r\n// IsConditional?: boolean;\r\n// ConditioningField?: string;\r\n// ConditioningFieldValue?: number;\r\n// BoolConditioningFieldValue?: boolean;\r\n// OriginalData?: any;\r\n// CascadeDependency?: boolean;\r\n// CascadeDependencyProperty?: string;\r\n// FilterDistinct?: boolean;\r\n// MultipleSelection?: boolean;\r\n// HideSelected?: boolean;\r\n// ColumnSpan?: ColumnSpans;\r\n// ColumnIndex?: number;\r\n// InputType?: string;\r\n// CurrentFilters?: {};\r\n\r\n// ModalEntityKey?: string;\r\n// ModalPropertyName?: string;\r\n// ModalPropertyValue?: string;\r\n// ModalTitle?: string;\r\n// }\r\n\r\n\r\n\r\nexport interface SpecificSection {\r\n Name?: string,\r\n IconUrl?:string,\r\n Template?: Type<any> | TemplateRef<any> | ComponentRef<any> | any,\r\n Context?: {},\r\n Data?: any[],\r\n Component?: any,\r\n refreshFunction?: () => void\r\n}\r\nexport interface SectionError {\r\n Name?: string,\r\n FieldValidators?: FieldValidators;\r\n Errors?: string[]\r\n}\r\n\r\nexport interface IFilterDescriptorExtra {\r\n Field?: FilterDescriptor;\r\n DisplayedValue?: string;\r\n}\r\n\r\nexport interface TextZoneButtonEvent {\r\n Field: FieldDescriptor;\r\n Value: string;\r\n }\r\n \r\n export interface FieldEvent {\r\n Field: FieldDescriptor;\r\n Event: Event;\r\n }\r\n \r\n export interface EntityConfig {\r\n actions: ActionDescriptor[];\r\n columns: ColumnDescriptor[];\r\n emptyFilter: FilterViewModel;\r\n filterDescriptors: FilterDescriptor[];\r\n viewModel: EntityViewModelWithFields<EntityViewModel>;\r\n }\r\n\r\n // export interface CachedConfig {\r\n // timestamp: number;\r\n // config : EntityConfig;\r\n // }\r\n\r\n export interface PropertyEditorEvent {\r\n field: FieldDescriptor;\r\n value: any;\r\n type: 'value' | 'pending' | 'file' | 'selector' | 'button'| 'reset';\r\n }","export class HistoryItem {\r\n date: string;\r\n hour: string;\r\n url: string;\r\n icon1: string;\r\n menu1: string;\r\n icon2: string;\r\n menu2: string;\r\n}\r\n\r\nexport enum FilterOperator {\r\n Contains = 0,\r\n StartsWith = 1,\r\n EndsWith = 2,\r\n Equals = 3\r\n}\r\nexport interface FilterClause {\r\n PropertyName : string;\r\n FilterValue : string;\r\n Operator : FilterOperator\r\n}\r\n\r\nexport interface FilterRow {\r\n ClausesByPropertyName : Map<string, FilterClause>;\r\n}\r\n\r\nexport interface FilterQuery {\r\n Rows : FilterRow[];\r\n}\r\n\r\nexport enum CustomFieldTypes {\r\n String = 0,\r\n Integer = 1,\r\n Date = 2,\r\n ComboBox = 3,\r\n Checkbox = 4,\r\n Email = 5,\r\n WeekNumber = 6,\r\n Text = 7,\r\n Custom = 8,\r\n Number = 9,\r\n}"],"mappings":"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"}