@joist/element 3.1.0 → 3.1.2

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joist/element",
3
- "version": "3.1.0",
3
+ "version": "3.1.2",
4
4
  "type": "module",
5
5
  "main": "./target/lib.js",
6
6
  "module": "./target/lib.js",
@@ -46,7 +46,8 @@
46
46
  "clean": "if-file-deleted",
47
47
  "files": [
48
48
  "src/**",
49
- "tsconfig.json"
49
+ "tsconfig.json",
50
+ "../../tsconfig.json"
50
51
  ],
51
52
  "output": [
52
53
  "target/**",
package/src/lib/attr.ts CHANGED
@@ -1,14 +1,10 @@
1
- // ensure that the metadata symbol exists
2
- (Symbol as any).metadata ??= Symbol('Symbol.metadata');
3
-
4
- import { ElementMetadata } from './element.js';
1
+ import { metadataStore } from './metadata.js';
5
2
 
6
3
  export function attr<This extends HTMLElement>(
7
4
  { get, set }: ClassAccessorDecoratorTarget<This, unknown>,
8
5
  ctx: ClassAccessorDecoratorContext<This>
9
6
  ): ClassAccessorDecoratorResult<This, any> {
10
- ctx.metadata.el ??= new ElementMetadata();
11
- const meta = ctx.metadata.el as ElementMetadata;
7
+ const meta = metadataStore.read(ctx.metadata);
12
8
  meta.attrs.push(String(ctx.name));
13
9
 
14
10
  return {
@@ -1,22 +1,12 @@
1
- (Symbol as any).metadata ??= Symbol('Symbol.metadata');
1
+ import { metadataStore } from './metadata.js';
2
2
 
3
- export class ElementMetadata {
4
- attrs: string[] = [];
5
- tagName?: (val: any) => string;
6
- }
7
-
8
- export interface ElementCtx {
9
- el?: ElementMetadata;
10
- }
11
-
12
- export function element<T extends new (...args: any[]) => HTMLElement>(
13
- Base: T,
14
- ctx: ClassDecoratorContext<T>
3
+ export function element<Target extends CustomElementConstructor>(
4
+ Base: Target,
5
+ ctx: ClassDecoratorContext<Target>
15
6
  ) {
16
- ctx.metadata.el ??= new ElementMetadata();
17
- const meta = ctx.metadata.el as ElementMetadata;
7
+ const meta = metadataStore.read(ctx.metadata);
18
8
 
19
- ctx.addInitializer(function (this: T) {
9
+ ctx.addInitializer(function (this: Target) {
20
10
  if (meta.tagName) {
21
11
  const val = meta.tagName(this);
22
12
 
@@ -0,0 +1,28 @@
1
+ (Symbol as any).metadata ??= Symbol('Symbol.metadata');
2
+
3
+ export abstract class MetadataStore<T> {
4
+ #data = new WeakMap<object, T>();
5
+
6
+ read<T extends object>(value: T) {
7
+ if (!this.#data.has(value)) {
8
+ this.#data.set(value, this.init());
9
+ }
10
+
11
+ return this.#data.get(value)!;
12
+ }
13
+
14
+ abstract init(): T;
15
+ }
16
+
17
+ export class ElementMetadata {
18
+ attrs: string[] = [];
19
+ tagName?: (val: any) => string;
20
+ }
21
+
22
+ export class ElementMetadataStore extends MetadataStore<ElementMetadata> {
23
+ init() {
24
+ return new ElementMetadata();
25
+ }
26
+ }
27
+
28
+ export const metadataStore = new ElementMetadataStore();
package/src/lib/shadow.ts CHANGED
@@ -2,15 +2,13 @@ import { ShadowResult } from './result.js';
2
2
 
3
3
  export function shadow<This extends HTMLElement, T extends ShadowResult>(
4
4
  _: undefined,
5
- ctx: ClassFieldDecoratorContext<This, T>
5
+ _ctx: ClassFieldDecoratorContext<This, T>
6
6
  ) {
7
- ctx.addInitializer(function () {
7
+ return function (this: This, result: T) {
8
8
  if (!this.shadowRoot) {
9
9
  this.attachShadow({ mode: 'open' });
10
10
  }
11
- });
12
11
 
13
- return function (this: This, result: T) {
14
12
  result.execute(this.shadowRoot!);
15
13
 
16
14
  return result;
@@ -1,12 +1,10 @@
1
- (Symbol as any).metadata ??= Symbol('Symbol.metadata');
2
-
3
- import { ElementMetadata } from './element.js';
1
+ import { metadataStore } from './metadata.js';
4
2
 
5
3
  export function tagName<This extends typeof HTMLElement>(
6
4
  _val: unknown,
7
5
  ctx: ClassFieldDecoratorContext<This, string>
8
6
  ) {
9
- ctx.metadata.el ??= new ElementMetadata();
10
- const meta = ctx.metadata.el as ElementMetadata;
11
- meta.tagName = ctx.access.get;
7
+ const metadata = metadataStore.read(ctx.metadata);
8
+
9
+ metadata.tagName = ctx.access.get;
12
10
  }
@@ -1,8 +1,6 @@
1
- Symbol.metadata ??= Symbol('Symbol.metadata');
2
- import { ElementMetadata } from './element.js';
1
+ import { metadataStore } from './metadata.js';
3
2
  export function attr({ get, set }, ctx) {
4
- ctx.metadata.el ??= new ElementMetadata();
5
- const meta = ctx.metadata.el;
3
+ const meta = metadataStore.read(ctx.metadata);
6
4
  meta.attrs.push(String(ctx.name));
7
5
  return {
8
6
  set(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"attr.js","sourceRoot":"","sources":["../../src/lib/attr.ts"],"names":[],"mappings":"AACC,MAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,UAAU,IAAI,CAClB,EAAE,GAAG,EAAE,GAAG,EAA+C,EACzD,GAAwC;IAExC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,IAAI,eAAe,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAqB,CAAC;IAChD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAElC,OAAO;QACL,GAAG,CAAC,KAAc;YAChB,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjC,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC/B,IAAI,KAAK,EAAE,CAAC;wBACV,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAClC,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACjC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YAED,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,GAAG;YACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE/B,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAEzC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAElB,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;wBAChB,OAAO,IAAI,CAAC;oBACd,CAAC;oBAGD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;wBAChC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;oBACtB,CAAC;oBAGD,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAGD,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"attr.js","sourceRoot":"","sources":["../../src/lib/attr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,UAAU,IAAI,CAClB,EAAE,GAAG,EAAE,GAAG,EAA+C,EACzD,GAAwC;IAExC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAElC,OAAO;QACL,GAAG,CAAC,KAAc;YAChB,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjC,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC/B,IAAI,KAAK,EAAE,CAAC;wBACV,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAClC,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACjC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YAED,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,GAAG;YACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE/B,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAEzC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAElB,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;wBAChB,OAAO,IAAI,CAAC;oBACd,CAAC;oBAGD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;wBAChC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;oBACtB,CAAC;oBAGD,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAGD,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -5,15 +5,18 @@ describe('@attr()', () => {
5
5
  it('should read and parse the correct values', async () => {
6
6
  let MyElement = (() => {
7
7
  let _classSuper = HTMLElement;
8
- let _instanceExtraInitializers = [];
9
8
  let _value1_decorators;
10
9
  let _value1_initializers = [];
10
+ let _value1_extraInitializers = [];
11
11
  let _value2_decorators;
12
12
  let _value2_initializers = [];
13
+ let _value2_extraInitializers = [];
13
14
  let _value3_decorators;
14
15
  let _value3_initializers = [];
16
+ let _value3_extraInitializers = [];
15
17
  let _value4_decorators;
16
18
  let _value4_initializers = [];
19
+ let _value4_extraInitializers = [];
17
20
  return class MyElement extends _classSuper {
18
21
  static {
19
22
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
@@ -21,24 +24,28 @@ describe('@attr()', () => {
21
24
  _value2_decorators = [attr];
22
25
  _value3_decorators = [attr];
23
26
  _value4_decorators = [attr];
24
- __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, _instanceExtraInitializers);
25
- __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, _instanceExtraInitializers);
26
- __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, _instanceExtraInitializers);
27
- __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, _instanceExtraInitializers);
27
+ __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);
28
+ __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);
29
+ __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);
30
+ __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);
28
31
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
29
32
  }
30
- #value1_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _value1_initializers, 100));
33
+ #value1_accessor_storage = __runInitializers(this, _value1_initializers, 100);
31
34
  get value1() { return this.#value1_accessor_storage; }
32
35
  set value1(value) { this.#value1_accessor_storage = value; }
33
- #value2_accessor_storage = __runInitializers(this, _value2_initializers, 0);
36
+ #value2_accessor_storage = (__runInitializers(this, _value1_extraInitializers), __runInitializers(this, _value2_initializers, 0));
34
37
  get value2() { return this.#value2_accessor_storage; }
35
38
  set value2(value) { this.#value2_accessor_storage = value; }
36
- #value3_accessor_storage = __runInitializers(this, _value3_initializers, false);
39
+ #value3_accessor_storage = (__runInitializers(this, _value2_extraInitializers), __runInitializers(this, _value3_initializers, false));
37
40
  get value3() { return this.#value3_accessor_storage; }
38
41
  set value3(value) { this.#value3_accessor_storage = value; }
39
- #value4_accessor_storage = __runInitializers(this, _value4_initializers, 'hello');
42
+ #value4_accessor_storage = (__runInitializers(this, _value3_extraInitializers), __runInitializers(this, _value4_initializers, 'hello'));
40
43
  get value4() { return this.#value4_accessor_storage; }
41
44
  set value4(value) { this.#value4_accessor_storage = value; }
45
+ constructor() {
46
+ super(...arguments);
47
+ __runInitializers(this, _value4_extraInitializers);
48
+ }
42
49
  };
43
50
  })();
44
51
  customElements.define('attr-test-2', MyElement);
@@ -51,33 +58,39 @@ describe('@attr()', () => {
51
58
  it('should not write falsy props to attributes', async () => {
52
59
  let MyElement = (() => {
53
60
  let _classSuper = HTMLElement;
54
- let _instanceExtraInitializers = [];
55
61
  let _value1_decorators;
56
62
  let _value1_initializers = [];
63
+ let _value1_extraInitializers = [];
57
64
  let _value2_decorators;
58
65
  let _value2_initializers = [];
66
+ let _value2_extraInitializers = [];
59
67
  let _value3_decorators;
60
68
  let _value3_initializers = [];
69
+ let _value3_extraInitializers = [];
61
70
  return class MyElement extends _classSuper {
62
71
  static {
63
72
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
64
73
  _value1_decorators = [attr];
65
74
  _value2_decorators = [attr];
66
75
  _value3_decorators = [attr];
67
- __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, _instanceExtraInitializers);
68
- __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, _instanceExtraInitializers);
69
- __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, _instanceExtraInitializers);
76
+ __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);
77
+ __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);
78
+ __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);
70
79
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
71
80
  }
72
- #value1_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _value1_initializers, undefined));
81
+ #value1_accessor_storage = __runInitializers(this, _value1_initializers, undefined);
73
82
  get value1() { return this.#value1_accessor_storage; }
74
83
  set value1(value) { this.#value1_accessor_storage = value; }
75
- #value2_accessor_storage = __runInitializers(this, _value2_initializers, null);
84
+ #value2_accessor_storage = (__runInitializers(this, _value1_extraInitializers), __runInitializers(this, _value2_initializers, null));
76
85
  get value2() { return this.#value2_accessor_storage; }
77
86
  set value2(value) { this.#value2_accessor_storage = value; }
78
- #value3_accessor_storage = __runInitializers(this, _value3_initializers, '');
87
+ #value3_accessor_storage = (__runInitializers(this, _value2_extraInitializers), __runInitializers(this, _value3_initializers, ''));
79
88
  get value3() { return this.#value3_accessor_storage; }
80
89
  set value3(value) { this.#value3_accessor_storage = value; }
90
+ constructor() {
91
+ super(...arguments);
92
+ __runInitializers(this, _value3_extraInitializers);
93
+ }
81
94
  };
82
95
  })();
83
96
  customElements.define('attr-test-3', MyElement);
@@ -89,15 +102,18 @@ describe('@attr()', () => {
89
102
  it('should update attributes when props are changed', async () => {
90
103
  let MyElement = (() => {
91
104
  let _classSuper = HTMLElement;
92
- let _instanceExtraInitializers = [];
93
105
  let _value1_decorators;
94
106
  let _value1_initializers = [];
107
+ let _value1_extraInitializers = [];
95
108
  let _value2_decorators;
96
109
  let _value2_initializers = [];
110
+ let _value2_extraInitializers = [];
97
111
  let _value3_decorators;
98
112
  let _value3_initializers = [];
113
+ let _value3_extraInitializers = [];
99
114
  let _value4_decorators;
100
115
  let _value4_initializers = [];
116
+ let _value4_extraInitializers = [];
101
117
  return class MyElement extends _classSuper {
102
118
  static {
103
119
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
@@ -105,24 +121,28 @@ describe('@attr()', () => {
105
121
  _value2_decorators = [attr];
106
122
  _value3_decorators = [attr];
107
123
  _value4_decorators = [attr];
108
- __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, _instanceExtraInitializers);
109
- __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, _instanceExtraInitializers);
110
- __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, _instanceExtraInitializers);
111
- __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, _instanceExtraInitializers);
124
+ __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);
125
+ __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);
126
+ __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);
127
+ __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);
112
128
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
113
129
  }
114
- #value1_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _value1_initializers, 'hello'));
130
+ #value1_accessor_storage = __runInitializers(this, _value1_initializers, 'hello');
115
131
  get value1() { return this.#value1_accessor_storage; }
116
132
  set value1(value) { this.#value1_accessor_storage = value; }
117
- #value2_accessor_storage = __runInitializers(this, _value2_initializers, 0);
133
+ #value2_accessor_storage = (__runInitializers(this, _value1_extraInitializers), __runInitializers(this, _value2_initializers, 0));
118
134
  get value2() { return this.#value2_accessor_storage; }
119
135
  set value2(value) { this.#value2_accessor_storage = value; }
120
- #value3_accessor_storage = __runInitializers(this, _value3_initializers, true);
136
+ #value3_accessor_storage = (__runInitializers(this, _value2_extraInitializers), __runInitializers(this, _value3_initializers, true));
121
137
  get value3() { return this.#value3_accessor_storage; }
122
138
  set value3(value) { this.#value3_accessor_storage = value; }
123
- #value4_accessor_storage = __runInitializers(this, _value4_initializers, false);
139
+ #value4_accessor_storage = (__runInitializers(this, _value3_extraInitializers), __runInitializers(this, _value4_initializers, false));
124
140
  get value4() { return this.#value4_accessor_storage; }
125
141
  set value4(value) { this.#value4_accessor_storage = value; }
142
+ constructor() {
143
+ super(...arguments);
144
+ __runInitializers(this, _value4_extraInitializers);
145
+ }
126
146
  };
127
147
  })();
128
148
  customElements.define('attr-test-4', MyElement);
@@ -1 +1 @@
1
- {"version":3,"file":"attr.test.js","sourceRoot":"","sources":["../../src/lib/attr.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attr.test.js","sourceRoot":"","sources":["../../src/lib/attr.test.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,5 @@
1
- export declare class ElementMetadata {
2
- attrs: string[];
3
- tagName?: (val: any) => string;
4
- }
5
- export interface ElementCtx {
6
- el?: ElementMetadata;
7
- }
8
- export declare function element<T extends new (...args: any[]) => HTMLElement>(Base: T, ctx: ClassDecoratorContext<T>): {
9
- new (...args: any[]): {
1
+ export declare function element<Target extends CustomElementConstructor>(Base: Target, ctx: ClassDecoratorContext<Target>): {
2
+ new (...params: any[]): {
10
3
  connectedCallback(): void;
11
4
  accessKey: string;
12
5
  readonly accessKeyLabel: string;
@@ -31,7 +24,7 @@ export declare function element<T extends new (...args: any[]) => HTMLElement>(B
31
24
  click(): void;
32
25
  hidePopover(): void;
33
26
  showPopover(): void;
34
- togglePopover(force?: boolean | undefined): void;
27
+ togglePopover(force?: boolean | undefined): boolean;
35
28
  addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
36
29
  addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
37
30
  removeEventListener<K_1 extends keyof HTMLElementEventMap>(type: K_1, listener: (this: HTMLElement, ev: HTMLElementEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
@@ -167,6 +160,7 @@ export declare function element<T extends new (...args: any[]) => HTMLElement>(B
167
160
  ariaColIndex: string | null;
168
161
  ariaColSpan: string | null;
169
162
  ariaCurrent: string | null;
163
+ ariaDescription: string | null;
170
164
  ariaDisabled: string | null;
171
165
  ariaExpanded: string | null;
172
166
  ariaHasPopup: string | null;
@@ -237,6 +231,7 @@ export declare function element<T extends new (...args: any[]) => HTMLElement>(B
237
231
  onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
238
232
  onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
239
233
  onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null;
234
+ onbeforetoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
240
235
  onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
241
236
  oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
242
237
  oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
@@ -333,4 +328,4 @@ export declare function element<T extends new (...args: any[]) => HTMLElement>(B
333
328
  focus(options?: FocusOptions | undefined): void;
334
329
  };
335
330
  observedAttributes: string[];
336
- } & T;
331
+ } & Target;
@@ -1,11 +1,6 @@
1
- Symbol.metadata ??= Symbol('Symbol.metadata');
2
- export class ElementMetadata {
3
- attrs = [];
4
- tagName;
5
- }
1
+ import { metadataStore } from './metadata.js';
6
2
  export function element(Base, ctx) {
7
- ctx.metadata.el ??= new ElementMetadata();
8
- const meta = ctx.metadata.el;
3
+ const meta = metadataStore.read(ctx.metadata);
9
4
  ctx.addInitializer(function () {
10
5
  if (meta.tagName) {
11
6
  const val = meta.tagName(this);
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/lib/element.ts"],"names":[],"mappings":"AAAC,MAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEvD,MAAM,OAAO,eAAe;IAC1B,KAAK,GAAa,EAAE,CAAC;IACrB,OAAO,CAAwB;CAChC;AAMD,MAAM,UAAU,OAAO,CACrB,IAAO,EACP,GAA6B;IAE7B,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,IAAI,eAAe,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAqB,CAAC;IAEhD,GAAG,CAAC,cAAc,CAAC;QACjB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE/B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,YAAa,SAAQ,IAAI;QAEpC,MAAM,CAAC,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5C,iBAAiB;YACf,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAGtC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;oBAC1D,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;wBAC/B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;4BAEnB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAC9B,CAAC;oBACH,CAAC;yBAAM,CAAC;wBAEN,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/lib/element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,UAAU,OAAO,CACrB,IAAY,EACZ,GAAkC;IAElC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE9C,GAAG,CAAC,cAAc,CAAC;QACjB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE/B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,YAAa,SAAQ,IAAI;QAEpC,MAAM,CAAC,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5C,iBAAiB;YACf,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAGtC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;oBAC1D,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;wBAC/B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;4BAEnB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAC9B,CAAC;oBACH,CAAC;yBAAM,CAAC;wBAEN,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -11,16 +11,18 @@ describe('@element()', () => {
11
11
  let _classExtraInitializers = [];
12
12
  let _classThis;
13
13
  let _classSuper = HTMLElement;
14
- let _staticExtraInitializers = [];
15
- let _instanceExtraInitializers = [];
16
14
  let _static_tag_decorators;
17
15
  let _static_tag_initializers = [];
16
+ let _static_tag_extraInitializers = [];
18
17
  let _value1_decorators;
19
18
  let _value1_initializers = [];
19
+ let _value1_extraInitializers = [];
20
20
  let _value2_decorators;
21
21
  let _value2_initializers = [];
22
+ let _value2_extraInitializers = [];
22
23
  let _value3_decorators;
23
24
  let _value3_initializers = [];
25
+ let _value3_extraInitializers = [];
24
26
  var MyElement = class extends _classSuper {
25
27
  static { _classThis = this; }
26
28
  static {
@@ -29,26 +31,30 @@ describe('@element()', () => {
29
31
  _value1_decorators = [attr];
30
32
  _value2_decorators = [attr];
31
33
  _value3_decorators = [attr];
32
- __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, _instanceExtraInitializers);
33
- __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, _instanceExtraInitializers);
34
- __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, _instanceExtraInitializers);
35
- __esDecorate(null, null, _static_tag_decorators, { kind: "field", name: "tag", static: true, private: false, access: { has: obj => "tag" in obj, get: obj => obj.tag, set: (obj, value) => { obj.tag = value; } }, metadata: _metadata }, _static_tag_initializers, _staticExtraInitializers);
34
+ __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);
35
+ __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);
36
+ __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);
37
+ __esDecorate(null, null, _static_tag_decorators, { kind: "field", name: "tag", static: true, private: false, access: { has: obj => "tag" in obj, get: obj => obj.tag, set: (obj, value) => { obj.tag = value; } }, metadata: _metadata }, _static_tag_initializers, _static_tag_extraInitializers);
36
38
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
37
39
  MyElement = _classThis = _classDescriptor.value;
38
40
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
39
- __runInitializers(_classThis, _staticExtraInitializers);
40
41
  }
41
42
  static tag = __runInitializers(_classThis, _static_tag_initializers, 'element-1');
42
- #value1_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _value1_initializers, 'hello'));
43
+ #value1_accessor_storage = __runInitializers(this, _value1_initializers, 'hello');
43
44
  get value1() { return this.#value1_accessor_storage; }
44
45
  set value1(value) { this.#value1_accessor_storage = value; }
45
- #value2_accessor_storage = __runInitializers(this, _value2_initializers, 0);
46
+ #value2_accessor_storage = (__runInitializers(this, _value1_extraInitializers), __runInitializers(this, _value2_initializers, 0));
46
47
  get value2() { return this.#value2_accessor_storage; }
47
48
  set value2(value) { this.#value2_accessor_storage = value; }
48
- #value3_accessor_storage = __runInitializers(this, _value3_initializers, true);
49
+ #value3_accessor_storage = (__runInitializers(this, _value2_extraInitializers), __runInitializers(this, _value3_initializers, true));
49
50
  get value3() { return this.#value3_accessor_storage; }
50
51
  set value3(value) { this.#value3_accessor_storage = value; }
52
+ constructor() {
53
+ super(...arguments);
54
+ __runInitializers(this, _value3_extraInitializers);
55
+ }
51
56
  static {
57
+ __runInitializers(_classThis, _static_tag_extraInitializers);
52
58
  __runInitializers(_classThis, _classExtraInitializers);
53
59
  }
54
60
  };
@@ -1 +1 @@
1
- {"version":3,"file":"element.test.js","sourceRoot":"","sources":["../../src/lib/element.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YAEjD,SAAS;oCADd,OAAO;;;;8BACgB,WAAW;;;;;;;;;;;iCAAnB,SAAQ,WAAW;;;;8CAChC,OAAO;0CAEP,IAAI;0CACJ,IAAI;0CACJ,IAAI;oBAFC,uKAAS,MAAM,6BAAN,MAAM,wFAAW;oBAC1B,uKAAS,MAAM,6BAAN,MAAM,wFAAK;oBACpB,uKAAS,MAAM,6BAAN,MAAM,wFAAQ;oBAJpB,iKAAO,GAAG,6BAAH,GAAG,0FAAe;oBADpC,6KAMC;;;oBANK,wDAAS;;gBACJ,MAAM,CAAC,GAAG,2DAAG,WAAW,EAAC;gBAE5B,+HAAkB,OAAO,GAAC;gBAA1B,IAAS,MAAM,4CAAW;gBAA1B,IAAS,MAAM,kDAAW;gBAC1B,yEAAkB,CAAC,EAAC;gBAApB,IAAS,MAAM,4CAAK;gBAApB,IAAS,MAAM,kDAAK;gBACpB,yEAAkB,IAAI,EAAC;gBAAvB,IAAS,MAAM,4CAAQ;gBAAvB,IAAS,MAAM,kDAAQ;;oBALzB,uDAAS;;;;;QAQf,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,yBAAyB,CAAC,CAAC;QAEnE,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"element.test.js","sourceRoot":"","sources":["../../src/lib/element.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YAEjD,SAAS;oCADd,OAAO;;;;8BACgB,WAAW;;;;;;;;;;;;;iCAAnB,SAAQ,WAAW;;;;8CAChC,OAAO;0CAEP,IAAI;0CACJ,IAAI;0CACJ,IAAI;oBAFC,uKAAS,MAAM,6BAAN,MAAM,uFAAW;oBAC1B,uKAAS,MAAM,6BAAN,MAAM,uFAAK;oBACpB,uKAAS,MAAM,6BAAN,MAAM,uFAAQ;oBAJpB,iKAAO,GAAG,6BAAH,GAAG,+FAAe;oBADpC,6KAMC;;;;gBALU,MAAM,CAAC,GAAG,2DAAG,WAAW,EAAC;gBAE5B,yEAAkB,OAAO,EAAC;gBAA1B,IAAS,MAAM,4CAAW;gBAA1B,IAAS,MAAM,kDAAW;gBAC1B,8HAAkB,CAAC,GAAC;gBAApB,IAAS,MAAM,4CAAK;gBAApB,IAAS,MAAM,kDAAK;gBACpB,8HAAkB,IAAI,GAAC;gBAAvB,IAAS,MAAM,4CAAQ;gBAAvB,IAAS,MAAM,kDAAQ;;;;;;;oBALzB,uDAAS;;;;;QAQf,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,yBAAyB,CAAC,CAAC;QAEnE,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare abstract class MetadataStore<T> {
2
+ #private;
3
+ read<T extends object>(value: T): NonNullable<T_1>;
4
+ abstract init(): T;
5
+ }
6
+ export declare class ElementMetadata {
7
+ attrs: string[];
8
+ tagName?: (val: any) => string;
9
+ }
10
+ export declare class ElementMetadataStore extends MetadataStore<ElementMetadata> {
11
+ init(): ElementMetadata;
12
+ }
13
+ export declare const metadataStore: ElementMetadataStore;
@@ -0,0 +1,21 @@
1
+ Symbol.metadata ??= Symbol('Symbol.metadata');
2
+ export class MetadataStore {
3
+ #data = new WeakMap();
4
+ read(value) {
5
+ if (!this.#data.has(value)) {
6
+ this.#data.set(value, this.init());
7
+ }
8
+ return this.#data.get(value);
9
+ }
10
+ }
11
+ export class ElementMetadata {
12
+ attrs = [];
13
+ tagName;
14
+ }
15
+ export class ElementMetadataStore extends MetadataStore {
16
+ init() {
17
+ return new ElementMetadata();
18
+ }
19
+ }
20
+ export const metadataStore = new ElementMetadataStore();
21
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +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;AAEvD,MAAM,OAAgB,aAAa;IACjC,KAAK,GAAG,IAAI,OAAO,EAAa,CAAC;IAEjC,IAAI,CAAmB,KAAQ;QAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;IAChC,CAAC;CAGF;AAED,MAAM,OAAO,eAAe;IAC1B,KAAK,GAAa,EAAE,CAAC;IACrB,OAAO,CAAwB;CAChC;AAED,MAAM,OAAO,oBAAqB,SAAQ,aAA8B;IACtE,IAAI;QACF,OAAO,IAAI,eAAe,EAAE,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,oBAAoB,EAAE,CAAC"}
@@ -1,2 +1,2 @@
1
1
  import { ShadowResult } from './result.js';
2
- export declare function shadow<This extends HTMLElement, T extends ShadowResult>(_: undefined, ctx: ClassFieldDecoratorContext<This, T>): (this: This, result: T) => T;
2
+ export declare function shadow<This extends HTMLElement, T extends ShadowResult>(_: undefined, _ctx: ClassFieldDecoratorContext<This, T>): (this: This, result: T) => T;
@@ -1,10 +1,8 @@
1
- export function shadow(_, ctx) {
2
- ctx.addInitializer(function () {
1
+ export function shadow(_, _ctx) {
2
+ return function (result) {
3
3
  if (!this.shadowRoot) {
4
4
  this.attachShadow({ mode: 'open' });
5
5
  }
6
- });
7
- return function (result) {
8
6
  result.execute(this.shadowRoot);
9
7
  return result;
10
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"shadow.js","sourceRoot":"","sources":["../../src/lib/shadow.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CACpB,CAAY,EACZ,GAAwC;IAExC,GAAG,CAAC,cAAc,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,UAAsB,MAAS;QACpC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAW,CAAC,CAAC;QAEjC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"shadow.js","sourceRoot":"","sources":["../../src/lib/shadow.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CACpB,CAAY,EACZ,IAAyC;IAEzC,OAAO,UAAsB,MAAS;QACpC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAW,CAAC,CAAC;QAEjC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
@@ -6,21 +6,25 @@ describe('template', () => {
6
6
  it('should apply a stylesheet', () => {
7
7
  let MyElement = (() => {
8
8
  let _classSuper = HTMLElement;
9
- let _instanceExtraInitializers = [];
10
9
  let _styles_decorators;
11
10
  let _styles_initializers = [];
11
+ let _styles_extraInitializers = [];
12
12
  return class MyElement extends _classSuper {
13
13
  static {
14
14
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
15
15
  _styles_decorators = [shadow];
16
- __esDecorate(null, null, _styles_decorators, { kind: "field", name: "styles", static: false, private: false, access: { has: obj => "styles" in obj, get: obj => obj.styles, set: (obj, value) => { obj.styles = value; } }, metadata: _metadata }, _styles_initializers, _instanceExtraInitializers);
16
+ __esDecorate(null, null, _styles_decorators, { kind: "field", name: "styles", static: false, private: false, access: { has: obj => "styles" in obj, get: obj => obj.styles, set: (obj, value) => { obj.styles = value; } }, metadata: _metadata }, _styles_initializers, _styles_extraInitializers);
17
17
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
18
18
  }
19
- styles = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _styles_initializers, css `
19
+ styles = __runInitializers(this, _styles_initializers, css `
20
20
  :host {
21
21
  display: flex;
22
22
  }
23
- `));
23
+ `);
24
+ constructor() {
25
+ super(...arguments);
26
+ __runInitializers(this, _styles_extraInitializers);
27
+ }
24
28
  };
25
29
  })();
26
30
  customElements.define('template-1', MyElement);
@@ -30,26 +34,31 @@ describe('template', () => {
30
34
  it('should apply html', () => {
31
35
  let MyElement = (() => {
32
36
  let _classSuper = HTMLElement;
33
- let _instanceExtraInitializers = [];
34
37
  let _styles_decorators;
35
38
  let _styles_initializers = [];
39
+ let _styles_extraInitializers = [];
36
40
  let _template_decorators;
37
41
  let _template_initializers = [];
42
+ let _template_extraInitializers = [];
38
43
  return class MyElement extends _classSuper {
39
44
  static {
40
45
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
41
46
  _styles_decorators = [shadow];
42
47
  _template_decorators = [shadow];
43
- __esDecorate(null, null, _styles_decorators, { kind: "field", name: "styles", static: false, private: false, access: { has: obj => "styles" in obj, get: obj => obj.styles, set: (obj, value) => { obj.styles = value; } }, metadata: _metadata }, _styles_initializers, _instanceExtraInitializers);
44
- __esDecorate(null, null, _template_decorators, { kind: "field", name: "template", static: false, private: false, access: { has: obj => "template" in obj, get: obj => obj.template, set: (obj, value) => { obj.template = value; } }, metadata: _metadata }, _template_initializers, _instanceExtraInitializers);
48
+ __esDecorate(null, null, _styles_decorators, { kind: "field", name: "styles", static: false, private: false, access: { has: obj => "styles" in obj, get: obj => obj.styles, set: (obj, value) => { obj.styles = value; } }, metadata: _metadata }, _styles_initializers, _styles_extraInitializers);
49
+ __esDecorate(null, null, _template_decorators, { kind: "field", name: "template", static: false, private: false, access: { has: obj => "template" in obj, get: obj => obj.template, set: (obj, value) => { obj.template = value; } }, metadata: _metadata }, _template_initializers, _template_extraInitializers);
45
50
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
46
51
  }
47
- styles = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _styles_initializers, css `
52
+ styles = __runInitializers(this, _styles_initializers, css `
48
53
  :host {
49
54
  display: flex;
50
55
  }
51
- `));
52
- template = __runInitializers(this, _template_initializers, html `<slot></slot>`);
56
+ `);
57
+ template = (__runInitializers(this, _styles_extraInitializers), __runInitializers(this, _template_initializers, html `<slot></slot>`));
58
+ constructor() {
59
+ super(...arguments);
60
+ __runInitializers(this, _template_extraInitializers);
61
+ }
53
62
  };
54
63
  })();
55
64
  customElements.define('template-2', MyElement);
@@ -1 +1 @@
1
- {"version":3,"file":"shadow.test.js","sourceRoot":"","sources":["../../src/lib/shadow.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YAC7B,SAAS;8BAAS,WAAW;;;;yBAA7B,SAAU,SAAQ,WAAW;;;0CAChC,MAAM;oBAAC,oKAAA,MAAM,6BAAN,MAAM,wFAIZ;;;gBAJM,MAAM,uGAAG,GAAG,CAAA;;;;OAInB,GAAC;;;QAGJ,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAE/C,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;QAE3B,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YACrB,SAAS;8BAAS,WAAW;;;;;;yBAA7B,SAAU,SAAQ,WAAW;;;0CAChC,MAAM;4CAMN,MAAM;oBANC,oKAAA,MAAM,6BAAN,MAAM,wFAIZ;oBAEM,0KAAA,QAAQ,6BAAR,QAAQ,0FAAuB;;;gBAN/B,MAAM,uGAAG,GAAG,CAAA;;;;OAInB,GAAC;gBAEM,QAAQ,mDAAG,IAAI,CAAA,eAAe,EAAC;;;QAGzC,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAE/C,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;QAE3B,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"shadow.test.js","sourceRoot":"","sources":["../../src/lib/shadow.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YAC7B,SAAS;8BAAS,WAAW;;;;yBAA7B,SAAU,SAAQ,WAAW;;;0CAChC,MAAM;oBAAC,oKAAA,MAAM,6BAAN,MAAM,uFAIZ;;;gBAJM,MAAM,iDAAG,GAAG,CAAA;;;;OAInB,EAAC;;;;;;;QAGJ,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAE/C,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;QAE3B,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YACrB,SAAS;8BAAS,WAAW;;;;;;;yBAA7B,SAAU,SAAQ,WAAW;;;0CAChC,MAAM;4CAMN,MAAM;oBANC,oKAAA,MAAM,6BAAN,MAAM,uFAIZ;oBAEM,0KAAA,QAAQ,6BAAR,QAAQ,2FAAuB;;;gBAN/B,MAAM,iDAAG,GAAG,CAAA;;;;OAInB,EAAC;gBAEM,QAAQ,wGAAG,IAAI,CAAA,eAAe,GAAC;;;;;;;QAGzC,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAE/C,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;QAE3B,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,8 +1,6 @@
1
- Symbol.metadata ??= Symbol('Symbol.metadata');
2
- import { ElementMetadata } from './element.js';
1
+ import { metadataStore } from './metadata.js';
3
2
  export function tagName(_val, ctx) {
4
- ctx.metadata.el ??= new ElementMetadata();
5
- const meta = ctx.metadata.el;
6
- meta.tagName = ctx.access.get;
3
+ const metadata = metadataStore.read(ctx.metadata);
4
+ metadata.tagName = ctx.access.get;
7
5
  }
8
6
  //# sourceMappingURL=tag-name.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tag-name.js","sourceRoot":"","sources":["../../src/lib/tag-name.ts"],"names":[],"mappings":"AAAC,MAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,UAAU,OAAO,CACrB,IAAa,EACb,GAA6C;IAE7C,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,IAAI,eAAe,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAqB,CAAC;IAChD,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"tag-name.js","sourceRoot":"","sources":["../../src/lib/tag-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,UAAU,OAAO,CACrB,IAAa,EACb,GAA6C;IAE7C,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAElD,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;AACpC,CAAC"}
@@ -9,22 +9,22 @@ describe('tag-name', () => {
9
9
  let _classExtraInitializers = [];
10
10
  let _classThis;
11
11
  let _classSuper = HTMLElement;
12
- let _staticExtraInitializers = [];
13
12
  let _static_tagName_decorators;
14
13
  let _static_tagName_initializers = [];
14
+ let _static_tagName_extraInitializers = [];
15
15
  var MyElement = class extends _classSuper {
16
16
  static { _classThis = this; }
17
17
  static {
18
18
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
19
19
  _static_tagName_decorators = [tagName];
20
- __esDecorate(null, null, _static_tagName_decorators, { kind: "field", name: "tagName", static: true, private: false, access: { has: obj => "tagName" in obj, get: obj => obj.tagName, set: (obj, value) => { obj.tagName = value; } }, metadata: _metadata }, _static_tagName_initializers, _staticExtraInitializers);
20
+ __esDecorate(null, null, _static_tagName_decorators, { kind: "field", name: "tagName", static: true, private: false, access: { has: obj => "tagName" in obj, get: obj => obj.tagName, set: (obj, value) => { obj.tagName = value; } }, metadata: _metadata }, _static_tagName_initializers, _static_tagName_extraInitializers);
21
21
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
22
22
  MyElement = _classThis = _classDescriptor.value;
23
23
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
24
- __runInitializers(_classThis, _staticExtraInitializers);
25
24
  }
26
25
  static tagName = __runInitializers(_classThis, _static_tagName_initializers, 'tn-test-1');
27
26
  static {
27
+ __runInitializers(_classThis, _static_tagName_extraInitializers);
28
28
  __runInitializers(_classThis, _classExtraInitializers);
29
29
  }
30
30
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tag-name.test.js","sourceRoot":"","sources":["../../src/lib/tag-name.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAExC,SAAS;oCADd,OAAO;;;;8BACgB,WAAW;;;;iCAAnB,SAAQ,WAAW;;;;kDAChC,OAAO;oBAAC,6KAAO,OAAO,6BAAP,OAAO,8FAAe;oBADxC,6KAEC;;;oBAFK,wDAAS;;gBACJ,MAAM,CAAC,OAAO,+DAAG,WAAW,EAAC;;oBADlC,uDAAS;;;;;QAIf,OAAO,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"tag-name.test.js","sourceRoot":"","sources":["../../src/lib/tag-name.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAExC,SAAS;oCADd,OAAO;;;;8BACgB,WAAW;;;;iCAAnB,SAAQ,WAAW;;;;kDAChC,OAAO;oBAAC,6KAAO,OAAO,6BAAP,OAAO,uGAAe;oBADxC,6KAEC;;;;gBADU,MAAM,CAAC,OAAO,+DAAG,WAAW,EAAC;;;oBADlC,uDAAS;;;;;QAIf,OAAO,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}