chuijs 4.0.3 → 4.0.4

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 (258) hide show
  1. package/CHANGELOG.md +536 -0
  2. package/framework/appLayout/default/chui_app_layout.js +361 -303
  3. package/framework/appLayout/default/global_style.css +243 -89
  4. package/framework/appLayout/default/main_theme_style.css +188 -101
  5. package/framework/components/chui_accordion/accordion.js +17 -17
  6. package/framework/components/chui_accordion/styles.css +7 -7
  7. package/framework/components/chui_action_sheet/action_sheet.js +35 -32
  8. package/framework/components/chui_action_sheet/styles.css +10 -4
  9. package/framework/components/chui_actions_bar/actions_bar.js +338 -0
  10. package/framework/components/chui_actions_bar/styles.css +139 -0
  11. package/framework/components/chui_affix/affix.js +4 -4
  12. package/framework/components/chui_affix/styles.css +5 -0
  13. package/framework/components/chui_alert/alert.js +11 -5
  14. package/framework/components/chui_alert/styles.css +7 -0
  15. package/framework/components/chui_avatar/avatar.js +13 -13
  16. package/framework/components/chui_avatar/styles.css +1 -1
  17. package/framework/components/chui_avatar_group/avatar_group.js +4 -4
  18. package/framework/components/chui_avatar_group/styles.css +1 -1
  19. package/framework/components/chui_backtop/backtop.js +25 -2
  20. package/framework/components/chui_backtop/styles.css +21 -0
  21. package/framework/components/chui_badge/badge.js +15 -15
  22. package/framework/components/chui_badge/styles.css +6 -6
  23. package/framework/components/chui_banner/banner.js +222 -0
  24. package/framework/components/chui_banner/styles.css +170 -0
  25. package/framework/components/chui_breadcrumb/styles.css +1 -1
  26. package/framework/components/chui_button/button.js +24 -28
  27. package/framework/components/chui_button/styles.css +5 -5
  28. package/framework/components/chui_calendar/calendar.js +6 -6
  29. package/framework/components/chui_card/card.js +14 -14
  30. package/framework/components/chui_card_scroll/card_scroll.js +169 -0
  31. package/framework/components/chui_card_scroll/styles.css +86 -0
  32. package/framework/components/chui_chat/chat.js +73 -51
  33. package/framework/components/chui_chat/styles.css +18 -7
  34. package/framework/components/chui_clipboard_history/clipboard_history.js +25 -20
  35. package/framework/components/chui_clipboard_history/styles.css +10 -8
  36. package/framework/components/chui_code/code.js +8 -8
  37. package/framework/components/chui_code/styles.css +2 -2
  38. package/framework/components/chui_code_editor/code_editor.js +26 -26
  39. package/framework/components/chui_code_editor/styles.css +3 -3
  40. package/framework/components/chui_command_palette/command_palette.js +29 -29
  41. package/framework/components/chui_command_palette/styles.css +5 -5
  42. package/framework/components/chui_console/console.js +9 -9
  43. package/framework/components/chui_console/styles.css +5 -2
  44. package/framework/components/chui_content_block/content_block.js +2 -2
  45. package/framework/components/chui_context_menu/context_menu.js +162 -54
  46. package/framework/components/chui_context_menu/styles.css +82 -8
  47. package/framework/components/chui_custom_element/custom_element.js +11 -11
  48. package/framework/components/chui_data_grid/data_grid.js +268 -268
  49. package/framework/components/chui_data_grid/styles.css +14 -14
  50. package/framework/components/chui_descriptions/styles.css +1 -1
  51. package/framework/components/chui_details/details.js +12 -12
  52. package/framework/components/chui_details/styles.css +7 -7
  53. package/framework/components/chui_diff_viewer/diff_viewer.js +88 -88
  54. package/framework/components/chui_diff_viewer/styles.css +9 -9
  55. package/framework/components/chui_divider/divider.js +6 -6
  56. package/framework/components/chui_divider/styles.css +2 -2
  57. package/framework/components/chui_drawer/drawer.js +37 -14
  58. package/framework/components/chui_drawer/styles.css +18 -4
  59. package/framework/components/chui_drop_zone/drop_zone.js +6 -6
  60. package/framework/components/chui_drop_zone/styles.css +10 -6
  61. package/framework/components/chui_fieldset/fieldset.js +6 -6
  62. package/framework/components/chui_fieldset/styles.css +5 -5
  63. package/framework/components/chui_file_explorer/file_explorer.js +115 -115
  64. package/framework/components/chui_file_explorer/styles.css +6 -6
  65. package/framework/components/chui_form/form.js +11 -11
  66. package/framework/components/chui_gantt/gantt.js +41 -41
  67. package/framework/components/chui_gantt/styles.css +5 -5
  68. package/framework/components/chui_graphs/graphs.js +82 -46
  69. package/framework/components/chui_graphs/styles.css +26 -5
  70. package/framework/components/chui_hero/hero.js +63 -20
  71. package/framework/components/chui_hero/styles.css +176 -7
  72. package/framework/components/chui_html_block/html_block.js +5 -5
  73. package/framework/components/chui_html_block/styles.css +1 -1
  74. package/framework/components/chui_hx/styles.css +2 -2
  75. package/framework/components/chui_icons/icons.js +7 -7
  76. package/framework/components/chui_icons/styles.css +2 -1
  77. package/framework/components/chui_inputs/chui_check_box/styles.css +12 -3
  78. package/framework/components/chui_inputs/chui_chips/chips.js +92 -31
  79. package/framework/components/chui_inputs/chui_chips/styles.css +28 -5
  80. package/framework/components/chui_inputs/chui_color_picker/color_picker.js +20 -15
  81. package/framework/components/chui_inputs/chui_color_picker/styles.css +7 -7
  82. package/framework/components/chui_inputs/chui_combo_box/combo_box.js +58 -58
  83. package/framework/components/chui_inputs/chui_combo_box/styles.css +9 -9
  84. package/framework/components/chui_inputs/chui_date/date.js +93 -95
  85. package/framework/components/chui_inputs/chui_date/styles.css +8 -8
  86. package/framework/components/chui_inputs/chui_date_range/date_range.js +22 -22
  87. package/framework/components/chui_inputs/chui_date_range/styles.css +3 -3
  88. package/framework/components/chui_inputs/chui_datetime/datetime.js +12 -12
  89. package/framework/components/chui_inputs/chui_datetime/styles.css +3 -3
  90. package/framework/components/chui_inputs/chui_email/email.js +10 -10
  91. package/framework/components/chui_inputs/chui_email/styles.css +6 -6
  92. package/framework/components/chui_inputs/chui_file/file.js +8 -8
  93. package/framework/components/chui_inputs/chui_file/styles.css +12 -9
  94. package/framework/components/chui_inputs/chui_hotkey/hotkey.js +39 -39
  95. package/framework/components/chui_inputs/chui_hotkey/styles.css +6 -6
  96. package/framework/components/chui_inputs/chui_masked/masked.js +44 -44
  97. package/framework/components/chui_inputs/chui_masked/styles.css +5 -5
  98. package/framework/components/chui_inputs/chui_mention/mention.js +13 -13
  99. package/framework/components/chui_inputs/chui_mention/styles.css +14 -8
  100. package/framework/components/chui_inputs/chui_multi_combo_box/multi_combo_box.js +147 -137
  101. package/framework/components/chui_inputs/chui_multi_combo_box/styles.css +14 -8
  102. package/framework/components/chui_inputs/chui_number/number.js +42 -45
  103. package/framework/components/chui_inputs/chui_number/styles.css +6 -6
  104. package/framework/components/chui_inputs/chui_otp/otp.js +32 -32
  105. package/framework/components/chui_inputs/chui_otp/styles.css +5 -5
  106. package/framework/components/chui_inputs/chui_password/password.js +30 -36
  107. package/framework/components/chui_inputs/chui_password/styles.css +7 -7
  108. package/framework/components/chui_inputs/chui_radio_button/styles.css +2 -2
  109. package/framework/components/chui_inputs/chui_rating/rating.js +28 -28
  110. package/framework/components/chui_inputs/chui_rating/styles.css +3 -3
  111. package/framework/components/chui_inputs/chui_select_box/select_box.js +54 -54
  112. package/framework/components/chui_inputs/chui_select_box/styles.css +10 -10
  113. package/framework/components/chui_inputs/chui_slider/slider.js +14 -14
  114. package/framework/components/chui_inputs/chui_slider/styles.css +5 -4
  115. package/framework/components/chui_inputs/chui_text/styles.css +7 -7
  116. package/framework/components/chui_inputs/chui_text/text.js +13 -17
  117. package/framework/components/chui_inputs/chui_text_area/styles.css +8 -8
  118. package/framework/components/chui_inputs/chui_text_area/text_area.js +23 -23
  119. package/framework/components/chui_inputs/chui_time/styles.css +13 -17
  120. package/framework/components/chui_inputs/chui_time/time.js +35 -24
  121. package/framework/components/chui_inputs/chui_toggle/styles.css +10 -3
  122. package/framework/components/chui_inputs/chui_toggle/toggle.js +16 -16
  123. package/framework/components/chui_json_editor/json_editor.js +87 -87
  124. package/framework/components/chui_json_editor/styles.css +5 -5
  125. package/framework/components/chui_json_viewer/json_viewer.js +80 -80
  126. package/framework/components/chui_json_viewer/styles.css +6 -6
  127. package/framework/components/chui_kanban/kanban.js +27 -27
  128. package/framework/components/chui_kanban/styles.css +8 -4
  129. package/framework/components/chui_kbd/styles.css +1 -1
  130. package/framework/components/chui_label/label.js +17 -17
  131. package/framework/components/chui_label/styles.css +1 -1
  132. package/framework/components/chui_link/link.js +9 -9
  133. package/framework/components/chui_link/styles.css +11 -4
  134. package/framework/components/chui_list/list.js +11 -11
  135. package/framework/components/chui_list/styles.css +2 -2
  136. package/framework/components/chui_markdown_editor/markdown_editor.js +66 -66
  137. package/framework/components/chui_markdown_editor/styles.css +5 -5
  138. package/framework/components/chui_media/audio.js +240 -246
  139. package/framework/components/chui_media/audio_styles.css +41 -23
  140. package/framework/components/chui_media/image.js +49 -46
  141. package/framework/components/chui_media/image_compare.js +35 -35
  142. package/framework/components/chui_media/image_compare_styles.css +5 -5
  143. package/framework/components/chui_media/image_styles.css +1 -1
  144. package/framework/components/chui_media/video.js +148 -148
  145. package/framework/components/chui_media/video_styles.css +27 -11
  146. package/framework/components/chui_menu_bar/menu_bar.js +54 -54
  147. package/framework/components/chui_menu_bar/styles.css +10 -10
  148. package/framework/components/chui_message_bar/message_bar.js +551 -0
  149. package/framework/components/chui_message_bar/styles.css +248 -0
  150. package/framework/components/chui_modal/modal.js +37 -13
  151. package/framework/components/chui_notification/notification.js +76 -54
  152. package/framework/components/chui_notification/notification_download.js +26 -81
  153. package/framework/components/chui_notification/notification_download_card.js +115 -0
  154. package/framework/components/chui_notification/notification_download_progress.css +2 -2
  155. package/framework/components/chui_notification/notification_download_progress.js +70 -108
  156. package/framework/components/chui_notification/notification_update.js +31 -31
  157. package/framework/components/chui_notification/status_plate.css +3 -3
  158. package/framework/components/chui_notification/styles.css +6 -1
  159. package/framework/components/chui_notification/styles_download.css +1 -1
  160. package/framework/components/chui_notification/styles_update.css +2 -2
  161. package/framework/components/chui_org_chart/org_chart.js +29 -29
  162. package/framework/components/chui_org_chart/styles.css +2 -2
  163. package/framework/components/chui_pagination/pagination.js +3 -3
  164. package/framework/components/chui_pagination/styles.css +1 -1
  165. package/framework/components/chui_paragraph/styles.css +2 -2
  166. package/framework/components/chui_popover/popover.js +29 -23
  167. package/framework/components/chui_popover/styles.css +1 -1
  168. package/framework/components/chui_popups/popups.js +124 -124
  169. package/framework/components/chui_popups/styles.css +5 -5
  170. package/framework/components/chui_print_button/print_button.js +15 -10
  171. package/framework/components/chui_progress_bar/progress_bar.js +34 -12
  172. package/framework/components/chui_progress_bar/styles.css +4 -4
  173. package/framework/components/chui_progress_ring/progress_ring.js +15 -15
  174. package/framework/components/chui_progress_ring/styles.css +1 -1
  175. package/framework/components/chui_qrcode/qrcode.js +12 -12
  176. package/framework/components/chui_query_builder/query_builder.js +46 -46
  177. package/framework/components/chui_query_builder/styles.css +4 -4
  178. package/framework/components/chui_radio_group/styles.css +1 -1
  179. package/framework/components/chui_result/result.js +15 -15
  180. package/framework/components/chui_result/styles.css +3 -3
  181. package/framework/components/chui_scheduler/scheduler.js +74 -74
  182. package/framework/components/chui_scheduler/styles.css +5 -5
  183. package/framework/components/chui_screen_spinner/screen_spinner.js +167 -0
  184. package/framework/components/chui_screen_spinner/styles.css +49 -0
  185. package/framework/components/chui_segmented_control/segmented_control.js +63 -6
  186. package/framework/components/chui_segmented_control/styles.css +32 -6
  187. package/framework/components/chui_settings/settings.js +45 -46
  188. package/framework/components/chui_settings/styles.css +4 -4
  189. package/framework/components/chui_shortcut_help/shortcut_help.js +32 -34
  190. package/framework/components/chui_sidebar_nav/sidebar_nav.js +98 -29
  191. package/framework/components/chui_sidebar_nav/styles.css +9 -3
  192. package/framework/components/chui_slideshow/slideshow.js +85 -85
  193. package/framework/components/chui_slideshow/styles.css +6 -6
  194. package/framework/components/chui_spinner/spinner.js +10 -10
  195. package/framework/components/chui_split_button/split_button.js +30 -12
  196. package/framework/components/chui_split_button/styles.css +21 -5
  197. package/framework/components/chui_splitter/splitter.js +11 -11
  198. package/framework/components/chui_splitter/styles.css +2 -2
  199. package/framework/components/chui_statistic/statistic.js +47 -47
  200. package/framework/components/chui_status_bar/styles.css +2 -2
  201. package/framework/components/chui_stepper/stepper.js +202 -31
  202. package/framework/components/chui_stepper/styles.css +79 -14
  203. package/framework/components/chui_sticky_bar/sticky_bar.js +44 -13
  204. package/framework/components/chui_sticky_bar/styles.css +10 -8
  205. package/framework/components/chui_tabs/chui_tabs.js +74 -26
  206. package/framework/components/chui_tabs/styles.css +40 -12
  207. package/framework/components/chui_text_editor/styles.css +7 -7
  208. package/framework/components/chui_text_editor/text_editor.js +56 -56
  209. package/framework/components/chui_text_editor/text_editor_panel.js +173 -174
  210. package/framework/components/chui_theme_toggle/theme_toggle.js +21 -5
  211. package/framework/components/chui_timeline/styles.css +3 -1
  212. package/framework/components/chui_toast_queue/styles.css +11 -11
  213. package/framework/components/chui_toast_queue/toast_queue.js +30 -27
  214. package/framework/components/chui_toolbar/styles.css +2 -2
  215. package/framework/components/chui_tooltip/styles.css +2 -2
  216. package/framework/components/chui_tooltip/tooltip.js +3 -3
  217. package/framework/components/chui_tour/styles.css +8 -8
  218. package/framework/components/chui_tour/tour.js +72 -72
  219. package/framework/components/chui_transfer/styles.css +6 -6
  220. package/framework/components/chui_transfer/transfer.js +93 -106
  221. package/framework/components/chui_tree_table/styles.css +4 -4
  222. package/framework/components/chui_tree_table/tree_table.js +45 -45
  223. package/framework/components/chui_tree_view/styles.css +10 -8
  224. package/framework/components/chui_tree_view/tree_view.js +185 -183
  225. package/framework/components/chui_user_bar/styles.css +145 -0
  226. package/framework/components/chui_user_bar/user_bar.js +402 -0
  227. package/framework/components/chui_user_list_bar/styles.css +173 -0
  228. package/framework/components/chui_user_list_bar/user_list_bar.js +485 -0
  229. package/framework/components/chui_watermark/watermark.js +17 -17
  230. package/framework/components/chui_webview/webview.js +9 -9
  231. package/framework/components/chui_write_bar/styles.css +172 -0
  232. package/framework/components/chui_write_bar/write_bar.js +320 -0
  233. package/framework/main_window.js +1234 -0
  234. package/framework/modules/chui_a11y/chui_a11y.js +78 -79
  235. package/framework/modules/chui_animations/animations.js +77 -15
  236. package/framework/modules/chui_animations/motion.js +120 -0
  237. package/framework/modules/chui_animations/styles.css +36 -3
  238. package/framework/modules/chui_functions.js +31 -27
  239. package/framework/modules/chui_highlight/styles.css +13 -10
  240. package/framework/modules/chui_i18n/chui_i18n.js +3 -3
  241. package/framework/modules/chui_i18n/locales/feedback.js +62 -0
  242. package/framework/modules/chui_i18n/locales/navigation.js +4 -0
  243. package/framework/modules/chui_json/chui_json.js +2 -2
  244. package/framework/modules/chui_logger/chui_logger.js +23 -8
  245. package/framework/modules/chui_page/page.js +10 -10
  246. package/framework/modules/chui_palette/palette.js +61 -0
  247. package/framework/modules/chui_qr/chui_qr.js +23 -23
  248. package/framework/modules/chui_scrollbar/chui_scrollbar.js +45 -45
  249. package/framework/modules/chui_scrollbar/styles.css +3 -3
  250. package/framework/modules/chui_services/chui_services.js +8 -8
  251. package/framework/modules/chui_services/desktop.js +77 -71
  252. package/framework/modules/chui_sortable/chui_sortable.js +17 -17
  253. package/framework/modules/chui_validate/chui_validate.js +3 -3
  254. package/framework/tray_bar/chui_menu_items.js +2 -2
  255. package/index.d.ts +266 -34
  256. package/index.js +20 -1168
  257. package/package.json +6 -4
  258. package/framework/components/telegram_bot/chui_telegram_bot.js +0 -191
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "chuijs",
3
3
  "productName": "chuijs",
