@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,14 +1,13 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import { toRefs } from "vue";
|
|
2
|
+
import { ref, toRefs, computed, onMounted } from "vue";
|
|
3
3
|
import { get } from "lodash-es";
|
|
4
4
|
import { useApi } from "../../composables/useApi";
|
|
5
5
|
import type { Affiliate } from "../../models/conference";
|
|
6
6
|
import type { affiliatePageClassObj } from "../../@types/components";
|
|
7
7
|
import { useClassBinding } from "../../composables/useClassBinding";
|
|
8
8
|
|
|
9
|
-
|
|
10
9
|
type Props = {
|
|
11
|
-
affiliateId:
|
|
10
|
+
affiliateId: number;
|
|
12
11
|
classObject?: affiliatePageClassObj;
|
|
13
12
|
};
|
|
14
13
|
|
|
@@ -24,7 +23,8 @@ const props = withDefaults(defineProps<Props>(), {
|
|
|
24
23
|
htmlHeaderContainer: "",
|
|
25
24
|
biographyContainer: "",
|
|
26
25
|
contentContainer: "",
|
|
27
|
-
affiliateContentBox:
|
|
26
|
+
affiliateContentBox:
|
|
27
|
+
"flex flex-col w-full h-full overflow-y-auto p-4 border border-slate-300",
|
|
28
28
|
};
|
|
29
29
|
},
|
|
30
30
|
});
|
|
@@ -32,40 +32,43 @@ const props = withDefaults(defineProps<Props>(), {
|
|
|
32
32
|
// data
|
|
33
33
|
const { affiliateId } = toRefs(props);
|
|
34
34
|
const { classBinding } = useClassBinding();
|
|
35
|
-
const affiliate = ref<Affiliate>({documents:[],links:[],videos:[]});
|
|
35
|
+
const affiliate = ref<Affiliate>({ documents: [], links: [], videos: [] });
|
|
36
36
|
const showVideoModal = ref<boolean>(false);
|
|
37
37
|
const modalVideoTitle = ref<string>("");
|
|
38
38
|
const modalVideoUrl = ref<string>("");
|
|
39
39
|
|
|
40
40
|
// computed
|
|
41
41
|
const contentCount = computed((): number => {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
const hasDocuments = affiliate.value.documents.length > 0 ? 1 : 0;
|
|
43
|
+
const hasVideos = affiliate.value.videos.length > 0 ? 1 : 0;
|
|
44
|
+
const hasLinks = affiliate.value.links.length > 0 ? 1 : 0;
|
|
45
|
+
return hasDocuments + hasVideos + hasLinks;
|
|
46
46
|
});
|
|
47
47
|
const hasContactInfo = computed((): boolean => {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
48
|
+
return (
|
|
49
|
+
affiliate.value.contact_photo ||
|
|
50
|
+
affiliate.value.contact_name ||
|
|
51
|
+
affiliate.value.contact_title ||
|
|
52
|
+
affiliate.value.contact_phone ||
|
|
53
|
+
affiliate.value.contact_email
|
|
54
|
+
);
|
|
55
55
|
});
|
|
56
56
|
const showLeftBottomBox = computed((): boolean => {
|
|
57
|
-
|
|
57
|
+
return hasContactInfo.value || getAffiliateContentItem("custom_box_1");
|
|
58
58
|
});
|
|
59
59
|
|
|
60
60
|
// methods
|
|
61
|
+
// TODO - migrate analyticsPlugin if needed
|
|
61
62
|
const fireAnalytics = (type: string) => {
|
|
62
|
-
|
|
63
|
-
this.$analyticsPlugin.click(event, event);
|
|
63
|
+
const event = "affiliate-" + affiliate.value.name + "-" + type;
|
|
64
|
+
// this.$analyticsPlugin.click(event, event);
|
|
64
65
|
};
|
|
65
66
|
|
|
66
67
|
const getAffiliateContentItem = (_item: string) => {
|
|
67
|
-
|
|
68
|
-
if (itemVal == undefined || itemVal ==
|
|
68
|
+
const itemVal = get(affiliate.value, "affiliate_content." + _item);
|
|
69
|
+
if (itemVal == undefined || itemVal == "") {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
69
72
|
return itemVal;
|
|
70
73
|
};
|
|
71
74
|
|
|
@@ -73,7 +76,7 @@ const getAffiliateContent = () => {
|
|
|
73
76
|
return new Promise((resolve, reject) => {
|
|
74
77
|
const request = useApi();
|
|
75
78
|
request(
|
|
76
|
-
`/affiliates/${affiliateId.value}?with=affiliate_content,documents,videos,links`
|
|
79
|
+
`/affiliates/${affiliateId.value.toString()}?with=affiliate_content,documents,videos,links`
|
|
77
80
|
)
|
|
78
81
|
.then((response) => {
|
|
79
82
|
affiliate.value = response.data;
|
|
@@ -85,15 +88,16 @@ const getAffiliateContent = () => {
|
|
|
85
88
|
};
|
|
86
89
|
|
|
87
90
|
const getStreamingVideoUrl = (_videoUrl: string): string => {
|
|
88
|
-
let tmpUrl =
|
|
89
|
-
|
|
90
|
-
tmpUrl +=
|
|
91
|
+
let tmpUrl =
|
|
92
|
+
"https://cdn.v3mediaportal.com/streaming-player/iframe-player.htm?";
|
|
93
|
+
tmpUrl += "cs=" + encodeURIComponent(_videoUrl);
|
|
94
|
+
tmpUrl += "&ar=16:9&f=video&as=false";
|
|
91
95
|
return tmpUrl;
|
|
92
96
|
};
|
|
93
97
|
|
|
94
98
|
const openVideoModal = (_title: string, _videoUrl: string) => {
|
|
95
|
-
fireAnalytics(
|
|
96
|
-
|
|
99
|
+
fireAnalytics("video-" + _title);
|
|
100
|
+
const tmpUrl = getStreamingVideoUrl(_videoUrl);
|
|
97
101
|
modalVideoUrl.value = tmpUrl;
|
|
98
102
|
modalVideoTitle.value = _title;
|
|
99
103
|
showVideoModal.value = true;
|
|
@@ -103,64 +107,121 @@ const openVideoModal = (_title: string, _videoUrl: string) => {
|
|
|
103
107
|
onMounted(() => {
|
|
104
108
|
getAffiliateContent();
|
|
105
109
|
});
|
|
106
|
-
|
|
107
110
|
</script>
|
|
108
111
|
|
|
109
112
|
<template>
|
|
110
|
-
<div
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
'flex w-full flex-col'
|
|
116
|
-
)
|
|
117
|
-
"
|
|
118
|
-
>
|
|
119
|
-
|
|
120
|
-
<div v-if="getAffiliateContentItem('html_vanity_page')" v-html="getAffiliateContentItem('html_vanity_page')">
|
|
121
|
-
</div>
|
|
113
|
+
<div :class="classBinding(classObject, 'container', 'flex w-full flex-col')">
|
|
114
|
+
<div
|
|
115
|
+
v-if="getAffiliateContentItem('html_vanity_page')"
|
|
116
|
+
v-html="getAffiliateContentItem('html_vanity_page')"
|
|
117
|
+
/>
|
|
122
118
|
|
|
123
119
|
<div v-else>
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
120
|
+
<div
|
|
121
|
+
:class="
|
|
122
|
+
classBinding(
|
|
123
|
+
classObject,
|
|
124
|
+
'headerContainer',
|
|
125
|
+
'flex flex-col md:flex-row w-full pb-6 border-b border-solid border-gray-400'
|
|
126
|
+
)
|
|
127
|
+
"
|
|
128
|
+
>
|
|
129
|
+
<div
|
|
130
|
+
v-if="affiliate.photo"
|
|
131
|
+
class="mb-6 md:mb-0"
|
|
132
|
+
>
|
|
133
|
+
<img :src="affiliate.photo">
|
|
132
134
|
</div>
|
|
133
135
|
<div
|
|
134
136
|
v-if="!affiliate.photo"
|
|
135
|
-
:class="
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
137
|
+
:class="
|
|
138
|
+
classBinding(
|
|
139
|
+
classObject,
|
|
140
|
+
'headerNameContainer',
|
|
141
|
+
'flex w-full justify-center md:justify-start'
|
|
142
|
+
)
|
|
143
|
+
"
|
|
140
144
|
>
|
|
141
|
-
<h1
|
|
145
|
+
<h1
|
|
146
|
+
:class="
|
|
147
|
+
classBinding(
|
|
148
|
+
classObject,
|
|
149
|
+
'headerNameElement',
|
|
150
|
+
'font-light mb-0 body-color-4 self-end'
|
|
151
|
+
)
|
|
152
|
+
"
|
|
153
|
+
>
|
|
154
|
+
{{ affiliate.name }}
|
|
155
|
+
</h1>
|
|
142
156
|
</div>
|
|
143
157
|
<div
|
|
144
158
|
v-if="getAffiliateContentItem('contact_in_header') == 1"
|
|
145
|
-
:class="
|
|
159
|
+
:class="
|
|
160
|
+
classBinding(
|
|
161
|
+
classObject,
|
|
162
|
+
'headerContactContainer',
|
|
163
|
+
'w-full text-center md:text-right'
|
|
164
|
+
)
|
|
165
|
+
"
|
|
146
166
|
>
|
|
147
167
|
<p>
|
|
148
|
-
<span v-if="affiliate.contact_address">{{affiliate.contact_address}}<br
|
|
149
|
-
<span v-if="affiliate.contact_location">{{affiliate.contact_location}}<br
|
|
150
|
-
<span v-if="affiliate.website"><a
|
|
168
|
+
<span v-if="affiliate.contact_address">{{ affiliate.contact_address }}<br></span>
|
|
169
|
+
<span v-if="affiliate.contact_location">{{ affiliate.contact_location }}<br></span>
|
|
170
|
+
<span v-if="affiliate.website"><a
|
|
171
|
+
class="affiliate-website"
|
|
172
|
+
:href="affiliate.website"
|
|
173
|
+
target="_blank"
|
|
174
|
+
@click="fireAnalytics('website')"
|
|
175
|
+
>{{ affiliate.website }}</a><br></span>
|
|
151
176
|
</p>
|
|
152
|
-
<span
|
|
153
|
-
|
|
154
|
-
|
|
177
|
+
<span
|
|
178
|
+
:class="
|
|
179
|
+
classBinding(
|
|
180
|
+
classObject,
|
|
181
|
+
'headerSocialContainer',
|
|
182
|
+
'flex justify-center md:justify-end'
|
|
183
|
+
)
|
|
184
|
+
"
|
|
185
|
+
>
|
|
186
|
+
<a
|
|
187
|
+
v-if="affiliate.twitter_url"
|
|
188
|
+
:href="affiliate.twitter_url"
|
|
189
|
+
target="_blank"
|
|
190
|
+
class="affiliate-twitter"
|
|
191
|
+
:aria-label="affiliate.name + ` Twitter Page`"
|
|
192
|
+
@click="fireAnalytics('twitter')"
|
|
193
|
+
>
|
|
194
|
+
<span class="presenter-icon"><CommonSvgIcon icon="twitter" /></span>
|
|
155
195
|
</a>
|
|
156
|
-
<a
|
|
157
|
-
|
|
196
|
+
<a
|
|
197
|
+
v-if="affiliate.facebook_url"
|
|
198
|
+
:href="affiliate.facebook_url"
|
|
199
|
+
target="_blank"
|
|
200
|
+
class="affiliate-facebook"
|
|
201
|
+
:aria-label="affiliate.name + ` Facebook Page`"
|
|
202
|
+
@click="fireAnalytics('facebook')"
|
|
203
|
+
>
|
|
204
|
+
<span class="presenter-icon"><CommonSvgIcon icon="facebook" /></span>
|
|
158
205
|
</a>
|
|
159
|
-
<a
|
|
160
|
-
|
|
206
|
+
<a
|
|
207
|
+
v-if="affiliate.linkedin_url"
|
|
208
|
+
:href="affiliate.linkedin_url"
|
|
209
|
+
target="_blank"
|
|
210
|
+
class="affiliate-linkedin"
|
|
211
|
+
:aria-label="affiliate.name + ` LinkedIn Page`"
|
|
212
|
+
@click="fireAnalytics('linked_in')"
|
|
213
|
+
>
|
|
214
|
+
<span class="presenter-icon"><CommonSvgIcon icon="linkedin" /></span>
|
|
161
215
|
</a>
|
|
162
|
-
<a
|
|
163
|
-
|
|
216
|
+
<a
|
|
217
|
+
v-if="affiliate.youtube_url"
|
|
218
|
+
:href="affiliate.youtube_url"
|
|
219
|
+
target="_blank"
|
|
220
|
+
class="affiliate-youtube"
|
|
221
|
+
:aria-label="affiliate.name + ` YouTube Page`"
|
|
222
|
+
@click="fireAnalytics('youtube')"
|
|
223
|
+
>
|
|
224
|
+
<span class="presenter-icon"><CommonSvgIcon icon="youtube" /></span>
|
|
164
225
|
</a>
|
|
165
226
|
</span>
|
|
166
227
|
</div>
|
|
@@ -168,79 +229,150 @@ onMounted(() => {
|
|
|
168
229
|
|
|
169
230
|
<div
|
|
170
231
|
v-if="getAffiliateContentItem('html_header')"
|
|
232
|
+
:class="
|
|
233
|
+
classBinding(
|
|
234
|
+
classObject,
|
|
235
|
+
'htmlHeaderContainer',
|
|
236
|
+
'w-full mt-5 text-center md:text-left'
|
|
237
|
+
)
|
|
238
|
+
"
|
|
171
239
|
v-html="getAffiliateContentItem('html_header')"
|
|
172
|
-
|
|
173
|
-
></div>
|
|
240
|
+
/>
|
|
174
241
|
<div
|
|
175
242
|
v-if="affiliate.biography"
|
|
243
|
+
:class="
|
|
244
|
+
classBinding(
|
|
245
|
+
classObject,
|
|
246
|
+
'biographyContainer',
|
|
247
|
+
'w-full mt-5 text-center md:text-left'
|
|
248
|
+
)
|
|
249
|
+
"
|
|
176
250
|
v-html="affiliate.biography"
|
|
177
|
-
|
|
178
|
-
></div>
|
|
251
|
+
/>
|
|
179
252
|
<div
|
|
180
|
-
v-if="contentCount>0"
|
|
253
|
+
v-if="contentCount > 0"
|
|
181
254
|
class="grid-container-responsive"
|
|
182
|
-
:class="
|
|
255
|
+
:class="
|
|
256
|
+
classBinding(
|
|
257
|
+
classObject,
|
|
258
|
+
'contentContainer',
|
|
259
|
+
'w-full mt-5 md:max-h-300'
|
|
260
|
+
)
|
|
261
|
+
"
|
|
183
262
|
>
|
|
184
|
-
|
|
185
|
-
<div v-if="affiliate.documents.length>0">
|
|
263
|
+
<div v-if="affiliate.documents.length > 0">
|
|
186
264
|
<div :class="classBinding(classObject, 'affiliateContentBox', '')">
|
|
187
|
-
<h3 class="mb-3">
|
|
188
|
-
|
|
189
|
-
|
|
265
|
+
<h3 class="mb-3">
|
|
266
|
+
Documents
|
|
267
|
+
</h3>
|
|
268
|
+
<span
|
|
269
|
+
v-for="document in affiliate.documents"
|
|
270
|
+
:key="document.id"
|
|
271
|
+
>
|
|
272
|
+
<div class="mb-2">
|
|
273
|
+
<a
|
|
274
|
+
class="affiliate-document"
|
|
275
|
+
:href="document.url"
|
|
276
|
+
target="_blank"
|
|
277
|
+
@click="fireAnalytics('document-' + document.name)"
|
|
278
|
+
>{{ document.name }}</a>
|
|
279
|
+
</div>
|
|
190
280
|
</span>
|
|
191
281
|
</div>
|
|
192
282
|
</div>
|
|
193
|
-
<div v-if="affiliate.videos.length>0">
|
|
283
|
+
<div v-if="affiliate.videos.length > 0">
|
|
194
284
|
<div :class="classBinding(classObject, 'affiliateContentBox', '')">
|
|
195
|
-
<div
|
|
285
|
+
<div
|
|
286
|
+
v-if="
|
|
287
|
+
affiliate.videos.length == 1 &&
|
|
288
|
+
getAffiliateContentItem('embed_video') == 1
|
|
289
|
+
"
|
|
290
|
+
>
|
|
196
291
|
<iframe
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
marginheight="0"
|
|
203
|
-
marginwidth="0"
|
|
204
|
-
allowfullscreen="">
|
|
205
|
-
</iframe>
|
|
292
|
+
:src="getStreamingVideoUrl(affiliate.videos[0].url)"
|
|
293
|
+
width="100%"
|
|
294
|
+
style="max-width: 300px; margin: auto"
|
|
295
|
+
allowfullscreen=""
|
|
296
|
+
/>
|
|
206
297
|
</div>
|
|
207
298
|
<div v-else>
|
|
208
|
-
<h3 class="mb-3">
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
299
|
+
<h3 class="mb-3">
|
|
300
|
+
Videos
|
|
301
|
+
</h3>
|
|
302
|
+
<input
|
|
303
|
+
id="affiliateName"
|
|
304
|
+
name="affiliateName"
|
|
305
|
+
type="hidden"
|
|
306
|
+
:value="affiliate.name"
|
|
307
|
+
>
|
|
308
|
+
<span
|
|
309
|
+
v-for="video in affiliate.videos"
|
|
310
|
+
:key="video.id"
|
|
311
|
+
>
|
|
312
|
+
<div class="mb-2">
|
|
313
|
+
<a
|
|
314
|
+
class="affiliate-video-trigger hover:cursor-pointer"
|
|
315
|
+
@click="openVideoModal(video.name, video.url)"
|
|
316
|
+
>{{ video.name }}</a>
|
|
317
|
+
</div>
|
|
212
318
|
</span>
|
|
213
319
|
</div>
|
|
214
320
|
</div>
|
|
215
321
|
</div>
|
|
216
|
-
<div v-if="affiliate.links.length>0">
|
|
322
|
+
<div v-if="affiliate.links.length > 0">
|
|
217
323
|
<div :class="classBinding(classObject, 'affiliateContentBox', '')">
|
|
218
|
-
<h3 class="mb-3">
|
|
219
|
-
|
|
220
|
-
|
|
324
|
+
<h3 class="mb-3">
|
|
325
|
+
Links
|
|
326
|
+
</h3>
|
|
327
|
+
<span
|
|
328
|
+
v-for="link in affiliate.links"
|
|
329
|
+
:key="link.id"
|
|
330
|
+
>
|
|
331
|
+
<div class="mb-2">
|
|
332
|
+
<a
|
|
333
|
+
:href="link.url"
|
|
334
|
+
class="affiliate-link"
|
|
335
|
+
target="_blank"
|
|
336
|
+
@click="fireAnalytics('external_link-' + link.name)"
|
|
337
|
+
>{{ link.name }}</a>
|
|
338
|
+
</div>
|
|
221
339
|
</span>
|
|
222
340
|
</div>
|
|
223
341
|
</div>
|
|
224
|
-
|
|
225
342
|
</div>
|
|
226
343
|
<div class="grid-container-responsive mt-5">
|
|
227
|
-
<div
|
|
228
|
-
|
|
344
|
+
<div
|
|
345
|
+
v-if="showLeftBottomBox"
|
|
346
|
+
:class="classBinding(classObject, 'affiliateContentBox', '')"
|
|
347
|
+
>
|
|
348
|
+
<div
|
|
349
|
+
v-if="getAffiliateContentItem('custom_box_1')"
|
|
350
|
+
v-html="getAffiliateContentItem('custom_box_1')"
|
|
351
|
+
/>
|
|
229
352
|
<div v-else-if="hasContactInfo">
|
|
230
353
|
<div class="flex flex-col md:flex-row">
|
|
231
|
-
<div
|
|
232
|
-
|
|
354
|
+
<div
|
|
355
|
+
v-if="affiliate.contact_photo"
|
|
356
|
+
class="mr-4 w-1/3 mb-3 md:mb-0 self-center md:self-start"
|
|
357
|
+
>
|
|
358
|
+
<img
|
|
359
|
+
:src="affiliate.contact_photo"
|
|
360
|
+
class="w-full"
|
|
361
|
+
>
|
|
233
362
|
</div>
|
|
234
363
|
<div class="text-center md:text-left">
|
|
235
364
|
<p>Contact:</p>
|
|
236
365
|
<p>
|
|
237
|
-
<span v-if="affiliate.contact_name">{{affiliate.contact_name}}<br
|
|
238
|
-
<span v-if="affiliate.contact_title">{{affiliate.contact_title}}<br
|
|
239
|
-
<span v-if="affiliate.contact_phone">Phone: {{affiliate.contact_phone}}<br
|
|
366
|
+
<span v-if="affiliate.contact_name">{{ affiliate.contact_name }}<br></span>
|
|
367
|
+
<span v-if="affiliate.contact_title">{{ affiliate.contact_title }}<br></span>
|
|
368
|
+
<span v-if="affiliate.contact_phone">Phone: {{ affiliate.contact_phone }}<br></span>
|
|
240
369
|
<span v-if="affiliate.contact_email">
|
|
241
|
-
<a
|
|
242
|
-
|
|
243
|
-
|
|
370
|
+
<a
|
|
371
|
+
class="affiliate-email"
|
|
372
|
+
:href="'mailto:' + affiliate.contact_email"
|
|
373
|
+
@click="fireAnalytics('contact_email')"
|
|
374
|
+
>
|
|
375
|
+
{{ affiliate.contact_email }} </a><br>
|
|
244
376
|
</span>
|
|
245
377
|
</p>
|
|
246
378
|
</div>
|
|
@@ -249,25 +381,86 @@ onMounted(() => {
|
|
|
249
381
|
</div>
|
|
250
382
|
|
|
251
383
|
<div :class="classBinding(classObject, 'affiliateContentBox', '')">
|
|
252
|
-
<div
|
|
253
|
-
|
|
384
|
+
<div
|
|
385
|
+
v-if="getAffiliateContentItem('custom_box_2')"
|
|
386
|
+
v-html="getAffiliateContentItem('custom_box_2')"
|
|
387
|
+
/>
|
|
388
|
+
<div
|
|
389
|
+
v-else
|
|
390
|
+
class="text-center md:text-right"
|
|
391
|
+
>
|
|
254
392
|
<p>
|
|
255
|
-
<span v-if="affiliate.contact_address">
|
|
256
|
-
|
|
257
|
-
|
|
393
|
+
<span v-if="affiliate.contact_address">
|
|
394
|
+
{{ affiliate.contact_address }}
|
|
395
|
+
<br>
|
|
396
|
+
</span>
|
|
397
|
+
<span v-if="affiliate.contact_location">
|
|
398
|
+
{{ affiliate.contact_location }}
|
|
399
|
+
<br>
|
|
400
|
+
</span>
|
|
401
|
+
<span v-if="affiliate.website">
|
|
402
|
+
<a
|
|
403
|
+
class="affiliate-website"
|
|
404
|
+
:href="affiliate.website"
|
|
405
|
+
target="_blank"
|
|
406
|
+
@click="fireAnalytics('website')"
|
|
407
|
+
>
|
|
408
|
+
{{ affiliate.website }}
|
|
409
|
+
</a>
|
|
410
|
+
<br>
|
|
411
|
+
</span>
|
|
258
412
|
</p>
|
|
259
|
-
<span
|
|
260
|
-
|
|
261
|
-
|
|
413
|
+
<span
|
|
414
|
+
class="flex justify-center"
|
|
415
|
+
:class="{ 'md:justify-end': hasContactInfo }"
|
|
416
|
+
>
|
|
417
|
+
<a
|
|
418
|
+
v-if="affiliate.twitter_url"
|
|
419
|
+
:href="affiliate.twitter_url"
|
|
420
|
+
target="_blank"
|
|
421
|
+
class="affiliate-twitter"
|
|
422
|
+
:aria-label="affiliate.name + ` Twitter Page`"
|
|
423
|
+
@click="fireAnalytics('twitter')"
|
|
424
|
+
>
|
|
425
|
+
<span class="presenter-icon">
|
|
426
|
+
<CommonSvgIcon icon="twitter" />
|
|
427
|
+
</span>
|
|
262
428
|
</a>
|
|
263
|
-
<a
|
|
264
|
-
|
|
429
|
+
<a
|
|
430
|
+
v-if="affiliate.facebook_url"
|
|
431
|
+
:href="affiliate.facebook_url"
|
|
432
|
+
target="_blank"
|
|
433
|
+
class="affiliate-facebook"
|
|
434
|
+
:aria-label="affiliate.name + ` Facebook Page`"
|
|
435
|
+
@click="fireAnalytics('facebook')"
|
|
436
|
+
>
|
|
437
|
+
<span class="presenter-icon">
|
|
438
|
+
<CommonSvgIcon icon="facebook" />
|
|
439
|
+
</span>
|
|
265
440
|
</a>
|
|
266
|
-
<a
|
|
267
|
-
|
|
441
|
+
<a
|
|
442
|
+
v-if="affiliate.linkedin_url"
|
|
443
|
+
:href="affiliate.linkedin_url"
|
|
444
|
+
target="_blank"
|
|
445
|
+
class="affiliate-linkedin"
|
|
446
|
+
:aria-label="affiliate.name + ` LinkedIn Page`"
|
|
447
|
+
@click="fireAnalytics('linked_in')"
|
|
448
|
+
>
|
|
449
|
+
<span class="presenter-icon">
|
|
450
|
+
<CommonSvgIcon icon="linkedin" />
|
|
451
|
+
</span>
|
|
268
452
|
</a>
|
|
269
|
-
<a
|
|
270
|
-
|
|
453
|
+
<a
|
|
454
|
+
v-if="affiliate.youtube_url"
|
|
455
|
+
:href="affiliate.youtube_url"
|
|
456
|
+
target="_blank"
|
|
457
|
+
class="affiliate-youtube"
|
|
458
|
+
:aria-label="affiliate.name + ` YouTube Page`"
|
|
459
|
+
@click="fireAnalytics('youtube')"
|
|
460
|
+
>
|
|
461
|
+
<span class="presenter-icon">
|
|
462
|
+
<CommonSvgIcon icon="youtube" />
|
|
463
|
+
</span>
|
|
271
464
|
</a>
|
|
272
465
|
</span>
|
|
273
466
|
</div>
|
|
@@ -275,7 +468,12 @@ onMounted(() => {
|
|
|
275
468
|
</div>
|
|
276
469
|
</div>
|
|
277
470
|
|
|
278
|
-
<CommonModal
|
|
471
|
+
<CommonModal
|
|
472
|
+
:visible="showVideoModal"
|
|
473
|
+
modal-size="lg"
|
|
474
|
+
class="video-dialog"
|
|
475
|
+
@clicked="showVideoModal = false"
|
|
476
|
+
>
|
|
279
477
|
<template #modal-title>
|
|
280
478
|
<div class="p-1 pb-2">
|
|
281
479
|
{{ modalVideoTitle }}
|
|
@@ -284,46 +482,18 @@ onMounted(() => {
|
|
|
284
482
|
<template #modal-body>
|
|
285
483
|
<div class="video-modal-body">
|
|
286
484
|
<iframe
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
marginheight="0"
|
|
294
|
-
marginwidth="0"
|
|
295
|
-
allowfullscreen="">
|
|
296
|
-
</iframe>
|
|
485
|
+
class="video-frame"
|
|
486
|
+
:src="modalVideoUrl"
|
|
487
|
+
width="640"
|
|
488
|
+
height="360"
|
|
489
|
+
allowfullscreen=""
|
|
490
|
+
/>
|
|
297
491
|
</div>
|
|
298
492
|
</template>
|
|
299
493
|
</CommonModal>
|
|
300
|
-
|
|
301
|
-
</div>
|
|
302
|
-
|
|
494
|
+
</div>
|
|
303
495
|
</template>
|
|
304
496
|
|
|
305
497
|
<style scoped>
|
|
306
|
-
.grid-container-responsive {
|
|
307
|
-
display: grid;
|
|
308
|
-
grid-template-columns: 1fr;
|
|
309
|
-
grid-column-gap: 20px;
|
|
310
|
-
grid-row-gap: 20px;
|
|
311
|
-
}
|
|
312
|
-
@media (min-width: 768px) {
|
|
313
|
-
.grid-container-responsive {
|
|
314
|
-
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
.video-dialog >>> .modal-box {
|
|
318
|
-
width: 704px;
|
|
319
|
-
}
|
|
320
|
-
.video-frame {
|
|
321
|
-
display: block;
|
|
322
|
-
width: 640px;
|
|
323
|
-
margin-left: auto;
|
|
324
|
-
margin-right: auto;
|
|
325
|
-
padding-left: auto;
|
|
326
|
-
padding-right: auto;
|
|
327
|
-
}
|
|
498
|
+
.grid-container-responsive{display:grid;grid-template-columns:1fr;grid-column-gap:20px;grid-row-gap:20px}@media (min-width:768px){.grid-container-responsive{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}}.video-dialog>>>.modal-box{width:704px}.video-frame{display:block;margin-left:auto;margin-right:auto;width:640px}
|
|
328
499
|
</style>
|
|
329
|
-
|