@verisoft/core 19.0.0-rc001 → 20.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,289 @@
1
- # core
1
+ # @verisoft/core
2
2
 
3
+ Core utilities and HTTP services for Verisoft Angular applications, providing foundational functionality for data access, HTTP communication, and utility operations.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @verisoft/core
9
+ ```
10
+
11
+ ## Features
12
+
13
+ - **BaseHttpService**: Generic HTTP service with CRUD operations
14
+ - **HTTP Models**: Type-safe request/response models
15
+ - **Utility Functions**: Common operations for arrays, objects, dates, and data manipulation
16
+ - **Storage Services**: Local storage abstraction
17
+ - **Error Handling**: Centralized error provider service
18
+
19
+ ## Core Services
20
+
21
+ ### BaseHttpService
22
+
23
+ Generic HTTP service providing standardized CRUD operations for REST APIs.
24
+
25
+ ```typescript
26
+ import { Injectable } from '@angular/core';
27
+ import { BaseHttpService } from '@verisoft/core';
28
+
29
+ @Injectable({ providedIn: 'root' })
30
+ export class UserService extends BaseHttpService<User> {
31
+ constructor() {
32
+ super('users'); // Base endpoint path
33
+ }
34
+ }
35
+
36
+ // Usage
37
+ export class UserComponent {
38
+ constructor(private userService: UserService) {}
39
+
40
+ loadUsers() {
41
+ this.userService.fetchList({ page: 1, size: 10 })
42
+ .subscribe(page => {
43
+ console.log(page.data); // User[]
44
+ console.log(page.total); // Total count
45
+ });
46
+ }
47
+
48
+ getUser(id: number) {
49
+ this.userService.get(id)
50
+ .subscribe(user => console.log(user));
51
+ }
52
+
53
+ createUser(user: CreateUserDto) {
54
+ this.userService.post(user)
55
+ .subscribe(created => console.log(created));
56
+ }
57
+
58
+ updateUser(id: number, user: UpdateUserDto) {
59
+ this.userService.put(id, user)
60
+ .subscribe(updated => console.log(updated));
61
+ }
62
+
63
+ deleteUser(id: number) {
64
+ this.userService.delete(id)
65
+ .subscribe(() => console.log('Deleted'));
66
+ }
67
+ }
68
+ ```
69
+
70
+ ### HTTP Models
71
+
72
+ Type-safe models for API communication:
73
+
74
+ ```typescript
75
+ import { RequestParams, Page, SortDirection } from '@verisoft/core';
76
+
77
+ interface UserFilter {
78
+ name?: string;
79
+ email?: string;
80
+ active?: boolean;
81
+ }
82
+
83
+ // Request parameters with filtering and sorting
84
+ const params: RequestParams<UserFilter> = {
85
+ page: 1,
86
+ size: 20,
87
+ filter: {
88
+ active: true,
89
+ name: 'John'
90
+ },
91
+ sort: {
92
+ field: 'createdAt',
93
+ direction: SortDirection.DESC
94
+ }
95
+ };
96
+
97
+ // Response pagination
98
+ interface UserPage extends Page<User> {
99
+ data: User[];
100
+ total: number;
101
+ size: number;
102
+ }
103
+ ```
104
+
105
+ ### Utility Functions
106
+
107
+ Common utility operations for data manipulation:
108
+
109
+ ```typescript
110
+ import {
111
+ ArrayUtils,
112
+ ObjectUtils,
113
+ DateUtils,
114
+ DataUtils,
115
+ ClearUtils
116
+ } from '@verisoft/core';
117
+
118
+ // Array utilities
119
+ const uniqueItems = ArrayUtils.unique([1, 2, 2, 3]);
120
+ const groupedData = ArrayUtils.groupBy(users, 'department');
121
+
122
+ // Object utilities
123
+ const merged = ObjectUtils.merge(obj1, obj2);
124
+ const cloned = ObjectUtils.deepClone(originalObject);
125
+
126
+ // Date utilities
127
+ const formatted = DateUtils.format(new Date(), 'DD/MM/YYYY');
128
+ const isValid = DateUtils.isValid('2023-12-31');
129
+
130
+ // Data utilities
131
+ const filtered = DataUtils.filterBy(items, 'status', 'active');
132
+ const sorted = DataUtils.sortBy(items, 'name');
133
+
134
+ // Clear utilities
135
+ const cleaned = ClearUtils.removeEmpty(objectWithNulls);
136
+ ```
137
+
138
+ ### Storage Services
139
+
140
+ Local storage abstraction with type safety:
141
+
142
+ ```typescript
143
+ import { LocalStorageService } from '@verisoft/core';
144
+
145
+ export class SettingsService {
146
+ constructor(private storage: LocalStorageService) {}
147
+
148
+ saveUserPreferences(prefs: UserPreferences) {
149
+ this.storage.setItem('userPrefs', prefs);
150
+ }
151
+
152
+ getUserPreferences(): UserPreferences | null {
153
+ return this.storage.getItem<UserPreferences>('userPrefs');
154
+ }
155
+
156
+ clearPreferences() {
157
+ this.storage.removeItem('userPrefs');
158
+ }
159
+ }
160
+ ```
161
+
162
+ ### Error Handling
163
+
164
+ Centralized error provider for consistent error management:
165
+
166
+ ```typescript
167
+ import { ErrorProviderService } from '@verisoft/core';
168
+
169
+ @Component({...})
170
+ export class MyComponent {
171
+ constructor(private errorProvider: ErrorProviderService) {}
172
+
173
+ handleApiError(error: any) {
174
+ this.errorProvider.handleError(error);
175
+ // Automatically handles common HTTP errors
176
+ }
177
+ }
178
+ ```
179
+
180
+ ## Configuration
181
+
182
+ ### Base URL Configuration
183
+
184
+ Configure the base URL for HTTP services:
185
+
186
+ ```typescript
187
+ import { BASE_URL_PATH } from '@verisoft/core';
188
+
189
+ @NgModule({
190
+ providers: [
191
+ {
192
+ provide: BASE_URL_PATH,
193
+ useValue: 'https://api.example.com/v1'
194
+ }
195
+ ]
196
+ })
197
+ export class AppModule {}
198
+ ```
199
+
200
+ ### Service Configuration
201
+
202
+ Customize BaseHttpService behavior:
203
+
204
+ ```typescript
205
+ @Injectable()
206
+ export class CustomUserService extends BaseHttpService<User> {
207
+ constructor() {
208
+ super('users', {
209
+ timeout: 10000,
210
+ retries: 3,
211
+ headers: {
212
+ 'Custom-Header': 'value'
213
+ }
214
+ });
215
+ }
216
+
217
+ // Override default methods
218
+ protected override handleError(error: any) {
219
+ // Custom error handling
220
+ return super.handleError(error);
221
+ }
222
+ }
223
+ ```
224
+
225
+ ## Advanced Usage
226
+
227
+ ### Custom Request Parameters
228
+
229
+ Extend request parameters for specific needs:
230
+
231
+ ```typescript
232
+ interface CustomRequestParams<T> extends RequestParams<T> {
233
+ includeDeleted?: boolean;
234
+ expand?: string[];
235
+ }
236
+
237
+ class ExtendedService extends BaseHttpService<MyEntity> {
238
+ fetchWithOptions(params: CustomRequestParams<MyFilter>) {
239
+ return this.httpClient.get<Page<MyEntity>>(
240
+ this.buildUrl('', params)
241
+ );
242
+ }
243
+ }
244
+ ```
245
+
246
+ ### Response Transformation
247
+
248
+ Transform API responses:
249
+
250
+ ```typescript
251
+ class TransformingService extends BaseHttpService<User> {
252
+ fetchList(params: RequestParams<UserFilter>) {
253
+ return super.fetchList(params).pipe(
254
+ map(page => ({
255
+ ...page,
256
+ data: page.data.map(user => ({
257
+ ...user,
258
+ fullName: `${user.firstName} ${user.lastName}`
259
+ }))
260
+ }))
261
+ );
262
+ }
263
+ }
264
+ ```
265
+
266
+ ## Best Practices
267
+
268
+ 1. **Extend BaseHttpService**: Create specific services for each entity
269
+ 2. **Use Type Safety**: Define proper interfaces for filters and DTOs
270
+ 3. **Handle Errors**: Implement proper error handling strategies
271
+ 4. **Cache Responses**: Consider implementing caching for frequently accessed data
272
+ 5. **Test Services**: Write unit tests for service methods
273
+
274
+ ## Dependencies
275
+
276
+ - `@angular/common/http`
277
+ - `rxjs`
278
+ - `moment` (for date utilities)
279
+
280
+ ## Contributing
281
+
282
+ This library is part of the Verisoft framework ecosystem. Follow the established patterns and ensure compatibility with other @verisoft packages.
283
+
284
+ ## Running unit tests
285
+
286
+ Run `nx test core` to execute the unit tests.
3
287
  This library was generated with [Nx](https://nx.dev).
4
288
 
5
289
  ## Running unit tests
@@ -297,10 +297,10 @@ class LocalizableErrorProviderService {
297
297
  const value = errors[key];
298
298
  return { key, value };
299
299
  }
300
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: LocalizableErrorProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
301
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: LocalizableErrorProviderService, providedIn: 'root' }); }
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
302
  }
303
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: LocalizableErrorProviderService, decorators: [{
303
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: LocalizableErrorProviderService, decorators: [{
304
304
  type: Injectable,
305
305
  args: [{
306
306
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"verisoft-core.mjs","sources":["../../../../../src/libs/core/src/lib/models/constants.ts","../../../../../src/libs/core/src/lib/models/base-http.models.ts","../../../../../src/libs/core/src/lib/utils/clear.utils.ts","../../../../../src/libs/core/src/lib/services/base-http.service.ts","../../../../../src/libs/core/src/lib/models/datasource.model.ts","../../../../../src/libs/core/src/lib/models/error-provider.model.ts","../../../../../src/libs/core/src/lib/services/local-storage.service.ts","../../../../../src/libs/core/src/lib/services/error-provider.service.ts","../../../../../src/libs/core/src/lib/utils/keyOrFn.utils.ts","../../../../../src/libs/core/src/lib/utils/object.utils.ts","../../../../../src/libs/core/src/lib/utils/array.utils.ts","../../../../../src/libs/core/src/lib/utils/data.utils.ts","../../../../../src/libs/core/src/lib/utils/date.utils.ts","../../../../../src/libs/core/src/verisoft-core.ts"],"sourcesContent":["import { LazyLoadEvent } from './event.models';\r\n\r\nexport const DEFAULT_PAGE_SIZE = 50;\r\n\r\nexport const DEFAULT_LAZYLOAD_OPTIONS: LazyLoadEvent = {\r\n offset: 0,\r\n limit: DEFAULT_PAGE_SIZE,\r\n};\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpParams, HttpResponse } from '@angular/common/http';\nimport { InjectionToken } from '@angular/core';\n\nexport const BASE_URL_PATH = new InjectionToken<string>('BASE_URL_PATH');\n\nexport function requestParamsToHttpParams<T>(\n requestParams: Partial<RequestParams<T>>,\n httpParams: HttpParams = new HttpParams()\n): HttpParams {\n if (requestParams.limit != undefined) {\n httpParams = httpParams.append('limit', requestParams.limit.toString());\n }\n\n if (requestParams.offset != undefined) {\n httpParams = httpParams.append('offset', requestParams.offset.toString());\n }\n\n if (requestParams.id != '' && requestParams.id != undefined) {\n httpParams = httpParams.append('id', requestParams.id as any);\n }\n\n httpParams = getFilter(requestParams, httpParams);\n httpParams = getSort(requestParams, httpParams);\n\n return httpParams;\n}\n\nfunction getFilter<T>(\n requestParams: Partial<RequestParams<any>>,\n httpParams: HttpParams\n): HttpParams {\n if (!requestParams.filter) {\n return httpParams;\n }\n Object.keys(requestParams?.filter).forEach((key) => {\n const value = requestParams.filter?.[key as keyof Partial<T>];\n if (value != undefined && !(typeof value === 'string' && value.trim() === \"\")) {\n if (Array.isArray(value)) {\n value.forEach((valueItem: any) => {\n httpParams = httpParams.append(\n 'Filter.' + key, valueItem\n );\n });\n } else {\n httpParams = httpParams.append('Filter.' + key, value);\n }\n }\n });\n return httpParams;\n}\n\nfunction getSort(\n requestParams: Partial<RequestParams<any>>,\n httpParams: HttpParams\n): HttpParams {\n if (!requestParams.sort) {\n return httpParams;\n }\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}\n\nexport function saveFile(response: HttpResponse<Blob>) {\n const fileName = response.headers\n .get('Content-Disposition')\n ?.split(';')[1]\n .split('=')[1];\n const blob: Blob = response.body as Blob;\n const a = document.createElement('a');\n a.download = fileName ?? 'undefined';\n a.href = window.URL.createObjectURL(blob);\n a.click();\n}\n\nexport enum SortDirection {\n asc = 'asc',\n desc = 'desc',\n}\n\nexport declare type SortDirectionType = keyof typeof SortDirection;\n\nexport declare interface Sort {\n field: string;\n direction: SortDirectionType;\n}\n\nexport interface RequestParams<T> extends AllDataRequestParams<T> {\n offset: number;\n limit: number;\n id?: string;\n}\n\nexport interface AllDataRequestParams<T> {\n filter?: Partial<T>;\n sort?: Sort[];\n}\n\nexport interface Page<T> {\n data: T[];\n total: number;\n limit: number;\n offset: number;\n}\n\nexport interface CustomExport<T> {\n sortDefinition?: Sort;\n filter?: Partial<T>;\n columnsToExport: ColumnExportSpecification[];\n}\n\nexport interface ColumnExportSpecification {\n name: string;\n header: string;\n}\n\nexport const DEFAULT_SEARCH_LIMIT = 50;\n\nexport const DEFAULT_SEARCH_PARAMS: RequestParams<any> = {\n offset: 0,\n limit: DEFAULT_SEARCH_LIMIT,\n id: '',\n};\n\nexport function normalizeRequest<T>(\n request: Partial<RequestParams<T>>,\n minLimit: number | undefined = undefined\n): RequestParams<T> {\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","export class ClearUtils {\n\n static recursiveObjectAttributesTransformation(obj: any): void {\n ClearUtils.recursiveObjectAttributesTraversal(\n obj,\n ClearUtils.transformEmptyStringToNullStringFn\n );\n }\n static recursiveObjectAttributesDeletation(obj: any): void {\n ClearUtils.recursiveObjectAttributesTraversal(\n obj,\n ClearUtils.deleteEmptyStringToNullStringFn\n );\n }\n\n static transformEmptyStringToNullStringFn(obj: any, key: string) {\n if (typeof obj[key] === 'string' && obj[key] === '') {\n obj[key] = null;\n }\n }\n static deleteEmptyStringToNullStringFn(obj: any, key: string) {\n if (obj[key] === '' || obj[key] === null || obj[key] === undefined) {\n delete obj[key]\n }\n }\n\n\n static recursiveObjectAttributesTraversal(\n obj: any,\n transformationFn: (obj: any, key: string) => void\n ) {\n if (\n obj === null ||\n transformationFn === null ||\n typeof transformationFn !== 'function'\n ) {\n return;\n }\n\n Object.keys(obj).forEach((key) => {\n transformationFn(obj, key);\n\n if (typeof obj[key] === 'object') {\n this.recursiveObjectAttributesTraversal(obj[key], transformationFn);\n\n if (!Object.keys(obj[key]).length) {\n delete obj[key];\n }\n }\n });\n }\n\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { map, Observable } from 'rxjs';\nimport {\n AllDataRequestParams,\n DEFAULT_SEARCH_PARAMS,\n Page,\n RequestParams,\n requestParamsToHttpParams,\n} from '../models/base-http.models';\nimport { LazyLoadEvent } from '../models/event.models';\nimport { ClearUtils } from '../utils/clear.utils';\n\nexport class BaseHttpService<T, TKey = number | string> {\n constructor(\n readonly http: HttpClient,\n readonly basePath: string,\n readonly entityName: string\n ) {\n this.basePath = basePath;\n }\n\n protected get apiPath() {\n return this.basePath ? this.basePath + this.entityName : this.entityName;\n }\n\n fetchList(requestParams: RequestParams<T>): Observable<Page<T>> {\n const params = requestParamsToHttpParams<T>(requestParams);\n return this.http.get<Page<T>>(this.apiPath, { params }).pipe(\n map((response: Page<T>) => {\n response.limit = requestParams.limit;\n return response;\n })\n );\n }\n\n getData$(\n entityName: keyof T,\n searchTerm?: string | undefined,\n lazyLoad?: LazyLoadEvent\n ): Observable<T[]> {\n const filter: Partial<T> = { [entityName]: searchTerm } as Partial<T>;\n const params = lazyLoad\n ? requestParamsToHttpParams<T>({\n ...DEFAULT_SEARCH_PARAMS,\n offset: lazyLoad.offset,\n limit: lazyLoad.limit,\n filter,\n })\n : requestParamsToHttpParams<T>({\n ...DEFAULT_SEARCH_PARAMS,\n filter,\n });\n\n return this.http.get<T[]>(this.apiPath, { params });\n }\n\n get(id: TKey): Observable<T> {\n const url = `${this.apiPath}/${id}`;\n return this.http.get<T>(url);\n }\n\n post(entity: Partial<T>): Observable<T> {\n return this.http.post<T>(this.apiPath, entity);\n }\n\n put(id: TKey, entity: Partial<T>): Observable<T> {\n const url = `${this.apiPath}/${id}`;\n return this.http.put<T>(url, entity);\n }\n\n delete(id: TKey): Observable<T> {\n const url = `${this.apiPath}/${id}`;\n return this.http.delete<T>(url);\n }\n\n export(requestParams: AllDataRequestParams<T>): Observable<Blob> {\n const httpParams = requestParamsToHttpParams<T>(requestParams);\n const url = `${this.apiPath}/export`;\n return this.http.get(url, { responseType: 'blob', params: httpParams });\n }\n\n removeRange(entity: string[]) {\n return this.http.delete(this.apiPath, {\n body: entity,\n });\n }\n\n createParams<T>(requestParams: RequestParams<T>): any {\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\n private createSorter<T>(requestParams: RequestParams<T>) {\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","import { HttpClient } from '@angular/common/http';\r\nimport { isObservable, map, Observable, of } from 'rxjs';\r\nimport { BaseHttpService } from '../services/base-http.service';\r\nimport { AllItemDatasource } from './all-item.datasource';\r\nimport { Page, RequestParams } from './base-http.models';\r\nimport { DEFAULT_PAGE_SIZE } from './constants';\r\n\r\nexport type DatasourceType<T> =\r\n | string\r\n | Observable<T[]>\r\n | Observable<Page<T>>\r\n | BaseHttpService<T>\r\n | T[]\r\n | Page<T>\r\n | AllItemDatasource<T>;\r\n\r\nexport type DataSourceFunctionType<T> = (\r\n requestParams: RequestParams<T>\r\n) => Observable<Page<T>>;\r\n\r\nexport function convertDatasource<T>(\r\n datasource: DatasourceType<T>,\r\n basePath: string,\r\n httpClient: HttpClient\r\n): DataSourceFunctionType<T> {\r\n if (!datasource) {\r\n throw new Error('Datasource is not defined');\r\n }\r\n\r\n if (typeof datasource === 'string') {\r\n const service = new BaseHttpService<T>(httpClient, basePath, datasource);\r\n return (requestParams: RequestParams<T>) =>\r\n service.fetchList(requestParams);\r\n }\r\n\r\n if (datasource instanceof BaseHttpService) {\r\n return (requestParams: RequestParams<T>) =>\r\n datasource.fetchList(requestParams);\r\n }\r\n\r\n if (isObservable(datasource)) {\r\n return () =>\r\n (datasource as Observable<Page<T> | T[]>).pipe(map(convertArrayToPage));\r\n }\r\n\r\n const allItemDatasource = <AllItemDatasource<T>>datasource;\r\n if (allItemDatasource.getData$) {\r\n return () =>\r\n allItemDatasource\r\n .getData$()\r\n .pipe(map((data) => convertArrayToPage(data)));\r\n }\r\n\r\n const page = <Page<T>>datasource;\r\n if (page.data) {\r\n return () => of(page);\r\n }\r\n\r\n if (Array.isArray(datasource)) {\r\n return () => of(convertArrayToPage(datasource));\r\n }\r\n\r\n throw new Error('Datasource is not supported');\r\n}\r\n\r\nfunction convertArrayToPage<T>(data: Page<T> | T[]): Page<T> {\r\n if (Array.isArray(data)) {\r\n return {\r\n data: data ?? [],\r\n total: data?.length ?? 0,\r\n limit: data?.length ?? DEFAULT_PAGE_SIZE,\r\n offset: 0,\r\n };\r\n }\r\n\r\n return data as Page<T>;\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\nexport interface ErrorProvider {\n mapError(errors: ValidationErrors): Observable<string | undefined>;\n errors: Record<string, (value?: any) => string>;\n}\n\nexport const ERROR_PROVIDER_TOKEN\n = new InjectionToken<ErrorProvider>('ERROR_PROVIDER_TOKEN');\n\nexport enum CustomValidationCodes {}\n\nexport const ErrorMap: Record<string, (value?: any) => string> = {\n required: () => `VALIDATIONS.REQUIRED`,\n email: () => `VALIDATIONS.EMAIL`,\n minLength: () => 'VALIDATIONS.MIN_LENGTH',\n maxLength: () => 'VALIDATIONS.MAX_LENGTH',\n};\n","export class LocalStorageService {\n setItem(key: string, value: string) {\n localStorage.setItem(key, value);\n }\n\n getItem(key: string): string | null {\n return localStorage.getItem(key);\n }\n\n removeItem(key: string) {\n localStorage.removeItem(key);\n }\n}","import { inject, Injectable } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable, of } from 'rxjs';\nimport { ErrorProvider, ErrorMap } from '../models/error-provider.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalizableErrorProviderService implements ErrorProvider {\n private readonly translateService = inject(TranslateService);\n readonly errors: Record<string, (value?: any) => string> = ErrorMap;\n\n mapError(errors: ValidationErrors): Observable<string | undefined> {\n const error = this.getFirstValue(errors);\n if (!error || !error.key) {\n return of(undefined);\n }\n\n try {\n const value = this.errors[error.key](error.value);\n return this.translateService.get(value);\n } catch (_) {\n throw new Error(`Key \"${error.key}\" is not specified in the current error map!`);\n }\n }\n\n private getFirstValue(errors: ValidationErrors): { key: string; value: string } {\n const key = Object.keys(errors)[0];\n const value = errors[key];\n return { key, value };\n }\n}\n","export function keyOrFn(keyOrFn: ((row: any) => string | undefined) | string, row: any) {\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","export function sortBy<TEntity, TProperty>(\r\n items: TEntity[],\r\n selector: (item: TEntity) => TProperty,\r\n ascending = true\r\n): TEntity[] {\r\n return [...items].sort((item, other) => {\r\n const value = selector(item);\r\n const otherValue = selector(other);\r\n const direction = ascending ? 1 : -1;\r\n if (value == undefined && other == undefined) {\r\n return 0;\r\n }\r\n\r\n if (value == undefined) {\r\n return -1 * direction;\r\n }\r\n if (otherValue == undefined) {\r\n return 1 * direction;\r\n }\r\n\r\n if (value < otherValue) {\r\n return -1 * direction;\r\n }\r\n\r\n if (value > otherValue) {\r\n return 1 * direction;\r\n }\r\n\r\n return 0;\r\n });\r\n}\r\n\r\nexport function getValueByPath<T, TValue>(\r\n obj: T,\r\n path: string | undefined,\r\n): TValue | undefined {\r\n if (path == undefined || path == ''){\r\n return obj as unknown as TValue;\r\n }\r\n\r\n return path.split('.').reduce((acc, key) => {\r\n if (acc && typeof acc === 'object' && key in acc) {\r\n return (acc as Record<string, TValue>)[key];\r\n }\r\n return undefined;\r\n }, obj as unknown) as TValue;\r\n}\r\n","import { Sort } from \"../models\";\nimport { getValueByPath } from \"./object.utils\";\n\ntype ArrayIntersectionType = (string | number)[]\n\nexport function isArrayIntersected(\n array1: ArrayIntersectionType,\n array2: ArrayIntersectionType,\n) {\n const filteredArray = array1.filter(value => array2.includes(value));\n return filteredArray.length > 0;\n}\n\nexport function multiSort<T>(values: T[], sorts: Sort[]): T[] {\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\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\n if (baseCompare === 0) {\n return valueA < valueB ? -1 : valueA > valueB ? 1 : 0;\n }\n\n return direction === 'asc' ? baseCompare : -baseCompare;\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\n return 0;\n });\n}\n\nfunction isComparable(value: unknown): value is string | number | Date {\n return typeof value === 'string'\n || typeof value === 'number'\n || typeof value === 'boolean'\n || value instanceof Date;\n}\n","import moment from 'moment';\n\nexport function transformData(data: any) {\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}\n\nexport function convertToDate(data: any) {\n if (data) {\n if (!isNaN(Date.parse(data))) {\n return new Date(data);\n }\n }\n return data;\n}\n\nexport function convertToDateTime(data: any) {\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","const czechDateFormat = new Intl.DateTimeFormat(\"cs-CZ\", {\n day: \"numeric\",\n month: \"numeric\",\n year: \"numeric\"\n});\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});\n\nexport function toCzechDateTimeString(value?: Date | string, time = false): string {\n if (!value) {\n return \"\";\n }\n\n if (typeof value === \"string\") {\n value = new Date(value);\n }\n\n if (time) {\n return czechDateTimeFormat.format(value);\n }\n\n return czechDateFormat.format(value);\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1odHRwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9jb3JlL3NyYy9saWIvc2VydmljZXMvYmFzZS1odHRwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBRUwscUJBQXFCLEVBR3JCLHlCQUF5QixHQUMxQixNQUFNLDRCQUE0QixDQUFDO0FBRXBDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUNXLElBQWdCLEVBQ2hCLFFBQWdCLEVBQ2hCLFVBQWtCO1FBRmxCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBRTNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFjLE9BQU87UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0UsQ0FBQztJQUVELFNBQVMsQ0FBQyxhQUErQjtRQUN2QyxNQUFNLE1BQU0sR0FBRyx5QkFBeUIsQ0FBSSxhQUFhLENBQUMsQ0FBQztRQUMzRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFVLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDMUQsR0FBRyxDQUFDLENBQUMsUUFBaUIsRUFBRSxFQUFFO1lBQ3hCLFFBQVEsQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUNyQyxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FDTixVQUFtQixFQUNuQixVQUErQixFQUMvQixRQUF3QjtRQUV4QixNQUFNLE1BQU0sR0FBZSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFnQixDQUFDO1FBQ3RFLE1BQU0sTUFBTSxHQUFHLFFBQVE7WUFDckIsQ0FBQyxDQUFDLHlCQUF5QixDQUFJO2dCQUMzQixHQUFHLHFCQUFxQjtnQkFDeEIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO2dCQUN2QixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0JBQ3JCLE1BQU07YUFDUCxDQUFDO1lBQ0osQ0FBQyxDQUFDLHlCQUF5QixDQUFJO2dCQUMzQixHQUFHLHFCQUFxQjtnQkFDeEIsTUFBTTthQUNQLENBQUMsQ0FBQztRQUVQLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELEdBQUcsQ0FBQyxFQUFRO1FBQ1YsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFrQjtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEdBQUcsQ0FBQyxFQUFRLEVBQUUsTUFBa0I7UUFDOUIsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBUTtRQUNiLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBc0M7UUFDM0MsTUFBTSxVQUFVLEdBQUcseUJBQXlCLENBQUksYUFBYSxDQUFDLENBQUM7UUFDL0QsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxTQUFTLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBZ0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3BDLElBQUksRUFBRSxNQUFNO1NBQ2IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBSSxhQUErQjtRQUM3QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNoRSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztRQUNqQyxVQUFVLENBQUMsbUNBQW1DLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNsRSxPQUFPO1lBQ0wsTUFBTSxFQUFFO2dCQUNOLE1BQU0sRUFBRSxhQUFhLENBQUMsTUFBTTtnQkFDNUIsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLO2FBQzNCO1lBQ0QsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNsQyxHQUFHLENBQUMsaUJBQWlCLElBQUksRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztTQUN4RCxDQUFDO0lBQ0osQ0FBQztJQUVPLFlBQVksQ0FBSSxhQUErQjtRQUNyRCxJQUFJLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckMsT0FBTztnQkFDTCxTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUs7Z0JBQ3ZCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUzthQUM1QixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQWxsRGF0YVJlcXVlc3RQYXJhbXMsXG4gIERFRkFVTFRfU0VBUkNIX1BBUkFNUyxcbiAgUGFnZSxcbiAgUmVxdWVzdFBhcmFtcyxcbiAgcmVxdWVzdFBhcmFtc1RvSHR0cFBhcmFtcyxcbn0gZnJvbSAnLi4vbW9kZWxzL2Jhc2UtaHR0cC5tb2RlbHMnO1xuaW1wb3J0IHsgTGF6eUxvYWRFdmVudCB9IGZyb20gJy4uL21vZGVscy9ldmVudC5tb2RlbHMnO1xuaW1wb3J0IHsgQ2xlYXJVdGlscyB9IGZyb20gJy4uL3V0aWxzL2NsZWFyLnV0aWxzJztcblxuZXhwb3J0IGNsYXNzIEJhc2VIdHRwU2VydmljZTxULCBUS2V5ID0gbnVtYmVyIHwgc3RyaW5nPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcmVhZG9ubHkgYmFzZVBhdGg6IHN0cmluZyxcbiAgICByZWFkb25seSBlbnRpdHlOYW1lOiBzdHJpbmdcbiAgKSB7XG4gICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBhcGlQYXRoKCkge1xuICAgIHJldHVybiB0aGlzLmJhc2VQYXRoID8gdGhpcy5iYXNlUGF0aCArIHRoaXMuZW50aXR5TmFtZSA6IHRoaXMuZW50aXR5TmFtZTtcbiAgfVxuXG4gIGZldGNoTGlzdChyZXF1ZXN0UGFyYW1zOiBSZXF1ZXN0UGFyYW1zPFQ+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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"}
package/index.d.ts CHANGED
@@ -1,3 +1,135 @@
1
- export * from './lib/models';
2
- export * from './lib/services';
3
- export * from './lib/utils';
1
+ import { HttpParams, HttpResponse, HttpClient } from '@angular/common/http';
2
+ import * as i0 from '@angular/core';
3
+ import { InjectionToken } from '@angular/core';
4
+ import { Observable } from 'rxjs';
5
+ import { ValidationErrors } from '@angular/forms';
6
+
7
+ interface EnvironmentConfig {
8
+ production: boolean;
9
+ apiUrl: string;
10
+ appVersion: string;
11
+ }
12
+
13
+ declare const BASE_URL_PATH: InjectionToken<string>;
14
+ declare function requestParamsToHttpParams<T>(requestParams: Partial<RequestParams<T>>, httpParams?: HttpParams): HttpParams;
15
+ declare function saveFile(response: HttpResponse<Blob>): void;
16
+ declare enum SortDirection {
17
+ asc = "asc",
18
+ desc = "desc"
19
+ }
20
+ declare type SortDirectionType = keyof typeof SortDirection;
21
+ declare interface Sort {
22
+ field: string;
23
+ direction: SortDirectionType;
24
+ }
25
+ interface RequestParams<T> extends AllDataRequestParams<T> {
26
+ offset: number;
27
+ limit: number;
28
+ id?: string;
29
+ }
30
+ interface AllDataRequestParams<T> {
31
+ filter?: Partial<T>;
32
+ sort?: Sort[];
33
+ }
34
+ interface Page<T> {
35
+ data: T[];
36
+ total: number;
37
+ limit: number;
38
+ offset: number;
39
+ }
40
+ interface CustomExport<T> {
41
+ sortDefinition?: Sort;
42
+ filter?: Partial<T>;
43
+ columnsToExport: ColumnExportSpecification[];
44
+ }
45
+ interface ColumnExportSpecification {
46
+ name: string;
47
+ header: string;
48
+ }
49
+ declare const DEFAULT_SEARCH_LIMIT = 50;
50
+ declare const DEFAULT_SEARCH_PARAMS: RequestParams<any>;
51
+ declare function normalizeRequest<T>(request: Partial<RequestParams<T>>, minLimit?: number | undefined): RequestParams<T>;
52
+
53
+ type LazyLoadEvent = RequestParams<unknown>;
54
+ interface FilterEvent {
55
+ filter?: string;
56
+ }
57
+
58
+ declare const DEFAULT_PAGE_SIZE = 50;
59
+ declare const DEFAULT_LAZYLOAD_OPTIONS: LazyLoadEvent;
60
+
61
+ interface AllItemDatasource<T> {
62
+ getData$: () => Observable<T[]>;
63
+ }
64
+
65
+ declare class BaseHttpService<T, TKey = number | string> {
66
+ readonly http: HttpClient;
67
+ readonly basePath: string;
68
+ readonly entityName: string;
69
+ constructor(http: HttpClient, basePath: string, entityName: string);
70
+ protected get apiPath(): string;
71
+ fetchList(requestParams: RequestParams<T>): Observable<Page<T>>;
72
+ getData$(entityName: keyof T, searchTerm?: string | undefined, lazyLoad?: LazyLoadEvent): Observable<T[]>;
73
+ get(id: TKey): Observable<T>;
74
+ post(entity: Partial<T>): Observable<T>;
75
+ put(id: TKey, entity: Partial<T>): Observable<T>;
76
+ delete(id: TKey): Observable<T>;
77
+ export(requestParams: AllDataRequestParams<T>): Observable<Blob>;
78
+ removeRange(entity: string[]): Observable<Object>;
79
+ createParams<T>(requestParams: RequestParams<T>): any;
80
+ private createSorter;
81
+ }
82
+
83
+ type DatasourceType<T> = string | Observable<T[]> | Observable<Page<T>> | BaseHttpService<T> | T[] | Page<T> | AllItemDatasource<T>;
84
+ type DataSourceFunctionType<T> = (requestParams: RequestParams<T>) => Observable<Page<T>>;
85
+ declare function convertDatasource<T>(datasource: DatasourceType<T>, basePath: string, httpClient: HttpClient): DataSourceFunctionType<T>;
86
+
87
+ interface ErrorProvider {
88
+ mapError(errors: ValidationErrors): Observable<string | undefined>;
89
+ errors: Record<string, (value?: any) => string>;
90
+ }
91
+ declare const ERROR_PROVIDER_TOKEN: InjectionToken<ErrorProvider>;
92
+ declare enum CustomValidationCodes {
93
+ }
94
+ declare const ErrorMap: Record<string, (value?: any) => string>;
95
+
96
+ declare class LocalStorageService {
97
+ setItem(key: string, value: string): void;
98
+ getItem(key: string): string | null;
99
+ removeItem(key: string): void;
100
+ }
101
+
102
+ declare class LocalizableErrorProviderService implements ErrorProvider {
103
+ private readonly translateService;
104
+ readonly errors: Record<string, (value?: any) => string>;
105
+ mapError(errors: ValidationErrors): Observable<string | undefined>;
106
+ private getFirstValue;
107
+ static ɵfac: i0.ɵɵFactoryDeclaration<LocalizableErrorProviderService, never>;
108
+ static ɵprov: i0.ɵɵInjectableDeclaration<LocalizableErrorProviderService>;
109
+ }
110
+
111
+ declare class ClearUtils {
112
+ static recursiveObjectAttributesTransformation(obj: any): void;
113
+ static recursiveObjectAttributesDeletation(obj: any): void;
114
+ static transformEmptyStringToNullStringFn(obj: any, key: string): void;
115
+ static deleteEmptyStringToNullStringFn(obj: any, key: string): void;
116
+ static recursiveObjectAttributesTraversal(obj: any, transformationFn: (obj: any, key: string) => void): void;
117
+ }
118
+
119
+ declare function keyOrFn(keyOrFn: ((row: any) => string | undefined) | string, row: any): any;
120
+
121
+ type ArrayIntersectionType = (string | number)[];
122
+ declare function isArrayIntersected(array1: ArrayIntersectionType, array2: ArrayIntersectionType): boolean;
123
+ declare function multiSort<T>(values: T[], sorts: Sort[]): T[];
124
+
125
+ declare function transformData(data: any): any;
126
+ declare function convertToDate(data: any): any;
127
+ declare function convertToDateTime(data: any): any;
128
+
129
+ declare function sortBy<TEntity, TProperty>(items: TEntity[], selector: (item: TEntity) => TProperty, ascending?: boolean): TEntity[];
130
+ declare function getValueByPath<T, TValue>(obj: T, path: string | undefined): TValue | undefined;
131
+
132
+ declare function toCzechDateTimeString(value?: Date | string, time?: boolean): string;
133
+
134
+ 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 };
135
+ export type { AllDataRequestParams, AllItemDatasource, ColumnExportSpecification, CustomExport, DataSourceFunctionType, DatasourceType, EnvironmentConfig, ErrorProvider, FilterEvent, LazyLoadEvent, Page, RequestParams, Sort, SortDirectionType };
package/package.json CHANGED
@@ -1,18 +1,15 @@
1
1
  {
2
2
  "name": "@verisoft/core",
3
- "version": "19.0.0-rc001",
3
+ "version": "20.0.0",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
- "@angular/common": "19.2.9",
7
- "@angular/core": "19.2.9",
8
- "@angular/forms": "19.2.9",
9
- "@ngx-translate/core": "^16.0.4",
6
+ "@angular/common": "~20.2.0",
7
+ "@angular/core": "~20.2.0",
8
+ "@angular/forms": "~20.2.0",
9
+ "@ngx-translate/core": "^17.0.0",
10
10
  "moment": "^2.30.1",
11
11
  "rxjs": "~7.8.0"
12
12
  },
