iobroker.telegram-menu 2.2.3 → 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.
Files changed (287) hide show
  1. package/README.md +13 -1
  2. package/admin/build/index.js +49 -49
  3. package/admin/build/index.js.map +3 -3
  4. package/admin/css/button.css +3 -0
  5. package/admin/css/row-editor.css +1 -1
  6. package/admin/css/style.css +46 -25
  7. package/admin/css/textarea.css +7 -11
  8. package/admin/i18n/de/translations.json +124 -123
  9. package/admin/i18n/en/translations.json +3 -2
  10. package/admin/i18n/es/translations.json +3 -2
  11. package/admin/i18n/fr/translations.json +3 -2
  12. package/admin/i18n/it/translations.json +3 -2
  13. package/admin/i18n/nl/translations.json +3 -2
  14. package/admin/i18n/pl/translations.json +3 -2
  15. package/admin/i18n/pt/translations.json +3 -2
  16. package/admin/i18n/ru/translations.json +3 -2
  17. package/admin/i18n/uk/translations.json +3 -2
  18. package/admin/i18n/zh-cn/translations.json +3 -2
  19. package/admin/words.js +3 -1
  20. package/build/admin/src/config/helper.js +178 -0
  21. package/build/admin/src/config/helper.js.map +1 -0
  22. package/build/admin/src/lib/Utils.js +64 -0
  23. package/build/admin/src/lib/Utils.js.map +1 -0
  24. package/build/admin/src/types/event.js +3 -0
  25. package/build/admin/src/types/event.js.map +1 -0
  26. package/build/app/action.js +270 -0
  27. package/build/app/action.js.map +7 -0
  28. package/build/app/adapterManager.js +36 -0
  29. package/build/app/adapterManager.js.map +7 -0
  30. package/build/app/adapterStartMenuSend.js +59 -0
  31. package/build/app/adapterStartMenuSend.js.map +7 -0
  32. package/build/app/backMenu.js +110 -0
  33. package/build/app/backMenu.js.map +7 -0
  34. package/build/app/botAction.js +47 -0
  35. package/build/app/botAction.js.map +7 -0
  36. package/build/app/configVariables.js +56 -0
  37. package/build/app/configVariables.js.map +7 -0
  38. package/build/app/connection.js +42 -0
  39. package/build/app/connection.js.map +7 -0
  40. package/build/app/createState.js +42 -0
  41. package/build/app/createState.js.map +7 -0
  42. package/build/app/dynamicSwitch.js +69 -0
  43. package/build/app/dynamicSwitch.js.map +7 -0
  44. package/build/app/dynamicSwitchMenu.js +69 -0
  45. package/build/app/dynamicSwitchMenu.js.map +7 -0
  46. package/build/app/dynamicValue.js +80 -0
  47. package/build/app/dynamicValue.js.map +7 -0
  48. package/build/app/echarts.js +60 -0
  49. package/build/app/echarts.js.map +7 -0
  50. package/build/app/getstate.js +148 -0
  51. package/build/app/getstate.js.map +7 -0
  52. package/build/app/global.js +2 -0
  53. package/build/app/global.js.map +7 -0
  54. package/build/app/httpRequest.js +84 -0
  55. package/build/app/httpRequest.js.map +7 -0
  56. package/build/app/jsonTable.js +158 -0
  57. package/build/app/jsonTable.js.map +7 -0
  58. package/build/app/logging.js +46 -0
  59. package/build/app/logging.js.map +7 -0
  60. package/build/app/messageIds.js +116 -0
  61. package/build/app/messageIds.js.map +7 -0
  62. package/build/app/processData.js +198 -0
  63. package/build/app/processData.js.map +7 -0
  64. package/build/app/sendNav.js +49 -0
  65. package/build/app/sendNav.js.map +7 -0
  66. package/build/app/sendpic.js +95 -0
  67. package/build/app/sendpic.js.map +7 -0
  68. package/build/app/sentry.js +43 -0
  69. package/build/app/sentry.js.map +7 -0
  70. package/build/app/setStateIdsToListenTo.js +42 -0
  71. package/build/app/setStateIdsToListenTo.js.map +7 -0
  72. package/build/app/setstate.js +145 -0
  73. package/build/app/setstate.js.map +7 -0
  74. package/build/app/shoppingList.js +97 -0
  75. package/build/app/shoppingList.js.map +7 -0
  76. package/build/app/subMenu.js +281 -0
  77. package/build/app/subMenu.js.map +7 -0
  78. package/build/app/subscribeStates.js +41 -0
  79. package/build/app/subscribeStates.js.map +7 -0
  80. package/build/app/telegram.js +131 -0
  81. package/build/app/telegram.js.map +7 -0
  82. package/build/app/validateMenus.js +64 -0
  83. package/build/app/validateMenus.js.map +7 -0
  84. package/build/build/src/app/action.js +447 -0
  85. package/build/build/src/app/adapterStartMenuSend.js +37 -0
  86. package/build/build/src/app/backMenu.js +70 -0
  87. package/build/build/src/app/botAction.js +25 -0
  88. package/build/build/src/app/connection.js +19 -0
  89. package/build/build/src/app/createState.js +19 -0
  90. package/build/build/src/app/dynamicSwitch.js +51 -0
  91. package/build/build/src/app/dynamicValue.js +64 -0
  92. package/build/build/src/app/echarts.js +45 -0
  93. package/build/build/src/app/getstate.js +157 -0
  94. package/build/build/src/app/global.js +59 -0
  95. package/build/build/src/app/httpRequest.js +64 -0
  96. package/build/build/src/app/jsonTable.js +147 -0
  97. package/build/build/src/app/logging.js +13 -0
  98. package/build/build/src/app/messageIds.js +88 -0
  99. package/build/build/src/app/processData.js +208 -0
  100. package/build/build/src/app/sendNav.js +30 -0
  101. package/build/build/src/app/sendpic.js +69 -0
  102. package/build/build/src/app/setstate.js +126 -0
  103. package/build/build/src/app/shoppingList.js +72 -0
  104. package/build/build/src/app/subMenu.js +361 -0
  105. package/build/build/src/app/subscribeStates.js +25 -0
  106. package/build/build/src/app/telegram.js +101 -0
  107. package/build/build/src/lib/string.js +28 -0
  108. package/build/build/src/lib/time.js +23 -0
  109. package/build/build/src/lib/utilities.js +263 -0
  110. package/build/build/src/lib/utils.js +13 -0
  111. package/build/build/src/main.js +402 -0
  112. package/build/config/config.js +134 -0
  113. package/build/config/config.js.map +7 -0
  114. package/build/io-package.json +87 -87
  115. package/build/lib/action.js +22 -27
  116. package/build/lib/action.js.map +2 -2
  117. package/build/lib/adapterStartMenuSend.js +6 -6
  118. package/build/lib/adapterStartMenuSend.js.map +2 -2
  119. package/build/lib/appUtils.js +158 -0
  120. package/build/lib/appUtils.js.map +7 -0
  121. package/build/lib/appUtilsString.js +37 -0
  122. package/build/lib/appUtilsString.js.map +7 -0
  123. package/build/lib/backMenu.js +6 -6
  124. package/build/lib/backMenu.js.map +2 -2
  125. package/build/lib/botAction.js.map +1 -1
  126. package/build/lib/dynamicSwitch.js +10 -10
  127. package/build/lib/dynamicSwitch.js.map +2 -2
  128. package/build/lib/dynamicValue.js +6 -6
  129. package/build/lib/dynamicValue.js.map +2 -2
  130. package/build/lib/echarts.js +5 -6
  131. package/build/lib/echarts.js.map +2 -2
  132. package/build/lib/getstate.js +29 -30
  133. package/build/lib/getstate.js.map +2 -2
  134. package/build/lib/global.js +13 -0
  135. package/build/lib/global.js.map +2 -2
  136. package/build/lib/httpRequest.js +6 -7
  137. package/build/lib/httpRequest.js.map +2 -2
  138. package/build/lib/json.js +54 -0
  139. package/build/lib/json.js.map +7 -0
  140. package/build/lib/jsonTable.js +12 -15
  141. package/build/lib/jsonTable.js.map +2 -2
  142. package/build/lib/math.js +41 -0
  143. package/build/lib/math.js.map +7 -0
  144. package/build/lib/messageIds.js.map +1 -1
  145. package/build/lib/object.js +35 -0
  146. package/build/lib/object.js.map +7 -0
  147. package/build/lib/processData.js +22 -33
  148. package/build/lib/processData.js.map +3 -3
  149. package/build/lib/sendNav.js +7 -7
  150. package/build/lib/sendNav.js.map +2 -2
  151. package/build/lib/sendpic.js +23 -22
  152. package/build/lib/sendpic.js.map +2 -2
  153. package/build/lib/setstate.js +8 -8
  154. package/build/lib/setstate.js.map +2 -2
  155. package/build/lib/shoppingList.js +6 -6
  156. package/build/lib/shoppingList.js.map +2 -2
  157. package/build/lib/splitValues.js +63 -0
  158. package/build/lib/splitValues.js.map +7 -0
  159. package/build/lib/string.js +125 -3
  160. package/build/lib/string.js.map +2 -2
  161. package/build/lib/subMenu.js +66 -50
  162. package/build/lib/subMenu.js.map +2 -2
  163. package/build/lib/subscribeStates.js.map +1 -1
  164. package/build/lib/telegram.js +11 -2
  165. package/build/lib/telegram.js.map +2 -2
  166. package/build/lib/time.js +93 -0
  167. package/build/lib/time.js.map +7 -0
  168. package/build/lib/utilities.js +85 -281
  169. package/build/lib/utilities.js.map +3 -3
  170. package/build/lib/utils.js +66 -0
  171. package/build/lib/utils.js.map +7 -0
  172. package/build/main.js +154 -234
  173. package/build/main.js.map +3 -3
  174. package/build/src/app/action.js +239 -0
  175. package/build/src/app/action.js.map +1 -0
  176. package/build/src/app/adapterManager.js +12 -0
  177. package/build/src/app/adapterManager.js.map +1 -0
  178. package/build/src/app/adapterStartMenuSend.js +36 -0
  179. package/build/src/app/adapterStartMenuSend.js.map +1 -0
  180. package/build/src/app/backMenu.js +81 -0
  181. package/build/src/app/backMenu.js.map +1 -0
  182. package/build/src/app/botAction.js +25 -0
  183. package/build/src/app/botAction.js.map +1 -0
  184. package/build/src/app/configVariables.js +32 -0
  185. package/build/src/app/configVariables.js.map +1 -0
  186. package/build/src/app/connection.js +20 -0
  187. package/build/src/app/connection.js.map +1 -0
  188. package/build/src/app/createState.js +19 -0
  189. package/build/src/app/createState.js.map +1 -0
  190. package/build/src/app/dynamicSwitch.js +52 -0
  191. package/build/src/app/dynamicSwitch.js.map +1 -0
  192. package/build/src/app/dynamicSwitchMenu.js +52 -0
  193. package/build/src/app/dynamicSwitchMenu.js.map +1 -0
  194. package/build/src/app/dynamicValue.js +52 -0
  195. package/build/src/app/dynamicValue.js.map +1 -0
  196. package/build/src/app/echarts.js +33 -0
  197. package/build/src/app/echarts.js.map +1 -0
  198. package/build/src/app/getstate.js +122 -0
  199. package/build/src/app/getstate.js.map +1 -0
  200. package/build/src/app/global.js +8 -0
  201. package/build/src/app/global.js.map +1 -0
  202. package/build/src/app/httpRequest.js +55 -0
  203. package/build/src/app/httpRequest.js.map +1 -0
  204. package/build/src/app/jsonTable.js +147 -0
  205. package/build/src/app/jsonTable.js.map +1 -0
  206. package/build/src/app/logging.js +22 -0
  207. package/build/src/app/logging.js.map +1 -0
  208. package/build/src/app/messageIds.js +89 -0
  209. package/build/src/app/messageIds.js.map +1 -0
  210. package/build/src/app/processData.js +153 -0
  211. package/build/src/app/processData.js.map +1 -0
  212. package/build/src/app/sendNav.js +26 -0
  213. package/build/src/app/sendNav.js.map +1 -0
  214. package/build/src/app/sendpic.js +66 -0
  215. package/build/src/app/sendpic.js.map +1 -0
  216. package/build/src/app/sentry.js +18 -0
  217. package/build/src/app/sentry.js.map +1 -0
  218. package/build/src/app/setStateIdsToListenTo.js +17 -0
  219. package/build/src/app/setStateIdsToListenTo.js.map +1 -0
  220. package/build/src/app/setstate.js +114 -0
  221. package/build/src/app/setstate.js.map +1 -0
  222. package/build/src/app/shoppingList.js +74 -0
  223. package/build/src/app/shoppingList.js.map +1 -0
  224. package/build/src/app/subMenu.js +237 -0
  225. package/build/src/app/subMenu.js.map +1 -0
  226. package/build/src/app/subscribeStates.js +17 -0
  227. package/build/src/app/subscribeStates.js.map +1 -0
  228. package/build/src/app/telegram.js +83 -0
  229. package/build/src/app/telegram.js.map +1 -0
  230. package/build/src/app/validateMenus.js +30 -0
  231. package/build/src/app/validateMenus.js.map +1 -0
  232. package/build/src/config/config.js +100 -0
  233. package/build/src/config/config.js.map +1 -0
  234. package/build/src/lib/appUtils.js +126 -0
  235. package/build/src/lib/appUtils.js.map +1 -0
  236. package/build/src/lib/appUtilsString.js +13 -0
  237. package/build/src/lib/appUtilsString.js.map +1 -0
  238. package/build/src/lib/json.js +37 -0
  239. package/build/src/lib/json.js.map +1 -0
  240. package/build/src/lib/math.js +17 -0
  241. package/build/src/lib/math.js.map +1 -0
  242. package/build/src/lib/object.js +10 -0
  243. package/build/src/lib/object.js.map +1 -0
  244. package/build/src/lib/splitValues.js +35 -0
  245. package/build/src/lib/splitValues.js.map +1 -0
  246. package/build/src/lib/string.js +121 -0
  247. package/build/src/lib/string.js.map +1 -0
  248. package/build/src/lib/time.js +57 -0
  249. package/build/src/lib/time.js.map +1 -0
  250. package/build/src/lib/utilities.js +111 -0
  251. package/build/src/lib/utilities.js.map +1 -0
  252. package/build/src/lib/utils.js +37 -0
  253. package/build/src/lib/utils.js.map +1 -0
  254. package/build/src/main.js +332 -0
  255. package/build/src/main.js.map +1 -0
  256. package/build/src/test/setup.js +12 -0
  257. package/build/src/test/setup.js.map +1 -0
  258. package/build/src/types/types.js +3 -0
  259. package/build/src/types/types.js.map +1 -0
  260. package/build/test/integration.js +0 -1
  261. package/build/test/integration.js.map +1 -1
  262. package/build/test/mocha.setup.js +0 -1
  263. package/build/test/mocha.setup.js.map +1 -1
  264. package/build/test/package.js +0 -1
  265. package/build/test/package.js.map +1 -1
  266. package/build/test/setup.js +12 -0
  267. package/build/test/setup.js.map +1 -0
  268. package/build/test/test/appUtils.test.js +507 -0
  269. package/build/test/test/appUtils.test.js.map +1 -0
  270. package/build/test/test/appUtilsString.test.js +16 -0
  271. package/build/test/test/appUtilsString.test.js.map +1 -0
  272. package/build/test/test/math.test.js +33 -0
  273. package/build/test/test/math.test.js.map +1 -0
  274. package/build/test/test/object.test.js +54 -0
  275. package/build/test/test/object.test.js.map +1 -0
  276. package/build/test/test/string.test.js +361 -0
  277. package/build/test/test/string.test.js.map +1 -0
  278. package/build/test/test/time.test.js +201 -0
  279. package/build/test/test/time.test.js.map +1 -0
  280. package/build/test/test/utils.test.js +115 -0
  281. package/build/test/test/utils.test.js.map +1 -0
  282. package/build/types/types.js +17 -0
  283. package/build/types/types.js.map +7 -0
  284. package/io-package.json +32 -27
  285. package/package.json +14 -10
  286. package/build/main.test.js +0 -24
  287. package/build/main.test.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/shoppingList.ts"],
