@ssa-ui-kit/utils 0.0.1-alpha
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/LICENSE +21 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/CallAll.d.ts +1 -0
- package/dist/utils/dates/dateFormatters.d.ts +5 -0
- package/dist/utils/dates/dates.spec.d.ts +1 -0
- package/dist/utils/dates/index.d.ts +1 -0
- package/dist/utils/debounce/debounce.d.ts +3 -0
- package/dist/utils/debounce/debounce.spec.d.ts +1 -0
- package/dist/utils/debounce/index.d.ts +1 -0
- package/dist/utils/objects/assocPath.d.ts +1 -0
- package/dist/utils/objects/assocPath.spec.d.ts +1 -0
- package/dist/utils/objects/dissocPath.d.ts +1 -0
- package/dist/utils/objects/dissocPath.spec.d.ts +1 -0
- package/dist/utils/objects/index.d.ts +7 -0
- package/dist/utils/objects/mapObjIndexed.d.ts +3 -0
- package/dist/utils/objects/mapObjIndexed.spec.d.ts +1 -0
- package/dist/utils/objects/path.d.ts +1 -0
- package/dist/utils/objects/path.spec.d.ts +1 -0
- package/dist/utils/objects/pathOr.d.ts +1 -0
- package/dist/utils/objects/pathOr.spec.d.ts +1 -0
- package/dist/utils/objects/prop.d.ts +1 -0
- package/dist/utils/objects/prop.spec.d.ts +1 -0
- package/dist/utils/objects/propOr.d.ts +1 -0
- package/dist/utils/objects/propOr.spec.d.ts +1 -0
- package/dist/utils/pagination/generateRange.d.ts +3 -0
- package/dist/utils/pagination/generateRange.spec.d.ts +1 -0
- package/dist/utils/pagination/index.d.ts +1 -0
- package/dist/utils/pagination/types.d.ts +1 -0
- package/dist/utils/throttle/index.d.ts +1 -0
- package/dist/utils/throttle/throttle.d.ts +4 -0
- package/dist/utils/throttle/throttle.spec.d.ts +1 -0
- package/dist/utils/types.d.ts +4 -0
- package/package.json +40 -0
- package/src/index.ts +8 -0
- package/src/utils/CallAll.ts +5 -0
- package/src/utils/dates/dateFormatters.ts +61 -0
- package/src/utils/dates/dates.spec.tsx +127 -0
- package/src/utils/dates/index.ts +1 -0
- package/src/utils/debounce/debounce.spec.ts +85 -0
- package/src/utils/debounce/debounce.ts +24 -0
- package/src/utils/debounce/index.ts +1 -0
- package/src/utils/objects/assocPath.spec.tsx +53 -0
- package/src/utils/objects/assocPath.ts +11 -0
- package/src/utils/objects/dissocPath.spec.tsx +49 -0
- package/src/utils/objects/dissocPath.ts +14 -0
- package/src/utils/objects/index.ts +7 -0
- package/src/utils/objects/mapObjIndexed.spec.tsx +33 -0
- package/src/utils/objects/mapObjIndexed.ts +15 -0
- package/src/utils/objects/path.spec.tsx +24 -0
- package/src/utils/objects/path.ts +4 -0
- package/src/utils/objects/pathOr.spec.tsx +23 -0
- package/src/utils/objects/pathOr.ts +11 -0
- package/src/utils/objects/prop.spec.tsx +17 -0
- package/src/utils/objects/prop.ts +4 -0
- package/src/utils/objects/propOr.spec.tsx +17 -0
- package/src/utils/objects/propOr.ts +11 -0
- package/src/utils/pagination/generateRange.spec.ts +100 -0
- package/src/utils/pagination/generateRange.ts +91 -0
- package/src/utils/pagination/index.ts +1 -0
- package/src/utils/pagination/types.ts +4 -0
- package/src/utils/throttle/index.ts +1 -0
- package/src/utils/throttle/throttle.spec.ts +56 -0
- package/src/utils/throttle/throttle.ts +43 -0
- package/src/utils/types.ts +4 -0
- package/tsbuildcache +1 -0
- package/tsconfig.build.json +35 -0
- package/tsconfig.json +17 -0
- package/webpack.config.js +16 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { dissocPath } from '.';
|
|
2
|
+
|
|
3
|
+
describe('utils => objects => dissocPath', () => {
|
|
4
|
+
it('dissocPath should work', () => {
|
|
5
|
+
const data = {
|
|
6
|
+
a: {
|
|
7
|
+
name: 'a',
|
|
8
|
+
value: 1,
|
|
9
|
+
},
|
|
10
|
+
b: {
|
|
11
|
+
name: 'b',
|
|
12
|
+
value: 2,
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
const result = dissocPath(['a', 'name'])(data);
|
|
16
|
+
expect(result).toEqual({
|
|
17
|
+
a: {
|
|
18
|
+
value: 1,
|
|
19
|
+
},
|
|
20
|
+
b: {
|
|
21
|
+
name: 'b',
|
|
22
|
+
value: 2,
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
it('dissocPath should not change source object', () => {
|
|
27
|
+
const data = {
|
|
28
|
+
a: {
|
|
29
|
+
name: 'a',
|
|
30
|
+
value: 1,
|
|
31
|
+
},
|
|
32
|
+
b: {
|
|
33
|
+
name: 'b',
|
|
34
|
+
value: 2,
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
dissocPath(['a', 'name'])(data);
|
|
38
|
+
expect(data).toEqual({
|
|
39
|
+
a: {
|
|
40
|
+
name: 'a',
|
|
41
|
+
value: 1,
|
|
42
|
+
},
|
|
43
|
+
b: {
|
|
44
|
+
name: 'b',
|
|
45
|
+
value: 2,
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const dissocPath =
|
|
2
|
+
<T>(path: string[]) =>
|
|
3
|
+
(sourceObject: T): T => {
|
|
4
|
+
const resultObject = JSON.parse(JSON.stringify(sourceObject));
|
|
5
|
+
|
|
6
|
+
path.reduce((acc: any, key, index) => {
|
|
7
|
+
if (index === path.length - 1) {
|
|
8
|
+
delete acc[key];
|
|
9
|
+
}
|
|
10
|
+
return acc[key];
|
|
11
|
+
}, resultObject);
|
|
12
|
+
|
|
13
|
+
return resultObject;
|
|
14
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { mapObjIndexed } from '.';
|
|
2
|
+
|
|
3
|
+
describe('utils => objects => mapObjIndexed', () => {
|
|
4
|
+
it('mapObjIndexed should work', () => {
|
|
5
|
+
const data = {
|
|
6
|
+
a: {
|
|
7
|
+
name: 'a',
|
|
8
|
+
value: 1,
|
|
9
|
+
},
|
|
10
|
+
b: {
|
|
11
|
+
name: 'b',
|
|
12
|
+
value: 2,
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
const result = mapObjIndexed(
|
|
16
|
+
(item, key) => ({
|
|
17
|
+
name: key,
|
|
18
|
+
value: item.value + key,
|
|
19
|
+
}),
|
|
20
|
+
data,
|
|
21
|
+
);
|
|
22
|
+
expect(result).toEqual({
|
|
23
|
+
a: {
|
|
24
|
+
name: 'a',
|
|
25
|
+
value: '1a',
|
|
26
|
+
},
|
|
27
|
+
b: {
|
|
28
|
+
name: 'b',
|
|
29
|
+
value: '2b',
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
type MapObjIndexedFn<T, U> = (
|
|
2
|
+
value: T,
|
|
3
|
+
key: string,
|
|
4
|
+
obj: Record<string, T>,
|
|
5
|
+
) => U;
|
|
6
|
+
|
|
7
|
+
export const mapObjIndexed = <T, U>(
|
|
8
|
+
fn: MapObjIndexedFn<T, U>,
|
|
9
|
+
obj: Record<string, T>,
|
|
10
|
+
): Record<string, U> => {
|
|
11
|
+
return Object.keys(obj).reduce((result: Record<string, U>, key: string) => {
|
|
12
|
+
result[key] = fn(obj[key], key, obj);
|
|
13
|
+
return result;
|
|
14
|
+
}, {});
|
|
15
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { path } from '.';
|
|
2
|
+
|
|
3
|
+
describe('utils => objects => path', () => {
|
|
4
|
+
const data = {
|
|
5
|
+
a: {
|
|
6
|
+
name: 'a',
|
|
7
|
+
value: 1,
|
|
8
|
+
},
|
|
9
|
+
b: {
|
|
10
|
+
name: 'b',
|
|
11
|
+
value: 2,
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
it('path should work with correct path', () => {
|
|
16
|
+
const result = path(['a', 'name'])(data);
|
|
17
|
+
expect(result).toEqual('a');
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('path should work with incorrect path', () => {
|
|
21
|
+
const result = path(['a', 'name', 'value'])(data);
|
|
22
|
+
expect(result).toEqual(undefined);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { pathOr } from '.';
|
|
2
|
+
|
|
3
|
+
describe('utils => objects => pathOr', () => {
|
|
4
|
+
const data = {
|
|
5
|
+
a: {
|
|
6
|
+
name: 'a',
|
|
7
|
+
value: 1,
|
|
8
|
+
},
|
|
9
|
+
b: {
|
|
10
|
+
name: 'b',
|
|
11
|
+
value: 2,
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
it('should work with correct path', () => {
|
|
16
|
+
const result = pathOr('Default value', ['a', 'name'])(data);
|
|
17
|
+
expect(result).toEqual('a');
|
|
18
|
+
});
|
|
19
|
+
it('should work with incorrect path', () => {
|
|
20
|
+
const result = pathOr('Default value', ['a', 'name', 'value'])(data);
|
|
21
|
+
expect(result).toEqual('Default value');
|
|
22
|
+
});
|
|
23
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { path as originalPath } from './path';
|
|
2
|
+
|
|
3
|
+
export const pathOr =
|
|
4
|
+
<T extends Record<string | number, any>, R>(
|
|
5
|
+
defaultValue: any,
|
|
6
|
+
path: string[],
|
|
7
|
+
) =>
|
|
8
|
+
(obj: T): R => {
|
|
9
|
+
const result = originalPath(path)(obj);
|
|
10
|
+
return result === null || result === undefined ? defaultValue : result;
|
|
11
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { prop } from '.';
|
|
2
|
+
|
|
3
|
+
describe('utils => objects => prop', () => {
|
|
4
|
+
const data = {
|
|
5
|
+
name: 'a',
|
|
6
|
+
value: 1,
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
it('should work with correct prop', () => {
|
|
10
|
+
const result = prop('name')(data);
|
|
11
|
+
expect(result).toEqual('a');
|
|
12
|
+
});
|
|
13
|
+
it('should work with incorrect prop', () => {
|
|
14
|
+
const result = prop('incorrect_prop')(data);
|
|
15
|
+
expect(result).toEqual(undefined);
|
|
16
|
+
});
|
|
17
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { propOr } from '.';
|
|
2
|
+
|
|
3
|
+
describe('utils => objects => propOr', () => {
|
|
4
|
+
const data = {
|
|
5
|
+
name: 'a',
|
|
6
|
+
value: 1,
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
it('should work with correct prop', () => {
|
|
10
|
+
const result = propOr('Default value', 'name')(data);
|
|
11
|
+
expect(result).toEqual('a');
|
|
12
|
+
});
|
|
13
|
+
it('should work with incorrect prop', () => {
|
|
14
|
+
const result = propOr('Default value', 'incorrect_prop')(data);
|
|
15
|
+
expect(result).toEqual('Default value');
|
|
16
|
+
});
|
|
17
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { prop } from './prop';
|
|
2
|
+
|
|
3
|
+
export const propOr =
|
|
4
|
+
<T extends Record<string | number, any>, R = any>(
|
|
5
|
+
defaultValue: any,
|
|
6
|
+
propName: string,
|
|
7
|
+
) =>
|
|
8
|
+
(obj: T): R => {
|
|
9
|
+
const result = prop(propName)(obj);
|
|
10
|
+
return result === null || result === undefined ? defaultValue : result;
|
|
11
|
+
};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import generateRange from './generateRange';
|
|
2
|
+
|
|
3
|
+
describe('generateRange', () => {
|
|
4
|
+
it('returns an empty array when 0 or negative pages count passed', () => {
|
|
5
|
+
let range = generateRange(0);
|
|
6
|
+
expect(range).toEqual([]);
|
|
7
|
+
|
|
8
|
+
range = generateRange(-1);
|
|
9
|
+
expect(range).toEqual([]);
|
|
10
|
+
});
|
|
11
|
+
describe('No page selected', () => {
|
|
12
|
+
const noSelectedItemTestCases = [
|
|
13
|
+
{ pages: 1, expected: [1] },
|
|
14
|
+
{ pages: 2, expected: [1, 2] },
|
|
15
|
+
{ pages: 3, expected: [1, 2, 3] },
|
|
16
|
+
{ pages: 4, expected: [1, 2, 3, 4] },
|
|
17
|
+
{ pages: 5, expected: [1, 2, 3, 4, 5] },
|
|
18
|
+
{ pages: 6, expected: [1, 2, 3, -1, 6] },
|
|
19
|
+
{ pages: 7, expected: [1, 2, 3, -1, 7] },
|
|
20
|
+
{ pages: 8, expected: [1, 2, 3, -1, 8] },
|
|
21
|
+
{ pages: 9, expected: [1, 2, 3, -1, 9] },
|
|
22
|
+
{ pages: 10, expected: [1, 2, 3, -1, 10] },
|
|
23
|
+
];
|
|
24
|
+
|
|
25
|
+
it.each(noSelectedItemTestCases)(
|
|
26
|
+
'returns the range for $pages pages',
|
|
27
|
+
({ pages, expected }) => {
|
|
28
|
+
const range = generateRange(pages);
|
|
29
|
+
expect(range).toEqual(expected);
|
|
30
|
+
},
|
|
31
|
+
);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
describe('With a selected page', () => {
|
|
35
|
+
const selectedItemTestCases = [
|
|
36
|
+
{ pages: 10, selected: 1, expected: [1, 2, 3, -1, 10] },
|
|
37
|
+
{ pages: 10, selected: 2, expected: [1, 2, 3, -1, 10] },
|
|
38
|
+
{ pages: 10, selected: 3, expected: [1, 2, 3, 4, -1, 10] },
|
|
39
|
+
{ pages: 10, selected: 4, expected: [1, 2, 3, 4, 5, -1, 10] },
|
|
40
|
+
{ pages: 10, selected: 5, expected: [1, -1, 4, 5, 6, -1, 10] },
|
|
41
|
+
{ pages: 10, selected: 6, expected: [1, -1, 5, 6, 7, -1, 10] },
|
|
42
|
+
{ pages: 10, selected: 7, expected: [1, -1, 6, 7, 8, 9, 10] },
|
|
43
|
+
{ pages: 10, selected: 8, expected: [1, -1, 7, 8, 9, 10] },
|
|
44
|
+
{ pages: 10, selected: 9, expected: [1, -1, 8, 9, 10] },
|
|
45
|
+
{ pages: 10, selected: 10, expected: [1, -1, 9, 10] },
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
it.each(selectedItemTestCases)(
|
|
49
|
+
'returns the range for $pages pages when selected item $selected',
|
|
50
|
+
({ pages, selected, expected }) => {
|
|
51
|
+
const range = generateRange(pages, selected);
|
|
52
|
+
expect(range).toEqual(expected);
|
|
53
|
+
},
|
|
54
|
+
);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it('throws an error if the selected page is out of range', () => {
|
|
58
|
+
expect(() => generateRange(10, 0)).toThrow(
|
|
59
|
+
new Error('Selected page 0 is out of range'),
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
expect(() => generateRange(10, 11)).toThrow(
|
|
63
|
+
new Error('Selected page 11 is out of range'),
|
|
64
|
+
);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
it('throws an error when the 1st argument is not an integer', () => {
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
69
|
+
// @ts-ignore
|
|
70
|
+
expect(() => generateRange('1')).toThrow(
|
|
71
|
+
new Error('Pages count should be an integer'),
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
75
|
+
// @ts-ignore
|
|
76
|
+
expect(() => generateRange(null)).toThrow(
|
|
77
|
+
new Error('Pages count should be an integer'),
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
81
|
+
// @ts-ignore
|
|
82
|
+
expect(() => generateRange(0.1)).toThrow(
|
|
83
|
+
new Error('Pages count should be an integer'),
|
|
84
|
+
);
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
it('throws an error when the 2nd argument is not an integer', () => {
|
|
88
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
89
|
+
// @ts-ignore
|
|
90
|
+
expect(() => generateRange(10, '1')).toThrow(
|
|
91
|
+
new Error('Selected page should be an integer'),
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
95
|
+
// @ts-ignore
|
|
96
|
+
expect(() => generateRange(10, 0.1)).toThrow(
|
|
97
|
+
new Error('Selected page should be an integer'),
|
|
98
|
+
);
|
|
99
|
+
});
|
|
100
|
+
});
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { GenerateRangeFn } from './types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The function that returns an array of page numbers to show in the pagination
|
|
5
|
+
* component.
|
|
6
|
+
*
|
|
7
|
+
* Rules:
|
|
8
|
+
* - To always show the 1st and the last page.
|
|
9
|
+
* - To show one item before and one item after the selected page.
|
|
10
|
+
* - To return "-1" for the skipped items. This is to be able to display "..." in
|
|
11
|
+
* the pagination component.
|
|
12
|
+
* */
|
|
13
|
+
const SKIPPED_ITEMS_DELTA = 2;
|
|
14
|
+
|
|
15
|
+
const getSelectedRange = (pagesCount: number, selectedPage: number) => {
|
|
16
|
+
const range: number[] = [];
|
|
17
|
+
|
|
18
|
+
if (selectedPage !== pagesCount) {
|
|
19
|
+
range.push(selectedPage);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (selectedPage > 1) {
|
|
23
|
+
range.unshift(selectedPage - 1);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (selectedPage + 1 < pagesCount) {
|
|
27
|
+
range.push(selectedPage + 1);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return range;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const fill = (range: number[], minValue: number, maxValue: number) => {
|
|
34
|
+
for (let i = minValue; i < maxValue; ++i) {
|
|
35
|
+
range.push(i);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const generateRange: GenerateRangeFn = (pagesCount, selectedPage) => {
|
|
40
|
+
if (pagesCount == null || !Number.isInteger(pagesCount)) {
|
|
41
|
+
throw new Error('Pages count should be an integer');
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (pagesCount <= 0) {
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
let range = [1];
|
|
49
|
+
|
|
50
|
+
if (pagesCount === 1) {
|
|
51
|
+
return range;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (selectedPage != null && !Number.isInteger(selectedPage)) {
|
|
55
|
+
throw new Error('Selected page should be an integer');
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (selectedPage != null && (selectedPage < 1 || selectedPage > pagesCount)) {
|
|
59
|
+
throw new Error(`Selected page ${selectedPage} is out of range`);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (selectedPage && selectedPage > 2) {
|
|
63
|
+
const selectedRange = getSelectedRange(pagesCount, selectedPage);
|
|
64
|
+
|
|
65
|
+
const [minSelectedRange, , maxSelectedRange] = selectedRange;
|
|
66
|
+
|
|
67
|
+
if (minSelectedRange - SKIPPED_ITEMS_DELTA > 1) {
|
|
68
|
+
range.push(-1);
|
|
69
|
+
} else {
|
|
70
|
+
fill(range, 2, minSelectedRange);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
range = range.concat(selectedRange);
|
|
74
|
+
|
|
75
|
+
if (pagesCount - maxSelectedRange > SKIPPED_ITEMS_DELTA) {
|
|
76
|
+
range.push(-1);
|
|
77
|
+
} else {
|
|
78
|
+
fill(range, maxSelectedRange + 1, pagesCount);
|
|
79
|
+
}
|
|
80
|
+
} else if (pagesCount <= 5) {
|
|
81
|
+
fill(range, 2, pagesCount);
|
|
82
|
+
} else {
|
|
83
|
+
range.push(2, 3, -1);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
range.push(pagesCount);
|
|
87
|
+
|
|
88
|
+
return range;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
export default generateRange;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as generateRange } from './generateRange';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { throttle } from './throttle';
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { throttle } from './throttle';
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4
|
+
const callNTimes = (fn: any, n: number) => {
|
|
5
|
+
for (let i = 0; i < n; i++) {
|
|
6
|
+
fn();
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
describe('throttle', () => {
|
|
11
|
+
beforeEach(() => {
|
|
12
|
+
jest.useFakeTimers();
|
|
13
|
+
jest.spyOn(global, 'setTimeout');
|
|
14
|
+
jest.spyOn(global, 'clearTimeout');
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
afterAll(() => {
|
|
18
|
+
jest.useRealTimers();
|
|
19
|
+
jest.restoreAllMocks();
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
it('throttles a function call', () => {
|
|
23
|
+
const mockFn = jest.fn();
|
|
24
|
+
const [throttledFn] = throttle(mockFn, 500);
|
|
25
|
+
|
|
26
|
+
callNTimes(throttledFn, 5);
|
|
27
|
+
|
|
28
|
+
expect(mockFn).toHaveBeenCalledTimes(1);
|
|
29
|
+
|
|
30
|
+
jest.runOnlyPendingTimers();
|
|
31
|
+
|
|
32
|
+
expect(setTimeout).toHaveBeenCalledTimes(2);
|
|
33
|
+
expect(setTimeout).toHaveBeenLastCalledWith(expect.any(Function), 500);
|
|
34
|
+
|
|
35
|
+
expect(mockFn).toHaveBeenCalledTimes(2);
|
|
36
|
+
expect(clearTimeout).toHaveBeenCalledTimes(0);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('cancels the timer', () => {
|
|
40
|
+
const mockFn = jest.fn();
|
|
41
|
+
const [throttledFn, cancelTimer] = throttle(mockFn, 500);
|
|
42
|
+
|
|
43
|
+
callNTimes(throttledFn, 5);
|
|
44
|
+
|
|
45
|
+
expect(mockFn).toHaveBeenCalledTimes(1);
|
|
46
|
+
|
|
47
|
+
cancelTimer();
|
|
48
|
+
|
|
49
|
+
expect(clearTimeout).toHaveBeenCalledTimes(1);
|
|
50
|
+
|
|
51
|
+
expect(setTimeout).toHaveBeenCalledTimes(1);
|
|
52
|
+
expect(setTimeout).toHaveBeenLastCalledWith(expect.any(Function), 500);
|
|
53
|
+
|
|
54
|
+
expect(mockFn).toHaveBeenCalledTimes(1);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2
|
+
type UnknownFn = (...args: any[]) => unknown;
|
|
3
|
+
type ThrottleFn = (
|
|
4
|
+
fn: UnknownFn,
|
|
5
|
+
delayMs: number,
|
|
6
|
+
) => [(...args: unknown[]) => void, () => void];
|
|
7
|
+
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
8
|
+
|
|
9
|
+
export const throttle: ThrottleFn = (fn, delayMs) => {
|
|
10
|
+
let isThrottled = false;
|
|
11
|
+
let savedArgs: unknown[] | null = null;
|
|
12
|
+
let timeoutId: ReturnType<typeof setTimeout> | null = null;
|
|
13
|
+
|
|
14
|
+
function throttledFn(...args: unknown[]) {
|
|
15
|
+
if (isThrottled) {
|
|
16
|
+
savedArgs = args;
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
isThrottled = true;
|
|
21
|
+
|
|
22
|
+
fn(...args);
|
|
23
|
+
|
|
24
|
+
timeoutId = setTimeout(() => {
|
|
25
|
+
isThrottled = false;
|
|
26
|
+
|
|
27
|
+
// istanbul ignore else
|
|
28
|
+
if (savedArgs) {
|
|
29
|
+
throttledFn(...savedArgs);
|
|
30
|
+
savedArgs = null;
|
|
31
|
+
}
|
|
32
|
+
}, delayMs);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return [
|
|
36
|
+
throttledFn,
|
|
37
|
+
function cancel() {
|
|
38
|
+
if (timeoutId) {
|
|
39
|
+
clearTimeout(timeoutId);
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
};
|
package/tsbuildcache
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"program":{"fileNames":["../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.1.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.pnpm/@types+react@18.2.8/node_modules/@types/react/global.d.ts","../../node_modules/.pnpm/csstype@3.1.2/node_modules/csstype/index.d.ts","../../node_modules/.pnpm/@types+prop-types@15.7.5/node_modules/@types/prop-types/index.d.ts","../../node_modules/.pnpm/@types+scheduler@0.16.3/node_modules/@types/scheduler/tracing.d.ts","../../node_modules/.pnpm/@types+react@18.2.8/node_modules/@types/react/index.d.ts","../../node_modules/.pnpm/@types+react@18.2.8/node_modules/@types/react/jsx-runtime.d.ts","./src/utils/callall.ts","./src/utils/throttle/throttle.ts","./src/utils/throttle/index.ts","./src/utils/debounce/debounce.ts","./src/utils/debounce/index.ts","./src/utils/dates/dateformatters.ts","./src/utils/objects/mapobjindexed.ts","./src/utils/pagination/types.ts","./src/utils/pagination/generaterange.ts","./src/utils/pagination/index.ts","./src/utils/objects/assocpath.ts","./src/utils/objects/dissocpath.ts","./src/utils/objects/path.ts","./src/utils/objects/pathor.ts","./src/utils/objects/prop.ts","./src/utils/objects/propor.ts","./src/utils/objects/index.ts","./src/utils/types.ts","./src/index.ts","./src/utils/dates/index.ts","./src/utils/dates/dates.spec.tsx","./src/utils/debounce/debounce.spec.ts","./src/utils/objects/assocpath.spec.tsx","./src/utils/objects/dissocpath.spec.tsx","./src/utils/objects/mapobjindexed.spec.tsx","./src/utils/objects/path.spec.tsx","./src/utils/objects/pathor.spec.tsx","./src/utils/objects/prop.spec.tsx","./src/utils/objects/propor.spec.tsx","./src/utils/pagination/generaterange.spec.ts","./src/utils/throttle/throttle.spec.ts","../../node_modules/.pnpm/@types+eslint@8.40.2/node_modules/@types/eslint/helpers.d.ts","../../node_modules/.pnpm/@types+estree@1.0.1/node_modules/@types/estree/index.d.ts","../../node_modules/.pnpm/@types+json-schema@7.0.12/node_modules/@types/json-schema/index.d.ts","../../node_modules/.pnpm/@types+eslint@8.40.2/node_modules/@types/eslint/index.d.ts","../../node_modules/.pnpm/@types+eslint-scope@3.7.4/node_modules/@types/eslint-scope/index.d.ts","../../node_modules/.pnpm/@jest+expect-utils@29.6.4/node_modules/@jest/expect-utils/build/index.d.ts","../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/index.d.ts","../../node_modules/.pnpm/@sinclair+typebox@0.27.8/node_modules/@sinclair/typebox/typebox.d.ts","../../node_modules/.pnpm/@jest+schemas@29.6.3/node_modules/@jest/schemas/build/index.d.ts","../../node_modules/.pnpm/pretty-format@29.6.3/node_modules/pretty-format/build/index.d.ts","../../node_modules/.pnpm/jest-diff@29.6.4/node_modules/jest-diff/build/index.d.ts","../../node_modules/.pnpm/jest-matcher-utils@29.6.4/node_modules/jest-matcher-utils/build/index.d.ts","../../node_modules/.pnpm/expect@29.5.0/node_modules/expect/build/index.d.ts","../../node_modules/.pnpm/pretty-format@29.5.0/node_modules/pretty-format/build/index.d.ts","../../node_modules/.pnpm/@types+jest@29.5.2/node_modules/@types/jest/index.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/dom-events.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/globals.global.d.ts","../../node_modules/.pnpm/@types+node@20.2.5/node_modules/@types/node/index.d.ts","../../node_modules/.pnpm/@types+react-dom@18.2.4/node_modules/@types/react-dom/index.d.ts","../../node_modules/.pnpm/@types+testing-library__jest-dom@5.14.6/node_modules/@types/testing-library__jest-dom/matchers.d.ts","../../node_modules/.pnpm/@types+testing-library__jest-dom@5.14.6/node_modules/@types/testing-library__jest-dom/index.d.ts"],"fileInfos":[{"version":"f59215c5f1d886b05395ee7aca73e0ac69ddfad2843aa88530e797879d511bad","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","f4e736d6c8d69ae5b3ab0ddfcaa3dc365c3e76909d6660af5b4e979b3934ac20","eeeb3aca31fbadef8b82502484499dfd1757204799a6f5b33116201c810676ec",{"version":"3dda5344576193a4ae48b8d03f105c86f20b2f2aff0a1d1fd7935f5d68649654","affectsGlobalScope":true},{"version":"35299ae4a62086698444a5aaee27fc7aa377c68cbb90b441c9ace246ffd05c97","affectsGlobalScope":true},{"version":"9d9885c728913c1d16e0d2831b40341d6ad9a0ceecaabc55209b306ad9c736a5","affectsGlobalScope":true},{"version":"17bea081b9c0541f39dd1ae9bc8c78bdd561879a682e60e2f25f688c0ecab248","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"f06948deb2a51aae25184561c9640fb66afeddb34531a9212d011792b1d19e0a","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"61ed9b6d07af959e745fb11f9593ecd743b279418cc8a99448ea3cd5f3b3eb22","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"930b0e15811f84e203d3c23508674d5ded88266df4b10abee7b31b2ac77632d2","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"25de46552b782d43cb7284df22fe2a265de387cf0248b747a7a1b647d81861f6","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"549df62b64a71004aee17685b445a8289013daf96246ce4d9b087d13d7a27a61","affectsGlobalScope":true},"4c68749a564a6facdf675416d75789ee5a557afda8960e0803cf6711fa569288","6a386ff939f180ae8ef064699d8b7b6e62bc2731a62d7fbf5e02589383838dea","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"af6e117b5bbb9d4bd77b596995818e047652c45a4fd7c243db88c6a81ea4f345","affectsGlobalScope":true},"de618fec44f70765cc7bbc30c9049b1c31f3cfb3824e7a7731121ca1785998e4",{"version":"2ef5ee62c64d89d6e430d5ed03e1585fc655456e552e61f68eb1262228095024","signature":"b0de5466e44eb385f6dd697708f142f77bee179fa9a901c129537d6f5c03662f"},{"version":"df2977f978a9433d836a3a6be1b193f6a3ec8b0fe87dabf64410cec8ac3e9d9b","signature":"bc681a177f66fb7b094061bcafd2bfb6ca6df6b032a61fef23339579f81b5f0c"},"388150f8c5ca50e26452a0412eb6be096f0a304649c21b1ddcef2095c5beddd6",{"version":"dcf1a57f800c79b770e5a9f07edd07af188b2aba3a52e70029b337bab119d701","signature":"34579746ab6f8e88d8737b95cad72de7c3700f593ad94c1c1a9af3ebf7633645"},"ae43168792e0e724aee69245c76c4a7cd4b2bafa957c19538dc30fe6ffbb2309",{"version":"0f56792cab4e89f0394f54a628c357f3ae2e8755bc45bd469dc47565cba4808a","signature":"b35ef14f226dd768a3b57077632d4f1fefa8819a6b203df91334de81239a9bc1"},{"version":"0be251ab8051400044b7c1a9f210a7a7ea18d94a78a0b8dc069e89ba7e22865e","signature":"63a378cb9641e143f1ec4dacf2ba0d494df3e58b476a5956dfcb3c7cc86ebded"},{"version":"1192a707d79c72fc35542b39bbbf345463a6d22763b7d37b1a824b10ee13ef86","signature":"84ba1f043b959f5f0c49c2fd1d04bc4570ad74cb3a768e7d40098a1e44a14c46"},{"version":"d6ce2854b82b104d649ac024d2e7aaa58420fabd80a51eae933dcfc7ce6ec7ad","signature":"4d32060470a17c0313430faa51ac37500262fa75f95fd27fd62c4128c87fdbcb"},"f2dc944371281c83bc5c4839ff1619aa96235e325be5eb6f16971bac7478ef8d",{"version":"60cd23db7f6a4e10428fc947d1385a72934ffbe6c06d1aa134c05cedf1bab482","signature":"394218c5dd4e7aab03b47990d824e5778ec18beacb5a78e1c180d136f8d8aa28"},{"version":"0956584f5c57fd97878ef00608c9967a1caccd98f5ef100940acce2d2ce89ea1","signature":"36e07532e1360fa5d9bf8f6897428d71f0828dec4b0a354f6f0a344fd8a9c271"},{"version":"493716246750863814c176d8f7450c1db1253960b33167e93f4136d8ff35978b","signature":"22993fda8c36619231e86d3dc25c17865196aa6c3c133169aeb9c2db2fafe4ec"},{"version":"993cc56aae1af3c1bdebe55512997b98aac3944b735683acfa76a87d8883d903","signature":"1dd0d6cf40cc4c15bd789310bbcf070732c1c677aa5deefbc741b8399bcaf5fb"},{"version":"c8f79ad10ef3fab422d94c36d310c69fdd40499f05363dd418f2625ea1b45782","signature":"4a05f9cc1e23be99d04ead028bc2e7cb2e946af6a975e63fe09530635d2e5ae9"},{"version":"7a3ca01cc0cc603eaf8221a5f24239866d9f6625533aee5385b74e4a0ab88613","signature":"fe4b9b6929826cd37a511fbb9d37ce88ea366718d2883970435e545afdd249f3"},"ef84c87c1583bb1b7d65f2222006342c5a95da1a321b69a944f96e879dc3f32d",{"version":"04acfc5e440f915bc996e80b1f538d6daa526797bd3c0af6ce198eb0e6602ead","signature":"b1aa52406ae2f56b5a5b7efa38eb9b0e5850786770f60e864cd3528b780936a5"},"4ad806d12106a84dbdd10fd908c3074c4f495dc5834d6a03b30a33bd2c1b836d","8fd6ce1e1911e64a9499dccc889af28d745ff06a2e4ea745076c3fd7988206b1",{"version":"093ac833f6c8684ee6c961187260a8a621d45955ea7959b813e609cd08fa705a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"001eec325a8f764dbe5b2d444b00f9d086f368f036d66109297b62e4e66f1303","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"6023d86a761385c3e5d9d4ed1a7d71a5052b3b3ec38782a1a54a7554d0956f8f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"74328068e1c732a244a41c9b2300c8a79df79e5591f2eb85e0d35730232b33d2","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8402ce5e2ddb22cdf9356238f75a07fcdb920795c86e32e4587fbd46b1194174","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"fffd1cc77069f942aa6d853988004895100011e0e604f5c7a03f0ab90d778195","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b5eeb49181a21419464602166e9b1ad55ea03402a886a4028d0f9a90cdeff991","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"164cb2b24023537f4c137afa3f11094f360e8ebeac08835e6d0b0447f0617609","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c86d34328a6dd69d726ebc342d403428be3335a1484400491d0b216f107b129a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c8e60b6196f175a68c13577774803090e47435df3152a62de36415b7843e1bd2","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e28da752a2c12dfba07df0484097ff9efd579ebc73cd79f444c62c905d91e3dc","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"bee89e1eb6425eb49894f3f25e4562dc2564e84e5aa7610b7e13d8ecddf8f5db","dca41e86e89dfb2e85e6935260250f02eb6683b86c2fa16bec729ddd1bcd9b4b","894e2eb01e3ac0dda3722dc520d804faa863fd6e2938c801e4c8561e7b0c8a40","e050a0afcdbb269720a900c85076d18e0c1ab73e580202a2bf6964978181222a","cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","2cec1a31729b9b01e9294c33fc9425d336eff067282809761ad2e74425d6d2a5","2d47012580f859dae201d2eef898a416bdae719dffc087dfd06aefe3de2f9c8d",{"version":"240c702fb4b3bd54d83ee167d80fa7f0cd7300fef7eea0b32cef33129740893c","affectsGlobalScope":true},"587f13f1e8157bd8cec0adda0de4ef558bb8573daa9d518d1e2af38e87ecc91f","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"bce910d9164785c9f0d4dcea4be359f5f92130c7c7833dea6138ab1db310a1f9","affectsGlobalScope":true},"7a435e0c814f58f23e9a0979045ec0ef5909aac95a70986e8bcce30c27dff228",{"version":"241a2e19e03fd1d884e0f304429378d05bc2c1b26b5693c84868f7ad0674982d","affectsGlobalScope":true},"db71be322f07f769200108aa19b79a75dd19a187c9dca2a30c4537b233aa2863","0b70ce7a20fa21c7201a5a972b7f2288cb90ace8a2dde9f3344b5dfc6504abaf",{"version":"49479e21a040c0177d1b1bc05a124c0383df7a08a0726ad4d9457619642e875a","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","3fd0f1af75fb7abe0ea376aa71541daaf489f3d87c394b1165db684ea44b48be","3690133deae19c8127c5505fcb67b04bdc9eb053796008538a9b9abbb70d85aa","5b1c0a23f464f894e7c2b2b6c56df7b9afa60ed48c5345f8618d389a636b2108","be2b092f2765222757c6441b86c53a5ea8dfed47bbc43eab4c5fe37942c866b3","8e6b05abc98adba15e1ac78e137c64576c74002e301d682e66feb77a23907ab8","1ca735bb3d407b2af4fbee7665f3a0a83be52168c728cc209755060ba7ed67bd",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"b85c02e14ecb2a873dad5a1de72319b265160ba48f1b83661aeb3bba1366c1bc","affectsGlobalScope":true},"f1a0b2dde686cb8a995d4ed11848be5eaf76fd5d56532942e0737b39d4a02c6d","fc3764040518a1008dd04bdc80964591b566b896283e00df85c95851c1f46237","55709608060f77965c270ac10ac646286589f1bd1cb174fff1778a2dd9a7ef31","790623a47c5eda62910098884ecb154dc0e5f3a23fc36c1bfb3b5b9ed44e2c2d","42b40e40f2a358cda332456214fad311e1806a6abf3cebaaac72496e07556642","354612fe1d49ecc9551ea3a27d94eef2887b64ef4a71f72ca444efe0f2f0ba80",{"version":"125af9d85cb9d5e508353f10a8d52f01652d2d48b2cea54789a33e5b4d289c1c","affectsGlobalScope":true},"6a325d4c96569bdd5a9a59f819a672e2d5644ee6cf98ab910e0064402557af8d","5e2b91328a540a0933ab5c2203f4358918e6f0fe7505d22840a891a6117735f1","3abc3512fa04aa0230f59ea1019311fd8667bd935d28306311dccc8b17e79d5d",{"version":"14a50dafe3f45713f7f27cb6320dff07c6ac31678f07959c2134260061bf91ff","affectsGlobalScope":true},{"version":"5761c90b0cabdd6bd1f5fb1c3bf942088fdd39e18ed35dbe39b0c34bc733bf13","affectsGlobalScope":true},"1349077576abb41f0e9c78ec30762ff75b710208aff77f5fdcc6a8c8ce6289dd","e2ce82603102b5c0563f59fb40314cc1ff95a4d521a66ad14146e130ea80d89c","a3e0395220255a350aa9c6d56f882bfcb5b85c19fddf5419ec822cf22246a26d","c27b01e8ddff5cd280711af5e13aecd9a3228d1c256ea797dd64f8fdec5f7df5","898840e876dfd21843db9f2aa6ae38ba2eab550eb780ff62b894b9fbfebfae6b","0cab4d7d4edc40cd3af9eea7c3ed6d1016910c0954c49c4297e479bf3822a625","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","785e5be57d4f20f290a20e7b0c6263f6c57fd6e51283050756cef07d6d651c68","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","164deb2409ac5f4da3cd139dbcee7f7d66753d90363a4d7e2db8d8874f272270","1fb6c5ec52332a8b531a8d7a5300ac9301f98c4fe62f68e744e0841ccba65e7e",{"version":"ab294c4b7279318ee2a8fdf681305457ecc05970c94108d304933f18823eeac1","affectsGlobalScope":true},"ad08154d9602429522cac965a715fde27d421d69b24756c5d291877dda75353e","bbda6ea452a2386093a1eda18a6e26a989e98869f1b9f37e46f510a986d2e740","812b25f798033c202baedf386a1ccc41f9191b122f089bffd10fdccce99fba11","244cdeb8c344eb42e6142cbb0727752b9b735443fba7007c11b14ca06ebed97c",{"version":"75dd741ca6a6c8d2437a6ca8349b64b816421dbf9fe82dd026afaba965576962","affectsGlobalScope":true},{"version":"8799401a7ab57764f0d464513a7fa7c72e1d70a226b172ec60fff534ea94d108","affectsGlobalScope":true},"2ce2210032ccaff7710e2abf6a722e62c54960458e73e356b6a365c93ab6ca66","92db194ef7d208d5e4b6242a3434573fd142a621ff996d84cc9dbba3553277d0","69f5747ad0887c24c76858ed458712101771349f2287e21871fcd1562daa7dc0",{"version":"0bd9543cd8fc0959c76fb8f4f5a26626c2ed62ef4be98fd857bce268066db0a2","affectsGlobalScope":true},"1ca6858a0cbcd74d7db72d7b14c5360a928d1d16748a55ecfa6bfaff8b83071b",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"220717df86539e219f619d31965d177e7235185e4bc6f6e6ed7e11a9b004d5ca","a95b76aef31395752eb5cb7b386be2e287fdc32dfdf7bdbbb666e333133b1ef7","28bc19234e1027156ad72c5644a97eec0538d262aeb9ceb31356767eac0d3fdc",{"version":"910199067bfd07a4605bf51001677680e1691f8d403e9d410c0fe33a6079cd58","affectsGlobalScope":true}],"root":[[68,98]],"options":{"declaration":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":4,"module":99,"noImplicitAny":false,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"strict":true,"target":2,"tsBuildInfoFile":"./tsbuildcache"},"fileIdsList":[[160],[106,160],[100,102,160],[99,100,101,160],[111,112,160],[114,160],[117,160],[118,123,151,160],[119,130,131,138,148,159,160],[119,120,130,138,160],[121,160],[122,123,131,139,160],[123,148,156,160],[124,126,130,138,160],[125,160],[126,127,160],[130,160],[128,130,160],[130,131,132,148,159,160],[130,131,132,145,148,151,160],[160,164],[126,130,133,138,148,159,160],[130,131,133,134,138,148,156,159,160],[133,135,148,156,159,160],[114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166],[130,136,160],[137,159,160],[126,130,138,148,160],[139,160],[140,160],[117,141,160],[142,158,160,164],[143,160],[144,160],[130,145,146,160],[145,147,160,162],[118,130,148,149,150,151,160],[118,148,150,160],[148,149,160],[151,160],[152,160],[148,160],[130,154,155,160],[154,155,160],[123,138,148,156,160],[157,160],[138,158,160],[118,133,144,159,160],[123,160],[148,160,161],[160,162],[160,163],[118,123,130,132,141,148,159,160,162,164],[148,160,165],[66,160],[62,63,64,65,160],[113,160,169],[104,110,160],[108,160],[105,109,160],[107,160],[67,68,70,72,73,74,77,84,85,160],[67,160],[67,87,160],[67,73,160],[67,72,160],[67,71,160],[67,84,160],[67,74,78,79,80,81,82,83,160],[67,80,160],[67,82,160],[67,76,160],[67,75,160],[67,69,160],[75]],"referencedMap":[[104,1],[107,2],[106,1],[103,3],[99,1],[102,4],[100,1],[113,5],[101,1],[114,6],[115,6],[117,7],[118,8],[119,9],[120,10],[121,11],[122,12],[123,13],[124,14],[125,15],[126,16],[127,16],[129,17],[128,18],[130,17],[131,19],[132,20],[116,21],[166,1],[133,22],[134,23],[135,24],[167,25],[136,26],[137,27],[138,28],[139,29],[140,30],[141,31],[142,32],[143,33],[144,34],[145,35],[146,35],[147,36],[148,37],[150,38],[149,39],[151,40],[152,41],[153,42],[154,43],[155,44],[156,45],[157,46],[158,47],[159,48],[160,49],[161,50],[162,51],[163,52],[164,53],[165,54],[64,1],[168,55],[62,1],[66,56],[67,55],[65,1],[170,57],[169,1],[105,1],[63,1],[111,58],[109,59],[110,60],[112,61],[108,61],[60,1],[61,1],[12,1],[13,1],[15,1],[14,1],[2,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[3,1],[4,1],[27,1],[24,1],[25,1],[26,1],[28,1],[29,1],[30,1],[5,1],[31,1],[32,1],[33,1],[34,1],[6,1],[38,1],[35,1],[36,1],[37,1],[39,1],[7,1],[40,1],[45,1],[46,1],[41,1],[42,1],[43,1],[44,1],[8,1],[50,1],[47,1],[48,1],[49,1],[51,1],[9,1],[52,1],[53,1],[54,1],[57,1],[55,1],[56,1],[58,1],[10,1],[1,1],[11,1],[59,1],[86,62],[68,63],[73,63],[88,64],[87,65],[89,66],[71,63],[72,67],[90,68],[78,63],[91,68],[79,63],[84,69],[92,68],[74,63],[93,68],[80,63],[94,68],[81,70],[95,68],[82,63],[96,68],[83,71],[97,72],[76,73],[77,72],[75,63],[70,74],[98,74],[69,63],[85,63]],"exportedModulesMap":[[104,1],[107,2],[106,1],[103,3],[99,1],[102,4],[100,1],[113,5],[101,1],[114,6],[115,6],[117,7],[118,8],[119,9],[120,10],[121,11],[122,12],[123,13],[124,14],[125,15],[126,16],[127,16],[129,17],[128,18],[130,17],[131,19],[132,20],[116,21],[166,1],[133,22],[134,23],[135,24],[167,25],[136,26],[137,27],[138,28],[139,29],[140,30],[141,31],[142,32],[143,33],[144,34],[145,35],[146,35],[147,36],[148,37],[150,38],[149,39],[151,40],[152,41],[153,42],[154,43],[155,44],[156,45],[157,46],[158,47],[159,48],[160,49],[161,50],[162,51],[163,52],[164,53],[165,54],[64,1],[168,55],[62,1],[66,56],[67,55],[65,1],[170,57],[169,1],[105,1],[63,1],[111,58],[109,59],[110,60],[112,61],[108,61],[60,1],[61,1],[12,1],[13,1],[15,1],[14,1],[2,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[3,1],[4,1],[27,1],[24,1],[25,1],[26,1],[28,1],[29,1],[30,1],[5,1],[31,1],[32,1],[33,1],[34,1],[6,1],[38,1],[35,1],[36,1],[37,1],[39,1],[7,1],[40,1],[45,1],[46,1],[41,1],[42,1],[43,1],[44,1],[8,1],[50,1],[47,1],[48,1],[49,1],[51,1],[9,1],[52,1],[53,1],[54,1],[57,1],[55,1],[56,1],[58,1],[10,1],[1,1],[11,1],[59,1],[86,62],[87,65],[72,67],[84,69],[76,75],[77,72],[70,74]],"semanticDiagnosticsPerFile":[104,107,106,103,99,102,100,113,101,114,115,117,118,119,120,121,122,123,124,125,126,127,129,128,130,131,132,116,166,133,134,135,167,136,137,138,139,140,141,142,143,144,145,146,147,148,150,149,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,64,168,62,66,67,65,170,169,105,63,111,109,110,112,108,60,61,12,13,15,14,2,16,17,18,19,20,21,22,23,3,4,27,24,25,26,28,29,30,5,31,32,33,34,6,38,35,36,37,39,7,40,45,46,41,42,43,44,8,50,47,48,49,51,9,52,53,54,57,55,56,58,10,1,11,59,86,68,73,88,87,89,71,72,90,78,91,79,84,92,74,93,80,94,81,95,82,96,83,97,76,77,75,70,98,69,85]},"version":"5.1.3"}
|