piral-core 1.8.0-beta.7544 → 1.8.0-beta.7653
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/app.codegen +2 -0
- package/app.codegen.d.ts +2 -0
- package/lib/codegen.js +24 -1
- package/lib/defaults/DefaultRouteSwitch_v7.d.ts +3 -0
- package/lib/defaults/DefaultRouteSwitch_v7.js +13 -0
- package/lib/defaults/DefaultRouteSwitch_v7.js.map +1 -0
- package/lib/defaults/DefaultRouter_v7.d.ts +3 -0
- package/lib/defaults/DefaultRouter_v7.js +8 -0
- package/lib/defaults/DefaultRouter_v7.js.map +1 -0
- package/lib/defaults/navigator_v7.d.ts +6 -0
- package/lib/defaults/navigator_v7.js +84 -0
- package/lib/defaults/navigator_v7.js.map +1 -0
- package/lib/modules/element.js +6 -6
- package/lib/modules/element.js.map +1 -1
- package/lib/tools/codegen.d.ts +2 -0
- package/lib/tools/codegen.js +27 -1
- package/lib/tools/codegen.js.map +1 -1
- package/package.json +6 -5
- package/src/defaults/DefaultRouteSwitch_v7.tsx +20 -0
- package/src/defaults/DefaultRouter_v7.tsx +9 -0
- package/src/defaults/navigator_v7.tsx +97 -0
- package/src/modules/element.test.ts +3 -0
- package/src/modules/element.ts +6 -7
- package/src/tools/codegen.ts +32 -2
- package/style.css +3 -0
package/app.codegen
CHANGED
|
@@ -24,9 +24,11 @@ module.exports = function () {
|
|
|
24
24
|
debug: debug && (cfg.debugSettings || {}),
|
|
25
25
|
emulator: !!process.env.DEBUG_PILET,
|
|
26
26
|
shared: Array.isArray(cfg.shared) ? cfg.shared : [],
|
|
27
|
+
internalStyles: cfg.internalStyles || 'inline',
|
|
27
28
|
isolation: cfg.isolation || 'classic',
|
|
28
29
|
};
|
|
29
30
|
|
|
31
|
+
cg.createBasicAppFunc(imports, exports, opts);
|
|
30
32
|
cg.createDependencies(imports, exports, opts);
|
|
31
33
|
cg.createDefaultState(imports, exports, opts);
|
|
32
34
|
cg.createDebugHandler(imports, exports, opts);
|
package/app.codegen.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ import type { AppPath, GlobalState, GlobalStateContext, NavigationApi } from './
|
|
|
6
6
|
|
|
7
7
|
export const publicPath: string;
|
|
8
8
|
|
|
9
|
+
export function applyStyle(element: HTMLElement): void;
|
|
10
|
+
|
|
9
11
|
export function createNavigation(publicPath: string): NavigationApi;
|
|
10
12
|
|
|
11
13
|
export function createDefaultState(): GlobalState;
|
package/lib/codegen.js
CHANGED
|
@@ -5152,6 +5152,7 @@ var require_lib2 = __commonJS({
|
|
|
5152
5152
|
|
|
5153
5153
|
// src/tools/codegen.ts
|
|
5154
5154
|
__export(exports, {
|
|
5155
|
+
createBasicAppFunc: () => createBasicAppFunc,
|
|
5155
5156
|
createDebugHandler: () => createDebugHandler,
|
|
5156
5157
|
createDefaultState: () => createDefaultState,
|
|
5157
5158
|
createDependencies: () => createDependencies,
|
|
@@ -5243,6 +5244,25 @@ function getModulePathOrDefault(root, origin, name) {
|
|
|
5243
5244
|
return name;
|
|
5244
5245
|
}
|
|
5245
5246
|
}
|
|
5247
|
+
function createBasicAppFunc(imports, exports, opts) {
|
|
5248
|
+
switch (opts.internalStyles) {
|
|
5249
|
+
case "sheet":
|
|
5250
|
+
imports.push(`import 'piral-core/style.css';`);
|
|
5251
|
+
case "none":
|
|
5252
|
+
exports.push(`
|
|
5253
|
+
export function applyStyle(element) {}
|
|
5254
|
+
`);
|
|
5255
|
+
return;
|
|
5256
|
+
case "inline":
|
|
5257
|
+
default:
|
|
5258
|
+
exports.push(`
|
|
5259
|
+
export function applyStyle(element) {
|
|
5260
|
+
element.style.display = 'contents';
|
|
5261
|
+
}
|
|
5262
|
+
`);
|
|
5263
|
+
return;
|
|
5264
|
+
}
|
|
5265
|
+
}
|
|
5246
5266
|
function createDependencies(imports, exports, opts) {
|
|
5247
5267
|
const { root, appName, externals, shared, origin } = opts;
|
|
5248
5268
|
const assignments = [];
|
|
@@ -5295,8 +5315,10 @@ function createDefaultState(imports, exports, opts) {
|
|
|
5295
5315
|
imports.push(`import { DefaultErrorInfo } from 'piral-core/${cat}/defaults/DefaultErrorInfo.js';`, `import { DefaultLoadingIndicator } from 'piral-core/${cat}/defaults/DefaultLoadingIndicator.js';`, `import { DefaultLayout } from 'piral-core/${cat}/defaults/DefaultLayout.js';`);
|
|
5296
5316
|
if (routerVersion < 6) {
|
|
5297
5317
|
imports.push(`import { DefaultRouter } from 'piral-core/${cat}/defaults/DefaultRouter_v5.js';`, `import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v5.js';`, `import { createRedirect, createNavigation, useCurrentNavigation, useRouterContext } from 'piral-core/${cat}/defaults/navigator_v5.js'`);
|
|
5298
|
-
} else {
|
|
5318
|
+
} else if (routerVersion === 6) {
|
|
5299
5319
|
imports.push(`import { DefaultRouter } from 'piral-core/${cat}/defaults/DefaultRouter_v6.js';`, `import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v6.js';`, `import { createRedirect, createNavigation, useCurrentNavigation, useRouterContext } from 'piral-core/${cat}/defaults/navigator_v6.js'`);
|
|
5320
|
+
} else {
|
|
5321
|
+
imports.push(`import { DefaultRouter } from 'piral-core/${cat}/defaults/DefaultRouter_v7.js';`, `import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v7.js';`, `import { createRedirect, createNavigation, useCurrentNavigation, useRouterContext } from 'piral-core/${cat}/defaults/navigator_v7.js'`);
|
|
5300
5322
|
}
|
|
5301
5323
|
exports.push(`
|
|
5302
5324
|
export { createRedirect, createNavigation, useRouterContext };
|
|
@@ -5374,6 +5396,7 @@ function createRouteHandler(imports, exports, opts) {
|
|
|
5374
5396
|
}
|
|
5375
5397
|
// Annotate the CommonJS export names for ESM import in node:
|
|
5376
5398
|
0 && (module.exports = {
|
|
5399
|
+
createBasicAppFunc,
|
|
5377
5400
|
createDebugHandler,
|
|
5378
5401
|
createDefaultState,
|
|
5379
5402
|
createDependencies,
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
//@ts-ignore
|
|
3
|
+
import { Routes, Route } from 'react-router';
|
|
4
|
+
export const DefaultRouteSwitch = ({ paths, NotFound, ...props }) => {
|
|
5
|
+
return (React.createElement(Routes, { ...props },
|
|
6
|
+
paths.map(({ path, Component }) => (
|
|
7
|
+
//@ts-ignore
|
|
8
|
+
React.createElement(Route, { key: path, path: path, element: React.createElement(Component, null) }))),
|
|
9
|
+
//@ts-ignore
|
|
10
|
+
React.createElement(Route, { path: "*", element: React.createElement(NotFound, null) })));
|
|
11
|
+
};
|
|
12
|
+
DefaultRouteSwitch.displayName = 'DefaultRouteSwitch';
|
|
13
|
+
//# sourceMappingURL=DefaultRouteSwitch_v7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultRouteSwitch_v7.js","sourceRoot":"","sources":["../../src/defaults/DefaultRouteSwitch_v7.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,YAAY;AACZ,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAG7C,MAAM,CAAC,MAAM,kBAAkB,GAA+B,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAC9F,OAAO,CACL,oBAAC,MAAM,OAAK,KAAK;QACd,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QAClC,YAAY;QACZ,oBAAC,KAAK,IAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAC,SAAS,OAAG,GAAI,CACzD,CAAC;QAEA,YAAY;QACZ,oBAAC,KAAK,IAAC,IAAI,EAAC,GAAG,EAAC,OAAO,EAAE,oBAAC,QAAQ,OAAG,GAAI,CAEpC,CACV,CAAC;AACJ,CAAC,CAAC;AACF,kBAAkB,CAAC,WAAW,GAAG,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
//@ts-ignore
|
|
3
|
+
import { BrowserRouter } from 'react-router';
|
|
4
|
+
export const DefaultRouter = ({ children, publicPath }) => {
|
|
5
|
+
return React.createElement(BrowserRouter, { basename: publicPath }, children);
|
|
6
|
+
};
|
|
7
|
+
DefaultRouter.displayName = 'DefaultRouter';
|
|
8
|
+
//# sourceMappingURL=DefaultRouter_v7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultRouter_v7.js","sourceRoot":"","sources":["../../src/defaults/DefaultRouter_v7.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,MAAM,CAAC,MAAM,aAAa,GAA0B,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;IAC/E,OAAO,oBAAC,aAAa,IAAC,QAAQ,EAAE,UAAU,IAAG,QAAQ,CAAiB,CAAC;AACzE,CAAC,CAAC;AACF,aAAa,CAAC,WAAW,GAAG,eAAe,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as React from '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): () => React.JSX.Element;
|
|
6
|
+
export declare function createNavigation(publicPath: string): NavigationApi;
|
|
@@ -0,0 +1,84 @@
|
|
|
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(publicPath) {
|
|
32
|
+
const enhance = (info) => ({
|
|
33
|
+
...info,
|
|
34
|
+
location: {
|
|
35
|
+
get href() {
|
|
36
|
+
return _nav.createHref(info.location);
|
|
37
|
+
},
|
|
38
|
+
...info.location,
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
return {
|
|
42
|
+
get path() {
|
|
43
|
+
const loc = _nav ? _nav.location : location;
|
|
44
|
+
return loc.pathname;
|
|
45
|
+
},
|
|
46
|
+
get url() {
|
|
47
|
+
const loc = _nav ? _nav.location : location;
|
|
48
|
+
return `${loc.pathname}${loc.search}${loc.hash}`;
|
|
49
|
+
},
|
|
50
|
+
push(target, state) {
|
|
51
|
+
if (_nav) {
|
|
52
|
+
_nav.push(target, state);
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
replace(target, state) {
|
|
56
|
+
if (_nav) {
|
|
57
|
+
_nav.replace(target, state);
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
go(n) {
|
|
61
|
+
if (_nav) {
|
|
62
|
+
_nav.go(n);
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
block(blocker) {
|
|
66
|
+
if (!_nav) {
|
|
67
|
+
return _noop;
|
|
68
|
+
}
|
|
69
|
+
return _nav.block((transition) => blocker(enhance(transition)));
|
|
70
|
+
},
|
|
71
|
+
listen(listener) {
|
|
72
|
+
const handler = (e) => listener(enhance(e.detail));
|
|
73
|
+
window.addEventListener('piral-navigate', handler);
|
|
74
|
+
return () => {
|
|
75
|
+
window.removeEventListener('piral-navigate', handler);
|
|
76
|
+
};
|
|
77
|
+
},
|
|
78
|
+
get router() {
|
|
79
|
+
return _nav;
|
|
80
|
+
},
|
|
81
|
+
publicPath,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=navigator_v7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigator_v7.js","sourceRoot":"","sources":["../../src/defaults/navigator_v7.tsx"],"names":[],"mappings":"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"}
|
package/lib/modules/element.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ExtensionSlot } from '../components';
|
|
2
|
+
import { applyStyle } from '../../app.codegen';
|
|
2
3
|
import { tryParseJson, noop, reactifyContent, renderInDom, changeDomPortal, portalName, extensionName, slotName, isSame, contentName, componentName, defer, } from '../utils';
|
|
3
4
|
if (typeof window !== 'undefined' && 'customElements' in window) {
|
|
4
|
-
const contents = 'contents';
|
|
5
5
|
/**
|
|
6
6
|
* This is a nice abstraction allowing anyone to actually use the extension system
|
|
7
7
|
* brought by Piral. Not all props of the extension system are actually exposed.
|
|
@@ -82,7 +82,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
|
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
connectedCallback() {
|
|
85
|
-
this
|
|
85
|
+
applyStyle(this);
|
|
86
86
|
if (this.isConnected) {
|
|
87
87
|
this.dispatchEvent(new CustomEvent('render-html', {
|
|
88
88
|
bubbles: true,
|
|
@@ -129,7 +129,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
|
|
|
129
129
|
*/
|
|
130
130
|
class PiralPortal extends HTMLElement {
|
|
131
131
|
connectedCallback() {
|
|
132
|
-
this
|
|
132
|
+
applyStyle(this);
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
customElements.define(portalName, PiralPortal);
|
|
@@ -146,7 +146,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
|
|
|
146
146
|
*/
|
|
147
147
|
class PiralSlot extends HTMLElement {
|
|
148
148
|
connectedCallback() {
|
|
149
|
-
this
|
|
149
|
+
applyStyle(this);
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
152
|
customElements.define(slotName, PiralSlot);
|
|
@@ -177,7 +177,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
|
|
|
177
177
|
this.dispose = noop;
|
|
178
178
|
}
|
|
179
179
|
connectedCallback() {
|
|
180
|
-
this
|
|
180
|
+
applyStyle(this);
|
|
181
181
|
const cid = this.getAttribute('cid');
|
|
182
182
|
const content = PiralContent.contentAssignments[cid];
|
|
183
183
|
const portal = this.closest('piral-portal');
|
|
@@ -213,7 +213,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
|
|
|
213
213
|
return this.getAttribute('origin');
|
|
214
214
|
}
|
|
215
215
|
connectedCallback() {
|
|
216
|
-
this
|
|
216
|
+
applyStyle(this);
|
|
217
217
|
this.deferEvent('add-component');
|
|
218
218
|
}
|
|
219
219
|
disconnectedCallback() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/modules/element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/modules/element.ts"],"names":[],"mappings":"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"}
|
package/lib/tools/codegen.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ interface CodegenOptions {
|
|
|
7
7
|
externals: Array<string>;
|
|
8
8
|
publicPath: string;
|
|
9
9
|
isolation: 'classic' | 'modern';
|
|
10
|
+
internalStyles: 'inline' | 'sheet' | 'none';
|
|
10
11
|
debug?: {
|
|
11
12
|
viewState?: boolean;
|
|
12
13
|
loadPilets?: boolean;
|
|
@@ -17,6 +18,7 @@ interface CodegenOptions {
|
|
|
17
18
|
};
|
|
18
19
|
emulator: boolean;
|
|
19
20
|
}
|
|
21
|
+
export declare function createBasicAppFunc(imports: Array<string>, exports: Array<string>, opts: CodegenOptions): void;
|
|
20
22
|
export declare function createDependencies(imports: Array<string>, exports: Array<string>, opts: CodegenOptions): void;
|
|
21
23
|
export declare function createDefaultState(imports: Array<string>, exports: Array<string>, opts: CodegenOptions): void;
|
|
22
24
|
export declare function createDebugHandler(imports: Array<string>, exports: Array<string>, opts: CodegenOptions): void;
|
package/lib/tools/codegen.js
CHANGED
|
@@ -64,6 +64,26 @@ function getModulePathOrDefault(root, origin, name) {
|
|
|
64
64
|
return name;
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
+
export function createBasicAppFunc(imports, exports, opts) {
|
|
68
|
+
switch (opts.internalStyles) {
|
|
69
|
+
case 'sheet':
|
|
70
|
+
imports.push(`import 'piral-core/style.css';`);
|
|
71
|
+
// no return - we fall through and also include the dummy applyStyle for "none"
|
|
72
|
+
case 'none':
|
|
73
|
+
exports.push(`
|
|
74
|
+
export function applyStyle(element) {}
|
|
75
|
+
`);
|
|
76
|
+
return;
|
|
77
|
+
case 'inline':
|
|
78
|
+
default:
|
|
79
|
+
exports.push(`
|
|
80
|
+
export function applyStyle(element) {
|
|
81
|
+
element.style.display = 'contents';
|
|
82
|
+
}
|
|
83
|
+
`);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
67
87
|
export function createDependencies(imports, exports, opts) {
|
|
68
88
|
const { root, appName, externals, shared, origin } = opts;
|
|
69
89
|
const assignments = [];
|
|
@@ -116,11 +136,17 @@ export function createDefaultState(imports, exports, opts) {
|
|
|
116
136
|
const wrap = isolation === 'modern' ? 'true' : 'false';
|
|
117
137
|
imports.push(`import { DefaultErrorInfo } from 'piral-core/${cat}/defaults/DefaultErrorInfo.js';`, `import { DefaultLoadingIndicator } from 'piral-core/${cat}/defaults/DefaultLoadingIndicator.js';`, `import { DefaultLayout } from 'piral-core/${cat}/defaults/DefaultLayout.js';`);
|
|
118
138
|
if (routerVersion < 6) {
|
|
139
|
+
// React Router v5
|
|
119
140
|
imports.push(`import { DefaultRouter } from 'piral-core/${cat}/defaults/DefaultRouter_v5.js';`, `import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v5.js';`, `import { createRedirect, createNavigation, useCurrentNavigation, useRouterContext } from 'piral-core/${cat}/defaults/navigator_v5.js'`);
|
|
120
141
|
}
|
|
121
|
-
else {
|
|
142
|
+
else if (routerVersion === 6) {
|
|
143
|
+
// React Router v6
|
|
122
144
|
imports.push(`import { DefaultRouter } from 'piral-core/${cat}/defaults/DefaultRouter_v6.js';`, `import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v6.js';`, `import { createRedirect, createNavigation, useCurrentNavigation, useRouterContext } from 'piral-core/${cat}/defaults/navigator_v6.js'`);
|
|
123
145
|
}
|
|
146
|
+
else {
|
|
147
|
+
// React Router v7
|
|
148
|
+
imports.push(`import { DefaultRouter } from 'piral-core/${cat}/defaults/DefaultRouter_v7.js';`, `import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v7.js';`, `import { createRedirect, createNavigation, useCurrentNavigation, useRouterContext } from 'piral-core/${cat}/defaults/navigator_v7.js'`);
|
|
149
|
+
}
|
|
124
150
|
exports.push(`
|
|
125
151
|
export { createRedirect, createNavigation, useRouterContext };
|
|
126
152
|
`);
|
package/lib/tools/codegen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/tools/codegen.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/tools/codegen.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "piral-core",
|
|
3
|
-
"version": "1.8.0-beta.
|
|
3
|
+
"version": "1.8.0-beta.7653",
|
|
4
4
|
"description": "The core library for creating a Piral instance.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"portal",
|
|
@@ -39,7 +39,8 @@
|
|
|
39
39
|
"lib",
|
|
40
40
|
"src",
|
|
41
41
|
"app.codegen",
|
|
42
|
-
"app.codegen.d.ts"
|
|
42
|
+
"app.codegen.d.ts",
|
|
43
|
+
"style.css"
|
|
43
44
|
],
|
|
44
45
|
"funding": {
|
|
45
46
|
"type": "github",
|
|
@@ -61,8 +62,8 @@
|
|
|
61
62
|
"test": "echo \"Error: run tests from root\" && exit 1"
|
|
62
63
|
},
|
|
63
64
|
"dependencies": {
|
|
64
|
-
"piral-base": "1.8.0-beta.
|
|
65
|
-
"piral-debug-utils": "1.8.0-beta.
|
|
65
|
+
"piral-base": "1.8.0-beta.7653",
|
|
66
|
+
"piral-debug-utils": "1.8.0-beta.7653",
|
|
66
67
|
"zustand": "^3.0.0"
|
|
67
68
|
},
|
|
68
69
|
"devDependencies": {
|
|
@@ -82,5 +83,5 @@
|
|
|
82
83
|
"react-router-dom",
|
|
83
84
|
"tslib"
|
|
84
85
|
],
|
|
85
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "bcb81e936bf3e74c0a503382076ef1b8617e263f"
|
|
86
87
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
//@ts-ignore
|
|
3
|
+
import { Routes, Route } from 'react-router';
|
|
4
|
+
import { RouteSwitchProps } from '../types';
|
|
5
|
+
|
|
6
|
+
export const DefaultRouteSwitch: React.FC<RouteSwitchProps> = ({ paths, NotFound, ...props }) => {
|
|
7
|
+
return (
|
|
8
|
+
<Routes {...props}>
|
|
9
|
+
{paths.map(({ path, Component }) => (
|
|
10
|
+
//@ts-ignore
|
|
11
|
+
<Route key={path} path={path} element={<Component />} />
|
|
12
|
+
))}
|
|
13
|
+
{
|
|
14
|
+
//@ts-ignore
|
|
15
|
+
<Route path="*" element={<NotFound />} />
|
|
16
|
+
}
|
|
17
|
+
</Routes>
|
|
18
|
+
);
|
|
19
|
+
};
|
|
20
|
+
DefaultRouteSwitch.displayName = 'DefaultRouteSwitch';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
//@ts-ignore
|
|
3
|
+
import { BrowserRouter } from 'react-router';
|
|
4
|
+
import { RouterProps } from '../types';
|
|
5
|
+
|
|
6
|
+
export const DefaultRouter: React.FC<RouterProps> = ({ children, publicPath }) => {
|
|
7
|
+
return <BrowserRouter basename={publicPath}>{children}</BrowserRouter>;
|
|
8
|
+
};
|
|
9
|
+
DefaultRouter.displayName = 'DefaultRouter';
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
//@ts-ignore
|
|
3
|
+
import { UNSAFE_NavigationContext as RouterContext, Navigate, useLocation } from 'react-router';
|
|
4
|
+
import { NavigationApi } from '../types';
|
|
5
|
+
|
|
6
|
+
let _nav: any;
|
|
7
|
+
const _noop = () => {};
|
|
8
|
+
|
|
9
|
+
export function useRouterContext() {
|
|
10
|
+
return React.useContext(RouterContext);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function useCurrentNavigation() {
|
|
14
|
+
const ctx: any = useRouterContext();
|
|
15
|
+
const location = useLocation();
|
|
16
|
+
|
|
17
|
+
React.useEffect(() => {
|
|
18
|
+
if (_nav) {
|
|
19
|
+
window.dispatchEvent(
|
|
20
|
+
new CustomEvent('piral-navigate', {
|
|
21
|
+
detail: {
|
|
22
|
+
location,
|
|
23
|
+
},
|
|
24
|
+
}),
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
}, [location]);
|
|
28
|
+
|
|
29
|
+
React.useEffect(() => {
|
|
30
|
+
_nav = ctx.navigator;
|
|
31
|
+
|
|
32
|
+
return () => {
|
|
33
|
+
_nav = undefined;
|
|
34
|
+
};
|
|
35
|
+
}, []);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function createRedirect(to: string) {
|
|
39
|
+
return () => <Navigate to={to} />;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function createNavigation(publicPath: string): NavigationApi {
|
|
43
|
+
const enhance = (info) => ({
|
|
44
|
+
...info,
|
|
45
|
+
location: {
|
|
46
|
+
get href() {
|
|
47
|
+
return _nav.createHref(info.location);
|
|
48
|
+
},
|
|
49
|
+
...info.location,
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
return {
|
|
54
|
+
get path() {
|
|
55
|
+
const loc = _nav ? _nav.location : location;
|
|
56
|
+
return loc.pathname;
|
|
57
|
+
},
|
|
58
|
+
get url() {
|
|
59
|
+
const loc = _nav ? _nav.location : location;
|
|
60
|
+
return `${loc.pathname}${loc.search}${loc.hash}`;
|
|
61
|
+
},
|
|
62
|
+
push(target, state) {
|
|
63
|
+
if (_nav) {
|
|
64
|
+
_nav.push(target, state);
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
replace(target, state) {
|
|
68
|
+
if (_nav) {
|
|
69
|
+
_nav.replace(target, state);
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
go(n) {
|
|
73
|
+
if (_nav) {
|
|
74
|
+
_nav.go(n);
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
block(blocker) {
|
|
78
|
+
if (!_nav) {
|
|
79
|
+
return _noop;
|
|
80
|
+
}
|
|
81
|
+
return _nav.block((transition) => blocker(enhance(transition)));
|
|
82
|
+
},
|
|
83
|
+
listen(listener) {
|
|
84
|
+
const handler = (e: CustomEvent) => listener(enhance(e.detail));
|
|
85
|
+
|
|
86
|
+
window.addEventListener('piral-navigate', handler);
|
|
87
|
+
|
|
88
|
+
return () => {
|
|
89
|
+
window.removeEventListener('piral-navigate', handler);
|
|
90
|
+
};
|
|
91
|
+
},
|
|
92
|
+
get router() {
|
|
93
|
+
return _nav;
|
|
94
|
+
},
|
|
95
|
+
publicPath,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
@@ -8,6 +8,9 @@ import { createActions } from '../state';
|
|
|
8
8
|
import { renderElement } from './element';
|
|
9
9
|
|
|
10
10
|
vitest.mock('../../app.codegen', () => ({
|
|
11
|
+
applyStyle: vitest.fn(element => {
|
|
12
|
+
element.style.display = 'contents';
|
|
13
|
+
}),
|
|
11
14
|
createNavigation: vitest.fn(publicPath => ({
|
|
12
15
|
publicPath,
|
|
13
16
|
})),
|
package/src/modules/element.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ExtensionSlot } from '../components';
|
|
2
|
+
import { applyStyle } from '../../app.codegen';
|
|
2
3
|
import { Disposable, GlobalStateContext, BaseExtensionSlotProps } from '../types';
|
|
3
4
|
import {
|
|
4
5
|
tryParseJson,
|
|
@@ -20,8 +21,6 @@ export interface Updatable {
|
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
if (typeof window !== 'undefined' && 'customElements' in window) {
|
|
23
|
-
const contents = 'contents';
|
|
24
|
-
|
|
25
24
|
/**
|
|
26
25
|
* This is a nice abstraction allowing anyone to actually use the extension system
|
|
27
26
|
* brought by Piral. Not all props of the extension system are actually exposed.
|
|
@@ -113,7 +112,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
|
|
|
113
112
|
}
|
|
114
113
|
|
|
115
114
|
connectedCallback() {
|
|
116
|
-
this
|
|
115
|
+
applyStyle(this);
|
|
117
116
|
|
|
118
117
|
if (this.isConnected) {
|
|
119
118
|
this.dispatchEvent(
|
|
@@ -168,7 +167,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
|
|
|
168
167
|
*/
|
|
169
168
|
class PiralPortal extends HTMLElement {
|
|
170
169
|
connectedCallback() {
|
|
171
|
-
this
|
|
170
|
+
applyStyle(this);
|
|
172
171
|
}
|
|
173
172
|
}
|
|
174
173
|
|
|
@@ -187,7 +186,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
|
|
|
187
186
|
*/
|
|
188
187
|
class PiralSlot extends HTMLElement {
|
|
189
188
|
connectedCallback() {
|
|
190
|
-
this
|
|
189
|
+
applyStyle(this);
|
|
191
190
|
}
|
|
192
191
|
}
|
|
193
192
|
|
|
@@ -220,7 +219,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
|
|
|
220
219
|
static contentAssignments = {};
|
|
221
220
|
|
|
222
221
|
connectedCallback() {
|
|
223
|
-
this
|
|
222
|
+
applyStyle(this);
|
|
224
223
|
const cid = this.getAttribute('cid');
|
|
225
224
|
const content = PiralContent.contentAssignments[cid];
|
|
226
225
|
const portal = this.closest('piral-portal');
|
|
@@ -264,7 +263,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
|
|
|
264
263
|
}
|
|
265
264
|
|
|
266
265
|
connectedCallback() {
|
|
267
|
-
this
|
|
266
|
+
applyStyle(this);
|
|
268
267
|
this.deferEvent('add-component');
|
|
269
268
|
}
|
|
270
269
|
|
package/src/tools/codegen.ts
CHANGED
|
@@ -86,6 +86,7 @@ interface CodegenOptions {
|
|
|
86
86
|
externals: Array<string>;
|
|
87
87
|
publicPath: string;
|
|
88
88
|
isolation: 'classic' | 'modern';
|
|
89
|
+
internalStyles: 'inline' | 'sheet' | 'none';
|
|
89
90
|
debug?: {
|
|
90
91
|
viewState?: boolean;
|
|
91
92
|
loadPilets?: boolean;
|
|
@@ -97,6 +98,27 @@ interface CodegenOptions {
|
|
|
97
98
|
emulator: boolean;
|
|
98
99
|
}
|
|
99
100
|
|
|
101
|
+
export function createBasicAppFunc(imports: Array<string>, exports: Array<string>, opts: CodegenOptions) {
|
|
102
|
+
switch (opts.internalStyles) {
|
|
103
|
+
case 'sheet':
|
|
104
|
+
imports.push(`import 'piral-core/style.css';`);
|
|
105
|
+
// no return - we fall through and also include the dummy applyStyle for "none"
|
|
106
|
+
case 'none':
|
|
107
|
+
exports.push(`
|
|
108
|
+
export function applyStyle(element) {}
|
|
109
|
+
`);
|
|
110
|
+
return;
|
|
111
|
+
case 'inline':
|
|
112
|
+
default:
|
|
113
|
+
exports.push(`
|
|
114
|
+
export function applyStyle(element) {
|
|
115
|
+
element.style.display = 'contents';
|
|
116
|
+
}
|
|
117
|
+
`);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
100
122
|
export function createDependencies(imports: Array<string>, exports: Array<string>, opts: CodegenOptions) {
|
|
101
123
|
const { root, appName, externals, shared, origin } = opts;
|
|
102
124
|
const assignments: Array<string> = [];
|
|
@@ -142,7 +164,6 @@ export function createDependencies(imports: Array<string>, exports: Array<string
|
|
|
142
164
|
if (asyncAssignments.length) {
|
|
143
165
|
imports.push(`import { registerModule } from 'piral-base'`);
|
|
144
166
|
assignments.push(...asyncAssignments);
|
|
145
|
-
|
|
146
167
|
}
|
|
147
168
|
|
|
148
169
|
exports.push(`
|
|
@@ -164,17 +185,26 @@ export function createDefaultState(imports: Array<string>, exports: Array<string
|
|
|
164
185
|
);
|
|
165
186
|
|
|
166
187
|
if (routerVersion < 6) {
|
|
188
|
+
// React Router v5
|
|
167
189
|
imports.push(
|
|
168
190
|
`import { DefaultRouter } from 'piral-core/${cat}/defaults/DefaultRouter_v5.js';`,
|
|
169
191
|
`import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v5.js';`,
|
|
170
192
|
`import { createRedirect, createNavigation, useCurrentNavigation, useRouterContext } from 'piral-core/${cat}/defaults/navigator_v5.js'`,
|
|
171
193
|
);
|
|
172
|
-
} else {
|
|
194
|
+
} else if (routerVersion === 6) {
|
|
195
|
+
// React Router v6
|
|
173
196
|
imports.push(
|
|
174
197
|
`import { DefaultRouter } from 'piral-core/${cat}/defaults/DefaultRouter_v6.js';`,
|
|
175
198
|
`import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v6.js';`,
|
|
176
199
|
`import { createRedirect, createNavigation, useCurrentNavigation, useRouterContext } from 'piral-core/${cat}/defaults/navigator_v6.js'`,
|
|
177
200
|
);
|
|
201
|
+
} else {
|
|
202
|
+
// React Router v7
|
|
203
|
+
imports.push(
|
|
204
|
+
`import { DefaultRouter } from 'piral-core/${cat}/defaults/DefaultRouter_v7.js';`,
|
|
205
|
+
`import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v7.js';`,
|
|
206
|
+
`import { createRedirect, createNavigation, useCurrentNavigation, useRouterContext } from 'piral-core/${cat}/defaults/navigator_v7.js'`,
|
|
207
|
+
);
|
|
178
208
|
}
|
|
179
209
|
|
|
180
210
|
exports.push(`
|
package/style.css
ADDED