4
- "sourcesContent": ["import { deleteMessageIds } from './messageIds.js';\nimport { createKeyboardFromJson } from './jsonTable.js';\nimport { sendToTelegramSubmenu, sendToTelegram } from './telegram.js';\nimport { _subscribeAndUnSubscribeForeignStatesAsync } from './subscribeStates.js';\nimport { debug, error } from './logging.js';\nimport TelegramMenu from '../main.js';\nimport type { UserListWithChatId } from './telegram-menu.js';\n\ninterface ObjectData {\n [key: string]: {\n idList: string;\n };\n}\nconst objData: ObjectData = {};\n\nlet isSubscribed = false;\n\nasync function shoppingListSubscribeStateAndDeleteItem(\n val: string | null,\n instanceTelegram: string,\n userListWithChatID: UserListWithChatId[],\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n): Promise<void> {\n const _this = TelegramMenu.getInstance();\n try {\n let array, user, idList, instance, idItem, res;\n if (val != null) {\n array = val.split(':');\n user = array[0].replace('[', '').replace(']sList', '');\n idList = array[1];\n instance = array[2];\n idItem = array[3];\n res = await _this.getForeignObjectAsync(`alexa2.${instance}.Lists.SHOPPING_LIST.items.${idItem}`);\n\n if (res) {\n objData[user] = { idList: idList };\n debug([{ text: 'alexa-shoppinglist.', val: idList }]);\n if (!isSubscribed) {\n await _subscribeAndUnSubscribeForeignStatesAsync({ id: `alexa-shoppinglist.${idList}` });\n isSubscribed = true;\n }\n await _this.setForeignStateAsync(\n `alexa2.${instance}.Lists.SHOPPING_LIST.items.${idItem}.#delete`,\n true,\n false,\n );\n return;\n }\n await sendToTelegram(\n user,\n 'Cannot delete the Item',\n undefined,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n 'true',\n );\n debug([{ text: 'Cannot delete the Item' }]);\n return;\n }\n } catch (e: any) {\n error([\n { text: 'Error shoppingList:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nasync function deleteMessageAndSendNewShoppingList(\n instanceTelegram: string,\n userListWithChatID: UserListWithChatId[],\n userToSend: string,\n): Promise<void> {\n const _this = TelegramMenu.getInstance();\n try {\n const user = userToSend;\n const idList = objData[user].idList;\n await _subscribeAndUnSubscribeForeignStatesAsync({ id: `alexa-shoppinglist.${idList}` });\n await deleteMessageIds(user, userListWithChatID, instanceTelegram, 'last');\n\n const result = await _this.getForeignStateAsync(`alexa-shoppinglist.${idList}`);\n if (result && result.val) {\n debug([{ text: 'Result from Shoppinglist:', val: result }]);\n const newId = `alexa-shoppinglist.${idList}`;\n const resultJson = createKeyboardFromJson(result.val as string, null, newId, user);\n if (resultJson && resultJson.text && resultJson.keyboard) {\n sendToTelegramSubmenu(\n user,\n resultJson.text,\n resultJson.keyboard,\n instanceTelegram,\n userListWithChatID,\n 'true',\n );\n }\n }\n } catch (e: any) {\n error([\n { text: 'Error deleteMessageAndSendNewShoppingList:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nexport { shoppingListSubscribeStateAndDeleteItem, deleteMessageAndSendNewShoppingList };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAiC;AACjC,uBAAuC;AACvC,sBAAsD;AACtD,6BAA2D;AAC3D,qBAA6B;AAC7B,kBAAyB;AAQzB,MAAM,UAAsB,CAAC;AAE7B,IAAI,eAAe;AAEnB,eAAe,wCACX,KACA,kBACA,oBACA,iBACA,mBACa;AACb,QAAM,QAAQ,YAAAA,QAAa,YAAY;AACvC,MAAI;AACA,QAAI,OAAO,MAAM,QAAQ,UAAU,QAAQ;AAC3C,QAAI,OAAO,MAAM;AACb,cAAQ,IAAI,MAAM,GAAG;AACrB,aAAO,MAAM,CAAC,EAAE,QAAQ,KAAK,EAAE,EAAE,QAAQ,UAAU,EAAE;AACrD,eAAS,MAAM,CAAC;AAChB,iBAAW,MAAM,CAAC;AAClB,eAAS,MAAM,CAAC;AAChB,YAAM,MAAM,MAAM,sBAAsB,UAAU,QAAQ,8BAA8B,MAAM,EAAE;AAEhG,UAAI,KAAK;AACL,gBAAQ,IAAI,IAAI,EAAE,OAAe;AACjC,kCAAM,CAAC,EAAE,MAAM,uBAAuB,KAAK,OAAO,CAAC,CAAC;AACpD,YAAI,CAAC,cAAc;AACf,oBAAM,mEAA2C,EAAE,IAAI,sBAAsB,MAAM,GAAG,CAAC;AACvF,yBAAe;AAAA,QACnB;AACA,cAAM,MAAM;AAAA,UACR,UAAU,QAAQ,8BAA8B,MAAM;AAAA,UACtD;AAAA,UACA;AAAA,QACJ;AACA;AAAA,MACJ;AACA,gBAAM;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AACA,gCAAM,CAAC,EAAE,MAAM,yBAAyB,CAAC,CAAC;AAC1C;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,8BAAM;AAAA,MACF,EAAE,MAAM,uBAAuB,KAAK,EAAE,QAAQ;AAAA,MAC9C,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM;AAAA,IACnC,CAAC;AAAA,EACL;AACJ;AAEA,eAAe,oCACX,kBACA,oBACA,YACa;AACb,QAAM,QAAQ,YAAAA,QAAa,YAAY;AACvC,MAAI;AACA,UAAM,OAAO;AACb,UAAM,SAAS,QAAQ,IAAI,EAAE;AAC7B,cAAM,mEAA2C,EAAE,IAAI,sBAAsB,MAAM,GAAG,CAAC;AACvF,cAAM,oCAAiB,MAAM,oBAAoB,kBAAkB,MAAM;AAEzE,UAAM,SAAS,MAAM,MAAM,qBAAqB,sBAAsB,MAAM,EAAE;AAC9E,QAAI,UAAU,OAAO,KAAK;AACtB,gCAAM,CAAC,EAAE,MAAM,6BAA6B,KAAK,OAAO,CAAC,CAAC;AAC1D,YAAM,QAAQ,sBAAsB,MAAM;AAC1C,YAAM,iBAAa,yCAAuB,OAAO,KAAe,MAAM,OAAO,IAAI;AACjF,UAAI,cAAc,WAAW,QAAQ,WAAW,UAAU;AACtD;AAAA,UACI;AAAA,UACA,WAAW;AAAA,UACX,WAAW;AAAA,UACX;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,8BAAM;AAAA,MACF,EAAE,MAAM,8CAA8C,KAAK,EAAE,QAAQ;AAAA,MACrE,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM;AAAA,IACnC,CAAC;AAAA,EACL;AACJ;",
4
+ "sourcesContent": ["import { deleteMessageIds } from './messageIds.js';\nimport { createKeyboardFromJson } from './jsonTable.js';\nimport { sendToTelegramSubmenu, sendToTelegram } from './telegram.js';\nimport { _subscribeAndUnSubscribeForeignStatesAsync } from './subscribeStates.js';\nimport { debug, error } from './logging.js';\nimport TelegramMenu from '../main.js';\nimport type { UserListWithChatId } from '../types/types.js';\n\ninterface ObjectData {\n [key: string]: {\n idList: string;\n };\n}\nconst objData: ObjectData = {};\n\nlet isSubscribed = false;\n\nasync function shoppingListSubscribeStateAndDeleteItem(\n val: string | null,\n instanceTelegram: string,\n userListWithChatID: UserListWithChatId[],\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n): Promise<void> {\n const _this = TelegramMenu.getInstance();\n try {\n let array, user, idList, instance, idItem, res;\n if (val != null) {\n array = val.split(':');\n user = array[0].replace('[', '').replace(']sList', '');\n idList = array[1];\n instance = array[2];\n idItem = array[3];\n res = await _this.getForeignObjectAsync(`alexa2.${instance}.Lists.SHOPPING_LIST.items.${idItem}`);\n\n if (res) {\n objData[user] = { idList: idList };\n debug([{ text: 'alexa-shoppinglist.', val: idList }]);\n if (!isSubscribed) {\n await _subscribeAndUnSubscribeForeignStatesAsync({ id: `alexa-shoppinglist.${idList}` });\n isSubscribed = true;\n }\n await _this.setForeignStateAsync(\n `alexa2.${instance}.Lists.SHOPPING_LIST.items.${idItem}.#delete`,\n true,\n false,\n );\n return;\n }\n await sendToTelegram({\n user: user,\n textToSend: 'Cannot delete the Item',\n keyboard: undefined,\n instance: instanceTelegram,\n resize_keyboard: resize_keyboard,\n one_time_keyboard: one_time_keyboard,\n userListWithChatID: userListWithChatID,\n parse_mode: 'true',\n });\n debug([{ text: 'Cannot delete the Item' }]);\n return;\n }\n } catch (e: any) {\n error([\n { text: 'Error shoppingList:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nasync function deleteMessageAndSendNewShoppingList(\n instanceTelegram: string,\n userListWithChatID: UserListWithChatId[],\n userToSend: string,\n): Promise<void> {\n const _this = TelegramMenu.getInstance();\n try {\n const user = userToSend;\n const idList = objData[user].idList;\n await _subscribeAndUnSubscribeForeignStatesAsync({ id: `alexa-shoppinglist.${idList}` });\n await deleteMessageIds(user, userListWithChatID, instanceTelegram, 'last');\n\n const result = await _this.getForeignStateAsync(`alexa-shoppinglist.${idList}`);\n if (result && result.val) {\n debug([{ text: 'Result from Shoppinglist:', val: result }]);\n const newId = `alexa-shoppinglist.${idList}`;\n const resultJson = createKeyboardFromJson(result.val as string, null, newId, user);\n if (resultJson && resultJson.text && resultJson.keyboard) {\n sendToTelegramSubmenu(\n user,\n resultJson.text,\n resultJson.keyboard,\n instanceTelegram,\n userListWithChatID,\n 'true',\n );\n }\n }\n } catch (e: any) {\n error([\n { text: 'Error deleteMessageAndSendNewShoppingList:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nexport { shoppingListSubscribeStateAndDeleteItem, deleteMessageAndSendNewShoppingList };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAiC;AACjC,uBAAuC;AACvC,sBAAsD;AACtD,6BAA2D;AAC3D,qBAA6B;AAC7B,kBAAyB;AAQzB,MAAM,UAAsB,CAAC;AAE7B,IAAI,eAAe;AAEnB,eAAe,wCACX,KACA,kBACA,oBACA,iBACA,mBACa;AACb,QAAM,QAAQ,YAAAA,QAAa,YAAY;AACvC,MAAI;AACA,QAAI,OAAO,MAAM,QAAQ,UAAU,QAAQ;AAC3C,QAAI,OAAO,MAAM;AACb,cAAQ,IAAI,MAAM,GAAG;AACrB,aAAO,MAAM,CAAC,EAAE,QAAQ,KAAK,EAAE,EAAE,QAAQ,UAAU,EAAE;AACrD,eAAS,MAAM,CAAC;AAChB,iBAAW,MAAM,CAAC;AAClB,eAAS,MAAM,CAAC;AAChB,YAAM,MAAM,MAAM,sBAAsB,UAAU,QAAQ,8BAA8B,MAAM,EAAE;AAEhG,UAAI,KAAK;AACL,gBAAQ,IAAI,IAAI,EAAE,OAAe;AACjC,kCAAM,CAAC,EAAE,MAAM,uBAAuB,KAAK,OAAO,CAAC,CAAC;AACpD,YAAI,CAAC,cAAc;AACf,oBAAM,mEAA2C,EAAE,IAAI,sBAAsB,MAAM,GAAG,CAAC;AACvF,yBAAe;AAAA,QACnB;AACA,cAAM,MAAM;AAAA,UACR,UAAU,QAAQ,8BAA8B,MAAM;AAAA,UACtD;AAAA,UACA;AAAA,QACJ;AACA;AAAA,MACJ;AACA,gBAAM,gCAAe;AAAA,QACjB;AAAA,QACA,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA,YAAY;AAAA,MAChB,CAAC;AACD,gCAAM,CAAC,EAAE,MAAM,yBAAyB,CAAC,CAAC;AAC1C;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,8BAAM;AAAA,MACF,EAAE,MAAM,uBAAuB,KAAK,EAAE,QAAQ;AAAA,MAC9C,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM;AAAA,IACnC,CAAC;AAAA,EACL;AACJ;AAEA,eAAe,oCACX,kBACA,oBACA,YACa;AACb,QAAM,QAAQ,YAAAA,QAAa,YAAY;AACvC,MAAI;AACA,UAAM,OAAO;AACb,UAAM,SAAS,QAAQ,IAAI,EAAE;AAC7B,cAAM,mEAA2C,EAAE,IAAI,sBAAsB,MAAM,GAAG,CAAC;AACvF,cAAM,oCAAiB,MAAM,oBAAoB,kBAAkB,MAAM;AAEzE,UAAM,SAAS,MAAM,MAAM,qBAAqB,sBAAsB,MAAM,EAAE;AAC9E,QAAI,UAAU,OAAO,KAAK;AACtB,gCAAM,CAAC,EAAE,MAAM,6BAA6B,KAAK,OAAO,CAAC,CAAC;AAC1D,YAAM,QAAQ,sBAAsB,MAAM;AAC1C,YAAM,iBAAa,yCAAuB,OAAO,KAAe,MAAM,OAAO,IAAI;AACjF,UAAI,cAAc,WAAW,QAAQ,WAAW,UAAU;AACtD;AAAA,UACI;AAAA,UACA,WAAW;AAAA,UACX,WAAW;AAAA,UACX;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,8BAAM;AAAA,MACF,EAAE,MAAM,8CAA8C,KAAK,EAAE,QAAQ;AAAA,MACrE,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM;AAAA,IACnC,CAAC;AAAA,EACL;AACJ;",
6
6
  "names": ["TelegramMenu"]
7
7
  }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var splitValues_exports = {};
20
+ __export(splitValues_exports, {
21
+ getBindingValues: () => getBindingValues,
22
+ getEchartsValues: () => getEchartsValues,
23
+ getMenuValues: () => getMenuValues,
24
+ getProcessTimeValues: () => getProcessTimeValues,
25
+ getSubmenuNumberValues: () => getSubmenuNumberValues
26
+ });
27
+ module.exports = __toCommonJS(splitValues_exports);
28
+ var import_string = require("./string");
29
+ var import_appUtils = require("./appUtils");
30
+ const getMenuValues = (str) => {
31
+ const splitText = str.split(":");
32
+ return { cbData: splitText[1], menuToHandle: splitText[2], val: splitText[3] };
33
+ };
34
+ function getProcessTimeValues(substringExcludeSearch) {
35
+ var _a, _b;
36
+ const array = substringExcludeSearch.split(",");
37
+ return {
38
+ typeofTimestamp: (0, import_appUtils.getTypeofTimestamp)(array[0]),
39
+ timeString: (_a = array[1]) != null ? _a : "",
40
+ idString: (0, import_string.replaceAllItems)((_b = array[2]) != null ? _b : "", ["id:", "}", "'"])
41
+ };
42
+ }
43
+ function getBindingValues(item) {
44
+ const array = item.split(":");
45
+ return { key: array[0], id: array[1] };
46
+ }
47
+ const getSubmenuNumberValues = (str) => {
48
+ const splitText = str.split(":");
49
+ return { callbackData: splitText[1], device: splitText[2], value: parseFloat(splitText[3]) };
50
+ };
51
+ const getEchartsValues = (preset) => {
52
+ const splitPreset = preset.split(".");
53
+ return `${splitPreset[0]}.${splitPreset[1]}`;
54
+ };
55
+ // Annotate the CommonJS export names for ESM import in node:
56
+ 0 && (module.exports = {
57
+ getBindingValues,
58
+ getEchartsValues,
59
+ getMenuValues,
60
+ getProcessTimeValues,
61
+ getSubmenuNumberValues
62
+ });
63
+ //# sourceMappingURL=splitValues.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/lib/splitValues.ts"],
4
+ "sourcesContent": ["import { replaceAllItems } from './string';\nimport { getTypeofTimestamp } from './appUtils';\n\nexport const getMenuValues = (str: string): { cbData: string; menuToHandle?: string; val?: string } => {\n const splitText = str.split(':');\n return { cbData: splitText[1], menuToHandle: splitText[2], val: splitText[3] };\n};\n\nexport function getProcessTimeValues(substringExcludeSearch: string): {\n typeofTimestamp: 'lc' | 'ts';\n timeString: string;\n idString: string;\n} {\n const array = substringExcludeSearch.split(','); //[\"lc\",\"(DD MM YYYY hh:mm:ss:sss)\",\"id:'ID'\"]\n return {\n typeofTimestamp: getTypeofTimestamp(array[0]),\n timeString: array[1] ?? '',\n idString: replaceAllItems(array[2] ?? '', ['id:', '}', \"'\"]),\n };\n}\n\nexport function getBindingValues(item: string): { key: string; id?: string } {\n const array = item.split(':');\n\n return { key: array[0], id: array[1] };\n}\n\nexport const getSubmenuNumberValues = (str: string): { callbackData: string; device: string; value: number } => {\n const splitText = str.split(':'); // submenu:number2-8-1-\u00B0C:SetMenuNumber:3\n return { callbackData: splitText[1], device: splitText[2], value: parseFloat(splitText[3]) };\n};\n\nexport const getEchartsValues = (preset: string): string => {\n const splitPreset = preset.split('.');\n return `${splitPreset[0]}.${splitPreset[1]}`;\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAgC;AAChC,sBAAmC;AAE5B,MAAM,gBAAgB,CAAC,QAAyE;AACnG,QAAM,YAAY,IAAI,MAAM,GAAG;AAC/B,SAAO,EAAE,QAAQ,UAAU,CAAC,GAAG,cAAc,UAAU,CAAC,GAAG,KAAK,UAAU,CAAC,EAAE;AACjF;AAEO,SAAS,qBAAqB,wBAInC;AAZF;AAaI,QAAM,QAAQ,uBAAuB,MAAM,GAAG;AAC9C,SAAO;AAAA,IACH,qBAAiB,oCAAmB,MAAM,CAAC,CAAC;AAAA,IAC5C,aAAY,WAAM,CAAC,MAAP,YAAY;AAAA,IACxB,cAAU,gCAAgB,WAAM,CAAC,MAAP,YAAY,IAAI,CAAC,OAAO,KAAK,GAAG,CAAC;AAAA,EAC/D;AACJ;AAEO,SAAS,iBAAiB,MAA4C;AACzE,QAAM,QAAQ,KAAK,MAAM,GAAG;AAE5B,SAAO,EAAE,KAAK,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE;AACzC;AAEO,MAAM,yBAAyB,CAAC,QAAyE;AAC5G,QAAM,YAAY,IAAI,MAAM,GAAG;AAC/B,SAAO,EAAE,cAAc,UAAU,CAAC,GAAG,QAAQ,UAAU,CAAC,GAAG,OAAO,WAAW,UAAU,CAAC,CAAC,EAAE;AAC/F;AAEO,MAAM,mBAAmB,CAAC,WAA2B;AACxD,QAAM,cAAc,OAAO,MAAM,GAAG;AACpC,SAAO,GAAG,YAAY,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC;AAC9C;",
6
+ "names": []
7
+ }
@@ -18,12 +18,134 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var string_exports = {};
20
20
  __export(string_exports, {
21
- isDefined: () => isDefined
21
+ cleanUpString: () => cleanUpString,
22
+ decomposeText: () => decomposeText,
23
+ getNewline: () => getNewline,
24
+ getValueToExchange: () => getValueToExchange,
25
+ isBooleanString: () => isBooleanString,
26
+ isEmptyString: () => isEmptyString,
27
+ isNonEmptyString: () => isNonEmptyString,
28
+ isString: () => isString,
29
+ jsonString: () => jsonString,
30
+ pad: () => pad,
31
+ parseJSON: () => parseJSON,
32
+ removeQuotes: () => removeQuotes,
33
+ replaceAll: () => replaceAll,
34
+ replaceAllItems: () => replaceAllItems,
35
+ stringReplacer: () => stringReplacer
22
36
  });
23
37
  module.exports = __toCommonJS(string_exports);
24
- const isDefined = (value) => value !== void 0 && value !== null;
38
+ var import_config = require("../config/config");
39
+ var import_utils = require("./utils");
40
+ var import_logging = require("../app/logging");
41
+ const jsonString = (val) => JSON.stringify(val);
42
+ function parseJSON(val, adapter) {
43
+ try {
44
+ return { json: JSON.parse(val), isValidJson: true };
45
+ } catch (e) {
46
+ if (adapter) {
47
+ (0, import_logging.errorLogger)("Error parseJSON:", e, adapter);
48
+ }
49
+ return { json: val, isValidJson: false };
50
+ }
51
+ }
52
+ const replaceAll = (text, searchValue, replaceValue) => {
53
+ const escapedSearchValue = searchValue.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
54
+ return text.replace(new RegExp(escapedSearchValue, "g"), replaceValue);
55
+ };
56
+ const replaceAllItems = (text, searched) => {
57
+ searched.forEach((item) => {
58
+ if (typeof item === "string") {
59
+ text = replaceAll(text, item, "");
60
+ } else {
61
+ text = replaceAll(text, item.search, item.val);
62
+ }
63
+ });
64
+ return text;
65
+ };
66
+ const removeQuotes = (text) => text.replace(/['"]/g, "");
67
+ const cleanUpString = (text) => {
68
+ if (!text) {
69
+ return "";
70
+ }
71
+ return text.replace(/^['"]|['"]$/g, "").replace(/\\n/g, "\n").replace(/ \\\n/g, "\n").replace(/\\(?!n)/g, "");
72
+ };
73
+ function decomposeText(text, firstSearch, secondSearch) {
74
+ const startindex = text.indexOf(firstSearch);
75
+ const endindex = text.indexOf(secondSearch, startindex);
76
+ const substring = text.substring(startindex, endindex + secondSearch.length);
77
+ const substringExcludedSearch = stringReplacer(substring, [firstSearch, secondSearch]);
78
+ const textWithoutSubstring = text.replace(substring, "").trim();
79
+ return {
80
+ startindex,
81
+ endindex,
82
+ substring,
83
+ textExcludeSubstring: textWithoutSubstring,
84
+ substringExcludeSearch: substringExcludedSearch
85
+ };
86
+ }
87
+ const getValueToExchange = (adapter, textToSend, val) => {
88
+ var _a;
89
+ if (textToSend.includes(import_config.config.change.start)) {
90
+ const { start, end, command } = import_config.config.change;
91
+ const { startindex, endindex, substring } = decomposeText(textToSend, start, end);
92
+ const modifiedString = replaceAll(substring, "'", '"').replace(command, "");
93
+ const { json, isValidJson } = parseJSON(modifiedString);
94
+ if (isValidJson) {
95
+ return {
96
+ newValue: (_a = json[String(val)]) != null ? _a : val,
97
+ textToSend: textToSend.substring(0, startindex) + textToSend.substring(endindex + 1),
98
+ error: false
99
+ };
100
+ }
101
+ adapter.log.error(`There is a error in your input: ${modifiedString}`);
102
+ return { newValue: val, textToSend, error: true };
103
+ }
104
+ return { textToSend, newValue: val, error: false };
105
+ };
106
+ const isString = (value) => typeof value === "string";
107
+ function stringReplacer(substring, valueToReplace) {
108
+ if (typeof valueToReplace[0] === "string") {
109
+ valueToReplace.forEach((item) => {
110
+ substring = substring.replace(item, "");
111
+ });
112
+ return substring;
113
+ }
114
+ valueToReplace.forEach(({ val, newValue }) => {
115
+ substring = substring.replace(val, newValue);
116
+ });
117
+ return substring;
118
+ }
119
+ const pad = (value, length = 2) => {
120
+ if (value < 0) {
121
+ return `-${(value * -1).toString().padStart(length - 1, "0")}`;
122
+ }
123
+ return value.toString().padStart(length, "0");
124
+ };
125
+ function getNewline(newline) {
126
+ return (0, import_utils.isTruthy)(newline) ? "\n" : "";
127
+ }
128
+ function isBooleanString(str) {
129
+ return str === "true" || str === "false";
130
+ }
131
+ const isNonEmptyString = (str) => str.trim() !== "";
132
+ const isEmptyString = (str) => str.trim() === "";
25
133
  // Annotate the CommonJS export names for ESM import in node:
26
134
  0 && (module.exports = {
27
- isDefined
135
+ cleanUpString,
136
+ decomposeText,
137
+ getNewline,
138
+ getValueToExchange,
139
+ isBooleanString,
140
+ isEmptyString,
141
+ isNonEmptyString,
142
+ isString,
143
+ jsonString,
144
+ pad,
145
+ parseJSON,
146
+ removeQuotes,
147
+ replaceAll,
148
+ replaceAllItems,
149
+ stringReplacer
28
150
  });
29
151
  //# sourceMappingURL=string.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/string.ts"],
4
- "sourcesContent": ["export const isDefined = <T>(value: T | undefined | null): value is T => value !== undefined && value !== null;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,YAAY,CAAI,UAA4C,UAAU,UAAa,UAAU;",
4
+ "sourcesContent": ["import { config } from '../config/config';\nimport type {\n Adapter,\n BooleanString,\n DecomposeTextReturnType,\n ExchangeValueReturn,\n PrimitiveType,\n StringReplacerObj,\n} from '../types/types';\nimport { isTruthy } from './utils';\nimport { errorLogger } from '../app/logging';\n\nexport const jsonString = (val?: string | number | boolean | object | null): string => JSON.stringify(val);\n\nexport function parseJSON<T>(\n val: string,\n adapter?: Adapter,\n): { json: string; isValidJson: false } | { json: T; isValidJson: true } {\n try {\n return { json: JSON.parse(val) as T, isValidJson: true };\n } catch (e) {\n if (adapter) {\n errorLogger('Error parseJSON:', e, adapter);\n }\n return { json: val, isValidJson: false };\n }\n}\n\nexport const replaceAll = (text: string, searchValue: string, replaceValue: string): string => {\n const escapedSearchValue = searchValue.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // Escape-Sonderzeichen\n return text.replace(new RegExp(escapedSearchValue, 'g'), replaceValue);\n};\n\nexport const replaceAllItems = (text: string, searched: (string | { search: string; val: string })[]): string => {\n searched.forEach(item => {\n if (typeof item === 'string') {\n text = replaceAll(text, item, '');\n } else {\n text = replaceAll(text, item.search, item.val);\n }\n });\n return text;\n};\n\nexport const removeQuotes = (text: string): string => text.replace(/['\"]/g, '');\n\nexport const cleanUpString = (text?: string): string => {\n if (!text) {\n return '';\n }\n return text\n .replace(/^['\"]|['\"]$/g, '') // Entferne Anf\u00FChrungszeichen am Anfang/Ende\n .replace(/\\\\n/g, '\\n') // Ersetze \\n durch einen echten Zeilenumbruch\n .replace(/ \\\\\\n/g, '\\n') // Ersetze \\n mit Leerzeichen davor durch einen echten Zeilenumbruch\n .replace(/\\\\(?!n)/g, ''); // Entferne alle Backslashes, die nicht von einem 'n' gefolgt werden\n};\n\nexport function decomposeText(text: string, firstSearch: string, secondSearch: string): DecomposeTextReturnType {\n const startindex = text.indexOf(firstSearch);\n const endindex = text.indexOf(secondSearch, startindex);\n const substring = text.substring(startindex, endindex + secondSearch.length);\n const substringExcludedSearch = stringReplacer(substring, [firstSearch, secondSearch]);\n const textWithoutSubstring = text.replace(substring, '').trim();\n return {\n startindex,\n endindex,\n substring,\n textExcludeSubstring: textWithoutSubstring,\n substringExcludeSearch: substringExcludedSearch,\n };\n}\n// TODO : Move to utils\nexport const getValueToExchange = (adapter: Adapter, textToSend: string, val: PrimitiveType): ExchangeValueReturn => {\n //TODO Use JSON => change{\"true\":\"W\u00E4rmepumpe ist verbunden\",\"false\":\"W\u00E4rmepumpe ist nicht verbunden\"}\n if (textToSend.includes(config.change.start)) {\n const { start, end, command } = config.change;\n const { startindex, endindex, substring } = decomposeText(textToSend, start, end); // change{\"true\":\"an\",\"false\":\"aus\"}\n\n const modifiedString = replaceAll(substring, \"'\", '\"').replace(command, ''); // {\"true\":\"an\",\"false\":\"aus\"}\n\n const { json, isValidJson } = parseJSON<Record<string, string>>(modifiedString);\n\n if (isValidJson) {\n return {\n newValue: json[String(val)] ?? val,\n textToSend: textToSend.substring(0, startindex) + textToSend.substring(endindex + 1),\n error: false,\n };\n }\n adapter.log.error(`There is a error in your input: ${modifiedString}`);\n return { newValue: val, textToSend, error: true };\n }\n return { textToSend, newValue: val, error: false };\n};\n\nexport const isString = (value: unknown): value is string => typeof value === 'string';\n\nexport function stringReplacer(substring: string, valueToReplace: string[] | StringReplacerObj[]): string {\n if (typeof valueToReplace[0] === 'string') {\n (valueToReplace as string[]).forEach(item => {\n substring = substring.replace(item, '');\n });\n return substring;\n }\n\n (valueToReplace as StringReplacerObj[]).forEach(({ val, newValue }) => {\n substring = substring.replace(val, newValue);\n });\n return substring;\n}\n\nexport const pad = (value: number, length: number = 2): string => {\n if (value < 0) {\n return `-${(value * -1).toString().padStart(length - 1, '0')}`;\n }\n return value.toString().padStart(length, '0');\n};\n\nexport function getNewline(newline: BooleanString): '' | '\\n' {\n return isTruthy(newline) ? '\\n' : '';\n}\n\nexport function isBooleanString(str: string): boolean {\n return str === 'true' || str === 'false';\n}\n\nexport const isNonEmptyString = (str: string): boolean => str.trim() !== '';\nexport const isEmptyString = (str: string): boolean => str.trim() === '';\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -31,17 +31,14 @@ var import_messageIds = require("./messageIds");
31
31
  var import_dynamicSwitch = require("./dynamicSwitch");
32
32
  var import_logging = require("./logging");
33
33
  var import_console = require("console");
34
+ var import_global = require("./global");
35
+ var import_main = require("../main");
34
36
  let step = 0;
35
37
  let returnIDToListenTo = [];
36
38
  let splittedData = [];
37
- const splitText = (obj) => {
38
- let splittedText;
39
- if (obj.calledValue.includes('"')) {
40
- splittedText = obj.calledValue.split(`"`)[1].split(":");
41
- } else {
42
- splittedText = obj.calledValue.split(":");
43
- }
44
- return { callbackData: splittedText[1], device: splittedText[2], val: splittedText[3] };
39
+ const getMenuValues = (obj) => {
40
+ const splitText = obj[0].split(":");
41
+ return { callbackData: splitText[1], device: splitText[2], val: splitText[3] };
45
42
  };
46
43
  const deleteMessages = async (obj) => {
47
44
  const navToGoBack = obj.device2Switch;
@@ -73,8 +70,7 @@ const setDynamicValue = async (obj) => {
73
70
  };
74
71
  };
75
72
  const createSubmenuPercent = (obj) => {
76
- const callbackData = obj.callbackData;
77
- const device2Switch = obj.device2Switch;
73
+ const { callbackData, device2Switch } = obj;
78
74
  step = parseFloat(callbackData.replace("percent", ""));
79
75
  let rowEntries = 0;
80
76
  let menu = [];
@@ -102,11 +98,11 @@ const createSubmenuPercent = (obj) => {
102
98
  if (rowEntries != 0) {
103
99
  keyboard.inline_keyboard.push(menu);
104
100
  }
105
- return { text: obj.text, keyboard: JSON.stringify(keyboard), device: device2Switch };
101
+ return { text: obj.text, keyboard, device: device2Switch };
106
102
  };
107
103
  const setFirstMenuValue = async (obj) => {
108
104
  let val;
109
- (0, import_logging.debug)([{ text: "SplittedData:", val: splittedData }]);
105
+ (0, import_logging.debug)([{ text: "SplitData:", val: splittedData }]);
110
106
  if (splittedData[1].split(".")[1] == "false") {
111
107
  val = false;
112
108
  } else if (splittedData[1].split(".")[1] == "true") {
@@ -214,26 +210,30 @@ const createSubmenuNumber = (obj) => {
214
210
  if (rowEntries != 0) {
215
211
  keyboard.inline_keyboard.push(menu);
216
212
  }
217
- (0, import_logging.debug)([{ text: "keyboard:", val: keyboard.inline_keyboard }]);
218
- return { text: obj.text, keyboard: JSON.stringify(keyboard), device: device2Switch };
213
+ (0, import_logging.debug)([{ text: "keyboard:", val: keyboard }]);
214
+ return { text: obj.text, keyboard, device: device2Switch };
219
215
  };
220
- const createSwitchMenu = (obj) => {
221
- splittedData = obj.callbackData.split("-");
216
+ const createSwitchMenu = ({
217
+ device2Switch,
218
+ callbackData,
219
+ text
220
+ }) => {
221
+ splittedData = callbackData.split("-");
222
222
  const keyboard = {
223
223
  inline_keyboard: [
224
224
  [
225
225
  {
226
226
  text: splittedData[1].split(".")[0],
227
- callback_data: `menu:first:${obj.device2Switch}`
227
+ callback_data: `menu:first:${device2Switch}`
228
228
  },
229
229
  {
230
230
  text: splittedData[2].split(".")[0],
231
- callback_data: `menu:second:${obj.device2Switch}`
231
+ callback_data: `menu:second:${device2Switch}`
232
232
  }
233
233
  ]
234
234
  ]
235
235
  };
236
- return { text: obj.text, keyboard: JSON.stringify(keyboard), device: obj.device2Switch };
236
+ return { text, keyboard, device: device2Switch };
237
237
  };
238
238
  const setValueForSubmenuPercent = async (obj) => {
239
239
  const value = parseInt(obj.calledValue.split(":")[1].split(",")[1]);
@@ -274,24 +274,22 @@ const setValueForSubmenuNumber = async (obj) => {
274
274
  const back = async (obj) => {
275
275
  const result = await (0, import_backMenu.switchBack)(obj.userToSend, obj.allMenusWithData, obj.menus);
276
276
  if (result) {
277
- await (0, import_telegram.sendToTelegram)(
278
- obj.userToSend,
279
- result.texttosend,
280
- result.menuToSend,
281
- obj.instanceTelegram,
282
- obj.resize_keyboard,
283
- obj.one_time_keyboard,
284
- obj.userListWithChatID,
285
- result.parseMode
286
- );
277
+ await (0, import_telegram.sendToTelegram)({
278
+ user: obj.userToSend,
279
+ textToSend: result.texttosend,
280
+ keyboard: result.menuToSend,
281
+ instance: obj.instanceTelegram,
282
+ resize_keyboard: obj.resize_keyboard,
283
+ one_time_keyboard: obj.one_time_keyboard,
284
+ userListWithChatID: obj.userListWithChatID,
285
+ parse_mode: result.parseMode
286
+ });
287
287
  }
288
288
  };
289
- async function callSubMenu(calledValue, newObjectNavStructure, userToSend, instanceTelegram, resize_keyboard, one_time_keyboard, userListWithChatID, part, allMenusWithData, menus, setStateIdsToListenTo) {
289
+ async function callSubMenu(jsonStringNav, newObjectNavStructure, userToSend, instanceTelegram, resize_keyboard, one_time_keyboard, userListWithChatID, part, allMenusWithData, menus, setStateIdsToListenTo, navObj) {
290
290
  try {
291
- (0, import_logging.debug)([{ text: "Type of:", val: typeof calledValue }]);
292
- const obj = await subMenu(
293
- calledValue,
294
- newObjectNavStructure,
291
+ const obj = await subMenu({
292
+ jsonStringNav,
295
293
  userToSend,
296
294
  instanceTelegram,
297
295
  resize_keyboard,
@@ -299,14 +297,18 @@ async function callSubMenu(calledValue, newObjectNavStructure, userToSend, insta
299
297
  userListWithChatID,
300
298
  part,
301
299
  allMenusWithData,
302
- menus
303
- );
304
- (0, import_logging.debug)([{ text: "Submenu data:", val: obj }]);
300
+ menus,
301
+ navObj
302
+ });
303
+ (0, import_logging.debug)([{ text: "Submenu data:", val: obj == null ? void 0 : obj.text }]);
304
+ (0, import_logging.debug)([{ text: "Submenu data:", val: obj == null ? void 0 : obj.keyboard }]);
305
+ (0, import_logging.debug)([{ text: "Submenu data:", val: obj == null ? void 0 : obj.device }]);
306
+ (0, import_logging.debug)([{ text: "Submenu data:", val: obj == null ? void 0 : obj.navToGoBack }]);
305
307
  if (obj == null ? void 0 : obj.returnIds) {
306
308
  setStateIdsToListenTo = obj.returnIds;
307
309
  await (0, import_subscribeStates._subscribeAndUnSubscribeForeignStatesAsync)({ array: obj.returnIds });
308
310
  }
309
- if (obj && typeof obj.text == "string" && obj.text && typeof obj.keyboard == "string") {
311
+ if ((obj == null ? void 0 : obj.text) && (obj == null ? void 0 : obj.keyboard)) {
310
312
  (0, import_telegram.sendToTelegramSubmenu)(
311
313
  userToSend,
312
314
  obj.text,
@@ -326,15 +328,29 @@ async function callSubMenu(calledValue, newObjectNavStructure, userToSend, insta
326
328
  });
327
329
  }
328
330
  }
329
- async function subMenu(calledValue, menuData, userToSend, instanceTelegram, resize_keyboard, one_time_keyboard, userListWithChatID, part, allMenusWithData, menus) {
331
+ async function subMenu({
332
+ jsonStringNav,
333
+ userToSend,
334
+ instanceTelegram,
335
+ resize_keyboard,
336
+ one_time_keyboard,
337
+ userListWithChatID,
338
+ part,
339
+ allMenusWithData,
340
+ menus,
341
+ navObj
342
+ }) {
330
343
  try {
331
- (0, import_logging.debug)([{ text: "CalledValue:", val: calledValue }]);
344
+ import_main._this.log.debug(`Menu : ${navObj[0][0]}`);
332
345
  let text = "";
333
- if (part && part.text && part.text != "") {
346
+ if ((part == null ? void 0 : part.text) && part.text != "") {
334
347
  text = await (0, import_utilities.checkStatusInfo)(part.text);
335
348
  }
336
- const { callbackData, device, val } = splitText({ calledValue });
337
- const device2Switch = device;
349
+ const called = (0, import_global.parseJSON)(jsonStringNav);
350
+ if (!(called == null ? void 0 : called.length)) {
351
+ return;
352
+ }
353
+ const { callbackData, device: device2Switch, val } = getMenuValues(called[0]);
338
354
  if (callbackData.includes("delete")) {
339
355
  return await deleteMessages({
340
356
  userToSend,
@@ -364,7 +380,7 @@ async function subMenu(calledValue, menuData, userToSend, instanceTelegram, resi
364
380
  userListWithChatID
365
381
  });
366
382
  } else if (callbackData.includes("dynSwitch")) {
367
- return (0, import_dynamicSwitch.dynamicSwitch)(calledValue, device2Switch, text);
383
+ return (0, import_dynamicSwitch.dynamicSwitch)(jsonStringNav, device2Switch, text);
368
384
  } else if (callbackData.includes("dynS")) {
369
385
  return await setDynamicValue({
370
386
  val,
@@ -375,12 +391,12 @@ async function subMenu(calledValue, menuData, userToSend, instanceTelegram, resi
375
391
  userListWithChatID,
376
392
  part
377
393
  });
378
- } else if (!calledValue.includes("submenu") && callbackData.includes("percent")) {
394
+ } else if (!jsonStringNav.includes("submenu") && callbackData.includes("percent")) {
379
395
  return createSubmenuPercent({ callbackData, text, device2Switch });
380
- } else if (calledValue.includes(`submenu:percent${step}`)) {
396
+ } else if (jsonStringNav.includes(`submenu:percent${step}`)) {
381
397
  return await setValueForSubmenuPercent({
382
398
  callbackData,
383
- calledValue,
399
+ calledValue: jsonStringNav,
384
400
  userToSend,
385
401
  instanceTelegram,
386
402
  resize_keyboard,
@@ -390,12 +406,12 @@ async function subMenu(calledValue, menuData, userToSend, instanceTelegram, resi
390
406
  allMenusWithData,
391
407
  menus
392
408
  });
393
- } else if (!calledValue.includes("submenu") && callbackData.includes("number")) {
409
+ } else if (!jsonStringNav.includes("submenu") && callbackData.includes("number")) {
394
410
  return createSubmenuNumber({ callbackData, text, device2Switch });
395
- } else if (calledValue.includes(`submenu:${callbackData}`)) {
411
+ } else if (jsonStringNav.includes(`submenu:${callbackData}`)) {
396
412
  const result = await setValueForSubmenuNumber({
397
413
  callbackData,
398
- calledValue,
414
+ calledValue: jsonStringNav,
399
415
  userToSend,
400
416
  instanceTelegram,
401
417
  resize_keyboard,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/subMenu.ts"],
4
- "sourcesContent": ["import { switchBack } from './backMenu';\nimport { setState } from './setstate';\nimport { sendToTelegram, sendToTelegramSubmenu } from './telegram';\nimport { checkStatusInfo } from './utilities';\nimport { _subscribeAndUnSubscribeForeignStatesAsync } from './subscribeStates';\nimport { deleteMessageIds } from './messageIds';\nimport { dynamicSwitch } from './dynamicSwitch';\nimport { debug } from './logging';\nimport { error } from 'console';\nimport type {\n SetStateIds,\n SplittedData,\n SplitText,\n DeleteMessageIds,\n SetDynamicValueType,\n CreateSubmenuPercent,\n ArrayOfEntriesDynamicSwitch,\n Keyboard,\n SetFirstMenuValue,\n SetSecondMenuValue,\n CreateSubmenuNumber,\n CreateSwitchMenu,\n SetValueForSubmenuPercent,\n SetValueForSubmenuNumber,\n BackMenuType,\n NewObjectNavStructure,\n UserListWithChatId,\n Part,\n} from './telegram-menu';\n\nlet step = 0;\nlet returnIDToListenTo: SetStateIds[] = [];\nlet splittedData: SplittedData = [];\n\nconst splitText = (obj: SplitText): { callbackData: string; device: string; val: string } => {\n let splittedText: string[];\n if (obj.calledValue.includes('\"')) {\n splittedText = obj.calledValue.split(`\"`)[1].split(':');\n } else {\n splittedText = obj.calledValue.split(':');\n }\n return { callbackData: splittedText[1], device: splittedText[2], val: splittedText[3] };\n};\n\nconst deleteMessages = async (obj: DeleteMessageIds): Promise<{ navToGoBack: string } | undefined> => {\n const navToGoBack = obj.device2Switch;\n if (obj.callbackData.includes('deleteAll')) {\n await deleteMessageIds(obj.userToSend, obj.userListWithChatID, obj.instanceTelegram, 'all');\n }\n if (navToGoBack && navToGoBack != '') {\n return { navToGoBack: navToGoBack };\n }\n return;\n};\n\nconst setDynamicValue = async (obj: SetDynamicValueType): Promise<{ returnIds: SetStateIds[] }> => {\n debug([{ text: 'SplittedData:', val: obj.val }]);\n\n const result = await setState(\n obj.part,\n obj.userToSend,\n obj.val,\n true,\n obj.instanceTelegram,\n obj.resize_keyboard,\n obj.one_time_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return {\n returnIds: returnIDToListenTo,\n };\n};\n\nconst createSubmenuPercent = (\n obj: CreateSubmenuPercent,\n): { text: string | undefined; keyboard: string; device: string } => {\n const callbackData = obj.callbackData;\n const device2Switch = obj.device2Switch;\n step = parseFloat(callbackData.replace('percent', ''));\n let rowEntries = 0;\n let menu: ArrayOfEntriesDynamicSwitch[] = [];\n const keyboard: Keyboard = {\n inline_keyboard: [],\n };\n for (let i = 100; i >= 0; i -= step) {\n menu.push({\n text: `${i}%`,\n callback_data: `submenu:percent${step},${i}:${device2Switch}`,\n });\n if (i != 0 && i - step < 0) {\n menu.push({\n text: `0%`,\n callback_data: `submenu:percent${step},${0}:${device2Switch}`,\n });\n }\n rowEntries++;\n if (rowEntries == 8) {\n keyboard.inline_keyboard.push(menu);\n menu = [];\n rowEntries = 0;\n }\n }\n\n if (rowEntries != 0) {\n keyboard.inline_keyboard.push(menu);\n }\n return { text: obj.text, keyboard: JSON.stringify(keyboard), device: device2Switch };\n};\n\nconst setFirstMenuValue = async (obj: SetFirstMenuValue): Promise<{ returnIds: SetStateIds[] }> => {\n let val;\n debug([{ text: 'SplittedData:', val: splittedData }]);\n if (splittedData[1].split('.')[1] == 'false') {\n val = false;\n } else if (splittedData[1].split('.')[1] == 'true') {\n val = true;\n } else {\n val = splittedData[1].split('.')[1];\n }\n const result = await setState(\n obj.part,\n obj.userToSend,\n val as string,\n true,\n obj.instanceTelegram,\n obj.resize_keyboard,\n obj.one_time_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return { returnIds: returnIDToListenTo };\n};\n\nconst setSecondMenuValue = async (obj: SetSecondMenuValue): Promise<{ returnIds: SetStateIds[] }> => {\n let val;\n if (splittedData[2].split('.')[1] == 'false') {\n val = false;\n } else if (splittedData[2].split('.')[1] == 'true') {\n val = true;\n } else {\n val = splittedData[2].split('.')[1];\n }\n const result = await setState(\n obj.part,\n obj.userToSend,\n val as string,\n true,\n obj.instanceTelegram,\n obj.one_time_keyboard,\n obj.resize_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return { returnIds: returnIDToListenTo };\n};\n\nconst createSubmenuNumber = (\n obj: CreateSubmenuNumber,\n): { text: string | undefined; keyboard: string; device: string } => {\n let callbackData = obj.callbackData;\n const device2Switch = obj.device2Switch;\n\n if (callbackData.includes('(-)')) {\n callbackData = callbackData.replace('(-)', 'negativ');\n }\n const splittedData = callbackData.replace('number', '').split('-');\n let rowEntries = 0;\n let menu: { text: string; callback_data: string }[] = [];\n const keyboard = {\n inline_keyboard: [] as any[],\n };\n let unit = '';\n if (splittedData[3] != '') {\n unit = splittedData[3];\n }\n let start: number, end: number;\n const firstValueInText = parseFloat(\n splittedData[0].includes('negativ') ? splittedData[0].replace('negativ', '-') : splittedData[0],\n );\n const secondValueInText = parseFloat(\n splittedData[1].includes('negativ') ? splittedData[1].replace('negativ', '-') : splittedData[1],\n );\n\n if (firstValueInText < secondValueInText) {\n start = secondValueInText;\n end = firstValueInText;\n } else {\n start = firstValueInText;\n end = secondValueInText;\n }\n let index = -1;\n\n let maxEntriesPerRow = 8;\n const step = parseFloat(\n splittedData[2].includes('negativ') ? splittedData[2].replace('negativ', '-') : splittedData[2],\n );\n if (step < 1) {\n maxEntriesPerRow = 6;\n }\n\n for (let i = start; i >= end; i -= step) {\n // Zahlen umdrehen\n if (parseFloat(splittedData[0]) < parseFloat(splittedData[1])) {\n if (i === start) {\n index = end - step;\n }\n index = index + step;\n } else {\n index = i;\n }\n menu.push({\n text: `${index}${unit}`,\n callback_data: `submenu:${callbackData}:${device2Switch}:${index}`,\n });\n rowEntries++;\n if (rowEntries == maxEntriesPerRow) {\n keyboard.inline_keyboard.push(menu);\n menu = [];\n rowEntries = 0;\n }\n }\n\n if (rowEntries != 0) {\n keyboard.inline_keyboard.push(menu);\n }\n debug([{ text: 'keyboard:', val: keyboard.inline_keyboard }]);\n return { text: obj.text, keyboard: JSON.stringify(keyboard), device: device2Switch };\n};\n\nconst createSwitchMenu = (obj: CreateSwitchMenu): { text: string | undefined; keyboard: string; device: string } => {\n splittedData = obj.callbackData.split('-');\n const keyboard = {\n inline_keyboard: [\n [\n {\n text: splittedData[1].split('.')[0],\n callback_data: `menu:first:${obj.device2Switch}`,\n },\n {\n text: splittedData[2].split('.')[0],\n callback_data: `menu:second:${obj.device2Switch}`,\n },\n ],\n ],\n };\n return { text: obj.text, keyboard: JSON.stringify(keyboard), device: obj.device2Switch };\n};\n\nconst setValueForSubmenuPercent = async (obj: SetValueForSubmenuPercent): Promise<{ returnIds: SetStateIds[] }> => {\n const value = parseInt(obj.calledValue.split(':')[1].split(',')[1]);\n\n const result = await setState(\n obj.part,\n obj.userToSend,\n value,\n true,\n obj.instanceTelegram,\n obj.resize_keyboard,\n obj.one_time_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return { returnIds: returnIDToListenTo };\n};\n\nconst setValueForSubmenuNumber = async (\n obj: SetValueForSubmenuNumber,\n): Promise<{ returnIds: SetStateIds[]; device2Switch: string }> => {\n debug([{ text: 'CallbackData:', val: obj.callbackData }]);\n\n const value = parseFloat(obj.calledValue.split(':')[3]);\n const device2Switch = obj.calledValue.split(':')[2];\n\n const result = await setState(\n obj.part,\n obj.userToSend,\n value,\n true,\n obj.instanceTelegram,\n obj.resize_keyboard,\n obj.one_time_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return { returnIds: returnIDToListenTo, device2Switch };\n};\n\nconst back = async (obj: BackMenuType): Promise<void> => {\n const result = await switchBack(obj.userToSend, obj.allMenusWithData, obj.menus);\n if (result) {\n await sendToTelegram(\n obj.userToSend,\n result.texttosend as string,\n result.menuToSend,\n obj.instanceTelegram,\n obj.resize_keyboard,\n obj.one_time_keyboard,\n obj.userListWithChatID,\n result.parseMode,\n );\n }\n};\nasync function callSubMenu(\n calledValue: string,\n newObjectNavStructure: NewObjectNavStructure,\n userToSend: string,\n instanceTelegram: string,\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n part: Part,\n allMenusWithData: { [key: string]: NewObjectNavStructure },\n menus: string[],\n setStateIdsToListenTo: SetStateIds[] | null,\n): Promise<{ setStateIdsToListenTo: SetStateIds[] | null; newNav: string | undefined } | undefined> {\n try {\n debug([{ text: 'Type of:', val: typeof calledValue }]);\n const obj = await subMenu(\n calledValue,\n newObjectNavStructure,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n allMenusWithData,\n menus,\n );\n debug([{ text: 'Submenu data:', val: obj }]);\n\n if (obj?.returnIds) {\n setStateIdsToListenTo = obj.returnIds;\n\n await _subscribeAndUnSubscribeForeignStatesAsync({ array: obj.returnIds });\n }\n\n if (obj && typeof obj.text == 'string' && obj.text && typeof obj.keyboard == 'string') {\n sendToTelegramSubmenu(\n userToSend,\n obj.text,\n obj.keyboard,\n instanceTelegram,\n userListWithChatID,\n part.parse_mode || 'false',\n );\n }\n return { setStateIdsToListenTo: setStateIdsToListenTo, newNav: obj?.navToGoBack };\n } catch (e: any) {\n error({\n array: [\n { text: 'Error callSubMenu:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ],\n });\n }\n}\n\nasync function subMenu(\n calledValue: string,\n menuData: NewObjectNavStructure,\n userToSend: string,\n instanceTelegram: string,\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n part: Part,\n allMenusWithData: { [key: string]: NewObjectNavStructure },\n menus: string[],\n): Promise<\n { text?: string; keyboard?: string; device?: string; returnIds?: SetStateIds[]; navToGoBack?: string } | undefined\n> {\n try {\n debug([{ text: 'CalledValue:', val: calledValue }]);\n let text: string | undefined = '';\n if (part && part.text && part.text != '') {\n text = await checkStatusInfo(part.text);\n }\n const { callbackData, device, val } = splitText({ calledValue });\n const device2Switch = device;\n\n if (callbackData.includes('delete')) {\n return await deleteMessages({\n userToSend,\n userListWithChatID,\n instanceTelegram,\n device2Switch,\n callbackData,\n });\n } else if (callbackData.includes('switch')) {\n return createSwitchMenu({ callbackData, text, device2Switch });\n } else if (callbackData.includes('first')) {\n return await setFirstMenuValue({\n part,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n });\n } else if (callbackData.includes('second')) {\n return await setSecondMenuValue({\n part,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n });\n } else if (callbackData.includes('dynSwitch')) {\n return dynamicSwitch(calledValue, device2Switch, text as string);\n } else if (callbackData.includes('dynS')) {\n return await setDynamicValue({\n val,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n });\n } else if (!calledValue.includes('submenu') && callbackData.includes('percent')) {\n return createSubmenuPercent({ callbackData, text, device2Switch });\n } else if (calledValue.includes(`submenu:percent${step}`)) {\n return await setValueForSubmenuPercent({\n callbackData,\n calledValue,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n allMenusWithData,\n menus,\n });\n } else if (!calledValue.includes('submenu') && callbackData.includes('number')) {\n return createSubmenuNumber({ callbackData, text, device2Switch });\n } else if (calledValue.includes(`submenu:${callbackData}`)) {\n const result = await setValueForSubmenuNumber({\n callbackData,\n calledValue,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n });\n // device2Switch = result.device2Switch;\n return result.returnIds ? { returnIds: result.returnIds } : undefined;\n } else if (callbackData === 'back') {\n await back({\n userToSend,\n allMenusWithData,\n menus,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n });\n }\n return;\n } catch (error: any) {\n error([\n { text: 'Error subMenu:', val: error.message },\n { text: 'Stack', val: error.stack },\n ]);\n }\n}\n\nexport { subMenu, callSubMenu };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { switchBack } from './backMenu';\nimport { setState } from './setstate';\nimport { sendToTelegram, sendToTelegramSubmenu } from './telegram';\nimport { checkStatusInfo } from './utilities';\nimport { _subscribeAndUnSubscribeForeignStatesAsync } from './subscribeStates';\nimport { deleteMessageIds } from './messageIds';\nimport { dynamicSwitch } from './dynamicSwitch';\nimport { debug } from './logging';\nimport { error } from 'console';\nimport type {\n SetStateIds,\n SplittedData,\n DeleteMessageIds,\n SetDynamicValueType,\n KeyboardItems,\n SetFirstMenuValue,\n SetSecondMenuValue,\n CreateMenu,\n SetValueForSubmenuPercent,\n SetValueForSubmenuNumber,\n BackMenuType,\n NewObjectNavStructure,\n UserListWithChatId,\n Part,\n NavPart,\n Keyboard,\n} from '../types/types';\nimport { parseJSON } from './global';\nimport { _this } from '../main';\n\nlet step = 0;\nlet returnIDToListenTo: SetStateIds[] = [];\nlet splittedData: SplittedData = [];\n\nconst getMenuValues = (obj: string[]): { callbackData: string; device: string; val: string } => {\n const splitText = obj[0].split(':');\n\n return { callbackData: splitText[1], device: splitText[2], val: splitText[3] };\n};\n\nconst deleteMessages = async (obj: DeleteMessageIds): Promise<{ navToGoBack: string } | undefined> => {\n const navToGoBack = obj.device2Switch;\n if (obj.callbackData.includes('deleteAll')) {\n await deleteMessageIds(obj.userToSend, obj.userListWithChatID, obj.instanceTelegram, 'all');\n }\n if (navToGoBack && navToGoBack != '') {\n return { navToGoBack: navToGoBack };\n }\n return;\n};\n\nconst setDynamicValue = async (obj: SetDynamicValueType): Promise<{ returnIds: SetStateIds[] }> => {\n debug([{ text: 'SplittedData:', val: obj.val }]);\n\n const result = await setState(\n obj.part,\n obj.userToSend,\n obj.val,\n true,\n obj.instanceTelegram,\n obj.resize_keyboard,\n obj.one_time_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return {\n returnIds: returnIDToListenTo,\n };\n};\n\nconst createSubmenuPercent = (obj: CreateMenu): { text?: string; keyboard: Keyboard; device: string } => {\n const { callbackData, device2Switch } = obj;\n\n step = parseFloat(callbackData.replace('percent', ''));\n let rowEntries = 0;\n let menu: KeyboardItems[] = [];\n const keyboard: Keyboard = {\n inline_keyboard: [],\n };\n for (let i = 100; i >= 0; i -= step) {\n menu.push({\n text: `${i}%`,\n callback_data: `submenu:percent${step},${i}:${device2Switch}`,\n });\n if (i != 0 && i - step < 0) {\n menu.push({\n text: `0%`,\n callback_data: `submenu:percent${step},${0}:${device2Switch}`,\n });\n }\n rowEntries++;\n if (rowEntries == 8) {\n keyboard.inline_keyboard.push(menu);\n menu = [];\n rowEntries = 0;\n }\n }\n\n if (rowEntries != 0) {\n keyboard.inline_keyboard.push(menu);\n }\n return { text: obj.text, keyboard: keyboard, device: device2Switch };\n};\n\nconst setFirstMenuValue = async (obj: SetFirstMenuValue): Promise<{ returnIds: SetStateIds[] }> => {\n let val;\n debug([{ text: 'SplitData:', val: splittedData }]);\n if (splittedData[1].split('.')[1] == 'false') {\n val = false;\n } else if (splittedData[1].split('.')[1] == 'true') {\n val = true;\n } else {\n val = splittedData[1].split('.')[1];\n }\n const result = await setState(\n obj.part,\n obj.userToSend,\n val as string,\n true,\n obj.instanceTelegram,\n obj.resize_keyboard,\n obj.one_time_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return { returnIds: returnIDToListenTo };\n};\n\nconst setSecondMenuValue = async (obj: SetSecondMenuValue): Promise<{ returnIds: SetStateIds[] }> => {\n let val;\n if (splittedData[2].split('.')[1] == 'false') {\n val = false;\n } else if (splittedData[2].split('.')[1] == 'true') {\n val = true;\n } else {\n val = splittedData[2].split('.')[1];\n }\n const result = await setState(\n obj.part,\n obj.userToSend,\n val as string,\n true,\n obj.instanceTelegram,\n obj.one_time_keyboard,\n obj.resize_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return { returnIds: returnIDToListenTo };\n};\n\nconst createSubmenuNumber = (obj: CreateMenu): { text?: string; keyboard: Keyboard; device: string } => {\n let callbackData = obj.callbackData;\n const device2Switch = obj.device2Switch;\n\n if (callbackData.includes('(-)')) {\n callbackData = callbackData.replace('(-)', 'negativ');\n }\n const splittedData = callbackData.replace('number', '').split('-');\n let rowEntries = 0;\n let menu: { text: string; callback_data: string }[] = [];\n const keyboard: Keyboard = {\n inline_keyboard: [],\n };\n let unit = '';\n if (splittedData[3] != '') {\n unit = splittedData[3];\n }\n let start: number, end: number;\n const firstValueInText = parseFloat(\n splittedData[0].includes('negativ') ? splittedData[0].replace('negativ', '-') : splittedData[0],\n );\n const secondValueInText = parseFloat(\n splittedData[1].includes('negativ') ? splittedData[1].replace('negativ', '-') : splittedData[1],\n );\n\n if (firstValueInText < secondValueInText) {\n start = secondValueInText;\n end = firstValueInText;\n } else {\n start = firstValueInText;\n end = secondValueInText;\n }\n let index = -1;\n\n let maxEntriesPerRow = 8;\n const step = parseFloat(\n splittedData[2].includes('negativ') ? splittedData[2].replace('negativ', '-') : splittedData[2],\n );\n if (step < 1) {\n maxEntriesPerRow = 6;\n }\n\n for (let i = start; i >= end; i -= step) {\n // Zahlen umdrehen\n if (parseFloat(splittedData[0]) < parseFloat(splittedData[1])) {\n if (i === start) {\n index = end - step;\n }\n index = index + step;\n } else {\n index = i;\n }\n menu.push({\n text: `${index}${unit}`,\n callback_data: `submenu:${callbackData}:${device2Switch}:${index}`,\n });\n rowEntries++;\n if (rowEntries == maxEntriesPerRow) {\n keyboard.inline_keyboard.push(menu);\n menu = [];\n rowEntries = 0;\n }\n }\n\n if (rowEntries != 0) {\n keyboard.inline_keyboard.push(menu);\n }\n debug([{ text: 'keyboard:', val: keyboard }]);\n return { text: obj.text, keyboard, device: device2Switch };\n};\n\nconst createSwitchMenu = ({\n device2Switch,\n callbackData,\n text,\n}: CreateMenu): { text?: string; keyboard: Keyboard; device: string } => {\n splittedData = callbackData.split('-');\n const keyboard = {\n inline_keyboard: [\n [\n {\n text: splittedData[1].split('.')[0],\n callback_data: `menu:first:${device2Switch}`,\n },\n {\n text: splittedData[2].split('.')[0],\n callback_data: `menu:second:${device2Switch}`,\n },\n ],\n ],\n };\n return { text: text, keyboard, device: device2Switch };\n};\n\nconst setValueForSubmenuPercent = async (obj: SetValueForSubmenuPercent): Promise<{ returnIds: SetStateIds[] }> => {\n const value = parseInt(obj.calledValue.split(':')[1].split(',')[1]);\n\n const result = await setState(\n obj.part,\n obj.userToSend,\n value,\n true,\n obj.instanceTelegram,\n obj.resize_keyboard,\n obj.one_time_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return { returnIds: returnIDToListenTo };\n};\n\nconst setValueForSubmenuNumber = async (\n obj: SetValueForSubmenuNumber,\n): Promise<{ returnIds: SetStateIds[]; device2Switch: string }> => {\n debug([{ text: 'CallbackData:', val: obj.callbackData }]);\n\n const value = parseFloat(obj.calledValue.split(':')[3]);\n const device2Switch = obj.calledValue.split(':')[2];\n\n const result = await setState(\n obj.part,\n obj.userToSend,\n value,\n true,\n obj.instanceTelegram,\n obj.resize_keyboard,\n obj.one_time_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return { returnIds: returnIDToListenTo, device2Switch };\n};\n\nconst back = async (obj: BackMenuType): Promise<void> => {\n const result = await switchBack(obj.userToSend, obj.allMenusWithData, obj.menus);\n if (result) {\n await sendToTelegram({\n user: obj.userToSend,\n textToSend: result.texttosend as string,\n keyboard: result.menuToSend,\n instance: obj.instanceTelegram,\n resize_keyboard: obj.resize_keyboard,\n one_time_keyboard: obj.one_time_keyboard,\n userListWithChatID: obj.userListWithChatID,\n parse_mode: result.parseMode,\n });\n }\n};\nasync function callSubMenu(\n jsonStringNav: string,\n newObjectNavStructure: NewObjectNavStructure,\n userToSend: string,\n instanceTelegram: string,\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n part: Part,\n allMenusWithData: { [key: string]: NewObjectNavStructure },\n menus: string[],\n setStateIdsToListenTo: SetStateIds[] | null,\n navObj: NavPart,\n): Promise<{ setStateIdsToListenTo: SetStateIds[] | null; newNav: string | undefined } | undefined> {\n try {\n const obj = await subMenu({\n jsonStringNav: jsonStringNav,\n userToSend: userToSend,\n instanceTelegram: instanceTelegram,\n resize_keyboard: resize_keyboard,\n one_time_keyboard: one_time_keyboard,\n userListWithChatID: userListWithChatID,\n part,\n allMenusWithData: allMenusWithData,\n menus,\n navObj,\n });\n debug([{ text: 'Submenu data:', val: obj?.text }]);\n debug([{ text: 'Submenu data:', val: obj?.keyboard }]);\n debug([{ text: 'Submenu data:', val: obj?.device }]);\n debug([{ text: 'Submenu data:', val: obj?.navToGoBack }]);\n\n if (obj?.returnIds) {\n setStateIdsToListenTo = obj.returnIds;\n\n await _subscribeAndUnSubscribeForeignStatesAsync({ array: obj.returnIds });\n }\n\n if (obj?.text && obj?.keyboard) {\n sendToTelegramSubmenu(\n userToSend,\n obj.text,\n obj.keyboard,\n instanceTelegram,\n userListWithChatID,\n part.parse_mode || 'false',\n );\n }\n return { setStateIdsToListenTo: setStateIdsToListenTo, newNav: obj?.navToGoBack };\n } catch (e: any) {\n error({\n array: [\n { text: 'Error callSubMenu:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ],\n });\n }\n}\n\nasync function subMenu({\n jsonStringNav,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n allMenusWithData,\n menus,\n navObj,\n}: {\n jsonStringNav: string;\n userToSend: string;\n instanceTelegram: string;\n resize_keyboard: boolean;\n one_time_keyboard: boolean;\n userListWithChatID: UserListWithChatId[];\n part: Part;\n allMenusWithData: { [p: string]: NewObjectNavStructure };\n menus: string[];\n navObj: NavPart;\n}): Promise<\n { text?: string; keyboard?: Keyboard; device?: string; returnIds?: SetStateIds[]; navToGoBack?: string } | undefined\n> {\n try {\n _this.log.debug(`Menu : ${navObj[0][0]}`);\n\n let text: string | undefined = '';\n if (part?.text && part.text != '') {\n text = await checkStatusInfo(part.text);\n }\n\n const called = parseJSON<NavPart>(jsonStringNav);\n if (!called?.length) {\n return;\n }\n const { callbackData, device: device2Switch, val } = getMenuValues(called[0]);\n\n if (callbackData.includes('delete')) {\n return await deleteMessages({\n userToSend,\n userListWithChatID,\n instanceTelegram,\n device2Switch,\n callbackData,\n });\n } else if (callbackData.includes('switch')) {\n return createSwitchMenu({ callbackData, text, device2Switch });\n } else if (callbackData.includes('first')) {\n return await setFirstMenuValue({\n part,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n });\n } else if (callbackData.includes('second')) {\n return await setSecondMenuValue({\n part,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n });\n } else if (callbackData.includes('dynSwitch')) {\n return dynamicSwitch(jsonStringNav, device2Switch, text as string);\n } else if (callbackData.includes('dynS')) {\n return await setDynamicValue({\n val,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n });\n } else if (!jsonStringNav.includes('submenu') && callbackData.includes('percent')) {\n return createSubmenuPercent({ callbackData, text, device2Switch });\n } else if (jsonStringNav.includes(`submenu:percent${step}`)) {\n return await setValueForSubmenuPercent({\n callbackData,\n calledValue: jsonStringNav,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n allMenusWithData,\n menus,\n });\n } else if (!jsonStringNav.includes('submenu') && callbackData.includes('number')) {\n return createSubmenuNumber({ callbackData, text, device2Switch });\n } else if (jsonStringNav.includes(`submenu:${callbackData}`)) {\n const result = await setValueForSubmenuNumber({\n callbackData,\n calledValue: jsonStringNav,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n });\n // device2Switch = result.device2Switch;\n return result.returnIds ? { returnIds: result.returnIds } : undefined;\n } else if (callbackData === 'back') {\n await back({\n userToSend,\n allMenusWithData,\n menus,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n });\n }\n return;\n } catch (error: any) {\n error([\n { text: 'Error subMenu:', val: error.message },\n { text: 'Stack', val: error.stack },\n ]);\n }\n}\n\nexport { subMenu, callSubMenu };\n"],
5
+ "mappings": "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",
6
6
  "names": ["splittedData", "step", "error"]
7
7
  }