@verisoft/core 20.1.1 → 20.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/fesm2022/verisoft-core.mjs +465 -0
  2. package/fesm2022/verisoft-core.mjs.map +1 -0
  3. package/index.d.ts +135 -0
  4. package/package.json +16 -2
  5. package/.eslintrc.json +0 -43
  6. package/jest.config.ts +0 -22
  7. package/ng-package.json +0 -7
  8. package/project.json +0 -36
  9. package/src/index.ts +0 -3
  10. package/src/lib/index.ts +0 -1
  11. package/src/lib/models/all-item.datasource.ts +0 -5
  12. package/src/lib/models/base-http.models.ts +0 -144
  13. package/src/lib/models/constants.ts +0 -8
  14. package/src/lib/models/datasource.model.ts +0 -77
  15. package/src/lib/models/environment.model.ts +0 -5
  16. package/src/lib/models/error-provider.model.ts +0 -20
  17. package/src/lib/models/event.models.ts +0 -7
  18. package/src/lib/models/index.ts +0 -7
  19. package/src/lib/services/base-http.service.ts +0 -114
  20. package/src/lib/services/error-provider.service.ts +0 -33
  21. package/src/lib/services/index.ts +0 -3
  22. package/src/lib/services/local-storage.service.ts +0 -13
  23. package/src/lib/services/storage.service.ts +0 -13
  24. package/src/lib/utils/array.utils.spec.ts +0 -49
  25. package/src/lib/utils/array.utils.ts +0 -54
  26. package/src/lib/utils/clear.utils.ts +0 -53
  27. package/src/lib/utils/data.utils.ts +0 -34
  28. package/src/lib/utils/date.utils.ts +0 -30
  29. package/src/lib/utils/index.ts +0 -6
  30. package/src/lib/utils/keyOrFn.utils.ts +0 -15
  31. package/src/lib/utils/object.utils.spec.ts +0 -69
  32. package/src/lib/utils/object.utils.ts +0 -47
  33. package/src/test-setup.ts +0 -8
  34. package/tsconfig.json +0 -29
  35. package/tsconfig.lib.json +0 -17
  36. package/tsconfig.lib.prod.json +0 -9
  37. package/tsconfig.spec.json +0 -16
