Skip to content

Latest commit

 

History

History
85 lines (68 loc) · 8.71 KB

bem-blocks.md

File metadata and controls

85 lines (68 loc) · 8.71 KB

$Id: bem-blocks.md 10495 2018-08-08 11:24:37Z miheev $ $Date: 2018-08-08 14:24:37 +0300 (Ср, 08 авг 2018) $

Компоненты БЭМ-проекта (блоки)

Во время сборки по мере необходимости (указаны в общем файле зависимостей проекта WEB_TINTS/source/blocks/shared/app/app.deps.js или присутствуют в результирующем bemtree текущей страницы) подключаются библиотечные компоненты из папок WEB_TINTS/source/blocks/*.

Группы компонент исходного кода

Уровни переопределения задаются в файле конфигурации БЭМ-проекта:

  • WEB_TINTS/source/.bemrc.js.

Все уровни находятся в подпапках WEB_TINTS/source/blocks/*:

  • root -- Нижний уровень иерархии: в основном доопределения блоков из bem-components, bem-core.
  • shared -- Общие блоки. Конфигурация системы, компонент app, строение страницы приложения (page).
  • controllers -- Контроллеры для работы с данными, представлениями. Могут связываться между собой. См. методы в WEB_TINTS/source/blocks/shared/app/_controllers/app_controllers.js.
  • interface -- Основной набор интерфейсных блоков.
  • custom -- "Каcтомные" блоки, не включающиеся в общий пакет ("App"). TODO: Решить проблему с пересечением (использовать merge/substract?).
  • design -- Выделены интерфейсные блоки, имеющие большее отношение к внешнему виду системы.
  • helpers -- Вспомогательные блоки.
  • libs -- Библиотечные блоки. Преимущественно не имеют интерфейсного представления.
  • loaders -- Загрузчики библиотек из WEB_TINTS/source/libs и WEB_TINTS/source/libs-dev.
  • test -- Экспериментальные и демонстрационные (demo) блоки.

Основные компоненты (блоки) клиентского кода

(Пути к блокам указаны относительно WEB_TINTS/source/blocks.)

  • controllers/dataloader -- Контроллер загрузки данных. Может загружать данные из сети (модификатор src:servercolumns) и использовать локальный набор данных (src:local).

  • controllers/ObjectsSelector -- Реализация view-контроллера для выбора объектов (напр., КО).

  • controllers/pagerCtx -- Контроллер постраничного вывода.

  • controllers/sortCtx -- Контроллер сортировки данных.

  • controllers/tableview -- View-контроллер табличного вывода данных.

  • controllers/viewCtxMixin -- Миксин с базовыми методами api view-контроллера.

  • custom/AnyMapLoader -- Загрузчик библиотеки anymap.

  • custom/MapLabel -- Метка объекта ("выноска") на карте.

  • custom/MapPointsMixin -- Вспомогательные методы для работы с объектами на карте. Базовое api.

  • custom/MapView -- Основное экранный компонент для работы с картой.

  • custom/Report -- Ведущий блок, управляющий подготовкой и показом отчётов.

  • custom/ReportDisplay -- Блок, разворачивающий структуру для показа отчёта.

  • custom/ReportPrint -- Подготовка отчёта для вывода на печать.

  • design/NavHeader -- Шапка приложения, содержащая пользовательское меню, индикаторы, логтип/название системы/страницы и прочие служебные элементы.

  • design/NavMenu -- Главное навигационное меню системы.

  • helpers/popup_controller -- Управление всплывающими окнами. Показ сообщений, запрос пользовательского ввода и т.д. Блок без dom-представления.

  • helpers/popup_dialog -- Реализация всплывающего окна.

  • helpers/waiter -- Управление ожиданием завершения задач. Ранняя редакция. Блок без dom-представления.

  • interface/actions -- Группировка интерактивных элементов (напр., на панели).

  • interface/appEvents -- Работа с событиями о проблемах: показ списка сообщений, индикатора в шапке, приём данных через сокеты.

  • interface/appEventsItem -- Реализация одного элемента в списке сообщений о проблемах (appEvents).

  • interface/appholder -- Заставка во время инициализации/загрузки системы.

  • interface/box -- Основной элемент формирования геометрии интерфейса -- секция.

  • interface/boxActions -- Секция, объединяющая элементы управления (actions). С модификатором filters -- является контроллером фильтрации данных (включает управляющие эл-ты фильтров -- обычно создаются автоматически, по описанию данных, переданных контроллеру).

  • interface/KOActions -- Блок управления КО на карте (MapView) и в списке КО (MapList/MapListDetailed; ранее -- KOList/KOListDetails).

  • interface/MapList -- Список объектов и взаимодействие с картой.

  • interface/MapListDetailed -- Панель дополнительной информации для показа в составе разметки MapList.

  • interface/progressbar -- Полоска индикации прогресса выполнения задач. См. waiter.

  • interface/screenholder -- Экранная заставка-заглушка. Может быключена, показывать состояние "идёт загрузка" (со спинером), показывать сообщения об ошибках.

  • interface/scrollableMixin -- Основа кода для элементов интерфейсов с прокруткой. Базовое api.

  • interface/showInfo -- Показ информации в панелях actions и т.п.

  • interface/splashform -- Реализация форм на заставке (appholder, screenholder).

  • interface/SplitLayout -- Структура страницы с вертикальным и горизонтальным делением.

  • interface/TabsLayout -- Разметка с переключением контента по закладкам.

  • interface/ValueCell -- Элемент показа и редактирования данных.

  • interface/ValuesGroup -- Группа полей ввода. Структурный элемент содержимого: ValuesCell.

  • libs/requestor -- Организация ajax запросов со сквозной проверкой безопасности и интегрированной авторизацией. См. SecureAjax.

  • libs/SecureAjax -- Модуль для проведения ajax-запросов со сквозной авторизацией в системе Element.

  • libs/socket -- Реализация WebSockets.

  • shared/app -- Основной компонент single-page-application. См. примеси кода для модификаторов controllers, NavMenu.

  • shared/page -- Шаблон контента html-страницы приложения, стили элементов верхнего уровня (body, html).

  • shared/project -- Конфигурация проекта, полифилы, утилиты. См. Конфигурация системы.