@opendesign-plus/components 0.0.1-rc.34 → 0.0.1-rc.36

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 (527) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +6 -6
  3. package/dist/components/activity/index.d.ts +9 -9
  4. package/dist/components/banner/index.d.ts +6 -6
  5. package/dist/components/events/index.d.ts +20 -20
  6. package/dist/components/header/OHeaderMobile.vue.d.ts +22 -22
  7. package/dist/components/header/components/HeaderNavMobile.vue.d.ts +3 -3
  8. package/dist/components/header/index.d.ts +27 -27
  9. package/dist/components/header-search/index.d.ts +13 -13
  10. package/dist/components/meeting/OMeetingPlayback.vue.d.ts +6 -6
  11. package/dist/components/meeting/components/OMeetingCalendarSelector.vue.d.ts +664 -0
  12. package/dist/components/meeting/components/OMeetingPlaybackVideo.vue.d.ts +1 -1
  13. package/dist/components/meeting/index.d.ts +31 -31
  14. package/dist/components/search/index.d.ts +11 -11
  15. package/dist/components.cjs.js +1 -1
  16. package/dist/components.css +1 -1
  17. package/dist/components.es.js +139 -131
  18. package/dist/treeshaking/_virtual/@babel/runtime/helpers/esm/extends.js.mjs +12 -0
  19. package/dist/treeshaking/_virtual/@babel/runtime/helpers/extends.js.mjs +22 -0
  20. package/dist/treeshaking/_virtual/@babel/runtime/helpers/extends.js2.mjs +4 -0
  21. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/byte-helpers.js.mjs +141 -0
  22. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/codecs.js.mjs +158 -0
  23. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/containers.js.mjs +161 -0
  24. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/decode-b64-to-uint8-array.js.mjs +15 -0
  25. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/ebml-helpers.js.mjs +126 -0
  26. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/id3-helpers.js.mjs +32 -0
  27. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/media-groups.js.mjs +13 -0
  28. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/media-types.js.mjs +17 -0
  29. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/mp4-helpers.js.mjs +57 -0
  30. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/nal-helpers.js.mjs +78 -0
  31. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/resolve-url.js.mjs +23 -0
  32. package/dist/treeshaking/_virtual/@videojs/vhs-utils/es/stream.js.mjs +51 -0
  33. package/dist/treeshaking/_virtual/@videojs/xhr/lib/http-handler.js.mjs +55 -0
  34. package/dist/treeshaking/_virtual/@videojs/xhr/lib/index.js.mjs +7 -0
  35. package/dist/treeshaking/_virtual/@videojs/xhr/lib/index.js2.mjs +300 -0
  36. package/dist/treeshaking/_virtual/@videojs/xhr/lib/index.js3.mjs +4 -0
  37. package/dist/treeshaking/_virtual/@videojs/xhr/lib/interceptors.js.mjs +109 -0
  38. package/dist/treeshaking/_virtual/@videojs/xhr/lib/retry.js.mjs +104 -0
  39. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/conventions.js.mjs +142 -0
  40. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/conventions.js2.mjs +4 -0
  41. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/dom-parser.js.mjs +224 -0
  42. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/dom-parser.js2.mjs +4 -0
  43. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/dom.js.mjs +1449 -0
  44. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/dom.js2.mjs +4 -0
  45. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/entities.js.mjs +2149 -0
  46. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/entities.js2.mjs +4 -0
  47. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/index.js.mjs +5 -0
  48. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/index.js2.mjs +16 -0
  49. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/index.js3.mjs +4 -0
  50. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/sax.js.mjs +594 -0
  51. package/dist/treeshaking/_virtual/@xmldom/xmldom/lib/sax.js2.mjs +4 -0
  52. package/dist/treeshaking/_virtual/___vite-browser-external.mjs +6 -0
  53. package/dist/treeshaking/_virtual/__vite-browser-external.mjs +4 -0
  54. package/dist/treeshaking/_virtual/_commonjsHelpers.mjs +33 -0
  55. package/dist/treeshaking/_virtual/_plugin-vue_export-helper.mjs +10 -0
  56. package/dist/treeshaking/_virtual/global/document.js.mjs +7 -0
  57. package/dist/treeshaking/_virtual/global/document.js2.mjs +24 -0
  58. package/dist/treeshaking/_virtual/global/window.js.mjs +7 -0
  59. package/dist/treeshaking/_virtual/global/window.js2.mjs +22 -0
  60. package/dist/treeshaking/_virtual/icon-all.mjs +20 -0
  61. package/dist/treeshaking/_virtual/icon-avatar-line.mjs +21 -0
  62. package/dist/treeshaking/_virtual/icon-caret-left.mjs +20 -0
  63. package/dist/treeshaking/_virtual/icon-caret-right.mjs +20 -0
  64. package/dist/treeshaking/_virtual/icon-checked.mjs +20 -0
  65. package/dist/treeshaking/_virtual/icon-chevron-down.mjs +20 -0
  66. package/dist/treeshaking/_virtual/icon-chevron-right.mjs +17 -0
  67. package/dist/treeshaking/_virtual/icon-chevron-up.mjs +20 -0
  68. package/dist/treeshaking/_virtual/icon-close.mjs +20 -0
  69. package/dist/treeshaking/_virtual/icon-competition.mjs +31 -0
  70. package/dist/treeshaking/_virtual/icon-copy.mjs +21 -0
  71. package/dist/treeshaking/_virtual/icon-delete-hover.mjs +24 -0
  72. package/dist/treeshaking/_virtual/icon-delete.mjs +17 -0
  73. package/dist/treeshaking/_virtual/icon-event.mjs +21 -0
  74. package/dist/treeshaking/_virtual/icon-events.mjs +31 -0
  75. package/dist/treeshaking/_virtual/icon-filter.mjs +21 -0
  76. package/dist/treeshaking/_virtual/icon-header-back.mjs +20 -0
  77. package/dist/treeshaking/_virtual/icon-header-menu.mjs +20 -0
  78. package/dist/treeshaking/_virtual/icon-header-search.mjs +26 -0
  79. package/dist/treeshaking/_virtual/icon-help.mjs +21 -0
  80. package/dist/treeshaking/_virtual/icon-image-upload.mjs +20 -0
  81. package/dist/treeshaking/_virtual/icon-image-zoomin.mjs +20 -0
  82. package/dist/treeshaking/_virtual/icon-locale.mjs +21 -0
  83. package/dist/treeshaking/_virtual/icon-meet.mjs +21 -0
  84. package/dist/treeshaking/_virtual/icon-moon.mjs +21 -0
  85. package/dist/treeshaking/_virtual/icon-playing.mjs +33 -0
  86. package/dist/treeshaking/_virtual/icon-refresh.mjs +21 -0
  87. package/dist/treeshaking/_virtual/icon-release.mjs +31 -0
  88. package/dist/treeshaking/_virtual/icon-search.mjs +17 -0
  89. package/dist/treeshaking/_virtual/icon-speaker.mjs +17 -0
  90. package/dist/treeshaking/_virtual/icon-summit.mjs +21 -0
  91. package/dist/treeshaking/_virtual/icon-summit2.mjs +31 -0
  92. package/dist/treeshaking/_virtual/icon-sun.mjs +21 -0
  93. package/dist/treeshaking/_virtual/icon-tip.mjs +21 -0
  94. package/dist/treeshaking/_virtual/icon-tips.mjs +17 -0
  95. package/dist/treeshaking/_virtual/is-function/index.js.mjs +20 -0
  96. package/dist/treeshaking/_virtual/m3u8-parser/dist/m3u8-parser.es.js.mjs +1390 -0
  97. package/dist/treeshaking/_virtual/mpd-parser/dist/mpd-parser.es.js.mjs +1693 -0
  98. package/dist/treeshaking/_virtual/mux.js/lib/tools/parse-sidx.js.mjs +7 -0
  99. package/dist/treeshaking/_virtual/mux.js/lib/tools/parse-sidx.js2.mjs +45 -0
  100. package/dist/treeshaking/_virtual/mux.js/lib/utils/clock.js.mjs +5 -0
  101. package/dist/treeshaking/_virtual/mux.js/lib/utils/clock.js2.mjs +42 -0
  102. package/dist/treeshaking/_virtual/mux.js/lib/utils/numbers.js.mjs +27 -0
  103. package/dist/treeshaking/_virtual/video.js/dist/video-js.css +2018 -0
  104. package/dist/treeshaking/_virtual/video.js/dist/video.es.js.mjs +40111 -0
  105. package/dist/treeshaking/_virtual/videojs-vtt.js/lib/browser-index.js.mjs +7 -0
  106. package/dist/treeshaking/_virtual/videojs-vtt.js/lib/browser-index.js2.mjs +37 -0
  107. package/dist/treeshaking/_virtual/videojs-vtt.js/lib/browser-index.js3.mjs +4 -0
  108. package/dist/treeshaking/_virtual/videojs-vtt.js/lib/vtt.js.mjs +1082 -0
  109. package/dist/treeshaking/_virtual/videojs-vtt.js/lib/vttcue.js.mjs +235 -0
  110. package/dist/treeshaking/_virtual/videojs-vtt.js/lib/vttregion.js.mjs +122 -0
  111. package/dist/treeshaking/assets/meeting/empty.png.mjs +4 -0
  112. package/dist/treeshaking/assets/meeting/transparent.png.mjs +4 -0
  113. package/dist/treeshaking/components/activity/OActivityApproval.css +638 -0
  114. package/dist/treeshaking/components/activity/OActivityApproval.vue.d.ts +273 -0
  115. package/dist/treeshaking/components/activity/OActivityApproval.vue.mjs +718 -0
  116. package/dist/treeshaking/components/activity/OActivityApproval.vue4.mjs +6 -0
  117. package/dist/treeshaking/components/activity/OActivityApproval2.css +331 -0
  118. package/dist/treeshaking/components/activity/OActivityForm.css +367 -0
  119. package/dist/treeshaking/components/activity/OActivityForm.vue.d.ts +138 -0
  120. package/dist/treeshaking/components/activity/OActivityForm.vue.mjs +628 -0
  121. package/dist/treeshaking/components/activity/OActivityForm.vue4.mjs +6 -0
  122. package/dist/treeshaking/components/activity/OActivityForm2.css +330 -0
  123. package/dist/treeshaking/components/activity/OActivityMyCalendar.css +1237 -0
  124. package/dist/treeshaking/components/activity/OActivityMyCalendar.vue.d.ts +636 -0
  125. package/dist/treeshaking/components/activity/OActivityMyCalendar.vue.mjs +856 -0
  126. package/dist/treeshaking/components/activity/OActivityMyCalendar.vue4.mjs +6 -0
  127. package/dist/treeshaking/components/activity/OActivityMyCalendar2.css +314 -0
  128. package/dist/treeshaking/components/activity/composables/useActivityConfig.d.ts +17 -0
  129. package/dist/treeshaking/components/activity/composables/useActivityConfig.mjs +139 -0
  130. package/dist/treeshaking/components/activity/config.d.ts +1 -0
  131. package/dist/treeshaking/components/activity/config.mjs +4 -0
  132. package/dist/treeshaking/components/activity/index.d.ts +648 -0
  133. package/dist/treeshaking/components/activity/index.mjs +29 -0
  134. package/dist/treeshaking/components/activity/types.d.ts +88 -0
  135. package/dist/treeshaking/components/banner/OBanner.css +151 -0
  136. package/dist/treeshaking/components/banner/OBanner.vue.d.ts +13 -0
  137. package/dist/treeshaking/components/banner/OBanner.vue.mjs +8 -0
  138. package/dist/treeshaking/components/banner/OBanner.vue2.mjs +141 -0
  139. package/dist/treeshaking/components/banner/OBanner2.css +39 -0
  140. package/dist/treeshaking/components/banner/OBannerContent.css +113 -0
  141. package/dist/treeshaking/components/banner/OBannerContent.vue.d.ts +7 -0
  142. package/dist/treeshaking/components/banner/OBannerContent.vue.mjs +7 -0
  143. package/dist/treeshaking/components/banner/OBannerContent.vue2.mjs +102 -0
  144. package/dist/treeshaking/components/banner/index.d.ts +68 -0
  145. package/dist/treeshaking/components/banner/index.mjs +16 -0
  146. package/dist/treeshaking/components/banner/types.d.ts +31 -0
  147. package/dist/treeshaking/components/common/AppAvatar.css +20 -0
  148. package/dist/treeshaking/components/common/AppAvatar.vue.mjs +7 -0
  149. package/dist/treeshaking/components/common/AppAvatar.vue2.mjs +83 -0
  150. package/dist/treeshaking/components/common/ClientOnly.vue.mjs +16 -0
  151. package/dist/treeshaking/components/common/ClientOnly.vue2.mjs +4 -0
  152. package/dist/treeshaking/components/common/ContentWrapper.css +36 -0
  153. package/dist/treeshaking/components/common/ContentWrapper.vue.mjs +7 -0
  154. package/dist/treeshaking/components/common/ContentWrapper.vue2.mjs +50 -0
  155. package/dist/treeshaking/components/common/MoreText.css +69 -0
  156. package/dist/treeshaking/components/common/MoreText.vue.mjs +7 -0
  157. package/dist/treeshaking/components/common/MoreText.vue2.mjs +88 -0
  158. package/dist/treeshaking/components/common/ThFilter.css +146 -0
  159. package/dist/treeshaking/components/common/ThFilter.vue.mjs +270 -0
  160. package/dist/treeshaking/components/common/ThFilter.vue3.mjs +5 -0
  161. package/dist/treeshaking/components/config-provider/OPlusConfigProvider.vue.d.ts +24 -0
  162. package/dist/treeshaking/components/config-provider/OPlusConfigProvider.vue.mjs +33 -0
  163. package/dist/treeshaking/components/config-provider/OPlusConfigProvider.vue2.mjs +4 -0
  164. package/dist/treeshaking/components/config-provider/index.d.ts +30 -0
  165. package/dist/treeshaking/components/config-provider/index.mjs +9 -0
  166. package/dist/treeshaking/components/cookie-notice/OCookieNotice.css +35 -0
  167. package/dist/treeshaking/components/cookie-notice/OCookieNotice.vue.d.ts +17 -0
  168. package/dist/treeshaking/components/cookie-notice/OCookieNotice.vue.mjs +8 -0
  169. package/dist/treeshaking/components/cookie-notice/OCookieNotice.vue2.mjs +367 -0
  170. package/dist/treeshaking/components/cookie-notice/OCookieNotice2.css +309 -0
  171. package/dist/treeshaking/components/cookie-notice/index.d.ts +53 -0
  172. package/dist/treeshaking/components/cookie-notice/index.mjs +9 -0
  173. package/dist/treeshaking/components/element-plus/OElCookieNotice.css +306 -0
  174. package/dist/treeshaking/components/element-plus/OElCookieNotice.vue.d.ts +34 -0
  175. package/dist/treeshaking/components/element-plus/OElCookieNotice.vue.mjs +8 -0
  176. package/dist/treeshaking/components/element-plus/OElCookieNotice.vue2.mjs +384 -0
  177. package/dist/treeshaking/components/element-plus/OElCookieNotice2.css +691 -0
  178. package/dist/treeshaking/components/element-plus/index.d.ts +2 -0
  179. package/dist/treeshaking/components/events/OEventsApply.css +583 -0
  180. package/dist/treeshaking/components/events/OEventsApply.vue.d.ts +16 -0
  181. package/dist/treeshaking/components/events/OEventsApply.vue.mjs +98 -0
  182. package/dist/treeshaking/components/events/OEventsApply.vue3.mjs +5 -0
  183. package/dist/treeshaking/components/events/OEventsCalendar.css +501 -0
  184. package/dist/treeshaking/components/events/OEventsCalendar.vue.d.ts +5 -0
  185. package/dist/treeshaking/components/events/OEventsCalendar.vue.mjs +289 -0
  186. package/dist/treeshaking/components/events/OEventsCalendar.vue3.mjs +5 -0
  187. package/dist/treeshaking/components/events/OEventsList.css +470 -0
  188. package/dist/treeshaking/components/events/OEventsList.vue.d.ts +26 -0
  189. package/dist/treeshaking/components/events/OEventsList.vue.mjs +237 -0
  190. package/dist/treeshaking/components/events/OEventsList.vue3.mjs +5 -0
  191. package/dist/treeshaking/components/events/config.d.ts +14 -0
  192. package/dist/treeshaking/components/events/config.mjs +37 -0
  193. package/dist/treeshaking/components/events/index.d.ts +78 -0
  194. package/dist/treeshaking/components/events/index.mjs +26 -0
  195. package/dist/treeshaking/components/events/types.d.ts +73 -0
  196. package/dist/treeshaking/components/events/types.mjs +9 -0
  197. package/{src/components/events/utils.ts → dist/treeshaking/components/events/utils.d.ts} +7 -9
  198. package/dist/treeshaking/components/events/utils.mjs +6 -0
  199. package/dist/treeshaking/components/footer/OFooter.css +617 -0
  200. package/dist/treeshaking/components/footer/OFooter.vue.d.ts +46 -0
  201. package/dist/treeshaking/components/footer/OFooter.vue.mjs +7 -0
  202. package/dist/treeshaking/components/footer/OFooter.vue2.mjs +348 -0
  203. package/dist/treeshaking/components/footer/index.d.ts +89 -0
  204. package/dist/treeshaking/components/footer/index.mjs +9 -0
  205. package/dist/treeshaking/components/header/OHeader.css +65 -0
  206. package/dist/treeshaking/components/header/OHeader.vue.d.ts +30 -0
  207. package/dist/treeshaking/components/header/OHeader.vue.mjs +7 -0
  208. package/dist/treeshaking/components/header/OHeader.vue2.mjs +118 -0
  209. package/dist/treeshaking/components/header/OHeaderMobile.css +106 -0
  210. package/dist/treeshaking/components/header/OHeaderMobile.vue.d.ts +178 -0
  211. package/dist/treeshaking/components/header/OHeaderMobile.vue.mjs +7 -0
  212. package/dist/treeshaking/components/header/OHeaderMobile.vue2.mjs +141 -0
  213. package/dist/treeshaking/components/header/components/HeaderContent.css +1062 -0
  214. package/dist/treeshaking/components/header/components/HeaderContent.vue.d.ts +13 -0
  215. package/dist/treeshaking/components/header/components/HeaderContent.vue.mjs +7 -0
  216. package/dist/treeshaking/components/header/components/HeaderContent.vue2.mjs +235 -0
  217. package/dist/treeshaking/components/header/components/HeaderNav.css +141 -0
  218. package/dist/treeshaking/components/header/components/HeaderNav.vue.d.ts +19 -0
  219. package/dist/treeshaking/components/header/components/HeaderNav.vue.mjs +7 -0
  220. package/dist/treeshaking/components/header/components/HeaderNav.vue2.mjs +207 -0
  221. package/dist/treeshaking/components/header/components/HeaderNavMobile.css +419 -0
  222. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue.d.ts +36 -0
  223. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue.mjs +7 -0
  224. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue2.mjs +229 -0
  225. package/dist/treeshaking/components/header/index.d.ts +153 -0
  226. package/dist/treeshaking/components/header/index.mjs +16 -0
  227. package/dist/treeshaking/components/header/types.d.ts +85 -0
  228. package/dist/treeshaking/components/header/types.mjs +9 -0
  229. package/dist/treeshaking/components/header-language-switcher/OHeaderLanguageSwitcher.css +140 -0
  230. package/dist/treeshaking/components/header-language-switcher/OHeaderLanguageSwitcher.vue.d.ts +58 -0
  231. package/dist/treeshaking/components/header-language-switcher/OHeaderLanguageSwitcher.vue.mjs +8 -0
  232. package/dist/treeshaking/components/header-language-switcher/OHeaderLanguageSwitcher.vue2.mjs +125 -0
  233. package/dist/treeshaking/components/header-language-switcher/OHeaderLanguageSwitcher2.css +11 -0
  234. package/dist/treeshaking/components/header-language-switcher/index.d.ts +105 -0
  235. package/dist/treeshaking/components/header-language-switcher/index.mjs +9 -0
  236. package/dist/treeshaking/components/header-search/OHeaderSearch.css +199 -0
  237. package/dist/treeshaking/components/header-search/OHeaderSearch.vue.d.ts +1032 -0
  238. package/dist/treeshaking/components/header-search/OHeaderSearch.vue.mjs +7 -0
  239. package/dist/treeshaking/components/header-search/OHeaderSearch.vue2.mjs +419 -0
  240. package/dist/treeshaking/components/header-search/index.d.ts +607 -0
  241. package/dist/treeshaking/components/header-search/index.mjs +9 -0
  242. package/dist/treeshaking/components/header-source-code/OHeaderSourceCode.css +133 -0
  243. package/dist/treeshaking/components/header-source-code/OHeaderSourceCode.vue.d.ts +18 -0
  244. package/dist/treeshaking/components/header-source-code/OHeaderSourceCode.vue.mjs +7 -0
  245. package/dist/treeshaking/components/header-source-code/OHeaderSourceCode.vue2.mjs +88 -0
  246. package/dist/treeshaking/components/header-source-code/index.d.ts +23 -0
  247. package/dist/treeshaking/components/header-source-code/index.mjs +9 -0
  248. package/dist/treeshaking/components/header-theme/OHeaderTheme.css +48 -0
  249. package/dist/treeshaking/components/header-theme/OHeaderTheme.vue.d.ts +25 -0
  250. package/dist/treeshaking/components/header-theme/OHeaderTheme.vue.mjs +7 -0
  251. package/dist/treeshaking/components/header-theme/OHeaderTheme.vue2.mjs +86 -0
  252. package/dist/treeshaking/components/header-theme/index.d.ts +50 -0
  253. package/dist/treeshaking/components/header-theme/index.mjs +9 -0
  254. package/dist/treeshaking/components/header-user/OHeaderUser.css +135 -0
  255. package/dist/treeshaking/components/header-user/OHeaderUser.vue.d.ts +40 -0
  256. package/dist/treeshaking/components/header-user/OHeaderUser.vue.mjs +8 -0
  257. package/dist/treeshaking/components/header-user/OHeaderUser.vue2.mjs +121 -0
  258. package/dist/treeshaking/components/header-user/OHeaderUser2.css +80 -0
  259. package/dist/treeshaking/components/header-user/index.d.ts +53 -0
  260. package/dist/treeshaking/components/header-user/index.mjs +9 -0
  261. package/dist/treeshaking/components/meeting/OMeetingCalendar.css +978 -0
  262. package/dist/treeshaking/components/meeting/OMeetingCalendar.vue.d.ts +297 -0
  263. package/dist/treeshaking/components/meeting/OMeetingCalendar.vue.mjs +510 -0
  264. package/dist/treeshaking/components/meeting/OMeetingCalendar.vue3.mjs +5 -0
  265. package/dist/treeshaking/components/meeting/OMeetingForm.css +767 -0
  266. package/dist/treeshaking/components/meeting/OMeetingForm.vue.d.ts +141 -0
  267. package/dist/treeshaking/components/meeting/OMeetingForm.vue.mjs +1020 -0
  268. package/dist/treeshaking/components/meeting/OMeetingForm.vue4.mjs +6 -0
  269. package/dist/treeshaking/components/meeting/OMeetingForm2.css +361 -0
  270. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.css +1342 -0
  271. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.vue.d.ts +644 -0
  272. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.vue.mjs +890 -0
  273. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.vue4.mjs +6 -0
  274. package/dist/treeshaking/components/meeting/OMeetingMyCalendar2.css +325 -0
  275. package/dist/treeshaking/components/meeting/OMeetingPlayback.css +256 -0
  276. package/dist/treeshaking/components/meeting/OMeetingPlayback.vue.d.ts +94 -0
  277. package/dist/treeshaking/components/meeting/OMeetingPlayback.vue.mjs +328 -0
  278. package/dist/treeshaking/components/meeting/OMeetingPlayback.vue3.mjs +5 -0
  279. package/dist/treeshaking/components/meeting/OMeetingSigCalendar.css +224 -0
  280. package/dist/treeshaking/components/meeting/OMeetingSigCalendar.vue.d.ts +26 -0
  281. package/dist/treeshaking/components/meeting/OMeetingSigCalendar.vue.mjs +396 -0
  282. package/dist/treeshaking/components/meeting/OMeetingSigCalendar.vue3.mjs +5 -0
  283. package/dist/treeshaking/components/meeting/components/OMeetingCalendarList.css +421 -0
  284. package/dist/treeshaking/components/meeting/components/OMeetingCalendarList.vue.d.ts +29 -0
  285. package/dist/treeshaking/components/meeting/components/OMeetingCalendarList.vue.mjs +395 -0
  286. package/dist/treeshaking/components/meeting/components/OMeetingCalendarList.vue3.mjs +5 -0
  287. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector.css +382 -0
  288. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector.vue.d.ts +664 -0
  289. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector.vue.mjs +132 -0
  290. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector.vue4.mjs +6 -0
  291. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector2.css +346 -0
  292. package/dist/treeshaking/components/meeting/components/OMeetingDetail.css +113 -0
  293. package/dist/treeshaking/components/meeting/components/OMeetingDetail.vue.d.ts +13 -0
  294. package/dist/treeshaking/components/meeting/components/OMeetingDetail.vue.mjs +189 -0
  295. package/dist/treeshaking/components/meeting/components/OMeetingDetail.vue3.mjs +5 -0
  296. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles.css +564 -0
  297. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles.vue.d.ts +20 -0
  298. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles.vue.mjs +426 -0
  299. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles.vue4.mjs +6 -0
  300. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles2.css +347 -0
  301. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackVideo.css +431 -0
  302. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackVideo.vue.d.ts +17 -0
  303. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackVideo.vue.mjs +244 -0
  304. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackVideo.vue3.mjs +5 -0
  305. package/dist/treeshaking/components/meeting/components/OMeetingSigAside.css +171 -0
  306. package/dist/treeshaking/components/meeting/components/OMeetingSigAside.vue.d.ts +16 -0
  307. package/dist/treeshaking/components/meeting/components/OMeetingSigAside.vue.mjs +112 -0
  308. package/dist/treeshaking/components/meeting/components/OMeetingSigAside.vue3.mjs +5 -0
  309. package/dist/treeshaking/components/meeting/composables/useMeetingConfig.d.ts +14 -0
  310. package/dist/treeshaking/components/meeting/composables/useMeetingConfig.mjs +97 -0
  311. package/dist/treeshaking/components/meeting/config.d.ts +12 -0
  312. package/dist/treeshaking/components/meeting/config.mjs +19 -0
  313. package/dist/treeshaking/components/meeting/index.d.ts +829 -0
  314. package/dist/treeshaking/components/meeting/index.mjs +44 -0
  315. package/dist/treeshaking/components/meeting/types.d.ts +237 -0
  316. package/dist/treeshaking/components/meeting/types.mjs +17 -0
  317. package/dist/treeshaking/components/meeting/utils.d.ts +9 -0
  318. package/dist/treeshaking/components/meeting/utils.mjs +68 -0
  319. package/dist/treeshaking/components/search/OSearchInput.css +155 -0
  320. package/dist/treeshaking/components/search/OSearchInput.vue.d.ts +1025 -0
  321. package/dist/treeshaking/components/search/OSearchInput.vue.mjs +7 -0
  322. package/dist/treeshaking/components/search/OSearchInput.vue2.mjs +382 -0
  323. package/dist/treeshaking/components/search/composables/useImageSearch.d.ts +48 -0
  324. package/dist/treeshaking/components/search/composables/useImageSearch.mjs +134 -0
  325. package/dist/treeshaking/components/search/composables/useKeywordHighlight.d.ts +2 -0
  326. package/{src/components/search/composables/useKeywordHighlight.ts → dist/treeshaking/components/search/composables/useKeywordHighlight.mjs} +28 -30
  327. package/dist/treeshaking/components/search/composables/useSearchHistory.d.ts +14 -0
  328. package/{src/components/search/composables/useSearchHistory.ts → dist/treeshaking/components/search/composables/useSearchHistory.mjs} +58 -75
  329. package/dist/treeshaking/components/search/index.d.ts +600 -0
  330. package/dist/treeshaking/components/search/index.mjs +9 -0
  331. package/dist/treeshaking/components/search/internal/HighlightText.css +12 -0
  332. package/dist/treeshaking/components/search/internal/HighlightText.vue.d.ts +9 -0
  333. package/dist/treeshaking/components/search/internal/HighlightText.vue.mjs +7 -0
  334. package/dist/treeshaking/components/search/internal/HighlightText.vue2.mjs +33 -0
  335. package/dist/treeshaking/components/search/internal/SearchImageInput.css +213 -0
  336. package/dist/treeshaking/components/search/internal/SearchImageInput.vue.d.ts +736 -0
  337. package/dist/treeshaking/components/search/internal/SearchImageInput.vue.mjs +8 -0
  338. package/dist/treeshaking/components/search/internal/SearchImageInput.vue2.mjs +305 -0
  339. package/dist/treeshaking/components/search/internal/SearchImageInput2.css +38 -0
  340. package/dist/treeshaking/components/search/internal/SearchPanel.css +547 -0
  341. package/dist/treeshaking/components/search/internal/SearchPanel.vue.d.ts +100 -0
  342. package/dist/treeshaking/components/search/internal/SearchPanel.vue.mjs +7 -0
  343. package/dist/treeshaking/components/search/internal/SearchPanel.vue2.mjs +249 -0
  344. package/{src/components/search/types.ts → dist/treeshaking/components/search/types.d.ts} +20 -25
  345. package/dist/treeshaking/components/section/OSection.css +173 -0
  346. package/dist/treeshaking/components/section/OSection.vue.d.ts +37 -0
  347. package/dist/treeshaking/components/section/OSection.vue.mjs +7 -0
  348. package/dist/treeshaking/components/section/OSection.vue2.mjs +93 -0
  349. package/dist/treeshaking/components/section/index.d.ts +47 -0
  350. package/dist/treeshaking/components/section/index.mjs +9 -0
  351. package/dist/treeshaking/i18n/en.mjs +281 -0
  352. package/{src/i18n/index.ts → dist/treeshaking/i18n/index.mjs} +49 -56
  353. package/dist/treeshaking/i18n/zh.mjs +271 -0
  354. package/{src/index.ts → dist/treeshaking/index.d.ts} +1 -3
  355. package/dist/treeshaking/index.mjs +51 -0
  356. package/dist/treeshaking/shared/provide.mjs +4 -0
  357. package/package.json +15 -5
  358. package/docs/design.md +0 -27
  359. package/docs/design_banner.md +0 -41
  360. package/docs/design_section.md +0 -27
  361. package/scripts/generate-components-index.js +0 -62
  362. package/src/assets/events/svg-icons/icon-checked.svg +0 -3
  363. package/src/assets/events/svg-icons/icon-competition.svg +0 -7
  364. package/src/assets/events/svg-icons/icon-events.svg +0 -4
  365. package/src/assets/events/svg-icons/icon-release.svg +0 -4
  366. package/src/assets/events/svg-icons/icon-summit.svg +0 -4
  367. package/src/assets/meeting/empty.png +0 -0
  368. package/src/assets/meeting/svg-icons/icon-all.svg +0 -4
  369. package/src/assets/meeting/svg-icons/icon-backward.svg +0 -4
  370. package/src/assets/meeting/svg-icons/icon-calendar.svg +0 -3
  371. package/src/assets/meeting/svg-icons/icon-cancel.svg +0 -4
  372. package/src/assets/meeting/svg-icons/icon-captions.svg +0 -4
  373. package/src/assets/meeting/svg-icons/icon-close-captions.svg +0 -6
  374. package/src/assets/meeting/svg-icons/icon-close-fullscreen.svg +0 -6
  375. package/src/assets/meeting/svg-icons/icon-copy.svg +0 -4
  376. package/src/assets/meeting/svg-icons/icon-create.svg +0 -5
  377. package/src/assets/meeting/svg-icons/icon-delete.svg +0 -7
  378. package/src/assets/meeting/svg-icons/icon-empty.svg +0 -65
  379. package/src/assets/meeting/svg-icons/icon-event.svg +0 -4
  380. package/src/assets/meeting/svg-icons/icon-export.svg +0 -3
  381. package/src/assets/meeting/svg-icons/icon-forward.svg +0 -4
  382. package/src/assets/meeting/svg-icons/icon-fullscreen.svg +0 -6
  383. package/src/assets/meeting/svg-icons/icon-help.svg +0 -3
  384. package/src/assets/meeting/svg-icons/icon-important.svg +0 -4
  385. package/src/assets/meeting/svg-icons/icon-info.svg +0 -3
  386. package/src/assets/meeting/svg-icons/icon-meet.svg +0 -4
  387. package/src/assets/meeting/svg-icons/icon-meeting-message.svg +0 -5
  388. package/src/assets/meeting/svg-icons/icon-meeting.svg +0 -4
  389. package/src/assets/meeting/svg-icons/icon-play.svg +0 -5
  390. package/src/assets/meeting/svg-icons/icon-playing-tip.svg +0 -7
  391. package/src/assets/meeting/svg-icons/icon-playing.svg +0 -5
  392. package/src/assets/meeting/svg-icons/icon-question.svg +0 -4
  393. package/src/assets/meeting/svg-icons/icon-sound.svg +0 -5
  394. package/src/assets/meeting/svg-icons/icon-speaker.svg +0 -3
  395. package/src/assets/meeting/svg-icons/icon-summit.svg +0 -4
  396. package/src/assets/meeting/svg-icons/icon-telligent.svg +0 -3
  397. package/src/assets/meeting/svg-icons/icon-tip.svg +0 -3
  398. package/src/assets/meeting/svg-icons/icon-todo.svg +0 -4
  399. package/src/assets/meeting/transparent.png +0 -0
  400. package/src/assets/styles/element-plus.scss +0 -277
  401. package/src/assets/svg-icons/icon-arrow-left.svg +0 -3
  402. package/src/assets/svg-icons/icon-avatar-line.svg +0 -3
  403. package/src/assets/svg-icons/icon-caret-left.svg +0 -3
  404. package/src/assets/svg-icons/icon-caret-right.svg +0 -3
  405. package/src/assets/svg-icons/icon-chevron-down.svg +0 -3
  406. package/src/assets/svg-icons/icon-chevron-right.svg +0 -3
  407. package/src/assets/svg-icons/icon-chevron-up.svg +0 -3
  408. package/src/assets/svg-icons/icon-close.svg +0 -3
  409. package/src/assets/svg-icons/icon-delete-hover.svg +0 -4
  410. package/src/assets/svg-icons/icon-delete.svg +0 -7
  411. package/src/assets/svg-icons/icon-filter.svg +0 -3
  412. package/src/assets/svg-icons/icon-header-back.svg +0 -3
  413. package/src/assets/svg-icons/icon-header-delete.svg +0 -3
  414. package/src/assets/svg-icons/icon-header-menu.svg +0 -3
  415. package/src/assets/svg-icons/icon-header-person.svg +0 -3
  416. package/src/assets/svg-icons/icon-header-search.svg +0 -4
  417. package/src/assets/svg-icons/icon-image-close.svg +0 -4
  418. package/src/assets/svg-icons/icon-image-upload.svg +0 -3
  419. package/src/assets/svg-icons/icon-image-zoomin.svg +0 -3
  420. package/src/assets/svg-icons/icon-loading.svg +0 -4
  421. package/src/assets/svg-icons/icon-locale.svg +0 -3
  422. package/src/assets/svg-icons/icon-log-off.svg +0 -3
  423. package/src/assets/svg-icons/icon-message.svg +0 -3
  424. package/src/assets/svg-icons/icon-moon.svg +0 -3
  425. package/src/assets/svg-icons/icon-outlink.svg +0 -3
  426. package/src/assets/svg-icons/icon-overview.svg +0 -3
  427. package/src/assets/svg-icons/icon-refresh.svg +0 -3
  428. package/src/assets/svg-icons/icon-search.svg +0 -3
  429. package/src/assets/svg-icons/icon-setting.svg +0 -3
  430. package/src/assets/svg-icons/icon-sun.svg +0 -3
  431. package/src/assets/svg-icons/icon-tips.svg +0 -3
  432. package/src/components/activity/OActivityApproval.vue +0 -868
  433. package/src/components/activity/OActivityForm.vue +0 -548
  434. package/src/components/activity/OActivityMyCalendar.vue +0 -1540
  435. package/src/components/activity/composables/useActivityConfig.ts +0 -141
  436. package/src/components/activity/config.ts +0 -1
  437. package/src/components/activity/index.ts +0 -24
  438. package/src/components/activity/types.ts +0 -95
  439. package/src/components/banner/OBanner.vue +0 -288
  440. package/src/components/banner/OBannerContent.vue +0 -175
  441. package/src/components/banner/index.ts +0 -18
  442. package/src/components/banner/types.ts +0 -39
  443. package/src/components/common/AppAvatar.vue +0 -83
  444. package/src/components/common/ClientOnly.vue +0 -13
  445. package/src/components/common/ContentWrapper.vue +0 -85
  446. package/src/components/common/MoreText.vue +0 -124
  447. package/src/components/common/ThFilter.vue +0 -330
  448. package/src/components/config-provider/OPlusConfigProvider.vue +0 -32
  449. package/src/components/config-provider/index.ts +0 -10
  450. package/src/components/cookie-notice/OCookieNotice.vue +0 -575
  451. package/src/components/cookie-notice/index.ts +0 -10
  452. package/src/components/element-plus/OElCookieNotice.vue +0 -603
  453. package/src/components/element-plus/index.ts +0 -3
  454. package/src/components/events/OEventsApply.vue +0 -509
  455. package/src/components/events/OEventsCalendar.vue +0 -600
  456. package/src/components/events/OEventsList.vue +0 -461
  457. package/src/components/events/config.ts +0 -35
  458. package/src/components/events/index.ts +0 -24
  459. package/src/components/events/types.ts +0 -84
  460. package/src/components/footer/OFooter.vue +0 -577
  461. package/src/components/footer/index.ts +0 -10
  462. package/src/components/header/OHeader.vue +0 -157
  463. package/src/components/header/OHeaderMobile.vue +0 -184
  464. package/src/components/header/components/HeaderContent.vue +0 -1125
  465. package/src/components/header/components/HeaderNav.vue +0 -278
  466. package/src/components/header/components/HeaderNavMobile.vue +0 -380
  467. package/src/components/header/index.ts +0 -18
  468. package/src/components/header/types.ts +0 -96
  469. package/src/components/header-language-switcher/OHeaderLanguageSwitcher.vue +0 -253
  470. package/src/components/header-language-switcher/index.ts +0 -10
  471. package/src/components/header-search/OHeaderSearch.vue +0 -628
  472. package/src/components/header-search/index.ts +0 -10
  473. package/src/components/header-source-code/OHeaderSourceCode.vue +0 -151
  474. package/src/components/header-source-code/index.ts +0 -10
  475. package/src/components/header-theme/OHeaderTheme.vue +0 -132
  476. package/src/components/header-theme/index.ts +0 -10
  477. package/src/components/header-user/OHeaderUser.vue +0 -238
  478. package/src/components/header-user/index.ts +0 -10
  479. package/src/components/meeting/OMeetingCalendar.vue +0 -943
  480. package/src/components/meeting/OMeetingForm.vue +0 -1131
  481. package/src/components/meeting/OMeetingMyCalendar.vue +0 -1601
  482. package/src/components/meeting/OMeetingPlayback.vue +0 -469
  483. package/src/components/meeting/OMeetingSigCalendar.vue +0 -500
  484. package/src/components/meeting/components/OMeetingCalendarList.vue +0 -626
  485. package/src/components/meeting/components/OMeetingCalendarSelector.vue +0 -213
  486. package/src/components/meeting/components/OMeetingDetail.vue +0 -285
  487. package/src/components/meeting/components/OMeetingPlaybackSubtitles.vue +0 -615
  488. package/src/components/meeting/components/OMeetingPlaybackVideo.vue +0 -741
  489. package/src/components/meeting/components/OMeetingSigAside.vue +0 -205
  490. package/src/components/meeting/composables/useMeetingConfig.ts +0 -108
  491. package/src/components/meeting/config.ts +0 -48
  492. package/src/components/meeting/index.ts +0 -45
  493. package/src/components/meeting/types.ts +0 -270
  494. package/src/components/meeting/utils.ts +0 -70
  495. package/src/components/search/OSearchInput.vue +0 -526
  496. package/src/components/search/composables/useImageSearch.ts +0 -157
  497. package/src/components/search/index.ts +0 -23
  498. package/src/components/search/internal/HighlightText.vue +0 -37
  499. package/src/components/search/internal/SearchImageInput.vue +0 -498
  500. package/src/components/search/internal/SearchPanel.vue +0 -431
  501. package/src/components/section/OSection.vue +0 -178
  502. package/src/components/section/index.ts +0 -10
  503. package/src/draft/Banner.vue +0 -265
  504. package/src/draft/ButtonCards.vue +0 -106
  505. package/src/draft/Feature.vue +0 -134
  506. package/src/draft/Footer.vue +0 -519
  507. package/src/draft/HorizontalAnchor.vue +0 -165
  508. package/src/draft/ItemSwiper.vue +0 -133
  509. package/src/draft/Logo.vue +0 -141
  510. package/src/draft/LogoCard.vue +0 -75
  511. package/src/draft/LogoV2.vue +0 -19
  512. package/src/draft/MainCard.vue +0 -38
  513. package/src/draft/MultiCard.vue +0 -95
  514. package/src/draft/MultiIconCard.vue +0 -74
  515. package/src/draft/OInfoCard.vue +0 -176
  516. package/src/draft/Process.vue +0 -81
  517. package/src/draft/Section.vue +0 -167
  518. package/src/draft/SingleTabCard.vue +0 -85
  519. package/src/draft/SliderCard.vue +0 -111
  520. package/src/env.d.ts +0 -16
  521. package/src/i18n/en.ts +0 -278
  522. package/src/i18n/zh.ts +0 -268
  523. package/src/shared/provide.ts +0 -6
  524. package/src/shims-vue-dompurify-html.d.ts +0 -17
  525. package/src/vue.d.ts +0 -10
  526. package/tsconfig.json +0 -37
  527. package/vite.config.ts +0 -123
