@monimesl/dot-service 0.1.0-alpha.2 → 0.1.0-alpha.23

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/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { a as Page, c as PageHost, d as PageOptions, f as State, h as definePage, i as Mutation, l as PageId, m as StateUpdate, n as ActionContext, o as PageContext, p as StateChanges, r as DeepReadonly, s as PageDefinition, t as Action, u as PageNavigation } from "./page-BfYJ-G-D.js";
2
- import { AppState, ColorScheme, DotEvent, DotEvent as DotEvent$1, DotHooks, DotHooks as DotHooks$1, EventEmitter, HostLayerMessages, LogicLayerMessages, MessageChannel, Navigation, PageHooks, PageLaunchOptions, PageLaunchOptions as PageLaunchOptions$1, PageState, PageState as PageState$1, SystemContext, SystemContext as SystemContext$1, Theme, Theme as Theme$1, Transport, Transport as Transport$1, UILayerMessages, createEvent, hostTransport } from "@monimesl/dot-core";
1
+ import { a as Page, c as PageHost, d as PageOptions, f as State, h as definePage, i as Mutation, l as PageId, m as StateUpdate, n as ActionContext, o as PageContext, p as StateChanges, r as DeepReadonly, s as PageDefinition, t as Action, u as PageNavigation } from "./page-DBnKjef6.js";
2
+ import { AppState, CheckedEvent, ColorScheme, DataEvent, DotEvent, DotEvent as DotEvent$1, DotHooks, DotHooks as DotHooks$1, EventEmitter, HexColor, HostCaller, HostLayerMessages, IndexEvent, LogicLayerMessages, MessageChannel, Navigation, NavigationBarOptions, PageColors, PageConfigs, PageConfigs as PageConfigs$1, PageHooks, PageLaunchOptions, PageLaunchOptions as PageLaunchOptions$1, PageShare, PageState, PageState as PageState$1, SchemeColor, SystemContext, SystemContext as SystemContext$1, TabBarOptions, Theme, Theme as Theme$1, ThemeColors, Transport, Transport as Transport$1, UILayerMessages, ValueEvent, createEvent, hostTransport } from "@monimesl/dot-core";
3
3
  //#region src/service.d.ts
4
4
  type ServiceChannel = MessageChannel<LogicLayerMessages, UILayerMessages & HostLayerMessages>;
