@toyz/loom 0.15.3 → 0.15.5
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/dist/element/context.d.ts +64 -0
- package/dist/element/context.d.ts.map +1 -0
- package/dist/element/context.js +189 -0
- package/dist/element/context.js.map +1 -0
- package/dist/element/hotkey.d.ts +27 -1
- package/dist/element/hotkey.d.ts.map +1 -1
- package/dist/element/hotkey.js +42 -8
- package/dist/element/hotkey.js.map +1 -1
- package/dist/element/index.d.ts +3 -1
- package/dist/element/index.d.ts.map +1 -1
- package/dist/element/index.js +2 -0
- package/dist/element/index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loom — @provide / @consume context (TC39 Stage 3)
|
|
3
|
+
*
|
|
4
|
+
* Cross-shadow-DOM data sharing using the W3C Context Protocol.
|
|
5
|
+
* Class-based keys (like @service), auto-instantiation, reactive updates.
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* class ThemeContext {
|
|
9
|
+
* mode: "dark" | "light" = "dark";
|
|
10
|
+
* primary = "#818cf8";
|
|
11
|
+
* }
|
|
12
|
+
*
|
|
13
|
+
* // Provider (ancestor)
|
|
14
|
+
* @provide(ThemeContext) accessor theme!: ThemeContext;
|
|
15
|
+
*
|
|
16
|
+
* // Consumer (any descendant — crosses shadow boundaries)
|
|
17
|
+
* @consume(ThemeContext) accessor theme!: ThemeContext;
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* W3C Context Protocol event.
|
|
22
|
+
* Dispatched by consumers, intercepted by providers.
|
|
23
|
+
*
|
|
24
|
+
* `composed: true` lets it cross shadow DOM boundaries.
|
|
25
|
+
*/
|
|
26
|
+
export declare class ContextRequestEvent<T = unknown> extends Event {
|
|
27
|
+
/** The context key (class constructor, string, or symbol) */
|
|
28
|
+
readonly context: unknown;
|
|
29
|
+
/** Callback the provider calls with the current value */
|
|
30
|
+
readonly callback: ContextCallback<T>;
|
|
31
|
+
/** Whether to subscribe to future updates (default: true) */
|
|
32
|
+
readonly subscribe: boolean;
|
|
33
|
+
constructor(
|
|
34
|
+
/** The context key (class constructor, string, or symbol) */
|
|
35
|
+
context: unknown,
|
|
36
|
+
/** Callback the provider calls with the current value */
|
|
37
|
+
callback: ContextCallback<T>,
|
|
38
|
+
/** Whether to subscribe to future updates (default: true) */
|
|
39
|
+
subscribe?: boolean);
|
|
40
|
+
}
|
|
41
|
+
export type ContextCallback<T> = (value: T, unsubscribe: () => void) => void;
|
|
42
|
+
/**
|
|
43
|
+
* @provide(Key) — Provide a context value to descendants.
|
|
44
|
+
*
|
|
45
|
+
* If Key is a class constructor and no initial value is set,
|
|
46
|
+
* the decorator auto-instantiates via `new Key()`.
|
|
47
|
+
*
|
|
48
|
+
* ```ts
|
|
49
|
+
* @provide(ThemeContext) accessor theme!: ThemeContext;
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare function provide<T>(key: (new () => T) | string | symbol): <This extends object>(target: ClassAccessorDecoratorTarget<This, T>, context: ClassAccessorDecoratorContext<This, T>) => ClassAccessorDecoratorResult<This, T>;
|
|
53
|
+
/**
|
|
54
|
+
* @consume(Key) — Consume a context value from the nearest provider ancestor.
|
|
55
|
+
*
|
|
56
|
+
* The accessor is automatically typed from the Key if it's a class constructor.
|
|
57
|
+
* Updates reactively when the provider changes the value.
|
|
58
|
+
*
|
|
59
|
+
* ```ts
|
|
60
|
+
* @consume(ThemeContext) accessor theme!: ThemeContext;
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export declare function consume<T>(key: (new () => T) | string | symbol): <This extends object>(_target: ClassAccessorDecoratorTarget<This, T>, context: ClassAccessorDecoratorContext<This, T>) => ClassAccessorDecoratorResult<This, T>;
|
|
64
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/element/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AASH;;;;;GAKG;AACH,qBAAa,mBAAmB,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,KAAK;IAEnD,6DAA6D;aAC7C,OAAO,EAAE,OAAO;IAChC,yDAAyD;aACzC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;IAC5C,6DAA6D;aAC7C,SAAS,EAAE,OAAO;;IALlC,6DAA6D;IAC7C,OAAO,EAAE,OAAO;IAChC,yDAAyD;IACzC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;IAC5C,6DAA6D;IAC7C,SAAS,GAAE,OAAc;CAIhD;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;AAI7E;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,IACnD,IAAI,SAAS,MAAM,EACvB,QAAQ,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7C,SAAS,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,KAChD,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAsF3C;AAID;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,IACnD,IAAI,SAAS,MAAM,EACvB,SAAS,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC9C,SAAS,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,KAChD,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAgD3C"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loom — @provide / @consume context (TC39 Stage 3)
|
|
3
|
+
*
|
|
4
|
+
* Cross-shadow-DOM data sharing using the W3C Context Protocol.
|
|
5
|
+
* Class-based keys (like @service), auto-instantiation, reactive updates.
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* class ThemeContext {
|
|
9
|
+
* mode: "dark" | "light" = "dark";
|
|
10
|
+
* primary = "#818cf8";
|
|
11
|
+
* }
|
|
12
|
+
*
|
|
13
|
+
* // Provider (ancestor)
|
|
14
|
+
* @provide(ThemeContext) accessor theme!: ThemeContext;
|
|
15
|
+
*
|
|
16
|
+
* // Consumer (any descendant — crosses shadow boundaries)
|
|
17
|
+
* @consume(ThemeContext) accessor theme!: ThemeContext;
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
import { CONNECT_HOOKS } from "../decorators/symbols";
|
|
21
|
+
// ── Context Request Event ──
|
|
22
|
+
const CONTEXT_REQUEST = "context-request";
|
|
23
|
+
/**
|
|
24
|
+
* W3C Context Protocol event.
|
|
25
|
+
* Dispatched by consumers, intercepted by providers.
|
|
26
|
+
*
|
|
27
|
+
* `composed: true` lets it cross shadow DOM boundaries.
|
|
28
|
+
*/
|
|
29
|
+
export class ContextRequestEvent extends Event {
|
|
30
|
+
context;
|
|
31
|
+
callback;
|
|
32
|
+
subscribe;
|
|
33
|
+
constructor(
|
|
34
|
+
/** The context key (class constructor, string, or symbol) */
|
|
35
|
+
context,
|
|
36
|
+
/** Callback the provider calls with the current value */
|
|
37
|
+
callback,
|
|
38
|
+
/** Whether to subscribe to future updates (default: true) */
|
|
39
|
+
subscribe = true) {
|
|
40
|
+
super(CONTEXT_REQUEST, { bubbles: true, composed: true });
|
|
41
|
+
this.context = context;
|
|
42
|
+
this.callback = callback;
|
|
43
|
+
this.subscribe = subscribe;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// ── @provide ──
|
|
47
|
+
/**
|
|
48
|
+
* @provide(Key) — Provide a context value to descendants.
|
|
49
|
+
*
|
|
50
|
+
* If Key is a class constructor and no initial value is set,
|
|
51
|
+
* the decorator auto-instantiates via `new Key()`.
|
|
52
|
+
*
|
|
53
|
+
* ```ts
|
|
54
|
+
* @provide(ThemeContext) accessor theme!: ThemeContext;
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export function provide(key) {
|
|
58
|
+
return (target, context) => {
|
|
59
|
+
const storageKey = Symbol(`ctx:provide:${String(context.name)}`);
|
|
60
|
+
const subscribersKey = Symbol(`ctx:subs:${String(context.name)}`);
|
|
61
|
+
context.addInitializer(function () {
|
|
62
|
+
const self = this;
|
|
63
|
+
const hooks = CONNECT_HOOKS.from(self);
|
|
64
|
+
const hook = (el) => {
|
|
65
|
+
const host = el;
|
|
66
|
+
// Auto-instantiate class key if no value set
|
|
67
|
+
if (host[storageKey] === undefined && typeof key === "function") {
|
|
68
|
+
host[storageKey] = new key();
|
|
69
|
+
}
|
|
70
|
+
// Subscriber list for reactive updates
|
|
71
|
+
if (!host[subscribersKey])
|
|
72
|
+
host[subscribersKey] = new Set();
|
|
73
|
+
const subs = host[subscribersKey];
|
|
74
|
+
// Listen for context requests from descendants
|
|
75
|
+
const handler = (e) => {
|
|
76
|
+
const req = e;
|
|
77
|
+
if (req.context !== key)
|
|
78
|
+
return;
|
|
79
|
+
// Stop propagation so nearest provider wins
|
|
80
|
+
e.stopPropagation();
|
|
81
|
+
const currentValue = host[storageKey];
|
|
82
|
+
if (req.subscribe) {
|
|
83
|
+
// Subscriber — store callback for future updates
|
|
84
|
+
const cb = req.callback;
|
|
85
|
+
subs.add(cb);
|
|
86
|
+
// Provide unsubscribe function
|
|
87
|
+
const unsub = () => subs.delete(cb);
|
|
88
|
+
cb(currentValue, unsub);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
// One-shot read
|
|
92
|
+
req.callback(currentValue, () => { });
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
host.addEventListener(CONTEXT_REQUEST, handler);
|
|
96
|
+
return () => {
|
|
97
|
+
host.removeEventListener(CONTEXT_REQUEST, handler);
|
|
98
|
+
subs.clear();
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
if (!hooks)
|
|
102
|
+
CONNECT_HOOKS.set(self, [hook]);
|
|
103
|
+
else
|
|
104
|
+
hooks.push(hook);
|
|
105
|
+
});
|
|
106
|
+
return {
|
|
107
|
+
init(value) {
|
|
108
|
+
// Capture initial accessor value into our storage
|
|
109
|
+
this[storageKey] = value;
|
|
110
|
+
return value;
|
|
111
|
+
},
|
|
112
|
+
get() {
|
|
113
|
+
const self = this;
|
|
114
|
+
if (self[storageKey] === undefined && typeof key === "function") {
|
|
115
|
+
self[storageKey] = new key();
|
|
116
|
+
}
|
|
117
|
+
return self[storageKey];
|
|
118
|
+
},
|
|
119
|
+
set(value) {
|
|
120
|
+
const self = this;
|
|
121
|
+
self[storageKey] = value;
|
|
122
|
+
// Notify all subscribed consumers
|
|
123
|
+
const subs = self[subscribersKey];
|
|
124
|
+
if (subs) {
|
|
125
|
+
for (const cb of subs) {
|
|
126
|
+
cb(value, () => subs.delete(cb));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
// Schedule re-render
|
|
130
|
+
self.scheduleUpdate?.();
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
// ── @consume ──
|
|
136
|
+
/**
|
|
137
|
+
* @consume(Key) — Consume a context value from the nearest provider ancestor.
|
|
138
|
+
*
|
|
139
|
+
* The accessor is automatically typed from the Key if it's a class constructor.
|
|
140
|
+
* Updates reactively when the provider changes the value.
|
|
141
|
+
*
|
|
142
|
+
* ```ts
|
|
143
|
+
* @consume(ThemeContext) accessor theme!: ThemeContext;
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
146
|
+
export function consume(key) {
|
|
147
|
+
return (_target, context) => {
|
|
148
|
+
const storageKey = Symbol(`ctx:consume:${String(context.name)}`);
|
|
149
|
+
const unsubKey = Symbol(`ctx:unsub:${String(context.name)}`);
|
|
150
|
+
context.addInitializer(function () {
|
|
151
|
+
const self = this;
|
|
152
|
+
const hooks = CONNECT_HOOKS.from(self);
|
|
153
|
+
const hook = (el) => {
|
|
154
|
+
const host = el;
|
|
155
|
+
// Callback from provider
|
|
156
|
+
const callback = (value, unsubscribe) => {
|
|
157
|
+
host[storageKey] = value;
|
|
158
|
+
host[unsubKey] = unsubscribe;
|
|
159
|
+
host.scheduleUpdate?.();
|
|
160
|
+
};
|
|
161
|
+
// Defer dispatch so ancestor providers are connected first.
|
|
162
|
+
// Same pattern @slot uses — parent connectedCallback may not
|
|
163
|
+
// have fired yet when both connect in the same tick.
|
|
164
|
+
queueMicrotask(() => {
|
|
165
|
+
host.dispatchEvent(new ContextRequestEvent(key, callback, true));
|
|
166
|
+
});
|
|
167
|
+
return () => {
|
|
168
|
+
// Unsubscribe from provider on disconnect
|
|
169
|
+
const unsub = host[unsubKey];
|
|
170
|
+
unsub?.();
|
|
171
|
+
host[unsubKey] = undefined;
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
if (!hooks)
|
|
175
|
+
CONNECT_HOOKS.set(self, [hook]);
|
|
176
|
+
else
|
|
177
|
+
hooks.push(hook);
|
|
178
|
+
});
|
|
179
|
+
return {
|
|
180
|
+
get() {
|
|
181
|
+
return this[storageKey];
|
|
182
|
+
},
|
|
183
|
+
set(value) {
|
|
184
|
+
this[storageKey] = value;
|
|
185
|
+
},
|
|
186
|
+
};
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/element/context.ts"],"names":[],"mappings":"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"}
|
package/dist/element/hotkey.d.ts
CHANGED
|
@@ -21,6 +21,32 @@ export interface HotkeyOptions {
|
|
|
21
21
|
/** Prevent default browser behavior (default: true) */
|
|
22
22
|
preventDefault?: boolean;
|
|
23
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Object-based key combo definition.
|
|
26
|
+
*
|
|
27
|
+
* ```ts
|
|
28
|
+
* @hotkey({ key: "k", mod: true })
|
|
29
|
+
* @hotkey({ key: "s", ctrl: true, shift: true })
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export interface HotkeyCombo {
|
|
33
|
+
/** The key to listen for (e.g. "k", "escape", "enter") */
|
|
34
|
+
key: string;
|
|
35
|
+
/** Require Ctrl (default: false) */
|
|
36
|
+
ctrl?: boolean;
|
|
37
|
+
/** Require Shift (default: false) */
|
|
38
|
+
shift?: boolean;
|
|
39
|
+
/** Require Alt/Option (default: false) */
|
|
40
|
+
alt?: boolean;
|
|
41
|
+
/** Require Meta/Cmd/Win (default: false) */
|
|
42
|
+
meta?: boolean;
|
|
43
|
+
/** Cross-platform: Meta on Mac, Ctrl elsewhere (default: false) */
|
|
44
|
+
mod?: boolean;
|
|
45
|
+
/** Listen on document instead of the element */
|
|
46
|
+
global?: boolean;
|
|
47
|
+
/** Prevent default browser behavior */
|
|
48
|
+
preventDefault?: boolean;
|
|
49
|
+
}
|
|
24
50
|
/**
|
|
25
51
|
* @hotkey — Declarative keyboard shortcut. Auto-cleaned on disconnect.
|
|
26
52
|
*
|
|
@@ -40,5 +66,5 @@ export interface HotkeyOptions {
|
|
|
40
66
|
* close() { ... }
|
|
41
67
|
* ```
|
|
42
68
|
*/
|
|
43
|
-
export declare function hotkey(...args: [...combos: string[], options: HotkeyOptions] | string[]): (method: Function, context: ClassMethodDecoratorContext) => void;
|
|
69
|
+
export declare function hotkey(...args: [...combos: (string | HotkeyCombo)[], options: HotkeyOptions] | (string | HotkeyCombo)[]): (method: Function, context: ClassMethodDecoratorContext) => void;
|
|
44
70
|
//# sourceMappingURL=hotkey.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hotkey.d.ts","sourceRoot":"","sources":["../../src/element/hotkey.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,MAAM,WAAW,aAAa;IAC1B,iEAAiE;IACjE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uDAAuD;IACvD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;
|
|
1
|
+
{"version":3,"file":"hotkey.d.ts","sourceRoot":"","sources":["../../src/element/hotkey.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,MAAM,WAAW,aAAa;IAC1B,iEAAiE;IACjE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uDAAuD;IACvD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IACxB,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,oCAAoC;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0CAA0C;IAC1C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,4CAA4C;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,mEAAmE;IACnE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAwFD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,MAAM,CAClB,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,GAClG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,KAAK,IAAI,CA6DlE"}
|
package/dist/element/hotkey.js
CHANGED
|
@@ -60,6 +60,23 @@ function parseCombo(raw) {
|
|
|
60
60
|
_comboCache.set(raw, cached);
|
|
61
61
|
return cached;
|
|
62
62
|
}
|
|
63
|
+
function comboFromObject(obj) {
|
|
64
|
+
let ctrl = obj.ctrl ?? false;
|
|
65
|
+
let meta = obj.meta ?? false;
|
|
66
|
+
if (obj.mod) {
|
|
67
|
+
if (isMac)
|
|
68
|
+
meta = true;
|
|
69
|
+
else
|
|
70
|
+
ctrl = true;
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
ctrl,
|
|
74
|
+
shift: obj.shift ?? false,
|
|
75
|
+
alt: obj.alt ?? false,
|
|
76
|
+
meta,
|
|
77
|
+
key: obj.key.toLowerCase(),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
63
80
|
function matchesCombo(e, combo) {
|
|
64
81
|
return (e.ctrlKey === combo.ctrl &&
|
|
65
82
|
e.shiftKey === combo.shift &&
|
|
@@ -88,20 +105,37 @@ function matchesCombo(e, combo) {
|
|
|
88
105
|
* ```
|
|
89
106
|
*/
|
|
90
107
|
export function hotkey(...args) {
|
|
91
|
-
// Separate combo
|
|
108
|
+
// Separate combo defs from trailing options object (no .key = pure options)
|
|
92
109
|
let options = {};
|
|
93
|
-
let
|
|
110
|
+
let comboDefs;
|
|
94
111
|
const last = args[args.length - 1];
|
|
95
|
-
if (typeof last === "object" && last !== null) {
|
|
112
|
+
if (typeof last === "object" && last !== null && !("key" in last)) {
|
|
113
|
+
// Trailing options (no .key property means it's HotkeyOptions, not HotkeyCombo)
|
|
96
114
|
options = last;
|
|
97
|
-
|
|
115
|
+
comboDefs = args.slice(0, -1);
|
|
98
116
|
}
|
|
99
117
|
else {
|
|
100
|
-
|
|
118
|
+
comboDefs = args;
|
|
119
|
+
}
|
|
120
|
+
const combos = [];
|
|
121
|
+
let comboGlobal;
|
|
122
|
+
let comboPreventDefault;
|
|
123
|
+
for (const def of comboDefs) {
|
|
124
|
+
if (typeof def === "string") {
|
|
125
|
+
combos.push(parseCombo(def));
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
combos.push(comboFromObject(def));
|
|
129
|
+
// Object combos can carry their own global/preventDefault
|
|
130
|
+
if (def.global !== undefined)
|
|
131
|
+
comboGlobal = def.global;
|
|
132
|
+
if (def.preventDefault !== undefined)
|
|
133
|
+
comboPreventDefault = def.preventDefault;
|
|
134
|
+
}
|
|
101
135
|
}
|
|
102
|
-
|
|
103
|
-
const preventDefault = options.preventDefault ?? true;
|
|
104
|
-
const global = options.global ?? false;
|
|
136
|
+
// Object combo settings serve as fallbacks to trailing options
|
|
137
|
+
const preventDefault = options.preventDefault ?? comboPreventDefault ?? true;
|
|
138
|
+
const global = options.global ?? comboGlobal ?? false;
|
|
105
139
|
return (method, context) => {
|
|
106
140
|
context.addInitializer(function () {
|
|
107
141
|
if (!this[CONNECT_HOOKS.key])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hotkey.js","sourceRoot":"","sources":["../../src/element/hotkey.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"hotkey.js","sourceRoot":"","sources":["../../src/element/hotkey.ts"],"names":[],"mappings":"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"}
|
package/dist/element/index.d.ts
CHANGED
|
@@ -17,7 +17,9 @@ export { slot } from "./slots";
|
|
|
17
17
|
export { transition } from "./transition";
|
|
18
18
|
export type { TransitionOptions } from "./transition";
|
|
19
19
|
export { hotkey } from "./hotkey";
|
|
20
|
-
export type { HotkeyOptions } from "./hotkey";
|
|
20
|
+
export type { HotkeyOptions, HotkeyCombo } from "./hotkey";
|
|
21
21
|
export { log, LogTransport, ConsoleTransport, resetLogTransport } from "./log";
|
|
22
22
|
export type { LogEntry, LogLevel, LogOptions } from "./log";
|
|
23
|
+
export { provide, consume, ContextRequestEvent } from "./context";
|
|
24
|
+
export type { ContextCallback } from "./context";
|
|
23
25
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/element/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AASxC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGlE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAG7G,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGjE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG1C,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/element/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AASxC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGlE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAG7G,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGjE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG1C,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG3D,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC/E,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAG5D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAClE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/element/index.js
CHANGED
|
@@ -32,4 +32,6 @@ export { transition } from "./transition";
|
|
|
32
32
|
export { hotkey } from "./hotkey";
|
|
33
33
|
// Log decorator + transport
|
|
34
34
|
export { log, LogTransport, ConsoleTransport, resetLogTransport } from "./log";
|
|
35
|
+
// Context: provide/consume across shadow boundaries
|
|
36
|
+
export { provide, consume, ContextRequestEvent } from "./context";
|
|
35
37
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/element/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,kEAAkE;AAClE,gEAAgE;AAChE,0DAA0D;AAC1D,8DAA8D;AAC9D,4DAA4D;AAE5D,qBAAqB;AACrB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAElE,uBAAuB;AACvB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE9D,kBAAkB;AAClB,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,qBAAqB;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,oBAAoB;AACpB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAA8B,MAAM,UAAU,CAAC;AAE7G,iBAAiB;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,yBAAyB;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,iBAAiB;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,uBAAuB;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,mBAAmB;AACnB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,4BAA4B;AAC5B,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/element/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,kEAAkE;AAClE,gEAAgE;AAChE,0DAA0D;AAC1D,8DAA8D;AAC9D,4DAA4D;AAE5D,qBAAqB;AACrB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAElE,uBAAuB;AACvB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE9D,kBAAkB;AAClB,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,qBAAqB;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,oBAAoB;AACpB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAA8B,MAAM,UAAU,CAAC;AAE7G,iBAAiB;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,yBAAyB;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,iBAAiB;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,uBAAuB;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,mBAAmB;AACnB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,4BAA4B;AAC5B,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG/E,oDAAoD;AACpD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -21,8 +21,8 @@ export { service, resolveServiceName, inject, factory } from "./di";
|
|
|
21
21
|
export { SERVICE_NAME } from "./decorators/symbols";
|
|
22
22
|
/** @deprecated Use `@watch(Service)` or `@watch(Service, "prop")` instead. Will be removed in v1.0. */
|
|
23
23
|
export { watch as watchService } from "./di";
|
|
24
|
-
export { LoomElement, component, query, queryAll, styles, catch_, suspend, mount, unmount, event, observer, interval, timeout, debounce, throttle, animationFrame, form, lazy, slot, transition, hotkey, log, LogTransport, ConsoleTransport, } from "./element";
|
|
25
|
-
export type { FormState, FormSchema, FieldSchema, LazyOptions, TransitionOptions, HotkeyOptions, LogEntry, LogLevel, LogOptions } from "./element";
|
|
24
|
+
export { LoomElement, component, query, queryAll, styles, catch_, suspend, mount, unmount, event, observer, interval, timeout, debounce, throttle, animationFrame, form, lazy, slot, transition, hotkey, log, LogTransport, ConsoleTransport, provide, consume, ContextRequestEvent, } from "./element";
|
|
25
|
+
export type { FormState, FormSchema, FieldSchema, LazyOptions, TransitionOptions, HotkeyOptions, HotkeyCombo, LogEntry, LogLevel, LogOptions, ContextCallback } from "./element";
|
|
26
26
|
export { transform, createTransform, typed, typedTransformer, toNumber, toBoolean, toDate, toJSON, toTrimmed, toInt, toFloat, } from "./transform";
|
|
27
27
|
export type { TransformSchema } from "./transform";
|
|
28
28
|
export { on, emit, createDecorator, createSymbol, LoomSymbol, SYMBOL_REGISTRY } from "./decorators";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGrC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAKhD,OAAO,EACL,QAAQ,EAAE,eAAe,EACzB,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EACvE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAC5C,KAAK,EACL,KAAK,GACN,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,UAAU,EAAE,OAAO,EAAE,YAAY,EACjC,cAAc,EAAE,aAAa,EAAE,cAAc,GAC9C,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,uGAAuG;AACvG,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,MAAM,CAAC;AAG7C,OAAO,EACL,WAAW,EACX,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAClC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAC/B,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EACrD,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EACpC,GAAG,EAAE,YAAY,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -26,7 +26,7 @@ export { SERVICE_NAME } from "./decorators/symbols";
|
|
|
26
26
|
/** @deprecated Use `@watch(Service)` or `@watch(Service, "prop")` instead. Will be removed in v1.0. */
|
|
27
27
|
export { watch as watchService } from "./di";
|
|
28
28
|
// Element: base class, element decorators
|
|
29
|
-
export { LoomElement, component, query, queryAll, styles, catch_, suspend, mount, unmount, event, observer, interval, timeout, debounce, throttle, animationFrame, form, lazy, slot, transition, hotkey, log, LogTransport, ConsoleTransport, } from "./element";
|
|
29
|
+
export { LoomElement, component, query, queryAll, styles, catch_, suspend, mount, unmount, event, observer, interval, timeout, debounce, throttle, animationFrame, form, lazy, slot, transition, hotkey, log, LogTransport, ConsoleTransport, provide, consume, ContextRequestEvent, } from "./element";
|
|
30
30
|
// Transform: value transforms
|
|
31
31
|
export { transform, createTransform, typed, typedTransformer, toNumber, toBoolean, toDate, toJSON, toTrimmed, toInt, toFloat, } from "./transform";
|
|
32
32
|
// Decorators: event decorators + factory
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kBAAkB;AAClB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG9C,MAAM;AACN,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,eAAe;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,wDAAwD;AACxD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpD,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,0BAA0B;AAE1B,qCAAqC;AACrC,OAAO,EACL,QAAQ,EAAE,eAAe,EACzB,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EACvE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAC5C,KAAK,EACL,KAAK,GACN,MAAM,SAAS,CAAC;AAMjB,mCAAmC;AACnC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,uGAAuG;AACvG,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,MAAM,CAAC;AAE7C,0CAA0C;AAC1C,OAAO,EACL,WAAW,EACX,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAClC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAC/B,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EACrD,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EACpC,GAAG,EAAE,YAAY,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kBAAkB;AAClB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG9C,MAAM;AACN,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,eAAe;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,wDAAwD;AACxD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpD,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,0BAA0B;AAE1B,qCAAqC;AACrC,OAAO,EACL,QAAQ,EAAE,eAAe,EACzB,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EACvE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAC5C,KAAK,EACL,KAAK,GACN,MAAM,SAAS,CAAC;AAMjB,mCAAmC;AACnC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,uGAAuG;AACvG,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,MAAM,CAAC;AAE7C,0CAA0C;AAC1C,OAAO,EACL,WAAW,EACX,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAClC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAC/B,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EACrD,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EACpC,GAAG,EAAE,YAAY,EAAE,gBAAgB,EACnC,OAAO,EAAE,OAAO,EAAE,mBAAmB,GACtC,MAAM,WAAW,CAAC;AAGnB,8BAA8B;AAC9B,OAAO,EACL,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAC/D,MAAM,aAAa,CAAC;AAGrB,yCAAyC;AACzC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpG,SAAS;AACT,OAAO,EACL,UAAU,EACV,YAAY,EACZ,KAAK,EACL,KAAK,EACL,KAAK,EACL,UAAU,EACV,MAAM,EACN,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,YAAY,GACb,MAAM,UAAU,CAAC;AAGlB,oDAAoD;AACpD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzD,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC"}
|