dothtml 6.0.0-beta.33 → 6.0.0-beta.35
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 +41 -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 +16 -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":"AAAA,OAAO,EAAE,SAAS,EAAsB,MAAM,kBAAkB,CAAC;AACjE,OAAO,aAAa,MAAM,8BAA8B,CAAC;AACzD,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAc9B,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,IAAI;IAU/C,YAAY,KAA2B,EAAE,cAA2D;QACnG,KAAK,EAAE,CAAC;QALT,eAAU,GAAG,CAAC,CAAC;QAEf,gBAAW,GAAoB,EAAE,CAAC;QAIjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACtC,CAAC;IAED,OAAO,CAAC,MAAmB;QAE1B,IAAG,IAAI,CAAC,KAAK,YAAY,aAAa,EAAC;YACtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC9C;QAED,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAED,SAAS;QACR,IAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,YAAY,aAAa,EAAC;YACzD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACvB;QAED,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YAC/C,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SACnD;QACD,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QAE5B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAKO,UAAU,CAAC,IAAc;QAChC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,UAAU;QACT,IAAI,GAAG,GAAW,IAAI,CAAC;QACvB,IAAI,UAA2B,CAAC;QAEhC;YAEC,IAAI,kBAAkB,GAAG,IAA6C,CAAC;YACvE,IAAG,IAAI,CAAC,KAAK,YAAY,aAAa,EAAC;gBACtC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAS,CAAC;gBAC9C,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC;aACrC;iBACG;gBACH,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC;aAChC;YAED,IAAG,kBAAkB,YAAY,KAAK,EAAC;gBACtC,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBAC5C,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC/B,IAAI,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC9B,OAAO;wBACN,IAAI,EAAE,IAAI;wBACV,KAAK,EAAE,CAAC;wBACR,QAAQ,EAAE,EAAE;wBACZ,SAAS,EAAE,IAAI;wBACf,eAAe,EAAE,QAAQ,CAAC,IAAI,EAAE;qBACpB,CAAC;gBACf,CAAC,CAAC,CAAC;aACH;iBACI;gBACJ,UAAU,GAAG,EAAE,CAAC;gBAChB,KAAI,IAAI,CAAC,IAAI,kBAAkB,EAAC;oBAC/B,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;oBAC9B,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5B,IAAI,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC9B,UAAU,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,IAAI;wBACV,KAAK,EAAE,CAAC;wBACR,QAAQ,EAAE,EAAE;wBACZ,SAAS,EAAE,IAAI;wBACf,eAAe,EAAE,QAAQ,CAAC,IAAI,EAAE;qBACpB,CAAC,CAAC;iBACf;aACD;SACD;QAED;YACC,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,OAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAC;gBAClC,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACpC,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC/B,IAAG,CAAC,SAAS,EAAC;oBACb,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAC1B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;oBAC/B,EAAE,GAAG,EAAE,CAAC;oBACR,SAAS;iBACT;qBACI,IAAG,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAC;oBACnF,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,CAAC;oBACL,EAAE,GAAG,EAAE,CAAC;oBACR,SAAS;iBACT;qBACG;oBACH,EAAE,EAAE,CAAC;iBACL;aACD;SACD;QAED;YACC,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,OAAM,EAAE,GAAG,UAAU,CAAC,MAAM,EAAC;gBAC5B,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACpC,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;gBAE/B,IAAG,QAAQ,IAAI,CAAC,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAC;oBAI5F,IAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAC;wBAC9C,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;wBAC1B,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,YAAY,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;wBAC9I,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAA;wBAChC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;qBAChD;yBACG;wBAEH,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBAClC;oBAED,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC;oBACjC,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,CAAC;oBAGL,SAAS;iBACT;qBACG;oBACH,IAAI,YAAY,GAAG,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;oBAChE,IAAI,EAAE,GAAG,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC;oBAC/C,IAAG,EAAE,EAAC;wBACL,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;qBAC5D;yBACG;wBACH,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;qBACvD;oBACD,SAAS,CAAC,SAAS,GAAG,YAAY,CAAC;oBAEnC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnC,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,YAAY,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAE7I,IAAG,OAAO,YAAY,IAAI,EAAC;wBAC1B,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC;qBACzB;yBACG;wBACH,SAAS,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;qBACvC;oBACD,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBAElD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC1C,EAAE,EAAE,CAAC;iBACL;aACD;SACD;IACF,CAAC;CACD"}
|
|
@@ -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":"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"}
|
|
@@ -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":"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"}
|
|
@@ -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,14 @@
|
|
|
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
|
+
}
|
|
11
|
+
let manualInputAllowed = true;
|
|
7
12
|
export default class ElementVdom extends Vdom {
|
|
8
13
|
constructor(dot, tag) {
|
|
9
14
|
super();
|
|
@@ -52,7 +57,7 @@ export default class ElementVdom extends Vdom {
|
|
|
52
57
|
this.styleVNodes.length = 0;
|
|
53
58
|
for (let i = 0; i < this.attributeObserverIds.length; i++) {
|
|
54
59
|
let item = this.attributeObserverIds[i];
|
|
55
|
-
item.observable.
|
|
60
|
+
item.observable._unsubscribe(item.id);
|
|
56
61
|
}
|
|
57
62
|
this.attributeObserverIds.length = 0;
|
|
58
63
|
}
|
|
@@ -66,7 +71,7 @@ export default class ElementVdom extends Vdom {
|
|
|
66
71
|
}
|
|
67
72
|
setAttr(attr, value) {
|
|
68
73
|
attr = (attr ?? "").toLowerCase();
|
|
69
|
-
if (value && typeof value === "object" && !(value instanceof Array || value instanceof Reactive)) {
|
|
74
|
+
if (value && typeof value === "object" && !(value instanceof Array || value instanceof BoundReactive || value instanceof Reactive)) {
|
|
70
75
|
switch (attr) {
|
|
71
76
|
case "style": {
|
|
72
77
|
value = new StyleVNode(value);
|
|
@@ -96,13 +101,17 @@ export default class ElementVdom extends Vdom {
|
|
|
96
101
|
else if (value instanceof Array) {
|
|
97
102
|
node.setAttribute(attr, value.join(" "));
|
|
98
103
|
}
|
|
99
|
-
else if (value instanceof
|
|
100
|
-
this.renderAttr(attr, value.
|
|
101
|
-
let id = value.
|
|
104
|
+
else if (value instanceof BoundReactive) {
|
|
105
|
+
this.renderAttr(attr, value._get(), node);
|
|
106
|
+
let id = value._subscribe(new ReactiveAttr(this, attr));
|
|
102
107
|
this.attributeObserverIds.push({ id: id, observable: value });
|
|
103
108
|
if (attr == "value" || attr == "checked") {
|
|
104
109
|
this.element.addEventListener("input", (e) => {
|
|
105
|
-
|
|
110
|
+
if (manualInputAllowed) {
|
|
111
|
+
manualInputAllowed = false;
|
|
112
|
+
value._set(this.element[attr]);
|
|
113
|
+
manualInputAllowed = true;
|
|
114
|
+
}
|
|
106
115
|
});
|
|
107
116
|
}
|
|
108
117
|
}
|
|
@@ -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":"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"}
|
|
@@ -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;
|