@joist/element 4.7.0 → 4.8.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 (81) hide show
  1. package/package.json +1 -1
  2. package/target/lib/attr-changed.d.ts +3 -0
  3. package/target/lib/attr-changed.d.ts.map +1 -0
  4. package/target/lib/attr-changed.js +12 -0
  5. package/target/lib/attr-changed.js.map +1 -0
  6. package/target/lib/attr-changed.test.d.ts +2 -0
  7. package/target/lib/attr-changed.test.d.ts.map +1 -0
  8. package/target/lib/attr-changed.test.js +150 -0
  9. package/target/lib/attr-changed.test.js.map +1 -0
  10. package/target/lib/attr.d.ts +7 -0
  11. package/target/lib/attr.d.ts.map +1 -0
  12. package/target/lib/attr.js +66 -0
  13. package/target/lib/attr.js.map +1 -0
  14. package/target/lib/attr.test.d.ts +2 -0
  15. package/target/lib/attr.test.d.ts.map +1 -0
  16. package/target/lib/attr.test.js +520 -0
  17. package/target/lib/attr.test.js.map +1 -0
  18. package/target/lib/define.d.ts +6 -0
  19. package/target/lib/define.d.ts.map +1 -0
  20. package/target/lib/define.js +14 -0
  21. package/target/lib/define.js.map +1 -0
  22. package/target/lib/element.d.ts +12 -0
  23. package/target/lib/element.d.ts.map +1 -0
  24. package/target/lib/element.js +118 -0
  25. package/target/lib/element.js.map +1 -0
  26. package/target/lib/element.test.d.ts +2 -0
  27. package/target/lib/element.test.d.ts.map +1 -0
  28. package/target/lib/element.test.js +365 -0
  29. package/target/lib/element.test.js.map +1 -0
  30. package/target/lib/lifecycle.d.ts +2 -0
  31. package/target/lib/lifecycle.d.ts.map +1 -0
  32. package/target/lib/lifecycle.js +8 -0
  33. package/target/lib/lifecycle.js.map +1 -0
  34. package/target/lib/lifecycle.test.d.ts +2 -0
  35. package/target/lib/lifecycle.test.d.ts.map +1 -0
  36. package/target/lib/lifecycle.test.js +81 -0
  37. package/target/lib/lifecycle.test.js.map +1 -0
  38. package/target/lib/listen.d.ts +3 -0
  39. package/target/lib/listen.d.ts.map +1 -0
  40. package/target/lib/listen.js +26 -0
  41. package/target/lib/listen.js.map +1 -0
  42. package/target/lib/listen.test.d.ts +2 -0
  43. package/target/lib/listen.test.d.ts.map +1 -0
  44. package/target/lib/listen.test.js +305 -0
  45. package/target/lib/listen.test.js.map +1 -0
  46. package/target/lib/metadata.d.ts +31 -0
  47. package/target/lib/metadata.d.ts.map +1 -0
  48. package/target/lib/metadata.js +21 -0
  49. package/target/lib/metadata.js.map +1 -0
  50. package/target/lib/query-all.d.ts +11 -0
  51. package/target/lib/query-all.d.ts.map +1 -0
  52. package/target/lib/query-all.js +40 -0
  53. package/target/lib/query-all.js.map +1 -0
  54. package/target/lib/query-all.test.d.ts +2 -0
  55. package/target/lib/query-all.test.d.ts.map +1 -0
  56. package/target/lib/query-all.test.js +228 -0
  57. package/target/lib/query-all.test.js.map +1 -0
  58. package/target/lib/query.d.ts +11 -0
  59. package/target/lib/query.d.ts.map +1 -0
  60. package/target/lib/query.js +36 -0
  61. package/target/lib/query.js.map +1 -0
  62. package/target/lib/query.test.d.ts +2 -0
  63. package/target/lib/query.test.d.ts.map +1 -0
  64. package/target/lib/query.test.js +221 -0
  65. package/target/lib/query.test.js.map +1 -0
  66. package/target/lib/result.d.ts +4 -0
  67. package/target/lib/result.d.ts.map +1 -0
  68. package/target/lib/result.js +2 -0
  69. package/target/lib/result.js.map +1 -0
  70. package/target/lib/tags.d.ts +15 -0
  71. package/target/lib/tags.d.ts.map +1 -0
  72. package/target/lib/tags.js +44 -0
  73. package/target/lib/tags.js.map +1 -0
  74. package/target/lib/tags.test.d.ts +2 -0
  75. package/target/lib/tags.test.d.ts.map +1 -0
  76. package/target/lib/tags.test.js +93 -0
  77. package/target/lib/tags.test.js.map +1 -0
  78. package/target/lib.d.ts +10 -0
  79. package/target/lib.d.ts.map +1 -0
  80. package/target/lib.js +9 -0
  81. package/target/lib.js.map +1 -0
