@icvdeveloper/common-module 0.0.1
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.
- package/README.md +6 -0
- package/dist/module.cjs +5 -0
- package/dist/module.d.ts +9 -0
- package/dist/module.json +8 -0
- package/dist/module.mjs +102051 -0
- package/dist/runtime/@types/configVariables.d.ts +78 -0
- package/dist/runtime/@types/configVariables.mjs +0 -0
- package/dist/runtime/analytics.d.ts +8 -0
- package/dist/runtime/analytics.mjs +38 -0
- package/dist/runtime/assets/scss/_agenda.scss +47 -0
- package/dist/runtime/assets/scss/_animations.scss +11 -0
- package/dist/runtime/assets/scss/_container_variants.scss +26 -0
- package/dist/runtime/assets/scss/_custom.scss +364 -0
- package/dist/runtime/assets/scss/_footer.scss +20 -0
- package/dist/runtime/assets/scss/_forms.scss +29 -0
- package/dist/runtime/assets/scss/_functions.scss +24 -0
- package/dist/runtime/assets/scss/_header.scss +41 -0
- package/dist/runtime/assets/scss/_index_production.scss +45 -0
- package/dist/runtime/assets/scss/_transitions.scss +24 -0
- package/dist/runtime/assets/scss/_variables.scss +62 -0
- package/dist/runtime/assets/scss/_variables2.scss +0 -0
- package/dist/runtime/assets/scss/_webcast.scss +141 -0
- package/dist/runtime/assets/scss/index.scss +42 -0
- package/dist/runtime/assets/svg/answer.svg +14 -0
- package/dist/runtime/assets/svg/avatar.svg +1 -0
- package/dist/runtime/assets/svg/bell-icon.svg +3 -0
- package/dist/runtime/assets/svg/chat-icon.svg +1 -0
- package/dist/runtime/assets/svg/checkmark-icon.svg +1 -0
- package/dist/runtime/assets/svg/close-icon.svg +1 -0
- package/dist/runtime/assets/svg/icon-avatar.svg +1 -0
- package/dist/runtime/assets/svg/icon-close.svg +1 -0
- package/dist/runtime/assets/svg/icon-down-arrow.svg +1 -0
- package/dist/runtime/assets/svg/icon-facebook.svg +1 -0
- package/dist/runtime/assets/svg/icon-info.svg +3 -0
- package/dist/runtime/assets/svg/icon-linkedin.svg +1 -0
- package/dist/runtime/assets/svg/icon-new-window.svg +11 -0
- package/dist/runtime/assets/svg/icon-offline.svg +3 -0
- package/dist/runtime/assets/svg/icon-online.svg +3 -0
- package/dist/runtime/assets/svg/icon-person.svg +3 -0
- package/dist/runtime/assets/svg/icon-play.svg +3 -0
- package/dist/runtime/assets/svg/icon-star-filled.svg +30 -0
- package/dist/runtime/assets/svg/icon-star.svg +25 -0
- package/dist/runtime/assets/svg/icon-twitter.svg +1 -0
- package/dist/runtime/assets/svg/icon-video-chat.svg +14 -0
- package/dist/runtime/assets/svg/icon-website.svg +3 -0
- package/dist/runtime/assets/svg/icon-youtube.svg +1 -0
- package/dist/runtime/assets/svg/icon-zoom.svg +10 -0
- package/dist/runtime/assets/svg/notification-icon.svg +32 -0
- package/dist/runtime/assets/svg/offline-icon.svg +1 -0
- package/dist/runtime/assets/svg/online-icon.svg +3 -0
- package/dist/runtime/assets/svg/peer2peer.svg +3 -0
- package/dist/runtime/assets/svg/phone.svg +1 -0
- package/dist/runtime/assets/svg/plus-icon.svg +1 -0
- package/dist/runtime/assets/svg/red-icon.svg +3 -0
- package/dist/runtime/assets/svg/reject.svg +14 -0
- package/dist/runtime/assets/svg/search-icon.svg +3 -0
- package/dist/runtime/components/affiliates/AffiliatePage.vue +16 -0
- package/dist/runtime/components/agenda/AgendaTabbed.vue +342 -0
- package/dist/runtime/components/agenda/components/InfoLink.vue +55 -0
- package/dist/runtime/components/agenda/components/PlayIcon.vue +48 -0
- package/dist/runtime/components/agenda/components/PresentationLink.vue +147 -0
- package/dist/runtime/components/agenda/components/Sponsor.vue +108 -0
- package/dist/runtime/components/auth/LoginFullWidth.vue +76 -0
- package/dist/runtime/components/core/CountdownTimer.vue +275 -0
- package/dist/runtime/components/core/DynamicHtml.vue +16 -0
- package/dist/runtime/components/core/DynamicHtml.vue.d.ts +2 -0
- package/dist/runtime/components/core/Modal.vue +84 -0
- package/dist/runtime/components/core/SvgIcon.vue +119 -0
- package/dist/runtime/components/core/ZoomModal.vue +37 -0
- package/dist/runtime/components/events/EventHeader.vue +131 -0
- package/dist/runtime/components/events/PastEvents.vue +150 -0
- package/dist/runtime/components/events/UpcomingEvents.vue +145 -0
- package/dist/runtime/components/forms/ErrorField.vue +19 -0
- package/dist/runtime/components/forms/Message.vue +25 -0
- package/dist/runtime/components/forms/SearchInput.vue +30 -0
- package/dist/runtime/components/forms/SupportForm.vue +109 -0
- package/dist/runtime/components/forms/TextArea.vue +26 -0
- package/dist/runtime/components/forms/TextInput.vue +22 -0
- package/dist/runtime/components/layouts/Accordion.vue +76 -0
- package/dist/runtime/components/presenters/PresenterListing.vue +89 -0
- package/dist/runtime/components/presenters/PresenterModal.vue +83 -0
- package/dist/runtime/composables/useAgenda.d.ts +81 -0
- package/dist/runtime/composables/useAgenda.mjs +178 -0
- package/dist/runtime/composables/useAnalytics.d.ts +7 -0
- package/dist/runtime/composables/useAnalytics.mjs +10 -0
- package/dist/runtime/composables/useApi.d.ts +1 -0
- package/dist/runtime/composables/useApi.mjs +16 -0
- package/dist/runtime/composables/useConferenceHelpers.d.ts +65 -0
- package/dist/runtime/composables/useConferenceHelpers.mjs +270 -0
- package/dist/runtime/composables/useDateFormat.d.ts +12 -0
- package/dist/runtime/composables/useDateFormat.mjs +21 -0
- package/dist/runtime/composables/useLogin.d.ts +30 -0
- package/dist/runtime/composables/useLogin.mjs +58 -0
- package/dist/runtime/composables/usePresentation.d.ts +53 -0
- package/dist/runtime/composables/usePresentation.mjs +98 -0
- package/dist/runtime/composables/usePresenter.d.ts +15 -0
- package/dist/runtime/composables/usePresenter.mjs +67 -0
- package/dist/runtime/composables/usePresenters.d.ts +13 -0
- package/dist/runtime/composables/usePresenters.mjs +21 -0
- package/dist/runtime/composables/useV3plusCommonModule.d.ts +2 -0
- package/dist/runtime/composables/useV3plusCommonModule.mjs +2 -0
- package/dist/runtime/models/affiliate.d.ts +1 -0
- package/dist/runtime/models/affiliate.mjs +0 -0
- package/dist/runtime/models/authUser.d.ts +16 -0
- package/dist/runtime/models/authUser.mjs +0 -0
- package/dist/runtime/models/conference.d.ts +124 -0
- package/dist/runtime/models/conference.mjs +18 -0
- package/dist/runtime/models/globalConfig.d.ts +80 -0
- package/dist/runtime/models/globalConfig.mjs +0 -0
- package/dist/runtime/models/group.d.ts +14 -0
- package/dist/runtime/models/group.mjs +0 -0
- package/dist/runtime/models/icons.d.ts +18 -0
- package/dist/runtime/models/icons.mjs +0 -0
- package/dist/runtime/models/navigationConfig.d.ts +8 -0
- package/dist/runtime/models/navigationConfig.mjs +0 -0
- package/dist/runtime/models/pagesConfig.d.ts +169 -0
- package/dist/runtime/models/pagesConfig.mjs +0 -0
- package/dist/runtime/models/portal.d.ts +8 -0
- package/dist/runtime/models/portal.mjs +0 -0
- package/dist/runtime/models/templateConfig.d.ts +44 -0
- package/dist/runtime/models/templateConfig.mjs +0 -0
- package/dist/runtime/plugin.d.ts +2 -0
- package/dist/runtime/plugin.mjs +55 -0
- package/dist/runtime/store/affiliates.d.ts +12 -0
- package/dist/runtime/store/affiliates.mjs +35 -0
- package/dist/runtime/store/auth.d.ts +14 -0
- package/dist/runtime/store/auth.mjs +32 -0
- package/dist/runtime/store/conferences.d.ts +13 -0
- package/dist/runtime/store/conferences.mjs +86 -0
- package/dist/runtime/store/navigationConfig.d.ts +7 -0
- package/dist/runtime/store/navigationConfig.mjs +14 -0
- package/dist/runtime/store/portal.d.ts +9 -0
- package/dist/runtime/store/portal.mjs +39 -0
- package/dist/runtime/store/support.d.ts +3 -0
- package/dist/runtime/store/support.mjs +20 -0
- package/dist/runtime/store/templateConfigs.d.ts +20 -0
- package/dist/runtime/store/templateConfigs.mjs +84 -0
- package/dist/runtime/v3plusCommonPlugin.d.ts +14 -0
- package/dist/runtime/v3plusCommonPlugin.mjs +8 -0
- package/dist/types.d.ts +10 -0
- package/package.json +57 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="120" height="84" viewBox="0 0 120 84">
|
|
2
|
+
<image x="8" y="16" width="104" height="55" xlink:href="data:img/png;base64,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"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm3.445 17.827c-3.684 1.684-9.401-9.43-5.8-11.308l1.053-.519 1.746 3.409-1.042.513c-1.095.587 1.185 5.04 2.305 4.497l1.032-.505 1.76 3.397-1.054.516z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" fill="#e3effa" width="15" height="15" viewBox="0 0 24 24"><path d="M24 10h-10v-10h-4v10h-10v4h10v10h4v-10h10z"/></svg>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="50px" height="50px" viewBox="0 0 525 525" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
3
|
+
<!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
|
|
4
|
+
<title>reject</title>
|
|
5
|
+
<desc>Created with Sketch.</desc>
|
|
6
|
+
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
7
|
+
<g id="Video-Call-yes-no-(1)" transform="translate(-622.000000, -134.000000)">
|
|
8
|
+
<g id="reject" transform="translate(622.000000, 134.000000)">
|
|
9
|
+
<circle id="Oval" fill="#9F2214" cx="262.32" cy="262.62" r="262.12"></circle>
|
|
10
|
+
<path d="M431.13,324.68 C439.848013,309.180629 442.302617,290.932119 437.99,273.68 C416.99,187.68 263.99,190.13 263.99,190.13 C263.99,190.13 111,182.69 87.24,267.92 C82.3719639,285.020231 84.2288246,303.334817 92.43,319.11 L92.5,319.26 C96.787592,327.204682 105.735171,331.447697 114.6,329.74 L185.18,316.46 C185.18,316.46 208.36,310.18 206.24,290.15 C205.764001,286.286139 204.631018,282.532076 202.89,279.05 C199.05,267.58 192.23,250.83 184.23,247.22 C194.73,243.76 220.14,237.37 263.05,238.07 C305.96,238.77 331.14,246 341.52,249.8 C333.41,253.15 326.05,269.66 321.82,281.01 C319.970001,284.440405 318.715528,288.159869 318.11,292.01 C315.33,311.95 338.29,319.01 338.29,319.01 L408.61,334.65 C417.413254,336.643207 426.492273,332.696687 431.04,324.9 L431.13,324.68 Z" id="Path" fill="#FFFFFF"></path>
|
|
11
|
+
</g>
|
|
12
|
+
</g>
|
|
13
|
+
</g>
|
|
14
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { Affiliate } from "../../models/affiliate";
|
|
3
|
+
import { Sponsor } from "../../models/conference";
|
|
4
|
+
|
|
5
|
+
type Props = {
|
|
6
|
+
affiliate: Affiliate | Sponsor;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const props = defineProps<Props>();
|
|
10
|
+
|
|
11
|
+
const { affiliate } = toRefs(props);
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<template>
|
|
15
|
+
<div class="flex w-full flex-col"></div>
|
|
16
|
+
</template>
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { storeToRefs } from "pinia";
|
|
3
|
+
import { useAgenda } from "../../composables/useAgenda";
|
|
4
|
+
import { Conference, Sponsor as SponsorType } from "../../models/conference";
|
|
5
|
+
import { useDateFormat } from "../../composables/useDateFormat";
|
|
6
|
+
import { usePresentation } from "../../composables/usePresentation";
|
|
7
|
+
import { usePresenters } from "../../composables/usePresenters";
|
|
8
|
+
import CommonAccordion from "../layouts/Accordion.vue";
|
|
9
|
+
import Sponsor from "./components/Sponsor.vue";
|
|
10
|
+
import PresentationLink from "./components/PresentationLink.vue";
|
|
11
|
+
|
|
12
|
+
type Props = {
|
|
13
|
+
conference: Conference;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const props = defineProps<Props>();
|
|
17
|
+
|
|
18
|
+
const { conference } = toRefs(props);
|
|
19
|
+
|
|
20
|
+
// Methods
|
|
21
|
+
const {
|
|
22
|
+
days,
|
|
23
|
+
enabledSponsors,
|
|
24
|
+
displayTrackGroups,
|
|
25
|
+
horizontalTrackGroups,
|
|
26
|
+
selectedDay,
|
|
27
|
+
setSelectedDay,
|
|
28
|
+
selectedPresenter,
|
|
29
|
+
showTabDates,
|
|
30
|
+
shouldShowSponsors,
|
|
31
|
+
getCombinedTrackList,
|
|
32
|
+
hasPresentations,
|
|
33
|
+
isSmallGroupedTrack,
|
|
34
|
+
isGroupedTrack,
|
|
35
|
+
getTracks,
|
|
36
|
+
getTrackClasses,
|
|
37
|
+
showInfoLink,
|
|
38
|
+
useAccordion,
|
|
39
|
+
usePresenterModal,
|
|
40
|
+
showPresenterDescription,
|
|
41
|
+
} = useAgenda(conference);
|
|
42
|
+
const {
|
|
43
|
+
showPresentationTimes,
|
|
44
|
+
showPresentationEndTimes,
|
|
45
|
+
getPresentationEndTime,
|
|
46
|
+
} = usePresentation(conference);
|
|
47
|
+
const { getPresentersLabel, getSortedPresenters } = usePresenters(conference);
|
|
48
|
+
|
|
49
|
+
const { formatDate, formatTimezoneToLocal } = useDateFormat();
|
|
50
|
+
|
|
51
|
+
// computed
|
|
52
|
+
const presentersContainer = computed(() => {
|
|
53
|
+
return useAccordion() ? CommonAccordion : "div";
|
|
54
|
+
});
|
|
55
|
+
</script>
|
|
56
|
+
|
|
57
|
+
<template>
|
|
58
|
+
<div class="container mx-auto my-8 shadow-lg">
|
|
59
|
+
<!-- TABS -->
|
|
60
|
+
<div class="flex flex-col w-full">
|
|
61
|
+
<div class="flex flex-row w-full">
|
|
62
|
+
<div
|
|
63
|
+
v-if="days.length > 0"
|
|
64
|
+
class="flex flex-row agenda-tab-sponsor-bg-color w-3/4"
|
|
65
|
+
>
|
|
66
|
+
<button
|
|
67
|
+
v-for="(day, index) in days"
|
|
68
|
+
:key="index"
|
|
69
|
+
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"
|
|
70
|
+
:class="{
|
|
71
|
+
'agenda-tab-active-bg-color agenda-tab-color':
|
|
72
|
+
day === selectedDay,
|
|
73
|
+
'agenda-tab-bg-color agenda-tab-color': day !== selectedDay,
|
|
74
|
+
}"
|
|
75
|
+
@click="setSelectedDay(day)"
|
|
76
|
+
>
|
|
77
|
+
{{ day.name }}
|
|
78
|
+
<small v-if="showTabDates(day)">{{ formatDate(day.date) }}</small>
|
|
79
|
+
</button>
|
|
80
|
+
</div>
|
|
81
|
+
|
|
82
|
+
<div
|
|
83
|
+
class="flex w-1/4 items-center agenda-tab-sponsor-bg-color flex-row-reverse pr-5"
|
|
84
|
+
>
|
|
85
|
+
<Sponsor
|
|
86
|
+
v-if="shouldShowSponsors(selectedDay)"
|
|
87
|
+
:sponsor="selectedDay.sponsors[0]"
|
|
88
|
+
:show-label="false"
|
|
89
|
+
size="small"
|
|
90
|
+
:enabled-sponsors="enabledSponsors"
|
|
91
|
+
>
|
|
92
|
+
</Sponsor>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
|
|
97
|
+
<div
|
|
98
|
+
v-for="group_or_track in getCombinedTrackList(selectedDay)"
|
|
99
|
+
:key="group_or_track.id"
|
|
100
|
+
class="text-center lg:text-left"
|
|
101
|
+
>
|
|
102
|
+
<div v-if="hasPresentations(group_or_track)">
|
|
103
|
+
<!-- TRACK GROUP -->
|
|
104
|
+
<div
|
|
105
|
+
v-if="
|
|
106
|
+
displayTrackGroups != 'None' && group_or_track.type == 'track_group'
|
|
107
|
+
"
|
|
108
|
+
class="agenda-track-group-bg-color"
|
|
109
|
+
>
|
|
110
|
+
<div class="py-3">
|
|
111
|
+
<h2 class="font-light py-2 px-3 body-color-2">
|
|
112
|
+
{{ group_or_track.name }}
|
|
113
|
+
</h2>
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
|
|
117
|
+
<!-- ALL TRACKS CONTAINER -->
|
|
118
|
+
<div
|
|
119
|
+
class="bg-color-white"
|
|
120
|
+
:class="{ 'tracks-container': isSmallGroupedTrack(group_or_track) }"
|
|
121
|
+
>
|
|
122
|
+
<!-- TRACK + SESSIONS CONTAINER -->
|
|
123
|
+
<div
|
|
124
|
+
v-for="(track, trackIndex) in getTracks(group_or_track)"
|
|
125
|
+
:key="track.id"
|
|
126
|
+
class="track-container"
|
|
127
|
+
>
|
|
128
|
+
<!-- TRACK NAME + SPONSOR -->
|
|
129
|
+
<div
|
|
130
|
+
class="track-header flex flex-col min-w-full agenda-track-bg-color"
|
|
131
|
+
:class="getTrackClasses(group_or_track, trackIndex)"
|
|
132
|
+
>
|
|
133
|
+
<!-- TRACK NAME -->
|
|
134
|
+
<div
|
|
135
|
+
class="flex-1 py-3"
|
|
136
|
+
:class="{
|
|
137
|
+
'lg:w-3/4':
|
|
138
|
+
!isSmallGroupedTrack(group_or_track) &&
|
|
139
|
+
track.sponsors.length,
|
|
140
|
+
}"
|
|
141
|
+
>
|
|
142
|
+
<h2
|
|
143
|
+
class="font-light p-2 md:py-2 sm:px-3 body-color-2"
|
|
144
|
+
:class="{
|
|
145
|
+
'agenda-grouped-track-text-color text-lg':
|
|
146
|
+
isGroupedTrack(group_or_track),
|
|
147
|
+
}"
|
|
148
|
+
>
|
|
149
|
+
{{ track.name }}
|
|
150
|
+
</h2>
|
|
151
|
+
</div>
|
|
152
|
+
<!-- TRACK SPONSOR -->
|
|
153
|
+
<div
|
|
154
|
+
v-if="track.sponsors.length"
|
|
155
|
+
class="flex w-full pb-2 content-center items-center"
|
|
156
|
+
:class="{
|
|
157
|
+
'lg:pb-0 lg:w-1/4 lg:pr-5':
|
|
158
|
+
!isSmallGroupedTrack(group_or_track),
|
|
159
|
+
}"
|
|
160
|
+
>
|
|
161
|
+
<sponsor
|
|
162
|
+
v-if="shouldShowSponsors(track)"
|
|
163
|
+
:sponsor="track.sponsors[0]"
|
|
164
|
+
:inline="true"
|
|
165
|
+
size="small"
|
|
166
|
+
:enabled-sponsors="enabledSponsors"
|
|
167
|
+
>
|
|
168
|
+
</sponsor>
|
|
169
|
+
</div>
|
|
170
|
+
</div>
|
|
171
|
+
<!-- ALL TRACK SESSIONS -->
|
|
172
|
+
<div
|
|
173
|
+
class="track-sessions"
|
|
174
|
+
:class="{ 'border-l': horizontalTrackGroups && trackIndex > 0 }"
|
|
175
|
+
>
|
|
176
|
+
<!-- EACH SESSION -->
|
|
177
|
+
<div
|
|
178
|
+
v-for="(presentation, presentationIndex) in track.presentations"
|
|
179
|
+
:key="presentation.id"
|
|
180
|
+
>
|
|
181
|
+
<div
|
|
182
|
+
v-if="presentation.visible"
|
|
183
|
+
class="flex flex-col"
|
|
184
|
+
:class="
|
|
185
|
+
presentationIndex < track.presentations.length - 1
|
|
186
|
+
? 'border-b'
|
|
187
|
+
: ''
|
|
188
|
+
"
|
|
189
|
+
>
|
|
190
|
+
<!-- SESSION TIME, NAME & SPONSOR CONTAINER -->
|
|
191
|
+
<div
|
|
192
|
+
class="flex flex-col flex-1 items-center lg:items-start p-5"
|
|
193
|
+
:class="{
|
|
194
|
+
'bg-color-white-darker':
|
|
195
|
+
selectedPresenter &&
|
|
196
|
+
selectedPresenter.presentationId === presentation.id,
|
|
197
|
+
'lg:flex-row': !isSmallGroupedTrack(group_or_track),
|
|
198
|
+
}"
|
|
199
|
+
>
|
|
200
|
+
<!-- TIME + NAME CONTAINER -->
|
|
201
|
+
<div
|
|
202
|
+
class="flex-1"
|
|
203
|
+
:class="{
|
|
204
|
+
'pb-2': presentation.sponsors.length,
|
|
205
|
+
'lg:pb-0 lg:w-3/4':
|
|
206
|
+
!isSmallGroupedTrack(group_or_track) &&
|
|
207
|
+
presentation.sponsors.length,
|
|
208
|
+
}"
|
|
209
|
+
>
|
|
210
|
+
<!-- TIME -->
|
|
211
|
+
<h4
|
|
212
|
+
v-if="showPresentationTimes(presentation)"
|
|
213
|
+
class="font-light mb-3"
|
|
214
|
+
>
|
|
215
|
+
{{
|
|
216
|
+
formatTimezoneToLocal(
|
|
217
|
+
presentation.date,
|
|
218
|
+
"h:m a",
|
|
219
|
+
conference.timezone
|
|
220
|
+
)
|
|
221
|
+
}}
|
|
222
|
+
|
|
223
|
+
<span v-if="showPresentationEndTimes()"
|
|
224
|
+
>- {{ getPresentationEndTime(presentation) }}</span
|
|
225
|
+
>
|
|
226
|
+
{{
|
|
227
|
+
formatTimezoneToLocal(
|
|
228
|
+
presentation.date,
|
|
229
|
+
"z",
|
|
230
|
+
conference.timezone
|
|
231
|
+
)
|
|
232
|
+
}}
|
|
233
|
+
</h4>
|
|
234
|
+
|
|
235
|
+
<!-- NAME + PLAY BUTTON -->
|
|
236
|
+
<div class="pb-1">
|
|
237
|
+
<presentation-link
|
|
238
|
+
:conference="conference"
|
|
239
|
+
:track="track"
|
|
240
|
+
:presentation="presentation"
|
|
241
|
+
:show-info-link="showInfoLink()"
|
|
242
|
+
:is-small-grouped-track="
|
|
243
|
+
isSmallGroupedTrack(group_or_track)
|
|
244
|
+
"
|
|
245
|
+
></presentation-link>
|
|
246
|
+
</div>
|
|
247
|
+
|
|
248
|
+
<!-- PRESENTERS LIST (ACCORDION OR STANDARD/DIV) -->
|
|
249
|
+
<component
|
|
250
|
+
:is="presentersContainer"
|
|
251
|
+
v-if="presentation.presenters.length > 0"
|
|
252
|
+
:title="
|
|
253
|
+
getPresentersLabel(presentation.presenters.length)
|
|
254
|
+
"
|
|
255
|
+
>
|
|
256
|
+
<p
|
|
257
|
+
v-for="presenter in getSortedPresenters(
|
|
258
|
+
presentation.presenters
|
|
259
|
+
)"
|
|
260
|
+
:key="presenter.id"
|
|
261
|
+
class="font-bold my-1"
|
|
262
|
+
>
|
|
263
|
+
<CommonPresenterModal
|
|
264
|
+
v-if="usePresenterModal"
|
|
265
|
+
:use-icon="false"
|
|
266
|
+
:presenter="presenter"
|
|
267
|
+
:is-small-grouped-track="
|
|
268
|
+
isSmallGroupedTrack(group_or_track)
|
|
269
|
+
"
|
|
270
|
+
></CommonPresenterModal>
|
|
271
|
+
<CommonPresenterListing
|
|
272
|
+
v-else
|
|
273
|
+
:presenter="presenter"
|
|
274
|
+
:enable-bio="true"
|
|
275
|
+
:show-bio="false"
|
|
276
|
+
text-class="font-bold text-base"
|
|
277
|
+
link-class="agenda-presenter-color"
|
|
278
|
+
:is-small-grouped-track="
|
|
279
|
+
isSmallGroupedTrack(group_or_track)
|
|
280
|
+
"
|
|
281
|
+
@clicked="
|
|
282
|
+
showPresenterDescription(presenter, presentation)
|
|
283
|
+
"
|
|
284
|
+
/>
|
|
285
|
+
</p>
|
|
286
|
+
</component>
|
|
287
|
+
</div>
|
|
288
|
+
</div>
|
|
289
|
+
</div>
|
|
290
|
+
</div>
|
|
291
|
+
</div>
|
|
292
|
+
</div>
|
|
293
|
+
</div>
|
|
294
|
+
</div>
|
|
295
|
+
</div>
|
|
296
|
+
</div>
|
|
297
|
+
</template>
|
|
298
|
+
|
|
299
|
+
<style lang="scss" scoped>
|
|
300
|
+
.tracks-container {
|
|
301
|
+
display: grid;
|
|
302
|
+
grid-auto-columns: 1fr;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
.tracks-container .track-container {
|
|
306
|
+
display: contents;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.tracks-container .track-container:nth-child(4n + 1) .track-header {
|
|
310
|
+
grid-row: 1;
|
|
311
|
+
grid-column: 1;
|
|
312
|
+
}
|
|
313
|
+
.tracks-container .track-container:nth-child(4n + 2) .track-header {
|
|
314
|
+
grid-row: 1;
|
|
315
|
+
grid-column: 2;
|
|
316
|
+
}
|
|
317
|
+
.tracks-container .track-container:nth-child(4n + 3) .track-header {
|
|
318
|
+
grid-row: 1;
|
|
319
|
+
grid-column: 3;
|
|
320
|
+
}
|
|
321
|
+
.tracks-container .track-container:nth-child(4n + 4) .track-header {
|
|
322
|
+
grid-row: 1;
|
|
323
|
+
grid-column: 4;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
.tracks-container .track-container:nth-child(4n + 1) .track-sessions {
|
|
327
|
+
grid-row: 2;
|
|
328
|
+
grid-column: 1;
|
|
329
|
+
}
|
|
330
|
+
.tracks-container .track-container:nth-child(4n + 2) .track-sessions {
|
|
331
|
+
grid-row: 2;
|
|
332
|
+
grid-column: 2;
|
|
333
|
+
}
|
|
334
|
+
.tracks-container .track-container:nth-child(4n + 3) .track-sessions {
|
|
335
|
+
grid-row: 2;
|
|
336
|
+
grid-column: 3;
|
|
337
|
+
}
|
|
338
|
+
.tracks-container .track-container:nth-child(4n + 4) .track-sessions {
|
|
339
|
+
grid-row: 2;
|
|
340
|
+
grid-column: 4;
|
|
341
|
+
}
|
|
342
|
+
</style>
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { Presentation } from "../../../models/conference";
|
|
3
|
+
|
|
4
|
+
type Props = {
|
|
5
|
+
linkText: string;
|
|
6
|
+
presentation: Presentation;
|
|
7
|
+
useIcon?: boolean;
|
|
8
|
+
newLine?: boolean;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
12
|
+
useIcon: true,
|
|
13
|
+
newLine: false,
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
// data
|
|
17
|
+
const { useIcon, newLine, linkText, presentation } = toRefs(props);
|
|
18
|
+
const showDescModal = ref<boolean>(false);
|
|
19
|
+
|
|
20
|
+
// computed
|
|
21
|
+
const getLinkText = computed(() => {
|
|
22
|
+
return linkText.value.length > 0 ? linkText.value : "Session Details";
|
|
23
|
+
});
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<template>
|
|
27
|
+
<span>
|
|
28
|
+
<a class="cursor-pointer" @click="showDescModal = true">
|
|
29
|
+
<CommonSvgIcon
|
|
30
|
+
v-if="useIcon"
|
|
31
|
+
icon="info"
|
|
32
|
+
class="align-middle"
|
|
33
|
+
style="display: inline-block; margin-bottom: 2px"
|
|
34
|
+
:icon-width="'16px'"
|
|
35
|
+
></CommonSvgIcon>
|
|
36
|
+
<span v-else class="text-xs" :class="{ 'new-line': newLine }">{{
|
|
37
|
+
getLinkText
|
|
38
|
+
}}</span>
|
|
39
|
+
</a>
|
|
40
|
+
|
|
41
|
+
<CommonModal :visible="showDescModal" @trigger="showDescModal = false">
|
|
42
|
+
<template #modal-title>
|
|
43
|
+
<div class="text-lg font-bold text-left mb-4 pb-4 border-b">
|
|
44
|
+
{{ presentation.name }}
|
|
45
|
+
</div>
|
|
46
|
+
</template>
|
|
47
|
+
<template #modal-body>
|
|
48
|
+
<div
|
|
49
|
+
class="text-base font-normal text-left"
|
|
50
|
+
v-html="presentation.description"
|
|
51
|
+
></div>
|
|
52
|
+
</template>
|
|
53
|
+
</CommonModal>
|
|
54
|
+
</span>
|
|
55
|
+
</template>
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { usePresentation } from "../../../composables/usePresentation";
|
|
3
|
+
import { Conference, Presentation } from "../../../models/conference";
|
|
4
|
+
import { Icons } from "../../../models/icons";
|
|
5
|
+
|
|
6
|
+
type Props = {
|
|
7
|
+
icon?: keyof Icons;
|
|
8
|
+
conference: Conference;
|
|
9
|
+
presentation: Presentation;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
13
|
+
icon: "playarrow",
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
const { icon, conference, presentation } = toRefs(props);
|
|
17
|
+
|
|
18
|
+
const {
|
|
19
|
+
showPresentationPlayIcon,
|
|
20
|
+
getPresentationCustomPlayIcon,
|
|
21
|
+
getPresentationStreamingText,
|
|
22
|
+
} = usePresentation(conference);
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<template>
|
|
26
|
+
<span class="flex-initial flex flex-row items-center py-2 lg:py-1">
|
|
27
|
+
<span v-if="showPresentationPlayIcon(presentation)">
|
|
28
|
+
<img
|
|
29
|
+
v-if="getPresentationCustomPlayIcon(presentation)"
|
|
30
|
+
style="max-width: 15px"
|
|
31
|
+
:src="(getPresentationCustomPlayIcon(presentation) as unknown as string)"
|
|
32
|
+
alt=""
|
|
33
|
+
/>
|
|
34
|
+
<CommonSvgIcon
|
|
35
|
+
v-else
|
|
36
|
+
:icon="icon"
|
|
37
|
+
class="align-middle mr-1"
|
|
38
|
+
style="display: inline-block; margin-bottom: 2px"
|
|
39
|
+
:icon-width="'20px'"
|
|
40
|
+
>
|
|
41
|
+
</CommonSvgIcon
|
|
42
|
+
>
|
|
43
|
+
</span>
|
|
44
|
+
<small class="flex-initial uppercase text-base text-red-darker">{{
|
|
45
|
+
getPresentationStreamingText(presentation)
|
|
46
|
+
}}</small>
|
|
47
|
+
</span>
|
|
48
|
+
</template>
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { useAgenda } from "../../../composables/useAgenda";
|
|
3
|
+
import { useConferenceHelpers } from "../../../composables/useConferenceHelpers";
|
|
4
|
+
import { usePresentation } from "../../../composables/usePresentation";
|
|
5
|
+
import {
|
|
6
|
+
Conference,
|
|
7
|
+
Presentation,
|
|
8
|
+
Track,
|
|
9
|
+
TrackGroup,
|
|
10
|
+
} from "../../../models/conference";
|
|
11
|
+
import InfoLink from "./InfoLink.vue";
|
|
12
|
+
import PlayIcon from "./PlayIcon.vue";
|
|
13
|
+
|
|
14
|
+
type Props = {
|
|
15
|
+
conference: Conference;
|
|
16
|
+
presentation: Presentation;
|
|
17
|
+
track: Track | TrackGroup;
|
|
18
|
+
showInfoLink?: boolean;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
22
|
+
showInfoLink: true,
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const { conference, track, presentation } = toRefs(props);
|
|
26
|
+
|
|
27
|
+
// Methods
|
|
28
|
+
const { conferenceIsLive, conferenceIsArchived } =
|
|
29
|
+
useConferenceHelpers(conference);
|
|
30
|
+
const { isSmallGroupedTrack } = useAgenda(conference);
|
|
31
|
+
const {
|
|
32
|
+
getPresentationLinkTarget,
|
|
33
|
+
getLivePresentationLinkDestination,
|
|
34
|
+
showPresentationLinkIcon,
|
|
35
|
+
getPresentationLinkText,
|
|
36
|
+
presentationIsLiveOrMixed,
|
|
37
|
+
getArchivePresentationLinkDestination,
|
|
38
|
+
} = usePresentation(conference);
|
|
39
|
+
|
|
40
|
+
// Computed
|
|
41
|
+
const presentationNameClass = computed(() => {
|
|
42
|
+
return isSmallGroupedTrack(track.value) ? "text-base" : "text-lg";
|
|
43
|
+
});
|
|
44
|
+
</script>
|
|
45
|
+
|
|
46
|
+
<template>
|
|
47
|
+
<div>
|
|
48
|
+
<!-- LIVE AGENDA GO TO WEBCAST PAGE -->
|
|
49
|
+
<div v-if="conferenceIsLive()">
|
|
50
|
+
<div class="flex flex-col flex-wrap py-1">
|
|
51
|
+
<h2 class="flex-initial" :class="presentationNameClass">
|
|
52
|
+
<!-- zoom text link -->
|
|
53
|
+
<CommonZoomModal
|
|
54
|
+
v-if="presentation.type == 'zoom'"
|
|
55
|
+
:presentation-id="presentation.id"
|
|
56
|
+
modal-size="full"
|
|
57
|
+
>
|
|
58
|
+
<template #modal-link>
|
|
59
|
+
<span class="font-semibold no-underline heading-link">{{
|
|
60
|
+
presentation.name
|
|
61
|
+
}}</span>
|
|
62
|
+
</template>
|
|
63
|
+
</CommonZoomModal>
|
|
64
|
+
|
|
65
|
+
<!-- stream text link -->
|
|
66
|
+
<a
|
|
67
|
+
v-else
|
|
68
|
+
class="font-semibold no-underline heading-link"
|
|
69
|
+
:target="getPresentationLinkTarget(presentation)"
|
|
70
|
+
:href="getLivePresentationLinkDestination(presentation, track)"
|
|
71
|
+
>{{ presentation.name }}</a
|
|
72
|
+
>
|
|
73
|
+
|
|
74
|
+
<!-- session details -->
|
|
75
|
+
<InfoLink
|
|
76
|
+
v-if="showInfoLink && presentation.description"
|
|
77
|
+
:presentation="presentation"
|
|
78
|
+
:use-icon="showPresentationLinkIcon()"
|
|
79
|
+
:link-text="getPresentationLinkText()"
|
|
80
|
+
:new-line="isSmallGroupedTrack(track)"
|
|
81
|
+
class="ml-1"
|
|
82
|
+
></InfoLink>
|
|
83
|
+
</h2>
|
|
84
|
+
|
|
85
|
+
<!-- zoom icon link -->
|
|
86
|
+
<CommonZoomModal
|
|
87
|
+
v-if="presentation.type == 'zoom'"
|
|
88
|
+
:presentation-id="presentation.id"
|
|
89
|
+
modal-size="full"
|
|
90
|
+
>
|
|
91
|
+
<template #modal-link>
|
|
92
|
+
<PlayIcon
|
|
93
|
+
:presentation="presentation"
|
|
94
|
+
:conference="conference"
|
|
95
|
+
:class="'justify-center md:justify-start'"
|
|
96
|
+
icon="zoom"
|
|
97
|
+
></PlayIcon>
|
|
98
|
+
</template>
|
|
99
|
+
</CommonZoomModal>
|
|
100
|
+
<!-- stream icon link -->
|
|
101
|
+
<a
|
|
102
|
+
v-else
|
|
103
|
+
class="no-underline"
|
|
104
|
+
:target="getPresentationLinkTarget(presentation)"
|
|
105
|
+
:href="getLivePresentationLinkDestination(presentation, track)"
|
|
106
|
+
>
|
|
107
|
+
<PlayIcon
|
|
108
|
+
v-if="presentationIsLiveOrMixed(presentation)"
|
|
109
|
+
:presentation="presentation"
|
|
110
|
+
:conference="conference"
|
|
111
|
+
:class="'justify-center md:justify-start'"
|
|
112
|
+
icon="playarrow"
|
|
113
|
+
></PlayIcon>
|
|
114
|
+
</a>
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
<!-- ARCHIVE AGENDA GO TO MEDIA PAGE -->
|
|
118
|
+
<div v-if="conferenceIsArchived()">
|
|
119
|
+
<h2 class="font-semibold" :class="presentationNameClass">
|
|
120
|
+
<a
|
|
121
|
+
class="no-underline heading-link"
|
|
122
|
+
:target="getPresentationLinkTarget(presentation)"
|
|
123
|
+
:href="getArchivePresentationLinkDestination(presentation)"
|
|
124
|
+
>{{ presentation.name }}</a
|
|
125
|
+
>
|
|
126
|
+
<a
|
|
127
|
+
:target="getPresentationLinkTarget(presentation)"
|
|
128
|
+
:href="getArchivePresentationLinkDestination(presentation)"
|
|
129
|
+
><CommonSvgIcon
|
|
130
|
+
icon="playarrow"
|
|
131
|
+
class="ml-1 align-middle"
|
|
132
|
+
style="display: inline-block; margin-bottom: 2px"
|
|
133
|
+
:icon-width="'20px'"
|
|
134
|
+
></CommonSvgIcon
|
|
135
|
+
></a>
|
|
136
|
+
<InfoLink
|
|
137
|
+
v-if="showInfoLink && presentation.description"
|
|
138
|
+
:presentation="presentation"
|
|
139
|
+
:use-icon="showPresentationLinkIcon()"
|
|
140
|
+
:link-text="getPresentationLinkText()"
|
|
141
|
+
:new-line="isSmallGroupedTrack(track)"
|
|
142
|
+
class="ml-1"
|
|
143
|
+
></InfoLink>
|
|
144
|
+
</h2>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
</template>
|