piral-core 0.15.0-beta.4633 → 0.15.0-beta.4672

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 (48) hide show
  1. package/app.codegen +6 -135
  2. package/esm/components/ForeignComponentContainer.js +1 -1
  3. package/esm/components/ForeignComponentContainer.js.map +1 -1
  4. package/esm/defaults/navigator_v5.d.ts +6 -0
  5. package/esm/defaults/navigator_v5.js +77 -0
  6. package/esm/defaults/navigator_v5.js.map +1 -0
  7. package/esm/defaults/navigator_v6.d.ts +6 -0
  8. package/esm/defaults/navigator_v6.js +73 -0
  9. package/esm/defaults/navigator_v6.js.map +1 -0
  10. package/esm/modules/element.js +46 -2
  11. package/esm/modules/element.js.map +1 -1
  12. package/esm/types/navigation.d.ts +6 -2
  13. package/esm/utils/extension.d.ts +1 -1
  14. package/esm/utils/extension.js +1 -1
  15. package/esm/utils/extension.js.map +1 -1
  16. package/esm/utils/foreign.d.ts +3 -0
  17. package/esm/utils/foreign.js +5 -2
  18. package/esm/utils/foreign.js.map +1 -1
  19. package/lib/components/ForeignComponentContainer.js +1 -1
  20. package/lib/components/ForeignComponentContainer.js.map +1 -1
  21. package/lib/defaults/navigator_v5.d.ts +6 -0
  22. package/lib/defaults/navigator_v5.js +84 -0
  23. package/lib/defaults/navigator_v5.js.map +1 -0
  24. package/lib/defaults/navigator_v6.d.ts +6 -0
  25. package/lib/defaults/navigator_v6.js +80 -0
  26. package/lib/defaults/navigator_v6.js.map +1 -0
  27. package/lib/modules/element.js +45 -1
  28. package/lib/modules/element.js.map +1 -1
  29. package/lib/types/navigation.d.ts +6 -2
  30. package/lib/utils/extension.d.ts +1 -1
  31. package/lib/utils/extension.js +1 -1
  32. package/lib/utils/extension.js.map +1 -1
  33. package/lib/utils/foreign.d.ts +3 -0
  34. package/lib/utils/foreign.js +6 -3
  35. package/lib/utils/foreign.js.map +1 -1
  36. package/package.json +5 -4
  37. package/src/components/ForeignComponentContainer.test.tsx +1 -1
  38. package/src/components/ForeignComponentContainer.tsx +2 -1
  39. package/src/defaults/navigator_v5.tsx +96 -0
  40. package/src/defaults/navigator_v6.tsx +93 -0
  41. package/src/modules/element.test.ts +0 -10
  42. package/src/modules/element.ts +60 -2
  43. package/src/types/api.ts +1 -0
  44. package/src/types/navigation.ts +6 -2
  45. package/src/utils/extension.test.tsx +1 -1
  46. package/src/utils/extension.tsx +3 -2
  47. package/src/utils/foreign.test.ts +5 -5
  48. package/src/utils/foreign.ts +6 -2
