@joist/templating 4.5.0 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/package.json +1 -1
  2. package/src/lib/bind.ts +13 -4
  3. package/src/lib/elements/async.element.ts +4 -4
  4. package/src/lib/elements/bind.element.test.ts +2 -2
  5. package/src/lib/elements/bind.element.ts +4 -2
  6. package/src/lib/elements/for.element.test.ts +10 -10
  7. package/src/lib/elements/for.element.ts +5 -3
  8. package/src/lib/elements/if.element.ts +4 -2
  9. package/src/lib/events.ts +2 -2
  10. package/src/lib/expression.ts +4 -3
  11. package/target/lib/bind.d.ts +0 -5
  12. package/target/lib/bind.js +0 -45
  13. package/target/lib/bind.js.map +0 -1
  14. package/target/lib/bind.test.d.ts +0 -1
  15. package/target/lib/bind.test.js +0 -76
  16. package/target/lib/bind.test.js.map +0 -1
  17. package/target/lib/define.d.ts +0 -16
  18. package/target/lib/define.js +0 -14
  19. package/target/lib/define.js.map +0 -1
  20. package/target/lib/elements/async.element.d.ts +0 -13
  21. package/target/lib/elements/async.element.js +0 -133
  22. package/target/lib/elements/async.element.js.map +0 -1
  23. package/target/lib/elements/async.element.test.d.ts +0 -1
  24. package/target/lib/elements/async.element.test.js +0 -180
  25. package/target/lib/elements/async.element.test.js.map +0 -1
  26. package/target/lib/elements/bind.element.d.ts +0 -13
  27. package/target/lib/elements/bind.element.js +0 -144
  28. package/target/lib/elements/bind.element.js.map +0 -1
  29. package/target/lib/elements/bind.element.test.d.ts +0 -1
  30. package/target/lib/elements/bind.element.test.js +0 -150
  31. package/target/lib/elements/bind.element.test.js.map +0 -1
  32. package/target/lib/elements/for.element.d.ts +0 -15
  33. package/target/lib/elements/for.element.js +0 -215
  34. package/target/lib/elements/for.element.js.map +0 -1
  35. package/target/lib/elements/for.element.test.d.ts +0 -1
  36. package/target/lib/elements/for.element.test.js +0 -188
  37. package/target/lib/elements/for.element.test.js.map +0 -1
  38. package/target/lib/elements/if.element.d.ts +0 -9
  39. package/target/lib/elements/if.element.js +0 -108
  40. package/target/lib/elements/if.element.js.map +0 -1
  41. package/target/lib/elements/if.element.test.d.ts +0 -1
  42. package/target/lib/elements/if.element.test.js +0 -306
  43. package/target/lib/elements/if.element.test.js.map +0 -1
  44. package/target/lib/elements/scope.element.d.ts +0 -3
  45. package/target/lib/elements/scope.element.js +0 -37
  46. package/target/lib/elements/scope.element.js.map +0 -1
  47. package/target/lib/elements/scope.element.test.d.ts +0 -1
  48. package/target/lib/elements/scope.element.test.js +0 -24
  49. package/target/lib/elements/scope.element.test.js.map +0 -1
  50. package/target/lib/elements/value.element.d.ts +0 -5
  51. package/target/lib/elements/value.element.js +0 -62
  52. package/target/lib/elements/value.element.js.map +0 -1
  53. package/target/lib/elements/value.element.test.d.ts +0 -1
  54. package/target/lib/elements/value.element.test.js +0 -65
  55. package/target/lib/elements/value.element.test.js.map +0 -1
  56. package/target/lib/events.d.ts +0 -16
  57. package/target/lib/events.js +0 -10
  58. package/target/lib/events.js.map +0 -1
  59. package/target/lib/expression.d.ts +0 -13
  60. package/target/lib/expression.js +0 -87
  61. package/target/lib/expression.js.map +0 -1
  62. package/target/lib/expression.test.d.ts +0 -1
  63. package/target/lib/expression.test.js +0 -171
  64. package/target/lib/expression.test.js.map +0 -1
  65. package/target/lib.d.ts +0 -2
  66. package/target/lib.js +0 -3
  67. package/target/lib.js.map +0 -1
