@icvdeveloper/common-module 0.0.122 → 0.0.124

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 (94) hide show
  1. package/README.md +6 -6
  2. package/dist/module.json +1 -1
  3. package/dist/runtime/assets/svg/answer.svg +14 -14
  4. package/dist/runtime/assets/svg/avatar.svg +1 -1
  5. package/dist/runtime/assets/svg/bell-icon.svg +3 -3
  6. package/dist/runtime/assets/svg/checkmark-icon.svg +1 -1
  7. package/dist/runtime/assets/svg/close-icon.svg +1 -1
  8. package/dist/runtime/assets/svg/icon-avatar.svg +1 -1
  9. package/dist/runtime/assets/svg/icon-chevron.svg +4 -4
  10. package/dist/runtime/assets/svg/icon-circle-plus.svg +1 -1
  11. package/dist/runtime/assets/svg/icon-close.svg +1 -1
  12. package/dist/runtime/assets/svg/icon-info.svg +2 -2
  13. package/dist/runtime/assets/svg/icon-new-window.svg +11 -11
  14. package/dist/runtime/assets/svg/icon-offline.svg +3 -3
  15. package/dist/runtime/assets/svg/icon-online.svg +3 -3
  16. package/dist/runtime/assets/svg/icon-person.svg +2 -2
  17. package/dist/runtime/assets/svg/icon-play.svg +2 -2
  18. package/dist/runtime/assets/svg/icon-star-filled.svg +29 -29
  19. package/dist/runtime/assets/svg/icon-star.svg +24 -24
  20. package/dist/runtime/assets/svg/icon-video-chat.svg +14 -14
  21. package/dist/runtime/assets/svg/icon-website.svg +2 -2
  22. package/dist/runtime/assets/svg/icon-zoom.svg +10 -10
  23. package/dist/runtime/assets/svg/notification-icon.svg +32 -32
  24. package/dist/runtime/assets/svg/offline-icon.svg +1 -1
  25. package/dist/runtime/assets/svg/online-icon.svg +3 -3
  26. package/dist/runtime/assets/svg/peer2peer.svg +3 -3
  27. package/dist/runtime/assets/svg/phone.svg +1 -1
  28. package/dist/runtime/assets/svg/plus-icon.svg +1 -1
  29. package/dist/runtime/assets/svg/red-icon.svg +3 -3
  30. package/dist/runtime/assets/svg/reject.svg +14 -14
  31. package/dist/runtime/assets/svg/search-icon.svg +3 -3
  32. package/dist/runtime/components/affiliates/AffiliatePage.vue +17 -17
  33. package/dist/runtime/components/agenda/AgendaList.vue +259 -259
  34. package/dist/runtime/components/agenda/AgendaTabbed.vue +305 -305
  35. package/dist/runtime/components/agenda/components/AgendaListAccordion.vue +67 -67
  36. package/dist/runtime/components/agenda/components/Calendar.vue +67 -67
  37. package/dist/runtime/components/agenda/components/InfoLink.vue +56 -56
  38. package/dist/runtime/components/agenda/components/PlayIcon.vue +49 -49
  39. package/dist/runtime/components/agenda/components/PresentationLink.vue +137 -137
  40. package/dist/runtime/components/agenda/components/Sponsor.vue +132 -132
  41. package/dist/runtime/components/auth/LoginFullWidth.vue +78 -78
  42. package/dist/runtime/components/auth/PasswordReset.vue +60 -60
  43. package/dist/runtime/components/auth/Registration.vue +27 -27
  44. package/dist/runtime/components/auth/Ucc.vue +129 -129
  45. package/dist/runtime/components/core/Accordion.vue +97 -97
  46. package/dist/runtime/components/core/CountdownTimer.vue +336 -336
  47. package/dist/runtime/components/core/DynamicHtml.vue +1 -1
  48. package/dist/runtime/components/core/Modal.vue +111 -111
  49. package/dist/runtime/components/core/Navbar.vue +154 -154
  50. package/dist/runtime/components/core/SvgIcon.vue +157 -157
  51. package/dist/runtime/components/core/ZoomModal.vue +37 -37
  52. package/dist/runtime/components/events/EventHeader.vue +133 -133
  53. package/dist/runtime/components/events/ListEvents.vue +554 -554
  54. package/dist/runtime/components/forms/AlertBox.vue +21 -21
  55. package/dist/runtime/components/forms/ErrorField.vue +17 -17
  56. package/dist/runtime/components/forms/Message.vue +27 -27
  57. package/dist/runtime/components/forms/SearchInput.vue +38 -38
  58. package/dist/runtime/components/forms/SupportForm.vue +112 -112
  59. package/dist/runtime/components/forms/SwitchInput.vue +42 -42
  60. package/dist/runtime/components/forms/TextArea.vue +26 -26
  61. package/dist/runtime/components/forms/TextInput.vue +28 -28
  62. package/dist/runtime/components/layouts/Accordion.vue +78 -78
  63. package/dist/runtime/components/media/ArchivePlayerAndContentContainer.vue +160 -160
  64. package/dist/runtime/components/media/ArchiveVideoPlayer.vue +186 -186
  65. package/dist/runtime/components/media/PlayerAndContentContainer.vue +178 -178
  66. package/dist/runtime/components/media/WebcastVideoPlayer.vue +140 -172
  67. package/dist/runtime/components/media/components/AgendaPanel.vue +43 -43
  68. package/dist/runtime/components/media/components/ArchiveMediaContainer.vue +91 -91
  69. package/dist/runtime/components/media/components/CeCreditNotification.vue +95 -95
  70. package/dist/runtime/components/media/components/ContentAccordion.vue +63 -63
  71. package/dist/runtime/components/media/components/ContentArea.vue +158 -158
  72. package/dist/runtime/components/media/components/ContentTabs.vue +231 -231
  73. package/dist/runtime/components/media/components/DocumentsPanel.vue +31 -31
  74. package/dist/runtime/components/media/components/JsonApi.vue +31 -31
  75. package/dist/runtime/components/media/components/MediaContainer.vue +63 -63
  76. package/dist/runtime/components/media/components/OverviewPanel.vue +52 -52
  77. package/dist/runtime/components/media/components/PresentersPanel.vue +52 -52
  78. package/dist/runtime/components/media/components/SessionReporting.vue +101 -95
  79. package/dist/runtime/components/media/components/SponsorsPanel.vue +71 -71
  80. package/dist/runtime/components/media/components/WindowContent.vue +92 -92
  81. package/dist/runtime/components/media/components/WindowSlide.vue +72 -72
  82. package/dist/runtime/components/presenters/PresenterListing.vue +164 -164
  83. package/dist/runtime/components/presenters/PresenterModal.vue +223 -223
  84. package/dist/runtime/components/profile/Profile.vue +149 -149
  85. package/dist/runtime/components/profile/components/Sidebar.vue +27 -27
  86. package/dist/runtime/components/profile/components/SidebarNavItem.vue +39 -39
  87. package/dist/runtime/components/profile/tabs/Favorites.vue +21 -21
  88. package/dist/runtime/components/profile/tabs/GeneralInformation.vue +122 -122
  89. package/dist/runtime/components/profile/tabs/ProfileImage.vue +75 -75
  90. package/dist/runtime/components/support/FAQAccordion.vue +140 -140
  91. package/dist/runtime/composables/useUcc.mjs +0 -14
  92. package/dist/runtime/store/auth.mjs +0 -3
  93. package/package.json +1 -1
  94. package/dist/runtime/components/media/components/SessionReporting.vue.d.ts +0 -35
