cxtms 1.9.249 → 1.9.251
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/package.json +1 -1
- package/schemas/components/field-collection.json +29 -0
- package/schemas/schema.graphql +10 -0
- package/schemas/workflows/flow/transition.json +1 -1
- package/skills/cxtms-developer/ref-entity-dispatch-routing.md +1 -0
- package/skills/cxtms-module-builder/ref-components-forms.md +8 -0
- package/skills/cxtms-workflow-builder/ref-flow.md +1 -1
package/package.json
CHANGED
|
@@ -210,6 +210,35 @@
|
|
|
210
210
|
"isClosed": false
|
|
211
211
|
}
|
|
212
212
|
},
|
|
213
|
+
"onItemAdd": {
|
|
214
|
+
"$ref": "../schemas.json#/definitions/actionsList",
|
|
215
|
+
"description": "Actions fired after an item is added. Variables include parentItem, item, index, and fieldName."
|
|
216
|
+
},
|
|
217
|
+
"onItemRemove": {
|
|
218
|
+
"$ref": "../schemas.json#/definitions/actionsList",
|
|
219
|
+
"description": "Actions fired after an item is removed. Variables include parentItem, the removed item, index, and fieldName."
|
|
220
|
+
},
|
|
221
|
+
"dotsMenu": {
|
|
222
|
+
"type": "object",
|
|
223
|
+
"required": ["items"],
|
|
224
|
+
"properties": {
|
|
225
|
+
"items": {
|
|
226
|
+
"type": "array",
|
|
227
|
+
"items": {
|
|
228
|
+
"type": "object",
|
|
229
|
+
"required": ["label"],
|
|
230
|
+
"properties": {
|
|
231
|
+
"label": { "type": ["string", "object"] },
|
|
232
|
+
"disabled": {},
|
|
233
|
+
"permission": { "type": "string" },
|
|
234
|
+
"onClick": { "$ref": "../schemas.json#/definitions/actionsList" },
|
|
235
|
+
"remove": { "type": "boolean", "default": false }
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
"description": "Custom per-item menu. Items with remove=true invoke built-in collection removal; other items dispatch onClick."
|
|
241
|
+
},
|
|
213
242
|
"groupMode": {
|
|
214
243
|
"type": "boolean",
|
|
215
244
|
"default": false,
|
package/schemas/schema.graphql
CHANGED
|
@@ -11038,6 +11038,9 @@ extend type Mutation {
|
|
|
11038
11038
|
createOrderMove(input: CreateOrderMoveInput!): CreateOrderMovePayload!
|
|
11039
11039
|
updateOrderMove(input: UpdateOrderMoveInput!): UpdateOrderMovePayload!
|
|
11040
11040
|
deleteOrderMove(input: DeleteOrderMoveInput!): DeleteOrderMovePayload!
|
|
11041
|
+
createOrderMoveLeg(input: CreateOrderMoveLegInput!): CreateOrderMoveLegPayload!
|
|
11042
|
+
updateOrderMoveLeg(input: UpdateOrderMoveLegInput!): UpdateOrderMoveLegPayload!
|
|
11043
|
+
deleteOrderMoveLeg(input: DeleteOrderMoveLegInput!): DeleteOrderMoveLegPayload!
|
|
11041
11044
|
}
|
|
11042
11045
|
|
|
11043
11046
|
type OrderMovesCollectionSegment {
|
|
@@ -11093,7 +11096,14 @@ input CreateOrderMoveCommandValuesInput { orderId: Int!, sequence: Int, name: St
|
|
|
11093
11096
|
input CreateOrderMoveLegValuesInput { name: String, orderMoveLegStatusId: Int, startDate: DateTime, endDate: DateTime, customValues: MapOfObject }
|
|
11094
11097
|
input UpdateOrderMoveInput { organizationId: Int!, orderMoveId: Int!, values: MapOfObject! }
|
|
11095
11098
|
input DeleteOrderMoveInput { organizationId: Int!, orderMoveId: Int! }
|
|
11099
|
+
input CreateOrderMoveLegInput { organizationId: Int!, values: CreateOrderMoveLegCommandValuesInput! }
|
|
11100
|
+
input CreateOrderMoveLegCommandValuesInput { orderMoveId: Int!, sequence: Int, name: String, orderMoveLegStatusId: Int, startDate: DateTime, endDate: DateTime, customValues: MapOfObject }
|
|
11101
|
+
input UpdateOrderMoveLegInput { organizationId: Int!, orderMoveLegId: Int!, values: MapOfObject! }
|
|
11102
|
+
input DeleteOrderMoveLegInput { organizationId: Int!, orderMoveLegId: Int! }
|
|
11096
11103
|
type CreateOrderMovePayload { orderMove: orderMove, query: Query! }
|
|
11097
11104
|
type UpdateOrderMovePayload { orderMove: orderMove, query: Query! }
|
|
11098
11105
|
type DeleteOrderMovePayload { deleteResult: DeleteResult, query: Query! }
|
|
11106
|
+
type CreateOrderMoveLegPayload { orderMoveLeg: orderMoveLeg, query: Query! }
|
|
11107
|
+
type UpdateOrderMoveLegPayload { orderMoveLeg: orderMoveLeg, query: Query! }
|
|
11108
|
+
type DeleteOrderMoveLegPayload { deleteResult: DeleteResult, query: Query! }
|
|
11099
11109
|
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"oneOf": [
|
|
18
18
|
{
|
|
19
19
|
"type": "string",
|
|
20
|
-
"description": "Single source state name, or '*' for wildcard (any non-final state)."
|
|
20
|
+
"description": "Single source state name, or '*' for wildcard (any non-final state except the transition's own target state)."
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
"type": "array",
|
|
@@ -186,6 +186,7 @@ are appended and omitted existing records are not deleted.
|
|
|
186
186
|
- Order move queries: `orderMove`, `orderMoves`, `orderMoveStatus`, `orderMoveStatuses`, `orderMoveLegStatus`, and `orderMoveLegStatuses`.
|
|
187
187
|
- Nested order resolvers: `getOrderMoves(filter, orderBy)` returns pending or statusless moves (defaulted to sequence order), while `getOrderMove(filter, orderBy)` returns the first matching pending or statusless move. Moves whose status stage is no longer `Pending` are excluded.
|
|
188
188
|
- Order move mutations create, sparse-update, and soft-delete moves; create/update accepts nested `orderMoveLegs`, reconciled by ID and array order. Omitted or `isDeleted: true` legs are soft-deleted, new already-deleted legs are ignored, and only active legs consume sequence positions.
|
|
189
|
+
- `createOrderMoveLeg`, `updateOrderMoveLeg`, and `deleteOrderMoveLeg` manage one leg without resending the parent move. Create requires `orderMoveId`, appends after the last active leg when `sequence` is omitted, and accepts name, status, dates, and custom values. Update takes a sparse values map; delete is soft. Each operation is organization-scoped through the parent move.
|
|
189
190
|
- A dynamic order update can supply `orderMoves` to reconcile the full collection with the same rules. New moves inherit `organizationId` and `orderId` from the aggregate; omitted or explicitly deleted moves are soft-deleted; active moves and nested legs are resequenced from 1.
|
|
190
191
|
- Mutations use `input: { organizationId, values }` and return payload fields named `dispatchRouteStatus`, `dispatchRouteStopStatus`, `dispatchRouteTemplate`, `dispatchRoute`, or `generateDispatchRoutesResult`.
|
|
191
192
|
- Stop status mutations: `createDispatchRouteStopStatus`, `updateDispatchRouteStopStatus`, `deleteDispatchRouteStopStatus`.
|
|
@@ -593,6 +593,9 @@ When `options.allowRemove` is enabled and the item count is above `minItems`, re
|
|
|
593
593
|
| `addButton.icon` | `string` | `plus` | Add button icon |
|
|
594
594
|
| `addButton.position` | `top \| bottom \| both` | `bottom` | Add button placement |
|
|
595
595
|
| `defaultItem` | `any` | — | Template for new items |
|
|
596
|
+
| `onItemAdd` | `action[]` | — | Fires after add with `parentItem`, new `item`, `index`, and `fieldName` |
|
|
597
|
+
| `onItemRemove` | `action[]` | — | Fires after removal with `parentItem`, removed `item`, `index`, and `fieldName` |
|
|
598
|
+
| `dotsMenu.items` | `{label,disabled?,permission?,onClick?,remove?}[]` | Delete only | Custom per-item menu; `remove: true` invokes built-in soft/hard removal |
|
|
596
599
|
| `layout` | `list \| grid \| accordion` | `list` | Layout mode |
|
|
597
600
|
| `cols` | `number` | `1` | Grid columns (non-responsive). For adaptive item layouts, set `cols: 1` and use a `layout` inside `itemTemplate` with `itemDefaults.size: { xs, md }`. |
|
|
598
601
|
| `groupCols` | `number \| {xs,sm,md,lg,xl}` | `1` | Group columns when `groupMode` is true |
|
|
@@ -623,6 +626,11 @@ the header unless its position is explicit. Nested collections collapse by defau
|
|
|
623
626
|
records expand automatically. `itemIcon`, `itemSubtitle`, and badge/count templates receive the
|
|
624
627
|
parent variables plus `item`, `index`, and the item's own fields.
|
|
625
628
|
|
|
629
|
+
Add/remove hooks support live persistence rather than waiting for a parent form submit. Custom
|
|
630
|
+
menu actions receive the same row variables. A field's `onBlur` action receives its current value
|
|
631
|
+
as `changedValues`, and placeholders inside item templates can reference `item`, `index`, and
|
|
632
|
+
`parentItem`.
|
|
633
|
+
|
|
626
634
|
```yaml
|
|
627
635
|
component: field-collection
|
|
628
636
|
name: lineItems
|
|
@@ -175,7 +175,7 @@ For Order-triggered auto-transitions, `order.orderStatusName` is available in th
|
|
|
175
175
|
### From States
|
|
176
176
|
- Single state: `from: Draft`
|
|
177
177
|
- Multiple states: `from: [Draft, Submitted]`
|
|
178
|
-
- Wildcard (any non-final state): `from: "*"
|
|
178
|
+
- Wildcard (any non-final state other than the transition's own target): `from: "*"`. This prevents a wildcard transition from repeatedly transitioning an entity into its current state; matching is case-insensitive.
|
|
179
179
|
|
|
180
180
|
### Execution Order
|
|
181
181
|
1. Validate transition from current state
|