@nocobase/plugin-flow-engine 2.1.0-alpha.23 → 2.1.0-alpha.25
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/skills/frontend-developer/SKILLS.md +2 -2
- package/dist/externalVersion.js +10 -10
- package/dist/node_modules/ses/package.json +1 -1
- package/dist/node_modules/zod/package.json +1 -1
- package/dist/server/flow-surfaces/action-scope.d.ts +1 -0
- package/dist/server/flow-surfaces/action-scope.js +4 -0
- package/dist/server/flow-surfaces/apply/compiler.js +4 -2
- package/dist/server/flow-surfaces/association-interfaces.d.ts +10 -0
- package/dist/server/flow-surfaces/association-interfaces.js +39 -0
- package/dist/server/flow-surfaces/association-title-field.d.ts +1 -1
- package/dist/server/flow-surfaces/association-title-field.js +38 -4
- package/dist/server/flow-surfaces/blueprint/compile-blocks.js +72 -5
- package/dist/server/flow-surfaces/blueprint/public-types.d.ts +9 -1
- package/dist/server/flow-surfaces/builder.d.ts +27 -1
- package/dist/server/flow-surfaces/builder.js +105 -5
- package/dist/server/flow-surfaces/catalog.d.ts +2 -1
- package/dist/server/flow-surfaces/catalog.js +316 -119
- package/dist/server/flow-surfaces/compose-compiler.d.ts +8 -0
- package/dist/server/flow-surfaces/compose-compiler.js +9 -1
- package/dist/server/flow-surfaces/configure-options.js +72 -6
- package/dist/server/flow-surfaces/core-field-default-bindings.d.ts +12 -0
- package/dist/server/flow-surfaces/core-field-default-bindings.js +157 -0
- package/dist/server/flow-surfaces/default-action-popup.js +2 -2
- package/dist/server/flow-surfaces/default-block-actions.js +24 -0
- package/dist/server/flow-surfaces/field-binding-registry.d.ts +1 -0
- package/dist/server/flow-surfaces/field-binding-registry.js +5 -0
- package/dist/server/flow-surfaces/field-semantics.d.ts +1 -1
- package/dist/server/flow-surfaces/field-semantics.js +7 -4
- package/dist/server/flow-surfaces/field-type-resolver.d.ts +46 -0
- package/dist/server/flow-surfaces/field-type-resolver.js +322 -0
- package/dist/server/flow-surfaces/index.js +61 -2
- package/dist/server/flow-surfaces/node-use-sets.js +4 -0
- package/dist/server/flow-surfaces/placement.js +3 -0
- package/dist/server/flow-surfaces/public-data-surface-default-filter.d.ts +4 -0
- package/dist/server/flow-surfaces/public-data-surface-default-filter.js +45 -4
- package/dist/server/flow-surfaces/service-helpers.js +3 -70
- package/dist/server/flow-surfaces/service-utils.d.ts +13 -1
- package/dist/server/flow-surfaces/service-utils.js +58 -6
- package/dist/server/flow-surfaces/service.d.ts +59 -2
- package/dist/server/flow-surfaces/service.js +2269 -234
- package/dist/server/flow-surfaces/support-matrix.d.ts +1 -1
- package/dist/server/flow-surfaces/support-matrix.js +23 -0
- package/dist/server/flow-surfaces/surface-context.js +8 -5
- package/dist/swagger/flow-surfaces.d.ts +173 -2
- package/dist/swagger/flow-surfaces.examples.d.ts +59 -15
- package/dist/swagger/flow-surfaces.examples.js +69 -11
- package/dist/swagger/flow-surfaces.js +86 -17
- package/dist/swagger/index.d.ts +173 -2
- package/package.json +2 -2
|
@@ -43,8 +43,9 @@ const FILTER_GROUP_EXAMPLE = {
|
|
|
43
43
|
logic: "$and",
|
|
44
44
|
items: []
|
|
45
45
|
};
|
|
46
|
-
const PUBLIC_DATA_SURFACE_BLOCK_DEFAULT_FILTER_DESCRIPTION =
|
|
47
|
-
const
|
|
46
|
+
const PUBLIC_DATA_SURFACE_BLOCK_DEFAULT_FILTER_DESCRIPTION = 'Supported only on direct `table`, `list`, `gridCard`, `calendar`, or `kanban` blocks. The backend runtime keeps this input optional and compatibility-tolerant: omitted, `{}`, `null`, or `{ logic: "$and", items: [] }` normalize to the empty filter group. When a non-empty value is provided, it backfills the default `filter` action `settings.defaultFilter` when that action exists or is auto-created. If the filter action already provides `settings.defaultFilter`, the action-level value wins.';
|
|
47
|
+
const APPLY_BLUEPRINT_DATA_SURFACE_BLOCK_DEFAULT_FILTER_DESCRIPTION = "Supported only on direct `table`, `list`, `gridCard`, `calendar`, or `kanban` blocks, and must contain at least one concrete filter item. Backfills the default `filter` action `settings.defaultFilter` when that action exists or is auto-created. If the filter action already provides `settings.defaultFilter`, the action-level value wins.";
|
|
48
|
+
const DIRECT_ADD_DEFAULT_FILTER_COMPAT_DESCRIPTION = "Public block-level `defaultFilter` is supported on direct `table` / `list` / `gridCard` / `calendar` / `kanban` creates. Backend runtime compatibility is preserved: omitted or empty values remain accepted and normalize to the empty filter group. Legacy `defaultActionSettings.filter.defaultFilter` remains supported for compatibility and wins when both are provided.";
|
|
48
49
|
const STRING_OR_INTEGER_SCHEMA = {
|
|
49
50
|
oneOf: [{ type: "string" }, { type: "integer" }]
|
|
50
51
|
};
|
|
@@ -119,6 +120,8 @@ const RECORD_ACTION_TYPE_ENUM = [
|
|
|
119
120
|
];
|
|
120
121
|
const APPLY_BLUEPRINT_BLOCK_TYPE_ENUM = [
|
|
121
122
|
"table",
|
|
123
|
+
"calendar",
|
|
124
|
+
"kanban",
|
|
122
125
|
"createForm",
|
|
123
126
|
"editForm",
|
|
124
127
|
"details",
|
|
@@ -129,10 +132,37 @@ const APPLY_BLUEPRINT_BLOCK_TYPE_ENUM = [
|
|
|
129
132
|
"iframe",
|
|
130
133
|
"chart",
|
|
131
134
|
"actionPanel",
|
|
132
|
-
"jsBlock"
|
|
135
|
+
"jsBlock",
|
|
136
|
+
"tree"
|
|
133
137
|
];
|
|
134
138
|
const APPROVAL_BLUEPRINT_BLOCK_TYPE_ENUM = [...import_catalog_specs.APPROVAL_BLOCK_PUBLIC_KEYS];
|
|
135
139
|
const COMPOSE_BLOCK_TYPE_ENUM = [...APPLY_BLUEPRINT_BLOCK_TYPE_ENUM, ...import_catalog_specs.APPROVAL_BLOCK_PUBLIC_KEYS];
|
|
140
|
+
const RELATION_FIELD_TYPE_ENUM = [
|
|
141
|
+
"text",
|
|
142
|
+
"select",
|
|
143
|
+
"picker",
|
|
144
|
+
"subForm",
|
|
145
|
+
"subFormList",
|
|
146
|
+
"subDetails",
|
|
147
|
+
"subDetailsList",
|
|
148
|
+
"subTable",
|
|
149
|
+
"popupSubTable"
|
|
150
|
+
];
|
|
151
|
+
const RELATION_FIELD_TYPE_SCHEMA = {
|
|
152
|
+
type: "string",
|
|
153
|
+
enum: RELATION_FIELD_TYPE_ENUM,
|
|
154
|
+
description: "Public relation field UI presentation type. This is not the collection field data type/interface."
|
|
155
|
+
};
|
|
156
|
+
const RELATION_TARGET_FIELDS_SCHEMA = {
|
|
157
|
+
type: "array",
|
|
158
|
+
items: { type: "string" },
|
|
159
|
+
description: "Relation target record fields used as sub-table columns or embedded sub-form/detail fields."
|
|
160
|
+
};
|
|
161
|
+
const RELATION_SELECTOR_FIELDS_SCHEMA = {
|
|
162
|
+
type: "array",
|
|
163
|
+
items: { type: "string" },
|
|
164
|
+
description: "Record picker selector table fields. Do not mix with fields on the same field object."
|
|
165
|
+
};
|
|
136
166
|
const ADD_CHILD_TREE_TABLE_NOTE = "`addChild` is only valid when the live target `catalog.recordActions` exposes it, which normally means a table bound to a tree collection with `treeTable` enabled.";
|
|
137
167
|
const APPLY_BLUEPRINT_ADD_CHILD_NOTE = "`addChild` is not auto-promoted from `actions`; author it only under `recordActions`, and only when the live target `catalog.recordActions` exposes it for a tree table.";
|
|
138
168
|
const REACTION_FINGERPRINT_DESCRIPTION = "Optional optimistic-concurrency fingerprint from `getReactionMeta.capabilities[].fingerprint`. When provided, the write fails with HTTP 409 if the current slot fingerprint no longer matches.";
|
|
@@ -468,7 +498,7 @@ const actionDocs = {
|
|
|
468
498
|
tags: [FLOW_SURFACES_TAG],
|
|
469
499
|
summary: "Apply a page blueprint to create or replace one Modern page",
|
|
470
500
|
description: valuesCompatibilityNote(
|
|
471
|
-
'Accepts one simplified JSON page blueprint and compiles it to internal flow-surface operations. The public blueprint describes page structure (`create` or `replace`, page metadata, ordered tabs, blocks, fields, actions, inline popups, optional reusable assets) and optional top-level `reaction.items[]` for whole-page interaction authoring. Each reaction item targets an explicit local key / bind key produced by the same blueprint run. Only explicitly listed reaction items are written. `rules: []` clears the targeted slot. Repeating the same `(type, target)` reaction slot in one blueprint is invalid. In `replace`, reaction targets always bind to the newly produced blueprint result, not historical nodes from the previous page version; if a slot must exist in the resulting surface, include it explicitly instead of relying on omission. Localized reaction edits on an existing surface should use `getReactionMeta` + `set*Rules` instead of applying a whole page blueprint again. The request body is that page-document JSON object itself and must not be JSON-stringified. Wrong: `{ "requestBody": "{\\"version\\":\\"1\\"}" }`. Internal planning details stay hidden. In `create`, `navigation.group.routeId` is the preferred way to target an existing menu group. It is exact-targeting only and cannot be mixed with existing-group metadata such as `icon`, `tooltip`, or `hideInMenu`; applyBlueprint create mode does not mutate existing group metadata, so callers should use `updateMenu` separately when that is required. When only `navigation.group.title` is provided, applyBlueprint reuses one existing same-title group when it is unique, creates a new group when none exists, and rejects ambiguous multi-match cases. Same-title reuse is title-only; if an existing group\'s metadata must change, use low-level `updateMenu` instead of applyBlueprint create. `replace` uses `target.pageSchemaUid`, updates only the explicit page-level fields provided in `page`, maps blueprint tabs to existing route-backed tab slots by index, rewrites each slot in order, removes trailing old tabs, and appends extra new tabs when needed. Tab and block keys are optional in the public blueprint; omit them unless custom layout or cross-block targeting needs a stable in-document identifier. `layout` is only allowed on tabs and inline popup documents; blocks themselves do not accept a `layout` property. Public applyBlueprint blocks do not support generic `form`; use `editForm` or `createForm`. Direct `table` / `list` / `gridCard` blocks may also provide block-level `defaultFilter`, which backfills the default `filter` action `settings.defaultFilter`; explicit filter-action `settings.defaultFilter` still wins. Inline popup documents may set `popup.tryTemplate=true` to ask the backend for the best compatible popup template before falling back to local popup content. Inline popup documents may also combine `popup.tryTemplate` with `popup.saveAsTemplate={ name, description, local? }`: a hit binds the matched template immediately and lets later inline popups in the same blueprint reuse that final bound template through `popup.template={ local, mode }`, while a miss requires explicit local `popup.blocks` so the fallback popup can be saved and reused. Custom `edit` popups that provide `popup.blocks` must include exactly one `editForm` block; that `editForm` may omit `resource` and then inherits the opener\'s current-record context. When layout is omitted, applyBlueprint auto-generates a simple top-to-bottom layout. When a `replace` run expands a page to multiple tabs while the current page still has `enableTabs=false`, callers must set `page.enableTabs=true` explicitly. The response hides execution internals and returns only the resolved page target and final surface readback.'
|
|
501
|
+
'Accepts one simplified JSON page blueprint and compiles it to internal flow-surface operations. The public blueprint describes page structure (`create` or `replace`, page metadata, ordered tabs, blocks, fields, actions, inline popups, optional reusable assets) and optional top-level `reaction.items[]` for whole-page interaction authoring. Each reaction item targets an explicit local key / bind key produced by the same blueprint run. Only explicitly listed reaction items are written. `rules: []` clears the targeted slot. Repeating the same `(type, target)` reaction slot in one blueprint is invalid. In `replace`, reaction targets always bind to the newly produced blueprint result, not historical nodes from the previous page version; if a slot must exist in the resulting surface, include it explicitly instead of relying on omission. Localized reaction edits on an existing surface should use `getReactionMeta` + `set*Rules` instead of applying a whole page blueprint again. The request body is that page-document JSON object itself and must not be JSON-stringified. Wrong: `{ "requestBody": "{\\"version\\":\\"1\\"}" }`. Internal planning details stay hidden. In `create`, `navigation.group.routeId` is the preferred way to target an existing menu group. It is exact-targeting only and cannot be mixed with existing-group metadata such as `icon`, `tooltip`, or `hideInMenu`; applyBlueprint create mode does not mutate existing group metadata, so callers should use `updateMenu` separately when that is required. When only `navigation.group.title` is provided, applyBlueprint reuses one existing same-title group when it is unique, creates a new group when none exists, and rejects ambiguous multi-match cases. Same-title reuse is title-only; if an existing group\'s metadata must change, use low-level `updateMenu` instead of applyBlueprint create. `replace` uses `target.pageSchemaUid`, updates only the explicit page-level fields provided in `page`, maps blueprint tabs to existing route-backed tab slots by index, rewrites each slot in order, removes trailing old tabs, and appends extra new tabs when needed. Tab and block keys are optional in the public blueprint; omit them unless custom layout or cross-block targeting needs a stable in-document identifier. `layout` is only allowed on tabs and inline popup documents; blocks themselves do not accept a `layout` property. Public applyBlueprint blocks do not support generic `form`; use `editForm` or `createForm`. Direct `table` / `list` / `gridCard` / `calendar` / `kanban` blocks may also provide non-empty block-level `defaultFilter`, which backfills the default `filter` action `settings.defaultFilter`; explicit filter-action `settings.defaultFilter` still wins. Inline popup documents may set `popup.tryTemplate=true` to ask the backend for the best compatible popup template before falling back to local popup content. Inline popup documents may also combine `popup.tryTemplate` with `popup.saveAsTemplate={ name, description, local? }`: a hit binds the matched template immediately and lets later inline popups in the same blueprint reuse that final bound template through `popup.template={ local, mode }`, while a miss requires explicit local `popup.blocks` so the fallback popup can be saved and reused. Custom `edit` popups that provide `popup.blocks` must include exactly one `editForm` block; that `editForm` may omit `resource` and then inherits the opener\'s current-record context. When layout is omitted, applyBlueprint auto-generates a simple top-to-bottom layout. When a `replace` run expands a page to multiple tabs while the current page still has `enableTabs=false`, callers must set `page.enableTabs=true` explicitly. The response hides execution internals and returns only the resolved page target and final surface readback.'
|
|
472
502
|
),
|
|
473
503
|
requestBody: {
|
|
474
504
|
required: true,
|
|
@@ -484,6 +514,10 @@ const actionDocs = {
|
|
|
484
514
|
replacePage: {
|
|
485
515
|
summary: "Replace one existing Modern page by pageSchemaUid",
|
|
486
516
|
value: import_flow_surfaces.flowSurfaceExamples.applyBlueprintReplace
|
|
517
|
+
},
|
|
518
|
+
calendarPage: {
|
|
519
|
+
summary: "Create a direct calendar block with block-level defaultFilter",
|
|
520
|
+
value: import_flow_surfaces.flowSurfaceExamples.applyBlueprintCalendar
|
|
487
521
|
}
|
|
488
522
|
}
|
|
489
523
|
}
|
|
@@ -526,7 +560,7 @@ const actionDocs = {
|
|
|
526
560
|
tags: [FLOW_SURFACES_TAG],
|
|
527
561
|
summary: "Compose blocks, fields, actions and simple layout under an existing surface",
|
|
528
562
|
description: valuesCompatibilityNote(
|
|
529
|
-
'Organizes content under an existing page/tab/grid/popup using the public block/action/field semantics as a low-level building primitive. The caller does not need to pass raw `use`, `fieldUse`, or `stepParams`. Blocks, fields, and actions can declare stable `key` values, and the compose result returns the same keys so later orchestration can reference nested popup or form nodes deterministically. Direct `table` / `list` / `gridCard` blocks may provide block-level `defaultFilter
|
|
563
|
+
'Organizes content under an existing page/tab/grid/popup using the public block/action/field semantics as a low-level building primitive. The caller does not need to pass raw `use`, `fieldUse`, or `stepParams`. Blocks, fields, and actions can declare stable `key` values, and the compose result returns the same keys so later orchestration can reference nested popup or form nodes deterministically. Direct `table` / `list` / `gridCard` / `calendar` / `kanban` blocks may provide block-level `defaultFilter`; backend runtime compatibility remains compatibility-tolerant for omitted or empty values, and any provided value backfills the default `filter` action `settings.defaultFilter`. Explicit filter-action `settings.defaultFilter` still wins. Blocks may be created from `template`, and form templates can set `template.usage="fields"` to import only their grid fields. Popup-capable actions and fields may reuse `popup.template`, set `popup.tryTemplate=true` to ask the backend for one compatible popup template before falling back to local/default popup behavior, or combine `popup.tryTemplate` with `popup.saveAsTemplate={ name, description, local? }`: a hit binds the matched template immediately and lets later popup-capable fields/actions in the same compose call reuse that final bound template through `popup.template={ local, mode }`, while a miss requires explicit local `popup.blocks` so the fallback popup can be saved and reused. For collection blocks under a popup, check `catalog.blocks[].resourceBindings` first. The `select / subForm / bulkEditForm` scene is currently recognized only, and popup collection block creation is not supported in that scene. For approval surfaces, use `applyApprovalBlueprint` first to bootstrap or replace the bound approval root; use `compose` only after that root already exists.'
|
|
530
564
|
),
|
|
531
565
|
requestBody: {
|
|
532
566
|
required: true,
|
|
@@ -766,7 +800,7 @@ const actionDocs = {
|
|
|
766
800
|
tags: [FLOW_SURFACES_TAG],
|
|
767
801
|
summary: "Add a block under a surface or grid container",
|
|
768
802
|
description: valuesCompatibilityNote(
|
|
769
|
-
'Creates a block by catalog key or an explicitly supported block use. It can also create from `template`, using `mode="reference"` or `mode="copy"`. Form templates may set `template.usage="fields"` to create a fresh host block and import only its grid fields. Popup-capable host nodes automatically receive the popup shell. For collection blocks under a popup, check `catalog.blocks[].resourceBindings` first, then pass the semantic `resource.binding`. The lower-level `resourceInit` is still accepted for compatibility, but the server validates it against popup semantics. `resource` and `resourceInit` are mutually exclusive. Direct `table` / `list` / `gridCard` creation may also provide block-level `defaultFilter
|
|
803
|
+
'Creates a block by catalog key or an explicitly supported block use. It can also create from `template`, using `mode="reference"` or `mode="copy"`. Form templates may set `template.usage="fields"` to create a fresh host block and import only its grid fields. Popup-capable host nodes automatically receive the popup shell. For collection blocks under a popup, check `catalog.blocks[].resourceBindings` first, then pass the semantic `resource.binding`. The lower-level `resourceInit` is still accepted for compatibility, but the server validates it against popup semantics. `resource` and `resourceInit` are mutually exclusive. Direct `table` / `list` / `gridCard` / `calendar` / `kanban` creation may also provide block-level `defaultFilter`; backend runtime compatibility remains tolerant of omitted or empty values, and any provided value backfills the auto-created default filter action. Legacy `defaultActionSettings.filter.defaultFilter` is still supported for compatibility and wins when both are provided. The `select / subForm / bulkEditForm` scene is currently recognized only, and popup collection block creation is not supported in that scene. Direct add does not accept raw `props` / `decoratorProps` / `stepParams` / `flowRegistry`. Use `settings` and reuse the public configuration semantics from `configure.changes` plus the catalog item/node `configureOptions`. Approval block keys are only exposed under approval grids and do not auto-create an approval root; bootstrap approval surfaces with `applyApprovalBlueprint` first.'
|
|
770
804
|
),
|
|
771
805
|
requestBody: {
|
|
772
806
|
required: true,
|
|
@@ -804,7 +838,7 @@ const actionDocs = {
|
|
|
804
838
|
tags: [FLOW_SURFACES_TAG],
|
|
805
839
|
summary: "Add a field wrapper and inner field under a field container",
|
|
806
840
|
description: valuesCompatibilityNote(
|
|
807
|
-
"Automatically derives the wrapper/inner-field combination from the container use and the field interface.
|
|
841
|
+
"Automatically derives the wrapper/inner-field combination from the container use and the field interface. Relation fields can request a public `fieldType` such as `picker`, `subTable`, or `popupSubTable`, with optional flat `fields`, `selectorFields`, and `titleField`. Direct add does not accept raw `wrapperProps` / `fieldProps` / `props` / `decoratorProps` / `stepParams` / `flowRegistry` or internal field model keys. Use `settings` and reuse the public configuration semantics from `configure.changes` plus the catalog item/node `configureOptions`. Popup-capable fields can also pass `popup` directly to append a local popup subtree or `popup.template` to reuse a saved popup template in `reference` / `copy` mode. `popup.tryTemplate=true` asks the backend to auto-select a compatible popup template first, preferring the same relation when one exists and otherwise falling back to a compatible non-relation template. It may be combined with `popup.saveAsTemplate={ name, description }`: a hit reuses the matched template directly, while a miss requires explicit local `popup.blocks` so the fallback popup can be saved as a template reference. When `popup.template` is present, `popup.title` still applies, while local `popup.mode` / `popup.blocks` / `popup.layout` are accepted but ignored. If local openView is enabled but no popup content is provided, the server fills in the popup page/tab/grid shell automatically. Under approval forms, direct field creation preserves the `PatternFormFieldModel` inner node semantics and does not allow standalone `jsItem`."
|
|
808
842
|
),
|
|
809
843
|
requestBody: {
|
|
810
844
|
required: true,
|
|
@@ -934,7 +968,7 @@ const actionDocs = {
|
|
|
934
968
|
tags: [FLOW_SURFACES_TAG],
|
|
935
969
|
summary: "Add multiple blocks sequentially under the same target",
|
|
936
970
|
description: valuesCompatibilityNote(
|
|
937
|
-
"Creates multiple blocks sequentially under the same target. Each item may include `settings`, `defaultFilter`, `defaultActionSettings`, or `
|
|
971
|
+
"Creates multiple blocks sequentially under the same target. Each item may include `settings`, `defaultFilter`, `defaultActionSettings`, `template`, or inline `fields` / `fieldsLayout`, but raw `props` / `decoratorProps` / `stepParams` / `flowRegistry` are not accepted. Inline fields use the same public field semantics as compose/addField, including relation `fieldType`. Direct `table` / `list` / `gridCard` / `calendar` / `kanban` items may use block-level `defaultFilter` to backfill the auto-created default filter action; backend runtime compatibility remains tolerant of omitted or empty values. Legacy `defaultActionSettings.filter.defaultFilter` is still supported for compatibility and wins when both are provided. Partial-success semantics apply: a failure in one item does not roll back the others. Results are returned in input order as `index/key/ok/result/error`, and each `error` always includes `message/type/code/status`."
|
|
938
972
|
),
|
|
939
973
|
requestBody: requestBody("FlowSurfaceAddBlocksRequest", import_flow_surfaces.flowSurfaceExamples.addBlocks),
|
|
940
974
|
responses: responses("FlowSurfaceAddBlocksResult")
|
|
@@ -2117,6 +2151,14 @@ const schemas = {
|
|
|
2117
2151
|
fieldPath: {
|
|
2118
2152
|
type: "string"
|
|
2119
2153
|
},
|
|
2154
|
+
fieldType: RELATION_FIELD_TYPE_SCHEMA,
|
|
2155
|
+
fields: RELATION_TARGET_FIELDS_SCHEMA,
|
|
2156
|
+
selectorFields: RELATION_SELECTOR_FIELDS_SCHEMA,
|
|
2157
|
+
titleField: { type: "string" },
|
|
2158
|
+
openMode: { type: "string", example: "drawer" },
|
|
2159
|
+
popupSize: { type: "string", example: "medium" },
|
|
2160
|
+
pageSize: { type: "number", example: 10 },
|
|
2161
|
+
showIndex: { type: "boolean", example: true },
|
|
2120
2162
|
renderer: {
|
|
2121
2163
|
type: "string",
|
|
2122
2164
|
enum: ["js"],
|
|
@@ -2431,7 +2473,7 @@ const schemas = {
|
|
|
2431
2473
|
},
|
|
2432
2474
|
actions: {
|
|
2433
2475
|
type: "array",
|
|
2434
|
-
description: "Block-level actions. For table/list/gridCard, prefer block-wide collection actions here.",
|
|
2476
|
+
description: "Block-level actions. For table/list/gridCard/calendar/kanban, prefer block-wide collection actions here.",
|
|
2435
2477
|
items: ref("FlowSurfaceComposeActionSpec")
|
|
2436
2478
|
},
|
|
2437
2479
|
recordActions: {
|
|
@@ -3377,6 +3419,14 @@ const schemas = {
|
|
|
3377
3419
|
associationPathName: { type: "string" },
|
|
3378
3420
|
renderer: { type: "string" },
|
|
3379
3421
|
type: { type: "string" },
|
|
3422
|
+
fieldType: RELATION_FIELD_TYPE_SCHEMA,
|
|
3423
|
+
fields: RELATION_TARGET_FIELDS_SCHEMA,
|
|
3424
|
+
selectorFields: RELATION_SELECTOR_FIELDS_SCHEMA,
|
|
3425
|
+
titleField: { type: "string" },
|
|
3426
|
+
openMode: { type: "string", example: "drawer" },
|
|
3427
|
+
popupSize: { type: "string", example: "medium" },
|
|
3428
|
+
pageSize: { type: "number", example: 10 },
|
|
3429
|
+
showIndex: { type: "boolean", example: true },
|
|
3380
3430
|
label: { type: "string" },
|
|
3381
3431
|
target: {
|
|
3382
3432
|
type: "string",
|
|
@@ -3477,7 +3527,7 @@ const schemas = {
|
|
|
3477
3527
|
settings: ANY_OBJECT_SCHEMA,
|
|
3478
3528
|
defaultFilter: {
|
|
3479
3529
|
allOf: [ref("FlowSurfaceFilterGroup")],
|
|
3480
|
-
description:
|
|
3530
|
+
description: APPLY_BLUEPRINT_DATA_SURFACE_BLOCK_DEFAULT_FILTER_DESCRIPTION
|
|
3481
3531
|
},
|
|
3482
3532
|
fields: {
|
|
3483
3533
|
type: "array",
|
|
@@ -4277,6 +4327,11 @@ const schemas = {
|
|
|
4277
4327
|
template: ref("FlowSurfaceBlockTemplateRef"),
|
|
4278
4328
|
resource: ref("FlowSurfaceBlockResourceInput"),
|
|
4279
4329
|
resourceInit: ref("FlowSurfaceResourceInit"),
|
|
4330
|
+
fields: {
|
|
4331
|
+
type: "array",
|
|
4332
|
+
items: ref("FlowSurfaceComposeFieldSpec")
|
|
4333
|
+
},
|
|
4334
|
+
fieldsLayout: ref("FlowSurfaceComposeLayout"),
|
|
4280
4335
|
settings: ANY_OBJECT_SCHEMA,
|
|
4281
4336
|
defaultFilter: {
|
|
4282
4337
|
allOf: [ref("FlowSurfaceFilterGroup")],
|
|
@@ -4368,10 +4423,14 @@ const schemas = {
|
|
|
4368
4423
|
collectionName: {
|
|
4369
4424
|
type: "string"
|
|
4370
4425
|
},
|
|
4371
|
-
|
|
4372
|
-
|
|
4373
|
-
|
|
4374
|
-
},
|
|
4426
|
+
fieldType: RELATION_FIELD_TYPE_SCHEMA,
|
|
4427
|
+
fields: RELATION_TARGET_FIELDS_SCHEMA,
|
|
4428
|
+
selectorFields: RELATION_SELECTOR_FIELDS_SCHEMA,
|
|
4429
|
+
titleField: { type: "string" },
|
|
4430
|
+
openMode: { type: "string", example: "drawer" },
|
|
4431
|
+
popupSize: { type: "string", example: "medium" },
|
|
4432
|
+
pageSize: { type: "number", example: 10 },
|
|
4433
|
+
showIndex: { type: "boolean", example: true },
|
|
4375
4434
|
defaultTargetUid: {
|
|
4376
4435
|
type: "string"
|
|
4377
4436
|
},
|
|
@@ -4546,6 +4605,11 @@ const schemas = {
|
|
|
4546
4605
|
template: ref("FlowSurfaceBlockTemplateRef"),
|
|
4547
4606
|
resource: ref("FlowSurfaceBlockResourceInput"),
|
|
4548
4607
|
resourceInit: ref("FlowSurfaceResourceInit"),
|
|
4608
|
+
fields: {
|
|
4609
|
+
type: "array",
|
|
4610
|
+
items: ref("FlowSurfaceComposeFieldSpec")
|
|
4611
|
+
},
|
|
4612
|
+
fieldsLayout: ref("FlowSurfaceComposeLayout"),
|
|
4549
4613
|
settings: ANY_OBJECT_SCHEMA,
|
|
4550
4614
|
defaultFilter: {
|
|
4551
4615
|
allOf: [ref("FlowSurfaceFilterGroup")],
|
|
@@ -4590,9 +4654,14 @@ const schemas = {
|
|
|
4590
4654
|
collectionName: {
|
|
4591
4655
|
type: "string"
|
|
4592
4656
|
},
|
|
4593
|
-
|
|
4594
|
-
|
|
4595
|
-
|
|
4657
|
+
fieldType: RELATION_FIELD_TYPE_SCHEMA,
|
|
4658
|
+
fields: RELATION_TARGET_FIELDS_SCHEMA,
|
|
4659
|
+
selectorFields: RELATION_SELECTOR_FIELDS_SCHEMA,
|
|
4660
|
+
titleField: { type: "string" },
|
|
4661
|
+
openMode: { type: "string", example: "drawer" },
|
|
4662
|
+
popupSize: { type: "string", example: "medium" },
|
|
4663
|
+
pageSize: { type: "number", example: 10 },
|
|
4664
|
+
showIndex: { type: "boolean", example: true },
|
|
4596
4665
|
defaultTargetUid: {
|
|
4597
4666
|
type: "string"
|
|
4598
4667
|
},
|
package/dist/swagger/index.d.ts
CHANGED
|
@@ -117,6 +117,44 @@ declare const _default: {
|
|
|
117
117
|
fieldPath: {
|
|
118
118
|
type: string;
|
|
119
119
|
};
|
|
120
|
+
fieldType: {
|
|
121
|
+
type: string;
|
|
122
|
+
enum: string[];
|
|
123
|
+
description: string;
|
|
124
|
+
};
|
|
125
|
+
fields: {
|
|
126
|
+
type: string;
|
|
127
|
+
items: {
|
|
128
|
+
type: string;
|
|
129
|
+
};
|
|
130
|
+
description: string;
|
|
131
|
+
};
|
|
132
|
+
selectorFields: {
|
|
133
|
+
type: string;
|
|
134
|
+
items: {
|
|
135
|
+
type: string;
|
|
136
|
+
};
|
|
137
|
+
description: string;
|
|
138
|
+
};
|
|
139
|
+
titleField: {
|
|
140
|
+
type: string;
|
|
141
|
+
};
|
|
142
|
+
openMode: {
|
|
143
|
+
type: string;
|
|
144
|
+
example: string;
|
|
145
|
+
};
|
|
146
|
+
popupSize: {
|
|
147
|
+
type: string;
|
|
148
|
+
example: string;
|
|
149
|
+
};
|
|
150
|
+
pageSize: {
|
|
151
|
+
type: string;
|
|
152
|
+
example: number;
|
|
153
|
+
};
|
|
154
|
+
showIndex: {
|
|
155
|
+
type: string;
|
|
156
|
+
example: boolean;
|
|
157
|
+
};
|
|
120
158
|
renderer: {
|
|
121
159
|
type: string;
|
|
122
160
|
enum: string[];
|
|
@@ -157,6 +195,14 @@ declare const _default: {
|
|
|
157
195
|
additionalProperties: boolean;
|
|
158
196
|
};
|
|
159
197
|
fieldPath?: undefined;
|
|
198
|
+
fieldType?: undefined;
|
|
199
|
+
fields?: undefined;
|
|
200
|
+
selectorFields?: undefined;
|
|
201
|
+
titleField?: undefined;
|
|
202
|
+
openMode?: undefined;
|
|
203
|
+
popupSize?: undefined;
|
|
204
|
+
pageSize?: undefined;
|
|
205
|
+
showIndex?: undefined;
|
|
160
206
|
renderer?: undefined;
|
|
161
207
|
associationPathName?: undefined;
|
|
162
208
|
target?: undefined;
|
|
@@ -2025,6 +2071,44 @@ declare const _default: {
|
|
|
2025
2071
|
type: {
|
|
2026
2072
|
type: string;
|
|
2027
2073
|
};
|
|
2074
|
+
fieldType: {
|
|
2075
|
+
type: string;
|
|
2076
|
+
enum: string[];
|
|
2077
|
+
description: string;
|
|
2078
|
+
};
|
|
2079
|
+
fields: {
|
|
2080
|
+
type: string;
|
|
2081
|
+
items: {
|
|
2082
|
+
type: string;
|
|
2083
|
+
};
|
|
2084
|
+
description: string;
|
|
2085
|
+
};
|
|
2086
|
+
selectorFields: {
|
|
2087
|
+
type: string;
|
|
2088
|
+
items: {
|
|
2089
|
+
type: string;
|
|
2090
|
+
};
|
|
2091
|
+
description: string;
|
|
2092
|
+
};
|
|
2093
|
+
titleField: {
|
|
2094
|
+
type: string;
|
|
2095
|
+
};
|
|
2096
|
+
openMode: {
|
|
2097
|
+
type: string;
|
|
2098
|
+
example: string;
|
|
2099
|
+
};
|
|
2100
|
+
popupSize: {
|
|
2101
|
+
type: string;
|
|
2102
|
+
example: string;
|
|
2103
|
+
};
|
|
2104
|
+
pageSize: {
|
|
2105
|
+
type: string;
|
|
2106
|
+
example: number;
|
|
2107
|
+
};
|
|
2108
|
+
showIndex: {
|
|
2109
|
+
type: string;
|
|
2110
|
+
example: boolean;
|
|
2111
|
+
};
|
|
2028
2112
|
label: {
|
|
2029
2113
|
type: string;
|
|
2030
2114
|
};
|
|
@@ -3201,6 +3285,15 @@ declare const _default: {
|
|
|
3201
3285
|
resourceInit: {
|
|
3202
3286
|
$ref: string;
|
|
3203
3287
|
};
|
|
3288
|
+
fields: {
|
|
3289
|
+
type: string;
|
|
3290
|
+
items: {
|
|
3291
|
+
$ref: string;
|
|
3292
|
+
};
|
|
3293
|
+
};
|
|
3294
|
+
fieldsLayout: {
|
|
3295
|
+
$ref: string;
|
|
3296
|
+
};
|
|
3204
3297
|
settings: {
|
|
3205
3298
|
type: string;
|
|
3206
3299
|
additionalProperties: boolean;
|
|
@@ -3304,10 +3397,44 @@ declare const _default: {
|
|
|
3304
3397
|
collectionName: {
|
|
3305
3398
|
type: string;
|
|
3306
3399
|
};
|
|
3307
|
-
|
|
3400
|
+
fieldType: {
|
|
3308
3401
|
type: string;
|
|
3402
|
+
enum: string[];
|
|
3403
|
+
description: string;
|
|
3404
|
+
};
|
|
3405
|
+
fields: {
|
|
3406
|
+
type: string;
|
|
3407
|
+
items: {
|
|
3408
|
+
type: string;
|
|
3409
|
+
};
|
|
3309
3410
|
description: string;
|
|
3310
3411
|
};
|
|
3412
|
+
selectorFields: {
|
|
3413
|
+
type: string;
|
|
3414
|
+
items: {
|
|
3415
|
+
type: string;
|
|
3416
|
+
};
|
|
3417
|
+
description: string;
|
|
3418
|
+
};
|
|
3419
|
+
titleField: {
|
|
3420
|
+
type: string;
|
|
3421
|
+
};
|
|
3422
|
+
openMode: {
|
|
3423
|
+
type: string;
|
|
3424
|
+
example: string;
|
|
3425
|
+
};
|
|
3426
|
+
popupSize: {
|
|
3427
|
+
type: string;
|
|
3428
|
+
example: string;
|
|
3429
|
+
};
|
|
3430
|
+
pageSize: {
|
|
3431
|
+
type: string;
|
|
3432
|
+
example: number;
|
|
3433
|
+
};
|
|
3434
|
+
showIndex: {
|
|
3435
|
+
type: string;
|
|
3436
|
+
example: boolean;
|
|
3437
|
+
};
|
|
3311
3438
|
defaultTargetUid: {
|
|
3312
3439
|
type: string;
|
|
3313
3440
|
};
|
|
@@ -3513,6 +3640,15 @@ declare const _default: {
|
|
|
3513
3640
|
resourceInit: {
|
|
3514
3641
|
$ref: string;
|
|
3515
3642
|
};
|
|
3643
|
+
fields: {
|
|
3644
|
+
type: string;
|
|
3645
|
+
items: {
|
|
3646
|
+
$ref: string;
|
|
3647
|
+
};
|
|
3648
|
+
};
|
|
3649
|
+
fieldsLayout: {
|
|
3650
|
+
$ref: string;
|
|
3651
|
+
};
|
|
3516
3652
|
settings: {
|
|
3517
3653
|
type: string;
|
|
3518
3654
|
additionalProperties: boolean;
|
|
@@ -3567,8 +3703,43 @@ declare const _default: {
|
|
|
3567
3703
|
collectionName: {
|
|
3568
3704
|
type: string;
|
|
3569
3705
|
};
|
|
3570
|
-
|
|
3706
|
+
fieldType: {
|
|
3707
|
+
type: string;
|
|
3708
|
+
enum: string[];
|
|
3709
|
+
description: string;
|
|
3710
|
+
};
|
|
3711
|
+
fields: {
|
|
3712
|
+
type: string;
|
|
3713
|
+
items: {
|
|
3714
|
+
type: string;
|
|
3715
|
+
};
|
|
3716
|
+
description: string;
|
|
3717
|
+
};
|
|
3718
|
+
selectorFields: {
|
|
3719
|
+
type: string;
|
|
3720
|
+
items: {
|
|
3721
|
+
type: string;
|
|
3722
|
+
};
|
|
3723
|
+
description: string;
|
|
3724
|
+
};
|
|
3725
|
+
titleField: {
|
|
3726
|
+
type: string;
|
|
3727
|
+
};
|
|
3728
|
+
openMode: {
|
|
3729
|
+
type: string;
|
|
3730
|
+
example: string;
|
|
3731
|
+
};
|
|
3732
|
+
popupSize: {
|
|
3733
|
+
type: string;
|
|
3734
|
+
example: string;
|
|
3735
|
+
};
|
|
3736
|
+
pageSize: {
|
|
3737
|
+
type: string;
|
|
3738
|
+
example: number;
|
|
3739
|
+
};
|
|
3740
|
+
showIndex: {
|
|
3571
3741
|
type: string;
|
|
3742
|
+
example: boolean;
|
|
3572
3743
|
};
|
|
3573
3744
|
defaultTargetUid: {
|
|
3574
3745
|
type: string;
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"displayName.zh-CN": "前端流引擎",
|
|
5
5
|
"description": "",
|
|
6
6
|
"description.zh-CN": "",
|
|
7
|
-
"version": "2.1.0-alpha.
|
|
7
|
+
"version": "2.1.0-alpha.25",
|
|
8
8
|
"main": "./dist/server/index.js",
|
|
9
9
|
"license": "Apache-2.0",
|
|
10
10
|
"devDependencies": {
|
|
@@ -24,5 +24,5 @@
|
|
|
24
24
|
"@nocobase/test": "2.x",
|
|
25
25
|
"@nocobase/utils": "2.x"
|
|
26
26
|
},
|
|
27
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "63e4aaa625f3108fe41238e85bb13dee37fe1f48"
|
|
28
28
|
}
|