@joist/element 4.0.0-next.13 → 4.0.0-next.16

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joist/element",
3
- "version": "4.0.0-next.13",
3
+ "version": "4.0.0-next.16",
4
4
  "type": "module",
5
5
  "main": "./target/lib.js",
6
6
  "module": "./target/lib.js",
package/src/lib/listen.ts CHANGED
@@ -2,16 +2,16 @@ import { ListenerSelector, metadataStore } from './metadata.js';
2
2
 
3
3
  export function listen<This extends HTMLElement>(
4
4
  event: string,
5
- selector?: ListenerSelector | string
5
+ selector?: ListenerSelector<This> | string
6
6
  ) {
7
7
  return function listenDecorator(value: (e: any) => void, ctx: ClassMethodDecoratorContext<This>) {
8
- const metadata = metadataStore.read(ctx.metadata);
8
+ const metadata = metadataStore.read<This>(ctx.metadata);
9
9
 
10
- let selectorInternal: ListenerSelector = (el: Element) => el.shadowRoot ?? el;
10
+ let selectorInternal: ListenerSelector<This> = (el) => el.shadowRoot ?? el;
11
11
 
12
12
  if (selector) {
13
13
  if (typeof selector === 'string') {
14
- selectorInternal = (el: Element) => {
14
+ selectorInternal = (el: This) => {
15
15
  if (el.shadowRoot) {
16
16
  return el.shadowRoot.querySelector(selector);
17
17
  }
@@ -6,22 +6,22 @@ export interface AttrDef {
6
6
  observe: boolean;
7
7
  }
8
8
 
9
- export type ListenerSelector = (el: Element) => Element | ShadowRoot | null;
9
+ export type ListenerSelector<T> = (el: T) => Element | ShadowRoot | null;
10
10
 
11
- export interface Listener {
11
+ export interface Listener<T> {
12
12
  event: string;
13
13
  cb: (e: Event) => void;
14
- selector: ListenerSelector;
14
+ selector: ListenerSelector<T>;
15
15
  }
16
16
 
17
- export class ElementMetadata {
17
+ export class ElementMetadata<T> {
18
18
  attrs: AttrDef[] = [];
19
- listeners: Listener[] = [];
19
+ listeners: Listener<T>[] = [];
20
20
  onReady = new Set<Function>();
21
21
  }
22
22
 
23
- export class MetadataStore extends WeakMap<object, ElementMetadata> {
24
- read(value: object) {
23
+ export class MetadataStore extends WeakMap<object, ElementMetadata<unknown>> {
24
+ read<T>(value: object): ElementMetadata<T> {
25
25
  if (!this.has(value)) {
26
26
  this.set(value, new ElementMetadata());
27
27
  }
package/src/lib/query.ts CHANGED
@@ -28,7 +28,7 @@ export function query<K extends Tags>(query: K): QueryResult<HTMLElementTagNameM
28
28
 
29
29
  if (updates) {
30
30
  for (let update in updates) {
31
- Reflect.set(res, update, updates[update]);
31
+ (res as any)[update] = updates[update];
32
32
  }
33
33
  }
34
34
 
@@ -4,7 +4,7 @@ import { template } from './template.js';
4
4
 
5
5
  // Run all tests with both shadow and light dom
6
6
  const TESTS = [
7
- function comments(el: HTMLElement, root: HTMLElement | ShadowRoot) {
7
+ function bindableNodes(el: HTMLElement, root: HTMLElement | ShadowRoot) {
8
8
  it(`should intialize bindable nodes ${root instanceof ShadowRoot ? '(ShadowDOM)' : '(LightDOM)'}`, () => {
9
9
  el.title = 'Hello World';
10
10
  el.ariaLabel = 'This is the label';
@@ -32,7 +32,7 @@ const TESTS = [
32
32
  );
33
33
  });
34
34
  },
35
- function attributes(el: HTMLElement, root: HTMLElement | ShadowRoot) {
35
+ function attributeNodes(el: HTMLElement, root: HTMLElement | ShadowRoot) {
36
36
  it(`should intialize template attributes ${root instanceof ShadowRoot ? '(ShadowDOM)' : '(LightDOM)'}`, () => {
37
37
  el.ariaLabel = 'This is the label';
38
38
  el.ariaDescription = 'This is the description';
@@ -83,6 +83,34 @@ const TESTS = [
83
83
  '<span #:bind="title">Hello World</span><ul><li #:bind="ariaLabel">This is the label</li><li #:bind="ariaDescription">This is the description</li></ul>'
84
84
  );
85
85
  });
86
+ },
87
+ function customPrefix(el: HTMLElement, root: HTMLElement | ShadowRoot) {
88
+ it(`should use custom getter for values ${root instanceof ShadowRoot ? '(ShadowDOM)' : '(LightDOM)'}`, () => {
89
+ el.title = 'Hello World';
90
+ el.ariaLabel = 'This is the label';
91
+ el.ariaDescription = 'This is the description';
92
+
93
+ root.innerHTML = /*html*/ `
94
+ <span x-bind="title"></span>
95
+
96
+ <ul x-aria-label="ariaLabel">
97
+ <li x-bind="ariaLabel"></li>
98
+ <li x-bind="ariaDescription"></li>
99
+ </ul>
100
+ `;
101
+
102
+ const render = template({ tokenPrefix: 'x-' }).bind(el);
103
+
104
+ render();
105
+
106
+ assert.equal(
107
+ root.innerHTML
108
+ .split('\n')
109
+ .map((res) => res.trim())
110
+ .join(''),
111
+ '<span x-bind="title">Hello World</span><ul x-aria-label="ariaLabel" aria-label="This is the label"><li x-bind="ariaLabel">This is the label</li><li x-bind="ariaDescription">This is the description</li></ul>'
112
+ );
113
+ });
86
114
  }
87
115
  ];
88
116
 
@@ -1,2 +1,2 @@
1
1
  import { ListenerSelector } from './metadata.js';
2
- export declare function listen<This extends HTMLElement>(event: string, selector?: ListenerSelector | string): (value: (e: any) => void, ctx: ClassMethodDecoratorContext<This>) => void;
2
+ export declare function listen<This extends HTMLElement>(event: string, selector?: ListenerSelector<This> | string): (value: (e: any) => void, ctx: ClassMethodDecoratorContext<This>) => void;
@@ -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,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,IAAI,CAAC;YACtB,KAAK;YACL,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,gBAAgB;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
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,CAAC,KAAuB,EAAE,GAAsC;QAC7F,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"}
@@ -3,18 +3,18 @@ export interface AttrDef {
3
3
  attrName: string;
4
4
  observe: boolean;
5
5
  }
6
- export type ListenerSelector = (el: Element) => Element | ShadowRoot | null;
7
- export interface Listener {
6
+ export type ListenerSelector<T> = (el: T) => Element | ShadowRoot | null;
7
+ export interface Listener<T> {
8
8
  event: string;
9
9
  cb: (e: Event) => void;
10
- selector: ListenerSelector;
10
+ selector: ListenerSelector<T>;
11
11
  }
12
- export declare class ElementMetadata {
12
+ export declare class ElementMetadata<T> {
13
13
  attrs: AttrDef[];
14
- listeners: Listener[];
14
+ listeners: Listener<T>[];
15
15
  onReady: Set<Function>;
16
16
  }
17
- export declare class MetadataStore extends WeakMap<object, ElementMetadata> {
18
- read(value: object): ElementMetadata;
17
+ export declare class MetadataStore extends WeakMap<object, ElementMetadata<unknown>> {
18
+ read<T>(value: object): ElementMetadata<T>;
19
19
  }
20
20
  export declare const metadataStore: MetadataStore;
@@ -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;AAgBvD,MAAM,OAAO,eAAe;IAC1B,KAAK,GAAc,EAAE,CAAC;IACtB,SAAS,GAAe,EAAE,CAAC;IAC3B,OAAO,GAAG,IAAI,GAAG,EAAY,CAAC;CAC/B;AAED,MAAM,OAAO,aAAc,SAAQ,OAAgC;IACjE,IAAI,CAAC,KAAa;QAChB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,eAAe,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/lib/metadata.ts"],"names":[],"mappings":"AAAC,MAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAgBvD,MAAM,OAAO,eAAe;IAC1B,KAAK,GAAc,EAAE,CAAC;IACtB,SAAS,GAAkB,EAAE,CAAC;IAC9B,OAAO,GAAG,IAAI,GAAG,EAAY,CAAC;CAC/B;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,GAAG,IAAI,aAAa,EAAE,CAAC"}
@@ -16,6 +16,7 @@ export function query(query) {
16
16
  if (updates) {
17
17
  for (let update in updates) {
18
18
  Reflect.set(res, update, updates[update]);
19
+ res[update] = updates[update];
19
20
  }
20
21
  }
21
22
  return res;
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/lib/query.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,KAAK,CAAiB,KAAQ;IAC5C,IAAI,GAAG,GAAoC,IAAI,CAAC;IAEhD,OAAO,UAA6B,OAA2C;QAC7E,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,GAAG,CAAC;QACb,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAI,KAAK,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,IAAI,CAAC,aAAa,CAAI,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/lib/query.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,KAAK,CAAiB,KAAQ;IAC5C,IAAI,GAAG,GAAoC,IAAI,CAAC;IAEhD,OAAO,UAA6B,OAA2C;QAC7E,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,GAAG,CAAC;QACb,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAI,KAAK,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,IAAI,CAAC,aAAa,CAAI,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;gBAEzC,GAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { assert } from 'chai';
2
2
  import { template } from './template.js';
3
3
  const TESTS = [
4
- function comments(el, root) {
4
+ function bindableNodes(el, root) {
5
5
  it(`should intialize bindable nodes ${root instanceof ShadowRoot ? '(ShadowDOM)' : '(LightDOM)'}`, () => {
6
6
  el.title = 'Hello World';
7
7
  el.ariaLabel = 'This is the label';
@@ -22,7 +22,7 @@ const TESTS = [
22
22
  .join(''), '<span #:bind="title">Hello World</span><ul><li #:bind="ariaLabel">This is the label</li><li #:bind="ariaDescription">This is the description</li></ul>');
23
23
  });
24
24
  },
25
- function attributes(el, root) {
25
+ function attributeNodes(el, root) {
26
26
  it(`should intialize template attributes ${root instanceof ShadowRoot ? '(ShadowDOM)' : '(LightDOM)'}`, () => {
27
27
  el.ariaLabel = 'This is the label';
28
28
  el.ariaDescription = 'This is the description';
@@ -59,6 +59,27 @@ const TESTS = [
59
59
  .map((res) => res.trim())
60
60
  .join(''), '<span #:bind="title">Hello World</span><ul><li #:bind="ariaLabel">This is the label</li><li #:bind="ariaDescription">This is the description</li></ul>');
61
61
  });
62
+ },
63
+ function customPrefix(el, root) {
64
+ it(`should use custom getter for values ${root instanceof ShadowRoot ? '(ShadowDOM)' : '(LightDOM)'}`, () => {
65
+ el.title = 'Hello World';
66
+ el.ariaLabel = 'This is the label';
67
+ el.ariaDescription = 'This is the description';
68
+ root.innerHTML = `
69
+ <span x-bind="title"></span>
70
+
71
+ <ul x-aria-label="ariaLabel">
72
+ <li x-bind="ariaLabel"></li>
73
+ <li x-bind="ariaDescription"></li>
74
+ </ul>
75
+ `;
76
+ const render = template({ tokenPrefix: 'x-' }).bind(el);
77
+ render();
78
+ assert.equal(root.innerHTML
79
+ .split('\n')
80
+ .map((res) => res.trim())
81
+ .join(''), '<span x-bind="title">Hello World</span><ul x-aria-label="ariaLabel" aria-label="This is the label"><li x-bind="ariaLabel">This is the label</li><li x-bind="ariaDescription">This is the description</li></ul>');
82
+ });
62
83
  }
63
84
  ];
64
85
  for (let test of TESTS) {
@@ -1 +1 @@
1
- {"version":3,"file":"template.test.js","sourceRoot":"","sources":["../../src/lib/template.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.test.js","sourceRoot":"","sources":["../../src/lib/template.test.ts"],"names":[],"mappings":"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"}