5
5
  interface ServiceHooks {
@@ -26,6 +26,7 @@ interface DotDefinition {
26
26
  readonly theme?: Theme$1;
27
27
  readonly plugins?: readonly ServicePlugin[];
28
28
  readonly pages: readonly [string, ...string[]];
29
+ readonly configs?: PageConfigs$1;
29
30
  readonly hooks?: Partial<DotHooks$1> & ThisType<DotContext>;
30
31
  }
31
32
  export declare function defineDot(dot: DotDefinition): DotDefinition;
@@ -34,27 +35,27 @@ interface ServiceOptions {
34
35
  dot?: Partial<DotDefinition>;
35
36
  pages: Record<string, PageDefinition>;
36
37
  strict?: boolean;
38
+ dashMinApiVersion?: string | undefined;
37
39
  }
38
40
  export declare class Service implements DotContext {
39
41
  #private;
40
42
  readonly channel: ServiceChannel;
41
43
  readonly hooks: EventEmitter<ServiceHooks>;
42
- constructor({ transport, pages, dot, strict }: ServiceOptions);
44
+ constructor({ transport, pages, dot, strict, dashMinApiVersion }: ServiceOptions);
43
45
  use(plugin: ServicePlugin): this;
44
46
  start(): () => void;
45
47
  get theme(): Theme$1;
46
48
  get systemContext(): SystemContext$1;
47
49
  setTheme(theme: Theme$1): void;
48
50
  getPage(instanceId: number): Page;
51
+ readonly callHost: HostCaller;
49
52
  loadPage(instanceId: number, id: string, options?: PageLaunchOptions$1): Page;
53
+ replacePages(definitions: Record<string, PageDefinition>): void;
50
54
  unloadPage(instanceId: number): void;
51
55
  reportError(work: Promise<void>, instanceId?: number): void;
52
56
  }
53
57
  //#endregion
54
58
  //#region src/plugins/logger.d.ts
55
- /**
56
- * Logs page lifecycle, events, state changes, and errors.
57
- */
58
59
  export declare function logger(options?: {
59
60
  log: (...args: unknown[]) => void;
60
61
  logError: (...args: unknown[]) => void;
@@ -62,6 +63,7 @@ export declare function logger(options?: {
62
63
  //#endregion
63
64
  //#region src/index.d.ts
64
65
  export declare function createService(options: ServiceOptions): Service;
66
+ export declare function runService(options: Omit<ServiceOptions, 'transport'>): Service;
65
67
  //#endregion
66
- export { type Action, type ActionContext, type AppState, type ColorScheme, type DeepReadonly, type DotContext, type DotDefinition, type DotEvent, type DotHooks, type Mutation, Page, type PageContext, type PageDefinition, type PageHooks, type PageHost, type PageId, type PageLaunchOptions, type PageNavigation, type PageOptions, type PageState, type ServiceChannel, type ServiceHooks, type ServiceOptions, type ServicePlugin, type State, type StateChanges, type StateUpdate, type SystemContext, type Theme, type Transport, createEvent, definePage, hostTransport };
68
+ export { type Action, type ActionContext, type AppState, type CheckedEvent, type ColorScheme, type DataEvent, type DeepReadonly, type DotContext, type DotDefinition, type DotEvent, type DotHooks, type HexColor, type IndexEvent, type Mutation, type NavigationBarOptions, Page, type PageColors, type PageConfigs, type PageContext, type PageDefinition, type PageHooks, type PageHost, type PageId, type PageLaunchOptions, type PageNavigation, type PageOptions, type PageShare, type PageState, type SchemeColor, type ServiceChannel, type ServiceHooks, type ServiceOptions, type ServicePlugin, type State, type StateChanges, type StateUpdate, type SystemContext, type TabBarOptions, type Theme, type ThemeColors, type Transport, type ValueEvent, createEvent, definePage, hostTransport };
67
69
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/service.ts","../src/plugins/logger.ts","../src/index.ts"],"mappings":";;;KA0BY,iBAAiB,eAC3B,oBACA,kBAAkB;UAGH;EACf;EAEA,SAAS,MAAM;EAEf,WAAW,MAAM;EAEjB,SAAS,MAAM;EAEf,SAAS,MAAM;EAGf,SAAS,MAAM,MAAM,YAAY;EAGjC,MAAM,MAAM,MAAM,iBAAiB,OAAO;EAG1C,SAAS,MAAM,MAAM,OAAO;EAG5B,MAAM,gBAAgB;;UAGP;WACN;EAET,MAAM,SAAS;;UAGA;WACN,OAAO;WACP,eAAe;EAExB,SAAS,OAAO;;UAGD;WACN,QAAQ;WACR,mBAAmB;WACnB;WACA,QAAQ,QAAQ,cAAY,SAAS;;wBAGhC,UAAU,KAAK,gBAAgB;UAI9B;EACf,WAAW;EACX,MAAM,QAAQ;EACd,OAAO,eAAe;EACtB;;qBAIW,mBAAmB;;WACrB,SAAS;WACT,OAAK,aAAA;EAUF,cAAE,WAAW,OAAO,KAAU,UAAkB;EAsC5D,IAAI,QAAQ;EAKZ;MAcI,SAAS;MAIT,iBAAiB;EAIrB,SAAS,OAAO;EAKhB,QAAQ,qBAAqB;EAQ7B,SAAS,oBAAoB,YAAY,UAAS,sBAAyB;EA4B3E,WAAW;EAmBX,YAAY,MAAM,eAAe;;;;;;;wBC3NnB,OACd;EACE,SAAS;EACT,cAAc;IAKf;;;wBC8Ba,cAAc,SAAS,iBAAiB"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/service.ts","../src/plugins/logger.ts","../src/index.ts"],"mappings":";;;KAkCY,iBAAiB,eAC3B,oBACA,kBAAkB;UAGH;EACf;EAEA,SAAS,MAAM;EAEf,WAAW,MAAM;EAEjB,SAAS,MAAM;EAEf,SAAS,MAAM;EAGf,SAAS,MAAM,MAAM,YAAY;EAGjC,MAAM,MAAM,MAAM,iBAAiB,OAAO;EAG1C,SAAS,MAAM,MAAM,OAAO;EAG5B,MAAM,gBAAgB;;UAGP;WACN;EAET,MAAM,SAAS;;UAGA;WACN,OAAO;WACP,eAAe;EAExB,SAAS,OAAO;;UAGD;WACN,QAAQ;WACR,mBAAmB;WACnB;WAEA,UAAU;WACV,QAAQ,QAAQ,cAAY,SAAS;;wBAGhC,UAAU,KAAK,gBAAgB;UAI9B;EACf,WAAW;EACX,MAAM,QAAQ;EACd,OAAO,eAAe;EACtB;EAEA;;qBAKW,mBAAmB;;WACrB,SAAS;WACT,OAAK,aAAA;EAeF,cAAE,WAAW,OAAO,KAAU,QAAgB,qBAAqB;EA0D/E,IAAI,QAAQ;EAKZ;MAaI,SAAS;MAIT,iBAAiB;EAIrB,SAAS,OAAO;EAMhB,QAAQ,qBAAqB;WASpB,UAAU;EAGnB,SAAS,oBAAoB,YAAY,UAAS,sBAAyB;EAW3E,aAAa,aAAa,eAAe;EAyIzC,WAAW;EAoBX,YAAY,MAAM,eAAe;;;;wBChYnB,OACd;EACE,SAAS;EACT,cAAc;IAKf;;;wBC+Ca,cAAc,SAAS,iBAAiB;wBAUxC,WAAW,SAAS,KAAK,+BAA+B"}
package/dist/index.js CHANGED
@@ -1,9 +1,7 @@
1
- import { i as definePage, n as defineDot, r as Page, t as Service } from "./service-dAFmZ_Mh.js";
2
- import { createEvent, hostTransport } from "@monimesl/dot-core";
1
+ import { i as definePage, n as defineDot, r as Page, t as Service } from "./service-CBsppV0p.js";
2
+ import { connectHost, createEvent, hostTransport, hostTransport as hostTransport$1 } from "@monimesl/dot-core";
3
+ import { useHostDashApiVersions, warnAboveDashApiVersion } from "@monimesl/dot-dash";
3
4
  //#region src/plugins/logger.ts
4
- /**
5
- * Logs page lifecycle, events, state changes, and errors.
6
- */
7
5
  function logger(options = {
8
6
  log: console.debug,
9
7
  logError: console.error
@@ -28,7 +26,25 @@ function createService(options) {
28
26
  service.start();
29
27
  return service;
30
28
  }
29
+ const RUNNING_SERVICE = Symbol.for("dot.service");
30
+ function runService(options) {
31
+ const globals = globalThis;
32
+ const running = globals[RUNNING_SERVICE];
33
+ if (running) {
34
+ connectHost(running.callHost);
35
+ useHostDashApiVersions(running.systemContext.dashApiVersions);
36
+ if (options.dashMinApiVersion !== void 0) warnAboveDashApiVersion(options.dashMinApiVersion);
37
+ running.replacePages(options.pages);
38
+ return running;
39
+ }
40
+ const service = createService({
41
+ ...options,
42
+ transport: hostTransport$1()
43
+ });
44
+ globals[RUNNING_SERVICE] = service;
45
+ return service;
46
+ }
31
47
  //#endregion
32
- export { Page, Service, createEvent, createService, defineDot, definePage, hostTransport, logger };
48
+ export { Page, Service, createEvent, createService, defineDot, definePage, hostTransport, logger, runService };
33
49
 
34
50
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/plugins/logger.ts","../src/index.ts"],"sourcesContent":["import type { ServicePlugin } from '../service';\n\n/**\n * Logs page lifecycle, events, state changes, and errors.\n */\nexport function logger(\n options: {\n log: (...args: unknown[]) => void;\n logError: (...args: unknown[]) => void;\n } = {\n log: console.debug,\n logError: console.error,\n },\n): ServicePlugin {\n const { log, logError } = options;\n return {\n name: 'logger',\n setup({ hooks }) {\n hooks.on('pageLoad', (page) => log(`[dot] load ${page.id}#${page.instanceId}`, page.state));\n hooks.on('pageUnload', (page) => log(`[dot] unload ${page.id}#${page.instanceId}`));\n hooks.on('event', (page, handler, event) => log(`[dot] ${page.id} ${handler}`, event));\n hooks.on('navigate', (page, navigation) => log(`[dot] ${page.id} navigate`, navigation));\n hooks.on('setState', (page, patch) => log(`[dot] ${page.id} setState`, patch));\n hooks.on('error', (error) => logError('[dot] error', error));\n },\n };\n}\n","import type { ServiceOptions } from './service';\nimport { Service } from './service';\n\nexport { Page, definePage } from './page';\nexport type {\n Action,\n ActionContext,\n DeepReadonly,\n Mutation,\n PageContext,\n PageDefinition,\n PageHost,\n PageId,\n PageNavigation,\n PageOptions,\n State,\n StateChanges,\n StateUpdate,\n} from './page';\nexport { Service, defineDot } from './service';\nexport type {\n DotContext,\n DotDefinition,\n ServiceHooks,\n ServiceOptions,\n ServicePlugin,\n ServiceChannel,\n} from './service';\nexport { logger } from './plugins/logger';\nexport { createEvent, hostTransport } from '@monimesl/dot-core';\nexport type {\n ColorScheme,\n DotEvent,\n DotHooks,\n PageState,\n PageHooks,\n PageLaunchOptions,\n AppState,\n SystemContext,\n Theme,\n Transport,\n} from '@monimesl/dot-core';\n\nexport function createService(options: ServiceOptions): Service {\n const service = new Service(options);\n service.start();\n return service;\n}\n"],"mappings":";;;;;;AAKA,SAAgB,OACd,UAGI;CACF,KAAK,QAAQ;CACb,UAAU,QAAQ;AACpB,GACe;CACf,MAAM,EAAE,KAAK,aAAa;CAC1B,OAAO;EACL,MAAM;EACN,MAAM,EAAE,SAAS;GACf,MAAM,GAAG,aAAa,SAAS,IAAI,cAAc,KAAK,GAAG,GAAG,KAAK,cAAc,KAAK,KAAK,CAAC;GAC1F,MAAM,GAAG,eAAe,SAAS,IAAI,gBAAgB,KAAK,GAAG,GAAG,KAAK,YAAY,CAAC;GAClF,MAAM,GAAG,UAAU,MAAM,SAAS,UAAU,IAAI,SAAS,KAAK,GAAG,GAAG,WAAW,KAAK,CAAC;GACrF,MAAM,GAAG,aAAa,MAAM,eAAe,IAAI,SAAS,KAAK,GAAG,YAAY,UAAU,CAAC;GACvF,MAAM,GAAG,aAAa,MAAM,UAAU,IAAI,SAAS,KAAK,GAAG,YAAY,KAAK,CAAC;GAC7E,MAAM,GAAG,UAAU,UAAU,SAAS,eAAe,KAAK,CAAC;EAC7D;CACF;AACF;;;ACiBA,SAAgB,cAAc,SAAkC;CAC9D,MAAM,UAAU,IAAI,QAAQ,OAAO;CACnC,QAAQ,MAAM;CACd,OAAO;AACT"}
1
+ {"version":3,"file":"index.js","names":["hostTransport"],"sources":["../src/plugins/logger.ts","../src/index.ts"],"sourcesContent":["import type { ServicePlugin } from '../service';\n\n// Logs page lifecycle, events, state changes, and errors.\nexport function logger(\n options: {\n log: (...args: unknown[]) => void;\n logError: (...args: unknown[]) => void;\n } = {\n log: console.debug,\n logError: console.error,\n },\n): ServicePlugin {\n const { log, logError } = options;\n return {\n name: 'logger',\n setup({ hooks }) {\n hooks.on('pageLoad', (page) => log(`[dot] load ${page.id}#${page.instanceId}`, page.state));\n hooks.on('pageUnload', (page) => log(`[dot] unload ${page.id}#${page.instanceId}`));\n hooks.on('event', (page, handler, event) => log(`[dot] ${page.id} ${handler}`, event));\n hooks.on('navigate', (page, navigation) => log(`[dot] ${page.id} navigate`, navigation));\n hooks.on('setState', (page, patch) => log(`[dot] ${page.id} setState`, patch));\n hooks.on('error', (error) => logError('[dot] error', error));\n },\n };\n}\n","import { connectHost, hostTransport } from '@monimesl/dot-core';\nimport { useHostDashApiVersions, warnAboveDashApiVersion } from '@monimesl/dot-dash';\n\nimport type { ServiceOptions } from './service';\nimport { Service } from './service';\n\nexport { Page, definePage } from './page';\nexport type {\n Action,\n ActionContext,\n DeepReadonly,\n Mutation,\n PageContext,\n PageDefinition,\n PageHost,\n PageId,\n PageNavigation,\n PageOptions,\n State,\n StateChanges,\n StateUpdate,\n} from './page';\nexport { Service, defineDot } from './service';\nexport type {\n DotContext,\n DotDefinition,\n ServiceHooks,\n ServiceOptions,\n ServicePlugin,\n ServiceChannel,\n} from './service';\nexport { logger } from './plugins/logger';\nexport { createEvent, hostTransport } from '@monimesl/dot-core';\nexport type {\n CheckedEvent,\n ColorScheme,\n DataEvent,\n DotEvent,\n IndexEvent,\n ValueEvent,\n DotHooks,\n HexColor,\n NavigationBarOptions,\n PageColors,\n PageConfigs,\n PageState,\n PageHooks,\n PageLaunchOptions,\n PageShare,\n AppState,\n SchemeColor,\n SystemContext,\n TabBarOptions,\n Theme,\n ThemeColors,\n Transport,\n} from '@monimesl/dot-core';\n\nexport function createService(options: ServiceOptions): Service {\n const service = new Service(options);\n service.start();\n return service;\n}\n\n// Lets the dot's next build, loaded into the same engine, find the running service.\nconst RUNNING_SERVICE = Symbol.for('dot.service');\n\n// Starts the service. On a hot reload, hands the new build's pages to the one already running.\nexport function runService(options: Omit<ServiceOptions, 'transport'>): Service {\n const globals = globalThis as unknown as Record<symbol, Service | undefined>;\n const running = globals[RUNNING_SERVICE];\n if (running) {\n // The new build has its own copy of the host connection and of `dash`, so both hear again what\n // the running service knows.\n connectHost(running.callHost);\n useHostDashApiVersions(running.systemContext.dashApiVersions);\n if (options.dashMinApiVersion !== undefined) {\n warnAboveDashApiVersion(options.dashMinApiVersion);\n }\n running.replacePages(options.pages);\n return running;\n }\n const service = createService({ ...options, transport: hostTransport() });\n globals[RUNNING_SERVICE] = service;\n return service;\n}\n"],"mappings":";;;;AAGA,SAAgB,OACd,UAGI;CACF,KAAK,QAAQ;CACb,UAAU,QAAQ;AACpB,GACe;CACf,MAAM,EAAE,KAAK,aAAa;CAC1B,OAAO;EACL,MAAM;EACN,MAAM,EAAE,SAAS;GACf,MAAM,GAAG,aAAa,SAAS,IAAI,cAAc,KAAK,GAAG,GAAG,KAAK,cAAc,KAAK,KAAK,CAAC;GAC1F,MAAM,GAAG,eAAe,SAAS,IAAI,gBAAgB,KAAK,GAAG,GAAG,KAAK,YAAY,CAAC;GAClF,MAAM,GAAG,UAAU,MAAM,SAAS,UAAU,IAAI,SAAS,KAAK,GAAG,GAAG,WAAW,KAAK,CAAC;GACrF,MAAM,GAAG,aAAa,MAAM,eAAe,IAAI,SAAS,KAAK,GAAG,YAAY,UAAU,CAAC;GACvF,MAAM,GAAG,aAAa,MAAM,UAAU,IAAI,SAAS,KAAK,GAAG,YAAY,KAAK,CAAC;GAC7E,MAAM,GAAG,UAAU,UAAU,SAAS,eAAe,KAAK,CAAC;EAC7D;CACF;AACF;;;ACkCA,SAAgB,cAAc,SAAkC;CAC9D,MAAM,UAAU,IAAI,QAAQ,OAAO;CACnC,QAAQ,MAAM;CACd,OAAO;AACT;AAGA,MAAM,kBAAkB,OAAO,IAAI,aAAa;AAGhD,SAAgB,WAAW,SAAqD;CAC9E,MAAM,UAAU;CAChB,MAAM,UAAU,QAAQ;CACxB,IAAI,SAAS;EAGX,YAAY,QAAQ,QAAQ;EAC5B,uBAAuB,QAAQ,cAAc,eAAe;EAC5D,IAAI,QAAQ,sBAAsB,KAAA,GAChC,wBAAwB,QAAQ,iBAAiB;EAEnD,QAAQ,aAAa,QAAQ,KAAK;EAClC,OAAO;CACT;CACA,MAAM,UAAU,cAAc;EAAE,GAAG;EAAS,WAAWA,gBAAc;CAAE,CAAC;CACxE,QAAQ,mBAAmB;CAC3B,OAAO;AACT"}
@@ -1,14 +1,22 @@
1
- import { DotEvent, Navigation, PageHooks, PageLaunchOptions, PageState } from "@monimesl/dot-core";
1
+ import { DotEvent, Navigation, NavigationBarOptions, PageBars, PageColors, PageConfigs, PageHooks, PageLaunchOptions, PageShare, PageState, TabBarOptions } from "@monimesl/dot-core";
2
+ import { Dash } from "@monimesl/dot-dash";
2
3
  //#region src/page.d.ts
3
4
  declare global {
4
5
  interface DotPageIds {}
5
6
  }
6
7
  type PageId = [keyof DotPageIds] extends [never] ? string : Extract<keyof DotPageIds, string>;
8
+ interface PushNavigation {
9
+ readonly action: 'push';
10
+ readonly page: string;
11
+ readonly options: PageLaunchOptions;
12
+ }
7
13
  interface PageNavigation {
8
14
  push(page: PageId, options?: PageLaunchOptions): void;
9
15
  replace(page: PageId, options?: PageLaunchOptions): void;
10
16
  reset(page: PageId, options?: PageLaunchOptions): void;
11
17
  back(delta?: number): void;
18
+ pushForResult<Result = unknown>(page: PageId, options?: PageLaunchOptions): Promise<Result | undefined>;
19
+ backWithResult(result: unknown): void;
12
20
  }
13
21
  type DeepReadonly<T> = T extends ((...args: never[]) => unknown) ? T : T extends object ? { readonly [K in keyof T]: DeepReadonly<T[K]>; } : T;
14
22
  type State<S> = DeepReadonly<S>;
@@ -25,7 +33,11 @@ interface PageContext<S extends PageState, Mu, Ac> {
25
33
  readonly id: string;
26
34
  readonly instanceId: number;
27
35
  readonly state: State<S>;
36
+ readonly dash: Dash;
28
37
  setState(update: StateUpdate<S>): void;
38
+ setNavigationBar(options: NavigationBarOptions): void;
39
+ setTabBar(options: TabBarOptions): void;
40
+ setColors(colors: PageColors): void;
29
41
  readonly mutations: { readonly [K in keyof Mu]: (...event: EventArgs<Mu[K]>) => void; };
30
42
  readonly actions: { readonly [K in keyof Ac]: (...event: EventArgs<Ac[K]>) => Promise<void>; };
31
43
  }
@@ -35,6 +47,8 @@ interface ActionContext<S extends PageState, Mu, Ac> extends PageContext<S, Mu,
35
47
  interface PageOptions<S extends PageState, Mu, Ac> {
36
48
  id?: string;
37
49
  initialState: S;
50
+ configs?: PageConfigs;
51
+ share?: PageShare;
38
52
  hooks?: Partial<PageHooks> & ThisType<PageContext<S, Mu, Ac>>;
39
53
  mutations?: Mu & ThisType<void>;
40
54
  actions?: Ac & ThisType<ActionContext<S, Mu, Ac>>;
@@ -42,6 +56,8 @@ interface PageOptions<S extends PageState, Mu, Ac> {
42
56
  interface PageDefinition<S extends PageState = PageState> {
43
57
  readonly id?: string;
44
58
  readonly initialState: S;
59
+ readonly configs?: PageConfigs;
60
+ readonly share?: PageShare;
45
61
  readonly hooks?: Partial<PageHooks>;
46
62
  readonly mutations?: Readonly<Record<string, Mutation<S>>>;
47
63
  readonly actions?: Readonly<Record<string, Action<S>>>;
@@ -49,9 +65,17 @@ interface PageDefinition<S extends PageState = PageState> {
49
65
  declare function definePage<S extends PageState, Mu extends Record<string, Mutation<S>>, Ac extends Record<string, Action<S>>>(options: PageOptions<S, Mu, Ac>): PageDefinition<S>;
50
66
  interface PageHost {
51
67
  commit(page: Page, patch: PageState): void;
68
+ showBars(page: Page): void;
69
+ readonly dotConfigs?: PageConfigs | undefined;
52
70
  navigate(page: Page, navigation: Navigation): void;
71
+ pushForResult(page: Page, navigation: PushNavigation): Promise<unknown>;
72
+ backWithResult(page: Page, result: unknown): void;
53
73
  readonly strict?: boolean;
54
74
  }
75
+ interface RestoredPage<S> {
76
+ readonly state: State<S>;
77
+ readonly barChanges: PageBars;
78
+ }
55
79
  type Mutations<S> = Record<string, Mutation<S>>;
56
80
  type Actions<S> = Record<string, Action<S>>;
57
81
  declare class Page<S extends PageState = PageState> {
@@ -60,9 +84,15 @@ declare class Page<S extends PageState = PageState> {
60
84
  readonly instanceId: number;
61
85
  readonly context: PageContext<S, Mutations<S>, Actions<S>>;
62
86
  readonly actionContext: ActionContext<S, Mutations<S>, Actions<S>>;
63
- constructor(instanceId: number, id: string, definition: PageDefinition<S>, host: PageHost);
87
+ readonly dash: Dash;
88
+ constructor(instanceId: number, id: string, definition: PageDefinition<S>, host: PageHost, restored?: RestoredPage<S>);
64
89
  get state(): State<S>;
65
- handlers(): string[];
90
+ get refreshable(): boolean;
91
+ get bars(): PageBars;
92
+ get barChanges(): PageBars;
93
+ setNavigationBar(options: NavigationBarOptions): void;
94
+ setTabBar(options: TabBarOptions): void;
95
+ setColors(colors: PageColors): void;
66
96
  setState(update: StateUpdate<S>): void;
67
97
  mutate(name: string, event?: DotEvent): void;
68
98
  act(name: string, event?: DotEvent): Promise<void>;
@@ -72,4 +102,4 @@ declare class Page<S extends PageState = PageState> {
72
102
  }
73
103
  //#endregion
74
104
  export { Page as a, PageHost as c, PageOptions as d, State as f, definePage as h, Mutation as i, PageId as l, StateUpdate as m, ActionContext as n, PageContext as o, StateChanges as p, DeepReadonly as r, PageDefinition as s, Action as t, PageNavigation as u };
75
- //# sourceMappingURL=page-BfYJ-G-D.d.ts.map
105
+ //# sourceMappingURL=page-DBnKjef6.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-DBnKjef6.d.ts","names":[],"sources":["../src/page.ts"],"mappings":";;;QAyBQ;YAEI;;KAKA,gBAAgB,uCAExB,cAAc;UAGD;WACN;WACA;WACA,SAAS;;UAGH;EACf,KAAK,MAAM,QAAQ,UAAU;EAE7B,QAAQ,MAAM,QAAQ,UAAU;EAEhC,MAAM,MAAM,QAAQ,UAAU;EAE9B,KAAK;EAIL,cAAc,kBACZ,MAAM,QACN,UAAU,oBACT,QAAQ;EAGX,eAAe;;KAGL,aAAa,KAAK,eAAc,6BACxC,IACA,+BACc,WAAW,IAAI,aAAa,EAAE,SAC1C;KAEM,MAAM,KAAK,aAAa;KAExB,aAAa,KAAK,QAAQ,MAAM;KAEhC,YAAY,KAAK,aAAa,OAAO,OAAO,MAAM,OAAO,aAAa;KAItE,SAAS;EACnB,SAAS,OAAO,MAAM,IAAI,OAAO,WAAW,aAAa;;KAG/C,OAAO;EACjB,OAAO,OAAO,MAAM,IAAI,OAAO,kBAAkB;;KAI9C,UAAU,KAAK,YAAW,iBAAiB,YAAY,iBAAgB;UAE3D,YAAY,UAAU,WAAW,IAAI;WAC3C;WACA;WACA,OAAO,MAAM;WAEb,MAAM;EAEf,SAAS,QAAQ,YAAY;EAG7B,iBAAiB,SAAS;EAG1B,UAAU,SAAS;EAInB,UAAU,QAAQ;WAET,uBAAuB,WAAW,SAAS,OAAO,UAAU,GAAG;WAC/D,qBAAqB,WAAW,SAAS,OAAO,UAAU,GAAG,QAAQ;;UAG/D,cAAc,UAAU,WAAW,IAAI,YAAY,YAAY,GAAG,IAAI;WAC5E,YAAY;;UAGN,YAAY,UAAU,WAAW,IAAI;EACpD;EACA,cAAc;EAGd,UAAU;EAGV,QAAQ;EACR,QAAQ,QAAQ,aAAa,SAAS,YAAY,GAAG,IAAI;EACzD,YAAY,KAAK;EACjB,UAAU,KAAK,SAAS,cAAc,GAAG,IAAI;;UAG9B,eAAe,UAAU,YAAY;WAC3C;WACA,cAAc;WACd,UAAU;WACV,QAAQ;WACR,QAAQ,QAAQ;WAChB,YAAY,SAAS,eAAe,SAAS;WAC7C,UAAU,SAAS,eAAe,OAAO;;iBAGpC,WACd,UAAU,WACV,WAAW,eAAe,SAAS,KACnC,WAAW,eAAe,OAAO,KACjC,SAAS,YAAY,GAAG,IAAI,MAAM,eAAe;UAIlC;EACf,OAAO,MAAM,MAAM,OAAO;EAG1B,SAAS,MAAM;WAGN,aAAa;EAEtB,SAAS,MAAM,MAAM,YAAY;EAGjC,cAAc,MAAM,MAAM,YAAY,iBAAiB;EAEvD,eAAe,MAAM,MAAM;WAElB;;UAIM,aAAa;WACnB,OAAO,MAAM;WACb,YAAY;;KAGlB,UAAU,KAAK,eAAe,SAAS;KACvC,QAAQ,KAAK,eAAe,OAAO;cAI3B,KAAK,UAAU,YAAY;;WAC7B;WACA;WACA,SAAS,YAAY,GAAG,UAAU,IAAI,QAAQ;WAC9C,eAAe,cAAc,GAAG,UAAU,IAAI,QAAQ;WACtD,MAAM;EAWb,YAAA,oBACA,YACA,YAAY,eAAe,IAC3B,MAAM,UACN,WAAW,aAAa;MAsCtB,SAAS,MAAM;MAKf;MAIA,QAAQ;MAIR,cAAc;EAIlB,iBAAiB,SAAS;EAM1B,UAAU,SAAS;EAMnB,UAAU,QAAQ;EAclB,SAAS,QAAQ,YAAY;EA+B7B,OAAO,cAAc,QAAQ;EAQvB,IAAI,cAAc,QAAQ,WAAW;EAS3C,SAAS,cAAc,OAAO,WAAW;EAanC,UAAU,gBAAgB,WAC9B,UAAU,MACP,MAAM,WAAW,UAAU,MAC7B;EASH"}