@joist/element 4.0.0-next.4 → 4.0.0-next.41

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 (71) hide show
  1. package/README.md +102 -15
  2. package/package.json +7 -9
  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 +159 -97
  6. package/src/lib/attr.ts +26 -33
  7. package/src/lib/element.test.ts +95 -71
  8. package/src/lib/element.ts +107 -51
  9. package/src/lib/lifecycle.test.ts +31 -0
  10. package/src/lib/lifecycle.ts +9 -0
  11. package/src/lib/listen.test.ts +104 -0
  12. package/src/lib/listen.ts +27 -7
  13. package/src/lib/metadata.ts +21 -8
  14. package/src/lib/query.test.ts +21 -47
  15. package/src/lib/query.ts +2 -8
  16. package/src/lib/result.ts +1 -21
  17. package/src/lib/tags.ts +27 -12
  18. package/src/lib/template.test.ts +123 -0
  19. package/src/lib/template.ts +118 -0
  20. package/src/lib.ts +3 -2
  21. package/target/lib/attr-changed.d.ts +1 -0
  22. package/target/lib/attr-changed.js +10 -0
  23. package/target/lib/attr-changed.js.map +1 -0
  24. package/target/lib/attr-changed.test.d.ts +1 -0
  25. package/target/lib/attr-changed.test.js +54 -0
  26. package/target/lib/attr-changed.test.js.map +1 -0
  27. package/target/lib/attr.d.ts +3 -1
  28. package/target/lib/attr.js +23 -25
  29. package/target/lib/attr.js.map +1 -1
  30. package/target/lib/attr.test.js +373 -251
  31. package/target/lib/attr.test.js.map +1 -1
  32. package/target/lib/element.d.ts +8 -339
  33. package/target/lib/element.js +81 -39
  34. package/target/lib/element.js.map +1 -1
  35. package/target/lib/element.test.js +154 -178
  36. package/target/lib/element.test.js.map +1 -1
  37. package/target/lib/lifecycle.d.ts +1 -0
  38. package/target/lib/lifecycle.js +8 -0
  39. package/target/lib/lifecycle.js.map +1 -0
  40. package/target/lib/lifecycle.test.d.ts +1 -0
  41. package/target/lib/lifecycle.test.js +48 -0
  42. package/target/lib/lifecycle.test.js.map +1 -0
  43. package/target/lib/listen.d.ts +2 -2
  44. package/target/lib/listen.js +18 -3
  45. package/target/lib/listen.js.map +1 -1
  46. package/target/lib/listen.test.d.ts +1 -0
  47. package/target/lib/listen.test.js +167 -0
  48. package/target/lib/listen.test.js.map +1 -0
  49. package/target/lib/metadata.d.ts +20 -10
  50. package/target/lib/metadata.js +8 -2
  51. package/target/lib/metadata.js.map +1 -1
  52. package/target/lib/query.d.ts +1 -1
  53. package/target/lib/query.js +1 -6
  54. package/target/lib/query.js.map +1 -1
  55. package/target/lib/query.test.js +35 -74
  56. package/target/lib/query.test.js.map +1 -1
  57. package/target/lib/result.d.ts +1 -8
  58. package/target/lib/result.js +1 -14
  59. package/target/lib/result.js.map +1 -1
  60. package/target/lib/tags.d.ts +10 -6
  61. package/target/lib/tags.js +20 -11
  62. package/target/lib/tags.js.map +1 -1
  63. package/target/lib/template.d.ts +11 -0
  64. package/target/lib/template.js +87 -0
  65. package/target/lib/template.js.map +1 -0
  66. package/target/lib/template.test.d.ts +1 -0
  67. package/target/lib/template.test.js +91 -0
  68. package/target/lib/template.test.js.map +1 -0
  69. package/target/lib.d.ts +3 -2
  70. package/target/lib.js +3 -2
  71. package/target/lib.js.map +1 -1
@@ -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,342 +1,11 @@
1
1
  import { ShadowResult } from './result.js';