4
4
  "description": "component framework chUiJS",
5
- "version": "4.0.3",
5
+ "version": "4.0.4",
6
6
  "private": false,
7
7
  "main": "index.js",
8
8
  "types": "index.d.ts",
@@ -42,16 +42,18 @@
42
42
  "start": "electron --trace-warnings main.js",
43
43
  "docs:build": "node docs/build.js",
44
44
  "docs:check": "node scripts/check-docs.js",
45
- "lint": "eslint .",
45
+ "lint": "eslint . --max-warnings=0",
46
46
  "lint:fix": "eslint . --fix",
47
47
  "test": "node --test test/*.test.js",
48
- "test:coverage": "c8 --all --include='framework/**' --exclude='framework/modules/chui_fonts.js' --exclude='framework/modules/chui_bridge/preload.js' --reporter=text --reporter=html --exclude-after-remap node --test test/*.test.js",
48
+ "test:coverage": "c8 --all --include='framework/**' --exclude='framework/modules/chui_fonts.js' --exclude='framework/modules/chui_bridge/preload.js' --exclude='framework/main_window.js' --exclude-after-remap --check-coverage --lines 30 --functions 45 --branches 65 --statements 30 --reporter=text --reporter=html node --test test/*.test.js",
49
49
  "smoke": "node scripts/smoke.js",
