@joist/element 4.0.0-next.9 → 4.0.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 (74) hide show
  1. package/README.md +96 -21
  2. package/package.json +10 -33
  3. package/src/lib/attr-changed.test.ts +34 -0
  4. package/src/lib/attr-changed.ts +15 -0
  5. package/src/lib/attr.test.ts +88 -34
  6. package/src/lib/attr.ts +31 -38
  7. package/src/lib/element.test.ts +69 -49
  8. package/src/lib/element.ts +118 -52
  9. package/src/lib/lifecycle.test.ts +10 -10
  10. package/src/lib/lifecycle.ts +5 -2
  11. package/src/lib/listen.test.ts +43 -27
  12. package/src/lib/listen.ts +13 -9
  13. package/src/lib/metadata.ts +25 -11
  14. package/src/lib/query-all.test.ts +153 -0
  15. package/src/lib/query-all.ts +81 -0
  16. package/src/lib/query.test.ts +113 -24
  17. package/src/lib/query.ts +51 -16
  18. package/src/lib/result.ts +2 -2
  19. package/src/lib/tags.ts +10 -7
  20. package/src/lib/template.test.ts +57 -29
  21. package/src/lib/template.ts +42 -27
  22. package/src/lib.ts +8 -7
  23. package/target/lib/attr-changed.d.ts +2 -0
  24. package/target/lib/attr-changed.js +10 -0
  25. package/target/lib/attr-changed.js.map +1 -0
  26. package/target/lib/attr-changed.test.d.ts +1 -0
  27. package/target/lib/attr-changed.test.js +54 -0
  28. package/target/lib/attr-changed.test.js.map +1 -0
  29. package/target/lib/attr.d.ts +2 -0
  30. package/target/lib/attr.js +28 -30
  31. package/target/lib/attr.js.map +1 -1
  32. package/target/lib/attr.test.js +157 -40
  33. package/target/lib/attr.test.js.map +1 -1
  34. package/target/lib/element.d.ts +9 -337
  35. package/target/lib/element.js +84 -40
  36. package/target/lib/element.js.map +1 -1
  37. package/target/lib/element.test.js +52 -78
  38. package/target/lib/element.test.js.map +1 -1
  39. package/target/lib/lifecycle.d.ts +1 -1
  40. package/target/lib/lifecycle.js +1 -1
  41. package/target/lib/lifecycle.js.map +1 -1
  42. package/target/lib/lifecycle.test.js +10 -10
  43. package/target/lib/lifecycle.test.js.map +1 -1
  44. package/target/lib/listen.d.ts +2 -2
  45. package/target/lib/listen.js +5 -4
  46. package/target/lib/listen.js.map +1 -1
  47. package/target/lib/listen.test.js +35 -27
  48. package/target/lib/listen.test.js.map +1 -1
  49. package/target/lib/metadata.d.ts +21 -11
  50. package/target/lib/metadata.js +8 -3
  51. package/target/lib/metadata.js.map +1 -1
  52. package/target/lib/query-all.d.ts +10 -0
  53. package/target/lib/query-all.js +40 -0
  54. package/target/lib/query-all.js.map +1 -0
  55. package/target/lib/query-all.test.d.ts +1 -0
  56. package/target/lib/query-all.test.js +195 -0
  57. package/target/lib/query-all.test.js.map +1 -0
  58. package/target/lib/query.d.ts +6 -5
  59. package/target/lib/query.js +22 -10
  60. package/target/lib/query.js.map +1 -1
  61. package/target/lib/query.test.js +134 -24
  62. package/target/lib/query.test.js.map +1 -1
  63. package/target/lib/result.d.ts +2 -2
  64. package/target/lib/tags.d.ts +4 -4
  65. package/target/lib/tags.js +6 -3
  66. package/target/lib/tags.js.map +1 -1
  67. package/target/lib/template.d.ts +3 -1
  68. package/target/lib/template.js +26 -20
  69. package/target/lib/template.js.map +1 -1
  70. package/target/lib/template.test.js +47 -26
  71. package/target/lib/template.test.js.map +1 -1
  72. package/target/lib.d.ts +8 -7
  73. package/target/lib.js +8 -7
  74. package/target/lib.js.map +1 -1
