Менеджер метрик собирает и предоставляет отчёты по всем метрикам, относящимся к рабочему пространству Blockly. В этом руководстве описывается значение каждого набора метрик, возвращаемых Менеджером метрик. Подробнее о Менеджере метрик вы можете узнать, посмотрев наш видеообзор «Подробный анализ метрик» за 2021 год .
Метрики
Метрики панели инструментов
workspace.getMetricsManager().getToolboxMetrics();
Метрики панели инструментов состоят из height , width и position панели инструментов категории. Они не включают информацию о всплывающем меню, прикреплённом к панели инструментов.

position панели инструментов имеет тип Blockly.utils.toolbox.Position .
Всплывающие метрики
workspace.getMetricsManager().getFlyoutMetrics();
Метрики выпадающего списка состоят из height , width и position выпадающего списка инструментов. Важно отметить, что это не выпадающий список, прикреплённый к панели инструментов категории. Это относится только к выпадающим спискам инструментов, как показано на фотографии ниже.

position выпадающего списка имеет тип Blockly.utils.toolbox.Position .
Метрики SVG
workspace.getMetricsManager().getSvgMetrics();
Метрики SVG складываются из width и height родительского SVG-изображения рабочей области. Для основного рабочего пространства это SVG с классом blocklySvg . Этот SVG включает в себя видимое рабочее пространство, а также панель инструментов.

Просмотр метрик
workspace.getMetricsManager().getViewMetrics(opt_getWorkspaceCoordinates);
Метрики вида включают height , width , top и left области просмотра. Область просмотра — это видимая часть рабочего пространства. Сюда не входят ни один из типов панелей инструментов.

Верхний левый угол определяется относительно начала координат рабочей области. При перемещении курсора по рабочей области обновляются верхнее и левое положения области просмотра.

Абсолютные метрики
workspace.getMetricsManager().getAbsoluteMetrics();
Абсолютные метрики состоят из смещения области просмотра top и left относительно SVG-элемента. В зависимости от расположения панели инструментов на рабочем пространстве, это обычно её ширина или высота.


Метрики контента
workspace.getMetricsManager().getContentMetrics(opt_getWorkspaceCoordinates);
Показатели контента состоят из height , width , top и left ограничивающей рамки вокруг любых блоков или комментариев рабочей области.

Метрики прокрутки
workspace.getMetricsManager().getScrollMetrics(opt_getWorkspaceCoordinates);
Метрики прокрутки включают в себя height , width , top и left прокручиваемой области. Для перемещаемого рабочего пространства прокручиваемая область — это область контента с отступами.

Системы координат
По умолчанию все метрики, рассчитываемые менеджером метрик, возвращаются в виде пиксельных координат. При необходимости можно получить определённые метрики в координатах рабочей области, передав значение true методам работы с метриками. Например, metricsManager.getViewMetrics(true) .
workspaceCoordinate = pixelCoordinates / workspace.scale
Координаты рабочей области обычно используются для элементов, расположенных в рабочей области, таких как блоки и комментарии. Координаты рабочей области не меняются при изменении масштаба пользователем.
Переопределяющие метрики
Разработчики, желающие предоставить собственные метрики для рабочей области, могут зарегистрировать заменяющий объект менеджера метрик, который реализует интерфейс IMetricsManager или расширяет Blockly.MetricsManager .
Пример этого можно найти в плагине Continuous Toolbox или в плагине Fixed Edges .