@adobe/data 0.9.79 → 0.9.80
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/observe/from-keys.d.ts +25 -0
- package/dist/observe/from-keys.js +80 -0
- package/dist/observe/from-keys.js.map +1 -0
- package/dist/observe/from-keys.test.d.ts +1 -0
- package/dist/observe/from-keys.test.js +140 -0
- package/dist/observe/from-keys.test.js.map +1 -0
- package/dist/observe/public.d.ts +1 -0
- package/dist/observe/public.js +1 -0
- package/dist/observe/public.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/references/data-lit/package.json +1 -1
- package/references/data-lit-tictactoe/package.json +1 -1
- package/references/data-react/package.json +1 -1
- package/references/data-react-hello/package.json +1 -1
- package/references/data-react-pixie/package.json +1 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Observe } from "./index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Reactive keyed collection. Given an observable list of keys and a function
|
|
4
|
+
* that maps each key to an observe function for that key's value, yields an
|
|
5
|
+
* observe function of the per-key values in key order.
|
|
6
|
+
*
|
|
7
|
+
* Per-key value subscriptions are keyed by `===` identity and REUSED across
|
|
8
|
+
* list changes: when the key list changes, only added keys subscribe a value
|
|
9
|
+
* and only removed keys unsubscribe one — keys that remain are untouched. So a
|
|
10
|
+
* change in one key's value re-emits only that key's slot (every other key
|
|
11
|
+
* keeps its current value), without re-running or re-subscribing the rest.
|
|
12
|
+
*
|
|
13
|
+
* A result is only produced once every current key has yielded a value; if every
|
|
14
|
+
* value observe function yields synchronously on subscribe, the first result is
|
|
15
|
+
* produced synchronously. Re-emits whenever the key list changes or any live
|
|
16
|
+
* value yields.
|
|
17
|
+
*
|
|
18
|
+
* This is the dynamic, keyed counterpart to {@link fromArray} / {@link
|
|
19
|
+
* fromProperties} (which combine a fixed set of observe functions): here the set
|
|
20
|
+
* of value observe functions is itself driven by an observe function of keys.
|
|
21
|
+
*
|
|
22
|
+
* @param keys an observe function of the current key list (duplicate keys collapse)
|
|
23
|
+
* @param observeValue maps a key to the observe function for that key's value
|
|
24
|
+
*/
|
|
25
|
+
export declare function fromKeys<K, V>(keys: Observe<readonly K[]>, observeValue: (key: K) => Observe<V>): Observe<readonly V[]>;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reactive keyed collection. Given an observable list of keys and a function
|
|
3
|
+
* that maps each key to an observe function for that key's value, yields an
|
|
4
|
+
* observe function of the per-key values in key order.
|
|
5
|
+
*
|
|
6
|
+
* Per-key value subscriptions are keyed by `===` identity and REUSED across
|
|
7
|
+
* list changes: when the key list changes, only added keys subscribe a value
|
|
8
|
+
* and only removed keys unsubscribe one — keys that remain are untouched. So a
|
|
9
|
+
* change in one key's value re-emits only that key's slot (every other key
|
|
10
|
+
* keeps its current value), without re-running or re-subscribing the rest.
|
|
11
|
+
*
|
|
12
|
+
* A result is only produced once every current key has yielded a value; if every
|
|
13
|
+
* value observe function yields synchronously on subscribe, the first result is
|
|
14
|
+
* produced synchronously. Re-emits whenever the key list changes or any live
|
|
15
|
+
* value yields.
|
|
16
|
+
*
|
|
17
|
+
* This is the dynamic, keyed counterpart to {@link fromArray} / {@link
|
|
18
|
+
* fromProperties} (which combine a fixed set of observe functions): here the set
|
|
19
|
+
* of value observe functions is itself driven by an observe function of keys.
|
|
20
|
+
*
|
|
21
|
+
* @param keys an observe function of the current key list (duplicate keys collapse)
|
|
22
|
+
* @param observeValue maps a key to the observe function for that key's value
|
|
23
|
+
*/
|
|
24
|
+
export function fromKeys(keys, observeValue) {
|
|
25
|
+
return (notify) => {
|
|
26
|
+
const entries = new Map();
|
|
27
|
+
let currentKeys = [];
|
|
28
|
+
let keysReady = false;
|
|
29
|
+
const emitIfReady = () => {
|
|
30
|
+
if (!keysReady) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const values = [];
|
|
34
|
+
for (const key of currentKeys) {
|
|
35
|
+
const entry = entries.get(key);
|
|
36
|
+
// A newly-added key has not yielded its first value yet — wait for it.
|
|
37
|
+
if (entry === undefined || !entry.ready) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
values.push(entry.value);
|
|
41
|
+
}
|
|
42
|
+
notify(values);
|
|
43
|
+
};
|
|
44
|
+
const ensureEntry = (key) => {
|
|
45
|
+
if (entries.has(key)) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const entry = { unsubscribe: () => { }, value: undefined, ready: false };
|
|
49
|
+
entries.set(key, entry);
|
|
50
|
+
entry.unsubscribe = observeValue(key)((value) => {
|
|
51
|
+
entry.value = value;
|
|
52
|
+
entry.ready = true;
|
|
53
|
+
emitIfReady();
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
const unsubscribeKeys = keys((nextKeys) => {
|
|
57
|
+
currentKeys = nextKeys;
|
|
58
|
+
const keep = new Set(nextKeys);
|
|
59
|
+
for (const [key, entry] of entries) {
|
|
60
|
+
if (!keep.has(key)) {
|
|
61
|
+
entry.unsubscribe();
|
|
62
|
+
entries.delete(key);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
for (const key of nextKeys) {
|
|
66
|
+
ensureEntry(key);
|
|
67
|
+
}
|
|
68
|
+
keysReady = true;
|
|
69
|
+
emitIfReady();
|
|
70
|
+
});
|
|
71
|
+
return () => {
|
|
72
|
+
unsubscribeKeys();
|
|
73
|
+
for (const entry of entries.values()) {
|
|
74
|
+
entry.unsubscribe();
|
|
75
|
+
}
|
|
76
|
+
entries.clear();
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=from-keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"from-keys.js","sourceRoot":"","sources":["../../src/observe/from-keys.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,QAAQ,CACtB,IAA2B,EAC3B,YAAoC;IAEpC,OAAO,CAAC,MAAM,EAAE,EAAE;QAChB,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4D,CAAC;QACpF,IAAI,WAAW,GAAiB,EAAE,CAAC;QACnC,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAQ,EAAE,CAAC;YACvB,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC/B,uEAAuE;gBACvE,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACxC,OAAO;gBACT,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,CAAC;QACjB,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,CAAC,GAAM,EAAE,EAAE;YAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,MAAM,KAAK,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,KAAK,EAAE,SAAyB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YACxF,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACxB,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC9C,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;gBACpB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;gBACnB,WAAW,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACxC,WAAW,GAAG,QAAQ,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnB,KAAK,CAAC,WAAW,EAAE,CAAC;oBACpB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,WAAW,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;YACD,SAAS,GAAG,IAAI,CAAC;YACjB,WAAW,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,eAAe,EAAE,CAAC;YAClB,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACrC,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,CAAC;YACD,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
+
import { describe, test, expect, vi } from "vitest";
|
|
3
|
+
import { fromKeys } from "./from-keys.js";
|
|
4
|
+
/**
|
|
5
|
+
* A manually-driven observe function: emits its current value synchronously on
|
|
6
|
+
* subscribe once seeded, re-emits on `emit`, and tracks live subscriber count so
|
|
7
|
+
* tests can assert per-key value subscription reuse / disposal.
|
|
8
|
+
*/
|
|
9
|
+
function manual(initial) {
|
|
10
|
+
const observers = new Set();
|
|
11
|
+
let seeded = initial !== undefined;
|
|
12
|
+
let current = initial?.value;
|
|
13
|
+
const observe = (notify) => {
|
|
14
|
+
observers.add(notify);
|
|
15
|
+
if (seeded) {
|
|
16
|
+
notify(current);
|
|
17
|
+
}
|
|
18
|
+
return () => {
|
|
19
|
+
observers.delete(notify);
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
return {
|
|
23
|
+
observe,
|
|
24
|
+
emit(value) {
|
|
25
|
+
seeded = true;
|
|
26
|
+
current = value;
|
|
27
|
+
for (const notify of [...observers]) {
|
|
28
|
+
notify(value);
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
subscriberCount: () => observers.size,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
describe("fromKeys", () => {
|
|
35
|
+
test("emits per-key values in key order, synchronously when the values are synchronous", () => {
|
|
36
|
+
const keys = manual({ value: ["a", "b", "c"] });
|
|
37
|
+
const values = {
|
|
38
|
+
a: manual({ value: 1 }),
|
|
39
|
+
b: manual({ value: 2 }),
|
|
40
|
+
c: manual({ value: 3 }),
|
|
41
|
+
};
|
|
42
|
+
const results = [];
|
|
43
|
+
const unsubscribe = fromKeys(keys.observe, (k) => values[k].observe)((v) => results.push(v));
|
|
44
|
+
expect(results).toEqual([[1, 2, 3]]);
|
|
45
|
+
unsubscribe();
|
|
46
|
+
});
|
|
47
|
+
test("re-emits only the changed key's slot; the other keys keep their value and are not re-subscribed", () => {
|
|
48
|
+
const keys = manual({ value: ["a", "b"] });
|
|
49
|
+
const a = manual({ value: 1 });
|
|
50
|
+
const b = manual({ value: 2 });
|
|
51
|
+
const observeValue = vi.fn((k) => (k === "a" ? a.observe : b.observe));
|
|
52
|
+
const results = [];
|
|
53
|
+
const unsubscribe = fromKeys(keys.observe, observeValue)((v) => results.push(v));
|
|
54
|
+
expect(results).toEqual([[1, 2]]);
|
|
55
|
+
// one value subscription per key, created once
|
|
56
|
+
expect(observeValue).toHaveBeenCalledTimes(2);
|
|
57
|
+
expect(a.subscriberCount()).toBe(1);
|
|
58
|
+
expect(b.subscriberCount()).toBe(1);
|
|
59
|
+
a.emit(10);
|
|
60
|
+
expect(results).toEqual([[1, 2], [10, 2]]);
|
|
61
|
+
// b was untouched: no extra observeValue call, still one subscription
|
|
62
|
+
expect(observeValue).toHaveBeenCalledTimes(2);
|
|
63
|
+
expect(b.subscriberCount()).toBe(1);
|
|
64
|
+
unsubscribe();
|
|
65
|
+
});
|
|
66
|
+
test("adding a key subscribes a new value and re-emits with it appended", () => {
|
|
67
|
+
const keys = manual({ value: ["a"] });
|
|
68
|
+
const a = manual({ value: 1 });
|
|
69
|
+
const b = manual({ value: 2 });
|
|
70
|
+
const map = { a: a.observe, b: b.observe };
|
|
71
|
+
const results = [];
|
|
72
|
+
fromKeys(keys.observe, (k) => map[k])((v) => results.push(v));
|
|
73
|
+
expect(results).toEqual([[1]]);
|
|
74
|
+
keys.emit(["a", "b"]);
|
|
75
|
+
expect(results[results.length - 1]).toEqual([1, 2]);
|
|
76
|
+
expect(b.subscriberCount()).toBe(1);
|
|
77
|
+
});
|
|
78
|
+
test("removing a key unsubscribes its value and re-emits without it", () => {
|
|
79
|
+
const keys = manual({ value: ["a", "b"] });
|
|
80
|
+
const a = manual({ value: 1 });
|
|
81
|
+
const b = manual({ value: 2 });
|
|
82
|
+
const map = { a: a.observe, b: b.observe };
|
|
83
|
+
const results = [];
|
|
84
|
+
fromKeys(keys.observe, (k) => map[k])((v) => results.push(v));
|
|
85
|
+
expect(b.subscriberCount()).toBe(1);
|
|
86
|
+
keys.emit(["a"]);
|
|
87
|
+
expect(results[results.length - 1]).toEqual([1]);
|
|
88
|
+
// b's value subscription was disposed
|
|
89
|
+
expect(b.subscriberCount()).toBe(0);
|
|
90
|
+
// a survived — still one subscription
|
|
91
|
+
expect(a.subscriberCount()).toBe(1);
|
|
92
|
+
});
|
|
93
|
+
test("reordering the keys re-emits the values in the new order without re-subscribing", () => {
|
|
94
|
+
const keys = manual({ value: ["a", "b"] });
|
|
95
|
+
const a = manual({ value: 1 });
|
|
96
|
+
const b = manual({ value: 2 });
|
|
97
|
+
const map = { a: a.observe, b: b.observe };
|
|
98
|
+
const observeValue = vi.fn((k) => map[k]);
|
|
99
|
+
const results = [];
|
|
100
|
+
fromKeys(keys.observe, observeValue)((v) => results.push(v));
|
|
101
|
+
expect(results[results.length - 1]).toEqual([1, 2]);
|
|
102
|
+
keys.emit(["b", "a"]);
|
|
103
|
+
expect(results[results.length - 1]).toEqual([2, 1]);
|
|
104
|
+
// no new subscriptions for a reorder
|
|
105
|
+
expect(observeValue).toHaveBeenCalledTimes(2);
|
|
106
|
+
});
|
|
107
|
+
test("waits for every key to yield a value before the first emission", () => {
|
|
108
|
+
const keys = manual({ value: ["a", "b"] });
|
|
109
|
+
const a = manual({ value: 1 });
|
|
110
|
+
const b = manual(); // not seeded — never yields synchronously
|
|
111
|
+
const map = { a: a.observe, b: b.observe };
|
|
112
|
+
const results = [];
|
|
113
|
+
fromKeys(keys.observe, (k) => map[k])((v) => results.push(v));
|
|
114
|
+
// b has not produced a value, so nothing is emitted yet
|
|
115
|
+
expect(results).toEqual([]);
|
|
116
|
+
b.emit(2);
|
|
117
|
+
expect(results).toEqual([[1, 2]]);
|
|
118
|
+
});
|
|
119
|
+
test("emits an empty array for an empty key list", () => {
|
|
120
|
+
const keys = manual({ value: [] });
|
|
121
|
+
const results = [];
|
|
122
|
+
fromKeys(keys.observe, () => manual({ value: 0 }).observe)((v) => results.push(v));
|
|
123
|
+
expect(results).toEqual([[]]);
|
|
124
|
+
});
|
|
125
|
+
test("disposing unsubscribes the key list and every value", () => {
|
|
126
|
+
const keys = manual({ value: ["a", "b"] });
|
|
127
|
+
const a = manual({ value: 1 });
|
|
128
|
+
const b = manual({ value: 2 });
|
|
129
|
+
const map = { a: a.observe, b: b.observe };
|
|
130
|
+
const unsubscribe = fromKeys(keys.observe, (k) => map[k])(() => { });
|
|
131
|
+
expect(keys.subscriberCount()).toBe(1);
|
|
132
|
+
expect(a.subscriberCount()).toBe(1);
|
|
133
|
+
expect(b.subscriberCount()).toBe(1);
|
|
134
|
+
unsubscribe();
|
|
135
|
+
expect(keys.subscriberCount()).toBe(0);
|
|
136
|
+
expect(a.subscriberCount()).toBe(0);
|
|
137
|
+
expect(b.subscriberCount()).toBe(0);
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
//# sourceMappingURL=from-keys.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"from-keys.test.js","sourceRoot":"","sources":["../../src/observe/from-keys.test.ts"],"names":[],"mappings":"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"}
|
package/dist/observe/public.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export * from "./from-element-id.js";
|
|
|
7
7
|
export * from "./from-element-properties-and-events.js";
|
|
8
8
|
export * from "./from-element-property.js";
|
|
9
9
|
export * from "./from-array.js";
|
|
10
|
+
export * from "./from-keys.js";
|
|
10
11
|
export * from "./from-properties.js";
|
|
11
12
|
export * from "./from-promise-with-error.js";
|
|
12
13
|
export * from "./from-promise.js";
|
package/dist/observe/public.js
CHANGED
|
@@ -8,6 +8,7 @@ export * from "./from-element-id.js";
|
|
|
8
8
|
export * from "./from-element-properties-and-events.js";
|
|
9
9
|
export * from "./from-element-property.js";
|
|
10
10
|
export * from "./from-array.js";
|
|
11
|
+
export * from "./from-keys.js";
|
|
11
12
|
export * from "./from-properties.js";
|
|
12
13
|
export * from "./from-promise-with-error.js";
|
|
13
14
|
export * from "./from-promise.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/observe/public.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yCAAyC,CAAC;AACxD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/observe/public.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yCAAyC,CAAC;AACxD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|