@tencentcloud/roomkit-electron-vue3 2.4.2 → 2.5.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 (430) hide show
  1. package/es/components/Chat/ChatEditor/useChatEditor.mjs +1 -1
  2. package/es/components/Chat/MessageList/index.vue.mjs +1 -1
  3. package/es/components/Chat/MessageList/index.vue2.mjs +5 -1
  4. package/es/components/Chat/MessageList/useMessageListHook.mjs +4 -3
  5. package/es/components/ManageMember/MemberControl/index.vue.mjs +1 -1
  6. package/es/components/ManageMember/MemberControl/index.vue2.mjs +36 -19
  7. package/es/components/ManageMember/MemberControl/useMemberControlHooks.d.ts +6 -1
  8. package/es/components/ManageMember/MemberControl/useMemberControlHooks.mjs +113 -17
  9. package/es/components/ManageMember/MemberItem/useMemberItemHooks.d.ts +1 -0
  10. package/es/components/ManageMember/MemberItem/useMemberItemHooks.mjs +8 -6
  11. package/es/components/ManageMember/MemberItemCommon/MemberInfo.vue.mjs +1 -1
  12. package/es/components/ManageMember/MemberItemCommon/MemberInfo.vue2.mjs +7 -3
  13. package/es/components/ManageMember/index.vue.mjs +1 -1
  14. package/es/components/ManageMember/index.vue2.mjs +58 -7
  15. package/es/components/ManageMember/useIndexHooks.mjs +63 -14
  16. package/es/components/RoomContent/StreamContainer/index.vue.mjs +1 -1
  17. package/es/components/RoomContent/StreamContainer/index.vue2.mjs +10 -9
  18. package/es/components/RoomContent/StreamContainer/useStreamContainerHooks.d.ts +8 -0
  19. package/es/components/RoomContent/StreamContainer/useStreamContainerHooks.mjs +73 -29
  20. package/es/components/RoomContent/StreamRegion/index.vue.d.ts +5 -1
  21. package/es/components/RoomContent/StreamRegion/index.vue.mjs +1 -1
  22. package/es/components/RoomContent/StreamRegion/index.vue2.mjs +29 -5
  23. package/es/components/RoomFooter/ApplyControl/MasterApplyControl/index.vue.mjs +1 -1
  24. package/es/components/RoomFooter/ApplyControl/MasterApplyControl/index.vue2.mjs +10 -4
  25. package/es/components/RoomFooter/ApplyControl/MemberApplyControl.vue2.mjs +2 -2
  26. package/es/components/RoomFooter/AudioControl.vue2.mjs +2 -2
  27. package/es/components/RoomFooter/EndControl/index.vue.mjs +1 -1
  28. package/es/components/RoomFooter/EndControl/index.vue2.mjs +1 -1
  29. package/es/components/RoomFooter/EndControl/useEndControlHooks.mjs +16 -4
  30. package/es/components/RoomFooter/ScreenShareControl/Index.vue.mjs +1 -1
  31. package/es/components/RoomFooter/ScreenShareControl/Index.vue2.mjs +11 -3
  32. package/es/components/RoomFooter/VideoControl.vue.mjs +1 -1
  33. package/es/components/RoomFooter/VideoControl.vue2.mjs +8 -14
  34. package/es/components/RoomHeader/RoomInfo/index.vue2.mjs +2 -2
  35. package/es/components/RoomHeader/UserInfo/index.vue.d.ts +3 -11
  36. package/es/components/RoomHeader/UserInfo/index.vue.mjs +1 -1
  37. package/es/components/RoomHeader/UserInfo/index.vue2.mjs +9 -92
  38. package/es/components/RoomHeader/UserInfo/useUserInfoHooks.d.ts +2 -8
  39. package/es/components/RoomHeader/UserInfo/useUserInfoHooks.mjs +1 -18
  40. package/es/components/RoomHeader/index/NetworkInfo.vue2.mjs +2 -2
  41. package/es/components/RoomHome/RoomControl/index.vue.d.ts +10 -0
  42. package/es/components/RoomHome/RoomControl/index.vue.mjs +1 -1
  43. package/es/components/RoomHome/RoomControl/index.vue2.mjs +153 -120
  44. package/es/components/RoomInvite/index.vue2.mjs +2 -2
  45. package/es/components/RoomMore/index.vue2.mjs +2 -2
  46. package/es/components/RoomSidebar/useSideBarHooks.mjs +3 -2
  47. package/es/components/ScheduleConference/Contacts.vue.d.ts +22 -0
  48. package/es/components/ScheduleConference/Contacts.vue.mjs +7 -0
  49. package/es/components/ScheduleConference/Contacts.vue2.mjs +212 -0
  50. package/es/components/ScheduleConference/DurationTimePicker.vue.d.ts +18 -0
  51. package/es/components/ScheduleConference/DurationTimePicker.vue.mjs +67 -0
  52. package/es/components/ScheduleConference/DurationTimePicker.vue2.mjs +4 -0
  53. package/es/components/ScheduleConference/ScheduleConferencePanel.vue.d.ts +22 -0
  54. package/es/components/ScheduleConference/ScheduleConferencePanel.vue.mjs +7 -0
  55. package/es/components/ScheduleConference/ScheduleConferencePanel.vue2.mjs +613 -0
  56. package/es/components/ScheduleConference/ScheduleConferencePanel.vue3.mjs +1 -0
  57. package/es/components/ScheduleConference/ScheduleRoomControl.vue.d.ts +29 -0
  58. package/es/components/ScheduleConference/ScheduleRoomControl.vue.mjs +7 -0
  59. package/es/components/ScheduleConference/ScheduleRoomControl.vue2.mjs +464 -0
  60. package/es/components/ScheduleConference/ScheduleRoomControl.vue3.mjs +1 -0
  61. package/es/components/{common/base/Input.vue.d.ts → ScheduleConference/ScheduleRoomList.vue.d.ts} +11 -22
  62. package/es/components/ScheduleConference/ScheduleRoomList.vue.mjs +7 -0
  63. package/es/components/ScheduleConference/ScheduleRoomList.vue2.mjs +219 -0
  64. package/es/components/ScheduleConference/ScheduleRoomList.vue3.mjs +1 -0
  65. package/es/components/ScheduleConference/ShareLink.vue.d.ts +24 -0
  66. package/es/components/ScheduleConference/ShareLink.vue.mjs +7 -0
  67. package/es/components/ScheduleConference/ShareLink.vue2.mjs +113 -0
  68. package/es/components/ScheduleConference/ShareLink.vue3.mjs +1 -0
  69. package/es/components/ScheduleConference/TimezonePicker.vue.d.ts +18 -0
  70. package/es/components/ScheduleConference/TimezonePicker.vue.mjs +84 -0
  71. package/es/components/ScheduleConference/TimezonePicker.vue2.mjs +4 -0
  72. package/es/components/common/Avatar.vue.mjs +2 -2
  73. package/es/components/common/DeviceSelect.vue.mjs +1 -1
  74. package/es/components/common/DeviceSelect.vue2.mjs +58 -19
  75. package/es/components/common/Logo.vue.mjs +1 -1
  76. package/es/components/common/Logo.vue2.mjs +3 -3
  77. package/es/components/common/VideoProfile.vue2.mjs +2 -2
  78. package/es/components/common/base/Badge.vue.d.ts +1 -1
  79. package/es/components/common/base/Button.vue.d.ts +2 -2
  80. package/es/components/common/base/Checkbox.vue.d.ts +4 -2
  81. package/es/components/common/base/Checkbox.vue.mjs +2 -2
  82. package/es/components/common/base/Checkbox.vue2.mjs +12 -5
  83. package/es/components/common/base/Datepicker/Datepicker.vue.d.ts +18 -0
  84. package/es/components/common/base/Datepicker/Datepicker.vue.mjs +7 -0
  85. package/es/components/common/base/Datepicker/Datepicker.vue2.mjs +167 -0
  86. package/es/components/common/base/Datepicker/Datepicker.vue3.mjs +1 -0
  87. package/es/components/common/base/Datepicker/Timepicker.vue.d.ts +18 -0
  88. package/es/components/common/base/Datepicker/Timepicker.vue.mjs +66 -0
  89. package/es/components/common/base/Datepicker/Timepicker.vue2.mjs +4 -0
  90. package/es/components/common/base/Dialog/index.vue.d.ts +8 -4
  91. package/es/components/common/base/Dialog/index.vue.mjs +1 -1
  92. package/es/components/common/base/Dialog/index.vue2.mjs +17 -9
  93. package/es/components/common/base/Drawer.vue.d.ts +1 -1
  94. package/es/components/common/base/IconButton.vue.d.ts +2 -2
  95. package/es/components/common/base/Input/index.vue.d.ts +77 -0
  96. package/es/components/common/base/Input/index.vue.mjs +7 -0
  97. package/es/components/common/base/Input/index.vue2.mjs +140 -0
  98. package/es/components/common/base/Input/index.vue3.mjs +1 -0
  99. package/es/components/common/base/Message/Instance.mjs +1 -1
  100. package/es/components/common/base/Message/Message.vue.d.ts +4 -4
  101. package/es/components/common/base/MessageBox/index.d.ts +3 -2
  102. package/es/components/common/base/MessageBox/index.mjs +2 -1
  103. package/es/components/common/base/MessageBox/index.vue.d.ts +6 -1
  104. package/es/components/common/base/MessageBox/index.vue.mjs +1 -1
  105. package/es/components/common/base/MessageBox/index.vue2.mjs +60 -10
  106. package/es/components/common/base/Notification/index.vue.d.ts +2 -2
  107. package/es/components/common/base/Option.vue.d.ts +11 -1
  108. package/es/components/common/base/Option.vue.mjs +1 -1
  109. package/es/components/common/base/Option.vue2.mjs +16 -6
  110. package/es/components/common/base/Select.vue.d.ts +5 -1
  111. package/es/components/common/base/Select.vue.mjs +1 -1
  112. package/es/components/common/base/Select.vue2.mjs +12 -11
  113. package/es/components/common/base/index.d.ts +1 -1
  114. package/es/components/common/icons/AllMembersShareScreenIcon.vue.d.ts +2 -0
  115. package/es/components/common/icons/AllMembersShareScreenIcon.vue.mjs +22 -0
  116. package/es/components/common/icons/CalendarIcon.vue.d.ts +2 -0
  117. package/es/components/common/icons/CalendarIcon.vue.mjs +24 -0
  118. package/es/components/common/icons/CopyIcon.vue.mjs +2 -2
  119. package/es/components/common/icons/EditNameCardIcon.vue.d.ts +2 -0
  120. package/es/components/common/icons/EditNameCardIcon.vue.mjs +21 -0
  121. package/es/components/common/icons/EllipsisIcon.vue.d.ts +2 -0
  122. package/es/components/common/icons/EllipsisIcon.vue.mjs +34 -0
  123. package/es/components/common/icons/HostShareScreenIcon.vue.d.ts +2 -0
  124. package/es/components/common/icons/HostShareScreenIcon.vue.mjs +22 -0
  125. package/es/components/common/icons/LinkIcon.vue.d.ts +2 -0
  126. package/es/components/common/icons/LinkIcon.vue.mjs +36 -0
  127. package/es/components/common/icons/LoadingScheduleIcon.vue.d.ts +2 -0
  128. package/es/components/common/icons/LoadingScheduleIcon.vue.mjs +24 -0
  129. package/es/components/common/icons/ScheduleAttendees.vue.d.ts +6 -0
  130. package/es/components/common/icons/ScheduleAttendees.vue.mjs +25 -0
  131. package/es/components/common/icons/ScheduleAttendees.vue2.mjs +4 -0
  132. package/es/components/common/icons/ScheduleRoomIcon.vue.d.ts +2 -0
  133. package/es/components/common/icons/ScheduleRoomIcon.vue.mjs +24 -0
  134. package/es/components/common/icons/SuccessIcon.vue.d.ts +2 -0
  135. package/es/components/common/icons/SuccessIcon.vue.mjs +32 -0
  136. package/es/components/common/icons/WarningIcon.vue.d.ts +2 -0
  137. package/es/components/common/icons/WarningIcon.vue.mjs +29 -0
  138. package/es/conference.d.ts +2 -0
  139. package/es/conference.mjs +3 -0
  140. package/es/conference.vue.mjs +1 -1
  141. package/es/conference.vue2.mjs +9 -4
  142. package/es/directives/vDblTouch.d.ts +10 -0
  143. package/es/directives/vTap.d.ts +1 -0
  144. package/es/directives/vTap.mjs +30 -3
  145. package/es/extension/chatExtension.mjs +3 -3
  146. package/es/hooks/useDeviceManager.mjs +3 -3
  147. package/es/hooks/useMasterApplyControl.mjs +5 -5
  148. package/es/hooks/useRoomEngine.mjs +4 -4
  149. package/es/index.d.ts +1 -0
  150. package/es/index.mjs +2383 -1545
  151. package/es/locales/en-US.d.ts +75 -0
  152. package/es/locales/en-US.mjs +78 -1
  153. package/es/locales/zh-CN.d.ts +79 -0
  154. package/es/locales/zh-CN.mjs +83 -2
  155. package/es/preConference.vue.d.ts +10 -0
  156. package/es/preConference.vue.mjs +1 -1
  157. package/es/preConference.vue2.mjs +89 -13
  158. package/es/services/function/errorHandler.d.ts +10 -0
  159. package/es/services/function/errorHandler.mjs +158 -0
  160. package/es/services/function/virtualBackground.mjs +4 -3
  161. package/es/services/index.d.ts +1 -0
  162. package/es/services/manager/roomActionManager.d.ts +1 -0
  163. package/es/services/manager/roomActionManager.mjs +10 -18
  164. package/es/services/manager/scheduleConferenceManager.d.ts +113 -0
  165. package/es/services/manager/scheduleConferenceManager.mjs +141 -0
  166. package/es/services/manager/userManager.d.ts +2 -0
  167. package/es/services/manager/userManager.mjs +7 -3
  168. package/es/services/roomService.d.ts +8 -0
  169. package/es/services/roomService.mjs +42 -16
  170. package/es/services/types.d.ts +8 -0
  171. package/es/services/types.mjs +2 -0
  172. package/es/stores/basic.mjs +9 -3
  173. package/es/stores/room.d.ts +2 -0
  174. package/es/stores/room.mjs +55 -24
  175. package/es/utils/adapter.mjs +39 -3
  176. package/es/utils/utils.d.ts +3 -0
  177. package/es/utils/utils.mjs +64 -0
  178. package/lib/components/Chat/ChatEditor/useChatEditor.js +1 -1
  179. package/lib/components/Chat/MessageList/index.vue.js +1 -1
  180. package/lib/components/Chat/MessageList/index.vue2.js +5 -1
  181. package/lib/components/Chat/MessageList/useMessageListHook.js +2 -1
  182. package/lib/components/ManageMember/MemberControl/index.vue.js +1 -1
  183. package/lib/components/ManageMember/MemberControl/index.vue2.js +35 -18
  184. package/lib/components/ManageMember/MemberControl/useMemberControlHooks.d.ts +6 -1
  185. package/lib/components/ManageMember/MemberControl/useMemberControlHooks.js +113 -17
  186. package/lib/components/ManageMember/MemberItem/useMemberItemHooks.d.ts +1 -0
  187. package/lib/components/ManageMember/MemberItem/useMemberItemHooks.js +8 -6
  188. package/lib/components/ManageMember/MemberItemCommon/MemberInfo.vue.js +1 -1
  189. package/lib/components/ManageMember/MemberItemCommon/MemberInfo.vue2.js +5 -1
  190. package/lib/components/ManageMember/index.vue.js +1 -1
  191. package/lib/components/ManageMember/index.vue2.js +57 -6
  192. package/lib/components/ManageMember/useIndexHooks.js +63 -14
  193. package/lib/components/RoomContent/StreamContainer/index.vue.js +1 -1
  194. package/lib/components/RoomContent/StreamContainer/index.vue2.js +10 -9
  195. package/lib/components/RoomContent/StreamContainer/useStreamContainerHooks.d.ts +8 -0
  196. package/lib/components/RoomContent/StreamContainer/useStreamContainerHooks.js +72 -28
  197. package/lib/components/RoomContent/StreamRegion/index.vue.d.ts +5 -1
  198. package/lib/components/RoomContent/StreamRegion/index.vue.js +1 -1
  199. package/lib/components/RoomContent/StreamRegion/index.vue2.js +27 -3
  200. package/lib/components/RoomFooter/ApplyControl/MasterApplyControl/index.vue.js +1 -1
  201. package/lib/components/RoomFooter/ApplyControl/MasterApplyControl/index.vue2.js +8 -2
  202. package/lib/components/RoomFooter/EndControl/index.vue.js +1 -1
  203. package/lib/components/RoomFooter/EndControl/index.vue2.js +1 -1
  204. package/lib/components/RoomFooter/EndControl/useEndControlHooks.js +14 -2
  205. package/lib/components/RoomFooter/ScreenShareControl/Index.vue.js +1 -1
  206. package/lib/components/RoomFooter/ScreenShareControl/Index.vue2.js +9 -1
  207. package/lib/components/RoomFooter/VideoControl.vue.js +1 -1
  208. package/lib/components/RoomFooter/VideoControl.vue2.js +6 -12
  209. package/lib/components/RoomHeader/UserInfo/index.vue.d.ts +3 -11
  210. package/lib/components/RoomHeader/UserInfo/index.vue.js +1 -1
  211. package/lib/components/RoomHeader/UserInfo/index.vue2.js +6 -89
  212. package/lib/components/RoomHeader/UserInfo/useUserInfoHooks.d.ts +2 -8
  213. package/lib/components/RoomHeader/UserInfo/useUserInfoHooks.js +1 -18
  214. package/lib/components/RoomHome/RoomControl/index.vue.d.ts +10 -0
  215. package/lib/components/RoomHome/RoomControl/index.vue.js +1 -1
  216. package/lib/components/RoomHome/RoomControl/index.vue2.js +150 -117
  217. package/lib/components/RoomSidebar/useSideBarHooks.js +3 -2
  218. package/lib/components/ScheduleConference/Contacts.vue.d.ts +22 -0
  219. package/lib/components/ScheduleConference/Contacts.vue.js +7 -0
  220. package/lib/components/ScheduleConference/Contacts.vue2.js +212 -0
  221. package/lib/components/ScheduleConference/DurationTimePicker.vue.d.ts +18 -0
  222. package/lib/components/ScheduleConference/DurationTimePicker.vue.js +67 -0
  223. package/lib/components/ScheduleConference/DurationTimePicker.vue2.js +4 -0
  224. package/lib/components/ScheduleConference/ScheduleConferencePanel.vue.d.ts +22 -0
  225. package/lib/components/ScheduleConference/ScheduleConferencePanel.vue.js +7 -0
  226. package/lib/components/ScheduleConference/ScheduleConferencePanel.vue2.js +613 -0
  227. package/lib/components/ScheduleConference/ScheduleConferencePanel.vue3.js +1 -0
  228. package/lib/components/ScheduleConference/ScheduleRoomControl.vue.d.ts +29 -0
  229. package/lib/components/ScheduleConference/ScheduleRoomControl.vue.js +7 -0
  230. package/lib/components/ScheduleConference/ScheduleRoomControl.vue2.js +464 -0
  231. package/lib/components/ScheduleConference/ScheduleRoomControl.vue3.js +1 -0
  232. package/lib/components/{common/base/Input.vue.d.ts → ScheduleConference/ScheduleRoomList.vue.d.ts} +11 -22
  233. package/lib/components/ScheduleConference/ScheduleRoomList.vue.js +7 -0
  234. package/lib/components/ScheduleConference/ScheduleRoomList.vue2.js +219 -0
  235. package/lib/components/ScheduleConference/ScheduleRoomList.vue3.js +1 -0
  236. package/lib/components/ScheduleConference/ShareLink.vue.d.ts +24 -0
  237. package/lib/components/ScheduleConference/ShareLink.vue.js +7 -0
  238. package/lib/components/ScheduleConference/ShareLink.vue2.js +113 -0
  239. package/lib/components/ScheduleConference/ShareLink.vue3.js +1 -0
  240. package/lib/components/ScheduleConference/TimezonePicker.vue.d.ts +18 -0
  241. package/lib/components/ScheduleConference/TimezonePicker.vue.js +84 -0
  242. package/lib/components/ScheduleConference/TimezonePicker.vue2.js +4 -0
  243. package/lib/components/common/Avatar.vue.js +2 -2
  244. package/lib/components/common/DeviceSelect.vue.js +1 -1
  245. package/lib/components/common/DeviceSelect.vue2.js +57 -18
  246. package/lib/components/common/Logo.vue.js +1 -1
  247. package/lib/components/common/Logo.vue2.js +2 -2
  248. package/lib/components/common/base/Badge.vue.d.ts +1 -1
  249. package/lib/components/common/base/Button.vue.d.ts +2 -2
  250. package/lib/components/common/base/Checkbox.vue.d.ts +4 -2
  251. package/lib/components/common/base/Checkbox.vue.js +2 -2
  252. package/lib/components/common/base/Checkbox.vue2.js +11 -4
  253. package/lib/components/common/base/Datepicker/Datepicker.vue.d.ts +18 -0
  254. package/lib/components/common/base/Datepicker/Datepicker.vue.js +7 -0
  255. package/lib/components/common/base/Datepicker/Datepicker.vue2.js +167 -0
  256. package/lib/components/common/base/Datepicker/Datepicker.vue3.js +1 -0
  257. package/lib/components/common/base/Datepicker/Timepicker.vue.d.ts +18 -0
  258. package/lib/components/common/base/Datepicker/Timepicker.vue.js +66 -0
  259. package/lib/components/common/base/Datepicker/Timepicker.vue2.js +4 -0
  260. package/lib/components/common/base/Dialog/index.vue.d.ts +8 -4
  261. package/lib/components/common/base/Dialog/index.vue.js +1 -1
  262. package/lib/components/common/base/Dialog/index.vue2.js +16 -8
  263. package/lib/components/common/base/Drawer.vue.d.ts +1 -1
  264. package/lib/components/common/base/IconButton.vue.d.ts +2 -2
  265. package/lib/components/common/base/Input/index.vue.d.ts +77 -0
  266. package/lib/components/common/base/Input/index.vue.js +7 -0
  267. package/lib/components/common/base/Input/index.vue2.js +140 -0
  268. package/lib/components/common/base/Input/index.vue3.js +1 -0
  269. package/lib/components/common/base/Message/Instance.js +1 -1
  270. package/lib/components/common/base/Message/Message.vue.d.ts +4 -4
  271. package/lib/components/common/base/MessageBox/index.d.ts +3 -2
  272. package/lib/components/common/base/MessageBox/index.js +2 -1
  273. package/lib/components/common/base/MessageBox/index.vue.d.ts +6 -1
  274. package/lib/components/common/base/MessageBox/index.vue.js +1 -1
  275. package/lib/components/common/base/MessageBox/index.vue2.js +59 -9
  276. package/lib/components/common/base/Notification/index.vue.d.ts +2 -2
  277. package/lib/components/common/base/Option.vue.d.ts +11 -1
  278. package/lib/components/common/base/Option.vue.js +1 -1
  279. package/lib/components/common/base/Option.vue2.js +15 -5
  280. package/lib/components/common/base/Select.vue.d.ts +5 -1
  281. package/lib/components/common/base/Select.vue.js +1 -1
  282. package/lib/components/common/base/Select.vue2.js +11 -10
  283. package/lib/components/common/base/index.d.ts +1 -1
  284. package/lib/components/common/icons/AllMembersShareScreenIcon.vue.d.ts +2 -0
  285. package/lib/components/common/icons/AllMembersShareScreenIcon.vue.js +22 -0
  286. package/lib/components/common/icons/CalendarIcon.vue.d.ts +2 -0
  287. package/lib/components/common/icons/CalendarIcon.vue.js +24 -0
  288. package/lib/components/common/icons/CopyIcon.vue.js +2 -2
  289. package/lib/components/common/icons/EditNameCardIcon.vue.d.ts +2 -0
  290. package/lib/components/common/icons/EditNameCardIcon.vue.js +21 -0
  291. package/lib/components/common/icons/EllipsisIcon.vue.d.ts +2 -0
  292. package/lib/components/common/icons/EllipsisIcon.vue.js +34 -0
  293. package/lib/components/common/icons/HostShareScreenIcon.vue.d.ts +2 -0
  294. package/lib/components/common/icons/HostShareScreenIcon.vue.js +22 -0
  295. package/lib/components/common/icons/LinkIcon.vue.d.ts +2 -0
  296. package/lib/components/common/icons/LinkIcon.vue.js +36 -0
  297. package/lib/components/common/icons/LoadingScheduleIcon.vue.d.ts +2 -0
  298. package/lib/components/common/icons/LoadingScheduleIcon.vue.js +24 -0
  299. package/lib/components/common/icons/ScheduleAttendees.vue.d.ts +6 -0
  300. package/lib/components/common/icons/ScheduleAttendees.vue.js +25 -0
  301. package/lib/components/common/icons/ScheduleAttendees.vue2.js +4 -0
  302. package/lib/components/common/icons/ScheduleRoomIcon.vue.d.ts +2 -0
  303. package/lib/components/common/icons/ScheduleRoomIcon.vue.js +24 -0
  304. package/lib/components/common/icons/SuccessIcon.vue.d.ts +2 -0
  305. package/lib/components/common/icons/SuccessIcon.vue.js +32 -0
  306. package/lib/components/common/icons/WarningIcon.vue.d.ts +2 -0
  307. package/lib/components/common/icons/WarningIcon.vue.js +29 -0
  308. package/lib/conference.d.ts +2 -0
  309. package/lib/conference.js +3 -0
  310. package/lib/conference.vue.js +1 -1
  311. package/lib/conference.vue2.js +9 -4
  312. package/lib/directives/vDblTouch.d.ts +10 -0
  313. package/lib/directives/vTap.d.ts +1 -0
  314. package/lib/directives/vTap.js +30 -3
  315. package/lib/extension/chatExtension.js +1 -1
  316. package/lib/hooks/useMasterApplyControl.js +3 -3
  317. package/lib/index.d.ts +1 -0
  318. package/lib/index.js +2390 -1546
  319. package/lib/locales/en-US.d.ts +75 -0
  320. package/lib/locales/en-US.js +78 -1
  321. package/lib/locales/zh-CN.d.ts +79 -0
  322. package/lib/locales/zh-CN.js +83 -2
  323. package/lib/preConference.vue.d.ts +10 -0
  324. package/lib/preConference.vue.js +1 -1
  325. package/lib/preConference.vue2.js +88 -12
  326. package/lib/services/function/errorHandler.d.ts +10 -0
  327. package/lib/services/function/errorHandler.js +158 -0
  328. package/lib/services/function/virtualBackground.js +3 -2
  329. package/lib/services/index.d.ts +1 -0
  330. package/lib/services/manager/roomActionManager.d.ts +1 -0
  331. package/lib/services/manager/roomActionManager.js +10 -18
  332. package/lib/services/manager/scheduleConferenceManager.d.ts +113 -0
  333. package/lib/services/manager/scheduleConferenceManager.js +147 -0
  334. package/lib/services/manager/userManager.d.ts +2 -0
  335. package/lib/services/manager/userManager.js +4 -0
  336. package/lib/services/roomService.d.ts +8 -0
  337. package/lib/services/roomService.js +38 -12
  338. package/lib/services/types.d.ts +8 -0
  339. package/lib/services/types.js +2 -0
  340. package/lib/stores/basic.js +8 -2
  341. package/lib/stores/room.d.ts +2 -0
  342. package/lib/stores/room.js +55 -24
  343. package/lib/utils/adapter.js +39 -3
  344. package/lib/utils/utils.d.ts +3 -0
  345. package/lib/utils/utils.js +64 -0
  346. package/package.json +2 -2
  347. package/src/TUIRoom/assets/style/black-theme.scss +3 -1
  348. package/src/TUIRoom/assets/style/white-theme.scss +3 -1
  349. package/src/TUIRoom/components/Chat/ChatEditor/useChatEditor.ts +1 -1
  350. package/src/TUIRoom/components/Chat/MessageList/index.vue +5 -1
  351. package/src/TUIRoom/components/Chat/MessageList/useMessageListHook.ts +2 -1
  352. package/src/TUIRoom/components/ManageMember/MemberControl/index.vue +23 -7
  353. package/src/TUIRoom/components/ManageMember/MemberControl/useMemberControlHooks.ts +110 -14
  354. package/src/TUIRoom/components/ManageMember/MemberItem/useMemberItemHooks.ts +9 -4
  355. package/src/TUIRoom/components/ManageMember/MemberItemCommon/MemberInfo.vue +2 -1
  356. package/src/TUIRoom/components/ManageMember/index.vue +85 -5
  357. package/src/TUIRoom/components/ManageMember/useIndexHooks.ts +58 -9
  358. package/src/TUIRoom/components/RoomContent/StreamContainer/index.vue +7 -6
  359. package/src/TUIRoom/components/RoomContent/StreamContainer/useStreamContainerHooks.ts +90 -26
  360. package/src/TUIRoom/components/RoomContent/StreamRegion/index.vue +27 -3
  361. package/src/TUIRoom/components/RoomFooter/ApplyControl/MasterApplyControl/index.vue +2 -1
  362. package/src/TUIRoom/components/RoomFooter/EndControl/index.vue +1 -1
  363. package/src/TUIRoom/components/RoomFooter/EndControl/useEndControlHooks.ts +10 -3
  364. package/src/TUIRoom/components/RoomFooter/ScreenShareControl/Index.vue +11 -1
  365. package/src/TUIRoom/components/RoomFooter/VideoControl.vue +0 -7
  366. package/src/TUIRoom/components/RoomHeader/UserInfo/index.vue +19 -50
  367. package/src/TUIRoom/components/RoomHeader/UserInfo/useUserInfoHooks.ts +1 -28
  368. package/src/TUIRoom/components/RoomHome/RoomControl/index.vue +91 -73
  369. package/src/TUIRoom/components/RoomSidebar/useSideBarHooks.ts +3 -2
  370. package/src/TUIRoom/components/ScheduleConference/Contacts.vue +265 -0
  371. package/src/TUIRoom/components/ScheduleConference/DurationTimePicker.vue +54 -0
  372. package/src/TUIRoom/components/ScheduleConference/ScheduleConferencePanel.vue +731 -0
  373. package/src/TUIRoom/components/ScheduleConference/ScheduleRoomControl.vue +577 -0
  374. package/src/TUIRoom/components/ScheduleConference/ScheduleRoomList.vue +295 -0
  375. package/src/TUIRoom/components/ScheduleConference/ShareLink.vue +122 -0
  376. package/src/TUIRoom/components/ScheduleConference/TimezonePicker.vue +70 -0
  377. package/src/TUIRoom/components/common/DeviceSelect.vue +62 -20
  378. package/src/TUIRoom/components/common/Logo.vue +3 -3
  379. package/src/TUIRoom/components/common/base/Checkbox.vue +19 -11
  380. package/src/TUIRoom/components/common/base/Datepicker/Datepicker.vue +252 -0
  381. package/src/TUIRoom/components/common/base/Datepicker/Timepicker.vue +54 -0
  382. package/src/TUIRoom/components/common/base/Dialog/index.vue +17 -7
  383. package/src/TUIRoom/components/common/base/Input/index.vue +187 -0
  384. package/src/TUIRoom/components/common/base/Message/Instance.ts +2 -1
  385. package/src/TUIRoom/components/common/base/MessageBox/index.ts +4 -2
  386. package/src/TUIRoom/components/common/base/MessageBox/index.vue +57 -26
  387. package/src/TUIRoom/components/common/base/Option.vue +14 -4
  388. package/src/TUIRoom/components/common/base/Select.vue +18 -13
  389. package/src/TUIRoom/components/common/base/index.ts +1 -1
  390. package/src/TUIRoom/components/common/icons/AllMembersShareScreenIcon.vue +15 -0
  391. package/src/TUIRoom/components/common/icons/ArrowStrokeRightIcon.vue +8 -0
  392. package/src/TUIRoom/components/common/icons/CalendarIcon.vue +6 -0
  393. package/src/TUIRoom/components/common/icons/EditNameCardIcon.vue +13 -0
  394. package/src/TUIRoom/components/common/icons/EllipsisIcon.vue +8 -0
  395. package/src/TUIRoom/components/common/icons/HostShareScreenIcon.vue +13 -0
  396. package/src/TUIRoom/components/common/icons/LinkIcon.vue +10 -0
  397. package/src/TUIRoom/components/common/icons/LoadingScheduleIcon.vue +6 -0
  398. package/src/TUIRoom/components/common/icons/ScheduleAttendees.vue +13 -0
  399. package/src/TUIRoom/components/common/icons/ScheduleRoomIcon.vue +6 -0
  400. package/src/TUIRoom/components/common/icons/SuccessIcon.vue +8 -0
  401. package/src/TUIRoom/components/common/icons/WarningIcon.vue +13 -0
  402. package/src/TUIRoom/conference.ts +6 -0
  403. package/src/TUIRoom/conference.vue +16 -5
  404. package/src/TUIRoom/directives/vDblTouch.ts +41 -0
  405. package/src/TUIRoom/directives/vTap.ts +32 -3
  406. package/src/TUIRoom/extension/chatExtension.ts +1 -1
  407. package/src/TUIRoom/hooks/useMasterApplyControl.ts +2 -2
  408. package/src/TUIRoom/index.ts +1 -0
  409. package/src/TUIRoom/locales/en-US.ts +77 -0
  410. package/src/TUIRoom/locales/zh-CN.ts +82 -1
  411. package/src/TUIRoom/preConference.vue +97 -2
  412. package/src/TUIRoom/services/function/errorHandler.ts +169 -0
  413. package/src/TUIRoom/services/function/virtualBackground.ts +3 -3
  414. package/src/TUIRoom/services/index.ts +1 -0
  415. package/src/TUIRoom/services/manager/roomActionManager.ts +10 -18
  416. package/src/TUIRoom/services/manager/scheduleConferenceManager.ts +263 -0
  417. package/src/TUIRoom/services/manager/userManager.ts +6 -0
  418. package/src/TUIRoom/services/roomService.ts +41 -13
  419. package/src/TUIRoom/services/types.ts +8 -1
  420. package/src/TUIRoom/stores/basic.ts +9 -2
  421. package/src/TUIRoom/stores/room.ts +60 -19
  422. package/src/TUIRoom/utils/adapter.ts +44 -4
  423. package/src/TUIRoom/utils/utils.ts +42 -0
  424. package/es/components/common/base/Input.vue.mjs +0 -7
  425. package/es/components/common/base/Input.vue2.mjs +0 -34
  426. package/lib/components/common/base/Input.vue.js +0 -7
  427. package/lib/components/common/base/Input.vue2.js +0 -34
  428. package/src/TUIRoom/components/common/base/Input.vue +0 -61
  429. /package/es/components/{common/base/Input.vue3.mjs → ScheduleConference/Contacts.vue3.mjs} +0 -0
  430. /package/lib/components/{common/base/Input.vue3.js → ScheduleConference/Contacts.vue3.js} +0 -0
