@adbl/cells 0.0.13 → 0.0.15
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/.prettierrc +4 -0
- package/README.md +16 -13
- package/add-references.sh +19 -0
- package/biome.json +7 -0
- package/dist/index.js +1 -0
- package/dist/library/classes.d.ts +41 -67
- package/dist/library/classes.js +147 -235
- package/dist/library/classes.js.map +1 -1
- package/dist/library/index.d.ts +1 -1
- package/dist/library/index.js +1 -0
- package/package.json +2 -1
- package/index.js +0 -1
package/.prettierrc
ADDED
package/README.md
CHANGED
|
@@ -37,10 +37,10 @@ Source cells are the building blocks of your reactive state. They hold values th
|
|
|
37
37
|
import { Cell } from '@adbl/cells';
|
|
38
38
|
|
|
39
39
|
const count = Cell.source(0);
|
|
40
|
-
console.log(count.
|
|
40
|
+
console.log(count.get()); // Output: 0
|
|
41
41
|
|
|
42
|
-
count.
|
|
43
|
-
console.log(count.
|
|
42
|
+
count.set(5);
|
|
43
|
+
console.log(count.get()); // Output: 5
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
### 2. Derived Cells
|
|
@@ -49,12 +49,12 @@ Derived cells allow you to create computed values based on other cells. They upd
|
|
|
49
49
|
|
|
50
50
|
```javascript
|
|
51
51
|
const count = Cell.source(0);
|
|
52
|
-
const doubledCount = Cell.derived(() => count.
|
|
52
|
+
const doubledCount = Cell.derived(() => count.get() * 2);
|
|
53
53
|
|
|
54
|
-
console.log(doubledCount.
|
|
54
|
+
console.log(doubledCount.get()); // Output: 0
|
|
55
55
|
|
|
56
|
-
count.
|
|
57
|
-
console.log(doubledCount.
|
|
56
|
+
count.set(5);
|
|
57
|
+
console.log(doubledCount.get()); // Output: 10
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
### 3. Reactive Effects
|
|
@@ -68,8 +68,8 @@ count.listen((newValue) => {
|
|
|
68
68
|
console.log(`Count changed to: ${newValue}`);
|
|
69
69
|
});
|
|
70
70
|
|
|
71
|
-
count.
|
|
72
|
-
count.
|
|
71
|
+
count.set(3); // Output: "Count changed to: 3"
|
|
72
|
+
count.set(7); // Output: "Count changed to: 7"
|
|
73
73
|
```
|
|
74
74
|
|
|
75
75
|
### 5. Batch Updates
|
|
@@ -80,13 +80,16 @@ When you need to perform multiple updates but only want to trigger effects once,
|
|
|
80
80
|
const cell1 = Cell.source(0);
|
|
81
81
|
const cell2 = Cell.source(0);
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
const callback = () => {
|
|
84
84
|
console.log('Update occurred');
|
|
85
|
-
}
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
cell1.listen(callback);
|
|
88
|
+
cell2.listen(callback);
|
|
86
89
|
|
|
87
90
|
Cell.batch(() => {
|
|
88
|
-
cell1.
|
|
89
|
-
cell2.
|
|
91
|
+
cell1.set(1);
|
|
92
|
+
cell2.set(2);
|
|
90
93
|
});
|
|
91
94
|
// Output: "Update occurred" (only once)
|
|
92
95
|
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Find all .js files in the dist directory
|
|
4
|
+
find dist -type f -name "*.js" | while read -r jsfile; do
|
|
5
|
+
# Get the base name of the file (e.g., index.js)
|
|
6
|
+
base_name=$(basename "$jsfile")
|
|
7
|
+
# Construct the corresponding .d.ts filename (e.g., index.d.ts)
|
|
8
|
+
dts_file="${base_name%.js}.d.ts"
|
|
9
|
+
# Construct the reference comment
|
|
10
|
+
reference_comment="/// <reference types=\"./$dts_file\" />"
|
|
11
|
+
|
|
12
|
+
# Check if the reference comment already exists
|
|
13
|
+
if ! grep -qF "$reference_comment" "$jsfile"; then
|
|
14
|
+
# Prepend the reference comment to the file
|
|
15
|
+
echo "$reference_comment" | cat - "$jsfile" > temp_file && mv temp_file "$jsfile"
|
|
16
|
+
fi
|
|
17
|
+
done
|
|
18
|
+
|
|
19
|
+
echo "Finished adding references."
|
package/biome.json
ADDED
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @template {*} T The type of value stored in the cell
|
|
2
|
+
* @template {*} out T The type of value stored in the cell
|
|
3
3
|
*
|
|
4
4
|
* Base class for reactive cells.
|
|
5
5
|
* This class should not be instantiated directly - use `Cell.source` or
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
* count.listen(value => console.log('Count changed:', value));
|
|
15
15
|
*
|
|
16
16
|
* // Update the value
|
|
17
|
-
* count.
|
|
17
|
+
* count.set(1); // Logs: Count changed: 1
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
|
-
export class Cell<T extends unknown> {
|
|
20
|
+
export class Cell<out T extends unknown> {
|
|
21
21
|
/**
|
|
22
22
|
* @template T
|
|
23
23
|
* Creates a new Cell instance with the provided value.
|
|
@@ -28,13 +28,13 @@ export class Cell<T extends unknown> {
|
|
|
28
28
|
* import { Cell } from '@adbl/cells';
|
|
29
29
|
*
|
|
30
30
|
* const cell = Cell.source('Hello world');
|
|
31
|
-
* console.log(cell.
|
|
31
|
+
* console.log(cell.get()); // Hello world.
|
|
32
32
|
*
|
|
33
|
-
* cell.
|
|
34
|
-
* console.log(cell.
|
|
33
|
+
* cell.set('Greetings!');
|
|
34
|
+
* console.log(cell.get()) // Greetings!
|
|
35
35
|
* ```
|
|
36
36
|
*/
|
|
37
|
-
static source:
|
|
37
|
+
static source: (value: T_1, options?: Partial<CellOptions<T_1>>) => SourceCell<T_1>;
|
|
38
38
|
/**
|
|
39
39
|
* @template T
|
|
40
40
|
* Creates a new Derived instance with the provided callback function.
|
|
@@ -44,22 +44,22 @@ export class Cell<T extends unknown> {
|
|
|
44
44
|
* import { Cell } from '@adbl/cells';
|
|
45
45
|
*
|
|
46
46
|
* const cell = Cell.source(2);
|
|
47
|
-
* const derived = Cell.derived(() => cell.
|
|
47
|
+
* const derived = Cell.derived(() => cell.get() * 2);
|
|
48
48
|
*
|
|
49
|
-
* console.log(derived.
|
|
49
|
+
* console.log(derived.get()); // 4
|
|
50
50
|
*
|
|
51
|
-
* cell.
|
|
52
|
-
* console.log(derived.
|
|
51
|
+
* cell.set(3);
|
|
52
|
+
* console.log(derived.get()); // 6
|
|
53
53
|
* ```
|
|
54
54
|
*/
|
|
55
|
-
static derived:
|
|
55
|
+
static derived: (callback: () => T_1) => DerivedCell<T_1>;
|
|
56
56
|
/**
|
|
57
57
|
* @template X
|
|
58
58
|
* Batches all the effects created to run only once.
|
|
59
59
|
* @param {() => X} callback - The function to be executed in a batched manner.
|
|
60
60
|
* @returns {X} The return value of the callback.
|
|
61
61
|
*/
|
|
62
|
-
static batch:
|
|
62
|
+
static batch: (callback: () => X) => X;
|
|
63
63
|
/**
|
|
64
64
|
* Checks if the provided value is an instance of the Cell class.
|
|
65
65
|
* @template [T=any]
|
|
@@ -67,35 +67,36 @@ export class Cell<T extends unknown> {
|
|
|
67
67
|
* @param {Cell<T> | U} value - The value to check.
|
|
68
68
|
* @returns {value is Cell<T>} True if the value is an instance of Cell, false otherwise.
|
|
69
69
|
*/
|
|
70
|
-
static isCell:
|
|
70
|
+
static isCell: (value: Cell<T_1> | U) => value is Cell<T_1>;
|
|
71
71
|
/**
|
|
72
72
|
* @template T
|
|
73
73
|
* Flattens the provided value by returning the value if it is not a Cell instance, or the value of the Cell instance if it is.
|
|
74
74
|
* @param {T | Cell<T>} value - The value to be flattened.
|
|
75
75
|
* @returns {T} The flattened value.
|
|
76
76
|
*/
|
|
77
|
-
static flatten:
|
|
77
|
+
static flatten: (value: T_1 | Cell<T_1>) => T_1;
|
|
78
78
|
/**
|
|
79
79
|
* Flattens an array by applying the `flatten` function to each element.
|
|
80
80
|
* @template T
|
|
81
81
|
* @param {Array<T | Cell<T>>} array - The array to be flattened.
|
|
82
82
|
* @returns {Array<T>} A new array with the flattened elements.
|
|
83
83
|
*/
|
|
84
|
-
static flattenArray:
|
|
84
|
+
static flattenArray: (array: Array<T_1 | Cell<T_1>>) => Array<T_1>;
|
|
85
85
|
/**
|
|
86
86
|
* Flattens an object by applying the `flatten` function to each value.
|
|
87
87
|
* @template {object} T
|
|
88
88
|
* @param {T} object - The object to be flattened.
|
|
89
89
|
* @returns {{ [K in keyof T]: T[K] extends Cell<infer U> ? U : T[K] }} A new object with the flattened values.
|
|
90
90
|
*/
|
|
91
|
-
static flattenObject:
|
|
91
|
+
static flattenObject: (object: T_1) => { [K in keyof T_1]: T_1[K] extends Cell<infer U> ? U : T_1[K]; };
|
|
92
92
|
/**
|
|
93
93
|
* Wraps an asynchronous function with managed state.
|
|
94
94
|
*
|
|
95
95
|
* @template X - The type of the input parameter for the getter function.
|
|
96
96
|
* @template Y - The type of the output returned by the getter function.
|
|
97
|
-
* @
|
|
98
|
-
* @
|
|
97
|
+
* @template {(input: X) => Promise<Y>} Getter - A function that performs the asynchronous operation.
|
|
98
|
+
* @param {Getter} getter - A function that performs the asynchronous operation.
|
|
99
|
+
* @returns {AsyncRequestAtoms<X, Y, Getter>} An object containing cells for pending, data, and error states,
|
|
99
100
|
* as well as functions to run and reload the operation.
|
|
100
101
|
*
|
|
101
102
|
* @example
|
|
@@ -106,12 +107,11 @@ export class Cell<T extends unknown> {
|
|
|
106
107
|
*
|
|
107
108
|
* run('input');
|
|
108
109
|
*/
|
|
109
|
-
static async<
|
|
110
|
+
static async<X, Y, Getter extends (input: X) => Promise<Y>>(getter: Getter): AsyncRequestAtoms<X, Y, Getter>;
|
|
110
111
|
/**
|
|
111
|
-
* @readonly
|
|
112
112
|
* @returns {Array<DerivedCell<any>>}
|
|
113
113
|
*/
|
|
114
|
-
|
|
114
|
+
get derivedCells(): Array<DerivedCell<any>>;
|
|
115
115
|
/**
|
|
116
116
|
* @protected @type T
|
|
117
117
|
*/
|
|
@@ -127,9 +127,10 @@ export class Cell<T extends unknown> {
|
|
|
127
127
|
*/
|
|
128
128
|
valueOf(): T;
|
|
129
129
|
/**
|
|
130
|
-
* Gets the current value of the cell.
|
|
130
|
+
* Gets the current value of the cell and registers it as a dependency if called within a derived cell computation.
|
|
131
|
+
* @returns {T} The value of the Cell.
|
|
131
132
|
*/
|
|
132
|
-
get
|
|
133
|
+
get(): T;
|
|
133
134
|
/**
|
|
134
135
|
* Stringifies the value of the Cell.
|
|
135
136
|
* @returns {string}
|
|
@@ -146,14 +147,14 @@ export class Cell<T extends unknown> {
|
|
|
146
147
|
* @param {EffectOptions} [options] - The options for the effect.
|
|
147
148
|
* @returns {() => void} A function that can be called to remove the effect.
|
|
148
149
|
*/
|
|
149
|
-
listen(callback: (newValue: T) => void, options?: EffectOptions
|
|
150
|
+
listen(callback: (newValue: T) => void, options?: EffectOptions): () => void;
|
|
150
151
|
/**
|
|
151
152
|
* Creates an effect that is immediately executed with the current value of the cell, and then added to the list of effects for the cell.
|
|
152
153
|
* @param {(newValue: T) => void} callback - The effect callback to add.
|
|
153
154
|
* @param {Partial<EffectOptions>} [options] - The options for the effect.
|
|
154
155
|
* @returns {() => void} A function that can be called to remove the effect.
|
|
155
156
|
*/
|
|
156
|
-
runAndListen(callback: (newValue: T) => void, options?: Partial<EffectOptions>
|
|
157
|
+
runAndListen(callback: (newValue: T) => void, options?: Partial<EffectOptions>): () => void;
|
|
157
158
|
/**
|
|
158
159
|
* Removes the specified effect callback from the list of effects for this cell.
|
|
159
160
|
* @param {(newValue: T) => void} callback - The effect callback to remove.
|
|
@@ -177,7 +178,7 @@ export class Cell<T extends unknown> {
|
|
|
177
178
|
*/
|
|
178
179
|
protected update(): void;
|
|
179
180
|
/**
|
|
180
|
-
* Returns the current value of the cell without registering
|
|
181
|
+
* Returns the current value of the cell without registering dependencies.
|
|
181
182
|
* @returns {T} - The current value of the cell.
|
|
182
183
|
*/
|
|
183
184
|
peek(): T;
|
|
@@ -186,10 +187,10 @@ export class Cell<T extends unknown> {
|
|
|
186
187
|
/**
|
|
187
188
|
* A class that represents a computed value that depends on other reactive values.
|
|
188
189
|
* The computed value is automatically updated when any of its dependencies change.
|
|
189
|
-
* @template {*} T
|
|
190
|
+
* @template {*} out T
|
|
190
191
|
* @extends {Cell<T>}
|
|
191
192
|
*/
|
|
192
|
-
export class DerivedCell<T extends unknown> extends Cell<T> {
|
|
193
|
+
export class DerivedCell<out T extends unknown> extends Cell<T> {
|
|
193
194
|
/**
|
|
194
195
|
* @param {() => T} computedFn - A function that generates the value of the computed.
|
|
195
196
|
*/
|
|
@@ -199,31 +200,22 @@ export class DerivedCell<T extends unknown> extends Cell<T> {
|
|
|
199
200
|
/** @type {() => T} */
|
|
200
201
|
computedFn: () => T;
|
|
201
202
|
initialized: boolean;
|
|
202
|
-
/**
|
|
203
|
-
* @readonly
|
|
204
|
-
*/
|
|
205
|
-
readonly set value(_: T);
|
|
206
|
-
/**
|
|
207
|
-
* @readonly
|
|
208
|
-
*/
|
|
209
|
-
readonly get value(): T;
|
|
210
203
|
/**
|
|
211
204
|
* Listens for changes to the cell, initializing the value if not already done.
|
|
212
205
|
* @param {(newValue: T) => void} callback - The function to call when the cell's value changes.
|
|
213
206
|
* @param {object} [options] - Optional configuration for listening.
|
|
214
207
|
*/
|
|
215
|
-
listen(callback: (newValue: T) => void, options?: object
|
|
208
|
+
listen(callback: (newValue: T) => void, options?: object): () => void;
|
|
216
209
|
/**
|
|
217
210
|
* Runs the callback and sets up a listener, initializing the cell's value if not already done.
|
|
218
211
|
* @param {(newValue: T) => void} callback - The function to call when the cell's value changes.
|
|
219
212
|
* @param {object} [options] - Optional configuration for listening and running.
|
|
220
213
|
* @returns {*} The result of the parent class's runAndListen method.
|
|
221
214
|
*/
|
|
222
|
-
runAndListen(callback: (newValue: T) => void, options?: object
|
|
223
|
-
deproxy(): void;
|
|
215
|
+
runAndListen(callback: (newValue: T) => void, options?: object): any;
|
|
224
216
|
}
|
|
225
217
|
/**
|
|
226
|
-
* @template {*} T
|
|
218
|
+
* @template {*} out T
|
|
227
219
|
* @extends {Cell<T>}
|
|
228
220
|
* A cell whose value can be directly modified.
|
|
229
221
|
* Source cells are the primary way to introduce reactivity.
|
|
@@ -240,38 +232,22 @@ export class DerivedCell<T extends unknown> extends Cell<T> {
|
|
|
240
232
|
* // With options
|
|
241
233
|
* const immutableCell = Cell.source(42, { immutable: true });
|
|
242
234
|
* // Will throw error:
|
|
243
|
-
* immutableCell.
|
|
235
|
+
* immutableCell.set(43);
|
|
244
236
|
* ```
|
|
245
237
|
*/
|
|
246
|
-
export class SourceCell<T extends unknown> extends Cell<T> {
|
|
238
|
+
export class SourceCell<out T extends unknown> extends Cell<T> {
|
|
247
239
|
/**
|
|
248
240
|
* Creates a new Cell with the provided value.
|
|
249
241
|
* @param {T} value
|
|
250
242
|
* @param {Partial<CellOptions<T>>} [options]
|
|
251
243
|
*/
|
|
252
|
-
constructor(value: T, options?: Partial<CellOptions<T>>
|
|
244
|
+
constructor(value: T, options?: Partial<CellOptions<T>>);
|
|
253
245
|
options: Partial<CellOptions<T>> | undefined;
|
|
254
|
-
/**
|
|
255
|
-
* For cells containing objects, returns the object itself.
|
|
256
|
-
* This can be useful in scenarios where unfettered access to the original object is needed,
|
|
257
|
-
* such as when using the object as a cache.
|
|
258
|
-
*
|
|
259
|
-
* @example
|
|
260
|
-
* const cell = new SourceCell({ a: 1, b: 2 });
|
|
261
|
-
* console.log(cell.deproxy()); // { a: 1, b: 2 }
|
|
262
|
-
*
|
|
263
|
-
* cell.value = { a: 3, b: 4 };
|
|
264
|
-
* console.log(cell.deproxy()); // { a: 3, b: 4 }
|
|
265
|
-
*
|
|
266
|
-
* @returns {T extends object ? T : never} The original object if T is an object, otherwise never.
|
|
267
|
-
*/
|
|
268
|
-
deproxy(): T extends object ? T : never;
|
|
269
246
|
/**
|
|
270
247
|
* Sets the value stored in the Cell and triggers an update.
|
|
271
248
|
* @param {T} value
|
|
272
249
|
*/
|
|
273
|
-
set
|
|
274
|
-
get value(): T;
|
|
250
|
+
set(value: T): void;
|
|
275
251
|
#private;
|
|
276
252
|
}
|
|
277
253
|
/**
|
|
@@ -295,7 +271,7 @@ export class CellUpdateError extends Error {
|
|
|
295
271
|
constructor(errors: Error[]);
|
|
296
272
|
errors: Error[];
|
|
297
273
|
}
|
|
298
|
-
export type AsyncRequestAtoms<Input, Output> = {
|
|
274
|
+
export type AsyncRequestAtoms<Input, Output, Getter> = {
|
|
299
275
|
/**
|
|
300
276
|
* Represents the loading state of an asynchronous request.
|
|
301
277
|
*/
|
|
@@ -311,12 +287,14 @@ export type AsyncRequestAtoms<Input, Output> = {
|
|
|
311
287
|
/**
|
|
312
288
|
* Triggers the asynchronous request.
|
|
313
289
|
*/
|
|
314
|
-
run:
|
|
290
|
+
run: Getter extends (...args: infer P) => any ? P["length"] extends 0 ? SimplePromiseFn : PromiseFnWithArgs<P> : SimplePromiseFn;
|
|
315
291
|
/**
|
|
316
292
|
* Triggers the asynchronous request again with an optional new input and optionally changes the loading state.
|
|
317
293
|
*/
|
|
318
294
|
reload: (newInput?: Input, changeLoadingState?: boolean) => Promise<void>;
|
|
319
295
|
};
|
|
296
|
+
export type SimplePromiseFn = () => Promise<void>;
|
|
297
|
+
export type PromiseFnWithArgs<Args extends Array<any>> = (...args: Args) => Promise<void>;
|
|
320
298
|
export type EffectOptions = {
|
|
321
299
|
/**
|
|
322
300
|
* Whether the effect should be removed after the first run.
|
|
@@ -353,7 +331,3 @@ export type CellOptions<T> = {
|
|
|
353
331
|
*/
|
|
354
332
|
equals?: ((oldValue: T, newValue: T) => boolean) | undefined;
|
|
355
333
|
};
|
|
356
|
-
export type NeverIfAny<T> = 0 extends (1 & T) ? never : T;
|
|
357
|
-
export type Reference<T> = {
|
|
358
|
-
deref: () => T | undefined;
|
|
359
|
-
};
|
package/dist/library/classes.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
/// <reference types="./classes.d.ts" />
|
|
1
2
|
/**
|
|
2
|
-
* @template Input, Output
|
|
3
|
+
* @template Input, Output, Getter
|
|
3
4
|
* @typedef {Object} AsyncRequestAtoms
|
|
4
5
|
*
|
|
5
6
|
* @property {SourceCell<boolean>} pending
|
|
@@ -11,11 +12,18 @@
|
|
|
11
12
|
* @property {SourceCell<Error | null>} error
|
|
12
13
|
* Represents the errors returned by the asynchronous request, if any.
|
|
13
14
|
*
|
|
14
|
-
* @property {
|
|
15
|
+
* @property {Getter extends (...args: infer P) => any ? P['length'] extends 0 ? SimplePromiseFn: PromiseFnWithArgs<P> : SimplePromiseFn} run
|
|
15
16
|
* Triggers the asynchronous request.
|
|
16
17
|
*
|
|
17
18
|
* @property {(newInput?: Input, changeLoadingState?: boolean) => Promise<void>} reload Triggers the asynchronous request again with an optional new input and optionally changes the loading state.
|
|
18
19
|
*/
|
|
20
|
+
/**
|
|
21
|
+
* @typedef {() => Promise<void>} SimplePromiseFn
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* @template {Array<any>} Args
|
|
25
|
+
* @typedef {(...args: Args) => Promise<void>} PromiseFnWithArgs
|
|
26
|
+
*/
|
|
19
27
|
/**
|
|
20
28
|
* @typedef {object} EffectOptions
|
|
21
29
|
* @property {boolean} [once]
|
|
@@ -39,38 +47,34 @@
|
|
|
39
47
|
* @property {(oldValue: T, newValue: T) => boolean} [equals]
|
|
40
48
|
* A function that determines whether two values are equal. If not provided, the default equality function will be used.
|
|
41
49
|
*/
|
|
42
|
-
/**
|
|
43
|
-
* @template T
|
|
44
|
-
* @typedef {0 extends (1 & T) ? never : T} NeverIfAny
|
|
45
|
-
*/
|
|
46
50
|
/**
|
|
47
51
|
* The nesting level of batch operations.
|
|
48
52
|
* This will prevent nested batch operations from triggering effects when they finish.
|
|
49
53
|
* @type {number}
|
|
50
54
|
*/
|
|
51
|
-
let
|
|
55
|
+
let BATCH_NESTING_LEVEL = 0;
|
|
52
56
|
/**
|
|
53
57
|
* A map of effect tuples to be executed in a batch.
|
|
54
58
|
* The key in each entry is the effect, and the value is the argument to call it with.
|
|
55
59
|
* All callbacks in this map will be executed only once in a batch.
|
|
56
60
|
* @type {Map<Function, any>}
|
|
57
61
|
*/
|
|
58
|
-
let
|
|
62
|
+
let BATCHED_EFFECTS = new Map();
|
|
59
63
|
/**
|
|
60
64
|
* A value representing the computed values that are currently being calculated.
|
|
61
65
|
* It is an array so it can keep track of nested computed values.
|
|
62
66
|
* @type {DerivedCell<any>[]}
|
|
63
67
|
*/
|
|
64
|
-
const
|
|
68
|
+
const ACTIVE_DERIVED_CTX = [];
|
|
65
69
|
/**
|
|
66
70
|
* Tracks cells that need to be updated during the update cycle.
|
|
67
71
|
* Cells are added to this stack to be processed and updated sequentially.
|
|
68
72
|
* @type {Set<Cell<any>>}
|
|
69
73
|
*/
|
|
70
|
-
const
|
|
74
|
+
const UPDATE_BUFFER = new Set();
|
|
71
75
|
/** @type {WeakMap<Cell<any>, Set<WeakRef<DerivedCell<any>>>>} */
|
|
72
|
-
const
|
|
73
|
-
let
|
|
76
|
+
const DERIVED_CELLS = new WeakMap();
|
|
77
|
+
let IS_UPDATING = false;
|
|
74
78
|
/** @type {Error[]} */
|
|
75
79
|
const cellErrors = [];
|
|
76
80
|
/**
|
|
@@ -83,17 +87,18 @@ const cellErrors = [];
|
|
|
83
87
|
* updates of the same cell.
|
|
84
88
|
*/
|
|
85
89
|
function triggerUpdate() {
|
|
86
|
-
|
|
87
|
-
for (const cell of
|
|
90
|
+
IS_UPDATING = true;
|
|
91
|
+
for (const cell of UPDATE_BUFFER) {
|
|
88
92
|
if (cell instanceof DerivedCell) {
|
|
89
93
|
const newValue = cell.computedFn();
|
|
90
|
-
|
|
94
|
+
// @ts-expect-error: wvalue is protected.
|
|
95
|
+
if (deepEqual(cell.wvalue, newValue))
|
|
91
96
|
continue;
|
|
92
|
-
// @ts-
|
|
97
|
+
// @ts-expect-error: wvalue is protected.
|
|
93
98
|
cell.wvalue = newValue;
|
|
94
99
|
}
|
|
95
100
|
// Run computed dependents.
|
|
96
|
-
const computedDependents =
|
|
101
|
+
const computedDependents = DERIVED_CELLS.get(cell);
|
|
97
102
|
if (computedDependents)
|
|
98
103
|
for (const dependent of computedDependents) {
|
|
99
104
|
const deref = dependent.deref();
|
|
@@ -102,24 +107,24 @@ function triggerUpdate() {
|
|
|
102
107
|
continue;
|
|
103
108
|
}
|
|
104
109
|
const computedCell = deref;
|
|
105
|
-
if (
|
|
106
|
-
|
|
110
|
+
if (BATCH_NESTING_LEVEL > 0) {
|
|
111
|
+
BATCHED_EFFECTS.set(() => {
|
|
107
112
|
if (!computedCell.initialized)
|
|
108
113
|
return;
|
|
109
|
-
|
|
114
|
+
UPDATE_BUFFER.add(computedCell);
|
|
110
115
|
}, undefined);
|
|
111
116
|
}
|
|
112
117
|
else {
|
|
113
118
|
if (!computedCell.initialized)
|
|
114
119
|
continue;
|
|
115
|
-
|
|
120
|
+
UPDATE_BUFFER.add(computedCell);
|
|
116
121
|
}
|
|
117
122
|
}
|
|
118
|
-
|
|
123
|
+
// @ts-expect-error: Cell.update is protected.
|
|
119
124
|
cell.update();
|
|
120
125
|
}
|
|
121
|
-
|
|
122
|
-
|
|
126
|
+
UPDATE_BUFFER.clear();
|
|
127
|
+
IS_UPDATING = false;
|
|
123
128
|
throwAnyErrors();
|
|
124
129
|
}
|
|
125
130
|
function throwAnyErrors() {
|
|
@@ -129,72 +134,26 @@ function throwAnyErrors() {
|
|
|
129
134
|
throw new CellUpdateError(errors);
|
|
130
135
|
}
|
|
131
136
|
}
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
Date: {
|
|
153
|
-
setDate: Symbol('setDate'),
|
|
154
|
-
setMonth: Symbol('setMonth'),
|
|
155
|
-
setFullYear: Symbol('setFullYear'),
|
|
156
|
-
setHours: Symbol('setHours'),
|
|
157
|
-
setMinutes: Symbol('setMinutes'),
|
|
158
|
-
setSeconds: Symbol('setSeconds'),
|
|
159
|
-
setMilliseconds: Symbol('setMilliseconds'),
|
|
160
|
-
},
|
|
161
|
-
};
|
|
162
|
-
const mutativeMapMethods = /^(set|delete|clear)$/;
|
|
163
|
-
const mutativeSetMethods = /^(add|delete|clear)$/;
|
|
164
|
-
const mutativeArrayMethods = /^(push|pop|shift|unshift|splice|sort|reverse)$/;
|
|
165
|
-
const mutativeDateMethods = /^(setDate|setMonth|setFullYear|setHours|setMinutes|setSeconds|setMilliseconds)$/;
|
|
166
|
-
/**
|
|
167
|
-
* Proxies mutative methods of a given value to trigger cell updates when called.
|
|
168
|
-
*
|
|
169
|
-
* @template {object} T
|
|
170
|
-
* @param {T} value - The object whose methods are to be proxied.
|
|
171
|
-
* @param {keyof typeof mutativeMethods} prototypeName - The name of the prototype (e.g., 'Map', 'Set') whose methods are being proxied.
|
|
172
|
-
* @param {Cell<any>} cell - The cell to be updated when a mutative method is called.
|
|
173
|
-
*/
|
|
174
|
-
const proxyMutativeMethods = (value, prototypeName, cell) => {
|
|
175
|
-
for (const method in mutativeMethods[prototypeName]) {
|
|
176
|
-
Reflect.set(value, Reflect.get(mutativeMethods[prototypeName], method),
|
|
177
|
-
/**
|
|
178
|
-
* @param {...any} args - The arguments passed to the mutative method.
|
|
179
|
-
* @returns {any} The result of calling the original method.
|
|
180
|
-
*/
|
|
181
|
-
(...args) => {
|
|
182
|
-
// @ts-ignore
|
|
183
|
-
const innerMethod = value[method]; // Direct access is faster than Reflection here.
|
|
184
|
-
const result = innerMethod.apply(value, args);
|
|
185
|
-
updateBuffer.add(cell);
|
|
186
|
-
if (!isUpdating)
|
|
187
|
-
triggerUpdate();
|
|
188
|
-
return result;
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
};
|
|
192
|
-
/**
|
|
193
|
-
* @template T
|
|
194
|
-
* @typedef {{
|
|
195
|
-
* deref: () => T | undefined
|
|
196
|
-
* }} Reference
|
|
197
|
-
*/
|
|
137
|
+
const mutativeMapMethods = new Set(['set', 'delete', 'clear']);
|
|
138
|
+
const mutativeSetMethods = new Set(['add', 'delete', 'clear']);
|
|
139
|
+
const mutativeArrayMethods = new Set([
|
|
140
|
+
'push',
|
|
141
|
+
'pop',
|
|
142
|
+
'shift',
|
|
143
|
+
'unshift',
|
|
144
|
+
'splice',
|
|
145
|
+
'sort',
|
|
146
|
+
'reverse',
|
|
147
|
+
]);
|
|
148
|
+
const mutativeDateMethods = new Set([
|
|
149
|
+
'setDate',
|
|
150
|
+
'setMonth',
|
|
151
|
+
'setFullYear',
|
|
152
|
+
'setHours',
|
|
153
|
+
'setMinutes',
|
|
154
|
+
'setSeconds',
|
|
155
|
+
'setMilliseconds',
|
|
156
|
+
]);
|
|
198
157
|
/** @template T */
|
|
199
158
|
class Effect {
|
|
200
159
|
/**
|
|
@@ -230,7 +189,7 @@ class Effect {
|
|
|
230
189
|
}
|
|
231
190
|
}
|
|
232
191
|
/**
|
|
233
|
-
* @template {*} T The type of value stored in the cell
|
|
192
|
+
* @template {*} out T The type of value stored in the cell
|
|
234
193
|
*
|
|
235
194
|
* Base class for reactive cells.
|
|
236
195
|
* This class should not be instantiated directly - use `Cell.source` or
|
|
@@ -245,7 +204,7 @@ class Effect {
|
|
|
245
204
|
* count.listen(value => console.log('Count changed:', value));
|
|
246
205
|
*
|
|
247
206
|
* // Update the value
|
|
248
|
-
* count.
|
|
207
|
+
* count.set(1); // Logs: Count changed: 1
|
|
249
208
|
* ```
|
|
250
209
|
*/
|
|
251
210
|
export class Cell {
|
|
@@ -259,11 +218,10 @@ export class Cell {
|
|
|
259
218
|
}
|
|
260
219
|
}
|
|
261
220
|
/**
|
|
262
|
-
* @readonly
|
|
263
221
|
* @returns {Array<DerivedCell<any>>}
|
|
264
222
|
*/
|
|
265
223
|
get derivedCells() {
|
|
266
|
-
const dependents =
|
|
224
|
+
const dependents = DERIVED_CELLS.get(this);
|
|
267
225
|
const cells = [];
|
|
268
226
|
if (dependents) {
|
|
269
227
|
for (const cell of dependents) {
|
|
@@ -290,20 +248,20 @@ export class Cell {
|
|
|
290
248
|
* @returns {T} The value of the Cell.
|
|
291
249
|
*/
|
|
292
250
|
valueOf() {
|
|
293
|
-
return this.
|
|
251
|
+
return this.wvalue;
|
|
294
252
|
}
|
|
295
253
|
/**
|
|
296
|
-
* Gets the current value of the cell.
|
|
254
|
+
* Gets the current value of the cell and registers it as a dependency if called within a derived cell computation.
|
|
255
|
+
* @returns {T} The value of the Cell.
|
|
297
256
|
*/
|
|
298
|
-
get
|
|
299
|
-
return this.
|
|
257
|
+
get() {
|
|
258
|
+
return this.revalued;
|
|
300
259
|
}
|
|
301
260
|
/**
|
|
302
261
|
* Stringifies the value of the Cell.
|
|
303
262
|
* @returns {string}
|
|
304
263
|
*/
|
|
305
264
|
toString() {
|
|
306
|
-
// @ts-ignore
|
|
307
265
|
return String(this.wvalue);
|
|
308
266
|
}
|
|
309
267
|
/**
|
|
@@ -311,17 +269,19 @@ export class Cell {
|
|
|
311
269
|
* @protected @type {T}
|
|
312
270
|
*/
|
|
313
271
|
get revalued() {
|
|
314
|
-
const currentlyComputedValue =
|
|
315
|
-
if (currentlyComputedValue === undefined)
|
|
272
|
+
const currentlyComputedValue = ACTIVE_DERIVED_CTX[ACTIVE_DERIVED_CTX.length - 1];
|
|
273
|
+
if (currentlyComputedValue === undefined) {
|
|
316
274
|
return this.wvalue;
|
|
317
|
-
|
|
275
|
+
}
|
|
276
|
+
let dependents = DERIVED_CELLS.get(this);
|
|
318
277
|
if (dependents === undefined) {
|
|
319
278
|
dependents = new Set();
|
|
320
|
-
|
|
279
|
+
DERIVED_CELLS.set(this, dependents);
|
|
321
280
|
}
|
|
322
281
|
const isAlreadySubscribed = dependents?.has(currentlyComputedValue.ref);
|
|
323
|
-
if (isAlreadySubscribed)
|
|
282
|
+
if (isAlreadySubscribed) {
|
|
324
283
|
return this.wvalue;
|
|
284
|
+
}
|
|
325
285
|
dependents.add(currentlyComputedValue.ref);
|
|
326
286
|
return this.wvalue;
|
|
327
287
|
}
|
|
@@ -448,7 +408,7 @@ export class Cell {
|
|
|
448
408
|
*/
|
|
449
409
|
update() {
|
|
450
410
|
// Run watchers.
|
|
451
|
-
const wvalue = this.
|
|
411
|
+
const wvalue = this.wvalue;
|
|
452
412
|
const effects = this.#effects;
|
|
453
413
|
let len = effects.length;
|
|
454
414
|
for (let i = 0; i < len; i++) {
|
|
@@ -459,8 +419,8 @@ export class Cell {
|
|
|
459
419
|
len--;
|
|
460
420
|
continue;
|
|
461
421
|
}
|
|
462
|
-
if (
|
|
463
|
-
|
|
422
|
+
if (BATCH_NESTING_LEVEL > 0) {
|
|
423
|
+
BATCHED_EFFECTS.set(watcher, wvalue);
|
|
464
424
|
}
|
|
465
425
|
else {
|
|
466
426
|
try {
|
|
@@ -475,7 +435,7 @@ export class Cell {
|
|
|
475
435
|
}
|
|
476
436
|
}
|
|
477
437
|
/**
|
|
478
|
-
* Returns the current value of the cell without registering
|
|
438
|
+
* Returns the current value of the cell without registering dependencies.
|
|
479
439
|
* @returns {T} - The current value of the cell.
|
|
480
440
|
*/
|
|
481
441
|
peek() {
|
|
@@ -491,10 +451,10 @@ export class Cell {
|
|
|
491
451
|
* import { Cell } from '@adbl/cells';
|
|
492
452
|
*
|
|
493
453
|
* const cell = Cell.source('Hello world');
|
|
494
|
-
* console.log(cell.
|
|
454
|
+
* console.log(cell.get()); // Hello world.
|
|
495
455
|
*
|
|
496
|
-
* cell.
|
|
497
|
-
* console.log(cell.
|
|
456
|
+
* cell.set('Greetings!');
|
|
457
|
+
* console.log(cell.get()) // Greetings!
|
|
498
458
|
* ```
|
|
499
459
|
*/
|
|
500
460
|
static source = (value, options) => new SourceCell(value, options);
|
|
@@ -507,12 +467,12 @@ export class Cell {
|
|
|
507
467
|
* import { Cell } from '@adbl/cells';
|
|
508
468
|
*
|
|
509
469
|
* const cell = Cell.source(2);
|
|
510
|
-
* const derived = Cell.derived(() => cell.
|
|
470
|
+
* const derived = Cell.derived(() => cell.get() * 2);
|
|
511
471
|
*
|
|
512
|
-
* console.log(derived.
|
|
472
|
+
* console.log(derived.get()); // 4
|
|
513
473
|
*
|
|
514
|
-
* cell.
|
|
515
|
-
* console.log(derived.
|
|
474
|
+
* cell.set(3);
|
|
475
|
+
* console.log(derived.get()); // 6
|
|
516
476
|
* ```
|
|
517
477
|
*/
|
|
518
478
|
static derived = (callback) => new DerivedCell(callback);
|
|
@@ -523,9 +483,9 @@ export class Cell {
|
|
|
523
483
|
* @returns {X} The return value of the callback.
|
|
524
484
|
*/
|
|
525
485
|
static batch = (callback) => {
|
|
526
|
-
|
|
486
|
+
BATCH_NESTING_LEVEL++;
|
|
527
487
|
/** @type {X | undefined} */
|
|
528
|
-
let value
|
|
488
|
+
let value;
|
|
529
489
|
let error;
|
|
530
490
|
try {
|
|
531
491
|
value = callback();
|
|
@@ -533,17 +493,17 @@ export class Cell {
|
|
|
533
493
|
catch (e) {
|
|
534
494
|
error = e;
|
|
535
495
|
}
|
|
536
|
-
|
|
496
|
+
BATCH_NESTING_LEVEL--;
|
|
537
497
|
if (error instanceof Error) {
|
|
538
498
|
cellErrors.push(error);
|
|
539
499
|
}
|
|
540
|
-
if (
|
|
541
|
-
for (const [effect, args] of
|
|
500
|
+
if (BATCH_NESTING_LEVEL === 0) {
|
|
501
|
+
for (const [effect, args] of BATCHED_EFFECTS) {
|
|
542
502
|
effect(args);
|
|
543
503
|
}
|
|
544
|
-
if (!
|
|
504
|
+
if (!IS_UPDATING)
|
|
545
505
|
triggerUpdate();
|
|
546
|
-
|
|
506
|
+
BATCHED_EFFECTS = new Map();
|
|
547
507
|
}
|
|
548
508
|
throwAnyErrors();
|
|
549
509
|
return /** @type {X} */ (value);
|
|
@@ -574,11 +534,11 @@ export class Cell {
|
|
|
574
534
|
return Cell.flatten(value.wvalue);
|
|
575
535
|
}
|
|
576
536
|
if (Array.isArray(value)) {
|
|
577
|
-
// @ts-
|
|
537
|
+
// @ts-expect-error:
|
|
578
538
|
return Cell.flattenArray(value);
|
|
579
539
|
}
|
|
580
540
|
if (value instanceof Object) {
|
|
581
|
-
// @ts-
|
|
541
|
+
// @ts-expect-error:
|
|
582
542
|
return Cell.flattenObject(value);
|
|
583
543
|
}
|
|
584
544
|
return value;
|
|
@@ -609,8 +569,9 @@ export class Cell {
|
|
|
609
569
|
*
|
|
610
570
|
* @template X - The type of the input parameter for the getter function.
|
|
611
571
|
* @template Y - The type of the output returned by the getter function.
|
|
612
|
-
* @
|
|
613
|
-
* @
|
|
572
|
+
* @template {(input: X) => Promise<Y>} Getter - A function that performs the asynchronous operation.
|
|
573
|
+
* @param {Getter} getter - A function that performs the asynchronous operation.
|
|
574
|
+
* @returns {AsyncRequestAtoms<X, Y, Getter>} An object containing cells for pending, data, and error states,
|
|
614
575
|
* as well as functions to run and reload the operation.
|
|
615
576
|
*
|
|
616
577
|
* @example
|
|
@@ -628,25 +589,25 @@ export class Cell {
|
|
|
628
589
|
/** @type {X | undefined} */
|
|
629
590
|
let initialInput = undefined;
|
|
630
591
|
async function run(input = initialInput) {
|
|
631
|
-
pending.
|
|
632
|
-
error.
|
|
633
|
-
data.
|
|
592
|
+
pending.set(true);
|
|
593
|
+
error.set(null);
|
|
594
|
+
data.set(null);
|
|
634
595
|
await Cell.batch(async () => {
|
|
635
596
|
try {
|
|
636
597
|
initialInput = input;
|
|
637
598
|
const result = await getter(/** @type {X} */ (input));
|
|
638
|
-
data.
|
|
599
|
+
data.set(result);
|
|
639
600
|
}
|
|
640
601
|
catch (e) {
|
|
641
602
|
if (e instanceof Error) {
|
|
642
|
-
error.
|
|
603
|
+
error.set(e);
|
|
643
604
|
}
|
|
644
605
|
else {
|
|
645
606
|
throw e;
|
|
646
607
|
}
|
|
647
608
|
}
|
|
648
609
|
finally {
|
|
649
|
-
pending.
|
|
610
|
+
pending.set(false);
|
|
650
611
|
}
|
|
651
612
|
});
|
|
652
613
|
}
|
|
@@ -656,16 +617,16 @@ export class Cell {
|
|
|
656
617
|
*/
|
|
657
618
|
async function reload(newInput, changeLoadingState = true) {
|
|
658
619
|
if (changeLoadingState) {
|
|
659
|
-
pending.
|
|
620
|
+
pending.set(true);
|
|
660
621
|
}
|
|
661
622
|
try {
|
|
662
623
|
const result = await getter(
|
|
663
624
|
/** @type {X} */ (newInput ?? initialInput));
|
|
664
|
-
data.
|
|
625
|
+
data.set(result);
|
|
665
626
|
}
|
|
666
627
|
catch (e) {
|
|
667
628
|
if (e instanceof Error) {
|
|
668
|
-
error.
|
|
629
|
+
error.set(e);
|
|
669
630
|
}
|
|
670
631
|
else {
|
|
671
632
|
throw e;
|
|
@@ -673,7 +634,7 @@ export class Cell {
|
|
|
673
634
|
}
|
|
674
635
|
finally {
|
|
675
636
|
if (changeLoadingState) {
|
|
676
|
-
pending.
|
|
637
|
+
pending.set(false);
|
|
677
638
|
}
|
|
678
639
|
}
|
|
679
640
|
}
|
|
@@ -681,6 +642,7 @@ export class Cell {
|
|
|
681
642
|
pending,
|
|
682
643
|
data,
|
|
683
644
|
error,
|
|
645
|
+
// @ts-expect-error
|
|
684
646
|
run,
|
|
685
647
|
reload,
|
|
686
648
|
};
|
|
@@ -689,7 +651,7 @@ export class Cell {
|
|
|
689
651
|
/**
|
|
690
652
|
* A class that represents a computed value that depends on other reactive values.
|
|
691
653
|
* The computed value is automatically updated when any of its dependencies change.
|
|
692
|
-
* @template {*} T
|
|
654
|
+
* @template {*} out T
|
|
693
655
|
* @extends {Cell<T>}
|
|
694
656
|
*/
|
|
695
657
|
export class DerivedCell extends Cell {
|
|
@@ -701,7 +663,7 @@ export class DerivedCell extends Cell {
|
|
|
701
663
|
this.ref = new WeakRef(this);
|
|
702
664
|
// Ensures that the cell is derived every time the computing function is called.
|
|
703
665
|
const derivationWrapper = () => {
|
|
704
|
-
|
|
666
|
+
ACTIVE_DERIVED_CTX.push(this);
|
|
705
667
|
let value = this.wvalue;
|
|
706
668
|
try {
|
|
707
669
|
value = computedFn();
|
|
@@ -710,7 +672,7 @@ export class DerivedCell extends Cell {
|
|
|
710
672
|
if (e instanceof Error)
|
|
711
673
|
cellErrors.push(e);
|
|
712
674
|
}
|
|
713
|
-
|
|
675
|
+
ACTIVE_DERIVED_CTX.pop();
|
|
714
676
|
return value;
|
|
715
677
|
};
|
|
716
678
|
this.computedFn = /** @type {() => T} */ (derivationWrapper);
|
|
@@ -721,9 +683,11 @@ export class DerivedCell extends Cell {
|
|
|
721
683
|
/** @type {WeakRef<this>} */
|
|
722
684
|
ref;
|
|
723
685
|
/**
|
|
724
|
-
*
|
|
686
|
+
* Gets the current value of the derived cell, computing it if necessary,
|
|
687
|
+
* and registers it as a dependency if called within another derived cell computation.
|
|
688
|
+
* @returns {T} The value of the Cell.
|
|
725
689
|
*/
|
|
726
|
-
get
|
|
690
|
+
get() {
|
|
727
691
|
if (!this.initialized) {
|
|
728
692
|
this.initialized = true;
|
|
729
693
|
this.setValue(this.computedFn());
|
|
@@ -758,18 +722,9 @@ export class DerivedCell extends Cell {
|
|
|
758
722
|
}
|
|
759
723
|
return super.runAndListen(callback, options);
|
|
760
724
|
}
|
|
761
|
-
/**
|
|
762
|
-
* @readonly
|
|
763
|
-
*/
|
|
764
|
-
set value(_) {
|
|
765
|
-
throw new Error('Cannot set a derived Cell value.');
|
|
766
|
-
}
|
|
767
|
-
deproxy() {
|
|
768
|
-
throw new Error('Cannot deproxy a derived cell.');
|
|
769
|
-
}
|
|
770
725
|
}
|
|
771
726
|
/**
|
|
772
|
-
* @template {*} T
|
|
727
|
+
* @template {*} out T
|
|
773
728
|
* @extends {Cell<T>}
|
|
774
729
|
* A cell whose value can be directly modified.
|
|
775
730
|
* Source cells are the primary way to introduce reactivity.
|
|
@@ -786,12 +741,10 @@ export class DerivedCell extends Cell {
|
|
|
786
741
|
* // With options
|
|
787
742
|
* const immutableCell = Cell.source(42, { immutable: true });
|
|
788
743
|
* // Will throw error:
|
|
789
|
-
* immutableCell.
|
|
744
|
+
* immutableCell.set(43);
|
|
790
745
|
* ```
|
|
791
746
|
*/
|
|
792
747
|
export class SourceCell extends Cell {
|
|
793
|
-
/** @type {object | undefined} */
|
|
794
|
-
#originalObject;
|
|
795
748
|
/**
|
|
796
749
|
* Creates a new Cell with the provided value.
|
|
797
750
|
* @param {T} value
|
|
@@ -801,65 +754,35 @@ export class SourceCell extends Cell {
|
|
|
801
754
|
super();
|
|
802
755
|
if (options !== undefined)
|
|
803
756
|
this.options = options;
|
|
804
|
-
this.setValue(
|
|
805
|
-
if (typeof value === 'object' && value !== null) {
|
|
806
|
-
this.#originalObject = value;
|
|
807
|
-
}
|
|
808
|
-
}
|
|
809
|
-
/**
|
|
810
|
-
* For cells containing objects, returns the object itself.
|
|
811
|
-
* This can be useful in scenarios where unfettered access to the original object is needed,
|
|
812
|
-
* such as when using the object as a cache.
|
|
813
|
-
*
|
|
814
|
-
* @example
|
|
815
|
-
* const cell = new SourceCell({ a: 1, b: 2 });
|
|
816
|
-
* console.log(cell.deproxy()); // { a: 1, b: 2 }
|
|
817
|
-
*
|
|
818
|
-
* cell.value = { a: 3, b: 4 };
|
|
819
|
-
* console.log(cell.deproxy()); // { a: 3, b: 4 }
|
|
820
|
-
*
|
|
821
|
-
* @returns {T extends object ? T : never} The original object if T is an object, otherwise never.
|
|
822
|
-
*/
|
|
823
|
-
deproxy() {
|
|
824
|
-
const originalObject = this.#originalObject;
|
|
825
|
-
if (typeof originalObject === 'object' && originalObject !== null) {
|
|
826
|
-
return /** @type {T extends object ? T : never} */ (originalObject);
|
|
827
|
-
}
|
|
828
|
-
throw new Error('Cannot deproxy a non-object cell.');
|
|
757
|
+
this.setValue(value);
|
|
829
758
|
}
|
|
830
759
|
peek() {
|
|
831
|
-
const originalObject = this.#originalObject;
|
|
832
|
-
if (typeof originalObject === 'object' && originalObject !== null) {
|
|
833
|
-
return /** @type {T extends object ? T : never} */ (originalObject);
|
|
834
|
-
}
|
|
835
760
|
return this.wvalue;
|
|
836
761
|
}
|
|
837
|
-
|
|
838
|
-
|
|
762
|
+
/**
|
|
763
|
+
* Gets the current value of the source cell and registers it as a dependency if called within a derived cell computation.
|
|
764
|
+
* @returns {T} The value of the Cell.
|
|
765
|
+
*/
|
|
766
|
+
get() {
|
|
767
|
+
return this.#proxy(this.revalued);
|
|
839
768
|
}
|
|
840
769
|
/**
|
|
841
770
|
* Sets the value stored in the Cell and triggers an update.
|
|
842
771
|
* @param {T} value
|
|
843
772
|
*/
|
|
844
|
-
set
|
|
773
|
+
set(value) {
|
|
845
774
|
if (this.options?.immutable) {
|
|
846
775
|
throw new Error('Cannot set the value of an immutable cell.');
|
|
847
776
|
}
|
|
848
|
-
const oldValue = this.
|
|
777
|
+
const oldValue = this.wvalue;
|
|
849
778
|
const isEqual = this.options?.equals
|
|
850
779
|
? this.options.equals(oldValue, value)
|
|
851
780
|
: deepEqual(oldValue, value);
|
|
852
781
|
if (isEqual)
|
|
853
782
|
return;
|
|
854
|
-
this.setValue(
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
}
|
|
858
|
-
else {
|
|
859
|
-
this.#originalObject = undefined;
|
|
860
|
-
}
|
|
861
|
-
updateBuffer.add(this);
|
|
862
|
-
if (!isUpdating)
|
|
783
|
+
this.setValue(value);
|
|
784
|
+
UPDATE_BUFFER.add(this);
|
|
785
|
+
if (!IS_UPDATING)
|
|
863
786
|
triggerUpdate();
|
|
864
787
|
}
|
|
865
788
|
/**
|
|
@@ -869,62 +792,51 @@ export class SourceCell extends Cell {
|
|
|
869
792
|
* @returns {T} - The proxied value.
|
|
870
793
|
*/
|
|
871
794
|
#proxy(value) {
|
|
872
|
-
if (typeof value !== 'object' || value === null)
|
|
795
|
+
if (typeof value !== 'object' || value === null)
|
|
873
796
|
return value;
|
|
874
|
-
}
|
|
875
|
-
if (value instanceof Map) {
|
|
876
|
-
proxyMutativeMethods(value, 'Map', this);
|
|
877
|
-
}
|
|
878
|
-
else if (value instanceof Set) {
|
|
879
|
-
proxyMutativeMethods(value, 'Set', this);
|
|
880
|
-
}
|
|
881
|
-
else if (value instanceof Date) {
|
|
882
|
-
proxyMutativeMethods(value, 'Date', this);
|
|
883
|
-
}
|
|
884
|
-
else if (ArrayBuffer.isView(value) || Array.isArray(value)) {
|
|
885
|
-
proxyMutativeMethods(value, 'Array', this);
|
|
886
|
-
}
|
|
887
797
|
return new Proxy(value, {
|
|
888
798
|
get: (target, prop) => {
|
|
889
799
|
this.revalued;
|
|
890
800
|
if (this.options?.deep) {
|
|
891
|
-
// @ts-
|
|
801
|
+
// @ts-expect-error: Direct access is faster than Reflection here.
|
|
892
802
|
return this.#proxy(target[prop]);
|
|
893
803
|
}
|
|
894
|
-
|
|
804
|
+
if (typeof prop === 'string') {
|
|
805
|
+
const isMutativeMethod = (target instanceof Map && mutativeMapMethods.has(prop)) ||
|
|
806
|
+
(target instanceof Set && mutativeSetMethods.has(prop)) ||
|
|
807
|
+
(target instanceof Date && mutativeDateMethods.has(prop)) ||
|
|
808
|
+
((ArrayBuffer.isView(target) || Array.isArray(target)) &&
|
|
809
|
+
mutativeArrayMethods.has(prop));
|
|
810
|
+
if (isMutativeMethod) {
|
|
811
|
+
// @ts-expect-error: Direct access is faster than Reflection here.
|
|
812
|
+
return (...args) => {
|
|
813
|
+
// @ts-expect-error: Direct access is faster than Reflection here.
|
|
814
|
+
const result = target[prop](...args);
|
|
815
|
+
UPDATE_BUFFER.add(this);
|
|
816
|
+
if (!IS_UPDATING)
|
|
817
|
+
triggerUpdate();
|
|
818
|
+
return result;
|
|
819
|
+
};
|
|
820
|
+
}
|
|
821
|
+
}
|
|
822
|
+
// @ts-expect-error: Direct access is faster than Reflection here.
|
|
895
823
|
let value = target[prop];
|
|
896
824
|
if (typeof value === 'function') {
|
|
897
825
|
value = value.bind(target);
|
|
898
826
|
}
|
|
899
|
-
if (typeof prop === 'string') {
|
|
900
|
-
if (target instanceof Map && mutativeMapMethods.test(prop)) {
|
|
901
|
-
// @ts-ignore: Direct access is faster than Reflection here.
|
|
902
|
-
return target[mutativeMethods.Map[prop]];
|
|
903
|
-
}
|
|
904
|
-
if (target instanceof Set && mutativeSetMethods.test(prop)) {
|
|
905
|
-
// @ts-ignore: Direct access is faster than Reflection here.
|
|
906
|
-
return target[mutativeMethods.Set[prop]];
|
|
907
|
-
}
|
|
908
|
-
if (target instanceof Date && mutativeDateMethods.test(prop)) {
|
|
909
|
-
// @ts-ignore: Direct access is faster than Reflection here.
|
|
910
|
-
return target[mutativeMethods.Date[prop]];
|
|
911
|
-
}
|
|
912
|
-
if ((ArrayBuffer.isView(target) || Array.isArray(target)) &&
|
|
913
|
-
mutativeArrayMethods.test(prop)) {
|
|
914
|
-
// @ts-ignore: Direct access is faster than Reflection here.
|
|
915
|
-
return target[mutativeMethods.Array[prop]];
|
|
916
|
-
}
|
|
917
|
-
}
|
|
918
827
|
return value;
|
|
919
828
|
},
|
|
920
829
|
set: (target, prop, value) => {
|
|
921
|
-
|
|
922
|
-
|
|
830
|
+
// @ts-expect-error: dynamic object access.
|
|
831
|
+
const formerValue = target[prop];
|
|
923
832
|
const isEqual = deepEqual(formerValue, value);
|
|
924
833
|
if (!isEqual) {
|
|
925
|
-
|
|
926
|
-
|
|
834
|
+
// @ts-expect-error: dynamic object access.
|
|
835
|
+
target[prop] = value;
|
|
836
|
+
UPDATE_BUFFER.add(this);
|
|
837
|
+
if (!IS_UPDATING) {
|
|
927
838
|
triggerUpdate();
|
|
839
|
+
}
|
|
928
840
|
}
|
|
929
841
|
return true;
|
|
930
842
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classes.js","sourceRoot":"","sources":["../../library/classes.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;GAYG;AAEH;;;;;;;;;GASG;AAEH;;;GAGG;AAEH;;;;GAIG;AACH,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAE1B;;;;;GAKG;AACH,IAAI,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;AAE/B;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC;;;;GAIG;AACH,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;AAE/B,iEAAiE;AACjE,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;AAErC,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,sBAAsB;AACtB,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB;;;;;;;;GAQG;AACH,SAAS,aAAa;IACpB,UAAU,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC;gBAAE,SAAS;YAC/C,mCAAmC;YACnC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACzB,CAAC;QAED,2BAA2B;QAC3B,MAAM,kBAAkB,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,kBAAkB;YACpB,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACrC,SAAS;gBACX,CAAC;gBAED,MAAM,YAAY,GAAG,KAAK,CAAC;gBAC3B,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;oBAC1B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE;wBACtB,IAAI,CAAC,YAAY,CAAC,WAAW;4BAAE,OAAO;wBACtC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBACjC,CAAC,EAAE,SAAS,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,YAAY,CAAC,WAAW;wBAAE,SAAS;oBACxC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QAEH,uCAAuC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IACD,YAAY,CAAC,KAAK,EAAE,CAAC;IACrB,UAAU,GAAG,KAAK,CAAC;IACnB,cAAc,EAAE,CAAC;AACnB,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAC/B,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QACtB,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,MAAM,eAAe,GAAG;IACtB,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;KACvB;IACD,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;KACvB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;QAC1B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;KAC3B;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;QAClC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC;QAC5B,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;QAChC,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;QAChC,eAAe,EAAE,MAAM,CAAC,iBAAiB,CAAC;KAC3C;CACF,CAAC;AACF,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAClD,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAClD,MAAM,oBAAoB,GAAG,gDAAgD,CAAC;AAC9E,MAAM,mBAAmB,GACvB,iFAAiF,CAAC;AAEpF;;;;;;;GAOG;AACH,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE;IAC1D,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CACT,KAAK,EACL,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QACnD;;;WAGG;QACH,CAAC,GAAG,IAAI,EAAE,EAAE;YACV,aAAa;YACb,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,gDAAgD;YACnF,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9C,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,UAAU;gBAAE,aAAa,EAAE,CAAC;YACjC,OAAO,MAAM,CAAC;QAChB,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AAEH,kBAAkB;AAClB,MAAM,MAAM;IACV;;OAEG;IACH,OAAO,CAAC;IAER;;OAEG;IACH,SAAS,CAAC;IAEV;;;OAGG;IACH,YAAY,QAAQ,EAAE,OAAO;QAC3B,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACV,IAAI,IAAI,CAAC,SAAS,YAAY,OAAO,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,IAAI;IACf;;OAEG;IACH,QAAQ,GAAG,EAAE,CAAC;IAEd;QACE,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAI,YAAY;QACd,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC/B,IAAI,SAAS;oBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,MAAM,GAAG,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,aAAa;QACb,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACV,MAAM,sBAAsB,GAC1B,oBAAoB,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAExD,IAAI,sBAAsB,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QAE7D,IAAI,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;YACvB,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,mBAAmB,GAAG,UAAU,EAAE,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACxE,IAAI,mBAAmB;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QAE5C,UAAU,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,OAAO;QACtB,IAAI,MAAM,GAAG,QAAQ,CAAC;QAEtB,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC7B,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,EAAE;gBACZ,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,4BAA4B,OAAO,CAAC,IAAI,sCAAsC,CAC/E,CAAC;QACJ,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACxD,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC;YAE3C,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,CAAC;YACtC,OAAO,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,OAAO;QAC5B,MAAM,EAAE,GAAG,QAAQ,CAAC;QAEpB,IAAI,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;gBACvB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC7B,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,IAAI;YAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEhD,IAAI,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,MAAM,OAAO,GAAG,4BAA4B,OAAO,CAAC,IAAI,sCAAsC,CAAC;YAC/F,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACnD,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC;YAC3C,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,CAAC;YACtC,OAAO,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,cAAc,EAAE,CAAC;QAEjB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,QAAQ;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1C,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO;QAEzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,IAAI;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACnC,OAAO,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,IAAI;QAClB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;YAChD,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,IAAI,WAAW,KAAK,CAAC,CAAC;YAAE,OAAO;QAE/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,gBAAgB;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;QAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACpC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrB,CAAC,EAAE,CAAC;gBACJ,GAAG,EAAE,CAAC;gBACN,SAAS;YACX,CAAC;YAED,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;gBAC1B,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC;oBACH,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;wBACvB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEnE;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,OAAO,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEzD;;;;;OAKG;IACH,MAAM,CAAC,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE;QAC1B,iBAAiB,EAAE,CAAC;QACpB,4BAA4B;QAC5B,IAAI,KAAK,GAAG,SAAS,CAAC;QACtB,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,QAAQ,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;QACD,iBAAiB,EAAE,CAAC;QACpB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,iBAAiB,KAAK,CAAC,EAAE,CAAC;YAC5B,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,cAAc,EAAE,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;YACD,IAAI,CAAC,UAAU;gBAAE,aAAa,EAAE,CAAC;YACjC,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;QAC7B,CAAC;QACD,cAAc,EAAE,CAAC;QACjB,OAAO,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,IAAI,CAAC;IAEjD;;;;;OAKG;IACH,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;QACzB,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;oBACtB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACpC,CAAC;gBACD,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;gBACnC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,cAAc;YACd,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;YAC5B,cAAc;YACd,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,CAAC,YAAY,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEzD;;;;;OAKG;IACH,MAAM,CAAC,aAAa,GAAG,CAAC,MAAM,EAAE,EAAE;QAChC,MAAM,MAAM;QACV,wEAAwE,CAAC,CAAC,EAAE,CAAC,CAAC;QAChF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9D,4BAA4B;QAC5B,IAAI,YAAY,GAAG,SAAS,CAAC;QAE7B,KAAK,UAAU,GAAG,CAAC,KAAK,GAAG,YAAY;YACrC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;YACrB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAElB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;gBAC1B,IAAI,CAAC;oBACH,YAAY,GAAG,KAAK,CAAC;oBACrB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBACtB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;wBACvB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;oBAClB,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,CAAC;oBACV,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;gBACxB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED;;;WAGG;QACH,KAAK,UAAU,MAAM,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;YACvD,IAAI,kBAAkB,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;YACvB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM;gBACzB,gBAAgB,CAAC,CAAC,QAAQ,IAAI,YAAY,CAAC,CAC5C,CAAC;gBACF,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;oBACvB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,CAAC;gBACV,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,kBAAkB,EAAE,CAAC;oBACvB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO;YACP,IAAI;YACJ,KAAK;YACL,GAAG;YACH,MAAM;SACP,CAAC;IACJ,CAAC;;AAGH;;;;;GAKG;AACH,MAAM,OAAO,WAAY,SAAQ,IAAI;IACnC;;OAEG;IACH,YAAY,UAAU;QACpB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,gFAAgF;QAChF,MAAM,iBAAiB,GAAG,GAAG,EAAE;YAC7B,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACxB,IAAI,CAAC;gBACH,KAAK,GAAG,UAAU,EAAE,CAAC;YACvB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,KAAK;oBAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,oBAAoB,CAAC,GAAG,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,sBAAsB,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,sBAAsB;IACtB,UAAU,CAAC;IAEX,4BAA4B;IAC5B,GAAG,CAAC;IAEJ;;OAEG;IACH,IAAI,KAAK;QACP,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACjC,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,OAAO;QACtB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACjC,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,OAAO;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACjC,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,IAAI,KAAK,CAAC,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,OAAO;QACL,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,UAAW,SAAQ,IAAI;IAClC,iCAAiC;IACjC,eAAe,CAAC;IAEhB;;;;OAIG;IACH,YAAY,KAAK,EAAE,OAAO;QACxB,KAAK,EAAE,CAAC;QAER,IAAI,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAElC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,OAAO;QACL,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAClE,OAAO,2CAA2C,CAAC,CAAC,cAAc,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,IAAI;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAClE,OAAO,2CAA2C,CAAC,CAAC,cAAc,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK,CAAC,KAAK;QACb,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM;YAClC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC;YACtC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE/B,IAAI,OAAO;YAAE,OAAO;QAEpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACnC,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,UAAU;YAAE,aAAa,EAAE,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK;QACV,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;YACzB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;YAChC,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YACjC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7D,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;YACtB,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;gBACpB,IAAI,CAAC,QAAQ,CAAC;gBACd,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBACvB,4DAA4D;oBAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnC,CAAC;gBACD,4DAA4D;gBAC5D,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBAEzB,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;oBAChC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,IAAI,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC3D,4DAA4D;wBAC5D,OAAO,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC3C,CAAC;oBAED,IAAI,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC3D,4DAA4D;wBAC5D,OAAO,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC3C,CAAC;oBAED,IAAI,MAAM,YAAY,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC7D,4DAA4D;wBAC5D,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC5C,CAAC;oBAED,IACE,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBACrD,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC/B,CAAC;wBACD,4DAA4D;wBAC5D,OAAO,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC;YACD,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC3B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBAEjC,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACvB,IAAI,CAAC,UAAU;wBAAE,aAAa,EAAE,CAAC;gBACnC,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,8BAA8B;IAC9B,YAAY,MAAM;QAChB,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC;IACrB,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzB,IACE,OAAO,CAAC,KAAK,OAAO,CAAC;QACrB,OAAO,CAAC,KAAK,QAAQ;QACrB,CAAC,KAAK,IAAI;QACV,CAAC,KAAK,IAAI;QAEV,OAAO,KAAK,CAAC;IAEf,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;gBAClC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;QAC3C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,IAAI,WAAW,KAAK,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACzB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"classes.js","sourceRoot":"","sources":["../../library/classes.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;GAEG;AAEH;;;GAGG;AAEH;;;;;;;;;;;;GAYG;AAEH;;;;;;;;;GASG;AAEH;;;;GAIG;AACH,IAAI,mBAAmB,GAAG,CAAC,CAAC;AAE5B;;;;;GAKG;AACH,IAAI,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;AAEhC;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B;;;;GAIG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;AAEhC,iEAAiE;AACjE,MAAM,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;AAEpC,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,sBAAsB;AACtB,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB;;;;;;;;GAQG;AACH,SAAS,aAAa;IACpB,WAAW,GAAG,IAAI,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,yCAAyC;YACzC,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;gBAAE,SAAS;YAC/C,yCAAyC;YACzC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACzB,CAAC;QAED,2BAA2B;QAC3B,MAAM,kBAAkB,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,kBAAkB;YACpB,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACrC,SAAS;gBACX,CAAC;gBAED,MAAM,YAAY,GAAG,KAAK,CAAC;gBAC3B,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;oBAC5B,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE;wBACvB,IAAI,CAAC,YAAY,CAAC,WAAW;4BAAE,OAAO;wBACtC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAClC,CAAC,EAAE,SAAS,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,YAAY,CAAC,WAAW;wBAAE,SAAS;oBACxC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;QAEH,8CAA8C;QAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IACD,aAAa,CAAC,KAAK,EAAE,CAAC;IACtB,WAAW,GAAG,KAAK,CAAC;IACpB,cAAc,EAAE,CAAC;AACnB,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAC/B,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QACtB,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAC/D,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAC/D,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,MAAM;IACN,KAAK;IACL,OAAO;IACP,SAAS;IACT,QAAQ;IACR,MAAM;IACN,SAAS;CACV,CAAC,CAAC;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,SAAS;IACT,UAAU;IACV,aAAa;IACb,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,iBAAiB;CAClB,CAAC,CAAC;AAEH,kBAAkB;AAClB,MAAM,MAAM;IACV;;OAEG;IACH,OAAO,CAAC;IAER;;OAEG;IACH,SAAS,CAAC;IAEV;;;OAGG;IACH,YAAY,QAAQ,EAAE,OAAO;QAC3B,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACV,IAAI,IAAI,CAAC,SAAS,YAAY,OAAO,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,IAAI;IACf;;OAEG;IACH,QAAQ,GAAG,EAAE,CAAC;IAEd;QACE,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACd,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC/B,IAAI,SAAS;oBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,MAAM,GAAG,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACV,MAAM,sBAAsB,GAC1B,kBAAkB,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEpD,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAED,IAAI,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;YACvB,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,mBAAmB,GAAG,UAAU,EAAE,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACxE,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QACD,UAAU,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,OAAO;QACtB,IAAI,MAAM,GAAG,QAAQ,CAAC;QAEtB,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC7B,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,EAAE;gBACZ,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,4BAA4B,OAAO,CAAC,IAAI,sCAAsC,CAC/E,CAAC;QACJ,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACxD,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC;YAE3C,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,CAAC;YACtC,OAAO,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,OAAO;QAC5B,MAAM,EAAE,GAAG,QAAQ,CAAC;QAEpB,IAAI,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;gBACvB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC7B,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,IAAI;YAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEhD,IAAI,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,MAAM,OAAO,GAAG,4BAA4B,OAAO,CAAC,IAAI,sCAAsC,CAAC;YAC/F,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACnD,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC;YAC3C,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,CAAC;YACtC,OAAO,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,cAAc,EAAE,CAAC;QAEjB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,QAAQ;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1C,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO;QAEzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,IAAI;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACnC,OAAO,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,IAAI;QAClB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;YAChD,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,IAAI,WAAW,KAAK,CAAC,CAAC;YAAE,OAAO;QAE/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,gBAAgB;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;QAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACpC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrB,CAAC,EAAE,CAAC;gBACJ,GAAG,EAAE,CAAC;gBACN,SAAS;YACX,CAAC;YAED,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;gBAC5B,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC;oBACH,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;wBACvB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEnE;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,OAAO,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEzD;;;;;OAKG;IACH,MAAM,CAAC,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE;QAC1B,mBAAmB,EAAE,CAAC;QACtB,4BAA4B;QAC5B,IAAI,KAAK,CAAC;QACV,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,QAAQ,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;QACD,mBAAmB,EAAE,CAAC;QACtB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,mBAAmB,KAAK,CAAC,EAAE,CAAC;YAC9B,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;YACD,IAAI,CAAC,WAAW;gBAAE,aAAa,EAAE,CAAC;YAClC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;QAC9B,CAAC;QACD,cAAc,EAAE,CAAC;QACjB,OAAO,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,IAAI,CAAC;IAEjD;;;;;OAKG;IACH,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;QACzB,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;oBACtB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACpC,CAAC;gBACD,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;gBACnC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,oBAAoB;YACpB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;YAC5B,oBAAoB;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,CAAC,YAAY,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEzD;;;;;OAKG;IACH,MAAM,CAAC,aAAa,GAAG,CAAC,MAAM,EAAE,EAAE;QAChC,MAAM,MAAM;QACV,wEAAwE,CAAC,CAAC,EAAE,CAAC,CAAC;QAChF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9D,4BAA4B;QAC5B,IAAI,YAAY,GAAG,SAAS,CAAC;QAE7B,KAAK,UAAU,GAAG,CAAC,KAAK,GAAG,YAAY;YACrC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEf,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;gBAC1B,IAAI,CAAC;oBACH,YAAY,GAAG,KAAK,CAAC;oBACrB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;wBACvB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACf,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,CAAC;oBACV,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED;;;WAGG;QACH,KAAK,UAAU,MAAM,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;YACvD,IAAI,kBAAkB,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM;gBACzB,gBAAgB,CAAC,CAAC,QAAQ,IAAI,YAAY,CAAC,CAC5C,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;oBACvB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACf,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,CAAC;gBACV,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,kBAAkB,EAAE,CAAC;oBACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO;YACP,IAAI;YACJ,KAAK;YACL,mBAAmB;YACnB,GAAG;YACH,MAAM;SACP,CAAC;IACJ,CAAC;;AAGH;;;;;GAKG;AACH,MAAM,OAAO,WAAY,SAAQ,IAAI;IACnC;;OAEG;IACH,YAAY,UAAU;QACpB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,gFAAgF;QAChF,MAAM,iBAAiB,GAAG,GAAG,EAAE;YAC7B,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YACxB,IAAI,CAAC;gBACH,KAAK,GAAG,UAAU,EAAE,CAAC;YACvB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,KAAK;oBAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,kBAAkB,CAAC,GAAG,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,sBAAsB,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,sBAAsB;IACtB,UAAU,CAAC;IAEX,4BAA4B;IAC5B,GAAG,CAAC;IAEJ;;;;OAIG;IACH,GAAG;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACjC,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,OAAO;QACtB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACjC,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,OAAO;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACjC,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,UAAW,SAAQ,IAAI;IAClC;;;;OAIG;IACH,YAAY,KAAK,EAAE,OAAO;QACxB,KAAK,EAAE,CAAC;QAER,IAAI,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,KAAK;QACP,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM;YAClC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC;YACtC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE/B,IAAI,OAAO;YAAE,OAAO;QAEpB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrB,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,WAAW;YAAE,aAAa,EAAE,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK;QACV,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAC9D,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;YACtB,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;gBACpB,IAAI,CAAC,QAAQ,CAAC;gBACd,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBACvB,kEAAkE;oBAClE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnC,CAAC;gBAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,MAAM,gBAAgB,GACpB,CAAC,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACvD,CAAC,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACvD,CAAC,MAAM,YAAY,IAAI,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACzD,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;4BACpD,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;oBAEpC,IAAI,gBAAgB,EAAE,CAAC;wBACrB,kEAAkE;wBAClE,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;4BACjB,kEAAkE;4BAClE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;4BACrC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;4BACxB,IAAI,CAAC,WAAW;gCAAE,aAAa,EAAE,CAAC;4BAClC,OAAO,MAAM,CAAC;wBAChB,CAAC,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,kEAAkE;gBAClE,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBAEzB,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;oBAChC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC;YACD,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC3B,2CAA2C;gBAC3C,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,2CAA2C;oBAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;oBACrB,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACxB,IAAI,CAAC,WAAW,EAAE,CAAC;wBACjB,aAAa,EAAE,CAAC;oBAClB,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,8BAA8B;IAC9B,YAAY,MAAM;QAChB,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC;IACrB,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzB,IACE,OAAO,CAAC,KAAK,OAAO,CAAC;QACrB,OAAO,CAAC,KAAK,QAAQ;QACrB,CAAC,KAAK,IAAI;QACV,CAAC,KAAK,IAAI;QAEV,OAAO,KAAK,CAAC;IAEf,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;gBAClC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;QAC3C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,IAAI,WAAW,KAAK,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACzB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/library/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export default Cell;
|
|
|
3
3
|
* Represents a partial map of cells, where each key in the object type `T` is mapped to either a `Cell<T[key]>` or the raw type `T[key]`.
|
|
4
4
|
* This type can be used to represent a partial set of cells for an object, where some properties are represented as cells and others are the raw values.
|
|
5
5
|
*/
|
|
6
|
-
export type PartialCellMap<T extends object> = { [key in keyof T]: T[key] |
|
|
6
|
+
export type PartialCellMap<T extends object> = { [key in keyof T]: Cell<T[key]> | T[key]; };
|
|
7
7
|
/**
|
|
8
8
|
* Represents a full set of cells for an object,
|
|
9
9
|
* where all properties are represented as cells.
|
package/dist/library/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adbl/cells",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.15",
|
|
4
4
|
"description": "A simple implementation of reactive updates for JavaScript",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"private": false,
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"test-once": "vitest run",
|
|
12
12
|
"test": "vitest",
|
|
13
13
|
"build": "tsc --p jsconfig.json",
|
|
14
|
+
"postbuild": "chmod +x ./add-references.sh && ./add-references.sh",
|
|
14
15
|
"prepublish": "bunx pkg-pr-new publish"
|
|
15
16
|
},
|
|
16
17
|
"exports": {
|
package/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './library/index.js';
|