@matthewp/zebra 0.1.3 → 0.1.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.
@@ -0,0 +1,20 @@
1
+ interface GlobalsOwner {
2
+ _registerGlobal(g: GlobalTarget): void;
3
+ }
4
+ export declare function getActiveView(): GlobalsOwner | null;
5
+ export declare function setActiveView(view: GlobalsOwner | null): void;
6
+ export declare abstract class GlobalTarget {
7
+ private _pending;
8
+ protected abstract _target(): EventTarget;
9
+ constructor();
10
+ on(event: string, handler: EventListener): this;
11
+ _boot(scopeEl: HTMLElement): void;
12
+ }
13
+ export declare class Document extends GlobalTarget {
14
+ protected _target(): EventTarget;
15
+ }
16
+ export declare class Window extends GlobalTarget {
17
+ protected _target(): EventTarget;
18
+ }
19
+ export {};
20
+ //# sourceMappingURL=globals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":"AAAA,UAAU,YAAY;IACpB,eAAe,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CACxC;AAID,wBAAgB,aAAa,IAAI,YAAY,GAAG,IAAI,CAEnD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAE7D;AAuBD,8BAAsB,YAAY;IAChC,OAAO,CAAC,QAAQ,CAAsC;IAEtD,SAAS,CAAC,QAAQ,CAAC,OAAO,IAAI,WAAW;;IAMzC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAK/C,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;CAkBlC;AAED,qBAAa,QAAS,SAAQ,YAAY;IACxC,SAAS,CAAC,OAAO,IAAI,WAAW;CAGjC;AAED,qBAAa,MAAO,SAAQ,YAAY;IACtC,SAAS,CAAC,OAAO,IAAI,WAAW;CAGjC"}
@@ -0,0 +1,62 @@
1
+ let activeView = null;
2
+ export function getActiveView() {
3
+ return activeView;
4
+ }
5
+ export function setActiveView(view) {
6
+ activeView = view;
7
+ }
8
+ let observer = null;
9
+ const booted = new Set();
10
+ function ensureObserver() {
11
+ if (observer)
12
+ return;
13
+ observer = new MutationObserver(() => {
14
+ for (const entry of booted) {
15
+ if (!entry.scopeEl.isConnected) {
16
+ entry.cleanup();
17
+ booted.delete(entry);
18
+ }
19
+ }
20
+ });
21
+ observer.observe(document.body, { childList: true, subtree: true });
22
+ }
23
+ export class GlobalTarget {
24
+ _pending = [];
25
+ constructor() {
26
+ getActiveView()?._registerGlobal(this);
27
+ }
28
+ on(event, handler) {
29
+ this._pending.push([event, handler]);
30
+ return this;
31
+ }
32
+ _boot(scopeEl) {
33
+ if (this._pending.length === 0)
34
+ return;
35
+ const target = this._target();
36
+ const listeners = this._pending;
37
+ this._pending = [];
38
+ for (const [event, handler] of listeners) {
39
+ target.addEventListener(event, handler);
40
+ }
41
+ ensureObserver();
42
+ booted.add({
43
+ scopeEl,
44
+ cleanup: () => {
45
+ for (const [event, handler] of listeners) {
46
+ target.removeEventListener(event, handler);
47
+ }
48
+ },
49
+ });
50
+ }
51
+ }
52
+ export class Document extends GlobalTarget {
53
+ _target() {
54
+ return document;
55
+ }
56
+ }
57
+ export class Window extends GlobalTarget {
58
+ _target() {
59
+ return window;
60
+ }
61
+ }
62
+ //# sourceMappingURL=globals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globals.js","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":"AAIA,IAAI,UAAU,GAAwB,IAAI,CAAC;AAE3C,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAyB;IACrD,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAOD,IAAI,QAAQ,GAA4B,IAAI,CAAC;AAC7C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAe,CAAC;AAEtC,SAAS,cAAc;IACrB,IAAI,QAAQ;QAAE,OAAO;IACrB,QAAQ,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE;QACnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC/B,KAAK,CAAC,OAAO,EAAE,CAAC;gBAChB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,OAAgB,YAAY;IACxB,QAAQ,GAAmC,EAAE,CAAC;IAItD;QACE,aAAa,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,EAAE,CAAC,KAAa,EAAE,OAAsB;QACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAoB;QACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC;YACzC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,cAAc,EAAE,CAAC;QACjB,MAAM,CAAC,GAAG,CAAC;YACT,OAAO;YACP,OAAO,EAAE,GAAG,EAAE;gBACZ,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC;oBACzC,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,QAAS,SAAQ,YAAY;IAC9B,OAAO;QACf,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED,MAAM,OAAO,MAAO,SAAQ,YAAY;IAC5B,OAAO;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -3,5 +3,6 @@ export type { Child } from './element.ts';
3
3
  export { View } from './view.ts';
