@toyz/loom 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/decorators/create.d.ts +56 -0
- package/dist/decorators/create.d.ts.map +1 -0
- package/dist/decorators/create.js +72 -0
- package/dist/decorators/create.js.map +1 -0
- package/dist/decorators/events.d.ts +6 -9
- package/dist/decorators/events.d.ts.map +1 -1
- package/dist/decorators/events.js +27 -22
- package/dist/decorators/events.js.map +1 -1
- package/dist/decorators/index.d.ts +13 -13
- package/dist/decorators/index.d.ts.map +1 -1
- package/dist/decorators/index.js +20 -21
- package/dist/decorators/index.js.map +1 -1
- package/dist/{decorators/di.d.ts → di/decorators.d.ts} +10 -3
- package/dist/di/decorators.d.ts.map +1 -0
- package/dist/{decorators/di.js → di/decorators.js} +16 -10
- package/dist/di/decorators.js.map +1 -0
- package/dist/di/index.d.ts +8 -0
- package/dist/di/index.d.ts.map +1 -0
- package/dist/di/index.js +10 -0
- package/dist/di/index.js.map +1 -0
- package/dist/di/watch.d.ts +23 -0
- package/dist/di/watch.d.ts.map +1 -0
- package/dist/di/watch.js +41 -0
- package/dist/di/watch.js.map +1 -0
- package/dist/element/decorators.d.ts +32 -0
- package/dist/element/decorators.d.ts.map +1 -0
- package/dist/element/decorators.js +72 -0
- package/dist/element/decorators.js.map +1 -0
- package/dist/{element.d.ts → element/element.d.ts} +5 -11
- package/dist/element/element.d.ts.map +1 -0
- package/dist/{element.js → element/element.js} +8 -34
- package/dist/element/element.js.map +1 -0
- package/dist/element/icon.d.ts.map +1 -0
- package/dist/{icon.js → element/icon.js} +3 -2
- package/dist/element/icon.js.map +1 -0
- package/dist/element/index.d.ts +11 -0
- package/dist/element/index.d.ts.map +1 -0
- package/dist/element/index.js +14 -0
- package/dist/element/index.js.map +1 -0
- package/dist/{decorators → element}/lifecycle.d.ts +9 -1
- package/dist/element/lifecycle.d.ts.map +1 -0
- package/dist/{decorators → element}/lifecycle.js +50 -35
- package/dist/element/lifecycle.js.map +1 -0
- package/dist/element/timing.d.ts +65 -0
- package/dist/element/timing.d.ts.map +1 -0
- package/dist/element/timing.js +116 -0
- package/dist/element/timing.js.map +1 -0
- package/dist/element/virtual.d.ts.map +1 -0
- package/dist/{virtual.js → element/virtual.js} +1 -1
- package/dist/element/virtual.js.map +1 -0
- package/dist/index.d.ts +11 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -14
- package/dist/index.js.map +1 -1
- package/dist/router/decorators.d.ts +50 -0
- package/dist/router/decorators.d.ts.map +1 -0
- package/dist/router/decorators.js +84 -0
- package/dist/router/decorators.js.map +1 -0
- package/dist/router/index.d.ts +4 -3
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +6 -4
- package/dist/router/index.js.map +1 -1
- package/dist/router/outlet.d.ts +1 -1
- package/dist/router/outlet.d.ts.map +1 -1
- package/dist/router/outlet.js +2 -2
- package/dist/router/outlet.js.map +1 -1
- package/dist/router/route.d.ts +16 -47
- package/dist/router/route.d.ts.map +1 -1
- package/dist/router/route.js +5 -102
- package/dist/router/route.js.map +1 -1
- package/dist/router/router.d.ts.map +1 -1
- package/dist/router/router.js +2 -1
- package/dist/router/router.js.map +1 -1
- package/dist/{decorators/state.d.ts → store/decorators.d.ts} +8 -1
- package/dist/store/decorators.d.ts.map +1 -0
- package/dist/{decorators/state.js → store/decorators.js} +13 -4
- package/dist/store/decorators.js.map +1 -0
- package/dist/store/index.d.ts +12 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +14 -0
- package/dist/store/index.js.map +1 -0
- package/dist/{reactive.d.ts → store/reactive.d.ts} +7 -5
- package/dist/store/reactive.d.ts.map +1 -0
- package/dist/{reactive.js → store/reactive.js} +9 -5
- package/dist/store/reactive.js.map +1 -0
- package/dist/store/storage.d.ts +53 -0
- package/dist/store/storage.d.ts.map +1 -0
- package/dist/store/storage.js +78 -0
- package/dist/store/storage.js.map +1 -0
- package/dist/store/watch.d.ts +27 -0
- package/dist/store/watch.d.ts.map +1 -0
- package/dist/store/watch.js +30 -0
- package/dist/store/watch.js.map +1 -0
- package/dist/transform/built-in.d.ts +36 -0
- package/dist/transform/built-in.d.ts.map +1 -0
- package/dist/transform/built-in.js +37 -0
- package/dist/transform/built-in.js.map +1 -0
- package/dist/transform/create.d.ts +19 -0
- package/dist/transform/create.d.ts.map +1 -0
- package/dist/transform/create.js +27 -0
- package/dist/transform/create.js.map +1 -0
- package/dist/transform/index.d.ts +11 -0
- package/dist/transform/index.d.ts.map +1 -0
- package/dist/transform/index.js +14 -0
- package/dist/transform/index.js.map +1 -0
- package/dist/transform/transform.d.ts +14 -0
- package/dist/transform/transform.d.ts.map +1 -0
- package/dist/transform/transform.js +21 -0
- package/dist/transform/transform.js.map +1 -0
- package/dist/transform/typed.d.ts +40 -0
- package/dist/transform/typed.d.ts.map +1 -0
- package/dist/transform/typed.js +55 -0
- package/dist/transform/typed.js.map +1 -0
- package/package.json +35 -3
- package/dist/decorators/component.d.ts +0 -11
- package/dist/decorators/component.d.ts.map +0 -1
- package/dist/decorators/component.js +0 -38
- package/dist/decorators/component.js.map +0 -1
- package/dist/decorators/di.d.ts.map +0 -1
- package/dist/decorators/di.js.map +0 -1
- package/dist/decorators/dom.d.ts +0 -15
- package/dist/decorators/dom.d.ts.map +0 -1
- package/dist/decorators/dom.js +0 -33
- package/dist/decorators/dom.js.map +0 -1
- package/dist/decorators/lifecycle.d.ts.map +0 -1
- package/dist/decorators/lifecycle.js.map +0 -1
- package/dist/decorators/state.d.ts.map +0 -1
- package/dist/decorators/state.js.map +0 -1
- package/dist/decorators/timing.d.ts +0 -35
- package/dist/decorators/timing.d.ts.map +0 -1
- package/dist/decorators/timing.js +0 -57
- package/dist/decorators/timing.js.map +0 -1
- package/dist/decorators/transform.d.ts +0 -45
- package/dist/decorators/transform.d.ts.map +0 -1
- package/dist/decorators/transform.js +0 -48
- package/dist/decorators/transform.js.map +0 -1
- package/dist/element.d.ts.map +0 -1
- package/dist/element.js.map +0 -1
- package/dist/icon.d.ts.map +0 -1
- package/dist/icon.js.map +0 -1
- package/dist/reactive.d.ts.map +0 -1
- package/dist/reactive.js.map +0 -1
- package/dist/storage.d.ts +0 -55
- package/dist/storage.d.ts.map +0 -1
- package/dist/storage.js +0 -90
- package/dist/storage.js.map +0 -1
- package/dist/virtual.d.ts.map +0 -1
- package/dist/virtual.js.map +0 -1
- /package/dist/{icon.d.ts → element/icon.d.ts} +0 -0
- /package/dist/{virtual.d.ts → element/virtual.d.ts} +0 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loom — Element decorators
|
|
3
|
+
*
|
|
4
|
+
* @component — Register a class as a custom element
|
|
5
|
+
* @query — Lazy shadow DOM querySelector
|
|
6
|
+
* @queryAll — Lazy shadow DOM querySelectorAll
|
|
7
|
+
*/
|
|
8
|
+
import { PROPS } from "../decorators/symbols";
|
|
9
|
+
import { app } from "../app";
|
|
10
|
+
import { createDecorator } from "../decorators/create";
|
|
11
|
+
/**
|
|
12
|
+
* Register a class as a custom element. Wires @prop observed attributes
|
|
13
|
+
* and attributeChangedCallback auto-parsing.
|
|
14
|
+
*
|
|
15
|
+
* ```ts
|
|
16
|
+
* @component("my-counter")
|
|
17
|
+
* class MyCounter extends LoomElement { ... }
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export const component = createDecorator((ctor, tag) => {
|
|
21
|
+
const propMap = ctor[PROPS] ?? new Map();
|
|
22
|
+
// Wire observedAttributes from @prop fields
|
|
23
|
+
Object.defineProperty(ctor, "observedAttributes", {
|
|
24
|
+
get: () => [...propMap.keys()],
|
|
25
|
+
});
|
|
26
|
+
// Wire attributeChangedCallback to update @prop fields
|
|
27
|
+
const origCallback = ctor.prototype.attributeChangedCallback;
|
|
28
|
+
ctor.prototype.attributeChangedCallback = function (name, _old, val) {
|
|
29
|
+
const field = propMap.get(name);
|
|
30
|
+
if (field && val !== null) {
|
|
31
|
+
const current = this[field];
|
|
32
|
+
if (typeof current === "number")
|
|
33
|
+
this[field] = Number(val);
|
|
34
|
+
else if (typeof current === "boolean")
|
|
35
|
+
this[field] = val !== null && val !== "false";
|
|
36
|
+
else
|
|
37
|
+
this[field] = val;
|
|
38
|
+
}
|
|
39
|
+
origCallback?.call(this, name, _old, val);
|
|
40
|
+
};
|
|
41
|
+
app.register(tag, ctor);
|
|
42
|
+
ctor.__loom_tag = tag;
|
|
43
|
+
}, { class: true });
|
|
44
|
+
/**
|
|
45
|
+
* Lazy shadow DOM querySelector.
|
|
46
|
+
* ```ts
|
|
47
|
+
* @query(".submit-btn") submitBtn!: HTMLButtonElement;
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export const query = createDecorator((proto, key, selector) => {
|
|
51
|
+
Object.defineProperty(proto, key, {
|
|
52
|
+
get() {
|
|
53
|
+
return this.shadow.querySelector(selector);
|
|
54
|
+
},
|
|
55
|
+
configurable: true,
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
/**
|
|
59
|
+
* Lazy shadow DOM querySelectorAll.
|
|
60
|
+
* ```ts
|
|
61
|
+
* @queryAll("input") inputs!: HTMLInputElement[];
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export const queryAll = createDecorator((proto, key, selector) => {
|
|
65
|
+
Object.defineProperty(proto, key, {
|
|
66
|
+
get() {
|
|
67
|
+
return Array.from(this.shadow.querySelectorAll(selector));
|
|
68
|
+
},
|
|
69
|
+
configurable: true,
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/element/decorators.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACpE,MAAM,OAAO,GACV,IAAY,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;IAEpC,4CAA4C;IAC5C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,EAAE;QAChD,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;KAC/B,CAAC,CAAC;IAEH,uDAAuD;IACvD,MAAM,YAAY,GAAI,IAAI,CAAC,SAAiB,CAAC,wBAAwB,CAAC;IACrE,IAAI,CAAC,SAAiB,CAAC,wBAAwB,GAAG,UACjD,IAAY,EACZ,IAAmB,EACnB,GAAkB;QAElB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAI,IAAY,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAG,IAAY,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;iBAC/D,IAAI,OAAO,OAAO,KAAK,SAAS;gBAClC,IAAY,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,OAAO,CAAC;;gBACnD,IAAY,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;QAClC,CAAC;QACD,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAgC,CAAC,CAAC;IACnD,IAAY,CAAC,UAAU,GAAG,GAAG,CAAC;AACjC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAEpB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,eAAe,CAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;IAChF,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE;QAChC,GAAG;YACD,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QACD,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;IACnF,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE;QAChC,GAAG;YACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* Web Component base with shadow DOM, css tagged templates,
|
|
5
|
-
* lifecycle hooks, and cleanup tracking.
|
|
6
|
-
*/
|
|
7
|
-
import { type Constructor, type Handler } from "./bus";
|
|
8
|
-
import { type LoomEvent } from "./event";
|
|
9
|
-
import { type CSSValue } from "./css";
|
|
1
|
+
import { type Constructor, type Handler } from "../bus";
|
|
2
|
+
import { type LoomEvent } from "../event";
|
|
3
|
+
import { type CSSValue } from "../css";
|
|
10
4
|
export declare abstract class LoomElement extends HTMLElement {
|
|
11
5
|
/** Access the LoomApp instance for inline provider resolution */
|
|
12
|
-
protected get app(): import("
|
|
6
|
+
protected get app(): import("..").LoomApp;
|
|
13
7
|
protected shadow: ShadowRoot;
|
|
14
8
|
private cleanups;
|
|
15
9
|
constructor();
|
|
@@ -27,7 +21,7 @@ export declare abstract class LoomElement extends HTMLElement {
|
|
|
27
21
|
/** Emit a typed event */
|
|
28
22
|
protected emit<T extends LoomEvent>(event: T): void;
|
|
29
23
|
/** Track any cleanup function — runs on disconnect */
|
|
30
|
-
|
|
24
|
+
track(unsub: () => void): void;
|
|
31
25
|
/** querySelector within shadow root */
|
|
32
26
|
protected $<T extends Element = HTMLElement>(sel: string): T | null;
|
|
33
27
|
/** querySelectorAll within shadow root */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../src/element/element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,KAAK,QAAQ,EAAY,MAAM,QAAQ,CAAC;AAKjD,8BAAsB,WAAY,SAAQ,WAAW;IACnD,iEAAiE;IACjE,SAAS,KAAK,GAAG,yBAAkB;IAEnC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAsB;;IAStC,8DAA8D;IAC9D,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IACjC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI;IAQzE;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI;IAU1C,8DAA8D;IAC9D,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAMtE,yBAAyB;IACzB,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAMnD,sDAAsD;IACtD,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,GAAG,IAAI;IAM9B,uCAAuC;IACvC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAInE,0CAA0C;IAC1C,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,OAAO,GAAG,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE;IAM/D,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAQ5B;;;OAGG;IACH,MAAM,IAAI,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI;IAE9B;;;OAGG;IACH,YAAY,IAAI,IAAI;IAEpB;;;OAGG;IACH,YAAY,IAAI,OAAO;IAMvB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,WAAW,CAAS;IAE5B,0DAA0D;IAC1D,cAAc,IAAI,IAAI;IAsBtB;;;OAGG;IACH,KAAK,IAAI,IAAI;CAKd"}
|
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*/
|
|
7
|
-
import { bus } from "./bus";
|
|
8
|
-
import { adoptCSS } from "./css";
|
|
9
|
-
import { ON_HANDLERS, COMPUTED_DIRTY, MOUNT_HANDLERS, UNMOUNT_HANDLERS, REACTIVES } from "./decorators";
|
|
10
|
-
import { morph } from "./morph";
|
|
11
|
-
import { app } from "./app";
|
|
1
|
+
import { bus } from "../bus";
|
|
2
|
+
import { adoptCSS } from "../css";
|
|
3
|
+
import { COMPUTED_DIRTY, REACTIVES } from "../decorators/symbols";
|
|
4
|
+
import { morph } from "../morph";
|
|
5
|
+
import { app } from "../app";
|
|
12
6
|
export class LoomElement extends HTMLElement {
|
|
13
7
|
/** Access the LoomApp instance for inline provider resolution */
|
|
14
8
|
get app() { return app; }
|
|
@@ -60,35 +54,15 @@ export class LoomElement extends HTMLElement {
|
|
|
60
54
|
}
|
|
61
55
|
// ── Lifecycle ──
|
|
62
56
|
connectedCallback() {
|
|
63
|
-
//
|
|
64
|
-
|
|
65
|
-
if (handler.domTarget) {
|
|
66
|
-
// DOM EventTarget: @on(window, "resize")
|
|
67
|
-
const fn = (e) => this[handler.key](e);
|
|
68
|
-
handler.domTarget.addEventListener(handler.event, fn);
|
|
69
|
-
this.track(() => handler.domTarget.removeEventListener(handler.event, fn));
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
// Bus event: @on(ColorSelect)
|
|
73
|
-
this.track(bus.on(handler.type, (e) => this[handler.key](e)));
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
// Only auto-render if component uses reactive patterns
|
|
57
|
+
// Decorators self-wire via createDecorator's connectedCallback chain.
|
|
58
|
+
// We only need to trigger the initial render for reactive components.
|
|
77
59
|
const hasReactives = (this[REACTIVES]?.length ?? 0) > 0;
|
|
78
60
|
const overridesUpdate = this.update !== LoomElement.prototype.update;
|
|
79
61
|
if (hasReactives || overridesUpdate)
|
|
80
62
|
this.scheduleUpdate();
|
|
81
|
-
// Fire @mount handlers
|
|
82
|
-
for (const key of this[MOUNT_HANDLERS] ?? []) {
|
|
83
|
-
this[key]();
|
|
84
|
-
}
|
|
85
63
|
}
|
|
86
64
|
disconnectedCallback() {
|
|
87
|
-
//
|
|
88
|
-
for (const key of this[UNMOUNT_HANDLERS] ?? []) {
|
|
89
|
-
this[key]();
|
|
90
|
-
}
|
|
91
|
-
// Run all track() cleanups
|
|
65
|
+
// Run all track() cleanups (includes decorator-registered cleanups)
|
|
92
66
|
this.cleanups.forEach((fn) => fn());
|
|
93
67
|
this.cleanups = [];
|
|
94
68
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/element/element.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../src/element/icon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AA6BxC,qBACa,QAAS,SAAQ,WAAW;IAEvC,2DAA2D;IACrD,IAAI,SAAM;IAEhB,qBAAqB;IACf,IAAI,SAAM;IAEhB,+BAA+B;IACzB,KAAK,SAAkB;IAE7B,mFAAmF;IACnF,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIrD,uCAAuC;IACvC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAMvD,sCAAsC;IACtC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC,sCAAsC;IACtC,MAAM,KAAK,KAAK,IAAI,MAAM,EAAE,CAE3B;IAED,mFAAmF;IACnF,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAU9E,iBAAiB;IASjB,MAAM;CAiBP"}
|
|
@@ -18,8 +18,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
18
18
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
19
19
|
};
|
|
20
20
|
import { LoomElement } from "./element";
|
|
21
|
-
import { component
|
|
22
|
-
import {
|
|
21
|
+
import { component } from "./decorators";
|
|
22
|
+
import { prop } from "../store/decorators";
|
|
23
|
+
import { css } from "../css";
|
|
23
24
|
const baseStyles = css `
|
|
24
25
|
:host {
|
|
25
26
|
display: inline-flex;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon.js","sourceRoot":"","sources":["../../src/element/icon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loom Element — Barrel exports
|
|
3
|
+
*
|
|
4
|
+
* LoomElement base class, built-in elements, and element decorators.
|
|
5
|
+
*/
|
|
6
|
+
export { LoomElement } from "./element";
|
|
7
|
+
export type { VirtualListOptions } from "./virtual";
|
|
8
|
+
export { component, query, queryAll } from "./decorators";
|
|
9
|
+
export { catch_, suspend, mount, unmount } from "./lifecycle";
|
|
10
|
+
export { interval, timeout, debounce, throttle, animationFrame } from "./timing";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/element/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAKxC,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGpD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG1D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loom Element — Barrel exports
|
|
3
|
+
*
|
|
4
|
+
* LoomElement base class, built-in elements, and element decorators.
|
|
5
|
+
*/
|
|
6
|
+
// Base element
|
|
7
|
+
export { LoomElement } from "./element";
|
|
8
|
+
// Element decorators
|
|
9
|
+
export { component, query, queryAll } from "./decorators";
|
|
10
|
+
// Lifecycle decorators
|
|
11
|
+
export { catch_, suspend, mount, unmount } from "./lifecycle";
|
|
12
|
+
// Timing decorators
|
|
13
|
+
export { interval, timeout, debounce, throttle, animationFrame } from "./timing";
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/element/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAOxC,qBAAqB;AACrB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE1D,uBAAuB;AACvB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE9D,oBAAoB;AACpB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loom — Element lifecycle decorators
|
|
3
|
+
*
|
|
4
|
+
* @catch_ — Error boundary
|
|
5
|
+
* @suspend — Async suspense
|
|
6
|
+
* @mount — connectedCallback hook
|
|
7
|
+
* @unmount — disconnectedCallback hook
|
|
8
|
+
*/
|
|
1
9
|
type CatchFn = (error: Error, element: any) => void;
|
|
2
10
|
/**
|
|
3
11
|
* Error boundary. Wraps lifecycle methods with try/catch, renders fallback on error.
|
|
@@ -11,7 +19,7 @@ type CatchFn = (error: Error, element: any) => void;
|
|
|
11
19
|
* class MyWidget extends LoomElement { ... }
|
|
12
20
|
* ```
|
|
13
21
|
*/
|
|
14
|
-
export declare
|
|
22
|
+
export declare const catch_: (handler: CatchFn) => (ctor: any) => void;
|
|
15
23
|
/**
|
|
16
24
|
* Async suspense. Wraps async methods to auto-manage loading/error state.
|
|
17
25
|
* Expects the component to have @reactive loading and @reactive error fields.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/element/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,KAAK,OAAO,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;AAEpD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,MAAM,YAEA,OAAO,YACR,GAAG,SA4BjB,CAAC;AAEL;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,KACb,SAAS,GAAG,EAAE,MAAM,MAAM,EAAE,MAAM,kBAAkB,UAkB7D;AAED;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAMpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAMtD"}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Loom — Element lifecycle decorators
|
|
3
|
+
*
|
|
4
|
+
* @catch_ — Error boundary
|
|
5
|
+
* @suspend — Async suspense
|
|
6
|
+
* @mount — connectedCallback hook
|
|
7
|
+
* @unmount — disconnectedCallback hook
|
|
8
|
+
*/
|
|
9
|
+
import { CATCH_HANDLER } from "../decorators/symbols";
|
|
2
10
|
/**
|
|
3
11
|
* Error boundary. Wraps lifecycle methods with try/catch, renders fallback on error.
|
|
4
12
|
* Named catch_ since `catch` is reserved.
|
|
@@ -11,35 +19,38 @@ import { CATCH_HANDLER, MOUNT_HANDLERS, UNMOUNT_HANDLERS } from "./symbols";
|
|
|
11
19
|
* class MyWidget extends LoomElement { ... }
|
|
12
20
|
* ```
|
|
13
21
|
*/
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
ctor.prototype.update
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
ctor.prototype.connectedCallback
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
22
|
+
export const catch_ = (function () {
|
|
23
|
+
// Manual implementation since createDecorator import would add unnecessary dep
|
|
24
|
+
return (handler) => {
|
|
25
|
+
return (ctor) => {
|
|
26
|
+
ctor[CATCH_HANDLER] = handler;
|
|
27
|
+
// Wrap update()
|
|
28
|
+
const origUpdate = ctor.prototype.update;
|
|
29
|
+
if (origUpdate) {
|
|
30
|
+
ctor.prototype.update = function () {
|
|
31
|
+
try {
|
|
32
|
+
return origUpdate.call(this);
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
handler(err, this);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
// Wrap connectedCallback()
|
|
40
|
+
const origConnect = ctor.prototype.connectedCallback;
|
|
41
|
+
if (origConnect) {
|
|
42
|
+
ctor.prototype.connectedCallback = function () {
|
|
43
|
+
try {
|
|
44
|
+
origConnect.call(this);
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
handler(err, this);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
};
|
|
41
52
|
};
|
|
42
|
-
}
|
|
53
|
+
})();
|
|
43
54
|
/**
|
|
44
55
|
* Async suspense. Wraps async methods to auto-manage loading/error state.
|
|
45
56
|
* Expects the component to have @reactive loading and @reactive error fields.
|
|
@@ -84,9 +95,11 @@ export function suspend() {
|
|
|
84
95
|
* ```
|
|
85
96
|
*/
|
|
86
97
|
export function mount(target, key) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
98
|
+
const orig = target.connectedCallback;
|
|
99
|
+
target.connectedCallback = function () {
|
|
100
|
+
orig?.call(this);
|
|
101
|
+
this[key]();
|
|
102
|
+
};
|
|
90
103
|
}
|
|
91
104
|
/**
|
|
92
105
|
* Lifecycle: runs when element disconnects from the DOM.
|
|
@@ -98,8 +111,10 @@ export function mount(target, key) {
|
|
|
98
111
|
* ```
|
|
99
112
|
*/
|
|
100
113
|
export function unmount(target, key) {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
114
|
+
const orig = target.connectedCallback;
|
|
115
|
+
target.connectedCallback = function () {
|
|
116
|
+
orig?.call(this);
|
|
117
|
+
this.track(() => this[key]());
|
|
118
|
+
};
|
|
104
119
|
}
|
|
105
120
|
//# sourceMappingURL=lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/element/lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loom — Element timing decorators
|
|
3
|
+
*
|
|
4
|
+
* @interval — Auto-cleaned setInterval
|
|
5
|
+
* @timeout — Auto-cleaned setTimeout
|
|
6
|
+
* @debounce — Debounced method
|
|
7
|
+
* @throttle — Throttled method
|
|
8
|
+
* @animationFrame — Centralized rAF loop via RenderLoop
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Auto-cleaned setInterval. Runs the method every `ms` milliseconds.
|
|
12
|
+
* Timer is started on connect, cleared on disconnect via track().
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* @interval(1000)
|
|
16
|
+
* tick() { this.time = new Date(); }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare const interval: (ms: number) => (target: any, key: string, desc?: PropertyDescriptor) => void;
|
|
20
|
+
/**
|
|
21
|
+
* Auto-cleaned setTimeout. Runs the method once after `ms` milliseconds.
|
|
22
|
+
* Timer is started on connect, cleared on disconnect via track().
|
|
23
|
+
*
|
|
24
|
+
* ```ts
|
|
25
|
+
* @timeout(3000)
|
|
26
|
+
* hideWelcome() { this.$(".welcome")?.remove(); }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare const timeout: (ms: number) => (target: any, key: string, desc?: PropertyDescriptor) => void;
|
|
30
|
+
/**
|
|
31
|
+
* Debounce a method — delays execution until `ms` of inactivity.
|
|
32
|
+
* Auto-cancels pending timer on disconnect.
|
|
33
|
+
*
|
|
34
|
+
* ```ts
|
|
35
|
+
* @debounce(300)
|
|
36
|
+
* onInput(e: Event) { this.query = (e.target as HTMLInputElement).value; }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare const debounce: (ms: number) => (target: any, key: string, desc?: PropertyDescriptor) => void;
|
|
40
|
+
/**
|
|
41
|
+
* Throttle a method — fires at most once per `ms` milliseconds.
|
|
42
|
+
* Uses trailing-edge: the last call within the window always fires.
|
|
43
|
+
* Auto-cancels pending timer on disconnect.
|
|
44
|
+
*
|
|
45
|
+
* ```ts
|
|
46
|
+
* @throttle(16)
|
|
47
|
+
* onScroll() { this.offset = this.scrollTop; }
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export declare const throttle: (ms: number) => (target: any, key: string, desc?: PropertyDescriptor) => void;
|
|
51
|
+
/**
|
|
52
|
+
* Centralized rAF loop via RenderLoop. Method receives (deltaTime, timestamp).
|
|
53
|
+
* Use layer to control execution order (lower = earlier).
|
|
54
|
+
*
|
|
55
|
+
* ```ts
|
|
56
|
+
* @animationFrame(10) // layer 10
|
|
57
|
+
* draw(dt: number, t: number) { ... }
|
|
58
|
+
*
|
|
59
|
+
* @animationFrame() // default layer 0
|
|
60
|
+
* physics(dt: number) { ... }
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export declare function animationFrame(layer?: number): (target: any, key: string) => void;
|
|
64
|
+
export declare function animationFrame(target: any, key: string): void;
|
|
65
|
+
//# sourceMappingURL=timing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../../src/element/timing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,iDAwDpB,CAAD,6BAnDE,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,iDAwCnB,CAAD,6BAnCE,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,iDAwBpB,CAAD,6BAVE,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,iDAFpB,CAAD,6BA2BE,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;AACnF,wBAAgB,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loom — Element timing decorators
|
|
3
|
+
*
|
|
4
|
+
* @interval — Auto-cleaned setInterval
|
|
5
|
+
* @timeout — Auto-cleaned setTimeout
|
|
6
|
+
* @debounce — Debounced method
|
|
7
|
+
* @throttle — Throttled method
|
|
8
|
+
* @animationFrame — Centralized rAF loop via RenderLoop
|
|
9
|
+
*/
|
|
10
|
+
import { renderLoop } from "../render-loop";
|
|
11
|
+
import { createDecorator } from "../decorators/create";
|
|
12
|
+
/**
|
|
13
|
+
* Auto-cleaned setInterval. Runs the method every `ms` milliseconds.
|
|
14
|
+
* Timer is started on connect, cleared on disconnect via track().
|
|
15
|
+
*
|
|
16
|
+
* ```ts
|
|
17
|
+
* @interval(1000)
|
|
18
|
+
* tick() { this.time = new Date(); }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export const interval = createDecorator((_proto, key, ms) => {
|
|
22
|
+
return (el) => {
|
|
23
|
+
const id = setInterval(() => el[key](), ms);
|
|
24
|
+
return () => clearInterval(id);
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
/**
|
|
28
|
+
* Auto-cleaned setTimeout. Runs the method once after `ms` milliseconds.
|
|
29
|
+
* Timer is started on connect, cleared on disconnect via track().
|
|
30
|
+
*
|
|
31
|
+
* ```ts
|
|
32
|
+
* @timeout(3000)
|
|
33
|
+
* hideWelcome() { this.$(".welcome")?.remove(); }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export const timeout = createDecorator((_proto, key, ms) => {
|
|
37
|
+
return (el) => {
|
|
38
|
+
const id = setTimeout(() => el[key](), ms);
|
|
39
|
+
return () => clearTimeout(id);
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
/**
|
|
43
|
+
* Debounce a method — delays execution until `ms` of inactivity.
|
|
44
|
+
* Auto-cancels pending timer on disconnect.
|
|
45
|
+
*
|
|
46
|
+
* ```ts
|
|
47
|
+
* @debounce(300)
|
|
48
|
+
* onInput(e: Event) { this.query = (e.target as HTMLInputElement).value; }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export const debounce = createDecorator((proto, key, ms) => {
|
|
52
|
+
const original = proto[key];
|
|
53
|
+
const timerKey = `__debounce_${key}`;
|
|
54
|
+
// Define-time: replace method with debounced version
|
|
55
|
+
proto[key] = function (...args) {
|
|
56
|
+
clearTimeout(this[timerKey]);
|
|
57
|
+
this[timerKey] = setTimeout(() => original.apply(this, args), ms);
|
|
58
|
+
};
|
|
59
|
+
// Lifecycle: cancel pending timer on disconnect
|
|
60
|
+
return (el) => {
|
|
61
|
+
return () => clearTimeout(el[timerKey]);
|
|
62
|
+
};
|
|
63
|
+
});
|
|
64
|
+
/**
|
|
65
|
+
* Throttle a method — fires at most once per `ms` milliseconds.
|
|
66
|
+
* Uses trailing-edge: the last call within the window always fires.
|
|
67
|
+
* Auto-cancels pending timer on disconnect.
|
|
68
|
+
*
|
|
69
|
+
* ```ts
|
|
70
|
+
* @throttle(16)
|
|
71
|
+
* onScroll() { this.offset = this.scrollTop; }
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export const throttle = createDecorator((proto, key, ms) => {
|
|
75
|
+
const original = proto[key];
|
|
76
|
+
const lastKey = `__throttle_last_${key}`;
|
|
77
|
+
const timerKey = `__throttle_timer_${key}`;
|
|
78
|
+
// Define-time: replace method with throttled version
|
|
79
|
+
proto[key] = function (...args) {
|
|
80
|
+
const now = Date.now();
|
|
81
|
+
if (!this[lastKey] || now - this[lastKey] >= ms) {
|
|
82
|
+
this[lastKey] = now;
|
|
83
|
+
original.apply(this, args);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
clearTimeout(this[timerKey]);
|
|
87
|
+
this[timerKey] = setTimeout(() => {
|
|
88
|
+
this[lastKey] = Date.now();
|
|
89
|
+
original.apply(this, args);
|
|
90
|
+
}, ms - (now - this[lastKey]));
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
// Lifecycle: cancel pending timer on disconnect
|
|
94
|
+
return (el) => {
|
|
95
|
+
return () => clearTimeout(el[timerKey]);
|
|
96
|
+
};
|
|
97
|
+
});
|
|
98
|
+
export function animationFrame(targetOrLayer, key) {
|
|
99
|
+
// Called as @animationFrame (no parens)
|
|
100
|
+
if (typeof targetOrLayer === "object" && typeof key === "string") {
|
|
101
|
+
wireAnimationFrame(targetOrLayer, key, 0);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
// Called as @animationFrame() or @animationFrame(layer)
|
|
105
|
+
const layer = typeof targetOrLayer === "number" ? targetOrLayer : 0;
|
|
106
|
+
return (target, key) => wireAnimationFrame(target, key, layer);
|
|
107
|
+
}
|
|
108
|
+
/** Internal: uses createDecorator pattern manually for overload support */
|
|
109
|
+
function wireAnimationFrame(target, key, layer) {
|
|
110
|
+
const orig = target.connectedCallback;
|
|
111
|
+
target.connectedCallback = function () {
|
|
112
|
+
orig?.call(this);
|
|
113
|
+
this.track(renderLoop.add(layer, (dt, t) => this[key](dt, t)));
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=timing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timing.js","sourceRoot":"","sources":["../../src/element/timing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"virtual.d.ts","sourceRoot":"","sources":["../../src/element/virtual.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAyBxC,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,qBACa,WAAW,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,WAAW;IACnD,2DAA2D;IAC3D,eAAe,SAAM;IACrB,6CAA6C;IAC7C,QAAQ,SAAK;IACb,+CAA+C;IAC/C,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAC7D,sFAAsF;IACtF,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAQ;IAEtC,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,SAAS,CAAS;IAC1B,4FAA4F;IAC5F,WAAW,UAAQ;IACnB,sIAAsI;IACtI,UAAU,UAAQ;IAElB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,MAAM,CAAkB;;IAMhC,iBAAiB,IAAI,IAAI;IA2BzB,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI;IAa1B,sDAAsD;IACtD,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,IAAI;IAS5B,gCAAgC;IAChC,WAAW,IAAI,IAAI;IAKnB,mCAAmC;IACnC,OAAO,IAAI,IAAI;IAMf,IAAI,MAAM,IAAI,MAAM,CAEnB;IAID,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,QAAQ,CAgBd;IAEF,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,cAAc;IAetB,kEAAkE;IAClE,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,YAAY;IAgDpB,OAAO,CAAC,cAAc;CAcvB"}
|
|
@@ -25,7 +25,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
25
25
|
};
|
|
26
26
|
import { LoomElement } from "./element";
|
|
27
27
|
import { component } from "./decorators";
|
|
28
|
-
import { css } from "
|
|
28
|
+
import { css } from "../css";
|
|
29
29
|
const styles = css `
|
|
30
30
|
:host {
|
|
31
31
|
display: block;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"virtual.js","sourceRoot":"","sources":["../../src/element/virtual.ts"],"names":[],"mappings":"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"}
|