13
- "publishConfig": {
14
- "access": "public"
15
- },
16
13
  "module": "fesm2022/verisoft-core.mjs",
17
14
  "typings": "index.d.ts",
18
15
  "exports": {
@@ -1,4 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- export interface AllItemDatasource<T> {
3
- getData$: () => Observable<T[]>;
4
- }
@@ -1,41 +0,0 @@
1
- import { HttpParams, HttpResponse } from '@angular/common/http';
2
- import { InjectionToken } from '@angular/core';
3
- export declare const BASE_URL_PATH: InjectionToken<string>;
4
- export declare function requestParamsToHttpParams<T>(requestParams: Partial<RequestParams<T>>, httpParams?: HttpParams): HttpParams;
5
- export declare function saveFile(response: HttpResponse<Blob>): void;
6
- export declare enum SortDirection {
7
- asc = "asc",
8
- desc = "desc"
9
- }
10
- export declare type SortDirectionType = keyof typeof SortDirection;
11
- export declare interface Sort {
12
- field: string;
13
- direction: SortDirectionType;
14
- }
15
- export interface RequestParams<T> extends AllDataRequestParams<T> {
16
- offset: number;
17
- limit: number;
18
- id?: string;
19
- }
20
- export interface AllDataRequestParams<T> {
21
- filter?: Partial<T>;
22
- sort?: Sort[];
23
- }
24
- export interface Page<T> {
25
- data: T[];
26
- total: number;
27
- limit: number;
28
- offset: number;
29
- }
30
- export interface CustomExport<T> {
31
- sortDefinition?: Sort;
32
- filter?: Partial<T>;
33
- columnsToExport: ColumnExportSpecification[];
34
- }
35
- export interface ColumnExportSpecification {
36
- name: string;
37
- header: string;
38
- }
39
- export declare const DEFAULT_SEARCH_LIMIT = 50;
40
- export declare const DEFAULT_SEARCH_PARAMS: RequestParams<any>;
41
- export declare function normalizeRequest<T>(request: Partial<RequestParams<T>>, minLimit?: number | undefined): RequestParams<T>;
@@ -1,3 +0,0 @@
1
- import { LazyLoadEvent } from './event.models';
2
- export declare const DEFAULT_PAGE_SIZE = 50;
3
- export declare const DEFAULT_LAZYLOAD_OPTIONS: LazyLoadEvent;
@@ -1,8 +0,0 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { Observable } from 'rxjs';
3
- import { BaseHttpService } from '../services/base-http.service';
4
- import { AllItemDatasource } from './all-item.datasource';
5
- import { Page, RequestParams } from './base-http.models';
6
- export type DatasourceType<T> = string | Observable<T[]> | Observable<Page<T>> | BaseHttpService<T> | T[] | Page<T> | AllItemDatasource<T>;
7
- export type DataSourceFunctionType<T> = (requestParams: RequestParams<T>) => Observable<Page<T>>;
8
- export declare function convertDatasource<T>(datasource: DatasourceType<T>, basePath: string, httpClient: HttpClient): DataSourceFunctionType<T>;
@@ -1,5 +0,0 @@
1
- export interface EnvironmentConfig {
2
- production: boolean;
3
- apiUrl: string;
4
- appVersion: string;
5
- }
@@ -1,11 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- import { ValidationErrors } from '@angular/forms';
3
- import { Observable } from 'rxjs';
4
- export interface ErrorProvider {
5
- mapError(errors: ValidationErrors): Observable<string | undefined>;
6
- errors: Record<string, (value?: any) => string>;
7
- }
8
- export declare const ERROR_PROVIDER_TOKEN: InjectionToken<ErrorProvider>;
9
- export declare enum CustomValidationCodes {
10
- }
11
- export declare const ErrorMap: Record<string, (value?: any) => string>;
@@ -1,5 +0,0 @@
1
- import { RequestParams } from "./base-http.models";
2
- export type LazyLoadEvent = RequestParams<unknown>;
3
- export interface FilterEvent {
4
- filter?: string;
5
- }
@@ -1,7 +0,0 @@
1
- export * from './environment.model';
2
- export * from './event.models';
3
- export * from './constants';
4
- export * from './base-http.models';
5
- export * from './all-item.datasource';
6
- export * from './datasource.model';
7
- export * from './error-provider.model';
@@ -1,21 +0,0 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { Observable } from 'rxjs';
3
- import { AllDataRequestParams, Page, RequestParams } from '../models/base-http.models';
4
- import { LazyLoadEvent } from '../models/event.models';
5
- export declare class BaseHttpService<T, TKey = number | string> {
6
- readonly http: HttpClient;
7
- readonly basePath: string;
8
- readonly entityName: string;
9
- constructor(http: HttpClient, basePath: string, entityName: string);
10
- protected get apiPath(): string;
11
- fetchList(requestParams: RequestParams<T>): Observable<Page<T>>;
12
- getData$(entityName: keyof T, searchTerm?: string | undefined, lazyLoad?: LazyLoadEvent): Observable<T[]>;
13
- get(id: TKey): Observable<T>;
14
- post(entity: Partial<T>): Observable<T>;
15
- put(id: TKey, entity: Partial<T>): Observable<T>;
16
- delete(id: TKey): Observable<T>;
17
- export(requestParams: AllDataRequestParams<T>): Observable<Blob>;
18
- removeRange(entity: string[]): Observable<Object>;
19
- createParams<T>(requestParams: RequestParams<T>): any;
20
- private createSorter;
21
- }
@@ -1,12 +0,0 @@
1
- import { ValidationErrors } from '@angular/forms';
2
- import { Observable } from 'rxjs';
3
- import { ErrorProvider } from '../models/error-provider.model';
4
- import * as i0 from "@angular/core";
5
- export declare class LocalizableErrorProviderService implements ErrorProvider {
6
- private readonly translateService;
7
- readonly errors: Record<string, (value?: any) => string>;
8
- mapError(errors: ValidationErrors): Observable<string | undefined>;
9
- private getFirstValue;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<LocalizableErrorProviderService, never>;
11
- static ɵprov: i0.ɵɵInjectableDeclaration<LocalizableErrorProviderService>;
12
- }
@@ -1,3 +0,0 @@
1
- export * from './base-http.service';
2
- export * from './local-storage.service';
3
- export * from './error-provider.service';
@@ -1,5 +0,0 @@
1
- export declare class LocalStorageService {
2
- setItem(key: string, value: string): void;
3
- getItem(key: string): string | null;
4
- removeItem(key: string): void;
5
- }
@@ -1,5 +0,0 @@
1
- import { Sort } from "../models";
2
- type ArrayIntersectionType = (string | number)[];
3
- export declare function isArrayIntersected(array1: ArrayIntersectionType, array2: ArrayIntersectionType): boolean;
4
- export declare function multiSort<T>(values: T[], sorts: Sort[]): T[];
5
- export {};
@@ -1,7 +0,0 @@
1
- export declare class ClearUtils {
2
- static recursiveObjectAttributesTransformation(obj: any): void;
3
- static recursiveObjectAttributesDeletation(obj: any): void;
4
- static transformEmptyStringToNullStringFn(obj: any, key: string): void;
5
- static deleteEmptyStringToNullStringFn(obj: any, key: string): void;
6
- static recursiveObjectAttributesTraversal(obj: any, transformationFn: (obj: any, key: string) => void): void;
7
- }
@@ -1,3 +0,0 @@
1
- export declare function transformData(data: any): any;
2
- export declare function convertToDate(data: any): any;
3
- export declare function convertToDateTime(data: any): any;
@@ -1 +0,0 @@
1
- export declare function toCzechDateTimeString(value?: Date | string, time?: boolean): string;
@@ -1,6 +0,0 @@
1
- export * from './clear.utils';
2
- export * from './keyOrFn.utils';
3
- export * from './array.utils';
4
- export * from './data.utils';
5
- export * from './object.utils';
6
- export * from './date.utils';
@@ -1 +0,0 @@
1
- export declare function keyOrFn(keyOrFn: ((row: any) => string | undefined) | string, row: any): any;
@@ -1,2 +0,0 @@
1
- export declare function sortBy<TEntity, TProperty>(items: TEntity[], selector: (item: TEntity) => TProperty, ascending?: boolean): TEntity[];
2
- export declare function getValueByPath<T, TValue>(obj: T, path: string | undefined): TValue | undefined;