@@ -1,1601 +0,0 @@
1
- <script setup lang="ts">
2
- import {
3
- DialogActionT, OButton,
4
- OCollapse,
5
- OCollapseItem,
6
- ODialog,
7
- ODivider,
8
- OIcon,
9
- OIconArrowLeft,
10
- OIconArrowRight,
11
- OIconChevronLeft,
12
- OIconChevronRight,
13
- OLink,
14
- ORadio,
15
- ORadioGroup,
16
- OScroller,
17
- OTag,
18
- useMessage,
19
- } from '@opensig/opendesign';
20
- import { ElCalendar } from 'element-plus';
21
- import { computed, nextTick, onMounted, ref, onUnmounted, watch } from 'vue';
22
- import OMeetingDetail from './components/OMeetingDetail.vue';
23
- import { CalendarDataType, MeetingGroupType, MeetingItemT, PageParamsT } from './types.ts';
24
- import dayjs from 'dayjs';
25
- import { INTERVAL_DAY, INTERVAL_MONTH, INTERVAL_WEEK } from './config.ts';
26
- import { formatDate, getDateNumber } from './utils.ts';
27
- import { useMeetingConfig } from './composables/useMeetingConfig';
28
- import { useDebounceFn } from '@vueuse/core';
29
- import { useScreen } from '@opendesign-plus/composables';
30
- import { Locales } from '@/i18n';
31
- import IconCopy from '~icons/meeting/icon-copy.svg';
32
-
33
- const message = useMessage(null);
34
- const tableLoading = ref(false); // 列表数据加载状态
35
- const currentPage = ref(1); // 分页-当前页
36
- const pageSize = ref(50); // 分页-每页数量
37
- const total = ref<number | null>(null); // 分页-总数
38
- const list = ref<MeetingItemT[]>([]); // 列表数据
39
- const originList = ref<MeetingItemT[]>([]); // 原始数据
40
- const canLoadMore = computed(() => total.value === null || originList.value.length < total.value);
41
- const reloadAll = ref(false); // 是否需要清空数据
42
- const { t, locale, getPointStr, getConfig, getWeekFromDate } = useMeetingConfig();
43
- const isEn = computed(() => locale.value === Locales.EN);
44
-
45
- const props = withDefaults(defineProps<{
46
- cancelSubMeetingRequest: any;
47
- deleteMeetingRequest: any;
48
- getMeetingListRequest: any;
49
- groupType: MeetingGroupType
50
- }>(), {
51
- groupType: MeetingGroupType.SIG,
52
- });
53
-
54
- const dialogLoading = ref(false); // 弹窗按钮状态
55
- const { isPhone } = useScreen();
56
- const expanded = ref<(string | number)[]>([]); // 展开的数据, sub_id 或 id
57
- const emits = defineEmits(['edit']);
58
- // -------------------- 自动加载下一页 --------------------
59
- const nextLoading = ref(false);
60
- const bottomReached = ref(false);
61
-
62
- const getList = async () => {
63
- if (!props.getMeetingListRequest) {
64
- return;
65
- }
66
- if (nextLoading.value) {
67
- return;
68
- }
69
- try {
70
- if (total.value !== null && total.value > 0 && (currentPage.value - 1) * pageSize.value > total.value) {
71
- return;
72
- }
73
- // 当月数据已加载完,手动切换下一月
74
- if (!canLoadMore.value && isPhone.value) {
75
- changeMonth('next-month');
76
- return;
77
- }
78
- tableLoading.value = true;
79
- nextLoading.value = true;
80
- const res = await props.getMeetingListRequest({
81
- page: currentPage.value,
82
- size: pageSize.value,
83
- order_by: 'date',
84
- order_type: 'asc',
85
- month: dayjs(selectedDate.value).format('YYYY-MM'),
86
- } as unknown as PageParamsT);
87
- const tempList = (res.data || [])
88
- .map((item: MeetingItemT) => {
89
- const {
90
- is_cycle,
91
- date,
92
- start,
93
- end,
94
- cycle_sub,
95
- cycle_start_date,
96
- cycle_end_date,
97
- cycle_start,
98
- cycle_end,
99
- cycle_type,
100
- cycle_interval,
101
- cycle_point,
102
- } =
103
- item;
104
- if (is_cycle) {
105
- let timeRange = '';
106
- let cycleType = '';
107
- if (cycle_type === INTERVAL_DAY) {
108
- cycleType = t('meeting.cycleDay');
109
- }
110
- if (cycle_type === INTERVAL_WEEK) {
111
- if (cycle_interval > 1) {
112
- cycleType = t('meeting.cycleWeek.other', [getPointStr(cycle_type, cycle_point), cycle_interval]);
113
- } else {
114
- cycleType = t('meeting.cycleWeek.one', [getPointStr(cycle_type, cycle_point)]);
115
- }
116
- }
117
- if (cycle_type === INTERVAL_MONTH) {
118
- cycleType = t('meeting.cycleMonth', [getPointStr(cycle_type, cycle_point)]);
119
- }
120
- timeRange = t('meeting.cycleMeetingText2', {
121
- startDate: cycle_start_date,
122
- endDate: cycle_end_date,
123
- startTime: cycle_start,
124
- endTime: cycle_end,
125
- cycleType,
126
- });
127
- const obsData = item.obs_data?.filter((v) => v.text_video_url) || [];
128
- return cycle_sub
129
- .filter((v) => {
130
- return (
131
- dayjs(v.date).isBefore(dayjs(selectedDate.value).add(1, 'month').format('YYYY-MM-01')) &&
132
- !dayjs(v.date).isBefore(dayjs(selectedDate.value).format('YYYY-MM-01'))
133
- );
134
- })
135
- .map(({ id: _id, ...sub }) => {
136
- return {
137
- ...item,
138
- ...sub,
139
- timeRange: timeRange,
140
- dateRange: `${ sub.start }-${ sub.end }`,
141
- hasObsData: obsData.find((v) => v.sub_id === sub.sub_id),
142
- time: `${ sub.start }-${ sub.end }`,
143
- isExpired: dayjs(`${ sub.date } ${ sub.start }`).isBefore(dayjs()),
144
- };
145
- });
146
- }
147
- return [
148
- {
149
- ...item,
150
- dateRange: `${ start } - ${ end }`,
151
- timeRange: `${ start } - ${ end }`,
152
- hasObsData: !!item.obs_data?.filter((v) => v.text_video_url)?.length,
153
- time: `${ start }-${ end }`,
154
- isExpired: dayjs(`${ date } ${ start }`).isBefore(dayjs()),
155
- },
156
- ];
157
- })
158
- .flat()
159
- .filter((v: MeetingItemT) => v.date.slice(0, 7) === formatDate(selectedDate.value, 'YYYY-MM-DD').slice(0, 7));
160
- // 如果需要清空,则完全替换
161
- // 如果页码为1,表示第一次加载
162
- // 如果是移动端,则一直往里填充数据
163
- if (reloadAll.value) {
164
- originList.value = res.data || [];
165
- list.value = tempList;
166
- } else {
167
- if (currentPage.value === 1 && !isPhone.value) {
168
- originList.value = res.data || [];
169
- list.value = tempList;
170
- } else {
171
- originList.value = [...originList.value, ...(res.data || [])];
172
- list.value = [...list.value, ...tempList];
173
- }
174
- }
175
- list.value.sort((a, b) => {
176
- if (a.date === b.date) {
177
- return getDateNumber(a.start) > getDateNumber(b.start) ? 1 : -1;
178
- } else {
179
- return dayjs(a.date).isAfter(dayjs(b.date)) ? 1 : -1;
180
- }
181
- });
182
- total.value = res?.total || 0;
183
- nextTick(() => {
184
- getSelectedDate();
185
- // 监听滚动事件以自动加载下一页
186
- if (scrollerRef.value && !isPhone.value) {
187
- updateScroller();
188
- }
189
- });
190
- } finally {
191
- tableLoading.value = false;
192
- nextLoading.value = false;
193
- bottomReached.value = false;
194
- reloadAll.value = false;
195
- }
196
- };
197
-
198
- const load = useDebounceFn(() => {
199
- if (!canLoadMore.value) return;
200
- if (isPhone.value) return;
201
- bottomReached.value = true;
202
- currentPage.value++;
203
- getList();
204
- }, 200);
205
- const handleScroll = useDebounceFn(() => {
206
- if (!canLoadMore.value) return;
207
- if (!isPhone.value) return;
208
- const scrollPosition = window.scrollY || window.pageYOffset;
209
- // 检测是否接近底部
210
- const windowHeight = window.innerHeight;
211
- const docHeight = document.documentElement.scrollHeight;
212
- const distanceToBottom = docHeight - (scrollPosition + windowHeight);
213
- // 当距离底部300px时开始加载
214
- if (distanceToBottom <= 300 && !nextLoading.value) {
215
- bottomReached.value = true;
216
- // 加载下一页
217
- currentPage.value++;
218
- getList();
219
- }
220
- }, 200);
221
- const calcIfAllDeleted = (date: string) => {
222
- const meetingsOfDate = list.value.filter((v) => v.date === date);
223
- return meetingsOfDate.length && meetingsOfDate.every((v) => v.is_delete);
224
- };
225
-
226
- const scrollerScroll = (el: any) => {
227
- const container = el.target;
228
- if (!container) return;
229
- const scrollTop = container.scrollTop; // 已经滚动的距离
230
- const scrollHeight = container.scrollHeight; // 内容总高度
231
- const clientHeight = container.clientHeight; // 容器可视高度
232
- if (scrollTop + clientHeight >= scrollHeight) {
233
- load();
234
- }
235
- };
236
- const updateScroller = () => {
237
- const scrollerContainerEl = scrollerRef.value.getContainerEl();
238
- scrollerContainerEl.addEventListener('scroll', scrollerScroll);
239
- };
240
-
241
- const detailRefs = ref<Record<string, any>>({}); // 会议详情组件实例
242
- const getDetailRefs = (insRef: any, id: number) => {
243
- if (insRef && id) {
244
- detailRefs.value[id] = insRef;
245
- }
246
- };
247
- const copyInfo = async (idx: number | string) => {
248
- const instance = detailRefs.value[idx];
249
- await instance.copyInfo();
250
- message.success({
251
- content: t('common.copySuccess'),
252
- });
253
- };
254
- // -------------------- 取消 --------------------
255
- const cancelVisible = ref(false); // 取消弹窗
256
- const currentRow = ref<MeetingItemT | null>(null); // 当前激活行,用于取消事件
257
- // 打开编辑会议弹窗
258
- const editMeeting = (row: MeetingItemT) => {
259
- emits('edit', row, 'whole');
260
- };
261
- // 打开取消会议弹窗
262
- const cancelMeeting = (row: MeetingItemT) => {
263
- currentRow.value = row;
264
- cancelVisible.value = true;
265
- };
266
- // 确定取消会议
267
- const confirmCancel = async () => {
268
- if (!props.deleteMeetingRequest) {
269
- return;
270
- }
271
- if (!currentRow.value) {
272
- return;
273
- }
274
- try {
275
- dialogLoading.value = true;
276
- const flag = await props.deleteMeetingRequest(currentRow.value.id);
277
- if (typeof flag === 'boolean' && !flag) {
278
- return;
279
- }
280
- cancelVisible.value = false;
281
- message.success({
282
- content: `${ t('meeting.meetingCancel', [currentRow.value.topic]) }`,
283
- });
284
- reloadAll.value = true;
285
- getList();
286
- } finally {
287
- dialogLoading.value = false;
288
- }
289
- };
290
- const handleDialogVisible = ref(false);
291
- const handleDialogType = ref('');
292
- const handleDialogRow = ref<MeetingItemT | null>(null);
293
- const handleOptions = [
294
- {
295
- label: t('meeting.meetingSingle'),
296
- value: 'single',
297
- },
298
- {
299
- label: t('meeting.meetingCycle'),
300
- value: 'whole',
301
- },
302
- ];
303
-
304
- const handleType = ref('single');
305
- const handleItem = (row: MeetingItemT, type: 'edit' | 'cancel') => {
306
- if (row.is_cycle) {
307
- handleDialogRow.value = row;
308
- handleDialogType.value = type;
309
- handleDialogVisible.value = true;
310
- } else {
311
- if (type === 'cancel') {
312
- cancelMeeting(row);
313
- } else {
314
- editMeeting(row);
315
- }
316
- }
317
- };
318
- const cancelHandleItem = () => {
319
- handleDialogVisible.value = false;
320
- handleDialogRow.value = null;
321
- handleDialogType.value = '';
322
- handleType.value = 'single';
323
- };
324
- const confirmHandleItem = async () => {
325
- const row = handleDialogRow.value;
326
- if (!row) {
327
- return;
328
- }
329
- if (handleDialogType.value === 'cancel') {
330
- try {
331
- let flag = undefined;
332
- dialogLoading.value = true;
333
- if (handleType.value === 'single' && row.is_cycle) {
334
- if (!props.cancelSubMeetingRequest) {
335
- return;
336
- }
337
- flag = await props.cancelSubMeetingRequest(row.sub_id);
338
- } else {
339
- if (!props.deleteMeetingRequest) {
340
- return;
341
- }
342
- flag = await props.deleteMeetingRequest(row.id);
343
- }
344
- if (typeof flag === 'boolean' && !flag) {
345
- return;
346
- }
347
- message.success({
348
- content: `${ t('meeting.meetingCancel', [row.topic]) }`,
349
- });
350
- cancelHandleItem();
351
- reloadAll.value = true;
352
- getList();
353
- } finally {
354
- dialogLoading.value = false;
355
- }
356
- } else {
357
- emits('edit', row, handleType.value);
358
- cancelHandleItem();
359
- }
360
- };
361
-
362
- // -------------------- 日历 --------------------
363
- const calendarRef = ref();
364
- const allDateList = computed<string[]>(() => [...new Set(list.value.map((v) => v.date))].sort((a, b) => (dayjs(a).isBefore(dayjs(b)) ? -1 : 1)));
365
- const dateList = computed<string[]>(() =>
366
- [...new Set(list.value.filter((v) => !v.isExpired && !v.is_delete).map((v) => v.date))].sort((a, b) => (dayjs(a).isBefore(dayjs(b)) ? -1 : 1)),
367
- );
368
- const selectedDate = ref();
369
-
370
- const getSelectedDate = () => {
371
- const latest = dateList.value.find((v) => !dayjs(v).isBefore(dayjs(new Date()).format('YYYY-MM-DD')));
372
- if (latest) {
373
- selectedDate.value = latest;
374
- } else if (!selectedDate.value) {
375
- selectedDate.value = dayjs().format('YYYY-MM-DD');
376
- }
377
- calendarRef.value?.pickDay(dayjs(selectedDate.value));
378
- selectedDate.value = dayjs(selectedDate.value).format('YYYY-MM-DD');
379
- // 根据天再计算出需要展开的最近的会议
380
- const needExpand = list.value.find((v) => v.date === selectedDate.value && !v.isExpired && !v.is_delete);
381
- if (needExpand) {
382
- expanded.value = [needExpand.sub_id || needExpand.id];
383
- }
384
- };
385
-
386
- const cellClick = (e: PointerEvent & any, clickable: boolean) => {
387
- if (!clickable || !e.target?.className.includes('date-cell-text')) {
388
- e.stopPropagation();
389
- e.preventDefault();
390
- }
391
- };
392
-
393
- const changeMonth = (val: string) => {
394
- if (!calendarRef.value) return;
395
- currentPage.value = 1;
396
- total.value = null;
397
- window.scrollTo({
398
- top: 0,
399
- behavior: 'smooth',
400
- });
401
- calendarRef.value.selectDate(val);
402
- reloadAll.value = true;
403
- nextTick(() => {
404
- selectedDate.value = dayjs(calendarRef.value.selectedDay).format('YYYY-MM-DD');
405
- getList();
406
- });
407
- };
408
- // -------------------- 列表 --------------------
409
- interface GroupListItemT {
410
- date: string;
411
- list: MeetingItemT[];
412
- }
413
-
414
- const groupList = computed(() => {
415
- return list.value.reduce((prev: GroupListItemT[], cur: MeetingItemT) => {
416
- if (!prev.length) {
417
- return [
418
- {
419
- date: cur.date,
420
- list: [cur],
421
- },
422
- ];
423
- } else {
424
- const last = prev.at(-1);
425
- if (last?.date === cur.date) {
426
- last.list.push(cur);
427
- } else {
428
- prev.push({
429
- date: cur.date,
430
- list: [cur],
431
- });
432
- }
433
- return prev;
434
- }
435
- }, []);
436
- });
437
-
438
- // -------------------- 处理滚动事件 --------------------
439
- const scrollerRef = ref();
440
- watch(
441
- () => selectedDate.value,
442
- () => {
443
- scrollToSelectedDate(selectedDate.value);
444
- },
445
- );
446
- const scrollToSelectedDate = (date: string) => {
447
- const key = dayjs(date).format('YYYY-MM-DD');
448
- const targetEle = document.querySelector(`#group-title-${ key }`);
449
- if (targetEle) {
450
- if (isPhone.value) {
451
- window.scrollTo({
452
- top: (targetEle.parentElement?.offsetTop || 0) - 52,
453
- behavior: 'smooth',
454
- });
455
- } else {
456
- scrollerRef.value?.scrollTo({
457
- top: targetEle.parentElement?.offsetTop || 0,
458
- behavior: 'smooth',
459
- });
460
- }
461
- }
462
- };
463
- onMounted(() => {
464
- getList();
465
- // 添加滚动事件监听
466
- window.addEventListener('scroll', handleScroll);
467
- // 添加resize监听器
468
- window.addEventListener('resize', handleScroll);
469
- });
470
-
471
- onUnmounted(() => {
472
- window.removeEventListener('scroll', handleScroll);
473
- window.removeEventListener('resize', handleScroll);
474
- const scrollerContainerEl = scrollerRef.value?.getContainerEl();
475
- scrollerContainerEl?.removeEventListener('scroll', scrollerScroll);
476
- });
477
-
478
- const formatYearMonth = (date: string) => {
479
- const date2 = dayjs(date ? date : undefined);
480
- if (isEn.value) {
481
- return date2.format('MMMM YYYY');
482
- } else {
483
- return date2.format('YYYY MM月');
484
- }
485
- };
486
- const handleActions = computed<DialogActionT[]>(() => {
487
- return [
488
- {
489
- id: 'confirm',
490
- color: 'primary',
491
- label: t('common.confirm'),
492
- variant: 'solid',
493
- size: 'large',
494
- round: 'pill',
495
- loading: dialogLoading.value,
496
- onClick: () => {
497
- confirmHandleItem();
498
- },
499
- },
500
- {
501
- id: 'cancel',
502
- color: 'primary',
503
- label: t('common.cancel'),
504
- variant: 'outline',
505
- size: 'large',
506
- round: 'pill',
507
- onClick: () => {
508
- cancelHandleItem();
509
- },
510
- },
511
- ];
512
- });
513
- const cancelActions = computed<DialogActionT[]>(() => {
514
- return [
515
- {
516
- id: 'confirm',
517
- color: 'primary',
518
- label: t('common.confirm'),
519
- variant: 'solid',
520
- size: 'large',
521
- round: 'pill',
522
- loading: dialogLoading.value,
523
- onClick: () => {
524
- confirmCancel();
525
- },
526
- },
527
- {
528
- id: 'cancel',
529
- color: 'primary',
530
- label: t('common.cancel'),
531
- variant: 'outline',
532
- size: 'large',
533
- round: 'pill',
534
- onClick: () => {
535
- cancelVisible.value = false;
536
- },
537
- },
538
- ];
539
- });
540
- </script>
541
-
542
- <template>
543
- <div class="o-my-meeting-calendar">
544
- <div class="meeting-list">
545
- <div class="list-calendar-mb">
546
- <span>{{ formatYearMonth(selectedDate) }}</span>
547
- <span>
548
- <OIcon @click="changeMonth('prev-month')"><OIconChevronLeft /></OIcon>
549
- <OIcon @click="changeMonth('next-month')"><OIconChevronRight /></OIcon>
550
- </span>
551
- </div>
552
- <div class="list-calendar">
553
- <ElCalendar ref="calendarRef" v-model="selectedDate">
554
- <template #header>
555
- <span>{{ formatYearMonth(selectedDate) }}</span>
556
- <div>
557
- <OIcon @click="changeMonth('prev-month')">
558
- <OIconChevronLeft />
559
- </OIcon>
560
- <OIcon @click="changeMonth('next-month')">
561
- <OIconChevronRight />
562
- </OIcon>
563
- </div>
564
- </template>
565
- <template #date-cell="{ data }">
566
- <div
567
- @click="(e) => cellClick(e, allDateList.includes(data.day))"
568
- :class="{
569
- 'date-cell': true,
570
- 'is-selected': data.isSelected,
571
- 'is-today': formatDate(data.day) === formatDate(),
572
- clickable: allDateList.includes(data.day),
573
- expired: dayjs(formatDate()).isAfter(dayjs(data.day)),
574
- 'all-deleted': calcIfAllDeleted(data.day),
575
- }"
576
- :style="{
577
- '--dot-bg': `${getConfig(CalendarDataType.MEETING, 'color')}`
578
- }"
579
- >
580
- <div class="date-cell-text">
581
- {{ Number(data.day.split('-')[2]) }}
582
- </div>
583
- </div>
584
- </template>
585
- </ElCalendar>
586
- </div>
587
- <div class="list-wrapper" :class="!list.length ? 'is-empty' : ''">
588
- <OScroller
589
- ref="scrollerRef"
590
- @scrollend="load"
591
- v-if="list.length"
592
- class="scroller-container"
593
- show-type="hover"
594
- >
595
- <div class="list-body">
596
- <OCollapse v-model="expanded" :accordion="isPhone">
597
- <template v-for="(group, idx) in groupList" :key="group.date">
598
- <div class="list-month-change prev-month" v-if="idx === 0" @click="changeMonth('prev-month')">
599
- <OIcon>
600
- <OIconArrowLeft />
601
- </OIcon>
602
- <span>{{ t('meeting.preMonth') }}</span>
603
- </div>
604
- <div class="group-item" :class="idx === groupList.length - 1 && 'last-item'">
605
- <div
606
- :class="{
607
- 'group-bar': true,
608
- 'is-active': dayjs(selectedDate).format('YYYY-MM-DD') === group.date,
609
- 'is-end': group.list.every((row) => row.isExpired),
610
- }"
611
- >
612
- <div class="group-bar-line"></div>
613
- <div class="group-bar-dot"></div>
614
- </div>
615
- <div
616
- :class="{
617
- 'group-title': true,
618
- 'is-end': group.list.every((row) => row.isExpired),
619
- }"
620
- :id="`group-title-${dayjs(new Date(group.date)).format('YYYY-MM-DD')}`"
621
- >
622
- {{ dayjs(group.date).format('MM/DD') }} {{ getWeekFromDate(group.date) }}
623
- </div>
624
- <OCollapseItem
625
- v-for="(row, rowIdx) in group.list"
626
- :key="row.sub_id || row.id"
627
- :value="row.sub_id || row.id"
628
- :class="{
629
- 'last-item': idx === groupList.length - 1 && rowIdx === group.list.length - 1,
630
- 'is-delete': row.is_delete,
631
- 'is-end': row.isExpired,
632
- }"
633
- >
634
- <template #title>
635
- <div class="item-header">
636
- <div class="item-header-left">
637
- <div
638
- class="meeting-icon"
639
- :style="{
640
- backgroundColor: `${row.is_delete ? 'var(--o-color-info4)' : getConfig(CalendarDataType.MEETING, 'color')}`
641
- }"
642
- >
643
- <OIcon>
644
- <component :is="getConfig(CalendarDataType.MEETING, 'icon')" />
645
- </OIcon>
646
- </div>
647
- <div class="header-info">
648
- <div class="meeting-title">
649
- <div v-if="row.is_delete">{{ t('meeting.meetingCancelled') }}</div>
650
- <div class="title-wrapper">
651
- <div class="title-text">{{ row.topic }}</div>
652
- </div>
653
- <div class="tag-wrapper" v-if="row.is_cycle">
654
- <OTag color="primary" variant="outline">{{ t('meeting.cycle') }}</OTag>
655
- </div>
656
- </div>
657
- <div class="meeting-info">
658
- <span>{{ row.dateRange }}</span>
659
- <ODivider direction="v" />
660
- <span>
661
- {{ groupType === MeetingGroupType.GROUP ? t('meeting.groups') : t('meeting.sigs')
662
- }}: {{ row.group_name }}
663
- </span>
664
- </div>
665
- </div>
666
- </div>
667
- <div class="item-header-right" v-if="!row.is_delete">
668
- <OLink
669
- :hover-underline="false"
670
- v-if="!row.isExpired"
671
- target="_blank"
672
- :href="row.join_url"
673
- rel="noopener noreferrer"
674
- >
675
- {{ t('meeting.joinMeeting') }}
676
- <template #suffix>
677
- <OIcon>
678
- <OIconChevronRight></OIconChevronRight>
679
- </OIcon>
680
- </template>
681
- </OLink>
682
- <template v-else>
683
- <OLink
684
- :hover-underline="false"
685
- target="_blank"
686
- v-if="row.etherpad"
687
- :href="row.etherpad"
688
- >
689
- {{ t('meeting.meetingSummary') }}
690
- <template #suffix>
691
- <OIcon>
692
- <OIconChevronRight></OIconChevronRight>
693
- </OIcon>
694
- </template>
695
- </OLink>
696
- <OLink
697
- :hover-underline="false"
698
- target="_blank"
699
- :href="`/${locale}/video/${row.group_name}/${row.mid}/${row.date}`"
700
- v-if="row.hasObsData">
701
- {{ t('meeting.viewRecord') }}
702
- <template #suffix>
703
- <OIcon>
704
- <OIconChevronRight></OIconChevronRight>
705
- </OIcon>
706
- </template>
707
- </OLink>
708
- </template>
709
- </div>
710
- </div>
711
- <OIcon @click.stop="() => copyInfo(row.sub_id || row.id)" class="copy-icon">
712
- <IconCopy />
713
- </OIcon>
714
- </template>
715
- <div class="meeting-detail">
716
- <OMeetingDetail
717
- :show="expanded.includes(row.sub_id || row.id)"
718
- :data="row"
719
- :ref="(insRef) => getDetailRefs(insRef, row.sub_id || row.id)"
720
- from="my"
721
- />
722
- <div class="meeting-btn" v-if="!row.isExpired && !row.is_delete">
723
- <OButton color="normal" variant="text" @click="handleItem(row, 'edit')">
724
- {{ t('meeting.editMeeting') }}
725
- </OButton>
726
- <OButton color="normal" variant="text" @click="handleItem(row, 'cancel')">
727
- {{ t('meeting.cancelMeeting') }}
728
- </OButton>
729
- </div>
730
- </div>
731
- </OCollapseItem>
732
- <div class="height-placeholder"></div>
733
- </div>
734
- <template v-if="idx === groupList.length - 1">
735
- <div class="load-text" v-if="bottomReached">{{ t('common.loading') }}</div>
736
- <div class="list-month-change next-month" @click="changeMonth('next-month')">
737
- <OIcon>
738
- <OIconArrowRight />
739
- </OIcon>
740
- <span>{{ t('meeting.nextMonth') }}</span>
741
- </div>
742
- </template>
743
- </template>
744
- </OCollapse>
745
- </div>
746
- </OScroller>
747
- <slot name="empty" v-else-if="!tableLoading"></slot>
748
- </div>
749
- <ODialog
750
- v-model:visible="handleDialogVisible"
751
- main-class="handle-dialog"
752
- @close="cancelHandleItem"
753
- :actions="handleActions"
754
- >
755
- <template #header>
756
- {{
757
- t('meeting.meetingHandleText', [handleDialogType === 'edit' ? t('meeting.edit') : t('meeting.cancel')])
758
- }}
759
- </template>
760
- <ORadioGroup v-model="handleType">
761
- <ORadio v-for="t in handleOptions" :value="t.value" :key="t.value">{{ t.label }}</ORadio>
762
- </ORadioGroup>
763
- </ODialog>
764
- <ODialog v-model:visible="cancelVisible" main-class="cancel-dialog" :actions="cancelActions">
765
- <template #header>{{ t('meeting.confirmCancel') }}</template>
766
- <div class="dialog-content">{{ t('meeting.confirmCancelDesc', [currentRow?.topic]) }}</div>
767
- </ODialog>
768
- </div>
769
- </div>
770
- </template>
771
-
772
- <style lang="scss">
773
- .o-my-meeting-calendar {
774
- --meeting-card-radius: var(--o-radius-xs);
775
- --meeting-input-radius: var(--o-radius-xs);
776
- --meeting-cell-radius: var(--o-radius-xs);
777
-
778
- .header {
779
- display: flex;
780
- align-items: center;
781
- justify-content: space-between;
782
-
783
- .title {
784
- font-weight: 500;
785
- color: var(--o-color-info1);
786
- @include h2;
787
- }
788
-
789
- .desc {
790
- margin-top: 12px;
791
- color: var(--o-color-info2);
792
- @include tip1;
793
- }
794
- }
795
-
796
- .meeting-list {
797
- display: flex;
798
- flex-wrap: nowrap;
799
- gap: var(--o-gap-4);
800
- height: 100%;
801
- --phone-padding-top: 0;
802
- @include respond('pad_v') {
803
- flex-direction: column;
804
- gap: var(--o-gap-4);
805
- }
806
- @include respond('phone') {
807
- flex-direction: column;
808
- gap: var(--o-gap-3);
809
- --phone-padding-top: 56px;
810
- }
811
-
812
- .o-loading {
813
- .o-layer-mask {
814
- background-color: transparent;
815
- }
816
-
817
- .o-loading-icon {
818
- color: var(--layer-mask);
819
- }
820
- }
821
-
822
- .list-calendar-mb {
823
- display: none;
824
- align-items: center;
825
- justify-content: space-between;
826
- padding: 0 var(--grid--layout-padding);
827
-
828
- span:first-child {
829
- @include display2;
830
- }
831
-
832
- span:last-child {
833
- display: flex;
834
- align-items: center;
835
- }
836
-
837
- .o-icon {
838
- font-size: 24px;
839
- cursor: pointer;
840
-
841
- &:last-child {
842
- margin-left: 24px;
843
- }
844
- }
845
-
846
- @include respond('phone') {
847
- background-color: var(--o-color-fill1);
848
- display: flex;
849
- position: fixed;
850
- height: var(--phone-padding-top);
851
- z-index: 1;
852
- top: var(--layout-header-height);
853
- left: 0;
854
- right: 0;
855
- }
856
- }
857
-
858
- .list-calendar {
859
- flex-shrink: 0;
860
- width: 334px;
861
- background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent);
862
-
863
- @include respond('pad_h') {
864
- .el-calendar {
865
- .el-calendar__body {
866
- padding-left: 12px;
867
- padding-right: 12px;
868
-
869
- .el-calendar-table .date-cell {
870
- height: 40px;
871
- width: 28px;
872
-
873
- .date-cell-text {
874
- line-height: 24px;
875
- @include tip2;
876
- }
877
- }
878
- }
879
- }
880
- }
881
- @include respond('pad_v') {
882
- width: 100%;
883
- }
884
- @include respond('phone') {
885
- display: none;
886
- }
887
- .el-calendar {
888
- min-height: 460px;
889
- height: calc(100% - 54px);
890
- border-radius: var(--meeting-card-radius);
891
- background-color: transparent;
892
-
893
- .el-calendar__header {
894
- border-bottom: 1px solid var(--o-color-control4);
895
- color: var(--o-color-info1);
896
-
897
- & > span {
898
- font-weight: 500;
899
- @include h1;
900
- }
901
-
902
- & > div {
903
- display: flex;
904
- align-items: center;
905
- gap: var(--o-gap-5);
906
-
907
- .o-icon {
908
- font-size: 24px;
909
- cursor: pointer;
910
-
911
- &:hover {
912
- color: var(--o-color-primary1);
913
- }
914
-
915
- svg path {
916
- fill: currentColor;
917
- }
918
- }
919
- }
920
- }
921
-
922
- .el-calendar__body {
923
- .el-calendar-table {
924
- display: table;
925
-
926
- th {
927
- text-align: left;
928
- border: none;
929
- --o-color-control3-light: transparent;
930
- padding-left: calc(17px - 0.5em);
931
- }
932
-
933
- tr {
934
- --o-color-fill2: transparent;
935
- }
936
-
937
- td {
938
- background-color: transparent !important;
939
- border: none;
940
- text-align: center;
941
- transition: none;
942
- padding: 0;
943
-
944
- .el-calendar-day {
945
- padding: 0;
946
- height: fit-content;
947
- }
948
-
949
- div {
950
- cursor: default !important;
951
- }
952
-
953
- &:hover {
954
- .el-calendar-day {
955
- background-color: transparent;
956
- }
957
- }
958
- }
959
-
960
- .date-cell {
961
- height: 56px;
962
- width: 34px;
963
- position: relative;
964
- cursor: default !important;
965
-
966
- .date-cell-text {
967
- font-size: 14px;
968
- line-height: 34px;
969
- border-radius: var(--meeting-cell-radius);
970
- background-color: var(--o-color-control2-light);
971
- border: 1px solid transparent;
972
- }
973
-
974
- .date-cell-text {
975
- cursor: not-allowed !important;
976
- }
977
-
978
- &.clickable {
979
- .date-cell-text {
980
- cursor: pointer !important;
981
- }
982
-
983
- &:not(.is-selected) {
984
- .date-cell-text:hover {
985
- background-color: var(--o-color-control3-light);
986
- }
987
- }
988
- }
989
-
990
- &::after {
991
- content: '';
992
- position: absolute;
993
- bottom: 5px;
994
- left: 50%;
995
- transform: translateX(-50%);
996
- width: 8px;
997
- height: 8px;
998
- border-radius: 50%;
999
- }
1000
-
1001
- &.is-today {
1002
- .date-cell-text {
1003
- color: var(--o-color-primary1);
1004
- font-weight: bold;
1005
- background-color: var(--o-color-control3-light);
1006
- }
1007
- }
1008
-
1009
- &.is-selected {
1010
- .date-cell-text {
1011
- background-color: var(--o-color-control3-light);
1012
- border: 1px solid var(--o-color-primary1);
1013
- }
1014
- }
1015
-
1016
- &.clickable {
1017
- &::after {
1018
- background-color: var(--dot-bg);
1019
- }
1020
-
1021
- &.expired::after {
1022
- background-color: rgb(var(--o-grey-6));
1023
- }
1024
-
1025
- &.all-deleted::after {
1026
- background-color: rgb(var(--o-grey-6));
1027
- }
1028
- }
1029
- }
1030
-
1031
- }
1032
- }
1033
- }
1034
-
1035
- }
1036
-
1037
- .list-wrapper {
1038
- flex-grow: 1;
1039
- background-color: var(--o-color-fill2);
1040
-
1041
- @include respond('phone') {
1042
- margin-top: calc(var(--phone-padding-top) - var(--o-gap-4));
1043
- }
1044
- &.is-empty {
1045
- display: flex;
1046
- align-items: center;
1047
- justify-content: center;
1048
- min-height: 600px;
1049
- }
1050
-
1051
-
1052
- .o-scroller {
1053
- .o-scrollbar-rail {
1054
- right: -16px;
1055
- height: 100%;
1056
- }
1057
- }
1058
-
1059
- .scroller-container {
1060
- height: 100%;
1061
- max-height: calc(var(--layout-left-height, 900px) - 4 * var(--o-gap-5) - var(--header-height, 64) * 1px);
1062
-
1063
- @include respond('phone') {
1064
- max-height: fit-content;
1065
- }
1066
-
1067
- .group-item {
1068
- padding-left: 24px;
1069
- position: relative;
1070
-
1071
- @include respond('phone') {
1072
- padding-left: var(--o-gap-2);
1073
- }
1074
-
1075
- &.last-item {
1076
- flex-grow: 1;
1077
- }
1078
-
1079
- .group-bar {
1080
- position: absolute;
1081
- left: 0;
1082
- width: 16px;
1083
- top: 0;
1084
- bottom: 0;
1085
- overflow: hidden;
1086
-
1087
- --active-color: var(--o-color-primary1);
1088
-
1089
- &::before {
1090
- content: '';
1091
- width: 2px;
1092
- position: absolute;
1093
- top: 0;
1094
- bottom: 0;
1095
- left: 50%;
1096
- transform: translateX(-50%);
1097
- background-color: var(--o-color-control4);
1098
- }
1099
-
1100
- .group-bar-dot {
1101
- width: 16px;
1102
- height: 26px;
1103
- position: relative;
1104
- @include respond('laptop') {
1105
- height: 24px;
1106
- }
1107
- @include respond('pad_h') {
1108
- height: 22px;
1109
- }
1110
- @include respond('<=pad_v') {
1111
- height: 22px;
1112
- }
1113
-
1114
- &::before,
1115
- &::after {
1116
- content: '';
1117
- border-radius: 50%;
1118
- position: absolute;
1119
- top: 50%;
1120
- left: 50%;
1121
- transform: translateY(-50%) translateX(-50%);
1122
- }
1123
-
1124
- &::before {
1125
- width: 16px;
1126
- height: 16px;
1127
- background-color: transparent;
1128
- }
1129
-
1130
- &::after {
1131
- width: 8px;
1132
- height: 8px;
1133
- background-color: var(--active-color);
1134
- }
1135
- }
1136
-
1137
- &.is-active {
1138
- .group-bar-dot {
1139
- &::before {
1140
- background-color: var(--active-color);
1141
- }
1142
-
1143
- &::after {
1144
- background-color: var(--o-color-fill2);
1145
- }
1146
- }
1147
- }
1148
-
1149
- &.is-end {
1150
- --active-color: rgb(222, 222, 227);
1151
- }
1152
- }
1153
-
1154
- .group-title {
1155
- font-weight: 500;
1156
- color: var(--o-color-info1);
1157
- @include text2;
1158
- @include respond('phone') {
1159
- padding-left: var(--o-gap-5);
1160
- }
1161
-
1162
- &.is-end {
1163
- color: var(--o-color-info3);
1164
- }
1165
- }
1166
- }
1167
- }
1168
- }
1169
-
1170
- .list-body {
1171
- height: 100%;
1172
-
1173
- @include respond('phone') {
1174
- height: fit-content;
1175
- padding: var(--o-gap-4) !important;
1176
- }
1177
-
1178
- .list-month-change {
1179
- flex-shrink: 0;
1180
- display: flex;
1181
- align-items: center;
1182
- gap: var(--o-gap-5);
1183
- cursor: pointer;
1184
- --btn-color: var(--o-color-primary1);
1185
- @include hover {
1186
- --btn-color: var(--o-color-primary2);
1187
- }
1188
-
1189
- @include respond('phone') {
1190
- display: none;
1191
- }
1192
-
1193
- &.prev-month {
1194
- margin-bottom: var(--o-gap-6);
1195
- }
1196
-
1197
- &.next-month {
1198
- margin-top: var(--o-gap-6);
1199
- padding-bottom: 32px;
1200
- }
1201
-
1202
- .o-icon {
1203
- font-size: 24px;
1204
- color: var(--btn-color);
1205
- }
1206
-
1207
- span {
1208
- color: var(--btn-color);
1209
- @include text1;
1210
- }
1211
- }
1212
-
1213
- .o-collapse {
1214
- padding: 0;
1215
- border-radius: 0;
1216
- height: 100%;
1217
- display: flex;
1218
- flex-direction: column;
1219
-
1220
- .o-collapse-item-expanded + .o-collapse-item-expanded {
1221
- margin-top: var(--o-gap-4);
1222
- }
1223
-
1224
- .height-placeholder {
1225
- height: var(--o-gap-4);
1226
- }
1227
-
1228
-
1229
- .o-collapse-item {
1230
- padding: var(--o-gap-4) var(--o-gap-5);
1231
- border-top: none;
1232
- border-radius: var(--meeting-card-radius);
1233
- transition: margin var(--o-easing-standard) var(--o-duration-s);
1234
- --icon-size: 24px;
1235
- @include respond-to('pad_h') {
1236
- padding: var(--o-gap-3) var(--o-gap-4);
1237
- }
1238
- @include respond('<=pad_v') {
1239
- padding: var(--o-gap-2) var(--o-gap-4);
1240
- }
1241
-
1242
- @include respond('phone') {
1243
- --icon-size: 20px;
1244
- }
1245
-
1246
- &.o-collapse-item-expanded {
1247
- margin-top: var(--o-gap-4);
1248
- @include respond-to('<=laptop') {
1249
- margin-top: var(--o-gap-3);
1250
- }
1251
- @include respond-to('<=pad_v') {
1252
- margin-top: var(--o-gap-2);
1253
- }
1254
- }
1255
-
1256
- &:hover {
1257
- .title-text {
1258
- color: var(--o-color-primary1);
1259
- }
1260
-
1261
- .o-collapse-item-title {
1262
- .copy-icon {
1263
- opacity: 1;
1264
- visibility: visible;
1265
- }
1266
- }
1267
- }
1268
-
1269
- &.last-item {
1270
- .o-collapse-item-header {
1271
- border-bottom: none;
1272
- }
1273
- }
1274
-
1275
- &.is-delete,
1276
- &.is-end {
1277
-
1278
- .meeting-title {
1279
- color: var(--o-color-info4);
1280
-
1281
- .title-text {
1282
- color: var(--o-color-info4);
1283
- }
1284
- }
1285
- }
1286
-
1287
- &.o-collapse-item-expanded {
1288
- border-bottom: none;
1289
- background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent) !important;
1290
-
1291
- .o-collapse-item-header {
1292
- padding-bottom: var(--o-gap-2);
1293
- position: relative;
1294
-
1295
- &::after {
1296
- content: '';
1297
- position: absolute;
1298
- left: calc(var(--o-gap-3) + var(--icon-size));
1299
- right: 0;
1300
- bottom: 0;
1301
- height: 1px;
1302
- background-color: var(--o-color-control4);
1303
- @include respond('phone') {
1304
- left: 0;
1305
- }
1306
- }
1307
-
1308
- .o-collapse-item-title {
1309
- .copy-icon {
1310
- opacity: 1;
1311
- visibility: visible;
1312
- }
1313
- }
1314
- }
1315
- }
1316
- }
1317
-
1318
- .o-collapse-item-header {
1319
- border-bottom: none;
1320
- padding-top: 0;
1321
- padding-bottom: 0;
1322
- display: flex;
1323
- align-items: center;
1324
- gap: var(--o-gap-4);
1325
-
1326
- @include respond('laptop') {
1327
- gap: var(--o-gap-3);
1328
- }
1329
-
1330
- @include respond('<=pad') {
1331
- gap: var(--o-gap-2);
1332
- }
1333
-
1334
- .o-collapse-item-icon {
1335
- flex-shrink: 0;
1336
- }
1337
-
1338
- .o-collapse-item-title {
1339
- flex: 1;
1340
- width: 0;
1341
- min-width: 0;
1342
- display: flex;
1343
- align-items: center;
1344
- justify-content: space-between;
1345
- margin-bottom: 0;
1346
- gap: var(--o-gap-4);
1347
-
1348
- .item-header {
1349
- flex: 1;
1350
- min-width: 0;
1351
- }
1352
- .item-header-left {
1353
- display: flex;
1354
- align-items: flex-start;
1355
- gap: var(--o-gap-3);
1356
- width: 100%;
1357
- margin-bottom: var(--o-gap-2);
1358
- @include respond('phone') {
1359
- flex-grow: 1;
1360
- width: 100%;
1361
- align-self: stretch;
1362
- flex-shrink: 0;
1363
- }
1364
- .meeting-icon {
1365
- width: var(--icon-size);
1366
- height: var(--icon-size);
1367
- border-radius: 50%;
1368
- background-color: var(--o-color-primary1);
1369
- color: #fff;
1370
- display: flex;
1371
- align-items: center;
1372
- justify-content: center;
1373
- flex-shrink: 0;
1374
- --icon-size2: var(--icon-size);
1375
- padding: 1px;
1376
-
1377
- .o-icon {
1378
- font-size: calc(var(--icon-size2) - 2px);
1379
- svg path {
1380
- fill: currentColor;
1381
- }
1382
- }
1383
-
1384
- }
1385
-
1386
- .header-info {
1387
- min-width: 0;
1388
- flex: 1;
1389
-
1390
- .meeting-title {
1391
- font-weight: 500;
1392
- display: flex;
1393
- align-items: center;
1394
- margin-bottom: var(--o-gap-2);
1395
- @include text2;
1396
-
1397
- .tag-wrapper {
1398
- flex: 10;
1399
- margin-left: var(--o-gap-2);
1400
-
1401
- .o-tag {
1402
- background-color: var(--o-color-control2-light);
1403
- border: none;
1404
- font-weight: 400;
1405
- }
1406
- }
1407
-
1408
- .title-wrapper {
1409
- flex: 0 1 auto;
1410
- min-width: 0;
1411
- max-width: 100%;
1412
- }
1413
-
1414
- .title-text {
1415
- @include text2;
1416
- @include text-truncate(1);
1417
- @include respond('phone') {
1418
- @include h3;
1419
- }
1420
- }
1421
- }
1422
-
1423
- .meeting-info {
1424
- color: var(--o-color-info3);
1425
- display: flex;
1426
- align-items: center;
1427
- font-weight: 400;
1428
- font-size: 14px;
1429
- line-height: 22px;
1430
- @include respond('<=pad_v') {
1431
- @include tip1;
1432
- }
1433
- @include respond('phone') {
1434
- flex-direction: column;
1435
- align-items: flex-start;
1436
- }
1437
-
1438
- .o-divider {
1439
- @include respond('phone') {
1440
- display: none;
1441
- }
1442
- }
1443
- span:last-child {
1444
- width: 0;
1445
- flex: 1;
1446
- @include text-truncate(1);
1447
- @include respond('phone') {
1448
- width: fit-content;
1449
- }
1450
- }
1451
- }
1452
- }
1453
- }
1454
-
1455
- .item-header-right {
1456
- display: flex;
1457
- align-items: center;
1458
- padding-left: calc(var(--o-gap-3) + var(--icon-size));
1459
- gap: var(--o-gap-4);
1460
- width: 100%;
1461
- font-weight: 400;
1462
-
1463
- .o-link {
1464
- font-size: 14px;
1465
- line-height: 21px;
1466
- --link-color: var(--o-color-info2);
1467
- }
1468
- .o-icon {
1469
- font-size: 16px;
1470
- }
1471
- }
1472
-
1473
- .copy-icon {
1474
- flex-shrink: 0;
1475
- font-size: 24px;
1476
- visibility: hidden;
1477
- opacity: 0;
1478
- color: var(--o-color-info1);
1479
- height: 1em;
1480
- @include respond('<=laptop') {
1481
- font-size: 20px;
1482
- }
1483
- @include respond('<=pad_v') {
1484
- font-size: 24px;
1485
- }
1486
-
1487
- &:hover {
1488
- color: var(--o-color-primary1);
1489
- }
1490
-
1491
-
1492
- svg path {
1493
- fill: currentColor;
1494
- }
1495
- }
1496
- }
1497
- }
1498
-
1499
- .o-collapse-item-body {
1500
- margin-bottom: 0;
1501
- padding: var(--o-gap-2) 0 0;
1502
-
1503
- .meeting-detail {
1504
- padding-left: calc(var(--o-gap-3) + var(--icon-size));
1505
-
1506
- @include respond('phone') {
1507
- padding-left: 0;
1508
- }
1509
-
1510
- .meeting-btn {
1511
- border-top: 1px solid var(--o-color-control4);
1512
- margin-top: var(--o-gap-4);
1513
- padding-top: var(--o-gap-4);
1514
- display: flex;
1515
- align-items: center;
1516
- justify-content: flex-end;
1517
- gap: var(--o-gap-5);
1518
- @include respond('pad_h') {
1519
- margin-top: var(--o-gap-3);
1520
- padding-top: var(--o-gap-3);
1521
- }
1522
- @include respond('<=pad_v') {
1523
- margin-top: var(--o-gap-2);
1524
- padding-top: var(--o-gap-2);
1525
- }
1526
-
1527
- .o-link {
1528
- --link-color: inherit;
1529
- }
1530
- }
1531
- }
1532
- }
1533
-
1534
- .o-btn.o-btn-text {
1535
- padding-left: 0 !important;
1536
- padding-right: 0 !important;
1537
- min-width: auto;
1538
- }
1539
- }
1540
-
1541
- .load-text {
1542
- text-align: center;
1543
- color: var(--o-color-info3);
1544
- @include tip1;
1545
- }
1546
- }
1547
-
1548
- }
1549
-
1550
- @include in-dark {
1551
- .group-bar.is-end {
1552
- --active-color: rgb(65, 65, 68) !important;
1553
- }
1554
- .meeting-list {
1555
-
1556
- .is-today {
1557
- .date-cell-text {
1558
- color: #fff !important;
1559
- }
1560
- }
1561
- }
1562
- }
1563
- }
1564
- </style>
1565
-
1566
- <style lang="scss">
1567
- .handle-dialog {
1568
- width: 450px;
1569
-
1570
- .o-dlg-header {
1571
- margin-bottom: var(--o-gap-5);
1572
- }
1573
-
1574
- .o-dlg-body-content {
1575
- display: flex;
1576
- justify-content: center;
1577
- }
1578
-
1579
- .dialog-footer {
1580
- display: flex;
1581
- justify-content: center;
1582
- margin-top: var(--o-gap-4);
1583
- column-gap: var(--o-gap-4);
1584
- }
1585
- }
1586
-
1587
- .cancel-dialog {
1588
- .dialog-content {
1589
- width: 384px;
1590
- text-align: center;
1591
- }
1592
-
1593
- .dialog-footer {
1594
- display: flex;
1595
- justify-content: center;
1596
- margin-top: var(--o-gap-4);
1597
- column-gap: var(--o-gap-4);
1598
- }
1599
- }
1600
-
1601
- </style>