Skip to main content

Label Model

Data structure for text labels within blocks. Labels are used to display row numbers, section names, or other text indicators on the seatmap.

Hierarchy​

LabelModel sits within the BlockModel alongside seats:

DataModel
└── blocks[] (array of BlockModel)
├── seats[] (array of SeatModel)
└── labels[] (array of LabelModel) ← You are here

Full hierarchy example:

{
"blocks": [
{
"id": "orchestra",
"title": "Orchestra",
"color": "#2c3e50", // ← BlockModel properties
"seats": [ // ← seats array (sibling to labels)
{
"id": "A1",
"x": 0,
"y": 0,
"title": "A1",
"salable": true
}
],
"labels": [ // ← labels array (LabelModel[])
{ // ← YOU ARE HERE
"title": "Row A",
"x": -50,
"y": 0
},
{
"title": "Aisle →",
"x": 200,
"y": 15
}
]
}
]
}

Properties​

PropertyTypeRequiredDefaultDescription
titlestring✅-Label text to display
xnumber✅-X coordinate position
ynumber✅-Y coordinate position

Use Cases​

Labels are typically used for:

  • Row markers: "A", "B", "C", "Row 1", "Row 2"
  • Section indicators: "VIP", "General Admission", "Balcony"
  • Aisle markers: "Aisle 1", "Exit A"
  • Directional guides: "Stage", "Screen", "Field"

Example​

Simple row label:

{
"title": "Row A",
"x": -50,
"y": 0
}

Multiple labels in a block:

{
"id": "section-a",
"title": "Section A",
"color": "#2c3e50",
"labels": [
{ "title": "Row 1", "x": -40, "y": 0 },
{ "title": "Row 2", "x": -40, "y": 30 },
{ "title": "Row 3", "x": -40, "y": 60 },
{ "title": "Aisle →", "x": 200, "y": 30 }
],
"seats": [
{ "id": "A1", "x": 0, "y": 0, "title": "A1" },
{ "id": "A2", "x": 30, "y": 0, "title": "A2" }
]
}

TypeScript​

interface LabelData {
title: string;
x: number;
y: number;
}

Visual Rendering​

Labels are rendered as text elements with a small circular background:

  • Circle provides contrast against the background
  • Text is centered within the circle
  • Position is determined by x/y coordinates relative to the block

Notes​

  • Labels are optional - blocks can have zero or more labels
  • Labels are visual only - they don't affect seat selection or functionality
  • Coordinates (x, y) are relative to the block's coordinate system
  • Negative x values are commonly used to position labels to the left of seats