@@ -0,0 +1,465 @@
1
+ import { HttpParams } from '@angular/common/http';
2
+ import * as i0 from '@angular/core';
3
+ import { InjectionToken, inject, Injectable } from '@angular/core';
4
+ import { map, isObservable, of } from 'rxjs';
5
+ import { TranslateService } from '@ngx-translate/core';
6
+ import moment from 'moment';
7
+
8
+ const DEFAULT_PAGE_SIZE = 50;
9
+ const DEFAULT_LAZYLOAD_OPTIONS = {
10
+ offset: 0,
11
+ limit: DEFAULT_PAGE_SIZE,
12
+ };
13
+
14
+ /* eslint-disable @typescript-eslint/no-explicit-any */
15
+ const BASE_URL_PATH = new InjectionToken('BASE_URL_PATH');
16
+ function requestParamsToHttpParams(requestParams, httpParams = new HttpParams()) {
17
+ if (requestParams.limit != undefined) {
18
+ httpParams = httpParams.append('limit', requestParams.limit.toString());
19
+ }
20
+ if (requestParams.offset != undefined) {
21
+ httpParams = httpParams.append('offset', requestParams.offset.toString());
22
+ }
23
+ if (requestParams.id != '' && requestParams.id != undefined) {
24
+ httpParams = httpParams.append('id', requestParams.id);
25
+ }
26
+ httpParams = getFilter(requestParams, httpParams);
27
+ httpParams = getSort(requestParams, httpParams);
28
+ return httpParams;
29
+ }
30
+ function getFilter(requestParams, httpParams) {
31
+ if (!requestParams.filter) {
32
+ return httpParams;
33
+ }
34
+ Object.keys(requestParams?.filter).forEach((key) => {
35
+ const value = requestParams.filter?.[key];
36
+ if (value != undefined && !(typeof value === 'string' && value.trim() === "")) {
37
+ if (Array.isArray(value)) {
38
+ value.forEach((valueItem) => {
39
+ httpParams = httpParams.append('Filter.' + key, valueItem);
40
+ });
41
+ }
42
+ else {
43
+ httpParams = httpParams.append('Filter.' + key, value);
44
+ }
45
+ }
46
+ });
47
+ return httpParams;
48
+ }
49
+ function getSort(requestParams, httpParams) {
50
+ if (!requestParams.sort) {
51
+ return httpParams;
52
+ }
53
+ requestParams.sort?.forEach((sort) => {
54
+ httpParams = httpParams
55
+ .append('Sort.Field', sort.field)
56
+ .append('Sort.Direction', sort.direction);
57
+ });
58
+ return httpParams;
59
+ }
60
+ function saveFile(response) {
61
+ const fileName = response.headers
62
+ .get('Content-Disposition')
63
+ ?.split(';')[1]
64
+ .split('=')[1];
65
+ const blob = response.body;
66
+ const a = document.createElement('a');
67
+ a.download = fileName ?? 'undefined';
68
+ a.href = window.URL.createObjectURL(blob);
69
+ a.click();
70
+ }
71
+ var SortDirection;
72
+ (function (SortDirection) {
73
+ SortDirection["asc"] = "asc";
74
+ SortDirection["desc"] = "desc";
75
+ })(SortDirection || (SortDirection = {}));
76
+ const DEFAULT_SEARCH_LIMIT = 50;
77
+ const DEFAULT_SEARCH_PARAMS = {
78
+ offset: 0,
79
+ limit: DEFAULT_SEARCH_LIMIT,
80
+ id: '',
81
+ };
82
+ function normalizeRequest(request, minLimit = undefined) {
83
+ return {
84
+ offset: request?.offset ?? 0,
85
+ limit: !request?.limit
86
+ ? DEFAULT_SEARCH_LIMIT
87
+ : minLimit && request.limit < minLimit
88
+ ? minLimit
89
+ : request.limit,
90
+ filter: request?.filter,
91
+ sort: request?.sort,
92
+ };
93
+ }
94
+
95
+ class ClearUtils {
96
+ static recursiveObjectAttributesTransformation(obj) {
97
+ ClearUtils.recursiveObjectAttributesTraversal(obj, ClearUtils.transformEmptyStringToNullStringFn);
98
+ }
99
+ static recursiveObjectAttributesDeletation(obj) {
100
+ ClearUtils.recursiveObjectAttributesTraversal(obj, ClearUtils.deleteEmptyStringToNullStringFn);
101
+ }
102
+ static transformEmptyStringToNullStringFn(obj, key) {
103
+ if (typeof obj[key] === 'string' && obj[key] === '') {
104
+ obj[key] = null;
105
+ }
106
+ }
107
+ static deleteEmptyStringToNullStringFn(obj, key) {
108
+ if (obj[key] === '' || obj[key] === null || obj[key] === undefined) {
109
+ delete obj[key];
110
+ }
111
+ }
112
+ static recursiveObjectAttributesTraversal(obj, transformationFn) {
113
+ if (obj === null ||
114
+ transformationFn === null ||
115
+ typeof transformationFn !== 'function') {
116
+ return;
117
+ }
118
+ Object.keys(obj).forEach((key) => {
119
+ transformationFn(obj, key);
120
+ if (typeof obj[key] === 'object') {
121
+ this.recursiveObjectAttributesTraversal(obj[key], transformationFn);
122
+ if (!Object.keys(obj[key]).length) {
123
+ delete obj[key];
124
+ }
125
+ }
126
+ });
127
+ }
128
+ }
129
+
130
+ class BaseHttpService {
131
+ constructor(http, basePath, entityName) {
132
+ this.http = http;
133
+ this.basePath = basePath;
134
+ this.entityName = entityName;
135
+ this.basePath = basePath;
136
+ }
137
+ get apiPath() {
138
+ return this.basePath ? this.basePath + this.entityName : this.entityName;
139
+ }
140
+ fetchList(requestParams) {
141
+ const params = requestParamsToHttpParams(requestParams);
142
+ return this.http.get(this.apiPath, { params }).pipe(map((response) => {
143
+ response.limit = requestParams.limit;
144
+ return response;
145
+ }));
146
+ }
147
+ getData$(entityName, searchTerm, lazyLoad) {
148
+ const filter = { [entityName]: searchTerm };
149
+ const params = lazyLoad
150
+ ? requestParamsToHttpParams({
151
+ ...DEFAULT_SEARCH_PARAMS,
152
+ offset: lazyLoad.offset,
153
+ limit: lazyLoad.limit,
154
+ filter,
155
+ })
156
+ : requestParamsToHttpParams({
157
+ ...DEFAULT_SEARCH_PARAMS,
158
+ filter,
159
+ });
160
+ return this.http.get(this.apiPath, { params });
161
+ }
162
+ get(id) {
163
+ const url = `${this.apiPath}/${id}`;
164
+ return this.http.get(url);
165
+ }
166
+ post(entity) {
167
+ return this.http.post(this.apiPath, entity);
168
+ }
169
+ put(id, entity) {
170
+ const url = `${this.apiPath}/${id}`;
171
+ return this.http.put(url, entity);
172
+ }
173
+ delete(id) {
174
+ const url = `${this.apiPath}/${id}`;
175
+ return this.http.delete(url);
176
+ }
177
+ export(requestParams) {
178
+ const httpParams = requestParamsToHttpParams(requestParams);
179
+ const url = `${this.apiPath}/export`;
180
+ return this.http.get(url, { responseType: 'blob', params: httpParams });
181
+ }
182
+ removeRange(entity) {
183
+ return this.http.delete(this.apiPath, {
184
+ body: entity,
185
+ });
186
+ }
187
+ createParams(requestParams) {
188
+ const sorter = this.createSorter(requestParams);
189
+ const filter = JSON.parse(JSON.stringify(requestParams.filter));
190
+ const transformedFilter = filter;
191
+ ClearUtils.recursiveObjectAttributesDeletation(transformedFilter);
192
+ return {
193
+ paging: {
194
+ offset: requestParams.offset,
195
+ limit: requestParams.limit,
196
+ },
197
+ ...(sorter && { sorting: sorter }),
198
+ ...(transformedFilter && { filter: transformedFilter }),
199
+ };
200
+ }
201
+ createSorter(requestParams) {
202
+ if (requestParams?.sort?.length === 1) {
203
+ const sorter = requestParams.sort[0];
204
+ return {
205
+ sortField: sorter.field,
206
+ sortOrder: sorter.direction,
207
+ };
208
+ }
209
+ return null;
210
+ }
211
+ }
212
+
213
+ function convertDatasource(datasource, basePath, httpClient) {
214
+ if (!datasource) {
215
+ throw new Error('Datasource is not defined');
216
+ }
217
+ if (typeof datasource === 'string') {
218
+ const service = new BaseHttpService(httpClient, basePath, datasource);
219
+ return (requestParams) => service.fetchList(requestParams);
220
+ }
221
+ if (datasource instanceof BaseHttpService) {
222
+ return (requestParams) => datasource.fetchList(requestParams);
223
+ }
224
+ if (isObservable(datasource)) {
225
+ return () => datasource.pipe(map(convertArrayToPage));
226
+ }
227
+ const allItemDatasource = datasource;
228
+ if (allItemDatasource.getData$) {
229
+ return () => allItemDatasource
230
+ .getData$()
231
+ .pipe(map((data) => convertArrayToPage(data)));
232
+ }
233
+ const page = datasource;
234
+ if (page.data) {
235
+ return () => of(page);
236
+ }
237
+ if (Array.isArray(datasource)) {
238
+ return () => of(convertArrayToPage(datasource));
239
+ }
240
+ throw new Error('Datasource is not supported');
241
+ }
242
+ function convertArrayToPage(data) {
243
+ if (Array.isArray(data)) {
244
+ return {
245
+ data: data ?? [],
246
+ total: data?.length ?? 0,
247
+ limit: data?.length ?? DEFAULT_PAGE_SIZE,
248
+ offset: 0,
249
+ };
250
+ }
251
+ return data;
252
+ }
253
+
254
+ const ERROR_PROVIDER_TOKEN = new InjectionToken('ERROR_PROVIDER_TOKEN');
255
+ var CustomValidationCodes;
256
+ (function (CustomValidationCodes) {
257
+ })(CustomValidationCodes || (CustomValidationCodes = {}));
258
+ const ErrorMap = {
259
+ required: () => `VALIDATIONS.REQUIRED`,
260
+ email: () => `VALIDATIONS.EMAIL`,
261
+ minLength: () => 'VALIDATIONS.MIN_LENGTH',
262
+ maxLength: () => 'VALIDATIONS.MAX_LENGTH',
263
+ };
264
+
265
+ class LocalStorageService {
266
+ setItem(key, value) {
267
+ localStorage.setItem(key, value);
268
+ }
269
+ getItem(key) {
270
+ return localStorage.getItem(key);
271
+ }
272
+ removeItem(key) {
273
+ localStorage.removeItem(key);
274
+ }
275
+ }
276
+
277
+ class LocalizableErrorProviderService {
278
+ constructor() {
279
+ this.translateService = inject(TranslateService);
280
+ this.errors = ErrorMap;
281
+ }
282
+ mapError(errors) {
283
+ const error = this.getFirstValue(errors);
284
+ if (!error || !error.key) {
285
+ return of(undefined);
286
+ }
287
+ try {
288
+ const value = this.errors[error.key](error.value);
289
+ return this.translateService.get(value);
290
+ }
291
+ catch (_) {
292
+ throw new Error(`Key "${error.key}" is not specified in the current error map!`);
293
+ }
294
+ }
295
+ getFirstValue(errors) {
296
+ const key = Object.keys(errors)[0];
297
+ const value = errors[key];
298
+ return { key, value };
299
+ }
300
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: LocalizableErrorProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
301
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: LocalizableErrorProviderService, providedIn: 'root' }); }
302
+ }
303
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: LocalizableErrorProviderService, decorators: [{
304
+ type: Injectable,
305
+ args: [{
306
+ providedIn: 'root'
307
+ }]
308
+ }] });
309
+
310
+ function keyOrFn(keyOrFn, row) {
311
+ if (keyOrFn instanceof Function) {
312
+ return keyOrFn(row);
313
+ }
314
+ else if (typeof keyOrFn === 'string') {
315
+ const value = row[keyOrFn];
316
+ if (value) {
317
+ return value;
318
+ }
319
+ }
320
+ else if (typeof keyOrFn === 'boolean') {
321
+ return keyOrFn;
322
+ }
323
+ return '';
324
+ }
325
+
326
+ function sortBy(items, selector, ascending = true) {
327
+ return [...items].sort((item, other) => {
328
+ const value = selector(item);
329
+ const otherValue = selector(other);
330
+ const direction = ascending ? 1 : -1;
331
+ if (value == undefined && other == undefined) {
332
+ return 0;
333
+ }
334
+ if (value == undefined) {
335
+ return -1 * direction;
336
+ }
337
+ if (otherValue == undefined) {
338
+ return 1 * direction;
339
+ }
340
+ if (value < otherValue) {
341
+ return -1 * direction;
342
+ }
343
+ if (value > otherValue) {
344
+ return 1 * direction;
345
+ }
346
+ return 0;
347
+ });
348
+ }
349
+ function getValueByPath(obj, path) {
350
+ if (path == undefined || path == '') {
351
+ return obj;
352
+ }
353
+ return path.split('.').reduce((acc, key) => {
354
+ if (acc && typeof acc === 'object' && key in acc) {
355
+ return acc[key];
356
+ }
357
+ return undefined;
358
+ }, obj);
359
+ }
360
+
361
+ function isArrayIntersected(array1, array2) {
362
+ const filteredArray = array1.filter(value => array2.includes(value));
363
+ return filteredArray.length > 0;
364
+ }
365
+ function multiSort(values, sorts) {
366
+ return [...values].sort((a, b) => {
367
+ for (const sort of sorts) {
368
+ const { field, direction } = sort;
369
+ const valueA = getValueByPath(a, field);
370
+ const valueB = getValueByPath(b, field);
371
+ if (valueA !== valueB) {
372
+ if (isComparable(valueA) && isComparable(valueB)) {
373
+ if (typeof valueA === 'string' && typeof valueB === 'string') {
374
+ const baseCompare = valueA.localeCompare(valueB, undefined, {
375
+ sensitivity: 'base',
376
+ });
377
+ if (baseCompare === 0) {
378
+ return valueA < valueB ? -1 : valueA > valueB ? 1 : 0;
379
+ }
380
+ return direction === 'asc' ? baseCompare : -baseCompare;
381
+ }
382
+ else {
383
+ if (valueA < valueB) {
384
+ return direction === 'asc' ? -1 : 1;
385
+ }
386
+ if (valueA > valueB) {
387
+ return direction === 'asc' ? 1 : -1;
388
+ }
389
+ }
390
+ }
391
+ }
392
+ }
393
+ return 0;
394
+ });
395
+ }
396
+ function isComparable(value) {
397
+ return typeof value === 'string'
398
+ || typeof value === 'number'
399
+ || typeof value === 'boolean'
400
+ || value instanceof Date;
401
+ }
402
+
403
+ function transformData(data) {
404
+ if (data) {
405
+ if (moment.isMoment(data)) {
406
+ return moment(data)
407
+ .toDate()
408
+ .toISOString();
409
+ }
410
+ else if (data instanceof Date) {
411
+ return data.toISOString();
412
+ }
413
+ }
414
+ return data;
415
+ }
416
+ function convertToDate(data) {
417
+ if (data) {
418
+ if (!isNaN(Date.parse(data))) {
419
+ return new Date(data);
420
+ }
421
+ }
422
+ return data;
423
+ }
424
+ function convertToDateTime(data) {
425
+ if (data) {
426
+ if (!isNaN(Date.parse(data))) {
427
+ const date = new Date(data);
428
+ return moment(date).format('DD.MM.yyyy HH:mm');
429
+ }
430
+ }
431
+ return data;
432
+ }
433
+
434
+ const czechDateFormat = new Intl.DateTimeFormat("cs-CZ", {
435
+ day: "numeric",
436
+ month: "numeric",
437
+ year: "numeric"
438
+ });
439
+ const czechDateTimeFormat = new Intl.DateTimeFormat("cs-CZ", {
440
+ second: "numeric",
441
+ minute: "numeric",
442
+ hour: "numeric",
443
+ day: "numeric",
444
+ month: "numeric",
445
+ year: "numeric"
446
+ });
447
+ function toCzechDateTimeString(value, time = false) {
448
+ if (!value) {
449
+ return "";
450
+ }
451
+ if (typeof value === "string") {
452
+ value = new Date(value);
453
+ }
454
+ if (time) {
455
+ return czechDateTimeFormat.format(value);
456
+ }
457
+ return czechDateFormat.format(value);
458
+ }
459
+
460
+ /**
461
+ * Generated bundle index. Do not edit.
462
+ */
463
+
464
+ export { BASE_URL_PATH, BaseHttpService, ClearUtils, CustomValidationCodes, DEFAULT_LAZYLOAD_OPTIONS, DEFAULT_PAGE_SIZE, DEFAULT_SEARCH_LIMIT, DEFAULT_SEARCH_PARAMS, ERROR_PROVIDER_TOKEN, ErrorMap, LocalStorageService, LocalizableErrorProviderService, SortDirection, convertDatasource, convertToDate, convertToDateTime, getValueByPath, isArrayIntersected, keyOrFn, multiSort, normalizeRequest, requestParamsToHttpParams, saveFile, sortBy, toCzechDateTimeString, transformData };
465
+ //# sourceMappingURL=verisoft-core.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verisoft-core.mjs","sources":["../tmp-esm2022/lib/models/constants.js","../tmp-esm2022/lib/models/base-http.models.js","../tmp-esm2022/lib/utils/clear.utils.js","../tmp-esm2022/lib/services/base-http.service.js","../tmp-esm2022/lib/models/datasource.model.js","../tmp-esm2022/lib/models/error-provider.model.js","../tmp-esm2022/lib/services/local-storage.service.js","../tmp-esm2022/lib/services/error-provider.service.js","../tmp-esm2022/lib/utils/keyOrFn.utils.js","../tmp-esm2022/lib/utils/object.utils.js","../tmp-esm2022/lib/utils/array.utils.js","../tmp-esm2022/lib/utils/data.utils.js","../tmp-esm2022/lib/utils/date.utils.js","../tmp-esm2022/verisoft-core.js"],"sourcesContent":["export const DEFAULT_PAGE_SIZE = 50;\nexport const DEFAULT_LAZYLOAD_OPTIONS = {\n offset: 0,\n limit: DEFAULT_PAGE_SIZE,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvY29yZS9zcmMvbGliL21vZGVscy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO0FBRXBDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFrQjtJQUNyRCxNQUFNLEVBQUUsQ0FBQztJQUNULEtBQUssRUFBRSxpQkFBaUI7Q0FDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhenlMb2FkRXZlbnQgfSBmcm9tICcuL2V2ZW50Lm1vZGVscyc7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9QQUdFX1NJWkUgPSA1MDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBWllMT0FEX09QVElPTlM6IExhenlMb2FkRXZlbnQgPSB7XHJcbiAgb2Zmc2V0OiAwLFxyXG4gIGxpbWl0OiBERUZBVUxUX1BBR0VfU0laRSxcclxufTtcclxuIl19","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpParams } from '@angular/common/http';\nimport { InjectionToken } from '@angular/core';\nexport const BASE_URL_PATH = new InjectionToken('BASE_URL_PATH');\nexport function requestParamsToHttpParams(requestParams, httpParams = new HttpParams()) {\n if (requestParams.limit != undefined) {\n httpParams = httpParams.append('limit', requestParams.limit.toString());\n }\n if (requestParams.offset != undefined) {\n httpParams = httpParams.append('offset', requestParams.offset.toString());\n }\n if (requestParams.id != '' && requestParams.id != undefined) {\n httpParams = httpParams.append('id', requestParams.id);\n }\n httpParams = getFilter(requestParams, httpParams);\n httpParams = getSort(requestParams, httpParams);\n return httpParams;\n}\nfunction getFilter(requestParams, httpParams) {\n if (!requestParams.filter) {\n return httpParams;\n }\n Object.keys(requestParams?.filter).forEach((key) => {\n const value = requestParams.filter?.[key];\n if (value != undefined && !(typeof value === 'string' && value.trim() === \"\")) {\n if (Array.isArray(value)) {\n value.forEach((valueItem) => {\n httpParams = httpParams.append('Filter.' + key, valueItem);\n });\n }\n else {\n httpParams = httpParams.append('Filter.' + key, value);\n }\n }\n });\n return httpParams;\n}\nfunction getSort(requestParams, httpParams) {\n if (!requestParams.sort) {\n return httpParams;\n }\n requestParams.sort?.forEach((sort) => {\n httpParams = httpParams\n .append('Sort.Field', sort.field)\n .append('Sort.Direction', sort.direction);\n });\n return httpParams;\n}\nexport function saveFile(response) {\n const fileName = response.headers\n .get('Content-Disposition')\n ?.split(';')[1]\n .split('=')[1];\n const blob = response.body;\n const a = document.createElement('a');\n a.download = fileName ?? 'undefined';\n a.href = window.URL.createObjectURL(blob);\n a.click();\n}\nexport var SortDirection;\n(function (SortDirection) {\n SortDirection[\"asc\"] = \"asc\";\n SortDirection[\"desc\"] = \"desc\";\n})(SortDirection || (SortDirection = {}));\nexport const DEFAULT_SEARCH_LIMIT = 50;\nexport const DEFAULT_SEARCH_PARAMS = {\n offset: 0,\n limit: DEFAULT_SEARCH_LIMIT,\n id: '',\n};\nexport function normalizeRequest(request, minLimit = undefined) {\n return {\n offset: request?.offset ?? 0,\n limit: !request?.limit\n ? DEFAULT_SEARCH_LIMIT\n : minLimit && request.limit < minLimit\n ? minLimit\n : request.limit,\n filter: request?.filter,\n sort: request?.sort,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1odHRwLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2NvcmUvc3JjL2xpYi9tb2RlbHMvYmFzZS1odHRwLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBUyxlQUFlLENBQUMsQ0FBQztBQUV6RSxNQUFNLFVBQVUseUJBQXlCLENBQ3ZDLGFBQXdDLEVBQ3hDLGFBQXlCLElBQUksVUFBVSxFQUFFO0lBRXpDLElBQUksYUFBYSxDQUFDLEtBQUssSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNyQyxVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxJQUFJLGFBQWEsQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFLENBQUM7UUFDdEMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsSUFBSSxhQUFhLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxhQUFhLENBQUMsRUFBRSxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQzVELFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsRUFBUyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFVBQVUsR0FBRyxTQUFTLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2xELFVBQVUsR0FBRyxPQUFPLENB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LEVBQUUsRUFBRTtDQUNQLENBQUM7QUFFRixNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLE9BQWtDLEVBQ2xDLFdBQStCLFNBQVM7SUFFeEMsT0FBTztRQUNMLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7UUFDNUIsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUs7WUFDcEIsQ0FBQyxDQUFDLG9CQUFvQjtZQUN0QixDQUFDLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEdBQUcsUUFBUTtnQkFDdEMsQ0FBQyxDQUFDLFFBQVE7Z0JBQ1YsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLO1FBQ2pCLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTTtRQUN2QixJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUk7S0FDcEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBIdHRwUGFyYW1zLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgQkFTRV9VUkxfUEFUSCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdCQVNFX1VSTF9QQVRIJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXF1ZXN0UGFyYW1zVG9IdHRwUGFyYW1zPFQ+KFxuICByZXF1ZXN0UGFyYW1zOiBQYXJ0aWFsPFJlcXVlc3RQYXJhbXM8VD4+LFxuICBodHRwUGFyYW1zOiBIdHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxuKTogSHR0cFBhcmFtcyB7XG4gIGlmIChyZXF1ZXN0UGFyYW1zLmxpbWl0ICE9IHVuZGVmaW5lZCkge1xuICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLmFwcGVuZCgnbGltaXQnLCByZXF1ZXN0UGFyYW1zLmxpbWl0LnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgaWYgKHJlcXVlc3RQYXJhbXMub2Zmc2V0ICE9IHVuZGVmaW5lZCkge1xuICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLmFwcGVuZCgnb2Zmc2V0JywgcmVxdWVzdFBhcmFtcy5vZmZzZXQudG9TdHJpbmcoKSk7XG4gIH1cblxuICBpZiAocmVxdWVzdFBhcmFtcy5pZCAhPSAnJyAmJiByZXF1ZXN0UGFyYW1zLmlkICE9IHVuZGVmaW5lZCkge1xuICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLmFwcGVuZCgnaWQnLCByZXF1ZXN0UGFyYW1zLmlkIGFzIGFueSk7XG4gIH1cblxuICBodHRwUGFyYW1zID0gZ2V0RmlsdGVyKHJlcXVlc3RQYXJhbXMsIGh0dHBQYXJhbXMpO1xuICBodHRwUGFyYW1zID0gZ2V0U29ydChyZXF1ZXN0UGFyYW1zLCBodHRwUGFyYW1zKTtcblxuICByZXR1cm4gaHR0cFBhcmFtcztcbn1cblxuZnVuY3Rpb24gZ2V0RmlsdGVyPFQ+KFxuICByZXF1ZXN0UGFyYW1zOiBQYXJ0aWFsPFJlcXVlc3RQYXJhbXM8YW55Pj4sXG4gIGh0dHBQYXJhbXM6IEh0dHBQYXJhbXNcbik6IEh0dHBQYXJhbXMge1xuICBpZiAoIXJlcXVlc3RQYXJhbXMuZmlsdGVyKSB7XG4gICAgcmV0dXJuIGh0dHBQYXJhbXM7XG4gIH1cbiAgT2JqZWN0LmtleXMocmVxdWVzdFBhcmFtcz8uZmlsdGVyKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IHJlcXVlc3RQYXJhbXMuZmlsdGVyPy5ba2V5IGFzIGtleW9mIFBhcnRpYWw8VD5dO1xuICAgIGlmICh2YWx1ZSAhPSB1bmRlZmluZWQgJiYgISh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKSA9PT0gXCJcIikpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICB2YWx1ZS5mb3JFYWNoKCh2YWx1ZUl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLmFwcGVuZChcbiAgICAgICAgICAgICdGaWx0ZXIuJyArIGtleSwgdmFsdWVJdGVtXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoJ0ZpbHRlci4nICsga2V5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGh0dHBQYXJhbXM7XG59XG5cbmZ1bmN0aW9uIGdldFNvcnQoXG4gIHJlcXVlc3RQYXJhbXM6IFBhcnRpYWw8UmVxdWVzdFBhcmFtczxhbnk+PixcbiAgaHR0cFBhcmFtczogSHR0cFBhcmFtc1xuKTogSHR0cFBhcmFtcyB7XG4gIGlmICghcmVxdWVzdFBhcmFtcy5zb3J0KSB7XG4gICAgcmV0dXJuIGh0dHBQYXJhbXM7XG4gIH1cblxuICByZXF1ZXN0UGFyYW1zLnNvcnQ/LmZvckVhY2goKHNvcnQpID0+IHtcbiAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtc1xuICAgICAgLmFwcGVuZCgnU29ydC5GaWVsZCcsIHNvcnQuZmllbGQpXG4gICAgICAuYXBwZW5kKCdTb3J0LkRpcmVjdGlvbicsIHNvcnQuZGlyZWN0aW9uKTtcbiAgfSk7XG4gIHJldHVybiBodHRwUGFyYW1zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUZpbGUocmVzcG9uc2U6IEh0dHBSZXNwb25zZTxCbG9iPikge1xuICBjb25zdCBmaWxlTmFtZSA9IHJlc3BvbnNlLmhlYWRlcnNcbiAgICAuZ2V0KCdDb250ZW50LURpc3Bvc2l0aW9uJylcbiAgICA/LnNwbGl0KCc7JylbMV1cbiAgICAuc3BsaXQoJz0nKVsxXTtcbiAgY29uc3QgYmxvYjogQmxvYiA9IHJlc3BvbnNlLmJvZHkgYXMgQmxvYjtcbiAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgYS5kb3dubG9hZCA9IGZpbGVOYW1lID8/ICd1bmRlZmluZWQnO1xuICBhLmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgYS5jbGljaygpO1xufVxuXG5leHBvcnQgZW51bSBTb3J0RGlyZWN0aW9uIHtcbiAgYXNjID0gJ2FzYycsXG4gIGRlc2MgPSAnZGVzYycsXG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgU29ydERpcmVjdGlvblR5cGUgPSBrZXlvZiB0eXBlb2YgU29ydERpcmVjdGlvbjtcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNvcnQge1xuICBmaWVsZDogc3RyaW5nO1xuICBkaXJlY3Rpb246IFNvcnREaXJlY3Rpb25UeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RQYXJhbXM8VD4gZXh0ZW5kcyBBbGxEYXRhUmVxdWVzdFBhcmFtczxUPiB7XG4gIG9mZnNldDogbnVtYmVyO1xuICBsaW1pdDogbnVtYmVyO1xuICBpZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbGxEYXRhUmVxdWVzdFBhcmFtczxUPiB7XG4gIGZpbHRlcj86IFBhcnRpYWw8VD47XG4gIHNvcnQ/OiBTb3J0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZTxUPiB7XG4gIGRhdGE6IFRbXTtcbiAgdG90YWw6IG51bWJlcjtcbiAgbGltaXQ6IG51bWJlcjtcbiAgb2Zmc2V0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tRXhwb3J0PFQ+IHtcbiAgc29ydERlZmluaXRpb24/OiBTb3J0O1xuICBmaWx0ZXI/OiBQYXJ0aWFsPFQ+O1xuICBjb2x1bW5zVG9FeHBvcnQ6IENvbHVtbkV4cG9ydFNwZWNpZmljYXRpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5FeHBvcnRTcGVjaWZpY2F0aW9uIHtcbiAgbmFtZTogc3RyaW5nO1xuICBoZWFkZXI6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VBUkNIX0xJTUlUID0gNTA7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFQVJDSF9QQVJBTVM6IFJlcXVlc3RQYXJhbXM8YW55PiA9IHtcbiAgb2Zmc2V0OiAwLFxuICBsaW1pdDogREVGQVVMVF9TRUFSQ0hfTElNSVQsXG4gIGlkOiAnJyxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSZXF1ZXN0PFQ+KFxuICByZXF1ZXN0OiBQYXJ0aWFsPFJlcXVlc3RQYXJhbXM8VD4+LFxuICBtaW5MaW1pdDogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4pOiBSZXF1ZXN0UGFyYW1zPFQ+IHtcbiAgcmV0dXJuIHtcbiAgICBvZmZzZXQ6IHJlcXVlc3Q/Lm9mZnNldCA/PyAwLFxuICAgIGxpbWl0OiAhcmVxdWVzdD8ubGltaXRcbiAgICAgID8gREVGQVVMVF9TRUFSQ0hfTElNSVRcbiAgICAgIDogbWluTGltaXQgJiYgcmVxdWVzdC5saW1pdCA8IG1pbkxpbWl0XG4gICAgICA/IG1pbkxpbWl0XG4gICAgICA6IHJlcXVlc3QubGltaXQsXG4gICAgZmlsdGVyOiByZXF1ZXN0Py5maWx0ZXIsXG4gICAgc29ydDogcmVxdWVzdD8uc29ydCxcbiAgfTtcbn1cbiJdfQ==","export class ClearUtils {\n static recursiveObjectAttributesTransformation(obj) {\n ClearUtils.recursiveObjectAttributesTraversal(obj, ClearUtils.transformEmptyStringToNullStringFn);\n }\n static recursiveObjectAttributesDeletation(obj) {\n ClearUtils.recursiveObjectAttributesTraversal(obj, ClearUtils.deleteEmptyStringToNullStringFn);\n }\n static transformEmptyStringToNullStringFn(obj, key) {\n if (typeof obj[key] === 'string' && obj[key] === '') {\n obj[key] = null;\n }\n }\n static deleteEmptyStringToNullStringFn(obj, key) {\n if (obj[key] === '' || obj[key] === null || obj[key] === undefined) {\n delete obj[key];\n }\n }\n static recursiveObjectAttributesTraversal(obj, transformationFn) {\n if (obj === null ||\n transformationFn === null ||\n typeof transformationFn !== 'function') {\n return;\n }\n Object.keys(obj).forEach((key) => {\n transformationFn(obj, key);\n if (typeof obj[key] === 'object') {\n this.recursiveObjectAttributesTraversal(obj[key], transformationFn);\n if (!Object.keys(obj[key]).length) {\n delete obj[key];\n }\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXIudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvY2xlYXIudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFVBQVU7SUFFckIsTUFBTSxDQUFDLHVDQUF1QyxDQUFDLEdBQVE7UUFDckQsVUFBVSxDQUFDLGtDQUFrQyxDQUMzQyxHQUFHLEVBQ0gsVUFBVSxDQUFDLGtDQUFrQyxDQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sQ0FBQyxtQ0FBbUMsQ0FBQyxHQUFRO1FBQ2pELFVBQVUsQ0FBQyxrQ0FBa0MsQ0FDM0MsR0FBRyxFQUNILFVBQVUsQ0FBQywrQkFBK0IsQ0FDM0MsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsa0NBQWtDLENBQUMsR0FBUSxFQUFFLEdBQVc7UUFDN0QsSUFBSSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3BELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNLENBQUMsK0JBQStCLENBQUMsR0FBUSxFQUFFLEdBQVc7UUFDMUQsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ25FLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBR0QsTUFBTSxDQUFDLGtDQUFrQyxDQUN2QyxHQUFRLEVBQ1IsZ0JBQWlEO1FBRWpELElBQ0UsR0FBRyxLQUFLLElBQUk7WUFDWixnQkFBZ0IsS0FBSyxJQUFJO1lBQ3pCLE9BQU8sZ0JBQWdCLEtBQUssVUFBVSxFQUN0QyxDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQy9CLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUUzQixJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUM7Z0JBRXBFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNsQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbEIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDbGVhclV0aWxzIHtcblxuICBzdGF0aWMgcmVjdXJzaXZlT2JqZWN0QXR0cmlidXRlc1RyYW5zZm9ybWF0aW9uKG9iajogYW55KTogdm9pZCB7XG4gICAgQ2xlYXJVdGlscy5yZWN1cnNpdmVPYmplY3RBdHRyaWJ1dGVzVHJhdmVyc2FsKFxuICAgICAgb2JqLFxuICAgICAgQ2xlYXJVdGlscy50cmFuc2Zvcm1FbXB0eVN0cmluZ1RvTnVsbFN0cmluZ0ZuXG4gICAgKTtcbiAgfVxuICBzdGF0aWMgcmVjdXJzaXZlT2JqZWN0QXR0cmlidXRlc0RlbGV0YXRpb24ob2JqOiBhbnkpOiB2b2lkIHtcbiAgICBDbGVhclV0aWxzLnJlY3Vyc2l2ZU9iamVjdEF0dHJpYnV0ZXNUcmF2ZXJzYWwoXG4gICAgICBvYmosXG4gICAgICBDbGVhclV0aWxzLmRlbGV0ZUVtcHR5U3RyaW5nVG9OdWxsU3RyaW5nRm5cbiAgICApO1xuICB9XG5cbiAgc3RhdGljIHRyYW5zZm9ybUVtcHR5U3RyaW5nVG9OdWxsU3RyaW5nRm4ob2JqOiBhbnksIGtleTogc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBvYmpba2V5XSA9PT0gJ3N0cmluZycgJiYgb2JqW2tleV0gPT09ICcnKSB7XG4gICAgICBvYmpba2V5XSA9IG51bGw7XG4gICAgfVxuICB9XG4gIHN0YXRpYyBkZWxldGVFbXB0eVN0cmluZ1RvTnVsbFN0cmluZ0ZuKG9iajogYW55LCBrZXk6IHN0cmluZykge1xuICAgIGlmIChvYmpba2V5XSA9PT0gJycgfHwgb2JqW2tleV0gPT09IG51bGwgfHwgb2JqW2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVsZXRlIG9ialtrZXldXG4gICAgfVxuICB9XG5cblxuICBzdGF0aWMgcmVjdXJzaXZlT2JqZWN0QXR0cmlidXRlc1RyYXZlcnNhbChcbiAgICBvYmo6IGFueSxcbiAgICB0cmFuc2Zvcm1hdGlvbkZuOiAob2JqOiBhbnksIGtleTogc3RyaW5nKSA9PiB2b2lkXG4gICkge1xuICAgIGlmIChcbiAgICAgIG9iaiA9PT0gbnVsbCB8fFxuICAgICAgdHJhbnNmb3JtYXRpb25GbiA9PT0gbnVsbCB8fFxuICAgICAgdHlwZW9mIHRyYW5zZm9ybWF0aW9uRm4gIT09ICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBPYmplY3Qua2V5cyhvYmopLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgdHJhbnNmb3JtYXRpb25GbihvYmosIGtleSk7XG5cbiAgICAgIGlmICh0eXBlb2Ygb2JqW2tleV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHRoaXMucmVjdXJzaXZlT2JqZWN0QXR0cmlidXRlc1RyYXZlcnNhbChvYmpba2V5XSwgdHJhbnNmb3JtYXRpb25Gbik7XG5cbiAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhvYmpba2V5XSkubGVuZ3RoKSB7XG4gICAgICAgICAgZGVsZXRlIG9ialtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxufVxuIl19","import { map } from 'rxjs';\nimport { DEFAULT_SEARCH_PARAMS, requestParamsToHttpParams, } from '../models/base-http.models';\nimport { ClearUtils } from '../utils/clear.utils';\nexport class BaseHttpService {\n constructor(http, basePath, entityName) {\n this.http = http;\n this.basePath = basePath;\n this.entityName = entityName;\n this.basePath = basePath;\n }\n get apiPath() {\n return this.basePath ? this.basePath + this.entityName : this.entityName;\n }\n fetchList(requestParams) {\n const params = requestParamsToHttpParams(requestParams);\n return this.http.get(this.apiPath, { params }).pipe(map((response) => {\n response.limit = requestParams.limit;\n return response;\n }));\n }\n getData$(entityName, searchTerm, lazyLoad) {\n const filter = { [entityName]: searchTerm };\n const params = lazyLoad\n ? requestParamsToHttpParams({\n ...DEFAULT_SEARCH_PARAMS,\n offset: lazyLoad.offset,\n limit: lazyLoad.limit,\n filter,\n })\n : requestParamsToHttpParams({\n ...DEFAULT_SEARCH_PARAMS,\n filter,\n });\n return this.http.get(this.apiPath, { params });\n }\n get(id) {\n const url = `${this.apiPath}/${id}`;\n return this.http.get(url);\n }\n post(entity) {\n return this.http.post(this.apiPath, entity);\n }\n put(id, entity) {\n const url = `${this.apiPath}/${id}`;\n return this.http.put(url, entity);\n }\n delete(id) {\n const url = `${this.apiPath}/${id}`;\n return this.http.delete(url);\n }\n export(requestParams) {\n const httpParams = requestParamsToHttpParams(requestParams);\n const url = `${this.apiPath}/export`;\n return this.http.get(url, { responseType: 'blob', params: httpParams });\n }\n removeRange(entity) {\n return this.http.delete(this.apiPath, {\n body: entity,\n });\n }\n createParams(requestParams) {\n const sorter = this.createSorter(requestParams);\n const filter = JSON.parse(JSON.stringify(requestParams.filter));\n const transformedFilter = filter;\n ClearUtils.recursiveObjectAttributesDeletation(transformedFilter);\n return {\n paging: {\n offset: requestParams.offset,\n limit: requestParams.limit,\n },\n ...(sorter && { sorting: sorter }),\n ...(transformedFilter && { filter: transformedFilter }),\n };\n }\n createSorter(requestParams) {\n if (requestParams?.sort?.length === 1) {\n const sorter = requestParams.sort[0];\n return {\n sortField: sorter.field,\n sortOrder: sorter.direction,\n };\n }\n return null;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1odHRwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9jb3JlL3NyYy9saWIvc2VydmljZXMvYmFzZS1odHRwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBRUwscUJBQXFCLEVBR3JCLHlCQUF5QixHQUMxQixNQUFNLDRCQUE0QixDQUFDO0FBRXBDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUNXLElBQWdCLEVBQ2hCLFFBQWdCLEVBQ2hCLFVBQWtCO1FBRmxCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBRTNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFjLE9BQU87UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0UsQ0FBQztJQUVELFNBQVMsQ0FBQyxhQUErQjtRQUN2QyxNQUFNLE1BQU0sR0FBRyx5QkFBeUIsQ0FBSSxhQUFhLENBQUMsQ0FBQztRQUMzRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFVLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDMUQsR0FBRyxDQUFDLENBQUMsUUFBaUIsRUFBRSxFQUFFO1lBQ3hCLFFBQVEsQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUNyQyxPQUFPLFFBQVEsQ0FBQztR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QztZQUNsQyxHQUFHLENBQUMsaUJBQWlCLElBQUksRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztTQUN4RCxDQUFDO0lBQ0osQ0FBQztJQUVPLFlBQVksQ0FBSSxhQUErQjtRQUNyRCxJQUFJLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckMsT0FBTztnQkFDTCxTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUs7Z0JBQ3ZCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUzthQUM1QixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQWxsRGF0YVJlcXVlc3RQYXJhbXMsXG4gIERFRkFVTFRfU0VBUkNIX1BBUkFNUyxcbiAgUGFnZSxcbiAgUmVxdWVzdFBhcmFtcyxcbiAgcmVxdWVzdFBhcmFtc1RvSHR0cFBhcmFtcyxcbn0gZnJvbSAnLi4vbW9kZWxzL2Jhc2UtaHR0cC5tb2RlbHMnO1xuaW1wb3J0IHsgTGF6eUxvYWRFdmVudCB9IGZyb20gJy4uL21vZGVscy9ldmVudC5tb2RlbHMnO1xuaW1wb3J0IHsgQ2xlYXJVdGlscyB9IGZyb20gJy4uL3V0aWxzL2NsZWFyLnV0aWxzJztcblxuZXhwb3J0IGNsYXNzIEJhc2VIdHRwU2VydmljZTxULCBUS2V5ID0gbnVtYmVyIHwgc3RyaW5nPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcmVhZG9ubHkgYmFzZVBhdGg6IHN0cmluZyxcbiAgICByZWFkb25seSBlbnRpdHlOYW1lOiBzdHJpbmdcbiAgKSB7XG4gICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBhcGlQYXRoKCkge1xuICAgIHJldHVybiB0aGlzLmJhc2VQYXRoID8gdGhpcy5iYXNlUGF0aCArIHRoaXMuZW50aXR5TmFtZSA6IHRoaXMuZW50aXR5TmFtZTtcbiAgfVxuXG4gIGZldGNoTGlzdChyZXF1ZXN0UGFyYW1zOiBSZXF1ZXN0UGFyYW1zPFQ+KTogT2JzZXJ2YWJsZTxQYWdlPFQ+PiB7XG4gICAgY29uc3QgcGFyYW1zID0gcmVxdWVzdFBhcmFtc1RvSHR0cFBhcmFtczxUPihyZXF1ZXN0UGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQYWdlPFQ+Pih0aGlzLmFwaVBhdGgsIHsgcGFyYW1zIH0pLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBQYWdlPFQ+KSA9PiB7XG4gICAgICAgIHJlc3BvbnNlLmxpbWl0ID0gcmVxdWVzdFBhcmFtcy5saW1pdDtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0RGF0YSQoXG4gICAgZW50aXR5TmFtZToga2V5b2YgVCxcbiAgICBzZWFyY2hUZXJtPzogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGxhenlMb2FkPzogTGF6eUxvYWRFdmVudFxuICApOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIGNvbnN0IGZpbHRlcjogUGFydGlhbDxUPiA9IHsgW2VudGl0eU5hbWVdOiBzZWFyY2hUZXJtIH0gYXMgUGFydGlhbDxUPjtcbiAgICBjb25zdCBwYXJhbXMgPSBsYXp5TG9hZFxuICAgICAgPyByZXF1ZXN0UGFyYW1zVG9IdHRwUGFyYW1zPFQ+KHtcbiAgICAgICAgICAuLi5ERUZBVUxUX1NFQVJDSF9QQVJBTVMsXG4gICAgICAgICAgb2Zmc2V0OiBsYXp5TG9hZC5vZmZzZXQsXG4gICAgICAgICAgbGltaXQ6IGxhenlMb2FkLmxpbWl0LFxuICAgICAgICAgIGZpbHRlcixcbiAgICAgICAgfSlcbiAgICAgIDogcmVxdWVzdFBhcmFtc1RvSHR0cFBhcmFtczxUPih7XG4gICAgICAgICAgLi4uREVGQVVMVF9TRUFSQ0hfUEFSQU1TLFxuICAgICAgICAgIGZpbHRlcixcbiAgICAgICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUW10+KHRoaXMuYXBpUGF0aCwgeyBwYXJhbXMgfSk7XG4gIH1cblxuICBnZXQoaWQ6IFRLZXkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmFwaVBhdGh9LyR7aWR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPih1cmwpO1xuICB9XG5cbiAgcG9zdChlbnRpdHk6IFBhcnRpYWw8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4odGhpcy5hcGlQYXRoLCBlbnRpdHkpO1xuICB9XG5cbiAgcHV0KGlkOiBUS2V5LCBlbnRpdHk6IFBhcnRpYWw8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmFwaVBhdGh9LyR7aWR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUPih1cmwsIGVudGl0eSk7XG4gIH1cblxuICBkZWxldGUoaWQ6IFRLZXkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmFwaVBhdGh9LyR7aWR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxUPih1cmwpO1xuICB9XG5cbiAgZXhwb3J0KHJlcXVlc3RQYXJhbXM6IEFsbERhdGFSZXF1ZXN0UGFyYW1zPFQ+KTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgY29uc3QgaHR0cFBhcmFtcyA9IHJlcXVlc3RQYXJhbXNUb0h0dHBQYXJhbXM8VD4ocmVxdWVzdFBhcmFtcyk7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5hcGlQYXRofS9leHBvcnRgO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCwgeyByZXNwb25zZVR5cGU6ICdibG9iJywgcGFyYW1zOiBodHRwUGFyYW1zIH0pO1xuICB9XG5cbiAgcmVtb3ZlUmFuZ2UoZW50aXR5OiBzdHJpbmdbXSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKHRoaXMuYXBpUGF0aCwge1xuICAgICAgYm9keTogZW50aXR5LFxuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlUGFyYW1zPFQ+KHJlcXVlc3RQYXJhbXM6IFJlcXVlc3RQYXJhbXM8VD4pOiBhbnkge1xuICAgIGNvbnN0IHNvcnRlciA9IHRoaXMuY3JlYXRlU29ydGVyKHJlcXVlc3RQYXJhbXMpO1xuICAgIGNvbnN0IGZpbHRlciA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocmVxdWVzdFBhcmFtcy5maWx0ZXIpKTtcbiAgICBjb25zdCB0cmFuc2Zvcm1lZEZpbHRlciA9IGZpbHRlcjtcbiAgICBDbGVhclV0aWxzLnJlY3Vyc2l2ZU9iamVjdEF0dHJpYnV0ZXNEZWxldGF0aW9uKHRyYW5zZm9ybWVkRmlsdGVyKTtcbiAgICByZXR1cm4ge1xuICAgICAgcGFnaW5nOiB7XG4gICAgICAgIG9mZnNldDogcmVxdWVzdFBhcmFtcy5vZmZzZXQsXG4gICAgICAgIGxpbWl0OiByZXF1ZXN0UGFyYW1zLmxpbWl0LFxuICAgICAgfSxcbiAgICAgIC4uLihzb3J0ZXIgJiYgeyBzb3J0aW5nOiBzb3J0ZXIgfSksXG4gICAgICAuLi4odHJhbnNmb3JtZWRGaWx0ZXIgJiYgeyBmaWx0ZXI6IHRyYW5zZm9ybWVkRmlsdGVyIH0pLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVNvcnRlcjxUPihyZXF1ZXN0UGFyYW1zOiBSZXF1ZXN0UGFyYW1zPFQ+KSB7XG4gICAgaWYgKHJlcXVlc3RQYXJhbXM/LnNvcnQ/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3Qgc29ydGVyID0gcmVxdWVzdFBhcmFtcy5zb3J0WzBdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc29ydEZpZWxkOiBzb3J0ZXIuZmllbGQsXG4gICAgICAgIHNvcnRPcmRlcjogc29ydGVyLmRpcmVjdGlvbixcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=","import { isObservable, map, of } from 'rxjs';\nimport { BaseHttpService } from '../services/base-http.service';\nimport { DEFAULT_PAGE_SIZE } from './constants';\nexport function convertDatasource(datasource, basePath, httpClient) {\n if (!datasource) {\n throw new Error('Datasource is not defined');\n }\n if (typeof datasource === 'string') {\n const service = new BaseHttpService(httpClient, basePath, datasource);\n return (requestParams) => service.fetchList(requestParams);\n }\n if (datasource instanceof BaseHttpService) {\n return (requestParams) => datasource.fetchList(requestParams);\n }\n if (isObservable(datasource)) {\n return () => datasource.pipe(map(convertArrayToPage));\n }\n const allItemDatasource = datasource;\n if (allItemDatasource.getData$) {\n return () => allItemDatasource\n .getData$()\n .pipe(map((data) => convertArrayToPage(data)));\n }\n const page = datasource;\n if (page.data) {\n return () => of(page);\n }\n if (Array.isArray(datasource)) {\n return () => of(convertArrayToPage(datasource));\n }\n throw new Error('Datasource is not supported');\n}\nfunction convertArrayToPage(data) {\n if (Array.isArray(data)) {\n return {\n data: data ?? [],\n total: data?.length ?? 0,\n limit: data?.length ?? DEFAULT_PAGE_SIZE,\n offset: 0,\n };\n }\n return data;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2NvcmUvc3JjL2xpYi9tb2RlbHMvZGF0YXNvdXJjZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWVoRCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLFVBQTZCLEVBQzdCLFFBQWdCLEVBQ2hCLFVBQXNCO0lBRXRCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQUksVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN6RSxPQUFPLENBQUMsYUFBK0IsRUFBRSxFQUFFLENBQ3pDLE9BQU8sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksVUFBVSxZQUFZLGVBQWUsRUFBRSxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxhQUErQixFQUFFLEVBQUUsQ0FDekMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPLEdBQUcsRUFBRSxDQUNULFVBQXdDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELE1BQU0saUJBQWlCLEdBQXlCLFVBQVUsQ0FBQztJQUMzRCxJQUFJLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQy9CLE9BQU8sR0FBRyxFQUFFLENBQ1YsaUJBQWlCO2FBQ2QsUUFBUSxFQUFFO2FBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxNQUFNLElBQUksR0FBWSxVQUFVLENBQUM7SUFDakMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDOUIsT0FBTyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFJLElBQW1CO0lBQ2hELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDaEIsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQztZQUN4QixLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sSUFBSSxpQkFBaUI7WUFDeEMsTUFBTSxFQUFFLENBQUM7U0FDVixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sSUFBZSxDQUFDO0FBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBpc09ic2VydmFibGUsIG1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQmFzZUh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYmFzZS1odHRwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBbGxJdGVtRGF0YXNvdXJjZSB9IGZyb20gJy4vYWxsLWl0ZW0uZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IFBhZ2UsIFJlcXVlc3RQYXJhbXMgfSBmcm9tICcuL2Jhc2UtaHR0cC5tb2RlbHMnO1xyXG5pbXBvcnQgeyBERUZBVUxUX1BBR0VfU0laRSB9IGZyb20gJy4vY29uc3RhbnRzJztcclxuXHJcbmV4cG9ydCB0eXBlIERhdGFzb3VyY2VUeXBlPFQ+ID1cclxuICB8IHN0cmluZ1xyXG4gIHwgT2JzZXJ2YWJsZTxUW10+XHJcbiAgfCBPYnNlcnZhYmxlPFBhZ2U8VD4+XHJcbiAgfCBCYXNlSHR0cFNlcnZpY2U8VD5cclxuICB8IFRbXVxyXG4gIHwgUGFnZTxUPlxyXG4gIHwgQWxsSXRlbURhdGFzb3VyY2U8VD47XHJcblxyXG5leHBvcnQgdHlwZSBEYXRhU291cmNlRnVuY3Rpb25UeXBlPFQ+ID0gKFxyXG4gIHJlcXVlc3RQYXJhbXM6IFJlcXVlc3RQYXJhbXM8VD5cclxuKSA9PiBPYnNlcnZhYmxlPFBhZ2U8VD4+O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnREYXRhc291cmNlPFQ+KFxyXG4gIGRhdGFzb3VyY2U6IERhdGFzb3VyY2VUeXBlPFQ+LFxyXG4gIGJhc2VQYXRoOiBzdHJpbmcsXHJcbiAgaHR0cENsaWVudDogSHR0cENsaWVudFxyXG4pOiBEYXRhU291cmNlRnVuY3Rpb25UeXBlPFQ+IHtcclxuICBpZiAoIWRhdGFzb3VyY2UpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcignRGF0YXNvdXJjZSBpcyBub3QgZGVmaW5lZCcpO1xyXG4gIH1cclxuXHJcbiAgaWYgKHR5cGVvZiBkYXRhc291cmNlID09PSAnc3RyaW5nJykge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IG5ldyBCYXNlSHR0cFNlcnZpY2U8VD4oaHR0cENsaWVudCwgYmFzZVBhdGgsIGRhdGFzb3VyY2UpO1xyXG4gICAgcmV0dXJuIChyZXF1ZXN0UGFyYW1zOiBSZXF1ZXN0UGFyYW1zPFQ+KSA9PlxyXG4gICAgICBzZXJ2aWNlLmZldGNoTGlzdChyZXF1ZXN0UGFyYW1zKTtcclxuICB9XHJcblxyXG4gIGlmIChkYXRhc291cmNlIGluc3RhbmNlb2YgQmFzZUh0dHBTZXJ2aWNlKSB7XHJcbiAgICByZXR1cm4gKHJlcXVlc3RQYXJhbXM6IFJlcXVlc3RQYXJhbXM8VD4pID0+XHJcbiAgICAgIGRhdGFzb3VyY2UuZmV0Y2hMaXN0KHJlcXVlc3RQYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgaWYgKGlzT2JzZXJ2YWJsZShkYXRhc291cmNlKSkge1xyXG4gICAgcmV0dXJuICgpID0+XHJcbiAgICAgIChkYXRhc291cmNlIGFzIE9ic2VydmFibGU8UGFnZTxUPiB8IFRbXT4pLnBpcGUobWFwKGNvbnZlcnRBcnJheVRvUGFnZSkpO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgYWxsSXRlbURhdGFzb3VyY2UgPSA8QWxsSXRlbURhdGFzb3VyY2U8VD4+ZGF0YXNvdXJjZTtcclxuICBpZiAoYWxsSXRlbURhdGFzb3VyY2UuZ2V0RGF0YSQpIHtcclxuICAgIHJldHVybiAoKSA9PlxyXG4gICAgICBhbGxJdGVtRGF0YXNvdXJjZVxyXG4gICAgICAgIC5nZXREYXRhJCgpXHJcbiAgICAgICAgLnBpcGUobWFwKChkYXRhKSA9PiBjb252ZXJ0QXJyYXlUb1BhZ2UoZGF0YSkpKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhZ2UgPSA8UGFnZTxUPj5kYXRhc291cmNlO1xyXG4gIGlmIChwYWdlLmRhdGEpIHtcclxuICAgIHJldHVybiAoKSA9PiBvZihwYWdlKTtcclxuICB9XHJcblxyXG4gIGlmIChBcnJheS5pc0FycmF5KGRhdGFzb3VyY2UpKSB7XHJcbiAgICByZXR1cm4gKCkgPT4gb2YoY29udmVydEFycmF5VG9QYWdlKGRhdGFzb3VyY2UpKTtcclxuICB9XHJcblxyXG4gIHRocm93IG5ldyBFcnJvcignRGF0YXNvdXJjZSBpcyBub3Qgc3VwcG9ydGVkJyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbnZlcnRBcnJheVRvUGFnZTxUPihkYXRhOiBQYWdlPFQ+IHwgVFtdKTogUGFnZTxUPiB7XHJcbiAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGRhdGE6IGRhdGEgPz8gW10sXHJcbiAgICAgIHRvdGFsOiBkYXRhPy5sZW5ndGggPz8gMCxcclxuICAgICAgbGltaXQ6IGRhdGE/Lmxlbmd0aCA/PyBERUZBVUxUX1BBR0VfU0laRSxcclxuICAgICAgb2Zmc2V0OiAwLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHJldHVybiBkYXRhIGFzIFBhZ2U8VD47XHJcbn1cclxuIl19","import { InjectionToken } from '@angular/core';\nexport const ERROR_PROVIDER_TOKEN = new InjectionToken('ERROR_PROVIDER_TOKEN');\nexport var CustomValidationCodes;\n(function (CustomValidationCodes) {\n})(CustomValidationCodes || (CustomValidationCodes = {}));\nexport const ErrorMap = {\n required: () => `VALIDATIONS.REQUIRED`,\n email: () => `VALIDATIONS.EMAIL`,\n minLength: () => 'VALIDATIONS.MIN_LENGTH',\n maxLength: () => 'VALIDATIONS.MAX_LENGTH',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItcHJvdmlkZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9jb3JlL3NyYy9saWIvbW9kZWxzL2Vycm9yLXByb3ZpZGVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTL0MsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQzdCLElBQUksY0FBYyxDQUFnQixzQkFBc0IsQ0FBQyxDQUFDO0FBRTlELE1BQU0sQ0FBTixJQUFZLHFCQUF3QjtBQUFwQyxXQUFZLHFCQUFxQjtBQUFFLENBQUMsRUFBeEIscUJBQXFCLEtBQXJCLHFCQUFxQixRQUFHO0FBRXBDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBNEM7SUFDL0QsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLHNCQUFzQjtJQUN0QyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsbUJBQW1CO0lBQ2hDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyx3QkFBd0I7SUFDekMsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLHdCQUF3QjtDQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JQcm92aWRlciB7XG4gIG1hcEVycm9yKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyk6IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgZXJyb3JzOiBSZWNvcmQ8c3RyaW5nLCAodmFsdWU/OiBhbnkpID0+IHN0cmluZz47XG59XG5cbmV4cG9ydCBjb25zdCBFUlJPUl9QUk9WSURFUl9UT0tFTlxuICA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFcnJvclByb3ZpZGVyPignRVJST1JfUFJPVklERVJfVE9LRU4nKTtcblxuZXhwb3J0IGVudW0gQ3VzdG9tVmFsaWRhdGlvbkNvZGVzIHt9XG5cbmV4cG9ydCBjb25zdCBFcnJvck1hcDogUmVjb3JkPHN0cmluZywgKHZhbHVlPzogYW55KSA9PiBzdHJpbmc+ID0ge1xuICByZXF1aXJlZDogKCkgPT4gYFZBTElEQVRJT05TLlJFUVVJUkVEYCxcbiAgZW1haWw6ICgpID0+IGBWQUxJREFUSU9OUy5FTUFJTGAsXG4gIG1pbkxlbmd0aDogKCkgPT4gJ1ZBTElEQVRJT05TLk1JTl9MRU5HVEgnLFxuICBtYXhMZW5ndGg6ICgpID0+ICdWQUxJREFUSU9OUy5NQVhfTEVOR1RIJyxcbn07XG4iXX0=","export class LocalStorageService {\n setItem(key, value) {\n localStorage.setItem(key, value);\n }\n getItem(key) {\n return localStorage.getItem(key);\n }\n removeItem(key) {\n localStorage.removeItem(key);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2xvY2FsLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sbUJBQW1CO0lBQzVCLE9BQU8sQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUM5QixZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVc7UUFDZixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ2xCLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZVNlcnZpY2Uge1xuICAgIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0SXRlbShrZXk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICB9XG5cbiAgICByZW1vdmVJdGVtKGtleTogc3RyaW5nKSB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gICAgfVxufSJdfQ==","import { inject, Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { of } from 'rxjs';\nimport { ErrorMap } from '../models/error-provider.model';\nimport * as i0 from \"@angular/core\";\nexport class LocalizableErrorProviderService {\n constructor() {\n this.translateService = inject(TranslateService);\n this.errors = ErrorMap;\n }\n mapError(errors) {\n const error = this.getFirstValue(errors);\n if (!error || !error.key) {\n return of(undefined);\n }\n try {\n const value = this.errors[error.key](error.value);\n return this.translateService.get(value);\n }\n catch (_) {\n throw new Error(`Key \"${error.key}\" is not specified in the current error map!`);\n }\n }\n getFirstValue(errors) {\n const key = Object.keys(errors)[0];\n const value = errors[key];\n return { key, value };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: LocalizableErrorProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: LocalizableErrorProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: LocalizableErrorProviderService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItcHJvdmlkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9lcnJvci1wcm92aWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFpQixRQUFRLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFLekUsTUFBTSxPQUFPLCtCQUErQjtJQUg1QztRQUltQixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwRCxXQUFNLEdBQTRDLFFBQVEsQ0FBQztLQXFCckU7SUFuQkMsUUFBUSxDQUFDLE1BQXdCO1FBQy9CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN6QixPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLENBQUMsR0FBRyw4Q0FBOEMsQ0FBQyxDQUFDO1FBQ25GLENBQUM7SUFDSCxDQUFDO0lBRU8sYUFBYSxDQUFDLE1BQXdCO1FBQzVDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs4R0F0QlUsK0JBQStCO2tIQUEvQiwrQkFBK0IsY0FGOUIsTUFBTTs7MkZBRVAsK0JBQStCO2tCQUgzQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFcnJvclByb3ZpZGVyLCBFcnJvck1hcCB9IGZyb20gJy4uL21vZGVscy9lcnJvci1wcm92aWRlci5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIExvY2FsaXphYmxlRXJyb3JQcm92aWRlclNlcnZpY2UgaW1wbGVtZW50cyBFcnJvclByb3ZpZGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICByZWFkb25seSBlcnJvcnM6IFJlY29yZDxzdHJpbmcsICh2YWx1ZT86IGFueSkgPT4gc3RyaW5nPiA9IEVycm9yTWFwO1xuXG4gIG1hcEVycm9yKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyk6IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgZXJyb3IgPSB0aGlzLmdldEZpcnN0VmFsdWUoZXJyb3JzKTtcbiAgICBpZiAoIWVycm9yIHx8ICFlcnJvci5rZXkpIHtcbiAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZXJyb3JzW2Vycm9yLmtleV0oZXJyb3IudmFsdWUpO1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQodmFsdWUpO1xuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgS2V5IFwiJHtlcnJvci5rZXl9XCIgaXMgbm90IHNwZWNpZmllZCBpbiB0aGUgY3VycmVudCBlcnJvciBtYXAhYCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaXJzdFZhbHVlKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyk6IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfSB7XG4gICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMoZXJyb3JzKVswXTtcbiAgICBjb25zdCB2YWx1ZSA9IGVycm9yc1trZXldO1xuICAgIHJldHVybiB7IGtleSwgdmFsdWUgfTtcbiAgfVxufVxuIl19","export function keyOrFn(keyOrFn, row) {\n if (keyOrFn instanceof Function) {\n return keyOrFn(row);\n }\n else if (typeof keyOrFn === 'string') {\n const value = row[keyOrFn];\n if (value) {\n return value;\n }\n }\n else if (typeof keyOrFn === 'boolean') {\n return keyOrFn;\n }\n return '';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5T3JGbi51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9rZXlPckZuLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxPQUFPLENBQUMsT0FBb0QsRUFBRSxHQUFRO0lBQ2xGLElBQUksT0FBTyxZQUFZLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7U0FDSSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ25DLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztJQUNMLENBQUM7U0FDSSxJQUFJLE9BQU8sT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFDQyxPQUFPLEVBQUUsQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24ga2V5T3JGbihrZXlPckZuOiAoKHJvdzogYW55KSA9PiBzdHJpbmcgfCB1bmRlZmluZWQpIHwgc3RyaW5nLCByb3c6IGFueSkge1xuICAgIGlmIChrZXlPckZuIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIGtleU9yRm4ocm93KTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGtleU9yRm4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcm93W2tleU9yRm5dO1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2Yga2V5T3JGbiA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICByZXR1cm4ga2V5T3JGbjtcbiAgfVxuICAgIHJldHVybiAnJztcbn1cbiJdfQ==","export function sortBy(items, selector, ascending = true) {\n return [...items].sort((item, other) => {\n const value = selector(item);\n const otherValue = selector(other);\n const direction = ascending ? 1 : -1;\n if (value == undefined && other == undefined) {\n return 0;\n }\n if (value == undefined) {\n return -1 * direction;\n }\n if (otherValue == undefined) {\n return 1 * direction;\n }\n if (value < otherValue) {\n return -1 * direction;\n }\n if (value > otherValue) {\n return 1 * direction;\n }\n return 0;\n });\n}\nexport function getValueByPath(obj, path) {\n if (path == undefined || path == '') {\n return obj;\n }\n return path.split('.').reduce((acc, key) => {\n if (acc && typeof acc === 'object' && key in acc) {\n return acc[key];\n }\n return undefined;\n }, obj);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL29iamVjdC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsTUFBTSxDQUNwQixLQUFnQixFQUNoQixRQUFzQyxFQUN0QyxTQUFTLEdBQUcsSUFBSTtJQUVoQixPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDckMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsSUFBSSxLQUFLLElBQUksU0FBUyxJQUFJLEtBQUssSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUM3QyxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFFRCxJQUFJLEtBQUssSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUN2QixPQUFPLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUN4QixDQUFDO1FBQ0QsSUFBSSxVQUFVLElBQUksU0FBUyxFQUFFLENBQUM7WUFDNUIsT0FBTyxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLEtBQUssR0FBRyxVQUFVLEVBQUUsQ0FBQztZQUN2QixPQUFPLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUN4QixDQUFDO1FBRUQsSUFBSSxLQUFLLEdBQUcsVUFBVSxFQUFFLENBQUM7WUFDdkIsT0FBTyxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQzVCLEdBQU0sRUFDTixJQUF3QjtJQUV4QixJQUFJLElBQUksSUFBSSxTQUFTLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBQyxDQUFDO1FBQ25DLE9BQU8sR0FBd0IsQ0FBQztJQUNsQyxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUN6QyxJQUFJLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ2pELE9BQVEsR0FBOEIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyxFQUFFLEdBQWMsQ0FBVyxDQUFDO0FBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gc29ydEJ5PFRFbnRpdHksIFRQcm9wZXJ0eT4oXHJcbiAgaXRlbXM6IFRFbnRpdHlbXSxcclxuICBzZWxlY3RvcjogKGl0ZW06IFRFbnRpdHkpID0+IFRQcm9wZXJ0eSxcclxuICBhc2NlbmRpbmcgPSB0cnVlXHJcbik6IFRFbnRpdHlbXSB7XHJcbiAgcmV0dXJuIFsuLi5pdGVtc10uc29ydCgoaXRlbSwgb3RoZXIpID0+IHtcclxuICAgIGNvbnN0IHZhbHVlID0gc2VsZWN0b3IoaXRlbSk7XHJcbiAgICBjb25zdCBvdGhlclZhbHVlID0gc2VsZWN0b3Iob3RoZXIpO1xyXG4gICAgY29uc3QgZGlyZWN0aW9uID0gYXNjZW5kaW5nID8gMSA6IC0xO1xyXG4gICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCAmJiBvdGhlciA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gLTEgKiBkaXJlY3Rpb247XHJcbiAgICB9XHJcbiAgICBpZiAob3RoZXJWYWx1ZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIDEgKiBkaXJlY3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHZhbHVlIDwgb3RoZXJWYWx1ZSkge1xyXG4gICAgICByZXR1cm4gLTEgKiBkaXJlY3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHZhbHVlID4gb3RoZXJWYWx1ZSkge1xyXG4gICAgICByZXR1cm4gMSAqIGRpcmVjdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gMDtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbHVlQnlQYXRoPFQsIFRWYWx1ZT4oXHJcbiAgb2JqOiBULFxyXG4gIHBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCxcclxuKTogVFZhbHVlIHwgdW5kZWZpbmVkIHtcclxuICBpZiAocGF0aCA9PSB1bmRlZmluZWQgfHwgcGF0aCA9PSAnJyl7XHJcbiAgICByZXR1cm4gb2JqIGFzIHVua25vd24gYXMgVFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHBhdGguc3BsaXQoJy4nKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XHJcbiAgICBpZiAoYWNjICYmIHR5cGVvZiBhY2MgPT09ICdvYmplY3QnICYmIGtleSBpbiBhY2MpIHtcclxuICAgICAgcmV0dXJuIChhY2MgYXMgUmVjb3JkPHN0cmluZywgVFZhbHVlPilba2V5XTtcclxuICAgIH1cclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfSwgb2JqIGFzIHVua25vd24pIGFzIFRWYWx1ZTtcclxufVxyXG4iXX0=","import { getValueByPath } from \"./object.utils\";\nexport function isArrayIntersected(array1, array2) {\n const filteredArray = array1.filter(value => array2.includes(value));\n return filteredArray.length > 0;\n}\nexport function multiSort(values, sorts) {\n return [...values].sort((a, b) => {\n for (const sort of sorts) {\n const { field, direction } = sort;\n const valueA = getValueByPath(a, field);\n const valueB = getValueByPath(b, field);\n if (valueA !== valueB) {\n if (isComparable(valueA) && isComparable(valueB)) {\n if (typeof valueA === 'string' && typeof valueB === 'string') {\n const baseCompare = valueA.localeCompare(valueB, undefined, {\n sensitivity: 'base',\n });\n if (baseCompare === 0) {\n return valueA < valueB ? -1 : valueA > valueB ? 1 : 0;\n }\n return direction === 'asc' ? baseCompare : -baseCompare;\n }\n else {\n if (valueA < valueB) {\n return direction === 'asc' ? -1 : 1;\n }\n if (valueA > valueB) {\n return direction === 'asc' ? 1 : -1;\n }\n }\n }\n }\n }\n return 0;\n });\n}\nfunction isComparable(value) {\n return typeof value === 'string'\n || typeof value === 'number'\n || typeof value === 'boolean'\n || value instanceof Date;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvYXJyYXkudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWhELE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsTUFBNkIsRUFDN0IsTUFBNkI7SUFFN0IsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNyRSxPQUFPLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFJLE1BQVcsRUFBRSxLQUFhO0lBQ3JELE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMvQixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQ2xDLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDeEMsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUV4QyxJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQ2pELElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO3dCQUM3RCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUU7NEJBQzFELFdBQVcsRUFBRSxNQUFNO3lCQUNwQixDQUFDLENBQUM7d0JBRUgsSUFBSSxXQUFXLEtBQUssQ0FBQyxFQUFFLENBQUM7NEJBQ3RCLE9BQU8sTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUN4RCxDQUFDO3dCQUVELE9BQU8sU0FBUyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztvQkFDMUQsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLElBQUksTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDOzRCQUNwQixPQUFPLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3RDLENBQUM7d0JBQ0QsSUFBSSxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUM7NEJBQ3BCLE9BQU8sU0FBUyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDdEMsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsS0FBYztJQUNsQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVE7V0FDM0IsT0FBTyxLQUFLLEtBQUssUUFBUTtXQUN6QixPQUFPLEtBQUssS0FBSyxTQUFTO1dBQzFCLEtBQUssWUFBWSxJQUFJLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvcnQgfSBmcm9tIFwiLi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBnZXRWYWx1ZUJ5UGF0aCB9IGZyb20gXCIuL29iamVjdC51dGlsc1wiO1xuXG50eXBlIEFycmF5SW50ZXJzZWN0aW9uVHlwZSA9IChzdHJpbmcgfCBudW1iZXIpW11cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXJyYXlJbnRlcnNlY3RlZChcbiAgYXJyYXkxOiBBcnJheUludGVyc2VjdGlvblR5cGUsXG4gIGFycmF5MjogQXJyYXlJbnRlcnNlY3Rpb25UeXBlLFxuKSB7XG4gIGNvbnN0IGZpbHRlcmVkQXJyYXkgPSBhcnJheTEuZmlsdGVyKHZhbHVlID0+IGFycmF5Mi5pbmNsdWRlcyh2YWx1ZSkpO1xuICByZXR1cm4gZmlsdGVyZWRBcnJheS5sZW5ndGggPiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbXVsdGlTb3J0PFQ+KHZhbHVlczogVFtdLCBzb3J0czogU29ydFtdKTogVFtdIHtcbiAgcmV0dXJuIFsuLi52YWx1ZXNdLnNvcnQoKGEsIGIpID0+IHtcbiAgICBmb3IgKGNvbnN0IHNvcnQgb2Ygc29ydHMpIHtcbiAgICAgIGNvbnN0IHsgZmllbGQsIGRpcmVjdGlvbiB9ID0gc29ydDtcbiAgICAgIGNvbnN0IHZhbHVlQSA9IGdldFZhbHVlQnlQYXRoKGEsIGZpZWxkKTtcbiAgICAgIGNvbnN0IHZhbHVlQiA9IGdldFZhbHVlQnlQYXRoKGIsIGZpZWxkKTtcblxuICAgICAgaWYgKHZhbHVlQSAhPT0gdmFsdWVCKSB7XG4gICAgICAgIGlmIChpc0NvbXBhcmFibGUodmFsdWVBKSAmJiBpc0NvbXBhcmFibGUodmFsdWVCKSkge1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWVBID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWVCID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uc3QgYmFzZUNvbXBhcmUgPSB2YWx1ZUEubG9jYWxlQ29tcGFyZSh2YWx1ZUIsIHVuZGVmaW5lZCwge1xuICAgICAgICAgICAgICBzZW5zaXRpdml0eTogJ2Jhc2UnLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChiYXNlQ29tcGFyZSA9PT0gMCkge1xuICAgICAgICAgICAgICByZXR1cm4gdmFsdWVBIDwgdmFsdWVCID8gLTEgOiB2YWx1ZUEgPiB2YWx1ZUIgPyAxIDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PT0gJ2FzYycgPyBiYXNlQ29tcGFyZSA6IC1iYXNlQ29tcGFyZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHZhbHVlQSA8IHZhbHVlQikge1xuICAgICAgICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09PSAnYXNjJyA/IC0xIDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh2YWx1ZUEgPiB2YWx1ZUIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PT0gJ2FzYycgPyAxIDogLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpc0NvbXBhcmFibGUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBzdHJpbmcgfCBudW1iZXIgfCBEYXRlIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbiAgICB8fCB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInXG4gICAgfHwgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbidcbiAgICB8fCB2YWx1ZSBpbnN0YW5jZW9mIERhdGU7XG59XG4iXX0=","import moment from 'moment';\nexport function transformData(data) {\n if (data) {\n if (moment.isMoment(data)) {\n return moment(data)\n .toDate()\n .toISOString();\n }\n else if (data instanceof Date) {\n return data.toISOString();\n }\n }\n return data;\n}\nexport function convertToDate(data) {\n if (data) {\n if (!isNaN(Date.parse(data))) {\n return new Date(data);\n }\n }\n return data;\n}\nexport function convertToDateTime(data) {\n if (data) {\n if (!isNaN(Date.parse(data))) {\n const date = new Date(data);\n return moment(date).format('DD.MM.yyyy HH:mm');\n }\n }\n return data;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9kYXRhLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixNQUFNLFVBQVUsYUFBYSxDQUFDLElBQVM7SUFDckMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNULElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzFCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztpQkFDaEIsTUFBTSxFQUFFO2lCQUNSLFdBQVcsRUFBRSxDQUFDO1FBQ25CLENBQUM7YUFDSSxJQUFJLElBQUksWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBUztJQUNyQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLElBQVM7SUFDekMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1EYXRhKGRhdGE6IGFueSkge1xuICBpZiAoZGF0YSkge1xuICAgIGlmIChtb21lbnQuaXNNb21lbnQoZGF0YSkpIHtcbiAgICAgIHJldHVybiBtb21lbnQoZGF0YSlcbiAgICAgICAgLnRvRGF0ZSgpXG4gICAgICAgIC50b0lTT1N0cmluZygpO1xuICAgIH1cbiAgICBlbHNlIGlmIChkYXRhIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgcmV0dXJuIGRhdGEudG9JU09TdHJpbmcoKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9EYXRlKGRhdGE6IGFueSkge1xuICBpZiAoZGF0YSkge1xuICAgIGlmICghaXNOYU4oRGF0ZS5wYXJzZShkYXRhKSkpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRhKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9EYXRlVGltZShkYXRhOiBhbnkpIHtcbiAgaWYgKGRhdGEpIHtcbiAgICBpZiAoIWlzTmFOKERhdGUucGFyc2UoZGF0YSkpKSB7XG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoZGF0YSk7XG4gICAgICByZXR1cm4gbW9tZW50KGRhdGUpLmZvcm1hdCgnREQuTU0ueXl5eSBISDptbScpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZGF0YTtcbn1cbiJdfQ==","const czechDateFormat = new Intl.DateTimeFormat(\"cs-CZ\", {\n day: \"numeric\",\n month: \"numeric\",\n year: \"numeric\"\n});\nconst czechDateTimeFormat = new Intl.DateTimeFormat(\"cs-CZ\", {\n second: \"numeric\",\n minute: \"numeric\",\n hour: \"numeric\",\n day: \"numeric\",\n month: \"numeric\",\n year: \"numeric\"\n});\nexport function toCzechDateTimeString(value, time = false) {\n if (!value) {\n return \"\";\n }\n if (typeof value === \"string\") {\n value = new Date(value);\n }\n if (time) {\n return czechDateTimeFormat.format(value);\n }\n return czechDateFormat.format(value);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9kYXRlLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sZUFBZSxHQUFHLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUU7SUFDdkQsR0FBRyxFQUFFLFNBQVM7SUFDZCxLQUFLLEVBQUUsU0FBUztJQUNoQixJQUFJLEVBQUUsU0FBUztDQUNoQixDQUFDLENBQUM7QUFFSCxNQUFNLG1CQUFtQixHQUFHLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUU7SUFDM0QsTUFBTSxFQUFFLFNBQVM7SUFDakIsTUFBTSxFQUFFLFNBQVM7SUFDakIsSUFBSSxFQUFFLFNBQVM7SUFDZixHQUFHLEVBQUUsU0FBUztJQUNkLEtBQUssRUFBRSxTQUFTO0lBQ2hCLElBQUksRUFBRSxTQUFTO0NBQ2hCLENBQUMsQ0FBQztBQUVILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxLQUFxQixFQUFFLElBQUksR0FBRyxLQUFLO0lBQ3ZFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsT0FBTyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY3plY2hEYXRlRm9ybWF0ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJjcy1DWlwiLCB7XG4gIGRheTogXCJudW1lcmljXCIsXG4gIG1vbnRoOiBcIm51bWVyaWNcIixcbiAgeWVhcjogXCJudW1lcmljXCJcbn0pO1xuXG5jb25zdCBjemVjaERhdGVUaW1lRm9ybWF0ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJjcy1DWlwiLCB7XG4gIHNlY29uZDogXCJudW1lcmljXCIsXG4gIG1pbnV0ZTogXCJudW1lcmljXCIsXG4gIGhvdXI6IFwibnVtZXJpY1wiLFxuICBkYXk6IFwibnVtZXJpY1wiLFxuICBtb250aDogXCJudW1lcmljXCIsXG4gIHllYXI6IFwibnVtZXJpY1wiXG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRvQ3plY2hEYXRlVGltZVN0cmluZyh2YWx1ZT86IERhdGUgfCBzdHJpbmcsIHRpbWUgPSBmYWxzZSk6IHN0cmluZyB7XG4gIGlmICghdmFsdWUpIHtcbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICB2YWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgfVxuXG4gIGlmICh0aW1lKSB7XG4gICAgcmV0dXJuIGN6ZWNoRGF0ZVRpbWVGb3JtYXQuZm9ybWF0KHZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiBjemVjaERhdGVGb3JtYXQuZm9ybWF0KHZhbHVlKTtcbn0iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaXNvZnQtY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2NvcmUvc3JjL3Zlcmlzb2Z0LWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}