@opendesign-plus/components 0.0.1-rc.45 → 0.0.1-rc.47

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 (72) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +34 -30
  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/OEventsList.vue.d.ts +2 -0
  6. package/dist/components/events/index.d.ts +22 -20
  7. package/dist/components/header/OHeaderMobile.vue.d.ts +14 -14
  8. package/dist/components/header/components/HeaderNavMobile.vue.d.ts +1 -1
  9. package/dist/components/header/index.d.ts +23 -23
  10. package/dist/components/header-search/OHeaderSearch.vue.d.ts +8 -8
  11. package/dist/components/header-search/index.d.ts +16 -16
  12. package/dist/components/meeting/OMeetingPlayback.vue.d.ts +8 -6
  13. package/dist/components/meeting/components/OMeetingPlaybackVideo.vue.d.ts +1 -1
  14. package/dist/components/meeting/index.d.ts +32 -31
  15. package/dist/components/meeting/types.d.ts +1 -0
  16. package/dist/components/search/OSearchInput.vue.d.ts +6 -6
  17. package/dist/components/search/index.d.ts +14 -14
  18. package/dist/components/search/internal/SearchImageInput.vue.d.ts +1 -1
  19. package/dist/components.cjs.js +36 -36
  20. package/dist/components.css +1 -1
  21. package/dist/components.es.js +9472 -9410
  22. package/dist/treeshaking/components/activity/index.d.ts +9 -9
  23. package/dist/treeshaking/components/banner/index.d.ts +6 -6
  24. package/dist/treeshaking/components/common/TooltipText.css +1 -0
  25. package/dist/treeshaking/components/common/TooltipText.vue.mjs +12 -1
  26. package/dist/treeshaking/components/events/OEventsApply.css +1 -1
  27. package/dist/treeshaking/components/events/OEventsCalendar.css +32 -14
  28. package/dist/treeshaking/components/events/OEventsList.css +6 -0
  29. package/dist/treeshaking/components/events/OEventsList.vue.d.ts +2 -0
  30. package/dist/treeshaking/components/events/index.d.ts +22 -20
  31. package/dist/treeshaking/components/feedback-doc/OFeedbackDoc.css +8 -5
  32. package/dist/treeshaking/components/feedback-doc/OFeedbackDoc.vue.mjs +1 -1
  33. package/dist/treeshaking/components/header/OHeaderMobile.vue.d.ts +14 -14
  34. package/dist/treeshaking/components/header/components/HeaderContent.css +203 -184
  35. package/dist/treeshaking/components/header/components/HeaderContent.vue.mjs +1 -1
  36. package/dist/treeshaking/components/header/components/HeaderContent.vue2.mjs +89 -16
  37. package/dist/treeshaking/components/header/components/HeaderFlatten.css +57 -57
  38. package/dist/treeshaking/components/header/components/HeaderFlatten.vue.mjs +1 -1
  39. package/dist/treeshaking/components/header/components/HeaderNav.css +49 -49
  40. package/dist/treeshaking/components/header/components/HeaderNav.vue.mjs +1 -1
  41. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue.d.ts +1 -1
  42. package/dist/treeshaking/components/header/index.d.ts +23 -23
  43. package/dist/treeshaking/components/header-search/OHeaderSearch.css +43 -43
  44. package/dist/treeshaking/components/header-search/OHeaderSearch.vue.d.ts +8 -8
  45. package/dist/treeshaking/components/header-search/OHeaderSearch.vue.mjs +1 -1
  46. package/dist/treeshaking/components/header-search/OHeaderSearch.vue2.mjs +2 -2
  47. package/dist/treeshaking/components/header-search/index.d.ts +16 -16
  48. package/dist/treeshaking/components/meeting/OMeetingCalendar.css +4 -3
  49. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.css +37 -53
  50. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.vue.mjs +1 -0
  51. package/dist/treeshaking/components/meeting/OMeetingMyCalendar2.css +8 -0
  52. package/dist/treeshaking/components/meeting/OMeetingPlayback.css +103 -3
  53. package/dist/treeshaking/components/meeting/OMeetingPlayback.vue.d.ts +8 -6
  54. package/dist/treeshaking/components/meeting/OMeetingPlayback.vue.mjs +141 -71
  55. package/dist/treeshaking/components/meeting/components/OMeetingCalendarList.css +5 -7
  56. package/dist/treeshaking/components/meeting/components/OMeetingCalendarList.vue.mjs +3 -6
  57. package/dist/treeshaking/components/meeting/components/OMeetingDetail.css +1 -1
  58. package/dist/treeshaking/components/meeting/components/OMeetingDetail.vue.mjs +10 -6
  59. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles.css +154 -7
  60. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackVideo.css +9 -2
  61. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackVideo.vue.d.ts +1 -1
  62. package/dist/treeshaking/components/meeting/index.d.ts +32 -31
  63. package/dist/treeshaking/components/meeting/types.d.ts +1 -0
  64. package/dist/treeshaking/components/search/OSearchInput.vue.d.ts +6 -6
  65. package/dist/treeshaking/components/search/index.d.ts +14 -14
  66. package/dist/treeshaking/components/search/internal/SearchImageInput.vue.d.ts +1 -1
  67. package/dist/treeshaking/i18n/en.mjs +4 -2
  68. package/dist/treeshaking/i18n/zh.mjs +4 -2
  69. package/package.json +2 -1
  70. package/dist/treeshaking/components/common/MoreText.css +0 -69
  71. package/dist/treeshaking/components/common/MoreText.vue.mjs +0 -88
  72. package/dist/treeshaking/components/common/MoreText.vue3.mjs +0 -5
