@joist/element 4.0.0-next.1 → 4.0.0-next.3

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 (52) hide show
  1. package/README.md +20 -23
  2. package/package.json +1 -1
  3. package/src/lib/attr.test.ts +85 -20
  4. package/src/lib/attr.ts +61 -34
  5. package/src/lib/element.test.ts +70 -8
  6. package/src/lib/element.ts +61 -39
  7. package/src/lib/listen.ts +10 -4
  8. package/src/lib/metadata.ts +10 -3
  9. package/src/lib/result.ts +12 -16
  10. package/src/lib/tags.ts +9 -66
  11. package/src/lib.ts +1 -3
  12. package/target/lib/attr.d.ts +4 -1
  13. package/target/lib/attr.js +49 -28
  14. package/target/lib/attr.js.map +1 -1
  15. package/target/lib/attr.test.js +148 -24
  16. package/target/lib/attr.test.js.map +1 -1
  17. package/target/lib/element.d.ts +6 -1
  18. package/target/lib/element.js +47 -31
  19. package/target/lib/element.js.map +1 -1
  20. package/target/lib/element.test.js +131 -17
  21. package/target/lib/element.test.js.map +1 -1
  22. package/target/lib/listen.d.ts +2 -1
  23. package/target/lib/listen.js +6 -3
  24. package/target/lib/listen.js.map +1 -1
  25. package/target/lib/metadata.d.ts +11 -3
  26. package/target/lib/metadata.js +0 -1
  27. package/target/lib/metadata.js.map +1 -1
  28. package/target/lib/result.d.ts +6 -3
  29. package/target/lib/result.js +7 -4
  30. package/target/lib/result.js.map +1 -1
  31. package/target/lib/tags.d.ts +5 -17
  32. package/target/lib/tags.js +5 -11
  33. package/target/lib/tags.js.map +1 -1
  34. package/target/lib.d.ts +1 -3
  35. package/target/lib.js +1 -3
  36. package/target/lib.js.map +1 -1
  37. package/src/lib/shadow.test.ts +0 -40
  38. package/src/lib/shadow.ts +0 -16
  39. package/src/lib/tag-name.test.ts +0 -13
  40. package/src/lib/tag-name.ts +0 -10
  41. package/target/lib/shadow.d.ts +0 -2
  42. package/target/lib/shadow.js +0 -10
  43. package/target/lib/shadow.js.map +0 -1
  44. package/target/lib/shadow.test.d.ts +0 -1
  45. package/target/lib/shadow.test.js +0 -69
  46. package/target/lib/shadow.test.js.map +0 -1
  47. package/target/lib/tag-name.d.ts +0 -1
  48. package/target/lib/tag-name.js +0 -6
  49. package/target/lib/tag-name.js.map +0 -1
  50. package/target/lib/tag-name.test.d.ts +0 -1
  51. package/target/lib/tag-name.test.js +0 -36
  52. package/target/lib/tag-name.test.js.map +0 -1
@@ -1,19 +1,18 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
- import { expect, fixture, html } from '@open-wc/testing';
2
+ import { expect, fixture, html as litHtml } from '@open-wc/testing';
3
3
  import { attr } from './attr.js';
4
4
  import { element } from './element.js';
