Zone
Palito의 Zone을 나타내는데 사용되는 데이터 타입입니다. 각 Zone의 이름, id값 등을 담고 있습니다.
정의 예시
Zone = {
id: string;
name: string;
nodes: Node[]; // Node 객체의 배열
viewport: {
x: number;
y: number;
zoom: number;
};
};
필드 설명
| 필드명 | 타입 | 설명 |
|---|---|---|
id | string | Zone을 식별하는 유니크한 ID |
name | string | Zone의 표시 이름 |
nodes | Node[] | 해당 Zone에 포함된 노드(CBS/자산)의 배열 |
viewport | { x: number, y: number, zoom: number } | 마지막으로 저장된 화면 위치 및 확대 상태 |
viewport.x | number | 뷰포트의 x축 위치 (캔버스 좌표 기준) |
viewport.y | number | 뷰포트의 y축 위치 |
viewport.zoom | number | 뷰포트의 줌 레벨 (예: 1.0 = 100%) |
사용 예시
{
"id": "zone-2",
"name": "Sample Zone",
"nodes": [
{
"id": "8",
"type": "cbs",
"position": { "x": 425, "y": 225 },
"data": {
"system_name": "CBS",
"security_zone": "zone-2"
},
"style": {
"width": 700,
"height": 650
},
"measured": {
"width": 700,
"height": 650
},
"selected": false
},
{
"id": "9",
"type": "custom",
"position": { "x": 305, "y": 80 },
"data": {
"component_name": "Firewall",
"type": "Firewall",
"security_zone": "zone-2",
"system_category": "Network",
"other_system_connection": []
},
"measured": {
"width": 80,
"height": 100
},
"style": {},
"selected": false,
"parentId": "8",
"extent": "parent"
}
],
"viewport": {
"x": 350.7117668589808,
"y": 308.75703829088684,
"zoom": 0.7438277117503215
}
}