@owlmeans/client 0.1.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.
Files changed (120) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +688 -0
  3. package/build/app.d.ts +4 -0
  4. package/build/app.d.ts.map +1 -0
  5. package/build/app.js +10 -0
  6. package/build/app.js.map +1 -0
  7. package/build/components/index.d.ts +4 -0
  8. package/build/components/index.d.ts.map +1 -0
  9. package/build/components/index.js +3 -0
  10. package/build/components/index.js.map +1 -0
  11. package/build/components/modal.d.ts +7 -0
  12. package/build/components/modal.d.ts.map +1 -0
  13. package/build/components/modal.js +66 -0
  14. package/build/components/modal.js.map +1 -0
  15. package/build/components/toggle.d.ts +3 -0
  16. package/build/components/toggle.d.ts.map +1 -0
  17. package/build/components/toggle.js +20 -0
  18. package/build/components/toggle.js.map +1 -0
  19. package/build/components/types.d.ts +50 -0
  20. package/build/components/types.d.ts.map +1 -0
  21. package/build/components/types.js +2 -0
  22. package/build/components/types.js.map +1 -0
  23. package/build/consts.d.ts +5 -0
  24. package/build/consts.d.ts.map +1 -0
  25. package/build/consts.js +5 -0
  26. package/build/consts.js.map +1 -0
  27. package/build/context.d.ts +8 -0
  28. package/build/context.d.ts.map +1 -0
  29. package/build/context.js +47 -0
  30. package/build/context.js.map +1 -0
  31. package/build/debug.d.ts +4 -0
  32. package/build/debug.d.ts.map +1 -0
  33. package/build/debug.js +12 -0
  34. package/build/debug.js.map +1 -0
  35. package/build/errors.d.ts +18 -0
  36. package/build/errors.d.ts.map +1 -0
  37. package/build/errors.js +34 -0
  38. package/build/errors.js.map +1 -0
  39. package/build/helper.d.ts +4 -0
  40. package/build/helper.d.ts.map +1 -0
  41. package/build/helper.js +30 -0
  42. package/build/helper.js.map +1 -0
  43. package/build/index.d.ts +15 -0
  44. package/build/index.d.ts.map +1 -0
  45. package/build/index.js +15 -0
  46. package/build/index.js.map +1 -0
  47. package/build/module.d.ts +3 -0
  48. package/build/module.d.ts.map +1 -0
  49. package/build/module.js +4 -0
  50. package/build/module.js.map +1 -0
  51. package/build/navigate.d.ts +3 -0
  52. package/build/navigate.d.ts.map +1 -0
  53. package/build/navigate.js +39 -0
  54. package/build/navigate.js.map +1 -0
  55. package/build/router.d.ts +5 -0
  56. package/build/router.d.ts.map +1 -0
  57. package/build/router.js +53 -0
  58. package/build/router.js.map +1 -0
  59. package/build/services/debug.d.ts +6 -0
  60. package/build/services/debug.d.ts.map +1 -0
  61. package/build/services/debug.js +83 -0
  62. package/build/services/debug.js.map +1 -0
  63. package/build/services/index.d.ts +2 -0
  64. package/build/services/index.d.ts.map +1 -0
  65. package/build/services/index.js +2 -0
  66. package/build/services/index.js.map +1 -0
  67. package/build/store.d.ts +4 -0
  68. package/build/store.d.ts.map +1 -0
  69. package/build/store.js +49 -0
  70. package/build/store.js.map +1 -0
  71. package/build/types.d.ts +57 -0
  72. package/build/types.d.ts.map +1 -0
  73. package/build/types.js +2 -0
  74. package/build/types.js.map +1 -0
  75. package/build/utils/index.d.ts +4 -0
  76. package/build/utils/index.d.ts.map +1 -0
  77. package/build/utils/index.js +4 -0
  78. package/build/utils/index.js.map +1 -0
  79. package/build/utils/module.d.ts +3 -0
  80. package/build/utils/module.d.ts.map +1 -0
  81. package/build/utils/module.js +8 -0
  82. package/build/utils/module.js.map +1 -0
  83. package/build/utils/route.d.ts +16 -0
  84. package/build/utils/route.d.ts.map +1 -0
  85. package/build/utils/route.js +65 -0
  86. package/build/utils/route.js.map +1 -0
  87. package/build/utils/router.d.ts +16 -0
  88. package/build/utils/router.d.ts.map +1 -0
  89. package/build/utils/router.js +36 -0
  90. package/build/utils/router.js.map +1 -0
  91. package/build/value.d.ts +4 -0
  92. package/build/value.d.ts.map +1 -0
  93. package/build/value.js +48 -0
  94. package/build/value.js.map +1 -0
  95. package/package.json +66 -0
  96. package/src/app.tsx +17 -0
  97. package/src/components/index.ts +4 -0
  98. package/src/components/modal.ts +89 -0
  99. package/src/components/toggle.ts +22 -0
  100. package/src/components/types.ts +57 -0
  101. package/src/consts.ts +7 -0
  102. package/src/context.ts +61 -0
  103. package/src/debug.ts +14 -0
  104. package/src/errors.ts +44 -0
  105. package/src/helper.tsx +51 -0
  106. package/src/index.ts +15 -0
  107. package/src/module.ts +6 -0
  108. package/src/navigate.ts +51 -0
  109. package/src/router.ts +78 -0
  110. package/src/services/debug.ts +102 -0
  111. package/src/services/index.ts +2 -0
  112. package/src/store.ts +57 -0
  113. package/src/types.ts +72 -0
  114. package/src/utils/index.ts +4 -0
  115. package/src/utils/module.ts +14 -0
  116. package/src/utils/route.tsx +82 -0
  117. package/src/utils/router.ts +60 -0
  118. package/src/value.ts +60 -0
  119. package/tsconfig.json +15 -0
  120. package/tsconfig.tsbuildinfo +1 -0
