@joist/element 4.2.3-next.2 → 4.2.3-next.20
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/package.json +4 -2
- package/src/lib/attr.test.ts +69 -18
- package/src/lib/attr.ts +24 -6
- package/src/lib/element.test.ts +33 -25
- package/src/lib/element.ts +22 -25
- package/src/lib/listen.test.ts +75 -0
- package/src/lib/metadata.ts +5 -7
- package/target/lib/attr.d.ts +1 -1
- package/target/lib/attr.js +17 -4
- package/target/lib/attr.js.map +1 -1
- package/target/lib/attr.test.js +90 -17
- package/target/lib/attr.test.js.map +1 -1
- package/target/lib/element.js +17 -15
- package/target/lib/element.js.map +1 -1
- package/target/lib/element.test.js +68 -0
- package/target/lib/element.test.js.map +1 -1
- package/target/lib/listen.test.js +97 -0
- package/target/lib/listen.test.js.map +1 -1
- package/target/lib/metadata.d.ts +4 -2
- package/target/lib/metadata.js.map +1 -1
- package/src/lib/templating/README.md +0 -406
- package/src/lib/templating/bind.ts +0 -40
- package/src/lib/templating/define.ts +0 -5
- package/src/lib/templating/elements/async.element.test.ts +0 -90
- package/src/lib/templating/elements/async.element.ts +0 -122
- package/src/lib/templating/elements/for.element.test.ts +0 -221
- package/src/lib/templating/elements/for.element.ts +0 -189
- package/src/lib/templating/elements/if.element.test.ts +0 -90
- package/src/lib/templating/elements/if.element.ts +0 -93
- package/src/lib/templating/elements/props.element.test.ts +0 -62
- package/src/lib/templating/elements/props.element.ts +0 -80
- package/src/lib/templating/elements/scope.ts +0 -45
- package/src/lib/templating/elements/value.element.test.ts +0 -20
- package/src/lib/templating/elements/value.element.ts +0 -41
- package/src/lib/templating/events.ts +0 -21
- package/src/lib/templating/token.test.ts +0 -74
- package/src/lib/templating/token.ts +0 -34
- package/src/lib/templating.ts +0 -2
- package/target/lib/templating/bind.d.ts +0 -1
- package/target/lib/templating/bind.js +0 -30
- package/target/lib/templating/bind.js.map +0 -1
- package/target/lib/templating/define.d.ts +0 -5
- package/target/lib/templating/define.js +0 -6
- package/target/lib/templating/define.js.map +0 -1
- package/target/lib/templating/elements/async.element.d.ts +0 -17
- package/target/lib/templating/elements/async.element.js +0 -115
- package/target/lib/templating/elements/async.element.js.map +0 -1
- package/target/lib/templating/elements/async.element.test.d.ts +0 -1
- package/target/lib/templating/elements/async.element.test.js +0 -75
- package/target/lib/templating/elements/async.element.test.js.map +0 -1
- package/target/lib/templating/elements/for.element.d.ts +0 -24
- package/target/lib/templating/elements/for.element.js +0 -186
- package/target/lib/templating/elements/for.element.js.map +0 -1
- package/target/lib/templating/elements/for.element.test.d.ts +0 -2
- package/target/lib/templating/elements/for.element.test.js +0 -153
- package/target/lib/templating/elements/for.element.test.js.map +0 -1
- package/target/lib/templating/elements/if.element.d.ts +0 -12
- package/target/lib/templating/elements/if.element.js +0 -85
- package/target/lib/templating/elements/if.element.js.map +0 -1
- package/target/lib/templating/elements/if.element.test.d.ts +0 -1
- package/target/lib/templating/elements/if.element.test.js +0 -78
- package/target/lib/templating/elements/if.element.test.js.map +0 -1
- package/target/lib/templating/elements/props.element.d.ts +0 -11
- package/target/lib/templating/elements/props.element.js +0 -92
- package/target/lib/templating/elements/props.element.js.map +0 -1
- package/target/lib/templating/elements/props.element.test.d.ts +0 -1
- package/target/lib/templating/elements/props.element.test.js +0 -53
- package/target/lib/templating/elements/props.element.test.js.map +0 -1
- package/target/lib/templating/elements/scope.d.ts +0 -13
- package/target/lib/templating/elements/scope.js +0 -59
- package/target/lib/templating/elements/scope.js.map +0 -1
- package/target/lib/templating/elements/value.element.d.ts +0 -9
- package/target/lib/templating/elements/value.element.js +0 -56
- package/target/lib/templating/elements/value.element.js.map +0 -1
- package/target/lib/templating/elements/value.element.test.d.ts +0 -1
- package/target/lib/templating/elements/value.element.test.js +0 -16
- package/target/lib/templating/elements/value.element.test.js.map +0 -1
- package/target/lib/templating/events.d.ts +0 -12
- package/target/lib/templating/events.js +0 -10
- package/target/lib/templating/events.js.map +0 -1
- package/target/lib/templating/token.d.ts +0 -8
- package/target/lib/templating/token.js +0 -27
- package/target/lib/templating/token.js.map +0 -1
- package/target/lib/templating/token.test.d.ts +0 -1
- package/target/lib/templating/token.test.js +0 -56
- package/target/lib/templating/token.test.js.map +0 -1
- package/target/lib/templating.d.ts +0 -2
- package/target/lib/templating.js +0 -3
- package/target/lib/templating.js.map +0 -1
package/target/lib/attr.test.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { __esDecorate, __propKey, __runInitializers } from "tslib";
|
|
2
|
-
import { expect } from "chai";
|
|
2
|
+
import { expect, assert } from "chai";
|
|
3
|
+
import { effect, observe } from "@joist/observable";
|
|
3
4
|
import { attr } from "./attr.js";
|
|
4
5
|
import { element } from "./element.js";
|
|
5
6
|
it("should read and parse the correct values", () => {
|
|
@@ -288,10 +289,10 @@ it("should throw an error for symbols with no description", async () => {
|
|
|
288
289
|
new MyElement();
|
|
289
290
|
}).to.throw("Cannot handle Symbol property without description");
|
|
290
291
|
});
|
|
291
|
-
it("should
|
|
292
|
+
it("non reflective attributes should still read new attribute values", async () => {
|
|
292
293
|
let MyElement = (() => {
|
|
293
294
|
let _classDecorators = [element({
|
|
294
|
-
tagName: "attr-test-
|
|
295
|
+
tagName: "attr-test-6",
|
|
295
296
|
})];
|
|
296
297
|
let _classDescriptor;
|
|
297
298
|
let _classExtraInitializers = [];
|
|
@@ -322,14 +323,13 @@ it("should not reflect property to attribute", async () => {
|
|
|
322
323
|
return MyElement = _classThis;
|
|
323
324
|
})();
|
|
324
325
|
const el = new MyElement();
|
|
325
|
-
el.value
|
|
326
|
+
el.setAttribute("value", "bar");
|
|
326
327
|
expect(el.value).to.equal("bar");
|
|
327
|
-
expect(el.hasAttribute("value")).to.be.false;
|
|
328
328
|
});
|
|
329
|
-
it("
|
|
329
|
+
it("should allow a manually defined attribute name", async () => {
|
|
330
330
|
let MyElement = (() => {
|
|
331
331
|
let _classDecorators = [element({
|
|
332
|
-
tagName: "attr-test-
|
|
332
|
+
tagName: "attr-test-7",
|
|
333
333
|
})];
|
|
334
334
|
let _classDescriptor;
|
|
335
335
|
let _classExtraInitializers = [];
|
|
@@ -342,14 +342,16 @@ it("non reflective attributes should still read new attribute values", async ()
|
|
|
342
342
|
static { _classThis = this; }
|
|
343
343
|
static {
|
|
344
344
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
345
|
-
_value_decorators = [attr({
|
|
345
|
+
_value_decorators = [attr({
|
|
346
|
+
name: "aria-label",
|
|
347
|
+
})];
|
|
346
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);
|
|
347
349
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
348
350
|
MyElement = _classThis = _classDescriptor.value;
|
|
349
351
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
350
352
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
351
353
|
}
|
|
352
|
-
#value_accessor_storage = __runInitializers(this, _value_initializers, "
|
|
354
|
+
#value_accessor_storage = __runInitializers(this, _value_initializers, "");
|
|
353
355
|
get value() { return this.#value_accessor_storage; }
|
|
354
356
|
set value(value) { this.#value_accessor_storage = value; }
|
|
355
357
|
constructor() {
|
|
@@ -360,37 +362,106 @@ it("non reflective attributes should still read new attribute values", async ()
|
|
|
360
362
|
return MyElement = _classThis;
|
|
361
363
|
})();
|
|
362
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);
|
|
363
421
|
el.setAttribute("value", "bar");
|
|
364
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();
|
|
365
430
|
});
|
|
366
|
-
it("should
|
|
431
|
+
it("setters should be called when attributes change", async () => {
|
|
432
|
+
let callCount = 0;
|
|
367
433
|
let MyElement = (() => {
|
|
368
434
|
let _classDecorators = [element({
|
|
369
|
-
tagName: "attr-test-
|
|
435
|
+
tagName: "attr-test-9",
|
|
370
436
|
})];
|
|
371
437
|
let _classDescriptor;
|
|
372
438
|
let _classExtraInitializers = [];
|
|
373
439
|
let _classThis;
|
|
374
440
|
let _classSuper = HTMLElement;
|
|
441
|
+
let _instanceExtraInitializers = [];
|
|
375
442
|
let _value_decorators;
|
|
376
443
|
let _value_initializers = [];
|
|
377
444
|
let _value_extraInitializers = [];
|
|
445
|
+
let _onValueChange_decorators;
|
|
378
446
|
var MyElement = class extends _classSuper {
|
|
379
447
|
static { _classThis = this; }
|
|
380
448
|
static {
|
|
381
449
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
382
|
-
_value_decorators = [attr(
|
|
383
|
-
|
|
384
|
-
})];
|
|
450
|
+
_value_decorators = [attr(), observe()];
|
|
451
|
+
_onValueChange_decorators = [effect()];
|
|
385
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);
|
|
386
454
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
387
455
|
MyElement = _classThis = _classDescriptor.value;
|
|
388
456
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
389
457
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
390
458
|
}
|
|
391
|
-
#value_accessor_storage = __runInitializers(this, _value_initializers, "");
|
|
459
|
+
#value_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _value_initializers, "foo"));
|
|
392
460
|
get value() { return this.#value_accessor_storage; }
|
|
393
461
|
set value(value) { this.#value_accessor_storage = value; }
|
|
462
|
+
onValueChange() {
|
|
463
|
+
callCount++;
|
|
464
|
+
}
|
|
394
465
|
constructor() {
|
|
395
466
|
super(...arguments);
|
|
396
467
|
__runInitializers(this, _value_extraInitializers);
|
|
@@ -399,9 +470,11 @@ it("should allow a manually defined attribute name", async () => {
|
|
|
399
470
|
return MyElement = _classThis;
|
|
400
471
|
})();
|
|
401
472
|
const el = new MyElement();
|
|
402
|
-
el.setAttribute("aria-label", "TEST");
|
|
403
473
|
document.body.append(el);
|
|
404
|
-
|
|
474
|
+
el.setAttribute("value", "bar");
|
|
475
|
+
await Promise.resolve();
|
|
476
|
+
await Promise.resolve();
|
|
477
|
+
assert.equal(callCount, 1);
|
|
405
478
|
el.remove();
|
|
406
479
|
});
|
|
407
480
|
//# sourceMappingURL=attr.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attr.test.js","sourceRoot":"","sources":["../../src/lib/attr.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"attr.test.js","sourceRoot":"","sources":["../../src/lib/attr.test.ts"],"names":[],"mappings":"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"}
|
package/target/lib/element.js
CHANGED
|
@@ -32,16 +32,18 @@ export function element(opts) {
|
|
|
32
32
|
const cbs = meta.attrChanges.get(name);
|
|
33
33
|
if (attr) {
|
|
34
34
|
if (oldValue !== newValue) {
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
const sourceValue = attr.access.get.call(this);
|
|
36
|
+
let value;
|
|
37
|
+
if (typeof sourceValue === "boolean") {
|
|
38
|
+
value = newValue !== null;
|
|
38
39
|
}
|
|
39
|
-
else if (typeof
|
|
40
|
-
|
|
40
|
+
else if (typeof sourceValue === "number") {
|
|
41
|
+
value = Number(newValue);
|
|
41
42
|
}
|
|
42
43
|
else {
|
|
43
|
-
|
|
44
|
+
value = newValue;
|
|
44
45
|
}
|
|
46
|
+
attr.access.set.call(this, value);
|
|
45
47
|
}
|
|
46
48
|
if (cbs) {
|
|
47
49
|
for (const cb of cbs) {
|
|
@@ -56,11 +58,11 @@ export function element(opts) {
|
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
60
|
connectedCallback() {
|
|
59
|
-
if (this
|
|
61
|
+
if (!this.#abortController) {
|
|
62
|
+
this.#abortController = new AbortController();
|
|
60
63
|
for (const { event, cb, selector } of meta.listeners) {
|
|
61
64
|
const root = selector(this);
|
|
62
65
|
if (root) {
|
|
63
|
-
this.#abortController = new AbortController();
|
|
64
66
|
root.addEventListener(event, cb.bind(this), {
|
|
65
67
|
signal: this.#abortController.signal,
|
|
66
68
|
});
|
|
@@ -69,10 +71,10 @@ export function element(opts) {
|
|
|
69
71
|
throw new Error(`could not add listener to ${root}`);
|
|
70
72
|
}
|
|
71
73
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
}
|
|
75
|
+
reflectAttributeValues(this, meta.attrs);
|
|
76
|
+
if (super.connectedCallback) {
|
|
77
|
+
super.connectedCallback();
|
|
76
78
|
}
|
|
77
79
|
}
|
|
78
80
|
disconnectedCallback() {
|
|
@@ -90,9 +92,9 @@ export function element(opts) {
|
|
|
90
92
|
};
|
|
91
93
|
}
|
|
92
94
|
function reflectAttributeValues(el, attrs) {
|
|
93
|
-
for (const [attrName, {
|
|
95
|
+
for (const [attrName, { access, reflect }] of attrs) {
|
|
94
96
|
if (reflect) {
|
|
95
|
-
const value =
|
|
97
|
+
const value = access.get.call(el);
|
|
96
98
|
if (value !== null && value !== undefined && value !== "") {
|
|
97
99
|
if (typeof value === "boolean") {
|
|
98
100
|
if (value === true) {
|
|
@@ -101,7 +103,7 @@ function reflectAttributeValues(el, attrs) {
|
|
|
101
103
|
}
|
|
102
104
|
}
|
|
103
105
|
}
|
|
104
|
-
else {
|
|
106
|
+
else if (!el.hasAttribute(attrName)) {
|
|
105
107
|
const strValue = String(value);
|
|
106
108
|
if (el.getAttribute(attrName) !== strValue) {
|
|
107
109
|
el.setAttribute(attrName, strValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/lib/element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,aAAa,EAAE,MAAM,eAAe,CAAC;AAajE,MAAM,UAAU,OAAO,CAA+B,IAAkB;IACtE,OAAO,SAAS,gBAAgB,CAAC,IAAO,EAAE,GAA6B;QACrE,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE9C,GAAG,CAAC,cAAc,CAAC;YACjB,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBACtC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG;YACV,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAM,SAAQ,IAAI;gBAC7B,MAAM,CAAC,kBAAkB,GAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAEpE,gBAAgB,GAA2B,IAAI,CAAC;gBAEhD,YAAY,GAAG,IAAW;oBACxB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;oBAEf,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC;wBACpB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;4BACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;wBAC5D,CAAC;wBAED,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;4BACjC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAClB,CAAC;oBACH,CAAC;oBAED,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBAC9B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC;gBACH,CAAC;gBAED,wBAAwB,
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/lib/element.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,6 +68,74 @@ it("should write default value to attribute", async () => {
|
|
|
68
68
|
expect(el.getAttribute("value4")).to.equal(null);
|
|
69
69
|
el.remove();
|
|
70
70
|
});
|
|
71
|
+
it("should register attributes", async () => {
|
|
72
|
+
const observedAttrs = [];
|
|
73
|
+
let MyElement = (() => {
|
|
74
|
+
let _classDecorators = [element({
|
|
75
|
+
tagName: "element-2",
|
|
76
|
+
})];
|
|
77
|
+
let _classDescriptor;
|
|
78
|
+
let _classExtraInitializers = [];
|
|
79
|
+
let _classThis;
|
|
80
|
+
let _classSuper = HTMLElement;
|
|
81
|
+
let _value1_decorators;
|
|
82
|
+
let _value1_initializers = [];
|
|
83
|
+
let _value1_extraInitializers = [];
|
|
84
|
+
let _value2_decorators;
|
|
85
|
+
let _value2_initializers = [];
|
|
86
|
+
let _value2_extraInitializers = [];
|
|
87
|
+
let _value3_decorators;
|
|
88
|
+
let _value3_initializers = [];
|
|
89
|
+
let _value3_extraInitializers = [];
|
|
90
|
+
let _value4_decorators;
|
|
91
|
+
let _value4_initializers = [];
|
|
92
|
+
let _value4_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
|
+
_value4_decorators = [attr({ observed: false })];
|
|
101
|
+
__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);
|
|
102
|
+
__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);
|
|
103
|
+
__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);
|
|
104
|
+
__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);
|
|
105
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
106
|
+
MyElement = _classThis = _classDescriptor.value;
|
|
107
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
108
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
109
|
+
}
|
|
110
|
+
#value1_accessor_storage = __runInitializers(this, _value1_initializers, "hello");
|
|
111
|
+
get value1() { return this.#value1_accessor_storage; }
|
|
112
|
+
set value1(value) { this.#value1_accessor_storage = value; }
|
|
113
|
+
#value2_accessor_storage = (__runInitializers(this, _value1_extraInitializers), __runInitializers(this, _value2_initializers, 0));
|
|
114
|
+
get value2() { return this.#value2_accessor_storage; }
|
|
115
|
+
set value2(value) { this.#value2_accessor_storage = value; }
|
|
116
|
+
#value3_accessor_storage = (__runInitializers(this, _value2_extraInitializers), __runInitializers(this, _value3_initializers, true));
|
|
117
|
+
get value3() { return this.#value3_accessor_storage; }
|
|
118
|
+
set value3(value) { this.#value3_accessor_storage = value; }
|
|
119
|
+
#value4_accessor_storage = (__runInitializers(this, _value3_extraInitializers), __runInitializers(this, _value4_initializers, "hello world"));
|
|
120
|
+
get value4() { return this.#value4_accessor_storage; }
|
|
121
|
+
set value4(value) { this.#value4_accessor_storage = value; }
|
|
122
|
+
attributeChangedCallback(name) {
|
|
123
|
+
observedAttrs.push(name);
|
|
124
|
+
}
|
|
125
|
+
constructor() {
|
|
126
|
+
super(...arguments);
|
|
127
|
+
__runInitializers(this, _value4_extraInitializers);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
return MyElement = _classThis;
|
|
131
|
+
})();
|
|
132
|
+
const el = new MyElement();
|
|
133
|
+
el.setAttribute("value1", "foo");
|
|
134
|
+
el.setAttribute("value2", "1");
|
|
135
|
+
el.setAttribute("value3", "false");
|
|
136
|
+
el.setAttribute("value4", "bar");
|
|
137
|
+
expect(observedAttrs).to.deep.equal(["value1", "value2", "value3"]);
|
|
138
|
+
});
|
|
71
139
|
it("should attach shadow root when the shadow property exists", async () => {
|
|
72
140
|
let MyElement = (() => {
|
|
73
141
|
let _classDecorators = [element({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.test.js","sourceRoot":"","sources":["../../src/lib/element.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QAIjD,SAAS;gCAHd,OAAO,CAAC;gBACP,OAAO,EAAE,WAAW;aACrB,CAAC;;;;0BACsB,WAAW;;;;;;;;;;;;;6BAAnB,SAAQ,WAAW;;;;sCAChC,IAAI,EAAE;sCAGN,IAAI,EAAE;sCAGN,IAAI,EAAE;sCAGN,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBARzB,uKAAS,MAAM,6BAAN,MAAM,uFAAW;gBAG1B,uKAAS,MAAM,6BAAN,MAAM,uFAAK;gBAGpB,uKAAS,MAAM,6BAAN,MAAM,uFAAQ;gBAGvB,uKAAS,MAAM,6BAAN,MAAM,uFAAS;gBAX1B,6KAYC;;;gBAZK,uDAAS;;YAEb,yEAAkB,OAAO,EAAC;YAA1B,IAAS,MAAM,4CAAW;YAA1B,IAAS,MAAM,kDAAW;YAG1B,8HAAkB,CAAC,GAAC;YAApB,IAAS,MAAM,4CAAK;YAApB,IAAS,MAAM,kDAAK;YAGpB,8HAAkB,IAAI,GAAC;YAAvB,IAAS,MAAM,4CAAQ;YAAvB,IAAS,MAAM,kDAAQ;YAGvB,8HAAkB,KAAK,GAAC;YAAxB,IAAS,MAAM,4CAAS;YAAxB,IAAS,MAAM,kDAAS;;;;;;;;IAG1B,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;IAE3B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEzB,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEjD,EAAE,CAAC,MAAM,EAAE,CAAC;AACd,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"element.test.js","sourceRoot":"","sources":["../../src/lib/element.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -164,4 +164,101 @@ describe("@listen()", () => {
|
|
|
164
164
|
el.remove();
|
|
165
165
|
});
|
|
166
166
|
});
|
|
167
|
+
it("should remove event listeners during cleanup", () => {
|
|
168
|
+
let clickCount = 0;
|
|
169
|
+
let MyElement = (() => {
|
|
170
|
+
let _classDecorators = [element({
|
|
171
|
+
tagName: "listener-cleanup",
|
|
172
|
+
shadowDom: [],
|
|
173
|
+
})];
|
|
174
|
+
let _classDescriptor;
|
|
175
|
+
let _classExtraInitializers = [];
|
|
176
|
+
let _classThis;
|
|
177
|
+
let _classSuper = HTMLElement;
|
|
178
|
+
let _instanceExtraInitializers = [];
|
|
179
|
+
let _onClick1_decorators;
|
|
180
|
+
let _onClick2_decorators;
|
|
181
|
+
var MyElement = class extends _classSuper {
|
|
182
|
+
static { _classThis = this; }
|
|
183
|
+
static {
|
|
184
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
185
|
+
_onClick1_decorators = [listen("click")];
|
|
186
|
+
_onClick2_decorators = [listen("click")];
|
|
187
|
+
__esDecorate(this, null, _onClick1_decorators, { kind: "method", name: "onClick1", static: false, private: false, access: { has: obj => "onClick1" in obj, get: obj => obj.onClick1 }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
188
|
+
__esDecorate(this, null, _onClick2_decorators, { kind: "method", name: "onClick2", static: false, private: false, access: { has: obj => "onClick2" in obj, get: obj => obj.onClick2 }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
189
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
190
|
+
MyElement = _classThis = _classDescriptor.value;
|
|
191
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
192
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
193
|
+
}
|
|
194
|
+
onClick1() {
|
|
195
|
+
clickCount++;
|
|
196
|
+
}
|
|
197
|
+
onClick2() {
|
|
198
|
+
clickCount++;
|
|
199
|
+
}
|
|
200
|
+
constructor() {
|
|
201
|
+
super(...arguments);
|
|
202
|
+
__runInitializers(this, _instanceExtraInitializers);
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
return MyElement = _classThis;
|
|
206
|
+
})();
|
|
207
|
+
const el = new MyElement();
|
|
208
|
+
document.body.append(el);
|
|
209
|
+
el.shadowRoot?.dispatchEvent(new Event("click"));
|
|
210
|
+
assert.equal(clickCount, 2);
|
|
211
|
+
el.remove();
|
|
212
|
+
el.shadowRoot?.dispatchEvent(new Event("click"));
|
|
213
|
+
assert.equal(clickCount, 2);
|
|
214
|
+
});
|
|
215
|
+
it("should not add event listeners multiple times when element is moved", () => {
|
|
216
|
+
let clickCount = 0;
|
|
217
|
+
let MyElement = (() => {
|
|
218
|
+
let _classDecorators = [element({
|
|
219
|
+
tagName: "listener-move",
|
|
220
|
+
shadowDom: [],
|
|
221
|
+
})];
|
|
222
|
+
let _classDescriptor;
|
|
223
|
+
let _classExtraInitializers = [];
|
|
224
|
+
let _classThis;
|
|
225
|
+
let _classSuper = HTMLElement;
|
|
226
|
+
let _instanceExtraInitializers = [];
|
|
227
|
+
let _onClick_decorators;
|
|
228
|
+
var MyElement = class extends _classSuper {
|
|
229
|
+
static { _classThis = this; }
|
|
230
|
+
static {
|
|
231
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
232
|
+
_onClick_decorators = [listen("click")];
|
|
233
|
+
__esDecorate(this, null, _onClick_decorators, { kind: "method", name: "onClick", static: false, private: false, access: { has: obj => "onClick" in obj, get: obj => obj.onClick }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
234
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
235
|
+
MyElement = _classThis = _classDescriptor.value;
|
|
236
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
237
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
238
|
+
}
|
|
239
|
+
onClick() {
|
|
240
|
+
clickCount++;
|
|
241
|
+
}
|
|
242
|
+
constructor() {
|
|
243
|
+
super(...arguments);
|
|
244
|
+
__runInitializers(this, _instanceExtraInitializers);
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
return MyElement = _classThis;
|
|
248
|
+
})();
|
|
249
|
+
const el = new MyElement();
|
|
250
|
+
const container1 = document.createElement("div");
|
|
251
|
+
const container2 = document.createElement("div");
|
|
252
|
+
document.body.append(container1);
|
|
253
|
+
document.body.append(container2);
|
|
254
|
+
container1.append(el);
|
|
255
|
+
el.shadowRoot?.dispatchEvent(new Event("click"));
|
|
256
|
+
assert.equal(clickCount, 1);
|
|
257
|
+
container2.append(el);
|
|
258
|
+
el.shadowRoot?.dispatchEvent(new Event("click"));
|
|
259
|
+
assert.equal(clickCount, 2);
|
|
260
|
+
el.remove();
|
|
261
|
+
container1.remove();
|
|
262
|
+
container2.remove();
|
|
263
|
+
});
|
|
167
264
|
//# sourceMappingURL=listen.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listen.test.js","sourceRoot":"","sources":["../../src/lib/listen.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"listen.test.js","sourceRoot":"","sources":["../../src/lib/listen.test.ts"],"names":[],"mappings":"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"}
|
package/target/lib/metadata.d.ts
CHANGED
|
@@ -2,8 +2,10 @@ export interface AttrDef {
|
|
|
2
2
|
propName: string | symbol;
|
|
3
3
|
observe: boolean;
|
|
4
4
|
reflect: boolean;
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
access: {
|
|
6
|
+
get: () => unknown;
|
|
7
|
+
set: (value: unknown) => void;
|
|
8
|
+
};
|
|
7
9
|
}
|
|
8
10
|
export type ListenerSelector<T> = (el: T) => EventTarget | null;
|
|
9
11
|
export interface Listener<T> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/lib/metadata.ts"],"names":[],"mappings":"AAAC,MAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/lib/metadata.ts"],"names":[],"mappings":"AAAC,MAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAsBvD,MAAM,OAAO,YAAa,SAAQ,GAAoB;CAAG;AACzD,MAAM,OAAO,kBAAmB,SAAQ,GAAqC;CAAG;AAEhF,MAAM,OAAO,eAAe;IAC1B,KAAK,GAAiB,IAAI,YAAY,EAAE,CAAC;IACzC,WAAW,GAAuB,IAAI,kBAAkB,EAAE,CAAC;IAC3D,SAAS,GAAkB,EAAE,CAAC;IAC9B,OAAO,GAAoB,IAAI,GAAG,EAAE,CAAC;CACtC;AAED,MAAM,OAAO,aAAc,SAAQ,OAAyC;IAC1E,IAAI,CAAI,KAAa;QACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,eAAe,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAA6B,CAAC;IACrD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAkB,IAAI,aAAa,EAAE,CAAC"}
|