dothtml 6.0.0-beta.38 → 6.0.0-beta.39
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 +4 -4
- package/build_module/css/format-css-type.js.map +1 -1
- package/build_module/dot.js +7 -7
- package/build_module/dot.js.map +1 -1
- package/build_module/reactivity/binding.d.ts +12 -6
- package/build_module/reactivity/binding.js +15 -36
- package/build_module/reactivity/binding.js.map +1 -1
- 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 +3 -3
- package/build_module/v-meta-nodes/attribute-v-node.js +6 -6
- 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 +5 -5
- package/build_module/v-meta-nodes/style-v-node.js.map +1 -1
- package/build_module/v-style-nodes/base-v-style.js +2 -2
- 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 +2 -2
- package/build_module/v-style-nodes/css-function-builder-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 +9 -9
- 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 +5 -5
- package/build_module/vdom-nodes/conditional-vdom.js.map +1 -1
- package/build_module/vdom-nodes/container-vdom.d.ts +7 -7
- package/build_module/vdom-nodes/container-vdom.js +2 -2
- package/build_module/vdom-nodes/container-vdom.js.map +1 -1
- package/build_module/vdom-nodes/element-vdom.js +4 -4
- 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 +4 -4
- 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 +4 -4
- package/build_module/vdom-nodes/text-vdom.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare function formatCssLength(value: string | number |
|
|
3
|
-
export declare function formatCssPercentage(value: string | number |
|
|
1
|
+
import Binding from "../reactivity/binding";
|
|
2
|
+
export declare function formatCssLength(value: string | number | Binding | Array<string | number | Binding>, defaultUnits?: string): any;
|
|
3
|
+
export declare function formatCssPercentage(value: string | number | Binding | Array<string | number | Binding>): any;
|
|
4
4
|
export declare function formatCssColor(value: string | number): string;
|
|
5
|
-
export declare function formatCssAngle(value: string | number |
|
|
5
|
+
export declare function formatCssAngle(value: string | number | Binding | Array<string | number | Binding>): any;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { floatRegex } from "../helpers/tools";
|
|
2
|
-
import
|
|
2
|
+
import Binding from "../reactivity/binding";
|
|
3
3
|
export function formatCssLength(value, defaultUnits = "px") {
|
|
4
4
|
value = value || "0px";
|
|
5
|
-
if (value instanceof
|
|
5
|
+
if (value instanceof Binding)
|
|
6
6
|
value = value._get();
|
|
7
7
|
if (value instanceof Array) {
|
|
8
8
|
return value.map(v => formatCssLength(v, defaultUnits)).join(" ");
|
|
@@ -21,7 +21,7 @@ export function formatCssLength(value, defaultUnits = "px") {
|
|
|
21
21
|
}
|
|
22
22
|
export function formatCssPercentage(value) {
|
|
23
23
|
value = value || "0%";
|
|
24
|
-
if (value instanceof
|
|
24
|
+
if (value instanceof Binding)
|
|
25
25
|
value = value._get();
|
|
26
26
|
if (value instanceof Array) {
|
|
27
27
|
return value.map(v => formatCssPercentage(v)).join(" ");
|
|
@@ -53,7 +53,7 @@ export function formatCssColor(value) {
|
|
|
53
53
|
}
|
|
54
54
|
export function formatCssAngle(value) {
|
|
55
55
|
value = value || "0deg";
|
|
56
|
-
if (value instanceof
|
|
56
|
+
if (value instanceof Binding)
|
|
57
57
|
value = value._get();
|
|
58
58
|
if (value instanceof Array) {
|
|
59
59
|
return value.map(v => formatCssAngle(v)).join(" ");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-css-type.js","sourceRoot":"","sources":["../../src/css/format-css-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"format-css-type.js","sourceRoot":"","sources":["../../src/css/format-css-type.ts"],"names":[],"mappings":"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"}
|
package/build_module/dot.js
CHANGED
|
@@ -3,11 +3,11 @@ import { TextVdom } from "./vdom-nodes/text-vdom";
|
|
|
3
3
|
import ElementVdom from "./vdom-nodes/element-vdom";
|
|
4
4
|
import { Vdom } from "./vdom-nodes/vdom";
|
|
5
5
|
import { DOT_VDOM_PROP_NAME } from "./constants";
|
|
6
|
-
import
|
|
6
|
+
import Watcher from "./reactivity/watcher";
|
|
7
7
|
import { ComponentVdom } from "./vdom-nodes/component-vdom";
|
|
8
8
|
import BaseVStyle from "./v-style-nodes/base-v-style";
|
|
9
9
|
import WindowWrapper from "./window-wrapper";
|
|
10
|
-
import
|
|
10
|
+
import Binding from "./reactivity/binding";
|
|
11
11
|
const allTags = [
|
|
12
12
|
"a",
|
|
13
13
|
"aside",
|
|
@@ -228,7 +228,7 @@ const makeDot = () => {
|
|
|
228
228
|
}
|
|
229
229
|
};
|
|
230
230
|
_dot.watch = function (value, key) {
|
|
231
|
-
let o = new
|
|
231
|
+
let o = new Watcher();
|
|
232
232
|
o.key = key;
|
|
233
233
|
o.value = (value);
|
|
234
234
|
return o;
|
|
@@ -270,11 +270,11 @@ const makeDot = () => {
|
|
|
270
270
|
let cont;
|
|
271
271
|
let attrs;
|
|
272
272
|
{
|
|
273
|
-
if (a instanceof ContainerVdom || a instanceof Vdom || (a?._?._meta && a?.build) || a instanceof
|
|
273
|
+
if (a instanceof ContainerVdom || a instanceof Vdom || (a?._?._meta && a?.build) || a instanceof Watcher || a instanceof Binding || typeof a === "string" || typeof a === "number" || typeof a === "boolean" || Array.isArray(a)) {
|
|
274
274
|
cont = a;
|
|
275
275
|
attrs = b;
|
|
276
276
|
}
|
|
277
|
-
if (b instanceof ContainerVdom || b instanceof Vdom || (b?._?._meta && b?.build) || b instanceof
|
|
277
|
+
if (b instanceof ContainerVdom || b instanceof Vdom || (b?._?._meta && b?.build) || b instanceof Watcher || b instanceof Binding || typeof b === "string" || typeof b === "number" || typeof b === "boolean" || Array.isArray(b)) {
|
|
278
278
|
if (cont)
|
|
279
279
|
throw new Error("Both element arguments can't be content.");
|
|
280
280
|
cont = b;
|
|
@@ -288,7 +288,7 @@ const makeDot = () => {
|
|
|
288
288
|
if (attrs) {
|
|
289
289
|
for (let k in attrs) {
|
|
290
290
|
let attr = attrs[k];
|
|
291
|
-
if (attr instanceof
|
|
291
|
+
if (attr instanceof Watcher)
|
|
292
292
|
attr = attr.bind();
|
|
293
293
|
if (allEventAttr[k]) {
|
|
294
294
|
if (typeof attrs[k] !== "function") {
|
|
@@ -314,7 +314,7 @@ const makeDot = () => {
|
|
|
314
314
|
}
|
|
315
315
|
else {
|
|
316
316
|
if (cont !== null && cont !== undefined) {
|
|
317
|
-
if (cont instanceof
|
|
317
|
+
if (cont instanceof Watcher) {
|
|
318
318
|
cont = cont.bind();
|
|
319
319
|
}
|
|
320
320
|
n.children._addChild(new TextVdom(cont));
|
package/build_module/dot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dot.js","sourceRoot":"","sources":["../src/dot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"dot.js","sourceRoot":"","sources":["../src/dot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,OAAO,MAAM,sBAAsB,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,UAAU,MAAM,8BAA8B,CAAC;AAEtD,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,OAAO,MAAM,sBAAsB,CAAC;AAI3C,MAAM,OAAO,GAAG;IACf,GAAG;IACH,OAAO;IACP,MAAM;IACN,SAAS;IACT,MAAM;IACN,SAAS;IACT,OAAO;IACP,GAAG;IACH,KAAK;IACL,KAAK;IACL,YAAY;IACZ,MAAM;IACN,IAAI;IACJ,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;IACN,MAAM;IACN,KAAK;IACL,UAAU;IACV,SAAS;IACT,MAAM;IACN,UAAU;IACV,IAAI;IACJ,KAAK;IACL,SAAS;IACT,KAAK;IACL,QAAQ;IACR,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,OAAO;IACP,UAAU;IACV,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,QAAQ;IACR,IAAI;IACJ,GAAG;IACH,QAAQ;IACR,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,IAAI;IACJ,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,UAAU;IACV,OAAO;IACP,KAAK;IACL,QAAQ;IACR,IAAI;IACJ,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,GAAG;IACH,OAAO;IACP,KAAK;IACL,UAAU;IACV,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,GAAG;IACH,MAAM;IACN,SAAS;IACT,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,KAAK;IACL,KAAK;IACL,SAAS;IACT,KAAK;IACL,OAAO;IACP,OAAO;IACP,IAAI;IACJ,UAAU;IACV,OAAO;IACP,IAAI;IACJ,OAAO;IACP,MAAM;IACN,IAAI;IACJ,OAAO;IACP,GAAG;IACH,IAAI;IACJ,KAAK;IACL,OAAO;IACP,KAAK;CACL,CAAC;AAwMF,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAGxE,MAAM,YAAY,GAAG;IACpB,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,CAAC;IACZ,iBAAiB,EAAE,CAAC;IACpB,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,CAAC;IAChB,WAAW,EAAE,CAAC;IACd,KAAK,EAAE,CAAC;IACR,UAAU,EAAE,CAAC;IACb,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,CAAC;IACd,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;IACd,MAAM,EAAE,CAAC;IACT,gBAAgB,EAAE,CAAC;IACnB,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,CAAC;IACnB,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,CAAC;IACf,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,CAAC;IACd,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;IACd,SAAS,EAAE,CAAC;IACZ,eAAe,EAAE,CAAC;IAClB,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;IACjB,cAAc,EAAE,CAAC;IACjB,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;IAChB,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,CAAC;IAChB,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;IACd,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,CAAC;IACf,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,YAAY,EAAE,CAAC;IACf,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,cAAc,EAAE,CAAC;IACjB,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;CACV,CAAC;AASF,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,EAAE,EAAC,EAAE;IAChC,CAAC,CAAC,EAAE,CAAC,GAAG;QACP,IAAI,CAAC,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;QACpB,OAAO,CAAC,CAAC;IACV,CAAC,CAAA;AACF,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,GAAE,EAAE;IACnB,MAAM,IAAI,GAAG,UAAS,cAAc,EAAE,eAAuB,MAAM;QAElE,IAAG,cAAc,EAAE,aAAa,EAAE,WAAW,EAAC;YAC7C,IAAI,EAAE,GAAI,cAA8B,CAAC;YAGzC,IAAI,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAgB,CAAC;YACjD,IAAG,IAAI,EAAC;gBACP,OAAO,IAAI,CAAC,QAAQ,CAAC;aACrB;iBACG;gBACH,IAAI,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;gBAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC7B,EAAE,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;gBAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC;aACrB;SACD;aACI,IAAG,OAAO,cAAc,IAAI,QAAQ,EAAC;YACzC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACvE;aACG;YACH,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC1C;IACF,CAAC,CAAA;IAGD,IAAI,CAAC,KAAK,GAAG,UAA+F,KAAQ,EAAE,GAAY;QACjI,IAAI,CAAC,GAAG,IAAI,OAAO,EAAE,CAAC;QACtB,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;QAEZ,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;QAClB,OAAO,CAAC,CAAC;IACV,CAAC,CAAA;IAED,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,EAAE,CAAC;IAC1B,IAAI,CAAC,GAAW,CAAC,OAAmB,GAAG,IAAI,CAAC;IAK9C,IAAI,CAAC,SAAS,GAAG,CAAC,eAAyB,EAAE,MAAsC,EAAC,EAAE;QAErF,IAAG,eAAe,IAAI,CAAC,MAAM,EAAC;YAC7B,IAAG,OAAO,eAAe,IAAI,QAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,EAAC;gBAC9F,MAAM,GAAG,eAAsB,CAAC;gBAChC,eAAe,GAAG,QAAQ,CAAC;aAC3B;SACD;QAED,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAG,OAAO,MAAM,IAAI,QAAQ,EAAC;YAC5B,gBAAgB,GAAG,MAAM,CAAC;SAC1B;aACG;YACH,IAAI,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAG,OAAO,OAAO,IAAI,QAAQ,EAAC;gBAC7B,gBAAgB,GAAG,OAAO,CAAC;aAC3B;iBACG;aAEH;SACD;QACD,MAAM,UAAU,GAAG,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1D,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC;QAC7B,UAAU,CAAC,WAAW,GAAG,gBAAgB,CAAC;QAC1C,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,IAAI,CAAC,MAAM,GAAG,CAAC,OAAO,EAAE,EAAE;QACzB,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAA;IAED;QACC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACtC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACnB,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,UAAS,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAEhC,IAAI,IAAI,CAAC;gBACT,IAAI,KAAK,CAAC;gBACV;oBACC,IAAG,CAAC,YAAY,aAAa,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,IAAI,CAAC,YAAY,OAAO,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC;wBAC/N,IAAI,GAAG,CAAC,CAAC;wBACT,KAAK,GAAG,CAAC,CAAC;qBACV;oBACD,IAAG,CAAC,YAAY,aAAa,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,IAAI,CAAC,YAAY,OAAO,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC;wBAC/N,IAAG,IAAI;4BAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;wBACrE,IAAI,GAAG,CAAC,CAAC;wBACT,KAAK,GAAG,CAAC,CAAC;qBACV;oBAED,IAAG,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC;wBACpB,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;qBACjB;iBAQD;gBAED;oBACC,IAAG,KAAK,EAAC;wBACR,KAAI,IAAI,CAAC,IAAI,KAAK,EAAE;4BACnB,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;4BACpB,IAAG,IAAI,YAAY,OAAO;gCAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;4BAC/C,IAAG,YAAY,CAAC,CAAC,CAAC,EAAE;gCACnB,IAAG,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;oCAClC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,CAAC;iCACrE;gCAED,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;6BACzC;iCAAM;gCACN,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;6BACnB;yBACD;qBACD;iBACD;gBAED;oBACC,IAAG,IAAI,YAAY,aAAa,EAAC;wBAGhC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;qBAClB;yBACI,IAAG,IAAI,YAAY,IAAI,EAAC;wBAC5B,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;qBAC3B;yBACI,IAAG,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,EAAC;wBACrC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;qBACnD;yBACG;wBAEH,IAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAC;4BACtC,IAAG,IAAI,YAAY,OAAO,EAAC;gCAC1B,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;6BACnB;4BACD,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;yBACzC;qBACD;iBACD;gBAED,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAmB1B,CAAC,CAAC;YACF,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SACzB;KACD;IAED;QACC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YAC9C,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YAC3B,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SACzB;KACD;IAED,OAAO,IAA2B,CAAC;AACpC,CAAC,CAAA;AAED,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AAEtB,eAAe,GAAG,CAAC"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default class Binding {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { IBinding, IWatcher } from "dothtml-interfaces";
|
|
2
|
+
export default class Binding<T = any, Td = T> implements IBinding<T, Td> {
|
|
3
|
+
_source: IWatcher<T>;
|
|
4
|
+
_transform: {
|
|
5
|
+
display?: (v: T) => Td;
|
|
6
|
+
read?: (v: string) => T;
|
|
7
|
+
};
|
|
8
|
+
_get(): Td;
|
|
9
|
+
_set(v: string | number | boolean): void;
|
|
10
|
+
_subscribe(subscriber: any): number;
|
|
11
|
+
_unsubscribe(id: number): void;
|
|
12
|
+
constructor(source: IWatcher<T>);
|
|
7
13
|
}
|
|
@@ -1,41 +1,20 @@
|
|
|
1
|
-
import VMetaNode from "../v-meta-nodes/v-meta-node";
|
|
2
|
-
import CollectionVdom from "../vdom-nodes/collection-vdom";
|
|
3
|
-
import { ConditionalVdom } from "../vdom-nodes/conditional-vdom";
|
|
4
|
-
import { HtmlVdom } from "../vdom-nodes/html-vdom";
|
|
5
|
-
import { TextVdom } from "../vdom-nodes/text-vdom";
|
|
6
|
-
import ReactiveAttr from "./reactive-attr";
|
|
7
|
-
import ReactiveStyle from "./reactive-style";
|
|
8
1
|
export default class Binding {
|
|
9
|
-
|
|
10
|
-
this.
|
|
11
|
-
|
|
2
|
+
_get() {
|
|
3
|
+
let v = this._transform?.display ? this._transform.display(this._source.value) : this._source.value;
|
|
4
|
+
return v;
|
|
12
5
|
}
|
|
13
|
-
|
|
14
|
-
let value = this.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
this.item.update();
|
|
26
|
-
}
|
|
27
|
-
else if (this.item instanceof ReactiveStyle) {
|
|
28
|
-
this.item.vStyle.updateProp(this.item.prop, value);
|
|
29
|
-
}
|
|
30
|
-
else if (this.item instanceof CollectionVdom) {
|
|
31
|
-
this.item.updateList();
|
|
32
|
-
}
|
|
33
|
-
else if (this.item instanceof ConditionalVdom) {
|
|
34
|
-
this.item.updateConditions();
|
|
35
|
-
}
|
|
36
|
-
else if (this.item instanceof Function) {
|
|
37
|
-
this.item(value);
|
|
38
|
-
}
|
|
6
|
+
_set(v) {
|
|
7
|
+
let value = this._transform?.read ? this._transform.read(v) : v;
|
|
8
|
+
this._source.value = value;
|
|
9
|
+
}
|
|
10
|
+
_subscribe(subscriber) {
|
|
11
|
+
return this._source._subscribe(this, subscriber);
|
|
12
|
+
}
|
|
13
|
+
_unsubscribe(id) {
|
|
14
|
+
this._source._detachBinding(id);
|
|
15
|
+
}
|
|
16
|
+
constructor(source) {
|
|
17
|
+
this._source = source;
|
|
39
18
|
}
|
|
40
19
|
}
|
|
41
20
|
//# sourceMappingURL=binding.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../../src/reactivity/binding.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../../src/reactivity/binding.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,OAAO,OAAO;IAQ3B,IAAI;QAEH,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAsB,CAAC;QAErH,OAAO,CAAC,CAAC;IACV,CAAC;IAED,IAAI,CAAC,CAAwB;QAC5B,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAW,CAAC,CAAC,CAAC,CAAC,CAAiB,CAAC;QAC1F,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,UAAe;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,YAAY,CAAC,EAAU;QACtB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,YAAY,MAAmB;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,CAAC;CACD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import VMetaNode from "../v-meta-nodes/v-meta-node";
|
|
2
|
+
import CollectionVdom from "../vdom-nodes/collection-vdom";
|
|
3
|
+
import { ConditionalVdom } from "../vdom-nodes/conditional-vdom";
|
|
4
|
+
import { HtmlVdom } from "../vdom-nodes/html-vdom";
|
|
5
|
+
import { TextVdom } from "../vdom-nodes/text-vdom";
|
|
6
|
+
import ReactiveAttr from "./reactive-attr";
|
|
7
|
+
import ReactiveStyle from "./reactive-style";
|
|
8
|
+
export default class Subscription {
|
|
9
|
+
constructor(boundReactive, item) {
|
|
10
|
+
this.boundReactive = boundReactive;
|
|
11
|
+
this.item = item;
|
|
12
|
+
}
|
|
13
|
+
update() {
|
|
14
|
+
let value = this.boundReactive._get();
|
|
15
|
+
if (this.item instanceof TextVdom) {
|
|
16
|
+
this.item.textNode.textContent = value ?? "";
|
|
17
|
+
}
|
|
18
|
+
else if (this.item instanceof HtmlVdom) {
|
|
19
|
+
this.item.updateHtml(value);
|
|
20
|
+
}
|
|
21
|
+
else if (this.item instanceof ReactiveAttr) {
|
|
22
|
+
this.item.elementVdom.setAttr(this.item.attribute, this.boundReactive);
|
|
23
|
+
}
|
|
24
|
+
else if (this.item instanceof VMetaNode) {
|
|
25
|
+
this.item.update();
|
|
26
|
+
}
|
|
27
|
+
else if (this.item instanceof ReactiveStyle) {
|
|
28
|
+
this.item.vStyle.updateProp(this.item.prop, value);
|
|
29
|
+
}
|
|
30
|
+
else if (this.item instanceof CollectionVdom) {
|
|
31
|
+
this.item.updateList();
|
|
32
|
+
}
|
|
33
|
+
else if (this.item instanceof ConditionalVdom) {
|
|
34
|
+
this.item.updateConditions();
|
|
35
|
+
}
|
|
36
|
+
else if (this.item instanceof Function) {
|
|
37
|
+
this.item(value);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=subscription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../src/reactivity/subscription.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAM7C,MAAM,CAAC,OAAO,OAAO,YAAY;IAIhC,YAAY,aAAuB,EAAE,IAAS;QAC7C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAGD,MAAM;QACL,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAEtC,IAAG,IAAI,CAAC,IAAI,YAAY,QAAQ,EAAC;YAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,KAAe,IAAI,EAAE,CAAC;SACvD;aACI,IAAG,IAAI,CAAC,IAAI,YAAY,QAAQ,EAAC;YACrC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAC5B;aACI,IAAG,IAAI,CAAC,IAAI,YAAY,YAAY,EAAC;YACzC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SACvE;aACI,IAAG,IAAI,CAAC,IAAI,YAAY,SAAS,EAAC;YACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;SACnB;aACI,IAAG,IAAI,CAAC,IAAI,YAAY,aAAa,EAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACnD;aACI,IAAG,IAAI,CAAC,IAAI,YAAY,cAAc,EAAC;YAE3C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;SACvB;aACI,IAAG,IAAI,CAAC,IAAI,YAAY,eAAe,EAAC;YAE5C,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC7B;aACI,IAAG,IAAI,CAAC,IAAI,YAAY,QAAQ,EAAC;YACrC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjB;IACF,CAAC;CACD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { IBinding, IWatcher } from "dothtml-interfaces";
|
|
2
|
+
import Binding from "./binding";
|
|
3
|
+
import Subscription from "./subscription";
|
|
4
|
+
export default class Watcher<T = any> implements IWatcher<T> {
|
|
5
|
+
bindAs<Td>(transform: ((v: T) => Td) | {
|
|
6
|
+
display?: (v: T) => Td;
|
|
7
|
+
read?: (v: string) => T;
|
|
8
|
+
}): IBinding<T, Td>;
|
|
9
|
+
bind(): Binding<T, T>;
|
|
10
|
+
_value: T;
|
|
11
|
+
key: string;
|
|
12
|
+
allBindings: Record<number, Subscription>;
|
|
13
|
+
constructor();
|
|
14
|
+
get value(): T;
|
|
15
|
+
set value(v: T);
|
|
16
|
+
private updater;
|
|
17
|
+
nextId: number;
|
|
18
|
+
subscribe(callback: Function): any;
|
|
19
|
+
_subscribe(boundReactive: IBinding, item: any): number;
|
|
20
|
+
_detachBinding(id: number): void;
|
|
21
|
+
updateObservers(): void;
|
|
22
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import Binding from "./binding";
|
|
2
|
+
import Subscription from "./subscription";
|
|
3
|
+
const TEXT_OFFSET = 0;
|
|
4
|
+
const HTML_OFFSET = 1;
|
|
5
|
+
const ATTR_OFFSET = 2;
|
|
6
|
+
const ATTR_COLLECTION_OFFSET = 3;
|
|
7
|
+
const STYLE_OFFSET = 4;
|
|
8
|
+
const COND_OFFSET = 5;
|
|
9
|
+
const ARRAY_OFFSET = 6;
|
|
10
|
+
const CB_OFFSET = 7;
|
|
11
|
+
const CATEGORIES = CB_OFFSET + 1;
|
|
12
|
+
export default class Watcher {
|
|
13
|
+
bindAs(transform) {
|
|
14
|
+
let br = new Binding(this);
|
|
15
|
+
if (transform["call"] && transform["apply"]) {
|
|
16
|
+
br._transform = {
|
|
17
|
+
display: transform
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
br._transform = transform;
|
|
22
|
+
}
|
|
23
|
+
return br;
|
|
24
|
+
}
|
|
25
|
+
bind() {
|
|
26
|
+
return new Binding(this);
|
|
27
|
+
}
|
|
28
|
+
constructor() {
|
|
29
|
+
this.allBindings = {};
|
|
30
|
+
this.nextId = 1;
|
|
31
|
+
}
|
|
32
|
+
get value() {
|
|
33
|
+
return this._value;
|
|
34
|
+
}
|
|
35
|
+
set value(v) {
|
|
36
|
+
this._value = v;
|
|
37
|
+
this.updater(this._value);
|
|
38
|
+
}
|
|
39
|
+
updater(value) {
|
|
40
|
+
for (let b in this.allBindings) {
|
|
41
|
+
this.allBindings[b].update();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
subscribe(callback) {
|
|
45
|
+
let br = new Binding(this);
|
|
46
|
+
return br._subscribe(callback);
|
|
47
|
+
}
|
|
48
|
+
_subscribe(boundReactive, item) {
|
|
49
|
+
let id = this.nextId++;
|
|
50
|
+
this.allBindings[id] = new Subscription(boundReactive, item);
|
|
51
|
+
return id;
|
|
52
|
+
}
|
|
53
|
+
_detachBinding(id) {
|
|
54
|
+
delete this.allBindings[id];
|
|
55
|
+
}
|
|
56
|
+
updateObservers() {
|
|
57
|
+
let updatedValue = this.value;
|
|
58
|
+
this.updater(updatedValue);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=watcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/reactivity/watcher.ts"],"names":[],"mappings":"AAUA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,WAAW,GAAG,CAAC,CAAC;AAGtB,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,SAAS,GAAG,CAAC,CAAC;AAEpB,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC;AAEjC,MAAM,CAAC,OAAO,OAAO,OAAO;IAE3B,MAAM,CAAK,SAGV;QACA,IAAI,EAAE,GAAG,IAAI,OAAO,CAAQ,IAAI,CAAoB,CAAC;QAErD,IAAG,SAAS,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,EAAC;YAC1C,EAAE,CAAC,UAAU,GAAG;gBACf,OAAO,EAAE,SAAuB;aAChC,CAAC;SACF;aACG;YACH,EAAE,CAAC,UAAU,GAAG,SAAgB,CAAC;SACjC;QAED,OAAO,EAAE,CAAC;IACX,CAAC;IAED,IAAI;QACH,OAAO,IAAI,OAAO,CAAO,IAAI,CAAC,CAAC;IAChC,CAAC;IAOD;QAFA,gBAAW,GAAiC,EAAE,CAAC;QAwB/C,WAAM,GAAG,CAAC,CAAC;IArBX,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,IAAI,KAAK,CAAC,CAAI;QACb,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAKhB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAEO,OAAO,CAAC,KAAQ;QACvB,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAC7B;IACF,CAAC;IAID,SAAS,CAAC,QAAkB;QAC3B,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,UAAU,CAAC,aAAuB,EAAE,IAAS;QAC5C,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAE7D,OAAO,EAAE,CAAC;IACX,CAAC;IAED,cAAc,CAAC,EAAU;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAID,eAAe;QACd,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAE9B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC;CAED"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Binding from "../reactivity/binding";
|
|
2
2
|
import VMetaNode from "./v-meta-node";
|
|
3
3
|
export default class AttributeVNode extends VMetaNode {
|
|
4
4
|
attr: string;
|
|
5
|
-
value: Record<string, string |
|
|
5
|
+
value: Record<string, string | Binding>;
|
|
6
6
|
target: HTMLElement;
|
|
7
|
-
observables: Record<number,
|
|
7
|
+
observables: Record<number, Binding>;
|
|
8
8
|
constructor(attrName: any, attrValue: any);
|
|
9
9
|
render(target: HTMLElement): void;
|
|
10
10
|
update(): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import Binding from "../reactivity/binding";
|
|
2
|
+
import Watcher from "../reactivity/watcher";
|
|
3
3
|
import VMetaNode from "./v-meta-node";
|
|
4
4
|
export default class AttributeVNode extends VMetaNode {
|
|
5
5
|
constructor(attrName, attrValue) {
|
|
@@ -13,9 +13,9 @@ export default class AttributeVNode extends VMetaNode {
|
|
|
13
13
|
{
|
|
14
14
|
for (let k in this.value) {
|
|
15
15
|
let v = this.value[k];
|
|
16
|
-
if (v instanceof
|
|
16
|
+
if (v instanceof Watcher)
|
|
17
17
|
v = v.bind();
|
|
18
|
-
if (v && v instanceof
|
|
18
|
+
if (v && v instanceof Binding) {
|
|
19
19
|
let id = v._subscribe(this);
|
|
20
20
|
this.observables[id] = v;
|
|
21
21
|
}
|
|
@@ -32,9 +32,9 @@ export default class AttributeVNode extends VMetaNode {
|
|
|
32
32
|
for (let k in this.value) {
|
|
33
33
|
let v = this.value[k];
|
|
34
34
|
if (v) {
|
|
35
|
-
if (v instanceof
|
|
35
|
+
if (v instanceof Watcher)
|
|
36
36
|
v = v.bind();
|
|
37
|
-
if (!(v instanceof
|
|
37
|
+
if (!(v instanceof Binding) || v._get()) {
|
|
38
38
|
tokens.push(k);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attribute-v-node.js","sourceRoot":"","sources":["../../src/v-meta-nodes/attribute-v-node.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"attribute-v-node.js","sourceRoot":"","sources":["../../src/v-meta-nodes/attribute-v-node.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,SAAS,MAAM,eAAe,CAAC;AAMtC,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,SAAS;IAQpD,YAAY,QAAQ,EAAE,SAAS;QAC9B,KAAK,EAAE,CAAC;QAHT,gBAAW,GAA4B,EAAE,CAAC;QAIzC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,MAAmB;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB;YACC,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAC;gBACvB,IAAI,CAAC,GAAI,IAAI,CAAC,KAAa,CAAC,CAAC,CAAC,CAAC;gBAE/B,IAAG,CAAC,YAAY,OAAO;oBAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBAEtC,IAAG,CAAC,IAAI,CAAC,YAAY,OAAO,EAAC;oBAC5B,IAAI,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC5B,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;iBACzB;aACD;SACD;QAED;YACC,IAAI,CAAC,MAAM,EAAE,CAAC;SACd;IACF,CAAC;IAED,MAAM;QACL,IAAG,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAExB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAC;YACvB,IAAI,CAAC,GAAI,IAAI,CAAC,KAAa,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAG,CAAC,EAAC;gBACJ,IAAG,CAAC,YAAY,OAAO;oBAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBACtC,IAAG,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAC;oBACtC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACf;aACD;SACD;QACD,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,QAAQ;QACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAC;YAC7B,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1B;QAED,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACvB,CAAC;CACD"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { IDotCss } from "dothtml-interfaces";
|
|
2
2
|
import VMetaNode from "./v-meta-node";
|
|
3
|
-
import
|
|
3
|
+
import Binding from "../reactivity/binding";
|
|
4
4
|
export default class StyleVNode extends VMetaNode {
|
|
5
5
|
target: NodeListOf<Element> | HTMLElement | string;
|
|
6
6
|
document: Document;
|
|
7
7
|
shadowRoot: ShadowRoot;
|
|
8
8
|
styleValue: IDotCss;
|
|
9
|
-
observables: Array<
|
|
9
|
+
observables: Array<Binding>;
|
|
10
10
|
observableIds: Array<number>;
|
|
11
11
|
constructor(styleValue: IDotCss);
|
|
12
12
|
render(target: HTMLElement | string, document?: Document, shadowRoot?: ShadowRoot): void;
|
|
@@ -4,7 +4,7 @@ import CssFunctionBuilderVStyle from "../v-style-nodes/css-function-builder-v-st
|
|
|
4
4
|
import FilterVStyle from "../v-style-nodes/filter-v-style";
|
|
5
5
|
import TransformVStyle from "../v-style-nodes/transform-v-style";
|
|
6
6
|
import { formatCssLength } from "../css/format-css-type";
|
|
7
|
-
import
|
|
7
|
+
import Binding from "../reactivity/binding";
|
|
8
8
|
export default class StyleVNode extends VMetaNode {
|
|
9
9
|
constructor(styleValue) {
|
|
10
10
|
super();
|
|
@@ -14,7 +14,7 @@ export default class StyleVNode extends VMetaNode {
|
|
|
14
14
|
{
|
|
15
15
|
for (let prop in this.styleValue) {
|
|
16
16
|
let value = this.styleValue[prop];
|
|
17
|
-
if (value instanceof
|
|
17
|
+
if (value instanceof Binding) {
|
|
18
18
|
this.observables.push(value);
|
|
19
19
|
}
|
|
20
20
|
else if (typeof value === "object") {
|
|
@@ -40,13 +40,13 @@ export default class StyleVNode extends VMetaNode {
|
|
|
40
40
|
let funcValue = funcArray[i];
|
|
41
41
|
for (let k in funcValue) {
|
|
42
42
|
let v = funcValue[k];
|
|
43
|
-
if (v instanceof
|
|
43
|
+
if (v instanceof Binding) {
|
|
44
44
|
this.observables.push(v);
|
|
45
45
|
}
|
|
46
46
|
else if (v instanceof Array) {
|
|
47
47
|
for (let j in v) {
|
|
48
48
|
let w = v[j];
|
|
49
|
-
if (w instanceof
|
|
49
|
+
if (w instanceof Binding) {
|
|
50
50
|
this.observables.push(w);
|
|
51
51
|
}
|
|
52
52
|
}
|
|
@@ -82,7 +82,7 @@ export default class StyleVNode extends VMetaNode {
|
|
|
82
82
|
let cssValue;
|
|
83
83
|
{
|
|
84
84
|
let value = this.styleValue[prop];
|
|
85
|
-
if (value instanceof
|
|
85
|
+
if (value instanceof Binding) {
|
|
86
86
|
cssValue = value._get();
|
|
87
87
|
}
|
|
88
88
|
else if (value instanceof CssFunctionBuilderVStyle) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style-v-node.js","sourceRoot":"","sources":["../../src/v-meta-nodes/style-v-node.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,wBAAwB,MAAM,+CAA+C,CAAC;AACrF,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAC3D,OAAO,eAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,
|
|
1
|
+
{"version":3,"file":"style-v-node.js","sourceRoot":"","sources":["../../src/v-meta-nodes/style-v-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Binding from "../reactivity/binding";
|
|
2
2
|
import ReactiveStyle from "../reactivity/reactive-style";
|
|
3
3
|
import VStyle from "./v-style";
|
|
4
4
|
export default class BaseVStyle extends VStyle {
|
|
@@ -30,7 +30,7 @@ export default class BaseVStyle extends VStyle {
|
|
|
30
30
|
this.target = null;
|
|
31
31
|
}
|
|
32
32
|
renderAndSetPropValue(prop, value) {
|
|
33
|
-
if (value instanceof
|
|
33
|
+
if (value instanceof Binding) {
|
|
34
34
|
let id = value._subscribe(new ReactiveStyle(this, prop));
|
|
35
35
|
this.subscriptions[id] = value;
|
|
36
36
|
this.updateProp(prop, value._get());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-v-style.js","sourceRoot":"","sources":["../../src/v-style-nodes/base-v-style.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"base-v-style.js","sourceRoot":"","sources":["../../src/v-style-nodes/base-v-style.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Binding from "../reactivity/binding";
|
|
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 | Binding;
|
|
8
|
+
f: (v: number | boolean | string | Binding) => string;
|
|
9
9
|
}>;
|
|
10
10
|
}>;
|
|
11
11
|
readonly propName: string;
|
|
12
|
-
subscriptions: Record<number,
|
|
12
|
+
subscriptions: Record<number, Binding>;
|
|
13
13
|
target: HTMLElement;
|
|
14
14
|
constructor(propName: string);
|
|
15
15
|
toString(): string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Binding from "../reactivity/binding";
|
|
2
2
|
export default class CssFunctionBuilderVStyle {
|
|
3
3
|
constructor(propName) {
|
|
4
4
|
this.funcs = [];
|
|
@@ -9,7 +9,7 @@ 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
|
|
12
|
+
if (arg.v instanceof Binding) {
|
|
13
13
|
return arg.f(arg.v._get());
|
|
14
14
|
}
|
|
15
15
|
else {
|
|
@@ -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,OAAO,MAAM,uBAAuB,CAAC;AAI5C,MAAM,CAAC,OAAO,OAAgB,wBAAwB;IAWrD,YAAY,QAAgB;QAR5B,UAAK,GAGA,EAAE,CAAC;QAER,kBAAa,GAA4B,EAAE,CAAC;QAI3C,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,OAAO,EAAC;oBAC3B,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,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Binding from "../reactivity/binding";
|
|
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: Binding<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 | Binding, k: string) => Vdom;
|
|
14
14
|
startNode: Node;
|
|
15
15
|
endNode: Node;
|
|
16
16
|
observerId: number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { deepEqual } from "../helpers/tools";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import Binding from "../reactivity/binding";
|
|
3
|
+
import Watcher from "../reactivity/watcher";
|
|
4
4
|
import { TextVdom } from "./text-vdom";
|
|
5
5
|
import { Vdom } from "./vdom";
|
|
6
6
|
export default class CollectionVdom extends Vdom {
|
|
@@ -12,7 +12,7 @@ export default class CollectionVdom extends Vdom {
|
|
|
12
12
|
this.renderCallback = renderCallback;
|
|
13
13
|
}
|
|
14
14
|
_render(target) {
|
|
15
|
-
if (this.value instanceof
|
|
15
|
+
if (this.value instanceof Binding) {
|
|
16
16
|
this.observerId = this.value._subscribe(this);
|
|
17
17
|
}
|
|
18
18
|
this.startNode = target.ownerDocument.createTextNode("");
|
|
@@ -22,7 +22,7 @@ export default class CollectionVdom extends Vdom {
|
|
|
22
22
|
this.updateList();
|
|
23
23
|
}
|
|
24
24
|
_unrender() {
|
|
25
|
-
if (this.observerId && this.value instanceof
|
|
25
|
+
if (this.observerId && this.value instanceof Binding) {
|
|
26
26
|
this.value._unsubscribe(this.observerId);
|
|
27
27
|
this.observerId = null;
|
|
28
28
|
}
|
|
@@ -46,7 +46,7 @@ export default class CollectionVdom extends Vdom {
|
|
|
46
46
|
let mappedData;
|
|
47
47
|
{
|
|
48
48
|
let unmappedCollection = null;
|
|
49
|
-
if (this.value instanceof
|
|
49
|
+
if (this.value instanceof Binding) {
|
|
50
50
|
unmappedCollection = this.value._get();
|
|
51
51
|
key = this.value._source.key ?? null;
|
|
52
52
|
}
|
|
@@ -56,7 +56,7 @@ export default class CollectionVdom extends Vdom {
|
|
|
56
56
|
if (unmappedCollection instanceof Array) {
|
|
57
57
|
mappedData = unmappedCollection.map((v, i) => {
|
|
58
58
|
let kv = !!key ? v[key] : null;
|
|
59
|
-
let reactive = new
|
|
59
|
+
let reactive = new Watcher();
|
|
60
60
|
return {
|
|
61
61
|
vdom: null,
|
|
62
62
|
value: v,
|
|
@@ -71,7 +71,7 @@ export default class CollectionVdom extends Vdom {
|
|
|
71
71
|
for (let k in unmappedCollection) {
|
|
72
72
|
let v = unmappedCollection[k];
|
|
73
73
|
let kv = !!key ? v[key] : k;
|
|
74
|
-
let reactive = new
|
|
74
|
+
let reactive = new Watcher();
|
|
75
75
|
mappedData.push({
|
|
76
76
|
vdom: null,
|
|
77
77
|
value: v,
|
|
@@ -116,7 +116,7 @@ export default class CollectionVdom extends Vdom {
|
|
|
116
116
|
if (existing && ((candidate == existing) || (key && candidate.keyValue == existing.keyValue))) {
|
|
117
117
|
if (!deepEqual(existing.value, candidate.value)) {
|
|
118
118
|
existing.vdom._unrender();
|
|
119
|
-
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);
|
|
120
120
|
existing.value = candidate.value;
|
|
121
121
|
existing.vdom._renderBefore(existing.afterNode);
|
|
122
122
|
}
|
|
@@ -139,7 +139,7 @@ export default class CollectionVdom extends Vdom {
|
|
|
139
139
|
}
|
|
140
140
|
candidate.afterNode = beforeTarget;
|
|
141
141
|
candidate.observableIndex._set(ni);
|
|
142
|
-
let content = this.renderCallback(candidate.value, this.value instanceof
|
|
142
|
+
let content = this.renderCallback(candidate.value, this.value instanceof Binding ? candidate.observableIndex : ni, candidate.keyValue);
|
|
143
143
|
if (content instanceof Vdom) {
|
|
144
144
|
candidate.vdom = content;
|
|
145
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,
|
|
1
|
+
{"version":3,"file":"collection-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/collection-vdom.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import 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,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: Binding | 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 Binding from "../reactivity/binding";
|
|
2
2
|
import { Vdom } from "./vdom";
|
|
3
3
|
export class ConditionalVdom extends Vdom {
|
|
4
4
|
constructor() {
|
|
@@ -22,7 +22,7 @@ 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
|
|
25
|
+
if (condition instanceof Binding) {
|
|
26
26
|
C.observerId = condition._subscribe(this);
|
|
27
27
|
}
|
|
28
28
|
this.updateConditions();
|
|
@@ -41,7 +41,7 @@ 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
|
|
44
|
+
if (C.condition instanceof Binding) {
|
|
45
45
|
C.observerId = C.condition._subscribe(this);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
@@ -59,7 +59,7 @@ 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
|
|
62
|
+
if (C.condition instanceof Binding) {
|
|
63
63
|
C.condition._unsubscribe(C.observerId);
|
|
64
64
|
C.observerId = 0;
|
|
65
65
|
}
|
|
@@ -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 Binding ? C.condition._get() : C.condition) {
|
|
76
76
|
newIndex = c;
|
|
77
77
|
break;
|
|
78
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/conditional-vdom.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"conditional-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/conditional-vdom.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,MAAM,OAAO,eAAgB,SAAQ,IAAI;IAAzC;;QAES,eAAU,GAA+B,EAAE,CAAA;QAC3C,WAAM,GAAG,KAAK,CAAC;QACf,kBAAa,GAAG,CAAC,CAAC,CAAC;IAmH5B,CAAC;IAjHA,YAAY,CAAC,SAAyB,EAAE,KAAoB,EAAE,IAAI,GAAG,KAAK;QAEzE,IAAG,IAAI,CAAC,MAAM,EAAC;YACd,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACvE;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,IAAI,CAAC,GAAG;YACP,SAAS;YACT,KAAK;YACL,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,CAAC;SACb,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAExB,IAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAC;YAGjC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAEhE,IAAG,SAAS,YAAY,OAAO,EAAC;gBAC/B,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAC1C;YAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACxB;IACF,CAAC;IAED,SAAS,CAAC,CAAsB,EAAE,IAAiB;QAClD,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,IAAiB;QAMxB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YAC9C,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAG,CAAC,CAAC,WAAW,EAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;aAC7C;YAGD,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAExB,IAAG,CAAC,CAAC,SAAS,YAAY,OAAO,EAAC;gBACjC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAC5C;SACD;QAGD,IAAG,IAAI,CAAC,UAAU,CAAC,MAAM;YACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,CAAC;IAED,SAAS;QACR,IAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAC;YACjC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gBAC9C,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;gBAC1B,IAAI,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC;gBAC1B,IAAI,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC;gBAEtB,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACvC,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACnC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;gBAEnB,IAAG,CAAC,CAAC,SAAS,YAAY,OAAO,EAAC;oBACjC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBACvC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;iBACjB;aACD;YACD,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;SACxB;IACF,CAAC;IAED,gBAAgB;QACf,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,aAA4B,CAAC;QACvE,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;QAClB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YAC9C,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAE3B,IAAG,CAAC,CAAC,SAAS,YAAY,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAC;gBACpE,QAAQ,GAAG,CAAC,CAAC;gBACb,MAAM;aACN;SACD;QAED,IAAG,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAC;YACjC;gBACC,IAAG,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,EAAC;oBAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC5C,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;iBACpB;aACD;YAED;gBACC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;gBAC9B,IAAG,QAAQ,IAAI,CAAC,CAAC,EAAC;oBACjB,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAClC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;iBACnC;aACD;SACD;IACF,CAAC;CACD"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { IDotComponent, IDotCore } from "dothtml-interfaces";
|
|
2
|
-
import
|
|
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
|
|
7
|
+
import Binding from "../reactivity/binding";
|
|
8
8
|
type ParentVdom = ContainerVdom | ConditionalVdom | ElementVdom;
|
|
9
9
|
export declare class ContainerVdom extends Vdom {
|
|
10
10
|
_children: Array<Vdom>;
|
|
@@ -15,12 +15,12 @@ export declare class ContainerVdom extends Vdom {
|
|
|
15
15
|
_render(node: HTMLElement): void;
|
|
16
16
|
_unrender(): void;
|
|
17
17
|
attr(A: string, c: any): void;
|
|
18
|
-
html(c: string |
|
|
19
|
-
text(c: string |
|
|
20
|
-
md(c: string |
|
|
18
|
+
html(c: string | Watcher | Binding): this;
|
|
19
|
+
text(c: string | Watcher | Binding): this;
|
|
20
|
+
md(c: string | Watcher): this;
|
|
21
21
|
mount(c: IDotComponent): this;
|
|
22
|
-
when(condition:
|
|
23
|
-
otherwiseWhen(condition:
|
|
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;
|
|
24
24
|
otherwise(then: ContainerVdom | string | boolean | number): this;
|
|
25
25
|
each(collection: ObservableCollection, callback: () => Vdom): this;
|
|
26
26
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Watcher from "../reactivity/watcher";
|
|
2
2
|
import CollectionVdom from "./collection-vdom";
|
|
3
3
|
import { ConditionalVdom } from "./conditional-vdom";
|
|
4
4
|
import ElementVdom from "./element-vdom";
|
|
@@ -7,7 +7,7 @@ import { TextVdom } from "./text-vdom";
|
|
|
7
7
|
import { Vdom } from "./vdom";
|
|
8
8
|
import { ComponentVdom } from "./component-vdom";
|
|
9
9
|
function reduceReactive(value) {
|
|
10
|
-
if (value instanceof
|
|
10
|
+
if (value instanceof Watcher)
|
|
11
11
|
return value.bind();
|
|
12
12
|
else
|
|
13
13
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/container-vdom.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"container-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/container-vdom.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { DOT_VDOM_PROP_NAME } from "../constants";
|
|
2
|
-
import
|
|
2
|
+
import Watcher from "../reactivity/watcher";
|
|
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
|
|
7
|
+
import Binding from "../reactivity/binding";
|
|
8
8
|
import ReactiveAttr from "../reactivity/reactive-attr";
|
|
9
9
|
export class AttributeItem {
|
|
10
10
|
}
|
|
@@ -75,7 +75,7 @@ export default class ElementVdom extends Vdom {
|
|
|
75
75
|
}
|
|
76
76
|
setAttr(attr, value) {
|
|
77
77
|
attr = (attr ?? "").toLowerCase();
|
|
78
|
-
if (value && typeof value === "object" && !(value instanceof Array || value instanceof
|
|
78
|
+
if (value && typeof value === "object" && !(value instanceof Array || value instanceof Binding || value instanceof Watcher)) {
|
|
79
79
|
switch (attr) {
|
|
80
80
|
case "style": {
|
|
81
81
|
value = new StyleVNode(value);
|
|
@@ -105,7 +105,7 @@ export default class ElementVdom extends Vdom {
|
|
|
105
105
|
else if (value instanceof Array) {
|
|
106
106
|
node.setAttribute(attr, value.join(" "));
|
|
107
107
|
}
|
|
108
|
-
else if (value instanceof
|
|
108
|
+
else if (value instanceof Binding) {
|
|
109
109
|
this.renderAttr(attr, value._get(), node);
|
|
110
110
|
let id = value._subscribe(new ReactiveAttr(this, attr));
|
|
111
111
|
this.attributeObserverIds.push({ id: id, observable: value });
|
|
@@ -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,
|
|
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,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAC9D,OAAO,UAAU,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAEvD,MAAM,OAAO,aAAa;CAGzB;AAED,IAAI,kBAAkB,GAAG,IAAI,CAAC;AAE9B,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,IAAI;IAa5C,YAAY,GAAa,EAAE,GAAW;QACrC,KAAK,EAAE,CAAC;QAZT,aAAQ,GAAkB,IAAI,CAAC;QAE/B,QAAG,GAAW,IAAI,CAAC;QACX,eAAU,GAAuC,EAAE,CAAC;QACpD,WAAM,GAAsD,EAAE,CAAC;QAC/D,yBAAoB,GAA6C,EAAE,CAAC;QACpE,kBAAa,GAAmE,EAAE,CAAC;QACnF,eAAU,GAA0B,EAAE,CAAC;QACvC,gBAAW,GAAsB,EAAE,CAAC;QAK3C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,IAAiB;QAExB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;QAExC,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SACrD;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE/B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YAC1C,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;SACrC;QAED,IAAG,IAAI,CAAC,QAAQ,EAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACpC;IACF,CAAC;IAED,SAAS;QACR,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAG,IAAI,CAAC,aAAa,EAAC;YACrB,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC1B;QAED,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACjD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;SAClC;QACD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAE9B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YAC9C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAE3B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YAC/C,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SAC/B;QACD,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QAE5B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;YACxD,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACtC;QACD,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,QAAQ;QACP,IAAG,IAAI,CAAC,OAAO,EAAC;YACf,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;SAC9B;aACG;YACH,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;SACxB;IACF,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,KAAK;QAElB,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAElC,IAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,YAAY,OAAO,IAAI,KAAK,YAAY,OAAO,CAAC,EAAC;YAG1H,QAAO,IAAI,EAAC;gBACX,KAAK,OAAO,CAAC,CAAC;oBACb,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;oBAC9B,MAAM;iBACN;gBACD,OAAO,CAAC,CAAC;oBACR,KAAK,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBACxC,MAAM;iBACN;aACD;SACD;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC9B,IAAG,IAAI,CAAC,OAAO,EAAC;YACf,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3C;IACF,CAAC;IAEO,UAAU,CAAC,IAAY,EAAE,KAAyB,EAAE,IAAiB;QAE5E,IAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAC;YACzD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;SACpC;aACI,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,SAAS,EAAC;YAC1E,IAAG,KAAK;gBAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;;gBACzC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SAChC;aACI,IAAG,KAAK,YAAY,KAAK,EAAC;YAE9B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SACzC;aACI,IAAI,KAAK,YAAY,OAAO,EAAC;YACjC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;YAC1C,IAAI,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAC,CAAC,CAAC;YAG5D,IAAG,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,SAAS,EAAC;gBACvC,IAAI,OAAO,GAAG,IAAI,CAAC;gBACnB,IAAG,CAAC,IAAI,CAAC,aAAa,EAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,EAAC,EAAE;wBACzB,IAAG,CAAC,kBAAkB;4BAAE,OAAO;wBAC/B,IAAG,OAAO;4BAAE,YAAY,CAAC,OAAO,CAAC,CAAC;wBAClC,OAAO,GAAG,UAAU,CAAC,GAAE,EAAE;4BACxB,kBAAkB,GAAG,KAAK,CAAC;4BAC3B,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,OAA4B,CAAC,IAAI,CAAC,CAAC,CAAC;4BACrD,kBAAkB,GAAG,IAAI,CAAC;4BAC1B,OAAO,GAAG,IAAI,CAAC;wBAChB,CAAC,EAAE,GAAG,CAAC,CAAC;oBACT,CAAC,CAAA;oBAEA,IAAI,CAAC,OAA4B,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;iBACjF;aACD;SAGD;aAMI,IAAG,KAAK,YAAY,cAAc,EAAC;YACvC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAEnB;aACI,IAAG,KAAK,YAAY,UAAU,EAAC;YACnC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAEnB;aACG;SAGH;IACF,CAAC;IAED,gBAAgB,CAAC,KAAa,EAAE,QAA0B;QACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAAC,CAAC;QACpD,IAAG,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAEO,WAAW,CAAC,CAAS,EAAE,QAA0B;QACxD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;CACD"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Binding from "../reactivity/binding";
|
|
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 | Binding;
|
|
7
7
|
observerId: number;
|
|
8
|
-
constructor(html: string |
|
|
8
|
+
constructor(html: string | Binding);
|
|
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 Binding from "../reactivity/binding";
|
|
3
3
|
import { Vdom } from "./vdom";
|
|
4
4
|
export class HtmlVdom extends Vdom {
|
|
5
5
|
constructor(html) {
|
|
@@ -19,7 +19,7 @@ export class HtmlVdom extends Vdom {
|
|
|
19
19
|
}
|
|
20
20
|
_render(target) {
|
|
21
21
|
let html = "";
|
|
22
|
-
if (this.html instanceof
|
|
22
|
+
if (this.html instanceof Binding) {
|
|
23
23
|
html = this.html._get() ?? "";
|
|
24
24
|
this.observerId = this.html._subscribe(this);
|
|
25
25
|
}
|
|
@@ -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
|
|
44
|
+
if (this.observerId && this.html instanceof Binding) {
|
|
45
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 Binding ? 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,OAAO,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,OAAO,QAAS,SAAQ,IAAI;IAQjC,YAAY,IAAoB;QAC/B,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,OAAO,EAAC;YAC/B,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,OAAO,EAAC;YAClD,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,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACpE,CAAC;CACD"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Binding from "../reactivity/binding";
|
|
2
2
|
import { Vdom } from "./vdom";
|
|
3
3
|
export declare class TextVdom extends Vdom {
|
|
4
|
-
text: string | boolean | number |
|
|
4
|
+
text: string | boolean | number | Binding;
|
|
5
5
|
textNode: Node;
|
|
6
6
|
observerId: number;
|
|
7
|
-
constructor(text: string | boolean | number |
|
|
7
|
+
constructor(text: string | boolean | number | Binding);
|
|
8
8
|
_render(node: HTMLElement): void;
|
|
9
9
|
_unrender(): void;
|
|
10
10
|
toString(): string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Binding from "../reactivity/binding";
|
|
2
2
|
import { Vdom } from "./vdom";
|
|
3
3
|
export class TextVdom extends Vdom {
|
|
4
4
|
constructor(text) {
|
|
@@ -8,7 +8,7 @@ export class TextVdom extends Vdom {
|
|
|
8
8
|
this.text = text;
|
|
9
9
|
}
|
|
10
10
|
_render(node) {
|
|
11
|
-
if (this.text instanceof
|
|
11
|
+
if (this.text instanceof Binding) {
|
|
12
12
|
this.textNode = node.ownerDocument.createTextNode(this.text._get() ?? "");
|
|
13
13
|
this.observerId = this.text._subscribe(this);
|
|
14
14
|
}
|
|
@@ -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
|
|
25
|
+
if (this.observerId && this.text instanceof Binding) {
|
|
26
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 Binding ? this.text._get() : this.text) ?? "");
|
|
32
32
|
let div = document.createElement("div");
|
|
33
33
|
div.appendChild(temp);
|
|
34
34
|
return div.innerHTML;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/text-vdom.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"text-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/text-vdom.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAI9B,MAAM,OAAO,QAAS,SAAQ,IAAI;IAMjC,YAAY,IAAmC;QAC9C,KAAK,EAAE,CAAC;QAJT,aAAQ,GAAS,IAAI,CAAC;QACtB,eAAU,GAAG,CAAC,CAAC;QAId,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,IAAiB;QACxB,IAAG,IAAI,CAAC,IAAI,YAAY,OAAO,EAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC7C;aACG;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;SACxE;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,SAAS;QACR,IAAG,IAAI,CAAC,QAAQ,EAAC;YAEhB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACrB;QAED,IAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,YAAY,OAAO,EAAC;YAClD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACpB;IACF,CAAC;IAED,QAAQ;QACP,IAAI,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,YAAY,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACxG,IAAI,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACxC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,GAAG,CAAC,SAAS,CAAC;IACtB,CAAC;CACD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dothtml",
|
|
3
|
-
"version": "6.0.0-beta.
|
|
3
|
+
"version": "6.0.0-beta.39",
|
|
4
4
|
"description": "DOThtml is a client-side web building framework written in TypeScript.",
|
|
5
5
|
"main": "./build_module/index.js",
|
|
6
6
|
"exports": "./build_module/index.js",
|
|
@@ -53,6 +53,6 @@
|
|
|
53
53
|
"webpack-cli": "^5.1.4"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"dothtml-interfaces": "^0.4.
|
|
56
|
+
"dothtml-interfaces": "^0.4.4"
|
|
57
57
|
}
|
|
58
58
|
}
|