package/app.codegen CHANGED
@@ -65,132 +65,20 @@ function createDefaultState(imports, exports) {
65
65
  imports.push(
66
66
  `import { DefaultRouter } from 'piral-core/${cat}/defaults/DefaultRouter_v5';`,
67
67
  `import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v5';`,
68
- `import { __RouterContext as RouterContext } from 'react-router'`,
68
+ `import { createRedirect, createNavigation, useCurrentNavigation, useRouterContext } from 'piral-core/${cat}/defaults/navigator_v5'`,
69
69
  );
70
- exports.push(`
71
- function useCurrentNavigation() {
72
- const ctx = useRouterContext();
73
-
74
- useEffect(() => {
75
- _nav = ctx.history;
76
- return () => {
77
- _nav = undefined;
78
- };
79
- }, []);
80
- }
81
- `);
82
-
83
- exports.push(`
84
- export function createNavigation() {
85
- const enhance = info => ({
86
- ...info,
87
- location: {
88
- get href() {
89
- return _nav.createHref(info.location);
90
- },
91
- ...info.location,
92
- },
93
- });
94
-
95
- return {
96
- push(target, state) {
97
- if (_nav) {
98
- _nav.push(target, state);
99
- }
100
- },
101
- replace(target, state) {
102
- if (_nav) {
103
- _nav.replace(target, state);
104
- }
105
- },
106
- go(n) {
107
- if (_nav) {
108
- _nav.go(n);
109
- }
110
- },
111
- block(blocker) {
112
- if (!_nav) {
113
- return _noop;
114
- }
115
- return _nav.block((location, action) => blocker(enhance({ location, action })));
116
- },
117
- listen(listener) {
118
- if (!_nav) {
119
- return _noop;
120
- }
121
- return _nav.listen((location, action) => listener(enhance({ location, action })));
122
- },
123
- router: {
124
- history: _nav,
125
- },
126
- };
127
- }
128
- `);
129
70
  } else {
130
71
  imports.push(
131
72
  `import { DefaultRouter } from 'piral-core/${cat}/defaults/DefaultRouter_v6';`,
132
73
  `import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v6';`,
133
- `import { UNSAFE_NavigationContext as RouterContext } from 'react-router'`,
74
+ `import { createRedirect, createNavigation, useCurrentNavigation, useRouterContext } from 'piral-core/${cat}/defaults/navigator_v6'`,
134
75
  );
135
- exports.push(`
136
- function useCurrentNavigation() {
137
- const ctx = useRouterContext();
138
-
139
- useEffect(() => {
140
- _nav = ctx.navigator;
141
- return () => {
142
- _nav = undefined;
143
- };
144
- }, []);
145
- }
146
- `);
147
-
148
- exports.push(`
149
- export function createNavigation() {
150
- const enhance = info => ({
151
- ...info,
152
- location: {
153
- get href() {
154
- return _nav.createHref(info.location);
155
- },
156
- ...info.location,
157
- },
158
- });
159
-
160
- return {
161
- push(target, state) {
162
- if (_nav) {
163
- _nav.push(target, state);
164
- }
165
- },
166
- replace(target, state) {
167
- if (_nav) {
168
- _nav.replace(target, state);
169
- }
170
- },
171
- go(n) {
172
- if (_nav) {
173
- _nav.go(n);
174
- }
175
- },
176
- block(blocker) {
177
- if (!_nav) {
178
- return _noop;
179
- }
180
- return _nav.block(transition => blocker(enhance(transition)));
181
- },
182
- listen(listener) {
183
- if (!_nav) {
184
- return _noop;
185
- }
186
- return _nav.listen(update => listener(enhance(update)));
187
- },
188
- router: _nav,
189
- };
190
- }
191
- `);
192
76
  }
193
77
 
78
+ exports.push(`
79
+ export { createRedirect, createNavigation, useRouterContext };
80
+ `);
81
+
194
82
  exports.push(`
195
83
  export const publicPath = ${JSON.stringify(publicPath)};
196
84
  `);
