jj 2.0.0 → 2.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.
Files changed (59) hide show
  1. package/README.md +1 -0
  2. package/lib/WC.d.ts +18 -10
  3. package/lib/WC.js +65 -108
  4. package/lib/WC.js.map +1 -1
  5. package/lib/WD.d.ts +8 -0
  6. package/lib/WD.js +17 -0
  7. package/lib/WD.js.map +1 -0
  8. package/lib/WDF.d.ts +1 -3
  9. package/lib/WDF.js +3 -14
  10. package/lib/WDF.js.map +1 -1
  11. package/lib/WE.d.ts +3 -2
  12. package/lib/WE.js +4 -5
  13. package/lib/WE.js.map +1 -1
  14. package/lib/WN.d.ts +13 -0
  15. package/lib/WN.js +59 -10
  16. package/lib/WN.js.map +1 -1
  17. package/lib/WSE.d.ts +25 -0
  18. package/lib/WSE.js +84 -0
  19. package/lib/WSE.js.map +1 -0
  20. package/lib/bundle.js +312 -177
  21. package/lib/bundle.js.map +4 -4
  22. package/lib/bundle.min.js +2 -3
  23. package/lib/fetch.d.ts +31 -0
  24. package/lib/fetch.js +69 -0
  25. package/lib/fetch.js.map +1 -0
  26. package/lib/index.d.ts +3 -0
  27. package/lib/index.js +3 -0
  28. package/lib/index.js.map +1 -1
  29. package/lib/util.d.ts +4 -1
  30. package/lib/util.js +6 -7
  31. package/lib/util.js.map +1 -1
  32. package/package.json +2 -2
  33. package/lib/ComponentFiles.d.ts +0 -35
  34. package/lib/ComponentFiles.js +0 -116
  35. package/lib/ComponentFiles.js.map +0 -1
  36. package/lib/WF.d.ts +0 -14
  37. package/lib/WF.js +0 -44
  38. package/lib/WF.js.map +0 -1
  39. package/lib/WS.d.ts +0 -11
  40. package/lib/WS.js +0 -32
  41. package/lib/WS.js.map +0 -1
  42. package/lib/Welem.d.ts +0 -49
  43. package/lib/Welem.js +0 -173
  44. package/lib/Welem.js.map +0 -1
  45. package/lib/Wfrag.d.ts +0 -15
  46. package/lib/Wfrag.js +0 -56
  47. package/lib/Wfrag.js.map +0 -1
  48. package/lib/Whelem.d.ts +0 -17
  49. package/lib/Whelem.js +0 -69
  50. package/lib/Whelem.js.map +0 -1
  51. package/lib/Wnode.d.ts +0 -6
  52. package/lib/Wnode.js +0 -33
  53. package/lib/Wnode.js.map +0 -1
  54. package/lib/Wshad.d.ts +0 -9
  55. package/lib/Wshad.js +0 -31
  56. package/lib/Wshad.js.map +0 -1
  57. package/lib/wrap-unwrap.d.ts +0 -22
  58. package/lib/wrap-unwrap.js +0 -68
  59. package/lib/wrap-unwrap.js.map +0 -1
package/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Just JavaScript!
2
2
 
3
3
  **Do you know what runs faster than VDOM? No VDOM!**
4
+ **Do you know what's faster than transpilation? No transpilation!**
4
5
 
5
6
  **JJ** A human readable WYWIWIR (what you write is what is run) DSL for creating and manipulating HTML and CSS for modern browsers.
6
7
 
