$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
-- Конфигурация проекта, полифилы, утилиты. См. Конфигурация системы.