class Controls/Pending

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

Текущее действие запрашивает экземпляр класса Promise, который будет завершен после того, как завершатся все необходимые действия.

Например, всплывающее окно должно быть закрыто только после сохранения/не сохранения измененных данных, которые содержит это всплывающее окно.

Pending - это зарегистрированное в текущем экземпляре класса Controls/Pending необходимое действие, которое должно завершиться до начала текущего действия.

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

Примечание

Controls/Pending может запросить подтверждение перед закрытием вкладки/браузера, если пендинг зарегистрирован.

Controls/Pending имеет собственный LoadingIndicator, который может отображаться во время завершения пендинга. Этот LoadingIndicator имеет параметры по умолчанию.

В момент, когда будет зарегистрирован первый пендинг с параметром showLoadingIndicator = true, LoadingIndicator отобразит индикатор.

В момент, когда последний пендинг с параметром showLoadingIndicator = true завершится, индикатор скроется.

Controls/Pending обрабатывает 2 события: registerPending и cancelFinishingPending.

registerPending - регистрация пендинга

registerPending имеет 2 аргумента: [promise, config].

promise - пендинг будет отменен, когда Promise будет завершен.

config - это объект с параметрами:

- showLoadingIndicator (Boolean) - показывать индикатор загрузки или нет (во время регистрации пендинга)

- onPendingFail (Function) - будет вызвана при попытке завершить пендинг (вызовы finishPendingOperations).

Функция помогает завершить Promise. Пользователь должен завершить Promise (второй аргумент) в этой функции.

Это может быть синхронное или асинхронное завершение.

onPendingFail имеет 2 аргумента - [forceFinishValue, resultPromise].

forceFinishValue дает дополнительную информацию о завершении Promise.

resultPromise - Promise, по завершению которого завершается пендинг. Мы должны завершить его в функции onPendingFail.

forceFinishValue берется из аргумента finishPendingOperations (finishPendingOperations дает дополнительную информацию о завершении).

Пользователь может использовать этот аргумент в своей собственной функции onPendingFail.

Например, если в пендинге зарегистрирована измененная запись и нам нужно сохранить изменения, по умолчанию мы можем запросить подтверждение сохранения.

Но forceFinishValue может завершаться принудительно без подтверждения сохранения.

cancelFinishingPending - отменяет Promise, который возвращен finishPendingOperations. Этот Promise никогда не завершится.

Полезно использовать, когда пендинг не может быть завершен сейчас, но будет завершен позднее другим способом.

Например, когда всплывающее окно ожидает завершения пендингов перед закрытием, но запись не может быть сохранена из-за ошибок валидации.

В этом случае, если мы не отменим Promise с помощью finishPendingOperations, всплывающеe окно будет закрыто позже, когда будут исправлены ошибки валидации.

Тогда окно закроется неожиданно для пользователя, который, возможно, не хотел его закрывать.

Опции

Флаг, который отключает загрузку переменных тем оформления для контролов.

Control

Определяет, может ли пользователь изменить значение контрола.

(или взаимодействовать с контролом, если его значение не редактируется).

Control

Название темы оформления. В зависимости от темы загружаются различные таблицы стилей и применяются различные стили к контролу.

Control

Поля

Массив имен нетемизированных стилей, необходимых контролу.

Все стили будут скачаны при создании

Control

Массив имен темизированных стилей, необходимых контролу.

Все стили будут скачаны при создании

Control

Методы

protected

Асинхронный хук жизненного цикла контрола. Вызывается сразу после установки контрола в DOM-окружение.

Control
protected

Асинхронный хук жизненного цикла контрола. Вызывается после обновления контрола.

Control
protected

Хук жизненного цикла контрола. Вызывается непосредственно перед установкой контрола в DOM-окружение.

Control

Хук жизненного цикла контрола. Вызывается до удаления контрола.

Control
protected

Хук жизненного цикла контрола. Вызывается перед обновлением контрола.

Control

Синхронный хук жизненного цикла контрола. Вызывается сразу после установки контрола в DOM-окружение.

Control

Хук жизненного цикла контрола. Вызывается синхронно после применения измененной верстки контрола.

Control

Метод, который возвращает разметку для компонента

Control

Метод задания служебных опций

Control
protected

Определяет, должен ли контрол обновляться. Вызывается каждый раз перед обновлением контрола.

Control

Активирует контрол.

Control
protected

добавить ресурс, за которым будет происходить слежка

Control

Проверка загрузки стилей и тем контрола

Control

Загрузка стилей и тем контрола

Control

Вызовет загрузку коэффициентов (CSS переменных) для тем.

Control

Удаление link элементов из DOM

Control

События

Происходит при активации контрола.

Control

Происходит при деактивации контрола.

Control

Происходит в момент, когда в Controls/Pending не останется пендингов.

(после того, как последний пендинг завершится).

6/21/2021Красильников А.С.