@nocobase/plugin-flow-engine 2.1.0-beta.15 → 2.1.0-beta.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/ai-employees/nathan/index.d.ts +10 -0
- package/dist/ai/ai-employees/nathan/index.js +41 -0
- package/dist/ai/ai-employees/nathan/prompt.md +132 -0
- package/dist/ai/ai-employees/nathan/skills/frontend-developer/SKILLS.md +69 -0
- package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/getContextApis.js +2 -2
- package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/getContextEnvs.js +2 -2
- package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/getContextVars.js +2 -2
- package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/lintAndTestJS.js +2 -2
- package/dist/ai/docs/runjs/context/block-model.md +35 -35
- package/dist/ai/docs/runjs/context/collection-field.md +53 -51
- package/dist/ai/docs/runjs/context/collection.md +39 -39
- package/dist/ai/docs/runjs/context/data-source-manager.md +40 -30
- package/dist/ai/docs/runjs/context/data-source.md +52 -44
- package/dist/ai/docs/runjs/context/element.md +44 -38
- package/dist/ai/docs/runjs/context/exit-all.md +37 -35
- package/dist/ai/docs/runjs/context/exit.md +38 -35
- package/dist/ai/docs/runjs/context/filter-manager.md +36 -30
- package/dist/ai/docs/runjs/context/form.md +57 -57
- package/dist/ai/docs/runjs/context/get-model.md +22 -21
- package/dist/ai/docs/runjs/context/get-value.md +20 -19
- package/dist/ai/docs/runjs/context/get-var.md +61 -55
- package/dist/ai/docs/runjs/context/i18n.md +17 -14
- package/dist/ai/docs/runjs/context/import-async.md +333 -45
- package/dist/ai/docs/runjs/context/init-resource.md +20 -20
- package/dist/ai/docs/runjs/context/libs.md +31 -31
- package/dist/ai/docs/runjs/context/location.md +34 -31
- package/dist/ai/docs/runjs/context/logger.md +41 -40
- package/dist/ai/docs/runjs/context/make-resource.md +27 -26
- package/dist/ai/docs/runjs/context/message.md +42 -41
- package/dist/ai/docs/runjs/context/modal.md +44 -44
- package/dist/ai/docs/runjs/context/model.md +36 -33
- package/dist/ai/docs/runjs/context/notification.md +41 -40
- package/dist/ai/docs/runjs/context/off.md +14 -14
- package/dist/ai/docs/runjs/context/on.md +30 -29
- package/dist/ai/docs/runjs/context/open-view.md +40 -40
- package/dist/ai/docs/runjs/context/render.md +37 -32
- package/dist/ai/docs/runjs/context/request.md +46 -45
- package/dist/ai/docs/runjs/context/require-async.md +28 -25
- package/dist/ai/docs/runjs/context/resource.md +34 -34
- package/dist/ai/docs/runjs/context/route.md +36 -34
- package/dist/ai/docs/runjs/context/router.md +43 -31
- package/dist/ai/docs/runjs/context/set-value.md +18 -17
- package/dist/ai/docs/runjs/context/t.md +20 -17
- package/dist/ai/docs/runjs/context/view.md +49 -46
- package/dist/ai/docs/runjs/document.md +1 -0
- package/dist/ai/docs/runjs/import-modules.md +32 -32
- package/dist/ai/docs/runjs/index.md +13 -13
- package/dist/ai/docs/runjs/jsx.md +19 -19
- package/dist/ai/docs/runjs/model/form-block-model.md +1 -3
- package/dist/ai/docs/runjs/render.md +15 -15
- package/dist/ai/docs/runjs/resource/api-resource.md +53 -53
- package/dist/ai/docs/runjs/resource/multi-record-resource.md +64 -64
- package/dist/ai/docs/runjs/resource/single-record-resource.md +55 -55
- package/dist/ai/docs/runjs/resource/sql-resource.md +57 -57
- package/dist/ai/docs/runjs/window.md +5 -5
- package/dist/client/index.js +1 -1
- package/dist/externalVersion.js +11 -10
- package/dist/node_modules/ses/dist/ses.cjs +1 -1
- package/dist/node_modules/ses/package.json +1 -1
- package/dist/node_modules/zod/index.cjs +1 -1
- package/dist/node_modules/zod/package.json +1 -1
- package/dist/server/flow-surfaces/action-scope.d.ts +38 -0
- package/dist/server/flow-surfaces/action-scope.js +152 -0
- package/dist/server/flow-surfaces/apply/compiler.d.ts +13 -0
- package/dist/server/flow-surfaces/apply/compiler.js +969 -0
- package/dist/server/flow-surfaces/apply/layout.d.ts +34 -0
- package/dist/server/flow-surfaces/apply/layout.js +175 -0
- package/dist/server/flow-surfaces/apply/matching.d.ts +16 -0
- package/dist/server/flow-surfaces/apply/matching.js +181 -0
- package/dist/server/flow-surfaces/approval/blueprint-service.d.ts +84 -0
- package/dist/server/flow-surfaces/approval/blueprint-service.js +589 -0
- package/dist/server/flow-surfaces/approval/blueprint.d.ts +21 -0
- package/dist/server/flow-surfaces/approval/blueprint.js +187 -0
- package/dist/server/flow-surfaces/approval/builder.d.ts +225 -0
- package/dist/server/flow-surfaces/approval/builder.js +384 -0
- package/dist/server/flow-surfaces/approval/catalog-specs.d.ts +33 -0
- package/dist/server/flow-surfaces/approval/catalog-specs.js +156 -0
- package/dist/server/flow-surfaces/approval/index.d.ts +14 -0
- package/dist/server/flow-surfaces/approval/index.js +40 -0
- package/dist/server/flow-surfaces/approval/runtime-config.d.ts +44 -0
- package/dist/server/flow-surfaces/approval/runtime-config.js +299 -0
- package/dist/server/flow-surfaces/approval/semantic-use.d.ts +23 -0
- package/dist/server/flow-surfaces/approval/semantic-use.js +155 -0
- package/dist/server/flow-surfaces/association-title-field.d.ts +20 -0
- package/dist/server/flow-surfaces/association-title-field.js +158 -0
- package/dist/server/flow-surfaces/blueprint/compile-blocks.d.ts +14 -0
- package/dist/server/flow-surfaces/blueprint/compile-blocks.js +1007 -0
- package/dist/server/flow-surfaces/blueprint/compile-plan.d.ts +13 -0
- package/dist/server/flow-surfaces/blueprint/compile-plan.js +308 -0
- package/dist/server/flow-surfaces/blueprint/compile-reaction.d.ts +11 -0
- package/dist/server/flow-surfaces/blueprint/compile-reaction.js +72 -0
- package/dist/server/flow-surfaces/blueprint/defaults.d.ts +26 -0
- package/dist/server/flow-surfaces/blueprint/defaults.js +133 -0
- package/dist/server/flow-surfaces/blueprint/index.d.ts +12 -0
- package/dist/server/flow-surfaces/blueprint/index.js +44 -0
- package/dist/server/flow-surfaces/blueprint/normalize-document.d.ts +10 -0
- package/dist/server/flow-surfaces/blueprint/normalize-document.js +416 -0
- package/dist/server/flow-surfaces/blueprint/private-utils.d.ts +26 -0
- package/dist/server/flow-surfaces/blueprint/private-utils.js +182 -0
- package/dist/server/flow-surfaces/blueprint/public-types.d.ts +193 -0
- package/dist/server/flow-surfaces/blueprint/public-types.js +24 -0
- package/dist/server/flow-surfaces/builder.d.ts +211 -0
- package/dist/server/flow-surfaces/builder.js +1029 -0
- package/dist/server/flow-surfaces/catalog-smart.d.ts +18 -0
- package/dist/server/flow-surfaces/catalog-smart.js +239 -0
- package/dist/server/flow-surfaces/catalog-smart.projector.d.ts +15 -0
- package/dist/server/flow-surfaces/catalog-smart.projector.js +157 -0
- package/dist/server/flow-surfaces/catalog-smart.types.d.ts +99 -0
- package/dist/server/flow-surfaces/catalog-smart.types.js +24 -0
- package/dist/server/flow-surfaces/catalog.d.ts +78 -0
- package/dist/server/flow-surfaces/catalog.js +3496 -0
- package/dist/server/flow-surfaces/chart-config.d.ts +121 -0
- package/dist/server/flow-surfaces/chart-config.js +1394 -0
- package/dist/server/flow-surfaces/compose-compiler.d.ts +108 -0
- package/dist/server/flow-surfaces/compose-compiler.js +167 -0
- package/dist/server/flow-surfaces/compose-runtime.d.ts +93 -0
- package/dist/server/flow-surfaces/compose-runtime.js +375 -0
- package/dist/server/flow-surfaces/configure-options.d.ts +23 -0
- package/dist/server/flow-surfaces/configure-options.js +827 -0
- package/dist/server/flow-surfaces/constants.d.ts +351 -0
- package/dist/server/flow-surfaces/constants.js +104 -0
- package/dist/server/flow-surfaces/context.d.ts +72 -0
- package/dist/server/flow-surfaces/context.js +556 -0
- package/dist/server/flow-surfaces/contract-guard.d.ts +19 -0
- package/dist/server/flow-surfaces/contract-guard.js +402 -0
- package/dist/server/flow-surfaces/default-action-popup.d.ts +63 -0
- package/dist/server/flow-surfaces/default-action-popup.js +322 -0
- package/dist/server/flow-surfaces/default-block-actions.d.ts +32 -0
- package/dist/server/flow-surfaces/default-block-actions.js +185 -0
- package/dist/server/flow-surfaces/errors.d.ts +47 -0
- package/dist/server/flow-surfaces/errors.js +145 -0
- package/dist/server/flow-surfaces/executor.d.ts +23 -0
- package/dist/server/flow-surfaces/executor.js +132 -0
- package/dist/server/flow-surfaces/field-binding-registry.d.ts +23 -0
- package/dist/server/flow-surfaces/field-binding-registry.js +391 -0
- package/dist/server/flow-surfaces/field-semantics.d.ts +15 -0
- package/dist/server/flow-surfaces/field-semantics.js +81 -0
- package/dist/server/flow-surfaces/filter-group.d.ts +15 -0
- package/dist/server/flow-surfaces/filter-group.js +94 -0
- package/dist/server/flow-surfaces/index.d.ts +11 -0
- package/dist/server/flow-surfaces/index.js +243 -0
- package/dist/server/flow-surfaces/locator.d.ts +28 -0
- package/dist/server/flow-surfaces/locator.js +240 -0
- package/dist/server/flow-surfaces/node-use-sets.d.ts +15 -0
- package/dist/server/flow-surfaces/node-use-sets.js +131 -0
- package/dist/server/flow-surfaces/payload-shape.d.ts +9 -0
- package/dist/server/flow-surfaces/payload-shape.js +61 -0
- package/dist/server/flow-surfaces/placement.d.ts +33 -0
- package/dist/server/flow-surfaces/placement.js +195 -0
- package/dist/server/flow-surfaces/planning/action-specs.d.ts +179 -0
- package/dist/server/flow-surfaces/planning/action-specs.js +190 -0
- package/dist/server/flow-surfaces/planning/compiler.d.ts +37 -0
- package/dist/server/flow-surfaces/planning/compiler.js +376 -0
- package/dist/server/flow-surfaces/planning/context.d.ts +30 -0
- package/dist/server/flow-surfaces/planning/context.js +139 -0
- package/dist/server/flow-surfaces/planning/created-keys.d.ts +34 -0
- package/dist/server/flow-surfaces/planning/created-keys.js +375 -0
- package/dist/server/flow-surfaces/planning/key-kind.d.ts +11 -0
- package/dist/server/flow-surfaces/planning/key-kind.js +88 -0
- package/dist/server/flow-surfaces/planning/key-persistence.d.ts +34 -0
- package/dist/server/flow-surfaces/planning/key-persistence.js +148 -0
- package/dist/server/flow-surfaces/planning/key-registry.d.ts +40 -0
- package/dist/server/flow-surfaces/planning/key-registry.js +206 -0
- package/dist/server/flow-surfaces/planning/runtime.d.ts +37 -0
- package/dist/server/flow-surfaces/planning/runtime.js +259 -0
- package/dist/server/flow-surfaces/planning/step-link.d.ts +14 -0
- package/dist/server/flow-surfaces/planning/step-link.js +104 -0
- package/dist/server/flow-surfaces/planning/types.d.ts +55 -0
- package/dist/server/flow-surfaces/planning/types.js +24 -0
- package/dist/server/flow-surfaces/public-data-surface-default-filter.d.ts +20 -0
- package/dist/server/flow-surfaces/public-data-surface-default-filter.js +111 -0
- package/dist/server/flow-surfaces/reaction/errors.d.ts +20 -0
- package/dist/server/flow-surfaces/reaction/errors.js +69 -0
- package/dist/server/flow-surfaces/reaction/field-value.d.ts +34 -0
- package/dist/server/flow-surfaces/reaction/field-value.js +181 -0
- package/dist/server/flow-surfaces/reaction/fingerprint.d.ts +16 -0
- package/dist/server/flow-surfaces/reaction/fingerprint.js +71 -0
- package/dist/server/flow-surfaces/reaction/linkage.d.ts +136 -0
- package/dist/server/flow-surfaces/reaction/linkage.js +882 -0
- package/dist/server/flow-surfaces/reaction/meta.d.ts +11 -0
- package/dist/server/flow-surfaces/reaction/meta.js +451 -0
- package/dist/server/flow-surfaces/reaction/registry.d.ts +156 -0
- package/dist/server/flow-surfaces/reaction/registry.js +206 -0
- package/dist/server/flow-surfaces/reaction/resolver.d.ts +22 -0
- package/dist/server/flow-surfaces/reaction/resolver.js +202 -0
- package/dist/server/flow-surfaces/reaction/types.d.ts +241 -0
- package/dist/server/flow-surfaces/reaction/types.js +24 -0
- package/dist/server/flow-surfaces/reaction/utils.d.ts +17 -0
- package/dist/server/flow-surfaces/reaction/utils.js +67 -0
- package/dist/server/flow-surfaces/reaction/value-expr.d.ts +15 -0
- package/dist/server/flow-surfaces/reaction/value-expr.js +209 -0
- package/dist/server/flow-surfaces/reference-guards.d.ts +19 -0
- package/dist/server/flow-surfaces/reference-guards.js +103 -0
- package/dist/server/flow-surfaces/route-sync.d.ts +47 -0
- package/dist/server/flow-surfaces/route-sync.js +392 -0
- package/dist/server/flow-surfaces/service-helpers.d.ts +42 -0
- package/dist/server/flow-surfaces/service-helpers.js +377 -0
- package/dist/server/flow-surfaces/service-utils.d.ts +108 -0
- package/dist/server/flow-surfaces/service-utils.js +811 -0
- package/dist/server/flow-surfaces/service.d.ts +773 -0
- package/dist/server/flow-surfaces/service.js +13008 -0
- package/dist/server/flow-surfaces/support-matrix.d.ts +31 -0
- package/dist/server/flow-surfaces/support-matrix.js +259 -0
- package/dist/server/flow-surfaces/surface-context.d.ts +52 -0
- package/dist/server/flow-surfaces/surface-context.js +437 -0
- package/dist/server/flow-surfaces/template-compatibility.d.ts +42 -0
- package/dist/server/flow-surfaces/template-compatibility.js +189 -0
- package/dist/server/flow-surfaces/template-display.d.ts +20 -0
- package/dist/server/flow-surfaces/template-display.js +289 -0
- package/dist/server/flow-surfaces/template-service-utils.d.ts +62 -0
- package/dist/server/flow-surfaces/template-service-utils.js +281 -0
- package/dist/server/flow-surfaces/types.d.ts +288 -0
- package/dist/server/flow-surfaces/types.js +24 -0
- package/dist/server/plugin.js +2 -0
- package/dist/swagger/flow-surfaces.d.ts +5964 -0
- package/dist/swagger/flow-surfaces.examples.d.ts +1533 -0
- package/dist/swagger/flow-surfaces.examples.js +1758 -0
- package/dist/swagger/flow-surfaces.js +5315 -0
- package/dist/swagger/flow-surfaces.template-action-docs.d.ts +62 -0
- package/dist/swagger/flow-surfaces.template-action-docs.js +121 -0
- package/dist/swagger/flow-surfaces.template-schemas.d.ts +239 -0
- package/dist/swagger/flow-surfaces.template-schemas.js +255 -0
- package/dist/swagger/index.d.ts +5969 -0
- package/dist/swagger/index.js +50 -0
- package/package.json +2 -2
- /package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/getContextApis.d.ts +0 -0
- /package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/getContextEnvs.d.ts +0 -0
- /package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/getContextVars.d.ts +0 -0
- /package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/lintAndTestJS.d.ts +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
import type { FlowSurfaceMutateOp, FlowSurfaceNodeSpec, FlowSurfaceWriteTarget } from '../types';
|
|
10
|
+
type CompiledNodeRefLike = {
|
|
11
|
+
uidRef: any;
|
|
12
|
+
};
|
|
13
|
+
type SyncChildrenResultLike = {
|
|
14
|
+
childClientKeyRefs: Record<string, any>;
|
|
15
|
+
finalItemRefs: CompiledNodeRefLike[];
|
|
16
|
+
itemsChanged: boolean;
|
|
17
|
+
itemsSpecified: boolean;
|
|
18
|
+
};
|
|
19
|
+
export declare function omitLayoutProps(props?: Record<string, any>): Record<string, any>;
|
|
20
|
+
export declare function buildAutoLayout(itemRefs: any[]): {
|
|
21
|
+
rows: {
|
|
22
|
+
[k: string]: any[][];
|
|
23
|
+
};
|
|
24
|
+
sizes: {
|
|
25
|
+
[k: string]: number[];
|
|
26
|
+
};
|
|
27
|
+
rowOrder: string[];
|
|
28
|
+
};
|
|
29
|
+
declare function didItemRefsChange(currentChildren: FlowSurfaceNodeSpec[], desiredRefs: CompiledNodeRefLike[]): boolean;
|
|
30
|
+
export declare function emitLayoutOp(ops: FlowSurfaceMutateOp[], target: FlowSurfaceWriteTarget, currentNode: any, desiredNode: Pick<FlowSurfaceNodeSpec, 'props' | 'use'>, childSync: SyncChildrenResultLike): void;
|
|
31
|
+
export declare function emitMoveOps(ops: FlowSurfaceMutateOp[], desiredRefs: CompiledNodeRefLike[]): void;
|
|
32
|
+
export declare function emitMoveTabOps(ops: FlowSurfaceMutateOp[], desiredRefs: CompiledNodeRefLike[]): void;
|
|
33
|
+
export declare function emitMovePopupTabOps(ops: FlowSurfaceMutateOp[], desiredRefs: CompiledNodeRefLike[]): void;
|
|
34
|
+
export { didItemRefsChange };
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
var __create = Object.create;
|
|
11
|
+
var __defProp = Object.defineProperty;
|
|
12
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
13
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
14
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
15
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
16
|
+
var __export = (target, all) => {
|
|
17
|
+
for (var name in all)
|
|
18
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
19
|
+
};
|
|
20
|
+
var __copyProps = (to, from, except, desc) => {
|
|
21
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
22
|
+
for (let key of __getOwnPropNames(from))
|
|
23
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
24
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
25
|
+
}
|
|
26
|
+
return to;
|
|
27
|
+
};
|
|
28
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
29
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
30
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
31
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
32
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
33
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
34
|
+
mod
|
|
35
|
+
));
|
|
36
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
37
|
+
var layout_exports = {};
|
|
38
|
+
__export(layout_exports, {
|
|
39
|
+
buildAutoLayout: () => buildAutoLayout,
|
|
40
|
+
didItemRefsChange: () => didItemRefsChange,
|
|
41
|
+
emitLayoutOp: () => emitLayoutOp,
|
|
42
|
+
emitMoveOps: () => emitMoveOps,
|
|
43
|
+
emitMovePopupTabOps: () => emitMovePopupTabOps,
|
|
44
|
+
emitMoveTabOps: () => emitMoveTabOps,
|
|
45
|
+
omitLayoutProps: () => omitLayoutProps
|
|
46
|
+
});
|
|
47
|
+
module.exports = __toCommonJS(layout_exports);
|
|
48
|
+
var import_lodash = __toESM(require("lodash"));
|
|
49
|
+
var import_placement = require("../placement");
|
|
50
|
+
function extractLayout(props) {
|
|
51
|
+
if (!props || !("rows" in props) && !("sizes" in props) && !("rowOrder" in props)) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
rows: props.rows || {},
|
|
56
|
+
sizes: props.sizes || {},
|
|
57
|
+
rowOrder: props.rowOrder || Object.keys(props.rows || {})
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function omitLayoutProps(props) {
|
|
61
|
+
if (!props) {
|
|
62
|
+
return props;
|
|
63
|
+
}
|
|
64
|
+
const next = import_lodash.default.omit(props, ["rows", "sizes", "rowOrder"]);
|
|
65
|
+
return Object.keys(next).length ? next : void 0;
|
|
66
|
+
}
|
|
67
|
+
function resolveLayoutRefs(layout, childClientKeyRefs) {
|
|
68
|
+
if (!layout) {
|
|
69
|
+
return layout;
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
rows: Object.fromEntries(
|
|
73
|
+
Object.entries(layout.rows || {}).map(([rowId, cells]) => [
|
|
74
|
+
rowId,
|
|
75
|
+
import_lodash.default.castArray(cells).map(
|
|
76
|
+
(cell) => import_lodash.default.castArray(cell).map((itemUid) => childClientKeyRefs[itemUid] ?? itemUid)
|
|
77
|
+
)
|
|
78
|
+
])
|
|
79
|
+
),
|
|
80
|
+
sizes: layout.sizes || {},
|
|
81
|
+
rowOrder: layout.rowOrder || []
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function hasRefValue(value) {
|
|
85
|
+
if (Array.isArray(value)) {
|
|
86
|
+
return value.some((item) => hasRefValue(item));
|
|
87
|
+
}
|
|
88
|
+
if (import_lodash.default.isPlainObject(value)) {
|
|
89
|
+
if (typeof value.ref === "string") {
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
return Object.values(value).some((item) => hasRefValue(item));
|
|
93
|
+
}
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
function buildAutoLayout(itemRefs) {
|
|
97
|
+
if (!itemRefs.length) {
|
|
98
|
+
return {
|
|
99
|
+
rows: {},
|
|
100
|
+
sizes: {},
|
|
101
|
+
rowOrder: []
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
rows: Object.fromEntries(itemRefs.map((itemRef, index) => [`autoRow${index + 1}`, [[itemRef]]])),
|
|
106
|
+
sizes: Object.fromEntries(itemRefs.map((_2, index) => [`autoRow${index + 1}`, [24]])),
|
|
107
|
+
rowOrder: itemRefs.map((_2, index) => `autoRow${index + 1}`)
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
function didItemRefsChange(currentChildren, desiredRefs) {
|
|
111
|
+
if (currentChildren.length !== desiredRefs.length) {
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
return desiredRefs.some(
|
|
115
|
+
(item, index) => {
|
|
116
|
+
var _a;
|
|
117
|
+
return typeof item.uidRef !== "string" || ((_a = currentChildren[index]) == null ? void 0 : _a.uid) !== item.uidRef;
|
|
118
|
+
}
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
function emitLayoutOp(ops, target, currentNode, desiredNode, childSync) {
|
|
122
|
+
const explicitLayout = resolveLayoutRefs(extractLayout(desiredNode.props), childSync.childClientKeyRefs);
|
|
123
|
+
const desiredLayout = explicitLayout || ((0, import_placement.isGridUse)((currentNode == null ? void 0 : currentNode.use) || desiredNode.use) && childSync.itemsSpecified ? buildAutoLayout(childSync.finalItemRefs.map((item) => item.uidRef)) : null);
|
|
124
|
+
if (!desiredLayout) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
if (!hasRefValue(desiredLayout) && import_lodash.default.isEqual(desiredLayout, extractLayout(currentNode == null ? void 0 : currentNode.props))) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
ops.push({
|
|
131
|
+
type: "setLayout",
|
|
132
|
+
target,
|
|
133
|
+
values: desiredLayout
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
function emitMoveOps(ops, desiredRefs) {
|
|
137
|
+
for (let index = desiredRefs.length - 2; index >= 0; index -= 1) {
|
|
138
|
+
ops.push({
|
|
139
|
+
type: "moveNode",
|
|
140
|
+
values: {
|
|
141
|
+
sourceUid: desiredRefs[index].uidRef,
|
|
142
|
+
targetUid: desiredRefs[index + 1].uidRef,
|
|
143
|
+
position: "before"
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
function emitOrderedTabMoves(ops, desiredRefs, type) {
|
|
149
|
+
for (let index = desiredRefs.length - 2; index >= 0; index -= 1) {
|
|
150
|
+
ops.push({
|
|
151
|
+
type,
|
|
152
|
+
values: {
|
|
153
|
+
sourceUid: desiredRefs[index].uidRef,
|
|
154
|
+
targetUid: desiredRefs[index + 1].uidRef,
|
|
155
|
+
position: "before"
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function emitMoveTabOps(ops, desiredRefs) {
|
|
161
|
+
emitOrderedTabMoves(ops, desiredRefs, "moveTab");
|
|
162
|
+
}
|
|
163
|
+
function emitMovePopupTabOps(ops, desiredRefs) {
|
|
164
|
+
emitOrderedTabMoves(ops, desiredRefs, "movePopupTab");
|
|
165
|
+
}
|
|
166
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
167
|
+
0 && (module.exports = {
|
|
168
|
+
buildAutoLayout,
|
|
169
|
+
didItemRefsChange,
|
|
170
|
+
emitLayoutOp,
|
|
171
|
+
emitMoveOps,
|
|
172
|
+
emitMovePopupTabOps,
|
|
173
|
+
emitMoveTabOps,
|
|
174
|
+
omitLayoutProps
|
|
175
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
import type { FlowSurfaceApplySpec, FlowSurfaceNodeSpec } from '../types';
|
|
10
|
+
export declare function normalizeChildren(input: any): FlowSurfaceNodeSpec[];
|
|
11
|
+
export declare function hasExplicitSubModelKey(node: Pick<FlowSurfaceNodeSpec, 'subModels'> | FlowSurfaceApplySpec, key: string): any;
|
|
12
|
+
export declare function matchesObjectChild(currentChild: any, desiredChild: FlowSurfaceNodeSpec): boolean;
|
|
13
|
+
export declare function planArrayChildMatches(currentChildren: FlowSurfaceNodeSpec[], desiredChildren: FlowSurfaceNodeSpec[], parentUse: string, subKey: string): {
|
|
14
|
+
matchesByDesiredIndex: Map<number, FlowSurfaceNodeSpec>;
|
|
15
|
+
matchedCurrentUids: Set<string>;
|
|
16
|
+
};
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
var __create = Object.create;
|
|
11
|
+
var __defProp = Object.defineProperty;
|
|
12
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
13
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
14
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
15
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
16
|
+
var __export = (target, all) => {
|
|
17
|
+
for (var name in all)
|
|
18
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
19
|
+
};
|
|
20
|
+
var __copyProps = (to, from, except, desc) => {
|
|
21
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
22
|
+
for (let key of __getOwnPropNames(from))
|
|
23
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
24
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
25
|
+
}
|
|
26
|
+
return to;
|
|
27
|
+
};
|
|
28
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
29
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
30
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
31
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
32
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
33
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
34
|
+
mod
|
|
35
|
+
));
|
|
36
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
37
|
+
var matching_exports = {};
|
|
38
|
+
__export(matching_exports, {
|
|
39
|
+
hasExplicitSubModelKey: () => hasExplicitSubModelKey,
|
|
40
|
+
matchesObjectChild: () => matchesObjectChild,
|
|
41
|
+
normalizeChildren: () => normalizeChildren,
|
|
42
|
+
planArrayChildMatches: () => planArrayChildMatches
|
|
43
|
+
});
|
|
44
|
+
module.exports = __toCommonJS(matching_exports);
|
|
45
|
+
var import_lodash = __toESM(require("lodash"));
|
|
46
|
+
var import_errors = require("../errors");
|
|
47
|
+
function normalizeChildren(input) {
|
|
48
|
+
if (!input) {
|
|
49
|
+
return [];
|
|
50
|
+
}
|
|
51
|
+
return import_lodash.default.castArray(input).filter(Boolean);
|
|
52
|
+
}
|
|
53
|
+
function hasExplicitSubModelKey(node, key) {
|
|
54
|
+
return !!(node == null ? void 0 : node.subModels) && Object.prototype.hasOwnProperty.call(node.subModels, key);
|
|
55
|
+
}
|
|
56
|
+
function matchesObjectChild(currentChild, desiredChild) {
|
|
57
|
+
return currentChild.uid === desiredChild.uid || !desiredChild.uid && currentChild.use === desiredChild.use;
|
|
58
|
+
}
|
|
59
|
+
function planArrayChildMatches(currentChildren, desiredChildren, parentUse, subKey) {
|
|
60
|
+
const matchesByDesiredIndex = /* @__PURE__ */ new Map();
|
|
61
|
+
const matchedCurrentUids = /* @__PURE__ */ new Set();
|
|
62
|
+
const remainingDesiredByUse = /* @__PURE__ */ new Map();
|
|
63
|
+
for (const [desiredIndex, desiredChild] of desiredChildren.entries()) {
|
|
64
|
+
const matchedCurrent = findExactArrayChildMatch(currentChildren, desiredChild, matchedCurrentUids);
|
|
65
|
+
if (matchedCurrent) {
|
|
66
|
+
matchesByDesiredIndex.set(desiredIndex, matchedCurrent);
|
|
67
|
+
if (matchedCurrent.uid) {
|
|
68
|
+
matchedCurrentUids.add(matchedCurrent.uid);
|
|
69
|
+
}
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
if ((desiredChild == null ? void 0 : desiredChild.use) && !desiredChild.uid) {
|
|
73
|
+
const desiredIndexes = remainingDesiredByUse.get(desiredChild.use) || [];
|
|
74
|
+
desiredIndexes.push(desiredIndex);
|
|
75
|
+
remainingDesiredByUse.set(desiredChild.use, desiredIndexes);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
const remainingCurrentByUse = /* @__PURE__ */ new Map();
|
|
79
|
+
for (const currentChild of currentChildren) {
|
|
80
|
+
if (!(currentChild == null ? void 0 : currentChild.use) || matchedCurrentUids.has(currentChild.uid || "")) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
const currentGroup = remainingCurrentByUse.get(currentChild.use) || [];
|
|
84
|
+
currentGroup.push(currentChild);
|
|
85
|
+
remainingCurrentByUse.set(currentChild.use, currentGroup);
|
|
86
|
+
}
|
|
87
|
+
const uses = /* @__PURE__ */ new Set([...remainingCurrentByUse.keys(), ...remainingDesiredByUse.keys()]);
|
|
88
|
+
for (const use of uses) {
|
|
89
|
+
const currentGroup = remainingCurrentByUse.get(use) || [];
|
|
90
|
+
const desiredIndexes = remainingDesiredByUse.get(use) || [];
|
|
91
|
+
const shouldReuseByOrder = currentGroup.length > 1 || desiredIndexes.length > 1;
|
|
92
|
+
if (currentGroup.length > 0 && desiredIndexes.length > 0 && currentGroup.length !== desiredIndexes.length && shouldReuseByOrder) {
|
|
93
|
+
throw new import_errors.FlowSurfaceBadRequestError(
|
|
94
|
+
`flowSurfaces apply cannot safely match duplicate '${use}' nodes under '${parentUse}.${subKey}' without explicit uid or signature`
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
if (!shouldReuseByOrder) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
const reuseCount = Math.min(currentGroup.length, desiredIndexes.length);
|
|
101
|
+
for (let index = 0; index < reuseCount; index += 1) {
|
|
102
|
+
const currentChild = currentGroup[index];
|
|
103
|
+
const desiredIndex = desiredIndexes[index];
|
|
104
|
+
matchesByDesiredIndex.set(desiredIndex, currentChild);
|
|
105
|
+
if (currentChild == null ? void 0 : currentChild.uid) {
|
|
106
|
+
matchedCurrentUids.add(currentChild.uid);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
matchesByDesiredIndex,
|
|
112
|
+
matchedCurrentUids
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
function findExactArrayChildMatch(currentChildren, desiredChild, matchedCurrent) {
|
|
116
|
+
if (desiredChild.uid) {
|
|
117
|
+
return currentChildren.find((item) => (item == null ? void 0 : item.uid) === desiredChild.uid);
|
|
118
|
+
}
|
|
119
|
+
const desiredStrongSignature = getStrongNodeSignature(desiredChild);
|
|
120
|
+
if (desiredStrongSignature) {
|
|
121
|
+
return currentChildren.find(
|
|
122
|
+
(item) => !matchedCurrent.has(item.uid || "") && getStrongNodeSignature(item) === desiredStrongSignature
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
const desiredWeakSignature = getWeakNodeSignature(desiredChild);
|
|
126
|
+
if (desiredWeakSignature) {
|
|
127
|
+
return currentChildren.find(
|
|
128
|
+
(item) => !matchedCurrent.has(item.uid || "") && getWeakNodeSignature(item) === desiredWeakSignature
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
return void 0;
|
|
132
|
+
}
|
|
133
|
+
function getStrongNodeSignature(node) {
|
|
134
|
+
if (!(node == null ? void 0 : node.use)) {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
const resourceInit = import_lodash.default.get(node, ["stepParams", "resourceSettings", "init"]);
|
|
138
|
+
if ((resourceInit == null ? void 0 : resourceInit.dataSourceKey) || (resourceInit == null ? void 0 : resourceInit.collectionName) || (resourceInit == null ? void 0 : resourceInit.associationName) || (resourceInit == null ? void 0 : resourceInit.associationPathName) || !import_lodash.default.isUndefined(resourceInit == null ? void 0 : resourceInit.sourceId)) {
|
|
139
|
+
return [
|
|
140
|
+
"resource",
|
|
141
|
+
node.use,
|
|
142
|
+
resourceInit.dataSourceKey || "",
|
|
143
|
+
resourceInit.collectionName || "",
|
|
144
|
+
resourceInit.associationName || "",
|
|
145
|
+
resourceInit.associationPathName || "",
|
|
146
|
+
import_lodash.default.isUndefined(resourceInit.sourceId) ? "" : String(resourceInit.sourceId)
|
|
147
|
+
].join(":");
|
|
148
|
+
}
|
|
149
|
+
const fieldInit = import_lodash.default.get(node, ["stepParams", "fieldSettings", "init"]) || import_lodash.default.get(node, ["subModels", "field", "stepParams", "fieldSettings", "init"]);
|
|
150
|
+
if (fieldInit == null ? void 0 : fieldInit.fieldPath) {
|
|
151
|
+
return [
|
|
152
|
+
"field",
|
|
153
|
+
node.use,
|
|
154
|
+
fieldInit.dataSourceKey || "",
|
|
155
|
+
fieldInit.collectionName || "",
|
|
156
|
+
fieldInit.associationPathName || "",
|
|
157
|
+
fieldInit.fieldPath
|
|
158
|
+
].join(":");
|
|
159
|
+
}
|
|
160
|
+
if (node.use === "TableActionsColumnModel") {
|
|
161
|
+
return "slot:table-actions-column";
|
|
162
|
+
}
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
function getWeakNodeSignature(node) {
|
|
166
|
+
if (!(node == null ? void 0 : node.use)) {
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
const title = import_lodash.default.get(node, ["stepParams", "pageTabSettings", "tab", "title"]) || import_lodash.default.get(node, ["stepParams", "buttonSettings", "general", "title"]) || import_lodash.default.get(node, ["props", "title"]);
|
|
170
|
+
if (typeof title === "string" && title.trim()) {
|
|
171
|
+
return ["title", node.use, title.trim()].join(":");
|
|
172
|
+
}
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
176
|
+
0 && (module.exports = {
|
|
177
|
+
hasExplicitSubModelKey,
|
|
178
|
+
matchesObjectChild,
|
|
179
|
+
normalizeChildren,
|
|
180
|
+
planArrayChildMatches
|
|
181
|
+
});
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
import _ from 'lodash';
|
|
10
|
+
import type FlowModelRepository from '../../repository';
|
|
11
|
+
type FlowSurfaceApprovalBlueprintBindingResource = 'workflows' | 'flow_nodes';
|
|
12
|
+
type ApprovalBlueprintServiceDeps = {
|
|
13
|
+
contractGuard: {
|
|
14
|
+
validateNodeTreeAgainstContract: (node: Record<string, any>) => void;
|
|
15
|
+
};
|
|
16
|
+
db: {
|
|
17
|
+
getRepository: (resourceName: string) => {
|
|
18
|
+
findOne: (options: Record<string, any>) => Promise<any>;
|
|
19
|
+
update: (options: Record<string, any>) => Promise<any>;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
hasDataSource: (dataSourceKey: string) => boolean;
|
|
23
|
+
repository: Pick<FlowModelRepository, 'findModelById' | 'findModelByParentId' | 'insertModel' | 'upsertModel' | 'patch'>;
|
|
24
|
+
setNodeAsyncFlag: (uid: string, asyncFlag: boolean, transaction?: any) => Promise<void>;
|
|
25
|
+
removeNodeTreeWithBindings: (uid: string, transaction?: any) => Promise<void>;
|
|
26
|
+
surfaceContext: {
|
|
27
|
+
resolveGridNode: (uid: string, transaction?: any) => Promise<any>;
|
|
28
|
+
};
|
|
29
|
+
compose: (values: Record<string, any>, options: {
|
|
30
|
+
transaction?: any;
|
|
31
|
+
}) => Promise<any>;
|
|
32
|
+
addField: (values: Record<string, any>, options: {
|
|
33
|
+
transaction?: any;
|
|
34
|
+
}) => Promise<any>;
|
|
35
|
+
setLayout: (values: Record<string, any>, options: {
|
|
36
|
+
transaction?: any;
|
|
37
|
+
}) => Promise<any>;
|
|
38
|
+
get: (values: Record<string, any>, options: {
|
|
39
|
+
transaction?: any;
|
|
40
|
+
}) => Promise<any>;
|
|
41
|
+
buildComposeLayoutPayload: (input: {
|
|
42
|
+
layout: any;
|
|
43
|
+
createdByKey: Record<string, {
|
|
44
|
+
uid: string;
|
|
45
|
+
}>;
|
|
46
|
+
finalItems: any[];
|
|
47
|
+
}) => Record<string, any>;
|
|
48
|
+
syncApprovalRuntimeConfigForSurfaceRoot: (root: any, transaction?: any) => Promise<void>;
|
|
49
|
+
};
|
|
50
|
+
export declare class FlowSurfaceApprovalBlueprintService {
|
|
51
|
+
private readonly deps;
|
|
52
|
+
constructor(deps: ApprovalBlueprintServiceDeps);
|
|
53
|
+
private parseApprovalBlueprintCollection;
|
|
54
|
+
private resolveApprovalBlueprintBindingContext;
|
|
55
|
+
private buildApprovalBlueprintSurfaceRootTree;
|
|
56
|
+
private buildApprovalBlueprintPageSurfaceRootTree;
|
|
57
|
+
private getApprovalBlueprintExpectedTabUse;
|
|
58
|
+
private getApprovalBlueprintExpectedGridUse;
|
|
59
|
+
private findApprovalBlueprintSurfaceRoot;
|
|
60
|
+
private createApprovalBlueprintSurfaceRoot;
|
|
61
|
+
private ensureApprovalBlueprintPageSurfaceStructure;
|
|
62
|
+
private ensureApprovalBlueprintTaskCardSurfaceStructure;
|
|
63
|
+
private syncApprovalBlueprintSurfaceAsyncShape;
|
|
64
|
+
private syncApprovalBlueprintSurfaceRoot;
|
|
65
|
+
private ensureApprovalBlueprintSurfaceRoot;
|
|
66
|
+
private persistApprovalBlueprintBinding;
|
|
67
|
+
private applyApprovalBlueprintPageSurface;
|
|
68
|
+
private applyApprovalBlueprintTaskCardSurface;
|
|
69
|
+
applyApprovalBlueprint(values: Record<string, any>, options?: {
|
|
70
|
+
transaction?: any;
|
|
71
|
+
}): Promise<{
|
|
72
|
+
version: string;
|
|
73
|
+
mode: "replace";
|
|
74
|
+
surfaceType: "initiator" | "approver" | "taskCard";
|
|
75
|
+
target: _.Dictionary<any>;
|
|
76
|
+
binding: {
|
|
77
|
+
resourceName: FlowSurfaceApprovalBlueprintBindingResource;
|
|
78
|
+
filterByTk: string | number;
|
|
79
|
+
configPath: string;
|
|
80
|
+
};
|
|
81
|
+
surface: any;
|
|
82
|
+
}>;
|
|
83
|
+
}
|
|
84
|
+
export {};
|