@@ -297,8 +297,16 @@
297
297
  :root .el-input-number.el-input-number--large {
298
298
  line-height: var(--el-component-size-large);
299
299
  }
300
+ @media (max-width: 600px) {
301
+ .handle-wrapper-dialog.o-dialog-responsive {
302
+ --layer-align: center;
303
+ --layer-justify: center;
304
+ --layer-origin: center;
305
+ }
306
+ }
300
307
  .handle-dialog {
301
308
  width: 450px;
309
+ --dlg-radius: var(--dialog-radius, var(--o-radius-xs));
302
310
  }
303
311
  .handle-dialog .o-dlg-header {
304
312
  margin-bottom: var(--o-gap-5);
@@ -19,13 +19,33 @@
19
19
  flex-wrap: wrap;
20
20
  }
21
21
  }
22
+ .o-meeting-playback .o-tab {
23
+ --tab-nav-divider: 1px solid var(--o-color-control4);
24
+ }
22
25
  .o-meeting-playback .card-wrapper {
23
26
  border-radius: var(--meeting-card-radius);
24
27
  background-color: var(--o-color-fill2);
25
28
  padding: var(--o-gap-5);
26
29
  }
27
- .o-meeting-playback .card-wrapper.left-card {
28
- padding-bottom: 0;
30
+ @media (min-width: 1201px) and (max-width: 1680px) {
31
+ .o-meeting-playback .card-wrapper {
32
+ padding: var(--o-gap-4);
33
+ }
34
+ }
35
+ @media (min-width: 841px) and (max-width: 1200px) {
36
+ .o-meeting-playback .card-wrapper {
37
+ padding: var(--o-gap-3);
38
+ }
39
+ }
40
+ @media (min-width: 601px) and (max-width: 840px) {
41
+ .o-meeting-playback .card-wrapper {
42
+ padding: var(--o-gap-3);
43
+ }
44
+ }
45
+ @media (max-width: 600px) {
46
+ .o-meeting-playback .card-wrapper {
47
+ padding: var(--o-gap-3);
48
+ }
29
49
  }
30
50
  .o-meeting-playback .left-card {
31
51
  width: 60%;
@@ -96,8 +116,56 @@
96
116
  padding-top: var(--o-gap-4);
97
117
  height: 280px;
98
118
  padding-bottom: 0;
119
+ transition: all var(--o-duration-m1) var(--o-easing-standard-in);
99
120
  position: relative;
100
121
  }
122
+ @media (max-width: 840px) {
123
+ .o-meeting-playback .left-card .info-wrapper .tab-content {
124
+ height: auto;
125
+ max-height: none;
126
+ }
127
+ }
128
+ .o-meeting-playback .left-card .info-wrapper .tab-content .more-btn {
129
+ display: none;
130
+ align-items: center;
131
+ justify-content: center;
132
+ color: var(--o-color-info2);
133
+ gap: var(--o-gap-2);
134
+ position: absolute;
135
+ bottom: 0;
136
+ left: 50%;
137
+ transform: translateX(-50%);
138
+ font-size: 14px;
139
+ line-height: 22px;
140
+ }
141
+ @media (min-width: 1201px) and (max-width: 1680px) {
142
+ .o-meeting-playback .left-card .info-wrapper .tab-content .more-btn {
143
+ font-size: 12px;
144
+ line-height: 18px;
145
+ }
146
+ }
147
+ @media (min-width: 841px) and (max-width: 1200px) {
148
+ .o-meeting-playback .left-card .info-wrapper .tab-content .more-btn {
149
+ font-size: 12px;
150
+ line-height: 18px;
151
+ }
152
+ }
153
+ @media (min-width: 601px) and (max-width: 840px) {
154
+ .o-meeting-playback .left-card .info-wrapper .tab-content .more-btn {
155
+ font-size: 12px;
156
+ line-height: 18px;
157
+ }
158
+ }
159
+ @media (max-width: 600px) {
160
+ .o-meeting-playback .left-card .info-wrapper .tab-content .more-btn {
161
+ font-size: 12px;
162
+ line-height: 18px;
163
+ }
164
+ }
165
+ .o-meeting-playback .left-card .info-wrapper .tab-content .more-btn .o-icon {
166
+ font-size: 16px;
167
+ transition: all var(--o-duration-m1) var(--o-easing-standard-in);
168
+ }
101
169
  .o-meeting-playback .left-card .info-wrapper .tab-content::after {
102
170
  height: 24px;
103
171
  content: "";
@@ -107,8 +175,39 @@
107
175
  right: 0;
108
176
  background: linear-gradient(180deg, rgba(var(--o-grey-1), 0), rgba(var(--o-grey-1), 1) 100%);
109
177
  }
178
+ @media (max-width: 840px) {
179
+ .o-meeting-playback .left-card .info-wrapper .tab-content::after {
180
+ display: none;
181
+ }
182
+ }
183
+ @media (max-width: 840px) {
184
+ .o-meeting-playback .left-card .info-wrapper .tab-content.is-collapsible {
185
+ max-height: 168px;
186
+ padding-bottom: 22px;
187
+ }
188
+ .o-meeting-playback .left-card .info-wrapper .tab-content.is-collapsible .base-info {
189
+ padding-bottom: var(--o-gap-4);
190
+ }
191
+ .o-meeting-playback .left-card .info-wrapper .tab-content.is-collapsible .more-btn {
192
+ display: flex;
193
+ }
194
+ .o-meeting-playback .left-card .info-wrapper .tab-content.is-collapsible::after {
195
+ display: block;
196
+ bottom: 22px;
197
+ }
198
+ }
199
+ .o-meeting-playback .left-card .info-wrapper .tab-content.is-expanded {
200
+ max-height: 2000px;
201
+ height: fit-content;
202
+ padding-bottom: 4px;
203
+ }
204
+ .o-meeting-playback .left-card .info-wrapper .tab-content.is-expanded::after {
205
+ display: none;
206
+ }
207
+ .o-meeting-playback .left-card .info-wrapper .tab-content.is-expanded .more-btn .o-icon {
208
+ transform: rotate(180deg);
209
+ }
110
210
  .o-meeting-playback .left-card .info-wrapper .tab-content .base-info {
111
- padding-bottom: var(--o-gap-5);
112
211
  font-size: 16px;
113
212
  line-height: 24px;
114
213
  }
@@ -248,6 +347,7 @@
248
347
  }
