@joist/di 4.2.4-next.8 → 4.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +2 -2
- package/README.md +11 -9
- package/package.json +1 -1
- package/src/lib/context/protocol.ts +12 -25
- package/src/lib/dom/dom-injector.test.ts +48 -4
- package/src/lib/dom/dom-injector.ts +9 -8
- package/src/lib/dom/injectable-el.test.ts +76 -0
- package/src/lib/dom/injectable-el.ts +4 -3
- package/target/lib/context/protocol.d.ts +8 -5
- package/target/lib/context/protocol.js.map +1 -1
- package/target/lib/dom/dom-injector.d.ts +1 -1
- package/target/lib/dom/dom-injector.js +5 -3
- package/target/lib/dom/dom-injector.js.map +1 -1
- package/target/lib/dom/dom-injector.test.js +50 -1
- package/target/lib/dom/dom-injector.test.js.map +1 -1
- package/target/lib/dom/injectable-el.js.map +1 -1
- package/target/lib/dom/injectable-el.test.js +98 -0
- package/target/lib/dom/injectable-el.test.js.map +1 -1
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
The MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2019-
|
|
3
|
+
Copyright (c) 2019-2025 Danny Blue
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
18
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
-
THE SOFTWARE.
|
|
21
|
+
THE SOFTWARE.
|
package/README.md
CHANGED
|
@@ -164,18 +164,20 @@ class Logger {
|
|
|
164
164
|
}
|
|
165
165
|
|
|
166
166
|
const app = new Injector([
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
167
|
+
[
|
|
168
|
+
Logger,
|
|
169
|
+
{
|
|
170
|
+
factory() {
|
|
171
|
+
const params = new URLSearchParams(window.location.search);
|
|
171
172
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
173
|
+
if (params.has("debug")) {
|
|
174
|
+
return console;
|
|
175
|
+
}
|
|
175
176
|
|
|
176
|
-
|
|
177
|
+
return new Logger(); // noop logger
|
|
178
|
+
},
|
|
177
179
|
},
|
|
178
|
-
|
|
180
|
+
],
|
|
179
181
|
]);
|
|
180
182
|
```
|
|
181
183
|
|
package/package.json
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
declare global {
|
|
2
|
+
interface ElementEventMap {
|
|
3
|
+
"context-request": ContextRequestEvent<Context<unknown, unknown>>;
|
|
4
|
+
}
|
|
5
|
+
interface DocumentEventMap {
|
|
6
|
+
"context-request": ContextRequestEvent<Context<unknown, unknown>>;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
1
10
|
/**
|
|
2
11
|
* A context key.
|
|
3
12
|
*
|
|
@@ -15,12 +24,7 @@ export type UnknownContext = Context<unknown, unknown>;
|
|
|
15
24
|
/**
|
|
16
25
|
* A helper type which can extract a Context value type from a Context type
|
|
17
26
|
*/
|
|
18
|
-
export type ContextType<T extends UnknownContext> = T extends Context<
|
|
19
|
-
infer _,
|
|
20
|
-
infer V
|
|
21
|
-
>
|
|
22
|
-
? V
|
|
23
|
-
: never;
|
|
27
|
+
export type ContextType<T extends UnknownContext> = T extends Context<infer _, infer V> ? V : never;
|
|
24
28
|
|
|
25
29
|
/**
|
|
26
30
|
* A function which creates a Context value object
|
|
@@ -34,10 +38,7 @@ export function createContext<KeyType, ValueType>(key: KeyType) {
|
|
|
34
38
|
* A callback which is provided by a context requester and is called with the value satisfying the request.
|
|
35
39
|
* This callback can be called multiple times by context providers as the requested value is changed.
|
|
36
40
|
*/
|
|
37
|
-
export type ContextCallback<ValueType> = (
|
|
38
|
-
value: ValueType,
|
|
39
|
-
unsubscribe?: () => void,
|
|
40
|
-
) => void;
|
|
41
|
+
export type ContextCallback<ValueType> = (value: ValueType, unsubscribe?: () => void) => void;
|
|
41
42
|
|
|
42
43
|
/**
|
|
43
44
|
* An event fired by a context requester to signal it desires a named context.
|
|
@@ -54,11 +55,7 @@ export class ContextRequestEvent<T extends UnknownContext> extends Event {
|
|
|
54
55
|
callback: ContextCallback<ContextType<T>>;
|
|
55
56
|
subscribe?: boolean;
|
|
56
57
|
|
|
57
|
-
public constructor(
|
|
58
|
-
context: T,
|
|
59
|
-
callback: ContextCallback<ContextType<T>>,
|
|
60
|
-
subscribe?: boolean,
|
|
61
|
-
) {
|
|
58
|
+
public constructor(context: T, callback: ContextCallback<ContextType<T>>, subscribe?: boolean) {
|
|
62
59
|
super("context-request", { bubbles: true, composed: true });
|
|
63
60
|
|
|
64
61
|
this.context = context;
|
|
@@ -66,13 +63,3 @@ export class ContextRequestEvent<T extends UnknownContext> extends Event {
|
|
|
66
63
|
this.subscribe = subscribe;
|
|
67
64
|
}
|
|
68
65
|
}
|
|
69
|
-
|
|
70
|
-
declare global {
|
|
71
|
-
interface HTMLElementEventMap {
|
|
72
|
-
/**
|
|
73
|
-
* A 'context-request' event can be emitted by any element which desires
|
|
74
|
-
* a context value to be injected by an external provider.
|
|
75
|
-
*/
|
|
76
|
-
"context-request": ContextRequestEvent<Context<unknown, unknown>>;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { assert } from "chai";
|
|
2
2
|
|
|
3
3
|
import { INJECTOR_CTX } from "../context/injector.js";
|
|
4
|
-
import {
|
|
5
|
-
ContextRequestEvent,
|
|
6
|
-
type UnknownContext,
|
|
7
|
-
} from "../context/protocol.js";
|
|
4
|
+
import { ContextRequestEvent, type UnknownContext } from "../context/protocol.js";
|
|
8
5
|
import { Injector } from "../injector.js";
|
|
9
6
|
import { DOMInjector } from "./dom-injector.js";
|
|
7
|
+
import { readInjector } from "../metadata.js";
|
|
8
|
+
import { injectable } from "../injectable.js";
|
|
9
|
+
import { inject } from "../inject.js";
|
|
10
10
|
|
|
11
11
|
it("should respond to elements looking for an injector", () => {
|
|
12
12
|
const injector = new DOMInjector();
|
|
@@ -60,3 +60,47 @@ it("should throw an error if attempting to attach an already attached DOMInjecto
|
|
|
60
60
|
injector.attach(el);
|
|
61
61
|
});
|
|
62
62
|
});
|
|
63
|
+
|
|
64
|
+
it("should correctly add injector to the target element", () => {
|
|
65
|
+
const injector = new DOMInjector();
|
|
66
|
+
|
|
67
|
+
injector.attach(document.body);
|
|
68
|
+
|
|
69
|
+
assert.instanceOf(readInjector(document.body), DOMInjector);
|
|
70
|
+
assert.equal(readInjector(document.body), injector);
|
|
71
|
+
|
|
72
|
+
injector.detach();
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
it("should apply parent to child", (done) => {
|
|
76
|
+
class TestConfig {
|
|
77
|
+
path = "/foo";
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const injector = new DOMInjector({
|
|
81
|
+
providers: [[TestConfig, { factory: () => ({ path: "/bar" }) }]],
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
injector.attach(document.body);
|
|
85
|
+
|
|
86
|
+
@injectable()
|
|
87
|
+
class MyElement extends HTMLElement {
|
|
88
|
+
#config = inject(TestConfig);
|
|
89
|
+
|
|
90
|
+
connectedCallback(): void {
|
|
91
|
+
const config = this.#config();
|
|
92
|
+
assert.equal(config.path, "/bar");
|
|
93
|
+
|
|
94
|
+
done();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
customElements.define("dom-injector-test", MyElement);
|
|
99
|
+
|
|
100
|
+
const child = new MyElement();
|
|
101
|
+
|
|
102
|
+
document.body.append(child);
|
|
103
|
+
|
|
104
|
+
child.remove();
|
|
105
|
+
injector.detach();
|
|
106
|
+
});
|
|
@@ -1,22 +1,19 @@
|
|
|
1
1
|
import { INJECTOR_CTX } from "../context/injector.js";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
type UnknownContext,
|
|
5
|
-
} from "../context/protocol.js";
|
|
6
|
-
import { Injector } from "../injector.js";
|
|
2
|
+
import { ContextRequestEvent, type UnknownContext } from "../context/protocol.js";
|
|
3
|
+
import { INJECTOR, Injector } from "../injector.js";
|
|
7
4
|
|
|
8
5
|
/**
|
|
9
6
|
* Special Injector that allows you to register an injector with a particular DOM element.
|
|
10
7
|
*/
|
|
11
8
|
export class DOMInjector extends Injector {
|
|
12
|
-
#element: HTMLElement | null = null;
|
|
9
|
+
#element: Document | HTMLElement | null = null;
|
|
13
10
|
#controller: AbortController | null = null;
|
|
14
11
|
|
|
15
12
|
get isAttached(): boolean {
|
|
16
13
|
return this.#element !== null && this.#controller !== null;
|
|
17
14
|
}
|
|
18
15
|
|
|
19
|
-
attach(element: HTMLElement): void {
|
|
16
|
+
attach(element: Document | HTMLElement): void {
|
|
20
17
|
if (this.isAttached) {
|
|
21
18
|
throw new Error(
|
|
22
19
|
`This DOMInjector is already attached to ${this.#element}. Detach first before attaching again`,
|
|
@@ -26,9 +23,13 @@ export class DOMInjector extends Injector {
|
|
|
26
23
|
this.#element = element;
|
|
27
24
|
this.#controller = new AbortController();
|
|
28
25
|
|
|
26
|
+
Reflect.set(element, INJECTOR, this);
|
|
27
|
+
|
|
29
28
|
this.#element.addEventListener(
|
|
30
29
|
"context-request",
|
|
31
|
-
(
|
|
30
|
+
(event) => {
|
|
31
|
+
const e = event as ContextRequestEvent<UnknownContext>;
|
|
32
|
+
|
|
32
33
|
if (e.context === INJECTOR_CTX) {
|
|
33
34
|
if (e.target !== element) {
|
|
34
35
|
e.stopPropagation();
|
|
@@ -173,3 +173,79 @@ it("should provide the same context in disconnectedCallback as connectedCallback
|
|
|
173
173
|
|
|
174
174
|
app.detach();
|
|
175
175
|
});
|
|
176
|
+
|
|
177
|
+
it("should call disconnectedCallback when element is removed from DOM", async () => {
|
|
178
|
+
@injectable()
|
|
179
|
+
class TestElement extends HTMLElement {
|
|
180
|
+
connectedCalled = false;
|
|
181
|
+
disconnectedCalled = false;
|
|
182
|
+
|
|
183
|
+
connectedCallback(): void {
|
|
184
|
+
this.connectedCalled = true;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
disconnectedCallback(): void {
|
|
188
|
+
this.disconnectedCalled = true;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
customElements.define("test-disconnect", TestElement);
|
|
193
|
+
|
|
194
|
+
const el = new TestElement();
|
|
195
|
+
|
|
196
|
+
// Initially, neither callback should have been called
|
|
197
|
+
assert.isFalse(el.connectedCalled);
|
|
198
|
+
assert.isFalse(el.disconnectedCalled);
|
|
199
|
+
|
|
200
|
+
// Add to DOM - connectedCallback should be called
|
|
201
|
+
document.body.append(el);
|
|
202
|
+
assert.isTrue(el.connectedCalled);
|
|
203
|
+
assert.isFalse(el.disconnectedCalled);
|
|
204
|
+
|
|
205
|
+
// Remove from DOM - disconnectedCallback should be called
|
|
206
|
+
el.remove();
|
|
207
|
+
assert.isTrue(el.connectedCalled);
|
|
208
|
+
assert.isTrue(el.disconnectedCalled);
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
it("should call connected and disconnected callbacks when element is replaced", async () => {
|
|
212
|
+
const calls: string[] = [];
|
|
213
|
+
|
|
214
|
+
@injectable()
|
|
215
|
+
class TestElement1 extends HTMLElement {
|
|
216
|
+
connectedCallback(): void {
|
|
217
|
+
calls.push("1-connected");
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
disconnectedCallback(): void {
|
|
221
|
+
calls.push("1-disconnected");
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
@injectable()
|
|
226
|
+
class TestElement2 extends HTMLElement {
|
|
227
|
+
connectedCallback(): void {
|
|
228
|
+
calls.push("2-connected");
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
disconnectedCallback(): void {
|
|
232
|
+
calls.push("2-disconnected");
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
customElements.define("test-disconnect-2", TestElement1);
|
|
237
|
+
customElements.define("test-disconnect-3", TestElement2);
|
|
238
|
+
|
|
239
|
+
const el1 = new TestElement1();
|
|
240
|
+
const el2 = new TestElement2();
|
|
241
|
+
|
|
242
|
+
assert.isEmpty(calls);
|
|
243
|
+
|
|
244
|
+
document.body.append(el1);
|
|
245
|
+
|
|
246
|
+
assert.deepEqual(calls, ["1-connected"]);
|
|
247
|
+
|
|
248
|
+
el1.replaceWith(el2);
|
|
249
|
+
|
|
250
|
+
assert.deepEqual(calls, ["1-connected", "1-disconnected", "2-connected"]);
|
|
251
|
+
});
|
|
@@ -8,9 +8,10 @@ import type { ConstructableToken } from "../provider.js";
|
|
|
8
8
|
|
|
9
9
|
export type InjectableEl = HTMLElement & { [INJECTOR]: Injector };
|
|
10
10
|
|
|
11
|
-
export function injectableEl<
|
|
12
|
-
T
|
|
13
|
-
|
|
11
|
+
export function injectableEl<T extends ConstructableToken<InjectableEl>>(
|
|
12
|
+
Base: T,
|
|
13
|
+
ctx: ClassDecoratorContext,
|
|
14
|
+
): T {
|
|
14
15
|
const metadata: InjectableMetadata<InjectableEl> = ctx.metadata;
|
|
15
16
|
|
|
16
17
|
const def = {
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
declare global {
|
|
2
|
+
interface ElementEventMap {
|
|
3
|
+
"context-request": ContextRequestEvent<Context<unknown, unknown>>;
|
|
4
|
+
}
|
|
5
|
+
interface DocumentEventMap {
|
|
6
|
+
"context-request": ContextRequestEvent<Context<unknown, unknown>>;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
1
9
|
export type Context<KeyType, ValueType> = KeyType & {
|
|
2
10
|
__context__: ValueType;
|
|
3
11
|
};
|
|
@@ -11,8 +19,3 @@ export declare class ContextRequestEvent<T extends UnknownContext> extends Event
|
|
|
11
19
|
subscribe?: boolean;
|
|
12
20
|
constructor(context: T, callback: ContextCallback<ContextType<T>>, subscribe?: boolean);
|
|
13
21
|
}
|
|
14
|
-
declare global {
|
|
15
|
-
interface HTMLElementEventMap {
|
|
16
|
-
"context-request": ContextRequestEvent<Context<unknown, unknown>>;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/lib/context/protocol.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/lib/context/protocol.ts"],"names":[],"mappings":"AAgCA,MAAM,UAAU,aAAa,CAAqB,GAAY;IAC5D,OAAO,GAAkC,CAAC;AAC5C,CAAC;AAkBD,MAAM,OAAO,mBAA8C,SAAQ,KAAK;IACtE,OAAO,CAAI;IACX,QAAQ,CAAkC;IAC1C,SAAS,CAAW;IAEpB,YAAmB,OAAU,EAAE,QAAyC,EAAE,SAAmB;QAC3F,KAAK,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { INJECTOR_CTX } from "../context/injector.js";
|
|
2
|
-
import { ContextRequestEvent
|
|
3
|
-
import { Injector } from "../injector.js";
|
|
2
|
+
import { ContextRequestEvent } from "../context/protocol.js";
|
|
3
|
+
import { INJECTOR, Injector } from "../injector.js";
|
|
4
4
|
export class DOMInjector extends Injector {
|
|
5
5
|
#element = null;
|
|
6
6
|
#controller = null;
|
|
@@ -13,7 +13,9 @@ export class DOMInjector extends Injector {
|
|
|
13
13
|
}
|
|
14
14
|
this.#element = element;
|
|
15
15
|
this.#controller = new AbortController();
|
|
16
|
-
|
|
16
|
+
Reflect.set(element, INJECTOR, this);
|
|
17
|
+
this.#element.addEventListener("context-request", (event) => {
|
|
18
|
+
const e = event;
|
|
17
19
|
if (e.context === INJECTOR_CTX) {
|
|
18
20
|
if (e.target !== element) {
|
|
19
21
|
e.stopPropagation();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-injector.js","sourceRoot":"","sources":["../../../src/lib/dom/dom-injector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"dom-injector.js","sourceRoot":"","sources":["../../../src/lib/dom/dom-injector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAuB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAKpD,MAAM,OAAO,WAAY,SAAQ,QAAQ;IACvC,QAAQ,GAAkC,IAAI,CAAC;IAC/C,WAAW,GAA2B,IAAI,CAAC;IAE3C,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,OAA+B;QACpC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,2CAA2C,IAAI,CAAC,QAAQ,uCAAuC,CAChG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;QAEzC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAErC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAC5B,iBAAiB,EACjB,CAAC,KAAK,EAAE,EAAE;YACR,MAAM,CAAC,GAAG,KAA4C,CAAC;YAEvD,IAAI,CAAC,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;gBAC/B,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBACzB,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC,EACD,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CACpC,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,aAAa,CACzB,IAAI,mBAAmB,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE;YAC/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
1
2
|
import { assert } from "chai";
|
|
2
3
|
import { INJECTOR_CTX } from "../context/injector.js";
|
|
3
|
-
import { ContextRequestEvent
|
|
4
|
+
import { ContextRequestEvent } from "../context/protocol.js";
|
|
4
5
|
import { Injector } from "../injector.js";
|
|
5
6
|
import { DOMInjector } from "./dom-injector.js";
|
|
7
|
+
import { readInjector } from "../metadata.js";
|
|
8
|
+
import { injectable } from "../injectable.js";
|
|
9
|
+
import { inject } from "../inject.js";
|
|
6
10
|
it("should respond to elements looking for an injector", () => {
|
|
7
11
|
const injector = new DOMInjector();
|
|
8
12
|
injector.attach(document.body);
|
|
@@ -38,4 +42,49 @@ it("should throw an error if attempting to attach an already attached DOMInjecto
|
|
|
38
42
|
injector.attach(el);
|
|
39
43
|
});
|
|
40
44
|
});
|
|
45
|
+
it("should correctly add injector to the target element", () => {
|
|
46
|
+
const injector = new DOMInjector();
|
|
47
|
+
injector.attach(document.body);
|
|
48
|
+
assert.instanceOf(readInjector(document.body), DOMInjector);
|
|
49
|
+
assert.equal(readInjector(document.body), injector);
|
|
50
|
+
injector.detach();
|
|
51
|
+
});
|
|
52
|
+
it("should apply parent to child", (done) => {
|
|
53
|
+
class TestConfig {
|
|
54
|
+
path = "/foo";
|
|
55
|
+
}
|
|
56
|
+
const injector = new DOMInjector({
|
|
57
|
+
providers: [[TestConfig, { factory: () => ({ path: "/bar" }) }]],
|
|
58
|
+
});
|
|
59
|
+
injector.attach(document.body);
|
|
60
|
+
let MyElement = (() => {
|
|
61
|
+
let _classDecorators = [injectable()];
|
|
62
|
+
let _classDescriptor;
|
|
63
|
+
let _classExtraInitializers = [];
|
|
64
|
+
let _classThis;
|
|
65
|
+
let _classSuper = HTMLElement;
|
|
66
|
+
var MyElement = class extends _classSuper {
|
|
67
|
+
static { _classThis = this; }
|
|
68
|
+
static {
|
|
69
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
70
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
71
|
+
MyElement = _classThis = _classDescriptor.value;
|
|
72
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
73
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
74
|
+
}
|
|
75
|
+
#config = inject(TestConfig);
|
|
76
|
+
connectedCallback() {
|
|
77
|
+
const config = this.#config();
|
|
78
|
+
assert.equal(config.path, "/bar");
|
|
79
|
+
done();
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
return MyElement = _classThis;
|
|
83
|
+
})();
|
|
84
|
+
customElements.define("dom-injector-test", MyElement);
|
|
85
|
+
const child = new MyElement();
|
|
86
|
+
document.body.append(child);
|
|
87
|
+
child.remove();
|
|
88
|
+
injector.detach();
|
|
89
|
+
});
|
|
41
90
|
//# sourceMappingURL=dom-injector.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-injector.test.js","sourceRoot":"","sources":["../../../src/lib/dom/dom-injector.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"dom-injector.test.js","sourceRoot":"","sources":["../../../src/lib/dom/dom-injector.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectable-el.js","sourceRoot":"","sources":["../../../src/lib/dom/injectable-el.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhD,MAAM,UAAU,YAAY,
|
|
1
|
+
{"version":3,"file":"injectable-el.js","sourceRoot":"","sources":["../../../src/lib/dom/injectable-el.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhD,MAAM,UAAU,YAAY,CAC1B,IAAO,EACP,GAA0B;IAE1B,MAAM,QAAQ,GAAqC,GAAG,CAAC,QAAQ,CAAC;IAEhE,MAAM,GAAG,GAAG;QACV,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAM,SAAQ,IAAI;YAC7B,YAAY,GAAG,CAAQ;gBACrB,KAAK,EAAE,CAAC;gBAER,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEhC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE;oBAC7C,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;wBACpD,CAAC,CAAC,eAAe,EAAE,CAAC;wBAEpB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YACrD,CAAC;YAED,iBAAiB;gBACf,IAAI,CAAC,aAAa,CAChB,IAAI,mBAAmB,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;oBAC5C,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;gBAC9B,CAAC,CAAC,CACH,CAAC;gBAEF,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAE1D,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;oBAC5B,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,oBAAoB;gBAIlB,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;oBAC/B,KAAK,CAAC,oBAAoB,EAAE,CAAC;gBAC/B,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;YACpC,CAAC;SACF;KACF,CAAC;IAEF,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC"}
|
|
@@ -281,4 +281,102 @@ it("should provide the same context in disconnectedCallback as connectedCallback
|
|
|
281
281
|
assert.equal(el.connected, el.disconnected);
|
|
282
282
|
app.detach();
|
|
283
283
|
});
|
|
284
|
+
it("should call disconnectedCallback when element is removed from DOM", async () => {
|
|
285
|
+
let TestElement = (() => {
|
|
286
|
+
let _classDecorators = [injectable()];
|
|
287
|
+
let _classDescriptor;
|
|
288
|
+
let _classExtraInitializers = [];
|
|
289
|
+
let _classThis;
|
|
290
|
+
let _classSuper = HTMLElement;
|
|
291
|
+
var TestElement = class extends _classSuper {
|
|
292
|
+
static { _classThis = this; }
|
|
293
|
+
static {
|
|
294
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
295
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
296
|
+
TestElement = _classThis = _classDescriptor.value;
|
|
297
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
298
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
299
|
+
}
|
|
300
|
+
connectedCalled = false;
|
|
301
|
+
disconnectedCalled = false;
|
|
302
|
+
connectedCallback() {
|
|
303
|
+
this.connectedCalled = true;
|
|
304
|
+
}
|
|
305
|
+
disconnectedCallback() {
|
|
306
|
+
this.disconnectedCalled = true;
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
return TestElement = _classThis;
|
|
310
|
+
})();
|
|
311
|
+
customElements.define("test-disconnect", TestElement);
|
|
312
|
+
const el = new TestElement();
|
|
313
|
+
assert.isFalse(el.connectedCalled);
|
|
314
|
+
assert.isFalse(el.disconnectedCalled);
|
|
315
|
+
document.body.append(el);
|
|
316
|
+
assert.isTrue(el.connectedCalled);
|
|
317
|
+
assert.isFalse(el.disconnectedCalled);
|
|
318
|
+
el.remove();
|
|
319
|
+
assert.isTrue(el.connectedCalled);
|
|
320
|
+
assert.isTrue(el.disconnectedCalled);
|
|
321
|
+
});
|
|
322
|
+
it("should call connected and disconnected callbacks when element is replaced", async () => {
|
|
323
|
+
const calls = [];
|
|
324
|
+
let TestElement1 = (() => {
|
|
325
|
+
let _classDecorators = [injectable()];
|
|
326
|
+
let _classDescriptor;
|
|
327
|
+
let _classExtraInitializers = [];
|
|
328
|
+
let _classThis;
|
|
329
|
+
let _classSuper = HTMLElement;
|
|
330
|
+
var TestElement1 = class extends _classSuper {
|
|
331
|
+
static { _classThis = this; }
|
|
332
|
+
static {
|
|
333
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
334
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
335
|
+
TestElement1 = _classThis = _classDescriptor.value;
|
|
336
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
337
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
338
|
+
}
|
|
339
|
+
connectedCallback() {
|
|
340
|
+
calls.push("1-connected");
|
|
341
|
+
}
|
|
342
|
+
disconnectedCallback() {
|
|
343
|
+
calls.push("1-disconnected");
|
|
344
|
+
}
|
|
345
|
+
};
|
|
346
|
+
return TestElement1 = _classThis;
|
|
347
|
+
})();
|
|
348
|
+
let TestElement2 = (() => {
|
|
349
|
+
let _classDecorators = [injectable()];
|
|
350
|
+
let _classDescriptor;
|
|
351
|
+
let _classExtraInitializers = [];
|
|
352
|
+
let _classThis;
|
|
353
|
+
let _classSuper = HTMLElement;
|
|
354
|
+
var TestElement2 = class extends _classSuper {
|
|
355
|
+
static { _classThis = this; }
|
|
356
|
+
static {
|
|
357
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
358
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
359
|
+
TestElement2 = _classThis = _classDescriptor.value;
|
|
360
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
361
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
362
|
+
}
|
|
363
|
+
connectedCallback() {
|
|
364
|
+
calls.push("2-connected");
|
|
365
|
+
}
|
|
366
|
+
disconnectedCallback() {
|
|
367
|
+
calls.push("2-disconnected");
|
|
368
|
+
}
|
|
369
|
+
};
|
|
370
|
+
return TestElement2 = _classThis;
|
|
371
|
+
})();
|
|
372
|
+
customElements.define("test-disconnect-2", TestElement1);
|
|
373
|
+
customElements.define("test-disconnect-3", TestElement2);
|
|
374
|
+
const el1 = new TestElement1();
|
|
375
|
+
const el2 = new TestElement2();
|
|
376
|
+
assert.isEmpty(calls);
|
|
377
|
+
document.body.append(el1);
|
|
378
|
+
assert.deepEqual(calls, ["1-connected"]);
|
|
379
|
+
el1.replaceWith(el2);
|
|
380
|
+
assert.deepEqual(calls, ["1-connected", "1-disconnected", "2-connected"]);
|
|
381
|
+
});
|
|
284
382
|
//# sourceMappingURL=injectable-el.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectable-el.test.js","sourceRoot":"","sources":["../../../src/lib/dom/injectable-el.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;IAClE,MAAM,GAAG;KAAG;QAGN,SAAS;gCADd,UAAU,EAAE;;;;0BACW,WAAW;6BAAnB,SAAQ,WAAW;;;;gBAAnC,6KAEC;;;gBAFK,uDAAS;;YACb,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;;;;IAGpB,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAEjD,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;IAE3B,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,kFAAkF,EAAE,GAAG,EAAE;IAC1F,MAAM,GAAG;KAAG;IAEZ,MAAM,aAAc,SAAQ,WAAW;KAAG;QAGpC,SAAS;gCADd,UAAU,EAAE;;;;0BACW,aAAa;6BAArB,SAAQ,WAAa;;;;gBAArC,6KAEC;;;gBAFK,uDAAS;;YACb,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;;;;IAGpB,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAEjD,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;IAE3B,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QAE7C,CAAC;gCADN,UAAU,EAAE;;;;;;;;gBACb,6KAAU;;;gBAAJ,uDAAC;;;;;QAGD,CAAC;gCADN,UAAU,EAAE;;;;;;;;gBACb,6KAEC;;;gBAFK,uDAAC;;YACL,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;;;;IAGhB,MAAM,IAAI;KAAgB;QAQpB,MAAM;gCANX,UAAU,CAAC;gBACV,SAAS,EAAE;oBACT,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;oBACf,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;iBACnB;aACF,CAAC;;;;0BACmB,WAAW;0BAAnB,SAAQ,WAAW;;;;gBAAhC,6KAAmC;;;gBAA7B,uDAAM;;;;;QAGN,KAAK;gCADV,UAAU,EAAE;;;;0BACO,WAAW;yBAAnB,SAAQ,WAAW;;;;gBAA/B,6KAEC;;;gBAFK,uDAAK;;YACT,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;;;;IAGhB,cAAc,CAAC,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACrD,cAAc,CAAC,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IAEnD,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACzC,EAAE,CAAC,SAAS,GAAY;;;;GAIvB,CAAC;IAEF,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEzB,MAAM,KAAK,GAAG,EAAE,CAAC,aAAa,CAAQ,oBAAoB,CAAC,CAAC;IAE5D,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAExC,EAAE,CAAC,MAAM,EAAE,CAAC;AACd,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;IAC/C,MAAM,CAAC;KAAG;IACV,MAAM,IAAI;KAAgB;QAKpB,IAAI;gCAHT,UAAU,CAAC;gBACV,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;aAC7B,CAAC;;;;0BACiB,WAAW;wBAAnB,SAAQ,WAAW;;;;gBAA9B,6KAAiC;;;gBAA3B,uDAAI;;;;;QAKJ,IAAI;gCAHT,UAAU,CAAC;gBACV,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;aAChC,CAAC;;;;0BACiB,WAAW;wBAAnB,SAAQ,WAAW;;;;gBAA9B,6KAAiC;;;gBAA3B,uDAAI;;;;;QAGJ,KAAK;gCADV,UAAU,EAAE;;;;0BACO,WAAW;yBAAnB,SAAQ,WAAW;;;;gBAA/B,6KAEC;;;gBAFK,uDAAK;;YACT,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;;;;IAGhB,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAE1C,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACzC,EAAE,CAAC,SAAS,GAAY;;;;;;;;GAQvB,CAAC;IAEF,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEzB,MAAM,IAAI,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAEvC,IAAI,KAAK,GAAG,EAAE,CAAC,aAAa,CAAQ,WAAW,CAAC,CAAC;IAEjD,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAEjC,KAAK,CAAC,MAAM,EAAE,CAAC;IAEf,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpB,KAAK,GAAG,EAAE,CAAC,aAAa,CAAQ,WAAW,CAAC,CAAC;IAE7C,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;IAC5F,MAAM,CAAC;KAAG;IAEV,MAAM,IAAI;KAAG;IAEb,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC;QAC1B,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;KAChC,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAGpB,OAAO;gCADZ,UAAU,EAAE;;;;0BACS,WAAW;2BAAnB,SAAQ,WAAW;;;;gBAAjC,6KAaC;;;gBAbK,uDAAO;;YACX,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAEjB,SAAS,GAAa,IAAI,CAAC;YAC3B,YAAY,GAAa,IAAI,CAAC;YAE9B,iBAAiB;gBACf,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/B,CAAC;YAED,oBAAoB;gBAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,CAAC;;;;IAGH,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAExC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAY,CAAC;IAEtD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEzB,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAEtC,EAAE,CAAC,MAAM,EAAE,CAAC;IAEZ,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAEzC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IAE5C,GAAG,CAAC,MAAM,EAAE,CAAC;AACf,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"injectable-el.test.js","sourceRoot":"","sources":["../../../src/lib/dom/injectable-el.test.ts"],"names":[],"mappings":"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"}
|