@joist/element 4.0.0-next.32 → 4.0.0-next.34
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 +1 -1
- package/src/lib/attr-changed.ts +1 -1
- package/src/lib/element.ts +39 -21
- package/src/lib/lifecycle.ts +1 -1
- package/src/lib/listen.test.ts +16 -0
- package/src/lib/listen.ts +4 -1
- package/src/lib/metadata.ts +4 -4
- package/src/lib/template.ts +2 -2
- package/target/lib/element.d.ts +1 -342
- package/target/lib/element.js +30 -17
- package/target/lib/element.js.map +1 -1
- package/target/lib/listen.js.map +1 -1
- package/target/lib/listen.test.js +8 -0
- package/target/lib/listen.test.js.map +1 -1
- package/target/lib/metadata.js.map +1 -1
package/package.json
CHANGED
package/src/lib/attr-changed.ts
CHANGED
|
@@ -4,7 +4,7 @@ export function attrChanged(name: string) {
|
|
|
4
4
|
return function attrChangedDecorator<This extends HTMLElement>(
|
|
5
5
|
cb: Function,
|
|
6
6
|
ctx: ClassMethodDecoratorContext<This>
|
|
7
|
-
) {
|
|
7
|
+
): void {
|
|
8
8
|
const meta = metadataStore.read(ctx.metadata);
|
|
9
9
|
const val = meta.attrChanges.get(name) ?? new Set();
|
|
10
10
|
|
package/src/lib/element.ts
CHANGED
|
@@ -12,7 +12,7 @@ interface ElementConstructor {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
export function element<T extends ElementConstructor>(opts?: ElementOpts) {
|
|
15
|
-
return function elementDecorator(Base: T, ctx: ClassDecoratorContext<T>) {
|
|
15
|
+
return function elementDecorator(Base: T, ctx: ClassDecoratorContext<T>): T {
|
|
16
16
|
const meta = metadataStore.read(ctx.metadata);
|
|
17
17
|
|
|
18
18
|
ctx.addInitializer(function () {
|
|
@@ -27,6 +27,8 @@ export function element<T extends ElementConstructor>(opts?: ElementOpts) {
|
|
|
27
27
|
[Base.name]: class extends Base {
|
|
28
28
|
static observedAttributes: string[] = Array.from(meta.attrs.keys());
|
|
29
29
|
|
|
30
|
+
#removeListeners: Set<Function> = new Set();
|
|
31
|
+
|
|
30
32
|
constructor(...args: any[]) {
|
|
31
33
|
super(...args);
|
|
32
34
|
|
|
@@ -40,31 +42,11 @@ export function element<T extends ElementConstructor>(opts?: ElementOpts) {
|
|
|
40
42
|
}
|
|
41
43
|
}
|
|
42
44
|
|
|
43
|
-
for (let { event, cb, selector } of meta.listeners) {
|
|
44
|
-
const root = selector(this);
|
|
45
|
-
|
|
46
|
-
if (root) {
|
|
47
|
-
root.addEventListener(event, cb.bind(this));
|
|
48
|
-
} else {
|
|
49
|
-
throw new Error(`could not add listener to ${root}`);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
45
|
for (let cb of meta.onReady) {
|
|
54
46
|
cb.call(this);
|
|
55
47
|
}
|
|
56
48
|
}
|
|
57
49
|
|
|
58
|
-
connectedCallback() {
|
|
59
|
-
if (this.isConnected) {
|
|
60
|
-
reflectAttributeValues(this, meta.attrs);
|
|
61
|
-
|
|
62
|
-
if (super.connectedCallback) {
|
|
63
|
-
super.connectedCallback();
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
50
|
attributeChangedCallback(name: string, oldValue: string, newValue: string) {
|
|
69
51
|
const attr = meta.attrs.get(name);
|
|
70
52
|
const cbs = meta.attrChanges.get(name);
|
|
@@ -96,6 +78,42 @@ export function element<T extends ElementConstructor>(opts?: ElementOpts) {
|
|
|
96
78
|
}
|
|
97
79
|
}
|
|
98
80
|
}
|
|
81
|
+
|
|
82
|
+
connectedCallback() {
|
|
83
|
+
if (this.isConnected) {
|
|
84
|
+
for (let { event, cb, selector } of meta.listeners) {
|
|
85
|
+
const root = selector(this);
|
|
86
|
+
|
|
87
|
+
if (root) {
|
|
88
|
+
const thisCb = cb.bind(this);
|
|
89
|
+
|
|
90
|
+
root.addEventListener(event, thisCb);
|
|
91
|
+
|
|
92
|
+
this.#removeListeners.add(() => {
|
|
93
|
+
root.removeEventListener(event, thisCb);
|
|
94
|
+
});
|
|
95
|
+
} else {
|
|
96
|
+
throw new Error(`could not add listener to ${root}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
reflectAttributeValues(this, meta.attrs);
|
|
101
|
+
|
|
102
|
+
if (super.connectedCallback) {
|
|
103
|
+
super.connectedCallback();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
disconnectedCallback(): void {
|
|
109
|
+
for (let remove of this.#removeListeners) {
|
|
110
|
+
remove();
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (super.disconnectedCallback) {
|
|
114
|
+
super.disconnectedCallback();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
99
117
|
}
|
|
100
118
|
};
|
|
101
119
|
|
package/src/lib/lifecycle.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { metadataStore } from './metadata.js';
|
|
2
2
|
|
|
3
3
|
export function ready() {
|
|
4
|
-
return function readyDecorator(val: Function, ctx: ClassMethodDecoratorContext) {
|
|
4
|
+
return function readyDecorator(val: Function, ctx: ClassMethodDecoratorContext): void {
|
|
5
5
|
const metadata = metadataStore.read(ctx.metadata);
|
|
6
6
|
|
|
7
7
|
metadata.onReady.add(val);
|
package/src/lib/listen.test.ts
CHANGED
|
@@ -19,7 +19,11 @@ describe('@listen()', () => {
|
|
|
19
19
|
|
|
20
20
|
const el = new MyElement();
|
|
21
21
|
|
|
22
|
+
document.body.append(el);
|
|
23
|
+
|
|
22
24
|
el.dispatchEvent(new Event('click'));
|
|
25
|
+
|
|
26
|
+
el.remove();
|
|
23
27
|
});
|
|
24
28
|
|
|
25
29
|
it('should add listener to the shadow root if available', (done) => {
|
|
@@ -38,7 +42,11 @@ describe('@listen()', () => {
|
|
|
38
42
|
|
|
39
43
|
const el = new MyElement();
|
|
40
44
|
|
|
45
|
+
document.body.append(el);
|
|
46
|
+
|
|
41
47
|
el.shadowRoot!.dispatchEvent(new Event('click'));
|
|
48
|
+
|
|
49
|
+
el.remove();
|
|
42
50
|
});
|
|
43
51
|
|
|
44
52
|
it('should restrict argument to an event or an event subtype', (done) => {
|
|
@@ -64,7 +72,11 @@ describe('@listen()', () => {
|
|
|
64
72
|
|
|
65
73
|
const el = new MyElement();
|
|
66
74
|
|
|
75
|
+
document.body.append(el);
|
|
76
|
+
|
|
67
77
|
el.dispatchEvent(new CustomEvent());
|
|
78
|
+
|
|
79
|
+
el.remove();
|
|
68
80
|
});
|
|
69
81
|
|
|
70
82
|
it('should respect a provided selector function', (done) => {
|
|
@@ -83,6 +95,10 @@ describe('@listen()', () => {
|
|
|
83
95
|
|
|
84
96
|
const el = new MyElement();
|
|
85
97
|
|
|
98
|
+
document.body.append(el);
|
|
99
|
+
|
|
86
100
|
el.dispatchEvent(new Event('click'));
|
|
101
|
+
|
|
102
|
+
el.remove();
|
|
87
103
|
});
|
|
88
104
|
});
|
package/src/lib/listen.ts
CHANGED
|
@@ -4,7 +4,10 @@ export function listen<This extends HTMLElement>(
|
|
|
4
4
|
event: string,
|
|
5
5
|
selector?: ListenerSelector<This> | string
|
|
6
6
|
) {
|
|
7
|
-
return function listenDecorator(
|
|
7
|
+
return function listenDecorator(
|
|
8
|
+
value: (e: any) => void,
|
|
9
|
+
ctx: ClassMethodDecoratorContext<This>
|
|
10
|
+
): void {
|
|
8
11
|
const metadata = metadataStore.read<This>(ctx.metadata);
|
|
9
12
|
|
|
10
13
|
let selectorInternal: ListenerSelector<This> = (el) => el.shadowRoot ?? el;
|
package/src/lib/metadata.ts
CHANGED
|
@@ -20,10 +20,10 @@ export class AttrMetadata extends Map<string, AttrDef> {}
|
|
|
20
20
|
export class AttrChangeMetadata extends Map<string, Set<Function>> {}
|
|
21
21
|
|
|
22
22
|
export class ElementMetadata<T> {
|
|
23
|
-
attrs = new AttrMetadata();
|
|
24
|
-
attrChanges = new AttrChangeMetadata();
|
|
23
|
+
attrs: AttrMetadata = new AttrMetadata();
|
|
24
|
+
attrChanges: AttrChangeMetadata = new AttrChangeMetadata();
|
|
25
25
|
listeners: Listener<T>[] = [];
|
|
26
|
-
onReady = new Set
|
|
26
|
+
onReady: Set<Function> = new Set();
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
export class MetadataStore extends WeakMap<object, ElementMetadata<unknown>> {
|
|
@@ -36,4 +36,4 @@ export class MetadataStore extends WeakMap<object, ElementMetadata<unknown>> {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
export const metadataStore = new MetadataStore();
|
|
39
|
+
export const metadataStore: MetadataStore = new MetadataStore();
|
package/src/lib/template.ts
CHANGED
|
@@ -15,7 +15,7 @@ export function template({ tokenPrefix = '#:', value }: TemplateOpts = {}) {
|
|
|
15
15
|
// Track all nodes that can be updated and their associated property
|
|
16
16
|
let updates: Updates | null = null;
|
|
17
17
|
|
|
18
|
-
return function render<T extends HTMLElement>(this: T, opts?: RenderOpts) {
|
|
18
|
+
return function render<T extends HTMLElement>(this: T, opts?: RenderOpts): void {
|
|
19
19
|
if (!updates || opts?.refresh) {
|
|
20
20
|
updates = findUpdates(this, {
|
|
21
21
|
tokenPrefix,
|
|
@@ -105,7 +105,7 @@ function trackElement(node: Node, updates: Updates, opts: Required<TemplateOpts>
|
|
|
105
105
|
return null;
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
export function getTemplateValue(obj: object, key: string) {
|
|
108
|
+
export function getTemplateValue(obj: object, key: string): any {
|
|
109
109
|
const parsed = key.split('.');
|
|
110
110
|
|
|
111
111
|
let pointer: any = obj;
|
package/target/lib/element.d.ts
CHANGED
|
@@ -7,346 +7,5 @@ export interface ElementOpts {
|
|
|
7
7
|
interface ElementConstructor {
|
|
8
8
|
new (...args: any[]): HTMLElement;
|
|
9
9
|
}
|
|
10
|
-
export declare function element<T extends ElementConstructor>(opts?: ElementOpts): (Base: T, ctx: ClassDecoratorContext<T>) =>
|
|
11
|
-
new (...args: any[]): {
|
|
12
|
-
connectedCallback(): void;
|
|
13
|
-
attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
|
|
14
|
-
accessKey: string;
|
|
15
|
-
readonly accessKeyLabel: string;
|
|
16
|
-
autocapitalize: string;
|
|
17
|
-
dir: string;
|
|
18
|
-
draggable: boolean;
|
|
19
|
-
hidden: boolean;
|
|
20
|
-
inert: boolean;
|
|
21
|
-
innerText: string;
|
|
22
|
-
lang: string;
|
|
23
|
-
readonly offsetHeight: number;
|
|
24
|
-
readonly offsetLeft: number;
|
|
25
|
-
readonly offsetParent: Element | null;
|
|
26
|
-
readonly offsetTop: number;
|
|
27
|
-
readonly offsetWidth: number;
|
|
28
|
-
outerText: string;
|
|
29
|
-
popover: string | null;
|
|
30
|
-
spellcheck: boolean;
|
|
31
|
-
title: string;
|
|
32
|
-
translate: boolean;
|
|
33
|
-
writingSuggestions: string;
|
|
34
|
-
attachInternals(): ElementInternals;
|
|
35
|
-
click(): void;
|
|
36
|
-
hidePopover(): void;
|
|
37
|
-
showPopover(): void;
|
|
38
|
-
togglePopover(force?: boolean): boolean;
|
|
39
|
-
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
40
|
-
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
41
|
-
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
42
|
-
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
43
|
-
disconnectedCallback?(): void;
|
|
44
|
-
readonly attributes: NamedNodeMap;
|
|
45
|
-
readonly classList: DOMTokenList;
|
|
46
|
-
className: string;
|
|
47
|
-
readonly clientHeight: number;
|
|
48
|
-
readonly clientLeft: number;
|
|
49
|
-
readonly clientTop: number;
|
|
50
|
-
readonly clientWidth: number;
|
|
51
|
-
readonly currentCSSZoom: number;
|
|
52
|
-
id: string;
|
|
53
|
-
innerHTML: string;
|
|
54
|
-
readonly localName: string;
|
|
55
|
-
readonly namespaceURI: string | null;
|
|
56
|
-
onfullscreenchange: ((this: Element, ev: Event) => any) | null;
|
|
57
|
-
onfullscreenerror: ((this: Element, ev: Event) => any) | null;
|
|
58
|
-
outerHTML: string;
|
|
59
|
-
readonly ownerDocument: Document;
|
|
60
|
-
readonly part: DOMTokenList;
|
|
61
|
-
readonly prefix: string | null;
|
|
62
|
-
readonly scrollHeight: number;
|
|
63
|
-
scrollLeft: number;
|
|
64
|
-
scrollTop: number;
|
|
65
|
-
readonly scrollWidth: number;
|
|
66
|
-
readonly shadowRoot: ShadowRoot | null;
|
|
67
|
-
slot: string;
|
|
68
|
-
readonly tagName: string;
|
|
69
|
-
attachShadow(init: ShadowRootInit): ShadowRoot;
|
|
70
|
-
checkVisibility(options?: CheckVisibilityOptions): boolean;
|
|
71
|
-
closest<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;
|
|
72
|
-
closest<K extends keyof SVGElementTagNameMap>(selector: K): SVGElementTagNameMap[K] | null;
|
|
73
|
-
closest<K extends keyof MathMLElementTagNameMap>(selector: K): MathMLElementTagNameMap[K] | null;
|
|
74
|
-
closest<E extends Element = Element>(selectors: string): E | null;
|
|
75
|
-
computedStyleMap(): StylePropertyMapReadOnly;
|
|
76
|
-
getAttribute(qualifiedName: string): string | null;
|
|
77
|
-
getAttributeNS(namespace: string | null, localName: string): string | null;
|
|
78
|
-
getAttributeNames(): string[];
|
|
79
|
-
getAttributeNode(qualifiedName: string): Attr | null;
|
|
80
|
-
getAttributeNodeNS(namespace: string | null, localName: string): Attr | null;
|
|
81
|
-
getBoundingClientRect(): DOMRect;
|
|
82
|
-
getClientRects(): DOMRectList;
|
|
83
|
-
getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
|
|
84
|
-
getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
|
|
85
|
-
getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
|
|
86
|
-
getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;
|
|
87
|
-
getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;
|
|
88
|
-
getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
|
|
89
|
-
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
|
|
90
|
-
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
|
|
91
|
-
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>;
|
|
92
|
-
getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>;
|
|
93
|
-
getHTML(options?: GetHTMLOptions): string;
|
|
94
|
-
hasAttribute(qualifiedName: string): boolean;
|
|
95
|
-
hasAttributeNS(namespace: string | null, localName: string): boolean;
|
|
96
|
-
hasAttributes(): boolean;
|
|
97
|
-
hasPointerCapture(pointerId: number): boolean;
|
|
98
|
-
insertAdjacentElement(where: InsertPosition, element: Element): Element | null;
|
|
99
|
-
insertAdjacentHTML(position: InsertPosition, string: string): void;
|
|
100
|
-
insertAdjacentText(where: InsertPosition, data: string): void;
|
|
101
|
-
matches(selectors: string): boolean;
|
|
102
|
-
releasePointerCapture(pointerId: number): void;
|
|
103
|
-
removeAttribute(qualifiedName: string): void;
|
|
104
|
-
removeAttributeNS(namespace: string | null, localName: string): void;
|
|
105
|
-
removeAttributeNode(attr: Attr): Attr;
|
|
106
|
-
requestFullscreen(options?: FullscreenOptions): Promise<void>;
|
|
107
|
-
requestPointerLock(options?: PointerLockOptions): Promise<void>;
|
|
108
|
-
scroll(options?: ScrollToOptions): void;
|
|
109
|
-
scroll(x: number, y: number): void;
|
|
110
|
-
scrollBy(options?: ScrollToOptions): void;
|
|
111
|
-
scrollBy(x: number, y: number): void;
|
|
112
|
-
scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;
|
|
113
|
-
scrollTo(options?: ScrollToOptions): void;
|
|
114
|
-
scrollTo(x: number, y: number): void;
|
|
115
|
-
setAttribute(qualifiedName: string, value: string): void;
|
|
116
|
-
setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;
|
|
117
|
-
setAttributeNode(attr: Attr): Attr | null;
|
|
118
|
-
setAttributeNodeNS(attr: Attr): Attr | null;
|
|
119
|
-
setHTMLUnsafe(html: string): void;
|
|
120
|
-
setPointerCapture(pointerId: number): void;
|
|
121
|
-
toggleAttribute(qualifiedName: string, force?: boolean): boolean;
|
|
122
|
-
webkitMatchesSelector(selectors: string): boolean;
|
|
123
|
-
readonly baseURI: string;
|
|
124
|
-
readonly childNodes: NodeListOf<ChildNode>;
|
|
125
|
-
readonly firstChild: ChildNode | null;
|
|
126
|
-
readonly isConnected: boolean;
|
|
127
|
-
readonly lastChild: ChildNode | null;
|
|
128
|
-
readonly nextSibling: ChildNode | null;
|
|
129
|
-
readonly nodeName: string;
|
|
130
|
-
readonly nodeType: number;
|
|
131
|
-
nodeValue: string | null;
|
|
132
|
-
readonly parentElement: HTMLElement | null;
|
|
133
|
-
readonly parentNode: ParentNode | null;
|
|
134
|
-
readonly previousSibling: ChildNode | null;
|
|
135
|
-
textContent: string | null;
|
|
136
|
-
appendChild<T_1 extends Node>(node: T_1): T_1;
|
|
137
|
-
cloneNode(deep?: boolean): Node;
|
|
138
|
-
compareDocumentPosition(other: Node): number;
|
|
139
|
-
contains(other: Node | null): boolean;
|
|
140
|
-
getRootNode(options?: GetRootNodeOptions): Node;
|
|
141
|
-
hasChildNodes(): boolean;
|
|
142
|
-
insertBefore<T_1 extends Node>(node: T_1, child: Node | null): T_1;
|
|
143
|
-
isDefaultNamespace(namespace: string | null): boolean;
|
|
144
|
-
isEqualNode(otherNode: Node | null): boolean;
|
|
145
|
-
isSameNode(otherNode: Node | null): boolean;
|
|
146
|
-
lookupNamespaceURI(prefix: string | null): string | null;
|
|
147
|
-
lookupPrefix(namespace: string | null): string | null;
|
|
148
|
-
normalize(): void;
|
|
149
|
-
removeChild<T_1 extends Node>(child: T_1): T_1;
|
|
150
|
-
replaceChild<T_1 extends Node>(node: Node, child: T_1): T_1;
|
|
151
|
-
readonly ELEMENT_NODE: 1;
|
|
152
|
-
readonly ATTRIBUTE_NODE: 2;
|
|
153
|
-
readonly TEXT_NODE: 3;
|
|
154
|
-
readonly CDATA_SECTION_NODE: 4;
|
|
155
|
-
readonly ENTITY_REFERENCE_NODE: 5;
|
|
156
|
-
readonly ENTITY_NODE: 6;
|
|
157
|
-
readonly PROCESSING_INSTRUCTION_NODE: 7;
|
|
158
|
-
readonly COMMENT_NODE: 8;
|
|
159
|
-
readonly DOCUMENT_NODE: 9;
|
|
160
|
-
readonly DOCUMENT_TYPE_NODE: 10;
|
|
161
|
-
readonly DOCUMENT_FRAGMENT_NODE: 11;
|
|
162
|
-
readonly NOTATION_NODE: 12;
|
|
163
|
-
readonly DOCUMENT_POSITION_DISCONNECTED: 1;
|
|
164
|
-
readonly DOCUMENT_POSITION_PRECEDING: 2;
|
|
165
|
-
readonly DOCUMENT_POSITION_FOLLOWING: 4;
|
|
166
|
-
readonly DOCUMENT_POSITION_CONTAINS: 8;
|
|
167
|
-
readonly DOCUMENT_POSITION_CONTAINED_BY: 16;
|
|
168
|
-
readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32;
|
|
169
|
-
dispatchEvent(event: Event): boolean;
|
|
170
|
-
ariaAtomic: string | null;
|
|
171
|
-
ariaAutoComplete: string | null;
|
|
172
|
-
ariaBrailleLabel: string | null;
|
|
173
|
-
ariaBrailleRoleDescription: string | null;
|
|
174
|
-
ariaBusy: string | null;
|
|
175
|
-
ariaChecked: string | null;
|
|
176
|
-
ariaColCount: string | null;
|
|
177
|
-
ariaColIndex: string | null;
|
|
178
|
-
ariaColIndexText: string | null;
|
|
179
|
-
ariaColSpan: string | null;
|
|
180
|
-
ariaCurrent: string | null;
|
|
181
|
-
ariaDescription: string | null;
|
|
182
|
-
ariaDisabled: string | null;
|
|
183
|
-
ariaExpanded: string | null;
|
|
184
|
-
ariaHasPopup: string | null;
|
|
185
|
-
ariaHidden: string | null;
|
|
186
|
-
ariaInvalid: string | null;
|
|
187
|
-
ariaKeyShortcuts: string | null;
|
|
188
|
-
ariaLabel: string | null;
|
|
189
|
-
ariaLevel: string | null;
|
|
190
|
-
ariaLive: string | null;
|
|
191
|
-
ariaModal: string | null;
|
|
192
|
-
ariaMultiLine: string | null;
|
|
193
|
-
ariaMultiSelectable: string | null;
|
|
194
|
-
ariaOrientation: string | null;
|
|
195
|
-
ariaPlaceholder: string | null;
|
|
196
|
-
ariaPosInSet: string | null;
|
|
197
|
-
ariaPressed: string | null;
|
|
198
|
-
ariaReadOnly: string | null;
|
|
199
|
-
ariaRequired: string | null;
|
|
200
|
-
ariaRoleDescription: string | null;
|
|
201
|
-
ariaRowCount: string | null;
|
|
202
|
-
ariaRowIndex: string | null;
|
|
203
|
-
ariaRowIndexText: string | null;
|
|
204
|
-
ariaRowSpan: string | null;
|
|
205
|
-
ariaSelected: string | null;
|
|
206
|
-
ariaSetSize: string | null;
|
|
207
|
-
ariaSort: string | null;
|
|
208
|
-
ariaValueMax: string | null;
|
|
209
|
-
ariaValueMin: string | null;
|
|
210
|
-
ariaValueNow: string | null;
|
|
211
|
-
ariaValueText: string | null;
|
|
212
|
-
role: string | null;
|
|
213
|
-
animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation;
|
|
214
|
-
getAnimations(options?: GetAnimationsOptions): Animation[];
|
|
215
|
-
after(...nodes: (Node | string)[]): void;
|
|
216
|
-
before(...nodes: (Node | string)[]): void;
|
|
217
|
-
remove(): void;
|
|
218
|
-
replaceWith(...nodes: (Node | string)[]): void;
|
|
219
|
-
readonly nextElementSibling: Element | null;
|
|
220
|
-
readonly previousElementSibling: Element | null;
|
|
221
|
-
readonly childElementCount: number;
|
|
222
|
-
readonly children: HTMLCollection;
|
|
223
|
-
readonly firstElementChild: Element | null;
|
|
224
|
-
readonly lastElementChild: Element | null;
|
|
225
|
-
append(...nodes: (Node | string)[]): void;
|
|
226
|
-
prepend(...nodes: (Node | string)[]): void;
|
|
227
|
-
querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;
|
|
228
|
-
querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;
|
|
229
|
-
querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;
|
|
230
|
-
querySelector<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): HTMLElementDeprecatedTagNameMap[K] | null;
|
|
231
|
-
querySelector<E extends Element = Element>(selectors: string): E | null;
|
|
232
|
-
querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;
|
|
233
|
-
querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;
|
|
234
|
-
querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;
|
|
235
|
-
querySelectorAll<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): NodeListOf<HTMLElementDeprecatedTagNameMap[K]>;
|
|
236
|
-
querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;
|
|
237
|
-
replaceChildren(...nodes: (Node | string)[]): void;
|
|
238
|
-
readonly assignedSlot: HTMLSlotElement | null;
|
|
239
|
-
readonly attributeStyleMap: StylePropertyMap;
|
|
240
|
-
readonly style: CSSStyleDeclaration;
|
|
241
|
-
contentEditable: string;
|
|
242
|
-
enterKeyHint: string;
|
|
243
|
-
inputMode: string;
|
|
244
|
-
readonly isContentEditable: boolean;
|
|
245
|
-
onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
|
|
246
|
-
onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
|
|
247
|
-
onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
|
|
248
|
-
onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
|
|
249
|
-
onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
|
|
250
|
-
onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
251
|
-
onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null;
|
|
252
|
-
onbeforetoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
253
|
-
onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
|
|
254
|
-
oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
255
|
-
oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
256
|
-
oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
257
|
-
onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
258
|
-
onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
259
|
-
onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
260
|
-
oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
261
|
-
oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
262
|
-
oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
263
|
-
oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
|
|
264
|
-
oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
265
|
-
oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
|
|
266
|
-
ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
267
|
-
ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
|
|
268
|
-
ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
|
|
269
|
-
ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
|
|
270
|
-
ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
|
|
271
|
-
ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
|
|
272
|
-
ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
|
|
273
|
-
ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
|
|
274
|
-
ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
275
|
-
onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
276
|
-
onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
277
|
-
onerror: OnErrorEventHandler;
|
|
278
|
-
onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
|
|
279
|
-
onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null;
|
|
280
|
-
ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
281
|
-
oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
282
|
-
oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
283
|
-
onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
|
|
284
|
-
onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
|
|
285
|
-
onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
|
|
286
|
-
onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
287
|
-
onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
288
|
-
onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
289
|
-
onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
290
|
-
onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
291
|
-
onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
292
|
-
onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
293
|
-
onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
294
|
-
onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
295
|
-
onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
296
|
-
onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
297
|
-
onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
298
|
-
onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
|
|
299
|
-
onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
300
|
-
onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
301
|
-
onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
302
|
-
onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
303
|
-
onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
304
|
-
onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
305
|
-
onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
306
|
-
onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
307
|
-
onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
308
|
-
onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
309
|
-
onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
310
|
-
onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;
|
|
311
|
-
onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
312
|
-
onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
313
|
-
onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
|
|
314
|
-
onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
315
|
-
onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
316
|
-
onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null;
|
|
317
|
-
onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
318
|
-
onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
319
|
-
onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
320
|
-
onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
321
|
-
onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
322
|
-
onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
323
|
-
onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
324
|
-
onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null;
|
|
325
|
-
onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
326
|
-
ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
327
|
-
ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
328
|
-
ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
|
|
329
|
-
ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
|
|
330
|
-
ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
|
|
331
|
-
ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
|
|
332
|
-
ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
|
|
333
|
-
ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
|
|
334
|
-
ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
|
|
335
|
-
ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
|
|
336
|
-
onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
337
|
-
onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
338
|
-
onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
339
|
-
onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
340
|
-
onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
341
|
-
onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
342
|
-
onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;
|
|
343
|
-
autofocus: boolean;
|
|
344
|
-
readonly dataset: DOMStringMap;
|
|
345
|
-
nonce?: string;
|
|
346
|
-
tabIndex: number;
|
|
347
|
-
blur(): void;
|
|
348
|
-
focus(options?: FocusOptions): void;
|
|
349
|
-
};
|
|
350
|
-
observedAttributes: string[];
|
|
351
|
-
} & T;
|
|
10
|
+
export declare function element<T extends ElementConstructor>(opts?: ElementOpts): (Base: T, ctx: ClassDecoratorContext<T>) => T;
|
|
352
11
|
export {};
|
package/target/lib/element.js
CHANGED
|
@@ -12,6 +12,7 @@ export function element(opts) {
|
|
|
12
12
|
const def = {
|
|
13
13
|
[Base.name]: class extends Base {
|
|
14
14
|
static observedAttributes = Array.from(meta.attrs.keys());
|
|
15
|
+
#removeListeners = new Set();
|
|
15
16
|
constructor(...args) {
|
|
16
17
|
super(...args);
|
|
17
18
|
if (opts?.shadowDom) {
|
|
@@ -22,27 +23,10 @@ export function element(opts) {
|
|
|
22
23
|
res.apply(this);
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
|
-
for (let { event, cb, selector } of meta.listeners) {
|
|
26
|
-
const root = selector(this);
|
|
27
|
-
if (root) {
|
|
28
|
-
root.addEventListener(event, cb.bind(this));
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
throw new Error(`could not add listener to ${root}`);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
26
|
for (let cb of meta.onReady) {
|
|
35
27
|
cb.call(this);
|
|
36
28
|
}
|
|
37
29
|
}
|
|
38
|
-
connectedCallback() {
|
|
39
|
-
if (this.isConnected) {
|
|
40
|
-
reflectAttributeValues(this, meta.attrs);
|
|
41
|
-
if (super.connectedCallback) {
|
|
42
|
-
super.connectedCallback();
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
30
|
attributeChangedCallback(name, oldValue, newValue) {
|
|
47
31
|
const attr = meta.attrs.get(name);
|
|
48
32
|
const cbs = meta.attrChanges.get(name);
|
|
@@ -69,6 +53,35 @@ export function element(opts) {
|
|
|
69
53
|
}
|
|
70
54
|
}
|
|
71
55
|
}
|
|
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
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
disconnectedCallback() {
|
|
78
|
+
for (let remove of this.#removeListeners) {
|
|
79
|
+
remove();
|
|
80
|
+
}
|
|
81
|
+
if (super.disconnectedCallback) {
|
|
82
|
+
super.disconnectedCallback();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
72
85
|
}
|
|
73
86
|
};
|
|
74
87
|
return def[Base.name];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/lib/element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,aAAa,EAAE,MAAM,eAAe,CAAC;AAa5D,MAAM,UAAU,OAAO,CAA+B,IAAkB;IACtE,OAAO,SAAS,gBAAgB,CAAC,IAAO,EAAE,GAA6B;QACrE,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE9C,GAAG,CAAC,cAAc,CAAC;YACjB,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBACtC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG;YACV,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAM,SAAQ,IAAI;gBAC7B,MAAM,CAAC,kBAAkB,GAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAEpE,YAAY,GAAG,IAAW;oBACxB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;oBAEf,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC;wBACpB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;4BACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;wBAC5D,CAAC;wBAED,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;4BAC/B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAClB,CAAC;oBACH,CAAC;oBAED,KAAK,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/lib/element.ts"],"names":[],"mappings":"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"}
|
package/target/lib/listen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listen.js","sourceRoot":"","sources":["../../src/lib/listen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,aAAa,EAAE,MAAM,eAAe,CAAC;AAEhE,MAAM,UAAU,MAAM,CACpB,KAAa,EACb,QAA0C;IAE1C,OAAO,SAAS,eAAe,
|
|
1
|
+
{"version":3,"file":"listen.js","sourceRoot":"","sources":["../../src/lib/listen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,aAAa,EAAE,MAAM,eAAe,CAAC;AAEhE,MAAM,UAAU,MAAM,CACpB,KAAa,EACb,QAA0C;IAE1C,OAAO,SAAS,eAAe,CAC7B,KAAuB,EACvB,GAAsC;QAEtC,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExD,IAAI,gBAAgB,GAA2B,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC;QAE3E,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,gBAAgB,GAAG,CAAC,EAAQ,EAAE,EAAE;oBAC9B,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;wBAClB,OAAO,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAC/C,CAAC;oBAED,OAAO,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACpC,CAAC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,gBAAgB,GAAG,QAAQ,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;YACtB,KAAK;YACL,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,gBAAgB;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -37,7 +37,9 @@ describe('@listen()', () => {
|
|
|
37
37
|
return MyElement = _classThis;
|
|
38
38
|
})();
|
|
39
39
|
const el = new MyElement();
|
|
40
|
+
document.body.append(el);
|
|
40
41
|
el.dispatchEvent(new Event('click'));
|
|
42
|
+
el.remove();
|
|
41
43
|
});
|
|
42
44
|
it('should add listener to the shadow root if available', (done) => {
|
|
43
45
|
let MyElement = (() => {
|
|
@@ -74,7 +76,9 @@ describe('@listen()', () => {
|
|
|
74
76
|
return MyElement = _classThis;
|
|
75
77
|
})();
|
|
76
78
|
const el = new MyElement();
|
|
79
|
+
document.body.append(el);
|
|
77
80
|
el.shadowRoot.dispatchEvent(new Event('click'));
|
|
81
|
+
el.remove();
|
|
78
82
|
});
|
|
79
83
|
it('should restrict argument to an event or an event subtype', (done) => {
|
|
80
84
|
class CustomEvent extends Event {
|
|
@@ -116,7 +120,9 @@ describe('@listen()', () => {
|
|
|
116
120
|
return MyElement = _classThis;
|
|
117
121
|
})();
|
|
118
122
|
const el = new MyElement();
|
|
123
|
+
document.body.append(el);
|
|
119
124
|
el.dispatchEvent(new CustomEvent());
|
|
125
|
+
el.remove();
|
|
120
126
|
});
|
|
121
127
|
it('should respect a provided selector function', (done) => {
|
|
122
128
|
let MyElement = (() => {
|
|
@@ -153,7 +159,9 @@ describe('@listen()', () => {
|
|
|
153
159
|
return MyElement = _classThis;
|
|
154
160
|
})();
|
|
155
161
|
const el = new MyElement();
|
|
162
|
+
document.body.append(el);
|
|
156
163
|
el.dispatchEvent(new Event('click'));
|
|
164
|
+
el.remove();
|
|
157
165
|
});
|
|
158
166
|
});
|
|
159
167
|
//# sourceMappingURL=listen.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listen.test.js","sourceRoot":"","sources":["../../src/lib/listen.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,6CAA6C,EAAE,CAAC,IAAI,EAAE,EAAE;YAInD,SAAS;oCAHd,OAAO,CAAC;oBACP,OAAO,EAAE,YAAY;iBACtB,CAAC;;;;8BACsB,WAAW;;;iCAAnB,SAAQ,WAAW;;;;2CAChC,MAAM,CAAC,OAAO,CAAC;oBAChB,wKAAA,OAAO,6DAIN;oBANH,6KAOC;;;oBAPK,uDAAS;;gBAEb,OAAO,CAAC,CAAQ;oBACd,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAE9B,IAAI,EAAE,CAAC;gBACT,CAAC;;;oBANG,mDAAS;;;;;QASf,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;QAE3B,EAAE,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"listen.test.js","sourceRoot":"","sources":["../../src/lib/listen.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;AAkBvD,MAAM,OAAO,YAAa,SAAQ,GAAoB;CAAG;AACzD,MAAM,OAAO,kBAAmB,SAAQ,GAA0B;CAAG;AAErE,MAAM,OAAO,eAAe;IAC1B,KAAK,
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/lib/metadata.ts"],"names":[],"mappings":"AAAC,MAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAkBvD,MAAM,OAAO,YAAa,SAAQ,GAAoB;CAAG;AACzD,MAAM,OAAO,kBAAmB,SAAQ,GAA0B;CAAG;AAErE,MAAM,OAAO,eAAe;IAC1B,KAAK,GAAiB,IAAI,YAAY,EAAE,CAAC;IACzC,WAAW,GAAuB,IAAI,kBAAkB,EAAE,CAAC;IAC3D,SAAS,GAAkB,EAAE,CAAC;IAC9B,OAAO,GAAkB,IAAI,GAAG,EAAE,CAAC;CACpC;AAED,MAAM,OAAO,aAAc,SAAQ,OAAyC;IAC1E,IAAI,CAAI,KAAa;QACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,eAAe,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAkB,IAAI,aAAa,EAAE,CAAC"}
|