jj 0.1.1 → 2.0.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 (89) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +35 -7
  3. package/lib/ComponentFiles.d.ts +35 -0
  4. package/lib/ComponentFiles.js +116 -0
  5. package/lib/ComponentFiles.js.map +1 -0
  6. package/lib/WC.d.ts +33 -0
  7. package/lib/WC.js +160 -0
  8. package/lib/WC.js.map +1 -0
  9. package/lib/WDF.d.ts +11 -0
  10. package/lib/WDF.js +31 -0
  11. package/lib/WDF.js.map +1 -0
  12. package/lib/WE.d.ts +42 -0
  13. package/lib/WE.js +132 -0
  14. package/lib/WE.js.map +1 -0
  15. package/lib/WF.d.ts +14 -0
  16. package/lib/WF.js +44 -0
  17. package/lib/WF.js.map +1 -0
  18. package/lib/WHE.d.ts +21 -0
  19. package/lib/WHE.js +75 -0
  20. package/lib/WHE.js.map +1 -0
  21. package/lib/WN-mixin.d.ts +9 -0
  22. package/lib/WN-mixin.js +59 -0
  23. package/lib/WN-mixin.js.map +1 -0
  24. package/lib/WN.d.ts +34 -0
  25. package/lib/WN.js +145 -0
  26. package/lib/WN.js.map +1 -0
  27. package/lib/WS.d.ts +11 -0
  28. package/lib/WS.js +32 -0
  29. package/lib/WS.js.map +1 -0
  30. package/lib/WSH.d.ts +11 -0
  31. package/lib/WSH.js +29 -0
  32. package/lib/WSH.js.map +1 -0
  33. package/lib/WT.d.ts +12 -0
  34. package/lib/WT.js +39 -0
  35. package/lib/WT.js.map +1 -0
  36. package/lib/Welem.d.ts +49 -0
  37. package/lib/Welem.js +173 -0
  38. package/lib/Welem.js.map +1 -0
  39. package/lib/Wfrag.d.ts +15 -0
  40. package/lib/Wfrag.js +56 -0
  41. package/lib/Wfrag.js.map +1 -0
  42. package/lib/Whelem.d.ts +17 -0
  43. package/lib/Whelem.js +69 -0
  44. package/lib/Whelem.js.map +1 -0
  45. package/lib/Wnode.d.ts +6 -0
  46. package/lib/Wnode.js +33 -0
  47. package/lib/Wnode.js.map +1 -0
  48. package/lib/Wshad.d.ts +9 -0
  49. package/lib/Wshad.js +31 -0
  50. package/lib/Wshad.js.map +1 -0
  51. package/lib/bundle.js +737 -0
  52. package/lib/bundle.js.map +7 -0
  53. package/lib/bundle.min.js +3 -0
  54. package/lib/case.d.ts +3 -0
  55. package/lib/case.js +34 -0
  56. package/lib/case.js.map +1 -0
  57. package/lib/case.test.d.ts +1 -0
  58. package/lib/case.test.js +79 -0
  59. package/lib/case.test.js.map +1 -0
  60. package/lib/h.d.ts +3 -0
  61. package/lib/h.js +9 -0
  62. package/lib/h.js.map +1 -0
  63. package/lib/index.d.ts +11 -0
  64. package/lib/index.js +12 -0
  65. package/lib/index.js.map +1 -0
  66. package/lib/util.d.ts +5 -0
  67. package/lib/util.js +19 -0
  68. package/lib/util.js.map +1 -0
  69. package/lib/wrap-unwrap.d.ts +22 -0
  70. package/lib/wrap-unwrap.js +68 -0
  71. package/lib/wrap-unwrap.js.map +1 -0
  72. package/package.json +56 -26
  73. package/CSS.js +0 -145
  74. package/Router.js +0 -89
  75. package/Selector.js +0 -175
  76. package/Tag.js +0 -827
  77. package/control.js +0 -74
  78. package/dist/jj.js +0 -1580
  79. package/dist/jj.js.gz +0 -0
  80. package/dist/jj.min.js +0 -1
  81. package/dist/jj.min.js.gz +0 -0
  82. package/dist/jj.min.js.map +0 -1
  83. package/events.js +0 -16
  84. package/index.js +0 -26
  85. package/observer.js +0 -27
  86. package/rollup.config.js +0 -25
  87. package/unit.js +0 -78
  88. package/util.js +0 -153
  89. package/win.js +0 -11
