@joist/element 4.0.0-next.7 → 4.0.0-next.9
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/README.md +57 -16
- package/package.json +1 -1
- package/src/lib/element.ts +8 -2
- package/src/lib/listen.test.ts +1 -0
- package/src/lib/listen.ts +21 -2
- package/src/lib/metadata.ts +1 -1
- package/target/lib/element.js +8 -2
- package/target/lib/element.js.map +1 -1
- package/target/lib/listen.d.ts +1 -1
- package/target/lib/listen.js +15 -1
- package/target/lib/listen.js.map +1 -1
- package/target/lib/listen.test.js.map +1 -1
- package/target/lib/metadata.d.ts +1 -1
package/README.md
CHANGED
|
@@ -1,39 +1,80 @@
|
|
|
1
1
|
# Element
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Utilities for building web compnennts. Especially targeted at
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Installation](#installation)
|
|
8
|
+
- [Custom Element](#custom-element)
|
|
9
|
+
- [Attributes](#attributes)
|
|
10
|
+
- [Template](#template)
|
|
11
|
+
- [Styles](#styles)
|
|
12
|
+
- [Listeners](#listeners)
|
|
13
|
+
- [Queries](#queries)
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
6
16
|
|
|
7
17
|
```BASH
|
|
8
18
|
npm i @joist/element
|
|
9
19
|
```
|
|
10
20
|
|
|
11
|
-
|
|
21
|
+
## Custom Element
|
|
22
|
+
|
|
23
|
+
To define a custom element decorate your custom element class and add a tagName
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
@element({
|
|
27
|
+
tagName: 'my-element'
|
|
28
|
+
})
|
|
29
|
+
export class MyElement extends HTMLElement {}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Attributes
|
|
33
|
+
|
|
34
|
+
Attributes can be managed using the `@attr` decorator. This decorator will read attribute values and and write properties back to attributes;
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
@element({
|
|
38
|
+
tagName: 'my-element'
|
|
39
|
+
})
|
|
40
|
+
export class MyElement extends HTMLElement {
|
|
41
|
+
@attr()
|
|
42
|
+
accessor greeting = 'Hello World';
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Template
|
|
12
47
|
|
|
13
|
-
|
|
14
|
-
import { css, html, attr, listen, element } from '@joist/element';
|
|
48
|
+
Joist ships with a very simple template library. It is designed to be very small and is only responsible for updating text in different DOM nodes.
|
|
15
49
|
|
|
50
|
+
```ts
|
|
16
51
|
@element({
|
|
17
52
|
tagName: 'my-element',
|
|
18
53
|
shadow: [
|
|
19
|
-
css`
|
|
20
|
-
:host {
|
|
21
|
-
display: block;
|
|
22
|
-
color: red;
|
|
23
|
-
}
|
|
24
|
-
`,
|
|
25
54
|
html`
|
|
26
|
-
|
|
55
|
+
<h1 #:bind="greeting" #:hidden="!greeting"></h1>
|
|
56
|
+
|
|
57
|
+
<ul>
|
|
58
|
+
<li #:bind="items.0"></li>
|
|
59
|
+
<li #:bind="items.1"></li>
|
|
60
|
+
<li #:bind="items.2"></li>
|
|
61
|
+
<li #:bind="items.3"></li>
|
|
62
|
+
<li #:bind="items.4"></li>
|
|
63
|
+
</ul>
|
|
27
64
|
`
|
|
28
65
|
]
|
|
29
66
|
})
|
|
30
67
|
export class MyElement extends HTMLElement {
|
|
31
68
|
@attr()
|
|
32
|
-
accessor
|
|
69
|
+
accessor greeting = 'Hello World';
|
|
70
|
+
|
|
71
|
+
items = ['first', 'second', 'third', 'fourth', 'fifth'];
|
|
72
|
+
|
|
73
|
+
#render = template();
|
|
33
74
|
|
|
34
|
-
@
|
|
35
|
-
|
|
36
|
-
|
|
75
|
+
@ready()
|
|
76
|
+
onReady() {
|
|
77
|
+
this.#render();
|
|
37
78
|
}
|
|
38
79
|
}
|
|
39
80
|
```
|
package/package.json
CHANGED
package/src/lib/element.ts
CHANGED
|
@@ -43,8 +43,14 @@ export function element<
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
for (let [event, { cb, selector
|
|
47
|
-
root
|
|
46
|
+
for (let [event, { cb, selector }] of meta.listeners) {
|
|
47
|
+
const root = selector(this);
|
|
48
|
+
|
|
49
|
+
if (root) {
|
|
50
|
+
root.addEventListener(event, cb.bind(this));
|
|
51
|
+
} else {
|
|
52
|
+
throw new Error(`could not add listener to ${root}`);
|
|
53
|
+
}
|
|
48
54
|
}
|
|
49
55
|
|
|
50
56
|
for (let cb of meta.onReady) {
|
package/src/lib/listen.test.ts
CHANGED
package/src/lib/listen.ts
CHANGED
|
@@ -1,12 +1,31 @@
|
|
|
1
1
|
import { ListenerSelector, metadataStore } from './metadata.js';
|
|
2
2
|
|
|
3
|
-
export function listen<This extends HTMLElement>(
|
|
3
|
+
export function listen<This extends HTMLElement>(
|
|
4
|
+
event: string,
|
|
5
|
+
selector?: ListenerSelector | string
|
|
6
|
+
) {
|
|
4
7
|
return function listenDecorator(value: (e: any) => void, ctx: ClassMethodDecoratorContext<This>) {
|
|
5
8
|
const metadata = metadataStore.read(ctx.metadata);
|
|
6
9
|
|
|
10
|
+
let selectorInternal: ListenerSelector = (el: Element) => el.shadowRoot ?? el;
|
|
11
|
+
|
|
12
|
+
if (selector) {
|
|
13
|
+
if (typeof selector === 'string') {
|
|
14
|
+
selectorInternal = (el: Element) => {
|
|
15
|
+
if (el.shadowRoot) {
|
|
16
|
+
return el.shadowRoot.querySelector(selector);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return el.querySelector(selector);
|
|
20
|
+
};
|
|
21
|
+
} else {
|
|
22
|
+
selectorInternal = selector;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
7
26
|
metadata.listeners.set(event, {
|
|
8
27
|
cb: value,
|
|
9
|
-
selector:
|
|
28
|
+
selector: selectorInternal
|
|
10
29
|
});
|
|
11
30
|
};
|
|
12
31
|
}
|
package/src/lib/metadata.ts
CHANGED
|
@@ -6,7 +6,7 @@ export interface AttrDef {
|
|
|
6
6
|
observe: boolean;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
export type ListenerSelector = (el:
|
|
9
|
+
export type ListenerSelector = (el: Element) => Element | ShadowRoot | null;
|
|
10
10
|
|
|
11
11
|
export class ElementMetadata {
|
|
12
12
|
attrs: AttrDef[] = [];
|
package/target/lib/element.js
CHANGED
|
@@ -28,8 +28,14 @@ export function element(opts) {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
for (let [event, { cb, selector
|
|
32
|
-
root
|
|
31
|
+
for (let [event, { cb, selector }] of meta.listeners) {
|
|
32
|
+
const root = selector(this);
|
|
33
|
+
if (root) {
|
|
34
|
+
root.addEventListener(event, cb.bind(this));
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
throw new Error(`could not add listener to ${root}`);
|
|
38
|
+
}
|
|
33
39
|
}
|
|
34
40
|
for (let cb of meta.onReady) {
|
|
35
41
|
cb.call(this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/lib/element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,aAAa,EAAE,MAAM,eAAe,CAAC;AAQvD,MAAM,UAAU,OAAO,CAGrB,IAA4B;IAC5B,OAAO,SAAS,gBAAgB,CAAC,IAAY,EAAE,GAAkC;QAC/E,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,OAAO,MAAM,YAAa,SAAQ,IAAI;YACpC,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK;iBACnC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC;iBAChC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;YAEnC,YAAY,GAAG,IAAW;gBACxB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;gBAEf,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;oBACjB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;wBACrB,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;oBACtC,CAAC;oBAED,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBAC5B,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;4BAC9B,GAAG,CAAC,IAA2B,CAAC,CAAC;wBACnC,CAAC;6BAAM,CAAC;4BACN,GAAG,CAAC,KAAK,CAAC,IAA2B,CAAC,CAAC;wBACzC,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,KAAK,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/lib/element.ts"],"names":[],"mappings":"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"}
|
package/target/lib/listen.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ListenerSelector } from './metadata.js';
|
|
2
|
-
export declare function listen<This extends HTMLElement>(event: string, selector?: ListenerSelector): (value: (e: any) => void, ctx: ClassMethodDecoratorContext<This>) => void;
|
|
2
|
+
export declare function listen<This extends HTMLElement>(event: string, selector?: ListenerSelector | string): (value: (e: any) => void, ctx: ClassMethodDecoratorContext<This>) => void;
|
package/target/lib/listen.js
CHANGED
|
@@ -2,9 +2,23 @@ import { metadataStore } from './metadata.js';
|
|
|
2
2
|
export function listen(event, selector) {
|
|
3
3
|
return function listenDecorator(value, ctx) {
|
|
4
4
|
const metadata = metadataStore.read(ctx.metadata);
|
|
5
|
+
let selectorInternal = (el) => el.shadowRoot ?? el;
|
|
6
|
+
if (selector) {
|
|
7
|
+
if (typeof selector === 'string') {
|
|
8
|
+
selectorInternal = (el) => {
|
|
9
|
+
if (el.shadowRoot) {
|
|
10
|
+
return el.shadowRoot.querySelector(selector);
|
|
11
|
+
}
|
|
12
|
+
return el.querySelector(selector);
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
selectorInternal = selector;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
5
19
|
metadata.listeners.set(event, {
|
|
6
20
|
cb: value,
|
|
7
|
-
selector:
|
|
21
|
+
selector: selectorInternal
|
|
8
22
|
});
|
|
9
23
|
};
|
|
10
24
|
}
|
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,
|
|
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,QAAoC;IAEpC,OAAO,SAAS,eAAe,CAAC,KAAuB,EAAE,GAAsC;QAC7F,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAElD,IAAI,gBAAgB,GAAqB,CAAC,EAAW,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC;QAE9E,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,gBAAgB,GAAG,CAAC,EAAW,EAAE,EAAE;oBACjC,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,GAAG,CAAC,KAAK,EAAE;YAC5B,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,gBAAgB;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"listen.test.js","sourceRoot":"","sources":["../../src/lib/listen.test.ts"],"names":[],"mappings":"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"}
|
package/target/lib/metadata.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export interface AttrDef {
|
|
|
3
3
|
attrName: string;
|
|
4
4
|
observe: boolean;
|
|
5
5
|
}
|
|
6
|
-
export type ListenerSelector = (el:
|
|
6
|
+
export type ListenerSelector = (el: Element) => Element | ShadowRoot | null;
|
|
7
7
|
export declare class ElementMetadata {
|
|
8
8
|
attrs: AttrDef[];
|
|
9
9
|
listeners: Map<string, {
|