Add direct diagram connections, movable ports, and contextual authoring
This commit is contained in:
@@ -3615,6 +3615,32 @@
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"PortAnchorSide": {
|
||||
"type": "string",
|
||||
"enum": ["Left", "Right", "Top", "Bottom"],
|
||||
"description": "Presentation side of the owner placement; independent of semantic port direction."
|
||||
},
|
||||
"PortAnchor": {
|
||||
"type": "object",
|
||||
"description": "Manual position of a direct child Port on one owner placement. Each port occurs at most once per placement; this record has no separate identity.",
|
||||
"properties": {
|
||||
"port": {
|
||||
"type": "string",
|
||||
"format": "uuid"
|
||||
},
|
||||
"side": {
|
||||
"$ref": "#/components/schemas/PortAnchorSide"
|
||||
},
|
||||
"offset": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 1,
|
||||
"description": "Finite binary32 fraction of the complete owner edge, measured from top on Left/Right and from left on Top/Bottom."
|
||||
}
|
||||
},
|
||||
"required": ["port", "side", "offset"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"NodePlacement": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -3639,6 +3665,14 @@
|
||||
},
|
||||
"collapsed": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"port_anchors": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/PortAnchor"
|
||||
},
|
||||
"default": [],
|
||||
"description": "Per-placement manual port positions. Omitted and empty both select automatic positioning; empty lists are omitted on serialization. Duplicate port references are invalid."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -4734,6 +4768,42 @@
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"SetPortAnchor": {
|
||||
"type": "object",
|
||||
"description": "Upsert manual port position by port identity on an existing owner placement, preserving unrelated entries. Port must be a direct child of the placement's semantic element.",
|
||||
"properties": {
|
||||
"diagram": { "type": "string", "format": "uuid" },
|
||||
"node": { "type": "string", "format": "uuid" },
|
||||
"anchor": { "$ref": "#/components/schemas/PortAnchor" }
|
||||
},
|
||||
"required": ["diagram", "node", "anchor"],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": ["SetPortAnchor"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"RemovePortAnchor": {
|
||||
"type": "object",
|
||||
"description": "Restore automatic positioning for an existing direct child Port. No-op when that valid owner placement has no manual anchor for the port; wrong or stale ownership is rejected.",
|
||||
"properties": {
|
||||
"diagram": { "type": "string", "format": "uuid" },
|
||||
"node": { "type": "string", "format": "uuid" },
|
||||
"port": { "type": "string", "format": "uuid" }
|
||||
},
|
||||
"required": ["diagram", "node", "port"],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": ["RemovePortAnchor"],
|
||||
"additionalProperties": false
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
|
||||
Reference in New Issue
Block a user