@@ -0,0 +1,577 @@
1
+ <template>
2
+ <div v-click-outside="handleCloseOperate" class="schedule-room-control">
3
+ <div class="schedule-room-info">
4
+ <div class="schedule-title" :title="item.basicRoomInfo.roomName">{{ item.basicRoomInfo.roomName }}</div>
5
+ <div class="schedule-content">
6
+ <span class="schedule-content-time">
7
+ <span>{{ props.scheduleStartTime }}</span>
8
+ <i class="segregation-level"></i>
9
+ <span>{{ props.scheduleEndTime }}</span>
10
+ </span>
11
+ <i class="segregation-vertical"></i>
12
+ <span class="schedule-content-roomId">
13
+ {{ item.basicRoomInfo.roomId }}
14
+ </span>
15
+ <i v-if="item.status !== TUIConferenceStatus.kConferenceStatusNotStarted" class="segregation-vertical"></i>
16
+ <span class="schedule-content-status" :class="getStatusTextAndClass(item.status).className">
17
+ {{ t(getStatusTextAndClass(item.status).text) }}
18
+ </span>
19
+ </div>
20
+ </div>
21
+ <div ref="moreBtnRef" class="schedule-room-operate">
22
+ <svg-icon class="ellipsis" :icon="EllipsisIcon" @click="toggleClickMoreBtn"></svg-icon>
23
+ <div
24
+ v-show="showMoreControl"
25
+ ref="operateListRef"
26
+ :class="['operate-list', dropdownClass]"
27
+ >
28
+ <template
29
+ v-for="controlItem in moreControlList"
30
+ :key="controlItem.key"
31
+ >
32
+ <div
33
+ v-if="controlItem.visible"
34
+ class="operate-item"
35
+ :class="{ 'cancel-text': controlItem.key === 'cancelRoom' }"
36
+ @click="controlItem.func()"
37
+ >
38
+ <span class="operate-text" @click="controlItem.func">{{ controlItem.title }}</span>
39
+ </div>
40
+ </template>
41
+ </div>
42
+ <svg-icon class="link" :icon="LinkIcon" @click="toggleInviteRoom"></svg-icon>
43
+ <tui-button size="default" @click="joinConference">{{ t('join') }}</tui-button>
44
+ </div>
45
+ <ScheduleConferencePanel
46
+ :visible="modifyDialogVisible"
47
+ :conference-info="props.item"
48
+ @input="modifyDialogVisible = $event"
49
+ ></ScheduleConferencePanel>
50
+ <Dialog
51
+ v-model="showRoomDetail"
52
+ :title="t('Room Details')"
53
+ :modal="true"
54
+ :show-close="true"
55
+ :close-on-click-modal="true"
56
+ width="540px"
57
+ :append-to-body="true"
58
+ >
59
+ <div class="roomInfo-container">
60
+ <div
61
+ v-for="(item, index) in scheduleRoomDetailList"
62
+ v-show="item.isVisible"
63
+ :key="index"
64
+ class="roomInfo-content"
65
+ >
66
+ <span class="roomInfo-title">{{ t(item.title) }}</span>
67
+ <span class="roomInfo-item" :title="item.content">{{ item.content }}</span>
68
+ <span v-if="item.isShowCopyIcon" class="copy-container" @click="onCopy(item.content)">
69
+ <svg-icon class="copy" :icon="copyIcon"></svg-icon>
70
+ </span>
71
+ <div v-if="item.isShowStatus" :class="['roomInfo-status', getStatusTextAndClass(item.status).className]">
72
+ {{ t(getStatusTextAndClass(item.status).text) }}
73
+ </div>
74
+ </div>
75
+ </div>
76
+ <template #footer>
77
+ <tui-button
78
+ v-if="item.status === TUIConferenceStatus.kConferenceStatusNone"
79
+ class="dialog-button"
80
+ size="default" disabled
81
+ >
82
+ {{ t('The room is closed') }}
83
+ </tui-button>
84
+ <span v-else>
85
+ <tui-button class="dialog-button" size="default" @click="joinConference">{{ t('Enter Now') }}</tui-button>
86
+ <tui-button
87
+ type="primary" size="default" class="button" @click="toggleInviteRoom"
88
+ >{{ t('Invited members') }}</tui-button>
89
+ </span>
90
+ </template>
91
+ </Dialog>
92
+ <Dialog
93
+ v-model="showRoomCancel"
94
+ :title="t('Cancellation of scheduled rooms')"
95
+ :modal="true"
96
+ :show-close="true"
97
+ :close-on-click-modal="true"
98
+ width="480px"
99
+ :append-to-body="true"
100
+ :title-icon="WarningIcon"
101
+ >
102
+ <span>{{ t('Other members will not be able to join after cancellation') }}</span>
103
+ <template #footer>
104
+ <span>
105
+ <tui-button class="dialog-button" size="default" @click="handleCancelSchedule">{{ t('cancel room') }}</tui-button>
106
+ <tui-button type="primary" size="default" class="button" @click="showRoomCancel = false">{{ t('No cancellation') }}</tui-button>
107
+ </span>
108
+ </template>
109
+ </Dialog>
110
+ <Dialog
111
+ v-model="showRoomInvite"
112
+ :title="t('sb invites you to join the conference', { name: userName || userId })"
113
+ :modal="true"
114
+ :show-close="true"
115
+ :close-on-click-modal="true"
116
+ width="540px"
117
+ :append-to-body="true"
118
+ :title-icon="SuccessIcon"
119
+ >
120
+ <div class="invite-member">
121
+ <div v-for="(item, index) in scheduleInviteList" :key="index" class="invite-member-container">
122
+ <span class="invite-member-title">{{ t(item.title) }}</span>
123
+ <span class="invite-member-content" :title="item.content"> {{ item.content }}</span>
124
+ <svg-icon class="copy" :icon="copyIcon" v-if="item.isShowCopyIcon" @click="onCopy(item.content)"></svg-icon>
125
+ </div>
126
+ </div>
127
+ <template #footer>
128
+ <span>
129
+ <tui-button class="dialog-button" size="default" @click="copyRoomIdAndRoomLink()">{{ t('Copy the conference number and link') }}</tui-button>
130
+ </span>
131
+ </template>
132
+ </Dialog>
133
+ </div>
134
+ </template>
135
+
136
+ <script setup lang="ts">
137
+ import { TUIConferenceStatus } from '@tencentcloud/tuiroom-engine-electron';
138
+ import { ref, defineProps, nextTick, computed, defineEmits } from 'vue';
139
+ import { roomService } from '../../services';
140
+ import useRoomInfo from '../../components/RoomHeader/RoomInfo/useRoomInfoHooks';
141
+ import SvgIcon from '../../components/common/base/SvgIcon.vue';
142
+ import Dialog from '../../components/common/base/Dialog/index.vue';
143
+ import EllipsisIcon from '../../components/common/icons/EllipsisIcon.vue';
144
+ import copyIcon from '../../components/common/icons/CopyIcon.vue';
145
+ import LinkIcon from '../../components/common/icons/LinkIcon.vue';
146
+ import SuccessIcon from '../../components/common/icons/SuccessIcon.vue';
147
+ import WarningIcon from '../../components/common/icons/WarningIcon.vue';
148
+ import TuiButton from '../../components/common/base/Button.vue';
149
+ import { useI18n } from '../../locales';
150
+ import vClickOutside from '../../directives/vClickOutside';
151
+ import ScheduleConferencePanel from './ScheduleConferencePanel.vue';
152
+ import { getUrlWithRoomId } from '../../utils/utils';
153
+ import { useBasicStore } from '../../stores/basic';
154
+ import { storeToRefs } from 'pinia';
155
+
156
+ const basicStore = useBasicStore();
157
+ const { userId, userName } = storeToRefs(basicStore);
158
+
159
+ const { t } = useI18n();
160
+ const showMoreControl = ref(false);
161
+ const dropdownClass = ref('down');
162
+ const moreBtnRef = ref();
163
+ const operateListRef = ref();
164
+ const modifyDialogVisible = ref(false);
165
+ const emit = defineEmits(['join-conference', 'show-more']);
166
+ const showRoomDetail = ref(false);
167
+ const showRoomCancel = ref(false);
168
+ const showRoomInvite = ref(false);
169
+
170
+ const props = defineProps<{
171
+ item: any;
172
+ scheduleStartDate: string;
173
+ scheduleEndDate: string;
174
+ scheduleStartTime: string;
175
+ scheduleEndTime: string;
176
+ }>();
177
+
178
+ const { onCopy } = useRoomInfo();
179
+
180
+ type StatusMapType = {
181
+ [key: number]: {
182
+ text: string;
183
+ className: string;
184
+ };
185
+ };
186
+
187
+ const statusMap: StatusMapType = {
188
+ [TUIConferenceStatus.kConferenceStatusRunning]: {
189
+ text: 'Ongoing',
190
+ className: 'status-running',
191
+ },
192
+ };
193
+
194
+ const getStatusTextAndClass = (status: TUIConferenceStatus) => statusMap[status] || { text: '', className: '' };
195
+
196
+ const isOwner = computed(() => props.item.basicRoomInfo.ownerId === roomService.basicStore.userId
197
+ && props.item.status === TUIConferenceStatus.kConferenceStatusNotStarted);
198
+
199
+ const viewDetails = computed(() => ({
200
+ key: 'roomDetails',
201
+ title: t('view details'),
202
+ visible: true,
203
+ func: () => {
204
+ showRoomDetail.value = true;
205
+ showMoreControl.value = false;
206
+ },
207
+ }));
208
+
209
+ const modifyRoom = computed(() => ({
210
+ key: 'modifyRoom',
211
+ title: t('modify room'),
212
+ visible: isOwner.value,
213
+ func: () => {
214
+ modifyDialogVisible.value = true;
215
+ showMoreControl.value = false;
216
+ },
217
+ }));
218
+
219
+ const cancelRoom = computed(() => ({
220
+ key: 'cancelRoom',
221
+ title: t('cancel room'),
222
+ visible: isOwner.value,
223
+ func: () => {
224
+ showRoomCancel.value = true;
225
+ showMoreControl.value = false;
226
+ },
227
+ }));
228
+
229
+ const moreControlList = computed(() => [
230
+ viewDetails.value,
231
+ modifyRoom.value,
232
+ cancelRoom.value,
233
+ ]);
234
+ const scheduleAttendeesInfo = computed(() => (props.item.scheduleAttendees ? props.item.scheduleAttendees.map((attendee: { userId: string; userName: string; }) => attendee.userName || attendee.userId).join('; ') : ''));
235
+ const durationTime = computed(() => props.item.scheduleEndTime - props.item.scheduleStartTime);
236
+
237
+ function getScheduleTime(timestamp: number) {
238
+ const date = new Date(timestamp);
239
+ const hours = `${date.getHours() < 10 ? `0${date.getHours()}` : date.getHours()}`;
240
+ const minutes = `${date.getMinutes() < 10 ? `0${date.getMinutes()}` : date.getMinutes()}`;
241
+ return `${hours}:${minutes}`;
242
+ }
243
+ const scheduleRoomDetailList = computed(() => [
244
+ { title: 'Room Name', content: props.item.basicRoomInfo.roomName, isShowCopyIcon: false, status: null, isShowStatus: false, isVisible: true },
245
+ { title: 'Room ID', content: props.item.basicRoomInfo.roomId, isShowCopyIcon: true, status: null, isShowStatus: false, isVisible: true },
246
+ {
247
+ title: 'Room Time',
248
+ content: `${props.scheduleStartDate} ${props.scheduleStartTime} - ${props.scheduleEndDate} ${props.scheduleEndTime}`,
249
+ isShowCopyIcon: false,
250
+ status: props.item.status,
251
+ isShowStatus: true,
252
+ isVisible: true,
253
+ },
254
+ { title: 'Room Type', content: `${t(getSeatModeDisplay(props.item.basicRoomInfo.isSeatEnabled))}`, isShowCopyIcon: false, status: null, isShowStatus: false, isVisible: true },
255
+ { title: 'Creator', content: props.item.basicRoomInfo.roomOwner, isShowCopyIcon: false, status: null, isShowStatus: false, isVisible: true },
256
+ { title: 'Members', content: scheduleAttendeesInfo.value, isShowCopyIcon: false, status: null, isShowStatus: false, isVisible: true },
257
+ { title: 'Entry Time', content: `${props.scheduleStartDate}${props.scheduleStartTime}`, isShowCopyIcon: false, status: null, isShowStatus: false, isVisible: props.item.status === TUIConferenceStatus.kConferenceStatusNone },
258
+ { title: 'Duration of participation', content: getScheduleTime(durationTime.value), isShowCopyIcon: false, status: null, isShowStatus: false, isVisible: props.item.status === TUIConferenceStatus.kConferenceStatusNone },
259
+ ]);
260
+
261
+ const scheduleInviteList = computed(() => [
262
+ { title: 'Room Name', content: props.item.basicRoomInfo.roomName, isShowCopyIcon: false },
263
+ { title: 'Room Type', content: `${t(getSeatModeDisplay(props.item.basicRoomInfo.isSeatEnabled))}`, isShowCopyIcon: false },
264
+ { title: 'Room Time', content: `${props.scheduleStartDate} ${props.scheduleStartTime} - ${props.scheduleEndDate} ${props.scheduleEndTime}`, isShowCopyIcon: false },
265
+ { title: 'Room ID', content: props.item.basicRoomInfo.roomId, isShowCopyIcon: true },
266
+ { title: 'Room Link', content: getUrlWithRoomId(props.item.basicRoomInfo.roomId), isShowCopyIcon: true },
267
+ ]);
268
+
269
+ function getSeatModeDisplay(isSeatEnabled: boolean) {
270
+ return isSeatEnabled ? 'On-stage Speaking Room' : 'Free Speech Room';
271
+ }
272
+
273
+ async function toggleClickMoreBtn() {
274
+ emit('show-more', { roomId: props.item.basicRoomInfo.roomId });
275
+ if (!showMoreControl.value) {
276
+ await handleDropDownPosition();
277
+ }
278
+ showMoreControl.value = !showMoreControl.value;
279
+ }
280
+
281
+ function handleCloseOperate() {
282
+ showMoreControl.value = false;
283
+ }
284
+
285
+ async function handleDropDownPosition() {
286
+ const { top, bottom } = moreBtnRef.value?.getBoundingClientRect();
287
+ const { top: containerTop, bottom: containerBottom } = document.getElementById('scheduleRoomContainer')?.getBoundingClientRect() as DOMRect;
288
+ if (!containerBottom || !containerTop) {
289
+ return;
290
+ }
291
+ const bottomSize = containerBottom - bottom;
292
+ const topSize = top - containerTop;
293
+ let dropDownContainerHeight = 0;
294
+ if (!showMoreControl.value) {
295
+ operateListRef.value.style = 'display:block;position:absolute;z-index:-1000';
296
+ await nextTick();
297
+ dropDownContainerHeight = operateListRef.value.offsetHeight;
298
+ operateListRef.value.style = '';
299
+ } else {
300
+ dropDownContainerHeight = operateListRef.value?.offsetHeight;
301
+ }
302
+ if (topSize < dropDownContainerHeight) {
303
+ return;
304
+ }
305
+ if (bottomSize < dropDownContainerHeight) {
306
+ dropdownClass.value = 'up';
307
+ }
308
+ }
309
+
310
+ const joinConference = () => {
311
+ emit('join-conference', {
312
+ roomId: props.item?.basicRoomInfo.roomId,
313
+ roomParam: {
314
+ isOpenCamera: false,
315
+ isOpenMicrophone: true,
316
+ },
317
+ });
318
+ };
319
+ function toggleInviteRoom() {
320
+ if (showRoomDetail.value) {
321
+ showRoomDetail.value = false;
322
+ }
323
+ showRoomInvite.value = !showRoomInvite.value;
324
+ }
325
+
326
+ function copyRoomIdAndRoomLink() {
327
+ const invitation = `${props.item.basicRoomInfo.roomName}\n
328
+ ${t('Room Type')}: ${t(getSeatModeDisplay(props.item.basicRoomInfo.isSeatEnabled))}\n
329
+ ${t('Room Time')}: ${props.scheduleStartDate}${props.scheduleStartTime} - ${props.scheduleEndDate}${props.scheduleEndTime}\n
330
+ ${t('Room ID')}: ${props.item.basicRoomInfo.roomId}\n
331
+ ${t('Room Link')}: ${getUrlWithRoomId(props.item.basicRoomInfo.roomId)}`;
332
+ onCopy(invitation);
333
+ }
334
+
335
+ async function handleCancelSchedule() {
336
+ await roomService.scheduleConferenceManager.cancelConference({ roomId: props.item.basicRoomInfo.roomId });
337
+ showRoomCancel.value = false;
338
+ }
339
+ </script>
340
+
341
+ <style scoped lang="scss">
342
+ .tui-theme-black .operate-list {
343
+ --operation-box-shadow: 0px 3px 8px rgba(34, 38, 46, 0.30), 0px 6px 40px rgba(34, 38, 46, 0.30);
344
+ }
345
+
346
+ .tui-theme-white .operate-list {
347
+ --operation-box-shadow: 0px 3px 8px #E9F0FB, 0px 6px 40px rgba(0, 0, 0, 0.10);
348
+ }
349
+ .schedule-room-control {
350
+ padding: 10px;
351
+ display: flex;
352
+ flex-wrap: nowrap;
353
+ justify-content: space-between;
354
+ -webkit-user-select: none;
355
+ -moz-user-select: none;
356
+ -ms-user-select: none;
357
+ user-select: none;
358
+ .schedule-room-info {
359
+ flex: 1;
360
+ .schedule-title {
361
+ font-weight: 500;
362
+ font-size: 16px;
363
+ color: var(--font-color-4);
364
+ white-space: nowrap;
365
+ max-width: 220px;
366
+ overflow: hidden;
367
+ text-overflow: ellipsis;
368
+ }
369
+ .schedule-content {
370
+ font-size: 14px;
371
+ font-weight: 400;
372
+ color: var(--font-color-4);
373
+ margin-top: 6px;
374
+ display: flex;
375
+ .schedule-content-time {
376
+ min-width: 94px;
377
+ max-width: 94px;
378
+ .segregation-level{
379
+ width: 10px;
380
+ height: 1px;
381
+ background-color: var(--font-color-4);
382
+ display: inline-block;
383
+ margin: 0 4px 4px 4px;
384
+ }
385
+ }
386
+ .schedule-content-roomId {
387
+ text-overflow: ellipsis;
388
+ flex-wrap: nowrap;
389
+ min-width: 60px;
390
+ max-width: 84px;
391
+ padding-right: 10px;
392
+ }
393
+ .segregation-vertical {
394
+ width: 1px;
395
+ height: 10px;
396
+ background-color: #969EB4;
397
+ margin: 5px 10px 0 5px;
398
+ }
399
+ }
400
+ }
401
+ .schedule-room-operate {
402
+ display: flex;
403
+ align-items: center;
404
+ position: relative;
405
+ justify-content: space-between;
406
+ .ellipsis, .link {
407
+ width: 30px;
408
+ height: 30px;
409
+ color: var(--active-color-1);
410
+ margin-right: 6px;
411
+ &:hover {
412
+ border-radius: 4px;
413
+ background: rgba(150, 158, 180, 0.10);
414
+ }
415
+ }
416
+ .operate-list {
417
+ position: absolute;
418
+ min-width: 96px;
419
+ background: #FFFFFF;
420
+ border-radius: 8px;
421
+ box-shadow: var(--operation-box-shadow);
422
+ z-index: 1;
423
+ display: flex;
424
+ flex-direction: column;
425
+ padding: 20px;
426
+ &::before {
427
+ content: '';
428
+ position: absolute;
429
+ width: 0px;
430
+ border-top: 10px solid transparent;
431
+ border-right: 10px solid transparent;
432
+ border-bottom: 10px solid #FFFFFF;
433
+ border-left: 10px solid transparent;
434
+ }
435
+ .operate-item {
436
+ cursor: pointer;
437
+ color: #6B758A;
438
+ height: 20px;
439
+ display: flex;
440
+ justify-content: center;
441
+ .operate-text {
442
+ font-size: 14px;
443
+ white-space: nowrap;
444
+ }
445
+ &:not(:first-child) {
446
+ margin-top: 20px;
447
+ }
448
+ &:hover {
449
+ color: var(--active-color-1);
450
+ }
451
+ }
452
+ .cancel-text{
453
+ color: var(--red-color-2);
454
+ &:hover {
455
+ color: var(--red-color-2);
456
+ }
457
+ }
458
+ }
459
+ .down {
460
+ top: 50px;
461
+ right: 74px;
462
+ &::before {
463
+ right: 60px;
464
+ top: -20px;
465
+ }
466
+ &::after {
467
+ left: 0px;
468
+ top: -20px;
469
+ }
470
+ }
471
+ .up {
472
+ bottom: 50px;
473
+ right: 74px;
474
+ &::before {
475
+ bottom: -20px;
476
+ right: 60px;
477
+ transform: rotate(180deg);
478
+ }
479
+ &::after {
480
+ left: 0px;
481
+ bottom: -20px;
482
+ }
483
+ }
484
+ }
485
+ &:hover {
486
+ background-color: rgba(150, 158, 180, 0.1);
487
+ cursor: pointer;
488
+ border-radius: 8px;
489
+ }
490
+ }
491
+ .roomInfo-container {
492
+ display: flex;
493
+ flex-direction: column;
494
+ gap: 20px;
495
+ .roomInfo-content {
496
+ display: flex;
497
+ min-width: 300px;
498
+ align-items: stretch;
499
+ font-size: 14px;
500
+ font-weight: 400;
501
+ line-height: 20px;
502
+ .roomInfo-title {
503
+ flex-basis: 18%;
504
+ color: #4F586B;
505
+ }
506
+ .roomInfo-item {
507
+ overflow: hidden;
508
+ max-width: 360px;
509
+ text-overflow: ellipsis;
510
+ white-space: nowrap;
511
+ color: #4F586B;
512
+ font-weight: 500;
513
+ }
514
+ .copy-container {
515
+ display: flex;
516
+ cursor: pointer;
517
+ color: var(--active-color-2);
518
+ margin-left: 6px;
519
+ .copy {
520
+ width: 20px;
521
+ height: 20px;
522
+ }
523
+ }
524
+ .roomInfo-status {
525
+ margin-left: 10px;
526
+ }
527
+ }
528
+ }
529
+
530
+ .invite-member {
531
+ display: flex;
532
+ flex-direction: column;
533
+ gap: 16px;
534
+ margin-top: 10px;
535
+ .invite-member-container {
536
+ display: flex;
537
+ min-width: 400px;
538
+ align-items: stretch;
539
+ font-size: 14px;
540
+ font-weight: 400;
541
+ line-height: 20px;
542
+ color: #4F586B;
543
+ .invite-member-title {
544
+ flex-basis: 18%;
545
+ }
546
+ .invite-member-content {
547
+ font-weight: 500;
548
+ max-width: 360px;
549
+ overflow: hidden;
550
+ white-space: nowrap;
551
+ text-overflow: ellipsis;
552
+ }
553
+ .copy {
554
+ width: 20px;
555
+ height: 20px;
556
+ cursor: pointer;
557
+ color: var(--active-color-1);
558
+ margin-left: 8px;
559
+ }
560
+ }
561
+ }
562
+ .schedule-detail-closed {
563
+ color: #4F586B;
564
+ }
565
+ .button {
566
+ margin-left: 10px;
567
+ }
568
+ .status-not-start {
569
+ color: var(--font-color-10);
570
+ }
571
+ .status-running {
572
+ color: var(--active-color-1);
573
+ }
574
+ .status-finished {
575
+ color: #B2BBD1;
576
+ }
577
+ </style>