@joist/element 4.0.0-next.3 → 4.0.0-next.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +102 -15
  2. package/package.json +7 -9
  3. package/src/lib/attr.test.ts +138 -97
  4. package/src/lib/attr.ts +16 -32
  5. package/src/lib/element.test.ts +101 -70
  6. package/src/lib/element.ts +89 -40
  7. package/src/lib/lifecycle.test.ts +31 -0
  8. package/src/lib/lifecycle.ts +9 -0
  9. package/src/lib/listen.test.ts +88 -0
  10. package/src/lib/listen.ts +26 -9
  11. package/src/lib/metadata.ts +18 -7
  12. package/src/lib/query.test.ts +28 -0
  13. package/src/lib/query.ts +31 -0
  14. package/src/lib/result.ts +1 -21
  15. package/src/lib/tags.ts +27 -12
  16. package/src/lib/template.test.ts +123 -0
  17. package/src/lib/template.ts +118 -0
  18. package/src/lib.ts +2 -1
  19. package/target/lib/attr.d.ts +2 -1
  20. package/target/lib/attr.js +15 -24
  21. package/target/lib/attr.js.map +1 -1
  22. package/target/lib/attr.test.js +333 -252
  23. package/target/lib/attr.test.js.map +1 -1
  24. package/target/lib/element.d.ts +24 -11
  25. package/target/lib/element.js +66 -28
  26. package/target/lib/element.js.map +1 -1
  27. package/target/lib/element.test.js +158 -176
  28. package/target/lib/element.test.js.map +1 -1
  29. package/target/lib/lifecycle.d.ts +1 -0
  30. package/target/lib/lifecycle.js +8 -0
  31. package/target/lib/lifecycle.js.map +1 -0
  32. package/target/lib/lifecycle.test.js +48 -0
  33. package/target/lib/lifecycle.test.js.map +1 -0
  34. package/target/lib/listen.d.ts +2 -2
  35. package/target/lib/listen.js +18 -3
  36. package/target/lib/listen.js.map +1 -1
  37. package/target/lib/listen.test.d.ts +1 -0
  38. package/target/lib/listen.test.js +159 -0
  39. package/target/lib/listen.test.js.map +1 -0
  40. package/target/lib/metadata.d.ts +17 -10
  41. package/target/lib/metadata.js +5 -2
  42. package/target/lib/metadata.js.map +1 -1
  43. package/target/lib/query.d.ts +9 -0
  44. package/target/lib/query.js +19 -0
  45. package/target/lib/query.js.map +1 -0
  46. package/target/lib/query.test.d.ts +1 -0
  47. package/target/lib/query.test.js +41 -0
  48. package/target/lib/query.test.js.map +1 -0
  49. package/target/lib/result.d.ts +1 -10
  50. package/target/lib/result.js +1 -22
  51. package/target/lib/result.js.map +1 -1
  52. package/target/lib/tags.d.ts +10 -8
  53. package/target/lib/tags.js +18 -24
  54. package/target/lib/tags.js.map +1 -1
  55. package/target/lib/template.d.ts +11 -0
  56. package/target/lib/template.js +87 -0
  57. package/target/lib/template.js.map +1 -0
  58. package/target/lib/template.test.d.ts +1 -0
  59. package/target/lib/template.test.js +91 -0
  60. package/target/lib/template.test.js.map +1 -0
  61. package/target/lib.d.ts +2 -1
  62. package/target/lib.js +2 -1
  63. package/target/lib.js.map +1 -1
  64. package/src/lib/tags.test.ts +0 -28
  65. package/target/lib/tags.test.js +0 -23
  66. package/target/lib/tags.test.js.map +0 -1
  67. /package/target/lib/{tags.test.d.ts → lifecycle.test.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"attr.test.js","sourceRoot":"","sources":["../../src/lib/attr.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attr.test.js","sourceRoot":"","sources":["../../src/lib/attr.test.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,16 @@
1
1
  import { ShadowResult } from './result.js';
2
- export interface ElementOpts<T> {
2
+ export interface ElementOpts {
3
3
  tagName?: string;
4
- shadow?: Array<ShadowResult | ((el: T) => void)>;
4
+ shadowDom?: ShadowResult[];
5
+ shadowDomOpts?: ShadowRootInit;
5
6
  }
6
- export declare function element<Target extends CustomElementConstructor, Instance extends InstanceType<Target>>(opts?: ElementOpts<Instance>): (Base: Target, ctx: ClassDecoratorContext<Target>) => {
7
+ interface ElementConstructor {
8
+ new (...args: any[]): HTMLElement;
9
+ }
10
+ export declare function element<T extends ElementConstructor>(opts?: ElementOpts): (Base: T, ctx: ClassDecoratorContext<T>) => {
7
11
  new (...args: any[]): {
8
12
  connectedCallback(): void;
13
+ attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
9
14
  accessKey: string;
10
15
  readonly accessKeyLabel: string;
11
16
  autocapitalize: string;
@@ -25,6 +30,7 @@ export declare function element<Target extends CustomElementConstructor, Instanc
25
30
  spellcheck: boolean;
26
31
  title: string;
27
32
  translate: boolean;
33
+ writingSuggestions: string;
28
34
  attachInternals(): ElementInternals;
29
35
  click(): void;
30
36
  hidePopover(): void;
@@ -42,7 +48,9 @@ export declare function element<Target extends CustomElementConstructor, Instanc
42
48
  readonly clientLeft: number;
43
49
  readonly clientTop: number;
44
50
  readonly clientWidth: number;
51
+ readonly currentCSSZoom: number;
45
52
  id: string;
53
+ innerHTML: string;
46
54
  readonly localName: string;
47
55
  readonly namespaceURI: string | null;
48
56
  onfullscreenchange: ((this: Element, ev: Event) => any) | null;
@@ -82,12 +90,13 @@ export declare function element<Target extends CustomElementConstructor, Instanc
82
90
  getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
83
91
  getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>;
84
92
  getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>;
93
+ getHTML(options?: GetHTMLOptions): string;
85
94
  hasAttribute(qualifiedName: string): boolean;
86
95
  hasAttributeNS(namespace: string | null, localName: string): boolean;
87
96
  hasAttributes(): boolean;
88
97
  hasPointerCapture(pointerId: number): boolean;
89
98
  insertAdjacentElement(where: InsertPosition, element: Element): Element | null;
90
- insertAdjacentHTML(position: InsertPosition, text: string): void;
99
+ insertAdjacentHTML(position: InsertPosition, string: string): void;
91
100
  insertAdjacentText(where: InsertPosition, data: string): void;
92
101
  matches(selectors: string): boolean;
93
102
  releasePointerCapture(pointerId: number): void;
@@ -95,7 +104,7 @@ export declare function element<Target extends CustomElementConstructor, Instanc
95
104
  removeAttributeNS(namespace: string | null, localName: string): void;
96
105
  removeAttributeNode(attr: Attr): Attr;
97
106
  requestFullscreen(options?: FullscreenOptions): Promise<void>;
98
- requestPointerLock(): void;
107
+ requestPointerLock(options?: PointerLockOptions): Promise<void>;
99
108
  scroll(options?: ScrollToOptions): void;
100
109
  scroll(x: number, y: number): void;
101
110
  scrollBy(options?: ScrollToOptions): void;
@@ -124,21 +133,21 @@ export declare function element<Target extends CustomElementConstructor, Instanc
124
133
  readonly parentNode: ParentNode | null;
125
134
  readonly previousSibling: ChildNode | null;
126
135
  textContent: string | null;
127
- appendChild<T extends Node>(node: T): T;
136
+ appendChild<T_1 extends Node>(node: T_1): T_1;
128
137
  cloneNode(deep?: boolean): Node;
129
138
  compareDocumentPosition(other: Node): number;
130
139
  contains(other: Node | null): boolean;
131
140
  getRootNode(options?: GetRootNodeOptions): Node;
132
141
  hasChildNodes(): boolean;
133
- insertBefore<T extends Node>(node: T, child: Node | null): T;
142
+ insertBefore<T_1 extends Node>(node: T_1, child: Node | null): T_1;
134
143
  isDefaultNamespace(namespace: string | null): boolean;
135
144
  isEqualNode(otherNode: Node | null): boolean;
136
145
  isSameNode(otherNode: Node | null): boolean;
137
146
  lookupNamespaceURI(prefix: string | null): string | null;
138
147
  lookupPrefix(namespace: string | null): string | null;
139
148
  normalize(): void;
140
- removeChild<T extends Node>(child: T): T;
141
- replaceChild<T extends Node>(node: Node, child: T): T;
149
+ removeChild<T_1 extends Node>(child: T_1): T_1;
150
+ replaceChild<T_1 extends Node>(node: Node, child: T_1): T_1;
142
151
  readonly ELEMENT_NODE: 1;
143
152
  readonly ATTRIBUTE_NODE: 2;
144
153
  readonly TEXT_NODE: 3;
@@ -166,6 +175,7 @@ export declare function element<Target extends CustomElementConstructor, Instanc
166
175
  ariaChecked: string | null;
167
176
  ariaColCount: string | null;
168
177
  ariaColIndex: string | null;
178
+ ariaColIndexText: string | null;
169
179
  ariaColSpan: string | null;
170
180
  ariaCurrent: string | null;
171
181
  ariaDescription: string | null;
@@ -190,6 +200,7 @@ export declare function element<Target extends CustomElementConstructor, Instanc
190
200
  ariaRoleDescription: string | null;
191
201
  ariaRowCount: string | null;
192
202
  ariaRowIndex: string | null;
203
+ ariaRowIndexText: string | null;
193
204
  ariaRowSpan: string | null;
194
205
  ariaSelected: string | null;
195
206
  ariaSetSize: string | null;
@@ -205,7 +216,6 @@ export declare function element<Target extends CustomElementConstructor, Instanc
205
216
  before(...nodes: (Node | string)[]): void;
206
217
  remove(): void;
207
218
  replaceWith(...nodes: (Node | string)[]): void;
208
- innerHTML: string;
209
219
  readonly nextElementSibling: Element | null;
210
220
  readonly previousElementSibling: Element | null;
211
221
  readonly childElementCount: number;
@@ -247,7 +257,9 @@ export declare function element<Target extends CustomElementConstructor, Instanc
247
257
  onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
248
258
  onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
249
259
  onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;
260
+ oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null;
250
261
  oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
262
+ oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null;
251
263
  oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
252
264
  oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
253
265
  oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
@@ -336,4 +348,5 @@ export declare function element<Target extends CustomElementConstructor, Instanc
336
348
  focus(options?: FocusOptions): void;
337
349
  };
338
350
  observedAttributes: string[];
339
- } & Target;
351
+ } & T;
352
+ export {};
@@ -9,47 +9,85 @@ export function element(opts) {
9
9
  }
10
10
  }
11
11
  });
12
- return class JoistElement extends Base {
13
- static observedAttributes = meta.attrs
14
- .filter(({ observe }) => observe)
15
- .map(({ attrName }) => attrName);
16
- constructor(...args) {
17
- super(...args);
18
- if (opts?.shadow) {
19
- this.attachShadow({ mode: 'open' });
20
- for (let res of opts.shadow) {
21
- if (typeof res === 'function') {
22
- res(this);
12
+ const def = {
13
+ [Base.name]: class extends Base {
14
+ static observedAttributes = [];
15
+ static {
16
+ for (let [attrName] of meta.attrs) {
17
+ this.observedAttributes.push(attrName);
18
+ }
19
+ }
20
+ constructor(...args) {
21
+ super(...args);
22
+ if (opts?.shadowDom) {
23
+ if (!this.shadowRoot) {
24
+ this.attachShadow(opts.shadowDomOpts ?? { mode: 'open' });
25
+ }
26
+ for (let res of opts.shadowDom) {
27
+ res.apply(this);
28
+ }
29
+ }
30
+ for (let { event, cb, selector } of meta.listeners) {
31
+ const root = selector(this);
32
+ if (root) {
33
+ root.addEventListener(event, cb.bind(this));
23
34
  }
24
35
  else {
25
- res.run(this);
36
+ throw new Error(`could not add listener to ${root}`);
26
37
  }
27
38
  }
39
+ for (let cb of meta.onReady) {
40
+ cb.call(this);
41
+ }
28
42
  }
29
- for (let [event, { cb, root }] of meta.listeners) {
30
- root(this).addEventListener(event, cb.bind(this));
43
+ connectedCallback() {
44
+ if (this.isConnected) {
45
+ reflectAttributeValues(this, meta.attrs);
46
+ if (super.connectedCallback) {
47
+ super.connectedCallback();
48
+ }
49
+ }
31
50
  }
32
- }
33
- connectedCallback() {
34
- reflectAttributeValues(this, meta.attrs);
35
- if (super.connectedCallback) {
36
- super.connectedCallback();
51
+ attributeChangedCallback(name, oldValue, newValue) {
52
+ const attr = meta.attrs.get(name);
53
+ if (attr) {
54
+ if (oldValue !== newValue) {
55
+ const ogValue = attr.getPropValue.call(this);
56
+ if (newValue === '') {
57
+ attr.setPropValue.call(this, true);
58
+ }
59
+ else if (typeof ogValue === 'number') {
60
+ attr.setPropValue.call(this, Number(newValue));
61
+ }
62
+ else {
63
+ attr.setPropValue.call(this, newValue);
64
+ }
65
+ }
66
+ if (attr.observe) {
67
+ if (super.attributeChangedCallback) {
68
+ super.attributeChangedCallback(name, oldValue, newValue);
69
+ }
70
+ }
71
+ }
37
72
  }
38
73
  }
39
74
  };
75
+ return def[Base.name];
40
76
  };
41
77
  }
42
78
  function reflectAttributeValues(el, attrs) {
43
- for (let { propName, attrName } of attrs) {
44
- const value = Reflect.get(el, propName);
45
- if (value !== null && value !== undefined && value !== '') {
46
- if (typeof value === 'boolean') {
47
- if (value === true) {
48
- el.setAttribute(attrName, '');
79
+ for (let [attrName, { getPropValue, reflect }] of attrs) {
80
+ if (reflect) {
81
+ const value = getPropValue.call(el);
82
+ if (value !== null && value !== undefined && value !== '') {
83
+ if (typeof value === 'boolean') {
84
+ if (value === true) {
85
+ el.setAttribute(attrName, '');
86
+ }
87
+ }
88
+ else {
89
+ el.setAttribute(attrName, String(value));
49
90
  }
50
- }
51
- else {
52
- el.setAttribute(attrName, String(value));
53
91
  }
54
92
  }
55
93
  }
@@ -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,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;oBAEpC,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,GAAG,CAAC,IAAI,CAAC,CAAC;wBAChB,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,KAAK,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjD,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,iBAAiB;gBACf,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAEzC,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;oBAC5B,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,EAAe,EAAE,KAAgB;IAC/D,KAAK,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,KAAK,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAGxC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YAC1D,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAEnB,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;iBAAM,CAAC;gBAEN,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/lib/element.ts"],"names":[],"mappings":"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"}