@@ -246,8 +134,6 @@ function createRouteHandler(imports, exports) {
246
134
  const assignments = [];
247
135
 
248
136
  imports.push(
249
- `import { useContext, useEffect, createElement } from 'react';`,
250
- `import { Redirect } from 'react-router';`,
251
137
  `import { useGlobalStateContext } from 'piral-core/${cat}/hooks/globalState';`,
252
138
  );
253
139
 
@@ -262,18 +148,6 @@ function createRouteHandler(imports, exports) {
262
148
  assignments.push('return paths;');
263
149
  }
264
150
 
265
- exports.push(`
266
- export function createRedirect(to) {
267
- return () => createElement(Redirect, { to });
268
- }
269
- `);
270
-
271
- exports.push(`
272
- export function useRouterContext() {
273
- return useContext(RouterContext);
274
- }
275
- `);
276
-
277
151
  exports.push(`
278
152
  export function useRouteFilter(paths) {
279
153
  ${assignments.join('\n')}
@@ -293,9 +167,6 @@ module.exports = function () {
293
167
  return `
294
168
  ${imports.join('\n')}
295
169
 
296
- let _nav;
297
- const _noop = () => {};
298
-
299
170
  ${exports.join('\n')}
300
171
  `;
301
172
  };
@@ -47,7 +47,7 @@ export class ForeignComponentContainer extends React.Component {
47
47
  }
48
48
  render() {
49
49
  const { $portalId } = this.props;
50
- return React.createElement("div", { "data-portal-id": $portalId, ref: this.setNode });
50
+ return React.createElement("piral-portal", { pid: $portalId, ref: this.setNode });
51
51
  }
52
52
  }
53
53
  //# sourceMappingURL=ForeignComponentContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ForeignComponentContainer.js","sourceRoot":"","sources":["../../src/components/ForeignComponentContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAUpC,MAAM,OAAO,yBAA6B,SAAQ,KAAK,CAAC,SAA4C;IAApG;;QACU,WAAM,GAAyB,EAAE,CAAC;QAGlC,YAAO,GAAG,CAAC,EAAe,EAAE,EAAE;YACpC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YAClC,EAAE,CAAC,eAAe,EAAE,CAAC;YACrB,UAAU,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC;QAEM,YAAO,GAAG,CAAC,IAAoB,EAAE,EAAE;YACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC;IA6CJ,CAAC;IA3CC,iBAAiB;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACxD,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;QAE7B,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;YACzB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC3D;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,kBAAkB;QAChB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACnC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACxD,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;QAE9B,IAAI,OAAO,KAAK,QAAQ,EAAE;YACxB,QAAQ,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxC,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACrC;aAAM,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE;YACzB,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACpD;IACH,CAAC;IAED,oBAAoB;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAClC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QAE/B,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE;YAC3B,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC9D;QAED,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,OAAO,+CAAqB,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,GAAI,CAAC;IAC/D,CAAC;CACF"}
1
+ {"version":3,"file":"ForeignComponentContainer.js","sourceRoot":"","sources":["../../src/components/ForeignComponentContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAWpC,MAAM,OAAO,yBAA6B,SAAQ,KAAK,CAAC,SAA4C;IAApG;;QACU,WAAM,GAAyB,EAAE,CAAC;QAGlC,YAAO,GAAG,CAAC,EAAe,EAAE,EAAE;YACpC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YAClC,EAAE,CAAC,eAAe,EAAE,CAAC;YACrB,UAAU,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC;QAEM,YAAO,GAAG,CAAC,IAAoB,EAAE,EAAE;YACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC;IA6CJ,CAAC;IA3CC,iBAAiB;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACxD,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;QAE7B,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;YACzB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC3D;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,kBAAkB;QAChB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACnC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACxD,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;QAE9B,IAAI,OAAO,KAAK,QAAQ,EAAE;YACxB,QAAQ,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxC,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACrC;aAAM,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE;YACzB,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACpD;IACH,CAAC;IAED,oBAAoB;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAClC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QAE/B,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE;YAC3B,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC9D;QAED,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,OAAO,sCAAc,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,GAAI,CAAC;IAC7D,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { NavigationApi } from '../types';
3
+ export declare function useRouterContext(): import("react-router").RouteComponentProps<{}, import("react-router").StaticContext, unknown>;
4
+ export declare function useCurrentNavigation(): void;
5
+ export declare function createRedirect(to: string): () => JSX.Element;
6
+ export declare function createNavigation(): NavigationApi;
@@ -0,0 +1,77 @@
1
+ import * as React from 'react';
2
+ import { __RouterContext as RouterContext, Redirect, useLocation } from 'react-router';
3
+ let _nav;
4
+ const _noop = () => { };
5
+ export function useRouterContext() {
6
+ return React.useContext(RouterContext);
7
+ }
8
+ export function useCurrentNavigation() {
9
+ const ctx = useRouterContext();
10
+ const location = useLocation();
11
+ React.useEffect(() => {
12
+ if (_nav) {
13
+ window.dispatchEvent(new CustomEvent('piral-navigate', {
14
+ detail: {
15
+ location,
16
+ },
17
+ }));
18
+ }
19
+ }, [location]);
20
+ React.useEffect(() => {
21
+ _nav = ctx.history;
22
+ return () => {
23
+ _nav = undefined;
24
+ };
25
+ }, []);
26
+ }
27
+ export function createRedirect(to) {
28
+ return () => React.createElement(Redirect, { to: to });
29
+ }
30
+ export function createNavigation() {
31
+ const enhance = (location, action) => ({
32
+ action,
33
+ location: Object.assign({ get href() {
34
+ return _nav.createHref(location);
35
+ } }, location),
36
+ });
37
+ return {
38
+ get path() {
39
+ if (_nav) {
40
+ return _nav.location.pathname;
41
+ }
42
+ return location.pathname;
43
+ },
44
+ push(target, state) {
45
+ if (_nav) {
46
+ _nav.push(target, state);
47
+ }
48
+ },
49
+ replace(target, state) {
50
+ if (_nav) {
51
+ _nav.replace(target, state);
52
+ }
53
+ },
54
+ go(n) {
55
+ if (_nav) {
56
+ _nav.go(n);
57
+ }
58
+ },
59
+ block(blocker) {
60
+ if (!_nav) {
61
+ return _noop;
62
+ }
63
+ return _nav.block((location, action) => blocker(enhance(location, action)));
64
+ },
65
+ listen(listener) {
66
+ const handler = (e) => listener(enhance(e.detail, _nav.action));
67
+ window.addEventListener('piral-navigate', handler);
68
+ return () => {
69
+ window.removeEventListener('piral-navigate', handler);
70
+ };
71
+ },
72
+ router: {
73
+ history: _nav,
74
+ },
75
+ };
76
+ }
77
+ //# sourceMappingURL=navigator_v5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigator_v5.js","sourceRoot":"","sources":["../../src/defaults/navigator_v5.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { NavigationApi } from '../types';
3
+ export declare function useRouterContext(): unknown;
4
+ export declare function useCurrentNavigation(): void;
5
+ export declare function createRedirect(to: string): () => JSX.Element;
6
+ export declare function createNavigation(): NavigationApi;
@@ -0,0 +1,73 @@
1
+ import * as React from 'react';
2
+ //@ts-ignore
3
+ import { UNSAFE_NavigationContext as RouterContext, Navigate, useLocation } from 'react-router';
4
+ let _nav;
5
+ const _noop = () => { };
6
+ export function useRouterContext() {
7
+ return React.useContext(RouterContext);
8
+ }
9
+ export function useCurrentNavigation() {
10
+ const ctx = useRouterContext();
11
+ const location = useLocation();
12
+ React.useEffect(() => {
13
+ if (_nav) {
14
+ window.dispatchEvent(new CustomEvent('piral-navigate', {
15
+ detail: {
16
+ location,
17
+ },
18
+ }));
19
+ }
20
+ }, [location]);
21
+ React.useEffect(() => {
22
+ _nav = ctx.navigator;
23
+ return () => {
24
+ _nav = undefined;
25
+ };
26
+ }, []);
27
+ }
28
+ export function createRedirect(to) {
29
+ return () => React.createElement(Navigate, { to: to });
30
+ }
31
+ export function createNavigation() {
32
+ const enhance = (info) => (Object.assign(Object.assign({}, info), { location: Object.assign({ get href() {
33
+ return _nav.createHref(info.location);
34
+ } }, info.location) }));
35
+ return {
36
+ get path() {
37
+ if (_nav) {
38
+ return _nav.location.pathname;
39
+ }
40
+ return location.pathname;
41
+ },
42
+ push(target, state) {
43
+ if (_nav) {
44
+ _nav.push(target, state);
45
+ }
46
+ },
47
+ replace(target, state) {
48
+ if (_nav) {
49
+ _nav.replace(target, state);
50
+ }
51
+ },
52
+ go(n) {
53
+ if (_nav) {
54
+ _nav.go(n);
55
+ }
56
+ },
57
+ block(blocker) {
58
+ if (!_nav) {
59
+ return _noop;
60
+ }
61
+ return _nav.block((transition) => blocker(enhance(transition)));
62
+ },
63
+ listen(listener) {
64
+ const handler = (e) => listener(enhance(e.detail));
65
+ window.addEventListener('piral-navigate', handler);
66
+ return () => {
67
+ window.removeEventListener('piral-navigate', handler);
68
+ };
69
+ },
70
+ router: _nav,
71
+ };
72
+ }
73
+ //# sourceMappingURL=navigator_v6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigator_v6.js","sourceRoot":"","sources":["../../src/defaults/navigator_v6.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,16 @@
1
1
  import { ExtensionSlot } from '../components';
2
- import { tryParseJson, noop, reactifyContent, renderInDom, changeDomPortal } from '../utils';
2
+ import { tryParseJson, noop, reactifyContent, renderInDom, changeDomPortal, portalName, extensionName, slotName, } from '../utils';
3
3
  if (typeof window !== 'undefined' && 'customElements' in window) {
4
+ /**
5
+ * This is a nice abstraction allowing anyone to actually use the extension system
6
+ * brought by Piral. Not all props of the extension system are actually exposed.
7
+ *
8
+ * Usage:
9
+ *
10
+ * ```
11
+ * <piral-extension name="my-ext-name"></piral-extension>
12
+ * ```
13
+ */
4
14
  class PiralExtension extends HTMLElement {
5
15
  constructor() {
6
16
  super(...arguments);
@@ -35,6 +45,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
35
45
  this.update(this.props);
36
46
  }
37
47
  connectedCallback() {
48
+ this.style.display = 'contents';
38
49
  if (this.isConnected) {
39
50
  this.dispatchEvent(new CustomEvent('render-html', {
40
51
  bubbles: true,
@@ -64,7 +75,40 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
64
75
  return ['name', 'params'];
65
76
  }
66
77
  }
67
- customElements.define('piral-extension', PiralExtension);
78
+ customElements.define(extensionName, PiralExtension);
79
+ /**
80
+ * This is a boundary to host elements from other frameworks - effectively vanishing
81
+ * at runtime.
82
+ *
83
+ * Usage:
84
+ *
85
+ * ```
86
+ * <piral-portal pid="host-1234"></piral-portal>
87
+ * ```
88
+ */
89
+ class PiralPortal extends HTMLElement {
90
+ connectedCallback() {
91
+ this.style.display = 'contents';
92
+ }
93
+ }
94
+ customElements.define(portalName, PiralPortal);
95
+ /**
96
+ * This is a virtual element to aggregate rendering from other frameworks, mostly
97
+ * used like piral-portal, but without context-hosting capabilities. This would
98
+ * be used exclusively within a foreign framework, not from Piral to initiate.
99
+ *
100
+ * Usage:
101
+ *
102
+ * ```
103
+ * <piral-slot></piral-slot>
104
+ * ```
105
+ */
106
+ class PiralSlot extends HTMLElement {
107
+ connectedCallback() {
108
+ this.style.display = 'contents';
109
+ }
110
+ }
111
+ customElements.define(slotName, PiralSlot);
68
112
  }
69
113
  export function renderElement(context, element, props) {
70
114
  if (typeof window !== 'undefined') {
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/modules/element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/modules/element.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@ export interface NavigationLocation {
34
34
  * On the initial location, this will be the string default. On all subsequent
35
35
  * locations, this string will be a unique identifier.
36
36
  */
37
- key: string;
37
+ key?: string;
38
38
  }
39
39
  export interface NavigationListener {
40
40
  (update: NavigationUpdate): void;
@@ -47,7 +47,7 @@ export interface NavigationUpdate {
47
47
  location: NavigationLocation;
48
48
  }
49
49
  export interface NavigationTransition extends NavigationUpdate {
50
- retry(): void;
50
+ retry?(): void;
51
51
  }
52
52
  export interface NavigationApi {
53
53
  /**
@@ -78,6 +78,10 @@ export interface NavigationApi {
78
78
  * @returns The disposable for stopping the block.
79
79
  */
80
80
  listen(listener: NavigationListener): Disposable;
81
+ /**
82
+ * Gets the current path.
83
+ */
84
+ path: string;
81
85
  /**
82
86
  * The original router behind the navigation.
83
87
  */
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { ExtensionComponentProps, WrappedComponent } from '../types';
2
+ import type { ExtensionComponentProps, WrappedComponent } from '../types';
3
3
  /**
4
4
  * Transforms the given component to an extension component.
5
5
  * @param Component The component to transform.
@@ -10,7 +10,7 @@ const SlotCarrier = ({ nodes }) => {
10
10
  return () => removeAll(nodes);
11
11
  }, [nodes]);
12
12
  if (nodes.length) {
13
- return React.createElement("slot", { ref: host });
13
+ return React.createElement("piral-slot", { ref: host });
14
14
  }
15
15
  return null;
16
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/utils/extension.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,SAAS,SAAS,CAAC,KAAuB;IACxC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACzC,CAAC;AAMD,MAAM,WAAW,GAA+B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAmB,CAAC;IAE7C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;;QACnB,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;QAC/B,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,OAAO,8BAAM,GAAG,EAAE,IAAI,GAAI,CAAC;KAC5B;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAI,SAAiC;IAC9D,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAC,SAAS,oBAAK,KAAK,CAAC,MAAM,EAAI,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,UAAiC;IAC/D,MAAM,KAAK,GAAqB,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjF,SAAS,CAAC,KAAK,CAAC,CAAC;IACjB,OAAO,oBAAC,WAAW,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/utils/extension.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,SAAS,SAAS,CAAC,KAAuB;IACxC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACzC,CAAC;AAMD,MAAM,WAAW,GAA+B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAmB,CAAC;IAE7C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;;QACnB,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;QAC/B,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,OAAO,oCAAY,GAAG,EAAE,IAAI,GAAI,CAAC;KAClC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAI,SAAiC;IAC9D,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAC,SAAS,oBAAK,KAAK,CAAC,MAAM,EAAI,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,UAAiC;IAC/D,MAAM,KAAK,GAAqB,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjF,SAAS,CAAC,KAAK,CAAC,CAAC;IACjB,OAAO,oBAAC,WAAW,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC;AACvC,CAAC"}
@@ -1,5 +1,8 @@
1
1
  import { ComponentType, ReactPortal } from 'react';
2
2
  import { GlobalStateContext, ForeignComponent } from '../types';
3
+ export declare const extensionName = "piral-extension";
4
+ export declare const portalName = "piral-portal";
5
+ export declare const slotName = "piral-slot";
3
6
  export declare function attachDomPortal<TProps>(id: string, context: GlobalStateContext, element: HTMLElement | ShadowRoot, component: ComponentType<TProps>, props: TProps): [string, ReactPortal];
4
7
  export declare function changeDomPortal<TProps>(id: string, current: ReactPortal, context: GlobalStateContext, element: HTMLElement | ShadowRoot, component: ComponentType<TProps>, props: TProps): [string, ReactPortal];
5
8
  export declare function convertComponent<T extends {
@@ -1,5 +1,8 @@
1
1
  import { createElement } from 'react';
2
2
  import { createPortal } from 'react-dom';
3
+ export const extensionName = 'piral-extension';
4
+ export const portalName = 'piral-portal';
5
+ export const slotName = 'piral-slot';
3
6
  export function attachDomPortal(id, context, element, component, props) {
4
7
  const portal = createPortal(createElement(component, props), element);
5
8
  context.showPortal(id, portal);
@@ -17,10 +20,10 @@ export function convertComponent(converter, component) {
17
20
  return converter(component);
18
21
  }
19
22
  export function renderInDom(context, element, component, props) {
20
- const portalId = 'data-portal-id';
23
+ const portalId = 'pid';
21
24
  let parent = element;
22
25
  while (parent) {
23
- if (parent instanceof Element && parent.hasAttribute(portalId)) {
26
+ if (parent instanceof Element && parent.localName === portalName && parent.hasAttribute(portalId)) {
24
27
  const id = parent.getAttribute(portalId);
25
28
  return attachDomPortal(id, context, element, component, props);
26
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"foreign.js","sourceRoot":"","sources":["../../src/utils/foreign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA8B,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,MAAM,UAAU,eAAe,CAC7B,EAAU,EACV,OAA2B,EAC3B,OAAiC,EACjC,SAAgC,EAChC,KAAa;IAEb,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,OAAsB,CAAC,CAAC;IACrF,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,EAAU,EACV,OAAoB,EACpB,OAA2B,EAC3B,OAAiC,EACjC,SAAgC,EAChC,KAAa;IAEb,MAAM,IAAI,GAAG,YAAY,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,OAAsB,CAAC,CAAC;IACnF,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,SAAgD,EAChD,SAAY;IAEZ,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;QACnC,MAAM,IAAI,KAAK,CAAC,uCAAuC,SAAS,CAAC,IAAI,eAAe,CAAC,CAAC;KACvF;IAED,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,OAA2B,EAC3B,OAAiC,EACjC,SAAgC,EAChC,KAAa;IAEb,MAAM,QAAQ,GAAG,gBAAgB,CAAC;IAClC,IAAI,MAAM,GAAS,OAAO,CAAC;IAE3B,OAAO,MAAM,EAAE;QACb,IAAI,MAAM,YAAY,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;YAC9D,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACzC,OAAO,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;SAChE;QAED,MAAM,GAAG,MAAM,CAAC,UAAU,IAAK,MAAqB,CAAC,IAAI,CAAC;KAC3D;IAED,OAAO,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"foreign.js","sourceRoot":"","sources":["../../src/utils/foreign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA8B,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,MAAM,CAAC,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAC/C,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAC;AACzC,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC;AAErC,MAAM,UAAU,eAAe,CAC7B,EAAU,EACV,OAA2B,EAC3B,OAAiC,EACjC,SAAgC,EAChC,KAAa;IAEb,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,OAAsB,CAAC,CAAC;IACrF,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,EAAU,EACV,OAAoB,EACpB,OAA2B,EAC3B,OAAiC,EACjC,SAAgC,EAChC,KAAa;IAEb,MAAM,IAAI,GAAG,YAAY,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,OAAsB,CAAC,CAAC;IACnF,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,SAAgD,EAChD,SAAY;IAEZ,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;QACnC,MAAM,IAAI,KAAK,CAAC,uCAAuC,SAAS,CAAC,IAAI,eAAe,CAAC,CAAC;KACvF;IAED,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,OAA2B,EAC3B,OAAiC,EACjC,SAAgC,EAChC,KAAa;IAEb,MAAM,QAAQ,GAAG,KAAK,CAAC;IACvB,IAAI,MAAM,GAAS,OAAO,CAAC;IAE3B,OAAO,MAAM,EAAE;QACb,IAAI,MAAM,YAAY,OAAO,IAAI,MAAM,CAAC,SAAS,KAAK,UAAU,IAAI,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;YACjG,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACzC,OAAO,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;SAChE;QAED,MAAM,GAAG,MAAM,CAAC,UAAU,IAAK,MAAqB,CAAC,IAAI,CAAC;KAC3D;IAED,OAAO,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACrE,CAAC"}
@@ -50,7 +50,7 @@ class ForeignComponentContainer extends React.Component {
50
50
  }
51
51
  render() {
52
52
  const { $portalId } = this.props;
53
- return React.createElement("div", { "data-portal-id": $portalId, ref: this.setNode });
53
+ return React.createElement("piral-portal", { pid: $portalId, ref: this.setNode });
54
54
  }
55
55
  }
56
56
  exports.ForeignComponentContainer = ForeignComponentContainer;
@@ -1 +1 @@
1
- {"version":3,"file":"ForeignComponentContainer.js","sourceRoot":"","sources":["../../src/components/ForeignComponentContainer.tsx"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,2CAAoC;AAUpC,MAAa,yBAA6B,SAAQ,KAAK,CAAC,SAA4C;IAApG;;QACU,WAAM,GAAyB,EAAE,CAAC;QAGlC,YAAO,GAAG,CAAC,EAAe,EAAE,EAAE;YACpC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YAClC,EAAE,CAAC,eAAe,EAAE,CAAC;YACrB,UAAU,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC;QAEM,YAAO,GAAG,CAAC,IAAoB,EAAE,EAAE;YACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC;IA6CJ,CAAC;IA3CC,iBAAiB;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACxD,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;QAE7B,IAAI,IAAI,IAAI,IAAA,mBAAM,EAAC,KAAK,CAAC,EAAE;YACzB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC3D;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,kBAAkB;QAChB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACnC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACxD,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;QAE9B,IAAI,OAAO,KAAK,QAAQ,EAAE;YACxB,QAAQ,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxC,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACrC;aAAM,IAAI,IAAA,mBAAM,EAAC,MAAM,CAAC,EAAE;YACzB,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACpD;IACH,CAAC;IAED,oBAAoB;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAClC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QAE/B,IAAI,IAAI,IAAI,IAAA,mBAAM,EAAC,OAAO,CAAC,EAAE;YAC3B,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC9D;QAED,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,OAAO,+CAAqB,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,GAAI,CAAC;IAC/D,CAAC;CACF;AAzDD,8DAyDC"}
1
+ {"version":3,"file":"ForeignComponentContainer.js","sourceRoot":"","sources":["../../src/components/ForeignComponentContainer.tsx"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,2CAAoC;AAWpC,MAAa,yBAA6B,SAAQ,KAAK,CAAC,SAA4C;IAApG;;QACU,WAAM,GAAyB,EAAE,CAAC;QAGlC,YAAO,GAAG,CAAC,EAAe,EAAE,EAAE;YACpC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YAClC,EAAE,CAAC,eAAe,EAAE,CAAC;YACrB,UAAU,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC;QAEM,YAAO,GAAG,CAAC,IAAoB,EAAE,EAAE;YACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC;IA6CJ,CAAC;IA3CC,iBAAiB;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACxD,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;QAE7B,IAAI,IAAI,IAAI,IAAA,mBAAM,EAAC,KAAK,CAAC,EAAE;YACzB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC3D;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,kBAAkB;QAChB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACnC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACxD,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;QAE9B,IAAI,OAAO,KAAK,QAAQ,EAAE;YACxB,QAAQ,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxC,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACrC;aAAM,IAAI,IAAA,mBAAM,EAAC,MAAM,CAAC,EAAE;YACzB,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACpD;IACH,CAAC;IAED,oBAAoB;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAClC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QAE/B,IAAI,IAAI,IAAI,IAAA,mBAAM,EAAC,OAAO,CAAC,EAAE;YAC3B,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC9D;QAED,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,OAAO,sCAAc,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,GAAI,CAAC;IAC7D,CAAC;CACF;AAzDD,8DAyDC"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { NavigationApi } from '../types';
3
+ export declare function useRouterContext(): import("react-router").RouteComponentProps<{}, import("react-router").StaticContext, unknown>;
4
+ export declare function useCurrentNavigation(): void;
5
+ export declare function createRedirect(to: string): () => JSX.Element;
6
+ export declare function createNavigation(): NavigationApi;