@icvdeveloper/common-module 0.0.126 → 0.0.127

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 (100) hide show
  1. package/README.md +6 -6
  2. package/dist/module.json +1 -1
  3. package/dist/runtime/@types/components.d.ts +12 -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 +329 -17
  34. package/dist/runtime/components/agenda/AgendaList.vue +259 -259
  35. package/dist/runtime/components/agenda/AgendaTabbed.vue +305 -305
  36. package/dist/runtime/components/agenda/components/AgendaListAccordion.vue +67 -67
  37. package/dist/runtime/components/agenda/components/Calendar.vue +67 -67
  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 +129 -129
  46. package/dist/runtime/components/core/Accordion.vue +97 -97
  47. package/dist/runtime/components/core/CountdownTimer.vue +336 -336
  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 +157 -157
  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 +554 -554
  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 +160 -160
  65. package/dist/runtime/components/media/ArchiveVideoPlayer.vue +186 -186
  66. package/dist/runtime/components/media/PlayerAndContentContainer.vue +183 -183
  67. package/dist/runtime/components/media/WebcastVideoPlayer.vue +140 -140
  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/ContentArea.vue +158 -158
  73. package/dist/runtime/components/media/components/ContentTabs.vue +231 -231
  74. package/dist/runtime/components/media/components/DocumentsPanel.vue +31 -31
  75. package/dist/runtime/components/media/components/JsonApi.vue +31 -31
  76. package/dist/runtime/components/media/components/MediaContainer.vue +63 -63
  77. package/dist/runtime/components/media/components/OverviewPanel.vue +52 -52
  78. package/dist/runtime/components/media/components/PresentersPanel.vue +52 -52
  79. package/dist/runtime/components/media/components/SessionReporting.vue +102 -102
  80. package/dist/runtime/components/media/components/SponsorsPanel.vue +71 -71
  81. package/dist/runtime/components/media/components/WindowContent.vue +92 -92
  82. package/dist/runtime/components/media/components/WindowSlide.vue +72 -72
  83. package/dist/runtime/components/presenters/PresenterListing.vue +164 -164
  84. package/dist/runtime/components/presenters/PresenterModal.vue +223 -223
  85. package/dist/runtime/components/profile/Profile.vue +149 -149
  86. package/dist/runtime/components/profile/components/Sidebar.vue +27 -27
  87. package/dist/runtime/components/profile/components/SidebarNavItem.vue +39 -39
  88. package/dist/runtime/components/profile/tabs/Favorites.vue +21 -21
  89. package/dist/runtime/components/profile/tabs/GeneralInformation.vue +122 -122
  90. package/dist/runtime/components/profile/tabs/ProfileImage.vue +75 -75
  91. package/dist/runtime/components/support/FAQAccordion.vue +140 -140
  92. package/dist/runtime/models/conference.d.ts +24 -0
  93. package/dist/runtime/models/document.d.ts +7 -0
  94. package/dist/runtime/models/link.d.ts +6 -0
  95. package/dist/runtime/models/link.mjs +0 -0
  96. package/dist/runtime/models/video.d.ts +6 -0
  97. package/dist/runtime/models/video.mjs +0 -0
  98. package/package.json +1 -1
  99. package/dist/runtime/models/affiliate.d.ts +0 -1
  100. /package/dist/runtime/models/{affiliate.mjs → document.mjs} +0 -0
@@ -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>