@icvdeveloper/common-module 1.4.14 → 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 +4 -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 +29 -15
- package/dist/runtime/@types/components.d.ts +22 -0
- package/dist/runtime/@types/configVariables.d.ts +6 -0
- 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 -705
- package/dist/runtime/assets/svg/icon-minus.svg +6 -0
- package/dist/runtime/assets/svg/icon-video.svg +6 -0
- package/dist/runtime/components/affiliates/AffiliateModal.vue +66 -0
- package/dist/runtime/components/affiliates/AffiliatePage.vue +329 -159
- package/dist/runtime/components/agenda/AgendaList.vue +18 -14
- package/dist/runtime/components/agenda/AgendaTabbed.vue +60 -54
- package/dist/runtime/components/agenda/components/AgendaListAccordion.vue +8 -3
- package/dist/runtime/components/agenda/components/Calendar.vue +23 -18
- package/dist/runtime/components/agenda/components/Favorite.vue +46 -0
- package/dist/runtime/components/agenda/components/InfoLink.vue +15 -5
- package/dist/runtime/components/agenda/components/PlayIcon.vue +3 -5
- package/dist/runtime/components/agenda/components/PresentationLink.vue +37 -19
- 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 +108 -0
- package/dist/runtime/components/chat/ChatCreateConversation.vue +199 -0
- package/dist/runtime/components/chat/ChatCreateGroupConversation.vue +154 -0
- package/dist/runtime/components/chat/ChatHeader.vue +97 -0
- package/dist/runtime/components/chat/ChatMessage.vue +40 -0
- package/dist/runtime/components/chat/ChatShowConversation.vue +76 -0
- package/dist/runtime/components/chat/ChatWidget.vue +40 -0
- package/dist/runtime/components/chat/ChatWindow.vue +154 -0
- package/dist/runtime/components/chat/ChatWindow.vue.d.ts +6 -0
- package/dist/runtime/components/chat/MessageInput.vue +27 -0
- package/dist/runtime/components/chat/SearchInput.vue +32 -0
- package/dist/runtime/components/core/Accordion.vue +12 -12
- package/dist/runtime/components/core/AttendeeList.vue +31 -36
- package/dist/runtime/components/core/CountdownTimer.vue +68 -52
- package/dist/runtime/components/core/DynamicHtml.vue.d.ts +6 -9
- package/dist/runtime/components/core/Modal.vue +24 -22
- package/dist/runtime/components/core/ModalButton.vue +43 -0
- package/dist/runtime/components/core/Navbar.vue +33 -21
- package/dist/runtime/components/core/Navigation.vue +286 -0
- package/dist/runtime/components/core/SvgIcon.vue +34 -1
- package/dist/runtime/components/core/VButton.vue +35 -0
- 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 +21 -22
- package/dist/runtime/components/forms/CheckboxGroup.vue +46 -0
- package/dist/runtime/components/forms/ErrorField.vue +11 -2
- package/dist/runtime/components/forms/Message.vue +1 -1
- package/dist/runtime/components/forms/RadioGroup.vue +50 -0
- package/dist/runtime/components/forms/SearchInput.vue +8 -2
- package/dist/runtime/components/forms/SelectDropDown.vue +47 -0
- package/dist/runtime/components/forms/SupportForm.vue +22 -11
- 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 +11 -6
- package/dist/runtime/components/media/ArchivePlayerAndContentContainer.vue +24 -5
- package/dist/runtime/components/media/ArchiveVideoPlayer.vue +19 -23
- package/dist/runtime/components/media/PlayerAndContentContainer.vue +4 -1
- package/dist/runtime/components/media/WebcastVideoPlayer.vue +6 -18
- package/dist/runtime/components/media/components/AgendaPanel.vue +7 -6
- package/dist/runtime/components/media/components/ArchiveMediaContainer.vue +17 -15
- package/dist/runtime/components/media/components/CeCreditNotification.vue +8 -8
- package/dist/runtime/components/media/components/ContentArea.vue +59 -18
- package/dist/runtime/components/media/components/ContentTabs.vue +40 -28
- package/dist/runtime/components/media/components/DocumentsPanel.vue +19 -17
- package/dist/runtime/components/media/components/MediaContainer.vue +11 -13
- package/dist/runtime/components/media/components/OverviewPanel.vue +5 -2
- package/dist/runtime/components/media/components/PresentersPanel.vue +74 -55
- package/dist/runtime/components/media/components/SessionReporting.vue +5 -4
- package/dist/runtime/components/media/components/SponsorsPanel.vue +13 -12
- package/dist/runtime/components/presenters/PresenterListing.vue +33 -25
- package/dist/runtime/components/presenters/PresenterModal.vue +26 -21
- package/dist/runtime/components/presenters/Presenters.vue +139 -0
- package/dist/runtime/components/profile/Profile.vue +10 -6
- package/dist/runtime/components/profile/components/Sidebar.vue +1 -1
- package/dist/runtime/components/profile/components/SidebarNavItem.vue +2 -4
- package/dist/runtime/components/profile/tabs/Favorites.vue +5 -4
- package/dist/runtime/components/profile/tabs/GeneralInformation.vue +26 -16
- package/dist/runtime/components/profile/tabs/ProfileImage.vue +7 -6
- package/dist/runtime/components/registration/AlreadyRegisteredModal.vue +102 -0
- package/dist/runtime/components/registration/PaymentForm.vue +136 -0
- package/dist/runtime/components/registration/RegistrationForm.vue +417 -0
- package/dist/runtime/components/registration/RegistrationGroupSelect.vue +146 -0
- package/dist/runtime/components/registration/StripePaymentForm.vue +121 -0
- 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 +13 -1
- package/dist/runtime/composables/useAgenda.mjs +125 -25
- package/dist/runtime/composables/useApi.d.ts +1 -1
- package/dist/runtime/composables/useAuth.d.ts +1 -1
- package/dist/runtime/composables/useAuth.mjs +1 -1
- package/dist/runtime/composables/useClassBinding.d.ts +3 -1
- package/dist/runtime/composables/useConferenceHelpers.d.ts +7 -3
- package/dist/runtime/composables/useConferenceHelpers.mjs +26 -15
- package/dist/runtime/composables/useEventHooks.d.ts +29 -0
- package/dist/runtime/composables/useEventHooks.mjs +21 -0
- package/dist/runtime/composables/useEvents.d.ts +17 -1
- package/dist/runtime/composables/useEvents.mjs +35 -9
- package/dist/runtime/composables/useLogin.mjs +9 -5
- 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 +8 -7
- package/dist/runtime/composables/usePresenter.d.ts +2 -2
- package/dist/runtime/composables/usePresenters.d.ts +2 -2
- package/dist/runtime/composables/usePusher.d.ts +4 -0
- package/dist/runtime/composables/usePusher.mjs +38 -26
- package/dist/runtime/composables/useScripts.mjs +1 -1
- package/dist/runtime/composables/useStream.d.ts +2 -3
- package/dist/runtime/composables/useStream.mjs +8 -2
- package/dist/runtime/composables/useUcc.d.ts +1 -1
- package/dist/runtime/composables/useUcc.mjs +29 -23
- package/dist/runtime/enums/general.d.ts +4 -1
- package/dist/runtime/enums/general.mjs +4 -1
- 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 +122 -91
- package/dist/runtime/models/conversation.d.ts +11 -13
- package/dist/runtime/models/document.d.ts +5 -5
- package/dist/runtime/models/globalConfig.d.ts +9 -3
- package/dist/runtime/models/group.d.ts +38 -8
- package/dist/runtime/models/icons.d.ts +8 -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 +13 -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 +25 -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 +223 -0
- package/dist/runtime/models/virtualPagesConfig.mjs +0 -0
- package/dist/runtime/plugin.mjs +18 -9
- package/dist/runtime/store/affiliates.d.ts +4 -1
- package/dist/runtime/store/affiliates.mjs +38 -0
- package/dist/runtime/store/attendeeList.d.ts +1 -1
- package/dist/runtime/store/auth.d.ts +3 -7
- package/dist/runtime/store/auth.mjs +6 -0
- package/dist/runtime/store/conferences.d.ts +3 -1
- package/dist/runtime/store/conferences.mjs +14 -9
- package/dist/runtime/store/conversations.d.ts +78 -10
- package/dist/runtime/store/conversations.mjs +255 -22
- package/dist/runtime/store/modalPlayerConfig.d.ts +27 -0
- package/dist/runtime/store/modalPlayerConfig.mjs +58 -0
- 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 +7 -6
- package/dist/runtime/store/templateConfigs.mjs +7 -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 -9
- 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/PresentersPanel.vue.d.ts +0 -32
- 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 -16
- /package/dist/runtime/{models/authUser.mjs → assets/scss/_footer.css} +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import { ref, toRefs } from "vue";
|
|
2
|
+
import { computed, ref, toRefs } from "vue";
|
|
3
3
|
import { storeToRefs } from "pinia";
|
|
4
|
+
import { find } from "lodash-es";
|
|
4
5
|
import { useEvents } from "../../composables/useEvents";
|
|
5
6
|
import { useClassBinding } from "../../composables/useClassBinding";
|
|
6
|
-
import type { Conference, Presentation } from "../../models/conference";
|
|
7
|
-
import { SelectedContent } from "../../enums/general";
|
|
8
7
|
import { usePresentationsStore } from "../../store/presentations";
|
|
8
|
+
import { SelectedContent } from "../../enums/general";
|
|
9
|
+
import type { Conference, Presentation, Sponsor } from "../../models/conference";
|
|
9
10
|
import type {
|
|
10
11
|
PlayerAndContentClassObj,
|
|
11
12
|
PlayerAndContentCompObj,
|
|
@@ -50,6 +51,20 @@ const { classBinding } = useClassBinding();
|
|
|
50
51
|
const { getSponsors } = useEvents();
|
|
51
52
|
|
|
52
53
|
const { selectedContent } = storeToRefs(usePresentationsStore());
|
|
54
|
+
|
|
55
|
+
// computed
|
|
56
|
+
const hasSponsors = computed((): boolean => {
|
|
57
|
+
// return if there are any matching sponsors that have images to display here
|
|
58
|
+
const hasImage: Sponsor | undefined = find(
|
|
59
|
+
getSponsors(conference.value.affiliates),
|
|
60
|
+
function(o: Sponsor) { return o.photo != null && o.photo.length > 0 }
|
|
61
|
+
)
|
|
62
|
+
return hasImage != undefined;
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
const getSponsorsResult = computed((): Sponsor[] => {
|
|
66
|
+
return getSponsors(conference.value.affiliates);
|
|
67
|
+
});
|
|
53
68
|
</script>
|
|
54
69
|
|
|
55
70
|
<template>
|
|
@@ -81,7 +96,10 @@ const { selectedContent } = storeToRefs(usePresentationsStore());
|
|
|
81
96
|
</div>
|
|
82
97
|
|
|
83
98
|
<!-- TABS -->
|
|
84
|
-
<div
|
|
99
|
+
<div
|
|
100
|
+
v-else
|
|
101
|
+
:class="classBinding(classObject, 'withTabsContainer', '')"
|
|
102
|
+
>
|
|
85
103
|
<CommonComponentsContentTabs
|
|
86
104
|
:class="
|
|
87
105
|
classBinding(
|
|
@@ -99,7 +117,7 @@ const { selectedContent } = storeToRefs(usePresentationsStore());
|
|
|
99
117
|
classBinding(
|
|
100
118
|
classObject,
|
|
101
119
|
'withTabsChild',
|
|
102
|
-
|
|
120
|
+
`flex-1 grid grid-cols-7 ${hasSponsors ? 'grid-rows-2' : 'grid-rows-1'} gap-y-4`
|
|
103
121
|
)
|
|
104
122
|
"
|
|
105
123
|
>
|
|
@@ -133,6 +151,7 @@ const { selectedContent } = storeToRefs(usePresentationsStore());
|
|
|
133
151
|
/>
|
|
134
152
|
<!-- sponsor -->
|
|
135
153
|
<figure
|
|
154
|
+
v-if="hasSponsors"
|
|
136
155
|
class="col-span-7 md:col-start-5 md:col-span-3 lg:col-start-6 lg:col-span-6 row-span-1 flex flex-col p-6 text-center"
|
|
137
156
|
>
|
|
138
157
|
<template
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import { toRefs, computed, watch, onMounted, nextTick } from "vue";
|
|
3
|
-
import { onBeforeRouteLeave } from "vue-router";
|
|
2
|
+
import { toRefs, computed, watch, onMounted, onUnmounted, nextTick } from "vue";
|
|
4
3
|
import { get } from "lodash-es";
|
|
4
|
+
import { useClassBinding } from "../../composables/useClassBinding";
|
|
5
|
+
import {
|
|
6
|
+
modalClosedEventHook
|
|
7
|
+
} from "../../composables/useEventHooks";
|
|
5
8
|
import type { Presentation, PlayerObj } from "../../models/conference";
|
|
6
9
|
import type { WebcastPlayerClassObj } from "../../@types/components";
|
|
7
|
-
import { useClassBinding } from "../../composables/useClassBinding";
|
|
8
10
|
|
|
9
11
|
type Props = {
|
|
10
12
|
presentation: Presentation;
|
|
@@ -35,9 +37,15 @@ let icvPlayerObj: PlayerObj = {
|
|
|
35
37
|
};
|
|
36
38
|
let timeInterval: NodeJS.Timer | null = null;
|
|
37
39
|
|
|
40
|
+
modalClosedEventHook.on(() => {
|
|
41
|
+
console.log('modal closed');
|
|
42
|
+
cleanup();
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
|
|
38
46
|
// emits
|
|
39
47
|
const emit = defineEmits<{
|
|
40
|
-
(event: "time", value:
|
|
48
|
+
(event: "time", value: number): void;
|
|
41
49
|
}>();
|
|
42
50
|
|
|
43
51
|
// computed
|
|
@@ -66,7 +74,7 @@ const playStream = () => {
|
|
|
66
74
|
|
|
67
75
|
const setupMediaPlayer = () => {
|
|
68
76
|
if (icvPlayerObj) {
|
|
69
|
-
icvPlayerObj =
|
|
77
|
+
icvPlayerObj = {} as PlayerObj;
|
|
70
78
|
}
|
|
71
79
|
if (isFile.value) {
|
|
72
80
|
nextTick(() => {
|
|
@@ -113,14 +121,14 @@ const cleanup = () => {
|
|
|
113
121
|
if (icvPlayerObj) {
|
|
114
122
|
stop();
|
|
115
123
|
remove();
|
|
116
|
-
icvPlayerObj =
|
|
124
|
+
icvPlayerObj = {} as PlayerObj;
|
|
117
125
|
}
|
|
118
126
|
clearInterval(timeInterval);
|
|
119
127
|
};
|
|
120
128
|
|
|
121
129
|
// watchers
|
|
122
130
|
watch(
|
|
123
|
-
presentation,
|
|
131
|
+
presentation.value,
|
|
124
132
|
(_oldPresentation: Presentation, _newPresentation: Presentation) => {
|
|
125
133
|
if (_oldPresentation.type !== _newPresentation.type) {
|
|
126
134
|
setupMediaPlayer();
|
|
@@ -145,7 +153,7 @@ onMounted(() => {
|
|
|
145
153
|
};
|
|
146
154
|
});
|
|
147
155
|
|
|
148
|
-
|
|
156
|
+
onUnmounted(() => {
|
|
149
157
|
cleanup();
|
|
150
158
|
});
|
|
151
159
|
</script>
|
|
@@ -160,27 +168,15 @@ onBeforeRouteLeave(() => {
|
|
|
160
168
|
id="mediaPlayer"
|
|
161
169
|
ref="mediaPlayer"
|
|
162
170
|
:class="classBinding(classObject, 'playerElement', '')"
|
|
163
|
-
|
|
171
|
+
/>
|
|
164
172
|
<span
|
|
165
173
|
v-if="isHtml"
|
|
166
174
|
:v-html="presentation.embed_html"
|
|
167
175
|
:class="classBinding(classObject, 'embedElement', '')"
|
|
168
|
-
|
|
176
|
+
/>
|
|
169
177
|
</div>
|
|
170
178
|
</template>
|
|
171
179
|
|
|
172
180
|
<style>
|
|
173
|
-
#archive-player-container
|
|
174
|
-
padding-bottom: 56.25%;
|
|
175
|
-
height: 0;
|
|
176
|
-
position: relative;
|
|
177
|
-
display: block;
|
|
178
|
-
}
|
|
179
|
-
#archive-player-container > span > iframe {
|
|
180
|
-
position: absolute;
|
|
181
|
-
top: 0;
|
|
182
|
-
left: 0;
|
|
183
|
-
height: 100%;
|
|
184
|
-
width: 100%;
|
|
185
|
-
}
|
|
181
|
+
#archive-player-container>span{display:block;height:0;padding-bottom:56.25%;position:relative}#archive-player-container>span>iframe{height:100%;left:0;position:absolute;top:0;width:100%}
|
|
186
182
|
</style>
|
|
@@ -99,7 +99,10 @@ const hasAccess = computed((): boolean => {
|
|
|
99
99
|
</div>
|
|
100
100
|
|
|
101
101
|
<!-- TABS -->
|
|
102
|
-
<div
|
|
102
|
+
<div
|
|
103
|
+
v-else
|
|
104
|
+
:class="classBinding(classObject, 'withTabsContainer', '')"
|
|
105
|
+
>
|
|
103
106
|
<CommonComponentsContentTabs
|
|
104
107
|
:class="
|
|
105
108
|
classBinding(
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import {
|
|
2
|
+
import { toRefs, computed, watch, onMounted, nextTick } from "vue";
|
|
3
3
|
import { get } from "lodash-es";
|
|
4
4
|
import type { Presentation, Stream, PlayerObj } from "../../models/conference";
|
|
5
5
|
import type { WebcastPlayerClassObj } from "../../@types/components";
|
|
@@ -47,7 +47,7 @@ const isHls = computed(() => {
|
|
|
47
47
|
// methods
|
|
48
48
|
const setupMediaPlayer = () => {
|
|
49
49
|
if (icvPlayerObj) {
|
|
50
|
-
icvPlayerObj =
|
|
50
|
+
icvPlayerObj = {} as PlayerObj;
|
|
51
51
|
}
|
|
52
52
|
if (isHls.value) {
|
|
53
53
|
nextTick(() => {
|
|
@@ -73,7 +73,7 @@ const playStream = () => {
|
|
|
73
73
|
|
|
74
74
|
// watchers
|
|
75
75
|
watch(
|
|
76
|
-
presentation,
|
|
76
|
+
presentation.value,
|
|
77
77
|
(_oldPresentation: Presentation, _newPresentation: Presentation) => {
|
|
78
78
|
if (_oldPresentation.type !== _newPresentation.type) {
|
|
79
79
|
setupMediaPlayer();
|
|
@@ -114,27 +114,15 @@ onMounted(() => {
|
|
|
114
114
|
id="mediaPlayer"
|
|
115
115
|
ref="mediaPlayer"
|
|
116
116
|
:class="classBinding(classObject, 'playerElement', '')"
|
|
117
|
-
|
|
117
|
+
/>
|
|
118
118
|
<span
|
|
119
119
|
v-if="isHtml"
|
|
120
120
|
:v-html="stream.embed_html"
|
|
121
121
|
:class="classBinding(classObject, 'embedElement', '')"
|
|
122
|
-
|
|
122
|
+
/>
|
|
123
123
|
</div>
|
|
124
124
|
</template>
|
|
125
125
|
|
|
126
126
|
<style>
|
|
127
|
-
#webcast-player-container
|
|
128
|
-
padding-bottom: 56.25%;
|
|
129
|
-
height: 0;
|
|
130
|
-
position: relative;
|
|
131
|
-
display: block;
|
|
132
|
-
}
|
|
133
|
-
#webcast-player-container > span > iframe {
|
|
134
|
-
position: absolute;
|
|
135
|
-
top: 0;
|
|
136
|
-
left: 0;
|
|
137
|
-
height: 100%;
|
|
138
|
-
width: 100%;
|
|
139
|
-
}
|
|
127
|
+
#webcast-player-container>span{display:block;height:0;padding-bottom:56.25%;position:relative}#webcast-player-container>span>iframe{height:100%;left:0;position:absolute;top:0;width:100%}
|
|
140
128
|
</style>
|
|
@@ -40,15 +40,16 @@ const { classBinding } = useClassBinding();
|
|
|
40
40
|
</div>
|
|
41
41
|
</template>
|
|
42
42
|
|
|
43
|
-
<style scoped>
|
|
43
|
+
<style lang="postcss" scoped>
|
|
44
44
|
.sponsor-grid {
|
|
45
45
|
display: grid;
|
|
46
46
|
grid-template-columns: 1fr 1fr 1fr;
|
|
47
47
|
gap: 10px;
|
|
48
|
-
|
|
49
|
-
.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
|
|
49
|
+
.grid-item {
|
|
50
|
+
align-items: center;
|
|
51
|
+
align-self: center;
|
|
52
|
+
justify-self: center;
|
|
53
|
+
}
|
|
53
54
|
}
|
|
54
55
|
</style>
|
|
@@ -37,7 +37,7 @@ const { pagesConfigValue } = storeToRefs(useTemplateConfigsStore());
|
|
|
37
37
|
const emit = defineEmits(["previewEnded"]);
|
|
38
38
|
|
|
39
39
|
// data
|
|
40
|
-
|
|
40
|
+
const playing = ref<boolean>(true);
|
|
41
41
|
|
|
42
42
|
// computed
|
|
43
43
|
const isPreview = computed((): boolean => {
|
|
@@ -46,31 +46,31 @@ const isPreview = computed((): boolean => {
|
|
|
46
46
|
false
|
|
47
47
|
);
|
|
48
48
|
// @todo add check against conference-level portal configs
|
|
49
|
-
// || pagesConfigValue.value("archive_player.preview_enabled", false);
|
|
50
49
|
return !isLoggedIn && previewEnabled;
|
|
51
50
|
});
|
|
52
51
|
|
|
53
52
|
const previewDuration = computed((): number => {
|
|
54
53
|
return pagesConfigValue.value("archive_player.preview_duration", 60);
|
|
55
54
|
// @todo add check against conference-level portal configs
|
|
56
|
-
// || pagesConfigValue.value("archive_player.preview_duration", 60);
|
|
57
55
|
});
|
|
58
56
|
|
|
59
57
|
// methods
|
|
60
|
-
const firePreviewEnded = () => {
|
|
58
|
+
const firePreviewEnded = (): void => {
|
|
61
59
|
playing.value = false;
|
|
62
60
|
if (ref.mediaPlayer) {
|
|
63
61
|
ref.mediaPlayer.stop();
|
|
64
62
|
// @todo ensure emit will suffice
|
|
65
63
|
// previewEnded = true;
|
|
66
64
|
}
|
|
65
|
+
console.log('firePreviewEnded')
|
|
67
66
|
emit("previewEnded");
|
|
68
67
|
};
|
|
69
68
|
|
|
70
|
-
const checkTime = (_time:
|
|
69
|
+
const checkTime = (_time: number): void => {
|
|
71
70
|
// @todo set current time for chapter timings only
|
|
72
71
|
// setCurrentTime(_time);
|
|
73
|
-
if (isPreview && _time >= previewDuration.value) {
|
|
72
|
+
if (isPreview.value && _time >= previewDuration.value) {
|
|
73
|
+
console.log('checkTime calling firePreviewEnded')
|
|
74
74
|
firePreviewEnded();
|
|
75
75
|
}
|
|
76
76
|
};
|
|
@@ -82,13 +82,13 @@ const checkTime = (_time: Number) => {
|
|
|
82
82
|
ref="mediaPlayer"
|
|
83
83
|
:presentation="presentation"
|
|
84
84
|
:playing="playing"
|
|
85
|
-
:class-object="classObject
|
|
85
|
+
:class-object="classObject?.components?.webcastPlayer"
|
|
86
86
|
@time="checkTime"
|
|
87
|
-
|
|
87
|
+
/>
|
|
88
88
|
</div>
|
|
89
89
|
</template>
|
|
90
90
|
|
|
91
|
-
<style scoped>
|
|
91
|
+
<style scoped lang="postcss">
|
|
92
92
|
.media-container {
|
|
93
93
|
display: grid;
|
|
94
94
|
grid-template-columns: var(--media-template-columns-default);
|
|
@@ -102,9 +102,9 @@ const checkTime = (_time: Number) => {
|
|
|
102
102
|
display: grid;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
max-height: 65vh;
|
|
105
|
+
img.normal {
|
|
106
|
+
@screen lg {
|
|
107
|
+
max-height: 65vh; /* max height before distorting container */
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
|
|
@@ -125,12 +125,14 @@ const checkTime = (_time: Number) => {
|
|
|
125
125
|
.media-container {
|
|
126
126
|
grid-template-columns: var(--media-template-columns-large);
|
|
127
127
|
}
|
|
128
|
+
|
|
128
129
|
.expand-overlay {
|
|
129
130
|
@apply p-2;
|
|
130
131
|
display: block;
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
132
|
+
|
|
133
|
+
&:hover {
|
|
134
|
+
opacity: 0.7;
|
|
135
|
+
}
|
|
134
136
|
}
|
|
135
137
|
}
|
|
136
138
|
</style>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
2
|
import Pusher from "pusher-js";
|
|
3
3
|
import Echo from "laravel-echo";
|
|
4
|
-
import {
|
|
4
|
+
import { computed, onMounted, ref, toRefs } from "vue";
|
|
5
5
|
import type { Conference } from "../../../models/conference";
|
|
6
6
|
import type { CeCreditPanelClassObj } from "../../../@types/components";
|
|
7
7
|
import { useClassBinding } from "../../../composables/useClassBinding";
|
|
@@ -36,14 +36,14 @@ const countdownLoopId = ref<any>(null);
|
|
|
36
36
|
// computed
|
|
37
37
|
const timeRemainingClass = computed(() => {
|
|
38
38
|
if (displayFor.value > 10) {
|
|
39
|
-
return "font-bold text-green-
|
|
39
|
+
return "font-bold text-green-600";
|
|
40
40
|
}
|
|
41
41
|
return "font-bold text-red";
|
|
42
42
|
});
|
|
43
43
|
|
|
44
44
|
// methods
|
|
45
45
|
const handleNotification = (_conference: Conference) => {
|
|
46
|
-
clearInterval(countdownLoopId);
|
|
46
|
+
clearInterval(countdownLoopId.value);
|
|
47
47
|
window.scrollTo({ top: 0, behavior: "smooth" });
|
|
48
48
|
visible.value = true;
|
|
49
49
|
displayFor.value = _conference.ce_credit_config?.display_for || 30;
|
|
@@ -105,7 +105,7 @@ onMounted(() => {
|
|
|
105
105
|
classBinding(
|
|
106
106
|
classObject,
|
|
107
107
|
'container',
|
|
108
|
-
'flex bg-yellow-
|
|
108
|
+
'flex bg-yellow-100 shadow text-gray-700 py-6 px-10'
|
|
109
109
|
)
|
|
110
110
|
"
|
|
111
111
|
>
|
|
@@ -125,13 +125,13 @@ onMounted(() => {
|
|
|
125
125
|
classBinding(classObject, 'timeInSeconds', ''),
|
|
126
126
|
timeRemainingClass,
|
|
127
127
|
]"
|
|
128
|
-
|
|
128
|
+
>{{ displayFor }} seconds
|
|
129
129
|
</span>
|
|
130
130
|
</p>
|
|
131
131
|
<p
|
|
132
132
|
:class="classBinding(classObject, 'promptText', '')"
|
|
133
133
|
v-text="promptText"
|
|
134
|
-
|
|
134
|
+
/>
|
|
135
135
|
<p :class="classBinding(classObject, 'buttonContainer', '')">
|
|
136
136
|
<button
|
|
137
137
|
:class="
|
|
@@ -139,11 +139,11 @@ onMounted(() => {
|
|
|
139
139
|
"
|
|
140
140
|
@click="acceptClick"
|
|
141
141
|
v-text="buttonText"
|
|
142
|
-
|
|
142
|
+
/>
|
|
143
143
|
</p>
|
|
144
144
|
</div>
|
|
145
145
|
</div>
|
|
146
146
|
</transition>
|
|
147
147
|
</template>
|
|
148
148
|
|
|
149
|
-
<style lang="
|
|
149
|
+
<style lang="postcss" scoped></style>
|
|
@@ -48,7 +48,7 @@ const { classBinding } = useClassBinding();
|
|
|
48
48
|
const { pagesConfigValue } = storeToRefs(useTemplateConfigsStore());
|
|
49
49
|
|
|
50
50
|
// reactive data
|
|
51
|
-
|
|
51
|
+
const sponsors = ref<Array<Sponsor>>([]);
|
|
52
52
|
|
|
53
53
|
// computed
|
|
54
54
|
const trackEmbedHtml = computed((): string | null => {
|
|
@@ -56,7 +56,11 @@ const trackEmbedHtml = computed((): string | null => {
|
|
|
56
56
|
});
|
|
57
57
|
|
|
58
58
|
// methods
|
|
59
|
-
|
|
59
|
+
|
|
60
|
+
// TODO - this is not used in this component.
|
|
61
|
+
// it looks like the same logic for displaying stream sponsors is already being handled in the ArchivePlayerAndContentContainer.
|
|
62
|
+
// confirm that that fulfills this logic's purpose, and remove this logic.
|
|
63
|
+
const getFeaturedSponsors = (): void => {
|
|
60
64
|
const featuredSponsorLevel = get(
|
|
61
65
|
pagesConfigValue,
|
|
62
66
|
"webcast.featured_sponsor_level.value",
|
|
@@ -69,7 +73,7 @@ const getFeaturedSponsors = () => {
|
|
|
69
73
|
return response.json();
|
|
70
74
|
})
|
|
71
75
|
.then((data) => {
|
|
72
|
-
sponsors = filter(data, { role: "sponsor" });
|
|
76
|
+
sponsors.value = filter(data, { role: "sponsor" });
|
|
73
77
|
});
|
|
74
78
|
}
|
|
75
79
|
};
|
|
@@ -83,29 +87,65 @@ onMounted(() => {
|
|
|
83
87
|
<template>
|
|
84
88
|
<div :class="classBinding(classObject, 'container', 'flex flex-col')">
|
|
85
89
|
<CommonComponentsOverviewPanel
|
|
86
|
-
v-if="selectedContent.type ==
|
|
90
|
+
v-if="selectedContent.type == SelectedContent.OVERVIEW"
|
|
87
91
|
:class="
|
|
88
92
|
classBinding(
|
|
89
|
-
classObject.components
|
|
93
|
+
classObject.components?.overviewPanel,
|
|
90
94
|
'container',
|
|
91
95
|
'overflow-y-scroll no-scrollbar h-full'
|
|
92
96
|
)
|
|
93
97
|
"
|
|
94
98
|
:presentation="presentation"
|
|
95
|
-
:class-object="classObject.components
|
|
96
|
-
|
|
99
|
+
:class-object="classObject.components?.overviewPanel"
|
|
100
|
+
/>
|
|
97
101
|
<CommonComponentsAgendaPanel
|
|
98
|
-
v-if="selectedContent.type ==
|
|
102
|
+
v-if="selectedContent.type == SelectedContent.AGENDA"
|
|
99
103
|
:class="
|
|
100
104
|
classBinding(
|
|
101
|
-
classObject.components
|
|
105
|
+
classObject.components?.agendaPanel,
|
|
102
106
|
'container',
|
|
103
107
|
'overflow-y-scroll no-scrollbar h-full'
|
|
104
108
|
)
|
|
105
109
|
"
|
|
106
110
|
:conference="webcastConference"
|
|
107
|
-
:class-object="classObject.components
|
|
108
|
-
|
|
111
|
+
:class-object="classObject.components?.agendaPanel"
|
|
112
|
+
/>
|
|
113
|
+
<CommonComponentsPresentersPanel
|
|
114
|
+
v-if="selectedContent.type == SelectedContent.PRESENTERS"
|
|
115
|
+
:class="
|
|
116
|
+
classBinding(
|
|
117
|
+
classObject.components?.agendaPanel,
|
|
118
|
+
'container',
|
|
119
|
+
'overflow-y-scroll no-scrollbar h-full'
|
|
120
|
+
)
|
|
121
|
+
"
|
|
122
|
+
:presentation="presentation"
|
|
123
|
+
:class-object="classObject.components?.agendaPanel"
|
|
124
|
+
/>
|
|
125
|
+
<CommonComponentsDocumentsPanel
|
|
126
|
+
v-if="selectedContent.type == SelectedContent.DOCUMENTS"
|
|
127
|
+
:class="
|
|
128
|
+
classBinding(
|
|
129
|
+
classObject.components?.agendaPanel,
|
|
130
|
+
'container',
|
|
131
|
+
'overflow-y-scroll no-scrollbar h-full'
|
|
132
|
+
)
|
|
133
|
+
"
|
|
134
|
+
:presentation="presentation"
|
|
135
|
+
:class-object="classObject.components?.agendaPanel"
|
|
136
|
+
/>
|
|
137
|
+
<CommonComponentsSponsorsPanel
|
|
138
|
+
v-if="selectedContent.type == SelectedContent.SPONSORS"
|
|
139
|
+
:class="
|
|
140
|
+
classBinding(
|
|
141
|
+
classObject.components?.agendaPanel,
|
|
142
|
+
'container',
|
|
143
|
+
'overflow-y-scroll no-scrollbar h-full'
|
|
144
|
+
)
|
|
145
|
+
"
|
|
146
|
+
:presentation="presentation"
|
|
147
|
+
:class-object="classObject.components?.agendaPanel"
|
|
148
|
+
/>
|
|
109
149
|
<span
|
|
110
150
|
v-if="selectedContent.type == 'html'"
|
|
111
151
|
:class="
|
|
@@ -116,8 +156,8 @@ onMounted(() => {
|
|
|
116
156
|
)
|
|
117
157
|
"
|
|
118
158
|
v-html="selectedContent.content"
|
|
119
|
-
|
|
120
|
-
<template v-if="selectedContent.type ==
|
|
159
|
+
/>
|
|
160
|
+
<template v-if="selectedContent.type == SelectedContent.TRACK_HTML">
|
|
121
161
|
<span
|
|
122
162
|
v-if="trackEmbedHtml != null"
|
|
123
163
|
:class="
|
|
@@ -128,7 +168,7 @@ onMounted(() => {
|
|
|
128
168
|
)
|
|
129
169
|
"
|
|
130
170
|
v-html="trackEmbedHtml"
|
|
131
|
-
|
|
171
|
+
/>
|
|
132
172
|
<div
|
|
133
173
|
v-if="trackEmbedHtml === null"
|
|
134
174
|
:class="
|
|
@@ -155,7 +195,7 @@ onMounted(() => {
|
|
|
155
195
|
</div>
|
|
156
196
|
</template>
|
|
157
197
|
|
|
158
|
-
<style scoped>
|
|
198
|
+
<style scoped lang="postcss">
|
|
159
199
|
.content {
|
|
160
200
|
position: relative;
|
|
161
201
|
}
|
|
@@ -168,8 +208,9 @@ onMounted(() => {
|
|
|
168
208
|
z-index: 40;
|
|
169
209
|
position: absolute;
|
|
170
210
|
transition: 0.4s ease;
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
211
|
+
|
|
212
|
+
&:hover {
|
|
213
|
+
opacity: 0.7;
|
|
214
|
+
}
|
|
174
215
|
}
|
|
175
216
|
</style>
|