import { Popup } from './Popup'; import { PopupProps } from './PopupBase'; export * from './Popup'; export * from './PopupBase'; /** * @doctemplate function_annotation * @doctitle Popup UI * @doc * Интерфейс виджета для открытия Мессенджера в popup-е. * Подходит, например, если у вас есть своя кнопка открытия виджета. * * Если задан параметр `popupTargetNode`, попап будет спозиционирован относительно заданного узла * (настроить позиционирования можно через `popupTargetPosition`), иначе попап откроется * в правом нижнем углу. * * Параметры `popupTargetNode` и `popupTargetPosition` не обязательно задавать сразу, * в любой момент после инициализации виджета, можно вызвать метод `Popup::setPopupTarget` * * Чтобы программно открыть виджет, необходимо использовать `Widget::show` * * @doc -scope=internal * [Storybook](https://messenger-test.s3.mds.yandex.net/storybook/widget/latest/index.html?path=/story/widget--ui-popup) * * @example * -scope=internal * import 'yandex-int/messenger.widget/lib/ui/popup.css'; * import { * YandexConfig, * Widget, * popupUIFactory, * } from 'yandex-int/messenger.widget'; * * const ui = popupUIFactory({ * popupTargetNode: document.getElementById('my_custom_chat_button'), * }); * * const widget = new Widget(new YandexConfig({ * serviceId: YOUR_SERVICE_ID, * iframeOpenData: { * // Параметры открытия виджета (идентификатор чата, идентификатор бота и т.п.) * // [подробнее](/doc/interfaces.md#baseiframeopenparams) * }, * })) * .setUI(ui) * .init(); * * ui.mount(); * * document.getElementById('button').addEventListener('click', () => { * widget.show(); * }); * * @example * -scope=external * import 'yandex-messenger-widget/lib/ui/popup.css'; * import { * YandexConfig, * Widget, * popupUIFactory, * } from 'yandex-messenger-widget'; * * const ui = popupUIFactory({ * popupTargetNode: document.getElementById('my_custom_chat_button'), * }); * * const widget = createSingleChatWidget({ * serviceId: YOUR_SERVICE_ID, * iframeOpenData: { * // Параметры открытия виджета (идентификатор чата, идентификатор бота и т.п.) * // [подробнее](/doc/interfaces.md#baseiframeopenparams) * }, * }) * .setUI(ui) * .init(); * * ui.mount(); * * document.getElementById('button').addEventListener('click', () => { * widget.show(); * }); * * @doc * В случае если нужно отображение кол-ва непрочитанных сообщений можно подключить плагин UnreadCounter * * @example * -scope=internal * import 'yandex-int/messenger.widget/lib/ui/popup.css'; * import { * YandexConfig, * Widget, * popupUIFactory, * yandexUnreadCountFactory, * } from 'yandex-int/messenger.widget'; * * const ui = new popupUIFactory({}); * const unreadCounter = yandexUnreadCountFactory(); * * unreadCounter.onChanged.addListener(({ data }) => console.log(data)); * * const widget = new Widget(new YandexConfig({ * serviceId: -1, * iframeOpenData: { * // Параметры открытия виджета (идентификатор чата, идентификатор бота и т.п.) * // [подробнее](/doc/interfaces.md#baseiframeopenparams) * }, * })) * .addPlugin(unreadCounter) * .setUI(ui) * .init(); * * ui.mount(); * * @example * -scope=external * import 'yandex-messenger-widget/lib/ui/popup.css'; * import { * createSingleChatWidget, * popupUIFactory, * yandexUnreadCountFactory, * } from 'yandex-messenger-widget'; * * const ui = new popupUIFactory({}); * const unreadCounter = yandexUnreadCountFactory(); * * unreadCounter.onChanged.addListener(({ data }) => console.log(data)); * * const widget = createSingleChatWidget({ * serviceId: -1, * iframeOpenData: { * // Параметры открытия виджета (идентификатор чата, идентификатор бота и т.п.) * // [подробнее](/doc/interfaces.md#baseiframeopenparams) * }, * }) * .addPlugin(unreadCounter) * .setUI(ui) * .init(); * * ui.mount(); */ export declare function popupUIFactory( /** * @docref template=members_annotation */ props: PopupProps): Popup;