{
  "$schema": "https://vega.github.io/schema/vega/v6.json",
  "width": 200,
  "height": 200,
  "padding": 5,
  "signals": [
    {
      "name": "x",
      "value": 100,
      "bind": {
        "input": "range",
        "min": 0,
        "max": 200,
        "step": 1,
        "name": "Координата X"
      }
    },
    {
      "name": "y",
      "value": 100,
      "bind": {
        "input": "range",
        "min": 0,
        "max": 200,
        "step": 1,
        "name": "Координата Y"
      }
    },
    {
      "name": "dx",
      "value": 0,
      "bind": {
        "input": "range",
        "min": -20,
        "max": 20,
        "step": 1,
        "name": "Смещение по X"
      }
    },
    {
      "name": "angle",
      "value": 0,
      "bind": {
        "input": "range",
        "min": -180,
        "max": 180,
        "step": 1,
        "name": "Угол поворота"
      }
    },
    {
      "name": "fontSize",
      "value": 18,
      "bind": {
        "input": "range",
        "min": 1,
        "max": 36,
        "step": 1,
        "name": "Размер шрифта"
      }
    },
    {
      "name": "limit",
      "value": 0,
      "bind": {
        "input": "range",
        "min": 0,
        "max": 150,
        "step": 1,
        "name": "Ограничение длины"
      }
    },
    {
      "name": "align",
      "value": "left",
      "bind": {
        "input": "select",
        "options": [
          "left",
          "center",
          "right"
        ],
        "name": "Выравнивание по горизонтали",
        "labels": [
          "Слева",
          "По центру",
          "Справа"
        ]
      }
    },
    {
      "name": "baseline",
      "value": "alphabetic",
      "bind": {
        "input": "select",
        "options": [
          "alphabetic",
          "top",
          "middle",
          "bottom"
        ],
        "name": "Базовая линия",
        "labels": [
          "По базовой линии",
          "Сверху",
          "Посередине",
          "Снизу"
        ]
      }
    },
    {
      "name": "font",
      "value": "sans-serif",
      "bind": {
        "input": "select",
        "options": [
          "sans-serif",
          "serif",
          "monospace"
        ],
        "name": "Гарнитура шрифта",
        "labels": [
          "Без засечек",
          "С засечками",
          "Моноширинный"
        ]
      }
    },
    {
      "name": "fontWeight",
      "value": "normal",
      "bind": {
        "input": "select",
        "options": [
          "normal",
          "bold"
        ],
        "name": "Насыщенность шрифта",
        "labels": [
          "Обычная",
          "Полужирная"
        ]
      }
    },
    {
      "name": "fontStyle",
      "value": "normal",
      "bind": {
        "input": "select",
        "options": [
          "normal",
          "italic"
        ],
        "name": "Начертание шрифта",
        "labels": [
          "Обычное",
          "Курсив"
        ]
      }
    }
  ],
  "marks": [
    {
      "type": "symbol",
      "interactive": false,
      "encode": {
        "enter": {
          "fill": {
            "value": "firebrick"
          },
          "size": {
            "value": 25
          }
        },
        "update": {
          "x": {
            "signal": "x"
          },
          "y": {
            "signal": "y"
          }
        }
      }
    },
    {
      "type": "text",
      "encode": {
        "enter": {
          "fill": {
            "value": "#000"
          },
          "text": {
            "value": "Текстовая подпись"
          }
        },
        "update": {
          "opacity": {
            "value": 1
          },
          "x": {
            "signal": "x"
          },
          "y": {
            "signal": "y"
          },
          "dx": {
            "signal": "dx"
          },
          "angle": {
            "signal": "angle"
          },
          "align": {
            "signal": "align"
          },
          "baseline": {
            "signal": "baseline"
          },
          "font": {
            "signal": "font"
          },
          "fontSize": {
            "signal": "fontSize"
          },
          "fontStyle": {
            "signal": "fontStyle"
          },
          "fontWeight": {
            "signal": "fontWeight"
          },
          "limit": {
            "signal": "limit"
          }
        },
        "hover": {
          "opacity": {
            "value": 0.5
          }
        }
      }
    }
  ]
}
