@joist/element 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 (65) hide show
  1. package/package.json +1 -1
  2. package/src/lib/define.ts +1 -1
  3. package/src/lib/element.ts +3 -2
  4. package/src/lib/tags.test.ts +34 -22
  5. package/src/lib.ts +1 -1
  6. package/target/lib/attr-changed.d.ts +0 -2
  7. package/target/lib/attr-changed.js +0 -12
  8. package/target/lib/attr-changed.js.map +0 -1
  9. package/target/lib/attr-changed.test.d.ts +0 -1
  10. package/target/lib/attr-changed.test.js +0 -117
  11. package/target/lib/attr-changed.test.js.map +0 -1
  12. package/target/lib/attr.d.ts +0 -6
  13. package/target/lib/attr.js +0 -66
  14. package/target/lib/attr.js.map +0 -1
  15. package/target/lib/attr.test.d.ts +0 -1
  16. package/target/lib/attr.test.js +0 -480
  17. package/target/lib/attr.test.js.map +0 -1
  18. package/target/lib/define.d.ts +0 -5
  19. package/target/lib/define.js +0 -14
  20. package/target/lib/define.js.map +0 -1
  21. package/target/lib/element.d.ts +0 -11
  22. package/target/lib/element.js +0 -112
  23. package/target/lib/element.js.map +0 -1
  24. package/target/lib/element.test.d.ts +0 -1
  25. package/target/lib/element.test.js +0 -329
  26. package/target/lib/element.test.js.map +0 -1
  27. package/target/lib/lifecycle.d.ts +0 -1
  28. package/target/lib/lifecycle.js +0 -8
  29. package/target/lib/lifecycle.js.map +0 -1
  30. package/target/lib/lifecycle.test.d.ts +0 -1
  31. package/target/lib/lifecycle.test.js +0 -48
  32. package/target/lib/lifecycle.test.js.map +0 -1
  33. package/target/lib/listen.d.ts +0 -2
  34. package/target/lib/listen.js +0 -26
  35. package/target/lib/listen.js.map +0 -1
  36. package/target/lib/listen.test.d.ts +0 -1
  37. package/target/lib/listen.test.js +0 -264
  38. package/target/lib/listen.test.js.map +0 -1
  39. package/target/lib/metadata.d.ts +0 -30
  40. package/target/lib/metadata.js +0 -21
  41. package/target/lib/metadata.js.map +0 -1
  42. package/target/lib/query-all.d.ts +0 -10
  43. package/target/lib/query-all.js +0 -40
  44. package/target/lib/query-all.js.map +0 -1
  45. package/target/lib/query-all.test.d.ts +0 -1
  46. package/target/lib/query-all.test.js +0 -195
  47. package/target/lib/query-all.test.js.map +0 -1
  48. package/target/lib/query.d.ts +0 -10
  49. package/target/lib/query.js +0 -36
  50. package/target/lib/query.js.map +0 -1
  51. package/target/lib/query.test.d.ts +0 -1
  52. package/target/lib/query.test.js +0 -188
  53. package/target/lib/query.test.js.map +0 -1
  54. package/target/lib/result.d.ts +0 -3
  55. package/target/lib/result.js +0 -2
  56. package/target/lib/result.js.map +0 -1
  57. package/target/lib/tags.d.ts +0 -14
  58. package/target/lib/tags.js +0 -44
  59. package/target/lib/tags.js.map +0 -1
  60. package/target/lib/tags.test.d.ts +0 -1
  61. package/target/lib/tags.test.js +0 -69
  62. package/target/lib/tags.test.js.map +0 -1
  63. package/target/lib.d.ts +0 -9
  64. package/target/lib.js +0 -9
  65. package/target/lib.js.map +0 -1
