feat: lasso selection, multi-select panel, and named groups
- Add lasso/box selection via selectionOnDrag (Space to pan, lasso by default) - Add lasso/pan toggle button in canvas controls (bottom-left) - Multi-select panel in right panel when 2+ nodes selected (including zones) - Create named Group node from selected nodes with bounding box math - Group node: resizable, inline rename, show/hide border toggle, status summary - GroupDetailPanel: lists members, online/offline count, ungroup action - Fix group persistence after save/reload (extend proxmox container map to include group nodes) - Fix groupRect serialization to preserve parent_id - Remove background color from group and proxmox container node wrappers - Add tests for all new store actions, GroupNode, MultiSelectPanel, GroupDetailPanel
This commit is contained in:
@@ -16,6 +16,7 @@ export type NodeType =
|
||||
| 'docker'
|
||||
| 'generic'
|
||||
| 'groupRect'
|
||||
| 'group'
|
||||
|
||||
export type TextPosition =
|
||||
| 'top-left'
|
||||
@@ -76,6 +77,7 @@ export interface NodeData extends Record<string, unknown> {
|
||||
label_position?: 'inside' | 'outside'
|
||||
text_size?: number
|
||||
z_order?: number
|
||||
show_border?: boolean
|
||||
width?: number
|
||||
height?: number
|
||||
}
|
||||
@@ -112,6 +114,7 @@ export const NODE_TYPE_LABELS: Record<NodeType, string> = {
|
||||
docker: 'Docker Host',
|
||||
generic: 'Generic Device',
|
||||
groupRect: 'Group Rectangle',
|
||||
group: 'Node Group',
|
||||
}
|
||||
|
||||
export const STATUS_COLORS: Record<NodeStatus, string> = {
|
||||
|
||||
Reference in New Issue
Block a user