@@ -1,307 +1,307 @@
1
- <script lang="ts" setup>
2
- import { toRefs, computed } from "vue";
3
- import { storeToRefs } from "pinia";
4
- import { DateTime } from "luxon";
5
- import { useAgenda } from "../../composables/useAgenda";
6
- import { Conference, Sponsor as SponsorType } from "../../models/conference";
7
- import { usePresentation } from "../../composables/usePresentation";
8
- import { usePresenters } from "../../composables/usePresenters";
9
- import CommonAccordion from "../layouts/Accordion.vue";
10
- import Sponsor from "./components/Sponsor.vue";
11
- import PresentationLink from "./components/PresentationLink.vue";
12
- import Calendar from "./components/Calendar.vue";
13
-
14
- type Props = {
15
- conference: Conference;
16
- };
17
-
18
- const props = defineProps<Props>();
19
-
20
- const { conference } = toRefs(props);
21
-
22
- // Methods
23
- const {
24
- days,
25
- enabledSponsors,
26
- displayTrackGroups,
27
- horizontalTrackGroups,
28
- selectedDay,
29
- setSelectedDay,
30
- selectedPresenter,
31
- showTabDates,
32
- shouldShowSponsors,
33
- getCombinedTrackList,
34
- hasPresentations,
35
- isSmallGroupedTrack,
36
- isGroupedTrack,
37
- getTracks,
38
- getTrackClasses,
39
- showInfoLink,
40
- useAccordion,
41
- usePresenterModal,
42
- showPresenterDescription,
43
- } = useAgenda(conference);
44
- const {
45
- showPresentationTimes,
46
- showPresentationEndTimes,
47
- getPresentationStartTime,
48
- getPresentationEndTime,
49
- } = usePresentation(conference);
50
- const { getPresentersLabel, getSortedPresenters } = usePresenters(conference);
51
-
52
- // computed
53
- const presentersContainer = computed(() => {
54
- return useAccordion() ? CommonAccordion : "div";
55
- });
56
- </script>
57
-
58
- <template>
59
- <div class="container mx-auto my-8 shadow-lg">
60
- <!-- TABS -->
61
- <div class="flex flex-col w-full">
62
- <div class="flex flex-row w-full">
63
- <div
64
- v-if="days.length > 0"
65
- class="flex flex-row agenda-tab-sponsor-bg-color w-3/4"
66
- >
67
- <button
68
- v-for="(day, index) in days"
69
- :key="index"
70
- class="flex-1 md:flex-initial py-5 px-4 md:px-6 text-base text-center cursor-pointer no-underline heading-color-2 focus:outline-none"
71
- :class="{
72
- 'agenda-tab-active-bg-color agenda-tab-color':
73
- day === selectedDay,
74
- 'agenda-tab-bg-color agenda-tab-color': day !== selectedDay,
75
- }"
76
- @click="setSelectedDay(day)"
77
- >
78
- {{ day.name }}
79
- <small v-if="showTabDates(day)">{{
80
- DateTime.fromSQL(day.date, { zone: conference.timezone }).toFormat("MMMM d, yyyy")
81
- }}</small>
82
- </button>
83
- </div>
84
-
85
- <div
86
- class="flex w-1/4 items-center agenda-tab-sponsor-bg-color flex-row-reverse pr-5"
87
- >
88
- <Sponsor
89
- v-if="shouldShowSponsors(selectedDay)"
90
- :sponsor="selectedDay.sponsors[0]"
91
- :show-label="false"
92
- size="small"
93
- :enabled-sponsors="enabledSponsors"
94
- >
95
- </Sponsor>
96
- </div>
97
- </div>
98
- </div>
99
-
100
- <div
101
- v-for="group_or_track in getCombinedTrackList(selectedDay)"
102
- :key="group_or_track.id"
103
- class="text-center lg:text-left"
104
- >
105
- <div v-if="hasPresentations(group_or_track)">
106
- <!-- TRACK GROUP -->
107
- <div
108
- v-if="
109
- displayTrackGroups != 'None' && group_or_track.type == 'track_group'
110
- "
111
- class="agenda-track-group-bg-color"
112
- >
113
- <div class="py-3">
114
- <h2 class="font-light py-2 px-3 body-color-2">
115
- {{ group_or_track.name }}
116
- </h2>
117
- </div>
118
- </div>
119
-
120
- <!-- ALL TRACKS CONTAINER -->
121
- <div
122
- class="bg-color-white"
123
- :class="{ 'tracks-container': isSmallGroupedTrack(group_or_track) }"
124
- >
125
- <!-- TRACK + SESSIONS CONTAINER -->
126
- <div
127
- v-for="(track, trackIndex) in getTracks(group_or_track)"
128
- :key="track.id"
129
- class="track-container"
130
- >
131
- <!-- TRACK NAME + SPONSOR -->
132
- <div
133
- class="track-header flex flex-col min-w-full agenda-track-bg-color"
134
- :class="getTrackClasses(group_or_track, trackIndex)"
135
- >
136
- <!-- TRACK NAME -->
137
- <div
138
- class="flex-1 py-3"
139
- :class="{
140
- 'lg:w-3/4':
141
- !isSmallGroupedTrack(group_or_track) &&
142
- track.sponsors.length,
143
- }"
144
- >
145
- <h2
146
- class="font-light p-2 md:py-2 sm:px-3 body-color-2"
147
- :class="{
148
- 'agenda-grouped-track-text-color text-lg':
149
- isGroupedTrack(group_or_track),
150
- }"
151
- >
152
- {{ track.name }}
153
- </h2>
154
- </div>
155
- <!-- TRACK SPONSOR -->
156
- <div
157
- v-if="track.sponsors.length"
158
- class="flex w-full pb-2 content-center items-center"
159
- :class="{
160
- 'lg:pb-0 lg:w-1/4 lg:pr-5':
161
- !isSmallGroupedTrack(group_or_track),
162
- }"
163
- >
164
- <sponsor
165
- v-if="shouldShowSponsors(track)"
166
- :sponsor="track.sponsors[0]"
167
- :inline="true"
168
- size="small"
169
- :enabled-sponsors="enabledSponsors"
170
- >
171
- </sponsor>
172
- </div>
173
- </div>
174
- <!-- ALL TRACK SESSIONS -->
175
- <div
176
- class="track-sessions"
177
- :class="{ 'border-l': horizontalTrackGroups && trackIndex > 0 }"
178
- >
179
- <!-- EACH SESSION -->
180
- <div
181
- v-for="(presentation, presentationIndex) in track.presentations"
182
- :key="presentation.id"
183
- >
184
- <div
185
- v-if="presentation.visible"
186
- class="flex flex-col"
187
- :class="
188
- presentationIndex < track.presentations.length - 1
189
- ? 'border-b'
190
- : ''
191
- "
192
- >
193
- <!-- SESSION TIME, NAME & SPONSOR CONTAINER -->
194
- <div
195
- class="flex flex-col flex-1 items-center lg:items-start p-5"
196
- :class="{
197
- 'bg-color-white-darker':
198
- selectedPresenter &&
199
- selectedPresenter.presentationId === presentation.id,
200
- 'lg:flex-row': !isSmallGroupedTrack(group_or_track),
201
- }"
202
- >
203
- <!-- TIME + NAME CONTAINER -->
204
- <div
205
- class="flex-1"
206
- :class="{
207
- 'pb-2': presentation.sponsors.length,
208
- 'lg:pb-0 lg:w-3/4':
209
- !isSmallGroupedTrack(group_or_track) &&
210
- presentation.sponsors.length,
211
- }"
212
- >
213
- <!-- TIME -->
214
- <h4
215
- v-if="showPresentationTimes(presentation)"
216
- class="font-light mb-3"
217
- >
218
- {{
219
- getPresentationStartTime(presentation, "h:mm a")
220
- }}
221
-
222
- <span v-if="showPresentationEndTimes()"
223
- >- {{ getPresentationEndTime(presentation, "h:mm a") }}</span
224
- >
225
- {{
226
- DateTime.fromSQL(
227
- presentation.date,
228
- { zone: conference.timezone }
229
- ).toLocal().offsetNameShort
230
- }}
231
- </h4>
232
-
233
- <!-- NAME + PLAY BUTTON -->
234
- <div class="pb-1">
235
- <presentation-link
236
- :conference="conference"
237
- :track="track"
238
- :presentation="presentation"
239
- :show-info-link="showInfoLink()"
240
- :is-small-grouped-track="
241
- isSmallGroupedTrack(group_or_track)
242
- "
243
- ></presentation-link>
244
- </div>
245
-
246
- <!-- ADD TO CALENDAR -->
247
- <calendar
248
- :key="conference.id"
249
- class="mb-3"
250
- :presentation="presentation"
251
- :conference="conference"
252
- />
253
-
254
- <!-- PRESENTERS LIST (ACCORDION OR STANDARD/DIV) -->
255
- <component
256
- :is="presentersContainer"
257
- v-if="presentation.presenters.length > 0"
258
- :title="
259
- getPresentersLabel(presentation.presenters.length)
260
- "
261
- >
262
- <p
263
- v-for="presenter in getSortedPresenters(
264
- presentation.presenters
265
- )"
266
- :key="presenter.id"
267
- class="font-bold my-1"
268
- >
269
- <CommonPresenterModal
270
- v-if="usePresenterModal"
271
- :use-icon="false"
272
- :presenter="presenter"
273
- :is-small-grouped-track="
274
- isSmallGroupedTrack(group_or_track)
275
- "
276
- ></CommonPresenterModal>
277
- <CommonPresenterListing
278
- v-else
279
- :presenter="presenter"
280
- :enable-bio="true"
281
- :show-bio="false"
282
- text-class="font-bold text-base"
283
- link-class="agenda-presenter-color"
284
- :is-small-grouped-track="
285
- isSmallGroupedTrack(group_or_track)
286
- "
287
- @clicked="
288
- showPresenterDescription(presenter, presentation)
289
- "
290
- />
291
- </p>
292
- </component>
293
- </div>
294
- </div>
295
- </div>
296
- </div>
297
- </div>
298
- </div>
299
- </div>
300
- </div>
301
- </div>
302
- </div>
303
- </template>
304
-
1
+ <script lang="ts" setup>
2
+ import { toRefs, computed } from "vue";
3
+ import { storeToRefs } from "pinia";
4
+ import { DateTime } from "luxon";
5
+ import { useAgenda } from "../../composables/useAgenda";
6
+ import { Conference, Sponsor as SponsorType } from "../../models/conference";
7
+ import { usePresentation } from "../../composables/usePresentation";
8
+ import { usePresenters } from "../../composables/usePresenters";
9
+ import CommonAccordion from "../layouts/Accordion.vue";
10
+ import Sponsor from "./components/Sponsor.vue";
11
+ import PresentationLink from "./components/PresentationLink.vue";
12
+ import Calendar from "./components/Calendar.vue";
13
+
14
+ type Props = {
15
+ conference: Conference;
16
+ };
17
+
18
+ const props = defineProps<Props>();
19
+
20
+ const { conference } = toRefs(props);
21
+
22
+ // Methods
23
+ const {
24
+ days,
25
+ enabledSponsors,
26
+ displayTrackGroups,
27
+ horizontalTrackGroups,
28
+ selectedDay,
29
+ setSelectedDay,
30
+ selectedPresenter,
31
+ showTabDates,
32
+ shouldShowSponsors,
33
+ getCombinedTrackList,
34
+ hasPresentations,
35
+ isSmallGroupedTrack,
36
+ isGroupedTrack,
37
+ getTracks,
38
+ getTrackClasses,
39
+ showInfoLink,
40
+ useAccordion,
41
+ usePresenterModal,
42
+ showPresenterDescription,
43
+ } = useAgenda(conference);
44
+ const {
45
+ showPresentationTimes,
46
+ showPresentationEndTimes,
47
+ getPresentationStartTime,
48
+ getPresentationEndTime,
49
+ } = usePresentation(conference);
50
+ const { getPresentersLabel, getSortedPresenters } = usePresenters(conference);
51
+
52
+ // computed
53
+ const presentersContainer = computed(() => {
54
+ return useAccordion() ? CommonAccordion : "div";
55
+ });
56
+ </script>
57
+
58
+ <template>
59
+ <div class="container mx-auto my-8 shadow-lg">
60
+ <!-- TABS -->
61
+ <div class="flex flex-col w-full">
62
+ <div class="flex flex-row w-full">
63
+ <div
64
+ v-if="days.length > 0"
65
+ class="flex flex-row agenda-tab-sponsor-bg-color w-3/4"
66
+ >
67
+ <button
68
+ v-for="(day, index) in days"
69
+ :key="index"
70
+ class="flex-1 md:flex-initial py-5 px-4 md:px-6 text-base text-center cursor-pointer no-underline heading-color-2 focus:outline-none"
71
+ :class="{
72
+ 'agenda-tab-active-bg-color agenda-tab-color':
73
+ day === selectedDay,
74
+ 'agenda-tab-bg-color agenda-tab-color': day !== selectedDay,
75
+ }"
76
+ @click="setSelectedDay(day)"
77
+ >
78
+ {{ day.name }}
79
+ <small v-if="showTabDates(day)">{{
80
+ DateTime.fromSQL(day.date, { zone: conference.timezone }).toFormat("MMMM d, yyyy")
81
+ }}</small>
82
+ </button>
83
+ </div>
84
+
85
+ <div
86
+ class="flex w-1/4 items-center agenda-tab-sponsor-bg-color flex-row-reverse pr-5"
87
+ >
88
+ <Sponsor
89
+ v-if="shouldShowSponsors(selectedDay)"
90
+ :sponsor="selectedDay.sponsors[0]"
91
+ :show-label="false"
92
+ size="small"
93
+ :enabled-sponsors="enabledSponsors"
94
+ >
95
+ </Sponsor>
96
+ </div>
97
+ </div>
98
+ </div>
99
+
100
+ <div
101
+ v-for="group_or_track in getCombinedTrackList(selectedDay)"
102
+ :key="group_or_track.id"
103
+ class="text-center lg:text-left"
104
+ >
105
+ <div v-if="hasPresentations(group_or_track)">
106
+ <!-- TRACK GROUP -->
107
+ <div
108
+ v-if="
109
+ displayTrackGroups != 'None' && group_or_track.type == 'track_group'
110
+ "
111
+ class="agenda-track-group-bg-color"
112
+ >
113
+ <div class="py-3">
114
+ <h2 class="font-light py-2 px-3 body-color-2">
115
+ {{ group_or_track.name }}
116
+ </h2>
117
+ </div>
118
+ </div>
119
+
120
+ <!-- ALL TRACKS CONTAINER -->
121
+ <div
122
+ class="bg-color-white"
123
+ :class="{ 'tracks-container': isSmallGroupedTrack(group_or_track) }"
124
+ >
125
+ <!-- TRACK + SESSIONS CONTAINER -->
126
+ <div
127
+ v-for="(track, trackIndex) in getTracks(group_or_track)"
128
+ :key="track.id"
129
+ class="track-container"
130
+ >
131
+ <!-- TRACK NAME + SPONSOR -->
132
+ <div
133
+ class="track-header flex flex-col min-w-full agenda-track-bg-color"
134
+ :class="getTrackClasses(group_or_track, trackIndex)"
135
+ >
136
+ <!-- TRACK NAME -->
137
+ <div
138
+ class="flex-1 py-3"
139
+ :class="{
140
+ 'lg:w-3/4':
141
+ !isSmallGroupedTrack(group_or_track) &&
142
+ track.sponsors.length,
143
+ }"
144
+ >
145
+ <h2
146
+ class="font-light p-2 md:py-2 sm:px-3 body-color-2"
147
+ :class="{
148
+ 'agenda-grouped-track-text-color text-lg':
149
+ isGroupedTrack(group_or_track),
150
+ }"
151
+ >
152
+ {{ track.name }}
153
+ </h2>
154
+ </div>
155
+ <!-- TRACK SPONSOR -->
156
+ <div
157
+ v-if="track.sponsors.length"
158
+ class="flex w-full pb-2 content-center items-center"
159
+ :class="{
160
+ 'lg:pb-0 lg:w-1/4 lg:pr-5':
161
+ !isSmallGroupedTrack(group_or_track),
162
+ }"
163
+ >
164
+ <sponsor
165
+ v-if="shouldShowSponsors(track)"
166
+ :sponsor="track.sponsors[0]"
167
+ :inline="true"
168
+ size="small"
169
+ :enabled-sponsors="enabledSponsors"
170
+ >
171
+ </sponsor>
172
+ </div>
173
+ </div>
174
+ <!-- ALL TRACK SESSIONS -->
175
+ <div
176
+ class="track-sessions"
177
+ :class="{ 'border-l': horizontalTrackGroups && trackIndex > 0 }"
178
+ >
179
+ <!-- EACH SESSION -->
180
+ <div
181
+ v-for="(presentation, presentationIndex) in track.presentations"
182
+ :key="presentation.id"
183
+ >
184
+ <div
185
+ v-if="presentation.visible"
186
+ class="flex flex-col"
187
+ :class="
188
+ presentationIndex < track.presentations.length - 1
189
+ ? 'border-b'
190
+ : ''
191
+ "
192
+ >
193
+ <!-- SESSION TIME, NAME & SPONSOR CONTAINER -->
194
+ <div
195
+ class="flex flex-col flex-1 items-center lg:items-start p-5"
196
+ :class="{
197
+ 'bg-color-white-darker':
198
+ selectedPresenter &&
199
+ selectedPresenter.presentationId === presentation.id,
200
+ 'lg:flex-row': !isSmallGroupedTrack(group_or_track),
201
+ }"
202
+ >
203
+ <!-- TIME + NAME CONTAINER -->
204
+ <div
205
+ class="flex-1"
206
+ :class="{
207
+ 'pb-2': presentation.sponsors.length,
208
+ 'lg:pb-0 lg:w-3/4':
209
+ !isSmallGroupedTrack(group_or_track) &&
210
+ presentation.sponsors.length,
211
+ }"
212
+ >
213
+ <!-- TIME -->
214
+ <h4
215
+ v-if="showPresentationTimes(presentation)"
216
+ class="font-light mb-3"
217
+ >
218
+ {{
219
+ getPresentationStartTime(presentation, "h:mm a")
220
+ }}
221
+
222
+ <span v-if="showPresentationEndTimes()"
223
+ >- {{ getPresentationEndTime(presentation, "h:mm a") }}</span
224
+ >
225
+ {{
226
+ DateTime.fromSQL(
227
+ presentation.date,
228
+ { zone: conference.timezone }
229
+ ).toLocal().offsetNameShort
230
+ }}
231
+ </h4>
232
+
233
+ <!-- NAME + PLAY BUTTON -->
234
+ <div class="pb-1">
235
+ <presentation-link
236
+ :conference="conference"
237
+ :track="track"
238
+ :presentation="presentation"
239
+ :show-info-link="showInfoLink()"
240
+ :is-small-grouped-track="
241
+ isSmallGroupedTrack(group_or_track)
242
+ "
243
+ ></presentation-link>
244
+ </div>
245
+
246
+ <!-- ADD TO CALENDAR -->
247
+ <calendar
248
+ :key="conference.id"
249
+ class="mb-3"
250
+ :presentation="presentation"
251
+ :conference="conference"
252
+ />
253
+
254
+ <!-- PRESENTERS LIST (ACCORDION OR STANDARD/DIV) -->
255
+ <component
256
+ :is="presentersContainer"
257
+ v-if="presentation.presenters.length > 0"
258
+ :title="
259
+ getPresentersLabel(presentation.presenters.length)
260
+ "
261
+ >
262
+ <p
263
+ v-for="presenter in getSortedPresenters(
264
+ presentation.presenters
265
+ )"
266
+ :key="presenter.id"
267
+ class="font-bold my-1"
268
+ >
269
+ <CommonPresenterModal
270
+ v-if="usePresenterModal"
271
+ :use-icon="false"
272
+ :presenter="presenter"
273
+ :is-small-grouped-track="
274
+ isSmallGroupedTrack(group_or_track)
275
+ "
276
+ ></CommonPresenterModal>
277
+ <CommonPresenterListing
278
+ v-else
279
+ :presenter="presenter"
280
+ :enable-bio="true"
281
+ :show-bio="false"
282
+ text-class="font-bold text-base"
283
+ link-class="agenda-presenter-color"
284
+ :is-small-grouped-track="
285
+ isSmallGroupedTrack(group_or_track)
286
+ "
287
+ @clicked="
288
+ showPresenterDescription(presenter, presentation)
289
+ "
290
+ />
291
+ </p>
292
+ </component>
293
+ </div>
294
+ </div>
295
+ </div>
296
+ </div>
297
+ </div>
298
+ </div>
299
+ </div>
300
+ </div>
301
+ </div>
302
+ </div>
303
+ </template>
304
+
305
305
  <style scoped>
306
306
  .tracks-container {
307
307
  display: grid;
@@ -351,4 +351,4 @@ const presentersContainer = computed(() => {
351
351
  grid-row: 2;
352
352
  grid-column: 4;
353
353
  }
354
- </style>
354
+ </style>