@toyz/loom 0.15.10 → 0.15.12
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/element/lazy.d.ts.map +1 -1
- package/dist/element/lazy.js +27 -2
- package/dist/element/lazy.js.map +1 -1
- package/dist/element/observers.d.ts +13 -4
- package/dist/element/observers.d.ts.map +1 -1
- package/dist/element/observers.js +14 -5
- package/dist/element/observers.js.map +1 -1
- package/dist/router/link.d.ts +6 -0
- package/dist/router/link.d.ts.map +1 -1
- package/dist/router/link.js +21 -1
- package/dist/router/link.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/element/lazy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,QAAA,MAAM,WAAW,kCAA8B,CAAC;AAChD,QAAA,MAAM,SAAS,sCAA2C,CAAC;AAC3D,QAAA,MAAM,WAAW,kCAAuC,CAAC;AACzD,QAAA,MAAM,SAAS,kCAA8B,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IAChC,mFAAmF;IACnF,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAClB,MAAM,EAAE,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,EACrD,IAAI,CAAC,EAAE,WAAW,IAED,OAAO,QAAQ,EAAE,UAAU,qBAAqB,
|
|
1
|
+
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/element/lazy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,QAAA,MAAM,WAAW,kCAA8B,CAAC;AAChD,QAAA,MAAM,SAAS,sCAA2C,CAAC;AAC3D,QAAA,MAAM,WAAW,kCAAuC,CAAC;AACzD,QAAA,MAAM,SAAS,kCAA8B,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IAChC,mFAAmF;IACnF,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAClB,MAAM,EAAE,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,EACrD,IAAI,CAAC,EAAE,WAAW,IAED,OAAO,QAAQ,EAAE,UAAU,qBAAqB,UA2MlE;AAED,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC"}
|
package/dist/element/lazy.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* class SettingsPage extends LoomElement {}
|
|
15
15
|
* ```
|
|
16
16
|
*/
|
|
17
|
-
import { ROUTE_PROPS, TRANSFORMS, createSymbol } from "../decorators/symbols";
|
|
17
|
+
import { ROUTE_PROPS, TRANSFORMS, ROUTE_ENTER, ROUTE_LEAVE, createSymbol } from "../decorators/symbols";
|
|
18
18
|
const LAZY_LOADER = createSymbol("lazy:loader");
|
|
19
19
|
const LAZY_OPTS = createSymbol("lazy:opts");
|
|
20
20
|
const LAZY_LOADED = createSymbol("lazy:loaded");
|
|
@@ -82,7 +82,10 @@ export function lazy(loader, opts) {
|
|
|
82
82
|
// Also forward unbound attributes
|
|
83
83
|
for (const attr of this.attributes) {
|
|
84
84
|
if (attr.name in impl && !realBindings.some((b) => b.propKey === attr.name)) {
|
|
85
|
-
|
|
85
|
+
try {
|
|
86
|
+
impl[attr.name] = attr.value;
|
|
87
|
+
}
|
|
88
|
+
catch { /* getter-only property — skip */ }
|
|
86
89
|
}
|
|
87
90
|
}
|
|
88
91
|
// Schedule the impl's update instead of the shell's
|
|
@@ -178,6 +181,28 @@ export function lazy(loader, opts) {
|
|
|
178
181
|
}
|
|
179
182
|
this.shadow.appendChild(realEl);
|
|
180
183
|
this[LAZY_IMPL.key] = realEl;
|
|
184
|
+
// Forward @onRouteEnter / @onRouteLeave from shell → impl.
|
|
185
|
+
// The router looks up these handlers by querying the outlet's shadow
|
|
186
|
+
// for the tag (which returns the shell), then reads ROUTE_ENTER metadata.
|
|
187
|
+
// We copy the metadata and create forwarding stubs on the shell instance
|
|
188
|
+
// so the router's handler invocation delegates to the impl.
|
|
189
|
+
const implProto = Object.getPrototypeOf(realEl);
|
|
190
|
+
const enterHandlers = ROUTE_ENTER.from(implProto) ?? [];
|
|
191
|
+
const leaveHandlers = ROUTE_LEAVE.from(implProto) ?? [];
|
|
192
|
+
if (enterHandlers.length > 0) {
|
|
193
|
+
ROUTE_ENTER.set(this, enterHandlers);
|
|
194
|
+
ROUTE_ENTER.set(Object.getPrototypeOf(this), enterHandlers);
|
|
195
|
+
for (const key of enterHandlers) {
|
|
196
|
+
this[key] = (...args) => realEl[key]?.(...args);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
if (leaveHandlers.length > 0) {
|
|
200
|
+
ROUTE_LEAVE.set(this, leaveHandlers);
|
|
201
|
+
ROUTE_LEAVE.set(Object.getPrototypeOf(this), leaveHandlers);
|
|
202
|
+
for (const key of leaveHandlers) {
|
|
203
|
+
this[key] = (...args) => realEl[key]?.(...args);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
181
206
|
};
|
|
182
207
|
ctor.__mountLazyImpl.call(this);
|
|
183
208
|
}
|
package/dist/element/lazy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../src/element/lazy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../src/element/lazy.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Loom — @observer decorator
|
|
3
3
|
*
|
|
4
4
|
* Auto-managed DOM observers with lifecycle cleanup.
|
|
5
|
-
* Creates the observer on connect, observes `this
|
|
5
|
+
* Creates the observer on connect, observes `this` (or a resolved target), disconnects on unmount.
|
|
6
6
|
*
|
|
7
7
|
* ```ts
|
|
8
8
|
* @observer("resize")
|
|
@@ -20,9 +20,18 @@
|
|
|
20
20
|
* onChildChange(record: MutationRecord) {
|
|
21
21
|
* this.recount();
|
|
22
22
|
* }
|
|
23
|
+
*
|
|
24
|
+
* // With target resolver — observe a different node
|
|
25
|
+
* @observer("mutation", { childList: true, subtree: true }, el => el.getRootNode())
|
|
26
|
+
* onParentChange(record: MutationRecord) {
|
|
27
|
+
* this.rescan();
|
|
28
|
+
* }
|
|
23
29
|
* ```
|
|
24
30
|
*/
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
export declare function observer(type: "
|
|
31
|
+
/** Resolver that selects the observe target from the component instance. */
|
|
32
|
+
type TargetResolver = (el: HTMLElement) => Node | Element | null | undefined;
|
|
33
|
+
export declare function observer(type: "resize", options?: ResizeObserverOptions, target?: TargetResolver): (method: Function, context: ClassMethodDecoratorContext) => void;
|
|
34
|
+
export declare function observer(type: "intersection", options?: IntersectionObserverInit, target?: TargetResolver): (method: Function, context: ClassMethodDecoratorContext) => void;
|
|
35
|
+
export declare function observer(type: "mutation", options: MutationObserverInit, target?: TargetResolver): (method: Function, context: ClassMethodDecoratorContext) => void;
|
|
36
|
+
export {};
|
|
28
37
|
//# sourceMappingURL=observers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observers.d.ts","sourceRoot":"","sources":["../../src/element/observers.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"observers.d.ts","sourceRoot":"","sources":["../../src/element/observers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,4EAA4E;AAC5E,KAAK,cAAc,GAAG,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAW7E,wBAAgB,QAAQ,CACtB,IAAI,EAAE,QAAQ,EACd,OAAO,CAAC,EAAE,qBAAqB,EAC/B,MAAM,CAAC,EAAE,cAAc,GACtB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,KAAK,IAAI,CAAC;AAEpE,wBAAgB,QAAQ,CACtB,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,wBAAwB,EAClC,MAAM,CAAC,EAAE,cAAc,GACtB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,KAAK,IAAI,CAAC;AAEpE,wBAAgB,QAAQ,CACtB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,oBAAoB,EAC7B,MAAM,CAAC,EAAE,cAAc,GACtB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,KAAK,IAAI,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Loom — @observer decorator
|
|
3
3
|
*
|
|
4
4
|
* Auto-managed DOM observers with lifecycle cleanup.
|
|
5
|
-
* Creates the observer on connect, observes `this
|
|
5
|
+
* Creates the observer on connect, observes `this` (or a resolved target), disconnects on unmount.
|
|
6
6
|
*
|
|
7
7
|
* ```ts
|
|
8
8
|
* @observer("resize")
|
|
@@ -20,16 +20,25 @@
|
|
|
20
20
|
* onChildChange(record: MutationRecord) {
|
|
21
21
|
* this.recount();
|
|
22
22
|
* }
|
|
23
|
+
*
|
|
24
|
+
* // With target resolver — observe a different node
|
|
25
|
+
* @observer("mutation", { childList: true, subtree: true }, el => el.getRootNode())
|
|
26
|
+
* onParentChange(record: MutationRecord) {
|
|
27
|
+
* this.rescan();
|
|
28
|
+
* }
|
|
23
29
|
* ```
|
|
24
30
|
*/
|
|
25
31
|
import { CONNECT_HOOKS } from "../decorators/symbols";
|
|
26
32
|
// ── Implementation ──
|
|
27
|
-
export function observer(type, options) {
|
|
33
|
+
export function observer(type, options, target) {
|
|
28
34
|
return (method, context) => {
|
|
29
35
|
context.addInitializer(function () {
|
|
30
36
|
if (!this[CONNECT_HOOKS.key])
|
|
31
37
|
this[CONNECT_HOOKS.key] = [];
|
|
32
38
|
this[CONNECT_HOOKS.key].push((el) => {
|
|
39
|
+
const observeTarget = target ? target(el) : el;
|
|
40
|
+
if (!observeTarget)
|
|
41
|
+
return;
|
|
33
42
|
const callback = (entries) => {
|
|
34
43
|
for (const entry of entries) {
|
|
35
44
|
method.call(el, entry);
|
|
@@ -39,19 +48,19 @@ export function observer(type, options) {
|
|
|
39
48
|
switch (type) {
|
|
40
49
|
case "resize": {
|
|
41
50
|
const ro = new ResizeObserver(callback);
|
|
42
|
-
ro.observe(
|
|
51
|
+
ro.observe(observeTarget, options);
|
|
43
52
|
obs = ro;
|
|
44
53
|
break;
|
|
45
54
|
}
|
|
46
55
|
case "intersection": {
|
|
47
56
|
const io = new IntersectionObserver(callback, options);
|
|
48
|
-
io.observe(
|
|
57
|
+
io.observe(observeTarget);
|
|
49
58
|
obs = io;
|
|
50
59
|
break;
|
|
51
60
|
}
|
|
52
61
|
case "mutation": {
|
|
53
62
|
const mo = new MutationObserver(callback);
|
|
54
|
-
mo.observe(
|
|
63
|
+
mo.observe(observeTarget, options);
|
|
55
64
|
obs = mo;
|
|
56
65
|
break;
|
|
57
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observers.js","sourceRoot":"","sources":["../../src/element/observers.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"observers.js","sourceRoot":"","sources":["../../src/element/observers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAgCtD,uBAAuB;AAEvB,MAAM,UAAU,QAAQ,CACtB,IAAO,EACP,OAA+B,EAC/B,MAAuB;IAEvB,OAAO,CAAC,MAAgB,EAAE,OAAoC,EAAE,EAAE;QAChE,OAAO,CAAC,cAAc,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAE3D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAe,EAAE,EAAE;gBAC/C,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,aAAa;oBAAE,OAAO;gBAE3B,MAAM,QAAQ,GAAG,CAAC,OAAc,EAAE,EAAE;oBAClC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;wBAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC,CAAC;gBAEF,IAAI,GAA2B,CAAC;gBAEhC,QAAQ,IAAI,EAAE,CAAC;oBACb,KAAK,QAAQ,CAAC,CAAC,CAAC;wBACd,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;wBACxC,EAAE,CAAC,OAAO,CAAC,aAAwB,EAAE,OAAgC,CAAC,CAAC;wBACvE,GAAG,GAAG,EAAE,CAAC;wBACT,MAAM;oBACR,CAAC;oBACD,KAAK,cAAc,CAAC,CAAC,CAAC;wBACpB,MAAM,EAAE,GAAG,IAAI,oBAAoB,CAAC,QAAQ,EAAE,OAAmC,CAAC,CAAC;wBACnF,EAAE,CAAC,OAAO,CAAC,aAAwB,CAAC,CAAC;wBACrC,GAAG,GAAG,EAAE,CAAC;wBACT,MAAM;oBACR,CAAC;oBACD,KAAK,UAAU,CAAC,CAAC,CAAC;wBAChB,MAAM,EAAE,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;wBAC1C,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,OAA+B,CAAC,CAAC;wBAC3D,GAAG,GAAG,EAAE,CAAC;wBACT,MAAM;oBACR,CAAC;gBACH,CAAC;gBAED,gDAAgD;gBAChD,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/router/link.d.ts
CHANGED
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
* Declarative navigation link. Renders an <a> that adapts
|
|
5
5
|
* its href to the current router mode (hash vs history).
|
|
6
6
|
* Adds `.active` class when the current route matches.
|
|
7
|
+
*
|
|
8
|
+
* Consumer CSS overrides:
|
|
9
|
+
* const inline = css`a { display: inline; }`;
|
|
10
|
+
* <loom-link to="/foo" styles={[inline]}>Foo</loom-link>
|
|
7
11
|
*/
|
|
8
12
|
import { LoomElement } from "../element/element";
|
|
9
13
|
declare class LoomLink extends LoomElement {
|
|
@@ -12,6 +16,8 @@ declare class LoomLink extends LoomElement {
|
|
|
12
16
|
accessor name: string;
|
|
13
17
|
/** Params for named route substitution (JSON string or object via JSX) */
|
|
14
18
|
accessor params: string;
|
|
19
|
+
/** Optional CSSStyleSheets to adopt — overrides default anchor styles */
|
|
20
|
+
accessor styles: CSSStyleSheet[];
|
|
15
21
|
accessor anchor: HTMLAnchorElement;
|
|
16
22
|
private get router();
|
|
17
23
|
connectedCallback(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/router/link.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/router/link.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AASjD,cACM,QAAS,SAAQ,WAAW;IAC1B,QAAQ,CAAC,EAAE,SAAO;IACxB,oEAAoE;IAC9D,QAAQ,CAAC,IAAI,SAAM;IACzB,0EAA0E;IACpE,QAAQ,CAAC,MAAM,SAAM;IAC3B,yEAAyE;IACnE,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,CAAM;IAEhC,QAAQ,CAAC,MAAM,EAAG,iBAAiB,CAAC;IAEhD,OAAO,KAAK,MAAM,GAEjB;IAED,iBAAiB;IAuCjB,6CAA6C;IAC7C,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,KAAK;CASd;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
package/dist/router/link.js
CHANGED
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
* Declarative navigation link. Renders an <a> that adapts
|
|
5
5
|
* its href to the current router mode (hash vs history).
|
|
6
6
|
* Adds `.active` class when the current route matches.
|
|
7
|
+
*
|
|
8
|
+
* Consumer CSS overrides:
|
|
9
|
+
* const inline = css`a { display: inline; }`;
|
|
10
|
+
* <loom-link to="/foo" styles={[inline]}>Foo</loom-link>
|
|
7
11
|
*/
|
|
8
12
|
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
9
13
|
var useValue = arguments.length > 2;
|
|
@@ -63,6 +67,9 @@ let LoomLink = (() => {
|
|
|
63
67
|
let _params_decorators;
|
|
64
68
|
let _params_initializers = [];
|
|
65
69
|
let _params_extraInitializers = [];
|
|
70
|
+
let _styles_decorators;
|
|
71
|
+
let _styles_initializers = [];
|
|
72
|
+
let _styles_extraInitializers = [];
|
|
66
73
|
let _anchor_decorators;
|
|
67
74
|
let _anchor_initializers = [];
|
|
68
75
|
let _anchor_extraInitializers = [];
|
|
@@ -74,11 +81,13 @@ let LoomLink = (() => {
|
|
|
74
81
|
_to_decorators = [prop];
|
|
75
82
|
_name_decorators = [prop];
|
|
76
83
|
_params_decorators = [prop];
|
|
84
|
+
_styles_decorators = [prop];
|
|
77
85
|
_anchor_decorators = [query("a")];
|
|
78
86
|
__onRouteChanged_decorators = [on(RouteChanged)];
|
|
79
87
|
__esDecorate(this, null, _to_decorators, { kind: "accessor", name: "to", static: false, private: false, access: { has: obj => "to" in obj, get: obj => obj.to, set: (obj, value) => { obj.to = value; } }, metadata: _metadata }, _to_initializers, _to_extraInitializers);
|
|
80
88
|
__esDecorate(this, null, _name_decorators, { kind: "accessor", name: "name", static: false, private: false, access: { has: obj => "name" in obj, get: obj => obj.name, set: (obj, value) => { obj.name = value; } }, metadata: _metadata }, _name_initializers, _name_extraInitializers);
|
|
81
89
|
__esDecorate(this, null, _params_decorators, { kind: "accessor", name: "params", static: false, private: false, access: { has: obj => "params" in obj, get: obj => obj.params, set: (obj, value) => { obj.params = value; } }, metadata: _metadata }, _params_initializers, _params_extraInitializers);
|
|
90
|
+
__esDecorate(this, null, _styles_decorators, { kind: "accessor", name: "styles", static: false, private: false, access: { has: obj => "styles" in obj, get: obj => obj.styles, set: (obj, value) => { obj.styles = value; } }, metadata: _metadata }, _styles_initializers, _styles_extraInitializers);
|
|
82
91
|
__esDecorate(this, null, _anchor_decorators, { kind: "accessor", name: "anchor", static: false, private: false, access: { has: obj => "anchor" in obj, get: obj => obj.anchor, set: (obj, value) => { obj.anchor = value; } }, metadata: _metadata }, _anchor_initializers, _anchor_extraInitializers);
|
|
83
92
|
__esDecorate(this, null, __onRouteChanged_decorators, { kind: "method", name: "_onRouteChanged", static: false, private: false, access: { has: obj => "_onRouteChanged" in obj, get: obj => obj._onRouteChanged }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
84
93
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
@@ -97,7 +106,11 @@ let LoomLink = (() => {
|
|
|
97
106
|
/** Params for named route substitution (JSON string or object via JSX) */
|
|
98
107
|
get params() { return this.#params_accessor_storage; }
|
|
99
108
|
set params(value) { this.#params_accessor_storage = value; }
|
|
100
|
-
#
|
|
109
|
+
#styles_accessor_storage = (__runInitializers(this, _params_extraInitializers), __runInitializers(this, _styles_initializers, []));
|
|
110
|
+
/** Optional CSSStyleSheets to adopt — overrides default anchor styles */
|
|
111
|
+
get styles() { return this.#styles_accessor_storage; }
|
|
112
|
+
set styles(value) { this.#styles_accessor_storage = value; }
|
|
113
|
+
#anchor_accessor_storage = (__runInitializers(this, _styles_extraInitializers), __runInitializers(this, _anchor_initializers, void 0));
|
|
101
114
|
get anchor() { return this.#anchor_accessor_storage; }
|
|
102
115
|
set anchor(value) { this.#anchor_accessor_storage = value; }
|
|
103
116
|
get router() {
|
|
@@ -116,6 +129,13 @@ let LoomLink = (() => {
|
|
|
116
129
|
gap: inherit;
|
|
117
130
|
}
|
|
118
131
|
`;
|
|
132
|
+
// Adopt consumer style overrides
|
|
133
|
+
if (this.styles.length) {
|
|
134
|
+
this.shadow.adoptedStyleSheets = [
|
|
135
|
+
...this.shadow.adoptedStyleSheets,
|
|
136
|
+
...this.styles,
|
|
137
|
+
];
|
|
138
|
+
}
|
|
119
139
|
// Build initial DOM
|
|
120
140
|
const a = document.createElement("a");
|
|
121
141
|
a.setAttribute("part", "anchor");
|
package/dist/router/link.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/router/link.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/router/link.ts"],"names":[],"mappings":"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"}
|