249
348
  .o-meeting-playback .right-card {
250
349
  width: 40%;
350
+ padding: 0;
251
351
  }
252
352
  @media (max-width: 840px) {
253
353
  .o-meeting-playback .right-card {
@@ -6,7 +6,7 @@ declare function __VLS_template(): {
6
6
  };
7
7
  refs: {
8
8
  leftRef: HTMLDivElement;
9
- playerRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('../../index').MeetingPlaybackVideoPropsT> & Readonly<{
9
+ playerRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./types').MeetingPlaybackVideoPropsT> & Readonly<{
10
10
  onGetDuration?: ((...args: any[]) => any) | undefined;
11
11
  onGetInstance?: ((...args: any[]) => any) | undefined;
12
12
  onSetTrackIdx?: ((...args: any[]) => any) | undefined;
@@ -27,7 +27,7 @@ declare function __VLS_template(): {
27
27
  C: {};
28
28
  M: {};
29
29
  Defaults: {};
30
- }, Readonly<import('../../index').MeetingPlaybackVideoPropsT> & Readonly<{
30
+ }, Readonly<import('./types').MeetingPlaybackVideoPropsT> & Readonly<{
31
31
  onGetDuration?: ((...args: any[]) => any) | undefined;
32
32
  onGetInstance?: ((...args: any[]) => any) | undefined;
33
33
  onSetTrackIdx?: ((...args: any[]) => any) | undefined;
@@ -38,6 +38,7 @@ declare function __VLS_template(): {
38
38
  captions: CaptionItemT[];
39
39
  vtt: string;
40
40
  }> | null;
41
+ contentRef: HTMLDivElement;
41
42
  };
42
43
  rootEl: HTMLDivElement;
43
44
  };
@@ -47,12 +48,12 @@ declare const __VLS_component: import('vue').DefineComponent<MeetingPlaybackProp
47
48
  }, string, import('vue').PublicProps, Readonly<MeetingPlaybackPropsT> & Readonly<{
48
49
  "onChange-date"?: ((...args: any[]) => any) | undefined;
49
50
  }>, {
50
- data: import('../../index').MeetingPlaybackPropsDataT;
51
+ data: import('./types').MeetingPlaybackPropsDataT;
51
52
  dates: string[];
52
- detail: import('../../index').MeetingPlaybackPropsDetailT;
53
+ detail: import('./types').MeetingPlaybackPropsDetailT;
53
54
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
54
55
  leftRef: HTMLDivElement;
55
- playerRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('../../index').MeetingPlaybackVideoPropsT> & Readonly<{
56
+ playerRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./types').MeetingPlaybackVideoPropsT> & Readonly<{
56
57
  onGetDuration?: ((...args: any[]) => any) | undefined;
57
58
  onGetInstance?: ((...args: any[]) => any) | undefined;
58
59
  onSetTrackIdx?: ((...args: any[]) => any) | undefined;
@@ -73,7 +74,7 @@ declare const __VLS_component: import('vue').DefineComponent<MeetingPlaybackProp
73
74
  C: {};
74
75
  M: {};
75
76
  Defaults: {};
76
- }, Readonly<import('../../index').MeetingPlaybackVideoPropsT> & Readonly<{
77
+ }, Readonly<import('./types').MeetingPlaybackVideoPropsT> & Readonly<{
77
78
  onGetDuration?: ((...args: any[]) => any) | undefined;
78
79
  onGetInstance?: ((...args: any[]) => any) | undefined;
79
80
  onSetTrackIdx?: ((...args: any[]) => any) | undefined;
@@ -84,6 +85,7 @@ declare const __VLS_component: import('vue').DefineComponent<MeetingPlaybackProp
84
85
  captions: CaptionItemT[];
85
86
  vtt: string;
86
87
  }> | null;
88
+ contentRef: HTMLDivElement;
87
89
  }, HTMLDivElement>;
88
90
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
89
91
  export default _default;
@@ -1,13 +1,15 @@
1
- import { defineComponent, ref, computed, watchEffect, onMounted, onUnmounted, openBlock, createElementBlock, createElementVNode, toDisplayString, createBlock, unref, withCtx, Fragment, renderList, createCommentVNode, createVNode, normalizeClass, normalizeStyle, renderSlot } from "vue";
1
+ import { defineComponent, ref, computed, watchEffect, watch, nextTick, onMounted, onUnmounted, openBlock, createElementBlock, createElementVNode, createVNode, withCtx, createTextVNode, toDisplayString, createBlock, unref, Fragment, renderList, createCommentVNode, normalizeClass, normalizeStyle, renderSlot } from "vue";
2
2
  import { transformSeconds, speakerNum, transformTime } from "./utils.mjs";
3
- import { OSelect, OOption, OTab, OTabPane, OScroller } from "@opensig/opendesign";
4
- import _sfc_main$2 from "./components/OMeetingPlaybackSubtitles.vue.mjs";
3
+ import { OSelect, OOption, OTab, OTabPane, OScroller, OIcon, OIconChevronDown } from "@opensig/opendesign";
4
+ import _sfc_main$3 from "./components/OMeetingPlaybackSubtitles.vue.mjs";
5
5
  import './components/OMeetingPlaybackSubtitles.css';
6
6
  import './components/OMeetingPlaybackSubtitles2.css';
7
- import _sfc_main$1 from "./components/OMeetingPlaybackVideo.vue.mjs";
7
+ import _sfc_main$2 from "./components/OMeetingPlaybackVideo.vue.mjs";
8
8
  import './components/OMeetingPlaybackVideo.css';
9
9
  import { useI18n } from "../../i18n/index.mjs";
10
10
  import { PROGRESS_COLORS } from "./config.mjs";
11
+ import _sfc_main$1 from "../common/TooltipText.vue.mjs";
12
+ import '../common/TooltipText.css';
11
13
  const _hoisted_1 = { class: "o-meeting-playback" };
12
14
  const _hoisted_2 = { class: "video-header" };
13
15
  const _hoisted_3 = { class: "video-title" };
@@ -31,12 +33,14 @@ const _hoisted_13 = {
31
33
  class: "subject-progress"
32
34
  };
33
35
  const _hoisted_14 = ["data-start", "data-end"];
36
+ const COLLAPSE_THRESHOLD = 168;
34
37
  const _sfc_main = /* @__PURE__ */ defineComponent({
35
38
  __name: "OMeetingPlayback",
36
39
  props: {
37
40
  dates: { default: () => [] },
38
41
  detail: { default: () => ({}) },
39
- data: { default: () => ({}) }
42
+ data: { default: () => ({}) },
43
+ dev: { type: Boolean }
40
44
  },
41
45
  emits: ["change-date"],
42
46
  setup(__props, { emit: __emit }) {
@@ -67,7 +71,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
67
71
  };
68
72
  const subjectList = ref([]);
69
73
  const getProgressColor = (idx) => {
70
- return PROGRESS_COLORS[idx % 3];
74
+ return PROGRESS_COLORS[idx % 6];
71
75
  };
72
76
  const playerDuration = ref(0);
73
77
  const getPlayerDuration = (seconds) => {
@@ -110,13 +114,23 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
110
114
  const getSubjectList = async (url) => {
111
115
  const res = await fetch(url);
112
116
  const json = await res.json();
113
- subjectList.value = (json || []).map((z) => {
114
- return {
115
- ...z,
116
- startTimeNumber: transformTime(z.startTime),
117
- endTimeNumber: transformTime(z.endTime)
118
- };
119
- });
117
+ if (props.dev) {
118
+ subjectList.value = [...json || [], ...json || [], ...json || []].map((z) => {
119
+ return {
120
+ ...z,
121
+ startTimeNumber: transformTime(z.startTime),
122
+ endTimeNumber: transformTime(z.endTime)
123
+ };
124
+ });
125
+ } else {
126
+ subjectList.value = (json || []).map((z) => {
127
+ return {
128
+ ...z,
129
+ startTimeNumber: transformTime(z.startTime),
130
+ endTimeNumber: transformTime(z.endTime)
131
+ };
132
+ });
133
+ }
120
134
  };
121
135
  const tab = ref("info");
122
136
  const tabOptions = computed(() => {
@@ -164,19 +178,47 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
164
178
  cancelAnimationFrame(raf);
165
179
  raf = requestAnimationFrame(updateHeight);
166
180
  };
181
+ const contentRef = ref(null);
182
+ const showMoreBtn = ref(false);
183
+ const checkMoreBtn = () => {
184
+ const el = contentRef.value;
185
+ if (el) {
186
+ showMoreBtn.value = el.offsetHeight > COLLAPSE_THRESHOLD;
187
+ }
188
+ };
189
+ let contentRaf = null;
190
+ let contentObserver = null;
191
+ const debouncedCheckMoreBtn = () => {
192
+ cancelAnimationFrame(contentRaf);
193
+ contentRaf = requestAnimationFrame(checkMoreBtn);
194
+ };
195
+ watch(tab, () => {
196
+ nextTick(checkMoreBtn);
197
+ });
167
198
  onMounted(() => {
168
199
  if (leftRef.value) {
169
200
  observer = new ResizeObserver(debouncedUpdate);
170
201
  observer.observe(leftRef.value);
171
202
  updateHeight();
172
203
  }
204
+ if (contentRef.value) {
205
+ contentObserver = new ResizeObserver(debouncedCheckMoreBtn);
206
+ contentObserver.observe(contentRef.value);
207
+ checkMoreBtn();
208
+ }
173
209
  });
174
210
  onUnmounted(() => {
175
211
  cancelAnimationFrame(raf);
176
212
  observer == null ? void 0 : observer.disconnect();
213
+ cancelAnimationFrame(contentRaf);
214
+ contentObserver == null ? void 0 : contentObserver.disconnect();
177
215
  });
216
+ const expanded = ref(false);
217
+ const toggleExpanded = () => {
218
+ expanded.value = !expanded.value;
219
+ };
178
220
  return (_ctx, _cache) => {
179
- var _a, _b, _c, _d;
221
+ var _a, _b;
180
222
  return openBlock(), createElementBlock("div", _hoisted_1, [
181
223
  createElementVNode("div", {
182
224
  class: "left-card card-wrapper",
@@ -184,12 +226,22 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
184
226
  ref: leftRef
185
227
  }, [
186
228
  createElementVNode("div", _hoisted_2, [
187
- createElementVNode("div", _hoisted_3, toDisplayString((_a = __props.detail) == null ? void 0 : _a.topic) + "(" + toDisplayString((_b = __props.detail) == null ? void 0 : _b.date) + ")", 1),
188
- ((_c = __props.dates) == null ? void 0 : _c.length) ? (openBlock(), createBlock(unref(OSelect), {
229
+ createElementVNode("div", _hoisted_3, [
230
+ createVNode(_sfc_main$1, { lines: 2 }, {
231
+ default: withCtx(() => {
232
+ var _a2, _b2;
233
+ return [
234
+ createTextVNode(toDisplayString((_a2 = __props.detail) == null ? void 0 : _a2.topic) + "(" + toDisplayString((_b2 = __props.detail) == null ? void 0 : _b2.date) + ")", 1)
235
+ ];
236
+ }),
237
+ _: 1
238
+ })
239
+ ]),
240
+ ((_a = __props.dates) == null ? void 0 : _a.length) ? (openBlock(), createBlock(unref(OSelect), {
189
241
  key: 0,
190
242
  size: "large",
191
243
  clearable: false,
192
- "model-value": (_d = __props.detail) == null ? void 0 : _d.date,
244
+ "model-value": (_b = __props.detail) == null ? void 0 : _b.date,
193
245
  placeholder: unref(t)("meeting.selectDate"),
194
246
  onChange: changeDate
195
247
  }, {
@@ -206,7 +258,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
206
258
  }, 8, ["model-value", "placeholder"])) : createCommentVNode("", true)
207
259
  ]),
208
260
  createElementVNode("div", _hoisted_4, [
209
- __props.data ? (openBlock(), createBlock(_sfc_main$1, {
261
+ __props.data ? (openBlock(), createBlock(_sfc_main$2, {
210
262
  key: 0,
211
263
  ref_key: "playerRef",
212
264
  ref: playerRef,
@@ -239,63 +291,81 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
239
291
  _: 1
240
292
  }, 8, ["modelValue"]),
241
293
  createVNode(unref(OScroller), {
242
- class: normalizeClass(["tab-content", `tab-content-${tab.value}`]),
294
+ class: normalizeClass(["tab-content", `tab-content-${tab.value}`, expanded.value ? "is-expanded" : "", showMoreBtn.value ? "is-collapsible" : ""]),
243
295
  "show-type": "hover"
244
296
  }, {
245
297
  default: withCtx(() => {
246
298
  var _a2;
247
299
  return [
248
- tab.value === tabOptions.value[0].value ? (openBlock(), createElementBlock("div", _hoisted_6, [
249
- createElementVNode("div", _hoisted_7, [
250
- createElementVNode("span", null, toDisplayString(unref(t)("meeting.item1")), 1),
251
- createElementVNode("span", null, toDisplayString(__props.detail.sponsor), 1)
252
- ]),
253
- createElementVNode("div", _hoisted_8, [
254
- createElementVNode("span", null, toDisplayString(unref(t)("meeting.item2")), 1),
255
- createElementVNode("span", null, toDisplayString(__props.detail.groupName), 1)
256
- ]),
257
- createElementVNode("div", _hoisted_9, [
258
- createElementVNode("span", null, toDisplayString(unref(t)("meeting.item3")), 1),
259
- createElementVNode("span", null, toDisplayString(__props.detail.date) + "  " + toDisplayString(__props.detail.start) + "~" + toDisplayString(__props.detail.end), 1)
260
- ]),
261
- createElementVNode("div", _hoisted_10, [
262
- createElementVNode("span", null, toDisplayString(unref(t)("meeting.item4")), 1),
263
- createElementVNode("span", null, toDisplayString(__props.detail.agenda || "-"), 1)
264
- ])
265
- ])) : createCommentVNode("", true),
266
- tab.value === ((_a2 = tabOptions.value[1]) == null ? void 0 : _a2.value) ? (openBlock(), createElementBlock("div", _hoisted_11, [
267
- mouseTime.value ? (openBlock(), createElementBlock("div", {
268
- key: 0,
269
- class: "mouse-current-time",
270
- style: normalizeStyle({
271
- top: mousePosition.value[1],
272
- left: mousePosition.value[0]
273
- })
274
- }, toDisplayString(mouseTime.value), 5)) : createCommentVNode("", true),
275
- (openBlock(true), createElementBlock(Fragment, null, renderList(subjectList.value, (sub, idx) => {
276
- return openBlock(), createElementBlock("div", {
277
- class: "subject-item",
278
- key: sub.title
279
- }, [
280
- createElementVNode("div", _hoisted_12, toDisplayString(sub.title), 1),
281
- playerDuration.value ? (openBlock(), createElementBlock("div", _hoisted_13, [
282
- createElementVNode("div", {
283
- class: "subject-progress-item",
284
- onClick: changeTime,
285
- onMousemove: mouseOverItem,
286
- onMouseleave: mouseLeaveItem,
287
- "data-start": sub.startTime,
288
- "data-end": sub.endTime,
289
- style: normalizeStyle({
290
- "--start": (sub.startTimeNumber < 0 ? 0 : sub.startTimeNumber) / playerDuration.value,
291
- "--end": (sub.endTimeNumber > playerDuration.value ? playerDuration.value : sub.endTimeNumber) / playerDuration.value,
292
- background: getProgressColor(idx)
293
- })
294
- }, null, 44, _hoisted_14)
295
- ])) : createCommentVNode("", true)
296
- ]);
297
- }), 128))
298
- ])) : createCommentVNode("", true)
300
+ createElementVNode("div", {
301
+ class: "tab-content-inner",
302
+ ref_key: "contentRef",
303
+ ref: contentRef
304
+ }, [
305
+ tab.value === tabOptions.value[0].value ? (openBlock(), createElementBlock("div", _hoisted_6, [
306
+ createElementVNode("div", _hoisted_7, [
307
+ createElementVNode("span", null, toDisplayString(unref(t)("meeting.item1")), 1),
308
+ createElementVNode("span", null, toDisplayString(__props.detail.sponsor), 1)
309
+ ]),
310
+ createElementVNode("div", _hoisted_8, [
311
+ createElementVNode("span", null, toDisplayString(unref(t)("meeting.item2")), 1),
312
+ createElementVNode("span", null, toDisplayString(__props.detail.groupName), 1)
313
+ ]),
314
+ createElementVNode("div", _hoisted_9, [
315
+ createElementVNode("span", null, toDisplayString(unref(t)("meeting.item3")), 1),
316
+ createElementVNode("span", null, toDisplayString(__props.detail.date) + "  " + toDisplayString(__props.detail.start) + "~" + toDisplayString(__props.detail.end), 1)
317
+ ]),
318
+ createElementVNode("div", _hoisted_10, [
319
+ createElementVNode("span", null, toDisplayString(unref(t)("meeting.item4")), 1),
320
+ createElementVNode("span", null, toDisplayString(__props.detail.agenda || "-"), 1)
321
+ ])
322
+ ])) : createCommentVNode("", true),
323
+ tab.value === ((_a2 = tabOptions.value[1]) == null ? void 0 : _a2.value) ? (openBlock(), createElementBlock("div", _hoisted_11, [
324
+ mouseTime.value ? (openBlock(), createElementBlock("div", {
325
+ key: 0,
326
+ class: "mouse-current-time",
327
+ style: normalizeStyle({
328
+ top: mousePosition.value[1],
329
+ left: mousePosition.value[0]
330
+ })
331
+ }, toDisplayString(mouseTime.value), 5)) : createCommentVNode("", true),
332
+ (openBlock(true), createElementBlock(Fragment, null, renderList(subjectList.value, (sub, idx) => {
333
+ return openBlock(), createElementBlock("div", {
334
+ class: "subject-item",
335
+ key: sub.title
336
+ }, [
337
+ createElementVNode("div", _hoisted_12, toDisplayString(sub.title), 1),
338
+ playerDuration.value ? (openBlock(), createElementBlock("div", _hoisted_13, [
339
+ createElementVNode("div", {
340
+ class: "subject-progress-item",
341
+ onClick: changeTime,
342
+ onMousemove: mouseOverItem,
343
+ onMouseleave: mouseLeaveItem,
344
+ "data-start": sub.startTime,
345
+ "data-end": sub.endTime,
346
+ style: normalizeStyle({
347
+ "--start": (sub.startTimeNumber < 0 ? 0 : sub.startTimeNumber) / playerDuration.value,
348
+ "--end": (sub.endTimeNumber > playerDuration.value ? playerDuration.value : sub.endTimeNumber) / playerDuration.value,
349
+ background: getProgressColor(idx)
350
+ })
351
+ }, null, 44, _hoisted_14)
352
+ ])) : createCommentVNode("", true)
353
+ ]);
354
+ }), 128))
355
+ ])) : createCommentVNode("", true)
356
+ ], 512),
357
+ createElementVNode("span", {
358
+ class: "more-btn",
359
+ onClick: toggleExpanded
360
+ }, [
361
+ createElementVNode("span", null, toDisplayString(expanded.value ? unref(t)("common.collapse") : unref(t)("common.viewMore")), 1),
362
+ createVNode(unref(OIcon), null, {
363
+ default: withCtx(() => [
364
+ createVNode(unref(OIconChevronDown))
365
+ ]),
366
+ _: 1
367
+ })
368
+ ])
299
369
  ];
300
370
  }),
301
371
  _: 1
@@ -308,7 +378,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
308
378
  height: rightHeight.value
309
379
  })
310
380
  }, [
311
- createVNode(_sfc_main$2, {
381
+ createVNode(_sfc_main$3, {
312
382
  captions: captionsList.value,
313
383
  trackIdx: trackIdx.value,
314
384
  instance: playbackInstance.value
@@ -23,13 +23,14 @@
23
23
  --icon-size2: 24px;
24
24
  --icon-right: 12px;
25
25
  }
26
- @media (max-width: 1200px) {
26
+ @media (max-width: 1680px) {
27
27
  .o-meeting-calendar-list .o-collapse {
28
28
  --icon-size2: 20px;
29
29
  }
30
30
  }
31
31
  @media (max-width: 840px) {
32
32
  .o-meeting-calendar-list .o-collapse {
33
+ --icon-size2: 16px;
33
34
  --icon-right: 8px;
34
35
  }
35
36
  }
@@ -346,13 +347,10 @@
346
347
  }
347
348
  .o-meeting-calendar-list .o-collapse .meet-title .text {
348
349
  display: block;
350
+ flex: 0 1 auto;
351
+ min-width: 0;
352
+ max-width: 100%;
349
353
  font-weight: 600;
350
- overflow: hidden;
351
- text-overflow: ellipsis;
352
- word-break: break-all;
353
- display: -webkit-box;
354
- -webkit-box-orient: vertical;
355
- -webkit-line-clamp: 1;
356
354
  }
357
355
  .o-meeting-calendar-list .o-collapse .meet-info {
358
356
  display: flex;
@@ -13,7 +13,7 @@ import _sfc_main$2 from "../../common/TooltipText.vue.mjs";
13
13
  import '../../common/TooltipText.css';
14
14
  import dayjs from "dayjs";
15
15
  const _hoisted_1 = { class: "meet-title-left" };
16
- const _hoisted_2 = ["title"];
16
+ const _hoisted_2 = { class: "meet-title" };
17
17
  const _hoisted_3 = { class: "text" };
18
18
  const _hoisted_4 = { class: "item-title-text" };
19
19
  const _hoisted_5 = {
@@ -242,10 +242,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
242
242
  }, {
243
243
  title: withCtx(() => [
244
244
  createElementVNode("div", _hoisted_1, [
245
- createElementVNode("div", {
246
- class: "meet-title",
247
- title: item.topic || item.name || item.title
248
- }, [
245
+ createElementVNode("div", _hoisted_2, [
249
246
  createVNode(unref(OIcon), {
250
247
  style: normalizeStyle({
251
248
  backgroundColor: `${unref(getConfig)(item.type, "color")}`
@@ -275,7 +272,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
275
272
  _: 1
276
273
  })
277
274
  ])) : createCommentVNode("", true)
278
- ], 8, _hoisted_2),
275
+ ]),
279
276
  createElementVNode("div", {
280
277
  class: "meet-info",
281
278
  ref_for: true,
@@ -9,7 +9,7 @@
9
9
  .o-meeting-detail {
10
10
  position: relative;
11
11
  display: grid;
12
- grid-template-columns: auto 1fr;
12
+ grid-template-columns: auto minmax(0, 1fr);
13
13
  row-gap: var(--o-gap-2);
14
14
  column-gap: var(--o-gap-4);
15
15
  }
@@ -1,11 +1,11 @@
1
- import { defineComponent, computed, ref, openBlock, createElementBlock, Fragment, renderList, normalizeClass, createElementVNode, toDisplayString, createBlock, unref, withCtx, createTextVNode, createCommentVNode } from "vue";
1
+ import { defineComponent, computed, ref, openBlock, createElementBlock, Fragment, renderList, normalizeClass, createElementVNode, toDisplayString, createBlock, withCtx, createTextVNode, unref, createCommentVNode } from "vue";
2
2
  import { OLink } from "@opensig/opendesign";
3
3
  import { CalendarDataType } from "../types.mjs";
4
- import _sfc_main$1 from "../../common/MoreText.vue.mjs";
5
- import '../../common/MoreText.css';
6
4
  import { formatDate } from "../utils.mjs";
7
5
  import { useMeetingConfig } from "../composables/useMeetingConfig.mjs";
8
6
  import { useI18n } from "../../../i18n/index.mjs";
7
+ import _sfc_main$1 from "../../common/TooltipText.vue.mjs";
8
+ import '../../common/TooltipText.css';
9
9
  const _hoisted_1 = { class: "o-meeting-detail" };
10
10
  const _hoisted_2 = { class: "label" };
11
11
  const _hoisted_3 = { key: 2 };
@@ -149,9 +149,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
149
149
  createElementVNode("span", { class: "split-mark" }, toDisplayString(SPLIT_MARK)),
150
150
  info.ellipsis ? (openBlock(), createBlock(_sfc_main$1, {
151
151
  key: 0,
152
- show: __props.show,
153
- text: getField(info.key) || "-"
154
- }, null, 8, ["show", "text"])) : info.isLink ? (openBlock(), createBlock(unref(OLink), {
152
+ lines: 3
153
+ }, {
154
+ default: withCtx(() => [
155
+ createTextVNode(toDisplayString(getField(info.key) || "-"), 1)
156
+ ]),
157
+ _: 2
158
+ }, 1024)) : info.isLink ? (openBlock(), createBlock(unref(OLink), {
155
159
  key: 1,
156
160
  target: "_blank",
157
161
  class: "value",