2
- export interface ElementOpts<T> {
2
+ export interface ElementOpts {
3
3
  tagName?: string;
4
- shadow?: Array<ShadowResult | ((el: T) => void)>;
4
+ shadowDom?: ShadowResult[];
5
+ shadowDomOpts?: ShadowRootInit;
5
6
  }
6
- export declare const LifeCycle: {
7
- onInit: symbol;
8
- };
9
- export declare function element<Target extends CustomElementConstructor, Instance extends InstanceType<Target>>(opts?: ElementOpts<Instance>): (Base: Target, ctx: ClassDecoratorContext<Target>) => {
10
- new (...args: any[]): {
11
- connectedCallback(): void;
12
- accessKey: string;
13
- readonly accessKeyLabel: string;
14
- autocapitalize: string;
15
- dir: string;
16
- draggable: boolean;
17
- hidden: boolean;
18
- inert: boolean;
19
- innerText: string;
20
- lang: string;
21
- readonly offsetHeight: number;
22
- readonly offsetLeft: number;
23
- readonly offsetParent: Element | null;
24
- readonly offsetTop: number;
25
- readonly offsetWidth: number;
26
- outerText: string;
27
- popover: string | null;
28
- spellcheck: boolean;
29
- title: string;
30
- translate: boolean;
31
- attachInternals(): ElementInternals;
32
- click(): void;
33
- hidePopover(): void;
34
- showPopover(): void;
35
- togglePopover(force?: boolean): boolean;
36
- addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
37
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
38
- removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
39
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
40
- disconnectedCallback?(): void;
41
- readonly attributes: NamedNodeMap;
42
- readonly classList: DOMTokenList;
43
- className: string;
44
- readonly clientHeight: number;
45
- readonly clientLeft: number;
46
- readonly clientTop: number;
47
- readonly clientWidth: number;
48
- id: string;
49
- readonly localName: string;
50
- readonly namespaceURI: string | null;
51
- onfullscreenchange: ((this: Element, ev: Event) => any) | null;
52
- onfullscreenerror: ((this: Element, ev: Event) => any) | null;
53
- outerHTML: string;
54
- readonly ownerDocument: Document;
55
- readonly part: DOMTokenList;
56
- readonly prefix: string | null;
57
- readonly scrollHeight: number;
58
- scrollLeft: number;
59
- scrollTop: number;
60
- readonly scrollWidth: number;
61
- readonly shadowRoot: ShadowRoot | null;
62
- slot: string;
63
- readonly tagName: string;
64
- attachShadow(init: ShadowRootInit): ShadowRoot;
65
- checkVisibility(options?: CheckVisibilityOptions): boolean;
66
- closest<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;
67
- closest<K extends keyof SVGElementTagNameMap>(selector: K): SVGElementTagNameMap[K] | null;
68
- closest<K extends keyof MathMLElementTagNameMap>(selector: K): MathMLElementTagNameMap[K] | null;
69
- closest<E extends Element = Element>(selectors: string): E | null;
70
- computedStyleMap(): StylePropertyMapReadOnly;
71
- getAttribute(qualifiedName: string): string | null;
72
- getAttributeNS(namespace: string | null, localName: string): string | null;
73
- getAttributeNames(): string[];
74
- getAttributeNode(qualifiedName: string): Attr | null;
75
- getAttributeNodeNS(namespace: string | null, localName: string): Attr | null;
76
- getBoundingClientRect(): DOMRect;
77
- getClientRects(): DOMRectList;
78
- getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
79
- getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
80
- getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
81
- getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;
82
- getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;
83
- getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
84
- getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
85
- getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
86
- getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>;
87
- getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>;
88
- hasAttribute(qualifiedName: string): boolean;
89
- hasAttributeNS(namespace: string | null, localName: string): boolean;
90
- hasAttributes(): boolean;
91
- hasPointerCapture(pointerId: number): boolean;
92
- insertAdjacentElement(where: InsertPosition, element: Element): Element | null;
93
- insertAdjacentHTML(position: InsertPosition, text: string): void;
94
- insertAdjacentText(where: InsertPosition, data: string): void;
95
- matches(selectors: string): boolean;
96
- releasePointerCapture(pointerId: number): void;
97
- removeAttribute(qualifiedName: string): void;
98
- removeAttributeNS(namespace: string | null, localName: string): void;
99
- removeAttributeNode(attr: Attr): Attr;
100
- requestFullscreen(options?: FullscreenOptions): Promise<void>;
101
- requestPointerLock(): void;
102
- scroll(options?: ScrollToOptions): void;
103
- scroll(x: number, y: number): void;
104
- scrollBy(options?: ScrollToOptions): void;
105
- scrollBy(x: number, y: number): void;
106
- scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;
107
- scrollTo(options?: ScrollToOptions): void;
108
- scrollTo(x: number, y: number): void;
109
- setAttribute(qualifiedName: string, value: string): void;
110
- setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;
111
- setAttributeNode(attr: Attr): Attr | null;
112
- setAttributeNodeNS(attr: Attr): Attr | null;
113
- setHTMLUnsafe(html: string): void;
114
- setPointerCapture(pointerId: number): void;
115
- toggleAttribute(qualifiedName: string, force?: boolean): boolean;
116
- webkitMatchesSelector(selectors: string): boolean;
117
- readonly baseURI: string;
118
- readonly childNodes: NodeListOf<ChildNode>;
119
- readonly firstChild: ChildNode | null;
120
- readonly isConnected: boolean;
121
- readonly lastChild: ChildNode | null;
122
- readonly nextSibling: ChildNode | null;
123
- readonly nodeName: string;
124
- readonly nodeType: number;
125
- nodeValue: string | null;
126
- readonly parentElement: HTMLElement | null;
127
- readonly parentNode: ParentNode | null;
128
- readonly previousSibling: ChildNode | null;
129
- textContent: string | null;
130
- appendChild<T extends Node>(node: T): T;
131
- cloneNode(deep?: boolean): Node;
132
- compareDocumentPosition(other: Node): number;
133
- contains(other: Node | null): boolean;
134
- getRootNode(options?: GetRootNodeOptions): Node;
135
- hasChildNodes(): boolean;
136
- insertBefore<T extends Node>(node: T, child: Node | null): T;
137
- isDefaultNamespace(namespace: string | null): boolean;
138
- isEqualNode(otherNode: Node | null): boolean;
139
- isSameNode(otherNode: Node | null): boolean;
140
- lookupNamespaceURI(prefix: string | null): string | null;
141
- lookupPrefix(namespace: string | null): string | null;
142
- normalize(): void;
143
- removeChild<T extends Node>(child: T): T;
144
- replaceChild<T extends Node>(node: Node, child: T): T;
145
- readonly ELEMENT_NODE: 1;
146
- readonly ATTRIBUTE_NODE: 2;
147
- readonly TEXT_NODE: 3;
148
- readonly CDATA_SECTION_NODE: 4;
149
- readonly ENTITY_REFERENCE_NODE: 5;
150
- readonly ENTITY_NODE: 6;
151
- readonly PROCESSING_INSTRUCTION_NODE: 7;
152
- readonly COMMENT_NODE: 8;
153
- readonly DOCUMENT_NODE: 9;
154
- readonly DOCUMENT_TYPE_NODE: 10;
155
- readonly DOCUMENT_FRAGMENT_NODE: 11;
156
- readonly NOTATION_NODE: 12;
157
- readonly DOCUMENT_POSITION_DISCONNECTED: 1;
158
- readonly DOCUMENT_POSITION_PRECEDING: 2;
159
- readonly DOCUMENT_POSITION_FOLLOWING: 4;
160
- readonly DOCUMENT_POSITION_CONTAINS: 8;
161
- readonly DOCUMENT_POSITION_CONTAINED_BY: 16;
162
- readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32;
163
- dispatchEvent(event: Event): boolean;
164
- ariaAtomic: string | null;
165
- ariaAutoComplete: string | null;
166
- ariaBrailleLabel: string | null;
167
- ariaBrailleRoleDescription: string | null;
168
- ariaBusy: string | null;
169
- ariaChecked: string | null;
170
- ariaColCount: string | null;
171
- ariaColIndex: string | null;
172
- ariaColSpan: string | null;
173
- ariaCurrent: string | null;
174
- ariaDescription: string | null;
175
- ariaDisabled: string | null;
176
- ariaExpanded: string | null;
177
- ariaHasPopup: string | null;
178
- ariaHidden: string | null;
179
- ariaInvalid: string | null;
180
- ariaKeyShortcuts: string | null;
181
- ariaLabel: string | null;
182
- ariaLevel: string | null;
183
- ariaLive: string | null;
184
- ariaModal: string | null;
185
- ariaMultiLine: string | null;
186
- ariaMultiSelectable: string | null;
187
- ariaOrientation: string | null;
188
- ariaPlaceholder: string | null;
189
- ariaPosInSet: string | null;
190
- ariaPressed: string | null;
191
- ariaReadOnly: string | null;
192
- ariaRequired: string | null;
193
- ariaRoleDescription: string | null;
194
- ariaRowCount: string | null;
195
- ariaRowIndex: string | null;
196
- ariaRowSpan: string | null;
197
- ariaSelected: string | null;
198
- ariaSetSize: string | null;
199
- ariaSort: string | null;
200
- ariaValueMax: string | null;
201
- ariaValueMin: string | null;
202
- ariaValueNow: string | null;
203
- ariaValueText: string | null;
204
- role: string | null;
205
- animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation;
206
- getAnimations(options?: GetAnimationsOptions): Animation[];
207
- after(...nodes: (Node | string)[]): void;
208
- before(...nodes: (Node | string)[]): void;
209
- remove(): void;
210
- replaceWith(...nodes: (Node | string)[]): void;
211
- innerHTML: string;
212
- readonly nextElementSibling: Element | null;
213
- readonly previousElementSibling: Element | null;
214
- readonly childElementCount: number;
215
- readonly children: HTMLCollection;
216
- readonly firstElementChild: Element | null;
217
- readonly lastElementChild: Element | null;
218
- append(...nodes: (Node | string)[]): void;
219
- prepend(...nodes: (Node | string)[]): void;
220
- querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;
221
- querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;
222
- querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;
223
- querySelector<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): HTMLElementDeprecatedTagNameMap[K] | null;
224
- querySelector<E extends Element = Element>(selectors: string): E | null;
225
- querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;
226
- querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;
227
- querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;
228
- querySelectorAll<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): NodeListOf<HTMLElementDeprecatedTagNameMap[K]>;
229
- querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;
230
- replaceChildren(...nodes: (Node | string)[]): void;
231
- readonly assignedSlot: HTMLSlotElement | null;
232
- readonly attributeStyleMap: StylePropertyMap;
233
- readonly style: CSSStyleDeclaration;
234
- contentEditable: string;
235
- enterKeyHint: string;
236
- inputMode: string;
237
- readonly isContentEditable: boolean;
238
- onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
239
- onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
240
- onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
241
- onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
242
- onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
243
- onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
244
- onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null;
245
- onbeforetoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
246
- onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
247
- oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
248
- oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
249
- oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;
250
- onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
251
- onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
252
- onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;
253
- oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
254
- oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
255
- oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
256
- oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
257
- ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
258
- ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
259
- ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
260
- ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
261
- ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
262
- ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
263
- ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
264
- ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
265
- ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
266
- onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;
267
- onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;
268
- onerror: OnErrorEventHandler;
269
- onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
270
- onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null;
271
- ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
272
- oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;
273
- oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;
274
- onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
275
- onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
276
- onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
277
- onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;
278
- onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
279
- onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
280
- onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
281
- onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
282
- onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
283
- onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
284
- onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
285
- onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
286
- onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
287
- onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
288
- onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
289
- onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
290
- onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;
291
- onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
292
- onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;
293
- onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
294
- onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
295
- onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
296
- onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
297
- onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
298
- onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
299
- onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
300
- onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
301
- onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;
302
- onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
303
- onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;
304
- onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
305
- onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;
306
- onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
307
- onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null;
308
- onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;
309
- onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;
310
- onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;
311
- onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
312
- onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
313
- onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
314
- onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;
315
- onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null;
316
- onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
317
- ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
318
- ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
319
- ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
320
- ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
321
- ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
322
- ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
323
- ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
324
- ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
325
- ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
326
- ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
327
- onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
328
- onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;
329
- onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
330
- onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null;
331
- onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
332
- onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
333
- onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;
334
- autofocus: boolean;
335
- readonly dataset: DOMStringMap;
336
- nonce?: string;
337
- tabIndex: number;
338
- blur(): void;
339
- focus(options?: FocusOptions): void;
340
- };
341
- observedAttributes: string[];
342
- } & Target;
7
+ interface ElementConstructor {
8
+ new (...args: any[]): HTMLElement;
9
+ }
10
+ export declare function element<T extends ElementConstructor>(opts?: ElementOpts): (Base: T, ctx: ClassDecoratorContext<T>) => T;
11
+ export {};
@@ -1,7 +1,4 @@
1
1
  import { metadataStore } from './metadata.js';