@@ -0,0 +1,228 @@
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ import { expect } from "chai";
36
+ import { element } from "./element.js";
37
+ import { queryAll } from "./query-all.js";
38
+ import { html } from "./tags.js";
39
+ it("should work", () => {
40
+ let MyElement = (() => {
41
+ let _classDecorators = [element({
42
+ tagName: "query-test-1",
43
+ shadowDom: [
44
+ html `
45
+ <form>
46
+ <input id="fname" name="fname" />
47
+ <input id="lname" name="lname" />
48
+ </form>
49
+ `,
50
+ ],
51
+ })];
52
+ let _classDescriptor;
53
+ let _classExtraInitializers = [];
54
+ let _classThis;
55
+ let _classSuper = HTMLElement;
56
+ var MyElement = class extends _classSuper {
57
+ static { _classThis = this; }
58
+ static {
59
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
60
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
61
+ MyElement = _classThis = _classDescriptor.value;
62
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
63
+ __runInitializers(_classThis, _classExtraInitializers);
64
+ }
65
+ inputs = queryAll("input");
66
+ };
67
+ return MyElement = _classThis;
68
+ })();
69
+ const el = new MyElement();
70
+ expect(el.inputs()[0]).to.equal(el.shadowRoot?.querySelector("#fname"));
71
+ expect(el.inputs()[1]).to.equal(el.shadowRoot?.querySelector("#lname"));
72
+ });
73
+ it("should patch items when patch is returned", () => {
74
+ let MyElement = (() => {
75
+ let _classDecorators = [element({
76
+ tagName: "query-test-2",
77
+ shadowDom: [
78
+ html `
79
+ <form>
80
+ <input id="fname" name="fname" value="Danny" />
81
+ <input id="lname" name="lname" value="Blue" />
82
+ </form>
83
+ `,
84
+ ],
85
+ })];
86
+ let _classDescriptor;
87
+ let _classExtraInitializers = [];
88
+ let _classThis;
89
+ let _classSuper = HTMLElement;
90
+ var MyElement = class extends _classSuper {
91
+ static { _classThis = this; }
92
+ static {
93
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
94
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
95
+ MyElement = _classThis = _classDescriptor.value;
96
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
97
+ __runInitializers(_classThis, _classExtraInitializers);
98
+ }
99
+ inputs = queryAll("input");
100
+ };
101
+ return MyElement = _classThis;
102
+ })();
103
+ const el = new MyElement();
104
+ el.inputs((node) => {
105
+ if (node.id === "fname") {
106
+ return {
107
+ value: "Foo",
108
+ };
109
+ }
110
+ return null;
111
+ });
112
+ expect(el.shadowRoot?.querySelector("#fname")?.value).to.equal("Foo");
113
+ expect(el.shadowRoot?.querySelector("#lname")?.value).to.equal("Blue");
114
+ });
115
+ it("should patch the selected item when cached", () => {
116
+ let MyElement = (() => {
117
+ let _classDecorators = [element({
118
+ tagName: "query-test-3",
119
+ shadowDom: [
120
+ html `
121
+ <form>
122
+ <input id="fname" name="fname" />
123
+ <input id="lname" name="lname" />
124
+ </form>
125
+ `,
126
+ ],
127
+ })];
128
+ let _classDescriptor;
129
+ let _classExtraInitializers = [];
130
+ let _classThis;
131
+ let _classSuper = HTMLElement;
132
+ var MyElement = class extends _classSuper {
133
+ static { _classThis = this; }
134
+ static {
135
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
136
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
137
+ MyElement = _classThis = _classDescriptor.value;
138
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
139
+ __runInitializers(_classThis, _classExtraInitializers);
140
+ }
141
+ inputs = queryAll("input");
142
+ };
143
+ return MyElement = _classThis;
144
+ })();
145
+ const el = new MyElement();
146
+ el.inputs();
147
+ el.inputs((node) => {
148
+ if (node.id === "fname") {
149
+ return {
150
+ value: "Foo",
151
+ };
152
+ }
153
+ return {
154
+ value: "Bar",
155
+ };
156
+ });
157
+ expect(el.shadowRoot?.querySelector("#fname")?.value).to.equal("Foo");
158
+ expect(el.shadowRoot?.querySelector("#lname")?.value).to.equal("Bar");
159
+ });
160
+ it("should apply the same patch to all elements", () => {
161
+ let MyElement = (() => {
162
+ let _classDecorators = [element({
163
+ tagName: "query-test-4",
164
+ shadowDom: [
165
+ html `
166
+ <form>
167
+ <input id="fname" name="fname" />
168
+ <input id="lname" name="lname" />
169
+ </form>
170
+ `,
171
+ ],
172
+ })];
173
+ let _classDescriptor;
174
+ let _classExtraInitializers = [];
175
+ let _classThis;
176
+ let _classSuper = HTMLElement;
177
+ var MyElement = class extends _classSuper {
178
+ static { _classThis = this; }
179
+ static {
180
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
181
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
182
+ MyElement = _classThis = _classDescriptor.value;
183
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
184
+ __runInitializers(_classThis, _classExtraInitializers);
185
+ }
186
+ inputs = queryAll("input");
187
+ };
188
+ return MyElement = _classThis;
189
+ })();
190
+ const el = new MyElement();
191
+ el.inputs({ value: "TEST" });
192
+ expect(el.shadowRoot?.querySelector("#fname")?.value).to.equal("TEST");
193
+ expect(el.shadowRoot?.querySelector("#lname")?.value).to.equal("TEST");
194
+ });
195
+ it("should use passed in root", () => {
196
+ let MyElement = (() => {
197
+ let _classDecorators = [element({
198
+ tagName: "query-test-5",
199
+ shadowDom: [],
200
+ })];
201
+ let _classDescriptor;
202
+ let _classExtraInitializers = [];
203
+ let _classThis;
204
+ let _classSuper = HTMLElement;
205
+ var MyElement = class extends _classSuper {
206
+ static { _classThis = this; }
207
+ static {
208
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
209
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
210
+ MyElement = _classThis = _classDescriptor.value;
211
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
212
+ __runInitializers(_classThis, _classExtraInitializers);
213
+ }
214
+ inputs = queryAll("input", this);
215
+ };
216
+ return MyElement = _classThis;
217
+ })();
218
+ const el = new MyElement();
219
+ el.innerHTML = /*html*/ `
220
+ <form>
221
+ <input id="fname" name="fname" />
222
+ <input id="lname" name="lname" />
223
+ </form>
224
+ `;
225
+ expect(el.inputs()[0]).to.equal(el.querySelector("#fname"));
226
+ expect(el.inputs()[1]).to.equal(el.querySelector("#lname"));
227
+ });
228
+ //# sourceMappingURL=query-all.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-all.test.js","sourceRoot":"","sources":["../../src/lib/query-all.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ type Tags = keyof HTMLElementTagNameMap;
2
+ type SVGTags = keyof SVGElementTagNameMap;
3
+ type MathTags = keyof MathMLElementTagNameMap;
4
+ type NodeUpdate<T extends Node> = Partial<T> | ((node: T) => Partial<T>);
5
+ export type QueryResult<T extends Node> = (updates?: NodeUpdate<T>) => T;
6
+ export declare function query<K extends Tags>(selectors: K, root?: HTMLElement | ShadowRoot): QueryResult<HTMLElementTagNameMap[K]>;
7
+ export declare function query<K extends SVGTags>(selectors: K, root?: HTMLElement | ShadowRoot): QueryResult<SVGElementTagNameMap[K]>;
8
+ export declare function query<K extends MathTags>(selectors: K, root?: HTMLElement | ShadowRoot): QueryResult<MathMLElementTagNameMap[K]>;
9
+ export declare function query<E extends HTMLElement = HTMLElement>(selectors: string, root?: HTMLElement | ShadowRoot): QueryResult<E>;
10
+ export {};
11
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/lib/query.ts"],"names":[],"mappings":"AAAA,KAAK,IAAI,GAAG,MAAM,qBAAqB,CAAC;AACxC,KAAK,OAAO,GAAG,MAAM,oBAAoB,CAAC;AAC1C,KAAK,QAAQ,GAAG,MAAM,uBAAuB,CAAC;AAE9C,KAAK,UAAU,CAAC,CAAC,SAAS,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAEzE,wBAAgB,KAAK,CAAC,CAAC,SAAS,IAAI,EAClC,SAAS,EAAE,CAAC,EACZ,IAAI,CAAC,EAAE,WAAW,GAAG,UAAU,GAC9B,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,wBAAgB,KAAK,CAAC,CAAC,SAAS,OAAO,EACrC,SAAS,EAAE,CAAC,EACZ,IAAI,CAAC,EAAE,WAAW,GAAG,UAAU,GAC9B,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,wBAAgB,KAAK,CAAC,CAAC,SAAS,QAAQ,EACtC,SAAS,EAAE,CAAC,EACZ,IAAI,CAAC,EAAE,WAAW,GAAG,UAAU,GAC9B,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,wBAAgB,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EACvD,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,WAAW,GAAG,UAAU,GAC9B,WAAW,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,36 @@
1
+ export function query(query, root) {
2
+ let res = null;
3
+ return function (updates) {
4
+ if (res) {
5
+ return patchNode(res, updates);
6
+ }
7
+ if (root) {
8
+ res = root.querySelector(query);
9
+ }
10
+ else if (this.shadowRoot) {
11
+ res = this.shadowRoot.querySelector(query);
12
+ }
13
+ else {
14
+ res = this.querySelector(query);
15
+ }
16
+ if (!res) {
17
+ throw new Error(`could not find ${query}`);
18
+ }
19
+ return patchNode(res, updates);
20
+ };
21
+ }
22
+ function patchNode(target, update) {
23
+ if (!update) {
24
+ return target;
25
+ }
26
+ const patch = typeof update === "function" ? update(target) : update;
27
+ for (const key in patch) {
28
+ const newValue = patch[key];
29
+ const oldValue = target[key];
30
+ if (newValue !== oldValue) {
31
+ Reflect.set(target, key, newValue);
32
+ }
33
+ }
34
+ return target;
35
+ }
36
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/lib/query.ts"],"names":[],"mappings":"AAwBA,MAAM,UAAU,KAAK,CACnB,KAAQ,EACR,IAA+B;IAE/B,IAAI,GAAG,GAAoC,IAAI,CAAC;IAEhD,OAAO,UAA0C,OAAO;QACtD,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,CAAC,aAAa,CAAI,KAAK,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3B,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,kBAAkB,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,MAAS,EACT,MAA+C;IAE/C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAErE,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAE7B,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=query.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.test.d.ts","sourceRoot":"","sources":["../../src/lib/query.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,221 @@
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ import { expect } from "chai";
36
+ import { element } from "./element.js";
37
+ import { query } from "./query.js";
38
+ import { html } from "./tags.js";
39
+ it("should work", () => {
40
+ let MyElement = (() => {
41
+ let _classDecorators = [element({
42
+ tagName: "query-test-1",
43
+ shadowDom: [
44
+ html `
45
+ <form>
46
+ <input id="fname" name="fname" />
47
+ <input id="lname" name="lname" />
48
+ </form>
49
+ `,
50
+ ],
51
+ })];
52
+ let _classDescriptor;
53
+ let _classExtraInitializers = [];
54
+ let _classThis;
55
+ let _classSuper = HTMLElement;
56
+ var MyElement = class extends _classSuper {
57
+ static { _classThis = this; }
58
+ static {
59
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
60
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
61
+ MyElement = _classThis = _classDescriptor.value;
62
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
63
+ __runInitializers(_classThis, _classExtraInitializers);
64
+ }
65
+ fname = query("#fname");
66
+ lname = query("#lname");
67
+ };
68
+ return MyElement = _classThis;
69
+ })();
70
+ const el = new MyElement();
71
+ expect(el.fname()).to.equal(el.shadowRoot?.querySelector("#fname"));
72
+ expect(el.lname()).to.equal(el.shadowRoot?.querySelector("#lname"));
73
+ });
74
+ it("should patch the selected item", () => {
75
+ let MyElement = (() => {
76
+ let _classDecorators = [element({
77
+ tagName: "query-test-2",
78
+ shadowDom: [
79
+ html `
80
+ <form>
81
+ <input id="fname" name="fname" />
82
+ <input id="lname" name="lname" />
83
+ </form>
84
+ `,
85
+ ],
86
+ })];
87
+ let _classDescriptor;
88
+ let _classExtraInitializers = [];
89
+ let _classThis;
90
+ let _classSuper = HTMLElement;
91
+ var MyElement = class extends _classSuper {
92
+ static { _classThis = this; }
93
+ static {
94
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
95
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
96
+ MyElement = _classThis = _classDescriptor.value;
97
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
98
+ __runInitializers(_classThis, _classExtraInitializers);
99
+ }
100
+ fname = query("#fname");
101
+ lname = query("#lname");
102
+ };
103
+ return MyElement = _classThis;
104
+ })();
105
+ const el = new MyElement();
106
+ el.fname({ value: "Foo" });
107
+ el.lname({ value: "Bar" });
108
+ expect(el.shadowRoot?.querySelector("#fname")?.value).to.equal("Foo");
109
+ expect(el.shadowRoot?.querySelector("#lname")?.value).to.equal("Bar");
110
+ });
111
+ it("should patch the selected item when cached", () => {
112
+ let MyElement = (() => {
113
+ let _classDecorators = [element({
114
+ tagName: "query-test-3",
115
+ shadowDom: [
116
+ html `
117
+ <form>
118
+ <input id="fname" name="fname" />
119
+ <input id="lname" name="lname" />
120
+ </form>
121
+ `,
122
+ ],
123
+ })];
124
+ let _classDescriptor;
125
+ let _classExtraInitializers = [];
126
+ let _classThis;
127
+ let _classSuper = HTMLElement;
128
+ var MyElement = class extends _classSuper {
129
+ static { _classThis = this; }
130
+ static {
131
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
132
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
133
+ MyElement = _classThis = _classDescriptor.value;
134
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
135
+ __runInitializers(_classThis, _classExtraInitializers);
136
+ }
137
+ fname = query("#fname");
138
+ lname = query("#lname");
139
+ };
140
+ return MyElement = _classThis;
141
+ })();
142
+ const el = new MyElement();
143
+ el.fname();
144
+ el.lname();
145
+ el.fname({ value: "Foo" });
146
+ el.lname({ value: "Bar" });
147
+ expect(el.shadowRoot?.querySelector("#fname")?.value).to.equal("Foo");
148
+ expect(el.shadowRoot?.querySelector("#lname")?.value).to.equal("Bar");
149
+ });
150
+ it("should use function to update", () => {
151
+ let MyElement = (() => {
152
+ let _classDecorators = [element({
153
+ tagName: "query-test-4",
154
+ shadowDom: [
155
+ html `
156
+ <form>
157
+ <input id="fname" name="fname" />
158
+ <input id="lname" name="lname" />
159
+ </form>
160
+ `,
161
+ ],
162
+ })];
163
+ let _classDescriptor;
164
+ let _classExtraInitializers = [];
165
+ let _classThis;
166
+ let _classSuper = HTMLElement;
167
+ var MyElement = class extends _classSuper {
168
+ static { _classThis = this; }
169
+ static {
170
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
171
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
172
+ MyElement = _classThis = _classDescriptor.value;
173
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
174
+ __runInitializers(_classThis, _classExtraInitializers);
175
+ }
176
+ fname = query("#fname");
177
+ lname = query("#lname");
178
+ };
179
+ return MyElement = _classThis;
180
+ })();
181
+ const el = new MyElement();
182
+ el.fname(() => ({ value: "Foo" }));
183
+ el.lname(() => ({ value: "Bar" }));
184
+ expect(el.shadowRoot?.querySelector("#fname")?.value).to.equal("Foo");
185
+ expect(el.shadowRoot?.querySelector("#lname")?.value).to.equal("Bar");
186
+ });
187
+ it("should use passed in root", () => {
188
+ let MyElement = (() => {
189
+ let _classDecorators = [element({
190
+ tagName: "query-test-5",
191
+ shadowDom: [],
192
+ })];
193
+ let _classDescriptor;
194
+ let _classExtraInitializers = [];
195
+ let _classThis;
196
+ let _classSuper = HTMLElement;
197
+ var MyElement = class extends _classSuper {
198
+ static { _classThis = this; }
199
+ static {
200
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
201
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
202
+ MyElement = _classThis = _classDescriptor.value;
203
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
204
+ __runInitializers(_classThis, _classExtraInitializers);
205
+ }
206
+ fname = query("#fname", this);
207
+ lname = query("#lname", this);
208
+ };
209
+ return MyElement = _classThis;
210
+ })();
211
+ const el = new MyElement();
212
+ el.innerHTML = /*html*/ `
213
+ <form>
214
+ <input id="fname" name="fname" />
215
+ <input id="lname" name="lname" />
216
+ </form>
217
+ `;
218
+ expect(el.fname()).to.equal(el.querySelector("#fname"));
219
+ expect(el.lname()).to.equal(el.querySelector("#lname"));
220
+ });
221
+ //# sourceMappingURL=query.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.test.js","sourceRoot":"","sources":["../../src/lib/query.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export interface ShadowResult {
2
+ apply(el: Element): void;
3
+ }
4
+ //# sourceMappingURL=result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/lib/result.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/lib/result.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import type { ShadowResult } from "./result.js";
2
+ export declare class HTMLResult<T extends HTMLElement> implements ShadowResult {
3
+ #private;
4
+ constructor(raw: TemplateStringsArray, ..._values: any[]);
5
+ createNode(): Node;
6
+ apply(el: T): void;
7
+ }
8
+ export declare function html<T extends HTMLElement>(strings: TemplateStringsArray, ...values: any[]): HTMLResult<T>;
9
+ export declare class CSSResult implements ShadowResult {
10
+ #private;
11
+ constructor(raw: TemplateStringsArray, ..._values: any[]);
12
+ apply(el: HTMLElement): void;
13
+ }
14
+ export declare function css(strings: TemplateStringsArray): CSSResult;
15
+ //# sourceMappingURL=tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/lib/tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,qBAAa,UAAU,CAAC,CAAC,SAAS,WAAW,CAAE,YAAW,YAAY;;gBAGxD,GAAG,EAAE,oBAAoB,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE;IAKxD,UAAU,IAAI,IAAI;IAIlB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI;CAKnB;AAED,wBAAgB,IAAI,CAAC,CAAC,SAAS,WAAW,EACxC,OAAO,EAAE,oBAAoB,EAC7B,GAAG,MAAM,EAAE,GAAG,EAAE,GACf,UAAU,CAAC,CAAC,CAAC,CAEf;AAED,qBAAa,SAAU,YAAW,YAAY;;gBAGhC,GAAG,EAAE,oBAAoB,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE;IAKxD,KAAK,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;CAQ7B;AAED,wBAAgB,GAAG,CAAC,OAAO,EAAE,oBAAoB,GAAG,SAAS,CAE5D"}
@@ -0,0 +1,44 @@
1
+ export class HTMLResult {
2
+ #template;
3
+ constructor(raw, ..._values) {
4
+ this.#template = document.createElement("template");
5
+ this.#template.innerHTML = concat(raw);
6
+ }
7
+ createNode() {
8
+ return document.importNode(this.#template.content, true);
9
+ }
10
+ apply(el) {
11
+ if (el.shadowRoot) {
12
+ el.shadowRoot.append(this.createNode());
13
+ }
14
+ }
15
+ }
16
+ export function html(strings, ...values) {
17
+ return new HTMLResult(strings, ...values);
18
+ }
19
+ export class CSSResult {
20
+ #sheet;
21
+ constructor(raw, ..._values) {
22
+ this.#sheet = new CSSStyleSheet();
23
+ this.#sheet.replaceSync(concat(raw));
24
+ }
25
+ apply(el) {
26
+ if (el.shadowRoot) {
27
+ el.shadowRoot.adoptedStyleSheets = [
28
+ ...el.shadowRoot.adoptedStyleSheets,
29
+ this.#sheet,
30
+ ];
31
+ }
32
+ }
33
+ }
34
+ export function css(strings) {
35
+ return new CSSResult(strings);
36
+ }
37
+ function concat(strings) {
38
+ let res = "";
39
+ for (let i = 0; i < strings.length; i++) {
40
+ res += strings[i];
41
+ }
42
+ return res;
43
+ }
44
+ //# sourceMappingURL=tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/lib/tags.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,UAAU;IACrB,SAAS,CAAsB;IAE/B,YAAY,GAAyB,EAAE,GAAG,OAAc;QACtD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,UAAU;QACR,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,EAAK;QACT,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;YAClB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,IAAI,CAClB,OAA6B,EAC7B,GAAG,MAAa;IAEhB,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,OAAO,SAAS;IACpB,MAAM,CAAC;IAEP,YAAY,GAAyB,EAAE,GAAG,OAAc;QACtD,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,EAAe;QACnB,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;YAClB,EAAE,CAAC,UAAU,CAAC,kBAAkB,GAAG;gBACjC,GAAG,EAAE,CAAC,UAAU,CAAC,kBAAkB;gBACnC,IAAI,CAAC,MAAM;aACZ,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,GAAG,CAAC,OAA6B;IAC/C,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,MAAM,CAAC,OAA6B;IAC3C,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tags.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.test.d.ts","sourceRoot":"","sources":["../../src/lib/tags.test.ts"],"names":[],"mappings":""}