iobroker.telegram-menu 2.2.4 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -0
- package/admin/build/index.js +49 -49
- package/admin/build/index.js.map +3 -3
- package/admin/css/button.css +3 -0
- package/admin/css/row-editor.css +1 -1
- package/admin/css/style.css +46 -25
- package/admin/css/textarea.css +7 -11
- package/admin/i18n/de/translations.json +124 -123
- package/admin/i18n/en/translations.json +3 -2
- package/admin/i18n/es/translations.json +3 -2
- package/admin/i18n/fr/translations.json +3 -2
- package/admin/i18n/it/translations.json +3 -2
- package/admin/i18n/nl/translations.json +3 -2
- package/admin/i18n/pl/translations.json +3 -2
- package/admin/i18n/pt/translations.json +3 -2
- package/admin/i18n/ru/translations.json +3 -2
- package/admin/i18n/uk/translations.json +3 -2
- package/admin/i18n/zh-cn/translations.json +3 -2
- package/admin/words.js +3 -1
- package/build/admin/src/config/helper.js +178 -0
- package/build/admin/src/config/helper.js.map +1 -0
- package/build/admin/src/lib/Utils.js +64 -0
- package/build/admin/src/lib/Utils.js.map +1 -0
- package/build/admin/src/types/event.js +3 -0
- package/build/admin/src/types/event.js.map +1 -0
- package/build/app/action.js +270 -0
- package/build/app/action.js.map +7 -0
- package/build/app/adapterManager.js +36 -0
- package/build/app/adapterManager.js.map +7 -0
- package/build/app/adapterStartMenuSend.js +59 -0
- package/build/app/adapterStartMenuSend.js.map +7 -0
- package/build/app/backMenu.js +110 -0
- package/build/app/backMenu.js.map +7 -0
- package/build/app/botAction.js +47 -0
- package/build/app/botAction.js.map +7 -0
- package/build/app/configVariables.js +56 -0
- package/build/app/configVariables.js.map +7 -0
- package/build/app/connection.js +42 -0
- package/build/app/connection.js.map +7 -0
- package/build/app/createState.js +42 -0
- package/build/app/createState.js.map +7 -0
- package/build/app/dynamicSwitch.js +69 -0
- package/build/app/dynamicSwitch.js.map +7 -0
- package/build/app/dynamicSwitchMenu.js +69 -0
- package/build/app/dynamicSwitchMenu.js.map +7 -0
- package/build/app/dynamicValue.js +80 -0
- package/build/app/dynamicValue.js.map +7 -0
- package/build/app/echarts.js +60 -0
- package/build/app/echarts.js.map +7 -0
- package/build/app/getstate.js +148 -0
- package/build/app/getstate.js.map +7 -0
- package/build/app/global.js +2 -0
- package/build/app/global.js.map +7 -0
- package/build/app/httpRequest.js +84 -0
- package/build/app/httpRequest.js.map +7 -0
- package/build/app/jsonTable.js +158 -0
- package/build/app/jsonTable.js.map +7 -0
- package/build/app/logging.js +46 -0
- package/build/app/logging.js.map +7 -0
- package/build/app/messageIds.js +116 -0
- package/build/app/messageIds.js.map +7 -0
- package/build/app/processData.js +198 -0
- package/build/app/processData.js.map +7 -0
- package/build/app/sendNav.js +49 -0
- package/build/app/sendNav.js.map +7 -0
- package/build/app/sendpic.js +95 -0
- package/build/app/sendpic.js.map +7 -0
- package/build/app/sentry.js +43 -0
- package/build/app/sentry.js.map +7 -0
- package/build/app/setStateIdsToListenTo.js +42 -0
- package/build/app/setStateIdsToListenTo.js.map +7 -0
- package/build/app/setstate.js +145 -0
- package/build/app/setstate.js.map +7 -0
- package/build/app/shoppingList.js +97 -0
- package/build/app/shoppingList.js.map +7 -0
- package/build/app/subMenu.js +281 -0
- package/build/app/subMenu.js.map +7 -0
- package/build/app/subscribeStates.js +41 -0
- package/build/app/subscribeStates.js.map +7 -0
- package/build/app/telegram.js +131 -0
- package/build/app/telegram.js.map +7 -0
- package/build/app/validateMenus.js +64 -0
- package/build/app/validateMenus.js.map +7 -0
- package/build/build/src/app/action.js +447 -0
- package/build/build/src/app/adapterStartMenuSend.js +37 -0
- package/build/build/src/app/backMenu.js +70 -0
- package/build/build/src/app/botAction.js +25 -0
- package/build/build/src/app/connection.js +19 -0
- package/build/build/src/app/createState.js +19 -0
- package/build/build/src/app/dynamicSwitch.js +51 -0
- package/build/build/src/app/dynamicValue.js +64 -0
- package/build/build/src/app/echarts.js +45 -0
- package/build/build/src/app/getstate.js +157 -0
- package/build/build/src/app/global.js +59 -0
- package/build/build/src/app/httpRequest.js +64 -0
- package/build/build/src/app/jsonTable.js +147 -0
- package/build/build/src/app/logging.js +13 -0
- package/build/build/src/app/messageIds.js +88 -0
- package/build/build/src/app/processData.js +208 -0
- package/build/build/src/app/sendNav.js +30 -0
- package/build/build/src/app/sendpic.js +69 -0
- package/build/build/src/app/setstate.js +126 -0
- package/build/build/src/app/shoppingList.js +72 -0
- package/build/build/src/app/subMenu.js +361 -0
- package/build/build/src/app/subscribeStates.js +25 -0
- package/build/build/src/app/telegram.js +101 -0
- package/build/build/src/lib/string.js +28 -0
- package/build/build/src/lib/time.js +23 -0
- package/build/build/src/lib/utilities.js +263 -0
- package/build/build/src/lib/utils.js +13 -0
- package/build/build/src/main.js +402 -0
- package/build/config/config.js +134 -0
- package/build/config/config.js.map +7 -0
- package/build/io-package.json +87 -87
- package/build/lib/action.js +1 -3
- package/build/lib/action.js.map +2 -2
- package/build/lib/adapterStartMenuSend.js.map +1 -1
- package/build/lib/appUtils.js +158 -0
- package/build/lib/appUtils.js.map +7 -0
- package/build/lib/appUtilsString.js +37 -0
- package/build/lib/appUtilsString.js.map +7 -0
- package/build/lib/backMenu.js.map +2 -2
- package/build/lib/botAction.js.map +1 -1
- package/build/lib/dynamicSwitch.js.map +1 -1
- package/build/lib/dynamicValue.js.map +1 -1
- package/build/lib/echarts.js.map +1 -1
- package/build/lib/getstate.js.map +1 -1
- package/build/lib/global.js.map +1 -1
- package/build/lib/httpRequest.js.map +1 -1
- package/build/lib/json.js +54 -0
- package/build/lib/json.js.map +7 -0
- package/build/lib/jsonTable.js.map +1 -1
- package/build/lib/math.js +41 -0
- package/build/lib/math.js.map +7 -0
- package/build/lib/messageIds.js.map +1 -1
- package/build/lib/object.js +35 -0
- package/build/lib/object.js.map +7 -0
- package/build/lib/processData.js +4 -18
- package/build/lib/processData.js.map +3 -3
- package/build/lib/sendNav.js.map +1 -1
- package/build/lib/sendpic.js +23 -22
- package/build/lib/sendpic.js.map +2 -2
- package/build/lib/setstate.js.map +1 -1
- package/build/lib/shoppingList.js.map +1 -1
- package/build/lib/splitValues.js +63 -0
- package/build/lib/splitValues.js.map +7 -0
- package/build/lib/string.js +125 -3
- package/build/lib/string.js.map +2 -2
- package/build/lib/subMenu.js +1 -2
- package/build/lib/subMenu.js.map +2 -2
- package/build/lib/subscribeStates.js.map +1 -1
- package/build/lib/telegram.js.map +1 -1
- package/build/lib/time.js +93 -0
- package/build/lib/time.js.map +7 -0
- package/build/lib/utilities.js +84 -281
- package/build/lib/utilities.js.map +3 -3
- package/build/lib/utils.js +66 -0
- package/build/lib/utils.js.map +7 -0
- package/build/main.js +151 -233
- package/build/main.js.map +3 -3
- package/build/src/app/action.js +239 -0
- package/build/src/app/action.js.map +1 -0
- package/build/src/app/adapterManager.js +12 -0
- package/build/src/app/adapterManager.js.map +1 -0
- package/build/src/app/adapterStartMenuSend.js +36 -0
- package/build/src/app/adapterStartMenuSend.js.map +1 -0
- package/build/src/app/backMenu.js +81 -0
- package/build/src/app/backMenu.js.map +1 -0
- package/build/src/app/botAction.js +25 -0
- package/build/src/app/botAction.js.map +1 -0
- package/build/src/app/configVariables.js +32 -0
- package/build/src/app/configVariables.js.map +1 -0
- package/build/src/app/connection.js +20 -0
- package/build/src/app/connection.js.map +1 -0
- package/build/src/app/createState.js +19 -0
- package/build/src/app/createState.js.map +1 -0
- package/build/src/app/dynamicSwitch.js +52 -0
- package/build/src/app/dynamicSwitch.js.map +1 -0
- package/build/src/app/dynamicSwitchMenu.js +52 -0
- package/build/src/app/dynamicSwitchMenu.js.map +1 -0
- package/build/src/app/dynamicValue.js +52 -0
- package/build/src/app/dynamicValue.js.map +1 -0
- package/build/src/app/echarts.js +33 -0
- package/build/src/app/echarts.js.map +1 -0
- package/build/src/app/getstate.js +122 -0
- package/build/src/app/getstate.js.map +1 -0
- package/build/src/app/global.js +8 -0
- package/build/src/app/global.js.map +1 -0
- package/build/src/app/httpRequest.js +55 -0
- package/build/src/app/httpRequest.js.map +1 -0
- package/build/src/app/jsonTable.js +147 -0
- package/build/src/app/jsonTable.js.map +1 -0
- package/build/src/app/logging.js +22 -0
- package/build/src/app/logging.js.map +1 -0
- package/build/src/app/messageIds.js +89 -0
- package/build/src/app/messageIds.js.map +1 -0
- package/build/src/app/processData.js +153 -0
- package/build/src/app/processData.js.map +1 -0
- package/build/src/app/sendNav.js +26 -0
- package/build/src/app/sendNav.js.map +1 -0
- package/build/src/app/sendpic.js +66 -0
- package/build/src/app/sendpic.js.map +1 -0
- package/build/src/app/sentry.js +18 -0
- package/build/src/app/sentry.js.map +1 -0
- package/build/src/app/setStateIdsToListenTo.js +17 -0
- package/build/src/app/setStateIdsToListenTo.js.map +1 -0
- package/build/src/app/setstate.js +114 -0
- package/build/src/app/setstate.js.map +1 -0
- package/build/src/app/shoppingList.js +74 -0
- package/build/src/app/shoppingList.js.map +1 -0
- package/build/src/app/subMenu.js +237 -0
- package/build/src/app/subMenu.js.map +1 -0
- package/build/src/app/subscribeStates.js +17 -0
- package/build/src/app/subscribeStates.js.map +1 -0
- package/build/src/app/telegram.js +83 -0
- package/build/src/app/telegram.js.map +1 -0
- package/build/src/app/validateMenus.js +30 -0
- package/build/src/app/validateMenus.js.map +1 -0
- package/build/src/config/config.js +100 -0
- package/build/src/config/config.js.map +1 -0
- package/build/src/lib/appUtils.js +126 -0
- package/build/src/lib/appUtils.js.map +1 -0
- package/build/src/lib/appUtilsString.js +13 -0
- package/build/src/lib/appUtilsString.js.map +1 -0
- package/build/src/lib/json.js +37 -0
- package/build/src/lib/json.js.map +1 -0
- package/build/src/lib/math.js +17 -0
- package/build/src/lib/math.js.map +1 -0
- package/build/src/lib/object.js +10 -0
- package/build/src/lib/object.js.map +1 -0
- package/build/src/lib/splitValues.js +35 -0
- package/build/src/lib/splitValues.js.map +1 -0
- package/build/src/lib/string.js +121 -0
- package/build/src/lib/string.js.map +1 -0
- package/build/src/lib/time.js +57 -0
- package/build/src/lib/time.js.map +1 -0
- package/build/src/lib/utilities.js +111 -0
- package/build/src/lib/utilities.js.map +1 -0
- package/build/src/lib/utils.js +37 -0
- package/build/src/lib/utils.js.map +1 -0
- package/build/src/main.js +332 -0
- package/build/src/main.js.map +1 -0
- package/build/src/test/setup.js +12 -0
- package/build/src/test/setup.js.map +1 -0
- package/build/src/types/types.js +3 -0
- package/build/src/types/types.js.map +1 -0
- package/build/test/integration.js +0 -1
- package/build/test/integration.js.map +1 -1
- package/build/test/mocha.setup.js +0 -1
- package/build/test/mocha.setup.js.map +1 -1
- package/build/test/package.js +0 -1
- package/build/test/package.js.map +1 -1
- package/build/test/setup.js +12 -0
- package/build/test/setup.js.map +1 -0
- package/build/test/test/appUtils.test.js +507 -0
- package/build/test/test/appUtils.test.js.map +1 -0
- package/build/test/test/appUtilsString.test.js +16 -0
- package/build/test/test/appUtilsString.test.js.map +1 -0
- package/build/test/test/math.test.js +33 -0
- package/build/test/test/math.test.js.map +1 -0
- package/build/test/test/object.test.js +54 -0
- package/build/test/test/object.test.js.map +1 -0
- package/build/test/test/string.test.js +361 -0
- package/build/test/test/string.test.js.map +1 -0
- package/build/test/test/time.test.js +201 -0
- package/build/test/test/time.test.js.map +1 -0
- package/build/test/test/utils.test.js +115 -0
- package/build/test/test/utils.test.js.map +1 -0
- package/build/types/types.js +15 -0
- package/build/types/types.js.map +3 -3
- package/io-package.json +19 -14
- package/package.json +14 -10
- package/build/main.test.js +0 -24
- package/build/main.test.js.map +0 -1
package/build/main.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/main.ts"],
|
|
4
|
-
"sourcesContent": ["'use strict';\n/*\n * Created with @iobroker/create-adapter v2.3.0\n */\n\n// The adapter-core module gives you access to the core ioBroker functions\n// you need to create an adapter\nimport * as utils from '@iobroker/adapter-core';\n\nimport {\n checkEvent,\n editArrayButtons,\n exchangePlaceholderWithValue,\n generateActions,\n generateNewObjectStructure,\n getMenusWithUserToSend,\n getUserToSendFromUserListWithChatID,\n} from './lib/action.js';\nimport { _subscribeForeignStatesAsync } from './lib/subscribeStates.js';\nimport { sendToTelegram } from './lib/telegram.js';\nimport { changeValue, decomposeText } from './lib/utilities.js';\nimport { createState } from './lib/createState.js';\nimport { saveMessageIds } from './lib/messageIds.js';\nimport { adapterStartMenuSend } from './lib/adapterStartMenuSend.js';\nimport { checkEveryMenuForData, getStateIdsToListenTo, getTimeouts } from './lib/processData.js';\nimport { deleteMessageAndSendNewShoppingList, shoppingListSubscribeStateAndDeleteItem } from './lib/shoppingList.js';\nimport { debug, error } from './lib/logging.js';\n\nimport type {\n Checkboxes,\n DataObject,\n GeneratedActions,\n IsUserActiveCheckbox,\n ListOfMenus,\n MenuData,\n MenusWithUsers,\n NewObjectNavStructureKey,\n SetStateIds,\n StartSides,\n UserListWithChatId,\n} from './lib/telegram-menu.js';\nimport type { BooleanString } from '@/types/app.js';\nimport { checkIsTelegramActive } from './lib/connection.js';\nimport { isDefined, isFalsy, isString } from './lib/global';\n\nconst timeoutKey = '0';\nlet subscribeForeignStateIds: string[];\nexport let _this: TelegramMenu;\n\nexport default class TelegramMenu extends utils.Adapter {\n private static instance: TelegramMenu;\n\n /**\n * @param [options] - Adapter options\n */\n public constructor(options: Partial<utils.AdapterOptions> = {}) {\n super({\n ...options,\n name: 'telegram-menu',\n });\n this.on('ready', this.onReady.bind(this));\n this.on('unload', this.onUnload.bind(this));\n TelegramMenu.instance = this;\n }\n\n public static getInstance(): TelegramMenu {\n return TelegramMenu.instance;\n }\n\n private async onReady(): Promise<void> {\n _this = this;\n await this.setState('info.connection', false, true);\n await createState(this);\n\n let instanceTelegram: string = this.config.instance;\n if (!instanceTelegram || instanceTelegram.length == 0) {\n instanceTelegram = 'telegram.0';\n }\n const telegramID = `${instanceTelegram}.communicate.request`;\n const botSendMessageID = `${instanceTelegram}.communicate.botSendMessageId`;\n const requestMessageID = `${instanceTelegram}.communicate.requestMessageId`;\n const infoConnectionOfTelegram = `${instanceTelegram}.info.connection`;\n\n const checkboxes: Checkboxes = this.config.checkbox as Checkboxes;\n const one_time_keyboard: boolean = checkboxes.oneTiKey;\n const resize_keyboard: boolean = checkboxes.resKey;\n const checkboxNoEntryFound: boolean = checkboxes.checkboxNoValueFound;\n const sendMenuAfterRestart: boolean = checkboxes.sendMenuAfterRestart;\n let listOfMenus: ListOfMenus = [];\n if (this.config.usersInGroup) {\n listOfMenus = Object.keys(this.config.usersInGroup);\n }\n const token = this.config.tokenGrafana;\n const directoryPicture: string = this.config.directory;\n const isUserActiveCheckbox: IsUserActiveCheckbox = this.config.userActiveCheckbox;\n const menusWithUsers: MenusWithUsers = this.config.usersInGroup;\n const textNoEntryFound: string = this.config.textNoEntry;\n const userListWithChatID: UserListWithChatId[] = this.config.userListWithChatID;\n const dataObject: DataObject = this.config.data as DataObject;\n const startSides: StartSides = {};\n\n const menuData: MenuData = {\n data: {},\n } as MenuData;\n\n Object.keys(menusWithUsers).forEach(element => {\n startSides[element] = dataObject.nav[element][0].call;\n });\n\n await this.getForeignObject(infoConnectionOfTelegram, async (err, obj) => {\n try {\n if (err || obj == null) {\n this.log.error(`The State ${infoConnectionOfTelegram} was not found! ${err}`);\n return;\n }\n\n const isTelegramActive = await checkIsTelegramActive(infoConnectionOfTelegram);\n if (!isTelegramActive) {\n return;\n }\n\n const { nav, action } = dataObject;\n\n this.log.info('Telegram was found');\n\n for (const name in nav) {\n const value = editArrayButtons(nav[name], this);\n\n const newObjectStructure = generateNewObjectStructure(value);\n if (newObjectStructure) {\n menuData.data[name] = newObjectStructure;\n }\n\n const generatedActions: GeneratedActions | undefined = generateActions(\n action[name],\n menuData.data[name],\n );\n if (generatedActions) {\n menuData.data[name] = generatedActions?.obj;\n subscribeForeignStateIds = generatedActions?.ids;\n } else {\n debug([{ text: 'No Actions generated!' }]);\n }\n\n if (subscribeForeignStateIds && subscribeForeignStateIds?.length > 0) {\n await _subscribeForeignStatesAsync(subscribeForeignStateIds);\n } else {\n debug([{ text: 'Nothing to Subscribe!' }]);\n }\n\n // Subscribe Events\n if (dataObject.action[name] && dataObject.action[name].events) {\n for (const event of dataObject.action[name].events) {\n await _subscribeForeignStatesAsync([event.ID]);\n }\n }\n debug([\n { text: 'Menu: ', val: name },\n { text: 'Array Buttons: ', val: value },\n { text: 'Gen. Actions: ', val: menuData.data[name] },\n ]);\n }\n debug([\n { text: 'Checkbox', val: checkboxes },\n { text: 'MenuList', val: listOfMenus },\n ]);\n\n if (sendMenuAfterRestart) {\n await adapterStartMenuSend(\n listOfMenus,\n startSides,\n isUserActiveCheckbox,\n menusWithUsers,\n menuData,\n userListWithChatID,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n );\n }\n\n this.on('stateChange', async (id, state) => {\n const setStateIdsToListenTo: SetStateIds[] = getStateIdsToListenTo();\n\n const isActive = await this.checkInfoConnection(id, infoConnectionOfTelegram);\n if (!isActive) {\n return;\n }\n\n const obj = await this.getChatIDAndUserToSend(instanceTelegram, userListWithChatID);\n if (!obj) {\n return;\n }\n\n const { userToSend } = obj;\n\n if (isString(state?.val) && state.val.includes('sList:')) {\n await shoppingListSubscribeStateAndDeleteItem(\n state.val,\n instanceTelegram,\n userListWithChatID,\n resize_keyboard,\n one_time_keyboard,\n );\n\n return;\n }\n\n if (this.isAddToShoppingList(id, userToSend)) {\n await deleteMessageAndSendNewShoppingList(instanceTelegram, userListWithChatID, userToSend);\n return;\n }\n\n if (\n state &&\n (await checkEvent(\n dataObject,\n id,\n state,\n menuData,\n userListWithChatID,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n menusWithUsers,\n ))\n ) {\n return;\n }\n\n if (this.isMessageID(id, botSendMessageID, requestMessageID) && state) {\n await saveMessageIds(state, instanceTelegram);\n } else if (this.isMenuToSend(state, id, telegramID, userToSend)) {\n let value = state?.val;\n if (!value || !userToSend) {\n return;\n }\n\n value = value.toString();\n const calledValue = value.slice(value.indexOf(']') + 1, value.length);\n const menus: NewObjectNavStructureKey[] = getMenusWithUserToSend(menusWithUsers, userToSend);\n\n const dataFound = await checkEveryMenuForData({\n menuData,\n calledValue,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n menus,\n isUserActiveCheckbox,\n token,\n directoryPicture,\n timeoutKey,\n });\n\n debug([\n { text: 'Groups with searched User:', val: menus },\n { text: 'Data found:', val: dataFound },\n ]);\n\n if (!dataFound && checkboxNoEntryFound && userToSend) {\n debug([{ text: 'No Entry found' }]);\n await sendToTelegram({\n user: userToSend,\n textToSend: textNoEntryFound,\n instance: instanceTelegram,\n resize_keyboard: resize_keyboard,\n one_time_keyboard: one_time_keyboard,\n userListWithChatID: userListWithChatID,\n parse_mode: 'false',\n });\n }\n return;\n }\n if (\n state &&\n setStateIdsToListenTo &&\n setStateIdsToListenTo.find((element: { id: string }) => element.id == id)\n ) {\n debug([\n { text: 'State, which is listen to was changed:', val: id },\n { text: 'State:', val: state },\n ]);\n\n setStateIdsToListenTo.forEach((element, key: number) => {\n if (element.id == id) {\n debug([\n { text: 'Send Value:', val: element },\n { text: 'Ack:', val: state.ack },\n ]);\n\n if (\n !isFalsy(element.confirm) &&\n !state?.ack &&\n element.returnText.includes('{confirmSet:')\n ) {\n const substring = decomposeText(\n element.returnText,\n '{confirmSet:',\n '}',\n ).substring.split(':');\n debug([{ text: 'Substring:', val: substring }]);\n let text = '';\n if (isDefined(state.val)) {\n text =\n substring[2] && substring[2].includes('noValue')\n ? substring[1]\n : exchangePlaceholderWithValue(substring[1], state.val.toString());\n }\n debug([{ text: 'Return-text:', val: text }]);\n\n if (text === '') {\n error([{ text: 'The return text cannot be empty, please check.' }]);\n }\n\n sendToTelegram({\n user: element.userToSend,\n textToSend: text,\n instance: instanceTelegram,\n resize_keyboard: resize_keyboard,\n one_time_keyboard: one_time_keyboard,\n userListWithChatID: userListWithChatID,\n parse_mode: element.parse_mode as BooleanString,\n }).catch((e: { message: any; stack: any }) => {\n error([\n { text: 'Error SendToTelegram' },\n { val: e.message },\n { text: 'Error', val: e.stack },\n ]);\n });\n return;\n }\n debug([\n {\n text: 'Data: ',\n val: { confirm: element.confirm, ack: state?.ack, val: state?.val },\n },\n ]);\n if (!isFalsy(element.confirm) && state?.ack) {\n let textToSend = element.returnText;\n\n if (textToSend.includes('{confirmSet:')) {\n const substring = decomposeText(textToSend, '{confirmSet:', '}').substring;\n textToSend = textToSend.replace(substring, '');\n }\n\n let value: string | number = '';\n let valueChange: string | number | null = null;\n const resultChange = changeValue(textToSend, state.val?.toString() || '');\n if (resultChange) {\n valueChange = resultChange.val;\n textToSend = resultChange.textToSend;\n }\n\n if (textToSend?.toString().includes('{novalue}')) {\n value = '';\n textToSend = textToSend.replace('{novalue}', '');\n } else if (isDefined(state?.val)) {\n value = state.val?.toString() || '';\n }\n if (valueChange) {\n value = valueChange;\n }\n\n debug([{ text: 'Value to send:', val: value }]);\n textToSend = exchangePlaceholderWithValue(textToSend, value);\n\n sendToTelegram({\n user: element.userToSend,\n textToSend: textToSend,\n keyboard: undefined,\n instance: instanceTelegram,\n resize_keyboard: resize_keyboard,\n one_time_keyboard: one_time_keyboard,\n userListWithChatID: userListWithChatID,\n parse_mode: element.parse_mode as BooleanString,\n }).catch((e: { message: any; stack: any }) => {\n error([\n { text: 'Error sendToTelegram' },\n { val: e.message },\n { text: 'Error', val: e.stack },\n ]);\n });\n\n setStateIdsToListenTo.splice(key, 1);\n }\n }\n });\n }\n });\n } catch (e: any) {\n error([{ text: 'Error onReady' }, { val: e.message }, { text: 'Error', val: e.stack }]);\n }\n });\n\n await this.subscribeForeignStatesAsync(botSendMessageID);\n await this.subscribeForeignStatesAsync(requestMessageID);\n await this.subscribeForeignStatesAsync(`${instanceTelegram}.communicate.requestChatId`);\n await this.subscribeForeignStatesAsync(telegramID);\n await this.subscribeForeignStatesAsync(`${instanceTelegram}.info.connection`);\n }\n\n private isMessageID(id: string, botSendMessageID: string, requestMessageID: string): boolean {\n return id == botSendMessageID || id == requestMessageID;\n }\n\n private isAddToShoppingList(id: string, userToSend: string): boolean {\n return !!(id.includes('alexa-shoppinglist') && !id.includes('add_position') && userToSend);\n }\n\n private isMenuToSend(\n state: ioBroker.State | null | undefined,\n id: string,\n telegramID: string,\n userToSend: string | null,\n ): boolean {\n return !!(\n state &&\n typeof state.val === 'string' &&\n state.val != '' &&\n id == telegramID &&\n state?.ack &&\n userToSend\n );\n }\n\n private async checkInfoConnection(id: string, infoConnectionOfTelegram: string): Promise<boolean> {\n if (id === infoConnectionOfTelegram) {\n const isActive = await checkIsTelegramActive(infoConnectionOfTelegram);\n if (!isActive) {\n this.log.debug('Telegram is not active');\n return false;\n }\n return true;\n }\n return true;\n }\n\n private async getChatIDAndUserToSend(\n instanceTelegram: string,\n userListWithChatID: UserListWithChatId[],\n ): Promise<{ chatID: string; userToSend: string } | undefined> {\n const chatID = await this.getForeignStateAsync(`${instanceTelegram}.communicate.requestChatId`);\n\n if (!chatID?.val) {\n debug([{ text: 'ChatID not found' }]);\n return;\n }\n\n const userToSend = getUserToSendFromUserListWithChatID(userListWithChatID, chatID.val.toString());\n if (!userToSend) {\n this.log.debug('User to send not found');\n return;\n }\n return { chatID: chatID.val.toString(), userToSend };\n }\n\n /**\n * Is called when adapter shuts down - callback has to be called under any circumstances!\n *\n * @param callback - Is called when adapter has closed all connections and released all resources\n */\n private onUnload(callback: () => void): void {\n const timeouts = getTimeouts();\n try {\n // Here you must clear all timeouts or intervals that may still be active\n timeouts.forEach((element: { timeout: string | number | NodeJS.Timeout | undefined }) => {\n clearTimeout(element.timeout);\n });\n\n callback();\n } catch (e: any) {\n this.log.error(`Error onUnload ${e}`);\n callback();\n }\n }\n\n onMessage(obj: ioBroker.Message): void {\n if (typeof obj === 'object' && obj.message) {\n if (obj.command === 'send') {\n // e.g. send email or pushover or whatever\n this.log.info('send command');\n\n // Send response in callback if required\n if (obj.callback) {\n this.sendTo(obj.from, obj.command, 'Message received', obj.callback);\n }\n }\n }\n }\n}\nlet adapter;\nif (require.main !== module) {\n // Export the constructor in compact mode\n /**\n * @param [options] - Adapter options\n */\n adapter = (options: Partial<utils.AdapterOptions<undefined, undefined>> | undefined): TelegramMenu =>\n new TelegramMenu(options);\n} else {\n // otherwise start the instance directly\n new TelegramMenu();\n}\nexport { adapter };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
6
|
-
"names": ["
|
|
4
|
+
"sourcesContent": ["'use strict';\n/*\n * Created with @iobroker/create-adapter v2.3.0\n */\n\n// The adapter-core module gives you access to the core ioBroker functions\n// you need to create an adapter\nimport * as utils from '@iobroker/adapter-core';\n\nimport { checkEvent, generateActions, getUserToSendFromUserListWithChatID } from './app/action.js';\nimport { _subscribeForeignStates } from './app/subscribeStates.js';\nimport { sendToTelegram } from './app/telegram.js';\nimport { createState } from './app/createState.js';\nimport { saveMessageIds } from './app/messageIds.js';\nimport { adapterStartMenuSend } from './app/adapterStartMenuSend.js';\nimport { checkEveryMenuForData, getTimeouts } from './app/processData.js';\nimport { deleteMessageAndSendNewShoppingList, shoppingListSubscribeStateAndDeleteItem } from './app/shoppingList.js';\nimport { errorLogger } from './app/logging.js';\nimport type { MenuData, PrimitiveType, SetStateIds, TelegramParams } from './types/types';\nimport { checkIsTelegramActive } from './app/connection.js';\nimport { decomposeText, getValueToExchange, isString, jsonString } from './lib/string';\nimport { isDefined, isFalsy, isTruthy } from './lib/utils';\nimport {\n exchangePlaceholderWithValue,\n getListOfMenusIncludingUser,\n getNewStructure,\n getStartSides,\n splitNavigation,\n} from './lib/appUtils';\nimport { getConfigVariables } from './app/configVariables';\nimport { getStateIdsToListenTo } from './app/setStateIdsToListenTo';\n\nconst timeoutKey = '0';\nexport let adapter: TelegramMenu;\n\nexport default class TelegramMenu extends utils.Adapter {\n private static instance: TelegramMenu;\n\n /**\n * @param [options] - Adapter options\n */\n public constructor(options: Partial<utils.AdapterOptions> = {}) {\n super({\n ...options,\n name: 'telegram-menu',\n });\n this.on('ready', this.onReady.bind(this));\n this.on('unload', this.onUnload.bind(this));\n TelegramMenu.instance = this;\n }\n\n private async onReady(): Promise<void> {\n adapter = this;\n await this.setState('info.connection', false, true);\n await createState(this);\n\n const {\n requestMessageID,\n directoryPicture,\n telegramParams,\n telegramID,\n menusWithUsers,\n infoConnectionOfTelegram,\n listOfMenus,\n isUserActiveCheckbox,\n checkboxNoEntryFound,\n textNoEntryFound,\n botSendMessageID,\n sendMenuAfterRestart,\n token,\n dataObject,\n checkboxes,\n } = getConfigVariables(this.config);\n const { telegramInstance } = telegramParams;\n\n const menuData: MenuData = {};\n const startSides = getStartSides(menusWithUsers, dataObject);\n try {\n await this.getForeignObject(infoConnectionOfTelegram, async (err, obj) => {\n if (err || !obj) {\n this.log.error(`The State ${infoConnectionOfTelegram} was not found! ${err}`);\n return;\n }\n\n if (!(await checkIsTelegramActive(infoConnectionOfTelegram))) {\n return;\n }\n\n const { nav, action } = dataObject;\n\n this.log.info('Telegram was found');\n\n for (const name in nav) {\n const splittedNavigation = splitNavigation(nav[name]);\n const newStructure = getNewStructure(splittedNavigation);\n const generatedActions = generateActions({ action: action[name], userObject: newStructure });\n\n menuData[name] = newStructure;\n if (generatedActions) {\n menuData[name] = generatedActions?.obj;\n const subscribeForeignStateIds = generatedActions?.ids;\n if (subscribeForeignStateIds?.length) {\n await _subscribeForeignStates(subscribeForeignStateIds);\n }\n } else {\n adapter.log.debug('No Actions generated!');\n }\n\n // Subscribe Events\n if (dataObject.action[name]?.events) {\n for (const event of dataObject.action[name].events) {\n await _subscribeForeignStates(event.ID);\n }\n }\n adapter.log.debug(`Menu: ${name}`);\n adapter.log.debug(`Array Buttons: ${jsonString(splittedNavigation)}`);\n adapter.log.debug(`Gen. Actions: ${jsonString(menuData[name])}`);\n }\n\n adapter.log.debug(`Checkbox: ${jsonString(checkboxes)}`);\n adapter.log.debug(`MenuList: ${jsonString(listOfMenus)}`);\n\n if (sendMenuAfterRestart) {\n await adapterStartMenuSend(\n listOfMenus,\n startSides,\n isUserActiveCheckbox,\n menusWithUsers,\n menuData,\n telegramParams,\n );\n }\n\n this.on('stateChange', async (id, state) => {\n const setStateIdsToListenTo: SetStateIds[] = getStateIdsToListenTo();\n\n const isTelegramInstanceActive = await this.checkInfoConnection(id, infoConnectionOfTelegram);\n if (!isTelegramInstanceActive) {\n return;\n }\n\n const { userToSend, error } = await this.getChatIDAndUserToSend(telegramParams);\n if (error) {\n return;\n }\n\n if (this.isAddToShoppingList(id, userToSend)) {\n await deleteMessageAndSendNewShoppingList(telegramParams, userToSend);\n return;\n }\n\n if (!state || !isDefined(state.val)) {\n return;\n }\n\n if (isString(state.val) && state.val.includes('sList:')) {\n await shoppingListSubscribeStateAndDeleteItem(state.val, telegramParams);\n return;\n }\n\n if (await checkEvent(dataObject, id, state, menuData, telegramParams, menusWithUsers)) {\n return;\n }\n\n if (this.isMessageID(id, botSendMessageID, requestMessageID)) {\n await saveMessageIds(state, telegramInstance);\n } else if (this.isMenuToSend(state, id, telegramID, userToSend)) {\n const value = state.val.toString();\n\n const calledValue = value.slice(value.indexOf(']') + 1, value.length);\n const menus = getListOfMenusIncludingUser(menusWithUsers, userToSend);\n\n const dataFound = await checkEveryMenuForData({\n menuData,\n calledValue,\n userToSend,\n telegramParams,\n menus,\n isUserActiveCheckbox,\n token,\n directoryPicture,\n timeoutKey,\n });\n\n this.log.debug(`Groups with searched User: ${jsonString(menus)}`);\n\n if (!dataFound && checkboxNoEntryFound) {\n adapter.log.debug('No Entry found');\n await sendToTelegram({\n userToSend,\n textToSend: textNoEntryFound,\n telegramParams,\n });\n }\n return;\n }\n if (state && setStateIdsToListenTo?.find(element => element.id == id)) {\n adapter.log.debug(`State, which is listen to was changed: ${id}`);\n adapter.log.debug(`State: ${jsonString(state)}`);\n\n for (const el of setStateIdsToListenTo) {\n const { id: elId, userToSend, confirm, returnText, parse_mode } = el;\n const key: number = setStateIdsToListenTo.indexOf(el);\n\n if (elId == id) {\n adapter.log.debug(`Send Value: ${jsonString(el)}`);\n adapter.log.debug(`State: ${jsonString(state)}`);\n\n if (isTruthy(confirm) && !state?.ack && returnText.includes('{confirmSet:')) {\n const { substring } = decomposeText(returnText, '{confirmSet:', '}');\n const splitSubstring = substring.split(':');\n\n adapter.log.debug(`Substring: ${jsonString(splitSubstring)}`);\n let text = '';\n if (isDefined(state.val)) {\n text = splitSubstring[2]?.includes('noValue')\n ? splitSubstring[1]\n : exchangePlaceholderWithValue(splitSubstring[1], state.val.toString());\n }\n adapter.log.debug(`Return-text: ${text}`);\n\n if (text === '') {\n adapter.log.error('The return text cannot be empty, please check.');\n }\n\n await sendToTelegram({\n textToSend: text,\n parse_mode: parse_mode,\n userToSend,\n telegramParams,\n });\n continue;\n }\n adapter.log.debug(`Data: ${jsonString({ confirm, ack: state?.ack, val: state?.val })}`);\n\n if (!isFalsy(confirm) && state?.ack) {\n let textToSend = returnText;\n\n if (textToSend.includes('{confirmSet:')) {\n const { textExcludeSubstring } = decomposeText(textToSend, '{confirmSet:', '}');\n textToSend = textExcludeSubstring;\n }\n\n let value: PrimitiveType = '';\n let valueChange: PrimitiveType | null = null;\n const {\n newValue,\n textToSend: changedText,\n error,\n } = getValueToExchange(adapter, textToSend, state.val?.toString());\n if (!error) {\n valueChange = newValue;\n textToSend = changedText;\n }\n\n if (textToSend?.toString().includes('{novalue}')) {\n value = '';\n textToSend = textToSend.replace('{novalue}', '');\n } else if (isDefined(state?.val)) {\n value = state.val?.toString();\n }\n if (isDefined(valueChange)) {\n value = valueChange;\n }\n\n adapter.log.debug(`Value to send: ${value}`);\n textToSend = exchangePlaceholderWithValue(textToSend, value);\n\n await sendToTelegram({\n userToSend,\n textToSend,\n parse_mode: parse_mode,\n telegramParams,\n });\n\n setStateIdsToListenTo.splice(key, 1);\n }\n }\n }\n }\n });\n });\n } catch (e: any) {\n errorLogger('Error onReady', e, adapter);\n }\n\n await this.subscribeForeignStatesAsync(botSendMessageID);\n await this.subscribeForeignStatesAsync(requestMessageID);\n await this.subscribeForeignStatesAsync(`${telegramInstance}.communicate.requestChatId`);\n await this.subscribeForeignStatesAsync(telegramID);\n await this.subscribeForeignStatesAsync(`${telegramInstance}.info.connection`);\n }\n\n private isMessageID(id: string, botSendMessageID: string, requestMessageID: string): boolean {\n return id == botSendMessageID || id == requestMessageID;\n }\n\n private isAddToShoppingList(id: string, userToSend: string): boolean {\n return !!(id.includes('alexa-shoppinglist') && !id.includes('add_position') && userToSend);\n }\n\n private isMenuToSend(\n state: ioBroker.State | null | undefined,\n id: string,\n telegramID: string,\n userToSend: string | null,\n ): boolean {\n return !!(typeof state?.val === 'string' && state.val != '' && id == telegramID && state?.ack && userToSend);\n }\n\n private async checkInfoConnection(id: string, infoConnectionOfTelegram: string): Promise<boolean> {\n if (id === infoConnectionOfTelegram) {\n if (!(await checkIsTelegramActive(infoConnectionOfTelegram))) {\n this.log.debug('Telegram is not active');\n return false;\n }\n return true;\n }\n return true;\n }\n\n private async getChatIDAndUserToSend(\n telegramParams: TelegramParams,\n ): Promise<{ chatID: string; userToSend: string; error: boolean; errorMessage?: string }> {\n const { telegramInstance, userListWithChatID } = telegramParams;\n const chatIDState = await this.getForeignStateAsync(`${telegramInstance}.communicate.requestChatId`);\n\n if (!chatIDState?.val) {\n adapter.log.debug('ChatID not found');\n return { chatID: '', userToSend: '', error: true, errorMessage: 'ChatId not found' };\n }\n\n const userToSend = getUserToSendFromUserListWithChatID(userListWithChatID, chatIDState.val.toString());\n if (!userToSend) {\n this.log.debug('User to send not found');\n return { chatID: chatIDState.val.toString(), userToSend: '', error: true, errorMessage: 'User not found' };\n }\n return { chatID: chatIDState.val.toString(), userToSend, error: false };\n }\n\n /**\n * Is called when adapter shuts down - callback has to be called under any circumstances!\n *\n * @param callback - Is called when adapter has closed all connections and released all resources\n */\n private onUnload(callback: () => void): void {\n const timeouts = getTimeouts();\n try {\n // Here you must clear all timeouts or intervals that may still be active\n timeouts.forEach(({ timeout }) => {\n adapter.clearTimeout(timeout);\n });\n\n callback();\n } catch (e: any) {\n errorLogger(e, 'Error onUnload', adapter);\n callback();\n }\n }\n\n onMessage(obj: ioBroker.Message): void {\n if (typeof obj === 'object' && obj.message) {\n if (obj.command === 'send') {\n // e.g. send email or pushover or whatever\n this.log.info('send command');\n // Send response in callback if required\n if (obj.callback) {\n this.sendTo(obj.from, obj.command, 'Message received', obj.callback);\n }\n }\n }\n }\n}\n\nif (require.main !== module) {\n // Export the constructor in compact mode\n /**\n * @param [options] - Adapter options\n */\n module.exports = (options: Partial<utils.AdapterOptions<undefined, undefined>> | undefined): TelegramMenu =>\n new TelegramMenu(options);\n} else {\n // otherwise start the instance directly\n (() => new TelegramMenu())();\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["_a", "userToSend", "error"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.adjustValueType = exports.bindingFunc = exports.idBySelector = exports.getUserToSendFromUserListWithChatID = exports.checkEvent = void 0;
|
|
4
|
+
exports.generateActions = generateActions;
|
|
5
|
+
const telegram_1 = require("./telegram");
|
|
6
|
+
const subMenu_1 = require("./subMenu");
|
|
7
|
+
const sendNav_1 = require("./sendNav");
|
|
8
|
+
const backMenu_1 = require("./backMenu");
|
|
9
|
+
const logging_1 = require("./logging");
|
|
10
|
+
const main_1 = require("../main");
|
|
11
|
+
const string_1 = require("../lib/string");
|
|
12
|
+
const utils_1 = require("../lib/utils");
|
|
13
|
+
const math_1 = require("../lib/math");
|
|
14
|
+
const config_1 = require("../config/config");
|
|
15
|
+
const splitValues_1 = require("../lib/splitValues");
|
|
16
|
+
const bindingFunc = async (text, userToSend, telegramParams, parse_mode) => {
|
|
17
|
+
let textToSend;
|
|
18
|
+
try {
|
|
19
|
+
const { substringExcludeSearch } = (0, string_1.decomposeText)(text, config_1.config.binding.start, config_1.config.binding.end);
|
|
20
|
+
const arrayOfItems = substringExcludeSearch.split(config_1.config.binding.splitChar);
|
|
21
|
+
const bindingObject = {
|
|
22
|
+
values: {},
|
|
23
|
+
};
|
|
24
|
+
for (let item of arrayOfItems) {
|
|
25
|
+
if (!item.includes('?')) {
|
|
26
|
+
const { key, id } = (0, splitValues_1.getBindingValues)(item);
|
|
27
|
+
if (id) {
|
|
28
|
+
const result = await main_1.adapter.getForeignStateAsync(id);
|
|
29
|
+
if (result) {
|
|
30
|
+
bindingObject.values[key] = result.val?.toString() ?? '';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
Object.keys(bindingObject.values).forEach(function (key) {
|
|
36
|
+
item = item.replace(key, bindingObject.values[key]);
|
|
37
|
+
});
|
|
38
|
+
const { val } = (0, math_1.evaluate)(item, main_1.adapter);
|
|
39
|
+
textToSend = String(val);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
await (0, telegram_1.sendToTelegram)({
|
|
43
|
+
userToSend,
|
|
44
|
+
textToSend,
|
|
45
|
+
telegramParams,
|
|
46
|
+
parse_mode,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
(0, logging_1.errorLogger)('Error Binding function: ', e, main_1.adapter);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
exports.bindingFunc = bindingFunc;
|
|
54
|
+
const idBySelector = async ({ selector, text, userToSend, newline, telegramParams, }) => {
|
|
55
|
+
let text2Send = '';
|
|
56
|
+
try {
|
|
57
|
+
const functions = selector.replace(config_1.config.functionSelektor, '');
|
|
58
|
+
let enums = [];
|
|
59
|
+
const result = await main_1.adapter.getEnumsAsync();
|
|
60
|
+
if (!result?.['enum.functions'][`enum.functions.${functions}`]) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
enums = result['enum.functions'][`enum.functions.${functions}`].common.members;
|
|
64
|
+
if (!enums) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const promises = enums.map(async (id) => {
|
|
68
|
+
const value = await main_1.adapter.getForeignStateAsync(id);
|
|
69
|
+
if ((0, utils_1.isDefined)(value?.val)) {
|
|
70
|
+
let newText = text;
|
|
71
|
+
let res;
|
|
72
|
+
if (text.includes('{common.name}')) {
|
|
73
|
+
res = await main_1.adapter.getForeignObjectAsync(id);
|
|
74
|
+
main_1.adapter.log.debug(`Name ${(0, string_1.jsonString)(res?.common.name)}`);
|
|
75
|
+
if (res && typeof res.common.name === 'string') {
|
|
76
|
+
newText = newText.replace('{common.name}', res.common.name);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (text.includes('&&')) {
|
|
80
|
+
text2Send += newText.replace('&&', String(value.val));
|
|
81
|
+
}
|
|
82
|
+
else if (text.includes('&&')) {
|
|
83
|
+
text2Send += newText.replace('&&', String(value.val));
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
text2Send += newText;
|
|
87
|
+
text2Send += ` ${value.val}`;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
text2Send += (0, string_1.getNewline)(newline);
|
|
91
|
+
main_1.adapter.log.debug(`text2send ${JSON.stringify(text2Send)}`);
|
|
92
|
+
});
|
|
93
|
+
Promise.all(promises)
|
|
94
|
+
.then(async () => {
|
|
95
|
+
await (0, telegram_1.sendToTelegram)({
|
|
96
|
+
userToSend,
|
|
97
|
+
textToSend: text2Send,
|
|
98
|
+
telegramParams,
|
|
99
|
+
});
|
|
100
|
+
})
|
|
101
|
+
.catch(e => {
|
|
102
|
+
(0, logging_1.errorLogger)('Error Promise:', e, main_1.adapter);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
(0, logging_1.errorLogger)('Error idBySelector: ', error, main_1.adapter);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
exports.idBySelector = idBySelector;
|
|
110
|
+
function generateActions({ action, userObject, }) {
|
|
111
|
+
try {
|
|
112
|
+
const listOfSetStateIds = [];
|
|
113
|
+
action?.set.forEach(function ({ trigger, switch_checkbox, returnText, parse_mode, values, confirm, ack, IDs }, index) {
|
|
114
|
+
const triggerName = trigger[0];
|
|
115
|
+
if (index == 0) {
|
|
116
|
+
userObject[triggerName] = { switch: [] };
|
|
117
|
+
}
|
|
118
|
+
userObject[triggerName] = { switch: [] };
|
|
119
|
+
IDs.forEach(function (id, index) {
|
|
120
|
+
listOfSetStateIds.push(id);
|
|
121
|
+
const toggle = (0, utils_1.isTruthy)(switch_checkbox[index]);
|
|
122
|
+
const newObj = {
|
|
123
|
+
id: IDs[index],
|
|
124
|
+
value: values[index],
|
|
125
|
+
toggle: toggle,
|
|
126
|
+
confirm: confirm[index],
|
|
127
|
+
returnText: returnText[index],
|
|
128
|
+
ack: (0, utils_1.isTruthy)(ack[index]),
|
|
129
|
+
parse_mode: (0, utils_1.isTruthy)(parse_mode[0]),
|
|
130
|
+
};
|
|
131
|
+
if (Array.isArray(userObject[triggerName]?.switch)) {
|
|
132
|
+
userObject[triggerName].switch.push(newObj);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
config_1.arrayOfEntries.forEach(item => {
|
|
137
|
+
const actions = action?.[item.objName];
|
|
138
|
+
actions?.forEach(function (element, index) {
|
|
139
|
+
const trigger = element.trigger[0];
|
|
140
|
+
userObject[trigger] = { [item.name]: [] };
|
|
141
|
+
if (index == 0) {
|
|
142
|
+
userObject[trigger] = { [item.name]: [] };
|
|
143
|
+
}
|
|
144
|
+
element[item.loop].forEach(function (id, index) {
|
|
145
|
+
const newObj = {};
|
|
146
|
+
item.elements.forEach(({ name, value, index: elIndex }) => {
|
|
147
|
+
const elName = (value ? value : name);
|
|
148
|
+
const newIndex = elIndex ? elIndex : index;
|
|
149
|
+
const val = !element[elName] ? false : element[elName][newIndex] || 'false';
|
|
150
|
+
if (name === 'parse_mode') {
|
|
151
|
+
newObj.parse_mode = (0, utils_1.isTruthy)(val);
|
|
152
|
+
}
|
|
153
|
+
if (typeof val === 'string') {
|
|
154
|
+
newObj[name] = val.replace(/&/g, '&');
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
(userObject?.[trigger]?.[item.name]).push(newObj);
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
return { obj: userObject, ids: listOfSetStateIds };
|
|
162
|
+
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
(0, logging_1.errorLogger)('Error generateActions:', err, main_1.adapter);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
const adjustValueType = (value, valueType) => {
|
|
168
|
+
if (valueType == 'number') {
|
|
169
|
+
if (!parseFloat(value)) {
|
|
170
|
+
main_1.adapter.log.error(`Error: Value is not a number: ${value}`);
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
return parseFloat(value);
|
|
174
|
+
}
|
|
175
|
+
if (valueType == 'boolean') {
|
|
176
|
+
return (0, utils_1.isTruthy)(value);
|
|
177
|
+
}
|
|
178
|
+
return value;
|
|
179
|
+
};
|
|
180
|
+
exports.adjustValueType = adjustValueType;
|
|
181
|
+
const checkEvent = async (dataObject, id, state, menuData, telegramParams, usersInGroup) => {
|
|
182
|
+
const menuArray = [];
|
|
183
|
+
let ok = false;
|
|
184
|
+
let calledNav = '';
|
|
185
|
+
Object.keys(dataObject.action).forEach(menu => {
|
|
186
|
+
if (dataObject.action[menu]?.events) {
|
|
187
|
+
dataObject.action[menu].events.forEach(event => {
|
|
188
|
+
if (event.ID[0] == id && event.ack[0] == state.ack.toString()) {
|
|
189
|
+
const condition = event.condition[0];
|
|
190
|
+
if (((state.val == true || state.val == 'true') && (0, utils_1.isTruthy)(condition)) ||
|
|
191
|
+
((state.val == false || state.val == 'false') && (0, utils_1.isFalsy)(condition)) ||
|
|
192
|
+
(typeof state.val == 'number' && state.val == parseInt(condition)) ||
|
|
193
|
+
state.val == condition) {
|
|
194
|
+
ok = true;
|
|
195
|
+
menuArray.push(menu);
|
|
196
|
+
calledNav = event.menu[0];
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
if (!ok || !menuArray.length) {
|
|
203
|
+
return false;
|
|
204
|
+
}
|
|
205
|
+
for (const menu of menuArray) {
|
|
206
|
+
const part = menuData[menu][calledNav];
|
|
207
|
+
if (usersInGroup[menu] && part) {
|
|
208
|
+
for (const user of usersInGroup[menu]) {
|
|
209
|
+
const menus = Object.keys(menuData);
|
|
210
|
+
if (part.nav) {
|
|
211
|
+
(0, backMenu_1.backMenuFunc)({ activePage: calledNav, navigation: part.nav, userToSend: user });
|
|
212
|
+
}
|
|
213
|
+
if (part?.nav?.[0][0].includes('menu:')) {
|
|
214
|
+
await (0, subMenu_1.callSubMenu)({
|
|
215
|
+
jsonStringNav: part.nav[0][0],
|
|
216
|
+
userToSend: user,
|
|
217
|
+
telegramParams: telegramParams,
|
|
218
|
+
part: part,
|
|
219
|
+
allMenusWithData: menuData,
|
|
220
|
+
menus: menus,
|
|
221
|
+
});
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
await (0, sendNav_1.sendNav)(part, user, telegramParams);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return true;
|
|
229
|
+
};
|
|
230
|
+
exports.checkEvent = checkEvent;
|
|
231
|
+
const getUserToSendFromUserListWithChatID = (userListWithChatID, chatID) => {
|
|
232
|
+
for (const element of userListWithChatID) {
|
|
233
|
+
if (element.chatID == chatID) {
|
|
234
|
+
return element.name;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
exports.getUserToSendFromUserListWithChatID = getUserToSendFromUserListWithChatID;
|
|
239
|
+
//# sourceMappingURL=action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/app/action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.adapter = void 0;
|
|
4
|
+
const main_1 = require("../main"); // Importiere den Adapter aus der Hauptdatei
|
|
5
|
+
const setup_1 = require("../../test/setup");
|
|
6
|
+
if (main_1.adapter) {
|
|
7
|
+
exports.adapter = main_1.adapter; // Verwende den Haupt-Adapter, wenn er definiert ist
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
exports.adapter = setup_1.adapter; // Verwende den Mock-Adapter, wenn der Haupt-Adapter nicht verfügbar ist
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=adapterManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapterManager.js","sourceRoot":"","sources":["../../../src/app/adapterManager.ts"],"names":[],"mappings":";;;AAAA,kCAAiD,CAAC,4CAA4C;AAC9F,4CAA0D;AAK1D,IAAI,cAAW,EAAE,CAAC;IACd,eAAO,GAAG,cAAW,CAAC,CAAC,oDAAoD;AAC/E,CAAC;KAAM,CAAC;IACJ,eAAO,GAAG,eAAW,CAAC,CAAC,wEAAwE;AACnG,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.adapterStartMenuSend = adapterStartMenuSend;
|
|
4
|
+
const telegram_1 = require("./telegram");
|
|
5
|
+
const backMenu_1 = require("./backMenu");
|
|
6
|
+
const main_1 = require("../main");
|
|
7
|
+
const string_1 = require("../lib/string");
|
|
8
|
+
const appUtils_1 = require("../lib/appUtils");
|
|
9
|
+
async function adapterStartMenuSend(listOfMenus, startSides, userActiveCheckbox, menusWithUsers, menuData, telegramParams) {
|
|
10
|
+
for (const menu of listOfMenus) {
|
|
11
|
+
const startSide = startSides[menu];
|
|
12
|
+
if (userActiveCheckbox[menu] && (0, appUtils_1.isStartside)(startSide)) {
|
|
13
|
+
main_1.adapter.log.debug(`Startside: ${startSide}`);
|
|
14
|
+
for (const userToSend of menusWithUsers[menu]) {
|
|
15
|
+
const { nav, text, parse_mode } = menuData[menu][startSide];
|
|
16
|
+
(0, backMenu_1.backMenuFunc)({ activePage: startSide, navigation: nav, userToSend: userToSend });
|
|
17
|
+
main_1.adapter.log.debug(`User list: ${(0, string_1.jsonString)(telegramParams.userListWithChatID)}`);
|
|
18
|
+
await (0, telegram_1.sendToTelegram)({
|
|
19
|
+
userToSend,
|
|
20
|
+
textToSend: text,
|
|
21
|
+
keyboard: nav,
|
|
22
|
+
telegramParams,
|
|
23
|
+
parse_mode,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
if (!(0, appUtils_1.isStartside)(startSide)) {
|
|
29
|
+
main_1.adapter.log.debug(`Menu "${menu}" is a Submenu.`);
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
main_1.adapter.log.debug(`Menu "${menu}" is inactive.`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=adapterStartMenuSend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapterStartMenuSend.js","sourceRoot":"","sources":["../../../src/app/adapterStartMenuSend.ts"],"names":[],"mappings":";;AAcA,oDAmCC;AAjDD,yCAA4C;AAC5C,yCAA0C;AAS1C,kCAAkC;AAClC,0CAA2C;AAC3C,8CAA8C;AAEvC,KAAK,UAAU,oBAAoB,CACtC,WAAwB,EACxB,UAAsB,EACtB,kBAAwC,EACxC,cAA8B,EAC9B,QAAkB,EAClB,cAA8B;IAE9B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,IAAA,sBAAW,EAAC,SAAS,CAAC,EAAE,CAAC;YACrD,cAAO,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;YAC7C,KAAK,MAAM,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC5D,IAAA,uBAAY,EAAC,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;gBAEjF,cAAO,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,IAAA,mBAAU,EAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;gBAEjF,MAAM,IAAA,yBAAc,EAAC;oBACjB,UAAU;oBACV,UAAU,EAAE,IAAI;oBAChB,QAAQ,EAAE,GAAG;oBACb,cAAc;oBACd,UAAU;iBACb,CAAC,CAAC;YACP,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAA,sBAAW,EAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,cAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,iBAAiB,CAAC,CAAC;gBAClD,SAAS;YACb,CAAC;YACD,cAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,gBAAgB,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.backMenuFunc = backMenuFunc;
|
|
4
|
+
exports.switchBack = switchBack;
|
|
5
|
+
const logging_1 = require("./logging");
|
|
6
|
+
const utilities_1 = require("../lib/utilities");
|
|
7
|
+
const main_1 = require("../main");
|
|
8
|
+
const string_1 = require("../lib/string");
|
|
9
|
+
const config_1 = require("../config/config");
|
|
10
|
+
const backMenu = {};
|
|
11
|
+
function backMenuFunc({ activePage, navigation, userToSend, }) {
|
|
12
|
+
if (!navigation || !(0, string_1.jsonString)(navigation).split(`"`)[1].includes('menu:')) {
|
|
13
|
+
const list = backMenu[userToSend]?.list;
|
|
14
|
+
const lastMenu = backMenu[userToSend]?.last;
|
|
15
|
+
if (list?.length === config_1.backMenuLength) {
|
|
16
|
+
list.shift();
|
|
17
|
+
}
|
|
18
|
+
if (!backMenu[userToSend]) {
|
|
19
|
+
backMenu[userToSend] = { list: [], last: '' };
|
|
20
|
+
}
|
|
21
|
+
if (lastMenu && lastMenu !== '' && list) {
|
|
22
|
+
list.push(lastMenu);
|
|
23
|
+
}
|
|
24
|
+
backMenu[userToSend].last = activePage;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async function switchBack(userToSend, allMenusWithData, menus, lastMenu = false) {
|
|
28
|
+
try {
|
|
29
|
+
const list = backMenu[userToSend]?.list ? backMenu[userToSend].list : [];
|
|
30
|
+
const lastListElement = list[list.length - 1];
|
|
31
|
+
const lastElement = backMenu[userToSend]?.last;
|
|
32
|
+
let keyboard;
|
|
33
|
+
let foundedMenu = '';
|
|
34
|
+
if (list.length) {
|
|
35
|
+
for (const menu of menus) {
|
|
36
|
+
const nav = lastElement ? allMenusWithData[menu]?.[lastElement]?.nav : undefined;
|
|
37
|
+
const navBefore = allMenusWithData[menu]?.[lastListElement]?.nav;
|
|
38
|
+
if (lastMenu && nav) {
|
|
39
|
+
keyboard = nav;
|
|
40
|
+
foundedMenu = menu;
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
else if (navBefore && !lastMenu) {
|
|
44
|
+
keyboard = navBefore;
|
|
45
|
+
foundedMenu = menu;
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
main_1.adapter.log.debug(`Menu call not found in this Menu: ${menu}`);
|
|
49
|
+
}
|
|
50
|
+
if (keyboard && foundedMenu != '') {
|
|
51
|
+
if (!lastMenu) {
|
|
52
|
+
const list = backMenu[userToSend]?.list;
|
|
53
|
+
const listLength = list ? list.length - 1 : 0;
|
|
54
|
+
const lastListElement = list?.[listLength];
|
|
55
|
+
if (!lastListElement) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const { text, parse_mode } = allMenusWithData[foundedMenu][lastListElement];
|
|
59
|
+
let textToSend = text;
|
|
60
|
+
if (textToSend) {
|
|
61
|
+
textToSend = await (0, utilities_1.checkStatusInfo)(textToSend);
|
|
62
|
+
}
|
|
63
|
+
if (backMenu[userToSend]?.last) {
|
|
64
|
+
backMenu[userToSend].last = list.pop() ?? '';
|
|
65
|
+
}
|
|
66
|
+
return { textToSend, keyboard, parse_mode };
|
|
67
|
+
}
|
|
68
|
+
const lastElement = backMenu[userToSend]?.last;
|
|
69
|
+
if (!lastElement) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const { parse_mode, text: textToSend } = allMenusWithData[foundedMenu][lastElement];
|
|
73
|
+
return { textToSend, keyboard, parse_mode };
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
(0, logging_1.errorLogger)('Error in switchBack:', e, main_1.adapter);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=backMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backMenu.js","sourceRoot":"","sources":["../../../src/app/backMenu.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteMessageByBot = void 0;
|
|
4
|
+
const main_1 = require("../main");
|
|
5
|
+
const logging_1 = require("./logging");
|
|
6
|
+
const deleteMessageByBot = (instance, user, messageId, chat_id) => {
|
|
7
|
+
try {
|
|
8
|
+
if (chat_id) {
|
|
9
|
+
main_1.adapter.log.debug(`Delete Message for ${user} ${chat_id} , MessageId: ${messageId}`);
|
|
10
|
+
}
|
|
11
|
+
main_1.adapter.sendTo(instance, {
|
|
12
|
+
deleteMessage: {
|
|
13
|
+
options: {
|
|
14
|
+
chat_id: chat_id,
|
|
15
|
+
message_id: messageId,
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
catch (e) {
|
|
21
|
+
(0, logging_1.errorLogger)('Error deleteMessage:', e, main_1.adapter);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
exports.deleteMessageByBot = deleteMessageByBot;
|
|
25
|
+
//# sourceMappingURL=botAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"botAction.js","sourceRoot":"","sources":["../../../src/app/botAction.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAClC,uCAAwC;AAExC,MAAM,kBAAkB,GAAG,CAAC,QAAgB,EAAE,IAAY,EAAE,SAAiB,EAAE,OAAwB,EAAQ,EAAE;IAC7G,IAAI,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACV,cAAO,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,IAAI,IAAI,OAAO,iBAAiB,SAAS,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,cAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;YACrB,aAAa,EAAE;gBACX,OAAO,EAAE;oBACL,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,SAAS;iBACxB;aACJ;SACJ,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,IAAA,qBAAW,EAAC,sBAAsB,EAAE,CAAC,EAAE,cAAO,CAAC,CAAC;IACpD,CAAC;AACL,CAAC,CAAC;AACO,gDAAkB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getConfigVariables = void 0;
|
|
4
|
+
const getConfigVariables = (config) => {
|
|
5
|
+
const telegramInstance = config.instance ?? 'telegram.0';
|
|
6
|
+
const checkboxes = config.checkbox;
|
|
7
|
+
const telegramParams = {
|
|
8
|
+
telegramInstance,
|
|
9
|
+
resize_keyboard: checkboxes.resKey,
|
|
10
|
+
one_time_keyboard: checkboxes.oneTiKey,
|
|
11
|
+
userListWithChatID: config.userListWithChatID,
|
|
12
|
+
};
|
|
13
|
+
return {
|
|
14
|
+
checkboxes,
|
|
15
|
+
telegramID: `${telegramInstance}.communicate.request`,
|
|
16
|
+
botSendMessageID: `${telegramInstance}.communicate.botSendMessageId`,
|
|
17
|
+
requestMessageID: `${telegramInstance}.communicate.requestMessageId`,
|
|
18
|
+
infoConnectionOfTelegram: `${telegramInstance}.info.connection`,
|
|
19
|
+
checkboxNoEntryFound: checkboxes.checkboxNoValueFound,
|
|
20
|
+
sendMenuAfterRestart: checkboxes.sendMenuAfterRestart,
|
|
21
|
+
listOfMenus: config.usersInGroup ? Object.keys(config.usersInGroup) : [],
|
|
22
|
+
token: config.tokenGrafana,
|
|
23
|
+
directoryPicture: config.directory,
|
|
24
|
+
isUserActiveCheckbox: config.userActiveCheckbox,
|
|
25
|
+
menusWithUsers: config.usersInGroup,
|
|
26
|
+
textNoEntryFound: config.textNoEntry,
|
|
27
|
+
dataObject: config.data,
|
|
28
|
+
telegramParams,
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
exports.getConfigVariables = getConfigVariables;
|
|
32
|
+
//# sourceMappingURL=configVariables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configVariables.js","sourceRoot":"","sources":["../../../src/app/configVariables.ts"],"names":[],"mappings":";;;AAEO,MAAM,kBAAkB,GAAG,CAC9B,MAA8B,EAiBhC,EAAE;IACA,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,IAAI,YAAY,CAAC;IACzD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC;IACnC,MAAM,cAAc,GAAmB;QACnC,gBAAgB;QAChB,eAAe,EAAE,UAAU,CAAC,MAAM;QAClC,iBAAiB,EAAE,UAAU,CAAC,QAAQ;QACtC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;KAChD,CAAC;IACF,OAAO;QACH,UAAU;QACV,UAAU,EAAE,GAAG,gBAAgB,sBAAsB;QACrD,gBAAgB,EAAE,GAAG,gBAAgB,+BAA+B;QACpE,gBAAgB,EAAE,GAAG,gBAAgB,+BAA+B;QACpE,wBAAwB,EAAE,GAAG,gBAAgB,kBAAkB;QAC/D,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;QACrD,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;QACrD,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;QACxE,KAAK,EAAE,MAAM,CAAC,YAAY;QAC1B,gBAAgB,EAAE,MAAM,CAAC,SAAS;QAClC,oBAAoB,EAAE,MAAM,CAAC,kBAAkB;QAC/C,cAAc,EAAE,MAAM,CAAC,YAAY;QACnC,gBAAgB,EAAE,MAAM,CAAC,WAAW;QACpC,UAAU,EAAE,MAAM,CAAC,IAAI;QACvB,cAAc;KACjB,CAAC;AACN,CAAC,CAAC;AA5CW,QAAA,kBAAkB,sBA4C7B"}
|