2
- export const LifeCycle = {
3
- onInit: Symbol('onInit')
4
- };
5
2
  export function element(opts) {
6
3
  return function elementDecorator(Base, ctx) {
7
4
  const meta = metadataStore.read(ctx.metadata);
@@ -12,57 +9,102 @@ export function element(opts) {
12
9
  }
13
10
  }
14
11
  });
15
- return class JoistElement extends Base {
16
- static observedAttributes = meta.attrs
17
- .filter(({ observe }) => observe)
18
- .map(({ attrName }) => attrName);
19
- constructor(...args) {
20
- super(...args);
21
- if (opts?.shadow) {
22
- if (!this.shadowRoot) {
23
- this.attachShadow({ mode: 'open' });
24
- }
25
- for (let res of opts.shadow) {
26
- if (typeof res === 'function') {
27
- res(this);
12
+ const def = {
13
+ [Base.name]: class extends Base {
14
+ static observedAttributes = Array.from(meta.attrs.keys());
15
+ #removeListeners = new Set();
16
+ constructor(...args) {
17
+ super(...args);
18
+ if (opts?.shadowDom) {
19
+ if (!this.shadowRoot) {
20
+ this.attachShadow(opts.shadowDomOpts ?? { mode: 'open' });
28
21
  }
29
- else {
30
- res.run(this);
22
+ for (let res of opts.shadowDom) {
23
+ res.apply(this);
31
24
  }
32
25
  }
26
+ for (let cb of meta.onReady) {
27
+ cb.call(this);
28
+ }
33
29
  }
34
- for (let [event, { cb, root }] of meta.listeners) {
35
- root(this).addEventListener(event, cb.bind(this));
30
+ attributeChangedCallback(name, oldValue, newValue) {
31
+ const attr = meta.attrs.get(name);
32
+ const cbs = meta.attrChanges.get(name);
33
+ if (attr) {
34
+ if (oldValue !== newValue) {
35
+ const ogValue = attr.getPropValue.call(this);
36
+ if (newValue === '') {
37
+ attr.setPropValue.call(this, true);
38
+ }
39
+ else if (typeof ogValue === 'number') {
40
+ attr.setPropValue.call(this, Number(newValue));
41
+ }
42
+ else {
43
+ attr.setPropValue.call(this, newValue);
44
+ }
45
+ }
46
+ if (cbs) {
47
+ for (let cb of cbs) {
48
+ cb.call(this, oldValue, newValue);
49
+ }
50
+ }
51
+ if (super.attributeChangedCallback) {
52
+ super.attributeChangedCallback(name, oldValue, newValue);
53
+ }
54
+ }
36
55
  }
37
- if (LifeCycle.onInit in this) {
38
- const onInit = Reflect.get(this, LifeCycle.onInit);
39
- if (typeof onInit === 'function') {
40
- onInit();
56
+ connectedCallback() {
57
+ if (this.isConnected) {
58
+ for (let { event, cb, selector } of meta.listeners) {
59
+ const root = selector(this);
60
+ if (root) {
61
+ const thisCb = cb.bind(this);
62
+ root.addEventListener(event, thisCb);
63
+ this.#removeListeners.add(() => {
64
+ root.removeEventListener(event, thisCb);
65
+ });
66
+ }
67
+ else {
68
+ throw new Error(`could not add listener to ${root}`);
69
+ }
70
+ }
71
+ reflectAttributeValues(this, meta.attrs);
72
+ if (super.connectedCallback) {
73
+ super.connectedCallback();
74
+ }
41
75
  }
42
76
  }
43
- }
44
- connectedCallback() {
45
- if (this.isConnected) {
46
- reflectAttributeValues(this, meta.attrs);
47
- if (super.connectedCallback) {
48
- super.connectedCallback();
77
+ disconnectedCallback() {
78
+ for (let remove of this.#removeListeners) {
79
+ remove();
80
+ }
81
+ if (super.disconnectedCallback) {
82
+ super.disconnectedCallback();
49
83
  }
50
84
  }
51
85
  }
52
86
  };
87
+ return def[Base.name];
53
88
  };
54
89
  }
55
90
  function reflectAttributeValues(el, attrs) {
56
- for (let { propName, attrName } of attrs) {
57
- const value = Reflect.get(el, propName);
58
- if (value !== null && value !== undefined && value !== '') {
59
- if (typeof value === 'boolean') {
60
- if (value === true) {
61
- el.setAttribute(attrName, '');
91
+ for (let [attrName, { getPropValue, reflect }] of attrs) {
92
+ if (reflect) {
93
+ const value = getPropValue.call(el);
94
+ if (value !== null && value !== undefined && value !== '') {
95
+ if (typeof value === 'boolean') {
96
+ if (value === true) {
97
+ if (!el.hasAttribute(attrName)) {
98
+ el.setAttribute(attrName, '');
99
+ }
100
+ }
101
+ }
102
+ else {
103
+ const strValue = String(value);
104
+ if (el.getAttribute(attrName) !== strValue) {
105
+ el.setAttribute(attrName, strValue);
106
+ }
62
107
  }
63
- }
64
- else {
65
- el.setAttribute(attrName, String(value));
66
108
  }
67
109
  }
68
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/lib/element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/lib/element.ts"],"names":[],"mappings":"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"}