4
4
  export { Model } from './model.ts';
5
5
  export { List } from './list.ts';
6
+ export { Document, Window } from './globals.ts';
6
7
  export { computed, effect, effectScope, endBatch, isComputed, isEffect, isEffectScope, isSignal, signal, startBatch, } from 'alien-signals';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,OAAO,EACP,GAAG,EACH,IAAI,EACJ,MAAM,EACN,MAAM,EACN,KAAK,EACL,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,GAAG,EACH,CAAC,EACD,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,GAAG,EACH,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,EAAE,EACF,EAAE,EACF,EAAE,EACF,MAAM,EACN,MAAM,EACN,MAAM,EACN,EAAE,EACF,EAAE,EACF,GAAG,EACH,IAAI,EACJ,MAAM,EACN,EAAE,EACF,KAAK,GACN,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,MAAM,EACN,UAAU,GACX,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,OAAO,EACP,GAAG,EACH,IAAI,EACJ,MAAM,EACN,MAAM,EACN,KAAK,EACL,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,GAAG,EACH,CAAC,EACD,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,GAAG,EACH,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,EAAE,EACF,EAAE,EACF,EAAE,EACF,MAAM,EACN,MAAM,EACN,MAAM,EACN,EAAE,EACF,EAAE,EACF,GAAG,EACH,IAAI,EACJ,MAAM,EACN,EAAE,EACF,KAAK,GACN,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACL,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,MAAM,EACN,UAAU,GACX,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -2,5 +2,6 @@ export { Node, Element, Fragment, RawHTML, Div, Span, Anchor, Button, Input, Tex
2
2
  export { View } from "./view.js";
3
3
  export { Model } from "./model.js";
4
4
  export { List } from "./list.js";
5
+ export { Document, Window } from "./globals.js";
5
6
  export { computed, effect, effectScope, endBatch, isComputed, isEffect, isEffectScope, isSignal, signal, startBatch, } from 'alien-signals';
6
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,OAAO,EACP,GAAG,EACH,IAAI,EACJ,MAAM,EACN,MAAM,EACN,KAAK,EACL,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,GAAG,EACH,CAAC,EACD,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,GAAG,EACH,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,EAAE,EACF,EAAE,EACF,EAAE,EACF,MAAM,EACN,MAAM,EACN,MAAM,EACN,EAAE,EACF,EAAE,EACF,GAAG,EACH,IAAI,EACJ,MAAM,EACN,EAAE,EACF,KAAK,GACN,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,MAAM,EACN,UAAU,GACX,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,OAAO,EACP,GAAG,EACH,IAAI,EACJ,MAAM,EACN,MAAM,EACN,KAAK,EACL,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,GAAG,EACH,CAAC,EACD,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,GAAG,EACH,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,EAAE,EACF,EAAE,EACF,EAAE,EACF,MAAM,EACN,MAAM,EACN,MAAM,EACN,EAAE,EACF,EAAE,EACF,GAAG,EACH,IAAI,EACJ,MAAM,EACN,EAAE,EACF,KAAK,GACN,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACL,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,MAAM,EACN,UAAU,GACX,MAAM,eAAe,CAAC"}
package/dist/view.d.ts CHANGED
@@ -1,8 +1,11 @@
1
1
  import { Element, type Child } from './element.ts';
2
+ import { type GlobalTarget } from './globals.ts';
2
3
  export declare class View extends Element {
3
4
  protected _rendered: Element | null;
5
+ protected _globals?: GlobalTarget[];
4
6
  constructor();
5
7
  render(): Element;
8
+ _registerGlobal(g: GlobalTarget): void;
6
9
  protected _getRendered(): Element;
7
10
  append(...children: Child[]): this;
8
11
  prepend(...children: Child[]): this;
@@ -1 +1 @@
1
- {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AAGnD,qBAAa,IAAK,SAAQ,OAAO;IAC/B,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAQ;;IAM3C,MAAM,IAAI,OAAO;IAIjB,SAAS,CAAC,YAAY,IAAI,OAAO;IAajC,MAAM,CAAC,GAAG,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI;IAKlC,OAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI;IAKnC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK/C,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKnC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAKpD,QAAQ,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAKpC,WAAW,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAKvC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAKhD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK3C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK/B,IAAI,IAAI,IAAI;IAKZ,IAAI,IAAI,IAAI;IAKZ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAK/C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3B,KAAK,IAAI,IAAI;IAKb,OAAO,IAAI,IAAI;IAKf,MAAM,IAAI,IAAI;IAKd,KAAK,IAAI,WAAW;IAOpB,OAAO,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAO9B,QAAQ,IAAI,MAAM;IAIlB,KAAK,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;CAIpC"}
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAgC,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAE/E,qBAAa,IAAK,SAAQ,OAAO;IAC/B,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAQ;IAC3C,SAAS,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;;IAMpC,MAAM,IAAI,OAAO;IAIjB,eAAe,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAItC,SAAS,CAAC,YAAY,IAAI,OAAO;IAgBjC,MAAM,CAAC,GAAG,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI;IAKlC,OAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI;IAKnC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK/C,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKnC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAKpD,QAAQ,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAKpC,WAAW,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAKvC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAKhD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK3C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK/B,IAAI,IAAI,IAAI;IAKZ,IAAI,IAAI,IAAI;IAKZ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAK/C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3B,KAAK,IAAI,IAAI;IAKb,OAAO,IAAI,IAAI;IAKf,MAAM,IAAI,IAAI;IAKd,KAAK,IAAI,WAAW;IAUpB,OAAO,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAU9B,QAAQ,IAAI,MAAM;IAIlB,KAAK,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;CAIpC"}
package/dist/view.js CHANGED
@@ -1,22 +1,30 @@
1
1
  import { Element } from "./element.js";
2
2
  import { getActiveSub, setActiveSub } from 'alien-signals';
3
+ import { getActiveView, setActiveView } from "./globals.js";
3
4
  export class View extends Element {
4
5
  _rendered = null;
6
+ _globals;
5
7
  constructor() {
6
8
  super('');
7
9
  }
8
10
  render() {
9
11
  return new Element('div');
10
12
  }
13
+ _registerGlobal(g) {
14
+ (this._globals ??= []).push(g);
15
+ }
11
16
  _getRendered() {
12
17
  if (!this._rendered) {
13
- const prev = getActiveSub();
18
+ const prevSub = getActiveSub();
19
+ const prevView = getActiveView();
14
20
  setActiveSub(undefined);
21
+ setActiveView(this);
15
22
  try {
16
23
  this._rendered = this.render();
17
24
  }
18
25
  finally {
19
- setActiveSub(prev);
26
+ setActiveSub(prevSub);
27
+ setActiveView(prevView);
20
28
  }
21
29
  }
22
30
  return this._rendered;
@@ -100,6 +108,10 @@ export class View extends Element {
100
108
  return this.el;
101
109
  const el = this._getRendered().toDOM();
102
110
  this.el = el;
111
+ if (this._globals) {
112
+ for (const g of this._globals)
113
+ g._boot(el);
114
+ }
103
115
  return el;
104
116
  }
105
117
  hydrate(el) {
@@ -107,6 +119,10 @@ export class View extends Element {
107
119
  return this;
108
120
  this._getRendered().hydrate(el);
109
121
  this.el = el;
122
+ if (this._globals) {
123
+ for (const g of this._globals)
124
+ g._boot(el);
125
+ }
110
126
  return this;
111
127
  }
112
128
  toString() {
package/dist/view.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matthewp/zebra",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {