@verisoft/core 18.6.0 → 18.7.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.
Files changed (71) hide show
  1. package/.eslintrc.json +43 -0
  2. package/README.md +52 -3
  3. package/jest.config.ts +22 -0
  4. package/ng-package.json +7 -0
  5. package/package.json +14 -29
  6. package/project.json +36 -0
  7. package/{index.d.ts → src/index.ts} +3 -3
  8. package/src/lib/index.ts +1 -0
  9. package/{lib/models/all-item.datasource.d.ts → src/lib/models/all-item.datasource.ts} +5 -4
  10. package/src/lib/models/base-http.models.ts +144 -0
  11. package/src/lib/models/constants.ts +8 -0
  12. package/src/lib/models/datasource.model.ts +77 -0
  13. package/{lib/models/environment.model.d.ts → src/lib/models/environment.model.ts} +5 -5
  14. package/src/lib/models/error-provider.model.ts +20 -0
  15. package/{lib/models/event.models.d.ts → src/lib/models/event.models.ts} +7 -5
  16. package/{lib/models/index.d.ts → src/lib/models/index.ts} +7 -7
  17. package/src/lib/services/base-http.service.ts +114 -0
  18. package/src/lib/services/error-provider.service.ts +29 -0
  19. package/{lib/services/index.d.ts → src/lib/services/index.ts} +3 -3
  20. package/src/lib/services/local-storage.service.ts +13 -0
  21. package/src/lib/services/storage.service.ts +13 -0
  22. package/src/lib/utils/array.utils.spec.ts +49 -0
  23. package/src/lib/utils/array.utils.ts +54 -0
  24. package/src/lib/utils/clear.utils.ts +53 -0
  25. package/src/lib/utils/data.utils.ts +34 -0
  26. package/src/lib/utils/date.utils.ts +30 -0
  27. package/{lib/utils/index.d.ts → src/lib/utils/index.ts} +6 -6
  28. package/src/lib/utils/keyOrFn.utils.ts +15 -0
  29. package/src/lib/utils/object.utils.spec.ts +69 -0
  30. package/src/lib/utils/object.utils.ts +47 -0
  31. package/src/test-setup.ts +8 -0
  32. package/tsconfig.json +29 -0
  33. package/tsconfig.lib.json +20 -0
  34. package/tsconfig.lib.prod.json +9 -0
  35. package/tsconfig.spec.json +16 -0
  36. package/esm2022/index.mjs +0 -4
  37. package/esm2022/lib/models/all-item.datasource.mjs +0 -2
  38. package/esm2022/lib/models/base-http.models.mjs +0 -83
  39. package/esm2022/lib/models/constants.mjs +0 -6
  40. package/esm2022/lib/models/datasource.model.mjs +0 -44
  41. package/esm2022/lib/models/environment.model.mjs +0 -2
  42. package/esm2022/lib/models/error-provider.model.mjs +0 -12
  43. package/esm2022/lib/models/event.models.mjs +0 -2
  44. package/esm2022/lib/models/index.mjs +0 -8
  45. package/esm2022/lib/services/base-http.service.mjs +0 -86
  46. package/esm2022/lib/services/error-provider.service.mjs +0 -34
  47. package/esm2022/lib/services/index.mjs +0 -4
  48. package/esm2022/lib/services/local-storage.service.mjs +0 -12
  49. package/esm2022/lib/utils/array.utils.mjs +0 -43
  50. package/esm2022/lib/utils/clear.utils.mjs +0 -35
  51. package/esm2022/lib/utils/data.utils.mjs +0 -32
  52. package/esm2022/lib/utils/date.utils.mjs +0 -26
  53. package/esm2022/lib/utils/index.mjs +0 -7
  54. package/esm2022/lib/utils/keyOrFn.utils.mjs +0 -16
  55. package/esm2022/lib/utils/object.utils.mjs +0 -35
  56. package/esm2022/verisoft-core.mjs +0 -5
  57. package/fesm2022/verisoft-core.mjs +0 -462
  58. package/fesm2022/verisoft-core.mjs.map +0 -1
  59. package/lib/models/base-http.models.d.ts +0 -41
  60. package/lib/models/constants.d.ts +0 -3
  61. package/lib/models/datasource.model.d.ts +0 -8
  62. package/lib/models/error-provider.model.d.ts +0 -11
  63. package/lib/services/base-http.service.d.ts +0 -21
  64. package/lib/services/error-provider.service.d.ts +0 -12
  65. package/lib/services/local-storage.service.d.ts +0 -5
  66. package/lib/utils/array.utils.d.ts +0 -5
  67. package/lib/utils/clear.utils.d.ts +0 -7
  68. package/lib/utils/data.utils.d.ts +0 -3
  69. package/lib/utils/date.utils.d.ts +0 -1
  70. package/lib/utils/keyOrFn.utils.d.ts +0 -1
  71. package/lib/utils/object.utils.d.ts +0 -2
@@ -0,0 +1,13 @@
1
+ export class LocalStorageService {
2
+ setItem(key: string, value: string) {
3
+ localStorage.setItem(key, value);
4
+ }
5
+
6
+ getItem(key: string): string | null {
7
+ return localStorage.getItem(key);
8
+ }
9
+
10
+ removeItem(key: string) {
11
+ localStorage.removeItem(key);
12
+ }
13
+ }
@@ -0,0 +1,13 @@
1
+ export class StorageService {
2
+ setItem(key: string, value: string) {
3
+ localStorage.setItem(key, value);
4
+ }
5
+
6
+ getItem(key: string): string | null {
7
+ return localStorage.getItem(key);
8
+ }
9
+
10
+ removeItem(key: string) {
11
+ localStorage.removeItem(key);
12
+ }
13
+ }
@@ -0,0 +1,49 @@
1
+ import { applyFilter } from './array.utils';
2
+ describe('array.utils', () => {
3
+ describe('applyFilter', () => {
4
+ interface TestData {
5
+ id: number;
6
+ name: string;
7
+ tags: string[];
8
+ age: number;
9
+ }
10
+
11
+ const data: TestData[] = [
12
+ { id: 1, name: 'Alice', tags: ['developer', 'angular'], age: 25 },
13
+ { id: 2, name: 'Bob', tags: ['designer', 'figma'], age: 30 },
14
+ { id: 3, name: 'Charlie', tags: ['developer'], age: 25 },
15
+ { id: 4, name: 'Dave', tags: ['developer', 'react'], age: 35 },
16
+ ];
17
+
18
+ const [alice, , charlie] = data;
19
+
20
+ test('Should filter data by contains string value when a single string filter is applied', () => {
21
+ const filter = { name: 'lice' };
22
+ const result = applyFilter(data, filter);
23
+ expect(result).toEqual([alice]);
24
+ });
25
+
26
+ test('Should filter data when filter contains an array value', () => {
27
+ const filter = { tags: ['develop'] };
28
+ const result = applyFilter(data, filter);
29
+ expect(result).toHaveLength(3);
30
+ });
31
+
32
+ test('Should filter data with multiple conditions when filter properties use AND logic', () => {
33
+ const filter = { age: 25, tags: ['developer'] };
34
+ const result = applyFilter(data, filter);
35
+ expect(result).toEqual([alice, charlie]);
36
+ });
37
+
38
+ test('Should return all data when the filter is empty', () => {
39
+ const result = applyFilter(data, {});
40
+ expect(result).toEqual(data);
41
+ });
42
+
43
+ test('Should return no data when no items match the filter', () => {
44
+ const filter = { name: 'Zoe' };
45
+ const result = applyFilter(data, filter);
46
+ expect(result).toHaveLength(0);
47
+ });
48
+ });
49
+ });
@@ -0,0 +1,54 @@
1
+ import { Sort } from "../models";
2
+ import { getValueByPath } from "./object.utils";
3
+
4
+ type ArrayIntersectionType = (string | number)[]
5
+
6
+ export function isArrayIntersected(
7
+ array1: ArrayIntersectionType,
8
+ array2: ArrayIntersectionType,
9
+ ) {
10
+ const filteredArray = array1.filter(value => array2.includes(value));
11
+ return filteredArray.length > 0;
12
+ }
13
+
14
+ export function multiSort<T>(values: T[], sorts: Sort[]): T[] {
15
+ return [...values].sort((a, b) => {
16
+ for (const sort of sorts) {
17
+ const { field, direction } = sort;
18
+ const valueA = getValueByPath(a, field);
19
+ const valueB = getValueByPath(b, field);
20
+
21
+ if (valueA !== valueB) {
22
+ if (isComparable(valueA) && isComparable(valueB)) {
23
+ if (typeof valueA === 'string' && typeof valueB === 'string') {
24
+ const baseCompare = valueA.localeCompare(valueB, undefined, {
25
+ sensitivity: 'base',
26
+ });
27
+
28
+ if (baseCompare === 0) {
29
+ return valueA < valueB ? -1 : valueA > valueB ? 1 : 0;
30
+ }
31
+
32
+ return direction === 'asc' ? baseCompare : -baseCompare;
33
+ } else {
34
+ if (valueA < valueB) {
35
+ return direction === 'asc' ? -1 : 1;
36
+ }
37
+ if (valueA > valueB) {
38
+ return direction === 'asc' ? 1 : -1;
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }
44
+
45
+ return 0;
46
+ });
47
+ }
48
+
49
+ function isComparable(value: unknown): value is string | number | Date {
50
+ return typeof value === 'string'
51
+ || typeof value === 'number'
52
+ || typeof value === 'boolean'
53
+ || value instanceof Date;
54
+ }
@@ -0,0 +1,53 @@
1
+ export class ClearUtils {
2
+
3
+ static recursiveObjectAttributesTransformation(obj: any): void {
4
+ ClearUtils.recursiveObjectAttributesTraversal(
5
+ obj,
6
+ ClearUtils.transformEmptyStringToNullStringFn
7
+ );
8
+ }
9
+ static recursiveObjectAttributesDeletation(obj: any): void {
10
+ ClearUtils.recursiveObjectAttributesTraversal(
11
+ obj,
12
+ ClearUtils.deleteEmptyStringToNullStringFn
13
+ );
14
+ }
15
+
16
+ static transformEmptyStringToNullStringFn(obj: any, key: string) {
17
+ if (typeof obj[key] === 'string' && obj[key] === '') {
18
+ obj[key] = null;
19
+ }
20
+ }
21
+ static deleteEmptyStringToNullStringFn(obj: any, key: string) {
22
+ if (obj[key] === '' || obj[key] === null || obj[key] === undefined) {
23
+ delete obj[key]
24
+ }
25
+ }
26
+
27
+
28
+ static recursiveObjectAttributesTraversal(
29
+ obj: any,
30
+ transformationFn: (obj: any, key: string) => void
31
+ ) {
32
+ if (
33
+ obj === null ||
34
+ transformationFn === null ||
35
+ typeof transformationFn !== 'function'
36
+ ) {
37
+ return;
38
+ }
39
+
40
+ Object.keys(obj).forEach((key) => {
41
+ transformationFn(obj, key);
42
+
43
+ if (typeof obj[key] === 'object') {
44
+ this.recursiveObjectAttributesTraversal(obj[key], transformationFn);
45
+
46
+ if (!Object.keys(obj[key]).length) {
47
+ delete obj[key];
48
+ }
49
+ }
50
+ });
51
+ }
52
+
53
+ }
@@ -0,0 +1,34 @@
1
+ import moment from 'moment';
2
+
3
+ export function transformData(data: any) {
4
+ if (data) {
5
+ if (moment.isMoment(data)) {
6
+ return moment(data)
7
+ .toDate()
8
+ .toISOString();
9
+ }
10
+ else if (data instanceof Date) {
11
+ return data.toISOString();
12
+ }
13
+ }
14
+ return data;
15
+ }
16
+
17
+ export function convertToDate(data: any) {
18
+ if (data) {
19
+ if (!isNaN(Date.parse(data))) {
20
+ return new Date(data);
21
+ }
22
+ }
23
+ return data;
24
+ }
25
+
26
+ export function convertToDateTime(data: any) {
27
+ if (data) {
28
+ if (!isNaN(Date.parse(data))) {
29
+ const date = new Date(data);
30
+ return moment(date).format('DD.MM.yyyy HH:mm');
31
+ }
32
+ }
33
+ return data;
34
+ }
@@ -0,0 +1,30 @@
1
+ const czechDateFormat = new Intl.DateTimeFormat("cs-CZ", {
2
+ day: "numeric",
3
+ month: "numeric",
4
+ year: "numeric"
5
+ });
6
+
7
+ const czechDateTimeFormat = new Intl.DateTimeFormat("cs-CZ", {
8
+ second: "numeric",
9
+ minute: "numeric",
10
+ hour: "numeric",
11
+ day: "numeric",
12
+ month: "numeric",
13
+ year: "numeric"
14
+ });
15
+
16
+ export function toCzechDateTimeString(value?: Date | string, time = false): string {
17
+ if (!value) {
18
+ return "";
19
+ }
20
+
21
+ if (typeof value === "string") {
22
+ value = new Date(value);
23
+ }
24
+
25
+ if (time) {
26
+ return czechDateTimeFormat.format(value);
27
+ }
28
+
29
+ return czechDateFormat.format(value);
30
+ }
@@ -1,6 +1,6 @@
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
+ 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';
@@ -0,0 +1,15 @@
1
+ export function keyOrFn(keyOrFn: ((row: any) => string | undefined) | string, row: any) {
2
+ if (keyOrFn instanceof Function) {
3
+ return keyOrFn(row);
4
+ }
5
+ else if (typeof keyOrFn === 'string') {
6
+ const value = row[keyOrFn];
7
+ if (value) {
8
+ return value;
9
+ }
10
+ }
11
+ else if (typeof keyOrFn === 'boolean') {
12
+ return keyOrFn;
13
+ }
14
+ return '';
15
+ }
@@ -0,0 +1,69 @@
1
+ import { getValueByPath, sortBy } from './object.utils';
2
+
3
+ describe('object.utils', () => {
4
+ describe('sortBy', () => {
5
+ const items = [
6
+ { name: undefined, age: 60 },
7
+ { name: 'Martin', age: 40 },
8
+ { name: 'Alena', age: 28 },
9
+ { name: 'Karel', age: 15 },
10
+ ];
11
+
12
+ test('Should sort items by name ascending.', () => {
13
+ const sortedItems = sortBy(items, (x) => x.name);
14
+
15
+ expect(items).not.toBe(sortedItems);
16
+ expect(sortedItems).toBeDefined();
17
+ expect(sortedItems?.[0].name).toBeUndefined();
18
+ expect(sortedItems?.[1].name).toBe('Alena');
19
+ expect(sortedItems?.[2].name).toBe('Karel');
20
+ expect(sortedItems?.[3].name).toBe('Martin');
21
+ });
22
+
23
+ test('Should sort items by name descending.', () => {
24
+ const sortedItems = sortBy(items, (x) => x.name, false);
25
+
26
+ expect(items).not.toBe(sortedItems);
27
+ expect(sortedItems).toBeDefined();
28
+ expect(sortedItems?.[0].name).toBe('Martin');
29
+ expect(sortedItems?.[1].name).toBe('Karel');
30
+ expect(sortedItems?.[2].name).toBe('Alena');
31
+ expect(sortedItems?.[3].name).toBeUndefined();
32
+ });
33
+ });
34
+
35
+ describe('getValueByPath', () => {
36
+ const complexObject = {
37
+ name: 'Martin',
38
+ age: 40,
39
+ address: {
40
+ city: 'Brno',
41
+ street: 'Kralova',
42
+ },
43
+ };
44
+
45
+ test('Should return property value when name of property is provided.', () => {
46
+ const value = getValueByPath(complexObject, 'name');
47
+
48
+ expect(value).toBe('Martin');
49
+ });
50
+
51
+ test('Should return undefined when name is nonexistent.', () => {
52
+ const value = getValueByPath(complexObject, 'nonexistentProperty');
53
+
54
+ expect(value).toBeUndefined();
55
+ });
56
+
57
+ test('Should return property value when name of property is complex path.', () => {
58
+ const value = getValueByPath(complexObject, 'address.city');
59
+
60
+ expect(value).toBe('Brno');
61
+ });
62
+
63
+ test('Should return undefined when some object on complex path missing.', () => {
64
+ const value = getValueByPath(complexObject, 'car.model');
65
+
66
+ expect(value).toBeUndefined();
67
+ });
68
+ });
69
+ });
@@ -0,0 +1,47 @@
1
+ export function sortBy<TEntity, TProperty>(
2
+ items: TEntity[],
3
+ selector: (item: TEntity) => TProperty,
4
+ ascending = true
5
+ ): TEntity[] {
6
+ return [...items].sort((item, other) => {
7
+ const value = selector(item);
8
+ const otherValue = selector(other);
9
+ const direction = ascending ? 1 : -1;
10
+ if (value == undefined && other == undefined) {
11
+ return 0;
12
+ }
13
+
14
+ if (value == undefined) {
15
+ return -1 * direction;
16
+ }
17
+ if (otherValue == undefined) {
18
+ return 1 * direction;
19
+ }
20
+
21
+ if (value < otherValue) {
22
+ return -1 * direction;
23
+ }
24
+
25
+ if (value > otherValue) {
26
+ return 1 * direction;
27
+ }
28
+
29
+ return 0;
30
+ });
31
+ }
32
+
33
+ export function getValueByPath<T, TValue>(
34
+ obj: T,
35
+ path: string | undefined,
36
+ ): TValue | undefined {
37
+ if (path == undefined || path == ''){
38
+ return obj as unknown as TValue;
39
+ }
40
+
41
+ return path.split('.').reduce((acc, key) => {
42
+ if (acc && typeof acc === 'object' && key in acc) {
43
+ return (acc as Record<string, TValue>)[key];
44
+ }
45
+ return undefined;
46
+ }, obj as unknown) as TValue;
47
+ }
@@ -0,0 +1,8 @@
1
+ // @ts-expect-error https://thymikee.github.io/jest-preset-angular/docs/getting-started/test-environment
2
+ globalThis.ngJest = {
3
+ testEnvironmentOptions: {
4
+ errorOnUnknownElements: true,
5
+ errorOnUnknownProperties: true,
6
+ },
7
+ };
8
+ import 'jest-preset-angular/setup-jest';
package/tsconfig.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "es2022",
4
+ "useDefineForClassFields": false,
5
+ "forceConsistentCasingInFileNames": true,
6
+ "strict": true,
7
+ "noImplicitOverride": true,
8
+ "noPropertyAccessFromIndexSignature": true,
9
+ "noImplicitReturns": true,
10
+ "noFallthroughCasesInSwitch": true
11
+ },
12
+ "files": [],
13
+ "include": [],
14
+ "references": [
15
+ {
16
+ "path": "./tsconfig.lib.json"
17
+ },
18
+ {
19
+ "path": "./tsconfig.spec.json"
20
+ }
21
+ ],
22
+ "extends": "../../../tsconfig.base.json",
23
+ "angularCompilerOptions": {
24
+ "enableI18nLegacyMessageIdFormat": false,
25
+ "strictInjectionParameters": true,
26
+ "strictInputAccessModifiers": true,
27
+ "strictTemplates": true
28
+ }
29
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "../../../dist/out-tsc",
5
+ "declaration": true,
6
+ "declarationMap": true,
7
+ "inlineSources": true,
8
+ "types": []
9
+ },
10
+ "angularCompilerOptions": {
11
+ "compilationMode": "partial"
12
+ },
13
+ "exclude": [
14
+ "src/**/*.spec.ts",
15
+ "src/test-setup.ts",
16
+ "jest.config.ts",
17
+ "src/**/*.test.ts"
18
+ ],
19
+ "include": ["src/**/*.ts"]
20
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "./tsconfig.lib.json",
3
+ "compilerOptions": {
4
+ "declarationMap": false
5
+ },
6
+ "angularCompilerOptions": {
7
+ "compilationMode": "partial"
8
+ }
9
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "../../../dist/out-tsc",
5
+ "module": "commonjs",
6
+ "target": "es2016",
7
+ "types": ["jest", "node"]
8
+ },
9
+ "files": ["src/test-setup.ts"],
10
+ "include": [
11
+ "jest.config.ts",
12
+ "src/**/*.test.ts",
13
+ "src/**/*.spec.ts",
14
+ "src/**/*.d.ts"
15
+ ]
16
+ }
package/esm2022/index.mjs DELETED
@@ -1,4 +0,0 @@
1
- export * from './lib/models';
2
- export * from './lib/services';
3
- export * from './lib/utils';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9jb3JlL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscyc7XHJcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsLWl0ZW0uZGF0YXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2NvcmUvc3JjL2xpYi9tb2RlbHMvYWxsLWl0ZW0uZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBbGxJdGVtRGF0YXNvdXJjZTxUPiB7XHJcbiAgZ2V0RGF0YSQ6ICgpID0+IE9ic2VydmFibGU8VFtdPlxyXG59XHJcbiJdfQ==
@@ -1,83 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { HttpParams } from '@angular/common/http';
3
- import { InjectionToken } from '@angular/core';
4
- export const BASE_URL_PATH = new InjectionToken('BASE_URL_PATH');
5
- export function requestParamsToHttpParams(requestParams, httpParams = new HttpParams()) {
6
- if (requestParams.limit != undefined) {
7
- httpParams = httpParams.append('limit', requestParams.limit.toString());
8
- }
9
- if (requestParams.offset != undefined) {
10
- httpParams = httpParams.append('offset', requestParams.offset.toString());
11
- }
12
- if (requestParams.id != '' && requestParams.id != undefined) {
13
- httpParams = httpParams.append('id', requestParams.id);
14
- }
15
- httpParams = getFilter(requestParams, httpParams);
16
- httpParams = getSort(requestParams, httpParams);
17
- return httpParams;
18
- }
19
- function getFilter(requestParams, httpParams) {
20
- if (!requestParams.filter) {
21
- return httpParams;
22
- }
23
- Object.keys(requestParams?.filter).forEach((key) => {
24
- const value = requestParams.filter?.[key];
25
- if (value != undefined && !(typeof value === 'string' && value.trim() === "")) {
26
- if (Array.isArray(value)) {
27
- value.forEach((valueItem) => {
28
- httpParams = httpParams.append('Filter.' + key, valueItem);
29
- });
30
- }
31
- else {
32
- httpParams = httpParams.append('Filter.' + key, value);
33
- }
34
- }
35
- });
36
- return httpParams;
37
- }
38
- function getSort(requestParams, httpParams) {
39
- if (!requestParams.sort) {
40
- return httpParams;
41
- }
42
- requestParams.sort?.forEach((sort) => {
43
- httpParams = httpParams
44
- .append('Sort.Field', sort.field)
45
- .append('Sort.Direction', sort.direction);
46
- });
47
- return httpParams;
48
- }
49
- export function saveFile(response) {
50
- const fileName = response.headers
51
- .get('Content-Disposition')
52
- ?.split(';')[1]
53
- .split('=')[1];
54
- const blob = response.body;
55
- const a = document.createElement('a');
56
- a.download = fileName ?? 'undefined';
57
- a.href = window.URL.createObjectURL(blob);
58
- a.click();
59
- }
60
- export var SortDirection;
61
- (function (SortDirection) {
62
- SortDirection["asc"] = "asc";
63
- SortDirection["desc"] = "desc";
64
- })(SortDirection || (SortDirection = {}));
65
- export const DEFAULT_SEARCH_LIMIT = 50;
66
- export const DEFAULT_SEARCH_PARAMS = {
67
- offset: 0,
68
- limit: DEFAULT_SEARCH_LIMIT,
69
- id: '',
70
- };
71
- export function normalizeRequest(request, minLimit = undefined) {
72
- return {
73
- offset: request?.offset ?? 0,
74
- limit: !request?.limit
75
- ? DEFAULT_SEARCH_LIMIT
76
- : minLimit && request.limit < minLimit
77
- ? minLimit
78
- : request.limit,
79
- filter: request?.filter,
80
- sort: request?.sort,
81
- };
82
- }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1odHRwLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2NvcmUvc3JjL2xpYi9tb2RlbHMvYmFzZS1odHRwLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBUyxlQUFlLENBQUMsQ0FBQztBQUV6RSxNQUFNLFVBQVUseUJBQXlCLENBQ3ZDLGFBQXdDLEVBQ3hDLGFBQXlCLElBQUksVUFBVSxFQUFFO0lBRXpDLElBQUksYUFBYSxDQUFDLEtBQUssSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNyQyxVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxJQUFJLGFBQWEsQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFLENBQUM7UUFDdEMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsSUFBSSxhQUFhLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxhQUFhLENBQUMsRUFBRSxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQzVELFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsRUFBUyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFVBQVUsR0FBRyxTQUFTLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2xELFVBQVUsR0FBRyxPQUFPLENB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LEVBQUUsRUFBRTtDQUNQLENBQUM7QUFFRixNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLE9BQWtDLEVBQ2xDLFdBQStCLFNBQVM7SUFFeEMsT0FBTztRQUNMLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7UUFDNUIsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUs7WUFDcEIsQ0FBQyxDQUFDLG9CQUFvQjtZQUN0QixDQUFDLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEdBQUcsUUFBUTtnQkFDdEMsQ0FBQyxDQUFDLFFBQVE7Z0JBQ1YsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLO1FBQ2pCLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTTtRQUN2QixJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUk7S0FDcEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcbmltcG9ydCB7IEh0dHBQYXJhbXMsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBjb25zdCBCQVNFX1VSTF9QQVRIID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0JBU0VfVVJMX1BBVEgnKTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZXF1ZXN0UGFyYW1zVG9IdHRwUGFyYW1zPFQ+KFxyXG4gIHJlcXVlc3RQYXJhbXM6IFBhcnRpYWw8UmVxdWVzdFBhcmFtczxUPj4sXHJcbiAgaHR0cFBhcmFtczogSHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcclxuKTogSHR0cFBhcmFtcyB7XHJcbiAgaWYgKHJlcXVlc3RQYXJhbXMubGltaXQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoJ2xpbWl0JywgcmVxdWVzdFBhcmFtcy5saW1pdC50b1N0cmluZygpKTtcclxuICB9XHJcblxyXG4gIGlmIChyZXF1ZXN0UGFyYW1zLm9mZnNldCAhPSB1bmRlZmluZWQpIHtcclxuICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLmFwcGVuZCgnb2Zmc2V0JywgcmVxdWVzdFBhcmFtcy5vZmZzZXQudG9TdHJpbmcoKSk7XHJcbiAgfVxyXG5cclxuICBpZiAocmVxdWVzdFBhcmFtcy5pZCAhPSAnJyAmJiByZXF1ZXN0UGFyYW1zLmlkICE9IHVuZGVmaW5lZCkge1xyXG4gICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKCdpZCcsIHJlcXVlc3RQYXJhbXMuaWQgYXMgYW55KTtcclxuICB9XHJcblxyXG4gIGh0dHBQYXJhbXMgPSBnZXRGaWx0ZXIocmVxdWVzdFBhcmFtcywgaHR0cFBhcmFtcyk7XHJcbiAgaHR0cFBhcmFtcyA9IGdldFNvcnQocmVxdWVzdFBhcmFtcywgaHR0cFBhcmFtcyk7XHJcblxyXG4gIHJldHVybiBodHRwUGFyYW1zO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRGaWx0ZXI8VD4oXHJcbiAgcmVxdWVzdFBhcmFtczogUGFydGlhbDxSZXF1ZXN0UGFyYW1zPGFueT4+LFxyXG4gIGh0dHBQYXJhbXM6IEh0dHBQYXJhbXNcclxuKTogSHR0cFBhcmFtcyB7XHJcbiAgaWYgKCFyZXF1ZXN0UGFyYW1zLmZpbHRlcikge1xyXG4gICAgcmV0dXJuIGh0dHBQYXJhbXM7XHJcbiAgfVxyXG4gIE9iamVjdC5rZXlzKHJlcXVlc3RQYXJhbXM/LmZpbHRlcikuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHJlcXVlc3RQYXJhbXMuZmlsdGVyPy5ba2V5IGFzIGtleW9mIFBhcnRpYWw8VD5dO1xyXG4gICAgaWYgKHZhbHVlICE9IHVuZGVmaW5lZCAmJiAhKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpID09PSBcIlwiKSkge1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICB2YWx1ZS5mb3JFYWNoKCh2YWx1ZUl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKFxyXG4gICAgICAgICAgICAnRmlsdGVyLicgKyBrZXksIHZhbHVlSXRlbVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoJ0ZpbHRlci4nICsga2V5LCB2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gaHR0cFBhcmFtcztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U29ydChcclxuICByZXF1ZXN0UGFyYW1zOiBQYXJ0aWFsPFJlcXVlc3RQYXJhbXM8YW55Pj4sXHJcbiAgaHR0cFBhcmFtczogSHR0cFBhcmFtc1xyXG4pOiBIdHRwUGFyYW1zIHtcclxuICBpZiAoIXJlcXVlc3RQYXJhbXMuc29ydCkge1xyXG4gICAgcmV0dXJuIGh0dHBQYXJhbXM7XHJcbiAgfVxyXG5cclxuICByZXF1ZXN0UGFyYW1zLnNvcnQ/LmZvckVhY2goKHNvcnQpID0+IHtcclxuICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zXHJcbiAgICAgIC5hcHBlbmQoJ1NvcnQuRmllbGQnLCBzb3J0LmZpZWxkKVxyXG4gICAgICAuYXBwZW5kKCdTb3J0LkRpcmVjdGlvbicsIHNvcnQuZGlyZWN0aW9uKTtcclxuICB9KTtcclxuICByZXR1cm4gaHR0cFBhcmFtcztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVGaWxlKHJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8QmxvYj4pIHtcclxuICBjb25zdCBmaWxlTmFtZSA9IHJlc3BvbnNlLmhlYWRlcnNcclxuICAgIC5nZXQoJ0NvbnRlbnQtRGlzcG9zaXRpb24nKVxyXG4gICAgPy5zcGxpdCgnOycpWzFdXHJcbiAgICAuc3BsaXQoJz0nKVsxXTtcclxuICBjb25zdCBibG9iOiBCbG9iID0gcmVzcG9uc2UuYm9keSBhcyBCbG9iO1xyXG4gIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgYS5kb3dubG9hZCA9IGZpbGVOYW1lID8/ICd1bmRlZmluZWQnO1xyXG4gIGEuaHJlZiA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gIGEuY2xpY2soKTtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU29ydERpcmVjdGlvbiB7XHJcbiAgYXNjID0gJ2FzYycsXHJcbiAgZGVzYyA9ICdkZXNjJyxcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBTb3J0RGlyZWN0aW9uVHlwZSA9IGtleW9mIHR5cGVvZiBTb3J0RGlyZWN0aW9uO1xyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNvcnQge1xyXG4gIGZpZWxkOiBzdHJpbmc7XHJcbiAgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uVHlwZTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0UGFyYW1zPFQ+IGV4dGVuZHMgQWxsRGF0YVJlcXVlc3RQYXJhbXM8VD4ge1xyXG4gIG9mZnNldDogbnVtYmVyO1xyXG4gIGxpbWl0OiBudW1iZXI7XHJcbiAgaWQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWxsRGF0YVJlcXVlc3RQYXJhbXM8VD4ge1xyXG4gIGZpbHRlcj86IFBhcnRpYWw8VD47XHJcbiAgc29ydD86IFNvcnRbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYWdlPFQ+IHtcclxuICBkYXRhOiBUW107XHJcbiAgdG90YWw6IG51bWJlcjtcclxuICBsaW1pdDogbnVtYmVyO1xyXG4gIG9mZnNldDogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUV4cG9ydDxUPiB7XHJcbiAgc29ydERlZmluaXRpb24/OiBTb3J0O1xyXG4gIGZpbHRlcj86IFBhcnRpYWw8VD47XHJcbiAgY29sdW1uc1RvRXhwb3J0OiBDb2x1bW5FeHBvcnRTcGVjaWZpY2F0aW9uW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uRXhwb3J0U3BlY2lmaWNhdGlvbiB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGhlYWRlcjogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUFSQ0hfTElNSVQgPSA1MDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFQVJDSF9QQVJBTVM6IFJlcXVlc3RQYXJhbXM8YW55PiA9IHtcclxuICBvZmZzZXQ6IDAsXHJcbiAgbGltaXQ6IERFRkFVTFRfU0VBUkNIX0xJTUlULFxyXG4gIGlkOiAnJyxcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSZXF1ZXN0PFQ+KFxyXG4gIHJlcXVlc3Q6IFBhcnRpYWw8UmVxdWVzdFBhcmFtczxUPj4sXHJcbiAgbWluTGltaXQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxyXG4pOiBSZXF1ZXN0UGFyYW1zPFQ+IHtcclxuICByZXR1cm4ge1xyXG4gICAgb2Zmc2V0OiByZXF1ZXN0Py5vZmZzZXQgPz8gMCxcclxuICAgIGxpbWl0OiAhcmVxdWVzdD8ubGltaXRcclxuICAgICAgPyBERUZBVUxUX1NFQVJDSF9MSU1JVFxyXG4gICAgICA6IG1pbkxpbWl0ICYmIHJlcXVlc3QubGltaXQgPCBtaW5MaW1pdFxyXG4gICAgICA/IG1pbkxpbWl0XHJcbiAgICAgIDogcmVxdWVzdC5saW1pdCxcclxuICAgIGZpbHRlcjogcmVxdWVzdD8uZmlsdGVyLFxyXG4gICAgc29ydDogcmVxdWVzdD8uc29ydCxcclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -1,6 +0,0 @@
1
- export const DEFAULT_PAGE_SIZE = 50;
2
- export const DEFAULT_LAZYLOAD_OPTIONS = {
3
- offset: 0,
4
- limit: DEFAULT_PAGE_SIZE,
5
- };
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvY29yZS9zcmMvbGliL21vZGVscy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO0FBRXBDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFrQjtJQUNyRCxNQUFNLEVBQUUsQ0FBQztJQUNULEtBQUssRUFBRSxpQkFBaUI7Q0FDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhenlMb2FkRXZlbnQgfSBmcm9tICcuL2V2ZW50Lm1vZGVscyc7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9QQUdFX1NJWkUgPSA1MDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBWllMT0FEX09QVElPTlM6IExhenlMb2FkRXZlbnQgPSB7XHJcbiAgb2Zmc2V0OiAwLFxyXG4gIGxpbWl0OiBERUZBVUxUX1BBR0VfU0laRSxcclxufTtcclxuIl19
@@ -1,44 +0,0 @@
1
- import { isObservable, map, of } from 'rxjs';
2
- import { BaseHttpService } from '../services/base-http.service';
3
- import { DEFAULT_PAGE_SIZE } from './constants';
4
- export function convertDatasource(datasource, basePath, httpClient) {
5
- if (!datasource) {
6
- throw new Error('Datasource is not defined');
7
- }
8
- if (typeof datasource === 'string') {
9
- const service = new BaseHttpService(httpClient, basePath, datasource);
10
- return (requestParams) => service.fetchList(requestParams);
11
- }
12
- if (datasource instanceof BaseHttpService) {
13
- return (requestParams) => datasource.fetchList(requestParams);
14
- }
15
- if (isObservable(datasource)) {
16
- return () => datasource.pipe(map(convertArrayToPage));
17
- }
18
- const allItemDatasource = datasource;
19
- if (allItemDatasource.getData$) {
20
- return () => allItemDatasource
21
- .getData$()
22
- .pipe(map((data) => convertArrayToPage(data)));
23
- }
24
- const page = datasource;
25
- if (page.data) {
26
- return () => of(page);
27
- }
28
- if (Array.isArray(datasource)) {
29
- return () => of(convertArrayToPage(datasource));
30
- }
31
- throw new Error('Datasource is not supported');
32
- }
33
- function convertArrayToPage(data) {
34
- if (Array.isArray(data)) {
35
- return {
36
- data: data ?? [],
37
- total: data?.length ?? 0,
38
- limit: data?.length ?? DEFAULT_PAGE_SIZE,
39
- offset: 0,
40
- };
41
- }
42
- return data;
43
- }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2NvcmUvc3JjL2xpYi9tb2RlbHMvZGF0YXNvdXJjZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWVoRCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLFVBQTZCLEVBQzdCLFFBQWdCLEVBQ2hCLFVBQXNCO0lBRXRCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQUksVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN6RSxPQUFPLENBQUMsYUFBK0IsRUFBRSxFQUFFLENBQ3pDLE9BQU8sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksVUFBVSxZQUFZLGVBQWUsRUFBRSxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxhQUErQixFQUFFLEVBQUUsQ0FDekMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPLEdBQUcsRUFBRSxDQUNULFVBQXdDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELE1BQU0saUJBQWlCLEdBQXlCLFVBQVUsQ0FBQztJQUMzRCxJQUFJLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQy9CLE9BQU8sR0FBRyxFQUFFLENBQ1YsaUJBQWlCO2FBQ2QsUUFBUSxFQUFFO2FBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxNQUFNLElBQUksR0FBWSxVQUFVLENBQUM7SUFDakMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDOUIsT0FBTyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFJLElBQW1CO0lBQ2hELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDaEIsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQztZQUN4QixLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sSUFBSSxpQkFBaUI7WUFDeEMsTUFBTSxFQUFFLENBQUM7U0FDVixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sSUFBZSxDQUFDO0FBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBpc09ic2VydmFibGUsIG1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQmFzZUh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYmFzZS1odHRwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBbGxJdGVtRGF0YXNvdXJjZSB9IGZyb20gJy4vYWxsLWl0ZW0uZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IFBhZ2UsIFJlcXVlc3RQYXJhbXMgfSBmcm9tICcuL2Jhc2UtaHR0cC5tb2RlbHMnO1xyXG5pbXBvcnQgeyBERUZBVUxUX1BBR0VfU0laRSB9IGZyb20gJy4vY29uc3RhbnRzJztcclxuXHJcbmV4cG9ydCB0eXBlIERhdGFzb3VyY2VUeXBlPFQ+ID1cclxuICB8IHN0cmluZ1xyXG4gIHwgT2JzZXJ2YWJsZTxUW10+XHJcbiAgfCBPYnNlcnZhYmxlPFBhZ2U8VD4+XHJcbiAgfCBCYXNlSHR0cFNlcnZpY2U8VD5cclxuICB8IFRbXVxyXG4gIHwgUGFnZTxUPlxyXG4gIHwgQWxsSXRlbURhdGFzb3VyY2U8VD47XHJcblxyXG5leHBvcnQgdHlwZSBEYXRhU291cmNlRnVuY3Rpb25UeXBlPFQ+ID0gKFxyXG4gIHJlcXVlc3RQYXJhbXM6IFJlcXVlc3RQYXJhbXM8VD5cclxuKSA9PiBPYnNlcnZhYmxlPFBhZ2U8VD4+O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnREYXRhc291cmNlPFQ+KFxyXG4gIGRhdGFzb3VyY2U6IERhdGFzb3VyY2VUeXBlPFQ+LFxyXG4gIGJhc2VQYXRoOiBzdHJpbmcsXHJcbiAgaHR0cENsaWVudDogSHR0cENsaWVudFxyXG4pOiBEYXRhU291cmNlRnVuY3Rpb25UeXBlPFQ+IHtcclxuICBpZiAoIWRhdGFzb3VyY2UpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcignRGF0YXNvdXJjZSBpcyBub3QgZGVmaW5lZCcpO1xyXG4gIH1cclxuXHJcbiAgaWYgKHR5cGVvZiBkYXRhc291cmNlID09PSAnc3RyaW5nJykge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IG5ldyBCYXNlSHR0cFNlcnZpY2U8VD4oaHR0cENsaWVudCwgYmFzZVBhdGgsIGRhdGFzb3VyY2UpO1xyXG4gICAgcmV0dXJuIChyZXF1ZXN0UGFyYW1zOiBSZXF1ZXN0UGFyYW1zPFQ+KSA9PlxyXG4gICAgICBzZXJ2aWNlLmZldGNoTGlzdChyZXF1ZXN0UGFyYW1zKTtcclxuICB9XHJcblxyXG4gIGlmIChkYXRhc291cmNlIGluc3RhbmNlb2YgQmFzZUh0dHBTZXJ2aWNlKSB7XHJcbiAgICByZXR1cm4gKHJlcXVlc3RQYXJhbXM6IFJlcXVlc3RQYXJhbXM8VD4pID0+XHJcbiAgICAgIGRhdGFzb3VyY2UuZmV0Y2hMaXN0KHJlcXVlc3RQYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgaWYgKGlzT2JzZXJ2YWJsZShkYXRhc291cmNlKSkge1xyXG4gICAgcmV0dXJuICgpID0+XHJcbiAgICAgIChkYXRhc291cmNlIGFzIE9ic2VydmFibGU8UGFnZTxUPiB8IFRbXT4pLnBpcGUobWFwKGNvbnZlcnRBcnJheVRvUGFnZSkpO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgYWxsSXRlbURhdGFzb3VyY2UgPSA8QWxsSXRlbURhdGFzb3VyY2U8VD4+ZGF0YXNvdXJjZTtcclxuICBpZiAoYWxsSXRlbURhdGFzb3VyY2UuZ2V0RGF0YSQpIHtcclxuICAgIHJldHVybiAoKSA9PlxyXG4gICAgICBhbGxJdGVtRGF0YXNvdXJjZVxyXG4gICAgICAgIC5nZXREYXRhJCgpXHJcbiAgICAgICAgLnBpcGUobWFwKChkYXRhKSA9PiBjb252ZXJ0QXJyYXlUb1BhZ2UoZGF0YSkpKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhZ2UgPSA8UGFnZTxUPj5kYXRhc291cmNlO1xyXG4gIGlmIChwYWdlLmRhdGEpIHtcclxuICAgIHJldHVybiAoKSA9PiBvZihwYWdlKTtcclxuICB9XHJcblxyXG4gIGlmIChBcnJheS5pc0FycmF5KGRhdGFzb3VyY2UpKSB7XHJcbiAgICByZXR1cm4gKCkgPT4gb2YoY29udmVydEFycmF5VG9QYWdlKGRhdGFzb3VyY2UpKTtcclxuICB9XHJcblxyXG4gIHRocm93IG5ldyBFcnJvcignRGF0YXNvdXJjZSBpcyBub3Qgc3VwcG9ydGVkJyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbnZlcnRBcnJheVRvUGFnZTxUPihkYXRhOiBQYWdlPFQ+IHwgVFtdKTogUGFnZTxUPiB7XHJcbiAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGRhdGE6IGRhdGEgPz8gW10sXHJcbiAgICAgIHRvdGFsOiBkYXRhPy5sZW5ndGggPz8gMCxcclxuICAgICAgbGltaXQ6IGRhdGE/Lmxlbmd0aCA/PyBERUZBVUxUX1BBR0VfU0laRSxcclxuICAgICAgb2Zmc2V0OiAwLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHJldHVybiBkYXRhIGFzIFBhZ2U8VD47XHJcbn1cclxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9jb3JlL3NyYy9saWIvbW9kZWxzL2Vudmlyb25tZW50Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50Q29uZmlnIHtcclxuICAgIHByb2R1Y3Rpb246IGJvb2xlYW47XHJcbiAgICBhcGlVcmw6IHN0cmluZztcclxuICAgIGFwcFZlcnNpb246IHN0cmluZztcclxufVxyXG4iXX0=