dothtml 6.0.0-beta.33 → 6.0.0-beta.34
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/build_module/css/format-css-type.d.ts +4 -4
- package/build_module/css/format-css-type.js +7 -7
- package/build_module/css/format-css-type.js.map +1 -1
- package/build_module/dot.js +15 -9
- package/build_module/dot.js.map +1 -1
- package/build_module/reactivity/binding.d.ts +7 -0
- package/build_module/reactivity/binding.js +42 -0
- package/build_module/reactivity/binding.js.map +1 -0
- package/build_module/reactivity/bound-reactive.d.ts +13 -0
- package/build_module/reactivity/bound-reactive.js +20 -0
- package/build_module/reactivity/bound-reactive.js.map +1 -0
- package/build_module/reactivity/reactive-attr.d.ts +6 -0
- package/build_module/reactivity/reactive-attr.js +7 -0
- package/build_module/reactivity/reactive-attr.js.map +1 -0
- package/build_module/reactivity/reactive-style.d.ts +6 -0
- package/build_module/reactivity/reactive-style.js +7 -0
- package/build_module/reactivity/reactive-style.js.map +1 -0
- package/build_module/reactivity/reactive.d.ts +22 -0
- package/build_module/reactivity/reactive.js +54 -0
- package/build_module/reactivity/reactive.js.map +1 -0
- package/build_module/v-meta-nodes/attribute-v-node.d.ts +3 -3
- package/build_module/v-meta-nodes/attribute-v-node.js +10 -5
- package/build_module/v-meta-nodes/attribute-v-node.js.map +1 -1
- package/build_module/v-meta-nodes/style-v-node.d.ts +2 -2
- package/build_module/v-meta-nodes/style-v-node.js +8 -8
- package/build_module/v-meta-nodes/style-v-node.js.map +1 -1
- package/build_module/v-style-nodes/base-v-style.js +6 -5
- package/build_module/v-style-nodes/base-v-style.js.map +1 -1
- package/build_module/v-style-nodes/css-function-builder-v-style.d.ts +4 -4
- package/build_module/v-style-nodes/css-function-builder-v-style.js +3 -3
- package/build_module/v-style-nodes/css-function-builder-v-style.js.map +1 -1
- package/build_module/v-style-nodes/filter-v-style.js.map +1 -1
- package/build_module/vdom-nodes/collection-vdom.d.ts +3 -3
- package/build_module/vdom-nodes/collection-vdom.js +17 -14
- package/build_module/vdom-nodes/collection-vdom.js.map +1 -1
- package/build_module/vdom-nodes/conditional-vdom.d.ts +2 -2
- package/build_module/vdom-nodes/conditional-vdom.js +8 -8
- package/build_module/vdom-nodes/conditional-vdom.js.map +1 -1
- package/build_module/vdom-nodes/container-vdom.d.ts +6 -5
- package/build_module/vdom-nodes/container-vdom.js +15 -8
- package/build_module/vdom-nodes/container-vdom.js.map +1 -1
- package/build_module/vdom-nodes/element-vdom.d.ts +4 -0
- package/build_module/vdom-nodes/element-vdom.js +11 -7
- package/build_module/vdom-nodes/element-vdom.js.map +1 -1
- package/build_module/vdom-nodes/html-vdom.d.ts +3 -3
- package/build_module/vdom-nodes/html-vdom.js +7 -7
- package/build_module/vdom-nodes/html-vdom.js.map +1 -1
- package/build_module/vdom-nodes/text-vdom.d.ts +3 -3
- package/build_module/vdom-nodes/text-vdom.js +7 -7
- package/build_module/vdom-nodes/text-vdom.js.map +1 -1
- package/build_module/window-wrapper.js +4 -1
- package/build_module/window-wrapper.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BoundReactive from "../reactivity/bound-reactive";
|
|
2
2
|
export default abstract class CssFunctionBuilderVStyle {
|
|
3
3
|
simpleValue: string;
|
|
4
4
|
funcs: Array<{
|
|
5
5
|
func: string;
|
|
6
6
|
args: Array<{
|
|
7
|
-
v: number | boolean | string |
|
|
8
|
-
f: (v: number | boolean | string |
|
|
7
|
+
v: number | boolean | string | BoundReactive;
|
|
8
|
+
f: (v: number | boolean | string | BoundReactive) => string;
|
|
9
9
|
}>;
|
|
10
10
|
}>;
|
|
11
11
|
readonly propName: string;
|
|
12
|
-
subscriptions: Record<number,
|
|
12
|
+
subscriptions: Record<number, BoundReactive>;
|
|
13
13
|
target: HTMLElement;
|
|
14
14
|
constructor(propName: string);
|
|
15
15
|
toString(): string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BoundReactive from "../reactivity/bound-reactive";
|
|
2
2
|
export default class CssFunctionBuilderVStyle {
|
|
3
3
|
constructor(propName) {
|
|
4
4
|
this.funcs = [];
|
|
@@ -9,8 +9,8 @@ export default class CssFunctionBuilderVStyle {
|
|
|
9
9
|
let result = "";
|
|
10
10
|
for (let t of this.funcs) {
|
|
11
11
|
let argValues = t.args.map(arg => {
|
|
12
|
-
if (arg.v instanceof
|
|
13
|
-
return arg.f(arg.v.
|
|
12
|
+
if (arg.v instanceof BoundReactive) {
|
|
13
|
+
return arg.f(arg.v._get());
|
|
14
14
|
}
|
|
15
15
|
else {
|
|
16
16
|
return arg.f(arg.v).split(" ").join(", ");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-function-builder-v-style.js","sourceRoot":"","sources":["../../src/v-style-nodes/css-function-builder-v-style.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"css-function-builder-v-style.js","sourceRoot":"","sources":["../../src/v-style-nodes/css-function-builder-v-style.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAIzD,MAAM,CAAC,OAAO,OAAgB,wBAAwB;IAWrD,YAAY,QAAgB;QAR5B,UAAK,GAGA,EAAE,CAAC;QAER,kBAAa,GAAkC,EAAE,CAAC;QAIjD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED,QAAQ;QACP,IAAI,MAAM,GAAG,EAAE,CAAC;QAGhB,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAC;YAEvB,IAAI,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAChC,IAAG,GAAG,CAAC,CAAC,YAAY,aAAa,EAAC;oBACjC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;iBAC3B;qBACG;oBACH,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC1C;YACF,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAGd,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,SAAS,IAAI,CAAC;SACrC;QAED,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IA6ED,cAAc,CAAC,MAAc,EAAE,IAAI;QAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACb,CAAC;CAED"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-v-style.js","sourceRoot":"","sources":["../../src/v-style-nodes/filter-v-style.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"filter-v-style.js","sourceRoot":"","sources":["../../src/v-style-nodes/filter-v-style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,wBAAwB,MAAM,gCAAgC,CAAC;AAEtE,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,wBAAwB;IAEjE,IAAI,CAAC,CAAC;QACL,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,eAAe,EAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,UAAU,CAAC,CAAC;QACX,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,mBAAmB,EAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,QAAQ,CAAC,CAAC;QACT,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,eAAe,EAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK;QAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,EAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,EAAC,EAAE,EAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAC,EAAE,EAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,EAAC,CAAC,CAAC,CAAC;IACnK,CAAC;IACD,SAAS,CAAC,CAAC;QACV,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,eAAe,EAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,SAAS,CAAC,CAAC;QACV,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,eAAe,EAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,CAAC,CAAC;QACP,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,eAAe,EAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,CAAC,CAAC;QACR,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,eAAe,EAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,KAAK,CAAC,CAAC;QACN,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,eAAe,EAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,QAAQ,CAAC,CAAC;QACT,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,eAAe,EAAC,CAAC,CAAC,CAAC;IACnE,CAAC;CACD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BoundReactive from "../reactivity/bound-reactive";
|
|
2
2
|
import { Vdom } from "./vdom";
|
|
3
3
|
import { ObservableCollection } from "./vdom-types";
|
|
4
4
|
type DatumMap = {
|
|
@@ -6,11 +6,11 @@ type DatumMap = {
|
|
|
6
6
|
value: any;
|
|
7
7
|
keyValue: any;
|
|
8
8
|
afterNode: Node;
|
|
9
|
-
observableIndex:
|
|
9
|
+
observableIndex: BoundReactive<number>;
|
|
10
10
|
};
|
|
11
11
|
export default class CollectionVdom extends Vdom {
|
|
12
12
|
value: ObservableCollection;
|
|
13
|
-
renderCallback: (x: any, i: number | string |
|
|
13
|
+
renderCallback: (x: any, i: number | string | BoundReactive, k: string) => Vdom;
|
|
14
14
|
startNode: Node;
|
|
15
15
|
endNode: Node;
|
|
16
16
|
observerId: number;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { deepEqual } from "../helpers/tools";
|
|
2
|
-
import
|
|
2
|
+
import BoundReactive from "../reactivity/bound-reactive";
|
|
3
|
+
import Reactive from "../reactivity/reactive";
|
|
3
4
|
import { TextVdom } from "./text-vdom";
|
|
4
5
|
import { Vdom } from "./vdom";
|
|
5
6
|
export default class CollectionVdom extends Vdom {
|
|
@@ -11,8 +12,8 @@ export default class CollectionVdom extends Vdom {
|
|
|
11
12
|
this.renderCallback = renderCallback;
|
|
12
13
|
}
|
|
13
14
|
_render(target) {
|
|
14
|
-
if (this.value instanceof
|
|
15
|
-
this.observerId = this.value.
|
|
15
|
+
if (this.value instanceof BoundReactive) {
|
|
16
|
+
this.observerId = this.value._subscribe(this);
|
|
16
17
|
}
|
|
17
18
|
this.startNode = target.ownerDocument.createTextNode("");
|
|
18
19
|
this.endNode = target.ownerDocument.createTextNode("");
|
|
@@ -21,8 +22,8 @@ export default class CollectionVdom extends Vdom {
|
|
|
21
22
|
this.updateList();
|
|
22
23
|
}
|
|
23
24
|
_unrender() {
|
|
24
|
-
if (this.observerId && this.value instanceof
|
|
25
|
-
this.value.
|
|
25
|
+
if (this.observerId && this.value instanceof BoundReactive) {
|
|
26
|
+
this.value._unsubscribe(this.observerId);
|
|
26
27
|
this.observerId = null;
|
|
27
28
|
}
|
|
28
29
|
for (let i = 0; i < this.mappedItems.length; i++) {
|
|
@@ -45,9 +46,9 @@ export default class CollectionVdom extends Vdom {
|
|
|
45
46
|
let mappedData;
|
|
46
47
|
{
|
|
47
48
|
let unmappedCollection = null;
|
|
48
|
-
if (this.value instanceof
|
|
49
|
-
unmappedCollection = this.value.
|
|
50
|
-
key = this.value.key ?? null;
|
|
49
|
+
if (this.value instanceof BoundReactive) {
|
|
50
|
+
unmappedCollection = this.value._get();
|
|
51
|
+
key = this.value._source.key ?? null;
|
|
51
52
|
}
|
|
52
53
|
else {
|
|
53
54
|
unmappedCollection = this.value;
|
|
@@ -55,12 +56,13 @@ export default class CollectionVdom extends Vdom {
|
|
|
55
56
|
if (unmappedCollection instanceof Array) {
|
|
56
57
|
mappedData = unmappedCollection.map((v, i) => {
|
|
57
58
|
let kv = !!key ? v[key] : null;
|
|
59
|
+
let reactive = new Reactive();
|
|
58
60
|
return {
|
|
59
61
|
vdom: null,
|
|
60
62
|
value: v,
|
|
61
63
|
keyValue: kv,
|
|
62
64
|
afterNode: null,
|
|
63
|
-
observableIndex:
|
|
65
|
+
observableIndex: reactive.bind()
|
|
64
66
|
};
|
|
65
67
|
});
|
|
66
68
|
}
|
|
@@ -69,12 +71,13 @@ export default class CollectionVdom extends Vdom {
|
|
|
69
71
|
for (let k in unmappedCollection) {
|
|
70
72
|
let v = unmappedCollection[k];
|
|
71
73
|
let kv = !!key ? v[key] : k;
|
|
74
|
+
let reactive = new Reactive();
|
|
72
75
|
mappedData.push({
|
|
73
76
|
vdom: null,
|
|
74
77
|
value: v,
|
|
75
78
|
keyValue: kv,
|
|
76
79
|
afterNode: null,
|
|
77
|
-
observableIndex:
|
|
80
|
+
observableIndex: reactive.bind()
|
|
78
81
|
});
|
|
79
82
|
}
|
|
80
83
|
}
|
|
@@ -113,12 +116,12 @@ export default class CollectionVdom extends Vdom {
|
|
|
113
116
|
if (existing && ((candidate == existing) || (key && candidate.keyValue == existing.keyValue))) {
|
|
114
117
|
if (!deepEqual(existing.value, candidate.value)) {
|
|
115
118
|
existing.vdom._unrender();
|
|
116
|
-
existing.vdom = this.renderCallback(candidate.value, this.value instanceof
|
|
119
|
+
existing.vdom = this.renderCallback(candidate.value, this.value instanceof BoundReactive ? existing.observableIndex : ni, candidate.keyValue);
|
|
117
120
|
existing.value = candidate.value;
|
|
118
121
|
existing.vdom._renderBefore(existing.afterNode);
|
|
119
122
|
}
|
|
120
123
|
else {
|
|
121
|
-
existing.observableIndex.
|
|
124
|
+
existing.observableIndex._set(ni);
|
|
122
125
|
}
|
|
123
126
|
afterTarget = existing.afterNode;
|
|
124
127
|
ni++;
|
|
@@ -135,8 +138,8 @@ export default class CollectionVdom extends Vdom {
|
|
|
135
138
|
this.startNode.parentElement.appendChild(beforeTarget);
|
|
136
139
|
}
|
|
137
140
|
candidate.afterNode = beforeTarget;
|
|
138
|
-
candidate.observableIndex.
|
|
139
|
-
let content = this.renderCallback(candidate.value, this.value instanceof
|
|
141
|
+
candidate.observableIndex._set(ni);
|
|
142
|
+
let content = this.renderCallback(candidate.value, this.value instanceof BoundReactive ? candidate.observableIndex : ni, candidate.keyValue);
|
|
140
143
|
if (content instanceof Vdom) {
|
|
141
144
|
candidate.vdom = content;
|
|
142
145
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/collection-vdom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,MAAM,kBAAkB,CAAC;AACjE,OAAO,QAAQ,MAAM,
|
|
1
|
+
{"version":3,"file":"collection-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/collection-vdom.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BoundReactive from "../reactivity/bound-reactive";
|
|
2
2
|
import { ContainerVdom } from "./container-vdom";
|
|
3
3
|
import { Vdom } from "./vdom";
|
|
4
4
|
import { ConditionalNodeItem } from "./vdom-types";
|
|
@@ -6,7 +6,7 @@ export declare class ConditionalVdom extends Vdom {
|
|
|
6
6
|
private conditions;
|
|
7
7
|
private sealed;
|
|
8
8
|
private renderedIndex;
|
|
9
|
-
addCondition(condition:
|
|
9
|
+
addCondition(condition: BoundReactive | boolean, vNode: ContainerVdom, seal?: boolean): void;
|
|
10
10
|
addAnchor(C: ConditionalNodeItem, node: HTMLElement): void;
|
|
11
11
|
_render(node: HTMLElement): void;
|
|
12
12
|
_unrender(): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BoundReactive from "../reactivity/bound-reactive";
|
|
2
2
|
import { Vdom } from "./vdom";
|
|
3
3
|
export class ConditionalVdom extends Vdom {
|
|
4
4
|
constructor() {
|
|
@@ -22,8 +22,8 @@ export class ConditionalVdom extends Vdom {
|
|
|
22
22
|
this.conditions.push(C);
|
|
23
23
|
if (this.conditions[0].startAnchor) {
|
|
24
24
|
this.addAnchor(C, this.conditions[0].startAnchor.parentElement);
|
|
25
|
-
if (condition instanceof
|
|
26
|
-
C.observerId = condition.
|
|
25
|
+
if (condition instanceof BoundReactive) {
|
|
26
|
+
C.observerId = condition._subscribe(this);
|
|
27
27
|
}
|
|
28
28
|
this.updateConditions();
|
|
29
29
|
}
|
|
@@ -41,8 +41,8 @@ export class ConditionalVdom extends Vdom {
|
|
|
41
41
|
throw new Error("Item is already rendered.");
|
|
42
42
|
}
|
|
43
43
|
this.addAnchor(C, node);
|
|
44
|
-
if (C.condition instanceof
|
|
45
|
-
C.observerId = C.condition.
|
|
44
|
+
if (C.condition instanceof BoundReactive) {
|
|
45
|
+
C.observerId = C.condition._subscribe(this);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
if (this.conditions.length)
|
|
@@ -59,8 +59,8 @@ export class ConditionalVdom extends Vdom {
|
|
|
59
59
|
end.parentElement.removeChild(end);
|
|
60
60
|
C.startAnchor = null;
|
|
61
61
|
C.endAnchor = null;
|
|
62
|
-
if (C.condition instanceof
|
|
63
|
-
C.condition.
|
|
62
|
+
if (C.condition instanceof BoundReactive) {
|
|
63
|
+
C.condition._unsubscribe(C.observerId);
|
|
64
64
|
C.observerId = 0;
|
|
65
65
|
}
|
|
66
66
|
}
|
|
@@ -72,7 +72,7 @@ export class ConditionalVdom extends Vdom {
|
|
|
72
72
|
let newIndex = -1;
|
|
73
73
|
for (let c = 0; c < this.conditions.length; c++) {
|
|
74
74
|
let C = this.conditions[c];
|
|
75
|
-
if (C.condition instanceof
|
|
75
|
+
if (C.condition instanceof BoundReactive ? C.condition._get() : C.condition) {
|
|
76
76
|
newIndex = c;
|
|
77
77
|
break;
|
|
78
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/conditional-vdom.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"conditional-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/conditional-vdom.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,MAAM,OAAO,eAAgB,SAAQ,IAAI;IAAzC;;QAES,eAAU,GAA+B,EAAE,CAAA;QAC3C,WAAM,GAAG,KAAK,CAAC;QACf,kBAAa,GAAG,CAAC,CAAC,CAAC;IAmH5B,CAAC;IAjHA,YAAY,CAAC,SAA+B,EAAE,KAAoB,EAAE,IAAI,GAAG,KAAK;QAE/E,IAAG,IAAI,CAAC,MAAM,EAAC;YACd,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACvE;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,IAAI,CAAC,GAAG;YACP,SAAS;YACT,KAAK;YACL,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,CAAC;SACb,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAExB,IAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAC;YAGjC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAEhE,IAAG,SAAS,YAAY,aAAa,EAAC;gBACrC,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAC1C;YAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACxB;IACF,CAAC;IAED,SAAS,CAAC,CAAsB,EAAE,IAAiB;QAClD,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,IAAiB;QAMxB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YAC9C,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAG,CAAC,CAAC,WAAW,EAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;aAC7C;YAGD,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAExB,IAAG,CAAC,CAAC,SAAS,YAAY,aAAa,EAAC;gBACvC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAC5C;SACD;QAGD,IAAG,IAAI,CAAC,UAAU,CAAC,MAAM;YACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,CAAC;IAED,SAAS;QACR,IAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAC;YACjC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gBAC9C,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;gBAC1B,IAAI,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC;gBAC1B,IAAI,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC;gBAEtB,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACvC,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACnC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;gBAEnB,IAAG,CAAC,CAAC,SAAS,YAAY,aAAa,EAAC;oBACvC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBACvC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;iBACjB;aACD;YACD,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;SACxB;IACF,CAAC;IAED,gBAAgB;QACf,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,aAA4B,CAAC;QACvE,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;QAClB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YAC9C,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAE3B,IAAG,CAAC,CAAC,SAAS,YAAY,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAC;gBAC1E,QAAQ,GAAG,CAAC,CAAC;gBACb,MAAM;aACN;SACD;QAED,IAAG,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAC;YACjC;gBACC,IAAG,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,EAAC;oBAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC5C,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;iBACpB;aACD;YAED;gBACC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;gBAC9B,IAAG,QAAQ,IAAI,CAAC,CAAC,EAAC;oBACjB,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAClC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;iBACnC;aACD;SACD;IACF,CAAC;CACD"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { IDotComponent, IDotCore } from "dothtml-interfaces";
|
|
2
|
-
import Reactive from "../reactive";
|
|
2
|
+
import Reactive from "../reactivity/reactive";
|
|
3
3
|
import { ConditionalVdom } from "./conditional-vdom";
|
|
4
4
|
import ElementVdom from "./element-vdom";
|
|
5
5
|
import { Vdom } from "./vdom";
|
|
6
6
|
import { ObservableCollection } from "./vdom-types";
|
|
7
|
+
import BoundReactive from "../reactivity/bound-reactive";
|
|
7
8
|
type ParentVdom = ContainerVdom | ConditionalVdom | ElementVdom;
|
|
8
9
|
export declare class ContainerVdom extends Vdom {
|
|
9
10
|
_children: Array<Vdom>;
|
|
@@ -14,12 +15,12 @@ export declare class ContainerVdom extends Vdom {
|
|
|
14
15
|
_render(node: HTMLElement): void;
|
|
15
16
|
_unrender(): void;
|
|
16
17
|
attr(A: string, c: any): void;
|
|
17
|
-
html(c: string | Reactive): this;
|
|
18
|
-
text(c: string | Reactive): this;
|
|
18
|
+
html(c: string | Reactive | BoundReactive): this;
|
|
19
|
+
text(c: string | Reactive | BoundReactive): this;
|
|
19
20
|
md(c: string | Reactive): this;
|
|
20
21
|
mount(c: IDotComponent): this;
|
|
21
|
-
when(condition: Reactive | boolean, then: ContainerVdom | string | boolean | number): this;
|
|
22
|
-
otherwiseWhen(condition: Reactive | boolean, then: ContainerVdom | string | boolean | number, seal?: boolean): this;
|
|
22
|
+
when(condition: Reactive | BoundReactive | boolean, then: ContainerVdom | string | boolean | number): this;
|
|
23
|
+
otherwiseWhen(condition: Reactive | BoundReactive | boolean, then: ContainerVdom | string | boolean | number, seal?: boolean): this;
|
|
23
24
|
otherwise(then: ContainerVdom | string | boolean | number): this;
|
|
24
25
|
each(collection: ObservableCollection, callback: () => Vdom): this;
|
|
25
26
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import Reactive from "../reactivity/reactive";
|
|
1
2
|
import CollectionVdom from "./collection-vdom";
|
|
2
3
|
import { ConditionalVdom } from "./conditional-vdom";
|
|
3
4
|
import ElementVdom from "./element-vdom";
|
|
@@ -5,6 +6,12 @@ import { HtmlVdom } from "./html-vdom";
|
|
|
5
6
|
import { TextVdom } from "./text-vdom";
|
|
6
7
|
import { Vdom } from "./vdom";
|
|
7
8
|
import { ComponentVdom } from "./component-vdom";
|
|
9
|
+
function reduceReactive(value) {
|
|
10
|
+
if (value instanceof Reactive)
|
|
11
|
+
return value.bind();
|
|
12
|
+
else
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
8
15
|
export class ContainerVdom extends Vdom {
|
|
9
16
|
constructor(dot) {
|
|
10
17
|
super();
|
|
@@ -38,15 +45,15 @@ export class ContainerVdom extends Vdom {
|
|
|
38
45
|
}
|
|
39
46
|
}
|
|
40
47
|
html(c) {
|
|
41
|
-
let hn = new HtmlVdom(c);
|
|
48
|
+
let hn = new HtmlVdom(reduceReactive(c));
|
|
42
49
|
return this._addChild(hn);
|
|
43
50
|
}
|
|
44
51
|
text(c) {
|
|
45
|
-
let tn = new TextVdom(c);
|
|
52
|
+
let tn = new TextVdom(reduceReactive(c));
|
|
46
53
|
return this._addChild(tn);
|
|
47
54
|
}
|
|
48
55
|
md(c) {
|
|
49
|
-
return this.text(c);
|
|
56
|
+
return this.text(reduceReactive(c));
|
|
50
57
|
}
|
|
51
58
|
mount(c) {
|
|
52
59
|
let cn = new ComponentVdom(this._dot, c);
|
|
@@ -60,11 +67,11 @@ export class ContainerVdom extends Vdom {
|
|
|
60
67
|
}
|
|
61
68
|
else {
|
|
62
69
|
thenContainer = new ContainerVdom(this._dot);
|
|
63
|
-
let textVdom = new TextVdom(then);
|
|
70
|
+
let textVdom = new TextVdom(reduceReactive(then));
|
|
64
71
|
thenContainer._addChild(textVdom);
|
|
65
72
|
then = thenContainer;
|
|
66
73
|
}
|
|
67
|
-
condNode.addCondition(condition, then);
|
|
74
|
+
condNode.addCondition(reduceReactive(condition), reduceReactive(then));
|
|
68
75
|
this._addChild(condNode);
|
|
69
76
|
return this;
|
|
70
77
|
}
|
|
@@ -77,11 +84,11 @@ export class ContainerVdom extends Vdom {
|
|
|
77
84
|
}
|
|
78
85
|
else {
|
|
79
86
|
thenContainer = new ContainerVdom(this._dot);
|
|
80
|
-
let textVdom = new TextVdom(then);
|
|
87
|
+
let textVdom = new TextVdom(reduceReactive(then));
|
|
81
88
|
thenContainer._addChild(textVdom);
|
|
82
89
|
then = thenContainer;
|
|
83
90
|
}
|
|
84
|
-
condNode.addCondition(condition, then, seal);
|
|
91
|
+
condNode.addCondition(reduceReactive(condition), reduceReactive(then), seal);
|
|
85
92
|
}
|
|
86
93
|
else {
|
|
87
94
|
throw new Error("Can't branch off of a non-conditional node.");
|
|
@@ -90,7 +97,7 @@ export class ContainerVdom extends Vdom {
|
|
|
90
97
|
}
|
|
91
98
|
otherwise(then) { return this.otherwiseWhen(true, then, true); }
|
|
92
99
|
each(collection, callback) {
|
|
93
|
-
let collectionVdom = new CollectionVdom(collection, callback);
|
|
100
|
+
let collectionVdom = new CollectionVdom(reduceReactive(collection), callback);
|
|
94
101
|
this._addChild(collectionVdom);
|
|
95
102
|
return this;
|
|
96
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/container-vdom.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"container-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/container-vdom.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKjD,SAAS,cAAc,CAAC,KAAU;IACjC,IAAG,KAAK,YAAY,QAAQ;QAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;;QAC7C,OAAO,KAAK,CAAC;AACnB,CAAC;AAKD,MAAM,OAAO,aAAc,SAAQ,IAAI;IAKtC,YAAY,GAAa;QACxB,KAAK,EAAE,CAAC;QALT,cAAS,GAAgB,EAAE,CAAC;QAC5B,YAAO,GAAe,IAAI,CAAC;QAK1B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,SAAS,CAAC,OAAa;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,YAAY,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtH,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,CAAC,IAAiB;QACxB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAChC;IACF,CAAC;IAED,SAAS;QACR,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;SAC9B;IACF,CAAC;IAGD,IAAI,CAAC,CAAS,EAAE,CAAM;QACrB,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClD,IAAG,CAAC,IAAI,CAAC,YAAY,WAAW,EAAC;YAChC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAChB;aACG;YACH,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;SACvD;IACF,CAAC;IAED,IAAI,CAAC,CAAgC;QACpC,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,CAAgC;QACpC,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,EAAE,CAAC,CAAkB;QAGpB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAYD,KAAK,CAAC,CAAgB;QACrB,IAAI,EAAE,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAGD,IAAI,CAAC,SAAwC,EAAE,IAAyC;QACvF,IAAI,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,aAA4B,CAAC;QACjC,IAAG,IAAI,YAAY,aAAa,EAAC;YAChC,aAAa,GAAG,IAAI,CAAC;SACrB;aACG;YACH,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,QAAQ,GAAG,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YAClD,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,GAAG,aAAa,CAAC;SACrB;QACD,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAEzB,OAAO,IAAI,CAAC;IACb,CAAC;IACD,aAAa,CAAC,SAAwC,EAAE,IAAyC,EAAE,IAAI,GAAG,KAAK;QAC9G,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzD,IAAG,QAAQ,YAAY,eAAe,EAAC;YACtC,IAAI,aAA4B,CAAC;YACjC,IAAG,IAAI,YAAY,aAAa,EAAC;gBAChC,aAAa,GAAG,IAAI,CAAC;aACrB;iBACG;gBACH,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7C,IAAI,QAAQ,GAAG,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAClC,IAAI,GAAG,aAAa,CAAC;aACrB;YACD,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;SAI7E;aACG;YACH,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAC/D;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IACD,SAAS,CAAC,IAAyC,IAAG,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,CAAC;IAEnG,IAAI,CAAC,UAAgC,EAAE,QAAkB;QACxD,IAAI,cAAc,GAAG,IAAI,cAAc,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { IDotCore } from "dothtml-interfaces";
|
|
2
2
|
import { ContainerVdom } from "./container-vdom";
|
|
3
3
|
import { Vdom } from "./vdom";
|
|
4
|
+
export declare class AttributeItem {
|
|
5
|
+
elementVDom: ElementVdom;
|
|
6
|
+
attribute: string;
|
|
7
|
+
}
|
|
4
8
|
export default class ElementVdom extends Vdom {
|
|
5
9
|
children: ContainerVdom;
|
|
6
10
|
element: HTMLElement;
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { DOT_VDOM_PROP_NAME } from "../constants";
|
|
2
|
-
import Reactive from "../reactive";
|
|
2
|
+
import Reactive from "../reactivity/reactive";
|
|
3
3
|
import AttributeVNode from "../v-meta-nodes/attribute-v-node";
|
|
4
4
|
import StyleVNode from "../v-meta-nodes/style-v-node";
|
|
5
5
|
import { ContainerVdom } from "./container-vdom";
|
|
6
6
|
import { Vdom } from "./vdom";
|
|
7
|
+
import BoundReactive from "../reactivity/bound-reactive";
|
|
8
|
+
import ReactiveAttr from "../reactivity/reactive-attr";
|
|
9
|
+
export class AttributeItem {
|
|
10
|
+
}
|
|
7
11
|
export default class ElementVdom extends Vdom {
|
|
8
12
|
constructor(dot, tag) {
|
|
9
13
|
super();
|
|
@@ -52,7 +56,7 @@ export default class ElementVdom extends Vdom {
|
|
|
52
56
|
this.styleVNodes.length = 0;
|
|
53
57
|
for (let i = 0; i < this.attributeObserverIds.length; i++) {
|
|
54
58
|
let item = this.attributeObserverIds[i];
|
|
55
|
-
item.observable.
|
|
59
|
+
item.observable._unsubscribe(item.id);
|
|
56
60
|
}
|
|
57
61
|
this.attributeObserverIds.length = 0;
|
|
58
62
|
}
|
|
@@ -66,7 +70,7 @@ export default class ElementVdom extends Vdom {
|
|
|
66
70
|
}
|
|
67
71
|
setAttr(attr, value) {
|
|
68
72
|
attr = (attr ?? "").toLowerCase();
|
|
69
|
-
if (value && typeof value === "object" && !(value instanceof Array || value instanceof Reactive)) {
|
|
73
|
+
if (value && typeof value === "object" && !(value instanceof Array || value instanceof BoundReactive || value instanceof Reactive)) {
|
|
70
74
|
switch (attr) {
|
|
71
75
|
case "style": {
|
|
72
76
|
value = new StyleVNode(value);
|
|
@@ -96,13 +100,13 @@ export default class ElementVdom extends Vdom {
|
|
|
96
100
|
else if (value instanceof Array) {
|
|
97
101
|
node.setAttribute(attr, value.join(" "));
|
|
98
102
|
}
|
|
99
|
-
else if (value instanceof
|
|
100
|
-
this.renderAttr(attr, value.
|
|
101
|
-
let id = value.
|
|
103
|
+
else if (value instanceof BoundReactive) {
|
|
104
|
+
this.renderAttr(attr, value._get(), node);
|
|
105
|
+
let id = value._subscribe(new ReactiveAttr(this, attr));
|
|
102
106
|
this.attributeObserverIds.push({ id: id, observable: value });
|
|
103
107
|
if (attr == "value" || attr == "checked") {
|
|
104
108
|
this.element.addEventListener("input", (e) => {
|
|
105
|
-
value.
|
|
109
|
+
value._set(this.element[attr]);
|
|
106
110
|
});
|
|
107
111
|
}
|
|
108
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/element-vdom.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,QAAQ,MAAM,
|
|
1
|
+
{"version":3,"file":"element-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/element-vdom.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAC9D,OAAO,UAAU,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,aAAa,MAAM,8BAA8B,CAAC;AACzD,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAEvD,MAAM,OAAO,aAAa;CAGzB;AAED,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,IAAI;IAY5C,YAAY,GAAa,EAAE,GAAW;QACrC,KAAK,EAAE,CAAC;QAXT,aAAQ,GAAkB,IAAI,CAAC;QAE/B,QAAG,GAAW,IAAI,CAAC;QACX,eAAU,GAAuC,EAAE,CAAC;QACpD,WAAM,GAAsD,EAAE,CAAC;QAC/D,yBAAoB,GAAmD,EAAE,CAAC;QAC1E,kBAAa,GAAmE,EAAE,CAAC;QACnF,eAAU,GAA0B,EAAE,CAAC;QACvC,gBAAW,GAAsB,EAAE,CAAC;QAI3C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,IAAiB;QAExB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;QAExC,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SACrD;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE/B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YAC1C,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;SACrC;QAED,IAAG,IAAI,CAAC,QAAQ,EAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACpC;IACF,CAAC;IAED,SAAS;QACR,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACjD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;SAClC;QACD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAE9B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YAC9C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAE3B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YAC/C,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SAC/B;QACD,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QAE5B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACxD,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACtC;QACD,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,QAAQ;QACP,IAAG,IAAI,CAAC,OAAO,EAAC;YACf,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;SAC9B;aACG;YACH,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;SACxB;IACF,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,KAAK;QAElB,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAElC,IAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,YAAY,aAAa,IAAI,KAAK,YAAY,QAAQ,CAAC,EAAC;YAGjI,QAAO,IAAI,EAAC;gBACX,KAAK,OAAO,CAAC,CAAC;oBACb,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;oBAC9B,MAAM;iBACN;gBACD,OAAO,CAAC,CAAC;oBACR,KAAK,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBACxC,MAAM;iBACN;aACD;SACD;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC9B,IAAG,IAAI,CAAC,OAAO,EAAC;YACf,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3C;IACF,CAAC;IAEO,UAAU,CAAC,IAAY,EAAE,KAAyB,EAAE,IAAiB;QAE5E,IAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAC;YACzD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;SACpC;aACI,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,SAAS,EAAC;YAC1E,IAAG,KAAK;gBAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;;gBACzC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SAChC;aACI,IAAG,KAAK,YAAY,KAAK,EAAC;YAE9B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SACzC;aACI,IAAI,KAAK,YAAY,aAAa,EAAC;YACvC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;YAC1C,IAAI,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAC,CAAC,CAAC;YAG5D,IAAG,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,SAAS,EAAC;gBACvC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAC,EAAE;oBAC3C,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,OAA4B,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,CAAC,CAAC,CAAC;aACH;SAGD;aAMI,IAAG,KAAK,YAAY,cAAc,EAAC;YACvC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAEnB;aACI,IAAG,KAAK,YAAY,UAAU,EAAC;YACnC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAEnB;aACG;SAGH;IACF,CAAC;IAED,gBAAgB,CAAC,KAAa,EAAE,QAA0B;QACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAAC,CAAC;QACpD,IAAG,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAEO,WAAW,CAAC,CAAS,EAAE,QAA0B;QACxD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;CACD"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BoundReactive from "../reactivity/bound-reactive";
|
|
2
2
|
import { Vdom } from "./vdom";
|
|
3
3
|
export declare class HtmlVdom extends Vdom {
|
|
4
4
|
beforeNode: Node;
|
|
5
5
|
afterNode: Node;
|
|
6
|
-
html: string |
|
|
6
|
+
html: string | BoundReactive;
|
|
7
7
|
observerId: number;
|
|
8
|
-
constructor(html: string |
|
|
8
|
+
constructor(html: string | BoundReactive);
|
|
9
9
|
updateHtml(html: any): void;
|
|
10
10
|
_render(target: HTMLElement): void;
|
|
11
11
|
_unrender(): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { removeNodesBetween } from "../helpers/tools";
|
|
2
|
-
import
|
|
2
|
+
import BoundReactive from "../reactivity/bound-reactive";
|
|
3
3
|
import { Vdom } from "./vdom";
|
|
4
4
|
export class HtmlVdom extends Vdom {
|
|
5
5
|
constructor(html) {
|
|
@@ -19,9 +19,9 @@ export class HtmlVdom extends Vdom {
|
|
|
19
19
|
}
|
|
20
20
|
_render(target) {
|
|
21
21
|
let html = "";
|
|
22
|
-
if (this.html instanceof
|
|
23
|
-
html = this.html.
|
|
24
|
-
this.observerId = this.html.
|
|
22
|
+
if (this.html instanceof BoundReactive) {
|
|
23
|
+
html = this.html._get() ?? "";
|
|
24
|
+
this.observerId = this.html._subscribe(this);
|
|
25
25
|
}
|
|
26
26
|
else {
|
|
27
27
|
html = this.html;
|
|
@@ -41,13 +41,13 @@ export class HtmlVdom extends Vdom {
|
|
|
41
41
|
this.beforeNode = null;
|
|
42
42
|
this.afterNode = null;
|
|
43
43
|
}
|
|
44
|
-
if (this.observerId && this.html instanceof
|
|
45
|
-
this.html.
|
|
44
|
+
if (this.observerId && this.html instanceof BoundReactive) {
|
|
45
|
+
this.html._unsubscribe(this.observerId);
|
|
46
46
|
this.observerId = 0;
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
toString() {
|
|
50
|
-
return this.html instanceof
|
|
50
|
+
return this.html instanceof BoundReactive ? this.html._get() : this.html;
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
//# sourceMappingURL=html-vdom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/html-vdom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"html-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/html-vdom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,OAAO,QAAS,SAAQ,IAAI;IAQjC,YAAY,IAA0B;QACrC,KAAK,EAAE,CAAC;QAHT,eAAU,GAAW,CAAC,CAAC;QAItB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,UAAU,CAAC,IAAI;QACd,IAAG,IAAI,CAAC,UAAU,EAAC;YAClB,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAGpD,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC9D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,OAAO,IAAI,CAAC,UAAU,EAAE;gBACvB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;aAC3E;SACD;IACF,CAAC;IAED,OAAO,CAAC,MAAmB;QAC1B,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAG,IAAI,CAAC,IAAI,YAAY,aAAa,EAAC;YACrC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC7C;aACG;YACH,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACjB;QAED,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS;QACR,IAAG,IAAI,CAAC,UAAU,EAAC;YAClB,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YAG3C,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAEpD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACtB;QAED,IAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,YAAY,aAAa,EAAC;YACxD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACpB;IACF,CAAC;IAED,QAAQ;QACP,OAAO,IAAI,CAAC,IAAI,YAAY,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1E,CAAC;CACD"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BoundReactive from "../reactivity/bound-reactive";
|
|
2
2
|
import { Vdom } from "./vdom";
|
|
3
3
|
export declare class TextVdom extends Vdom {
|
|
4
|
-
text: string | boolean | number |
|
|
4
|
+
text: string | boolean | number | BoundReactive;
|
|
5
5
|
textNode: Node;
|
|
6
6
|
observerId: number;
|
|
7
|
-
constructor(text: string | boolean | number |
|
|
7
|
+
constructor(text: string | boolean | number | BoundReactive);
|
|
8
8
|
_render(node: HTMLElement): void;
|
|
9
9
|
_unrender(): void;
|
|
10
10
|
toString(): string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BoundReactive from "../reactivity/bound-reactive";
|
|
2
2
|
import { Vdom } from "./vdom";
|
|
3
3
|
export class TextVdom extends Vdom {
|
|
4
4
|
constructor(text) {
|
|
@@ -8,9 +8,9 @@ export class TextVdom extends Vdom {
|
|
|
8
8
|
this.text = text;
|
|
9
9
|
}
|
|
10
10
|
_render(node) {
|
|
11
|
-
if (this.text instanceof
|
|
12
|
-
this.textNode = node.ownerDocument.createTextNode(this.text.
|
|
13
|
-
this.observerId = this.text.
|
|
11
|
+
if (this.text instanceof BoundReactive) {
|
|
12
|
+
this.textNode = node.ownerDocument.createTextNode(this.text._get() ?? "");
|
|
13
|
+
this.observerId = this.text._subscribe(this);
|
|
14
14
|
}
|
|
15
15
|
else {
|
|
16
16
|
this.textNode = node.ownerDocument.createTextNode(`${this.text ?? ""}`);
|
|
@@ -22,13 +22,13 @@ export class TextVdom extends Vdom {
|
|
|
22
22
|
this.textNode.parentElement.removeChild(this.textNode);
|
|
23
23
|
this.textNode = null;
|
|
24
24
|
}
|
|
25
|
-
if (this.observerId && this.text instanceof
|
|
26
|
-
this.text.
|
|
25
|
+
if (this.observerId && this.text instanceof BoundReactive) {
|
|
26
|
+
this.text._unsubscribe(this.observerId);
|
|
27
27
|
this.observerId = 0;
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
toString() {
|
|
31
|
-
let temp = document.createTextNode((this.text instanceof
|
|
31
|
+
let temp = document.createTextNode((this.text instanceof BoundReactive ? this.text._get() : this.text) ?? "");
|
|
32
32
|
let div = document.createElement("div");
|
|
33
33
|
div.appendChild(temp);
|
|
34
34
|
return div.innerHTML;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/text-vdom.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"text-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/text-vdom.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAI9B,MAAM,OAAO,QAAS,SAAQ,IAAI;IAMjC,YAAY,IAAyC;QACpD,KAAK,EAAE,CAAC;QAJT,aAAQ,GAAS,IAAI,CAAC;QACtB,eAAU,GAAG,CAAC,CAAC;QAId,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,IAAiB;QACxB,IAAG,IAAI,CAAC,IAAI,YAAY,aAAa,EAAC;YACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC7C;aACG;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;SACxE;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,SAAS;QACR,IAAG,IAAI,CAAC,QAAQ,EAAC;YAEhB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACrB;QAED,IAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,YAAY,aAAa,EAAC;YACxD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACpB;IACF,CAAC;IAED,QAAQ;QACP,IAAI,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,YAAY,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9G,IAAI,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACxC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,GAAG,CAAC,SAAS,CAAC;IACtB,CAAC;CACD"}
|