@icvdeveloper/common-module 0.0.102 → 0.0.104

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