@phonghq/go-chat 1.0.72 → 1.0.74

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 (410) hide show
  1. package/dist/assets/icons/call/IconClock.vue.d.ts +2 -0
  2. package/dist/assets/icons/call/IconClock.vue.js +22 -0
  3. package/dist/assets/icons/call/IconClose.vue.d.ts +2 -0
  4. package/dist/assets/icons/call/IconClose.vue.js +26 -0
  5. package/dist/assets/icons/call/IconMic.vue.d.ts +14 -0
  6. package/dist/assets/icons/call/IconMic.vue.js +123 -0
  7. package/dist/assets/icons/call/IconPhone.vue.d.ts +2 -0
  8. package/dist/assets/icons/call/IconPhone.vue.js +22 -0
  9. package/dist/assets/icons/call/IconPhoneCancel.vue.d.ts +14 -0
  10. package/dist/assets/icons/call/IconPhoneCancel.vue.js +46 -0
  11. package/dist/assets/icons/call/IconSoundDownload.vue.d.ts +2 -0
  12. package/dist/assets/icons/call/IconSoundDownload.vue.js +50 -0
  13. package/dist/assets/icons/call/IconSpeaker.vue.d.ts +14 -0
  14. package/dist/assets/icons/call/IconSpeaker.vue.js +62 -0
  15. package/dist/assets/icons/chat/IconCalendar.vue.d.ts +14 -0
  16. package/dist/assets/icons/chat/IconCalendar.vue.js +42 -0
  17. package/dist/assets/icons/chat/IconCheck.vue.d.ts +2 -0
  18. package/dist/assets/icons/chat/IconCheck.vue.js +22 -0
  19. package/dist/assets/icons/chat/IconInfo.vue.d.ts +2 -0
  20. package/dist/assets/icons/chat/IconInfo.vue.js +20 -0
  21. package/dist/assets/icons/chat/IconLink.vue.d.ts +14 -0
  22. package/dist/assets/icons/chat/IconLink.vue.js +42 -0
  23. package/dist/assets/icons/chat/IconMenuDot.vue.d.ts +2 -0
  24. package/dist/assets/icons/chat/IconMenuDot.vue.js +31 -0
  25. package/dist/assets/icons/customer-appointment/IconChevronRight.vue.d.ts +2 -0
  26. package/dist/assets/icons/customer-appointment/IconChevronRight.vue.js +22 -0
  27. package/dist/assets/icons/customer-appointment/IconFilter.vue.d.ts +2 -0
  28. package/dist/assets/icons/customer-appointment/IconFilter.vue.js +53 -0
  29. package/dist/assets/icons/customer-detail/IconArrow.vue.d.ts +2 -0
  30. package/dist/assets/icons/customer-detail/IconArrow.vue.js +22 -0
  31. package/dist/assets/icons/customer-detail/IconCheck.vue.d.ts +2 -0
  32. package/dist/assets/icons/customer-detail/IconCheck.vue.js +27 -0
  33. package/dist/assets/icons/customer-detail/IconDate.vue.d.ts +2 -0
  34. package/dist/assets/icons/customer-detail/IconDate.vue.js +43 -0
  35. package/dist/assets/icons/customer-detail/IconGroup.vue.d.ts +2 -0
  36. package/dist/assets/icons/customer-detail/IconGroup.vue.js +48 -0
  37. package/dist/assets/icons/customer-detail/IconMessage.vue.d.ts +2 -0
  38. package/dist/assets/icons/customer-detail/IconMessage.vue.js +28 -0
  39. package/dist/assets/icons/customer-detail/IconNote.vue.d.ts +2 -0
  40. package/dist/assets/icons/customer-detail/IconNote.vue.js +29 -0
  41. package/dist/assets/icons/customer-detail/IconPhone.vue.d.ts +14 -0
  42. package/dist/assets/icons/customer-detail/IconPhone.vue.js +41 -0
  43. package/dist/assets/icons/customer-detail/IconPin.vue.d.ts +2 -0
  44. package/dist/assets/icons/customer-detail/IconPin.vue.js +29 -0
  45. package/dist/assets/icons/customer-detail/IconSearch.vue.d.ts +2 -0
  46. package/dist/assets/icons/customer-detail/IconSearch.vue.js +29 -0
  47. package/dist/assets/icons/global/IconAiCheck.vue.d.ts +2 -0
  48. package/dist/assets/icons/global/IconAiCheck.vue.js +28 -0
  49. package/dist/assets/icons/global/IconArrowLeft.vue.d.ts +2 -0
  50. package/dist/assets/icons/global/IconArrowLeft.vue.js +29 -0
  51. package/dist/assets/icons/global/IconBackspace.vue.d.ts +2 -0
  52. package/dist/assets/icons/global/IconBackspace.vue.js +28 -0
  53. package/dist/assets/icons/global/IconCloseCircle.vue.d.ts +2 -0
  54. package/dist/assets/icons/global/IconCloseCircle.vue.js +36 -0
  55. package/dist/assets/icons/global/IconMessageOutline.vue.d.ts +2 -0
  56. package/dist/assets/icons/global/IconMessageOutline.vue.js +22 -0
  57. package/dist/assets/icons/global/IconPhone.vue.d.ts +2 -0
  58. package/dist/assets/icons/global/IconPhone.vue.js +19 -0
  59. package/dist/assets/icons/global/IconPlan.vue.d.ts +14 -0
  60. package/dist/assets/icons/global/IconPlan.vue.js +39 -0
  61. package/dist/assets/icons/global/IconPlus.vue.d.ts +2 -0
  62. package/dist/assets/icons/global/IconPlus.vue.js +22 -0
  63. package/dist/assets/icons/global/IconSearch.vue.d.ts +32 -0
  64. package/dist/assets/icons/global/IconSearch.vue.js +68 -0
  65. package/dist/assets/icons/global/IconSms.vue.d.ts +2 -0
  66. package/dist/assets/icons/global/IconSms.vue.js +22 -0
  67. package/dist/assets/icons/global/IconUser.vue.d.ts +2 -0
  68. package/dist/assets/icons/global/IconUser.vue.js +25 -0
  69. package/dist/assets/icons/lib/IconZoomOut.vue.d.ts +5 -0
  70. package/dist/assets/icons/lib/IconZoomOut.vue.js +52 -0
  71. package/dist/chat/App.vue.d.ts +26 -0
  72. package/dist/chat/App.vue.js +928 -0
  73. package/dist/chat/ChatHeader.vue.d.ts +15 -0
  74. package/dist/chat/ChatHeader.vue.js +218 -0
  75. package/dist/chat/main.d.ts +7 -0
  76. package/dist/chat/main.js +7 -0
  77. package/dist/chat/page/customer-appointment/CustomerAppointment.vue.d.ts +9 -0
  78. package/dist/chat/page/customer-appointment/CustomerAppointment.vue.js +262 -0
  79. package/dist/chat/page/customer-check-in/CollapseCheckIn.vue.d.ts +12 -0
  80. package/dist/chat/page/customer-check-in/CollapseCheckIn.vue.js +80 -0
  81. package/dist/chat/page/customer-check-in/CustomerCheckIn.vue.d.ts +2 -0
  82. package/dist/chat/page/customer-check-in/CustomerCheckIn.vue.js +138 -0
  83. package/dist/chat/page/customer-detail/CustomerDetail.vue.d.ts +7 -0
  84. package/dist/chat/page/customer-detail/CustomerDetail.vue.js +234 -0
  85. package/dist/chat/page/customer-detail/SubInformation.vue.d.ts +16 -0
  86. package/dist/chat/page/customer-detail/SubInformation.vue.js +134 -0
  87. package/dist/chat/page/error/Error.vue.d.ts +2 -0
  88. package/dist/chat/page/error/Error.vue.js +64 -0
  89. package/dist/chat/page/home/ChatList.vue.d.ts +104 -0
  90. package/dist/chat/page/home/ChatList.vue.js +654 -0
  91. package/dist/chat/page/home/ChatMessage.vue.d.ts +21 -0
  92. package/dist/chat/page/home/ChatMessage.vue.js +210 -0
  93. package/dist/chat/page/home/ChatMessageItem.vue.d.ts +20 -0
  94. package/dist/chat/page/home/ChatMessageItem.vue.js +397 -0
  95. package/dist/chat/page/home/ChatMessageItem2.vue.d.ts +19 -0
  96. package/dist/chat/page/home/ChatMessageItem2.vue.js +351 -0
  97. package/dist/chat/page/home/DropZone.vue.d.ts +13 -0
  98. package/dist/chat/page/home/DropZone.vue.js +130 -0
  99. package/dist/chat/page/home/Home.vue.d.ts +29 -0
  100. package/dist/chat/page/home/Home.vue.js +472 -0
  101. package/dist/chat/page/home/HomeHeader.vue.d.ts +18 -0
  102. package/dist/chat/page/home/HomeHeader.vue.js +514 -0
  103. package/dist/chat/page/home/InputChat.vue.d.ts +27 -0
  104. package/dist/chat/page/home/InputChat.vue.js +412 -0
  105. package/dist/chat/page/home/NewCustomer.vue.d.ts +7 -0
  106. package/dist/chat/page/home/NewCustomer.vue.js +83 -0
  107. package/dist/chat/page/home/PhoneNumpad.vue.d.ts +22 -0
  108. package/dist/chat/page/home/PhoneNumpad.vue.js +161 -0
  109. package/dist/chat/page/setting/Setting.vue.d.ts +2 -0
  110. package/dist/chat/page/setting/Setting.vue.js +277 -0
  111. package/dist/chat/page/setting/SettingSuccess.vue.d.ts +2 -0
  112. package/dist/chat/page/setting/SettingSuccess.vue.js +33 -0
  113. package/dist/components/chat/ScrollEvent/ScrollEvent.vue.d.ts +24 -0
  114. package/dist/components/chat/ScrollEvent/ScrollEvent.vue.js +207 -0
  115. package/dist/components/chat/call/Calling.vue.d.ts +17 -0
  116. package/dist/components/chat/call/Calling.vue.js +594 -0
  117. package/dist/components/chat/call/TimeLeft.vue.d.ts +5 -0
  118. package/dist/components/chat/call/TimeLeft.vue.js +59 -0
  119. package/dist/components/chat/card/CardCustomerDetail.vue.d.ts +13 -0
  120. package/dist/components/chat/card/CardCustomerDetail.vue.js +28 -0
  121. package/dist/components/chat/common/collapse/CollapseBase.vue.d.ts +20 -0
  122. package/dist/components/chat/common/collapse/CollapseBase.vue.js +59 -0
  123. package/dist/components/chat/common/input/InputSearch.vue.d.ts +16 -0
  124. package/dist/components/chat/common/input/InputSearch.vue.js +71 -0
  125. package/dist/components/chat/common/modal/Modal.vue.d.ts +94 -0
  126. package/dist/components/chat/common/modal/Modal.vue.js +260 -0
  127. package/dist/components/chat/common/popover/PopoverBase.vue.d.ts +35 -0
  128. package/dist/components/chat/common/popover/PopoverBase.vue.js +148 -0
  129. package/dist/components/chat/common/spin/BaseSpin.vue.d.ts +10 -0
  130. package/dist/components/chat/common/spin/BaseSpin.vue.js +43 -0
  131. package/dist/components/chat/common/switch/SwitchBase.vue.d.ts +17 -0
  132. package/dist/components/chat/common/switch/SwitchBase.vue.js +76 -0
  133. package/dist/components/chat/common/tab/TabBase.vue.d.ts +30 -0
  134. package/dist/components/chat/common/tab/TabBase.vue.js +86 -0
  135. package/dist/components/chat/common/tabs/TabBase.vue.d.ts +18 -0
  136. package/dist/components/chat/common/tabs/TabBase.vue.js +93 -0
  137. package/dist/components/chat/customer/Avatar.vue.d.ts +12 -0
  138. package/dist/components/chat/customer/Avatar.vue.js +127 -0
  139. package/dist/components/chat/layout/mobile/Footer.vue.d.ts +2 -0
  140. package/dist/components/chat/layout/mobile/Footer.vue.js +114 -0
  141. package/dist/components/chat/select/SelectBase.vue.d.ts +24 -0
  142. package/dist/components/chat/select/SelectBase.vue.js +105 -0
  143. package/dist/components/common/CustomLoading.vue.d.ts +2 -0
  144. package/dist/components/common/CustomLoading.vue.js +19 -0
  145. package/dist/components/common/Notification/NotificationDescription.vue.d.ts +7 -0
  146. package/dist/components/common/Notification/NotificationDescription.vue.js +38 -0
  147. package/dist/components/common/button/ButtonBase.vue.d.ts +22 -0
  148. package/dist/components/common/button/ButtonBase.vue.js +78 -0
  149. package/dist/components/common/button/ButtonToggle.vue.d.ts +20 -0
  150. package/dist/components/common/button/ButtonToggle.vue.js +70 -0
  151. package/dist/components/common/checkbox/CCheckboxNumber.vue.d.ts +16 -0
  152. package/dist/components/common/checkbox/CCheckboxNumber.vue.js +48 -0
  153. package/dist/components/common/collapse/BaseCollapse.vue.d.ts +12 -0
  154. package/dist/components/common/collapse/BaseCollapse.vue.js +36 -0
  155. package/dist/components/common/collapse/BaseCollapseItem.vue.d.ts +4 -0
  156. package/dist/components/common/collapse/BaseCollapseItem.vue.js +22 -0
  157. package/dist/components/common/drawer/DrawerBase.vue.d.ts +39 -0
  158. package/dist/components/common/drawer/DrawerBase.vue.js +126 -0
  159. package/dist/components/common/drawer/DrawerBaseCustom.vue.d.ts +33 -0
  160. package/dist/components/common/drawer/DrawerBaseCustom.vue.js +135 -0
  161. package/dist/components/common/dropdown/DropdownBase.vue.d.ts +21 -0
  162. package/dist/components/common/dropdown/DropdownBase.vue.js +93 -0
  163. package/dist/components/common/input/CInputSearch.vue.d.ts +14 -0
  164. package/dist/components/common/input/CInputSearch.vue.js +62 -0
  165. package/dist/components/common/modal/ModalBase.vue.d.ts +35 -0
  166. package/dist/components/common/modal/ModalBase.vue.js +187 -0
  167. package/dist/components/common/popover/PopoverBase.vue.d.ts +3 -0
  168. package/dist/components/common/popover/PopoverBase.vue.js +36 -0
  169. package/dist/components/common/select/SelectBase.vue.d.ts +33 -0
  170. package/dist/components/common/select/SelectBase.vue.js +120 -0
  171. package/dist/components/common/slider/BaseSlider.vue.d.ts +11 -0
  172. package/dist/components/common/slider/BaseSlider.vue.js +70 -0
  173. package/dist/components/common/spin/CSpin.vue.d.ts +9 -0
  174. package/dist/components/common/spin/CSpin.vue.js +41 -0
  175. package/dist/components/common/tooltip/TooltipBase.vue.d.ts +2 -0
  176. package/dist/components/common/tooltip/TooltipBase.vue.js +8 -0
  177. package/dist/components/layout/PageError.vue.d.ts +2 -0
  178. package/dist/components/layout/PageError.vue.js +91 -0
  179. package/dist/components/ui/button/CButton.vue.d.ts +19 -0
  180. package/dist/components/ui/button/CButton.vue.js +49 -0
  181. package/dist/components/ui/button/c-button.d.ts +7 -0
  182. package/dist/components/ui/button/c-button.js +26 -0
  183. package/dist/components/ui/checkbox/Checkbox.vue.d.ts +18 -0
  184. package/dist/components/ui/checkbox/Checkbox.vue.js +79 -0
  185. package/dist/components/ui/checkbox/index.d.ts +1 -0
  186. package/dist/components/ui/checkbox/index.js +1 -0
  187. package/dist/components/ui/collapsible/Collapsible.vue.d.ts +16 -0
  188. package/dist/components/ui/collapsible/Collapsible.vue.js +47 -0
  189. package/dist/components/ui/collapsible/CollapsibleContent.vue.d.ts +10 -0
  190. package/dist/components/ui/collapsible/CollapsibleContent.vue.js +41 -0
  191. package/dist/components/ui/collapsible/CollapsibleTrigger.vue.d.ts +10 -0
  192. package/dist/components/ui/collapsible/CollapsibleTrigger.vue.js +35 -0
  193. package/dist/components/ui/collapsible/index.d.ts +3 -0
  194. package/dist/components/ui/collapsible/index.js +3 -0
  195. package/dist/components/ui/dialog/Dialog.vue.d.ts +14 -0
  196. package/dist/components/ui/dialog/Dialog.vue.js +42 -0
  197. package/dist/components/ui/dialog/DialogClose.vue.d.ts +10 -0
  198. package/dist/components/ui/dialog/DialogClose.vue.js +35 -0
  199. package/dist/components/ui/dialog/DialogContent.vue.d.ts +29 -0
  200. package/dist/components/ui/dialog/DialogContent.vue.js +84 -0
  201. package/dist/components/ui/dialog/DialogDescription.vue.d.ts +14 -0
  202. package/dist/components/ui/dialog/DialogDescription.vue.js +43 -0
  203. package/dist/components/ui/dialog/DialogFooter.vue.d.ts +13 -0
  204. package/dist/components/ui/dialog/DialogFooter.vue.js +26 -0
  205. package/dist/components/ui/dialog/DialogHeader.vue.d.ts +13 -0
  206. package/dist/components/ui/dialog/DialogHeader.vue.js +26 -0
  207. package/dist/components/ui/dialog/DialogScrollContent.vue.d.ts +30 -0
  208. package/dist/components/ui/dialog/DialogScrollContent.vue.js +99 -0
  209. package/dist/components/ui/dialog/DialogTitle.vue.d.ts +14 -0
  210. package/dist/components/ui/dialog/DialogTitle.vue.js +43 -0
  211. package/dist/components/ui/dialog/DialogTrigger.vue.d.ts +10 -0
  212. package/dist/components/ui/dialog/DialogTrigger.vue.js +35 -0
  213. package/dist/components/ui/dialog/index.d.ts +9 -0
  214. package/dist/components/ui/dialog/index.js +9 -0
  215. package/dist/components/ui/drawer/Drawer.vue.d.ts +26 -0
  216. package/dist/components/ui/drawer/Drawer.vue.js +48 -0
  217. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +33 -0
  218. package/dist/components/ui/drawer/DrawerContent.vue.js +81 -0
  219. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +14 -0
  220. package/dist/components/ui/drawer/DrawerDescription.vue.js +42 -0
  221. package/dist/components/ui/drawer/DrawerFooter.vue.d.ts +13 -0
  222. package/dist/components/ui/drawer/DrawerFooter.vue.js +26 -0
  223. package/dist/components/ui/drawer/DrawerHeader.vue.d.ts +13 -0
  224. package/dist/components/ui/drawer/DrawerHeader.vue.js +26 -0
  225. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +7 -0
  226. package/dist/components/ui/drawer/DrawerOverlay.vue.js +37 -0
  227. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +14 -0
  228. package/dist/components/ui/drawer/DrawerTitle.vue.js +42 -0
  229. package/dist/components/ui/drawer/index.d.ts +8 -0
  230. package/dist/components/ui/drawer/index.js +8 -0
  231. package/dist/components/ui/dropdown-menu/DropdownMenu.vue.d.ts +14 -0
  232. package/dist/components/ui/dropdown-menu/DropdownMenu.vue.js +41 -0
  233. package/dist/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue.d.ts +20 -0
  234. package/dist/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue.js +79 -0
  235. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +28 -0
  236. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.js +66 -0
  237. package/dist/components/ui/dropdown-menu/DropdownMenuGroup.vue.d.ts +10 -0
  238. package/dist/components/ui/dropdown-menu/DropdownMenuGroup.vue.js +35 -0
  239. package/dist/components/ui/dropdown-menu/DropdownMenuItem.vue.d.ts +15 -0
  240. package/dist/components/ui/dropdown-menu/DropdownMenuItem.vue.js +43 -0
  241. package/dist/components/ui/dropdown-menu/DropdownMenuLabel.vue.d.ts +15 -0
  242. package/dist/components/ui/dropdown-menu/DropdownMenuLabel.vue.js +43 -0
  243. package/dist/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue.d.ts +14 -0
  244. package/dist/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue.js +41 -0
  245. package/dist/components/ui/dropdown-menu/DropdownMenuRadioItem.vue.d.ts +18 -0
  246. package/dist/components/ui/dropdown-menu/DropdownMenuRadioItem.vue.js +80 -0
  247. package/dist/components/ui/dropdown-menu/DropdownMenuSeparator.vue.d.ts +7 -0
  248. package/dist/components/ui/dropdown-menu/DropdownMenuSeparator.vue.js +37 -0
  249. package/dist/components/ui/dropdown-menu/DropdownMenuShortcut.vue.d.ts +13 -0
  250. package/dist/components/ui/dropdown-menu/DropdownMenuShortcut.vue.js +26 -0
  251. package/dist/components/ui/dropdown-menu/DropdownMenuSub.vue.d.ts +14 -0
  252. package/dist/components/ui/dropdown-menu/DropdownMenuSub.vue.js +41 -0
  253. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +30 -0
  254. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.js +46 -0
  255. package/dist/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue.d.ts +14 -0
  256. package/dist/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue.js +58 -0
  257. package/dist/components/ui/dropdown-menu/DropdownMenuTrigger.vue.d.ts +10 -0
  258. package/dist/components/ui/dropdown-menu/DropdownMenuTrigger.vue.js +41 -0
  259. package/dist/components/ui/dropdown-menu/index.d.ts +15 -0
  260. package/dist/components/ui/dropdown-menu/index.js +15 -0
  261. package/dist/components/ui/popover/Popover.vue.d.ts +14 -0
  262. package/dist/components/ui/popover/Popover.vue.js +41 -0
  263. package/dist/components/ui/popover/PopoverContent.vue.d.ts +28 -0
  264. package/dist/components/ui/popover/PopoverContent.vue.js +60 -0
  265. package/dist/components/ui/popover/PopoverTrigger.vue.d.ts +10 -0
  266. package/dist/components/ui/popover/PopoverTrigger.vue.js +35 -0
  267. package/dist/components/ui/popover/index.d.ts +3 -0
  268. package/dist/components/ui/popover/index.js +3 -0
  269. package/dist/components/ui/radio-group/RadioGroup.vue.d.ts +18 -0
  270. package/dist/components/ui/radio-group/RadioGroup.vue.js +46 -0
  271. package/dist/components/ui/radio-group/RadioGroupItem.vue.d.ts +7 -0
  272. package/dist/components/ui/radio-group/RadioGroupItem.vue.js +71 -0
  273. package/dist/components/ui/radio-group/index.d.ts +2 -0
  274. package/dist/components/ui/radio-group/index.js +2 -0
  275. package/dist/components/ui/select/Select.vue.d.ts +20 -0
  276. package/dist/components/ui/select/Select.vue.js +49 -0
  277. package/dist/components/ui/select/SelectContent.vue.d.ts +24 -0
  278. package/dist/components/ui/select/SelectContent.vue.js +103 -0
  279. package/dist/components/ui/select/SelectGroup.vue.d.ts +10 -0
  280. package/dist/components/ui/select/SelectGroup.vue.js +37 -0
  281. package/dist/components/ui/select/SelectItem.vue.d.ts +18 -0
  282. package/dist/components/ui/select/SelectItem.vue.js +73 -0
  283. package/dist/components/ui/select/SelectItemText.vue.d.ts +10 -0
  284. package/dist/components/ui/select/SelectItemText.vue.js +37 -0
  285. package/dist/components/ui/select/SelectLabel.vue.d.ts +14 -0
  286. package/dist/components/ui/select/SelectLabel.vue.js +40 -0
  287. package/dist/components/ui/select/SelectScrollDownButton.vue.d.ts +14 -0
  288. package/dist/components/ui/select/SelectScrollDownButton.vue.js +58 -0
  289. package/dist/components/ui/select/SelectScrollUpButton.vue.d.ts +14 -0
  290. package/dist/components/ui/select/SelectScrollUpButton.vue.js +58 -0
  291. package/dist/components/ui/select/SelectSeparator.vue.d.ts +7 -0
  292. package/dist/components/ui/select/SelectSeparator.vue.js +39 -0
  293. package/dist/components/ui/select/SelectTrigger.vue.d.ts +17 -0
  294. package/dist/components/ui/select/SelectTrigger.vue.js +49 -0
  295. package/dist/components/ui/select/SelectValue.vue.d.ts +10 -0
  296. package/dist/components/ui/select/SelectValue.vue.js +37 -0
  297. package/dist/components/ui/select/index.d.ts +11 -0
  298. package/dist/components/ui/select/index.js +11 -0
  299. package/dist/components/ui/slider/Slider.vue.d.ts +13 -0
  300. package/dist/components/ui/slider/Slider.vue.js +155 -0
  301. package/dist/components/ui/slider/index.d.ts +1 -0
  302. package/dist/components/ui/slider/index.js +1 -0
  303. package/dist/components/ui/switch/Switch.vue.d.ts +18 -0
  304. package/dist/components/ui/switch/Switch.vue.js +61 -0
  305. package/dist/components/ui/switch/index.d.ts +1 -0
  306. package/dist/components/ui/switch/index.js +1 -0
  307. package/dist/components/ui/tabs/Tabs.vue.d.ts +20 -0
  308. package/dist/components/ui/tabs/Tabs.vue.js +54 -0
  309. package/dist/components/ui/tabs/TabsContent.vue.d.ts +14 -0
  310. package/dist/components/ui/tabs/TabsContent.vue.js +44 -0
  311. package/dist/components/ui/tabs/TabsList.vue.d.ts +14 -0
  312. package/dist/components/ui/tabs/TabsList.vue.js +44 -0
  313. package/dist/components/ui/tabs/TabsTrigger.vue.d.ts +14 -0
  314. package/dist/components/ui/tabs/TabsTrigger.vue.js +45 -0
  315. package/dist/components/ui/tabs/index.d.ts +4 -0
  316. package/dist/components/ui/tabs/index.js +4 -0
  317. package/dist/composable/useDigibot.d.ts +7 -0
  318. package/dist/composable/useDigibot.js +23 -0
  319. package/dist/composable/useInitData.d.ts +12 -0
  320. package/dist/composable/useInitData.js +101 -0
  321. package/dist/composable/useListConversations.d.ts +59 -0
  322. package/dist/composable/useListConversations.js +220 -0
  323. package/dist/composable/useListentEvent.d.ts +5 -0
  324. package/dist/composable/useListentEvent.js +69 -0
  325. package/dist/composable/usePlivo.d.ts +15 -0
  326. package/dist/composable/usePlivo.js +201 -0
  327. package/dist/constant/color.d.ts +22 -0
  328. package/dist/constant/color.js +47 -0
  329. package/dist/constant/datetime.d.ts +7 -0
  330. package/dist/constant/datetime.js +7 -0
  331. package/dist/constant/general.d.ts +11 -0
  332. package/dist/constant/general.js +12 -0
  333. package/dist/constant/message.d.ts +8 -0
  334. package/dist/constant/message.js +8 -0
  335. package/dist/constant/mqtt.d.ts +7 -0
  336. package/dist/constant/mqtt.js +18 -0
  337. package/dist/constant/user.d.ts +8 -0
  338. package/dist/constant/user.js +9 -0
  339. package/dist/go-chat.es.js +18766 -17073
  340. package/dist/go-chat.umd.js +23 -23
  341. package/dist/lib/utils.d.ts +2 -0
  342. package/dist/lib/utils.js +5 -0
  343. package/dist/plugins/axios-gci.d.ts +3 -0
  344. package/dist/plugins/axios-gci.js +25 -0
  345. package/dist/plugins/axios.d.ts +3 -0
  346. package/dist/plugins/axios.js +84 -0
  347. package/dist/plugins/mqtt.d.ts +8 -0
  348. package/dist/plugins/mqtt.js +189 -0
  349. package/dist/plugins/pocketbase.d.ts +5 -0
  350. package/dist/plugins/pocketbase.js +15 -0
  351. package/dist/plugins/sdk.d.ts +18 -0
  352. package/dist/plugins/sdk.js +73 -0
  353. package/dist/plugins/websocket.d.ts +15 -0
  354. package/dist/plugins/websocket.js +151 -0
  355. package/dist/style.css +1 -1
  356. package/dist/types/chat/auth.d.ts +41 -0
  357. package/dist/types/chat/auth.js +1 -0
  358. package/dist/types/chat/call.d.ts +19 -0
  359. package/dist/types/chat/call.js +23 -0
  360. package/dist/types/chat/global.d.ts +58 -0
  361. package/dist/types/chat/global.js +1 -0
  362. package/dist/types/chat/promise.d.ts +17 -0
  363. package/dist/types/chat/promise.js +1 -0
  364. package/dist/types/chat/user.d.ts +88 -0
  365. package/dist/types/chat/user.js +1 -0
  366. package/dist/types/conversation.d.ts +23 -0
  367. package/dist/types/conversation.js +1 -0
  368. package/dist/types/global.d.ts +11 -0
  369. package/dist/types/global.js +15 -0
  370. package/dist/types/message.d.ts +52 -0
  371. package/dist/types/message.js +1 -0
  372. package/dist/utils/chat/cache.d.ts +7 -0
  373. package/dist/utils/chat/cache.js +63 -0
  374. package/dist/utils/chat/chat-router.d.ts +5 -0
  375. package/dist/utils/chat/chat-router.js +14 -0
  376. package/dist/utils/chat/page-error.d.ts +4 -0
  377. package/dist/utils/chat/page-error.js +25 -0
  378. package/dist/utils/chat/phone-string.d.ts +1 -0
  379. package/dist/utils/chat/phone-string.js +4 -0
  380. package/dist/utils/chat/queue.d.ts +7 -0
  381. package/dist/utils/chat/queue.js +30 -0
  382. package/dist/utils/chat/store/auth.d.ts +62 -0
  383. package/dist/utils/chat/store/auth.js +93 -0
  384. package/dist/utils/chat/store/call.d.ts +15 -0
  385. package/dist/utils/chat/store/call.js +160 -0
  386. package/dist/utils/chat/store/conversation.d.ts +14 -0
  387. package/dist/utils/chat/store/conversation.js +73 -0
  388. package/dist/utils/chat/store/message.d.ts +27 -0
  389. package/dist/utils/chat/store/message.js +70 -0
  390. package/dist/utils/chat/store/time-limit.d.ts +5 -0
  391. package/dist/utils/chat/store/time-limit.js +8 -0
  392. package/dist/utils/chat/store/user.d.ts +200 -0
  393. package/dist/utils/chat/store/user.js +44 -0
  394. package/dist/utils/dayjs-helper.d.ts +3 -0
  395. package/dist/utils/dayjs-helper.js +8 -0
  396. package/dist/utils/debounce.d.ts +1 -0
  397. package/dist/utils/debounce.js +9 -0
  398. package/dist/utils/json.d.ts +2 -0
  399. package/dist/utils/json.js +18 -0
  400. package/dist/utils/logger.d.ts +3 -0
  401. package/dist/utils/logger.js +5 -0
  402. package/dist/utils/string-helper.d.ts +3 -0
  403. package/dist/utils/string-helper.js +43 -0
  404. package/dist/views/NotTenantPhone.vue.d.ts +9 -0
  405. package/dist/views/NotTenantPhone.vue.js +99 -0
  406. package/dist/views/home/phone-numpad/ConvercationList.vue.d.ts +19 -0
  407. package/dist/views/home/phone-numpad/ConvercationList.vue.js +177 -0
  408. package/dist/views/home/phone-numpad/PhoneNumpad.vue.d.ts +32 -0
  409. package/dist/views/home/phone-numpad/PhoneNumpad.vue.js +403 -0
  410. package/package.json +1 -1
