umbot - v2.0.8
    Preparing search index...

    Class Buttons

    Buttons Класс для управления коллекцией кнопок и их отображением на различных платформах.

    Класс предоставляет функциональность для:

    • Создания и управления коллекцией кнопок
    • Адаптации кнопок под различные платформы (Алиса, VK, Telegram, Viber, SmartApp)
    • Поддержки различных типов кнопок (интерактивные, ссылки)
    // Создание коллекции кнопок
    const buttons = new Buttons();

    // Добавление интерактивной кнопки
    buttons.addBtn('Нажми меня', '', { action: 'custom_action' });

    // Добавление кнопки-ссылки с полным набором параметров
    buttons.addLink('Перейти на сайт', 'https://example.com', { source: 'button' }, { hide: true });

    // Получение кнопок для конкретной платформы
    const alisaButtons = buttons.getButtons(Buttons.T_ALISA_BUTTONS);
    Index

    Constructors

    • Создает новый экземпляр коллекции кнопок. Инициализирует все массивы и устанавливает тип кнопок по умолчанию для Алисы.

      Returns Buttons

    Properties

    T_ALISA_BUTTONS: "alisa_btn" = 'alisa_btn'

    Кнопки для Алисы.

    T_ALISA_CARD_BUTTON: "alisa_card_btn" = 'alisa_card_btn'

    Кнопки для карточки Алисе.

    T_VK_BUTTONS: "vk_btn" = 'vk_btn'

    Кнопки для vk.

    T_TELEGRAM_BUTTONS: "telegram_btn" = 'telegram_btn'

    Кнопки для Telegram.

    T_VIBER_BUTTONS: "viber_btn" = 'viber_btn'

    Кнопки для viber.

    T_SMARTAPP_BUTTONS: "smart-app_btn" = 'smart-app_btn'

    Кнопки для Сбер SmartApp.

    T_SMARTAPP_BUTTON_CARD: "smart-app_card_btn" = 'smart-app_card_btn'

    Кнопки для карточки Сбер SmartApp.

    T_USER_APP_BUTTONS: "user_app_btn" = 'user_app_btn'

    Кнопки для пользовательского типа приложения.

    buttons: Button[]

    Массив объектов Button, представляющих все кнопки в коллекции.

    Button

    btns: TButton[]

    Массив интерактивных кнопок. Может содержать строки или объекты с параметрами кнопки.

    links: TButton[]

    Массив кнопок-ссылок. Может содержать строки или объекты с параметрами кнопки.

    type: string

    Тип кнопок для текущей платформы. Определяет, как будут отображаться кнопки.

    Methods

    • Protected

      Добавляет кнопку в коллекцию.

      Parameters

      • title: null | string

        Текст кнопки

      • url: null | string

        URL для перехода

      • payload: any

        Дополнительные данные

      • hide: boolean = false

        Тип отображения кнопки

      • options: IButtonOptions = {}

        Дополнительные параметры

      Returns Buttons

      this для цепочки вызовов

    • Добавляет интерактивную кнопку в коллекцию.

      Parameters

      • title: null | string

        Текст кнопки

      • Optionalurl: null | string = ''

        URL для перехода

      • Optionalpayload: any = ''

        Дополнительные данные

      • Optionaloptions: IButtonOptions = {}

        Дополнительные параметры

      Returns Buttons

      this для цепочки вызовов

      // Простая кнопка
      buttons.addBtn('Нажми меня');

      // Кнопка с URL и payload
      buttons.addBtn('Перейти', 'https://example.com', { action: 'navigate' });

      // Кнопка с дополнительными опциями
      buttons.addBtn('Скрытая кнопка', '', '', { hide: true });
    • Добавляет кнопку-ссылку в коллекцию.

      Parameters

      • title: null | string

        Текст кнопки

      • Optionalurl: string = ''

        URL для перехода

      • Optionalpayload: any = ''

        Дополнительные данные

      • Optionaloptions: IButtonOptions = {}

        Дополнительные параметры

      Returns Buttons

      this для цепочки вызовов

      // Простая ссылка
      buttons.addLink('Перейти на сайт', 'https://example.com');

      // Ссылка с payload
      buttons.addLink('Документация', 'https://docs.example.com', { section: 'api' });

      // Ссылка с опциями
      buttons.addLink('Скрытая ссылка', 'https://example.com', '', { hide: true });
    • Protected

      Обрабатывает массивы btns и links, добавляя их в основной массив buttons. После обработки очищает массивы btns и links.

      Returns void

    • Возвращает массив кнопок, адаптированный для указанной платформы.

      Type Parameters

      • T = any

      Parameters

      • Optionaltype: null | string = null

        Тип кнопок (платформа). Если не указан, используется текущий тип. Доступные типы:

        • T_ALISA_BUTTONS: кнопки для Алисы
        • T_ALISA_CARD_BUTTON: кнопки для карточки Алисы
        • T_VK_BUTTONS: кнопки для VK
        • T_TELEGRAM_BUTTONS: кнопки для Telegram
        • T_VIBER_BUTTONS: кнопки для Viber
        • T_SMARTAPP_BUTTONS: кнопки для Сбер SmartApp
        • T_SMARTAPP_BUTTON_CARD: кнопки для карточки SmartApp
        • T_USER_APP_BUTTONS: кнопки для пользовательского приложения
      • OptionaluserButton: null | TemplateButtonTypes = null

        Пользовательский класс кнопок для T_USER_APP_BUTTONS

      Returns null | T

      Адаптированные кнопки для платформы или null, если тип не поддерживается

      const buttons = new Buttons();

      // Добавление кнопок
      buttons.addBtn('Нажми меня', '', { action: 'test' });
      buttons.addLink('Сайт', 'https://example.com');

      // Получение кнопок для разных платформ

      // Алиса
      const alisaButtons = buttons.getButtons(Buttons.T_ALISA_BUTTONS);
      // alisaButtons: [
      // { title: 'Нажми меня', payload: { action: 'test' }, hide: true },
      // { title: 'Сайт', url: 'https://example.com', hide: false }
      // ]

      // VK
      const vkButtons = buttons.getButtons(Buttons.T_VK_BUTTONS);
      // vkButtons: {
      // one_time: true,
      // buttons: [
      // { action: { type: 'text', label: 'Нажми меня', payload: { action: 'test' } } },
      // { action: { type: 'link', label: 'Сайт', link: 'https://example.com' } }
      // ]
      // }

      // Telegram
      const telegramButtons = buttons.getButtons(Buttons.T_TELEGRAM_BUTTONS);
      // telegramButtons: {
      // inline_keyboard: [
      // [{ text: 'Нажми меня', callback_data: { action: 'test' } }],
      // [{ text: 'Сайт', url: 'https://example.com' }]
      // ]
      // }

      // Viber
      const viberButtons = buttons.getButtons(Buttons.T_VIBER_BUTTONS);
      // viberButtons: {
      // DefaultHeight: true,
      // BgColor: '#FFFFFF',
      // Buttons: [
      // { Text: 'Нажми меня', ActionType: 'reply', ActionBody: { action: 'test' } },
      // { Text: 'Сайт', ActionType: 'open-url', ActionBody: 'https://example.com' }
      // ]
      // }
    • Возвращает JSON-представление кнопок для указанной платформы.

      Parameters

      • Optionaltype: null | string = null

        Тип кнопок (платформа)

      • OptionaluserButton: null | TemplateButtonTypes = null

        Пользовательский класс кнопок

      Returns null | string

      JSON-строка с кнопками

      // Получение JSON для кнопок Алисы
      const alisaButtonsJson = buttons.getButtonJson(Buttons.T_ALISA_BUTTONS);