@igo2/utils 18.0.1-next.2 → 18.0.1

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.
@@ -0,0 +1,208 @@
1
+ export const TREE_SEPERATOR = '.';
2
+ export class Tree {
3
+ config;
4
+ _data;
5
+ getChildren;
6
+ getId;
7
+ getLevel;
8
+ constructor(initialData, config) {
9
+ this.config = config;
10
+ this.getChildren = config.getChildren;
11
+ this.getId = config.getId;
12
+ this.getLevel = config.getLevel;
13
+ this._data = this.sortDeep(initialData);
14
+ }
15
+ get data() {
16
+ return this._data;
17
+ }
18
+ get flattened() {
19
+ return this.flatten([...this.data]);
20
+ }
21
+ add(...nodes) {
22
+ this.sortDeep(nodes);
23
+ this._data.unshift(...nodes);
24
+ return nodes;
25
+ }
26
+ addBefore(beforeId, ...nodes) {
27
+ this.sortDeep(nodes);
28
+ this._addBefore(beforeId, this._data, ...nodes);
29
+ }
30
+ remove(...nodes) {
31
+ return this._remove(...nodes);
32
+ }
33
+ clear() {
34
+ this._data = [];
35
+ }
36
+ exist(node) {
37
+ const id = this.getId(node);
38
+ return this.flattened.some((layer) => this.getId(layer) === id);
39
+ }
40
+ /**
41
+ * Move a node to a different position
42
+ * @param node
43
+ * @param beforeTo The position of index into the tree. If -1 move at the end
44
+ */
45
+ moveTo(beforeTo, ...nodes) {
46
+ const clonedBeforeTo = [...beforeTo];
47
+ const lastIndex = clonedBeforeTo.pop();
48
+ const recipient = this.getAncestorAtPosition(clonedBeforeTo);
49
+ const beforeId = lastIndex === -1 || lastIndex >= recipient.length
50
+ ? null
51
+ : this.getId(recipient[lastIndex]);
52
+ const nodesToMove = nodes.filter((node) => beforeId !== this.getId(node));
53
+ return this.move(beforeId, recipient, ...nodesToMove);
54
+ }
55
+ getPosition(node) {
56
+ const id = this.getId(node);
57
+ return this._getPosition(id);
58
+ }
59
+ _addBefore(beforeId, recipient = this._data, ...nodes) {
60
+ if (!beforeId) {
61
+ recipient.push(...nodes);
62
+ return nodes;
63
+ }
64
+ const beforeIndex = this.getIndex(beforeId, recipient);
65
+ recipient.splice(beforeIndex, 0, ...nodes);
66
+ return nodes;
67
+ }
68
+ _remove(...nodes) {
69
+ return nodes.reduce((acc, node) => {
70
+ const ancestor = this.getNodeAncestor(node);
71
+ if (!ancestor) {
72
+ return;
73
+ }
74
+ const index = this.getIndex(this.getId(node), ancestor);
75
+ if (index === -1) {
76
+ return;
77
+ }
78
+ ancestor.splice(index, 1);
79
+ return acc.concat(node);
80
+ }, []);
81
+ }
82
+ /**
83
+ * Move an node before an id
84
+ * @param node Node to be move
85
+ * @param recipient
86
+ * @param beforeId
87
+ */
88
+ move(beforeId, recipient, ...nodes) {
89
+ this._remove(...nodes);
90
+ return this._addBefore(beforeId, recipient, ...nodes);
91
+ }
92
+ _getPosition(id, ancestorsIndex = [], values = this._data) {
93
+ let indexList;
94
+ values.some((value, index) => {
95
+ if (this.getId(value) === id) {
96
+ indexList = ancestorsIndex.concat(index);
97
+ return true;
98
+ }
99
+ const children = this.getChildren(value);
100
+ if (children) {
101
+ const groupIndexList = this._getPosition(id, ancestorsIndex.concat(index), children);
102
+ if (groupIndexList) {
103
+ indexList = groupIndexList;
104
+ return true;
105
+ }
106
+ }
107
+ return false;
108
+ });
109
+ return indexList;
110
+ }
111
+ getAncestorAtPosition(position) {
112
+ if (!position.length) {
113
+ return this._data;
114
+ }
115
+ const node = this.getNodeByPosition(position);
116
+ return this.getChildren(node);
117
+ }
118
+ /** Recursive */
119
+ sortDeep(data = this._data) {
120
+ data.forEach((node) => {
121
+ const children = this.getChildren(node);
122
+ if (children) {
123
+ this.sortDeep(children);
124
+ }
125
+ });
126
+ return this.sort(data);
127
+ }
128
+ sort(children) {
129
+ const sorted = children.sort((a, b) => this.getLevel(a) - this.getLevel(b));
130
+ return this.config.reverse ? sorted.reverse() : sorted;
131
+ }
132
+ /** Recursive */
133
+ _getNodeById(id, data = this._data) {
134
+ let node;
135
+ data.some((item) => {
136
+ if (this.getId(item) === id) {
137
+ node = item;
138
+ return true;
139
+ }
140
+ const children = this.getChildren(item);
141
+ if (children) {
142
+ node = this._getNodeById(id, children);
143
+ if (node) {
144
+ return true;
145
+ }
146
+ }
147
+ return false;
148
+ });
149
+ return node;
150
+ }
151
+ getNodeByPosition(indexes) {
152
+ if (indexes.length > 1) {
153
+ return indexes.reduce((previousValue, index) => {
154
+ const ancestor = previousValue
155
+ ? this.getChildren(previousValue)
156
+ : this._data;
157
+ return this._getByIndex(index, ancestor);
158
+ }, null);
159
+ }
160
+ else {
161
+ return this._getByIndex(indexes[0]);
162
+ }
163
+ }
164
+ _getByIndex(index, ancestor = this._data) {
165
+ return ancestor[index];
166
+ }
167
+ getNodeAncestor(node) {
168
+ const id = this.getId(node);
169
+ return this.getAncestorById(id);
170
+ }
171
+ /** Recursive */
172
+ getAncestorById(id, data = this._data) {
173
+ let ancestor;
174
+ data.some((item) => {
175
+ if (this.getId(item) === id) {
176
+ ancestor = data;
177
+ return true;
178
+ }
179
+ const children = this.getChildren(item);
180
+ if (children) {
181
+ ancestor = this.getAncestorById(id, children);
182
+ if (ancestor) {
183
+ return true;
184
+ }
185
+ }
186
+ return false;
187
+ });
188
+ return ancestor;
189
+ }
190
+ /** Recursive */
191
+ flatten(nodes) {
192
+ return nodes.reduce((list, node) => {
193
+ const children = this.getChildren(node);
194
+ if (children) {
195
+ const flattened = this.flatten(children);
196
+ list.push(node, ...flattened);
197
+ }
198
+ else {
199
+ list.push(node);
200
+ }
201
+ return list;
202
+ }, []);
203
+ }
204
+ getIndex(id, ancestor) {
205
+ return ancestor.findIndex((node) => this.getId(node) === id);
206
+ }
207
+ }
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9saWIvdHJlZS90cmVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUM7QUFFbEMsTUFBTSxPQUFPLElBQUk7SUFTTDtJQVJGLEtBQUssQ0FBTTtJQUVuQixXQUFXLENBQTBDO0lBQ3JELEtBQUssQ0FBMEI7SUFDL0IsUUFBUSxDQUEwQjtJQUVsQyxZQUNFLFdBQWdCLEVBQ1IsTUFBc0I7UUFBdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFFOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFFaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFHLEtBQVU7UUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDN0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsU0FBUyxDQUFDLFFBQTRCLEVBQUUsR0FBRyxLQUFVO1FBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxLQUFVO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFPO1FBQ1gsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFFBQWtCLEVBQUUsR0FBRyxLQUFVO1FBQ3RDLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztRQUNyQyxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdELE1BQU0sUUFBUSxHQUNaLFNBQVMsS0FBSyxDQUFDLENBQUMsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU07WUFDL0MsQ0FBQyxDQUFDLElBQUk7WUFDTixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUV2QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFPO1FBQ2pCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTyxVQUFVLENBQ2hCLFFBQTRCLEVBQzVCLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUN0QixHQUFHLEtBQVU7UUFFYixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDekIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdkQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFFM0MsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sT0FBTyxDQUFDLEdBQUcsS0FBVTtRQUMzQixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2QsT0FBTztZQUNULENBQUM7WUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDeEQsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDakIsT0FBTztZQUNULENBQUM7WUFDRCxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUUxQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssSUFBSSxDQUNWLFFBQTRCLEVBQzVCLFNBQWMsRUFDZCxHQUFHLEtBQVU7UUFFYixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRU8sWUFBWSxDQUNsQixFQUFVLEVBQ1YsaUJBQTJCLEVBQUUsRUFDN0IsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLO1FBRW5CLElBQUksU0FBbUIsQ0FBQztRQUN4QixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzNCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDN0IsU0FBUyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pDLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUN0QyxFQUFFLEVBQ0YsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFDNUIsUUFBUSxDQUNULENBQUM7Z0JBQ0YsSUFBSSxjQUFjLEVBQUUsQ0FBQztvQkFDbkIsU0FBUyxHQUFHLGNBQWMsQ0FBQztvQkFDM0IsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVPLHFCQUFxQixDQUFDLFFBQWtCO1FBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BCLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxnQkFBZ0I7SUFDUixRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNwQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hDLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVPLElBQUksQ0FBQyxRQUFhO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN6RCxDQUFDO0lBRUQsZ0JBQWdCO0lBQ1IsWUFBWSxDQUFDLEVBQVUsRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUs7UUFDaEQsSUFBSSxJQUFPLENBQUM7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDakIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUM1QixJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNaLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ1QsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBaUI7UUFDakMsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWdCLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ2hELE1BQU0sUUFBUSxHQUFHLGFBQWE7b0JBQzVCLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztvQkFDakMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMzQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDWCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFhLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLO1FBQ3RELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTyxlQUFlLENBQUMsSUFBTztRQUM3QixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsZ0JBQWdCO0lBQ1IsZUFBZSxDQUFDLEVBQVUsRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUs7UUFDbkQsSUFBSSxRQUFhLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2pCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDNUIsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDaEIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDYixPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO1lBQ0gsQ0FBQztZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsZ0JBQWdCO0lBQ1IsT0FBTyxDQUFDLEtBQVU7UUFDeEIsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ2pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDO1lBQ2hDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xCLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsRUFBRSxFQUFTLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRU8sUUFBUSxDQUFDLEVBQVUsRUFBRSxRQUFhO1FBQ3hDLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgSVRyZWVDb25maWc8VD4ge1xuICBnZXRDaGlsZHJlbjogKGRhdGFOb2RlOiBUKSA9PiBUW10gfCB1bmRlZmluZWQgfCBudWxsO1xuICBnZXRJZDogKGRhdGFOb2RlOiBUKSA9PiBzdHJpbmc7XG4gIGdldExldmVsOiAoZGF0YU5vZGU6IFQpID0+IG51bWJlcjtcbiAgcmV2ZXJzZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBUUkVFX1NFUEVSQVRPUiA9ICcuJztcblxuZXhwb3J0IGNsYXNzIFRyZWU8VD4ge1xuICBwcml2YXRlIF9kYXRhOiBUW107XG5cbiAgZ2V0Q2hpbGRyZW46IChkYXRhTm9kZTogVCkgPT4gVFtdIHwgdW5kZWZpbmVkIHwgbnVsbDtcbiAgZ2V0SWQ6IChkYXRhTm9kZTogVCkgPT4gc3RyaW5nO1xuICBnZXRMZXZlbDogKGRhdGFOb2RlOiBUKSA9PiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaW5pdGlhbERhdGE6IFRbXSxcbiAgICBwcml2YXRlIGNvbmZpZzogSVRyZWVDb25maWc8VD5cbiAgKSB7XG4gICAgdGhpcy5nZXRDaGlsZHJlbiA9IGNvbmZpZy5nZXRDaGlsZHJlbjtcbiAgICB0aGlzLmdldElkID0gY29uZmlnLmdldElkO1xuICAgIHRoaXMuZ2V0TGV2ZWwgPSBjb25maWcuZ2V0TGV2ZWw7XG5cbiAgICB0aGlzLl9kYXRhID0gdGhpcy5zb3J0RGVlcChpbml0aWFsRGF0YSk7XG4gIH1cblxuICBnZXQgZGF0YSgpOiByZWFkb25seSBUW10ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhO1xuICB9XG5cbiAgZ2V0IGZsYXR0ZW5lZCgpOiByZWFkb25seSBUW10ge1xuICAgIHJldHVybiB0aGlzLmZsYXR0ZW4oWy4uLnRoaXMuZGF0YV0pO1xuICB9XG5cbiAgYWRkKC4uLm5vZGVzOiBUW10pOiBUW10ge1xuICAgIHRoaXMuc29ydERlZXAobm9kZXMpO1xuICAgIHRoaXMuX2RhdGEudW5zaGlmdCguLi5ub2Rlcyk7XG4gICAgcmV0dXJuIG5vZGVzO1xuICB9XG5cbiAgYWRkQmVmb3JlKGJlZm9yZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQsIC4uLm5vZGVzOiBUW10pOiB2b2lkIHtcbiAgICB0aGlzLnNvcnREZWVwKG5vZGVzKTtcbiAgICB0aGlzLl9hZGRCZWZvcmUoYmVmb3JlSWQsIHRoaXMuX2RhdGEsIC4uLm5vZGVzKTtcbiAgfVxuXG4gIHJlbW92ZSguLi5ub2RlczogVFtdKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5fcmVtb3ZlKC4uLm5vZGVzKTtcbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuX2RhdGEgPSBbXTtcbiAgfVxuXG4gIGV4aXN0KG5vZGU6IFQpOiBib29sZWFuIHtcbiAgICBjb25zdCBpZCA9IHRoaXMuZ2V0SWQobm9kZSk7XG4gICAgcmV0dXJuIHRoaXMuZmxhdHRlbmVkLnNvbWUoKGxheWVyKSA9PiB0aGlzLmdldElkKGxheWVyKSA9PT0gaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vdmUgYSBub2RlIHRvIGEgZGlmZmVyZW50IHBvc2l0aW9uXG4gICAqIEBwYXJhbSBub2RlXG4gICAqIEBwYXJhbSBiZWZvcmVUbyBUaGUgcG9zaXRpb24gb2YgaW5kZXggaW50byB0aGUgdHJlZS4gSWYgLTEgbW92ZSBhdCB0aGUgZW5kXG4gICAqL1xuICBtb3ZlVG8oYmVmb3JlVG86IG51bWJlcltdLCAuLi5ub2RlczogVFtdKTogVFtdIHtcbiAgICBjb25zdCBjbG9uZWRCZWZvcmVUbyA9IFsuLi5iZWZvcmVUb107XG4gICAgY29uc3QgbGFzdEluZGV4ID0gY2xvbmVkQmVmb3JlVG8ucG9wKCk7XG4gICAgY29uc3QgcmVjaXBpZW50ID0gdGhpcy5nZXRBbmNlc3RvckF0UG9zaXRpb24oY2xvbmVkQmVmb3JlVG8pO1xuICAgIGNvbnN0IGJlZm9yZUlkID1cbiAgICAgIGxhc3RJbmRleCA9PT0gLTEgfHwgbGFzdEluZGV4ID49IHJlY2lwaWVudC5sZW5ndGhcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDogdGhpcy5nZXRJZChyZWNpcGllbnRbbGFzdEluZGV4XSk7XG5cbiAgICBjb25zdCBub2Rlc1RvTW92ZSA9IG5vZGVzLmZpbHRlcigobm9kZSkgPT4gYmVmb3JlSWQgIT09IHRoaXMuZ2V0SWQobm9kZSkpO1xuICAgIHJldHVybiB0aGlzLm1vdmUoYmVmb3JlSWQsIHJlY2lwaWVudCwgLi4ubm9kZXNUb01vdmUpO1xuICB9XG5cbiAgZ2V0UG9zaXRpb24obm9kZTogVCk6IG51bWJlcltdIHtcbiAgICBjb25zdCBpZCA9IHRoaXMuZ2V0SWQobm9kZSk7XG4gICAgcmV0dXJuIHRoaXMuX2dldFBvc2l0aW9uKGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2FkZEJlZm9yZShcbiAgICBiZWZvcmVJZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIHJlY2lwaWVudCA9IHRoaXMuX2RhdGEsXG4gICAgLi4ubm9kZXM6IFRbXVxuICApOiBUW10ge1xuICAgIGlmICghYmVmb3JlSWQpIHtcbiAgICAgIHJlY2lwaWVudC5wdXNoKC4uLm5vZGVzKTtcbiAgICAgIHJldHVybiBub2RlcztcbiAgICB9XG5cbiAgICBjb25zdCBiZWZvcmVJbmRleCA9IHRoaXMuZ2V0SW5kZXgoYmVmb3JlSWQsIHJlY2lwaWVudCk7XG4gICAgcmVjaXBpZW50LnNwbGljZShiZWZvcmVJbmRleCwgMCwgLi4ubm9kZXMpO1xuXG4gICAgcmV0dXJuIG5vZGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlKC4uLm5vZGVzOiBUW10pOiBUW10ge1xuICAgIHJldHVybiBub2Rlcy5yZWR1Y2UoKGFjYzogVFtdLCBub2RlKSA9PiB7XG4gICAgICBjb25zdCBhbmNlc3RvciA9IHRoaXMuZ2V0Tm9kZUFuY2VzdG9yKG5vZGUpO1xuICAgICAgaWYgKCFhbmNlc3Rvcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRJbmRleCh0aGlzLmdldElkKG5vZGUpLCBhbmNlc3Rvcik7XG4gICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGFuY2VzdG9yLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgIHJldHVybiBhY2MuY29uY2F0KG5vZGUpO1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIGFuIG5vZGUgYmVmb3JlIGFuIGlkXG4gICAqIEBwYXJhbSBub2RlIE5vZGUgdG8gYmUgbW92ZVxuICAgKiBAcGFyYW0gcmVjaXBpZW50XG4gICAqIEBwYXJhbSBiZWZvcmVJZFxuICAgKi9cbiAgcHJpdmF0ZSBtb3ZlKFxuICAgIGJlZm9yZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgcmVjaXBpZW50OiBUW10sXG4gICAgLi4ubm9kZXM6IFRbXVxuICApOiBUW10ge1xuICAgIHRoaXMuX3JlbW92ZSguLi5ub2Rlcyk7XG4gICAgcmV0dXJuIHRoaXMuX2FkZEJlZm9yZShiZWZvcmVJZCwgcmVjaXBpZW50LCAuLi5ub2Rlcyk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRQb3NpdGlvbihcbiAgICBpZDogc3RyaW5nLFxuICAgIGFuY2VzdG9yc0luZGV4OiBudW1iZXJbXSA9IFtdLFxuICAgIHZhbHVlcyA9IHRoaXMuX2RhdGFcbiAgKSB7XG4gICAgbGV0IGluZGV4TGlzdDogbnVtYmVyW107XG4gICAgdmFsdWVzLnNvbWUoKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZ2V0SWQodmFsdWUpID09PSBpZCkge1xuICAgICAgICBpbmRleExpc3QgPSBhbmNlc3RvcnNJbmRleC5jb25jYXQoaW5kZXgpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmdldENoaWxkcmVuKHZhbHVlKTtcbiAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICBjb25zdCBncm91cEluZGV4TGlzdCA9IHRoaXMuX2dldFBvc2l0aW9uKFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIGFuY2VzdG9yc0luZGV4LmNvbmNhdChpbmRleCksXG4gICAgICAgICAgY2hpbGRyZW5cbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGdyb3VwSW5kZXhMaXN0KSB7XG4gICAgICAgICAgaW5kZXhMaXN0ID0gZ3JvdXBJbmRleExpc3Q7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuICAgIHJldHVybiBpbmRleExpc3Q7XG4gIH1cblxuICBwcml2YXRlIGdldEFuY2VzdG9yQXRQb3NpdGlvbihwb3NpdGlvbjogbnVtYmVyW10pIHtcbiAgICBpZiAoIXBvc2l0aW9uLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gICAgfVxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGVCeVBvc2l0aW9uKHBvc2l0aW9uKTtcbiAgICByZXR1cm4gdGhpcy5nZXRDaGlsZHJlbihub2RlKTtcbiAgfVxuXG4gIC8qKiBSZWN1cnNpdmUgKi9cbiAgcHJpdmF0ZSBzb3J0RGVlcChkYXRhID0gdGhpcy5fZGF0YSk6IFRbXSB7XG4gICAgZGF0YS5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMuZ2V0Q2hpbGRyZW4obm9kZSk7XG4gICAgICBpZiAoY2hpbGRyZW4pIHtcbiAgICAgICAgdGhpcy5zb3J0RGVlcChjaGlsZHJlbik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuc29ydChkYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgc29ydChjaGlsZHJlbjogVFtdKTogVFtdIHtcbiAgICBjb25zdCBzb3J0ZWQgPSBjaGlsZHJlbi5zb3J0KChhLCBiKSA9PiB0aGlzLmdldExldmVsKGEpIC0gdGhpcy5nZXRMZXZlbChiKSk7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJldmVyc2UgPyBzb3J0ZWQucmV2ZXJzZSgpIDogc29ydGVkO1xuICB9XG5cbiAgLyoqIFJlY3Vyc2l2ZSAqL1xuICBwcml2YXRlIF9nZXROb2RlQnlJZChpZDogc3RyaW5nLCBkYXRhID0gdGhpcy5fZGF0YSk6IFQge1xuICAgIGxldCBub2RlOiBUO1xuICAgIGRhdGEuc29tZSgoaXRlbSkgPT4ge1xuICAgICAgaWYgKHRoaXMuZ2V0SWQoaXRlbSkgPT09IGlkKSB7XG4gICAgICAgIG5vZGUgPSBpdGVtO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmdldENoaWxkcmVuKGl0ZW0pO1xuICAgICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgIG5vZGUgPSB0aGlzLl9nZXROb2RlQnlJZChpZCwgY2hpbGRyZW4pO1xuICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIGdldE5vZGVCeVBvc2l0aW9uKGluZGV4ZXM6IG51bWJlcltdKTogVCB7XG4gICAgaWYgKGluZGV4ZXMubGVuZ3RoID4gMSkge1xuICAgICAgcmV0dXJuIGluZGV4ZXMucmVkdWNlKChwcmV2aW91c1ZhbHVlOiBULCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBhbmNlc3RvciA9IHByZXZpb3VzVmFsdWVcbiAgICAgICAgICA/IHRoaXMuZ2V0Q2hpbGRyZW4ocHJldmlvdXNWYWx1ZSlcbiAgICAgICAgICA6IHRoaXMuX2RhdGE7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRCeUluZGV4KGluZGV4LCBhbmNlc3Rvcik7XG4gICAgICB9LCBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX2dldEJ5SW5kZXgoaW5kZXhlc1swXSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QnlJbmRleChpbmRleDogbnVtYmVyLCBhbmNlc3RvciA9IHRoaXMuX2RhdGEpIHtcbiAgICByZXR1cm4gYW5jZXN0b3JbaW5kZXhdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROb2RlQW5jZXN0b3Iobm9kZTogVCk6IFRbXSB7XG4gICAgY29uc3QgaWQgPSB0aGlzLmdldElkKG5vZGUpO1xuICAgIHJldHVybiB0aGlzLmdldEFuY2VzdG9yQnlJZChpZCk7XG4gIH1cblxuICAvKiogUmVjdXJzaXZlICovXG4gIHByaXZhdGUgZ2V0QW5jZXN0b3JCeUlkKGlkOiBzdHJpbmcsIGRhdGEgPSB0aGlzLl9kYXRhKTogVFtdIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgYW5jZXN0b3I6IFRbXTtcbiAgICBkYXRhLnNvbWUoKGl0ZW0pID0+IHtcbiAgICAgIGlmICh0aGlzLmdldElkKGl0ZW0pID09PSBpZCkge1xuICAgICAgICBhbmNlc3RvciA9IGRhdGE7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMuZ2V0Q2hpbGRyZW4oaXRlbSk7XG4gICAgICBpZiAoY2hpbGRyZW4pIHtcbiAgICAgICAgYW5jZXN0b3IgPSB0aGlzLmdldEFuY2VzdG9yQnlJZChpZCwgY2hpbGRyZW4pO1xuICAgICAgICBpZiAoYW5jZXN0b3IpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFuY2VzdG9yO1xuICB9XG5cbiAgLyoqIFJlY3Vyc2l2ZSAqL1xuICBwcml2YXRlIGZsYXR0ZW4obm9kZXM6IFRbXSk6IFRbXSB7XG4gICAgcmV0dXJuIG5vZGVzLnJlZHVjZSgobGlzdCwgbm9kZSkgPT4ge1xuICAgICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmdldENoaWxkcmVuKG5vZGUpO1xuICAgICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnN0IGZsYXR0ZW5lZCA9IHRoaXMuZmxhdHRlbihjaGlsZHJlbik7XG4gICAgICAgIGxpc3QucHVzaChub2RlLCAuLi5mbGF0dGVuZWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGlzdC5wdXNoKG5vZGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW10gYXMgVFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5kZXgoaWQ6IHN0cmluZywgYW5jZXN0b3I6IFRbXSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGFuY2VzdG9yLmZpbmRJbmRleCgobm9kZSkgPT4gdGhpcy5nZXRJZChub2RlKSA9PT0gaWQpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ import Bowser from 'bowser';
2
+ export const userAgent = Bowser.getParser(window.navigator.userAgent);
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9saWIvdXNlci1hZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFNNUIsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQ3ZDLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQm93c2VyIGZyb20gJ2Jvd3Nlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckFnZW50IGV4dGVuZHMgQm93c2VyLlBhcnNlci5QYXJzZXIge1xuICBjb21wYXJlVmVyc2lvbjogKHZlcnNpb246IHN0cmluZykgPT4gYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IHVzZXJBZ2VudCA9IEJvd3Nlci5nZXRQYXJzZXIoXG4gIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50XG4pIGFzIFVzZXJBZ2VudDtcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export function S4() {
2
+ return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
3
+ }
4
+ export function uuid() {
5
+ const id = `${S4()}${S4()}-${S4()}-${S4()}-${S4()}-${S4()}${S4()}${S4()}`;
6
+ return id.toLowerCase();
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXVpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9saWIvdXVpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsRUFBRTtJQUNoQixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLENBQUM7QUFFRCxNQUFNLFVBQVUsSUFBSTtJQUNsQixNQUFNLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDMUUsT0FBTyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBTNCgpIHtcbiAgcmV0dXJuICgoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDB4MTAwMDApIHwgMCkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHV1aWQoKSB7XG4gIGNvbnN0IGlkID0gYCR7UzQoKX0ke1M0KCl9LSR7UzQoKX0tJHtTNCgpfS0ke1M0KCl9LSR7UzQoKX0ke1M0KCl9JHtTNCgpfWA7XG4gIHJldHVybiBpZC50b0xvd2VyQ2FzZSgpO1xufVxuIl19
@@ -0,0 +1,37 @@
1
+ import { Subject } from 'rxjs';
2
+ import { distinctUntilChanged } from 'rxjs/operators';
3
+ export var SubjectStatus;
4
+ (function (SubjectStatus) {
5
+ SubjectStatus[SubjectStatus["Error"] = 0] = "Error";
6
+ SubjectStatus[SubjectStatus["Done"] = 1] = "Done";
7
+ SubjectStatus[SubjectStatus["Working"] = 2] = "Working";
8
+ SubjectStatus[SubjectStatus["Waiting"] = 3] = "Waiting";
9
+ })(SubjectStatus || (SubjectStatus = {}));
10
+ export class Watcher {
11
+ status$ = new Subject();
12
+ status$$;
13
+ get status() {
14
+ return this._status;
15
+ }
16
+ set status(value) {
17
+ this._status = value;
18
+ this.status$.next(value);
19
+ }
20
+ _status;
21
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
22
+ subscribe(callback, scope) {
23
+ this.watch();
24
+ this.status$$ = this.status$.pipe(distinctUntilChanged()).subscribe(() => {
25
+ callback.call(scope, this);
26
+ });
27
+ }
28
+ unsubscribe() {
29
+ this.unwatch();
30
+ if (this.status$$ !== undefined) {
31
+ this.status$$.unsubscribe();
32
+ this.status$$ = undefined;
33
+ }
34
+ this.status = SubjectStatus.Waiting;
35
+ }
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9saWIvd2F0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxNQUFNLENBQU4sSUFBWSxhQUtYO0FBTEQsV0FBWSxhQUFhO0lBQ3ZCLG1EQUFTLENBQUE7SUFDVCxpREFBUSxDQUFBO0lBQ1IsdURBQVcsQ0FBQTtJQUNYLHVEQUFXLENBQUE7QUFDYixDQUFDLEVBTFcsYUFBYSxLQUFiLGFBQWEsUUFLeEI7QUFFRCxNQUFNLE9BQWdCLE9BQU87SUFDcEIsT0FBTyxHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO0lBQ3BDLFFBQVEsQ0FBZTtJQUVqQyxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLEtBQW9CO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDTyxPQUFPLENBQWdCO0lBTS9CLHNFQUFzRTtJQUN0RSxTQUFTLENBQUMsUUFBa0IsRUFBRSxLQUFXO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkUsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQzVCLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFDdEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGVudW0gU3ViamVjdFN0YXR1cyB7XG4gIEVycm9yID0gMCxcbiAgRG9uZSA9IDEsXG4gIFdvcmtpbmcgPSAyLFxuICBXYWl0aW5nID0gM1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV2F0Y2hlciB7XG4gIHB1YmxpYyBzdGF0dXMkID0gbmV3IFN1YmplY3Q8U3ViamVjdFN0YXR1cz4oKTtcbiAgcHJvdGVjdGVkIHN0YXR1cyQkOiBTdWJzY3JpcHRpb247XG5cbiAgZ2V0IHN0YXR1cygpOiBTdWJqZWN0U3RhdHVzIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdHVzO1xuICB9XG4gIHNldCBzdGF0dXModmFsdWU6IFN1YmplY3RTdGF0dXMpIHtcbiAgICB0aGlzLl9zdGF0dXMgPSB2YWx1ZTtcbiAgICB0aGlzLnN0YXR1cyQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfc3RhdHVzOiBTdWJqZWN0U3RhdHVzO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCB3YXRjaCgpO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCB1bndhdGNoKCk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZnVuY3Rpb24tdHlwZVxuICBzdWJzY3JpYmUoY2FsbGJhY2s6IEZ1bmN0aW9uLCBzY29wZT86IGFueSkge1xuICAgIHRoaXMud2F0Y2goKTtcblxuICAgIHRoaXMuc3RhdHVzJCQgPSB0aGlzLnN0YXR1cyQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY2FsbGJhY2suY2FsbChzY29wZSwgdGhpcyk7XG4gICAgfSk7XG4gIH1cblxuICB1bnN1YnNjcmliZSgpIHtcbiAgICB0aGlzLnVud2F0Y2goKTtcbiAgICBpZiAodGhpcy5zdGF0dXMkJCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnN0YXR1cyQkLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLnN0YXR1cyQkID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLnN0YXR1cyA9IFN1YmplY3RTdGF0dXMuV2FpdGluZztcbiAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ /*
2
+ * Public API Surface of utils
3
+ */
4
+ export * from './lib';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHV0aWxzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWInO1xuIl19