@@ -1,180 +0,0 @@
1
- import "../define.js";
2
- import { fixtureSync, html } from "@open-wc/testing";
3
- import { assert } from "chai";
4
- it("should show loading template when promise is pending", async () => {
5
- const element = fixtureSync(html `
6
- <div
7
- @joist::value=${(e) => {
8
- e.update({ oldValue: null, newValue: new Promise(() => { }) });
9
- }}
10
- >
11
- <j-async bind="test">
12
- <template loading>Loading...</template>
13
- <template success>Success!</template>
14
- <template error>Error!</template>
15
- </j-async>
16
- </div>
17
- `);
18
- assert.equal(element.textContent?.trim(), "Loading...");
19
- });
20
- it("should show success template when promise resolves", async () => {
21
- const element = fixtureSync(html `
22
- <div
23
- @joist::value=${(e) => {
24
- e.update({ oldValue: null, newValue: Promise.resolve("data") });
25
- }}
26
- >
27
- <j-async bind="test">
28
- <template loading>Loading...</template>
29
- <template success>Success!</template>
30
- <template error>Error!</template>
31
- </j-async>
32
- </div>
33
- `);
34
- await new Promise((resolve) => setTimeout(resolve, 0));
35
- assert.equal(element.textContent?.trim(), "Success!");
36
- });
37
- it("should show error template when promise rejects", async () => {
38
- const element = fixtureSync(html `
39
- <div
40
- @joist::value=${(e) => {
41
- e.update({ oldValue: null, newValue: Promise.reject("error") });
42
- }}
43
- >
44
- <j-async bind="test">
45
- <template loading>Loading...</template>
46
- <template success>Success!</template>
47
- <template error>Error!</template>
48
- </j-async>
49
- </div>
50
- `);
51
- await new Promise((resolve) => setTimeout(resolve, 0));
52
- assert.equal(element.textContent?.trim(), "Error!");
53
- });
54
- it("should handle state transitions", async () => {
55
- const element = fixtureSync(html `
56
- <div
57
- @joist::value=${(e) => {
58
- const promise = new Promise((resolve) => {
59
- setTimeout(() => resolve("data"), 100);
60
- });
61
- e.update({ oldValue: null, newValue: promise });
62
- }}
63
- >
64
- <j-async bind="test">
65
- <template loading>Loading...</template>
66
- <template success>Success!</template>
67
- <template error>Error!</template>
68
- </j-async>
69
- </div>
70
- `);
71
- assert.equal(element.textContent?.trim(), "Loading...");
72
- await new Promise((resolve) => setTimeout(resolve, 150));
73
- assert.equal(element.textContent?.trim(), "Success!");
74
- });
75
- it("should show loading template when AsyncState is loading", () => {
76
- const element = fixtureSync(html `
77
- <div
78
- @joist::value=${(e) => {
79
- e.update({ oldValue: null, newValue: { status: "loading" } });
80
- }}
81
- >
82
- <j-async bind="test">
83
- <template loading>Loading...</template>
84
- <template success>Success!</template>
85
- <template error>Error!</template>
86
- </j-async>
87
- </div>
88
- `);
89
- assert.equal(element.textContent?.trim(), "Loading...");
90
- });
91
- it("should show success template when AsyncState is success", () => {
92
- const element = fixtureSync(html `
93
- <div
94
- @joist::value=${(e) => {
95
- e.update({ oldValue: null, newValue: { status: "success", data: "test data" } });
96
- }}
97
- >
98
- <j-async bind="test">
99
- <template loading>Loading...</template>
100
- <template success>Success!</template>
101
- <template error>Error!</template>
102
- </j-async>
103
- </div>
104
- `);
105
- assert.equal(element.textContent?.trim(), "Success!");
106
- });
107
- it("should show error template when AsyncState is error", () => {
108
- const element = fixtureSync(html `
109
- <div
110
- @joist::value=${(e) => {
111
- e.update({ oldValue: null, newValue: { status: "error", error: "test error" } });
112
- }}
113
- >
114
- <j-async bind="test">
115
- <template loading>Loading...</template>
116
- <template success>Success!</template>
117
- <template error>Error!</template>
118
- </j-async>
119
- </div>
120
- `);
121
- assert.equal(element.textContent?.trim(), "Error!");
122
- });
123
- it("should handle AsyncState transitions", () => {
124
- const element = fixtureSync(html `
125
- <div
126
- @joist::value=${(e) => {
127
- e.update({ oldValue: null, newValue: { status: "loading" } });
128
- setTimeout(() => {
129
- e.update({
130
- oldValue: { status: "loading" },
131
- newValue: { status: "success", data: "test data" },
132
- });
133
- }, 100);
134
- }}
135
- >
136
- <j-async bind="test">
137
- <template loading>Loading...</template>
138
- <template success>Success!</template>
139
- <template error>Error!</template>
140
- </j-async>
141
- </div>
142
- `);
143
- assert.equal(element.textContent?.trim(), "Loading...");
144
- return new Promise((resolve) => {
145
- setTimeout(() => {
146
- assert.equal(element.textContent?.trim(), "Success!");
147
- resolve(undefined);
148
- }, 150);
149
- });
150
- });
151
- it("should wait for depends-on before dispatching events", async () => {
152
- let eventDispatched = false;
153
- customElements.define("dependency-1", class extends HTMLElement {
154
- });
155
- customElements.define("dependency-2", class extends HTMLElement {
156
- });
157
- fixtureSync(html `
158
- <div
159
- @joist::value=${(e) => {
160
- if (e.expression.bindTo === "test") {
161
- eventDispatched = true;
162
- e.update({ oldValue: null, newValue: Promise.resolve("data") });
163
- }
164
- }}
165
- >
166
- <j-async bind="test" depends-on="dependency-1,dependency-2">
167
- <template loading>Loading...</template>
168
- <template success>Success!</template>
169
- <template error>Error!</template>
170
- </j-async>
171
- </div>
172
- `);
173
- assert.isFalse(eventDispatched);
174
- await Promise.all([
175
- customElements.whenDefined("dependency-1"),
176
- customElements.whenDefined("dependency-2"),
177
- ]);
178
- assert.isTrue(eventDispatched);
179
- });
180
- //# sourceMappingURL=async.element.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"async.element.test.js","sourceRoot":"","sources":["../../../src/lib/elements/async.element.test.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import { JExpression } from "../expression.js";
2
- export declare class JAttrToken extends JExpression {
3
- mapTo: string;
4
- constructor(binding: string);
5
- }
6
- export declare class JoistBindElement extends HTMLElement {
7
- #private;
8
- accessor props: string;
9
- accessor attrs: string;
10
- accessor target: string;
11
- accessor dependsOn: string;
12
- connectedCallback(): Promise<void>;
13
- }
@@ -1,144 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { attr, element, css, html } from "@joist/element";
3
- import { JExpression } from "../expression.js";
4
- import { JoistValueEvent } from "../events.js";
5
- export class JAttrToken extends JExpression {
6
- mapTo;
7
- constructor(binding) {
8
- const [mapTo, bindTo] = binding.split(":");
9
- super(bindTo ?? mapTo);
10
- this.mapTo = mapTo;
11
- }
12
- }
13
- let JoistBindElement = (() => {
14
- let _classDecorators = [element({
15
- shadowDom: [css `:host{display: contents;}`, html `<slot></slot>`],
16
- })];
17
- let _classDescriptor;
18
- let _classExtraInitializers = [];
19
- let _classThis;
20
- let _classSuper = HTMLElement;
21
- let _props_decorators;
22
- let _props_initializers = [];
23
- let _props_extraInitializers = [];
24
- let _attrs_decorators;
25
- let _attrs_initializers = [];
26
- let _attrs_extraInitializers = [];
27
- let _target_decorators;
28
- let _target_initializers = [];
29
- let _target_extraInitializers = [];
30
- let _dependsOn_decorators;
31
- let _dependsOn_initializers = [];
32
- let _dependsOn_extraInitializers = [];
33
- var JoistBindElement = class extends _classSuper {
34
- static { _classThis = this; }
35
- static {
36
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
37
- _props_decorators = [attr()];
38
- _attrs_decorators = [attr()];
39
- _target_decorators = [attr()];
40
- _dependsOn_decorators = [attr({
41
- name: "depends-on",
42
- })];
43
- __esDecorate(this, null, _props_decorators, { kind: "accessor", name: "props", static: false, private: false, access: { has: obj => "props" in obj, get: obj => obj.props, set: (obj, value) => { obj.props = value; } }, metadata: _metadata }, _props_initializers, _props_extraInitializers);
44
- __esDecorate(this, null, _attrs_decorators, { kind: "accessor", name: "attrs", static: false, private: false, access: { has: obj => "attrs" in obj, get: obj => obj.attrs, set: (obj, value) => { obj.attrs = value; } }, metadata: _metadata }, _attrs_initializers, _attrs_extraInitializers);
45
- __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);
46
- __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);
47
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
48
- JoistBindElement = _classThis = _classDescriptor.value;
49
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
50
- __runInitializers(_classThis, _classExtraInitializers);
51
- }
52
- #props_accessor_storage = __runInitializers(this, _props_initializers, "");
53
- get props() { return this.#props_accessor_storage; }
54
- set props(value) { this.#props_accessor_storage = value; }
55
- #attrs_accessor_storage = (__runInitializers(this, _props_extraInitializers), __runInitializers(this, _attrs_initializers, ""));
56
- get attrs() { return this.#attrs_accessor_storage; }
57
- set attrs(value) { this.#attrs_accessor_storage = value; }
58
- #target_accessor_storage = (__runInitializers(this, _attrs_extraInitializers), __runInitializers(this, _target_initializers, ""));
59
- get target() { return this.#target_accessor_storage; }
60
- set target(value) { this.#target_accessor_storage = value; }
61
- #dependsOn_accessor_storage = (__runInitializers(this, _target_extraInitializers), __runInitializers(this, _dependsOn_initializers, ""));
62
- get dependsOn() { return this.#dependsOn_accessor_storage; }
63
- set dependsOn(value) { this.#dependsOn_accessor_storage = value; }
64
- async connectedCallback() {
65
- const attrBindings = this.#parseBinding(this.attrs);
66
- const propBindings = this.#parseBinding(this.props);
67
- let children = this.children;
68
- const root = this.getRootNode();
69
- if (this.target) {
70
- children = root.querySelectorAll(this.target);
71
- }
72
- if (this.dependsOn) {
73
- await Promise.all(this.dependsOn.split(",").map((tag) => window.customElements.whenDefined(tag)));
74
- }
75
- for (const attrValue of attrBindings) {
76
- const token = new JAttrToken(attrValue);
77
- this.#dispatch(token, (value) => {
78
- for (const child of children) {
79
- if (value === true) {
80
- child.setAttribute(token.mapTo, "");
81
- }
82
- else if (value === false) {
83
- child.removeAttribute(token.mapTo);
84
- }
85
- else {
86
- child.setAttribute(token.mapTo, String(value));
87
- }
88
- }
89
- });
90
- }
91
- for (const propValue of propBindings) {
92
- const token = new JAttrToken(propValue);
93
- this.#dispatch(token, (value) => {
94
- for (const child of children) {
95
- const mapToParts = token.mapTo.split(".");
96
- if (mapToParts.length > 1) {
97
- const finalPart = mapToParts.pop();
98
- let pointer = child;
99
- for (const part of mapToParts) {
100
- pointer = pointer?.[part];
101
- if (pointer === undefined) {
102
- break;
103
- }
104
- }
105
- Reflect.set(pointer, finalPart, value);
106
- }
107
- else {
108
- Reflect.set(child, token.mapTo, value);
109
- }
110
- }
111
- });
112
- }
113
- }
114
- #parseBinding(binding) {
115
- return binding
116
- .split(",")
117
- .map((b) => b.trim())
118
- .filter((b) => b);
119
- }
120
- #dispatch(token, write) {
121
- this.dispatchEvent(new JoistValueEvent(token, ({ newValue, oldValue, alwaysUpdate }) => {
122
- if (newValue === oldValue && !alwaysUpdate) {
123
- return;
124
- }
125
- let valueToWrite = token.evaluate(newValue);
126
- let oldWrittenValue = token.evaluate(oldValue);
127
- if (oldWrittenValue === valueToWrite) {
128
- return;
129
- }
130
- if (token.isNegated) {
131
- valueToWrite = !valueToWrite;
132
- }
133
- write(valueToWrite);
134
- }));
135
- }
136
- constructor() {
137
- super(...arguments);
138
- __runInitializers(this, _dependsOn_extraInitializers);
139
- }
140
- };
141
- return JoistBindElement = _classThis;
142
- })();
143
- export { JoistBindElement };
144
- //# sourceMappingURL=bind.element.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bind.element.js","sourceRoot":"","sources":["../../../src/lib/elements/bind.element.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,OAAO,UAAW,SAAQ,WAAW;IACzC,KAAK,CAAS;IAEd,YAAY,OAAe;QACzB,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE3C,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;QAEvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;IAMY,gBAAgB;4BAJ5B,OAAO,CAAC;YAEP,SAAS,EAAE,CAAC,GAAG,CAAA,2BAA2B,EAAE,IAAI,CAAA,eAAe,CAAC;SACjE,CAAC;;;;sBACoC,WAAW;;;;;;;;;;;;;gCAAnB,SAAQ,WAAW;;;;iCAC9C,IAAI,EAAE;iCAGN,IAAI,EAAE;kCAGN,IAAI,EAAE;qCAGN,IAAI,CAAC;oBACJ,IAAI,EAAE,YAAY;iBACnB,CAAC;YAVF,oKAAS,KAAK,6BAAL,KAAK,qFAAM;YAGpB,oKAAS,KAAK,6BAAL,KAAK,qFAAM;YAGpB,uKAAS,MAAM,6BAAN,MAAM,uFAAM;YAKrB,gLAAS,SAAS,6BAAT,SAAS,6FAAM;YAb1B,6KA2GC;;;YA3GY,uDAAgB;;QAE3B,uEAAiB,EAAE,EAAC;QAApB,IAAS,KAAK,2CAAM;QAApB,IAAS,KAAK,iDAAM;QAGpB,2HAAiB,EAAE,GAAC;QAApB,IAAS,KAAK,2CAAM;QAApB,IAAS,KAAK,iDAAM;QAGpB,6HAAkB,EAAE,GAAC;QAArB,IAAS,MAAM,4CAAM;QAArB,IAAS,MAAM,kDAAM;QAKrB,oIAAqB,EAAE,GAAC;QAAxB,IAAS,SAAS,+CAAM;QAAxB,IAAS,SAAS,qDAAM;QAExB,KAAK,CAAC,iBAAiB;YACrB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEpD,IAAI,QAAQ,GAAsB,IAAI,CAAC,QAAQ,CAAC;YAEhD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAA2B,CAAC;YAEzD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChD,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,KAAK,MAAM,SAAS,IAAI,YAAY,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;gBAExC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC9B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;wBAC7B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;4BACnB,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBACtC,CAAC;6BAAM,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;4BAC3B,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACrC,CAAC;6BAAM,CAAC;4BACN,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;wBACjD,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,KAAK,MAAM,SAAS,IAAI,YAAY,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;gBAExC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC9B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;wBAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAE1C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAY,CAAC;4BAE7C,IAAI,OAAO,GAAQ,KAAK,CAAC;4BAEzB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gCAC9B,OAAO,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;gCAE1B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oCAC1B,MAAM;gCACR,CAAC;4BACH,CAAC;4BAED,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;wBACzC,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;wBACzC,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,aAAa,CAAC,OAAe;YAC3B,OAAO,OAAO;iBACX,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QAED,SAAS,CAAC,KAAkB,EAAE,KAA+B;YAC3D,IAAI,CAAC,aAAa,CAChB,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE;gBAClE,IAAI,QAAQ,KAAK,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;oBAC3C,OAAO;gBACT,CAAC;gBAED,IAAI,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC5C,IAAI,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAE/C,IAAI,eAAe,KAAK,YAAY,EAAE,CAAC;oBACrC,OAAO;gBACT,CAAC;gBAED,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBACpB,YAAY,GAAG,CAAC,YAAY,CAAC;gBAC/B,CAAC;gBAED,KAAK,CAAC,YAAY,CAAC,CAAC;YACtB,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;;;;;;;;SA1GU,gBAAgB"}
@@ -1 +0,0 @@
1
- import "../define.js";
@@ -1,150 +0,0 @@
1
- import "../define.js";
2
- import { fixtureSync, html } from "@open-wc/testing";
3
- import { assert } from "chai";
4
- it("should pass props to child", () => {
5
- const element = fixtureSync(html `
6
- <div
7
- @joist::value=${(e) => {
8
- if (e.expression.bindTo === "href") {
9
- e.update({
10
- oldValue: null,
11
- newValue: "$foo",
12
- });
13
- }
14
- if (e.expression.bindTo === "target") {
15
- e.update({
16
- oldValue: null,
17
- newValue: {
18
- value: "_blank",
19
- },
20
- });
21
- }
22
- }}
23
- >
24
- <j-bind attrs="href:href" props="target:target.value">
25
- <a>Hello World</a>
26
- </j-bind>
27
- </div>
28
- `);
29
- const anchor = element.querySelector("a");
30
- assert.equal(anchor?.getAttribute("href"), "$foo");
31
- assert.equal(anchor?.getAttribute("target"), "_blank");
32
- });
33
- it("should pass props to specified child", () => {
34
- const element = fixtureSync(html `
35
- <div
36
- @joist::value=${(e) => {
37
- e.update({
38
- oldValue: null,
39
- newValue: "#foo",
40
- });
41
- }}
42
- >
43
- <j-bind attrs="href:href" target="#test"></j-bind>
44
-
45
- <a>Default</a>
46
- <a id="test">Target</a>
47
- </div>
48
- `);
49
- const anchor = element.querySelectorAll("a");
50
- assert.equal(anchor[0].getAttribute("href"), null);
51
- assert.equal(anchor[1].getAttribute("href"), "#foo");
52
- });
53
- it("should be case sensitive", () => {
54
- const element = fixtureSync(html `
55
- <div
56
- @joist::value=${(e) => {
57
- e.update({ oldValue: null, newValue: 8 });
58
- }}
59
- >
60
- <j-bind
61
- props="
62
- selectionStart:foo,
63
- selectionEnd:foo
64
- "
65
- >
66
- <input value="1234567890" />
67
- </j-bind>
68
- </div>
69
- `);
70
- const input = element.querySelector("input");
71
- assert.equal(input?.selectionStart, 8);
72
- assert.equal(input?.selectionEnd, 8);
73
- });
74
- it("should default to the mapTo value if bindTo is not provided", () => {
75
- const element = fixtureSync(html `
76
- <div
77
- @joist::value=${(e) => {
78
- e.update({ oldValue: null, newValue: 8 });
79
- }}
80
- >
81
- <j-bind props="selectionStart, selectionEnd">
82
- <input value="1234567890" />
83
- </j-bind>
84
- </div>
85
- `);
86
- const input = element.querySelector("input");
87
- assert.equal(input?.selectionStart, 8);
88
- assert.equal(input?.selectionEnd, 8);
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
- });
135
- it("should bind to a nested prop like style", async () => {
136
- const element = fixtureSync(html `
137
- <div
138
- @joist::value=${(e) => {
139
- e.update({ oldValue: null, newValue: "red" });
140
- }}
141
- >
142
- <j-bind props="style.color:color">
143
- <input value="1234567890" />
144
- </j-bind>
145
- </div>
146
- `);
147
- const input = element.querySelector("input");
148
- assert.equal(input?.style.color, "red");
149
- });
150
- //# sourceMappingURL=bind.element.test.js.map
@@ -1 +0,0 @@
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;AAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;IACvD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAA;;sBAEZ,CAAC,CAAkB,EAAE,EAAE;QACrC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;;;;;;GAMJ,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAE7C,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC"}
@@ -1,15 +0,0 @@
1
- export interface EachCtx<T> {
2
- value: T | null;
3
- index: number | null;
4
- position: number | null;
5
- }
6
- export declare class JoistForElement extends HTMLElement {
7
- #private;
8
- accessor bind: string;
9
- accessor key: string;
10
- accessor dependsOn: string;
11
- connectedCallback(): Promise<void>;
12
- createFromEmpty(): void;
13
- updateItems(): void;
14
- disconnectedCallback(): void;
15
- }