@pactor-app/app 1.10.0 → 1.12.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.
- package/README.md +13 -1
- package/dist/index.cjs +8 -6
- package/dist/index.d.cts +9 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.js +8 -6
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -83,7 +83,19 @@ const Page = createPactorPage({ loader, services, permissions: ['customer:view']
|
|
|
83
83
|
```
|
|
84
84
|
|
|
85
85
|
- 交互层(confirm / message / overlay)与整应用模式一致;多实例状态互相隔离
|
|
86
|
-
-
|
|
86
|
+
- 站内导航:`Link` / `Breadcrumb` 渲染原生 `<a href>` 并拦截站内左键点击,`navigate` 动作与链接点击共用同一实现——缺省退化为 `location.assign` 整页跳转,可经工厂选项 `navigate` 注入宿主路由(SPA 导航):
|
|
87
|
+
|
|
88
|
+
```tsx
|
|
89
|
+
// Next.js(App Router)
|
|
90
|
+
const router = useRouter();
|
|
91
|
+
const Page = createPactorPage({ navigate: (to) => router.push(to) });
|
|
92
|
+
|
|
93
|
+
// React Router
|
|
94
|
+
const navigate = useNavigate();
|
|
95
|
+
const Page = createPactorPage({ navigate: (to) => navigate(to) });
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
需要完全自定义链接渲染(prefetch、scroll restoration 等)时,可经 `components` 注册表覆盖同名组件,样式子组件从 `@pactor-app/ui/ui` 导入(`BreadcrumbLink` 支持 `render` prop 换成宿主路由组件)。
|
|
87
99
|
- `route.params` / `route.query` 经 props 纯数据注入(如 Next.js 的 `searchParams`)
|
|
88
100
|
|
|
89
101
|
## 文档
|
package/dist/index.cjs
CHANGED
|
@@ -738,14 +738,14 @@ var import_runtime5 = require("@pactor-app/runtime");
|
|
|
738
738
|
var import_react6 = require("react");
|
|
739
739
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
740
740
|
function createPactorPage(options = {}) {
|
|
741
|
+
const navigate = options.navigate ?? ((to) => {
|
|
742
|
+
if (typeof window !== "undefined") {
|
|
743
|
+
window.location.assign(to);
|
|
744
|
+
}
|
|
745
|
+
});
|
|
741
746
|
const assembly = createPactorAssembly({
|
|
742
747
|
...options,
|
|
743
|
-
|
|
744
|
-
navigate: (to) => {
|
|
745
|
-
if (typeof window !== "undefined") {
|
|
746
|
-
window.location.assign(to);
|
|
747
|
-
}
|
|
748
|
-
}
|
|
748
|
+
navigate
|
|
749
749
|
});
|
|
750
750
|
let permission;
|
|
751
751
|
if (options.permission !== void 0) {
|
|
@@ -769,6 +769,8 @@ function createPactorPage(options = {}) {
|
|
|
769
769
|
services: assembly.services,
|
|
770
770
|
capabilities: assembly.capabilities,
|
|
771
771
|
permission,
|
|
772
|
+
// route.navigate 与 DSL navigate 动作共用同一实现(宿主注入或缺省整页跳转)
|
|
773
|
+
router: { navigate },
|
|
772
774
|
http: assembly.httpAdapter,
|
|
773
775
|
route: { params: route?.params ?? {}, query: route?.query ?? {} },
|
|
774
776
|
locale: options.locale ?? "zh-CN",
|
package/dist/index.d.cts
CHANGED
|
@@ -49,7 +49,8 @@ interface PactorAssemblyOptions {
|
|
|
49
49
|
httpAdapter?: PactorHttpHooks;
|
|
50
50
|
/**
|
|
51
51
|
* DSL `navigate` 动作的跳转实现(两种形态的差异点):
|
|
52
|
-
* 整应用模式 = 导航桥 push(react-router);嵌入模式 =
|
|
52
|
+
* 整应用模式 = 导航桥 push(react-router);嵌入模式 = 宿主注入或
|
|
53
|
+
* 缺省 location.assign(embedded 层兜底)
|
|
53
54
|
*/
|
|
54
55
|
navigate: (to: string) => void;
|
|
55
56
|
}
|
|
@@ -328,6 +329,13 @@ interface PactorPageProps {
|
|
|
328
329
|
* (无路由、无外壳布局);route 上下文经 props 纯数据注入。
|
|
329
330
|
*/
|
|
330
331
|
interface PactorPageOptions extends Omit<PactorAssemblyOptions, 'navigate'> {
|
|
332
|
+
/**
|
|
333
|
+
* 站内导航实现(D2:可选注入宿主路由,缺省退化)——如 Next.js
|
|
334
|
+
* `router.push` / react-router `navigate`;缺省以 `location.assign`
|
|
335
|
+
* 整页跳转。DSL `navigate` 动作与链接类组件的站内点击(`route.navigate`)
|
|
336
|
+
* 均走此实现。
|
|
337
|
+
*/
|
|
338
|
+
navigate?: (to: string) => void;
|
|
331
339
|
/** 资源加载器(按 pageId 加载页面时需要) */
|
|
332
340
|
loader?: DslResourceLoader;
|
|
333
341
|
/** 权限码列表(缺省全部放行;细粒度控制可传 permission 适配器) */
|
package/dist/index.d.ts
CHANGED
|
@@ -49,7 +49,8 @@ interface PactorAssemblyOptions {
|
|
|
49
49
|
httpAdapter?: PactorHttpHooks;
|
|
50
50
|
/**
|
|
51
51
|
* DSL `navigate` 动作的跳转实现(两种形态的差异点):
|
|
52
|
-
* 整应用模式 = 导航桥 push(react-router);嵌入模式 =
|
|
52
|
+
* 整应用模式 = 导航桥 push(react-router);嵌入模式 = 宿主注入或
|
|
53
|
+
* 缺省 location.assign(embedded 层兜底)
|
|
53
54
|
*/
|
|
54
55
|
navigate: (to: string) => void;
|
|
55
56
|
}
|
|
@@ -328,6 +329,13 @@ interface PactorPageProps {
|
|
|
328
329
|
* (无路由、无外壳布局);route 上下文经 props 纯数据注入。
|
|
329
330
|
*/
|
|
330
331
|
interface PactorPageOptions extends Omit<PactorAssemblyOptions, 'navigate'> {
|
|
332
|
+
/**
|
|
333
|
+
* 站内导航实现(D2:可选注入宿主路由,缺省退化)——如 Next.js
|
|
334
|
+
* `router.push` / react-router `navigate`;缺省以 `location.assign`
|
|
335
|
+
* 整页跳转。DSL `navigate` 动作与链接类组件的站内点击(`route.navigate`)
|
|
336
|
+
* 均走此实现。
|
|
337
|
+
*/
|
|
338
|
+
navigate?: (to: string) => void;
|
|
331
339
|
/** 资源加载器(按 pageId 加载页面时需要) */
|
|
332
340
|
loader?: DslResourceLoader;
|
|
333
341
|
/** 权限码列表(缺省全部放行;细粒度控制可传 permission 适配器) */
|
package/dist/index.js
CHANGED
|
@@ -738,14 +738,14 @@ import {
|
|
|
738
738
|
} from "react";
|
|
739
739
|
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
740
740
|
function createPactorPage(options = {}) {
|
|
741
|
+
const navigate = options.navigate ?? ((to) => {
|
|
742
|
+
if (typeof window !== "undefined") {
|
|
743
|
+
window.location.assign(to);
|
|
744
|
+
}
|
|
745
|
+
});
|
|
741
746
|
const assembly = createPactorAssembly({
|
|
742
747
|
...options,
|
|
743
|
-
|
|
744
|
-
navigate: (to) => {
|
|
745
|
-
if (typeof window !== "undefined") {
|
|
746
|
-
window.location.assign(to);
|
|
747
|
-
}
|
|
748
|
-
}
|
|
748
|
+
navigate
|
|
749
749
|
});
|
|
750
750
|
let permission;
|
|
751
751
|
if (options.permission !== void 0) {
|
|
@@ -769,6 +769,8 @@ function createPactorPage(options = {}) {
|
|
|
769
769
|
services: assembly.services,
|
|
770
770
|
capabilities: assembly.capabilities,
|
|
771
771
|
permission,
|
|
772
|
+
// route.navigate 与 DSL navigate 动作共用同一实现(宿主注入或缺省整页跳转)
|
|
773
|
+
router: { navigate },
|
|
772
774
|
http: assembly.httpAdapter,
|
|
773
775
|
route: { params: route?.params ?? {}, query: route?.query ?? {} },
|
|
774
776
|
locale: options.locale ?? "zh-CN",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pactor-app/app",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.12.0",
|
|
4
4
|
"description": "Pactor application: one-stop composition layer (createPactorApplication) wiring loader, bootstrap, registries, router, layout, interaction and page runtimes",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pactor",
|
|
@@ -46,14 +46,14 @@
|
|
|
46
46
|
"access": "public"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@pactor-app/core": "1.
|
|
50
|
-
"@pactor-app/
|
|
51
|
-
"@pactor-app/
|
|
52
|
-
"@pactor-app/
|
|
53
|
-
"@pactor-app/router": "1.
|
|
54
|
-
"@pactor-app/
|
|
55
|
-
"@pactor-app/
|
|
56
|
-
"@pactor-app/
|
|
49
|
+
"@pactor-app/core": "1.12.0",
|
|
50
|
+
"@pactor-app/permission": "1.12.0",
|
|
51
|
+
"@pactor-app/expression": "1.12.0",
|
|
52
|
+
"@pactor-app/resource": "1.12.0",
|
|
53
|
+
"@pactor-app/router": "1.12.0",
|
|
54
|
+
"@pactor-app/schema": "1.12.0",
|
|
55
|
+
"@pactor-app/runtime": "1.12.0",
|
|
56
|
+
"@pactor-app/ui": "1.12.0"
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
59
|
"react": ">=18",
|