50
+ "palette:check": "node scripts/check-palette.js",
50
51
  "types:build": "node scripts/generate-types.js && prettier --write index.d.ts",
51
52
  "types:check": "tsc --noEmit",
52
53
  "format": "prettier --write .",
53
54
  "format:check": "prettier --check .",
54
- "check": "npm run lint && npm run format:check && npm run types:check && npm test && npm run docs:check"
55
+ "check:code": "npm run lint && npm run format:check && npm run types:check && npm run palette:check && npm test",
56
+ "check": "npm run check:code && npm run docs:check"
55
57
  },
56
58
  "engines": {
57
59
  "node": ">=18"
@@ -1,191 +0,0 @@
1
- class TelegramBot {
2
- #main_api = undefined;
3
- constructor(token = String()) {
4
- this.#main_api = `https://api.telegram.org/bot${token}`;
5
- }
6
- setToken(token = String()) {
7
- this.#main_api = `https://api.telegram.org/bot${token}`;
8
- }
9
- // GET
10
- async getMe() {
11
- return await this.#sendRequestParams("GET", "getMe", undefined);
12
- }
13
- async getUpdates() {
14
- return await this.#sendRequestParams("GET", "getUpdates", undefined);
15
- }
16
- async getChat(chat_id = String()) {
17
- return await this.#sendRequestParams("GET", `getChat`, {
18
- chat_id: chat_id,
19
- });
20
- }
21
- async getChatAdministrators(chat_id = String()) {
22
- return await this.#sendRequestParams("GET", `getChatAdministrators`, {
23
- chat_id: chat_id,
24
- });
25
- }
26
- async getChatMemberCount(chat_id = String()) {
27
- return await this.#sendRequestParams("GET", `getChatMemberCount`, {
28
- chat_id: chat_id,
29
- });
30
- }
31
- async getChatMember(chat_id = String(), user_id = Number()) {
32
- return await this.#sendRequestParams("GET", `getChatMember`, {
33
- chat_id: chat_id,
34
- user_id: user_id,
35
- });
36
- }
37
- async getUserProfilePhotos(user_id = Number()) {
38
- return await this.#sendRequestParams("GET", `getUserProfilePhotos`, {
39
- user_id: user_id,
40
- });
41
- }
42
- async getFile(file_id = String()) {
43
- return await this.#sendRequestParams("GET", `getFile`, {
44
- file_id: file_id,
45
- });
46
- }
47
- // SET
48
- async setChatTitle(chat_id = String(), title = String()) {
49
- return await this.#sendRequestFormData("POST", "setChatTitle", {
50
- chat_id: chat_id,
51
- title: title,
52
- });
53
- }
54
- async setChatDescription(chat_id = String(), description = String()) {
55
- return await this.#sendRequestFormData("POST", "setChatDescription", {
56
- chat_id: chat_id,
57
- description: description,
58
- });
59
- }
60
- async setChatPhoto(chat_id = String(), path = String()) {
61
- return await this.#sendRequestFormData("POST", "setChatPhoto", {
62
- chat_id: chat_id,
63
- photo: path,
64
- });
65
- }
66
- async deleteChatPhoto(chat_id = String()) {
67
- return await this.#sendRequestFormData("POST", "deleteChatPhoto", {
68
- chat_id: chat_id,
69
- });
70
- }
71
- // FUNC
72
- async forwardMessage(chat_id = String(), from_chat_id = String(), message_id = Number()) {
73
- return await this.#sendRequestFormData("POST", "forwardMessage", {
74
- chat_id: chat_id,
75
- from_chat_id: from_chat_id,
76
- message_id: message_id,
77
- });
78
- }
79
- async copyMessage(chat_id = String(), from_chat_id = String(), message_id = Number()) {
80
- return await this.#sendRequestFormData("POST", "copyMessage", {
81
- chat_id: chat_id,
82
- from_chat_id: from_chat_id,
83
- message_id: message_id,
84
- });
85
- }
86
- async pinChatMessage(chat_id = String(), message_id = Number()) {
87
- return await this.#sendRequestFormData("POST", "pinChatMessage", {
88
- chat_id: chat_id,
89
- message_id: message_id,
90
- });
91
- }
92
- async unpinChatMessage(chat_id = String(), message_id = Number()) {
93
- return await this.#sendRequestFormData("POST", "unpinChatMessage", {
94
- chat_id: chat_id,
95
- message_id: message_id,
96
- });
97
- }
98
- async unpinAllChatMessages(chat_id = String()) {
99
- return await this.#sendRequestFormData("POST", "unpinAllChatMessages", {
100
- chat_id: chat_id,
101
- });
102
- }
103
- // SEND FUNC
104
- async sendMessage(chat_id = String(), message = String()) {
105
- return await this.#sendRequestFormData("POST", "sendMessage", {
106
- chat_id: chat_id,
107
- text: message,
108
- parse_mode: "markdown",
109
- });
110
- }
111
- async sendDocument(chat_id = String(), path = String()) {
112
- return await this.#sendRequestFormData("POST", "sendDocument", {
113
- chat_id: chat_id,
114
- document: path,
115
- });
116
- }
117
- async sendPhoto(chat_id = String(), path = String()) {
118
- return await this.#sendRequestFormData("POST", "sendPhoto", {
119
- chat_id: chat_id,
120
- photo: path,
121
- });
122
- }
123
- async sendAudio(chat_id = String(), path = String()) {
124
- return await this.#sendRequestFormData("POST", "sendAudio", {
125
- chat_id: chat_id,
126
- audio: path,
127
- });
128
- }
129
- async sendVideo(chat_id = String(), path = String()) {
130
- return await this.#sendRequestFormData("POST", "sendVideo", {
131
- chat_id: chat_id,
132
- video: path,
133
- });
134
- }
135
- async sendContact(chat_id = String(), phone_number = String(), first_name = String()) {
136
- return await this.#sendRequestFormData("POST", "sendContact", {
137
- chat_id: chat_id,
138
- phone_number: phone_number,
139
- first_name: first_name,
140
- });
141
- }
142
- async sendPoll(chat_id = String(), question = String(), options = [], is_anonymous = Boolean()) {
143
- return await this.#sendRequestFormData("POST", "sendPoll", {
144
- chat_id: chat_id,
145
- question: question,
146
- options: JSON.stringify(options),
147
- is_anonymous: is_anonymous,
148
- });
149
- }
150
- async sendDice(chat_id = String()) {
151
- return await this.#sendRequestFormData("POST", "sendDice", {
152
- chat_id: chat_id,
153
- });
154
- }
155
- // PRIVATE FUNC
156
- #sendRequestFormData(method, func, data = {}) {
157
- return new Promise((resolve, reject) => {
158
- let request = new XMLHttpRequest();
159
- request.open(method, `${this.#main_api}/${func}`);
160
- if (data !== undefined) {
161
- let formData = new FormData();
162
- for (let key of Object.keys(data)) formData.append(key, data[key]);
163
- request.send(formData);
164
- } else request.send();
165
- request.addEventListener("load", () => resolve(JSON.parse(request.responseText)));
166
- request.addEventListener("error", () => reject(JSON.parse(request.responseText)));
167
- });
168
- }
169
- #sendRequestParams(method, func, params = {}) {
170
- return new Promise((resolve, reject) => {
171
- let request = new XMLHttpRequest();
172
- if (params !== undefined) request.open(method, `${this.#main_api}/${func}${this.#formatParams(params)}`);
173
- else request.open(method, `${this.#main_api}/${func}`);
174
- request.send();
175
- request.addEventListener("load", () => resolve(JSON.parse(request.responseText)));
176
- request.addEventListener("error", () => reject(JSON.parse(request.responseText)));
177
- });
178
- }
179
- #formatParams(params) {
180
- return (
181
- "?" +
182
- Object.keys(params)
183
- .map((key) => {
184
- return key + "=" + encodeURIComponent(params[key]);
185
- })
186
- .join("&")
187
- );
188
- }
189
- }
190
-
191
- exports.TelegramBot = TelegramBot;