@@ -1,12 +1,12 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
- import { expect } from 'chai';
3
- import { attr } from './attr.js';
4
- import { element } from './element.js';
5
- import { css, html } from './tags.js';
6
- it('should write default value to attribute', async () => {
2
+ import { assert, expect } from "chai";
3
+ import { attr } from "./attr.js";
4
+ import { element } from "./element.js";
5
+ import { css, html } from "./tags.js";
6
+ it("should write default value to attribute", async () => {
7
7
  let MyElement = (() => {
8
8
  let _classDecorators = [element({
9
- tagName: 'element-1'
9
+ tagName: "element-1",
10
10
  })];
11
11
  let _classDescriptor;
12
12
  let _classExtraInitializers = [];
@@ -21,6 +21,9 @@ it('should write default value to attribute', async () => {
21
21
  let _value3_decorators;
22
22
  let _value3_initializers = [];
23
23
  let _value3_extraInitializers = [];
24
+ let _value4_decorators;
25
+ let _value4_initializers = [];
26
+ let _value4_extraInitializers = [];
24
27
  var MyElement = class extends _classSuper {
25
28
  static { _classThis = this; }
26
29
  static {
@@ -28,15 +31,17 @@ it('should write default value to attribute', async () => {
28
31
  _value1_decorators = [attr()];
29
32
  _value2_decorators = [attr()];
30
33
  _value3_decorators = [attr()];
34
+ _value4_decorators = [attr({ reflect: false })];
31
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);
32
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);
33
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);
34
39
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
35
40
  MyElement = _classThis = _classDescriptor.value;
36
41
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
37
42
  __runInitializers(_classThis, _classExtraInitializers);
38
43
  }
39
- #value1_accessor_storage = __runInitializers(this, _value1_initializers, 'hello');
44
+ #value1_accessor_storage = __runInitializers(this, _value1_initializers, "hello");
40
45
  get value1() { return this.#value1_accessor_storage; }
41
46
  set value1(value) { this.#value1_accessor_storage = value; }
42
47
  #value2_accessor_storage = (__runInitializers(this, _value1_extraInitializers), __runInitializers(this, _value2_initializers, 0));
@@ -45,88 +50,68 @@ it('should write default value to attribute', async () => {
45
50
  #value3_accessor_storage = (__runInitializers(this, _value2_extraInitializers), __runInitializers(this, _value3_initializers, true));
46
51
  get value3() { return this.#value3_accessor_storage; }
47
52
  set value3(value) { this.#value3_accessor_storage = value; }
53
+ #value4_accessor_storage = (__runInitializers(this, _value3_extraInitializers), __runInitializers(this, _value4_initializers, "foo"));
54
+ get value4() { return this.#value4_accessor_storage; }
55
+ set value4(value) { this.#value4_accessor_storage = value; }
48
56
  constructor() {
49
57
  super(...arguments);
50
- __runInitializers(this, _value3_extraInitializers);
58
+ __runInitializers(this, _value4_extraInitializers);
51
59
  }
52
60
  };
53
61
  return MyElement = _classThis;
54
62
  })();
55
63
  const el = new MyElement();
56
64
  document.body.append(el);
57
- expect(el.getAttribute('value1')).to.equal('hello');
58
- expect(el.getAttribute('value2')).to.equal('0');
59
- expect(el.getAttribute('value3')).to.equal('');
65
+ expect(el.getAttribute("value1")).to.equal("hello");
66
+ expect(el.getAttribute("value2")).to.equal("0");
67
+ expect(el.getAttribute("value3")).to.equal("");
68
+ expect(el.getAttribute("value4")).to.equal(null);
60
69
  el.remove();
61
70
  });
62
- it('should register attributes', async () => {
71
+ it("should attach shadow root when the shadow property exists", async () => {
63
72
  let MyElement = (() => {
64
73
  let _classDecorators = [element({
65
- tagName: 'element-2'
74
+ tagName: "element-3",
75
+ shadowDom: [],
66
76
  })];
67
77
  let _classDescriptor;
68
78
  let _classExtraInitializers = [];
69
79
  let _classThis;
70
80
  let _classSuper = HTMLElement;
71
- let _value1_decorators;
72
- let _value1_initializers = [];
73
- let _value1_extraInitializers = [];
74
- let _value2_decorators;
75
- let _value2_initializers = [];
76
- let _value2_extraInitializers = [];
77
- let _value3_decorators;
78
- let _value3_initializers = [];
79
- let _value3_extraInitializers = [];
80
- let _value4_decorators;
81
- let _value4_initializers = [];
82
- let _value4_extraInitializers = [];
83
81
  var MyElement = class extends _classSuper {
84
82
  static { _classThis = this; }
85
83
  static {
86
84
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
87
- _value1_decorators = [attr()];
88
- _value2_decorators = [attr()];
89
- _value3_decorators = [attr()];
90
- _value4_decorators = [attr({ observed: false })];
91
- __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);
92
- __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);
93
- __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);
94
- __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);
95
85
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
96
86
  MyElement = _classThis = _classDescriptor.value;
97
87
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
98
88
  __runInitializers(_classThis, _classExtraInitializers);
99
89
  }
100
- #value1_accessor_storage = __runInitializers(this, _value1_initializers, 'hello');
101
- get value1() { return this.#value1_accessor_storage; }
102
- set value1(value) { this.#value1_accessor_storage = value; }
103
- #value2_accessor_storage = (__runInitializers(this, _value1_extraInitializers), __runInitializers(this, _value2_initializers, 0));
104
- get value2() { return this.#value2_accessor_storage; }
105
- set value2(value) { this.#value2_accessor_storage = value; }
106
- #value3_accessor_storage = (__runInitializers(this, _value2_extraInitializers), __runInitializers(this, _value3_initializers, true));
107
- get value3() { return this.#value3_accessor_storage; }
108
- set value3(value) { this.#value3_accessor_storage = value; }
109
- #value4_accessor_storage = (__runInitializers(this, _value3_extraInitializers), __runInitializers(this, _value4_initializers, 'hello world'));
110
- get value4() { return this.#value4_accessor_storage; }
111
- set value4(value) { this.#value4_accessor_storage = value; }
112
- constructor() {
113
- super(...arguments);
114
- __runInitializers(this, _value4_extraInitializers);
115
- }
116
90
  };
117
91
  return MyElement = _classThis;
118
92
  })();
119
- expect(Reflect.get(MyElement, 'observedAttributes')).to.deep.equal([
120
- 'value1',
121
- 'value2',
122
- 'value3'
123
- ]);
93
+ const el = new MyElement();
94
+ expect(el.shadowRoot).to.be.instanceOf(ShadowRoot);
124
95
  });
125
- it('should attach shadow root when the shadow property exists', async () => {
96
+ it("should apply html and css", async () => {
126
97
  let MyElement = (() => {
127
98
  let _classDecorators = [element({
128
- tagName: 'element-3',
129
- shadow: []
99
+ tagName: "element-4",
100
+ shadowDom: [
101
+ css `
102
+ :host {
103
+ display: contents;
104
+ }
105
+ `,
106
+ html `<slot></slot>`,
107
+ {
108
+ apply(el) {
109
+ const div = document.createElement("div");
110
+ div.innerHTML = "hello world";
111
+ el.append(div);
112
+ },
113
+ },
114
+ ],
130
115
  })];
131
116
  let _classDescriptor;
132
117
  let _classExtraInitializers = [];
@@ -145,27 +130,18 @@ it('should attach shadow root when the shadow property exists', async () => {
145
130
  return MyElement = _classThis;
146
131
  })();
147
132
  const el = new MyElement();
148
- expect(el.shadowRoot).to.be.instanceOf(ShadowRoot);
133
+ expect(el.shadowRoot?.adoptedStyleSheets.length).to.equal(1);
134
+ expect(el.shadowRoot?.innerHTML).to.equal("<slot></slot>");
135
+ expect(el.innerHTML).to.equal("<div>hello world</div>");
149
136
  });
150
- it('should apply html and css', async () => {
137
+ it("should the correct shadow dom mode", async () => {
151
138
  let MyElement = (() => {
152
139
  let _classDecorators = [element({
153
- tagName: 'element-4',
154
- shadow: [
155
- css `
156
- :host {
157
- display: contents;
158
- }
159
- `,
160
- html `<slot></slot>`,
161
- {
162
- apply(el) {
163
- const div = document.createElement('div');
164
- div.innerHTML = 'hello world';
165
- el.append(div);
166
- }
167
- }
168
- ]
140
+ tagName: "element-5",
141
+ shadowDom: [],
142
+ shadowDomOpts: {
143
+ mode: "closed",
144
+ },
169
145
  })];
170
146
  let _classDescriptor;
171
147
  let _classExtraInitializers = [];
@@ -184,8 +160,6 @@ it('should apply html and css', async () => {
184
160
  return MyElement = _classThis;
185
161
  })();
186
162
  const el = new MyElement();
187
- expect(el.shadowRoot.adoptedStyleSheets.length).to.equal(1);
188
- expect(el.shadowRoot.innerHTML).to.equal(`<slot></slot>`);
189
- expect(el.innerHTML).to.equal(`<div>hello world</div>`);
163
+ assert.equal(el.shadowRoot, null);
190
164
  });
191
165
  //# sourceMappingURL=element.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.test.js","sourceRoot":"","sources":["../../src/lib/element.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,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;gBALP,uKAAS,MAAM,6BAAN,MAAM,uFAAW;gBAG1B,uKAAS,MAAM,6BAAN,MAAM,uFAAK;gBAGpB,uKAAS,MAAM,6BAAN,MAAM,uFAAQ;gBARzB,6KASC;;;gBATK,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;;;;;;;;IAGzB,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;IAE/C,EAAE,CAAC,MAAM,EAAE,CAAC;AACd,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAIpC,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,QAAQ,EAAE,KAAK,EAAE,CAAC;gBAR1B,uKAAS,MAAM,6BAAN,MAAM,uFAAW;gBAG1B,uKAAS,MAAM,6BAAN,MAAM,uFAAK;gBAGpB,uKAAS,MAAM,6BAAN,MAAM,uFAAQ;gBAGvB,uKAAS,MAAM,6BAAN,MAAM,uFAAiB;gBAXlC,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,aAAa,GAAC;YAAhC,IAAS,MAAM,4CAAiB;YAAhC,IAAS,MAAM,kDAAiB;;;;;;;;IAGlC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;QACjE,QAAQ;QACR,QAAQ;QACR,QAAQ;KACT,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QAKnE,SAAS;gCAJd,OAAO,CAAC;gBACP,OAAO,EAAE,WAAW;gBACpB,MAAM,EAAE,EAAE;aACX,CAAC;;;;0BACsB,WAAW;6BAAnB,SAAQ,WAAW;;;;gBAAnC,6KAAsC;;;gBAAhC,uDAAS;;;;;IAEf,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;IAE3B,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QAoBnC,SAAS;gCAnBd,OAAO,CAAC;gBACP,OAAO,EAAE,WAAW;gBACpB,MAAM,EAAE;oBACN,GAAG,CAAA;;;;OAIF;oBACD,IAAI,CAAA,eAAe;oBACnB;wBACE,KAAK,CAAC,EAAE;4BACN,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;4BAC1C,GAAG,CAAC,SAAS,GAAG,aAAa,CAAC;4BAE9B,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBACjB,CAAC;qBACF;iBACF;aACF,CAAC;;;;0BACsB,WAAW;6BAAnB,SAAQ,WAAW;;;;gBAAnC,6KAAsC;;;gBAAhC,uDAAS;;;;;IAEf,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;IAE3B,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC3D,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"element.test.js","sourceRoot":"","sources":["../../src/lib/element.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare function ready(): (val: Function, ctx: ClassMethodDecoratorContext) => void;
1
+ export declare function ready(): (val: () => void, ctx: ClassMethodDecoratorContext) => void;
@@ -1,4 +1,4 @@
1
- import { metadataStore } from './metadata.js';
1
+ import { metadataStore } from "./metadata.js";
2
2
  export function ready() {
3
3
  return function readyDecorator(val, ctx) {
4
4
  const metadata = metadataStore.read(ctx.metadata);
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/lib/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,UAAU,KAAK;IACnB,OAAO,SAAS,cAAc,CAAC,GAAa,EAAE,GAAgC;QAC5E,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAElD,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/lib/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,UAAU,KAAK;IACnB,OAAO,SAAS,cAAc,CAC5B,GAAe,EACf,GAAgC;QAEhC,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAElD,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC"}
@@ -1,11 +1,11 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
- import { assert } from 'chai';
3
- import { element } from './element.js';
4
- import { ready } from './lifecycle';
5
- it('should call all callbacks when template is ready', () => {
2
+ import { assert } from "chai";
3
+ import { element } from "./element.js";
4
+ import { ready } from "./lifecycle.js";
5
+ it("should call all callbacks when template is ready", () => {
6
6
  let MyElement = (() => {
7
7
  let _classDecorators = [element({
8
- tagName: 'template-ready-1'
8
+ tagName: "template-ready-1",
9
9
  })];
10
10
  let _classDescriptor;
11
11
  let _classExtraInitializers = [];
@@ -29,12 +29,12 @@ it('should call all callbacks when template is ready', () => {
29
29
  }
30
30
  callCount = (__runInitializers(this, _instanceExtraInitializers), {});
31
31
  onTemplateReady1() {
32
- this.callCount['onTemplateReady1'] ??= 0;
33
- this.callCount['onTemplateReady1']++;
32
+ this.callCount.onTemplateReady1 ??= 0;
33
+ this.callCount.onTemplateReady1++;
34
34
  }
35
35
  onTemplateReady2() {
36
- this.callCount['onTemplateReady2'] ??= 0;
37
- this.callCount['onTemplateReady2']++;
36
+ this.callCount.onTemplateReady2 ??= 0;
37
+ this.callCount.onTemplateReady2++;
38
38
  }
39
39
  };
40
40
  return MyElement = _classThis;
@@ -42,7 +42,7 @@ it('should call all callbacks when template is ready', () => {
42
42
  const el = new MyElement();
43
43
  assert.deepEqual(el.callCount, {
44
44
  onTemplateReady1: 1,
45
- onTemplateReady2: 1
45
+ onTemplateReady2: 1,
46
46
  });
47
47
  });
48
48
  //# sourceMappingURL=lifecycle.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.test.js","sourceRoot":"","sources":["../../src/lib/lifecycle.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAIpD,SAAS;gCAHd,OAAO,CAAC;gBACP,OAAO,EAAE,kBAAkB;aAC5B,CAAC;;;;0BACsB,WAAW;;;;6BAAnB,SAAQ,WAAW;;;;gDAGhC,KAAK,EAAE;gDAMP,KAAK,EAAE;gBALR,mMAAA,gBAAgB,6DAGf;gBAGD,mMAAA,gBAAgB,6DAGf;gBAbH,6KAcC;;;gBAdK,uDAAS;;YACb,SAAS,IADL,mDAAS,EACuB,EAAE,EAAC;YAGvC,gBAAgB;gBACd,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACvC,CAAC;YAGD,gBAAgB;gBACd,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACvC,CAAC;;;;IAGH,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;IAE3B,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE;QAC7B,gBAAgB,EAAE,CAAC;QACnB,gBAAgB,EAAE,CAAC;KACpB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"lifecycle.test.js","sourceRoot":"","sources":["../../src/lib/lifecycle.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAIpD,SAAS;gCAHd,OAAO,CAAC;gBACP,OAAO,EAAE,kBAAkB;aAC5B,CAAC;;;;0BACsB,WAAW;;;;6BAAnB,SAAQ,WAAW;;;;gDAGhC,KAAK,EAAE;gDAMP,KAAK,EAAE;gBALR,mMAAA,gBAAgB,6DAGf;gBAGD,mMAAA,gBAAgB,6DAGf;gBAbH,6KAcC;;;gBAdK,uDAAS;;YACb,SAAS,IADL,mDAAS,EACuB,EAAE,EAAC;YAGvC,gBAAgB;gBACd,IAAI,CAAC,SAAS,CAAC,gBAAgB,KAAK,CAAC,CAAC;gBACtC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;YACpC,CAAC;YAGD,gBAAgB;gBACd,IAAI,CAAC,SAAS,CAAC,gBAAgB,KAAK,CAAC,CAAC;gBACtC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;YACpC,CAAC;;;;IAGH,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;IAE3B,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE;QAC7B,gBAAgB,EAAE,CAAC;QACnB,gBAAgB,EAAE,CAAC;KACpB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
- import { ListenerSelector } from './metadata.js';
2
- export declare function listen<This extends HTMLElement>(event: string, selector?: ListenerSelector | string): (value: (e: any) => void, ctx: ClassMethodDecoratorContext<This>) => void;
1
+ import { type ListenerSelector } from "./metadata.js";
2
+ export declare function listen<This extends HTMLElement>(event: string, selector?: ListenerSelector<This> | string): (value: (e: any) => void, ctx: ClassMethodDecoratorContext<This>) => void;
@@ -1,10 +1,10 @@
1
- import { metadataStore } from './metadata.js';
1
+ import { metadataStore } from "./metadata.js";
2
2
  export function listen(event, selector) {
3
3
  return function listenDecorator(value, ctx) {
4
4
  const metadata = metadataStore.read(ctx.metadata);
5
5
  let selectorInternal = (el) => el.shadowRoot ?? el;
6
6
  if (selector) {
7
- if (typeof selector === 'string') {
7
+ if (typeof selector === "string") {
8
8
  selectorInternal = (el) => {
9
9
  if (el.shadowRoot) {
10
10
  return el.shadowRoot.querySelector(selector);
@@ -16,9 +16,10 @@ export function listen(event, selector) {
16
16
  selectorInternal = selector;
17
17
  }
18
18
  }
19
- metadata.listeners.set(event, {
19
+ metadata.listeners.push({
20
+ event,
20
21
  cb: value,
21
- selector: selectorInternal
22
+ selector: selectorInternal,
22
23
  });
23
24
  };
24
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"listen.js","sourceRoot":"","sources":["../../src/lib/listen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,aAAa,EAAE,MAAM,eAAe,CAAC;AAEhE,MAAM,UAAU,MAAM,CACpB,KAAa,EACb,QAAoC;IAEpC,OAAO,SAAS,eAAe,CAAC,KAAuB,EAAE,GAAsC;QAC7F,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAElD,IAAI,gBAAgB,GAAqB,CAAC,EAAW,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC;QAE9E,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,gBAAgB,GAAG,CAAC,EAAW,EAAE,EAAE;oBACjC,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;wBAClB,OAAO,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAC/C,CAAC;oBAED,OAAO,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACpC,CAAC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,gBAAgB,GAAG,QAAQ,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;YAC5B,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,gBAAgB;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"listen.js","sourceRoot":"","sources":["../../src/lib/listen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,aAAa,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,UAAU,MAAM,CACpB,KAAa,EACb,QAA0C;IAE1C,OAAO,SAAS,eAAe,CAC7B,KAAuB,EACvB,GAAsC;QAEtC,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExD,IAAI,gBAAgB,GAA2B,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC;QAE3E,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,gBAAgB,GAAG,CAAC,EAAQ,EAAE,EAAE;oBAC9B,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;wBAClB,OAAO,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAC/C,CAAC;oBAED,OAAO,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACpC,CAAC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,gBAAgB,GAAG,QAAQ,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;YACtB,KAAK;YACL,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,gBAAgB;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -1,12 +1,12 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
- import { assert } from 'chai';
3
- import { element } from './element.js';
4
- import { listen } from './listen.js';
5
- describe('@listen()', () => {
6
- it('should add listener to an outer HTMLElement', (done) => {
2
+ import { assert } from "chai";
3
+ import { element } from "./element.js";
4
+ import { listen } from "./listen.js";
5
+ describe("@listen()", () => {
6
+ it("should add listener to an outer HTMLElement", (done) => {
7
7
  let MyElement = (() => {
8
8
  let _classDecorators = [element({
9
- tagName: 'listener-1'
9
+ tagName: "listener-1",
10
10
  })];
11
11
  let _classDescriptor;
12
12
  let _classExtraInitializers = [];
@@ -18,7 +18,7 @@ describe('@listen()', () => {
18
18
  static { _classThis = this; }
19
19
  static {
20
20
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
21
- _onClick_decorators = [listen('click')];
21
+ _onClick_decorators = [listen("click")];
22
22
  __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);
23
23
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
24
24
  MyElement = _classThis = _classDescriptor.value;
@@ -26,7 +26,7 @@ describe('@listen()', () => {
26
26
  __runInitializers(_classThis, _classExtraInitializers);
27
27
  }
28
28
  onClick(e) {
29
- assert.equal(e.type, 'click');
29
+ assert.equal(e.type, "click");
30
30
  done();
31
31
  }
32
32
  constructor() {
@@ -37,13 +37,15 @@ describe('@listen()', () => {
37
37
  return MyElement = _classThis;
38
38
  })();
39
39
  const el = new MyElement();
40
- el.dispatchEvent(new Event('click'));
40
+ document.body.append(el);
41
+ el.dispatchEvent(new Event("click"));
42
+ el.remove();
41
43
  });
42
- it('should add listener to the shadow root if available', (done) => {
44
+ it("should add listener to the shadow root if available", (done) => {
43
45
  let MyElement = (() => {
44
46
  let _classDecorators = [element({
45
- tagName: 'listener-2',
46
- shadow: []
47
+ tagName: "listener-2",
48
+ shadowDom: [],
47
49
  })];
48
50
  let _classDescriptor;
49
51
  let _classExtraInitializers = [];
@@ -55,7 +57,7 @@ describe('@listen()', () => {
55
57
  static { _classThis = this; }
56
58
  static {
57
59
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
58
- _onClick_decorators = [listen('click')];
60
+ _onClick_decorators = [listen("click")];
59
61
  __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);
60
62
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
61
63
  MyElement = _classThis = _classDescriptor.value;
@@ -63,7 +65,7 @@ describe('@listen()', () => {
63
65
  __runInitializers(_classThis, _classExtraInitializers);
64
66
  }
65
67
  onClick(e) {
66
- assert.equal(e.type, 'click');
68
+ assert.equal(e.type, "click");
67
69
  done();
68
70
  }
69
71
  constructor() {
@@ -74,18 +76,20 @@ describe('@listen()', () => {
74
76
  return MyElement = _classThis;
75
77
  })();
76
78
  const el = new MyElement();
77
- el.shadowRoot.dispatchEvent(new Event('click'));
79
+ document.body.append(el);
80
+ el.shadowRoot?.dispatchEvent(new Event("click"));
81
+ el.remove();
78
82
  });
79
- it('should restrict argument to an event or an event subtype', (done) => {
83
+ it("should restrict argument to an event or an event subtype", (done) => {
80
84
  class CustomEvent extends Event {
81
- test = 'Hello World';
85
+ test = "Hello World";
82
86
  constructor() {
83
- super('customevent');
87
+ super("customevent");
84
88
  }
85
89
  }
86
90
  let MyElement = (() => {
87
91
  let _classDecorators = [element({
88
- tagName: 'listener-3'
92
+ tagName: "listener-3",
89
93
  })];
90
94
  let _classDescriptor;
91
95
  let _classExtraInitializers = [];
@@ -97,7 +101,7 @@ describe('@listen()', () => {
97
101
  static { _classThis = this; }
98
102
  static {
99
103
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
100
- _onClick_decorators = [listen('customevent')];
104
+ _onClick_decorators = [listen("customevent")];
101
105
  __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);
102
106
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
103
107
  MyElement = _classThis = _classDescriptor.value;
@@ -105,7 +109,7 @@ describe('@listen()', () => {
105
109
  __runInitializers(_classThis, _classExtraInitializers);
106
110
  }
107
111
  onClick(e) {
108
- assert.equal(e.type, 'customevent');
112
+ assert.equal(e.type, "customevent");
109
113
  done();
110
114
  }
111
115
  constructor() {
@@ -116,13 +120,15 @@ describe('@listen()', () => {
116
120
  return MyElement = _classThis;
117
121
  })();
118
122
  const el = new MyElement();
123
+ document.body.append(el);
119
124
  el.dispatchEvent(new CustomEvent());
125
+ el.remove();
120
126
  });
121
- it('should respect a provided selector function', (done) => {
127
+ it("should respect a provided selector function", (done) => {
122
128
  let MyElement = (() => {
123
129
  let _classDecorators = [element({
124
- tagName: 'listener-4',
125
- shadow: []
130
+ tagName: "listener-4",
131
+ shadowDom: [],
126
132
  })];
127
133
  let _classDescriptor;
128
134
  let _classExtraInitializers = [];
@@ -134,7 +140,7 @@ describe('@listen()', () => {
134
140
  static { _classThis = this; }
135
141
  static {
136
142
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
137
- _onClick_decorators = [listen('click', (host) => host)];
143
+ _onClick_decorators = [listen("click", (host) => host)];
138
144
  __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);
139
145
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
140
146
  MyElement = _classThis = _classDescriptor.value;
@@ -142,7 +148,7 @@ describe('@listen()', () => {
142
148
  __runInitializers(_classThis, _classExtraInitializers);
143
149
  }
144
150
  onClick(e) {
145
- assert.equal(e.type, 'click');
151
+ assert.equal(e.type, "click");
146
152
  done();
147
153
  }
148
154
  constructor() {
@@ -153,7 +159,9 @@ describe('@listen()', () => {
153
159
  return MyElement = _classThis;
154
160
  })();
155
161
  const el = new MyElement();
156
- el.dispatchEvent(new Event('click'));
162
+ document.body.append(el);
163
+ el.dispatchEvent(new Event("click"));
164
+ el.remove();
157
165
  });
158
166
  });
159
167
  //# sourceMappingURL=listen.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"listen.test.js","sourceRoot":"","sources":["../../src/lib/listen.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,6CAA6C,EAAE,CAAC,IAAI,EAAE,EAAE;YAInD,SAAS;oCAHd,OAAO,CAAC;oBACP,OAAO,EAAE,YAAY;iBACtB,CAAC;;;;8BACsB,WAAW;;;iCAAnB,SAAQ,WAAW;;;;2CAChC,MAAM,CAAC,OAAO,CAAC;oBAChB,wKAAA,OAAO,6DAIN;oBANH,6KAOC;;;oBAPK,uDAAS;;gBAEb,OAAO,CAAC,CAAQ;oBACd,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAE9B,IAAI,EAAE,CAAC;gBACT,CAAC;;;oBANG,mDAAS;;;;;QASf,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;QAE3B,EAAE,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,CAAC,IAAI,EAAE,EAAE;YAK3D,SAAS;oCAJd,OAAO,CAAC;oBACP,OAAO,EAAE,YAAY;oBACrB,MAAM,EAAE,EAAE;iBACX,CAAC;;;;8BACsB,WAAW;;;iCAAnB,SAAQ,WAAW;;;;2CAChC,MAAM,CAAC,OAAO,CAAC;oBAChB,wKAAA,OAAO,6DAIN;oBANH,6KAOC;;;oBAPK,uDAAS;;gBAEb,OAAO,CAAC,CAAQ;oBACd,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAE9B,IAAI,EAAE,CAAC;gBACT,CAAC;;;oBANG,mDAAS;;;;;QASf,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;QAE3B,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,CAAC,IAAI,EAAE,EAAE;QACtE,MAAM,WAAY,SAAQ,KAAK;YAC7B,IAAI,GAAG,aAAa,CAAC;YAErB;gBACE,KAAK,CAAC,aAAa,CAAC,CAAC;YACvB,CAAC;SACF;YAKK,SAAS;oCAHd,OAAO,CAAC;oBACP,OAAO,EAAE,YAAY;iBACtB,CAAC;;;;8BACsB,WAAW;;;iCAAnB,SAAQ,WAAW;;;;2CAChC,MAAM,CAAC,aAAa,CAAC;oBACtB,wKAAA,OAAO,6DAIN;oBANH,6KAOC;;;oBAPK,uDAAS;;gBAEb,OAAO,CAAC,CAAc;oBACpB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;oBAEpC,IAAI,EAAE,CAAC;gBACT,CAAC;;;oBANG,mDAAS;;;;;QASf,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;QAE3B,EAAE,CAAC,aAAa,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,CAAC,IAAI,EAAE,EAAE;YAKnD,SAAS;oCAJd,OAAO,CAAC;oBACP,OAAO,EAAE,YAAY;oBACrB,MAAM,EAAE,EAAE;iBACX,CAAC;;;;8BACsB,WAAW;;;iCAAnB,SAAQ,WAAW;;;;2CAChC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;oBAChC,wKAAA,OAAO,6DAIN;oBANH,6KAOC;;;oBAPK,uDAAS;;gBAEb,OAAO,CAAC,CAAQ;oBACd,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAE9B,IAAI,EAAE,CAAC;gBACT,CAAC;;;oBANG,mDAAS;;;;;QASf,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;QAE3B,EAAE,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"listen.test.js","sourceRoot":"","sources":["../../src/lib/listen.test.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,28 @@
1
1
  export interface AttrDef {
2
2
  propName: string | symbol;
3
- attrName: string;
4
3
  observe: boolean;
4
+ reflect: boolean;
5
+ getPropValue: () => unknown;
6
+ setPropValue: (value: unknown) => void;
5
7
  }
6
- export type ListenerSelector = (el: Element) => Element | ShadowRoot | null;
7
- export declare class ElementMetadata {
8
- attrs: AttrDef[];
9
- listeners: Map<string, {
10
- cb: (e: Event) => void;
11
- selector: ListenerSelector;
12
- }>;
13
- onReady: Set<Function>;
8
+ export type ListenerSelector<T> = (el: T) => Element | ShadowRoot | null;
9
+ export interface Listener<T> {
10
+ event: string;
11
+ cb: (e: Event) => void;
12
+ selector: ListenerSelector<T>;
14
13
  }
15
- export declare class MetadataStore extends WeakMap<object, ElementMetadata> {
16
- read(value: object): ElementMetadata;
14
+ export type AttrChangedCallback = (oldValue: string, newValue: string) => void;
15
+ export declare class AttrMetadata extends Map<string, AttrDef> {
16
+ }
17
+ export declare class AttrChangeMetadata extends Map<string, Set<AttrChangedCallback>> {
18
+ }
19
+ export declare class ElementMetadata<T> {
20
+ attrs: AttrMetadata;
21
+ attrChanges: AttrChangeMetadata;
22
+ listeners: Listener<T>[];
23
+ onReady: Set<() => void>;
24
+ }
25
+ export declare class MetadataStore extends WeakMap<object, ElementMetadata<unknown>> {
26
+ read<T>(value: object): ElementMetadata<T>;
17
27
  }
18
28
  export declare const metadataStore: MetadataStore;
@@ -1,7 +1,12 @@
1
- Symbol.metadata ??= Symbol('Symbol.metadata');
1
+ Symbol.metadata ??= Symbol("Symbol.metadata");
2
+ export class AttrMetadata extends Map {
3
+ }
4
+ export class AttrChangeMetadata extends Map {
5
+ }
2
6
  export class ElementMetadata {
3
- attrs = [];
4
- listeners = new Map();
7
+ attrs = new AttrMetadata();
8
+ attrChanges = new AttrChangeMetadata();
9
+ listeners = [];
5
10
  onReady = new Set();
6
11
  }
7
12
  export class MetadataStore extends WeakMap {
@@ -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;AAUvD,MAAM,OAAO,eAAe;IAC1B,KAAK,GAAc,EAAE,CAAC;IACtB,SAAS,GAAG,IAAI,GAAG,EAAkE,CAAC;IACtF,OAAO,GAAG,IAAI,GAAG,EAAY,CAAC;CAC/B;AAED,MAAM,OAAO,aAAc,SAAQ,OAAgC;IACjE,IAAI,CAAC,KAAa;QAChB,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,CAAE,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,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;AAoBvD,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"}
@@ -0,0 +1,10 @@
1
+ type Tags = keyof HTMLElementTagNameMap;
2
+ type SVGTags = keyof SVGElementTagNameMap;
3
+ type MathTags = keyof MathMLElementTagNameMap;
4
+ type NodeUpdate<T extends Node> = Partial<T> | ((node: T) => Partial<T> | null);
5
+ type QueryAllResult<T extends Node> = (updates?: NodeUpdate<T>) => NodeListOf<T>;
6
+ export declare function queryAll<K extends Tags>(selectors: K, root?: HTMLElement | ShadowRoot): QueryAllResult<HTMLElementTagNameMap[K]>;
7
+ export declare function queryAll<K extends SVGTags>(selectors: K, root?: HTMLElement | ShadowRoot): QueryAllResult<SVGElementTagNameMap[K]>;
8
+ export declare function queryAll<K extends MathTags>(selectors: K, root?: HTMLElement | ShadowRoot): QueryAllResult<MathMLElementTagNameMap[K]>;
9
+ export declare function queryAll<E extends HTMLElement = HTMLElement>(selectors: string, root?: HTMLElement | ShadowRoot): QueryAllResult<E>;
10
+ export {};