dothtml 6.0.0-beta.4 → 6.0.0-beta.41
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/css-props.d.ts +8 -0
- package/build_module/css/css-props.js +40 -0
- package/build_module/css/css-props.js.map +1 -0
- package/build_module/css/css.js +1 -0
- package/build_module/css/css.js.map +1 -0
- package/build_module/css/format-css-type.d.ts +5 -0
- package/build_module/css/format-css-type.js +73 -0
- package/build_module/css/format-css-type.js.map +1 -0
- package/build_module/decoration/component.d.ts +9 -20
- package/build_module/decoration/component.js +20 -17
- package/build_module/decoration/component.js.map +1 -1
- package/build_module/decoration/use-styles.d.ts +14 -0
- package/build_module/decoration/use-styles.js +19 -0
- package/build_module/decoration/use-styles.js.map +1 -0
- package/build_module/dot.js +174 -350
- package/build_module/dot.js.map +1 -1
- package/build_module/helpers/render-css.d.ts +2 -0
- package/build_module/helpers/render-css.js +20 -0
- package/build_module/helpers/render-css.js.map +1 -0
- package/build_module/helpers/render-stylesheet.d.ts +2 -0
- package/build_module/helpers/render-stylesheet.js +27 -0
- package/build_module/helpers/render-stylesheet.js.map +1 -0
- package/build_module/helpers/tools.d.ts +3 -0
- package/build_module/helpers/tools.js +50 -0
- package/build_module/helpers/tools.js.map +1 -0
- package/build_module/helpers.d.ts +1 -0
- package/build_module/helpers.js +1 -0
- package/build_module/helpers.js.map +1 -1
- package/build_module/index.js +1 -0
- package/build_module/index.js.map +1 -1
- package/build_module/reactive.d.ts +10 -1
- package/build_module/reactive.js +34 -4
- package/build_module/reactive.js.map +1 -1
- package/build_module/reactivity/binding.d.ts +13 -0
- package/build_module/reactivity/binding.js +20 -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/reactivity/subscription.d.ts +7 -0
- package/build_module/reactivity/subscription.js +41 -0
- package/build_module/reactivity/subscription.js.map +1 -0
- package/build_module/reactivity/watcher.d.ts +22 -0
- package/build_module/reactivity/watcher.js +61 -0
- package/build_module/reactivity/watcher.js.map +1 -0
- package/build_module/v-meta-nodes/attribute-v-node.d.ts +12 -0
- package/build_module/v-meta-nodes/attribute-v-node.js +53 -0
- package/build_module/v-meta-nodes/attribute-v-node.js.map +1 -0
- package/build_module/v-meta-nodes/style-v-node.d.ts +16 -0
- package/build_module/v-meta-nodes/style-v-node.js +135 -0
- package/build_module/v-meta-nodes/style-v-node.js.map +1 -0
- package/build_module/v-meta-nodes/v-meta-node.d.ts +5 -0
- package/build_module/v-meta-nodes/v-meta-node.js +3 -0
- package/build_module/v-meta-nodes/v-meta-node.js.map +1 -0
- package/build_module/v-style-nodes/base-v-style.d.ts +14 -0
- package/build_module/v-style-nodes/base-v-style.js +113 -0
- package/build_module/v-style-nodes/base-v-style.js.map +1 -0
- package/build_module/v-style-nodes/css-function-builder-v-style.d.ts +17 -0
- package/build_module/v-style-nodes/css-function-builder-v-style.js +28 -0
- package/build_module/v-style-nodes/css-function-builder-v-style.js.map +1 -0
- package/build_module/v-style-nodes/filter-v-style.d.ts +13 -0
- package/build_module/v-style-nodes/filter-v-style.js +35 -0
- package/build_module/v-style-nodes/filter-v-style.js.map +1 -0
- package/build_module/v-style-nodes/transform-v-style.d.ts +28 -0
- package/build_module/v-style-nodes/transform-v-style.js +76 -0
- package/build_module/v-style-nodes/transform-v-style.js.map +1 -0
- package/build_module/v-style-nodes/v-style.d.ts +6 -0
- package/build_module/v-style-nodes/v-style.js +6 -0
- package/build_module/v-style-nodes/v-style.js.map +1 -0
- package/build_module/vdom-nodes/collection-vdom.d.ts +3 -3
- package/build_module/vdom-nodes/collection-vdom.js +18 -15
- package/build_module/vdom-nodes/collection-vdom.js.map +1 -1
- package/build_module/vdom-nodes/component-vdom.d.ts +3 -4
- package/build_module/vdom-nodes/component-vdom.js +56 -16
- package/build_module/vdom-nodes/component-vdom.js.map +1 -1
- package/build_module/vdom-nodes/conditional-vdom.d.ts +4 -3
- package/build_module/vdom-nodes/conditional-vdom.js +35 -34
- package/build_module/vdom-nodes/conditional-vdom.js.map +1 -1
- package/build_module/vdom-nodes/container-vdom.d.ts +12 -8
- package/build_module/vdom-nodes/container-vdom.js +37 -12
- package/build_module/vdom-nodes/container-vdom.js.map +1 -1
- package/build_module/vdom-nodes/element-vdom.d.ts +10 -1
- package/build_module/vdom-nodes/element-vdom.js +71 -10
- 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 +8 -8
- 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/vdom-nodes/vdom.d.ts +3 -0
- package/build_module/vdom-nodes/vdom.js +13 -0
- package/build_module/vdom-nodes/vdom.js.map +1 -1
- package/build_module/window-wrapper.d.ts +20 -0
- package/build_module/window-wrapper.js +39 -0
- package/build_module/window-wrapper.js.map +1 -0
- package/package.json +4 -3
- package/readme.md +1 -1
- package/build_module/decoration/style.js +0 -1
- package/build_module/decoration/style.js.map +0 -1
- /package/build_module/{decoration/style.d.ts → css/css.d.ts} +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { deepEqual } from "../helpers";
|
|
2
|
-
import
|
|
1
|
+
import { deepEqual } from "../helpers/tools";
|
|
2
|
+
import Binding from "../reactivity/binding";
|
|
3
|
+
import Watcher from "../reactivity/watcher";
|
|
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 Binding) {
|
|
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 Binding) {
|
|
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 Binding) {
|
|
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 Watcher();
|
|
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 Watcher();
|
|
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 Binding ? 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 Binding ? 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,
|
|
1
|
+
{"version":3,"file":"collection-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/collection-vdom.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IDotComponent, IDotCore } from "dothtml-interfaces";
|
|
2
2
|
import { Vdom } from "./vdom";
|
|
3
3
|
import { ContainerVdom } from "./container-vdom";
|
|
4
4
|
export declare class ComponentVdom extends Vdom {
|
|
5
|
-
component:
|
|
5
|
+
component: IDotComponent;
|
|
6
6
|
shadowEl: HTMLElement;
|
|
7
7
|
childShadowVdom: ContainerVdom;
|
|
8
|
-
|
|
9
|
-
constructor(component: IComponent);
|
|
8
|
+
constructor(dot: IDotCore, component: IDotComponent);
|
|
10
9
|
private setupCustomElement;
|
|
11
10
|
_render(node: HTMLElement): void;
|
|
12
11
|
_unrender(): void;
|
|
@@ -1,33 +1,70 @@
|
|
|
1
1
|
import { Vdom } from "./vdom";
|
|
2
|
+
import renderStylesheet from "../helpers/render-stylesheet";
|
|
3
|
+
let tagId = 0x10000;
|
|
2
4
|
export class ComponentVdom extends Vdom {
|
|
3
|
-
constructor(component) {
|
|
5
|
+
constructor(dot, component) {
|
|
4
6
|
super();
|
|
5
7
|
this.component = component;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
if (component._?._meta) {
|
|
9
|
+
throw new Error("Component has already been added to the VDOM.");
|
|
10
|
+
}
|
|
11
|
+
if (!component.constructor["_dotHtmlComponent"]) {
|
|
12
|
+
component.constructor["_dotHtmlComponent"] = {};
|
|
13
|
+
let ts = (Math.floor(performance.now() * 10000000000000)).toString(16);
|
|
14
|
+
let tId = (tagId++).toString(16);
|
|
15
|
+
component.constructor["_dotHtmlComponent"].tagName = `dothtml-${tId}${dot["_addTimestamp"] ? `-${ts}` : ""}`;
|
|
16
|
+
}
|
|
17
|
+
if (!component._) {
|
|
18
|
+
component._ = {};
|
|
19
|
+
}
|
|
20
|
+
component._.refs = {};
|
|
21
|
+
component._._meta = component._._meta || {};
|
|
22
|
+
component._._meta.isRendered = false;
|
|
23
|
+
component._._meta.tagName = component.constructor["_dotHtmlComponent"].tagName;
|
|
24
|
+
this.childShadowVdom = this.component.build(dot);
|
|
8
25
|
this.component.built && this.component.built();
|
|
9
26
|
}
|
|
10
|
-
setupCustomElement(
|
|
11
|
-
let
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
27
|
+
setupCustomElement(document) {
|
|
28
|
+
let CustomElementConstructor = document.defaultView.customElements.get(this.component._._meta.tagName);
|
|
29
|
+
if (CustomElementConstructor == undefined) {
|
|
30
|
+
let styles = this.component.stylize && this.component.stylize() || [];
|
|
31
|
+
if (typeof styles == "string")
|
|
32
|
+
styles = [styles];
|
|
33
|
+
let sharedStylesheets = [];
|
|
34
|
+
let styleTags = [];
|
|
35
|
+
if (styles) {
|
|
36
|
+
for (let i = 0; i < styles.length; i++) {
|
|
37
|
+
let styleItem = renderStylesheet(styles[i], document);
|
|
38
|
+
if (styleItem instanceof document.defaultView.CSSStyleSheet) {
|
|
39
|
+
sharedStylesheets.push(styleItem);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
styleTags.push(styleItem);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
let DocSpecificHtmlEl = document.defaultView.HTMLElement;
|
|
47
|
+
CustomElementConstructor = class extends DocSpecificHtmlEl {
|
|
15
48
|
set component(value) {
|
|
16
49
|
this._component = value;
|
|
17
50
|
this._renderComponent();
|
|
18
51
|
}
|
|
19
52
|
_renderComponent() {
|
|
20
|
-
if (cvdom instanceof Vdom) {
|
|
53
|
+
if (this.cvdom instanceof Vdom) {
|
|
21
54
|
let shadow = this.attachShadow({ mode: 'open' });
|
|
22
|
-
|
|
23
|
-
|
|
55
|
+
shadow.adoptedStyleSheets = sharedStylesheets;
|
|
56
|
+
for (let i = 0; i < styleTags.length; i++) {
|
|
57
|
+
shadow.appendChild(styleTags[i]);
|
|
58
|
+
}
|
|
59
|
+
this._component._._meta.shadowRoot = shadow;
|
|
60
|
+
this.cvdom.childShadowVdom._render(shadow);
|
|
24
61
|
}
|
|
25
62
|
else {
|
|
26
63
|
throw new Error("Component build function returned invalid object.");
|
|
27
64
|
}
|
|
28
65
|
}
|
|
29
66
|
};
|
|
30
|
-
document.defaultView.customElements.define(component._._meta.tagName,
|
|
67
|
+
document.defaultView.customElements.define(this.component._._meta.tagName, CustomElementConstructor);
|
|
31
68
|
}
|
|
32
69
|
}
|
|
33
70
|
_render(node) {
|
|
@@ -37,21 +74,24 @@ export class ComponentVdom extends Vdom {
|
|
|
37
74
|
throw new Error("Individual component instances cannot be rendered twice at once.");
|
|
38
75
|
if (!this.component._._meta)
|
|
39
76
|
this.component._._meta = {};
|
|
77
|
+
this.component.mounting && this.component.mounting();
|
|
40
78
|
this.component._._meta.isRendered = true;
|
|
41
79
|
let document = node.ownerDocument;
|
|
42
|
-
this.setupCustomElement(
|
|
80
|
+
this.setupCustomElement(document);
|
|
43
81
|
this.shadowEl = document.createElement(this.component._._meta.tagName);
|
|
82
|
+
this.shadowEl["cvdom"] = this;
|
|
44
83
|
this.shadowEl["component"] = this.component;
|
|
84
|
+
this.component._.restyle && this.component._.restyle();
|
|
45
85
|
node.appendChild(this.shadowEl);
|
|
86
|
+
this.component.mounted && this.component.mounted();
|
|
46
87
|
}
|
|
47
88
|
_unrender() {
|
|
48
|
-
this.component.
|
|
89
|
+
this.component.unmounting && this.component.unmounting();
|
|
49
90
|
this.childShadowVdom._unrender();
|
|
50
|
-
this.childShadowVdom = null;
|
|
51
91
|
this.shadowEl.remove();
|
|
52
92
|
this.shadowEl = null;
|
|
53
93
|
this.component._._meta.isRendered = false;
|
|
54
|
-
this.component.
|
|
94
|
+
this.component.unmounted && this.component.unmounted();
|
|
55
95
|
}
|
|
56
96
|
toString() {
|
|
57
97
|
return `<${this.component._._meta.tagName}></${this.component._._meta.tagName}>`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/component-vdom.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"component-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/component-vdom.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Binding from "../reactivity/binding";
|
|
2
2
|
import { ContainerVdom } from "./container-vdom";
|
|
3
3
|
import { Vdom } from "./vdom";
|
|
4
4
|
import { ConditionalNodeItem } from "./vdom-types";
|
|
@@ -6,9 +6,10 @@ export declare class ConditionalVdom extends Vdom {
|
|
|
6
6
|
private conditions;
|
|
7
7
|
private sealed;
|
|
8
8
|
private renderedIndex;
|
|
9
|
-
addCondition(condition:
|
|
10
|
-
|
|
9
|
+
addCondition(condition: Binding | boolean, vNode: ContainerVdom, seal?: boolean): void;
|
|
10
|
+
private renderClause;
|
|
11
11
|
_render(node: HTMLElement): void;
|
|
12
|
+
removeCNode(C: ConditionalNodeItem): void;
|
|
12
13
|
_unrender(): void;
|
|
13
14
|
updateConditions(): void;
|
|
14
15
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Binding from "../reactivity/binding";
|
|
2
2
|
import { Vdom } from "./vdom";
|
|
3
3
|
export class ConditionalVdom extends Vdom {
|
|
4
4
|
constructor() {
|
|
@@ -20,51 +20,52 @@ export class ConditionalVdom extends Vdom {
|
|
|
20
20
|
observerId: 0
|
|
21
21
|
};
|
|
22
22
|
this.conditions.push(C);
|
|
23
|
-
if (this.
|
|
24
|
-
this.
|
|
25
|
-
if (
|
|
26
|
-
|
|
23
|
+
if (this._isRendered) {
|
|
24
|
+
this.renderClause(C, this.conditions[0].startAnchor.parentElement);
|
|
25
|
+
if (this.renderedIndex == -1) {
|
|
26
|
+
this.updateConditions();
|
|
27
27
|
}
|
|
28
|
-
this.updateConditions();
|
|
29
28
|
}
|
|
30
29
|
}
|
|
31
|
-
|
|
30
|
+
renderClause(C, node) {
|
|
31
|
+
if (C.startAnchor)
|
|
32
|
+
throw new Error("Item is already rendered.");
|
|
32
33
|
C.startAnchor = node.ownerDocument.createTextNode("");
|
|
33
34
|
C.endAnchor = node.ownerDocument.createTextNode("");
|
|
34
35
|
node.appendChild(C.startAnchor);
|
|
35
36
|
node.appendChild(C.endAnchor);
|
|
37
|
+
if (C.condition instanceof Binding) {
|
|
38
|
+
C.observerId = C.condition._subscribe(this);
|
|
39
|
+
}
|
|
36
40
|
}
|
|
37
41
|
_render(node) {
|
|
42
|
+
this._isRendered = true;
|
|
38
43
|
for (let c = 0; c < this.conditions.length; c++) {
|
|
39
|
-
|
|
40
|
-
if (C.startAnchor) {
|
|
41
|
-
throw new Error("Item is already rendered.");
|
|
42
|
-
}
|
|
43
|
-
this.addAnchor(C, node);
|
|
44
|
-
if (C.condition instanceof Reactive) {
|
|
45
|
-
C.observerId = C.condition.subscribeCond(this);
|
|
46
|
-
}
|
|
44
|
+
this.renderClause(this.conditions[c], node);
|
|
47
45
|
}
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
this.updateConditions();
|
|
47
|
+
}
|
|
48
|
+
removeCNode(C) {
|
|
49
|
+
if (C.condition instanceof Binding) {
|
|
50
|
+
C.condition._unsubscribe(C.observerId);
|
|
51
|
+
C.observerId = 0;
|
|
52
|
+
}
|
|
53
|
+
let start = C.startAnchor;
|
|
54
|
+
let end = C.endAnchor;
|
|
55
|
+
start.parentElement.removeChild(start);
|
|
56
|
+
end.parentElement.removeChild(end);
|
|
57
|
+
C.startAnchor = null;
|
|
58
|
+
C.endAnchor = null;
|
|
59
|
+
C.vNode._unrender();
|
|
50
60
|
}
|
|
51
61
|
_unrender() {
|
|
52
|
-
if (this.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
end.parentElement.removeChild(end);
|
|
60
|
-
C.startAnchor = null;
|
|
61
|
-
C.endAnchor = null;
|
|
62
|
-
if (C.condition instanceof Reactive) {
|
|
63
|
-
C.condition.detachBinding(C.observerId);
|
|
64
|
-
C.observerId = 0;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
this.renderedIndex = -1;
|
|
62
|
+
if (!this._isRendered)
|
|
63
|
+
return;
|
|
64
|
+
this._isRendered = false;
|
|
65
|
+
this.renderedIndex = -1;
|
|
66
|
+
for (let i = 0; i < this.conditions.length; i++) {
|
|
67
|
+
let C = this.conditions[i];
|
|
68
|
+
this.removeCNode(C);
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
71
|
updateConditions() {
|
|
@@ -72,7 +73,7 @@ export class ConditionalVdom extends Vdom {
|
|
|
72
73
|
let newIndex = -1;
|
|
73
74
|
for (let c = 0; c < this.conditions.length; c++) {
|
|
74
75
|
let C = this.conditions[c];
|
|
75
|
-
if (C.condition instanceof
|
|
76
|
+
if (C.condition instanceof Binding ? C.condition._get() : C.condition) {
|
|
76
77
|
newIndex = c;
|
|
77
78
|
break;
|
|
78
79
|
}
|
|
@@ -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,22 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import { IDotComponent, IDotCore } from "dothtml-interfaces";
|
|
2
|
+
import Watcher from "../reactivity/watcher";
|
|
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 Binding from "../reactivity/binding";
|
|
7
8
|
type ParentVdom = ContainerVdom | ConditionalVdom | ElementVdom;
|
|
8
9
|
export declare class ContainerVdom extends Vdom {
|
|
9
10
|
_children: Array<Vdom>;
|
|
10
11
|
_parent: ParentVdom;
|
|
11
|
-
|
|
12
|
+
_dot: IDotCore;
|
|
13
|
+
constructor(dot: IDotCore);
|
|
12
14
|
_addChild(content: Vdom): this;
|
|
13
15
|
_render(node: HTMLElement): void;
|
|
14
16
|
_unrender(): void;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
attr(A: string, c: any): void;
|
|
18
|
+
html(c: string | Watcher | Binding): this;
|
|
19
|
+
text(c: string | Watcher | Binding): this;
|
|
20
|
+
md(c: string | Watcher): this;
|
|
21
|
+
mount(c: IDotComponent): this;
|
|
22
|
+
when(condition: Watcher | Binding | boolean, then: ContainerVdom | string | boolean | number): this;
|
|
23
|
+
otherwiseWhen(condition: Watcher | Binding | boolean, then: ContainerVdom | string | boolean | number, seal?: boolean): this;
|
|
20
24
|
otherwise(then: ContainerVdom | string | boolean | number): this;
|
|
21
25
|
each(collection: ObservableCollection, callback: () => Vdom): this;
|
|
22
26
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import Watcher from "../reactivity/watcher";
|
|
1
2
|
import CollectionVdom from "./collection-vdom";
|
|
2
3
|
import { ConditionalVdom } from "./conditional-vdom";
|
|
3
4
|
import ElementVdom from "./element-vdom";
|
|
@@ -5,11 +6,18 @@ 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 Watcher)
|
|
11
|
+
return value.bind();
|
|
12
|
+
else
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
8
15
|
export class ContainerVdom extends Vdom {
|
|
9
|
-
constructor() {
|
|
16
|
+
constructor(dot) {
|
|
10
17
|
super();
|
|
11
18
|
this._children = [];
|
|
12
19
|
this._parent = null;
|
|
20
|
+
this._dot = dot;
|
|
13
21
|
}
|
|
14
22
|
_addChild(content) {
|
|
15
23
|
this._children.push(content);
|
|
@@ -18,26 +26,43 @@ export class ContainerVdom extends Vdom {
|
|
|
18
26
|
return this;
|
|
19
27
|
}
|
|
20
28
|
_render(node) {
|
|
29
|
+
this._isRendered = true;
|
|
21
30
|
for (let c = 0; c < this._children.length; c++) {
|
|
22
31
|
this._children[c]._render(node);
|
|
23
32
|
}
|
|
24
33
|
}
|
|
25
34
|
_unrender() {
|
|
35
|
+
if (!this._isRendered)
|
|
36
|
+
return;
|
|
37
|
+
this._isRendered = false;
|
|
26
38
|
for (let c = 0; c < this._children.length; c++) {
|
|
27
39
|
this._children[c]._unrender();
|
|
28
40
|
}
|
|
29
41
|
}
|
|
42
|
+
attr(A, c) {
|
|
43
|
+
let C = this._children[this._children.length - 1];
|
|
44
|
+
if (C && C instanceof ElementVdom) {
|
|
45
|
+
C.setAttr(A, c);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
throw new Error(`Invalid node to set ${A} attribute.`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
30
51
|
html(c) {
|
|
31
|
-
let hn = new HtmlVdom(c);
|
|
52
|
+
let hn = new HtmlVdom(reduceReactive(c));
|
|
32
53
|
return this._addChild(hn);
|
|
33
54
|
}
|
|
34
55
|
text(c) {
|
|
35
|
-
let tn = new TextVdom(c);
|
|
56
|
+
let tn = new TextVdom(reduceReactive(c));
|
|
36
57
|
return this._addChild(tn);
|
|
37
58
|
}
|
|
59
|
+
md(c) {
|
|
60
|
+
return this.text(reduceReactive(c));
|
|
61
|
+
}
|
|
38
62
|
mount(c) {
|
|
39
|
-
let cn = new ComponentVdom(c);
|
|
40
|
-
|
|
63
|
+
let cn = new ComponentVdom(this._dot, c);
|
|
64
|
+
let ret = this._addChild(cn);
|
|
65
|
+
return ret;
|
|
41
66
|
}
|
|
42
67
|
when(condition, then) {
|
|
43
68
|
let condNode = new ConditionalVdom();
|
|
@@ -46,12 +71,12 @@ export class ContainerVdom extends Vdom {
|
|
|
46
71
|
thenContainer = then;
|
|
47
72
|
}
|
|
48
73
|
else {
|
|
49
|
-
thenContainer = new ContainerVdom();
|
|
50
|
-
let textVdom = new TextVdom(then);
|
|
74
|
+
thenContainer = new ContainerVdom(this._dot);
|
|
75
|
+
let textVdom = new TextVdom(reduceReactive(then));
|
|
51
76
|
thenContainer._addChild(textVdom);
|
|
52
77
|
then = thenContainer;
|
|
53
78
|
}
|
|
54
|
-
condNode.addCondition(condition, then);
|
|
79
|
+
condNode.addCondition(reduceReactive(condition), reduceReactive(then));
|
|
55
80
|
this._addChild(condNode);
|
|
56
81
|
return this;
|
|
57
82
|
}
|
|
@@ -63,12 +88,12 @@ export class ContainerVdom extends Vdom {
|
|
|
63
88
|
thenContainer = then;
|
|
64
89
|
}
|
|
65
90
|
else {
|
|
66
|
-
thenContainer = new ContainerVdom();
|
|
67
|
-
let textVdom = new TextVdom(then);
|
|
91
|
+
thenContainer = new ContainerVdom(this._dot);
|
|
92
|
+
let textVdom = new TextVdom(reduceReactive(then));
|
|
68
93
|
thenContainer._addChild(textVdom);
|
|
69
94
|
then = thenContainer;
|
|
70
95
|
}
|
|
71
|
-
condNode.addCondition(condition, then, seal);
|
|
96
|
+
condNode.addCondition(reduceReactive(condition), reduceReactive(then), seal);
|
|
72
97
|
}
|
|
73
98
|
else {
|
|
74
99
|
throw new Error("Can't branch off of a non-conditional node.");
|
|
@@ -77,7 +102,7 @@ export class ContainerVdom extends Vdom {
|
|
|
77
102
|
}
|
|
78
103
|
otherwise(then) { return this.otherwiseWhen(true, then, true); }
|
|
79
104
|
each(collection, callback) {
|
|
80
|
-
let collectionVdom = new CollectionVdom(collection, callback);
|
|
105
|
+
let collectionVdom = new CollectionVdom(reduceReactive(collection), callback);
|
|
81
106
|
this._addChild(collectionVdom);
|
|
82
107
|
return this;
|
|
83
108
|
}
|
|
@@ -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,OAAO,MAAM,uBAAuB,CAAC;AAC5C,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,OAAO;QAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;;QAC5C,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,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;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,IAAG,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,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,CAAyB;QAC7B,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,CAAyB;QAC7B,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,CAAiB;QAGnB,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,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC7B,OAAO,GAAG,CAAC;IACZ,CAAC;IAGD,IAAI,CAAC,SAAiC,EAAE,IAAyC;QAChF,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,SAAiC,EAAE,IAAyC,EAAE,IAAI,GAAG,KAAK;QACvG,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,5 +1,10 @@
|
|
|
1
|
+
import { IDotCore } from "dothtml-interfaces";
|
|
1
2
|
import { ContainerVdom } from "./container-vdom";
|
|
2
3
|
import { Vdom } from "./vdom";
|
|
4
|
+
export declare class AttributeItem {
|
|
5
|
+
elementVDom: ElementVdom;
|
|
6
|
+
attribute: string;
|
|
7
|
+
}
|
|
3
8
|
export default class ElementVdom extends Vdom {
|
|
4
9
|
children: ContainerVdom;
|
|
5
10
|
element: HTMLElement;
|
|
@@ -7,7 +12,11 @@ export default class ElementVdom extends Vdom {
|
|
|
7
12
|
private attributes;
|
|
8
13
|
private events;
|
|
9
14
|
private attributeObserverIds;
|
|
10
|
-
|
|
15
|
+
private childBuilders;
|
|
16
|
+
private attrVNodes;
|
|
17
|
+
private styleVNodes;
|
|
18
|
+
inputListener: (e: any) => void;
|
|
19
|
+
constructor(dot: IDotCore, tag: string);
|
|
11
20
|
_render(node: HTMLElement): void;
|
|
12
21
|
_unrender(): void;
|
|
13
22
|
toString(): string;
|