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: 'session',
    embedType: 'modal'
  }
  document.body,
);

redirectToWidget

js
/**
 * Делает редирект на виджет
 * @param {WidgetParams} params - параметры виджета
 * @returns {Promise<void>}
 */

afishaWidgetManager.redirectToWidget({
  route: 'session',
  sessionId: '16193942'
})

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