@icvdeveloper/common-module 2.0.0 → 2.1.0
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/CHANGELOG.md +2 -0
- package/dist/module.d.mts +1051 -2
- package/dist/module.d.ts +1051 -2
- package/dist/module.json +1 -1
- package/dist/module.mjs +21 -17
- package/dist/runtime/analytics.d.ts +1 -6
- package/dist/runtime/assets/scss/_agenda.css +1 -0
- package/dist/runtime/assets/scss/_animations.css +1 -0
- package/dist/runtime/assets/scss/_container_variants.css +1 -0
- package/dist/runtime/assets/scss/_custom.css +3 -0
- package/dist/runtime/assets/scss/_forms.css +1 -0
- package/dist/runtime/assets/scss/_header.css +0 -0
- package/dist/runtime/assets/scss/_index_production.css +1 -0
- package/dist/runtime/assets/scss/_transitions.css +1 -0
- package/dist/runtime/assets/scss/_variables.css +1 -0
- package/dist/runtime/assets/scss/_variables2.css +0 -0
- package/dist/runtime/assets/scss/_webcast.css +1 -0
- package/dist/runtime/assets/scss/index.css +1 -0
- package/dist/runtime/components/affiliates/AffiliateModal.vue +1 -1
- package/dist/runtime/components/affiliates/AffiliatePage.vue +70 -105
- package/dist/runtime/components/agenda/AgendaList.vue +18 -14
- package/dist/runtime/components/agenda/AgendaTabbed.vue +21 -24
- package/dist/runtime/components/agenda/components/AgendaListAccordion.vue +8 -3
- package/dist/runtime/components/agenda/components/Calendar.vue +17 -17
- package/dist/runtime/components/agenda/components/Favorite.vue +7 -5
- package/dist/runtime/components/agenda/components/InfoLink.vue +15 -5
- package/dist/runtime/components/agenda/components/PlayIcon.vue +2 -4
- package/dist/runtime/components/agenda/components/PresentationLink.vue +16 -9
- package/dist/runtime/components/agenda/components/Sponsor.vue +31 -24
- package/dist/runtime/components/auth/PasswordReset.vue +20 -5
- package/dist/runtime/components/auth/Registration.vue +14 -4
- package/dist/runtime/components/auth/Ucc.vue +44 -27
- package/dist/runtime/components/chat/ChatConversationList.vue +11 -11
- package/dist/runtime/components/chat/ChatCreateConversation.vue +41 -47
- package/dist/runtime/components/chat/ChatCreateGroupConversation.vue +6 -11
- package/dist/runtime/components/chat/ChatHeader.vue +46 -47
- package/dist/runtime/components/chat/ChatShowConversation.vue +1 -2
- package/dist/runtime/components/chat/ChatWidget.vue +1 -26
- package/dist/runtime/components/chat/ChatWindow.vue +4 -61
- package/dist/runtime/components/chat/MessageInput.vue +1 -4
- package/dist/runtime/components/chat/SearchInput.vue +1 -1
- package/dist/runtime/components/core/Accordion.vue +11 -11
- package/dist/runtime/components/core/AttendeeList.vue +8 -22
- package/dist/runtime/components/core/CountdownTimer.vue +67 -51
- package/dist/runtime/components/core/DynamicHtml.vue.d.ts +6 -9
- package/dist/runtime/components/core/Modal.vue +3 -9
- package/dist/runtime/components/core/ModalButton.vue +2 -2
- package/dist/runtime/components/core/Navbar.vue +30 -18
- package/dist/runtime/components/core/Navigation.vue +22 -29
- package/dist/runtime/components/core/SvgIcon.vue +4 -1
- package/dist/runtime/components/core/VButton.vue +2 -8
- package/dist/runtime/components/core/ZoomModal.vue +9 -3
- package/dist/runtime/components/events/EventHeader.vue +14 -4
- package/dist/runtime/components/events/ListEvents.vue +18 -18
- package/dist/runtime/components/forms/Message.vue +1 -1
- package/dist/runtime/components/forms/SearchInput.vue +8 -2
- package/dist/runtime/components/forms/SelectDropDown.vue +4 -4
- package/dist/runtime/components/forms/SupportForm.vue +18 -7
- package/dist/runtime/components/forms/SwitchInput.vue +50 -30
- package/dist/runtime/components/forms/TextArea.vue +1 -1
- package/dist/runtime/components/forms/TextInput.vue +1 -1
- package/dist/runtime/components/layouts/Accordion.vue +9 -4
- package/dist/runtime/components/media/ArchivePlayerAndContentContainer.vue +4 -1
- package/dist/runtime/components/media/ArchiveVideoPlayer.vue +5 -17
- package/dist/runtime/components/media/PlayerAndContentContainer.vue +4 -1
- package/dist/runtime/components/media/WebcastVideoPlayer.vue +5 -17
- package/dist/runtime/components/media/components/AgendaPanel.vue +7 -6
- package/dist/runtime/components/media/components/ArchiveMediaContainer.vue +9 -7
- package/dist/runtime/components/media/components/CeCreditNotification.vue +6 -6
- package/dist/runtime/components/media/components/ContentArea.vue +8 -4
- package/dist/runtime/components/media/components/ContentTabs.vue +38 -26
- package/dist/runtime/components/media/components/DocumentsPanel.vue +17 -15
- package/dist/runtime/components/media/components/MediaContainer.vue +10 -8
- package/dist/runtime/components/media/components/OverviewPanel.vue +5 -2
- package/dist/runtime/components/media/components/PresentersPanel.vue +11 -11
- package/dist/runtime/components/media/components/SponsorsPanel.vue +10 -9
- package/dist/runtime/components/presenters/PresenterListing.vue +3 -5
- package/dist/runtime/components/presenters/Presenters.vue +8 -8
- package/dist/runtime/components/profile/components/SidebarNavItem.vue +1 -3
- package/dist/runtime/components/profile/tabs/ProfileImage.vue +7 -6
- package/dist/runtime/components/registration/AlreadyRegisteredModal.vue +10 -7
- package/dist/runtime/components/registration/PaymentForm.vue +10 -10
- package/dist/runtime/components/registration/RegistrationForm.vue +2 -2
- package/dist/runtime/components/registration/RegistrationGroupSelect.vue +11 -7
- package/dist/runtime/components/registration/StripePaymentForm.vue +11 -31
- package/dist/runtime/components/support/FAQAccordion.vue +8 -7
- package/dist/runtime/composables/useAdobeLaunch.d.ts +2 -7
- package/dist/runtime/composables/useAdobeLaunch.mjs +2 -2
- package/dist/runtime/composables/useAgenda.d.ts +1 -1
- package/dist/runtime/composables/useAgenda.mjs +28 -19
- package/dist/runtime/composables/useApi.d.ts +1 -1
- package/dist/runtime/composables/useAuth.d.ts +1 -1
- package/dist/runtime/composables/useClassBinding.d.ts +3 -1
- package/dist/runtime/composables/useConferenceHelpers.d.ts +2 -2
- package/dist/runtime/composables/useConferenceHelpers.mjs +11 -14
- package/dist/runtime/composables/useEventHooks.d.ts +6 -3
- package/dist/runtime/composables/useEvents.mjs +7 -9
- package/dist/runtime/composables/useLogin.mjs +2 -2
- package/dist/runtime/composables/useNavigation.d.ts +1 -1
- package/dist/runtime/composables/useNavigation.mjs +4 -2
- package/dist/runtime/composables/usePresentation.d.ts +2 -2
- package/dist/runtime/composables/usePresentation.mjs +7 -6
- package/dist/runtime/composables/usePresenter.d.ts +2 -2
- package/dist/runtime/composables/usePresenters.d.ts +2 -2
- package/dist/runtime/composables/useScripts.mjs +1 -1
- package/dist/runtime/composables/useStream.d.ts +2 -3
- package/dist/runtime/composables/useStream.mjs +1 -1
- package/dist/runtime/composables/useUcc.d.ts +1 -1
- package/dist/runtime/composables/useUcc.mjs +29 -23
- package/dist/runtime/models/adobeLaunch.d.ts +6 -0
- package/dist/runtime/models/adobeLaunch.mjs +0 -0
- package/dist/runtime/models/analytics.d.ts +6 -0
- package/dist/runtime/models/analytics.mjs +0 -0
- package/dist/runtime/models/attendeeList.d.ts +1 -1
- package/dist/runtime/models/conference.d.ts +109 -92
- package/dist/runtime/models/conversation.d.ts +10 -10
- package/dist/runtime/models/document.d.ts +5 -5
- package/dist/runtime/models/globalConfig.d.ts +4 -2
- package/dist/runtime/models/group.d.ts +18 -18
- package/dist/runtime/models/icons.d.ts +1 -1
- package/dist/runtime/models/index.d.ts +20 -0
- package/dist/runtime/models/index.mjs +20 -0
- package/dist/runtime/models/link.d.ts +4 -4
- package/dist/runtime/models/loginParams.d.ts +5 -0
- package/dist/runtime/models/loginParams.mjs +0 -0
- package/dist/runtime/models/navigationConfig.d.ts +7 -7
- package/dist/runtime/models/pagination.d.ts +11 -11
- package/dist/runtime/models/portal.d.ts +15 -10
- package/dist/runtime/models/templateConfig.d.ts +7 -7
- package/dist/runtime/models/ucc.d.ts +22 -0
- package/dist/runtime/models/ucc.mjs +0 -0
- package/dist/runtime/models/user.d.ts +24 -12
- package/dist/runtime/models/vButton.d.ts +7 -0
- package/dist/runtime/models/vButton.mjs +0 -0
- package/dist/runtime/models/video.d.ts +5 -4
- package/dist/runtime/models/virtualPagesConfig.d.ts +11 -123
- package/dist/runtime/plugin.mjs +12 -9
- package/dist/runtime/store/affiliates.d.ts +1 -1
- package/dist/runtime/store/attendeeList.d.ts +1 -1
- package/dist/runtime/store/auth.d.ts +3 -7
- package/dist/runtime/store/conferences.mjs +8 -8
- package/dist/runtime/store/conversations.d.ts +26 -3988
- package/dist/runtime/store/conversations.mjs +7 -7
- package/dist/runtime/store/modalPlayerConfig.d.ts +17 -488
- package/dist/runtime/store/modalPlayerConfig.mjs +1 -1
- package/dist/runtime/store/navigationConfig.d.ts +1 -1
- package/dist/runtime/store/presentations.d.ts +2 -2
- package/dist/runtime/store/templateConfigs.d.ts +6 -6
- package/dist/runtime/store/templateConfigs.mjs +6 -6
- package/dist/runtime/store/user.mjs +0 -1
- package/dist/runtime/v3plusCommonPlugin.d.ts +1 -1
- package/dist/types.d.mts +3 -2
- package/dist/types.d.ts +3 -2
- package/package.json +12 -12
- package/dist/runtime/components/media/components/JsonApi.vue +0 -33
- package/dist/runtime/components/media/components/JsonApi.vue.d.ts +0 -16
- package/dist/runtime/components/media/components/WindowContent.vue +0 -118
- package/dist/runtime/components/media/components/WindowContent.vue.d.ts +0 -50
- package/dist/runtime/components/media/components/WindowSlide.vue +0 -92
- package/dist/runtime/components/media/components/WindowSlide.vue.d.ts +0 -36
- package/dist/runtime/models/authUser.d.ts +0 -17
- /package/dist/runtime/{models/authUser.mjs → assets/scss/_footer.css} +0 -0
|
@@ -74,9 +74,7 @@ const { classBinding } = useClassBinding();
|
|
|
74
74
|
:class-object="classObject.components?.accordion"
|
|
75
75
|
>
|
|
76
76
|
<template #question>
|
|
77
|
-
<span class="font-bold"
|
|
78
|
-
>Q: Have you run the pre-event streaming test?</span
|
|
79
|
-
>
|
|
77
|
+
<span class="font-bold">Q: Have you run the pre-event streaming test?</span>
|
|
80
78
|
</template>
|
|
81
79
|
<template #answer>
|
|
82
80
|
<p>
|
|
@@ -92,7 +90,10 @@ const { classBinding } = useClassBinding();
|
|
|
92
90
|
</p>
|
|
93
91
|
</template>
|
|
94
92
|
</CommonAccordion>
|
|
95
|
-
<template
|
|
93
|
+
<template
|
|
94
|
+
v-for="(question, index) in questionArray"
|
|
95
|
+
:key="index"
|
|
96
|
+
>
|
|
96
97
|
<CommonAccordion
|
|
97
98
|
:class="
|
|
98
99
|
classBinding(classObject.components?.accordion, 'container', '')
|
|
@@ -120,11 +121,11 @@ const { classBinding } = useClassBinding();
|
|
|
120
121
|
<template #answer>
|
|
121
122
|
<div>
|
|
122
123
|
<div v-if="showForm">
|
|
123
|
-
<span class="font-bold">Support Form</span><br
|
|
124
|
+
<span class="font-bold">Support Form</span><br>You can email
|
|
124
125
|
support using the support form below.
|
|
125
126
|
</div>
|
|
126
127
|
<div v-else>
|
|
127
|
-
<span class="font-bold">Support Email</span><br
|
|
128
|
+
<span class="font-bold">Support Email</span><br>You can email
|
|
128
129
|
support at
|
|
129
130
|
<a href="mailto:support@rubiconportals.com">support@rubiconportals.com</a>.
|
|
130
131
|
</div>
|
|
@@ -134,7 +135,7 @@ const { classBinding } = useClassBinding();
|
|
|
134
135
|
</div>
|
|
135
136
|
During the webcast, live support will also be available to
|
|
136
137
|
assist.You may request live support by
|
|
137
|
-
<a
|
|
138
|
+
<a
|
|
138
139
|
:href="liveSupportUrl"
|
|
139
140
|
target="_blank"
|
|
140
141
|
>clicking here</a>.
|
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* load script
|
|
4
|
-
*/
|
|
5
|
-
loadAdobeLaunch: () => void;
|
|
6
|
-
};
|
|
7
|
-
export declare const useAdobeLaunch: () => adobeLaunchFunctions;
|
|
1
|
+
import type { AdobeLaunchFunctions } from '../models/adobeLaunch';
|
|
2
|
+
export declare const useAdobeLaunch: () => AdobeLaunchFunctions;
|
|
@@ -5,8 +5,8 @@ export const useAdobeLaunch = () => {
|
|
|
5
5
|
const router = useRouter();
|
|
6
6
|
const portalStore = usePortalStore();
|
|
7
7
|
const loadAdobeLaunch = () => {
|
|
8
|
-
if (portalStore.data
|
|
9
|
-
|
|
8
|
+
if (portalStore.data?.adobe_launch_url) {
|
|
9
|
+
const adtm = document.createElement("script");
|
|
10
10
|
adtm.setAttribute("src", portalStore.data.adobe_launch_url);
|
|
11
11
|
document.head.appendChild(adtm);
|
|
12
12
|
adtm.onload = () => {
|
|
@@ -29,13 +29,14 @@ export const useAgenda = (conference) => {
|
|
|
29
29
|
const selectedPresenter = ref(null);
|
|
30
30
|
const days = computed(() => {
|
|
31
31
|
const data = conference.value.days;
|
|
32
|
+
if (data == void 0) return [];
|
|
32
33
|
if (isLoggedIn.value && !allowAgendaFullAccess) {
|
|
33
34
|
remove(data, ["access", false]);
|
|
34
35
|
}
|
|
35
36
|
return data;
|
|
36
37
|
});
|
|
37
38
|
const enabledSponsors = computed(() => {
|
|
38
|
-
return affiliateStore.getConferenceAffiliates(conference.value
|
|
39
|
+
return affiliateStore.getConferenceAffiliates(conference.value?.id);
|
|
39
40
|
});
|
|
40
41
|
const horizontalTrackGroups = computed(() => {
|
|
41
42
|
return displayTrackGroups === "Horizontal";
|
|
@@ -50,8 +51,8 @@ export const useAgenda = (conference) => {
|
|
|
50
51
|
return get(day, "sponsors.length", 0) > 0 && pagesConfigValue("agenda.sponsors");
|
|
51
52
|
};
|
|
52
53
|
const getCombinedTrackList = (day) => {
|
|
53
|
-
const trackGroups = cloneDeep(day.track_groups ??
|
|
54
|
-
const tracks = cloneDeep(day.tracks ??
|
|
54
|
+
const trackGroups = cloneDeep(day.track_groups ?? []);
|
|
55
|
+
const tracks = cloneDeep(day.tracks ?? []);
|
|
55
56
|
if (isLoggedIn.value && !allowAgendaFullAccess) {
|
|
56
57
|
remove(tracks, ["access", false]);
|
|
57
58
|
}
|
|
@@ -61,15 +62,19 @@ export const useAgenda = (conference) => {
|
|
|
61
62
|
});
|
|
62
63
|
return tracks;
|
|
63
64
|
}
|
|
64
|
-
let duplicateTracks
|
|
65
|
+
let duplicateTracks;
|
|
65
66
|
trackGroups.forEach((trackGroup) => {
|
|
66
|
-
|
|
67
|
+
if (trackGroup.tracks != void 0) {
|
|
68
|
+
duplicateTracks = intersectionBy(tracks, trackGroup.tracks, "id");
|
|
69
|
+
}
|
|
67
70
|
pullAllBy(tracks, duplicateTracks, "id");
|
|
68
71
|
if (isLoggedIn.value && !allowAgendaFullAccess) {
|
|
69
|
-
|
|
72
|
+
if (trackGroup.tracks != void 0) {
|
|
73
|
+
remove(trackGroup.tracks, ["access", false]);
|
|
74
|
+
}
|
|
70
75
|
}
|
|
71
|
-
trackGroup.tracks
|
|
72
|
-
return DateTime.fromSQL(trackA
|
|
76
|
+
trackGroup.tracks?.sort((trackA, trackB) => {
|
|
77
|
+
return DateTime.fromSQL(trackA?.date).diff(DateTime.fromSQL(trackB.date)).milliseconds;
|
|
73
78
|
});
|
|
74
79
|
trackGroup.type = "track_group";
|
|
75
80
|
});
|
|
@@ -82,10 +87,15 @@ export const useAgenda = (conference) => {
|
|
|
82
87
|
});
|
|
83
88
|
return combinedArray;
|
|
84
89
|
};
|
|
90
|
+
const isGroupedTrack = (track) => {
|
|
91
|
+
return track.type === "track_group" && horizontalTrackGroups.value;
|
|
92
|
+
};
|
|
85
93
|
const hasPresentations = (track) => {
|
|
86
|
-
if (track
|
|
94
|
+
if (isGroupedTrack(track)) {
|
|
87
95
|
for (let i = 0; i < get(track, "tracks.length", 0); i++) {
|
|
88
|
-
|
|
96
|
+
const currentTrack = track;
|
|
97
|
+
const tracks = currentTrack.tracks;
|
|
98
|
+
if (get(tracks[i], "presentations.length", 0) > 0) {
|
|
89
99
|
return true;
|
|
90
100
|
}
|
|
91
101
|
}
|
|
@@ -94,9 +104,6 @@ export const useAgenda = (conference) => {
|
|
|
94
104
|
return get(track, "presentations.length", 0) > 0;
|
|
95
105
|
}
|
|
96
106
|
};
|
|
97
|
-
const isGroupedTrack = (track) => {
|
|
98
|
-
return track.type === "track_group" && horizontalTrackGroups.value === true;
|
|
99
|
-
};
|
|
100
107
|
const isSmallGroupedTrack = (track) => {
|
|
101
108
|
if (isGroupedTrack(track)) {
|
|
102
109
|
if (get(track, "tracks.length", 0) > 1) {
|
|
@@ -106,7 +113,7 @@ export const useAgenda = (conference) => {
|
|
|
106
113
|
return false;
|
|
107
114
|
};
|
|
108
115
|
const getTracks = (track) => {
|
|
109
|
-
if (track
|
|
116
|
+
if (isGroupedTrack(track)) {
|
|
110
117
|
return track.tracks;
|
|
111
118
|
} else {
|
|
112
119
|
return [track];
|
|
@@ -151,7 +158,7 @@ export const useAgenda = (conference) => {
|
|
|
151
158
|
return pagesConfigValue("agenda.use_presenter_modal");
|
|
152
159
|
};
|
|
153
160
|
const showPresenterDescription = (presenter, presentation) => {
|
|
154
|
-
if (selectedPresenter.value
|
|
161
|
+
if (selectedPresenter.value?.presentationId === presentation.id && selectedPresenter.value?.id === presenter.id) {
|
|
155
162
|
selectedPresenter.value = null;
|
|
156
163
|
} else {
|
|
157
164
|
selectedPresenter.value = presenter;
|
|
@@ -220,9 +227,9 @@ export const useAgenda = (conference) => {
|
|
|
220
227
|
_event.presentation.is_live ? tempPres[_event.track.id] = _event.presentation.id : delete tempPres[_event.track.id];
|
|
221
228
|
commitLivePresentationsEventHook.trigger(tempPres);
|
|
222
229
|
} else if (!Object.keys(livePresentations.value).length) {
|
|
223
|
-
currentConference.value
|
|
224
|
-
day
|
|
225
|
-
track
|
|
230
|
+
currentConference.value?.days?.forEach((day) => {
|
|
231
|
+
day?.tracks?.forEach((track) => {
|
|
232
|
+
track?.presentations?.forEach((presentation) => {
|
|
226
233
|
if (presentation.is_live) {
|
|
227
234
|
tempPres[track.id] = presentation.id;
|
|
228
235
|
}
|
|
@@ -237,7 +244,8 @@ export const useAgenda = (conference) => {
|
|
|
237
244
|
affiliateStore.getAffiliates(conference.value.id);
|
|
238
245
|
}
|
|
239
246
|
if (selectedDay.value === null) {
|
|
240
|
-
|
|
247
|
+
const days2 = conference.value.days;
|
|
248
|
+
selectedDay.value = days2[0];
|
|
241
249
|
}
|
|
242
250
|
});
|
|
243
251
|
return {
|
|
@@ -247,6 +255,7 @@ export const useAgenda = (conference) => {
|
|
|
247
255
|
displayTrackGroups,
|
|
248
256
|
horizontalTrackGroups,
|
|
249
257
|
selectedPresenter,
|
|
258
|
+
allowAgendaFullAccess,
|
|
250
259
|
setSelectedDay,
|
|
251
260
|
showTabDates,
|
|
252
261
|
shouldShowSponsors,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const useApi: (withoutAuth?: boolean) =>
|
|
1
|
+
export declare const useApi: (withoutAuth?: boolean) => typeof $fetch;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export type UseClassBindingMethods = {
|
|
2
|
-
classBinding(_classObject: {
|
|
2
|
+
classBinding(_classObject: {
|
|
3
|
+
[key: string]: string;
|
|
4
|
+
} | undefined, _element: string, _defaults: string): string;
|
|
3
5
|
};
|
|
4
6
|
export declare const useClassBinding: () => UseClassBindingMethods;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Ref } from
|
|
2
|
-
import type { Conference } from
|
|
1
|
+
import type { Ref } from 'vue';
|
|
2
|
+
import type { Conference } from '../models/conference';
|
|
3
3
|
export type UseConferenceHelpersMethods = {
|
|
4
4
|
/**
|
|
5
5
|
* Determine if conference is a single day event
|
|
@@ -48,11 +48,11 @@ export const useConferenceHelpers = (conference) => {
|
|
|
48
48
|
};
|
|
49
49
|
const hasAccessToEvent = (_conference) => {
|
|
50
50
|
const _selectedConference = _getSelectedConference(_conference);
|
|
51
|
-
|
|
51
|
+
const hasAccess = find(
|
|
52
52
|
get(user, "value.conferences", []),
|
|
53
53
|
{ id: _selectedConference.id }
|
|
54
54
|
);
|
|
55
|
-
return isLoggedIn && (_selectedConference.access || hasAccess);
|
|
55
|
+
return isLoggedIn.value && (_selectedConference.access || hasAccess);
|
|
56
56
|
};
|
|
57
57
|
const showConferenceWebcastButton = (_conference) => {
|
|
58
58
|
const _selectedConference = _getSelectedConference(_conference);
|
|
@@ -78,14 +78,15 @@ export const useConferenceHelpers = (conference) => {
|
|
|
78
78
|
const getTimezoneDisplay = (sqlDate, timezone, showTwoCharTz) => {
|
|
79
79
|
let tz = "";
|
|
80
80
|
if (pagesConfigValue.value("main.use_event_text_tz")) {
|
|
81
|
-
|
|
81
|
+
const threeCharTz = DateTime.fromSQL(
|
|
82
82
|
sqlDate,
|
|
83
83
|
{ zone: timezone }
|
|
84
84
|
).toLocal().offsetNameShort;
|
|
85
|
+
if (threeCharTz == null) return "";
|
|
85
86
|
tz = threeCharTz;
|
|
86
87
|
if (showTwoCharTz) {
|
|
87
88
|
if (threeCharTz.length >= 3 && threeCharTz.length <= 4 && (threeCharTz.charAt(threeCharTz.length - 2) == "S" || threeCharTz.charAt(threeCharTz.length - 2) == "D")) {
|
|
88
|
-
|
|
89
|
+
const twoCharTz = threeCharTz.substring(0, threeCharTz.length - 2) + threeCharTz.charAt(threeCharTz.length - 1);
|
|
89
90
|
tz = twoCharTz;
|
|
90
91
|
}
|
|
91
92
|
}
|
|
@@ -140,10 +141,9 @@ export const useConferenceHelpers = (conference) => {
|
|
|
140
141
|
};
|
|
141
142
|
const showViewArchiveButton = (_conference) => {
|
|
142
143
|
const _selectedConference = _getSelectedConference(_conference);
|
|
143
|
-
if (_selectedConference.state !== "archive")
|
|
144
|
-
return false;
|
|
144
|
+
if (_selectedConference.state !== "archive") return false;
|
|
145
145
|
if (route.name === "index") {
|
|
146
|
-
return isLoggedIn && _selectedConference.access;
|
|
146
|
+
return isLoggedIn.value && _selectedConference.access;
|
|
147
147
|
} else {
|
|
148
148
|
return _selectedConference.access || _selectedConference.agenda_enabled || pagesConfigValue.value("archive_player.preview_enabled", false);
|
|
149
149
|
}
|
|
@@ -202,7 +202,7 @@ export const useConferenceHelpers = (conference) => {
|
|
|
202
202
|
const getConferenceRegUrl = (_conference, _registerPath) => {
|
|
203
203
|
const _selectedConference = _getSelectedConference(_conference);
|
|
204
204
|
if (globalConfigValue.value("townhall_registration_enabled", false)) {
|
|
205
|
-
if (_selectedConference.id === currentConference.value
|
|
205
|
+
if (_selectedConference.id === currentConference.value?.id) {
|
|
206
206
|
return "/";
|
|
207
207
|
} else if (_selectedConference.state === "live" || _selectedConference.state === "mixed") {
|
|
208
208
|
return `/upcoming-events/${_selectedConference.id}`;
|
|
@@ -214,13 +214,10 @@ export const useConferenceHelpers = (conference) => {
|
|
|
214
214
|
_selectedConference,
|
|
215
215
|
"conference_external_reg_url"
|
|
216
216
|
);
|
|
217
|
-
if (confExternalUrl)
|
|
218
|
-
return confExternalUrl;
|
|
217
|
+
if (confExternalUrl) return confExternalUrl;
|
|
219
218
|
const portalExternalUrl = globalConfigValue.value("external_reg_url");
|
|
220
|
-
if (portalExternalUrl)
|
|
221
|
-
|
|
222
|
-
if (_registerPath)
|
|
223
|
-
return _registerPath + _selectedConference.id;
|
|
219
|
+
if (portalExternalUrl) return portalExternalUrl;
|
|
220
|
+
if (_registerPath) return _registerPath + _selectedConference.id;
|
|
224
221
|
return `/registration/options/${_selectedConference.id}`;
|
|
225
222
|
};
|
|
226
223
|
const getConferenceRegText = (_conference) => {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { ContentData } from '../models/vButton';
|
|
2
|
+
import type { Conversation } from '../models/conversation';
|
|
3
|
+
import type { User } from '../models/user';
|
|
3
4
|
export type UserSearchParams = {
|
|
4
5
|
value?: string;
|
|
5
6
|
iterate?: boolean;
|
|
@@ -7,7 +8,9 @@ export type UserSearchParams = {
|
|
|
7
8
|
export declare const loginEventHook: import("@vueuse/shared").EventHook<boolean>;
|
|
8
9
|
export declare const loggedOutEventHook: import("@vueuse/shared").EventHook<any>;
|
|
9
10
|
export declare const modalClosedEventHook: import("@vueuse/shared").EventHook<any>;
|
|
10
|
-
export declare const commitLivePresentationsEventHook: import("@vueuse/shared").EventHook<
|
|
11
|
+
export declare const commitLivePresentationsEventHook: import("@vueuse/shared").EventHook<{
|
|
12
|
+
[index: number]: number;
|
|
13
|
+
}>;
|
|
11
14
|
export declare const setIsPlayerVisibleEventHook: import("@vueuse/shared").EventHook<boolean>;
|
|
12
15
|
export declare const setIsProfileVisibleEventHook: import("@vueuse/shared").EventHook<boolean>;
|
|
13
16
|
export declare const setPlayerPresentationEventHook: import("@vueuse/shared").EventHook<any>;
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { ref, computed } from "vue";
|
|
2
2
|
import { storeToRefs } from "pinia";
|
|
3
|
-
import {
|
|
3
|
+
import { useRoute } from "vue-router";
|
|
4
4
|
import { get, sortBy, filter } from "lodash-es";
|
|
5
5
|
import { useRuntimeConfig } from "#app";
|
|
6
6
|
import { useAuthStore, useTemplateConfigsStore } from "../store/index.mjs";
|
|
7
7
|
export const useEvents = () => {
|
|
8
8
|
const route = useRoute();
|
|
9
|
-
const router = useRouter();
|
|
10
9
|
const config = useRuntimeConfig();
|
|
11
10
|
const { isLoggedIn } = storeToRefs(useAuthStore());
|
|
12
11
|
const { pagesConfigValue } = storeToRefs(useTemplateConfigsStore());
|
|
@@ -20,10 +19,11 @@ export const useEvents = () => {
|
|
|
20
19
|
});
|
|
21
20
|
const getEventPage = (conference) => {
|
|
22
21
|
const eventPathPrefix = config.public.eventPathPrefix;
|
|
22
|
+
const confId = conference.id;
|
|
23
23
|
if (eventPathPrefix) {
|
|
24
|
-
return eventPathPrefix +
|
|
24
|
+
return eventPathPrefix + confId;
|
|
25
25
|
} else {
|
|
26
|
-
return `/upcoming-events/${
|
|
26
|
+
return `/upcoming-events/${confId}`;
|
|
27
27
|
}
|
|
28
28
|
};
|
|
29
29
|
const setConferenceToLoginTo = (conference) => {
|
|
@@ -31,15 +31,13 @@ export const useEvents = () => {
|
|
|
31
31
|
loginModalVisible.value = true;
|
|
32
32
|
};
|
|
33
33
|
const orderAffiliates = (_affiliates) => {
|
|
34
|
-
|
|
35
|
-
tempSponsors = sortBy(_affiliates, ["level", "price"]);
|
|
36
|
-
return tempSponsors;
|
|
34
|
+
return sortBy(_affiliates, ["level", "price"]);
|
|
37
35
|
};
|
|
38
36
|
const getSponsors = (_affiliates) => {
|
|
39
37
|
if (_affiliates === void 0) {
|
|
40
38
|
return [];
|
|
41
39
|
}
|
|
42
|
-
let tempSponsors
|
|
40
|
+
let tempSponsors;
|
|
43
41
|
tempSponsors = filter(_affiliates, { "role": "sponsor" });
|
|
44
42
|
tempSponsors = sortBy(tempSponsors, ["level", "name"]);
|
|
45
43
|
return tempSponsors;
|
|
@@ -48,7 +46,7 @@ export const useEvents = () => {
|
|
|
48
46
|
if (_affiliates === void 0) {
|
|
49
47
|
return [];
|
|
50
48
|
}
|
|
51
|
-
let tempSponsors
|
|
49
|
+
let tempSponsors;
|
|
52
50
|
tempSponsors = filter(_affiliates, { "role": "exhibitor" });
|
|
53
51
|
tempSponsors = sortBy(tempSponsors, ["level", "name"]);
|
|
54
52
|
return tempSponsors;
|
|
@@ -25,12 +25,12 @@ export const useLogin = (conference) => {
|
|
|
25
25
|
if (currentConference.value !== null) {
|
|
26
26
|
if (globalConfigValue.value("login_redirect_enabled")) {
|
|
27
27
|
const { getConferenceWebcastUrl } = useConferenceHelpers(currentConference);
|
|
28
|
-
redirectUrl = getConferenceWebcastUrl();
|
|
28
|
+
redirectUrl = getConferenceWebcastUrl(currentConference.value);
|
|
29
29
|
}
|
|
30
30
|
} else if (conference.value !== null) {
|
|
31
31
|
if (globalConfigValue.value("login_redirect_enabled")) {
|
|
32
32
|
const { getConferenceWebcastUrl } = useConferenceHelpers(conference);
|
|
33
|
-
redirectUrl = getConferenceWebcastUrl();
|
|
33
|
+
redirectUrl = getConferenceWebcastUrl(conference.value);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
if (redirectUrl === null) {
|
|
@@ -6,7 +6,7 @@ export const useNavigation = () => {
|
|
|
6
6
|
const { getConferenceWebcastUrl } = useConferenceHelpers(currentConference);
|
|
7
7
|
const isExternalLink = (navItem) => {
|
|
8
8
|
const url = formatLink(navItem);
|
|
9
|
-
return url.startsWith("http")
|
|
9
|
+
return url.startsWith("http");
|
|
10
10
|
};
|
|
11
11
|
const formatLink = (navItem) => {
|
|
12
12
|
if (navItem.url && navItem.url.startsWith("#")) {
|
|
@@ -23,7 +23,9 @@ export const useNavigation = () => {
|
|
|
23
23
|
link = navItem.url;
|
|
24
24
|
}
|
|
25
25
|
if (navItem.name === "webcast") {
|
|
26
|
-
|
|
26
|
+
if (currentConference.value != null) {
|
|
27
|
+
link = getConferenceWebcastUrl(currentConference.value);
|
|
28
|
+
}
|
|
27
29
|
}
|
|
28
30
|
return link;
|
|
29
31
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Ref } from
|
|
2
|
-
import type { Conference, Presentation, Track } from
|
|
1
|
+
import type { Ref } from 'vue';
|
|
2
|
+
import type { Conference, Presentation, Track } from '../models/conference';
|
|
3
3
|
export type UsePresentationMethods = {
|
|
4
4
|
/**
|
|
5
5
|
* show session time
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { get } from "lodash-es";
|
|
2
2
|
import { DateTime } from "luxon";
|
|
3
3
|
import { useTemplateConfigsStore } from "../store/index.mjs";
|
|
4
|
-
import { ConferenceState } from "../models/conference.mjs";
|
|
5
4
|
import { useConferenceHelpers } from "./useConferenceHelpers.mjs";
|
|
5
|
+
import { ConferenceState } from "../models/conference.mjs";
|
|
6
6
|
export const usePresentation = (conference) => {
|
|
7
7
|
const { pagesConfigValue } = useTemplateConfigsStore();
|
|
8
8
|
const { conferenceIsMixed, getConferenceRegUrl } = useConferenceHelpers(conference);
|
|
@@ -13,14 +13,14 @@ export const usePresentation = (conference) => {
|
|
|
13
13
|
return pagesConfigValue("agenda.session_end_times", false);
|
|
14
14
|
};
|
|
15
15
|
const getPresentationStartTime = (presentation, format = "h:mm a", convertToLocal = true) => {
|
|
16
|
-
|
|
16
|
+
const dt = DateTime.fromSQL(presentation.date, {
|
|
17
17
|
zone: conference.value.timezone
|
|
18
18
|
});
|
|
19
19
|
return convertToLocal ? dt.toLocal().toFormat(format) : dt.toFormat(format);
|
|
20
20
|
};
|
|
21
21
|
const getPresentationEndTime = (presentation, format = "h:mm a", convertToLocal = true) => {
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
const duration = get(presentation, "duration", 0);
|
|
23
|
+
const dt = DateTime.fromSQL(presentation.date, {
|
|
24
24
|
zone: conference.value.timezone
|
|
25
25
|
}).plus(duration * 1e3);
|
|
26
26
|
return convertToLocal ? dt.toLocal().toFormat(format) : dt.toFormat(format);
|
|
@@ -32,7 +32,7 @@ export const usePresentation = (conference) => {
|
|
|
32
32
|
if (!conference.value.access && (!pagesConfigValue("archive_player.preview_enabled", false) || presentation.type === "link")) {
|
|
33
33
|
return getConferenceRegUrl();
|
|
34
34
|
} else if (presentation.type === "link") {
|
|
35
|
-
return presentation.video_url;
|
|
35
|
+
return presentation.video_url == void 0 ? "" : presentation.video_url;
|
|
36
36
|
}
|
|
37
37
|
return `/archive/${presentation.id}`;
|
|
38
38
|
};
|
|
@@ -83,7 +83,8 @@ export const usePresentation = (conference) => {
|
|
|
83
83
|
return "";
|
|
84
84
|
};
|
|
85
85
|
const presentationIsLiveOrMixed = (presentation) => {
|
|
86
|
-
|
|
86
|
+
const videoUrl = presentation.video_url;
|
|
87
|
+
return presentation.is_live || conference.value.state === ConferenceState.MIXED && (videoUrl != void 0 && videoUrl.length > 0 || presentation.type === "embed");
|
|
87
88
|
};
|
|
88
89
|
return {
|
|
89
90
|
showPresentationTimes,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ComputedRef, Ref } from
|
|
2
|
-
import type { Presenter } from
|
|
1
|
+
import type { ComputedRef, Ref } from 'vue';
|
|
2
|
+
import type { Presenter } from '../models/conference';
|
|
3
3
|
export type UsePresenterMethods = {
|
|
4
4
|
fullName: ComputedRef<string>;
|
|
5
5
|
role: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Ref } from
|
|
2
|
-
import type { Conference, Presenter } from
|
|
1
|
+
import type { Ref } from 'vue';
|
|
2
|
+
import type { Conference, Presenter } from '../models/conference';
|
|
3
3
|
export type UsePresentersMethods = {
|
|
4
4
|
/**
|
|
5
5
|
* get presenters label
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export const useScripts = () => {
|
|
2
2
|
const loadScripts = (scripts) => {
|
|
3
3
|
scripts.forEach((src) => {
|
|
4
|
-
|
|
4
|
+
const _script = document.createElement("script");
|
|
5
5
|
_script.setAttribute("src", src);
|
|
6
6
|
document.head.appendChild(_script);
|
|
7
7
|
});
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import type { Presentation, Stream } from "../models/conference";
|
|
1
|
+
import type { Ref, ComputedRef } from 'vue';
|
|
2
|
+
import type { Presentation, Stream } from '../models/conference';
|
|
4
3
|
export type UseStreamMethods = {
|
|
5
4
|
currentStreamData: Ref<Stream>;
|
|
6
5
|
currentPresentation: Ref<Presentation>;
|
|
@@ -22,7 +22,7 @@ export const useStream = (_region, _prefix, _confId, _callback) => {
|
|
|
22
22
|
return response.json();
|
|
23
23
|
}).then((data) => {
|
|
24
24
|
const newPresentation = data;
|
|
25
|
-
if (!currentPresentation.value
|
|
25
|
+
if (!currentPresentation.value?.id || newPresentation.id !== currentPresentation.value?.id) {
|
|
26
26
|
if (isStreamTest.value) {
|
|
27
27
|
newPresentation.name = "Webcast Stream Test";
|
|
28
28
|
}
|