@joist/templating 4.2.4-next.9 → 4.2.4
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/LICENSE +2 -2
- package/package.json +1 -1
- package/src/lib/define.ts +26 -6
- package/src/lib/elements/async.element.test.ts +37 -1
- package/src/lib/elements/async.element.ts +12 -8
- package/src/lib/elements/bind.element.test.ts +60 -5
- package/src/lib/elements/bind.element.ts +30 -19
- package/src/lib/elements/for.element.test.ts +54 -9
- package/src/lib/elements/for.element.ts +91 -41
- package/src/lib/elements/if.element.test.ts +314 -260
- package/src/lib/elements/if.element.ts +40 -17
- package/src/lib/elements/scope.element.test.ts +1 -2
- package/src/lib/elements/scope.element.ts +0 -7
- package/src/lib/elements/value.element.test.ts +33 -1
- package/src/lib/elements/value.element.ts +13 -8
- package/src/lib/events.ts +1 -1
- package/target/lib/define.d.ts +16 -6
- package/target/lib/define.js +13 -6
- package/target/lib/define.js.map +1 -1
- package/target/lib/elements/async.element.d.ts +2 -6
- package/target/lib/elements/async.element.js +15 -3
- package/target/lib/elements/async.element.js.map +1 -1
- package/target/lib/elements/async.element.test.d.ts +1 -1
- package/target/lib/elements/async.element.test.js +30 -1
- package/target/lib/elements/async.element.test.js.map +1 -1
- package/target/lib/elements/bind.element.d.ts +2 -6
- package/target/lib/elements/bind.element.js +34 -16
- package/target/lib/elements/bind.element.js.map +1 -1
- package/target/lib/elements/bind.element.test.d.ts +1 -1
- package/target/lib/elements/bind.element.test.js +50 -5
- package/target/lib/elements/bind.element.test.js.map +1 -1
- package/target/lib/elements/for.element.d.ts +3 -12
- package/target/lib/elements/for.element.js +84 -57
- package/target/lib/elements/for.element.js.map +1 -1
- package/target/lib/elements/for.element.test.d.ts +1 -2
- package/target/lib/elements/for.element.test.js +41 -5
- package/target/lib/elements/for.element.test.js.map +1 -1
- package/target/lib/elements/if.element.d.ts +3 -6
- package/target/lib/elements/if.element.js +42 -10
- package/target/lib/elements/if.element.js.map +1 -1
- package/target/lib/elements/if.element.test.d.ts +1 -1
- package/target/lib/elements/if.element.test.js +273 -1
- package/target/lib/elements/if.element.test.js.map +1 -1
- package/target/lib/elements/scope.element.d.ts +0 -5
- package/target/lib/elements/scope.element.js +0 -1
- package/target/lib/elements/scope.element.js.map +1 -1
- package/target/lib/elements/scope.element.test.d.ts +1 -2
- package/target/lib/elements/scope.element.test.js +1 -2
- package/target/lib/elements/scope.element.test.js.map +1 -1
- package/target/lib/elements/value.element.d.ts +2 -6
- package/target/lib/elements/value.element.js +15 -3
- package/target/lib/elements/value.element.js.map +1 -1
- package/target/lib/elements/value.element.test.d.ts +1 -1
- package/target/lib/elements/value.element.test.js +26 -1
- package/target/lib/elements/value.element.test.js.map +1 -1
- package/target/lib/events.d.ts +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "
|
|
1
|
+
import "../define.js";
|
|
2
2
|
import { fixtureSync, html } from "@open-wc/testing";
|
|
3
3
|
import { assert } from "chai";
|
|
4
4
|
it("should pass props to child", () => {
|
|
@@ -40,10 +40,10 @@ it("should pass props to specified child", () => {
|
|
|
40
40
|
});
|
|
41
41
|
}}
|
|
42
42
|
>
|
|
43
|
-
<j-bind attrs="href:href" target="#test">
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
</
|
|
43
|
+
<j-bind attrs="href:href" target="#test"></j-bind>
|
|
44
|
+
|
|
45
|
+
<a>Default</a>
|
|
46
|
+
<a id="test">Target</a>
|
|
47
47
|
</div>
|
|
48
48
|
`);
|
|
49
49
|
const anchor = element.querySelectorAll("a");
|
|
@@ -87,4 +87,49 @@ it("should default to the mapTo value if bindTo is not provided", () => {
|
|
|
87
87
|
assert.equal(input?.selectionStart, 8);
|
|
88
88
|
assert.equal(input?.selectionEnd, 8);
|
|
89
89
|
});
|
|
90
|
+
it("should write not update if the calculated value is the same as the old value", () => {
|
|
91
|
+
const element = fixtureSync(html `
|
|
92
|
+
<div
|
|
93
|
+
@joist::value=${(e) => {
|
|
94
|
+
e.update({ oldValue: { foo: "bar" }, newValue: { foo: "bar" } });
|
|
95
|
+
}}
|
|
96
|
+
>
|
|
97
|
+
<j-bind props="value:data.foo">
|
|
98
|
+
<input />
|
|
99
|
+
</j-bind>
|
|
100
|
+
</div>
|
|
101
|
+
`);
|
|
102
|
+
const input = element.querySelector("input");
|
|
103
|
+
assert.equal(input?.value, "");
|
|
104
|
+
});
|
|
105
|
+
it("should wait for depends-on before dispatching events", async () => {
|
|
106
|
+
let eventDispatched = false;
|
|
107
|
+
customElements.define("dependency-1", class extends HTMLElement {
|
|
108
|
+
});
|
|
109
|
+
customElements.define("dependency-2", class extends HTMLElement {
|
|
110
|
+
});
|
|
111
|
+
fixtureSync(html `
|
|
112
|
+
<div
|
|
113
|
+
@joist::value=${(e) => {
|
|
114
|
+
if (e.expression.bindTo === "href") {
|
|
115
|
+
eventDispatched = true;
|
|
116
|
+
e.update({
|
|
117
|
+
oldValue: null,
|
|
118
|
+
newValue: "$foo",
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}}
|
|
122
|
+
>
|
|
123
|
+
<j-bind attrs="href:href" depends-on="dependency-1,dependency-2">
|
|
124
|
+
<a>Hello World</a>
|
|
125
|
+
</j-bind>
|
|
126
|
+
</div>
|
|
127
|
+
`);
|
|
128
|
+
assert.isFalse(eventDispatched);
|
|
129
|
+
await Promise.all([
|
|
130
|
+
customElements.whenDefined("dependency-1"),
|
|
131
|
+
customElements.whenDefined("dependency-2"),
|
|
132
|
+
]);
|
|
133
|
+
assert.isTrue(eventDispatched);
|
|
134
|
+
});
|
|
90
135
|
//# sourceMappingURL=bind.element.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bind.element.test.js","sourceRoot":"","sources":["../../../src/lib/elements/bind.element.test.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"bind.element.test.js","sourceRoot":"","sources":["../../../src/lib/elements/bind.element.test.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAI9B,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACpC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAA;;sBAEZ,CAAC,CAAkB,EAAE,EAAE;QACrC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACnC,CAAC,CAAC,MAAM,CAAC;gBACP,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACrC,CAAC,CAAC,MAAM,CAAC;gBACP,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE;oBACR,KAAK,EAAE,QAAQ;iBAChB;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;;;;;;GAMJ,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAE1C,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;IAC9C,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAA;;sBAEZ,CAAC,CAAkB,EAAE,EAAE;QACrC,CAAC,CAAC,MAAM,CAAC;YACP,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;IACL,CAAC;;;;;;;GAOJ,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAE7C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;IAClC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAA;;sBAEZ,CAAC,CAAkB,EAAE,EAAE;QACrC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;;;;;;;;;;;GAWJ,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAE7C,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;IACrE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAA;;sBAEZ,CAAC,CAAkB,EAAE,EAAE;QACrC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;;;;;;GAMJ,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAE7C,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;IACtF,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAA;;sBAEZ,CAAC,CAAkB,EAAE,EAAE;QACrC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;;;;;;GAMJ,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAE7C,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;IACpE,IAAI,eAAe,GAAG,KAAK,CAAC;IAE5B,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,KAAM,SAAQ,WAAW;KAAG,CAAC,CAAC;IACpE,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,KAAM,SAAQ,WAAW;KAAG,CAAC,CAAC;IAEpE,WAAW,CAAC,IAAI,CAAA;;sBAEI,CAAC,CAAkB,EAAE,EAAE;QACrC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACnC,eAAe,GAAG,IAAI,CAAC;YACvB,CAAC,CAAC,MAAM,CAAC;gBACP,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;;;;;;GAMJ,CAAC,CAAC;IAGH,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAGhC,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC;QAC1C,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC;KAC3C,CAAC,CAAC;IAGH,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC"}
|
|
@@ -1,23 +1,14 @@
|
|
|
1
|
-
declare global {
|
|
2
|
-
interface HTMLElementTagNameMap {
|
|
3
|
-
"j-for": JositForElement;
|
|
4
|
-
"j-for-scope": JForScope;
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
1
|
export interface EachCtx<T> {
|
|
8
2
|
value: T | null;
|
|
9
3
|
index: number | null;
|
|
10
4
|
position: number | null;
|
|
11
5
|
}
|
|
12
|
-
export declare class
|
|
13
|
-
accessor each: EachCtx<T>;
|
|
14
|
-
accessor key: unknown;
|
|
15
|
-
}
|
|
16
|
-
export declare class JositForElement extends HTMLElement {
|
|
6
|
+
export declare class JoistForElement extends HTMLElement {
|
|
17
7
|
#private;
|
|
18
8
|
accessor bind: string;
|
|
19
9
|
accessor key: string;
|
|
20
|
-
|
|
10
|
+
accessor dependsOn: string;
|
|
11
|
+
connectedCallback(): Promise<void>;
|
|
21
12
|
createFromEmpty(): void;
|
|
22
13
|
updateItems(): void;
|
|
23
14
|
disconnectedCallback(): void;
|
|
@@ -1,36 +1,28 @@
|
|
|
1
1
|
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
2
|
import { attr, element, query, css, html } from "@joist/element";
|
|
3
|
-
import {
|
|
3
|
+
import { effect, observe } from "@joist/observable";
|
|
4
4
|
import { JoistValueEvent } from "../events.js";
|
|
5
5
|
import { JExpression } from "../expression.js";
|
|
6
|
-
let
|
|
7
|
-
let
|
|
8
|
-
tagName: "j-for-scope",
|
|
9
|
-
shadowDom: [css `:host{display: contents;}`, html `<slot></slot>`],
|
|
10
|
-
})];
|
|
11
|
-
let _classDescriptor;
|
|
12
|
-
let _classExtraInitializers = [];
|
|
13
|
-
let _classThis;
|
|
14
|
-
let _classSuper = HTMLElement;
|
|
6
|
+
let JoistForScopeContainer = (() => {
|
|
7
|
+
let _instanceExtraInitializers = [];
|
|
15
8
|
let _each_decorators;
|
|
16
9
|
let _each_initializers = [];
|
|
17
10
|
let _each_extraInitializers = [];
|
|
18
|
-
let
|
|
19
|
-
|
|
20
|
-
let _key_extraInitializers = [];
|
|
21
|
-
var JForScope = class extends _classSuper {
|
|
22
|
-
static { _classThis = this; }
|
|
11
|
+
let _onChange_decorators;
|
|
12
|
+
return class JoistForScopeContainer {
|
|
23
13
|
static {
|
|
24
|
-
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(
|
|
25
|
-
_each_decorators = [
|
|
26
|
-
|
|
14
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
15
|
+
_each_decorators = [observe()];
|
|
16
|
+
_onChange_decorators = [effect()];
|
|
27
17
|
__esDecorate(this, null, _each_decorators, { kind: "accessor", name: "each", static: false, private: false, access: { has: obj => "each" in obj, get: obj => obj.each, set: (obj, value) => { obj.each = value; } }, metadata: _metadata }, _each_initializers, _each_extraInitializers);
|
|
28
|
-
__esDecorate(this, null,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
18
|
+
__esDecorate(this, null, _onChange_decorators, { kind: "method", name: "onChange", static: false, private: false, access: { has: obj => "onChange" in obj, get: obj => obj.onChange }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
19
|
+
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
20
|
+
}
|
|
21
|
+
host = __runInitializers(this, _instanceExtraInitializers);
|
|
22
|
+
get key() {
|
|
23
|
+
return this.host.getAttribute("key");
|
|
33
24
|
}
|
|
25
|
+
#callbacks = [];
|
|
34
26
|
#each_accessor_storage = __runInitializers(this, _each_initializers, {
|
|
35
27
|
value: null,
|
|
36
28
|
index: null,
|
|
@@ -38,20 +30,38 @@ let JForScope = (() => {
|
|
|
38
30
|
});
|
|
39
31
|
get each() { return this.#each_accessor_storage; }
|
|
40
32
|
set each(value) { this.#each_accessor_storage = value; }
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
33
|
+
constructor(host) {
|
|
34
|
+
__runInitializers(this, _each_extraInitializers);
|
|
35
|
+
if (host == null) {
|
|
36
|
+
throw new Error("JForScope required a host element");
|
|
37
|
+
}
|
|
38
|
+
this.host = host;
|
|
39
|
+
this.host.addEventListener("joist::value", (e) => {
|
|
40
|
+
if (e.expression.bindTo === "each") {
|
|
41
|
+
e.stopPropagation();
|
|
42
|
+
this.#callbacks.push(e.update);
|
|
43
|
+
e.update({
|
|
44
|
+
oldValue: null,
|
|
45
|
+
newValue: this.each,
|
|
46
|
+
firstChange: true,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
onChange(changes) {
|
|
52
|
+
const change = changes.get("each");
|
|
53
|
+
for (let cb of this.#callbacks) {
|
|
54
|
+
cb({
|
|
55
|
+
oldValue: change.oldValue,
|
|
56
|
+
newValue: change.newValue,
|
|
57
|
+
firstChange: false,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
47
60
|
}
|
|
48
61
|
};
|
|
49
|
-
return JForScope = _classThis;
|
|
50
62
|
})();
|
|
51
|
-
|
|
52
|
-
let JositForElement = (() => {
|
|
63
|
+
let JoistForElement = (() => {
|
|
53
64
|
let _classDecorators = [element({
|
|
54
|
-
tagName: "j-for",
|
|
55
65
|
shadowDom: [css `:host{display:contents;}`, html `<slot></slot>`],
|
|
56
66
|
})];
|
|
57
67
|
let _classDescriptor;
|
|
@@ -64,16 +74,23 @@ let JositForElement = (() => {
|
|
|
64
74
|
let _key_decorators;
|
|
65
75
|
let _key_initializers = [];
|
|
66
76
|
let _key_extraInitializers = [];
|
|
67
|
-
|
|
77
|
+
let _dependsOn_decorators;
|
|
78
|
+
let _dependsOn_initializers = [];
|
|
79
|
+
let _dependsOn_extraInitializers = [];
|
|
80
|
+
var JoistForElement = class extends _classSuper {
|
|
68
81
|
static { _classThis = this; }
|
|
69
82
|
static {
|
|
70
83
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
71
84
|
_bind_decorators = [attr()];
|
|
72
85
|
_key_decorators = [attr()];
|
|
86
|
+
_dependsOn_decorators = [attr({
|
|
87
|
+
name: "depends-on",
|
|
88
|
+
})];
|
|
73
89
|
__esDecorate(this, null, _bind_decorators, { kind: "accessor", name: "bind", static: false, private: false, access: { has: obj => "bind" in obj, get: obj => obj.bind, set: (obj, value) => { obj.bind = value; } }, metadata: _metadata }, _bind_initializers, _bind_extraInitializers);
|
|
74
90
|
__esDecorate(this, null, _key_decorators, { kind: "accessor", name: "key", static: false, private: false, access: { has: obj => "key" in obj, get: obj => obj.key, set: (obj, value) => { obj.key = value; } }, metadata: _metadata }, _key_initializers, _key_extraInitializers);
|
|
91
|
+
__esDecorate(this, null, _dependsOn_decorators, { kind: "accessor", name: "dependsOn", static: false, private: false, access: { has: obj => "dependsOn" in obj, get: obj => obj.dependsOn, set: (obj, value) => { obj.dependsOn = value; } }, metadata: _metadata }, _dependsOn_initializers, _dependsOn_extraInitializers);
|
|
75
92
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
76
|
-
|
|
93
|
+
JoistForElement = _classThis = _classDescriptor.value;
|
|
77
94
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
78
95
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
79
96
|
}
|
|
@@ -83,19 +100,25 @@ let JositForElement = (() => {
|
|
|
83
100
|
#key_accessor_storage = (__runInitializers(this, _bind_extraInitializers), __runInitializers(this, _key_initializers, ""));
|
|
84
101
|
get key() { return this.#key_accessor_storage; }
|
|
85
102
|
set key(value) { this.#key_accessor_storage = value; }
|
|
86
|
-
#
|
|
103
|
+
#dependsOn_accessor_storage = (__runInitializers(this, _key_extraInitializers), __runInitializers(this, _dependsOn_initializers, ""));
|
|
104
|
+
get dependsOn() { return this.#dependsOn_accessor_storage; }
|
|
105
|
+
set dependsOn(value) { this.#dependsOn_accessor_storage = value; }
|
|
106
|
+
#template = (__runInitializers(this, _dependsOn_extraInitializers), query("template", this));
|
|
87
107
|
#items = [];
|
|
88
108
|
#scopes = new Map();
|
|
89
|
-
connectedCallback() {
|
|
109
|
+
async connectedCallback() {
|
|
90
110
|
const template = this.#template();
|
|
91
111
|
if (this.firstElementChild !== template) {
|
|
92
112
|
throw new Error("The first Node in j-for needs to be a template");
|
|
93
113
|
}
|
|
94
114
|
let currentScope = template.nextElementSibling;
|
|
95
|
-
while (currentScope instanceof
|
|
96
|
-
this.#scopes.set(currentScope.key, currentScope);
|
|
115
|
+
while (currentScope instanceof JoistForScopeContainer) {
|
|
116
|
+
this.#scopes.set(String(currentScope.key), currentScope);
|
|
97
117
|
currentScope = currentScope.nextElementSibling;
|
|
98
118
|
}
|
|
119
|
+
if (this.dependsOn) {
|
|
120
|
+
await Promise.all(this.dependsOn.split(",").map((tag) => window.customElements.whenDefined(tag)));
|
|
121
|
+
}
|
|
99
122
|
const token = new JExpression(this.bind);
|
|
100
123
|
this.dispatchEvent(new JoistValueEvent(token, ({ newValue, oldValue }) => {
|
|
101
124
|
if (newValue !== oldValue) {
|
|
@@ -115,8 +138,6 @@ let JositForElement = (() => {
|
|
|
115
138
|
}));
|
|
116
139
|
}
|
|
117
140
|
createFromEmpty() {
|
|
118
|
-
const template = this.#template();
|
|
119
|
-
const templateContent = template.content;
|
|
120
141
|
const keyProperty = this.key;
|
|
121
142
|
const fragment = document.createDocumentFragment();
|
|
122
143
|
let index = 0;
|
|
@@ -125,18 +146,16 @@ let JositForElement = (() => {
|
|
|
125
146
|
if (keyProperty && hasProperty(value, keyProperty)) {
|
|
126
147
|
key = value[keyProperty];
|
|
127
148
|
}
|
|
128
|
-
const scope =
|
|
129
|
-
scope.
|
|
130
|
-
scope.key = key;
|
|
149
|
+
const scope = this.#createScopeContainer();
|
|
150
|
+
scope.host.setAttribute("key", String(key));
|
|
131
151
|
scope.each = { position: index + 1, index, value };
|
|
132
|
-
fragment.appendChild(scope);
|
|
133
|
-
this.#scopes.set(key, scope);
|
|
152
|
+
fragment.appendChild(scope.host);
|
|
153
|
+
this.#scopes.set(String(key), scope);
|
|
134
154
|
index++;
|
|
135
155
|
}
|
|
136
156
|
this.append(fragment);
|
|
137
157
|
}
|
|
138
158
|
updateItems() {
|
|
139
|
-
const template = this.#template();
|
|
140
159
|
const leftoverScopes = new Map(this.#scopes);
|
|
141
160
|
const keyProperty = this.key;
|
|
142
161
|
let index = 0;
|
|
@@ -147,38 +166,46 @@ let JositForElement = (() => {
|
|
|
147
166
|
}
|
|
148
167
|
let scope = leftoverScopes.get(key);
|
|
149
168
|
if (!scope) {
|
|
150
|
-
scope =
|
|
151
|
-
|
|
152
|
-
this.#scopes.set(key, scope);
|
|
169
|
+
scope = scope = this.#createScopeContainer();
|
|
170
|
+
this.#scopes.set(String(key), scope);
|
|
153
171
|
}
|
|
154
172
|
else {
|
|
155
173
|
leftoverScopes.delete(key);
|
|
156
174
|
}
|
|
157
175
|
if (scope.key !== key || scope.each.value !== value) {
|
|
158
|
-
scope.key
|
|
176
|
+
scope.host.setAttribute("key", String(key));
|
|
159
177
|
scope.each = { position: index + 1, index, value };
|
|
160
178
|
}
|
|
161
179
|
const child = this.children[index + 1];
|
|
162
|
-
if (child !== scope) {
|
|
163
|
-
this.insertBefore(scope, child);
|
|
180
|
+
if (child !== scope.host) {
|
|
181
|
+
this.insertBefore(scope.host, child);
|
|
164
182
|
}
|
|
165
183
|
index++;
|
|
166
184
|
}
|
|
167
185
|
for (const scope of leftoverScopes.values()) {
|
|
168
|
-
scope.remove();
|
|
186
|
+
scope.host.remove();
|
|
169
187
|
}
|
|
170
188
|
}
|
|
171
189
|
disconnectedCallback() {
|
|
172
190
|
for (const scope of this.#scopes.values()) {
|
|
173
|
-
scope.remove();
|
|
191
|
+
scope.host.remove();
|
|
174
192
|
}
|
|
175
193
|
this.#scopes.clear();
|
|
176
194
|
this.#items = [];
|
|
177
195
|
}
|
|
196
|
+
#createScopeContainer() {
|
|
197
|
+
const template = this.#template();
|
|
198
|
+
const content = template.content.firstElementChild;
|
|
199
|
+
if (content === null) {
|
|
200
|
+
throw new Error("template must contain a single parent element");
|
|
201
|
+
}
|
|
202
|
+
const fragment = document.importNode(content, true);
|
|
203
|
+
return new JoistForScopeContainer(fragment);
|
|
204
|
+
}
|
|
178
205
|
};
|
|
179
|
-
return
|
|
206
|
+
return JoistForElement = _classThis;
|
|
180
207
|
})();
|
|
181
|
-
export {
|
|
208
|
+
export { JoistForElement };
|
|
182
209
|
function isIterable(obj) {
|
|
183
210
|
return obj != null && typeof obj[Symbol.iterator] === "function";
|
|
184
211
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for.element.js","sourceRoot":"","sources":["../../../src/lib/elements/for.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"for.element.js","sourceRoot":"","sources":["../../../src/lib/elements/for.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAmB,MAAM,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAc,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;IAQzC,sBAAsB;;;;;;iBAAtB,sBAAsB;;;gCASzB,OAAO,EAAE;oCA6BT,MAAM,EAAE;YA5BT,iKAAS,IAAI,6BAAJ,IAAI,mFAIX;YAyBF,2KAAA,QAAQ,6DAUP;;;QAhDD,IAAI,GADA,mDAAsB,CACZ;QAEd,IAAI,GAAG;YACL,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,UAAU,GAAiD,EAAE,CAAC;QAG9D,qEAA4B;YAC1B,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI;SACf,EAAC;QAJF,IAAS,IAAI,0CAIX;QAJF,IAAS,IAAI,gDAIX;QAEF,YAAY,IAAoB;;YAC9B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YAEjB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE;gBAC/C,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACnC,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBAE/B,CAAC,CAAC,MAAM,CAAC;wBACP,QAAQ,EAAE,IAAI;wBACd,QAAQ,EAAE,IAAI,CAAC,IAAI;wBACnB,WAAW,EAAE,IAAI;qBAClB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;SACJ;QAGD,QAAQ,CAAC,OAAsB;YAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAuB,CAAC;YAEzD,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC/B,EAAE,CAAC;oBACD,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,WAAW,EAAE,KAAK;iBACnB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;;;IAOU,eAAe;4BAJ3B,OAAO,CAAC;YAEP,SAAS,EAAE,CAAC,GAAG,CAAA,0BAA0B,EAAE,IAAI,CAAA,eAAe,CAAC;SAChE,CAAC;;;;sBACmC,WAAW;;;;;;;;;;+BAAnB,SAAQ,WAAW;;;;gCAC7C,IAAI,EAAE;+BAGN,IAAI,EAAE;qCAGN,IAAI,CAAC;oBACJ,IAAI,EAAE,YAAY;iBACnB,CAAC;YAPF,iKAAS,IAAI,6BAAJ,IAAI,mFAAM;YAGnB,8JAAS,GAAG,6BAAH,GAAG,iFAAM;YAKlB,gLAAS,SAAS,6BAAT,SAAS,6FAAM;YAV1B,6KA4JC;;;YA5JY,uDAAe;;QAE1B,qEAAgB,EAAE,EAAC;QAAnB,IAAS,IAAI,0CAAM;QAAnB,IAAS,IAAI,gDAAM;QAGnB,sHAAe,EAAE,GAAC;QAAlB,IAAS,GAAG,yCAAM;QAAlB,IAAS,GAAG,+CAAM;QAKlB,iIAAqB,EAAE,GAAC;QAAxB,IAAS,SAAS,+CAAM;QAAxB,IAAS,SAAS,qDAAM;QAExB,SAAS,2DAAG,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,EAAC;QACpC,MAAM,GAAsB,EAAE,CAAC;QAC/B,OAAO,GAAG,IAAI,GAAG,EAAkC,CAAC;QAEpD,KAAK,CAAC,iBAAiB;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAElC,IAAI,IAAI,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACpE,CAAC;YAGD,IAAI,YAAY,GAAG,QAAQ,CAAC,kBAAkB,CAAC;YAC/C,OAAO,YAAY,YAAY,sBAAsB,EAAE,CAAC;gBACtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;gBACzD,YAAY,GAAG,YAAY,CAAC,kBAAkB,CAAC;YACjD,CAAC;YAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAC/E,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,CAAC,aAAa,CAChB,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACpD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBAC1B,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACzB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;oBACzB,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;oBACnB,CAAC;oBAID,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;wBAClC,IAAI,CAAC,eAAe,EAAE,CAAC;oBACzB,CAAC;yBAAM,CAAC;wBAEN,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QAID,eAAe;YACb,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC;YAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;YAEnD,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,IAAI,GAAG,GAAY,KAAK,CAAC;gBAEzB,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC;oBACnD,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC3B,CAAC;gBAED,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAE3C,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5C,KAAK,CAAC,IAAI,GAAG,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;gBAEnD,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;gBAErC,KAAK,EAAE,CAAC;YACV,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;QAID,WAAW;YACT,MAAM,cAAc,GAAG,IAAI,GAAG,CAAkC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC;YAE7B,IAAI,KAAK,GAAG,CAAC,CAAC;YAEd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,IAAI,GAAG,GAAY,KAAK,CAAC;gBAEzB,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC;oBACnD,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC3B,CAAC;gBAED,IAAI,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBAE7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACN,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7B,CAAC;gBAGD,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;oBACpD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC5C,KAAK,CAAC,IAAI,GAAG,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;gBACrD,CAAC;gBAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBAEvC,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;oBACzB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACvC,CAAC;gBAED,KAAK,EAAE,CAAC;YACV,CAAC;YAGD,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC5C,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;QAED,oBAAoB;YAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1C,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACtB,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,qBAAqB;YACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC;YAEnD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,CAAC;YAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAEpD,OAAO,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;;;;SA3JU,eAAe;AA8J5B,SAAS,UAAU,CAAc,GAAQ;IACvC,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC;AACnE,CAAC;AAED,SAAS,WAAW,CAAC,IAAa,EAAE,GAAW;IAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import "
|
|
2
|
-
import "./value.element.js";
|
|
1
|
+
import "../define.js";
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import "
|
|
2
|
-
import "./value.element.js";
|
|
1
|
+
import "../define.js";
|
|
3
2
|
import { fixtureSync, html } from "@open-wc/testing";
|
|
4
3
|
import { assert } from "chai";
|
|
5
4
|
it("should iterate over an iterable", () => {
|
|
@@ -102,13 +101,16 @@ it("should provide index and position information", () => {
|
|
|
102
101
|
>
|
|
103
102
|
<j-for bind="items">
|
|
104
103
|
<template>
|
|
105
|
-
<
|
|
106
|
-
|
|
104
|
+
<div class="item">
|
|
105
|
+
<j-val bind="each.value"></j-val>
|
|
106
|
+
(index: <j-val bind="each.index"></j-val>, position:
|
|
107
|
+
<j-val bind="each.position"></j-val>)
|
|
108
|
+
</div>
|
|
107
109
|
</template>
|
|
108
110
|
</j-for>
|
|
109
111
|
</div>
|
|
110
112
|
`);
|
|
111
|
-
const items = element.querySelectorAll("
|
|
113
|
+
const items = element.querySelectorAll(".item");
|
|
112
114
|
assert.equal(items.length, 3);
|
|
113
115
|
assert.equal(items[0].textContent?.trim().replaceAll("\n", "").replaceAll(" ", ""), "A(index:0,position:1)");
|
|
114
116
|
assert.equal(items[1].textContent?.trim().replaceAll("\n", "").replaceAll(" ", ""), "B(index:1,position:2)");
|
|
@@ -149,4 +151,38 @@ it("should maintain DOM order when items are reordered", () => {
|
|
|
149
151
|
assert.equal(items[1].textContent?.trim(), "First");
|
|
150
152
|
assert.equal(items[2].textContent?.trim(), "Second");
|
|
151
153
|
});
|
|
154
|
+
it("should wait for depends-on before dispatching events", async () => {
|
|
155
|
+
let eventDispatched = false;
|
|
156
|
+
customElements.define("dependency-1", class extends HTMLElement {
|
|
157
|
+
});
|
|
158
|
+
customElements.define("dependency-2", class extends HTMLElement {
|
|
159
|
+
});
|
|
160
|
+
fixtureSync(html `
|
|
161
|
+
<div
|
|
162
|
+
@joist::value=${(e) => {
|
|
163
|
+
if (e.expression.bindTo === "items") {
|
|
164
|
+
eventDispatched = true;
|
|
165
|
+
e.update({
|
|
166
|
+
oldValue: null,
|
|
167
|
+
newValue: ["A", "B", "C"],
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
}}
|
|
171
|
+
>
|
|
172
|
+
<j-for bind="items" depends-on="dependency-1,dependency-2">
|
|
173
|
+
<template>
|
|
174
|
+
<div class="item">
|
|
175
|
+
<j-val bind="each.value"></j-val>
|
|
176
|
+
</div>
|
|
177
|
+
</template>
|
|
178
|
+
</j-for>
|
|
179
|
+
</div>
|
|
180
|
+
`);
|
|
181
|
+
assert.isFalse(eventDispatched);
|
|
182
|
+
await Promise.all([
|
|
183
|
+
customElements.whenDefined("dependency-1"),
|
|
184
|
+
customElements.whenDefined("dependency-2"),
|
|
185
|
+
]);
|
|
186
|
+
assert.isTrue(eventDispatched);
|
|
187
|
+
});
|
|
152
188
|
//# sourceMappingURL=for.element.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for.element.test.js","sourceRoot":"","sources":["../../../src/lib/elements/for.element.test.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"for.element.test.js","sourceRoot":"","sources":["../../../src/lib/elements/for.element.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
declare global {
|
|
2
|
-
interface HTMLElementTagNameMap {
|
|
3
|
-
"j-if": JoistIfElement;
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
1
|
export declare class JoistIfElement extends HTMLElement {
|
|
7
2
|
#private;
|
|
8
3
|
accessor bind: string;
|
|
9
|
-
|
|
4
|
+
accessor target: string;
|
|
5
|
+
accessor dependsOn: string;
|
|
6
|
+
connectedCallback(): Promise<void>;
|
|
10
7
|
apply(value: unknown, isNegative: boolean): void;
|
|
11
8
|
disconnectedCallback(): void;
|
|
12
9
|
}
|
|
@@ -4,8 +4,7 @@ import { JoistValueEvent } from "../events.js";
|
|
|
4
4
|
import { JExpression } from "../expression.js";
|
|
5
5
|
let JoistIfElement = (() => {
|
|
6
6
|
let _classDecorators = [element({
|
|
7
|
-
|
|
8
|
-
shadowDom: [css `:host{display: contents;}`, html `<slot></slot>`],
|
|
7
|
+
shadowDom: [css `:host{display: contents}`, html `<slot></slot>`],
|
|
9
8
|
})];
|
|
10
9
|
let _classDescriptor;
|
|
11
10
|
let _classExtraInitializers = [];
|
|
@@ -14,12 +13,24 @@ let JoistIfElement = (() => {
|
|
|
14
13
|
let _bind_decorators;
|
|
15
14
|
let _bind_initializers = [];
|
|
16
15
|
let _bind_extraInitializers = [];
|
|
16
|
+
let _target_decorators;
|
|
17
|
+
let _target_initializers = [];
|
|
18
|
+
let _target_extraInitializers = [];
|
|
19
|
+
let _dependsOn_decorators;
|
|
20
|
+
let _dependsOn_initializers = [];
|
|
21
|
+
let _dependsOn_extraInitializers = [];
|
|
17
22
|
var JoistIfElement = class extends _classSuper {
|
|
18
23
|
static { _classThis = this; }
|
|
19
24
|
static {
|
|
20
25
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
21
26
|
_bind_decorators = [attr()];
|
|
27
|
+
_target_decorators = [attr()];
|
|
28
|
+
_dependsOn_decorators = [attr({
|
|
29
|
+
name: "depends-on",
|
|
30
|
+
})];
|
|
22
31
|
__esDecorate(this, null, _bind_decorators, { kind: "accessor", name: "bind", static: false, private: false, access: { has: obj => "bind" in obj, get: obj => obj.bind, set: (obj, value) => { obj.bind = value; } }, metadata: _metadata }, _bind_initializers, _bind_extraInitializers);
|
|
32
|
+
__esDecorate(this, null, _target_decorators, { kind: "accessor", name: "target", static: false, private: false, access: { has: obj => "target" in obj, get: obj => obj.target, set: (obj, value) => { obj.target = value; } }, metadata: _metadata }, _target_initializers, _target_extraInitializers);
|
|
33
|
+
__esDecorate(this, null, _dependsOn_decorators, { kind: "accessor", name: "dependsOn", static: false, private: false, access: { has: obj => "dependsOn" in obj, get: obj => obj.dependsOn, set: (obj, value) => { obj.dependsOn = value; } }, metadata: _metadata }, _dependsOn_initializers, _dependsOn_extraInitializers);
|
|
23
34
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
24
35
|
JoistIfElement = _classThis = _classDescriptor.value;
|
|
25
36
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
@@ -28,8 +39,16 @@ let JoistIfElement = (() => {
|
|
|
28
39
|
#bind_accessor_storage = __runInitializers(this, _bind_initializers, "");
|
|
29
40
|
get bind() { return this.#bind_accessor_storage; }
|
|
30
41
|
set bind(value) { this.#bind_accessor_storage = value; }
|
|
31
|
-
#
|
|
32
|
-
|
|
42
|
+
#target_accessor_storage = (__runInitializers(this, _bind_extraInitializers), __runInitializers(this, _target_initializers, ""));
|
|
43
|
+
get target() { return this.#target_accessor_storage; }
|
|
44
|
+
set target(value) { this.#target_accessor_storage = value; }
|
|
45
|
+
#dependsOn_accessor_storage = (__runInitializers(this, _target_extraInitializers), __runInitializers(this, _dependsOn_initializers, ""));
|
|
46
|
+
get dependsOn() { return this.#dependsOn_accessor_storage; }
|
|
47
|
+
set dependsOn(value) { this.#dependsOn_accessor_storage = value; }
|
|
48
|
+
#templates = (__runInitializers(this, _dependsOn_extraInitializers), queryAll("template", this));
|
|
49
|
+
#shouldShowIf = null;
|
|
50
|
+
#target = this;
|
|
51
|
+
async connectedCallback() {
|
|
33
52
|
const templates = Array.from(this.#templates());
|
|
34
53
|
if (templates.length === 0) {
|
|
35
54
|
throw new Error("j-if requires at least one template element");
|
|
@@ -43,8 +62,17 @@ let JoistIfElement = (() => {
|
|
|
43
62
|
if (templates.length === 2 && templates[0].hasAttribute("else")) {
|
|
44
63
|
[templates[0], templates[1]] = [templates[1], templates[0]];
|
|
45
64
|
}
|
|
46
|
-
this.#clean();
|
|
47
65
|
const token = new JExpression(this.bind);
|
|
66
|
+
const root = this.getRootNode();
|
|
67
|
+
if (this.target) {
|
|
68
|
+
const result = root.querySelector(this.target);
|
|
69
|
+
if (result) {
|
|
70
|
+
this.#target = result;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (this.dependsOn) {
|
|
74
|
+
await Promise.all(this.dependsOn.split(",").map((tag) => window.customElements.whenDefined(tag)));
|
|
75
|
+
}
|
|
48
76
|
this.dispatchEvent(new JoistValueEvent(token, ({ newValue, oldValue, firstChange }) => {
|
|
49
77
|
if (firstChange || newValue !== oldValue) {
|
|
50
78
|
this.apply(token.evaluate(newValue), token.isNegated);
|
|
@@ -52,18 +80,22 @@ let JoistIfElement = (() => {
|
|
|
52
80
|
}));
|
|
53
81
|
}
|
|
54
82
|
apply(value, isNegative) {
|
|
83
|
+
const shouldShowIf = isNegative ? !value : !!value;
|
|
84
|
+
if (shouldShowIf === this.#shouldShowIf) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this.#shouldShowIf = shouldShowIf;
|
|
55
88
|
this.#clean();
|
|
56
89
|
const templates = this.#templates();
|
|
57
|
-
const
|
|
58
|
-
const templateToUse = shouldShowIf ? templates[0] : templates[1];
|
|
90
|
+
const templateToUse = this.#shouldShowIf ? templates[0] : templates[1];
|
|
59
91
|
if (templateToUse) {
|
|
60
92
|
const content = document.importNode(templateToUse.content, true);
|
|
61
|
-
this.
|
|
93
|
+
this.#target.append(content);
|
|
62
94
|
}
|
|
63
95
|
}
|
|
64
96
|
#clean() {
|
|
65
|
-
while (!(this.lastChild instanceof HTMLTemplateElement)) {
|
|
66
|
-
this.lastChild
|
|
97
|
+
while (this.#target.lastChild && !(this.#target.lastChild instanceof HTMLTemplateElement)) {
|
|
98
|
+
this.#target.lastChild.remove();
|
|
67
99
|
}
|
|
68
100
|
}
|
|
69
101
|
disconnectedCallback() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"if.element.js","sourceRoot":"","sources":["../../../src/lib/elements/if.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"if.element.js","sourceRoot":"","sources":["../../../src/lib/elements/if.element.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import "
|
|
1
|
+
import "../define.js";
|