package/lib/WE.js ADDED
@@ -0,0 +1,132 @@
1
+ import { isA, isObj } from 'jty';
2
+ import { WN } from './WN.js';
3
+ import { WSH } from './WSH.js';
4
+ /**
5
+ * Wraps a DOM Element (which is a descendant of Node)
6
+ */
7
+ export class WE extends WN {
8
+ static from(ref) {
9
+ return new WE(ref);
10
+ }
11
+ constructor(ref) {
12
+ if (!isA(ref, Element)) {
13
+ throw new TypeError(`Expected a Element. Got: ${ref} (${typeof ref})`);
14
+ }
15
+ super(ref);
16
+ }
17
+ getAttr(name) {
18
+ return this.ref.getAttribute(name);
19
+ }
20
+ hasAttr(name) {
21
+ return this.ref.hasAttribute(name);
22
+ }
23
+ setAttr(name, value) {
24
+ this.ref.setAttribute(name, value);
25
+ return this;
26
+ }
27
+ setAttrs(obj) {
28
+ if (!isObj(obj)) {
29
+ throw new TypeError(`Expected an object. Got: ${obj} (${typeof obj})`);
30
+ }
31
+ for (const [name, value] of Object.entries(obj)) {
32
+ this.setAttr(name, value);
33
+ }
34
+ return this;
35
+ }
36
+ rmAttr(name) {
37
+ return this.rmAttrs(name);
38
+ }
39
+ rmAttrs(...names) {
40
+ for (const name of names) {
41
+ this.ref.removeAttribute(name);
42
+ }
43
+ return this;
44
+ }
45
+ getAria(name) {
46
+ return this.ref.getAttribute(`aria-${name}`);
47
+ }
48
+ hasAria(name) {
49
+ return this.ref.hasAttribute(`aria-${name}`);
50
+ }
51
+ setAria(name, value) {
52
+ this.ref.setAttribute(`aria-${name}`, value);
53
+ return this;
54
+ }
55
+ rmAria(name) {
56
+ this.ref.removeAttribute(`aria-${name}`);
57
+ return this;
58
+ }
59
+ addClass(...classNames) {
60
+ this.ref.classList.add(...classNames);
61
+ return this;
62
+ }
63
+ rmClasses(...classNames) {
64
+ this.ref.classList.remove(...classNames);
65
+ return this;
66
+ }
67
+ rmClass(className) {
68
+ return this.rmClasses(className);
69
+ }
70
+ hasClass(className) {
71
+ return this.ref.classList.contains(className);
72
+ }
73
+ toggleClass(className) {
74
+ this.ref.classList.toggle(className);
75
+ return this;
76
+ }
77
+ onClick(handler) {
78
+ return this.on('click', handler);
79
+ }
80
+ hide() {
81
+ return this.setAttr('hidden', '').setAttr('aria-hidden', 'true');
82
+ }
83
+ show() {
84
+ return this.rmAttrs('hidden', 'aria-hidden');
85
+ }
86
+ disable() {
87
+ return this.setAttr('disabled', '').setAttr('aria-disabled', 'true');
88
+ }
89
+ enable() {
90
+ return this.rmAttrs('disabled', 'aria-disabled');
91
+ }
92
+ getTitle() {
93
+ return this.getAttr('title');
94
+ }
95
+ setTitle(title) {
96
+ return this.setAttr('title', title);
97
+ }
98
+ setId(id) {
99
+ return this.setAttr('id', id);
100
+ }
101
+ getId() {
102
+ return this.getAttr('id');
103
+ }
104
+ getHtml() {
105
+ return this.ref.innerHTML;
106
+ }
107
+ setHtml(html) {
108
+ this.ref.innerHTML = html;
109
+ return this;
110
+ }
111
+ /**
112
+ * @remarks
113
+ * **Note:** You can't attach a shadow root to every type of element. There are some that can't have a
114
+ * shadow DOM for security reasons (for example `<a>`).
115
+ */
116
+ setShadow(mode = 'open', html, ...styleSheets) {
117
+ const shadowRoot = this.ref.shadowRoot ?? this.ref.attachShadow({ mode });
118
+ if (html) {
119
+ shadowRoot.innerHTML = html;
120
+ }
121
+ if (styleSheets.length) {
122
+ shadowRoot.adoptedStyleSheets.push(...styleSheets);
123
+ }
124
+ return this;
125
+ }
126
+ getShadow() {
127
+ if (!this.ref.shadowRoot)
128
+ throw new Error('No shadow root');
129
+ return new WSH(this.ref.shadowRoot);
130
+ }
131
+ }
132
+ //# sourceMappingURL=WE.js.map
package/lib/WE.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WE.js","sourceRoot":"","sources":["../src/WE.ts"],"names":[],"mappings":"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"}
package/lib/WF.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ import { WN } from './WN.js';
2
+ import { WE } from './WE.js';
3
+ /**
4
+ * Wraps a DocumentFragment (which is a descendant of Node)
5
+ */
6
+ export declare class WF<T extends DocumentFragment = DocumentFragment> extends WN<T> {
7
+ static from(fragment: DocumentFragment): WF;
8
+ constructor(ref: T);
9
+ set ref(val: T);
10
+ byId(id: string): WE;
11
+ query(selector: string): WE | null;
12
+ queryAll(selector: string): WE[];
13
+ empty(): this;
14
+ }
package/lib/WF.js ADDED
@@ -0,0 +1,44 @@
1
+ import { isA } from 'jty';
2
+ import { WN } from './WN.js';
3
+ import { WE } from './WE.js';
4
+ /**
5
+ * Wraps a DocumentFragment (which is a descendant of Node)
6
+ */
7
+ export class WF extends WN {
8
+ static from(fragment) {
9
+ if (!isA(fragment, DocumentFragment)) {
10
+ throw new TypeError(`Expected a DocumentFragment. Got ${fragment} (${typeof fragment})`);
11
+ }
12
+ return new WF(fragment);
13
+ }
14
+ constructor(ref) {
15
+ if (!isA(ref, DocumentFragment)) {
16
+ throw new TypeError(`Expected a DocumentFragment. Got ${ref} (${typeof ref})`);
17
+ }
18
+ super(ref);
19
+ }
20
+ set ref(val) {
21
+ if (!isA(val, DocumentFragment)) {
22
+ throw new TypeError(`Expected a DocumentFragment. Got ${val} (${typeof val})`);
23
+ }
24
+ super.ref = val;
25
+ }
26
+ byId(id) {
27
+ const el = this.ref.getElementById(id);
28
+ if (!el)
29
+ throw new TypeError(`Element with id ${id} not found`);
30
+ return WE.from(el);
31
+ }
32
+ query(selector) {
33
+ const result = this.ref.querySelector(selector);
34
+ return result === null ? result : WE.from(result);
35
+ }
36
+ queryAll(selector) {
37
+ return WE.fromIter(this.ref.querySelectorAll(selector));
38
+ }
39
+ empty() {
40
+ this.ref.replaceChildren();
41
+ return this;
42
+ }
43
+ }
44
+ //# sourceMappingURL=WF.js.map
package/lib/WF.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WF.js","sourceRoot":"","sources":["../src/WF.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAE5B;;GAEG;AACH,MAAM,OAAO,EAAkD,SAAQ,EAAK;IACxE,MAAM,CAAC,IAAI,CAAC,QAA0B;QAClC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,SAAS,CAAC,oCAAoC,QAAQ,KAAK,OAAO,QAAQ,GAAG,CAAC,CAAA;QAC5F,CAAC;QACD,OAAO,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAA;IAC3B,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,GAAG,CAAC,GAAM;QACV,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,GAAG,GAAG,CAAA;IACnB,CAAC;IAED,IAAI,CAAC,EAAU;QACX,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;QACtC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,SAAS,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAA;QAC/D,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,QAAgB;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAC/C,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrD,CAAC;IAED,QAAQ,CAAC,QAAgB;QACrB,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK;QACD,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAA;QAC1B,OAAO,IAAI,CAAA;IACf,CAAC;CACJ"}
package/lib/WHE.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ import { WE } from './WE.js';
2
+ /**
3
+ * Wraps a DOM HTMLElement (which is a descendant of Element)
4
+ */
5
+ export declare class WHE<T extends HTMLElement = HTMLElement> extends WE<T> {
6
+ static from(ref: HTMLElement): WHE;
7
+ static fromTag(tagName: string, options?: ElementCreationOptions): WHE;
8
+ constructor(ref: T);
9
+ getValue(): unknown;
10
+ setValue(value: string): this;
11
+ getData(name: string): string | undefined;
12
+ hasData(name: string): boolean;
13
+ setData(name: string, value: string): this;
14
+ setDataObj(obj: Record<string, string>): this;
15
+ rmData(name: string): this;
16
+ focus(): this;
17
+ click(): this;
18
+ empty(): this;
19
+ getText(): string;
20
+ setText(text: string): this;
21
+ }
package/lib/WHE.js ADDED
@@ -0,0 +1,75 @@
1
+ import { hasProp, isA, isStr } from 'jty';
2
+ import { WE } from './WE.js';
3
+ /**
4
+ * Wraps a DOM HTMLElement (which is a descendant of Element)
5
+ */
6
+ export class WHE extends WE {
7
+ static from(ref) {
8
+ return new WHE(ref);
9
+ }
10
+ static fromTag(tagName, options) {
11
+ if (!isStr(tagName)) {
12
+ throw new TypeError(`Expected a string for tagName. Got: ${tagName} (${typeof tagName})`);
13
+ }
14
+ return new WHE(document.createElement(tagName, options));
15
+ }
16
+ constructor(ref) {
17
+ if (!isA(ref, HTMLElement)) {
18
+ throw new TypeError(`Expected a HTMLElement. Got ${ref} (${typeof ref})`);
19
+ }
20
+ super(ref);
21
+ }
22
+ getValue() {
23
+ if (!hasProp(this.ref, 'value')) {
24
+ throw new Error('Element does not have a value property');
25
+ }
26
+ return this.ref.value;
27
+ }
28
+ setValue(value) {
29
+ if (!hasProp(this.ref, 'value')) {
30
+ throw new Error('Element does not have a value property');
31
+ }
32
+ this.ref.value = value;
33
+ return this;
34
+ }
35
+ getData(name) {
36
+ return this.ref.dataset[name];
37
+ }
38
+ hasData(name) {
39
+ return hasProp(this.ref.dataset, name);
40
+ }
41
+ setData(name, value) {
42
+ this.ref.dataset[name] = value;
43
+ return this;
44
+ }
45
+ setDataObj(obj) {
46
+ for (const [name, value] of Object.entries(obj)) {
47
+ this.setData(name, value);
48
+ }
49
+ return this;
50
+ }
51
+ rmData(name) {
52
+ delete this.ref.dataset[name];
53
+ return this;
54
+ }
55
+ focus() {
56
+ this.ref.focus();
57
+ return this;
58
+ }
59
+ click() {
60
+ this.ref.click();
61
+ return this;
62
+ }
63
+ empty() {
64
+ this.ref.innerText = '';
65
+ return this;
66
+ }
67
+ getText() {
68
+ return this.ref.innerText;
69
+ }
70
+ setText(text) {
71
+ this.ref.innerText = text;
72
+ return this;
73
+ }
74
+ }
75
+ //# sourceMappingURL=WHE.js.map
package/lib/WHE.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WHE.js","sourceRoot":"","sources":["../src/WHE.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { WHE } from './WHE.js';
2
+ import { WE } from './WE.js';
3
+ import { WDF } from './WDF.js';
4
+ import { WSH } from './WSH.js';
5
+ import { WT } from './WT.js';
6
+ import { WN } from './WN.js';
7
+ export type Wrappable = WN | Node | string;
8
+ export type Wrapped = WHE | WE | WDF | WSH | WDF | WT | WN;
9
+ export type Unwrapped = HTMLElement | Element | ShadowRoot | DocumentFragment | Text | Node;
@@ -0,0 +1,59 @@
1
+ import { isA, isObj, isStr } from 'jty';
2
+ import { WHE } from './WHE.js';
3
+ import { WE } from './WE.js';
4
+ import { WDF } from './WDF.js';
5
+ import { WSH } from './WSH.js';
6
+ import { WT } from './WT.js';
7
+ import { WN } from './WN.js';
8
+ /**
9
+ * @returns the most granual Wrapped subclass.
10
+ */
11
+ WN.wrap = (raw) => {
12
+ if (isStr(raw)) {
13
+ return WT.from(document.createTextNode(raw));
14
+ }
15
+ if (!isObj(raw)) {
16
+ throw new TypeError(`Expected an object to wrap. Got ${raw} (${typeof raw})`);
17
+ }
18
+ if (isA(raw, WN)) {
19
+ return raw;
20
+ }
21
+ if (isA(raw, HTMLElement)) {
22
+ return WHE.from(raw);
23
+ }
24
+ if (isA(raw, Element)) {
25
+ return WE.from(raw);
26
+ }
27
+ if (isA(raw, ShadowRoot)) {
28
+ return WSH.from(raw);
29
+ }
30
+ if (isA(raw, DocumentFragment)) {
31
+ return WDF.from(raw);
32
+ }
33
+ if (isA(raw, Text)) {
34
+ return WT.from(raw);
35
+ }
36
+ if (isA(raw, Node)) {
37
+ return WN.from(raw);
38
+ }
39
+ throw new TypeError(`Only Frag or DocumentFragment can be wrapped. Got ${raw} (${typeof raw})`);
40
+ };
41
+ /**
42
+ * @returns the original DOM node wrapped in the appropriate class
43
+ */
44
+ WN.unwrap = (obj) => {
45
+ if (isStr(obj)) {
46
+ return document.createTextNode(obj);
47
+ }
48
+ if (!isObj(obj)) {
49
+ throw new TypeError(`Expected an object. Got ${obj} (${typeof obj})`);
50
+ }
51
+ if (isA(obj, Node)) {
52
+ return obj;
53
+ }
54
+ if (isA(obj, WN)) {
55
+ return obj.ref;
56
+ }
57
+ throw new TypeError(`Could not unwrap ${obj} (${typeof obj})`);
58
+ };
59
+ //# sourceMappingURL=WN-mixin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WN-mixin.js","sourceRoot":"","sources":["../src/WN-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,CAAA;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAM5B;;GAEG;AACH,EAAE,CAAC,IAAI,GAAG,CAAC,GAAc,EAAW,EAAE;IAClC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACb,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;IAChD,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,SAAS,CAAC,mCAAmC,GAAG,KAAK,OAAO,GAAG,GAAG,CAAC,CAAA;IACjF,CAAC;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;QACf,OAAO,GAAG,CAAA;IACd,CAAC;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,qDAAqD,GAAG,KAAK,OAAO,GAAG,GAAG,CAAC,CAAA;AACnG,CAAC,CAAA;AAED;;GAEG;AACH,EAAE,CAAC,MAAM,GAAG,CAAC,GAAc,EAAa,EAAE;IACtC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IACvC,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,SAAS,CAAC,2BAA2B,GAAG,KAAK,OAAO,GAAG,GAAG,CAAC,CAAA;IACzE,CAAC;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;QACjB,OAAO,GAAG,CAAA;IACd,CAAC;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,GAAG,CAAA;IAClB,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,oBAAoB,GAAG,KAAK,OAAO,GAAG,GAAG,CAAC,CAAA;AAClE,CAAC,CAAA"}
package/lib/WN.d.ts ADDED
@@ -0,0 +1,34 @@
1
+ import { Unwrapped, Wrappable, Wrapped } from './WN-mixin.js';
2
+ /**
3
+ * Wraps a DOM Node
4
+ */
5
+ export declare class WN<T extends Node = Node> {
6
+ #private;
7
+ static from(node: Node): WN;
8
+ static wrap: (raw: Wrappable) => Wrapped;
9
+ static unwrap: (obj: Wrappable) => Unwrapped;
10
+ /**
11
+ * wraps an iteratable object (e.g. an array of wrapped or DOM elements)
12
+ */
13
+ static wrapAll(iterable: Iterable<Wrappable>): Wrapped[];
14
+ /**
15
+ * unwraps an iteratable object (e.g. an array of HTMLCollection)
16
+ */
17
+ static unwrapAll(iterable: Iterable<Wrappable>): Unwrapped[];
18
+ static byId(id: string, throwIfNotFound?: boolean): Wrapped | null;
19
+ static byClass(className: string): Wrapped[];
20
+ static query(selector: string, throwIfNotFound?: boolean): Wrapped | null;
21
+ query(selector: string, throwIfNotFound?: boolean): Wrapped | null;
22
+ static queryAll(selector: string): Wrapped[];
23
+ queryAll(selector: string): Wrapped[];
24
+ constructor(ref: T);
25
+ get ref(): T;
26
+ clone(deep?: boolean): Wrapped;
27
+ append(...children: Wrappable[]): this;
28
+ mapAppend<T>(array: Wrappable[], mapFn: (item: Wrappable) => Wrappable): this;
29
+ prepend(...children: Wrappable[]): this;
30
+ mapPrepend<T>(array: Wrappable[], mapFn: (item: Wrappable) => Wrappable): this;
31
+ on(eventName: string, handler: EventListenerOrEventListenerObject): this;
32
+ off(eventName: string, handler: EventListenerOrEventListenerObject): this;
33
+ rm(): this;
34
+ }
package/lib/WN.js ADDED
@@ -0,0 +1,145 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ 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");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ 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");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _WN_ref;
13
+ import { isA } from 'jty';
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);
18
+ }
19
+ /**
20
+ * Wraps a DOM Node
21
+ */
22
+ export class WN {
23
+ static from(node) {
24
+ return new WN(node);
25
+ }
26
+ /**
27
+ * wraps an iteratable object (e.g. an array of wrapped or DOM elements)
28
+ */
29
+ static wrapAll(iterable) {
30
+ return Array.from(iterable, WN.wrap);
31
+ }
32
+ /**
33
+ * unwraps an iteratable object (e.g. an array of HTMLCollection)
34
+ */
35
+ static unwrapAll(iterable) {
36
+ return Array.from(iterable, WN.unwrap);
37
+ }
38
+ static byId(id, throwIfNotFound = true) {
39
+ const el = document.getElementById(id);
40
+ if (el) {
41
+ return WN.wrap(el);
42
+ }
43
+ if (throwIfNotFound) {
44
+ throw new TypeError(`Element with id ${id} not found`);
45
+ }
46
+ return null;
47
+ }
48
+ static byClass(className) {
49
+ return WN.wrapAll(document.getElementsByClassName(className));
50
+ }
51
+ static query(selector, throwIfNotFound = true) {
52
+ const queryResult = document.querySelector(selector);
53
+ if (queryResult) {
54
+ return WN.wrap(queryResult);
55
+ }
56
+ if (throwIfNotFound) {
57
+ throw new TypeError(`Element with selector ${selector} not found`);
58
+ }
59
+ return null;
60
+ }
61
+ query(selector, throwIfNotFound = true) {
62
+ if (!isElementOrDocumentFragment(this.ref)) {
63
+ throw new TypeError(`Expected an Element or DocumentFragment. Got ${this.ref} (${typeof this.ref})`);
64
+ }
65
+ const queryResult = this.ref.querySelector(selector);
66
+ if (queryResult) {
67
+ return WN.wrap(queryResult);
68
+ }
69
+ if (throwIfNotFound) {
70
+ throw new TypeError(`Element with selector ${selector} not found`);
71
+ }
72
+ return null;
73
+ }
74
+ static queryAll(selector) {
75
+ return WN.wrapAll(document.querySelectorAll(selector));
76
+ }
77
+ queryAll(selector) {
78
+ if (!isElementOrDocumentFragment(this.ref)) {
79
+ throw new TypeError(`Expected an Element or DocumentFragment. Got ${this.ref} (${typeof this.ref})`);
80
+ }
81
+ return WN.wrapAll(this.ref.querySelectorAll(selector));
82
+ }
83
+ constructor(ref) {
84
+ _WN_ref.set(this, void 0);
85
+ if (!isA(ref, Node)) {
86
+ throw new TypeError(`Expected a Node. Got ${ref} (${typeof ref})`);
87
+ }
88
+ __classPrivateFieldSet(this, _WN_ref, ref, "f");
89
+ }
90
+ get ref() {
91
+ return __classPrivateFieldGet(this, _WN_ref, "f");
92
+ }
93
+ clone(deep) {
94
+ return WN.wrap(this.ref.cloneNode(deep));
95
+ }
96
+ append(...children) {
97
+ const nodes = WN.unwrapAll(children);
98
+ if (isElementOrDocumentFragment(this.ref)) {
99
+ this.ref.append(...nodes);
100
+ }
101
+ else {
102
+ for (const node of nodes) {
103
+ if (node) {
104
+ this.ref.appendChild(node);
105
+ }
106
+ }
107
+ }
108
+ return this;
109
+ }
110
+ mapAppend(array, mapFn) {
111
+ return this.append(...array.map(mapFn));
112
+ }
113
+ prepend(...children) {
114
+ const nodes = WN.unwrapAll(children);
115
+ if (isElementOrDocumentFragment(this.ref)) {
116
+ this.ref.prepend(...nodes);
117
+ }
118
+ else {
119
+ const first = this.ref.firstChild;
120
+ for (const node of nodes) {
121
+ if (node) {
122
+ this.ref.insertBefore(node, first);
123
+ }
124
+ }
125
+ }
126
+ return this;
127
+ }
128
+ mapPrepend(array, mapFn) {
129
+ return this.prepend(...array.map(mapFn));
130
+ }
131
+ on(eventName, handler) {
132
+ on(this.ref, eventName, handler);
133
+ return this;
134
+ }
135
+ off(eventName, handler) {
136
+ off(this.ref, eventName, handler);
137
+ return this;
138
+ }
139
+ rm() {
140
+ this.ref.parentNode?.removeChild(this.ref);
141
+ return this;
142
+ }
143
+ }
144
+ _WN_ref = new WeakMap();
145
+ //# sourceMappingURL=WN.js.map
package/lib/WN.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WN.js","sourceRoot":"","sources":["../src/WN.ts"],"names":[],"mappings":"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"}
package/lib/WS.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ import { WF } from './WF.js';
2
+ /**
3
+ * Wraps a DOM ShadowRoot node (which is a descendant of DocumentFragment)
4
+ */
5
+ export declare class WS<T extends ShadowRoot = ShadowRoot> extends WF<T> {
6
+ constructor(shadow: T);
7
+ set ref(value: T);
8
+ getHtml(): string;
9
+ setHtml(value: string, unsafe: false): this;
10
+ addStyleSheets(...styleSheets: CSSStyleSheet[]): this;
11
+ }
package/lib/WS.js ADDED
@@ -0,0 +1,32 @@
1
+ import { isA } from 'jty';
2
+ import { WF } from './WF.js';
3
+ /**
4
+ * Wraps a DOM ShadowRoot node (which is a descendant of DocumentFragment)
5
+ */
6
+ export class WS extends WF {
7
+ constructor(shadow) {
8
+ if (!isA(shadow, ShadowRoot)) {
9
+ throw new TypeError(`Expected a ShadowRoot. Got ${shadow} (${typeof shadow})`);
10
+ }
11
+ super(shadow);
12
+ }
13
+ set ref(value) {
14
+ if (!isA(value, ShadowRoot)) {
15
+ throw new TypeError(`Expected a ShadowRoot. Got ${value} (${typeof value})`);
16
+ }
17
+ super.ref = value;
18
+ }
19
+ getHtml() {
20
+ return this.ref.innerHTML;
21
+ }
22
+ setHtml(value, unsafe) {
23
+ // TODO: https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot/setHTMLUnsafe
24
+ this.ref.innerHTML = value;
25
+ return this;
26
+ }
27
+ addStyleSheets(...styleSheets) {
28
+ this.ref.adoptedStyleSheets.push(...styleSheets);
29
+ return this;
30
+ }
31
+ }
32
+ //# sourceMappingURL=WS.js.map
package/lib/WS.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WS.js","sourceRoot":"","sources":["../src/WS.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAE5B;;GAEG;AACH,MAAM,OAAO,EAAsC,SAAQ,EAAK;IAC5D,YAAY,MAAS;QACjB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,SAAS,CAAC,8BAA8B,MAAM,KAAK,OAAO,MAAM,GAAG,CAAC,CAAA;QAClF,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,GAAG,CAAC,KAAQ;QACZ,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,SAAS,CAAC,8BAA8B,KAAK,KAAK,OAAO,KAAK,GAAG,CAAC,CAAA;QAChF,CAAC;QACD,KAAK,CAAC,GAAG,GAAG,KAAK,CAAA;IACrB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAA;IAC7B,CAAC;IAED,OAAO,CAAC,KAAa,EAAE,MAAa;QAChC,kFAAkF;QAClF,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAA;QAC1B,OAAO,IAAI,CAAA;IACf,CAAC;IAED,cAAc,CAAC,GAAG,WAA4B;QAC1C,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAA;QAChD,OAAO,IAAI,CAAA;IACf,CAAC;CACJ"}
package/lib/WSH.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ import { WDF } from './WDF.js';
2
+ /**
3
+ * Wraps a DOM ShadowRoot node (which is a descendant of DocumentFragment)
4
+ */
5
+ export declare class WSH<T extends ShadowRoot = ShadowRoot> extends WDF<T> {
6
+ static from(shadow: ShadowRoot): WSH<ShadowRoot>;
7
+ constructor(shadow: T);
8
+ getHtml(): string;
9
+ setHtml(value: string, unsafe: false): this;
10
+ addStyleSheets(...styleSheets: CSSStyleSheet[]): this;
11
+ }
package/lib/WSH.js ADDED
@@ -0,0 +1,29 @@
1
+ import { isA } from 'jty';
2
+ import { WDF } from './WDF.js';
3
+ /**
4
+ * Wraps a DOM ShadowRoot node (which is a descendant of DocumentFragment)
5
+ */
6
+ export class WSH extends WDF {
7
+ static from(shadow) {
8
+ return new WSH(shadow);
9
+ }
10
+ constructor(shadow) {
11
+ if (!isA(shadow, ShadowRoot)) {
12
+ throw new TypeError(`Expected a ShadowRoot. Got ${shadow} (${typeof shadow})`);
13
+ }
14
+ super(shadow);
15
+ }
16
+ getHtml() {
17
+ return this.ref.innerHTML;
18
+ }
19
+ setHtml(value, unsafe) {
20
+ // TODO: https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot/setHTMLUnsafe
21
+ this.ref.innerHTML = value;
22
+ return this;
23
+ }
24
+ addStyleSheets(...styleSheets) {
25
+ this.ref.adoptedStyleSheets.push(...styleSheets);
26
+ return this;
27
+ }
28
+ }
29
+ //# sourceMappingURL=WSH.js.map