@xmachines/play-xstate 2.0.0-alpha.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +90 -91
- package/dist/define-player.d.ts +3 -3
- package/dist/define-player.js +3 -3
- package/dist/errors.d.ts +46 -70
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +69 -77
- package/dist/errors.js.map +1 -1
- package/dist/guards/compose.d.ts +49 -59
- package/dist/guards/compose.d.ts.map +1 -1
- package/dist/guards/compose.js +68 -95
- package/dist/guards/compose.js.map +1 -1
- package/dist/guards/helpers.d.ts +6 -2
- package/dist/guards/helpers.d.ts.map +1 -1
- package/dist/guards/helpers.js +6 -2
- package/dist/guards/helpers.js.map +1 -1
- package/dist/guards/index.d.ts +7 -0
- package/dist/guards/index.d.ts.map +1 -1
- package/dist/guards/index.js +7 -0
- package/dist/guards/index.js.map +1 -1
- package/dist/guards/types.d.ts +4 -5
- package/dist/guards/types.d.ts.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -4
- package/dist/index.js.map +1 -1
- package/dist/player-actor.d.ts +112 -44
- package/dist/player-actor.d.ts.map +1 -1
- package/dist/player-actor.js +311 -327
- package/dist/player-actor.js.map +1 -1
- package/dist/routing/build-url.d.ts +2 -7
- package/dist/routing/build-url.d.ts.map +1 -1
- package/dist/routing/build-url.js +21 -25
- package/dist/routing/build-url.js.map +1 -1
- package/dist/routing/derive-current-route.d.ts +32 -0
- package/dist/routing/derive-current-route.d.ts.map +1 -1
- package/dist/routing/derive-current-route.js +20 -19
- package/dist/routing/derive-current-route.js.map +1 -1
- package/dist/routing/derive-initial-route.d.ts +1 -4
- package/dist/routing/derive-initial-route.d.ts.map +1 -1
- package/dist/routing/derive-initial-route.js +1 -4
- package/dist/routing/derive-initial-route.js.map +1 -1
- package/dist/routing/format-play-route-transitions.d.ts +11 -54
- package/dist/routing/format-play-route-transitions.d.ts.map +1 -1
- package/dist/routing/format-play-route-transitions.js +65 -125
- package/dist/routing/format-play-route-transitions.js.map +1 -1
- package/dist/routing/index.d.ts +1 -5
- package/dist/routing/index.d.ts.map +1 -1
- package/dist/routing/index.js +1 -3
- package/dist/routing/index.js.map +1 -1
- package/dist/types.d.ts +87 -14
- package/dist/types.d.ts.map +1 -1
- package/dist/view/derive-current-view.d.ts +49 -0
- package/dist/view/derive-current-view.d.ts.map +1 -0
- package/dist/view/derive-current-view.js +115 -0
- package/dist/view/derive-current-view.js.map +1 -0
- package/package.json +22 -22
- package/dist/define-player.typecheck.d.ts +0 -2
- package/dist/define-player.typecheck.d.ts.map +0 -1
- package/dist/define-player.typecheck.js +0 -48
- package/dist/define-player.typecheck.js.map +0 -1
- package/dist/guards/compose.typecheck.d.ts +0 -2
- package/dist/guards/compose.typecheck.d.ts.map +0 -1
- package/dist/guards/compose.typecheck.js +0 -22
- package/dist/guards/compose.typecheck.js.map +0 -1
- package/dist/player-actor.typecheck.d.ts +0 -2
- package/dist/player-actor.typecheck.d.ts.map +0 -1
- package/dist/player-actor.typecheck.js +0 -30
- package/dist/player-actor.typecheck.js.map +0 -1
- package/dist/routing/create-routed-machine.d.ts +0 -71
- package/dist/routing/create-routed-machine.d.ts.map +0 -1
- package/dist/routing/create-routed-machine.js +0 -71
- package/dist/routing/create-routed-machine.js.map +0 -1
- package/dist/routing/play-route-event.typecheck.d.ts +0 -2
- package/dist/routing/play-route-event.typecheck.d.ts.map +0 -1
- package/dist/routing/play-route-event.typecheck.js +0 -43
- package/dist/routing/play-route-event.typecheck.js.map +0 -1
- package/dist/routing/schemas.d.ts +0 -99
- package/dist/routing/schemas.d.ts.map +0 -1
- package/dist/routing/schemas.js +0 -30
- package/dist/routing/schemas.js.map +0 -1
- package/dist/schemas.d.ts +0 -28
- package/dist/schemas.d.ts.map +0 -1
- package/dist/schemas.js +0 -29
- package/dist/schemas.js.map +0 -1
package/dist/player-actor.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Actor, type AnyStateMachine, type AnyActorLogic, type EmittedFrom, type InputFrom, type ActorOptions, type Observer, type Snapshot, type SnapshotFrom, type Subscription, type EventFromLogic } from "xstate";
|
|
2
2
|
import { AbstractActor, type Routable, type Viewable, type PlaySpec } from "@xmachines/play-actor";
|
|
3
3
|
import { Signal } from "@xmachines/play-signals";
|
|
4
4
|
import type { PlayerOptions } from "./types.js";
|
|
5
5
|
/**
|
|
6
6
|
* Concrete XState actor implementing Play Architecture signal protocol
|
|
7
7
|
*
|
|
8
|
-
* Extends {@link @xmachines/play-actor!AbstractActor}
|
|
9
|
-
* while maintaining ecosystem compatibility (XState
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* Extends {@link @xmachines/play-actor!AbstractActor} — and so XState's own `Actor` —
|
|
9
|
+
* to provide XState v5 integration while maintaining ecosystem compatibility (XState
|
|
10
|
+
* inspection, devtools). The machine is handed to the base constructor, so a
|
|
11
|
+
* `PlayerActor` **is** the XState actor rather than a wrapper around one: everything
|
|
12
|
+
* XState's `Actor` exposes operates on this instance's own state, and the class adds
|
|
13
|
+
* TC39 Signal-based reactive state for Infrastructure observation on top.
|
|
12
14
|
*
|
|
13
15
|
* **Capabilities:** Implements both {@link @xmachines/play-actor!Routable} and
|
|
14
16
|
* {@link @xmachines/play-actor!Viewable} interfaces, providing routing and view
|
|
@@ -19,7 +21,7 @@ import type { PlayerOptions } from "./types.js";
|
|
|
19
21
|
* the actor's signals (`state`, `currentRoute`, `currentView`) but cannot directly
|
|
20
22
|
* manipulate state—all mutations flow through the state machine's event handlers.
|
|
21
23
|
*
|
|
22
|
-
* @typeParam TMachine - XState
|
|
24
|
+
* @typeParam TMachine - XState v5 state machine type
|
|
23
25
|
*
|
|
24
26
|
* @example
|
|
25
27
|
* Basic actor creation and lifecycle
|
|
@@ -31,7 +33,14 @@ import type { PlayerOptions } from "./types.js";
|
|
|
31
33
|
* initial: 'idle',
|
|
32
34
|
* states: {
|
|
33
35
|
* idle: {
|
|
34
|
-
* meta: {
|
|
36
|
+
* meta: {
|
|
37
|
+
* route: '/',
|
|
38
|
+
* // A view spec needs `root` and `elements` — other shapes derive null.
|
|
39
|
+
* view: {
|
|
40
|
+
* root: 'home',
|
|
41
|
+
* elements: { home: { type: 'HomePage', props: {}, children: [] } },
|
|
42
|
+
* },
|
|
43
|
+
* },
|
|
35
44
|
* }
|
|
36
45
|
* }
|
|
37
46
|
* });
|
|
@@ -41,8 +50,8 @@ import type { PlayerOptions } from "./types.js";
|
|
|
41
50
|
* actor.start();
|
|
42
51
|
*
|
|
43
52
|
* // Observe signals
|
|
44
|
-
* console.log(actor.currentRoute.get());
|
|
45
|
-
* console.log(actor.currentView.get());
|
|
53
|
+
* console.log(actor.currentRoute.get()); // '/'
|
|
54
|
+
* console.log(actor.currentView.get()?.root); // 'home'
|
|
46
55
|
* ```
|
|
47
56
|
*
|
|
48
57
|
* @example
|
|
@@ -78,17 +87,63 @@ import type { PlayerOptions } from "./types.js";
|
|
|
78
87
|
* cached and updated at state entry, not computed on every read.
|
|
79
88
|
*/
|
|
80
89
|
export declare class PlayerActor<TMachine extends AnyStateMachine> extends AbstractActor<AnyActorLogic, EventFromLogic<TMachine>> implements Routable, Viewable {
|
|
81
|
-
private
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
90
|
+
private playerOptions?;
|
|
91
|
+
/**
|
|
92
|
+
* Whether this constructor has returned.
|
|
93
|
+
*
|
|
94
|
+
* XState hands the actor to a context factory as `self`, and to an
|
|
95
|
+
* `inspect` observer as `actorRef`, from inside its own constructor — where
|
|
96
|
+
* none of this class's fields exist yet and XState itself refuses to read
|
|
97
|
+
* the snapshot ("Snapshot can't be read while the actor initializes
|
|
98
|
+
* itself"). Anything reachable from that window has to check this first.
|
|
99
|
+
*/
|
|
100
|
+
private constructed?;
|
|
101
|
+
/**
|
|
102
|
+
* The caller's live options bag, or an empty one during construction.
|
|
103
|
+
*
|
|
104
|
+
* XState hands this actor to a context factory as `self` and to an
|
|
105
|
+
* `inspect` observer as `actorRef` from inside its own constructor, before
|
|
106
|
+
* any field here is assigned. Reading hooks through this accessor keeps
|
|
107
|
+
* that window from throwing — a throw would be caught by XState's
|
|
108
|
+
* initialization and parked as an error snapshot — while preserving the
|
|
109
|
+
* read-at-delivery-time behaviour the bag's own docs promise.
|
|
110
|
+
*
|
|
111
|
+
* The window-sensitive fields below are `declare`d for the same reason.
|
|
112
|
+
* This target compiles class fields to `Object.defineProperty`, which runs
|
|
113
|
+
* after `super()` returns: a plain declaration — initializer or not — would
|
|
114
|
+
* reset anything the window had written back to `undefined`. `declare`
|
|
115
|
+
* emits nothing, so those writes survive.
|
|
116
|
+
*/
|
|
117
|
+
private get hooks();
|
|
118
|
+
/**
|
|
119
|
+
* Real lifecycle transitions, so onStart/onStop fire once each. XState's
|
|
120
|
+
* own status is internal, and a machine snapshot already reads "active"
|
|
121
|
+
* before start(), so neither can distinguish not-yet-started from running.
|
|
122
|
+
*/
|
|
123
|
+
private lifecycle?;
|
|
124
|
+
/**
|
|
125
|
+
* Userland subscriptions without an error listener. XState's dispatch
|
|
126
|
+
* rethrows an actor error globally on their behalf (once per delivery, a
|
|
127
|
+
* shared flag), so while one is active the internal error listener's own
|
|
128
|
+
* loud-default rethrow must stand down — or the same error is reported
|
|
129
|
+
* twice.
|
|
130
|
+
*/
|
|
131
|
+
private nextOnlySubscriptions?;
|
|
132
|
+
/**
|
|
133
|
+
* The last snapshot the view pipeline processed. XState notifies observers
|
|
134
|
+
* on EVERY processed event — an ignored event redelivers the identical
|
|
135
|
+
* snapshot — and deriveCurrentView is pure in the snapshot, so an identical
|
|
136
|
+
* reference cannot change the outcome. Seeded with undefined (never a
|
|
137
|
+
* snapshot): the construction-time snapshot is reference-identical to the
|
|
138
|
+
* one start() replays, and seeding with it would suppress the initial view.
|
|
139
|
+
*/
|
|
140
|
+
private lastViewSnapshot;
|
|
141
|
+
state: Signal.State<ReturnType<TMachine["transition"]>>;
|
|
87
142
|
/**
|
|
88
143
|
* Returns whether the actor's current state can accept the given event.
|
|
89
144
|
*
|
|
90
145
|
* Typed to the machine's event union — passing an unknown event type is a
|
|
91
|
-
* compile error.
|
|
146
|
+
* compile error. Evaluated against the current snapshot signal.
|
|
92
147
|
*
|
|
93
148
|
* @example
|
|
94
149
|
* ```typescript
|
|
@@ -101,16 +156,15 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
|
|
|
101
156
|
* machine state's `meta.route` template and the actor's context.
|
|
102
157
|
*
|
|
103
158
|
* Returns `null` when the current state has no `meta.route`, or when the route
|
|
104
|
-
* template cannot be fully resolved
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
* route template has no matching value in the actor's context. Import the class
|
|
109
|
-
* from `@xmachines/play-xstate/errors`.
|
|
159
|
+
* template cannot be fully resolved — a required `:param` absent from context
|
|
160
|
+
* is caught internally (`MissingRouteParamError` never escapes `get()`): the
|
|
161
|
+
* condition is transient mid-transition and the signal recomputes on the next
|
|
162
|
+
* snapshot.
|
|
110
163
|
*
|
|
111
164
|
* @example
|
|
112
165
|
* ```typescript
|
|
113
|
-
* // Returns "/profile/alice" when context.userId === "alice"
|
|
166
|
+
* // Returns "/profile/alice" when context.params.userId === "alice",
|
|
167
|
+
* // and null while the param is still missing.
|
|
114
168
|
* const route = actor.currentRoute.get();
|
|
115
169
|
* ```
|
|
116
170
|
*/
|
|
@@ -141,12 +195,19 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
|
|
|
141
195
|
* not change the rendered view (e.g. context-only assigns) keep the previous
|
|
142
196
|
* reference so downstream providers do not remount the UI on every event.
|
|
143
197
|
*
|
|
144
|
-
* The emitted `PlaySpec`
|
|
145
|
-
*
|
|
146
|
-
*
|
|
198
|
+
* The emitted `PlaySpec` carries the machine's context in its composed
|
|
199
|
+
* `state` under the read-only `/context` subtree, so specs read context —
|
|
200
|
+
* URL params included — through the ordinary state grammar
|
|
201
|
+
* (`{ $state: "/context/params/section" }`). See `@xmachines/play-actor`'s
|
|
202
|
+
* context-projection module for the full contract.
|
|
147
203
|
*
|
|
148
204
|
* Returns `null` when the current state has no `meta.view` metadata.
|
|
149
205
|
*
|
|
206
|
+
* Two states declaring separate but structurally identical `meta.view`
|
|
207
|
+
* literals emit distinct references on a transition between them (a
|
|
208
|
+
* provider remount); hoist the shared literal into one `typedSpec` constant
|
|
209
|
+
* to deduplicate by identity.
|
|
210
|
+
*
|
|
150
211
|
* @example
|
|
151
212
|
* ```typescript
|
|
152
213
|
* const view = actor.currentView.get();
|
|
@@ -156,20 +217,31 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
|
|
|
156
217
|
* }
|
|
157
218
|
* ```
|
|
158
219
|
*/
|
|
159
|
-
currentView: Signal.State<PlaySpec | null>;
|
|
160
|
-
constructor(machine: TMachine, options: PlayerOptions<TMachine>, input?: InputFrom<TMachine>, restoredSnapshot?:
|
|
220
|
+
readonly currentView: Signal.State<PlaySpec | null>;
|
|
221
|
+
constructor(machine: TMachine, options: PlayerOptions<TMachine>, input?: InputFrom<TMachine>, restoredSnapshot?: ActorOptions<TMachine>["snapshot"]);
|
|
161
222
|
/**
|
|
162
|
-
* Start the actor
|
|
223
|
+
* Start the actor.
|
|
163
224
|
*
|
|
164
|
-
*
|
|
225
|
+
* Fires `onStart` on each real start — every transition from not-running to
|
|
226
|
+
* running, including a start after a stop, which XState allows (its own
|
|
227
|
+
* `start()` bails only while the actor is already RUNNING). A repeated call
|
|
228
|
+
* while running does not re-fire it, so a defensive double mount does not
|
|
229
|
+
* re-run `onStart` side effects for one actual start.
|
|
165
230
|
*/
|
|
166
231
|
start(): this;
|
|
167
232
|
/**
|
|
168
|
-
* Stop the actor and
|
|
233
|
+
* Stop the actor and clean up.
|
|
234
|
+
*
|
|
235
|
+
* Fires `onStop` only when the actor was actually running — mirroring
|
|
236
|
+
* XState, where stopping a never-started or already-stopped actor is a
|
|
237
|
+
* no-op with zero teardown — so paired cleanup never runs twice, nor
|
|
238
|
+
* against resources `onStart` never acquired. Stopping does not close the
|
|
239
|
+
* actor for good: a later `start()` is a fresh lifecycle and fires
|
|
240
|
+
* `onStart` again.
|
|
169
241
|
*/
|
|
170
242
|
stop(): this;
|
|
171
243
|
/**
|
|
172
|
-
* Send an event to
|
|
244
|
+
* Send an event to this actor.
|
|
173
245
|
*
|
|
174
246
|
* The actor's state machine guards decide whether the event causes a transition.
|
|
175
247
|
* Pass any event from the machine's event union — domain events, routing events, etc.
|
|
@@ -194,7 +266,7 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
|
|
|
194
266
|
*/
|
|
195
267
|
getSnapshot(): ReturnType<Actor<TMachine>["getSnapshot"]>;
|
|
196
268
|
/**
|
|
197
|
-
* Subscribe to snapshot updates
|
|
269
|
+
* Subscribe to this actor's snapshot updates.
|
|
198
270
|
*
|
|
199
271
|
* Accepts an observer object, exactly like XState's `Actor.subscribe`.
|
|
200
272
|
*
|
|
@@ -203,7 +275,7 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
|
|
|
203
275
|
*/
|
|
204
276
|
subscribe(observer: Observer<SnapshotFrom<TMachine>>): Subscription;
|
|
205
277
|
/**
|
|
206
|
-
* Subscribe to snapshot updates
|
|
278
|
+
* Subscribe to this actor's snapshot updates.
|
|
207
279
|
*
|
|
208
280
|
* Accepts listener functions, exactly like XState's `Actor.subscribe`.
|
|
209
281
|
*
|
|
@@ -214,7 +286,7 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
|
|
|
214
286
|
*/
|
|
215
287
|
subscribe(nextListener?: (snapshot: SnapshotFrom<TMachine>) => void, errorListener?: (error: unknown) => void, completeListener?: () => void): Subscription;
|
|
216
288
|
/**
|
|
217
|
-
* Listen for events
|
|
289
|
+
* Listen for events this actor emits via the `emit` action.
|
|
218
290
|
*
|
|
219
291
|
* @param type - Emitted event type to listen for, or `"*"` for all.
|
|
220
292
|
* @param handler - Called with each matching emitted event.
|
|
@@ -224,25 +296,21 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
|
|
|
224
296
|
type: TType;
|
|
225
297
|
})) => void): Subscription;
|
|
226
298
|
/**
|
|
227
|
-
* Get
|
|
299
|
+
* Get this actor's persisted snapshot.
|
|
228
300
|
*
|
|
229
301
|
* Suitable for serialization and later restoration via the factory's
|
|
230
302
|
* `restore.snapshot` option.
|
|
231
303
|
*/
|
|
232
|
-
getPersistedSnapshot(): Snapshot<unknown>;
|
|
304
|
+
getPersistedSnapshot(options?: unknown): Snapshot<unknown>;
|
|
233
305
|
/**
|
|
234
|
-
*
|
|
235
|
-
*
|
|
236
|
-
* Per CONTEXT.md: "Prop validation: At state entry (when state becomes active)"
|
|
237
|
-
* Validates once per transition and stores result in signal.
|
|
306
|
+
* Derive and cache the view at state entry — once per transition, stored in
|
|
307
|
+
* the signal rather than recomputed per read.
|
|
238
308
|
*
|
|
239
309
|
* @param snapshot - Current XState snapshot
|
|
240
310
|
*/
|
|
241
311
|
private validateAndCacheView;
|
|
242
312
|
/**
|
|
243
|
-
* Convenience dispose method for cleanup
|
|
244
|
-
*
|
|
245
|
-
* Per CONTEXT.md: "Both .dispose() convenience method and manual machine.stop()"
|
|
313
|
+
* Convenience dispose method for cleanup — an alias for {@link stop}.
|
|
246
314
|
*/
|
|
247
315
|
dispose(): void;
|
|
248
316
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"player-actor.d.ts","sourceRoot":"","sources":["../src/player-actor.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"player-actor.d.ts","sourceRoot":"","sources":["../src/player-actor.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,EACL,KAAK,eAAe,EACpB,KAAK,aAAa,EAElB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACN,aAAa,EAGb,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAGjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgFhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;AACH,qBAAa,WAAW,CAAC,QAAQ,SAAS,eAAe,CACxD,SAAQ,aAAa,CAAC,aAAa,EAAE,cAAc,CAAC,QAAQ,CAAC,CAC7D,YAAW,QAAQ,EAAE,QAAQ;IAE7B,OAAO,CAAC,aAAa,CAAC,CAA0B;IAChD;;;;;;;;OAQG;IACH,QAAgB,WAAW,CAAC,CAAU;IACtC;;;;;;;;;;;;;;;OAeG;IACH,OAAO,KAAK,KAAK,GAEhB;IACD;;;;OAIG;IACH,QAAgB,SAAS,CAAC,CAAoC;IAC9D;;;;;;OAMG;IACH,QAAgB,qBAAqB,CAAC,CAAS;IAC/C;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB,CAA6C;IAG9D,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAE/D;;;;;;;;;;OAUG;IACI,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,OAAO;IAUpD;;;;;;;;;;;;;;;;OAgBG;IACI,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEpD;;;;;;;;;;;;;;OAcG;IACH,SAAgB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,SAAgB,WAAW,gCAA2C;gBAGrE,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,EAChC,KAAK,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,EAC3B,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC;IAwGtD;;;;;;;;OAQG;IACM,KAAK,IAAI,IAAI;IAoBtB;;;;;;;;;OASG;IACM,IAAI,IAAI,IAAI;IAsBrB;;;;;;;;;;;;;;;;;;;OAmBG;IACM,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI;IAmCpD;;OAEG;IACM,WAAW,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC;IAgBlE;;;;;;;OAOG;IACM,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,YAAY;IAC5E;;;;;;;;;OASG;IACM,SAAS,CACjB,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,KAAK,IAAI,EACzD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,EACxC,gBAAgB,CAAC,EAAE,MAAM,IAAI,GAC3B,YAAY;IAyCf;;;;;;OAMG;IACM,EAAE,CAAC,KAAK,SAAS,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,EAC5D,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,CACR,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,GAAG,GAAG,OAAO,GAAG;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,CAAC,KAC5E,IAAI,GACP,YAAY;IAIf;;;;;OAKG;IACM,oBAAoB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IAKnE;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAqC5B;;OAEG;IACH,OAAO,IAAI,IAAI;CAGf"}
|