dothtml 6.0.0-beta.8 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +26 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.mts +129 -0
- package/dist/index.d.ts +129 -0
- package/dist/index.global.js +26 -0
- package/dist/index.global.js.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/package.json +81 -57
- package/build_module/constants.d.ts +0 -1
- package/build_module/constants.js +0 -2
- package/build_module/constants.js.map +0 -1
- package/build_module/css/css.d.ts +0 -0
- package/build_module/css/css.js +0 -1
- package/build_module/css/css.js.map +0 -1
- package/build_module/decoration/component.d.ts +0 -14
- package/build_module/decoration/component.js +0 -27
- package/build_module/decoration/component.js.map +0 -1
- package/build_module/decoration/style.d.ts +0 -0
- package/build_module/decoration/style.js +0 -1
- package/build_module/decoration/style.js.map +0 -1
- package/build_module/decoration/use-styles.d.ts +0 -14
- package/build_module/decoration/use-styles.js +0 -32
- package/build_module/decoration/use-styles.js.map +0 -1
- package/build_module/dot.d.ts +0 -3
- package/build_module/dot.js +0 -516
- package/build_module/dot.js.map +0 -1
- package/build_module/helpers.d.ts +0 -2
- package/build_module/helpers.js +0 -49
- package/build_module/helpers.js.map +0 -1
- package/build_module/index.d.ts +0 -7
- package/build_module/index.js +0 -5
- package/build_module/index.js.map +0 -1
- package/build_module/reactive.d.ts +0 -37
- package/build_module/reactive.js +0 -120
- package/build_module/reactive.js.map +0 -1
- package/build_module/v-dom-node.d.ts +0 -0
- package/build_module/v-dom-node.js +0 -1
- package/build_module/v-dom-node.js.map +0 -1
- package/build_module/vdom-nodes/collection-vdom.d.ts +0 -24
- package/build_module/vdom-nodes/collection-vdom.js +0 -154
- package/build_module/vdom-nodes/collection-vdom.js.map +0 -1
- package/build_module/vdom-nodes/component-vdom.d.ts +0 -14
- package/build_module/vdom-nodes/component-vdom.js +0 -61
- package/build_module/vdom-nodes/component-vdom.js.map +0 -1
- package/build_module/vdom-nodes/conditional-vdom.d.ts +0 -14
- package/build_module/vdom-nodes/conditional-vdom.js +0 -97
- package/build_module/vdom-nodes/conditional-vdom.js.map +0 -1
- package/build_module/vdom-nodes/container-vdom.d.ts +0 -23
- package/build_module/vdom-nodes/container-vdom.js +0 -85
- package/build_module/vdom-nodes/container-vdom.js.map +0 -1
- package/build_module/vdom-nodes/element-vdom.d.ts +0 -18
- package/build_module/vdom-nodes/element-vdom.js +0 -88
- package/build_module/vdom-nodes/element-vdom.js.map +0 -1
- package/build_module/vdom-nodes/html-vdom.d.ts +0 -13
- package/build_module/vdom-nodes/html-vdom.js +0 -53
- package/build_module/vdom-nodes/html-vdom.js.map +0 -1
- package/build_module/vdom-nodes/text-vdom.d.ts +0 -11
- package/build_module/vdom-nodes/text-vdom.js +0 -37
- package/build_module/vdom-nodes/text-vdom.js.map +0 -1
- package/build_module/vdom-nodes/vdom.d.ts +0 -7
- package/build_module/vdom-nodes/vdom.js +0 -28
- package/build_module/vdom-nodes/vdom.js.map +0 -1
- package/readme.md +0 -26
package/build_module/reactive.js
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
const TEXT_OFFSET = 0;
|
|
2
|
-
const HTML_OFFSET = 1;
|
|
3
|
-
const ATTR_OFFSET = 2;
|
|
4
|
-
const COND_OFFSET = 3;
|
|
5
|
-
const ARRAY_OFFSET = 4;
|
|
6
|
-
const CB_OFFSET = 5;
|
|
7
|
-
const CATEGORIES = CB_OFFSET + 1;
|
|
8
|
-
export default class Reactive {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.observingTextNodes = {};
|
|
11
|
-
this.observingHtmlNodes = {};
|
|
12
|
-
this.observingAttributes = {};
|
|
13
|
-
this.observingCollections = {};
|
|
14
|
-
this.observingConditionals = {};
|
|
15
|
-
this.observingCallbacks = {};
|
|
16
|
-
this.nextId = 1;
|
|
17
|
-
}
|
|
18
|
-
getValue() {
|
|
19
|
-
return this.transformer ? this.transformer(this._value) : this._value;
|
|
20
|
-
}
|
|
21
|
-
setValue(v) {
|
|
22
|
-
this._value = v;
|
|
23
|
-
let newValue = this.getValue();
|
|
24
|
-
if (this._cachedLastValue != newValue) {
|
|
25
|
-
this._cachedLastValue = newValue;
|
|
26
|
-
this.updater(newValue);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
updater(value) {
|
|
30
|
-
for (let o in this.observingTextNodes) {
|
|
31
|
-
let n = this.observingTextNodes[o];
|
|
32
|
-
n.textNode.textContent = value ?? "";
|
|
33
|
-
}
|
|
34
|
-
for (let o in this.observingHtmlNodes) {
|
|
35
|
-
let n = this.observingHtmlNodes[o];
|
|
36
|
-
n.updateHtml(value);
|
|
37
|
-
}
|
|
38
|
-
for (let o in this.observingAttributes) {
|
|
39
|
-
let a = this.observingAttributes[o];
|
|
40
|
-
a.element.setAttr(a.attribute, this);
|
|
41
|
-
}
|
|
42
|
-
for (let o in this.observingCollections) {
|
|
43
|
-
let c = this.observingCollections[o];
|
|
44
|
-
c.collection.updateList();
|
|
45
|
-
}
|
|
46
|
-
for (let o in this.observingConditionals) {
|
|
47
|
-
let a = this.observingConditionals[o];
|
|
48
|
-
a.updateConditions();
|
|
49
|
-
}
|
|
50
|
-
for (let o in this.observingCallbacks) {
|
|
51
|
-
let cb = this.observingCallbacks[o];
|
|
52
|
-
cb(value);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
subscribeText(node) {
|
|
56
|
-
let id = TEXT_OFFSET + CATEGORIES * this.nextId++;
|
|
57
|
-
this.observingTextNodes[id] = node;
|
|
58
|
-
return id;
|
|
59
|
-
}
|
|
60
|
-
subscribeHtml(node) {
|
|
61
|
-
let id = HTML_OFFSET + CATEGORIES * this.nextId++;
|
|
62
|
-
this.observingHtmlNodes[id] = node;
|
|
63
|
-
return id;
|
|
64
|
-
}
|
|
65
|
-
subscribeAttr(node, attributeName) {
|
|
66
|
-
let id = ATTR_OFFSET + CATEGORIES * this.nextId++;
|
|
67
|
-
this.observingAttributes[id] = { element: node, attribute: attributeName };
|
|
68
|
-
return id;
|
|
69
|
-
}
|
|
70
|
-
subscribeCollection(node) {
|
|
71
|
-
let id = ARRAY_OFFSET + CATEGORIES * this.nextId++;
|
|
72
|
-
this.observingCollections[id] = { collection: node, key: null };
|
|
73
|
-
return id;
|
|
74
|
-
}
|
|
75
|
-
subscribeCond(node) {
|
|
76
|
-
let id = COND_OFFSET + CATEGORIES * this.nextId++;
|
|
77
|
-
this.observingConditionals[id] = node;
|
|
78
|
-
return id;
|
|
79
|
-
}
|
|
80
|
-
subscribeCallback(callback) {
|
|
81
|
-
let id = CB_OFFSET + CATEGORIES * this.nextId++;
|
|
82
|
-
this.observingCallbacks[id] = callback;
|
|
83
|
-
return id;
|
|
84
|
-
}
|
|
85
|
-
detachBinding(id) {
|
|
86
|
-
let category = id % CATEGORIES;
|
|
87
|
-
switch (category) {
|
|
88
|
-
case TEXT_OFFSET: {
|
|
89
|
-
delete this.observingTextNodes[id];
|
|
90
|
-
break;
|
|
91
|
-
}
|
|
92
|
-
case ATTR_OFFSET: {
|
|
93
|
-
delete this.observingAttributes[id];
|
|
94
|
-
break;
|
|
95
|
-
}
|
|
96
|
-
case HTML_OFFSET: {
|
|
97
|
-
delete this.observingHtmlNodes[id];
|
|
98
|
-
break;
|
|
99
|
-
}
|
|
100
|
-
case ARRAY_OFFSET: {
|
|
101
|
-
delete this.observingCollections[id];
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
case COND_OFFSET: {
|
|
105
|
-
delete this.observingConditionals[id];
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
108
|
-
case CB_OFFSET: {
|
|
109
|
-
delete this.observingCallbacks[id];
|
|
110
|
-
break;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
updateObservers() {
|
|
115
|
-
let updatedValue = this.getValue();
|
|
116
|
-
this._cachedLastValue = updatedValue;
|
|
117
|
-
this.updater(updatedValue);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
//# sourceMappingURL=reactive.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reactive.js","sourceRoot":"","sources":["../src/reactive.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=v-dom-node.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v-dom-node.js","sourceRoot":"","sources":["../src/v-dom-node.ts"],"names":[],"mappings":""}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import Reactive from "../reactive";
|
|
2
|
-
import { Vdom } from "./vdom";
|
|
3
|
-
import { ObservableCollection } from "./vdom-types";
|
|
4
|
-
type DatumMap = {
|
|
5
|
-
vdom: Vdom;
|
|
6
|
-
value: any;
|
|
7
|
-
keyValue: any;
|
|
8
|
-
afterNode: Node;
|
|
9
|
-
observableIndex: Reactive<number>;
|
|
10
|
-
};
|
|
11
|
-
export default class CollectionVdom extends Vdom {
|
|
12
|
-
value: ObservableCollection;
|
|
13
|
-
renderCallback: (x: any, i: number | string | Reactive, k: string) => Vdom;
|
|
14
|
-
startNode: Node;
|
|
15
|
-
endNode: Node;
|
|
16
|
-
observerId: number;
|
|
17
|
-
mappedItems: Array<DatumMap>;
|
|
18
|
-
constructor(value: ObservableCollection, renderCallback: (x: any, i: number | string, k: string) => Vdom);
|
|
19
|
-
_render(target: HTMLElement): void;
|
|
20
|
-
_unrender(): void;
|
|
21
|
-
private removeItem;
|
|
22
|
-
updateList(): void;
|
|
23
|
-
}
|
|
24
|
-
export {};
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
import { deepEqual } from "../helpers";
|
|
2
|
-
import Reactive from "../reactive";
|
|
3
|
-
import { TextVdom } from "./text-vdom";
|
|
4
|
-
import { Vdom } from "./vdom";
|
|
5
|
-
export default class CollectionVdom extends Vdom {
|
|
6
|
-
constructor(value, renderCallback) {
|
|
7
|
-
super();
|
|
8
|
-
this.observerId = 0;
|
|
9
|
-
this.mappedItems = [];
|
|
10
|
-
this.value = value;
|
|
11
|
-
this.renderCallback = renderCallback;
|
|
12
|
-
}
|
|
13
|
-
_render(target) {
|
|
14
|
-
if (this.value instanceof Reactive) {
|
|
15
|
-
this.observerId = this.value.subscribeCollection(this);
|
|
16
|
-
}
|
|
17
|
-
this.startNode = target.ownerDocument.createTextNode("");
|
|
18
|
-
this.endNode = target.ownerDocument.createTextNode("");
|
|
19
|
-
target.appendChild(this.startNode);
|
|
20
|
-
target.appendChild(this.endNode);
|
|
21
|
-
this.updateList();
|
|
22
|
-
}
|
|
23
|
-
_unrender() {
|
|
24
|
-
if (this.observerId && this.value instanceof Reactive) {
|
|
25
|
-
this.value.detachBinding(this.observerId);
|
|
26
|
-
this.observerId = null;
|
|
27
|
-
}
|
|
28
|
-
for (let i = 0; i < this.mappedItems.length; i++) {
|
|
29
|
-
let I = this.mappedItems[i];
|
|
30
|
-
I.vdom._unrender();
|
|
31
|
-
I.afterNode.parentElement.removeChild(I.afterNode);
|
|
32
|
-
}
|
|
33
|
-
this.mappedItems.length = 0;
|
|
34
|
-
this.startNode.parentElement.removeChild(this.startNode);
|
|
35
|
-
this.endNode.parentElement.removeChild(this.endNode);
|
|
36
|
-
this.startNode = null;
|
|
37
|
-
this.endNode = null;
|
|
38
|
-
}
|
|
39
|
-
removeItem(item) {
|
|
40
|
-
item.vdom._unrender();
|
|
41
|
-
item.afterNode.parentElement.removeChild(item.afterNode);
|
|
42
|
-
}
|
|
43
|
-
updateList() {
|
|
44
|
-
let key = null;
|
|
45
|
-
let mappedData;
|
|
46
|
-
{
|
|
47
|
-
let unmappedCollection = null;
|
|
48
|
-
if (this.value instanceof Reactive) {
|
|
49
|
-
unmappedCollection = this.value.getValue();
|
|
50
|
-
key = this.value.key ?? null;
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
unmappedCollection = this.value;
|
|
54
|
-
}
|
|
55
|
-
if (unmappedCollection instanceof Array) {
|
|
56
|
-
mappedData = unmappedCollection.map((v, i) => {
|
|
57
|
-
let kv = !!key ? v[key] : null;
|
|
58
|
-
return {
|
|
59
|
-
vdom: null,
|
|
60
|
-
value: v,
|
|
61
|
-
keyValue: kv,
|
|
62
|
-
afterNode: null,
|
|
63
|
-
observableIndex: new Reactive()
|
|
64
|
-
};
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
mappedData = [];
|
|
69
|
-
for (let k in unmappedCollection) {
|
|
70
|
-
let v = unmappedCollection[k];
|
|
71
|
-
let kv = !!key ? v[key] : k;
|
|
72
|
-
mappedData.push({
|
|
73
|
-
vdom: null,
|
|
74
|
-
value: v,
|
|
75
|
-
keyValue: kv,
|
|
76
|
-
afterNode: null,
|
|
77
|
-
observableIndex: new Reactive()
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
{
|
|
83
|
-
let oi = 0;
|
|
84
|
-
let ns = 0;
|
|
85
|
-
let ni = 0;
|
|
86
|
-
while (oi < this.mappedItems.length) {
|
|
87
|
-
let existing = this.mappedItems[oi];
|
|
88
|
-
let candidate = mappedData[ni];
|
|
89
|
-
if (!candidate) {
|
|
90
|
-
this.removeItem(existing);
|
|
91
|
-
this.mappedItems.splice(oi, 1);
|
|
92
|
-
ni = ns;
|
|
93
|
-
continue;
|
|
94
|
-
}
|
|
95
|
-
else if ((candidate == existing) || (key && candidate.keyValue == existing.keyValue)) {
|
|
96
|
-
ns++;
|
|
97
|
-
oi++;
|
|
98
|
-
ni = ns;
|
|
99
|
-
continue;
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
ni++;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
{
|
|
107
|
-
let oi = 0;
|
|
108
|
-
let ni = 0;
|
|
109
|
-
let afterTarget = this.startNode;
|
|
110
|
-
while (ni < mappedData.length) {
|
|
111
|
-
let existing = this.mappedItems[oi];
|
|
112
|
-
let candidate = mappedData[ni];
|
|
113
|
-
if (existing && ((candidate == existing) || (key && candidate.keyValue == existing.keyValue))) {
|
|
114
|
-
if (!deepEqual(existing.value, candidate.value)) {
|
|
115
|
-
existing.vdom._unrender();
|
|
116
|
-
existing.vdom = this.renderCallback(candidate.value, this.value instanceof Reactive ? existing.observableIndex : ni, candidate.keyValue);
|
|
117
|
-
existing.value = candidate.value;
|
|
118
|
-
existing.vdom._renderBefore(existing.afterNode);
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
existing.observableIndex.setValue(ni);
|
|
122
|
-
}
|
|
123
|
-
afterTarget = existing.afterNode;
|
|
124
|
-
ni++;
|
|
125
|
-
oi++;
|
|
126
|
-
continue;
|
|
127
|
-
}
|
|
128
|
-
else {
|
|
129
|
-
let beforeTarget = afterTarget.ownerDocument.createTextNode("");
|
|
130
|
-
let ns = afterTarget.parentElement.nextSibling;
|
|
131
|
-
if (ns) {
|
|
132
|
-
this.startNode.parentElement.insertBefore(beforeTarget, ns);
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
this.startNode.parentElement.appendChild(beforeTarget);
|
|
136
|
-
}
|
|
137
|
-
candidate.afterNode = beforeTarget;
|
|
138
|
-
candidate.observableIndex._value = ni;
|
|
139
|
-
let content = this.renderCallback(candidate.value, this.value instanceof Reactive ? candidate.observableIndex : ni, candidate.keyValue);
|
|
140
|
-
if (content instanceof Vdom) {
|
|
141
|
-
candidate.vdom = content;
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
candidate.vdom = new TextVdom(content);
|
|
145
|
-
}
|
|
146
|
-
candidate.vdom._renderBefore(candidate.afterNode);
|
|
147
|
-
this.mappedItems.splice(ni, 0, candidate);
|
|
148
|
-
ni++;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
//# sourceMappingURL=collection-vdom.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collection-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/collection-vdom.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { IComponent } from "dothtml-interfaces";
|
|
2
|
-
import { Vdom } from "./vdom";
|
|
3
|
-
import { ContainerVdom } from "./container-vdom";
|
|
4
|
-
export declare class ComponentVdom extends Vdom {
|
|
5
|
-
component: IComponent;
|
|
6
|
-
shadowEl: HTMLElement;
|
|
7
|
-
childShadowVdom: ContainerVdom;
|
|
8
|
-
sharedStyles: CSSStyleSheet;
|
|
9
|
-
constructor(component: IComponent);
|
|
10
|
-
private setupCustomElement;
|
|
11
|
-
_render(node: HTMLElement): void;
|
|
12
|
-
_unrender(): void;
|
|
13
|
-
toString(): string;
|
|
14
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { Vdom } from "./vdom";
|
|
2
|
-
export class ComponentVdom extends Vdom {
|
|
3
|
-
constructor(component) {
|
|
4
|
-
super();
|
|
5
|
-
this.component = component;
|
|
6
|
-
this.component.creating && this.component.creating();
|
|
7
|
-
this.childShadowVdom = this.component.build && this.component.build(...component._._meta.args);
|
|
8
|
-
this.component.built && this.component.built();
|
|
9
|
-
}
|
|
10
|
-
setupCustomElement(component, document) {
|
|
11
|
-
let cvdom = this;
|
|
12
|
-
let customElementConstructor = document.defaultView.customElements.get(component._._meta.tagName);
|
|
13
|
-
if (customElementConstructor == undefined) {
|
|
14
|
-
customElementConstructor = class extends HTMLElement {
|
|
15
|
-
set component(value) {
|
|
16
|
-
this._component = value;
|
|
17
|
-
this._renderComponent();
|
|
18
|
-
}
|
|
19
|
-
_renderComponent() {
|
|
20
|
-
if (cvdom instanceof Vdom) {
|
|
21
|
-
let shadow = this.attachShadow({ mode: 'open' });
|
|
22
|
-
this._component._._meta.shadowRoot = shadow;
|
|
23
|
-
cvdom.childShadowVdom._render(shadow);
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
throw new Error("Component build function returned invalid object.");
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
document.defaultView.customElements.define(component._._meta.tagName, customElementConstructor);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
_render(node) {
|
|
34
|
-
if (!this.component._)
|
|
35
|
-
throw new Error("Invalid component. Ensure components are created through the component factory or through decoration.");
|
|
36
|
-
if (this.component._?._meta?.isRendered)
|
|
37
|
-
throw new Error("Individual component instances cannot be rendered twice at once.");
|
|
38
|
-
if (!this.component._._meta)
|
|
39
|
-
this.component._._meta = {};
|
|
40
|
-
this.component._._meta.isRendered = true;
|
|
41
|
-
let document = node.ownerDocument;
|
|
42
|
-
this.setupCustomElement(this.component, document);
|
|
43
|
-
this.shadowEl = document.createElement(this.component._._meta.tagName);
|
|
44
|
-
this.shadowEl["component"] = this.component;
|
|
45
|
-
this.component._.restyle && this.component._.restyle();
|
|
46
|
-
node.appendChild(this.shadowEl);
|
|
47
|
-
}
|
|
48
|
-
_unrender() {
|
|
49
|
-
this.component.deleting && this.component.deleting();
|
|
50
|
-
this.childShadowVdom._unrender();
|
|
51
|
-
this.childShadowVdom = null;
|
|
52
|
-
this.shadowEl.remove();
|
|
53
|
-
this.shadowEl = null;
|
|
54
|
-
this.component._._meta.isRendered = false;
|
|
55
|
-
this.component.deleted && this.component.deleted();
|
|
56
|
-
}
|
|
57
|
-
toString() {
|
|
58
|
-
return `<${this.component._._meta.tagName}></${this.component._._meta.tagName}>`;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=component-vdom.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/component-vdom.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAO9B,MAAM,OAAO,aAAc,SAAQ,IAAI;IAOtC,YAAY,SAAqB;QAChC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAG3B,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACrD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAA6B,CAAC;QAC3H,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAEhD,CAAC;IAEO,kBAAkB,CAAC,SAAqB,EAAE,QAAkB;QAEnE,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,IAAI,wBAAwB,GAAG,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAElG,IAAG,wBAAwB,IAAI,SAAS,EAAC;YAGxC,wBAAwB,GAAG,KAAM,SAAQ,WAAW;gBAEnD,IAAI,SAAS,CAAC,KAAiB;oBAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;oBACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACzB,CAAC;gBAED,gBAAgB;oBAEf,IAAG,KAAK,YAAY,IAAI,EAAC;wBACxB,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;wBAChD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAa,CAAC,UAAU,GAAG,MAAM,CAAC;wBACrD,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,MAAa,CAAC,CAAC;qBAC7C;yBACG;wBACH,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;qBACrE;gBAEF,CAAC;aACD,CAAA;YAED,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;SAChG;IAGF,CAAC;IAED,OAAO,CAAC,IAAiB;QACxB,IAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uGAAuG,CAAC,CAAC;QAC/I,IAAI,IAAI,CAAC,SAAS,CAAC,CAAS,EAAE,KAAK,EAAE,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACrI,IAAG,CAAE,IAAI,CAAC,SAAS,CAAC,CAAS,CAAC,KAAK;YAAG,IAAI,CAAC,SAAS,CAAC,CAAS,CAAC,KAAK,GAAG,EAAE,CAAC;QACzE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAa,CAAC,UAAU,GAAG,IAAI,CAAC;QAElD,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;QAGlC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAElD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAE5C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAEvD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,SAAS;QACR,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAErD,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAa,CAAC,UAAU,GAAG,KAAK,CAAC;QACnD,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IACpD,CAAC;IAED,QAAQ;QAGP,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC;IAClF,CAAC;CACD"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import Reactive from "../reactive";
|
|
2
|
-
import { ContainerVdom } from "./container-vdom";
|
|
3
|
-
import { Vdom } from "./vdom";
|
|
4
|
-
import { ConditionalNodeItem } from "./vdom-types";
|
|
5
|
-
export declare class ConditionalVdom extends Vdom {
|
|
6
|
-
private conditions;
|
|
7
|
-
private sealed;
|
|
8
|
-
private renderedIndex;
|
|
9
|
-
addCondition(condition: Reactive | boolean, vNode: ContainerVdom, seal?: boolean): void;
|
|
10
|
-
addAnchor(C: ConditionalNodeItem, node: HTMLElement): void;
|
|
11
|
-
_render(node: HTMLElement): void;
|
|
12
|
-
_unrender(): void;
|
|
13
|
-
updateConditions(): void;
|
|
14
|
-
}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import Reactive from "../reactive";
|
|
2
|
-
import { Vdom } from "./vdom";
|
|
3
|
-
export class ConditionalVdom extends Vdom {
|
|
4
|
-
constructor() {
|
|
5
|
-
super(...arguments);
|
|
6
|
-
this.conditions = [];
|
|
7
|
-
this.sealed = false;
|
|
8
|
-
this.renderedIndex = -1;
|
|
9
|
-
}
|
|
10
|
-
addCondition(condition, vNode, seal = false) {
|
|
11
|
-
if (this.sealed) {
|
|
12
|
-
throw new Error("Cannot add additional conditions to a sealed block.");
|
|
13
|
-
}
|
|
14
|
-
this.sealed = seal;
|
|
15
|
-
let C = {
|
|
16
|
-
condition,
|
|
17
|
-
vNode,
|
|
18
|
-
startAnchor: null,
|
|
19
|
-
endAnchor: null,
|
|
20
|
-
observerId: 0
|
|
21
|
-
};
|
|
22
|
-
this.conditions.push(C);
|
|
23
|
-
if (this.conditions[0].startAnchor) {
|
|
24
|
-
this.addAnchor(C, this.conditions[0].startAnchor.parentElement);
|
|
25
|
-
if (condition instanceof Reactive) {
|
|
26
|
-
C.observerId = condition.subscribeCond(this);
|
|
27
|
-
}
|
|
28
|
-
this.updateConditions();
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
addAnchor(C, node) {
|
|
32
|
-
C.startAnchor = node.ownerDocument.createTextNode("");
|
|
33
|
-
C.endAnchor = node.ownerDocument.createTextNode("");
|
|
34
|
-
node.appendChild(C.startAnchor);
|
|
35
|
-
node.appendChild(C.endAnchor);
|
|
36
|
-
}
|
|
37
|
-
_render(node) {
|
|
38
|
-
for (let c = 0; c < this.conditions.length; c++) {
|
|
39
|
-
let C = this.conditions[c];
|
|
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
|
-
}
|
|
47
|
-
}
|
|
48
|
-
if (this.conditions.length)
|
|
49
|
-
this.updateConditions();
|
|
50
|
-
}
|
|
51
|
-
_unrender() {
|
|
52
|
-
if (this.conditions[0].startAnchor) {
|
|
53
|
-
for (let i = 0; i < this.conditions.length; i++) {
|
|
54
|
-
let C = this.conditions[i];
|
|
55
|
-
let start = C.startAnchor;
|
|
56
|
-
let end = C.endAnchor;
|
|
57
|
-
C.vNode._unrender();
|
|
58
|
-
start.parentElement.removeChild(start);
|
|
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;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
updateConditions() {
|
|
71
|
-
let node = this.conditions[0].startAnchor.parentElement;
|
|
72
|
-
let newIndex = -1;
|
|
73
|
-
for (let c = 0; c < this.conditions.length; c++) {
|
|
74
|
-
let C = this.conditions[c];
|
|
75
|
-
if (C.condition instanceof Reactive ? C.condition.getValue() : C.condition) {
|
|
76
|
-
newIndex = c;
|
|
77
|
-
break;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
if (newIndex != this.renderedIndex) {
|
|
81
|
-
{
|
|
82
|
-
if (this.renderedIndex != -1) {
|
|
83
|
-
let C = this.conditions[this.renderedIndex];
|
|
84
|
-
C.vNode._unrender();
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
{
|
|
88
|
-
this.renderedIndex = newIndex;
|
|
89
|
-
if (newIndex != -1) {
|
|
90
|
-
let C = this.conditions[newIndex];
|
|
91
|
-
C.vNode._renderBefore(C.endAnchor);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=conditional-vdom.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/conditional-vdom.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { IComponent } from "dothtml-interfaces";
|
|
2
|
-
import Reactive from "../reactive";
|
|
3
|
-
import { ConditionalVdom } from "./conditional-vdom";
|
|
4
|
-
import ElementVdom from "./element-vdom";
|
|
5
|
-
import { Vdom } from "./vdom";
|
|
6
|
-
import { ObservableCollection } from "./vdom-types";
|
|
7
|
-
type ParentVdom = ContainerVdom | ConditionalVdom | ElementVdom;
|
|
8
|
-
export declare class ContainerVdom extends Vdom {
|
|
9
|
-
_children: Array<Vdom>;
|
|
10
|
-
_parent: ParentVdom;
|
|
11
|
-
constructor();
|
|
12
|
-
_addChild(content: Vdom): this;
|
|
13
|
-
_render(node: HTMLElement): void;
|
|
14
|
-
_unrender(): void;
|
|
15
|
-
html(c: string | Reactive): this;
|
|
16
|
-
text(c: string | Reactive): this;
|
|
17
|
-
mount(c: IComponent): this;
|
|
18
|
-
when(condition: Reactive | boolean, then: ContainerVdom | string | boolean | number): this;
|
|
19
|
-
otherwiseWhen(condition: Reactive | boolean, then: ContainerVdom | string | boolean | number, seal?: boolean): this;
|
|
20
|
-
otherwise(then: ContainerVdom | string | boolean | number): this;
|
|
21
|
-
each(collection: ObservableCollection, callback: () => Vdom): this;
|
|
22
|
-
}
|
|
23
|
-
export {};
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import CollectionVdom from "./collection-vdom";
|
|
2
|
-
import { ConditionalVdom } from "./conditional-vdom";
|
|
3
|
-
import ElementVdom from "./element-vdom";
|
|
4
|
-
import { HtmlVdom } from "./html-vdom";
|
|
5
|
-
import { TextVdom } from "./text-vdom";
|
|
6
|
-
import { Vdom } from "./vdom";
|
|
7
|
-
import { ComponentVdom } from "./component-vdom";
|
|
8
|
-
export class ContainerVdom extends Vdom {
|
|
9
|
-
constructor() {
|
|
10
|
-
super();
|
|
11
|
-
this._children = [];
|
|
12
|
-
this._parent = null;
|
|
13
|
-
}
|
|
14
|
-
_addChild(content) {
|
|
15
|
-
this._children.push(content);
|
|
16
|
-
if (this._parent && this._parent instanceof ElementVdom && this._parent.element)
|
|
17
|
-
content._render(this._parent.element);
|
|
18
|
-
return this;
|
|
19
|
-
}
|
|
20
|
-
_render(node) {
|
|
21
|
-
for (let c = 0; c < this._children.length; c++) {
|
|
22
|
-
this._children[c]._render(node);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
_unrender() {
|
|
26
|
-
for (let c = 0; c < this._children.length; c++) {
|
|
27
|
-
this._children[c]._unrender();
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
html(c) {
|
|
31
|
-
let hn = new HtmlVdom(c);
|
|
32
|
-
return this._addChild(hn);
|
|
33
|
-
}
|
|
34
|
-
text(c) {
|
|
35
|
-
let tn = new TextVdom(c);
|
|
36
|
-
return this._addChild(tn);
|
|
37
|
-
}
|
|
38
|
-
mount(c) {
|
|
39
|
-
let cn = new ComponentVdom(c);
|
|
40
|
-
return this._addChild(cn);
|
|
41
|
-
}
|
|
42
|
-
when(condition, then) {
|
|
43
|
-
let condNode = new ConditionalVdom();
|
|
44
|
-
let thenContainer;
|
|
45
|
-
if (then instanceof ContainerVdom) {
|
|
46
|
-
thenContainer = then;
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
thenContainer = new ContainerVdom();
|
|
50
|
-
let textVdom = new TextVdom(then);
|
|
51
|
-
thenContainer._addChild(textVdom);
|
|
52
|
-
then = thenContainer;
|
|
53
|
-
}
|
|
54
|
-
condNode.addCondition(condition, then);
|
|
55
|
-
this._addChild(condNode);
|
|
56
|
-
return this;
|
|
57
|
-
}
|
|
58
|
-
otherwiseWhen(condition, then, seal = false) {
|
|
59
|
-
let condNode = this._children[this._children.length - 1];
|
|
60
|
-
if (condNode instanceof ConditionalVdom) {
|
|
61
|
-
let thenContainer;
|
|
62
|
-
if (then instanceof ContainerVdom) {
|
|
63
|
-
thenContainer = then;
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
thenContainer = new ContainerVdom();
|
|
67
|
-
let textVdom = new TextVdom(then);
|
|
68
|
-
thenContainer._addChild(textVdom);
|
|
69
|
-
then = thenContainer;
|
|
70
|
-
}
|
|
71
|
-
condNode.addCondition(condition, then, seal);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
throw new Error("Can't branch off of a non-conditional node.");
|
|
75
|
-
}
|
|
76
|
-
return this;
|
|
77
|
-
}
|
|
78
|
-
otherwise(then) { return this.otherwiseWhen(true, then, true); }
|
|
79
|
-
each(collection, callback) {
|
|
80
|
-
let collectionVdom = new CollectionVdom(collection, callback);
|
|
81
|
-
this._addChild(collectionVdom);
|
|
82
|
-
return this;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=container-vdom.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"container-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/container-vdom.ts"],"names":[],"mappings":"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"}
|