Unit (блок, юнит) - сущность, представляющая собой единицу деления клиента на асинхронно подгружаемые части (т.н. чанки, от англ. chunk - "кусок", "ломоть").
Содержимое юнитов описывается в виде списка входящих в него форм. При начальной загрузке клиента загружаются только те юниты, которые необходимы для отображения стартовой формы или, если произошёл переход по ссылке на конкретную форму - этой формы. Прочие юниты загружаются при первом обращении к ним (в общем случае это открытие формы по какому-либо маршруту).
Содержимое меню документов также строится на основе файла описания юнитов.
Описание юнитов#
Файлом описания юнитов (и, как следствие, точек разделения клиента) является файл units.json, по умолчанию расположенный в корне каталога source прикладного проекта. Файл должен представлять собой массив объектов, каждый из которых является описанием юнита. Объект юнита должен содержать следующие свойства:
- name - уникальное имя юнита
- caption - текст заголовка, под которым данный юнит будет фигурировать в интерфейсе навигации
- roles - массив ролей, обладатели которых будут иметь доступ к данному юниту. Если не задан, то юнит будет доступен всем пользователям
- expanded - флаг, отвечающая за раскрытие группы при создании меню документов. По умолчанию значение false (В случае, если нужно отрывать группу, находящуюся в другой группе, то данный флаг нужно указать и у родительской группы. Если у одной из дочерних групп указать true, а у корневой false, то дочерняя группа будет закрытой)
- views - массив объектов, каждый из которых является описанием представления ("остановки" маршрута view), либо описанием юнита (позволяет создать древовидную структуру). Объект представления должен содержать следующие свойства:
- key - ключ представления
- caption - текст заголовка, под которым данное представление будет фигурировать в интерфейсе навигации. Если не задан, то представление не будет отображаться в меню документов
- creation - флаг, отвечающий за отображение иконки для создания документа из меню. Учитывается только для форм-наследников класса Registry. По умолчанию значение false
- form - класс формы, связанной с данным представлением
- если модуль, содержащий класс, экспортирует его по умолчанию (export default class MyForm), то в качестве значения свойства form достаточно передать путь к модулю (например, "form": "./forms/myForm")
- если модуль, содержащий класс, экспортирует его не по умолчанию (export class TestForm), то значением свойства form должен быть массив с двумя элементами: имя экспорта и путь к модулю (например, "form": ["TestForm", "./forms/testForm"])
- если класс импортируется из библиотеки, то, в большинстве случаев, он экспортируется под каким-то конкретным именем, и должен быть импортирован с помощью второго варианта (например, "form": ["SearchForm", "ecosoft-lexema8-app-lib"])