@@ -0,0 +1,654 @@
1
+ import InputSearch from '../../../components/chat/common/input/InputSearch.vue';
2
+ import IconPlus from '../../../assets/icons/global/IconPlus.vue';
3
+ import { computed, nextTick, onMounted, onUnmounted, ref } from 'vue';
4
+ import Avatar from '../../../components/chat/customer/Avatar.vue';
5
+ import { getConversationView } from '../../../utils/chat/store/conversation';
6
+ import ScrollEvent from '../../../components/chat/ScrollEvent/ScrollEvent.vue';
7
+ import { useDebounce } from '../../../utils/debounce';
8
+ import { addHandleMqttMessage, connectMqtt, removeHandleMqttMessage, subscribeToTopic, unsubscribeFromTopic } from '../../../plugins/mqtt';
9
+ import { TOPIC_CUSTOMER_RELOAD } from '../../../constant/mqtt';
10
+ import { dataProfile } from '../../../utils/chat/store/auth';
11
+ import { getDetailReceiver } from '../../../utils/chat/store/message';
12
+ import dayjs from 'dayjs';
13
+ import relativeTime from 'dayjs/plugin/relativeTime';
14
+ import updateLocale from 'dayjs/plugin/updateLocale';
15
+ import utc from 'dayjs/plugin/utc';
16
+ import timezone from 'dayjs/plugin/timezone';
17
+ import { useDigibot } from '../../../composable/useDigibot';
18
+ import { TIME_ZONE_UTC } from '../../../constant/datetime';
19
+ import IconAiCheck from '../../../assets/icons/global/IconAiCheck.vue';
20
+ import TabBase2 from '../../../components/chat/common/tabs/TabBase.vue';
21
+ import { useListConversations } from '../../../composable/useListConversations';
22
+ import { phoneNumberFormat } from '../../../utils/string-helper';
23
+ import { AsyncQueue } from '../../../utils/chat/queue';
24
+ dayjs.extend(updateLocale);
25
+ dayjs.extend(relativeTime);
26
+ dayjs.extend(utc);
27
+ dayjs.extend(timezone);
28
+ dayjs.updateLocale('en', {
29
+ relativeTime: {
30
+ future: '%s',
31
+ past: '%s',
32
+ s: 'a few seconds',
33
+ m: 'a minute',
34
+ mm: '%d minutes',
35
+ h: 'an hour',
36
+ hh: '%d hours',
37
+ d: 'a day',
38
+ dd: '%d days',
39
+ M: 'a month',
40
+ MM: '%d months',
41
+ y: 'a year',
42
+ yy: '%d years'
43
+ }
44
+ });
45
+ const props = withDefaults(defineProps(), {});
46
+ const emit = defineEmits();
47
+ const TAB_VALUE = {
48
+ ALL: 1,
49
+ UNKNOWN: 0
50
+ };
51
+ const tabs = computed(() => [
52
+ {
53
+ label: 'All',
54
+ value: TAB_VALUE.ALL,
55
+ badge: (listConversationsAllUnread.value || '').toString()
56
+ },
57
+ {
58
+ label: 'Message Requests',
59
+ value: TAB_VALUE.UNKNOWN,
60
+ badge: (listConversationsUnknownUnread.value || '').toString()
61
+ }
62
+ ]);
63
+ const addQueueCheckConversationHasCustomer = (data) => {
64
+ return queue.add(() => checkConversationHasCustomer(data));
65
+ };
66
+ const checkConversationHasCustomer = (data) => {
67
+ return new Promise((resolve) => {
68
+ const index = listConversationsAll.value.findIndex((item) => item.receiver_id == data.receiver_id);
69
+ const unknown_index = listConversationsUnknown.value.findIndex((item) => item.receiver_id == data.receiver_id);
70
+ if (index > -1) {
71
+ listConversationsAll.value[index].last_message = data.last_message;
72
+ listConversationsAll.value[index].last_message_time = data.last_message_time;
73
+ listConversationsAll.value[index].unread_count = data.unread_count;
74
+ listConversationsAll.value[index].id = data.id;
75
+ resolve(true);
76
+ }
77
+ else if (unknown_index > -1) {
78
+ listConversationsUnknown.value[index].last_message = data.last_message;
79
+ listConversationsUnknown.value[index].last_message_time = data.last_message_time;
80
+ listConversationsUnknown.value[index].unread_count = data.unread_count;
81
+ listConversationsUnknown.value[index].id = data.id;
82
+ resolve(true);
83
+ }
84
+ resolve(false);
85
+ });
86
+ };
87
+ let topic_customer_update = '';
88
+ const { digibotData, digibotId } = useDigibot();
89
+ const queue = new AsyncQueue();
90
+ const { listConversations: listConversationsAll, getData: getDataAll, params: paramsAll, pageCount: pageCountAll, handleReadMessage: handleReadMessageAll, getDataCache: getDataCacheAll, insertConversation: insertConversationAll } = useListConversations(TAB_VALUE.ALL, dataProfile.value?.user_type === 'tenant', addQueueCheckConversationHasCustomer);
91
+ const { listConversations: listConversationsUnknown, getData: getDataUnknown, params: paramsUnknown, pageCount: pageCountUnknown, handleReadMessage: handleReadMessageUnknown, getDataCache: getDataCacheUnknown, insertConversation: insertConversationUnknown } = useListConversations(TAB_VALUE.UNKNOWN, dataProfile.value?.user_type === 'tenant', addQueueCheckConversationHasCustomer);
92
+ onMounted(async () => {
93
+ try {
94
+ if (dataProfile.value) {
95
+ await connectMqtt();
96
+ topic_customer_update = `tenant/${dataProfile.value?.tenant_id}/customer/+/update`;
97
+ subscribeToTopic(topic_customer_update);
98
+ addHandleMqttMessage('chat-list', topic_customer_update, handleMqttQueue);
99
+ }
100
+ }
101
+ catch (error) {
102
+ console.error(error);
103
+ }
104
+ });
105
+ onUnmounted(() => {
106
+ unsubscribeFromTopic(topic_customer_update);
107
+ removeHandleMqttMessage('chat-list');
108
+ });
109
+ const receiver_id = defineModel('receiverId');
110
+ const listConversations = computed(() => {
111
+ if (activeTabs.value == TAB_VALUE.ALL)
112
+ return listConversationsAll.value;
113
+ return listConversationsUnknown.value;
114
+ });
115
+ const listConversationsUnknownUnread = computed(() => {
116
+ return (listConversationsUnknown.value.reduce((total, cur) => total + (cur?.unread_count ?? 0), 0) ?? 0);
117
+ });
118
+ const listConversationsAllUnread = computed(() => {
119
+ return listConversationsAll.value.reduce((total, cur) => total + (cur?.unread_count ?? 0), 0) ?? 0;
120
+ });
121
+ const keyword = ref('');
122
+ const activeTabs = ref(TAB_VALUE.ALL);
123
+ const scrollEventRef = ref(null);
124
+ const isLoadingSearch = ref(false);
125
+ const getData = async (data, option) => {
126
+ try {
127
+ const tab_value = option?.tab ?? activeTabs.value;
128
+ if (!option?.hideLoading)
129
+ isLoadingSearch.value = true;
130
+ if (option?.reset && !data?.search) {
131
+ let cache = false;
132
+ if (tab_value == TAB_VALUE.ALL) {
133
+ cache = getDataCacheAll();
134
+ }
135
+ else if (tab_value == TAB_VALUE.UNKNOWN) {
136
+ cache = getDataCacheUnknown();
137
+ }
138
+ if (cache)
139
+ isLoadingSearch.value = false;
140
+ }
141
+ if (tab_value == TAB_VALUE.ALL) {
142
+ await getDataAll(data, option);
143
+ }
144
+ else if (tab_value == TAB_VALUE.UNKNOWN) {
145
+ await getDataUnknown(data, option);
146
+ }
147
+ if (!option?.hideCheckHasReceiveId) {
148
+ checkHasReceiveId();
149
+ }
150
+ if (option?.reset) {
151
+ getAllList(tab_value);
152
+ }
153
+ }
154
+ catch (error) {
155
+ console.error(error);
156
+ }
157
+ finally {
158
+ isLoadingSearch.value = false;
159
+ }
160
+ };
161
+ const handleMqttQueue = (topic, data) => {
162
+ queue.add(() => mqttMessageHandler(topic, data));
163
+ };
164
+ const mqttMessageHandler = async (topic, data) => {
165
+ const subParts = TOPIC_CUSTOMER_RELOAD.split('/');
166
+ const topicParts = topic.split('/');
167
+ const idIndex = subParts.findIndex((p) => p === '+');
168
+ const id = topicParts[idIndex];
169
+ const customer = await getDetailReceiver(id);
170
+ emit('reloadReceiver', customer);
171
+ await nextTick();
172
+ await sleep(500);
173
+ const isAllTab = customer.is_known == 1;
174
+ const correctList = isAllTab ? listConversationsAll.value : listConversationsUnknown.value;
175
+ const wrongList = isAllTab ? listConversationsUnknown.value : listConversationsAll.value;
176
+ const updatePayload = {
177
+ username: customer.username,
178
+ phone: customer.phone,
179
+ avatar: customer.avatar,
180
+ color: customer.color
181
+ };
182
+ const correctIndex = correctList.findIndex((conversation) => conversation.receiver_id === customer.id);
183
+ if (correctIndex > -1) {
184
+ Object.assign(correctList[correctIndex], updatePayload);
185
+ }
186
+ const wrongIndex = wrongList.findIndex((c) => c.receiver_id === customer.id);
187
+ // const hasChatBox = correctList.findIndex((item: any) => item.id === digibotId)
188
+ if (wrongIndex > -1) {
189
+ // if(!isAllTab) {
190
+ // wrongList.splice(wrongIndex, 1)
191
+ // }
192
+ const conversation = wrongList[wrongIndex];
193
+ wrongList.splice(wrongIndex, 1);
194
+ const data_format = {
195
+ ...conversation,
196
+ ...updatePayload
197
+ };
198
+ if (correctIndex == -1) {
199
+ if (isAllTab) {
200
+ correctList.splice(1, 0, data_format);
201
+ }
202
+ else {
203
+ correctList.unshift(data_format);
204
+ }
205
+ }
206
+ }
207
+ if (wrongIndex == -1 && correctIndex == -1) {
208
+ const conversation = {
209
+ id: -99,
210
+ last_message: '',
211
+ last_message_time: '',
212
+ unread_count: 0,
213
+ created_at: '',
214
+ updated_at: '',
215
+ receiver_id: Number(customer?.id) ?? 0,
216
+ is_known: customer.is_known,
217
+ status: 1,
218
+ ...updatePayload
219
+ };
220
+ if (isAllTab) {
221
+ correctList.splice(1, 0, conversation);
222
+ }
223
+ else {
224
+ correctList.unshift(conversation);
225
+ }
226
+ }
227
+ };
228
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
229
+ const getAllList = async (tab_value) => {
230
+ if (tab_value == TAB_VALUE.ALL) {
231
+ while (paramsAll.value.page < pageCountAll.value && !scrollEventRef.value?.canScroll()) {
232
+ let page = paramsAll.value.page + 1;
233
+ await getData({ page }, { tab: tab_value });
234
+ }
235
+ }
236
+ else if (tab_value == TAB_VALUE.UNKNOWN) {
237
+ while (paramsUnknown.value.page < pageCountUnknown.value &&
238
+ !scrollEventRef.value?.canScroll()) {
239
+ let page = paramsUnknown.value.page + 1;
240
+ await getData({ page }, { tab: tab_value });
241
+ }
242
+ }
243
+ };
244
+ const checkHasReceiveId = (need_select) => {
245
+ const hasReceiveId = listConversations.value?.find((e) => e.receiver_id === receiver_id.value && receiver_id.value);
246
+ if (props.responsive != 'mobile') {
247
+ if (!hasReceiveId) {
248
+ if (listConversations.value?.length) {
249
+ emit('selectReceiver', listConversations.value[0]);
250
+ }
251
+ }
252
+ else if (need_select) {
253
+ emit('selectReceiver', null);
254
+ emit('selectReceiver', hasReceiveId);
255
+ }
256
+ }
257
+ };
258
+ const handleSearch = (value) => {
259
+ // listConversations.value = []
260
+ getData({ search: value }, { reset: true });
261
+ };
262
+ const handleScroll = useDebounce(async () => {
263
+ if (activeTabs.value == TAB_VALUE.ALL) {
264
+ if (paramsAll.value.page >= pageCountAll.value) {
265
+ scrollEventRef.value?.hideLoading();
266
+ return;
267
+ }
268
+ let page = paramsAll.value.page + 1;
269
+ await getData({ page });
270
+ scrollEventRef.value?.hideLoading();
271
+ }
272
+ else if (activeTabs.value == TAB_VALUE.UNKNOWN) {
273
+ if (paramsUnknown.value.page >= pageCountUnknown.value) {
274
+ scrollEventRef.value?.hideLoading();
275
+ return;
276
+ }
277
+ let page = paramsUnknown.value.page + 1;
278
+ await getData({ page });
279
+ scrollEventRef.value?.hideLoading();
280
+ }
281
+ }, 200);
282
+ const selectUser = (user) => {
283
+ handleReadMessage(user.receiver_id);
284
+ emit('selectReceiver', user);
285
+ };
286
+ const handleReadMessage = (receiver_id_request) => {
287
+ const id = receiver_id_request ?? receiver_id.value;
288
+ if (activeTabs.value == TAB_VALUE.ALL) {
289
+ handleReadMessageAll(id);
290
+ }
291
+ else if (activeTabs.value == TAB_VALUE.UNKNOWN) {
292
+ handleReadMessageUnknown(id);
293
+ }
294
+ };
295
+ const getTimeFromNow = (data) => {
296
+ if (data && dayjs(data).isValid()) {
297
+ return dayjs.tz(data, TIME_ZONE_UTC).local().fromNow();
298
+ }
299
+ return data ?? '';
300
+ };
301
+ const handleTabChange = async (tab, option) => {
302
+ if (tab == TAB_VALUE.ALL && !listConversationsAll.value?.length) {
303
+ await getData({}, { reset: true, tab, ...(option ?? {}) });
304
+ }
305
+ else if (tab == TAB_VALUE.UNKNOWN && !listConversationsUnknown.value?.length) {
306
+ await getData({}, { reset: true, tab, ...(option ?? {}) });
307
+ }
308
+ if (option?.isResponsiveChange) {
309
+ checkHasReceiveId(true);
310
+ }
311
+ };
312
+ const getCurrentConversation = () => {
313
+ return listConversations.value?.find((user) => user.receiver_id == receiver_id.value);
314
+ };
315
+ const initData = async (option) => {
316
+ if (option?.is_known || option?.is_known == '0') {
317
+ activeTabs.value = Number(option?.is_known ?? 1);
318
+ }
319
+ let hideCheckHasReceiveId = false;
320
+ if (option?.conversation_id) {
321
+ const conversation = await getConversationView(option?.conversation_id);
322
+ if (conversation.receiver_id) {
323
+ hideCheckHasReceiveId = true;
324
+ selectUser(conversation);
325
+ }
326
+ }
327
+ handleTabChange(activeTabs.value, {
328
+ hideCheckHasReceiveId: hideCheckHasReceiveId,
329
+ isResponsiveChange: option?.isResponsiveChange
330
+ });
331
+ handleTabChange(activeTabs.value == 1 ? 0 : 1, {
332
+ hideCheckHasReceiveId: hideCheckHasReceiveId,
333
+ hideLoading: true,
334
+ isResponsiveChange: option?.isResponsiveChange
335
+ });
336
+ };
337
+ const goToConversationRequest = async (conversation) => {
338
+ if (conversation?.is_known || conversation?.is_known == 0) {
339
+ activeTabs.value = Number(conversation?.is_known ?? 1);
340
+ }
341
+ if (activeTabs.value == TAB_VALUE.ALL) {
342
+ insertConversationAll({ data: conversation, is_full_conversation: true });
343
+ }
344
+ else {
345
+ insertConversationUnknown({ data: conversation, is_full_conversation: true });
346
+ }
347
+ selectUser(conversation);
348
+ };
349
+ const __VLS_exposed = {
350
+ handleReadMessage,
351
+ listConversationsAll,
352
+ listConversationsUnknown,
353
+ getCurrentConversation,
354
+ initData,
355
+ handleTabChange,
356
+ goToConversationRequest
357
+ };
358
+ defineExpose(__VLS_exposed);
359
+ debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
360
+ const __VLS_modelEmit = defineEmits();
361
+ const __VLS_defaults = {};
362
+ const __VLS_ctx = {
363
+ ...{},
364
+ ...{},
365
+ ...{},
366
+ ...{},
367
+ ...{},
368
+ };
369
+ let __VLS_elements;
370
+ let __VLS_components;
371
+ let __VLS_directives;
372
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
373
+ ...{ class: "h-full flex flex-col bg-white pt-6" },
374
+ });
375
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
376
+ ...{ class: "shrink-0 w-full px-6 flex gap-2 mb-4" },
377
+ });
378
+ /** @type {[typeof InputSearch, ]} */ ;
379
+ // @ts-ignore
380
+ const __VLS_0 = __VLS_asFunctionalComponent(InputSearch, new InputSearch({
381
+ ...{ 'onSearch': {} },
382
+ ...{ class: "h-11 grow" },
383
+ responsive: (__VLS_ctx.responsive),
384
+ modelValue: (__VLS_ctx.keyword),
385
+ }));
386
+ const __VLS_1 = __VLS_0({
387
+ ...{ 'onSearch': {} },
388
+ ...{ class: "h-11 grow" },
389
+ responsive: (__VLS_ctx.responsive),
390
+ modelValue: (__VLS_ctx.keyword),
391
+ }, ...__VLS_functionalComponentArgsRest(__VLS_0));
392
+ let __VLS_3;
393
+ let __VLS_4;
394
+ const __VLS_5 = ({ search: {} },
395
+ { onSearch: (__VLS_ctx.handleSearch) });
396
+ // @ts-ignore
397
+ [responsive, keyword, handleSearch,];
398
+ var __VLS_2;
399
+ if (__VLS_ctx.responsive != 'window') {
400
+ // @ts-ignore
401
+ [responsive,];
402
+ __VLS_asFunctionalElement(__VLS_elements.button, __VLS_elements.button)({
403
+ ...{ onClick: (...[$event]) => {
404
+ if (!(__VLS_ctx.responsive != 'window'))
405
+ return;
406
+ __VLS_ctx.emit('openPhoneNumpad');
407
+ // @ts-ignore
408
+ [emit,];
409
+ } },
410
+ ...{ class: "shrink-0 h-11 w-11 rounded-full flex-center bg-[#C7DEFF]" },
411
+ });
412
+ /** @type {[typeof IconPlus, ]} */ ;
413
+ // @ts-ignore
414
+ const __VLS_7 = __VLS_asFunctionalComponent(IconPlus, new IconPlus({
415
+ ...{ class: "text-[#004AB3]" },
416
+ }));
417
+ const __VLS_8 = __VLS_7({
418
+ ...{ class: "text-[#004AB3]" },
419
+ }, ...__VLS_functionalComponentArgsRest(__VLS_7));
420
+ }
421
+ if (__VLS_ctx.dataProfile?.user_type == 'tenant') {
422
+ // @ts-ignore
423
+ [dataProfile,];
424
+ /** @type {[typeof TabBase2, ]} */ ;
425
+ // @ts-ignore
426
+ const __VLS_11 = __VLS_asFunctionalComponent(TabBase2, new TabBase2({
427
+ ...{ 'onChange': {} },
428
+ ...{ class: "shrink-0 px-6 mb-4" },
429
+ tabs: (__VLS_ctx.tabs),
430
+ active: (__VLS_ctx.activeTabs),
431
+ }));
432
+ const __VLS_12 = __VLS_11({
433
+ ...{ 'onChange': {} },
434
+ ...{ class: "shrink-0 px-6 mb-4" },
435
+ tabs: (__VLS_ctx.tabs),
436
+ active: (__VLS_ctx.activeTabs),
437
+ }, ...__VLS_functionalComponentArgsRest(__VLS_11));
438
+ let __VLS_14;
439
+ let __VLS_15;
440
+ const __VLS_16 = ({ change: {} },
441
+ { onChange: (__VLS_ctx.handleTabChange) });
442
+ // @ts-ignore
443
+ [tabs, activeTabs, handleTabChange,];
444
+ var __VLS_13;
445
+ }
446
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
447
+ ...{ class: "grow relative overflow-hidden" },
448
+ });
449
+ /** @type {[typeof ScrollEvent, typeof ScrollEvent, ]} */ ;
450
+ // @ts-ignore
451
+ const __VLS_18 = __VLS_asFunctionalComponent(ScrollEvent, new ScrollEvent({
452
+ ...{ 'onGetDataBottom': {} },
453
+ ref: "scrollEventRef",
454
+ ...{ class: "h-full overflow-auto" },
455
+ disabled: (__VLS_ctx.activeTabs == __VLS_ctx.TAB_VALUE.ALL
456
+ ? __VLS_ctx.paramsAll.page >= __VLS_ctx.pageCountAll
457
+ : __VLS_ctx.paramsUnknown.page >= __VLS_ctx.pageCountUnknown),
458
+ bottom: true,
459
+ }));
460
+ const __VLS_19 = __VLS_18({
461
+ ...{ 'onGetDataBottom': {} },
462
+ ref: "scrollEventRef",
463
+ ...{ class: "h-full overflow-auto" },
464
+ disabled: (__VLS_ctx.activeTabs == __VLS_ctx.TAB_VALUE.ALL
465
+ ? __VLS_ctx.paramsAll.page >= __VLS_ctx.pageCountAll
466
+ : __VLS_ctx.paramsUnknown.page >= __VLS_ctx.pageCountUnknown),
467
+ bottom: true,
468
+ }, ...__VLS_functionalComponentArgsRest(__VLS_18));
469
+ let __VLS_21;
470
+ let __VLS_22;
471
+ const __VLS_23 = ({ getDataBottom: {} },
472
+ { onGetDataBottom: (__VLS_ctx.handleScroll) });
473
+ /** @type {typeof __VLS_ctx.scrollEventRef} */ ;
474
+ var __VLS_24 = {};
475
+ const { default: __VLS_26 } = __VLS_20.slots;
476
+ // @ts-ignore
477
+ [activeTabs, TAB_VALUE, paramsAll, pageCountAll, paramsUnknown, pageCountUnknown, handleScroll, scrollEventRef,];
478
+ for (const [user] of __VLS_getVForSourceType((__VLS_ctx.listConversations))) {
479
+ // @ts-ignore
480
+ [listConversations,];
481
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
482
+ ...{ onClick: (...[$event]) => {
483
+ __VLS_ctx.selectUser(user);
484
+ // @ts-ignore
485
+ [selectUser,];
486
+ } },
487
+ ...{ class: "" },
488
+ key: (user.id),
489
+ });
490
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
491
+ ...{ class: "w-full overflow-hidden flex items-center hover:bg-[#EDF5FF] cursor-pointer px-6 py-2" },
492
+ ...{ class: ({ 'bg-[#EDF5FF]': __VLS_ctx.receiver_id == user.receiver_id && __VLS_ctx.responsive != 'mobile' }) },
493
+ });
494
+ // @ts-ignore
495
+ [responsive, receiver_id,];
496
+ /** @type {[typeof Avatar, ]} */ ;
497
+ // @ts-ignore
498
+ const __VLS_27 = __VLS_asFunctionalComponent(Avatar, new Avatar({
499
+ id: (user.id),
500
+ ...{ class: "shrink-0" },
501
+ ...{ class: ({ 'animal-icon': user?.id === __VLS_ctx.digibotId }) },
502
+ src: (user.avatar ?? ''),
503
+ color: (user.color),
504
+ name: (user.username ?? ''),
505
+ }));
506
+ const __VLS_28 = __VLS_27({
507
+ id: (user.id),
508
+ ...{ class: "shrink-0" },
509
+ ...{ class: ({ 'animal-icon': user?.id === __VLS_ctx.digibotId }) },
510
+ src: (user.avatar ?? ''),
511
+ color: (user.color),
512
+ name: (user.username ?? ''),
513
+ }, ...__VLS_functionalComponentArgsRest(__VLS_27));
514
+ // @ts-ignore
515
+ [digibotId,];
516
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
517
+ ...{ class: "grow ml-3 overflow-hidden" },
518
+ });
519
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
520
+ ...{ class: "flex justify-between items-center gap-4" },
521
+ });
522
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
523
+ ...{ class: "truncate text-left" },
524
+ });
525
+ __VLS_asFunctionalElement(__VLS_elements.div, __VLS_elements.div)({
526
+ ...{ class: "flex items-center" },
527
+ });
528
+ __VLS_asFunctionalElement(__VLS_elements.p, __VLS_elements.p)({
529
+ ...{ class: "truncate font-semibold" },
530
+ });
531
+ (user.username || __VLS_ctx.phoneNumberFormat(user.phone) || 'n/a');
532
+ // @ts-ignore
533
+ [phoneNumberFormat,];
534
+ if (user.id == __VLS_ctx.digibotId) {
535
+ // @ts-ignore
536
+ [digibotId,];
537
+ /** @type {[typeof IconAiCheck, ]} */ ;
538
+ // @ts-ignore
539
+ const __VLS_31 = __VLS_asFunctionalComponent(IconAiCheck, new IconAiCheck({
540
+ ...{ class: "ml-2" },
541
+ }));
542
+ const __VLS_32 = __VLS_31({
543
+ ...{ class: "ml-2" },
544
+ }, ...__VLS_functionalComponentArgsRest(__VLS_31));
545
+ }
546
+ if (user.unread_count) {
547
+ __VLS_asFunctionalElement(__VLS_elements.span, __VLS_elements.span)({
548
+ ...{ class: "shrink-0 ml-2 bg-[#E60000] text-white text-xs font-bold px-2 py-[1px] flex-center rounded-full" },
549
+ });
550
+ (user.unread_count);
551
+ }
552
+ __VLS_asFunctionalElement(__VLS_elements.p, __VLS_elements.p)({
553
+ ...{ class: "text-sm truncate" },
554
+ ...{ class: ({
555
+ 'font-semibold': user.unread_count,
556
+ 'text-chat-gray-3': !user.unread_count
557
+ }) },
558
+ });
559
+ (user.last_message ?? 'No messages');
560
+ if (user.id != __VLS_ctx.digibotId) {
561
+ // @ts-ignore
562
+ [digibotId,];
563
+ __VLS_asFunctionalElement(__VLS_elements.span, __VLS_elements.span)({
564
+ ...{ class: "shrink-0 text-sm text-right text-chat-gray-4 w-[80px] md:w-[130px]" },
565
+ });
566
+ (__VLS_ctx.getTimeFromNow(user.last_message_time ?? ''));
567
+ // @ts-ignore
568
+ [getTimeFromNow,];
569
+ }
570
+ }
571
+ var __VLS_20;
572
+ /** @type {__VLS_StyleScopedClasses['']} */ ;
573
+ /** @type {__VLS_StyleScopedClasses['h-full']} */ ;
574
+ /** @type {__VLS_StyleScopedClasses['flex']} */ ;
575
+ /** @type {__VLS_StyleScopedClasses['flex-col']} */ ;
576
+ /** @type {__VLS_StyleScopedClasses['bg-white']} */ ;
577
+ /** @type {__VLS_StyleScopedClasses['pt-6']} */ ;
578
+ /** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
579
+ /** @type {__VLS_StyleScopedClasses['w-full']} */ ;
580
+ /** @type {__VLS_StyleScopedClasses['px-6']} */ ;
581
+ /** @type {__VLS_StyleScopedClasses['flex']} */ ;
582
+ /** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
583
+ /** @type {__VLS_StyleScopedClasses['mb-4']} */ ;
584
+ /** @type {__VLS_StyleScopedClasses['h-11']} */ ;
585
+ /** @type {__VLS_StyleScopedClasses['grow']} */ ;
586
+ /** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
587
+ /** @type {__VLS_StyleScopedClasses['h-11']} */ ;
588
+ /** @type {__VLS_StyleScopedClasses['w-11']} */ ;
589
+ /** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
590
+ /** @type {__VLS_StyleScopedClasses['flex-center']} */ ;
591
+ /** @type {__VLS_StyleScopedClasses['bg-[#C7DEFF]']} */ ;
592
+ /** @type {__VLS_StyleScopedClasses['text-[#004AB3]']} */ ;
593
+ /** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
594
+ /** @type {__VLS_StyleScopedClasses['px-6']} */ ;
595
+ /** @type {__VLS_StyleScopedClasses['mb-4']} */ ;
596
+ /** @type {__VLS_StyleScopedClasses['grow']} */ ;
597
+ /** @type {__VLS_StyleScopedClasses['relative']} */ ;
598
+ /** @type {__VLS_StyleScopedClasses['overflow-hidden']} */ ;
599
+ /** @type {__VLS_StyleScopedClasses['h-full']} */ ;
600
+ /** @type {__VLS_StyleScopedClasses['overflow-auto']} */ ;
601
+ /** @type {__VLS_StyleScopedClasses['w-full']} */ ;
602
+ /** @type {__VLS_StyleScopedClasses['overflow-hidden']} */ ;
603
+ /** @type {__VLS_StyleScopedClasses['flex']} */ ;
604
+ /** @type {__VLS_StyleScopedClasses['items-center']} */ ;
605
+ /** @type {__VLS_StyleScopedClasses['hover:bg-[#EDF5FF]']} */ ;
606
+ /** @type {__VLS_StyleScopedClasses['cursor-pointer']} */ ;
607
+ /** @type {__VLS_StyleScopedClasses['px-6']} */ ;
608
+ /** @type {__VLS_StyleScopedClasses['py-2']} */ ;
609
+ /** @type {__VLS_StyleScopedClasses['bg-[#EDF5FF]']} */ ;
610
+ /** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
611
+ /** @type {__VLS_StyleScopedClasses['animal-icon']} */ ;
612
+ /** @type {__VLS_StyleScopedClasses['grow']} */ ;
613
+ /** @type {__VLS_StyleScopedClasses['ml-3']} */ ;
614
+ /** @type {__VLS_StyleScopedClasses['overflow-hidden']} */ ;
615
+ /** @type {__VLS_StyleScopedClasses['flex']} */ ;
616
+ /** @type {__VLS_StyleScopedClasses['justify-between']} */ ;
617
+ /** @type {__VLS_StyleScopedClasses['items-center']} */ ;
618
+ /** @type {__VLS_StyleScopedClasses['gap-4']} */ ;
619
+ /** @type {__VLS_StyleScopedClasses['truncate']} */ ;
620
+ /** @type {__VLS_StyleScopedClasses['text-left']} */ ;
621
+ /** @type {__VLS_StyleScopedClasses['flex']} */ ;
622
+ /** @type {__VLS_StyleScopedClasses['items-center']} */ ;
623
+ /** @type {__VLS_StyleScopedClasses['truncate']} */ ;
624
+ /** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
625
+ /** @type {__VLS_StyleScopedClasses['ml-2']} */ ;
626
+ /** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
627
+ /** @type {__VLS_StyleScopedClasses['ml-2']} */ ;
628
+ /** @type {__VLS_StyleScopedClasses['bg-[#E60000]']} */ ;
629
+ /** @type {__VLS_StyleScopedClasses['text-white']} */ ;
630
+ /** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
631
+ /** @type {__VLS_StyleScopedClasses['font-bold']} */ ;
632
+ /** @type {__VLS_StyleScopedClasses['px-2']} */ ;
633
+ /** @type {__VLS_StyleScopedClasses['py-[1px]']} */ ;
634
+ /** @type {__VLS_StyleScopedClasses['flex-center']} */ ;
635
+ /** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
636
+ /** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
637
+ /** @type {__VLS_StyleScopedClasses['truncate']} */ ;
638
+ /** @type {__VLS_StyleScopedClasses['font-semibold']} */ ;
639
+ /** @type {__VLS_StyleScopedClasses['text-chat-gray-3']} */ ;
640
+ /** @type {__VLS_StyleScopedClasses['shrink-0']} */ ;
641
+ /** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
642
+ /** @type {__VLS_StyleScopedClasses['text-right']} */ ;
643
+ /** @type {__VLS_StyleScopedClasses['text-chat-gray-4']} */ ;
644
+ /** @type {__VLS_StyleScopedClasses['w-[80px]']} */ ;
645
+ /** @type {__VLS_StyleScopedClasses['md:w-[130px]']} */ ;
646
+ // @ts-ignore
647
+ var __VLS_25 = __VLS_24;
648
+ const __VLS_export = (await import('vue')).defineComponent({
649
+ setup: () => (__VLS_exposed),
650
+ __typeEmits: {},
651
+ __typeProps: {},
652
+ props: {},
653
+ });
654
+ export default {};
@@ -0,0 +1,21 @@
1
+ import type { IResMessage, IResUser } from '../../../types/message';
2
+ import type { PAGE_RESPONSIVE } from '../../../types/chat/global';
3
+ type Props = {
4
+ data: IResUser | null;
5
+ message: IResMessage[];
6
+ responsive: PAGE_RESPONSIVE;
7
+ showNewCustomer: boolean;
8
+ isLoading: boolean;
9
+ };
10
+ declare const _default: import("vue").DefineComponent<Props, {
11
+ scrollBottom: () => void;
12
+ hideScrollEvent: () => void;
13
+ fixedScroll: () => void;
14
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
15
+ scrollTop: () => any;
16
+ callBack: () => any;
17
+ }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
18
+ onScrollTop?: (() => any) | undefined;
19
+ onCallBack?: (() => any) | undefined;
20
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
+ export default _default;