package/lib/WC.d.ts CHANGED
@@ -1,6 +1,17 @@
1
- export type LoadingStrategy = 'eager' | 'lazy' | 'prefetch' | 'preload';
2
- interface ComponentResource<T> {
3
- get promise(): Promise<T>;
1
+ import { WHE } from './WHE.js';
2
+ export type JJResource<T> = T | Promise<T> | (() => T | Promise<T>);
3
+ export type JJTemplateConfig = JJResource<string | WHE | HTMLElement>;
4
+ export type JJStyleConfig = JJResource<string | CSSStyleSheet> | JJResource<string | CSSStyleSheet>;
5
+ export type JJStylesConfig = JJStyleConfig | JJStyleConfig[];
6
+ export interface JJConfig {
7
+ name: string;
8
+ template?: JJTemplateConfig;
9
+ styles?: JJStylesConfig;
10
+ templateMode?: 'open' | 'closed';
11
+ }
12
+ interface JJProcessedConfig {
13
+ template?: string;
14
+ styles: CSSStyleSheet[];
4
15
  }
5
16
  /**
6
17
  * Parent class for custom components.
@@ -11,14 +22,11 @@ interface ComponentResource<T> {
11
22
  * - `attributeChangedCallback` sets any props that corresponds to attributes defined in `static observedAttributes`
12
23
  */
13
24
  export declare class WC extends HTMLElement {
14
- static jjTemplate?: ComponentResource<string>;
15
- static jjStyle?: ComponentResource<CSSStyleSheet>[];
16
- static closedShadow?: boolean;
25
+ static _jjCache?: Promise<JJProcessedConfig>;
26
+ jjRoot?: WHE;
27
+ static jj: JJConfig;
17
28
  static observedAttributes?: string[];
18
- static setTemplateFile(href: string, loading?: LoadingStrategy): typeof WC;
19
- static setTemplateHtml(html: string): typeof WC;
20
- static addStyleFile(href: string, loading?: LoadingStrategy): typeof WC;
21
- static addStyleCss(css: string): typeof WC;
29
+ static register(): Promise<void>;
22
30
  connectedCallback(): Promise<void>;
23
31
  /**
24
32
  * The class that extends this one should define
package/lib/WC.js CHANGED
@@ -1,101 +1,60 @@
1
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
- };
6
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
- if (kind === "m") throw new TypeError("Private method is not writable");
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
- };
12
- var _ComponentFile_promise;
13
1
  import { keb2cam } from './case.js';
2
+ import { cssToStyle } from './util.js';
14
3
  import { WHE } from './WHE.js';
15
- import { hasProp, isArr, isStr } from 'jty';
16
- class ComponentFile {
17
- constructor(as, href, loading = 'lazy') {
18
- this.as = as;
19
- this.href = href;
20
- _ComponentFile_promise.set(this, void 0);
21
- if (!isStr(href)) {
22
- throw new TypeError(`Expected a string href. Got ${href} (${typeof href})`);
23
- }
24
- switch (loading) {
25
- case 'eager':
26
- this.promise; // Trigger fetch
27
- break;
28
- case 'prefetch':
29
- case 'preload':
30
- this.addLinkPre(loading);
31
- break;
32
- case 'lazy':
33
- break;
34
- default:
35
- throw new RangeError(`Expected a valid loading strategy. Got: ${loading} (${typeof loading})`);
36
- }
4
+ import { hasProp, isArr, isStr, isObj, isFn, isA, isDef } from 'jty';
5
+ async function processTemplateConfig(template) {
6
+ if (isFn(template)) {
7
+ template = await template();
37
8
  }
38
- /**
39
- * Creates a <lik re="preload|prefetch"> element and adds it to the document <head> element.
40
- * @param as the link "as" attribute. Use 'fetch' for HTML, 'style' for CSS, and 'script' for JavaScript
41
- * @param rel when set to a truthy value, a 'preload' link is created. Otherwise a 'prefetch' is created
42
- * The difference lies in the priority of loading the resource to the browser cache where preload has higher prio.
43
- */
44
- addLinkPre(rel) {
45
- const link = WHE.fromTag('link').setAttr('rel', rel).setAttr('href', this.href).setAttr('as', this.as);
46
- document.head.append(link.ref);
47
- return this;
9
+ template = await template;
10
+ if (!isDef(template) || isStr(template)) {
11
+ return template;
48
12
  }
49
- get promise() {
50
- if (__classPrivateFieldGet(this, _ComponentFile_promise, "f") === undefined) {
51
- __classPrivateFieldSet(this, _ComponentFile_promise, this.fetch(), "f");
52
- }
53
- return __classPrivateFieldGet(this, _ComponentFile_promise, "f");
13
+ if (isA(template, WHE)) {
14
+ return template.getHtml();
54
15
  }
55
- }
56
- _ComponentFile_promise = new WeakMap();
57
- class TemplateFile extends ComponentFile {
58
- constructor(href, loading) {
59
- super('fetch', href, loading);
16
+ if (isA(template, HTMLElement)) {
17
+ return template.outerHTML;
60
18
  }
61
- async fetch() {
62
- const response = await fetch(this.href, { headers: { Accept: 'text/html' } });
63
- if (!response.ok) {
64
- throw new Error(`GET ${this.href} failed: ${response.status} ${response.statusText}`);
65
- }
66
- return response.text();
19
+ throw new TypeError(`Expected a string, WHE or HTMLElement. Got ${template} (${typeof template})`);
20
+ }
21
+ function normalizeStyles(styles) {
22
+ if (isDef(styles)) {
23
+ return isArr(styles) ? styles : [styles];
67
24
  }
25
+ return [];
68
26
  }
69
- class StyleFile extends ComponentFile {
70
- constructor(href, loading) {
71
- super('style', href, loading);
27
+ async function processStyleConfig(styleConfig) {
28
+ if (isFn(styleConfig)) {
29
+ styleConfig = await styleConfig();
72
30
  }
73
- async fetch() {
74
- const response = await fetch(this.href, { headers: { Accept: 'text/css' } });
75
- if (!response.ok) {
76
- throw new Error(`GET ${this.href} failed: ${response.status} ${response.statusText}`);
77
- }
78
- const text = await response.text();
79
- const sheet = new CSSStyleSheet();
80
- return sheet.replace(`${text}\n/*# sourceURL=${this.href} */`);
31
+ styleConfig = await styleConfig;
32
+ if (isA(styleConfig, CSSStyleSheet)) {
33
+ return styleConfig;
81
34
  }
82
- }
83
- class TemplateStr {
84
- constructor(content) {
85
- if (!isStr(content)) {
86
- throw new TypeError(`Expected a HTML string. Got ${content} (${typeof content})`);
87
- }
88
- this.promise = Promise.resolve(content);
35
+ if (isStr(styleConfig)) {
36
+ return await cssToStyle(styleConfig);
89
37
  }
38
+ throw new TypeError(`Expected a css string or CSSStyleSheet. Got ${styleConfig} (${typeof styleConfig})`);
90
39
  }
91
- class StyleStr {
92
- constructor(css) {
93
- if (!isStr(css)) {
94
- throw new TypeError(`Expected a CSS string. Got ${css} (${typeof css})`);
95
- }
96
- const sheet = new CSSStyleSheet();
97
- this.promise = sheet.replace(css);
40
+ /*
41
+ Type '[string | undefined, ...(string | CSSStyleSheet | (() => string | CSSStyleSheet | Promise<string | CSSStyleSheet>) | JJStyleConfig[])[]]' is not assignable to
42
+ type '[string | undefined, ...CSSStyleSheet[]]'.
43
+
44
+ Type at position 1 in source is not compatible with type at position 1 in target.
45
+ Type 'string | CSSStyleSheet | (() => string | CSSStyleSheet | Promise<string | CSSStyleSheet>) | JJStyleConfig[]' is not assignable to type 'CSSStyleSheet'.
46
+ Type 'string' is not assignable to type 'CSSStyleSheet'.ts(2322)
47
+ */
48
+ async function processConfig(jjConfig) {
49
+ if (!isObj(jjConfig)) {
50
+ throw new TypeError(`Expected an static jj config object. Got ${jjConfig} (${typeof jjConfig})`);
98
51
  }
52
+ const { template: templateConfig, styles: stylesConfig } = jjConfig;
53
+ const [template, ...styles] = await Promise.all([
54
+ processTemplateConfig(templateConfig),
55
+ ...normalizeStyles(stylesConfig).map(processStyleConfig),
56
+ ]);
57
+ return { template, styles };
99
58
  }
100
59
  /**
101
60
  * Parent class for custom components.
@@ -106,33 +65,31 @@ class StyleStr {
106
65
  * - `attributeChangedCallback` sets any props that corresponds to attributes defined in `static observedAttributes`
107
66
  */
108
67
  export class WC extends HTMLElement {
109
- static setTemplateFile(href, loading) {
110
- this.jjTemplate = new TemplateFile(href, loading);
111
- return this;
112
- }
113
- static setTemplateHtml(html) {
114
- this.jjTemplate = new TemplateStr(html);
115
- return this;
116
- }
117
- static addStyleFile(href, loading) {
118
- if (!isArr(this.jjStyle)) {
119
- this.jjStyle = [];
68
+ static async register() {
69
+ if (!isObj(this.jj)) {
70
+ throw new Error(`static jj object is missing from the extending class. Got ${this.jj} (${typeof this.jj})`);
120
71
  }
121
- this.jjStyle.push(new StyleFile(href, loading));
122
- return this;
123
- }
124
- static addStyleCss(css) {
125
- if (!isArr(this.jjStyle)) {
126
- this.jjStyle = [];
72
+ const { name } = this.jj;
73
+ if (!isStr(name)) {
74
+ throw new TypeError(`Expected a string name. Got ${name} (${typeof name})`);
75
+ }
76
+ if (!customElements.get(name)) {
77
+ customElements.define(name, this);
78
+ await customElements.whenDefined(name);
127
79
  }
128
- this.jjStyle.push(new StyleStr(css));
129
- return this;
130
80
  }
131
81
  async connectedCallback() {
132
- const { jjTemplate: template, jjStyle: style = [], closedShadow } = this.constructor;
133
- const [html, ...styleSheets] = await Promise.all([template?.promise, ...style.map((style) => style.promise)]);
134
- // Prevent FOUC by assigning the template and CSS in one go
135
- WHE.from(this).setShadow(closedShadow ? 'closed' : 'open', html, ...styleSheets);
82
+ const classRef = this.constructor;
83
+ const jj = classRef.jj;
84
+ if (!isObj(jj)) {
85
+ throw new TypeError(`static jj object is missing from the extending class. Got ${jj} (${typeof jj})`);
86
+ }
87
+ if (!classRef._jjCache) {
88
+ classRef._jjCache = processConfig(classRef.jj);
89
+ }
90
+ const { template, styles } = await classRef._jjCache;
91
+ const { templateMode } = jj;
92
+ this.jjRoot = WHE.from(this).initShadow(templateMode, template, ...styles);
136
93
  }
137
94
  /**
138
95
  * The class that extends this one should define
package/lib/WC.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"WC.js","sourceRoot":"","sources":["../src/WC.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WC.js","sourceRoot":"","sources":["../src/WC.ts"],"names":[],"mappings":"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"}
package/lib/WD.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import { WN } from './WN.js';
2
+ /**
3
+ * Wraps a Document (which is a descendant of Node)
4
+ */
5
+ export declare class WD<T extends Document = Document> extends WN<T> {
6
+ static from(ref: Document): WD;
7
+ constructor(ref: T);
8
+ }
package/lib/WD.js ADDED
@@ -0,0 +1,17 @@
1
+ import { isA } from 'jty';
2
+ import { WN } from './WN.js';
3
+ /**
4
+ * Wraps a Document (which is a descendant of Node)
5
+ */
6
+ export class WD extends WN {
7
+ static from(ref) {
8
+ return new WD(ref);
9
+ }
10
+ constructor(ref) {
11
+ if (!isA(ref, Document)) {
12
+ throw new TypeError(`Expected a Document. Got ${ref} (${typeof ref})`);
13
+ }
14
+ super(ref);
15
+ }
16
+ }
17
+ //# sourceMappingURL=WD.js.map
package/lib/WD.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WD.js","sourceRoot":"","sources":["../src/WD.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAG5B;;GAEG;AACH,MAAM,OAAO,EAAkC,SAAQ,EAAK;IACxD,MAAM,CAAC,IAAI,CAAC,GAAa;QACrB,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;IACtB,CAAC;IAED,YAAY,GAAM;QACd,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,SAAS,CAAC,4BAA4B,GAAG,KAAK,OAAO,GAAG,GAAG,CAAC,CAAA;QAC1E,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;CACJ"}
package/lib/WDF.d.ts CHANGED
@@ -1,11 +1,9 @@
1
1
  import { WN } from './WN.js';
2
- import { Wrapped } from './WN-mixin.js';
3
2
  /**
4
3
  * Wraps a DocumentFragment (which is a descendant of Node)
5
4
  */
6
5
  export declare class WDF<T extends DocumentFragment = DocumentFragment> extends WN<T> {
7
6
  static from(ref: DocumentFragment): WDF;
7
+ static create(): WDF<DocumentFragment>;
8
8
  constructor(ref: T);
9
- byId(id: string, throwIfNotFound?: boolean): Wrapped | null;
10
- empty(): this;
11
9
  }
package/lib/WDF.js CHANGED
@@ -7,25 +7,14 @@ export class WDF extends WN {
7
7
  static from(ref) {
8
8
  return new WDF(ref);
9
9
  }
10
+ static create() {
11
+ return new WDF(document.createDocumentFragment());
12
+ }
10
13
  constructor(ref) {
11
14
  if (!isA(ref, DocumentFragment)) {
12
15
  throw new TypeError(`Expected a DocumentFragment. Got ${ref} (${typeof ref})`);
13
16
  }
14
17
  super(ref);
15
18
  }
16
- byId(id, throwIfNotFound = true) {
17
- const el = this.ref.getElementById(id);
18
- if (el) {
19
- return WN.wrap(el);
20
- }
21
- if (throwIfNotFound) {
22
- throw new TypeError(`Element with id ${id} not found`);
23
- }
24
- return null;
25
- }
26
- empty() {
27
- this.ref.replaceChildren();
28
- return this;
29
- }
30
19
  }
31
20
  //# sourceMappingURL=WDF.js.map
package/lib/WDF.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"WDF.js","sourceRoot":"","sources":["../src/WDF.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAG5B;;GAEG;AACH,MAAM,OAAO,GAAmD,SAAQ,EAAK;IACzE,MAAM,CAAC,IAAI,CAAC,GAAqB;QAC7B,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IAED,YAAY,GAAM;QACd,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,SAAS,CAAC,oCAAoC,GAAG,KAAK,OAAO,GAAG,GAAG,CAAC,CAAA;QAClF,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;IAED,IAAI,CAAC,EAAU,EAAE,eAAe,GAAG,IAAI;QACnC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;QACtC,IAAI,EAAE,EAAE,CAAC;YACL,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtB,CAAC;QACD,IAAI,eAAe,EAAE,CAAC;YAClB,MAAM,IAAI,SAAS,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAA;QAC1D,CAAC;QACD,OAAO,IAAI,CAAA;IACf,CAAC;IAED,KAAK;QACD,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAA;QAC1B,OAAO,IAAI,CAAA;IACf,CAAC;CACJ"}
1
+ {"version":3,"file":"WDF.js","sourceRoot":"","sources":["../src/WDF.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAG5B;;GAEG;AACH,MAAM,OAAO,GAAmD,SAAQ,EAAK;IACzE,MAAM,CAAC,IAAI,CAAC,GAAqB;QAC7B,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IAED,MAAM,CAAC,MAAM;QACT,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC,CAAA;IACrD,CAAC;IAED,YAAY,GAAM;QACd,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,SAAS,CAAC,oCAAoC,GAAG,KAAK,OAAO,GAAG,GAAG,CAAC,CAAA;QAClF,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;CACJ"}
package/lib/WE.d.ts CHANGED
@@ -33,10 +33,11 @@ export declare class WE<T extends Element = Element> extends WN<T> {
33
33
  getHtml(): string;
34
34
  setHtml(html: string): this;
35
35
  /**
36
+ * We prevent FOUC by assigning the template and CSS in one go
36
37
  * @remarks
37
38
  * **Note:** You can't attach a shadow root to every type of element. There are some that can't have a
38
39
  * shadow DOM for security reasons (for example `<a>`).
39
40
  */
40
- setShadow(mode?: ShadowRootMode, html?: string, ...styleSheets: CSSStyleSheet[]): this;
41
- getShadow(): WSH;
41
+ initShadow(mode?: ShadowRootMode, html?: string, ...styleSheets: CSSStyleSheet[]): this;
42
+ get shadow(): WSH<ShadowRoot> | null;
42
43
  }
package/lib/WE.js CHANGED
@@ -109,11 +109,12 @@ export class WE extends WN {
109
109
  return this;
110
110
  }
111
111
  /**
112
+ * We prevent FOUC by assigning the template and CSS in one go
112
113
  * @remarks
113
114
  * **Note:** You can't attach a shadow root to every type of element. There are some that can't have a
114
115
  * shadow DOM for security reasons (for example `<a>`).
115
116
  */
116
- setShadow(mode = 'open', html, ...styleSheets) {
117
+ initShadow(mode = 'open', html, ...styleSheets) {
117
118
  const shadowRoot = this.ref.shadowRoot ?? this.ref.attachShadow({ mode });
118
119
  if (html) {
119
120
  shadowRoot.innerHTML = html;
@@ -123,10 +124,8 @@ export class WE extends WN {
123
124
  }
124
125
  return this;
125
126
  }
126
- getShadow() {
127
- if (!this.ref.shadowRoot)
128
- throw new Error('No shadow root');
129
- return new WSH(this.ref.shadowRoot);
127
+ get shadow() {
128
+ return this.ref.shadowRoot ? new WSH(this.ref.shadowRoot) : null;
130
129
  }
131
130
  }
132
131
  //# sourceMappingURL=WE.js.map
package/lib/WE.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"WE.js","sourceRoot":"","sources":["../src/WE.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WE.js","sourceRoot":"","sources":["../src/WE.ts"],"names":[],"mappings":"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"}
package/lib/WN.d.ts CHANGED
@@ -16,6 +16,7 @@ export declare class WN<T extends Node = Node> {
16
16
  */
17
17
  static unwrapAll(iterable: Iterable<Wrappable>): Unwrapped[];
18
18
  static byId(id: string, throwIfNotFound?: boolean): Wrapped | null;
19
+ byId(id: string, throwIfNotFound?: boolean): Wrapped | null;
19
20
  static byClass(className: string): Wrapped[];
20
21
  static query(selector: string, throwIfNotFound?: boolean): Wrapped | null;
21
22
  query(selector: string, throwIfNotFound?: boolean): Wrapped | null;
@@ -31,4 +32,16 @@ export declare class WN<T extends Node = Node> {
31
32
  on(eventName: string, handler: EventListenerOrEventListenerObject): this;
32
33
  off(eventName: string, handler: EventListenerOrEventListenerObject): this;
33
34
  rm(): this;
35
+ empty(): this;
36
+ /**
37
+ * Runs a function in the context of this WN instance.
38
+ *
39
+ * @param fn - The function to run. `this` inside the function will refer to this WN instance.
40
+ * @param args - Arguments to pass to the function.
41
+ * @returns The return value of the function.
42
+ * @remark if the function throws, `run()` doesn't swallow the exception.
43
+ * So if you're expecting an error, make sure to wrap it in a `try..catch` block and handle the exception.
44
+ * @remark if the function returns a promise, you can `await` on the response.
45
+ */
46
+ run<R, Args extends any[]>(fn: (this: this, ...args: Args) => R, ...args: Args): R;
34
47
  }
package/lib/WN.js CHANGED
@@ -10,11 +10,21 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
12
  var _WN_ref;
13
- import { isA } from 'jty';
13
+ import { isA, isStr } from 'jty';
14
14
  import { off, on } from './util.js';
15
- /** @returns true if this.ref is an instance of descendant of Element or DocumentFragment */
16
- function isElementOrDocumentFragment(x) {
17
- return isA(x, Element) || isA(x, DocumentFragment);
15
+ /**
16
+ * Checks if a given reference is an instance or descendant of
17
+ * Document or DocumentFragment
18
+ */
19
+ function isDDF(x) {
20
+ return isA(x, Document) || isA(x, DocumentFragment);
21
+ }
22
+ /**
23
+ * Checks if a given reference is an instance or descendant of
24
+ * Element, Document or DocumentFragment
25
+ */
26
+ function isEDDF(x) {
27
+ return isA(x, Element) || isDDF(x);
18
28
  }
19
29
  /**
20
30
  * Wraps a DOM Node
@@ -40,6 +50,25 @@ export class WN {
40
50
  if (el) {
41
51
  return WN.wrap(el);
42
52
  }
53
+ if (throwIfNotFound) {
54
+ throw new TypeError(`Found no element with id ${id} in the document.`);
55
+ }
56
+ return null;
57
+ }
58
+ byId(id, throwIfNotFound = true) {
59
+ if (!isStr(id)) {
60
+ throw new TypeError(`Expected a string id. Got ${id} (${typeof id})`);
61
+ }
62
+ if (isA(this.ref, HTMLElement)) {
63
+ return this.query(`#${id}`, throwIfNotFound);
64
+ }
65
+ if (!isDDF(this.ref)) {
66
+ throw new TypeError(`Expected an Document or DocumentFragment. Got ${this.ref} (${typeof this.ref})`);
67
+ }
68
+ const el = this.ref.getElementById(id);
69
+ if (el) {
70
+ return WN.wrap(el);
71
+ }
43
72
  if (throwIfNotFound) {
44
73
  throw new TypeError(`Element with id ${id} not found`);
45
74
  }
@@ -59,8 +88,8 @@ export class WN {
59
88
  return null;
60
89
  }
61
90
  query(selector, throwIfNotFound = true) {
62
- if (!isElementOrDocumentFragment(this.ref)) {
63
- throw new TypeError(`Expected an Element or DocumentFragment. Got ${this.ref} (${typeof this.ref})`);
91
+ if (!isEDDF(this.ref)) {
92
+ throw new TypeError(`Expected an Element, Document or DocumentFragment. Got ${this.ref} (${typeof this.ref})`);
64
93
  }
65
94
  const queryResult = this.ref.querySelector(selector);
66
95
  if (queryResult) {
@@ -75,8 +104,8 @@ export class WN {
75
104
  return WN.wrapAll(document.querySelectorAll(selector));
76
105
  }
77
106
  queryAll(selector) {
78
- if (!isElementOrDocumentFragment(this.ref)) {
79
- throw new TypeError(`Expected an Element or DocumentFragment. Got ${this.ref} (${typeof this.ref})`);
107
+ if (!isEDDF(this.ref)) {
108
+ throw new TypeError(`Expected an Element, Document or DocumentFragment. Got ${this.ref} (${typeof this.ref})`);
80
109
  }
81
110
  return WN.wrapAll(this.ref.querySelectorAll(selector));
82
111
  }
@@ -95,7 +124,7 @@ export class WN {
95
124
  }
96
125
  append(...children) {
97
126
  const nodes = WN.unwrapAll(children);
98
- if (isElementOrDocumentFragment(this.ref)) {
127
+ if (isEDDF(this.ref)) {
99
128
  this.ref.append(...nodes);
100
129
  }
101
130
  else {
@@ -112,7 +141,7 @@ export class WN {
112
141
  }
113
142
  prepend(...children) {
114
143
  const nodes = WN.unwrapAll(children);
115
- if (isElementOrDocumentFragment(this.ref)) {
144
+ if (isEDDF(this.ref)) {
116
145
  this.ref.prepend(...nodes);
117
146
  }
118
147
  else {
@@ -140,6 +169,26 @@ export class WN {
140
169
  this.ref.parentNode?.removeChild(this.ref);
141
170
  return this;
142
171
  }
172
+ empty() {
173
+ if (!isEDDF(this.ref)) {
174
+ throw new TypeError(`Expected an Element, Document or DocumentFragment. Got ${this.ref} (${typeof this.ref})`);
175
+ }
176
+ this.ref.replaceChildren();
177
+ return this;
178
+ }
179
+ /**
180
+ * Runs a function in the context of this WN instance.
181
+ *
182
+ * @param fn - The function to run. `this` inside the function will refer to this WN instance.
183
+ * @param args - Arguments to pass to the function.
184
+ * @returns The return value of the function.
185
+ * @remark if the function throws, `run()` doesn't swallow the exception.
186
+ * So if you're expecting an error, make sure to wrap it in a `try..catch` block and handle the exception.
187
+ * @remark if the function returns a promise, you can `await` on the response.
188
+ */
189
+ run(fn, ...args) {
190
+ return fn.call(this, ...args);
191
+ }
143
192
  }
144
193
  _WN_ref = new WeakMap();
145
194
  //# sourceMappingURL=WN.js.map
package/lib/WN.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"WN.js","sourceRoot":"","sources":["../src/WN.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WN.js","sourceRoot":"","sources":["../src/WN.ts"],"names":[],"mappings":"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"}
package/lib/WSE.d.ts ADDED
@@ -0,0 +1,25 @@
1
+ import { WE } from './WE.js';
2
+ /**
3
+ * Wraps a DOM SVGElement
4
+ */
5
+ export declare class WSE<T extends SVGElement = SVGElement> extends WE<T> {
6
+ static from(ref: SVGElement): WSE;
7
+ static fromTag(tagName: string, options?: ElementCreationOptions): WSE;
8
+ constructor(ref: T);
9
+ getText(): string;
10
+ setText(text: string): this;
11
+ empty(): this;
12
+ getData(name: string): string | undefined;
13
+ hasData(name: string): boolean;
14
+ setData(name: string, value: string): this;
15
+ setDataObj(obj: Record<string, string>): this;
16
+ rmData(name: string): this;
17
+ setFill(value: string): this;
18
+ setStroke(value: string): this;
19
+ setStrokeWidth(value: string | number): this;
20
+ setViewBox(p1: string | (string | number)[] | number, p2?: number, p3?: number, p4?: number): this;
21
+ setWidth(value: string | number): this;
22
+ setHeight(value: string | number): this;
23
+ setD(value: string | (string | number)[]): this;
24
+ setTransform(value: string): this;
25
+ }