UNPKG

umbot

Version:

Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф

128 lines (127 loc) 3.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.T_NONE = exports.T_SHARE_PHONE = exports.T_LOCATION_PICKER = exports.T_OPEN_URL = exports.T_REPLY = void 0; exports.buttonProcessing = buttonProcessing; const utils_1 = require("../Base/utils"); /** * Тип кнопки для отправки ответа * * @readonly * * @example * ```ts * const viberButton = new ViberButton(); * * // Создание кнопки-ответа * const replyButton = getButton('Ответить', '', null, { * ActionType: ViberButton.T_REPLY, * ActionBody: 'custom_payload' * }); * viberButton.buttons = [replyButton]; * ``` */ exports.T_REPLY = 'reply'; /** * Тип кнопки для открытия URL * * @readonly * * @example * ```ts * const viberButton = new ViberButton(); * * // Создание кнопки-ссылки * const linkButton = getButton('Открыть сайт', 'http://localhost', null, { * ActionType: ViberButton.T_OPEN_URL, * ActionBody: 'http://localhost' * }); * viberButton.buttons = [linkButton]; * ``` */ exports.T_OPEN_URL = 'open-url'; /** * Тип кнопки для выбора локации * * @readonly * * @example * ```ts * const viberButton = new ViberButton(); * * // Создание кнопки выбора локации * const locationButton = getButton('Выбрать адрес', '', null, { * ActionType: ViberButton.T_LOCATION_PICKER, * ActionBody: 'location_payload' * }); * viberButton.buttons = [locationButton]; * ``` */ exports.T_LOCATION_PICKER = 'location-picker'; /** * Тип кнопки для шаринга телефона * * @readonly * * @example * ```ts * const viberButton = new ViberButton(); * * // Создание кнопки шаринга телефона * const phoneButton = getButton('Поделиться телефоном', '', null, { * ActionType: ViberButton.T_SHARE_PHONE, * ActionBody: 'phone_payload' * }); * viberButton.buttons = [phoneButton]; * ``` */ exports.T_SHARE_PHONE = 'share-phone'; /** * Тип кнопки без действия * * @readonly * * @example * ```ts * const viberButton = new ViberButton(); * * // Создание информационной кнопки * const infoButton = getButton('Информация', '', null, { * ActionType: ViberButton.T_NONE, * TextSize: 'small', * TextColor: '#cccccc' * }); * viberButton.buttons = [infoButton]; * ``` */ exports.T_NONE = 'none'; /** * Получение кнопок в формате Viber * @param buttons Кнопки, которые необходимо отобразить */ function buttonProcessing(buttons) { let object = null; const buttonsResult = []; (0, utils_1.getCorrectButtons)(buttons, 6).forEach((button) => { let btn = { Text: button.title, }; if (button.url) { btn.ActionType = exports.T_OPEN_URL; btn.ActionBody = button.url; } else { btn.ActionType = exports.T_REPLY; btn.ActionBody = button.title; } btn = { ...btn, ...button.options }; buttonsResult.push(btn); }); if (buttonsResult.length) { object = { DefaultHeight: true, BgColor: '#FFFFFF', Buttons: buttonsResult, }; } return object; }