Skip to content

WidgetManger

Методы API экземпляра WidgetManger

js
const afishaWidgetManager = new WidgetManger('81bbe10d-f527-4531-bb9a-758abbda6126')

initWidgets

js
/**
 * Ищет в document специальные тэги и инициализирует виджеты
 * @returns {void}
 */

afishaWidgetManager.initWidgets()

getWidget

js
/**
 * Возвращает экземпляр виджета по идентификатору
 * @param {string} id - Идентификатор виджета
 * @returns {InlineWidget | ModalWidget | undefined} - Экземпляр виджета
 */

afishaWidgetManager.getWidget('20c2fac0-b3de-4d47-a892-76063edca1e0')

destroyWidget

js
/**
 * Уничтожить экземпляр виджета по идентификатору
 * @param {string} id - Идентификатор виджета
 * @returns {ArrayWidgets} - Массив виджетов
 */

afishaWidgetManager.destroyWidget('20c2fac0-b3de-4d47-a892-76063edca1e0')

appendWidget

js
/**
 * Добавляет новый виджет на страницу
 * @param {WidgetParams} params - параметры виджета
 * @param {HTMLElement} [parent=document.body] - DOM Element в который будет смонтирован виджет
 * @returns {Promise<InlineWidget | ModalWidget>}
 */

afishaWidgetManager.appendWidget(
  {
    route: ROUTES.refunds,
    embedType: EMBED_TYPES.modal
  }
  document.body,
);

sendAutToken

js
/**
 * Отправляет во все mounted виджеты token авторизации
 * @returns {void}
 */

afishaWidgetManager.sendAuthToken('4d47-a892-76063edca1e0')

sendECommerceData

js
/**
 * Отправляет во все mounted виджеты данные ECommerce
 * @returns {void}
 */

afishaWidgetManager.sendECommerceData({
  id: 123,
  name: 'Ваше название',
  list: 'Ваш список',
  position: 1,
  category: 'Ваша категория'
})

openedModalWidget

js
/**
 * Возвращает экземпляр виджета открытого в модальном окне
 * @returns {ModalWidget | undefined} - Экземпляр виджета
 */

afishaWidgetManager.openedModalWidget