@bodil/dom 0.1.10 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/component.d.ts +23 -17
- package/dist/component.js +45 -39
- package/dist/component.js.map +1 -1
- package/dist/decorators/attribute.d.ts +15 -15
- package/dist/decorators/attribute.js +27 -8
- package/dist/decorators/attribute.js.map +1 -1
- package/dist/decorators/attribute.test.js +58 -6
- package/dist/decorators/attribute.test.js.map +1 -1
- package/dist/decorators/connect.d.ts +2 -0
- package/dist/decorators/connect.js.map +1 -1
- package/dist/decorators/require.test.js +1 -1
- package/dist/decorators/require.test.js.map +1 -1
- package/dist/dom.d.ts +12 -2
- package/dist/dom.js +34 -18
- package/dist/dom.js.map +1 -1
- package/dist/dom.test.d.ts +1 -0
- package/dist/dom.test.js +20 -0
- package/dist/dom.test.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/test.d.ts +17 -0
- package/dist/test.js +34 -0
- package/dist/test.js.map +1 -0
- package/package.json +25 -19
- package/src/component.ts +66 -47
- package/src/decorators/attribute.test.ts +41 -14
- package/src/decorators/attribute.ts +56 -28
- package/src/decorators/require.test.ts +1 -1
- package/src/dom.test.ts +23 -0
- package/src/dom.ts +55 -16
- package/src/index.ts +2 -1
- package/src/test.ts +38 -0
- package/src/decorators/connect.test.ts +0 -119
- package/src/decorators/connect.ts +0 -85
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/decorators/connect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAYvC,MAAM,cAAc,GAAG,IAAI,OAAO,EAAmC,CAAC;AAEtE,SAAS,eAAe,CAAC,GAAc,EAAE,GAAoB;IACzD,IAAI,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACrB,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACjB,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAc;IACxC,OAAO,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACzC,CAAC;
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/decorators/connect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAYvC,MAAM,cAAc,GAAG,IAAI,OAAO,EAAmC,CAAC;AAEtE,SAAS,eAAe,CAAC,GAAc,EAAE,GAAoB;IACzD,IAAI,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACrB,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACjB,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAc;IACxC,OAAO,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACzC,CAAC;AAWD,MAAM,UAAU,OAAO,CACnB,KAAkC,EAClC,OAEoD;IAEpD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,QAAQ;YACT,OAAO,CAAC,cAAc,CAAC;gBACnB,eAAe,CAAC,IAAI,EAAE,KAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YACH,OAAO;QACX,KAAK,OAAO;YACR,OAAO,UAAmB,KAAsB;gBAC5C,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5C,CAAC,CAAC;IACV,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,aAAa,CACzB,KAAkC,EAClC,OAEoD;IAEpD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,QAAQ;YACT,OAAO,CAAC,cAAc,CAAC;gBACnB,eAAe,CAAC,IAAI,EAAE;oBAClB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAM,CAAC,IAAI,CAAC,IAAI,CAAQ,CAAC,CAAC;gBACnD,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,OAAO;QACX,KAAK,OAAO;YACR,OAAO,UAAmB,KAAsB;gBAC5C,eAAe,CAAC,IAAI,EAAE;oBAClB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAQ,CAAC,CAAC;gBAClD,CAAC,CAAC,CAAC;YACP,CAAC,CAAC;IACV,CAAC;AACL,CAAC"}
|
|
@@ -75,7 +75,7 @@ test("@require", async () => {
|
|
|
75
75
|
constructor() {
|
|
76
76
|
super(...arguments);
|
|
77
77
|
this.foo = __runInitializers(this, _foo_initializers, void 0);
|
|
78
|
-
this.#bar_accessor_storage = (__runInitializers(this, _foo_extraInitializers), __runInitializers(this, _bar_initializers,
|
|
78
|
+
this.#bar_accessor_storage = (__runInitializers(this, _foo_extraInitializers), __runInitializers(this, _bar_initializers, null));
|
|
79
79
|
__runInitializers(this, _bar_extraInitializers);
|
|
80
80
|
}
|
|
81
81
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"require.test.js","sourceRoot":"","sources":["../../src/decorators/require.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvE,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;IACxB,IAAI,KAAK,GAAG,CAAC,EACT,OAAO,GAAG,CAAC,CAAC;QAGV,gBAAgB;gCADrB,aAAa,CAAC,oBAAoB,CAAC;;;;0BACL,SAAS;;;;;;;oCAAjB,SAAQ,WAAS;;;;mCACnC,OAAO,EAAE,QAAQ;mCACjB,OAAO,EAAE,SAAS;gBAAC,8JAAS,GAAG,6BAAH,GAAG,
|
|
1
|
+
{"version":3,"file":"require.test.js","sourceRoot":"","sources":["../../src/decorators/require.test.ts"],"names":[],"mappings":"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"}
|
package/dist/dom.d.ts
CHANGED
|
@@ -37,9 +37,10 @@ export declare class DOMIterator extends Iterator<Node> {
|
|
|
37
37
|
next(): IteratorResult<Node>;
|
|
38
38
|
}
|
|
39
39
|
/**
|
|
40
|
-
*
|
|
40
|
+
* Return all descendants of `root` which match the `predicate` function.
|
|
41
41
|
*/
|
|
42
|
-
export declare function
|
|
42
|
+
export declare function findDescendants<T extends Element>(root: Element | DocumentFragment | null, predicate: (child: Element) => child is T): IteratorObject<T>;
|
|
43
|
+
export declare function findDescendants(root: Element | DocumentFragment | null, predicate: (child: Element) => boolean): IteratorObject<Element>;
|
|
43
44
|
/** Test whether the user has asked for reduced motion. */
|
|
44
45
|
export declare function prefersReducedMotion(): boolean;
|
|
45
46
|
/**
|
|
@@ -108,6 +109,15 @@ export type ScrollToItemOptions = {
|
|
|
108
109
|
* This is {@link Element.scrollIntoView} for advanced users.
|
|
109
110
|
*/
|
|
110
111
|
export declare function scrollToItem(el: HTMLElement, scrollToItemOptions: ScrollToItemOptions): void;
|
|
112
|
+
/**
|
|
113
|
+
* Assign a unique ID to the target element.
|
|
114
|
+
*
|
|
115
|
+
* Returns the ID that was assigned.
|
|
116
|
+
*
|
|
117
|
+
* If the target element already has an `id` attribute, this will not be
|
|
118
|
+
* overwritten.
|
|
119
|
+
*/
|
|
120
|
+
export declare function applyUniqueID(target: HTMLElement): string;
|
|
111
121
|
/**
|
|
112
122
|
* A {@link ReactiveController} which tracks whether a slot is populated.
|
|
113
123
|
*/
|
package/dist/dom.js
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* DOM manipulation tools.
|
|
3
3
|
* @module
|
|
4
4
|
*/
|
|
5
|
-
import { assertNever, isNullish, unreachable } from "@bodil/core/assert";
|
|
6
|
-
import { toDisposable } from "@bodil/core/disposable";
|
|
5
|
+
import { assertNever, isEmpty, isNullish, unreachable } from "@bodil/core/assert";
|
|
6
|
+
import { DisposableContext, toDisposable } from "@bodil/core/disposable";
|
|
7
|
+
import { eventListener } from "./event";
|
|
7
8
|
import { contains } from "./geometry";
|
|
8
9
|
/**
|
|
9
10
|
* Given the name of a custom DOM element registered in
|
|
@@ -96,21 +97,11 @@ export class DOMIterator extends Iterator {
|
|
|
96
97
|
return { done: false, value: resultNode };
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
*/
|
|
102
|
-
export function childElements(parent) {
|
|
103
|
-
if (parent === null) {
|
|
100
|
+
export function findDescendants(root, predicate) {
|
|
101
|
+
if (root === null) {
|
|
104
102
|
return Iterator.from([]);
|
|
105
103
|
}
|
|
106
|
-
|
|
107
|
-
let el = parent.firstElementChild;
|
|
108
|
-
while (el !== null) {
|
|
109
|
-
yield el;
|
|
110
|
-
el = el.nextElementSibling;
|
|
111
|
-
}
|
|
112
|
-
};
|
|
113
|
-
return Iterator.from(iter());
|
|
104
|
+
return Iterator.from(root.children).flatMap((el) => predicate(el) ? [el, ...findDescendants(el, predicate)] : findDescendants(el, predicate));
|
|
114
105
|
}
|
|
115
106
|
/** Test whether the user has asked for reduced motion. */
|
|
116
107
|
export function prefersReducedMotion() {
|
|
@@ -153,9 +144,13 @@ export async function stopAnimations(el) {
|
|
|
153
144
|
export async function animationEnd(el) {
|
|
154
145
|
await Promise.all(el.getAnimations().map((animation) => {
|
|
155
146
|
return new Promise((resolve) => {
|
|
156
|
-
const
|
|
157
|
-
|
|
158
|
-
|
|
147
|
+
const context = new DisposableContext();
|
|
148
|
+
const handleAnimationEvent = () => {
|
|
149
|
+
context.dispose();
|
|
150
|
+
requestAnimationFrame(resolve);
|
|
151
|
+
};
|
|
152
|
+
context.use(eventListener(animation, "cancel", handleAnimationEvent, { once: true }));
|
|
153
|
+
context.use(eventListener(animation, "finish", handleAnimationEvent, { once: true }));
|
|
159
154
|
});
|
|
160
155
|
}));
|
|
161
156
|
}
|
|
@@ -332,6 +327,27 @@ export function scrollToItem(el, scrollToItemOptions) {
|
|
|
332
327
|
});
|
|
333
328
|
}
|
|
334
329
|
}
|
|
330
|
+
const ids = {};
|
|
331
|
+
function freshID(tagName) {
|
|
332
|
+
const next = ids[tagName] ?? 1;
|
|
333
|
+
ids[tagName] = next + 1;
|
|
334
|
+
return next;
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Assign a unique ID to the target element.
|
|
338
|
+
*
|
|
339
|
+
* Returns the ID that was assigned.
|
|
340
|
+
*
|
|
341
|
+
* If the target element already has an `id` attribute, this will not be
|
|
342
|
+
* overwritten.
|
|
343
|
+
*/
|
|
344
|
+
export function applyUniqueID(target) {
|
|
345
|
+
if (isEmpty(target.id)) {
|
|
346
|
+
const name = target.tagName.toLowerCase();
|
|
347
|
+
target.id = `${name}-${freshID(name)}`;
|
|
348
|
+
}
|
|
349
|
+
return target.id;
|
|
350
|
+
}
|
|
335
351
|
// HasSlotController nicked largely verbatim from Shoelace
|
|
336
352
|
// https://github.com/shoelace-style/shoelace/blob/next/src/internal/slot.ts
|
|
337
353
|
/**
|
package/dist/dom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/dom.test.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { html } from "lit";
|
|
2
|
+
import { expect, test } from "vitest";
|
|
3
|
+
import { findDescendants } from "./dom";
|
|
4
|
+
import { testHTML } from "./test";
|
|
5
|
+
test("findDescendants", async () => {
|
|
6
|
+
const root = await testHTML(html `
|
|
7
|
+
<p>foo</p>
|
|
8
|
+
<div><p>bar</p></div>
|
|
9
|
+
<article>
|
|
10
|
+
<div>
|
|
11
|
+
<p>baz</p>
|
|
12
|
+
<p>gazonk</p>
|
|
13
|
+
</div>
|
|
14
|
+
</article>
|
|
15
|
+
`);
|
|
16
|
+
expect(findDescendants(root, (el) => el instanceof HTMLParagraphElement)
|
|
17
|
+
.map((el) => el.innerText)
|
|
18
|
+
.toArray()).toEqual(["foo", "bar", "baz", "gazonk"]);
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=dom.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom.test.js","sourceRoot":"","sources":["../src/dom.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;IAC/B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAA;;;;;;;;;KAS/B,CAAC,CAAC;IACH,MAAM,CACF,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,YAAY,oBAAoB,CAAC;SAC5D,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;SACzB,OAAO,EAAE,CACjB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,4 +8,5 @@ import * as dom from "./dom";
|
|
|
8
8
|
import * as event from "./event";
|
|
9
9
|
import * as geometry from "./geometry";
|
|
10
10
|
import * as signal from "./signal";
|
|
11
|
-
|
|
11
|
+
import * as test from "./test";
|
|
12
|
+
export { component, css, dom, event, geometry, signal, test };
|
package/dist/index.js
CHANGED
|
@@ -8,5 +8,6 @@ import * as dom from "./dom";
|
|
|
8
8
|
import * as event from "./event";
|
|
9
9
|
import * as geometry from "./geometry";
|
|
10
10
|
import * as signal from "./signal";
|
|
11
|
-
|
|
11
|
+
import * as test from "./test";
|
|
12
|
+
export { component, css, dom, event, geometry, signal, test };
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC"}
|
package/dist/test.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools for testing web components.
|
|
3
|
+
* @module
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Render a Lit template and wait for any {@link Component}s inside it to
|
|
7
|
+
* stabilise before returning the {@link HTMLElement} containing the rendered
|
|
8
|
+
* template.
|
|
9
|
+
*
|
|
10
|
+
* The root element is also a {@link Disposable} which will remove itself from
|
|
11
|
+
* the DOM and dispose its {@link Component}s when disposed.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* using root = await testHTML(html`<my-component></my-component>`);
|
|
15
|
+
* expect(root.querySelector("my-component")).toBeInstanceOf(MyComponent);
|
|
16
|
+
*/
|
|
17
|
+
export declare function testHTML(template: unknown): Promise<HTMLElement & Disposable>;
|
package/dist/test.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools for testing web components.
|
|
3
|
+
* @module
|
|
4
|
+
*/
|
|
5
|
+
import { render } from "lit";
|
|
6
|
+
import { Component } from "./component";
|
|
7
|
+
/**
|
|
8
|
+
* Render a Lit template and wait for any {@link Component}s inside it to
|
|
9
|
+
* stabilise before returning the {@link HTMLElement} containing the rendered
|
|
10
|
+
* template.
|
|
11
|
+
*
|
|
12
|
+
* The root element is also a {@link Disposable} which will remove itself from
|
|
13
|
+
* the DOM and dispose its {@link Component}s when disposed.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* using root = await testHTML(html`<my-component></my-component>`);
|
|
17
|
+
* expect(root.querySelector("my-component")).toBeInstanceOf(MyComponent);
|
|
18
|
+
*/
|
|
19
|
+
export async function testHTML(template) {
|
|
20
|
+
const root = document.createElement("section");
|
|
21
|
+
document.body.append(root);
|
|
22
|
+
render(template, root, { host: root });
|
|
23
|
+
root[Symbol.dispose] = () => {
|
|
24
|
+
Iterator.from(root.children)
|
|
25
|
+
.filter((el) => el instanceof Component)
|
|
26
|
+
.forEach((comp) => comp[Symbol.dispose]());
|
|
27
|
+
root.remove();
|
|
28
|
+
};
|
|
29
|
+
await Promise.all(Iterator.from(root.children)
|
|
30
|
+
.filter((el) => el instanceof Component)
|
|
31
|
+
.map((el) => el.hasStabilised));
|
|
32
|
+
return root;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=test.js.map
|
package/dist/test.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,QAAiB;IAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,SAAS,CAA6B,CAAC;IAC3E,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE;QACxB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;aACvB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,YAAY,SAAS,CAAC;aACvC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC,CAAC;IACF,MAAM,OAAO,CAAC,GAAG,CACb,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SACvB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,YAAY,SAAS,CAAC;SACvC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CACrC,CAAC;IACF,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bodil/dom",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "DOM and web component tools",
|
|
5
5
|
"homepage": "https://codeberg.org/bodil/dom",
|
|
6
6
|
"repository": {
|
|
@@ -56,40 +56,46 @@
|
|
|
56
56
|
"types": "./dist/signal.d.ts",
|
|
57
57
|
"import": "./dist/signal.js"
|
|
58
58
|
}
|
|
59
|
+
},
|
|
60
|
+
"./test": {
|
|
61
|
+
"import": {
|
|
62
|
+
"types": "./dist/test.d.ts",
|
|
63
|
+
"import": "./dist/test.js"
|
|
64
|
+
}
|
|
59
65
|
}
|
|
60
66
|
},
|
|
61
67
|
"publishConfig": {
|
|
62
68
|
"access": "public"
|
|
63
69
|
},
|
|
64
70
|
"dependencies": {
|
|
65
|
-
"@bodil/core": "^0.5.
|
|
66
|
-
"@bodil/opt": "^0.
|
|
67
|
-
"@bodil/signal": "^0.5.
|
|
71
|
+
"@bodil/core": "^0.5.3",
|
|
72
|
+
"@bodil/opt": "^1.0.0",
|
|
73
|
+
"@bodil/signal": "^0.5.2",
|
|
68
74
|
"lit": "^3.3.2",
|
|
69
|
-
"type-fest": "^5.
|
|
75
|
+
"type-fest": "^5.4.4"
|
|
70
76
|
},
|
|
71
77
|
"devDependencies": {
|
|
72
78
|
"@eslint/eslintrc": "^3.3.3",
|
|
73
|
-
"@eslint/js": "^
|
|
74
|
-
"@ianvs/prettier-plugin-sort-imports": "^4.7.
|
|
75
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
76
|
-
"@typescript-eslint/parser": "^8.
|
|
79
|
+
"@eslint/js": "^10.0.1",
|
|
80
|
+
"@ianvs/prettier-plugin-sort-imports": "^4.7.1",
|
|
81
|
+
"@typescript-eslint/eslint-plugin": "^8.56.0",
|
|
82
|
+
"@typescript-eslint/parser": "^8.56.0",
|
|
77
83
|
"@typhonjs-typedoc/ts-lib-docs": "^2024.12.25",
|
|
78
|
-
"@vitest/browser-playwright": "^4.0.
|
|
79
|
-
"@vitest/coverage-v8": "^4.0.
|
|
80
|
-
"eslint": "^
|
|
84
|
+
"@vitest/browser-playwright": "^4.0.18",
|
|
85
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
86
|
+
"eslint": "^10.0.1",
|
|
81
87
|
"eslint-config-prettier": "^10.1.8",
|
|
82
|
-
"eslint-plugin-jsdoc": "^
|
|
83
|
-
"globals": "^17.
|
|
84
|
-
"happy-dom": "^20.0
|
|
88
|
+
"eslint-plugin-jsdoc": "^62.7.0",
|
|
89
|
+
"globals": "^17.3.0",
|
|
90
|
+
"happy-dom": "^20.7.0",
|
|
85
91
|
"npm-run-all2": "^8.0.4",
|
|
86
|
-
"prettier": "^3.
|
|
87
|
-
"typedoc": "^0.28.
|
|
92
|
+
"prettier": "^3.8.1",
|
|
93
|
+
"typedoc": "^0.28.17",
|
|
88
94
|
"typedoc-plugin-extras": "^4.0.1",
|
|
89
|
-
"typedoc-plugin-mdn-links": "^5.
|
|
95
|
+
"typedoc-plugin-mdn-links": "^5.1.1",
|
|
90
96
|
"typedoc-theme-fresh": "^0.2.3",
|
|
91
97
|
"typescript": "^5.9.3",
|
|
92
|
-
"vitest": "^4.0.
|
|
98
|
+
"vitest": "^4.0.18"
|
|
93
99
|
},
|
|
94
100
|
"prettier": {
|
|
95
101
|
"editorconfig": true,
|
package/src/component.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @module
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { isNullish, present } from "@bodil/core/assert";
|
|
7
7
|
import { DisposableContext, toDisposable, type Disposifiable } from "@bodil/core/disposable";
|
|
8
8
|
import { Signal } from "@bodil/signal";
|
|
9
9
|
import {
|
|
@@ -29,10 +29,9 @@ import {
|
|
|
29
29
|
toAttribute,
|
|
30
30
|
type AttributeConfig,
|
|
31
31
|
} from "./decorators/attribute";
|
|
32
|
-
import { connectedJobs } from "./decorators/connect";
|
|
33
32
|
import { reactiveFields, signalForObject } from "./decorators/reactive";
|
|
34
33
|
import { requiredProperties } from "./decorators/require";
|
|
35
|
-
import {
|
|
34
|
+
import { findDescendants } from "./dom";
|
|
36
35
|
import { EmitterElement } from "./emitter";
|
|
37
36
|
import { eventListener } from "./event";
|
|
38
37
|
import { scheduler } from "./scheduler";
|
|
@@ -54,12 +53,6 @@ export {
|
|
|
54
53
|
type AttributeGetterSetterOptions,
|
|
55
54
|
type AttributeType,
|
|
56
55
|
} from "./decorators/attribute";
|
|
57
|
-
export {
|
|
58
|
-
connect,
|
|
59
|
-
connectEffect,
|
|
60
|
-
type ConnectFunction,
|
|
61
|
-
type ConnectFunctionReturnValue,
|
|
62
|
-
} from "./decorators/connect";
|
|
63
56
|
export { reactive } from "./decorators/reactive";
|
|
64
57
|
export { require } from "./decorators/require";
|
|
65
58
|
export { EmitterElement } from "./emitter";
|
|
@@ -74,6 +67,8 @@ export type UpdateConfig = {
|
|
|
74
67
|
|
|
75
68
|
const finalised = Symbol("finalised");
|
|
76
69
|
|
|
70
|
+
export type Disposables = Disposifiable | Iterable<Disposifiable | undefined> | undefined | void;
|
|
71
|
+
|
|
77
72
|
export type Deps = Array<typeof HTMLElement>;
|
|
78
73
|
|
|
79
74
|
export type CSSStyleSpec = CSSResult | CSSStyleSheet | string;
|
|
@@ -152,6 +147,7 @@ export abstract class Component
|
|
|
152
147
|
|
|
153
148
|
readonly #controllers = new Set<ReactiveController>();
|
|
154
149
|
readonly #connectedContext = new DisposableContext();
|
|
150
|
+
readonly #finalCleanupContext = new DisposableContext();
|
|
155
151
|
#dirty = false;
|
|
156
152
|
#isUpdatePending = false;
|
|
157
153
|
#updateSignal?: Signal.Computed<void>;
|
|
@@ -307,27 +303,12 @@ export abstract class Component
|
|
|
307
303
|
}
|
|
308
304
|
}
|
|
309
305
|
|
|
310
|
-
|
|
311
|
-
* This lifecycle callback is called when the component is attached to the
|
|
312
|
-
* DOM.
|
|
313
|
-
*
|
|
314
|
-
* Generally, prefer using methods with @{@link connect} decorators to
|
|
315
|
-
* overriding this method.
|
|
316
|
-
*/
|
|
317
|
-
protected connectedCallback() {
|
|
306
|
+
private connectedCallback() {
|
|
318
307
|
this.#connectedContext.dispose();
|
|
319
308
|
this.#controllers.forEach((c) => c.hostConnected?.());
|
|
320
309
|
this.#rootPart?.setConnected(true);
|
|
321
310
|
|
|
322
|
-
|
|
323
|
-
const result = job.call(this);
|
|
324
|
-
const items = isNullish(result)
|
|
325
|
-
? Iterator.from<Disposifiable>([])
|
|
326
|
-
: isIterable(result)
|
|
327
|
-
? Iterator.from(result)
|
|
328
|
-
: Iterator.from([result]);
|
|
329
|
-
items.filter((i) => i !== undefined).forEach(this.useWhileConnected.bind(this));
|
|
330
|
-
}
|
|
311
|
+
this.connected();
|
|
331
312
|
|
|
332
313
|
this.useWhileConnected(
|
|
333
314
|
Signal.effect(() => {
|
|
@@ -345,19 +326,13 @@ export abstract class Component
|
|
|
345
326
|
this.requestUpdate();
|
|
346
327
|
}
|
|
347
328
|
|
|
348
|
-
|
|
349
|
-
* This lifecycle callback is called when the component is removed from the
|
|
350
|
-
* DOM.
|
|
351
|
-
*
|
|
352
|
-
* Generally, prefer using methods with @{@link connect} decorators to
|
|
353
|
-
* overriding this method.
|
|
354
|
-
*/
|
|
355
|
-
protected disconnectedCallback() {
|
|
329
|
+
private disconnectedCallback() {
|
|
356
330
|
if (this.#updateSignal !== undefined) {
|
|
357
331
|
this.#updateSignalWatcher.unwatch(this.#updateSignal);
|
|
358
332
|
this.#updateSignal = undefined;
|
|
359
333
|
}
|
|
360
334
|
this.#isUpdatePending = false;
|
|
335
|
+
this.disconnected();
|
|
361
336
|
this.#abortController.abort(
|
|
362
337
|
new DOMException(`${this.tagName} element disconnected`, "AbortError"),
|
|
363
338
|
);
|
|
@@ -394,7 +369,10 @@ export abstract class Component
|
|
|
394
369
|
const attrConfig = (this.constructor as typeof Component).attributeConfig.get(name);
|
|
395
370
|
if (attrConfig !== undefined) {
|
|
396
371
|
const value = fromAttribute(valueString, attrConfig.type);
|
|
397
|
-
|
|
372
|
+
try {
|
|
373
|
+
this[attrConfig.property as keyof this] = value as any;
|
|
374
|
+
// Silently swallow any write errors.
|
|
375
|
+
} catch (_e) {}
|
|
398
376
|
}
|
|
399
377
|
}
|
|
400
378
|
|
|
@@ -466,9 +444,7 @@ export abstract class Component
|
|
|
466
444
|
() => {
|
|
467
445
|
return requiredProperties.size === 0
|
|
468
446
|
? true
|
|
469
|
-
: requiredProperties
|
|
470
|
-
.keys()
|
|
471
|
-
.every((key) => (this as any)[key] !== undefined);
|
|
447
|
+
: requiredProperties.keys().every((key) => !isNullish((this as any)[key]));
|
|
472
448
|
},
|
|
473
449
|
// every signal update is relevant, even if the signal value doesn't
|
|
474
450
|
// change, because the required values probably did.
|
|
@@ -557,12 +533,7 @@ export abstract class Component
|
|
|
557
533
|
protected findChildComponents(
|
|
558
534
|
root: Element | ShadowRoot = this.renderRoot,
|
|
559
535
|
): IteratorObject<Component> {
|
|
560
|
-
|
|
561
|
-
const top = [...all];
|
|
562
|
-
for (const el of top) {
|
|
563
|
-
all = [...all, ...this.findChildComponents(el)];
|
|
564
|
-
}
|
|
565
|
-
return Iterator.from(all).filter((el) => el instanceof Component);
|
|
536
|
+
return findDescendants(root, (el) => el instanceof Component);
|
|
566
537
|
}
|
|
567
538
|
|
|
568
539
|
/**
|
|
@@ -579,6 +550,22 @@ export abstract class Component
|
|
|
579
550
|
await Promise.all(children.map((child) => child.hasStabilised)).catch(console.error);
|
|
580
551
|
}
|
|
581
552
|
|
|
553
|
+
/**
|
|
554
|
+
* This lifecycle callback is called each time this component is connected
|
|
555
|
+
* to the DOM.
|
|
556
|
+
*/
|
|
557
|
+
protected connected(): void {
|
|
558
|
+
//
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
/**
|
|
562
|
+
* This lifecycle callback is called each time this component is
|
|
563
|
+
* disconnected from the DOM.
|
|
564
|
+
*/
|
|
565
|
+
protected disconnected(): void {
|
|
566
|
+
//
|
|
567
|
+
}
|
|
568
|
+
|
|
582
569
|
/**
|
|
583
570
|
* This lifecycle callback is called each time an update has completed.
|
|
584
571
|
*/
|
|
@@ -642,14 +629,33 @@ export abstract class Component
|
|
|
642
629
|
return nothing;
|
|
643
630
|
}
|
|
644
631
|
|
|
645
|
-
[Symbol.dispose]() {
|
|
632
|
+
[Symbol.dispose](): void {
|
|
646
633
|
for (const child of this.findChildComponents()) {
|
|
647
634
|
child[Symbol.dispose]();
|
|
648
635
|
}
|
|
636
|
+
this.remove();
|
|
649
637
|
this.disconnectedCallback();
|
|
650
638
|
(this.#rootPart as any)?._$clear?.();
|
|
651
639
|
this.#rootPart = undefined;
|
|
652
|
-
this.
|
|
640
|
+
this.#finalCleanupContext.dispose();
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
/**
|
|
644
|
+
* Register a {@link Disposable} for automatic disposal when this component
|
|
645
|
+
* is disposed.
|
|
646
|
+
*/
|
|
647
|
+
use(disposifiable: undefined): undefined;
|
|
648
|
+
use(disposifiable: null): null;
|
|
649
|
+
use(disposifiable: Disposifiable): Disposable;
|
|
650
|
+
use(disposifiable: Disposifiable | undefined): Disposable | undefined;
|
|
651
|
+
use(disposifiable: Disposifiable | null | undefined): Disposable | null | undefined;
|
|
652
|
+
use(disposifiable: Disposifiable | null | undefined): Disposable | null | undefined {
|
|
653
|
+
if (isNullish(disposifiable)) {
|
|
654
|
+
return disposifiable;
|
|
655
|
+
}
|
|
656
|
+
const disposable = toDisposable(disposifiable);
|
|
657
|
+
this.#finalCleanupContext.use(disposable);
|
|
658
|
+
return disposable;
|
|
653
659
|
}
|
|
654
660
|
|
|
655
661
|
/**
|
|
@@ -668,6 +674,11 @@ export abstract class Component
|
|
|
668
674
|
* this.useWhileConnected(this.on("click", this.handleClick.bind(this)));
|
|
669
675
|
* }
|
|
670
676
|
*/
|
|
677
|
+
useWhileConnected(
|
|
678
|
+
disposifiable: Disposifiable,
|
|
679
|
+
secondDisposable: Disposifiable,
|
|
680
|
+
...disposifiables: Array<Disposifiable>
|
|
681
|
+
): Array<Disposable>;
|
|
671
682
|
useWhileConnected(disposifiable: undefined): undefined;
|
|
672
683
|
useWhileConnected(disposifiable: null): null;
|
|
673
684
|
useWhileConnected(disposifiable: Disposifiable): Disposable;
|
|
@@ -677,7 +688,15 @@ export abstract class Component
|
|
|
677
688
|
): Disposable | null | undefined;
|
|
678
689
|
useWhileConnected(
|
|
679
690
|
disposifiable: Disposifiable | null | undefined,
|
|
680
|
-
|
|
691
|
+
...disposifiables: Array<Disposifiable>
|
|
692
|
+
): Array<Disposable> | Disposable | null | undefined {
|
|
693
|
+
if (disposifiables.length > 0) {
|
|
694
|
+
return [disposifiable, ...disposifiables].map((d) => {
|
|
695
|
+
const disposable = toDisposable(present(d));
|
|
696
|
+
this.#connectedContext.use(disposable);
|
|
697
|
+
return disposable;
|
|
698
|
+
});
|
|
699
|
+
}
|
|
681
700
|
if (isNullish(disposifiable)) {
|
|
682
701
|
return disposifiable;
|
|
683
702
|
}
|