package/build/app.js ADDED
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from 'react';
3
+ import { Context } from './context.js';
4
+ import { Router } from './router.js';
5
+ export const App = ({ context, provide, children }) => {
6
+ const [render, rerender] = useState(0);
7
+ useEffect(() => context.registerRerenderer(() => rerender(render + 1)), []);
8
+ return _jsxs(Context, { value: context, children: [children, provide != null ? _jsx(Router, { provide: provide }) : undefined] });
9
+ };
10
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,CAAC,MAAM,GAAG,GAAiB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAEtC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAE3E,OAAO,MAAC,OAAO,IAAC,KAAK,EAAE,OAAO,aAC3B,QAAQ,EACR,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,OAAO,EAAE,OAAO,GAAI,CAAC,CAAC,CAAC,SAAS,IACnD,CAAA;AACZ,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ export type * from './types.js';
2
+ export * from './toggle.js';
3
+ export * from './modal.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AACA,mBAAmB,YAAY,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './toggle.js';
2
+ export * from './modal.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { ModalService, ModalServiceAppend } from './types.js';
2
+ import type { ClientConfig } from '@owlmeans/client-context';
3
+ import type { ClientContext } from '../types.js';
4
+ export declare const createModalService: (alias?: string) => ModalService;
5
+ export declare const appendModalService: <C extends ClientConfig, T extends ClientContext<C>>(ctx: T, alias?: string) => T & ModalServiceAppend;
6
+ export declare const useSetupModalNavigator: () => void;
7
+ //# sourceMappingURL=modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../src/components/modal.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAmB,MAAM,YAAY,CAAA;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAKhD,eAAO,MAAM,kBAAkB,WAAW,MAAM,KAAqB,YAwDpE,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,OAC9E,CAAC,UAAS,MAAM,KACpB,CAAC,GAAG,kBAUN,CAAA;AAED,eAAO,MAAM,sBAAsB,YAOlC,CAAA"}
@@ -0,0 +1,66 @@
1
+ import { createService } from '@owlmeans/context';
2
+ import { DEF_MODAL_ALIAS } from '../consts.js';
3
+ import { useContext } from '../context.js';
4
+ import { useNavigate } from '../navigate.js';
5
+ import { useEffect } from 'react';
6
+ export const createModalService = (alias = DEF_MODAL_ALIAS) => {
7
+ const close = () => {
8
+ service.stack.pop();
9
+ service.toggle.close();
10
+ if (service.stack.length > 0) {
11
+ // @TODO Figure out how to remove this hack
12
+ setTimeout(() => service.toggle.open(), 500);
13
+ }
14
+ };
15
+ const service = createService(alias, {
16
+ stack: [],
17
+ link: toggle => service.toggle = toggle,
18
+ layer: () => {
19
+ if (service.stack.length === 0) {
20
+ return undefined;
21
+ }
22
+ return service.stack[service.stack.length - 1];
23
+ },
24
+ request: async (Com) => {
25
+ const layer = { Com };
26
+ const defer = new Promise((resolve, reject) => {
27
+ layer.resolve = resolve;
28
+ layer.reject = reject;
29
+ });
30
+ service.stack.push(layer);
31
+ service.toggle.open();
32
+ const result = await defer;
33
+ service.stack.pop();
34
+ return result;
35
+ },
36
+ error: error => {
37
+ service.layer()?.reject?.(error);
38
+ close();
39
+ },
40
+ response: result => {
41
+ service.layer()?.resolve?.(result);
42
+ close();
43
+ },
44
+ cancel: () => {
45
+ service.layer()?.resolve?.(null);
46
+ close();
47
+ }
48
+ }, service => async () => { service.initialized = true; });
49
+ return service;
50
+ };
51
+ export const appendModalService = (ctx, alias = DEF_MODAL_ALIAS) => {
52
+ const service = createModalService(alias);
53
+ const _ctx = ctx;
54
+ _ctx.registerService(service);
55
+ _ctx.modal = () => _ctx.service(alias);
56
+ return _ctx;
57
+ };
58
+ export const useSetupModalNavigator = () => {
59
+ const context = useContext();
60
+ const navigator = useNavigate();
61
+ useEffect(() => {
62
+ const modal = context.modal();
63
+ modal.navigator = navigator;
64
+ }, []);
65
+ };
66
+ //# sourceMappingURL=modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal.js","sourceRoot":"","sources":["../../src/components/modal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Toggleable } from './types.js';
2
+ export declare const useToggle: (opened?: boolean) => Toggleable;
3
+ //# sourceMappingURL=toggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../src/components/toggle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,eAAO,MAAM,SAAS,YAAa,OAAO,KAAG,UAkB5C,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { useMemo, useState } from 'react';
2
+ export const useToggle = (opened) => {
3
+ if (opened === undefined) {
4
+ opened = false;
5
+ }
6
+ const [_opened, setOpened] = useState(opened);
7
+ return useMemo(() => {
8
+ const _handler = {
9
+ opened: _opened === undefined ? false : _opened,
10
+ set: opened => {
11
+ setOpened(_handler.opened = opened);
12
+ },
13
+ open: () => { _handler.set(true); },
14
+ close: () => { _handler.set(false); },
15
+ toggle: () => { _handler.set(!_handler.opened); }
16
+ };
17
+ return _handler;
18
+ }, []);
19
+ };
20
+ //# sourceMappingURL=toggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.js","sourceRoot":"","sources":["../../src/components/toggle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGzC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAgB,EAAc,EAAE;IACxD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,GAAG,KAAK,CAAA;IAChB,CAAC;IACD,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAU,MAAM,CAAC,CAAA;IACtD,OAAO,OAAO,CAAa,GAAG,EAAE;QAC9B,MAAM,QAAQ,GAAe;YAC3B,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;YAC/C,GAAG,EAAE,MAAM,CAAC,EAAE;gBACZ,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,CAAA;YACrC,CAAC;YACD,IAAI,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC;YAClC,KAAK,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC;YACpC,MAAM,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA,CAAC,CAAC;SACjD,CAAA;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC,CAAA"}
@@ -0,0 +1,50 @@
1
+ import type { InitializedService, LazyService } from '@owlmeans/context';
2
+ import type { FC } from 'react';
3
+ import type { ClientContext, Navigator } from '../types.js';
4
+ export interface Toggleable {
5
+ opened: boolean;
6
+ open: () => void;
7
+ close: () => void;
8
+ set: (opened: boolean) => void;
9
+ toggle: () => void;
10
+ }
11
+ export interface ModalService extends InitializedService {
12
+ toggle: Toggleable;
13
+ stack: ModalStackLayer[];
14
+ navigator?: Navigator;
15
+ layer: () => ModalStackLayer | undefined;
16
+ link: (toggle: Toggleable) => void;
17
+ request: <T>(Com: FC<ModalBodyProps>) => Promise<T | null>;
18
+ error: (error: Error) => void;
19
+ response: <T>(value: T) => void;
20
+ cancel: () => void;
21
+ }
22
+ export interface ModalStackLayer {
23
+ Com: FC<ModalBodyProps>;
24
+ resolve?: (v: unknown | null) => void;
25
+ reject?: (e: Error) => void;
26
+ }
27
+ export interface ModalBodyProps {
28
+ modal?: ModalService;
29
+ }
30
+ export interface ModalServiceAppend {
31
+ modal: () => ModalService;
32
+ }
33
+ export interface DebugService extends LazyService {
34
+ Debug: FC<ModalBodyProps>;
35
+ items: DebugMenuItem[];
36
+ addItem: (item: DebugMenuItem) => void;
37
+ erase: (states: string[]) => Promise<void>;
38
+ select: (alias: string) => void;
39
+ open: () => void;
40
+ }
41
+ export interface DebugMenuItem {
42
+ alias: string;
43
+ title: string;
44
+ Com?: FC<ModalBodyProps>;
45
+ action?: (modal: ModalService, context: ClientContext) => Promise<void | string>;
46
+ }
47
+ export interface DebugServiceAppend {
48
+ debug: () => DebugService | undefined;
49
+ }
50
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE3D,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9B,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB;AAED,MAAM,WAAW,YAAa,SAAQ,kBAAkB;IACtD,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,KAAK,EAAE,MAAM,eAAe,GAAG,SAAS,CAAA;IACxC,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IAClC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC1D,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAC7B,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IAC/B,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,CAAA;IACvB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,YAAY,CAAA;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,YAAY,CAAA;CAC1B;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,CAAA;IACzB,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB,OAAO,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAA;IACtC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,IAAI,EAAE,MAAM,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAA;IACxB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAAA;CACjF;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,YAAY,GAAG,SAAS,CAAA;CACtC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export declare const DEF_MODAL_ALIAS = "modal";
2
+ export declare const DEF_DEBUG_ALIAS = "debug";
3
+ export declare const DEBUGGER_FLAG = "debugger";
4
+ export declare const DEBUG_CONFIG_KEY = "debugger";
5
+ //# sourceMappingURL=consts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,eAAe,UAAU,CAAA;AACtC,eAAO,MAAM,eAAe,UAAU,CAAA;AAEtC,eAAO,MAAM,aAAa,aAAa,CAAA;AACvC,eAAO,MAAM,gBAAgB,aAAa,CAAA"}
@@ -0,0 +1,5 @@
1
+ export const DEF_MODAL_ALIAS = 'modal';
2
+ export const DEF_DEBUG_ALIAS = 'debug';
3
+ export const DEBUGGER_FLAG = 'debugger';
4
+ export const DEBUG_CONFIG_KEY = 'debugger';
5
+ //# sourceMappingURL=consts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAA;AACtC,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAA;AAEtC,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAA;AACvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { Context as ReactContext } from 'react';
2
+ import type { ClientConfig } from '@owlmeans/client-context';
3
+ import type { ClientContext } from './types.js';
4
+ export declare const makeClientContext: <C extends ClientConfig, T extends ClientContext<C> = ClientContext<C>>(cfg: C) => T;
5
+ export declare const ClientContextContainer: ReactContext<ClientContext<ClientConfig>>;
6
+ export declare const Context: import("react").Provider<ClientContext<ClientConfig>>;
7
+ export declare const useContext: <C extends ClientConfig, T extends ClientContext<C>>() => T;
8
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,OAAO,CAAA;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAkB/C,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAG,CA4BjH,CAAA;AAED,eAAO,MAAM,sBAAsB,2CAA+C,CAAA;AAElF,eAAO,MAAM,OAAO,uDAAkC,CAAA;AAEtD,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,QAE5E,CAAA"}
@@ -0,0 +1,47 @@
1
+ import { createContext, useContext as useCtx } from 'react';
2
+ import { makeClientContext as makeBasicContext, PLUGINS } from '@owlmeans/client-context';
3
+ import { AppType, CONFIG_RECORD, Layer } from '@owlmeans/context';
4
+ import { appendStateResource } from '@owlmeans/state';
5
+ import { appendModalService } from './components/modal.js';
6
+ import { appendDebugService } from './services/debug.js';
7
+ import { appendConfigResource, PLUGIN_RECORD } from '@owlmeans/config';
8
+ const defaultCfg = {
9
+ services: {},
10
+ brand: {},
11
+ layer: Layer.Service,
12
+ trusted: [],
13
+ [CONFIG_RECORD]: [],
14
+ ready: false,
15
+ service: '',
16
+ debug: {},
17
+ type: AppType.Frontend,
18
+ };
19
+ export const makeClientContext = (cfg) => {
20
+ const context = makeBasicContext(cfg);
21
+ appendStateResource(context);
22
+ appendModalService(context);
23
+ appendConfigResource(context);
24
+ appendConfigResource(context, PLUGINS, PLUGIN_RECORD);
25
+ appendDebugService(context);
26
+ if (context.registerRerenderer == null) {
27
+ const rerenderers = [];
28
+ context.registerRerenderer = listener => {
29
+ rerenderers.push(listener);
30
+ return () => {
31
+ const index = rerenderers.indexOf(listener);
32
+ if (index >= 0) {
33
+ rerenderers.splice(index, 1);
34
+ }
35
+ };
36
+ };
37
+ context.rerender = () => {
38
+ rerenderers.forEach(callback => callback());
39
+ };
40
+ }
41
+ context.makeContext = makeClientContext;
42
+ return context;
43
+ };
44
+ export const ClientContextContainer = createContext(makeClientContext(defaultCfg));
45
+ export const Context = ClientContextContainer.Provider;
46
+ export const useContext = () => useCtx(ClientContextContainer);
47
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM,OAAO,CAAA;AAE3D,OAAO,EAAE,iBAAiB,IAAI,gBAAgB,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAEzF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEtE,MAAM,UAAU,GAAiB;IAC/B,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,KAAK,CAAC,OAAO;IACpB,OAAO,EAAE,EAAE;IACX,CAAC,aAAa,CAAC,EAAE,EAAE;IACnB,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,OAAO,CAAC,QAAQ;CACvB,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAwE,GAAM,EAAK,EAAE;IACpH,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAM,CAAA;IAC1C,mBAAmB,CAAO,OAAO,CAAC,CAAA;IAClC,kBAAkB,CAAO,OAAO,CAAC,CAAA;IACjC,oBAAoB,CAAO,OAAO,CAAC,CAAA;IACnC,oBAAoB,CAAO,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;IAC3D,kBAAkB,CAAO,OAAO,CAAC,CAAA;IAEjC,IAAI,OAAO,CAAC,kBAAkB,IAAI,IAAI,EAAE,CAAC;QACvC,MAAM,WAAW,GAAuB,EAAE,CAAA;QAE1C,OAAO,CAAC,kBAAkB,GAAG,QAAQ,CAAC,EAAE;YACtC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC1B,OAAO,GAAG,EAAE;gBACV,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;gBAC3C,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;oBACf,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBAC9B,CAAC;YACH,CAAC,CAAA;QACH,CAAC,CAAA;QACD,OAAO,CAAC,QAAQ,GAAG,GAAG,EAAE;YACtB,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC7C,CAAC,CAAA;IACH,CAAC;IAED,OAAO,CAAC,WAAW,GAAG,iBAA+C,CAAA;IAErE,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAA;AAElF,MAAM,CAAC,MAAM,OAAO,GAAG,sBAAsB,CAAC,QAAQ,CAAA;AAEtD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAuD,EAAE,CAAC,MAAM,CACxF,sBAAoD,CACrD,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { ClientConfig } from '@owlmeans/client-context';
2
+ import type { ClientContext } from './types.js';
3
+ export declare const appendStateDebug: <C extends ClientConfig, T extends ClientContext<C>>(ctx: T, state: string) => void;
4
+ //# sourceMappingURL=debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAqB,MAAM,YAAY,CAAA;AAElE,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,MAAM,SASzG,CAAA"}
package/build/debug.js ADDED
@@ -0,0 +1,12 @@
1
+ import { DEBUG_CONFIG_KEY } from './consts.js';
2
+ export const appendStateDebug = (ctx, state) => {
3
+ let debugRecord = ctx.cfg.records
4
+ .find(record => record.id === DEBUG_CONFIG_KEY);
5
+ if (debugRecord == null) {
6
+ debugRecord = { id: DEBUG_CONFIG_KEY };
7
+ ctx.cfg.records.push(debugRecord);
8
+ }
9
+ debugRecord.states = debugRecord.states ?? [];
10
+ debugRecord.states.push(state);
11
+ };
12
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAG9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAqD,GAAM,EAAE,KAAa,EAAE,EAAE;IAC5G,IAAI,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO;SAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,gBAAgB,CAAsB,CAAA;IACtE,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACxB,WAAW,GAAG,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAA;QACtC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACnC,CAAC;IACD,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE,CAAA;IAC7C,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAChC,CAAC,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { ResilientError } from '@owlmeans/error';
2
+ export declare class ClientError extends ResilientError {
3
+ static typeName: string;
4
+ constructor(message?: string);
5
+ }
6
+ export declare class ComponentError extends ClientError {
7
+ static typeName: string;
8
+ constructor(message?: string);
9
+ }
10
+ export declare class ComponentPropError extends ComponentError {
11
+ static typeName: string;
12
+ constructor(message?: string);
13
+ }
14
+ export declare class ComponentPropUndefined extends ComponentPropError {
15
+ static typeName: string;
16
+ constructor(message?: string);
17
+ }
18
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,qBAAa,WAAY,SAAQ,cAAc;IAC7C,OAAuB,QAAQ,EAAE,MAAM,CAAgB;gBAE3C,OAAO,GAAE,MAAgB;CAGtC;AAED,qBAAa,cAAe,SAAQ,WAAW;IAC7C,OAAuB,QAAQ,EAAE,MAAM,CAAqC;gBAEhE,OAAO,GAAE,MAAgB;CAItC;AAED,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,OAAuB,QAAQ,EAAE,MAAM,CAAmC;gBAE9D,OAAO,GAAE,MAAgB;CAItC;AAED,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,OAAuB,QAAQ,EAAE,MAAM,CAA4C;gBAEvE,OAAO,GAAE,MAAgB;CAItC"}
@@ -0,0 +1,34 @@
1
+ import { ResilientError } from '@owlmeans/error';
2
+ export class ClientError extends ResilientError {
3
+ static typeName = 'ClientError';
4
+ constructor(message = 'error') {
5
+ super(ClientError.typeName, `client:${message}`);
6
+ }
7
+ }
8
+ export class ComponentError extends ClientError {
9
+ static typeName = `${ClientError.typeName}Component`;
10
+ constructor(message = 'error') {
11
+ super(`component:${message}`);
12
+ this.type = ComponentError.typeName;
13
+ }
14
+ }
15
+ export class ComponentPropError extends ComponentError {
16
+ static typeName = `${ComponentError.typeName}Prop`;
17
+ constructor(message = 'error') {
18
+ super(`prop:${message}`);
19
+ this.type = ComponentPropError.typeName;
20
+ }
21
+ }
22
+ export class ComponentPropUndefined extends ComponentPropError {
23
+ static typeName = `${ComponentPropError.typeName}Undefined`;
24
+ constructor(message = 'error') {
25
+ super(`undefined:${message}`);
26
+ this.type = ComponentPropUndefined.typeName;
27
+ }
28
+ }
29
+ ResilientError.registerErrorClass(ClientError);
30
+ ResilientError.registerErrorClass(ComponentError);
31
+ ResilientError.registerErrorClass(ComponentPropError);
32
+ ResilientError.registerErrorClass(ComponentPropUndefined);
33
+ ResilientError.registerErrorClass(ComponentPropUndefined);
34
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,MAAM,OAAO,WAAY,SAAQ,cAAc;IACtC,MAAM,CAAU,QAAQ,GAAW,aAAa,CAAA;IAEvD,YAAY,UAAkB,OAAO;QACnC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,OAAO,EAAE,CAAC,CAAA;IAClD,CAAC;;AAGH,MAAM,OAAO,cAAe,SAAQ,WAAW;IACtC,MAAM,CAAU,QAAQ,GAAW,GAAG,WAAW,CAAC,QAAQ,WAAW,CAAA;IAE5E,YAAY,UAAkB,OAAO;QACnC,KAAK,CAAC,aAAa,OAAO,EAAE,CAAC,CAAA;QAC7B,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAA;IACrC,CAAC;;AAGH,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IAC7C,MAAM,CAAU,QAAQ,GAAW,GAAG,cAAc,CAAC,QAAQ,MAAM,CAAA;IAE1E,YAAY,UAAkB,OAAO;QACnC,KAAK,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAA;QACxB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAA;IACzC,CAAC;;AAGH,MAAM,OAAO,sBAAuB,SAAQ,kBAAkB;IACrD,MAAM,CAAU,QAAQ,GAAW,GAAG,kBAAkB,CAAC,QAAQ,WAAW,CAAA;IAEnF,YAAY,UAAkB,OAAO;QACnC,KAAK,CAAC,aAAa,OAAO,EAAE,CAAC,CAAA;QAC7B,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC,QAAQ,CAAA;IAC7C,CAAC;;AAIH,cAAc,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA;AAC9C,cAAc,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAA;AACjD,cAAc,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAA;AACrD,cAAc,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAA;AACzD,cAAc,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { RefedModuleHandler } from '@owlmeans/client-module';
2
+ import { HandledRenderer } from './utils/route.js';
3
+ export declare const handler: <T extends {}>(Component: HandledRenderer<T>, preprender?: boolean) => RefedModuleHandler<T>;
4
+ //# sourceMappingURL=helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../src/helper.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAUlD,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,EAAE,aACvB,eAAe,CAAC,CAAC,CAAC,eAAe,OAAO,KAClD,kBAAkB,CAAC,CAAC,CAiCtB,CAAA"}
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { isValidElement } from 'react';
3
+ import { ModuleContext } from './utils/module.js';
4
+ import { assertContext } from '@owlmeans/context';
5
+ export const handler = (Component, preprender) => ref => (req, res) => {
6
+ const location = `client-handler:${ref.ref?.getAlias() ?? 'unknown'}`;
7
+ if (ref.ref == null) {
8
+ throw new SyntaxError('Module reference is not provided');
9
+ }
10
+ const ctx = assertContext(ref.ref.ctx, location);
11
+ if (ctx == null) {
12
+ throw new SyntaxError('Module context is not provided');
13
+ }
14
+ if (isValidElement(Component)) {
15
+ res.resolve(Component);
16
+ return Component;
17
+ }
18
+ if (preprender === true) {
19
+ const Renderer = Component;
20
+ const element = _jsx(Renderer, { ...req, context: ctx });
21
+ res.resolve(element);
22
+ return element;
23
+ }
24
+ const Renderer = ({ children, ...props }) => {
25
+ const Renderer = Component;
26
+ return _jsx(ModuleContext.Provider, { value: props, children: _jsx(Renderer, { ...props, children: children }) });
27
+ };
28
+ return Renderer;
29
+ };
30
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAKjD,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,SAA6B,EAAE,UAAoB,EAC5B,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAGjC,GAAM,EAAE,GAAM,EAAO,EAAE;IACvB,MAAM,QAAQ,GAAG,kBAAkB,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,SAAS,EAAE,CAAA;IACrE,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,WAAW,CAAC,kCAAkC,CAAC,CAAA;IAC3D,CAAC;IACD,MAAM,GAAG,GAAG,aAAa,CAAkB,GAAG,CAAC,GAAG,CAAC,GAAc,EAAE,QAAQ,CAAC,CAAA;IAC5E,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAChB,MAAM,IAAI,WAAW,CAAC,gCAAgC,CAAC,CAAA;IACzD,CAAC;IACD,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACtB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,SAAyB,CAAA;QAC1C,MAAM,OAAO,GAAG,KAAC,QAAQ,OAAK,GAAG,EAAE,OAAO,EAAE,GAAG,GAAI,CAAA;QACnD,GAAG,CAAC,OAAO,CAAC,OAA6B,CAAC,CAAA;QAE1C,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,QAAQ,GAAoB,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;QAC3D,MAAM,QAAQ,GAAG,SAAyB,CAAA;QAC1C,OAAO,KAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACzC,KAAC,QAAQ,OAAK,KAAK,YAAG,QAAQ,GAAY,GACnB,CAAA;IAC3B,CAAC,CAAA;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ export * from './context.js';
2
+ export * from './components/index.js';
3
+ export * from './services/index.js';
4
+ export * from './helper.js';
5
+ export * from './navigate.js';
6
+ export * from './module.js';
7
+ export * from './router.js';
8
+ export * from './types.js';
9
+ export * from './store.js';
10
+ export * from './value.js';
11
+ export * from './consts.js';
12
+ export * from './debug.js';
13
+ export * from './app.js';
14
+ export * from './errors.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA"}
package/build/index.js ADDED
@@ -0,0 +1,15 @@
1
+ export * from './context.js';
2
+ export * from './components/index.js';
3
+ export * from './services/index.js';
4
+ export * from './helper.js';
5
+ export * from './navigate.js';
6
+ export * from './module.js';
7
+ export * from './router.js';
8
+ export * from './types.js';
9
+ export * from './store.js';
10
+ export * from './value.js';
11
+ export * from './consts.js';
12
+ export * from './debug.js';
13
+ export * from './app.js';
14
+ export * from './errors.js';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { ModuleContextParams } from './types.js';
2
+ export declare const useModule: <T extends {} = {}>() => ModuleContextParams<T>;
3
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErD,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,EAAE,YAAyC,mBAAmB,CAAC,CAAC,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { useContext } from 'react';
2
+ import { ModuleContext } from './utils/index.js';
3
+ export const useModule = () => useContext(ModuleContext);
4
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAGhD,MAAM,CAAC,MAAM,SAAS,GAAG,GAAsB,EAAE,CAAC,UAAU,CAAC,aAAa,CAA2B,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Navigator } from './types.js';
2
+ export declare const useNavigate: () => Navigator;
3
+ //# sourceMappingURL=navigate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigate.d.ts","sourceRoot":"","sources":["../src/navigate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAK3C,eAAO,MAAM,WAAW,QAAO,SA2C9B,CAAA"}
@@ -0,0 +1,39 @@
1
+ import { useMemo } from 'react';
2
+ import { useLocation, useNavigate as useNav } from 'react-router';
3
+ import { ModuleOutcome } from '@owlmeans/module';
4
+ import { useContext } from './context.js';
5
+ export const useNavigate = () => {
6
+ const context = useContext();
7
+ const navigate = useNav();
8
+ const location = useLocation();
9
+ const navigator = useMemo(() => {
10
+ const navigator = {
11
+ _navigate: navigate,
12
+ navigate: async (module, request) => {
13
+ const [url, ok] = await module.call(request);
14
+ if (ok === ModuleOutcome.Ok) {
15
+ navigate(url, {
16
+ state: {
17
+ ...module.route.route, silent: request?.silent
18
+ },
19
+ replace: request?.replace ?? false
20
+ });
21
+ }
22
+ },
23
+ go: async (alias, request) => navigator.navigate(context.module(alias), request),
24
+ press: (alias, request) => () => {
25
+ void navigator.go(alias, request);
26
+ },
27
+ back: async () => {
28
+ navigate(-1);
29
+ },
30
+ pressBack: () => () => {
31
+ void navigator.back();
32
+ },
33
+ location: () => location
34
+ };
35
+ return navigator;
36
+ }, [navigate]);
37
+ return navigator;
38
+ };
39
+ //# sourceMappingURL=navigate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigate.js","sourceRoot":"","sources":["../src/navigate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,cAAc,CAAA;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAc,EAAE;IACzC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAC5B,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAA;IACzB,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,SAAS,GAAc,OAAO,CAAC,GAAG,EAAE;QACxC,MAAM,SAAS,GAAc;YAC3B,SAAS,EAAE,QAAQ;YAEnB,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;gBAClC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAE5C,IAAI,EAAE,KAAK,aAAa,CAAC,EAAE,EAAE,CAAC;oBAC5B,QAAQ,CAAC,GAAG,EAAE;wBACZ,KAAK,EAAE;4BACL,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;yBAC/C;wBACD,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,KAAK;qBACnC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAED,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAC3B,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAuB,KAAK,CAAC,EAAE,OAAO,CAAC;YAE1E,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE;gBAC9B,KAAK,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YACnC,CAAC;YAED,IAAI,EAAE,KAAK,IAAI,EAAE;gBACf,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;YACd,CAAC;YAED,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE;gBACpB,KAAK,SAAS,CAAC,IAAI,EAAE,CAAA;YACvB,CAAC;YAED,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ;SACzB,CAAA;QAED,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { FC } from 'react';
2
+ import type { RouterModel, RouterProps } from './types.js';
3
+ export declare const Router: FC<RouterProps>;
4
+ export declare const makeRouterModel: () => RouterModel;
5
+ //# sourceMappingURL=router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAgB1D,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CA0BlC,CAAA;AAED,eAAO,MAAM,eAAe,QAAO,WAgClC,CAAA"}