5
- import { tagName } from './tag-name.js';
5
+ import { css, html } from './tags.js';
6
6
  describe('@element()', () => {
7
7
  it('should write default value to attribute', async () => {
8
8
  let MyElement = (() => {
9
- let _classDecorators = [element];
9
+ let _classDecorators = [element({
10
+ tagName: 'element-1'
11
+ })];
10
12
  let _classDescriptor;
11
13
  let _classExtraInitializers = [];
12
14
  let _classThis;
13
15
  let _classSuper = HTMLElement;
14
- let _static_tag_decorators;
15
- let _static_tag_initializers = [];
16
- let _static_tag_extraInitializers = [];
17
16
  let _value1_decorators;
18
17
  let _value1_initializers = [];
19
18
  let _value1_extraInitializers = [];
@@ -27,19 +26,17 @@ describe('@element()', () => {
27
26
  static { _classThis = this; }
28
27
  static {
29
28
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
30
- _static_tag_decorators = [tagName];
31
- _value1_decorators = [attr];
32
- _value2_decorators = [attr];
33
- _value3_decorators = [attr];
29
+ _value1_decorators = [attr()];
30
+ _value2_decorators = [attr()];
31
+ _value3_decorators = [attr()];
34
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, _value1_extraInitializers);
35
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, _value2_extraInitializers);
36
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, _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);
38
35
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
39
36
  MyElement = _classThis = _classDescriptor.value;
40
37
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
38
+ __runInitializers(_classThis, _classExtraInitializers);
41
39
  }
42
- static tag = __runInitializers(_classThis, _static_tag_initializers, 'element-1');
43
40
  #value1_accessor_storage = __runInitializers(this, _value1_initializers, 'hello');
44
41
  get value1() { return this.#value1_accessor_storage; }
45
42
  set value1(value) { this.#value1_accessor_storage = value; }
@@ -53,17 +50,134 @@ describe('@element()', () => {
53
50
  super(...arguments);
54
51
  __runInitializers(this, _value3_extraInitializers);
55
52
  }
56
- static {
57
- __runInitializers(_classThis, _static_tag_extraInitializers);
58
- __runInitializers(_classThis, _classExtraInitializers);
59
- }
60
53
  };
61
54
  return MyElement = _classThis;
62
55
  })();
63
- const el = await fixture(html `<element-1></element-1>`);
56
+ const el = await fixture(litHtml `<element-1></element-1>`);
64
57
  expect(el.getAttribute('value1')).to.equal('hello');
65
58
  expect(el.getAttribute('value2')).to.equal('0');
66
59
  expect(el.getAttribute('value3')).to.equal('');
67
60
  });
61
+ it('should register attributes', async () => {
62
+ let MyElement = (() => {
63
+ let _classDecorators = [element({
64
+ tagName: 'element-2'
65
+ })];
66
+ let _classDescriptor;
67
+ let _classExtraInitializers = [];
68
+ let _classThis;
69
+ let _classSuper = HTMLElement;
70
+ let _value1_decorators;
71
+ let _value1_initializers = [];
72
+ let _value1_extraInitializers = [];
73
+ let _value2_decorators;
74
+ let _value2_initializers = [];
75
+ let _value2_extraInitializers = [];
76
+ let _value3_decorators;
77
+ let _value3_initializers = [];
78
+ let _value3_extraInitializers = [];
79
+ let _value4_decorators;
80
+ let _value4_initializers = [];
81
+ let _value4_extraInitializers = [];
82
+ var MyElement = class extends _classSuper {
83
+ static { _classThis = this; }
84
+ static {
85
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
86
+ _value1_decorators = [attr()];
87
+ _value2_decorators = [attr()];
88
+ _value3_decorators = [attr()];
89
+ _value4_decorators = [attr({ observe: false })];
90
+ __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);
91
+ __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);
92
+ __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);
93
+ __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);
94
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
95
+ MyElement = _classThis = _classDescriptor.value;
96
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
97
+ __runInitializers(_classThis, _classExtraInitializers);
98
+ }
99
+ #value1_accessor_storage = __runInitializers(this, _value1_initializers, 'hello');
100
+ get value1() { return this.#value1_accessor_storage; }
101
+ set value1(value) { this.#value1_accessor_storage = value; }
102
+ #value2_accessor_storage = (__runInitializers(this, _value1_extraInitializers), __runInitializers(this, _value2_initializers, 0));
103
+ get value2() { return this.#value2_accessor_storage; }
104
+ set value2(value) { this.#value2_accessor_storage = value; }
105
+ #value3_accessor_storage = (__runInitializers(this, _value2_extraInitializers), __runInitializers(this, _value3_initializers, true));
106
+ get value3() { return this.#value3_accessor_storage; }
107
+ set value3(value) { this.#value3_accessor_storage = value; }
108
+ #value4_accessor_storage = (__runInitializers(this, _value3_extraInitializers), __runInitializers(this, _value4_initializers, 'hello world'));
109
+ get value4() { return this.#value4_accessor_storage; }
110
+ set value4(value) { this.#value4_accessor_storage = value; }
111
+ constructor() {
112
+ super(...arguments);
113
+ __runInitializers(this, _value4_extraInitializers);
114
+ }
115
+ };
116
+ return MyElement = _classThis;
117
+ })();
118
+ expect(Reflect.get(MyElement, 'observedAttributes')).to.deep.equal([
119
+ 'value1',
120
+ 'value2',
121
+ 'value3'
122
+ ]);
123
+ });
124
+ it('should attach shadow root when the shadow property exists', async () => {
125
+ let MyElement = (() => {
126
+ let _classDecorators = [element({
127
+ tagName: 'element-3',
128
+ shadow: []
129
+ })];
130
+ let _classDescriptor;
131
+ let _classExtraInitializers = [];
132
+ let _classThis;
133
+ let _classSuper = HTMLElement;
134
+ var MyElement = class extends _classSuper {
135
+ static { _classThis = this; }
136
+ static {
137
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
138
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
139
+ MyElement = _classThis = _classDescriptor.value;
140
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
141
+ __runInitializers(_classThis, _classExtraInitializers);
142
+ }
143
+ };
144
+ return MyElement = _classThis;
145
+ })();
146
+ const el = new MyElement();
147
+ expect(el.shadowRoot).to.be.instanceOf(ShadowRoot);
148
+ });
149
+ it('should apply html and css', async () => {
150
+ let MyElement = (() => {
151
+ let _classDecorators = [element({
152
+ tagName: 'element-4',
153
+ shadow: [
154
+ css `
155
+ :host {
156
+ display: contents;
157
+ }
158
+ `,
159
+ html `<slot></slot>`
160
+ ]
161
+ })];
162
+ let _classDescriptor;
163
+ let _classExtraInitializers = [];
164
+ let _classThis;
165
+ let _classSuper = HTMLElement;
166
+ var MyElement = class extends _classSuper {
167
+ static { _classThis = this; }
168
+ static {
169
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
170
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
171
+ MyElement = _classThis = _classDescriptor.value;
172
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
173
+ __runInitializers(_classThis, _classExtraInitializers);
174
+ }
175
+ };
176
+ return MyElement = _classThis;
177
+ })();
178
+ const el = new MyElement();
179
+ expect(el.shadowRoot.adoptedStyleSheets.length).to.equal(1);
180
+ expect(el.shadowRoot.innerHTML).to.equal(`<slot></slot>`);
181
+ });
68
182
  });
69
183
  //# 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,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"}
1
+ {"version":3,"file":"element.test.js","sourceRoot":"","sources":["../../src/lib/element.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
- export declare function listen<This extends HTMLElement>(event: string): (value: (e: Event) => void, ctx: ClassMethodDecoratorContext<This>) => void;
1
+ import { ListenerRootSelector } from './metadata.js';
2
+ export declare function listen<This extends HTMLElement>(event: string, root?: ListenerRootSelector): (value: (e: Event) => void, ctx: ClassMethodDecoratorContext<This>) => void;
@@ -1,8 +1,11 @@
1
1
  import { metadataStore } from './metadata.js';
2
- export function listen(event) {
3
- return (value, ctx) => {
2
+ export function listen(event, root) {
3
+ return function listenDecorator(value, ctx) {
4
4
  const metadata = metadataStore.read(ctx.metadata);
5
- metadata.listeners.set(event, value);
5
+ metadata.listeners.set(event, {
6
+ cb: value,
7
+ root: root ?? ((el) => el.shadowRoot ?? el)
8
+ });
6
9
  };
7
10
  }
8
11
  //# sourceMappingURL=listen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"listen.js","sourceRoot":"","sources":["../../src/lib/listen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,UAAU,MAAM,CAA2B,KAAa;IAC5D,OAAO,CAAC,KAAyB,EAAE,GAAsC,EAAE,EAAE;QAC3E,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAElD,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"listen.js","sourceRoot":"","sources":["../../src/lib/listen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,aAAa,EAAE,MAAM,eAAe,CAAC;AAEpE,MAAM,UAAU,MAAM,CAA2B,KAAa,EAAE,IAA2B;IACzF,OAAO,SAAS,eAAe,CAC7B,KAAyB,EACzB,GAAsC;QAEtC,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAElD,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;YAC5B,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,EAAe,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC;SACzD,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -1,7 +1,15 @@
1
+ export interface AttrDef {
2
+ propName: string | symbol;
3
+ attrName: string;
4
+ observe: boolean;
5
+ }
6
+ export type ListenerRootSelector = (el: HTMLElement) => HTMLElement | ShadowRoot;
1
7
  export declare class ElementMetadata {
2
- attrs: string[];
3
- tagName?: (val: any) => string;
4
- listeners: Map<string, (e: Event) => void>;
8
+ attrs: AttrDef[];
9
+ listeners: Map<string, {
10
+ cb: (e: Event) => void;
11
+ root: ListenerRootSelector;
12
+ }>;
5
13
  }
6
14
  export declare class MetadataStore extends WeakMap<object, ElementMetadata> {
7
15
  read(value: object): ElementMetadata;
@@ -1,7 +1,6 @@
1
1
  Symbol.metadata ??= Symbol('Symbol.metadata');
2
2
  export class ElementMetadata {
3
3
  attrs = [];
4
- tagName;
5
4
  listeners = new Map();
6
5
  }
7
6
  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;AAEvD,MAAM,OAAO,eAAe;IAC1B,KAAK,GAAa,EAAE,CAAC;IACrB,OAAO,CAAwB;IAC/B,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;CACnD;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;AAUvD,MAAM,OAAO,eAAe;IAC1B,KAAK,GAAc,EAAE,CAAC;IACtB,SAAS,GAAG,IAAI,GAAG,EAAkE,CAAC;CACvF;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,9 +1,12 @@
1
- export declare abstract class ShadowResult {
1
+ export interface ShadowResult {
2
+ run(el: HTMLElement): void;
3
+ }
4
+ export declare abstract class JoistShadowResult implements ShadowResult {
2
5
  #private;
3
6
  strings: TemplateStringsArray;
4
7
  values: any[];
5
8
  get shadow(): ShadowRoot;
6
9
  constructor(raw: TemplateStringsArray, ...values: any[]);
7
- execute(root: ShadowRoot): void;
8
- abstract apply(root: ShadowRoot): void;
10
+ run(el: HTMLElement): void;
11
+ abstract setup(root: ShadowRoot): void;
9
12
  }
@@ -1,4 +1,4 @@
1
- export class ShadowResult {
1
+ export class JoistShadowResult {
2
2
  strings;
3
3
  values;
4
4
  #shadow = undefined;
@@ -12,9 +12,12 @@ export class ShadowResult {
12
12
  this.strings = raw;
13
13
  this.values = values;
14
14
  }
15
- execute(root) {
16
- this.#shadow = root;
17
- this.apply(root);
15
+ run(el) {
16
+ if (!el.shadowRoot) {
17
+ throw new Error('ShadowResult has not been applied');
18
+ }
19
+ this.#shadow = el.shadowRoot;
20
+ this.setup(this.#shadow);
18
21
  }
19
22
  }
20
23
  //# sourceMappingURL=result.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/lib/result.ts"],"names":[],"mappings":"AAAA,MAAM,OAAgB,YAAY;IAChC,OAAO,CAAuB;IAC9B,MAAM,CAAQ;IAEd,OAAO,GAA2B,SAAS,CAAC;IAE5C,IAAI,MAAM;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,YAAY,GAAyB,EAAE,GAAG,MAAa;QACrD,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,OAAO,CAAC,IAAgB;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;CAGF"}
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/lib/result.ts"],"names":[],"mappings":"AAIA,MAAM,OAAgB,iBAAiB;IACrC,OAAO,CAAC;IACR,MAAM,CAAC;IAEP,OAAO,GAA2B,SAAS,CAAC;IAE5C,IAAI,MAAM;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,YAAY,GAAyB,EAAE,GAAG,MAAa;QACrD,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,EAAe;QACjB,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC;QAE7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;CAGF"}
@@ -1,23 +1,11 @@
1
- import { ShadowResult } from './result.js';
2
- type Tags = keyof HTMLElementTagNameMap;
3
- type SVGTags = keyof SVGElementTagNameMap;
4
- type MathTags = keyof MathMLElementTagNameMap;
1
+ import { JoistShadowResult } from './result.js';
5
2
  export declare const htmlTemplateCache: WeakMap<TemplateStringsArray, HTMLTemplateElement>;
6
- export declare class HTMLResult extends ShadowResult {
7
- query<K extends Tags>(selectors: K): HTMLElementTagNameMap[K] | null;
8
- query<K extends SVGTags>(selectors: K): SVGElementTagNameMap[K] | null;
9
- query<K extends MathTags>(selectors: K): MathMLElementTagNameMap[K] | null;
10
- query<E extends Element = Element>(selectors: string): E | null;
11
- queryAll<K extends Tags>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;
12
- queryAll<K extends SVGTags>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;
13
- queryAll<K extends MathTags>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;
14
- queryAll<E extends Element = Element>(selectors: string): NodeListOf<E>;
15
- apply(root: ShadowRoot): void;
3
+ export declare class HTMLResult extends JoistShadowResult {
4
+ setup(root: ShadowRoot): void;
16
5
  }
17
6
  export declare function html(strings: TemplateStringsArray, ...values: any[]): HTMLResult;
18
7
  export declare const styleSheetCache: WeakMap<TemplateStringsArray, CSSStyleSheet>;
19
- export declare class CSSResult extends ShadowResult {
20
- apply(root: ShadowRoot): void;
8
+ export declare class CSSResult extends JoistShadowResult {
9
+ setup(root: ShadowRoot): void;
21
10
  }
22
11
  export declare function css(strings: TemplateStringsArray): CSSResult;
23
- export {};
@@ -1,13 +1,7 @@
1
- import { ShadowResult } from './result.js';
1
+ import { JoistShadowResult } from './result.js';
2
2
  export const htmlTemplateCache = new WeakMap();
3
- export class HTMLResult extends ShadowResult {
4
- query(query) {
5
- return this.shadow.querySelector(query);
6
- }
7
- queryAll(query) {
8
- return this.shadow.querySelectorAll(query);
9
- }
10
- apply(root) {
3
+ export class HTMLResult extends JoistShadowResult {
4
+ setup(root) {
11
5
  let template;
12
6
  if (htmlTemplateCache.has(this.strings)) {
13
7
  template = htmlTemplateCache.get(this.strings);
@@ -24,8 +18,8 @@ export function html(strings, ...values) {
24
18
  return new HTMLResult(strings, ...values);
25
19
  }
26
20
  export const styleSheetCache = new WeakMap();
27
- export class CSSResult extends ShadowResult {
28
- apply(root) {
21
+ export class CSSResult extends JoistShadowResult {
22
+ setup(root) {
29
23
  let sheet;
30
24
  if (styleSheetCache.has(this.strings)) {
31
25
  sheet = styleSheetCache.get(this.strings);
@@ -1 +1 @@
1
- {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/lib/tags.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAA6C,CAAC;AAE1F,MAAM,OAAO,UAAW,SAAQ,YAAY;IAK1C,KAAK,CAAiB,KAAQ;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAI,KAAK,CAAC,CAAC;IAC7C,CAAC;IAMD,QAAQ,CAAiB,KAAQ;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAI,KAAK,CAAC,CAAC;IAChD,CAAC;IAKD,KAAK,CAAC,IAAgB;QACpB,IAAI,QAA6B,CAAC;QAElC,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAwB,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAE9C,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;CACF;AAED,MAAM,UAAU,IAAI,CAAC,OAA6B,EAAE,GAAG,MAAa;IAClE,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,EAAuC,CAAC;AAElF,MAAM,OAAO,SAAU,SAAQ,YAAY;IACzC,KAAK,CAAC,IAAgB;QACpB,IAAI,KAAoB,CAAC;QAEzB,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAkB,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;YAE5B,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;CACF;AAED,MAAM,UAAU,GAAG,CAAC,OAA6B;IAC/C,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,MAAM,CAAC,OAA6B;IAC3C,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/lib/tags.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAA6C,CAAC;AAE1F,MAAM,OAAO,UAAW,SAAQ,iBAAiB;IAC/C,KAAK,CAAC,IAAgB;QACpB,IAAI,QAA6B,CAAC;QAElC,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAwB,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAE9C,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;CACF;AAED,MAAM,UAAU,IAAI,CAAC,OAA6B,EAAE,GAAG,MAAa;IAClE,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,EAAuC,CAAC;AAElF,MAAM,OAAO,SAAU,SAAQ,iBAAiB;IAC9C,KAAK,CAAC,IAAgB;QACpB,IAAI,KAAoB,CAAC;QAEzB,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAkB,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;YAE5B,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;CACF;AAED,MAAM,UAAU,GAAG,CAAC,OAA6B;IAC/C,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,MAAM,CAAC,OAA6B;IAC3C,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
package/target/lib.d.ts CHANGED
@@ -1,7 +1,5 @@
1
- export { ShadowResult as TemplateResult } from './lib/result.js';
1
+ export { JoistShadowResult as TemplateResult } from './lib/result.js';
2
2
  export { css, html, HTMLResult, CSSResult } from './lib/tags.js';
3
- export { shadow } from './lib/shadow.js';
4
3
  export { attr } from './lib/attr.js';
5
4
  export { listen } from './lib/listen.js';
6
- export { tagName } from './lib/tag-name.js';
7
5
  export { element } from './lib/element.js';
package/target/lib.js CHANGED
@@ -1,8 +1,6 @@
1
- export { ShadowResult as TemplateResult } from './lib/result.js';
1
+ export { JoistShadowResult as TemplateResult } from './lib/result.js';
2
2
  export { css, html, HTMLResult, CSSResult } from './lib/tags.js';
3
- export { shadow } from './lib/shadow.js';
4
3
  export { attr } from './lib/attr.js';
5
4
  export { listen } from './lib/listen.js';
6
- export { tagName } from './lib/tag-name.js';
7
5
  export { element } from './lib/element.js';
8
6
  //# sourceMappingURL=lib.js.map
package/target/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,40 +0,0 @@
1
- import { expect } from '@open-wc/testing';
2
-
3
- import { css, html } from './tags.js';
4
- import { shadow } from './shadow.js';
5
-
6
- describe('template', () => {
7
- it('should apply a stylesheet', () => {
8
- class MyElement extends HTMLElement {
9
- @shadow styles = css`
10
- :host {
11
- display: flex;
12
- }
13
- `;
14
- }
15
-
16
- customElements.define('template-1', MyElement);
17
-
18
- const el = new MyElement();
19
-
20
- expect(el.shadowRoot!.adoptedStyleSheets.length).to.eq(1);
21
- });
22
-
23
- it('should apply html', () => {
24
- class MyElement extends HTMLElement {
25
- @shadow styles = css`
26
- :host {
27
- display: flex;
28
- }
29
- `;
30
-
31
- @shadow template = html`<slot></slot>`;
32
- }
33
-
34
- customElements.define('template-2', MyElement);
35
-
36
- const el = new MyElement();
37
-
38
- expect(el.shadowRoot?.innerHTML).to.eq('<slot></slot>');
39
- });
40
- });
package/src/lib/shadow.ts DELETED
@@ -1,16 +0,0 @@
1
- import { ShadowResult } from './result.js';
2
-
3
- export function shadow<This extends HTMLElement, T extends ShadowResult>(
4
- _: undefined,
5
- _ctx: ClassFieldDecoratorContext<This, T>
6
- ) {
7
- return function (this: This, result: T) {
8
- if (!this.shadowRoot) {
9
- this.attachShadow({ mode: 'open' });
10
- }
11
-
12
- result.execute(this.shadowRoot!);
13
-
14
- return result;
15
- };
16
- }
@@ -1,13 +0,0 @@
1
- import { element } from './element.js';
2
- import { tagName } from './tag-name.js';
3
-
4
- describe('tag-name', () => {
5
- it('should define a custom element', async () => {
6
- @element
7
- class MyElement extends HTMLElement {
8
- @tagName static tagName = 'tn-test-1';
9
- }
10
-
11
- return customElements.whenDefined(MyElement.tagName);
12
- });
13
- });
@@ -1,10 +0,0 @@
1
- import { metadataStore } from './metadata.js';
2
-
3
- export function tagName<This extends typeof HTMLElement>(
4
- _val: unknown,
5
- ctx: ClassFieldDecoratorContext<This, string>
6
- ) {
7
- const metadata = metadataStore.read(ctx.metadata);
8
-
9
- metadata.tagName = ctx.access.get;
10
- }
@@ -1,2 +0,0 @@
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;
@@ -1,10 +0,0 @@
1
- export function shadow(_, _ctx) {
2
- return function (result) {
3
- if (!this.shadowRoot) {
4
- this.attachShadow({ mode: 'open' });
5
- }
6
- result.execute(this.shadowRoot);
7
- return result;
8
- };
9
- }
10
- //# sourceMappingURL=shadow.js.map
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,69 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { expect } from '@open-wc/testing';
3
- import { css, html } from './tags.js';
4
- import { shadow } from './shadow.js';
5
- describe('template', () => {
6
- it('should apply a stylesheet', () => {
7
- let MyElement = (() => {
8
- let _classSuper = HTMLElement;
9
- let _styles_decorators;
10
- let _styles_initializers = [];
11
- let _styles_extraInitializers = [];
12
- return class MyElement extends _classSuper {
13
- static {
14
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
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, _styles_extraInitializers);
17
- if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
18
- }
19
- styles = __runInitializers(this, _styles_initializers, css `
20
- :host {
21
- display: flex;
22
- }
23
- `);
24
- constructor() {
25
- super(...arguments);
26
- __runInitializers(this, _styles_extraInitializers);
27
- }
28
- };
29
- })();
30
- customElements.define('template-1', MyElement);
31
- const el = new MyElement();
32
- expect(el.shadowRoot.adoptedStyleSheets.length).to.eq(1);
33
- });
34
- it('should apply html', () => {
35
- let MyElement = (() => {
36
- let _classSuper = HTMLElement;
37
- let _styles_decorators;
38
- let _styles_initializers = [];
39
- let _styles_extraInitializers = [];
40
- let _template_decorators;
41
- let _template_initializers = [];
42
- let _template_extraInitializers = [];
43
- return class MyElement extends _classSuper {
44
- static {
45
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
46
- _styles_decorators = [shadow];
47
- _template_decorators = [shadow];
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);
50
- if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
51
- }
52
- styles = __runInitializers(this, _styles_initializers, css `
53
- :host {
54
- display: flex;
55
- }
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
- }
62
- };
63
- })();
64
- customElements.define('template-2', MyElement);
65
- const el = new MyElement();
66
- expect(el.shadowRoot?.innerHTML).to.eq('<slot></slot>');
67
- });
68
- });
69
- //# sourceMappingURL=shadow.test.js.map
@@ -1 +0,0 @@
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 +0,0 @@
1
- export declare function tagName<This extends typeof HTMLElement>(_val: unknown, ctx: ClassFieldDecoratorContext<This, string>): void;
@@ -1,6 +0,0 @@
1
- import { metadataStore } from './metadata.js';
2
- export function tagName(_val, ctx) {
3
- const metadata = metadataStore.read(ctx.metadata);
4
- metadata.tagName = ctx.access.get;
5
- }
6
- //# sourceMappingURL=tag-name.js.map
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- export {};