@@ -1,480 +0,0 @@
1
- import { __esDecorate, __propKey, __runInitializers } from "tslib";
2
- import { expect, assert } from "chai";
3
- import { effect, observe } from "@joist/observable";
4
- import { attr } from "./attr.js";
5
- import { element } from "./element.js";
6
- it("should read and parse the correct values", () => {
7
- let MyElement = (() => {
8
- let _classDecorators = [element({
9
- tagName: "attr-test-1",
10
- })];
11
- let _classDescriptor;
12
- let _classExtraInitializers = [];
13
- let _classThis;
14
- let _classSuper = HTMLElement;
15
- let _value1_decorators;
16
- let _value1_initializers = [];
17
- let _value1_extraInitializers = [];
18
- let _value2_decorators;
19
- let _value2_initializers = [];
20
- let _value2_extraInitializers = [];
21
- let _value3_decorators;
22
- let _value3_initializers = [];
23
- let _value3_extraInitializers = [];
24
- let _value4_decorators;
25
- let _value4_initializers = [];
26
- let _value4_extraInitializers = [];
27
- var MyElement = class extends _classSuper {
28
- static { _classThis = this; }
29
- static {
30
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
31
- _value1_decorators = [attr()];
32
- _value2_decorators = [attr()];
33
- _value3_decorators = [attr()];
34
- _value4_decorators = [attr()];
35
- __esDecorate(this, null, _value1_decorators, { kind: "accessor", name: "value1", static: false, private: false, access: { has: obj => "value1" in obj, get: obj => obj.value1, set: (obj, value) => { obj.value1 = value; } }, metadata: _metadata }, _value1_initializers, _value1_extraInitializers);
36
- __esDecorate(this, null, _value2_decorators, { kind: "accessor", name: "value2", static: false, private: false, access: { has: obj => "value2" in obj, get: obj => obj.value2, set: (obj, value) => { obj.value2 = value; } }, metadata: _metadata }, _value2_initializers, _value2_extraInitializers);
37
- __esDecorate(this, null, _value3_decorators, { kind: "accessor", name: "value3", static: false, private: false, access: { has: obj => "value3" in obj, get: obj => obj.value3, set: (obj, value) => { obj.value3 = value; } }, metadata: _metadata }, _value3_initializers, _value3_extraInitializers);
38
- __esDecorate(this, null, _value4_decorators, { kind: "accessor", name: "value4", static: false, private: false, access: { has: obj => "value4" in obj, get: obj => obj.value4, set: (obj, value) => { obj.value4 = value; } }, metadata: _metadata }, _value4_initializers, _value4_extraInitializers);
39
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
40
- MyElement = _classThis = _classDescriptor.value;
41
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
42
- __runInitializers(_classThis, _classExtraInitializers);
43
- }
44
- #value1_accessor_storage = __runInitializers(this, _value1_initializers, 100);
45
- get value1() { return this.#value1_accessor_storage; }
46
- set value1(value) { this.#value1_accessor_storage = value; }
47
- #value2_accessor_storage = (__runInitializers(this, _value1_extraInitializers), __runInitializers(this, _value2_initializers, 0));
48
- get value2() { return this.#value2_accessor_storage; }
49
- set value2(value) { this.#value2_accessor_storage = value; }
50
- #value3_accessor_storage = (__runInitializers(this, _value2_extraInitializers), __runInitializers(this, _value3_initializers, false));
51
- get value3() { return this.#value3_accessor_storage; }
52
- set value3(value) { this.#value3_accessor_storage = value; }
53
- #value4_accessor_storage = (__runInitializers(this, _value3_extraInitializers), __runInitializers(this, _value4_initializers, "hello"));
54
- get value4() { return this.#value4_accessor_storage; }
55
- set value4(value) { this.#value4_accessor_storage = value; }
56
- constructor() {
57
- super(...arguments);
58
- __runInitializers(this, _value4_extraInitializers);
59
- }
60
- };
61
- return MyElement = _classThis;
62
- })();
63
- const container = document.createElement("div");
64
- container.innerHTML = `
65
- <attr-test-1 value2="2" value3 value4="world"></attr-test-1>
66
- `;
67
- document.body.append(container);
68
- const el = document.querySelector("attr-test-1");
69
- expect(el.value1).to.equal(100);
70
- expect(el.value2).to.equal(2);
71
- expect(el.value3).to.equal(true);
72
- expect(el.value4).to.equal("world");
73
- container.remove();
74
- });
75
- it("should not write falsy props to attributes", async () => {
76
- let MyElement = (() => {
77
- let _classDecorators = [element({
78
- tagName: "attr-test-2",
79
- })];
80
- let _classDescriptor;
81
- let _classExtraInitializers = [];
82
- let _classThis;
83
- let _classSuper = HTMLElement;
84
- let _value1_decorators;
85
- let _value1_initializers = [];
86
- let _value1_extraInitializers = [];
87
- let _value2_decorators;
88
- let _value2_initializers = [];
89
- let _value2_extraInitializers = [];
90
- let _value3_decorators;
91
- let _value3_initializers = [];
92
- let _value3_extraInitializers = [];
93
- var MyElement = class extends _classSuper {
94
- static { _classThis = this; }
95
- static {
96
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
97
- _value1_decorators = [attr()];
98
- _value2_decorators = [attr()];
99
- _value3_decorators = [attr()];
100
- __esDecorate(this, null, _value1_decorators, { kind: "accessor", name: "value1", static: false, private: false, access: { has: obj => "value1" in obj, get: obj => obj.value1, set: (obj, value) => { obj.value1 = value; } }, metadata: _metadata }, _value1_initializers, _value1_extraInitializers);
101
- __esDecorate(this, null, _value2_decorators, { kind: "accessor", name: "value2", static: false, private: false, access: { has: obj => "value2" in obj, get: obj => obj.value2, set: (obj, value) => { obj.value2 = value; } }, metadata: _metadata }, _value2_initializers, _value2_extraInitializers);
102
- __esDecorate(this, null, _value3_decorators, { kind: "accessor", name: "value3", static: false, private: false, access: { has: obj => "value3" in obj, get: obj => obj.value3, set: (obj, value) => { obj.value3 = value; } }, metadata: _metadata }, _value3_initializers, _value3_extraInitializers);
103
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
104
- MyElement = _classThis = _classDescriptor.value;
105
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
106
- __runInitializers(_classThis, _classExtraInitializers);
107
- }
108
- #value1_accessor_storage = __runInitializers(this, _value1_initializers, undefined);
109
- get value1() { return this.#value1_accessor_storage; }
110
- set value1(value) { this.#value1_accessor_storage = value; }
111
- #value2_accessor_storage = (__runInitializers(this, _value1_extraInitializers), __runInitializers(this, _value2_initializers, null));
112
- get value2() { return this.#value2_accessor_storage; }
113
- set value2(value) { this.#value2_accessor_storage = value; }
114
- #value3_accessor_storage = (__runInitializers(this, _value2_extraInitializers), __runInitializers(this, _value3_initializers, ""));
115
- get value3() { return this.#value3_accessor_storage; }
116
- set value3(value) { this.#value3_accessor_storage = value; }
117
- constructor() {
118
- super(...arguments);
119
- __runInitializers(this, _value3_extraInitializers);
120
- }
121
- };
122
- return MyElement = _classThis;
123
- })();
124
- const el = new MyElement();
125
- expect(el.hasAttribute("value1")).to.be.false;
126
- expect(el.hasAttribute("value2")).to.be.false;
127
- expect(el.hasAttribute("value3")).to.be.false;
128
- });
129
- it("should update attributes when props are changed", async () => {
130
- let MyElement = (() => {
131
- let _classDecorators = [element({
132
- tagName: "attr-test-3",
133
- })];
134
- let _classDescriptor;
135
- let _classExtraInitializers = [];
136
- let _classThis;
137
- let _classSuper = HTMLElement;
138
- let _value1_decorators;
139
- let _value1_initializers = [];
140
- let _value1_extraInitializers = [];
141
- let _value2_decorators;
142
- let _value2_initializers = [];
143
- let _value2_extraInitializers = [];
144
- let _value3_decorators;
145
- let _value3_initializers = [];
146
- let _value3_extraInitializers = [];
147
- let _value4_decorators;
148
- let _value4_initializers = [];
149
- let _value4_extraInitializers = [];
150
- var MyElement = class extends _classSuper {
151
- static { _classThis = this; }
152
- static {
153
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
154
- _value1_decorators = [attr()];
155
- _value2_decorators = [attr()];
156
- _value3_decorators = [attr()];
157
- _value4_decorators = [attr()];
158
- __esDecorate(this, null, _value1_decorators, { kind: "accessor", name: "value1", static: false, private: false, access: { has: obj => "value1" in obj, get: obj => obj.value1, set: (obj, value) => { obj.value1 = value; } }, metadata: _metadata }, _value1_initializers, _value1_extraInitializers);
159
- __esDecorate(this, null, _value2_decorators, { kind: "accessor", name: "value2", static: false, private: false, access: { has: obj => "value2" in obj, get: obj => obj.value2, set: (obj, value) => { obj.value2 = value; } }, metadata: _metadata }, _value2_initializers, _value2_extraInitializers);
160
- __esDecorate(this, null, _value3_decorators, { kind: "accessor", name: "value3", static: false, private: false, access: { has: obj => "value3" in obj, get: obj => obj.value3, set: (obj, value) => { obj.value3 = value; } }, metadata: _metadata }, _value3_initializers, _value3_extraInitializers);
161
- __esDecorate(this, null, _value4_decorators, { kind: "accessor", name: "value4", static: false, private: false, access: { has: obj => "value4" in obj, get: obj => obj.value4, set: (obj, value) => { obj.value4 = value; } }, metadata: _metadata }, _value4_initializers, _value4_extraInitializers);
162
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
163
- MyElement = _classThis = _classDescriptor.value;
164
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
165
- __runInitializers(_classThis, _classExtraInitializers);
166
- }
167
- #value1_accessor_storage = __runInitializers(this, _value1_initializers, "hello");
168
- get value1() { return this.#value1_accessor_storage; }
169
- set value1(value) { this.#value1_accessor_storage = value; }
170
- #value2_accessor_storage = (__runInitializers(this, _value1_extraInitializers), __runInitializers(this, _value2_initializers, 0));
171
- get value2() { return this.#value2_accessor_storage; }
172
- set value2(value) { this.#value2_accessor_storage = value; }
173
- #value3_accessor_storage = (__runInitializers(this, _value2_extraInitializers), __runInitializers(this, _value3_initializers, true));
174
- get value3() { return this.#value3_accessor_storage; }
175
- set value3(value) { this.#value3_accessor_storage = value; }
176
- #value4_accessor_storage = (__runInitializers(this, _value3_extraInitializers), __runInitializers(this, _value4_initializers, false));
177
- get value4() { return this.#value4_accessor_storage; }
178
- set value4(value) { this.#value4_accessor_storage = value; }
179
- constructor() {
180
- super(...arguments);
181
- __runInitializers(this, _value4_extraInitializers);
182
- }
183
- };
184
- return MyElement = _classThis;
185
- })();
186
- const el = new MyElement();
187
- el.value1 = "world";
188
- el.value2 = 100;
189
- el.value3 = false;
190
- el.value4 = true;
191
- expect(el.getAttribute("value1")).to.equal("world");
192
- expect(el.getAttribute("value2")).to.equal("100");
193
- expect(el.hasAttribute("value3")).to.be.false;
194
- expect(el.hasAttribute("value4")).to.be.true;
195
- });
196
- it("should normalize attribute names", async () => {
197
- const value2 = "Value 2";
198
- const value3 = Symbol("Value from SYMBOL");
199
- let MyElement = (() => {
200
- var _a, _b;
201
- let _classDecorators = [element({
202
- tagName: "attr-test-4",
203
- })];
204
- let _classDescriptor;
205
- let _classExtraInitializers = [];
206
- let _classThis;
207
- let _classSuper = HTMLElement;
208
- let _Value1_decorators;
209
- let _Value1_initializers = [];
210
- let _Value1_extraInitializers = [];
211
- let _member_decorators;
212
- let _member_initializers = [];
213
- let _member_extraInitializers = [];
214
- let _member_decorators_1;
215
- let _member_initializers_1 = [];
216
- let _member_extraInitializers_1 = [];
217
- var MyElement = class extends _classSuper {
218
- static { _classThis = this; }
219
- static {
220
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
221
- __esDecorate(this, null, _Value1_decorators, { kind: "accessor", name: "Value1", static: false, private: false, access: { has: obj => "Value1" in obj, get: obj => obj.Value1, set: (obj, value) => { obj.Value1 = value; } }, metadata: _metadata }, _Value1_initializers, _Value1_extraInitializers);
222
- __esDecorate(this, null, _member_decorators, { kind: "accessor", name: _a, static: false, private: false, access: { has: obj => _a in obj, get: obj => obj[_a], set: (obj, value) => { obj[_a] = value; } }, metadata: _metadata }, _member_initializers, _member_extraInitializers);
223
- __esDecorate(this, null, _member_decorators_1, { kind: "accessor", name: _b, static: false, private: false, access: { has: obj => _b in obj, get: obj => obj[_b], set: (obj, value) => { obj[_b] = value; } }, metadata: _metadata }, _member_initializers_1, _member_extraInitializers_1);
224
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
225
- MyElement = _classThis = _classDescriptor.value;
226
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
227
- __runInitializers(_classThis, _classExtraInitializers);
228
- }
229
- #Value1_accessor_storage = __runInitializers(this, _Value1_initializers, "hello");
230
- get Value1() { return this.#Value1_accessor_storage; }
231
- set Value1(value) { this.#Value1_accessor_storage = value; }
232
- #_a_accessor_storage = (__runInitializers(this, _Value1_extraInitializers), __runInitializers(this, _member_initializers, 0));
233
- get [(_Value1_decorators = [attr()], _member_decorators = [attr()], _a = __propKey(value2))]() { return this.#_a_accessor_storage; }
234
- set [_a](value) { this.#_a_accessor_storage = value; }
235
- #_b_accessor_storage = (__runInitializers(this, _member_extraInitializers), __runInitializers(this, _member_initializers_1, true));
236
- get [(_member_decorators_1 = [attr()], _b = __propKey(value3))]() { return this.#_b_accessor_storage; }
237
- set [_b](value) { this.#_b_accessor_storage = value; }
238
- constructor() {
239
- super(...arguments);
240
- __runInitializers(this, _member_extraInitializers_1);
241
- }
242
- };
243
- return MyElement = _classThis;
244
- })();
245
- const el = new MyElement();
246
- document.body.append(el);
247
- expect([...el.attributes].map((attr) => attr.name)).to.deep.equal([
248
- "value1",
249
- "value-2",
250
- "value-from-symbol",
251
- ]);
252
- el.remove();
253
- });
254
- it("should throw an error for symbols with no description", async () => {
255
- expect(() => {
256
- const value = Symbol();
257
- let MyElement = (() => {
258
- var _a;
259
- let _classDecorators = [element({
260
- tagName: "attr-test-4",
261
- })];
262
- let _classDescriptor;
263
- let _classExtraInitializers = [];
264
- let _classThis;
265
- let _classSuper = HTMLElement;
266
- let _member_decorators;
267
- let _member_initializers = [];
268
- let _member_extraInitializers = [];
269
- var MyElement = class extends _classSuper {
270
- static { _classThis = this; }
271
- static {
272
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
273
- __esDecorate(this, null, _member_decorators, { kind: "accessor", name: _a, static: false, private: false, access: { has: obj => _a in obj, get: obj => obj[_a], set: (obj, value) => { obj[_a] = value; } }, metadata: _metadata }, _member_initializers, _member_extraInitializers);
274
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
275
- MyElement = _classThis = _classDescriptor.value;
276
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
277
- __runInitializers(_classThis, _classExtraInitializers);
278
- }
279
- #_a_accessor_storage = __runInitializers(this, _member_initializers, true);
280
- get [(_member_decorators = [attr()], _a = __propKey(value))]() { return this.#_a_accessor_storage; }
281
- set [_a](value) { this.#_a_accessor_storage = value; }
282
- constructor() {
283
- super(...arguments);
284
- __runInitializers(this, _member_extraInitializers);
285
- }
286
- };
287
- return MyElement = _classThis;
288
- })();
289
- new MyElement();
290
- }).to.throw("Cannot handle Symbol property without description");
291
- });
292
- it("non reflective attributes should still read new attribute values", async () => {
293
- let MyElement = (() => {
294
- let _classDecorators = [element({
295
- tagName: "attr-test-6",
296
- })];
297
- let _classDescriptor;
298
- let _classExtraInitializers = [];
299
- let _classThis;
300
- let _classSuper = HTMLElement;
301
- let _value_decorators;
302
- let _value_initializers = [];
303
- let _value_extraInitializers = [];
304
- var MyElement = class extends _classSuper {
305
- static { _classThis = this; }
306
- static {
307
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
308
- _value_decorators = [attr({ reflect: false })];
309
- __esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
310
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
311
- MyElement = _classThis = _classDescriptor.value;
312
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
313
- __runInitializers(_classThis, _classExtraInitializers);
314
- }
315
- #value_accessor_storage = __runInitializers(this, _value_initializers, "foo");
316
- get value() { return this.#value_accessor_storage; }
317
- set value(value) { this.#value_accessor_storage = value; }
318
- constructor() {
319
- super(...arguments);
320
- __runInitializers(this, _value_extraInitializers);
321
- }
322
- };
323
- return MyElement = _classThis;
324
- })();
325
- const el = new MyElement();
326
- el.setAttribute("value", "bar");
327
- expect(el.value).to.equal("bar");
328
- });
329
- it("should allow a manually defined attribute name", async () => {
330
- let MyElement = (() => {
331
- let _classDecorators = [element({
332
- tagName: "attr-test-7",
333
- })];
334
- let _classDescriptor;
335
- let _classExtraInitializers = [];
336
- let _classThis;
337
- let _classSuper = HTMLElement;
338
- let _value_decorators;
339
- let _value_initializers = [];
340
- let _value_extraInitializers = [];
341
- var MyElement = class extends _classSuper {
342
- static { _classThis = this; }
343
- static {
344
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
345
- _value_decorators = [attr({
346
- name: "aria-label",
347
- })];
348
- __esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
349
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
350
- MyElement = _classThis = _classDescriptor.value;
351
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
352
- __runInitializers(_classThis, _classExtraInitializers);
353
- }
354
- #value_accessor_storage = __runInitializers(this, _value_initializers, "");
355
- get value() { return this.#value_accessor_storage; }
356
- set value(value) { this.#value_accessor_storage = value; }
357
- constructor() {
358
- super(...arguments);
359
- __runInitializers(this, _value_extraInitializers);
360
- }
361
- };
362
- return MyElement = _classThis;
363
- })();
364
- const el = new MyElement();
365
- el.setAttribute("aria-label", "TEST");
366
- document.body.append(el);
367
- expect(el.value).to.equal("TEST");
368
- el.remove();
369
- });
370
- it("should update property when attribute changes", async () => {
371
- let MyElement = (() => {
372
- let _classDecorators = [element({
373
- tagName: "attr-test-8",
374
- })];
375
- let _classDescriptor;
376
- let _classExtraInitializers = [];
377
- let _classThis;
378
- let _classSuper = HTMLElement;
379
- let _value_decorators;
380
- let _value_initializers = [];
381
- let _value_extraInitializers = [];
382
- let _count_decorators;
383
- let _count_initializers = [];
384
- let _count_extraInitializers = [];
385
- let _enabled_decorators;
386
- let _enabled_initializers = [];
387
- let _enabled_extraInitializers = [];
388
- var MyElement = class extends _classSuper {
389
- static { _classThis = this; }
390
- static {
391
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
392
- _value_decorators = [attr()];
393
- _count_decorators = [attr()];
394
- _enabled_decorators = [attr()];
395
- __esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
396
- __esDecorate(this, null, _count_decorators, { kind: "accessor", name: "count", static: false, private: false, access: { has: obj => "count" in obj, get: obj => obj.count, set: (obj, value) => { obj.count = value; } }, metadata: _metadata }, _count_initializers, _count_extraInitializers);
397
- __esDecorate(this, null, _enabled_decorators, { kind: "accessor", name: "enabled", static: false, private: false, access: { has: obj => "enabled" in obj, get: obj => obj.enabled, set: (obj, value) => { obj.enabled = value; } }, metadata: _metadata }, _enabled_initializers, _enabled_extraInitializers);
398
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
399
- MyElement = _classThis = _classDescriptor.value;
400
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
401
- __runInitializers(_classThis, _classExtraInitializers);
402
- }
403
- #value_accessor_storage = __runInitializers(this, _value_initializers, "foo");
404
- get value() { return this.#value_accessor_storage; }
405
- set value(value) { this.#value_accessor_storage = value; }
406
- #count_accessor_storage = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _count_initializers, 0));
407
- get count() { return this.#count_accessor_storage; }
408
- set count(value) { this.#count_accessor_storage = value; }
409
- #enabled_accessor_storage = (__runInitializers(this, _count_extraInitializers), __runInitializers(this, _enabled_initializers, false));
410
- get enabled() { return this.#enabled_accessor_storage; }
411
- set enabled(value) { this.#enabled_accessor_storage = value; }
412
- constructor() {
413
- super(...arguments);
414
- __runInitializers(this, _enabled_extraInitializers);
415
- }
416
- };
417
- return MyElement = _classThis;
418
- })();
419
- const el = new MyElement();
420
- document.body.append(el);
421
- el.setAttribute("value", "bar");
422
- expect(el.value).to.equal("bar");
423
- el.setAttribute("count", "42");
424
- expect(el.count).to.equal(42);
425
- el.setAttribute("enabled", "");
426
- expect(el.enabled).to.equal(true);
427
- el.removeAttribute("enabled");
428
- expect(el.enabled).to.equal(false);
429
- el.remove();
430
- });
431
- it("setters should be called when attributes change", async () => {
432
- let callCount = 0;
433
- let MyElement = (() => {
434
- let _classDecorators = [element({
435
- tagName: "attr-test-9",
436
- })];
437
- let _classDescriptor;
438
- let _classExtraInitializers = [];
439
- let _classThis;
440
- let _classSuper = HTMLElement;
441
- let _instanceExtraInitializers = [];
442
- let _value_decorators;
443
- let _value_initializers = [];
444
- let _value_extraInitializers = [];
445
- let _onValueChange_decorators;
446
- var MyElement = class extends _classSuper {
447
- static { _classThis = this; }
448
- static {
449
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
450
- _value_decorators = [attr(), observe()];
451
- _onValueChange_decorators = [effect()];
452
- __esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
453
- __esDecorate(this, null, _onValueChange_decorators, { kind: "method", name: "onValueChange", static: false, private: false, access: { has: obj => "onValueChange" in obj, get: obj => obj.onValueChange }, metadata: _metadata }, null, _instanceExtraInitializers);
454
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
455
- MyElement = _classThis = _classDescriptor.value;
456
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
457
- __runInitializers(_classThis, _classExtraInitializers);
458
- }
459
- #value_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _value_initializers, "foo"));
460
- get value() { return this.#value_accessor_storage; }
461
- set value(value) { this.#value_accessor_storage = value; }
462
- onValueChange() {
463
- callCount++;
464
- }
465
- constructor() {
466
- super(...arguments);
467
- __runInitializers(this, _value_extraInitializers);
468
- }
469
- };
470
- return MyElement = _classThis;
471
- })();
472
- const el = new MyElement();
473
- document.body.append(el);
474
- el.setAttribute("value", "bar");
475
- await Promise.resolve();
476
- await Promise.resolve();
477
- assert.equal(callCount, 1);
478
- el.remove();
479
- });
480
- //# sourceMappingURL=attr.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attr.test.js","sourceRoot":"","sources":["../../src/lib/attr.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export interface DefineOpts {
2
- tagName: string;
3
- dependsOn?: string[] | (() => Promise<void>);
4
- }
5
- export declare function define(opts: DefineOpts, element: CustomElementConstructor): Promise<void>;
@@ -1,14 +0,0 @@
1
- export async function define(opts, element) {
2
- if (!customElements.get(opts.tagName)) {
3
- if (opts.dependsOn) {
4
- if (typeof opts.dependsOn === "function") {
5
- await opts.dependsOn();
6
- }
7
- else {
8
- await Promise.all(opts.dependsOn.map((d) => customElements.whenDefined(d)));
9
- }
10
- }
11
- customElements.define(opts.tagName, element);
12
- }
13
- }
14
- //# sourceMappingURL=define.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"define.js","sourceRoot":"","sources":["../../src/lib/define.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAgB,EAAE,OAAiC;IAC9E,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;gBACzC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QAED,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
@@ -1,11 +0,0 @@
1
- import { DefineOpts } from "./define.js";
2
- import type { ShadowResult } from "./result.js";
3
- export interface ElementOpts extends Partial<DefineOpts> {
4
- shadowDom?: ShadowResult[];
5
- shadowDomOpts?: ShadowRootInit;
6
- }
7
- interface ElementConstructor {
8
- new (...args: any[]): HTMLElement;
9
- }
10
- export declare function element<T extends ElementConstructor>(opts?: ElementOpts): (Base: T, ctx: ClassDecoratorContext<T>) => T;
11
- export {};
@@ -1,112 +0,0 @@
1
- import { define } from "./define.js";
2
- import { metadataStore } from "./metadata.js";
3
- export function element(opts) {
4
- return function elementDecorator(Base, ctx) {
5
- const meta = metadataStore.read(ctx.metadata);
6
- ctx.addInitializer(function () {
7
- if (opts?.tagName) {
8
- define({ tagName: opts.tagName, dependsOn: opts.dependsOn }, this);
9
- }
10
- });
11
- const def = {
12
- [Base.name]: class extends Base {
13
- static observedAttributes = Array.from(meta.attrs.keys());
14
- #abortController = null;
15
- constructor(...args) {
16
- super(...args);
17
- if (opts?.shadowDom) {
18
- if (!this.shadowRoot) {
19
- this.attachShadow(opts.shadowDomOpts ?? { mode: "open" });
20
- }
21
- for (const res of opts.shadowDom) {
22
- res.apply(this);
23
- }
24
- }
25
- for (const cb of meta.onReady) {
26
- cb.call(this);
27
- }
28
- }
29
- attributeChangedCallback(name, oldValue, newValue) {
30
- const attr = meta.attrs.get(name);
31
- const cbs = meta.attrChanges.get(name);
32
- if (attr) {
33
- if (oldValue !== newValue) {
34
- const sourceValue = attr.access.get.call(this);
35
- let value = newValue;
36
- if (typeof sourceValue === "boolean") {
37
- value = newValue !== null;
38
- }
39
- else if (typeof sourceValue === "number") {
40
- value = Number(newValue);
41
- }
42
- attr.access.set.call(this, value);
43
- }
44
- if (cbs) {
45
- for (const cb of cbs) {
46
- cb.call(this, name, oldValue, newValue);
47
- }
48
- }
49
- if (attr.observe) {
50
- if (super.attributeChangedCallback) {
51
- super.attributeChangedCallback(name, oldValue, newValue);
52
- }
53
- }
54
- }
55
- }
56
- connectedCallback() {
57
- if (!this.#abortController) {
58
- this.#abortController = new AbortController();
59
- for (const { event, cb, selector } of meta.listeners) {
60
- const root = selector(this);
61
- if (root) {
62
- root.addEventListener(event, cb.bind(this), {
63
- signal: this.#abortController.signal,
64
- });
65
- }
66
- else {
67
- throw new Error(`could not add listener to ${root}`);
68
- }
69
- }
70
- }
71
- reflectAttributeValues(this, meta.attrs);
72
- if (super.connectedCallback) {
73
- super.connectedCallback();
74
- }
75
- }
76
- disconnectedCallback() {
77
- if (this.#abortController) {
78
- this.#abortController.abort();
79
- this.#abortController = null;
80
- }
81
- if (super.disconnectedCallback) {
82
- super.disconnectedCallback();
83
- }
84
- }
85
- },
86
- };
87
- return def[Base.name];
88
- };
89
- }
90
- function reflectAttributeValues(el, attrs) {
91
- for (const [attrName, { access, reflect }] of attrs) {
92
- if (reflect) {
93
- const value = access.get.call(el);
94
- if (value !== null && value !== undefined && value !== "") {
95
- if (typeof value === "boolean") {
96
- if (value === true) {
97
- if (!el.hasAttribute(attrName)) {
98
- el.setAttribute(attrName, "");
99
- }
100
- }
101
- }
102
- else if (!el.hasAttribute(attrName)) {
103
- const strValue = String(value);
104
- if (el.getAttribute(attrName) !== strValue) {
105
- el.setAttribute(attrName, strValue);
106
- }
107
- }
108
- }
109
- }
110
- }
111
- }
112
- //# sourceMappingURL=element.js.map