@icvdeveloper/common-module 0.0.76 → 0.0.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/dist/module.json +1 -1
- package/dist/module.mjs +5 -0
- package/dist/runtime/@types/components.d.ts +89 -1
- package/dist/runtime/assets/svg/answer.svg +14 -14
- package/dist/runtime/assets/svg/avatar.svg +1 -1
- package/dist/runtime/assets/svg/bell-icon.svg +3 -3
- package/dist/runtime/assets/svg/checkmark-icon.svg +1 -1
- package/dist/runtime/assets/svg/close-icon.svg +1 -1
- package/dist/runtime/assets/svg/icon-avatar.svg +1 -1
- package/dist/runtime/assets/svg/icon-chevron.svg +4 -4
- package/dist/runtime/assets/svg/icon-circle-plus.svg +1 -1
- package/dist/runtime/assets/svg/icon-close.svg +1 -1
- package/dist/runtime/assets/svg/icon-info.svg +2 -2
- package/dist/runtime/assets/svg/icon-new-window.svg +11 -11
- package/dist/runtime/assets/svg/icon-offline.svg +3 -3
- package/dist/runtime/assets/svg/icon-online.svg +3 -3
- package/dist/runtime/assets/svg/icon-person.svg +2 -2
- package/dist/runtime/assets/svg/icon-play.svg +2 -2
- package/dist/runtime/assets/svg/icon-star-filled.svg +29 -29
- package/dist/runtime/assets/svg/icon-star.svg +24 -24
- package/dist/runtime/assets/svg/icon-video-chat.svg +14 -14
- package/dist/runtime/assets/svg/icon-website.svg +2 -2
- package/dist/runtime/assets/svg/icon-zoom.svg +10 -10
- package/dist/runtime/assets/svg/notification-icon.svg +32 -32
- package/dist/runtime/assets/svg/offline-icon.svg +1 -1
- package/dist/runtime/assets/svg/online-icon.svg +3 -3
- package/dist/runtime/assets/svg/peer2peer.svg +3 -3
- package/dist/runtime/assets/svg/phone.svg +1 -1
- package/dist/runtime/assets/svg/plus-icon.svg +1 -1
- package/dist/runtime/assets/svg/red-icon.svg +3 -3
- package/dist/runtime/assets/svg/reject.svg +14 -14
- package/dist/runtime/assets/svg/search-icon.svg +3 -3
- package/dist/runtime/components/affiliates/AffiliatePage.vue +17 -17
- package/dist/runtime/components/agenda/AgendaList.vue +234 -112
- package/dist/runtime/components/agenda/AgendaTabbed.vue +309 -309
- package/dist/runtime/components/agenda/components/AgendaListAccordion.vue +53 -26
- package/dist/runtime/components/agenda/components/Calendar.vue +89 -89
- package/dist/runtime/components/agenda/components/InfoLink.vue +56 -56
- package/dist/runtime/components/agenda/components/PlayIcon.vue +49 -49
- package/dist/runtime/components/agenda/components/PresentationLink.vue +137 -137
- package/dist/runtime/components/agenda/components/Sponsor.vue +132 -132
- package/dist/runtime/components/auth/LoginFullWidth.vue +78 -78
- package/dist/runtime/components/auth/PasswordReset.vue +60 -60
- package/dist/runtime/components/auth/Registration.vue +27 -27
- package/dist/runtime/components/auth/Ucc.vue +52 -52
- package/dist/runtime/components/core/Accordion.vue +97 -97
- package/dist/runtime/components/core/CountdownTimer.vue +308 -308
- package/dist/runtime/components/core/DynamicHtml.vue +1 -1
- package/dist/runtime/components/core/Modal.vue +111 -111
- package/dist/runtime/components/core/Navbar.vue +154 -154
- package/dist/runtime/components/core/SvgIcon.vue +151 -151
- package/dist/runtime/components/core/ZoomModal.vue +37 -37
- package/dist/runtime/components/events/EventHeader.vue +133 -133
- package/dist/runtime/components/events/ListEvents.vue +521 -521
- package/dist/runtime/components/forms/AlertBox.vue +21 -21
- package/dist/runtime/components/forms/ErrorField.vue +17 -17
- package/dist/runtime/components/forms/Message.vue +27 -27
- package/dist/runtime/components/forms/SearchInput.vue +38 -38
- package/dist/runtime/components/forms/SupportForm.vue +112 -112
- package/dist/runtime/components/forms/SwitchInput.vue +42 -42
- package/dist/runtime/components/forms/TextArea.vue +26 -26
- package/dist/runtime/components/forms/TextInput.vue +28 -28
- package/dist/runtime/components/layouts/Accordion.vue +78 -78
- package/dist/runtime/components/media/PlayerAndContentContainer.vue +170 -0
- package/dist/runtime/components/media/WebcastVideoPlayer.vue +167 -0
- package/dist/runtime/components/media/components/AgendaPanel.vue +53 -0
- package/dist/runtime/components/media/components/CeCreditNotification.vue +99 -0
- package/dist/runtime/components/media/components/CeCreditNotification.vue.d.ts +28 -0
- package/dist/runtime/components/media/components/ContentAccordion.vue +65 -0
- package/dist/runtime/components/media/components/ContentAccordion.vue.d.ts +29 -0
- package/dist/runtime/components/media/components/ContentArea.vue +175 -0
- package/dist/runtime/components/media/components/ContentTabs.vue +263 -0
- package/dist/runtime/components/media/components/DocumentsPanel.vue +52 -0
- package/dist/runtime/components/media/components/DocumentsPanel.vue.d.ts +7 -0
- package/dist/runtime/components/media/components/JsonApi.vue +33 -0
- package/dist/runtime/components/media/components/JsonApi.vue.d.ts +16 -0
- package/dist/runtime/components/media/components/MediaContainer.vue +104 -0
- package/dist/runtime/components/media/components/OverviewPanel.vue +51 -0
- package/dist/runtime/components/media/components/PresentersPanel.vue +65 -0
- package/dist/runtime/components/media/components/PresentersPanel.vue.d.ts +32 -0
- package/dist/runtime/components/media/components/SessionReporting.vue +96 -0
- package/dist/runtime/components/media/components/SessionReporting.vue.d.ts +35 -0
- package/dist/runtime/components/media/components/SponsorsPanel.vue +85 -0
- package/dist/runtime/components/media/components/SponsorsPanel.vue.d.ts +27 -0
- package/dist/runtime/components/media/components/WindowContent.vue +118 -0
- package/dist/runtime/components/media/components/WindowContent.vue.d.ts +50 -0
- package/dist/runtime/components/media/components/WindowSlide.vue +92 -0
- package/dist/runtime/components/media/components/WindowSlide.vue.d.ts +36 -0
- package/dist/runtime/components/presenters/PresenterListing.vue +164 -164
- package/dist/runtime/components/presenters/PresenterModal.vue +223 -223
- package/dist/runtime/components/profile/Profile.vue +149 -149
- package/dist/runtime/components/profile/components/Sidebar.vue +27 -27
- package/dist/runtime/components/profile/components/SidebarNavItem.vue +39 -39
- package/dist/runtime/components/profile/tabs/Favorites.vue +21 -21
- package/dist/runtime/components/profile/tabs/GeneralInformation.vue +122 -122
- package/dist/runtime/components/profile/tabs/ProfileImage.vue +75 -75
- package/dist/runtime/components/support/FAQAccordion.vue +140 -140
- package/dist/runtime/composables/useStream.d.ts +15 -0
- package/dist/runtime/composables/useStream.mjs +89 -0
- package/dist/runtime/enums/general.d.ts +7 -0
- package/dist/runtime/enums/general.mjs +8 -0
- package/dist/runtime/models/conference.d.ts +17 -0
- package/dist/runtime/store/presentations.d.ts +11 -0
- package/dist/runtime/store/presentations.mjs +10 -0
- package/package.json +1 -1
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { toRefs } from "vue";
|
|
3
|
+
import { Conference, Presentation } from "../../../models/conference";
|
|
4
|
+
import {
|
|
5
|
+
MediaContainerClassObj,
|
|
6
|
+
MediaContainerCompObj,
|
|
7
|
+
WebcastPlayerClassObj,
|
|
8
|
+
} from "../../../@types/components";
|
|
9
|
+
import { useV3plusCommonModule } from "../../../composables/useV3plusCommonModule";
|
|
10
|
+
import { useStream } from "../../../composables/useStream";
|
|
11
|
+
import { useClassBinding } from "../../../composables/useClassBinding";
|
|
12
|
+
|
|
13
|
+
const commonModule = useV3plusCommonModule();
|
|
14
|
+
|
|
15
|
+
type Props = {
|
|
16
|
+
webcastConference: Conference;
|
|
17
|
+
classObject?: MediaContainerClassObj;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
21
|
+
classObject: () => {
|
|
22
|
+
return {
|
|
23
|
+
container: "",
|
|
24
|
+
components: ref<MediaContainerCompObj>({
|
|
25
|
+
webcastPlayer: ref<WebcastPlayerClassObj>({}),
|
|
26
|
+
}),
|
|
27
|
+
};
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
const { webcastConference } = toRefs(props);
|
|
32
|
+
|
|
33
|
+
const { classBinding } = useClassBinding();
|
|
34
|
+
|
|
35
|
+
// emits
|
|
36
|
+
const emit = defineEmits<{
|
|
37
|
+
(event: string, value: Presentation): void;
|
|
38
|
+
}>();
|
|
39
|
+
|
|
40
|
+
const { currentStreamData, currentPresentation } = useStream(
|
|
41
|
+
"us-west-2",
|
|
42
|
+
"staging",
|
|
43
|
+
Number(webcastConference.value.id),
|
|
44
|
+
emit
|
|
45
|
+
);
|
|
46
|
+
</script>
|
|
47
|
+
|
|
48
|
+
<template>
|
|
49
|
+
<div :class="classBinding(classObject, 'container', 'media-container')">
|
|
50
|
+
<CommonWebcastVideoPlayer
|
|
51
|
+
ref="mediaPlayer"
|
|
52
|
+
:stream="currentStreamData"
|
|
53
|
+
:presentation="currentPresentation"
|
|
54
|
+
:class-object="classObject.components.webcastPlayer"
|
|
55
|
+
></CommonWebcastVideoPlayer>
|
|
56
|
+
</div>
|
|
57
|
+
</template>
|
|
58
|
+
|
|
59
|
+
<style scoped>
|
|
60
|
+
.media-container {
|
|
61
|
+
display: grid;
|
|
62
|
+
grid-template-columns: var(--media-template-columns-default);
|
|
63
|
+
column-gap: 4px;
|
|
64
|
+
grid-template-rows: auto;
|
|
65
|
+
grid-column: 2;
|
|
66
|
+
grid-row: 2;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.media-item {
|
|
70
|
+
display: grid;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@screen lg {
|
|
74
|
+
img.normal {
|
|
75
|
+
max-height: 65vh;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.expand-overlay {
|
|
80
|
+
display: none;
|
|
81
|
+
font-size: 1em;
|
|
82
|
+
line-height: 1em;
|
|
83
|
+
opacity: 0;
|
|
84
|
+
width: 100%;
|
|
85
|
+
height: 100%;
|
|
86
|
+
z-index: 100;
|
|
87
|
+
position: absolute;
|
|
88
|
+
transition: 0.6s ease;
|
|
89
|
+
text-align: right;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
@media (min-width: 900px) {
|
|
93
|
+
.media-container {
|
|
94
|
+
grid-template-columns: var(--media-template-columns-large);
|
|
95
|
+
}
|
|
96
|
+
.expand-overlay {
|
|
97
|
+
@apply p-2;
|
|
98
|
+
display: block;
|
|
99
|
+
}
|
|
100
|
+
.expand-overlay:hover {
|
|
101
|
+
opacity: 0.7;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
</style>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { Presentation } from "../../../models/conference";
|
|
3
|
+
import { OverviewPanelClassObj } from "../../../@types/components";
|
|
4
|
+
import { useClassBinding } from "../../../composables/useClassBinding";
|
|
5
|
+
type Props = {
|
|
6
|
+
presentation: Presentation;
|
|
7
|
+
classObject?: OverviewPanelClassObj;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
11
|
+
classObject: () => {
|
|
12
|
+
return {
|
|
13
|
+
container: "",
|
|
14
|
+
htmlElement: "",
|
|
15
|
+
noOverviewElement: "",
|
|
16
|
+
};
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
const { presentation } = toRefs(props);
|
|
21
|
+
|
|
22
|
+
const { classBinding } = useClassBinding();
|
|
23
|
+
|
|
24
|
+
// computed
|
|
25
|
+
const sessionOverview = computed((): string | null => {
|
|
26
|
+
return presentation.value.description ? presentation.value.description : null;
|
|
27
|
+
});
|
|
28
|
+
</script>
|
|
29
|
+
|
|
30
|
+
<template>
|
|
31
|
+
<div
|
|
32
|
+
:class="
|
|
33
|
+
classBinding(
|
|
34
|
+
classObject,
|
|
35
|
+
'container',
|
|
36
|
+
'text-grey-800 px-2 py-4 text-base leading-normal font-light'
|
|
37
|
+
)
|
|
38
|
+
"
|
|
39
|
+
>
|
|
40
|
+
<span
|
|
41
|
+
v-if="sessionOverview"
|
|
42
|
+
:class="classBinding(classObject, 'htmlElement', '')"
|
|
43
|
+
v-html="sessionOverview"
|
|
44
|
+
></span>
|
|
45
|
+
<p v-else :class="classBinding(classObject, 'noOverviewElement', '')">
|
|
46
|
+
There is no overview for this presentation.
|
|
47
|
+
</p>
|
|
48
|
+
</div>
|
|
49
|
+
</template>
|
|
50
|
+
|
|
51
|
+
<style scoped></style>
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<span v-if="presenterLevelArray['presenters_all'].presenters.length > 0">
|
|
3
|
+
<presenters-detail
|
|
4
|
+
:presenters-by-level="presenterLevelArray"
|
|
5
|
+
:pres-format="layoutFormat"
|
|
6
|
+
:item-width="itemWidth"
|
|
7
|
+
:show-levels="false"
|
|
8
|
+
:is-compact="isCompact"
|
|
9
|
+
></presenters-detail>
|
|
10
|
+
</span>
|
|
11
|
+
<div v-else class="text-grey-800 px-2 py-4">
|
|
12
|
+
<p class="text-base leading-normal font-light">There are no presenters associated with this presentation.</p>
|
|
13
|
+
</div>
|
|
14
|
+
</template>
|
|
15
|
+
|
|
16
|
+
<script>
|
|
17
|
+
import PresentersDetail from '@/components/presenters/PresentersDetail';
|
|
18
|
+
|
|
19
|
+
export default {
|
|
20
|
+
props: {
|
|
21
|
+
itemWidth: {
|
|
22
|
+
type: String,
|
|
23
|
+
default: '120'
|
|
24
|
+
},
|
|
25
|
+
layoutFormat: {
|
|
26
|
+
type: String,
|
|
27
|
+
default: 'PresenterItemGrid'
|
|
28
|
+
},
|
|
29
|
+
isCompact: {
|
|
30
|
+
default: true,
|
|
31
|
+
type: Boolean
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
components: {
|
|
35
|
+
PresentersDetail
|
|
36
|
+
},
|
|
37
|
+
provide() {
|
|
38
|
+
return {
|
|
39
|
+
itemWidth: this.itemWidth,
|
|
40
|
+
imageStyle: this.imageStyle,
|
|
41
|
+
};
|
|
42
|
+
},
|
|
43
|
+
computed: {
|
|
44
|
+
presenterLevelArray() {
|
|
45
|
+
let returnArray = [];
|
|
46
|
+
returnArray['presenters_all'] = { 'presenters': _.sortBy(this.$parent.currentPresentation.presenters, function (presenter) {
|
|
47
|
+
return presenter.pivot.order;
|
|
48
|
+
}) };
|
|
49
|
+
return returnArray;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
</script>
|
|
54
|
+
|
|
55
|
+
<style scoped>
|
|
56
|
+
.presenter-grid {
|
|
57
|
+
display: grid;
|
|
58
|
+
grid-template-columns: 100px 1fr;
|
|
59
|
+
gap: 10px;
|
|
60
|
+
}
|
|
61
|
+
.presenter-grid .grid-item {
|
|
62
|
+
align-items: center;
|
|
63
|
+
align-self: center;
|
|
64
|
+
}
|
|
65
|
+
</style>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
declare namespace _default {
|
|
2
|
+
namespace props {
|
|
3
|
+
namespace itemWidth {
|
|
4
|
+
export const type: StringConstructor;
|
|
5
|
+
const _default: string;
|
|
6
|
+
export { _default as default };
|
|
7
|
+
}
|
|
8
|
+
namespace layoutFormat {
|
|
9
|
+
const type_1: StringConstructor;
|
|
10
|
+
export { type_1 as type };
|
|
11
|
+
const _default_1: string;
|
|
12
|
+
export { _default_1 as default };
|
|
13
|
+
}
|
|
14
|
+
namespace isCompact {
|
|
15
|
+
const _default_2: boolean;
|
|
16
|
+
export { _default_2 as default };
|
|
17
|
+
const type_2: BooleanConstructor;
|
|
18
|
+
export { type_2 as type };
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
namespace components {
|
|
22
|
+
export { PresentersDetail };
|
|
23
|
+
}
|
|
24
|
+
function provide(): {
|
|
25
|
+
itemWidth: any;
|
|
26
|
+
imageStyle: any;
|
|
27
|
+
};
|
|
28
|
+
namespace computed {
|
|
29
|
+
function presenterLevelArray(): any[];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export default _default;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import Cookies from "universal-cookie";
|
|
3
|
+
|
|
4
|
+
const cookies = new Cookies();
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
render() {},
|
|
8
|
+
data() {
|
|
9
|
+
return {
|
|
10
|
+
sessionCookieName: "session-cookie",
|
|
11
|
+
sessionId: null,
|
|
12
|
+
sessionLoopId: null,
|
|
13
|
+
sessionLoopIntervalMinutes: 5,
|
|
14
|
+
cookieExpireMinutes: 20
|
|
15
|
+
};
|
|
16
|
+
},
|
|
17
|
+
props: {
|
|
18
|
+
loggableType: {
|
|
19
|
+
type: String,
|
|
20
|
+
default: "App\\Presentation"
|
|
21
|
+
},
|
|
22
|
+
loggableId: {
|
|
23
|
+
type: Number
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
watch: {
|
|
27
|
+
loggableId(_newId, _oldId) {
|
|
28
|
+
this.updateSession();
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
methods: {
|
|
32
|
+
getSessionIdFromCookie() {
|
|
33
|
+
return (this.sessionId = cookies.get(this.sessionCookieName));
|
|
34
|
+
},
|
|
35
|
+
initSessionLoop() {
|
|
36
|
+
this.sessionLoop();
|
|
37
|
+
this.sessionLoopId = setInterval(
|
|
38
|
+
this.sessionLoop,
|
|
39
|
+
parseInt(this.sessionLoopIntervalMinutes * 60 * 1000)
|
|
40
|
+
);
|
|
41
|
+
},
|
|
42
|
+
sessionLoop() {
|
|
43
|
+
if (this.getSessionIdFromCookie()) {
|
|
44
|
+
this.updateSession();
|
|
45
|
+
} else {
|
|
46
|
+
this.initSession();
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
updateSessionCookie() {
|
|
50
|
+
let expireDate = new Date(
|
|
51
|
+
new Date().getTime() + this.cookieExpireMinutes * 60 * 1000
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
cookies.set(this.sessionCookieName, this.sessionId, {
|
|
55
|
+
expires: expireDate
|
|
56
|
+
});
|
|
57
|
+
},
|
|
58
|
+
initSession() {
|
|
59
|
+
this.$axios.$post("session-logs", {}).then(response => {
|
|
60
|
+
this.sessionId = response;
|
|
61
|
+
this.updateSession();
|
|
62
|
+
});
|
|
63
|
+
},
|
|
64
|
+
updateSession() {
|
|
65
|
+
if (!this.sessionId || !this.loggableType || !this.loggableId) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
this.updateSessionCookie();
|
|
70
|
+
|
|
71
|
+
let inputs = {
|
|
72
|
+
_method: "PATCH",
|
|
73
|
+
resource_type: this.loggableType,
|
|
74
|
+
resource_id: this.loggableId
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
this.$axios
|
|
78
|
+
.$post(`session-logs/${this.sessionId}`, inputs)
|
|
79
|
+
.then(response => {
|
|
80
|
+
console.log("updateSession", response);
|
|
81
|
+
})
|
|
82
|
+
.catch(error => {
|
|
83
|
+
console.log("Error updating session-log", error);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
mounted() {
|
|
88
|
+
console.log("SessionReporting component mounted");
|
|
89
|
+
this.initSessionLoop();
|
|
90
|
+
},
|
|
91
|
+
beforeRouteLeave(to, from, next) {
|
|
92
|
+
clearInterval(this.sessionLoopId);
|
|
93
|
+
next();
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
</script>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
declare namespace _default {
|
|
2
|
+
function render(): void;
|
|
3
|
+
function data(): {
|
|
4
|
+
sessionCookieName: string;
|
|
5
|
+
sessionId: null;
|
|
6
|
+
sessionLoopId: null;
|
|
7
|
+
sessionLoopIntervalMinutes: number;
|
|
8
|
+
cookieExpireMinutes: number;
|
|
9
|
+
};
|
|
10
|
+
namespace props {
|
|
11
|
+
namespace loggableType {
|
|
12
|
+
export const type: StringConstructor;
|
|
13
|
+
const _default: string;
|
|
14
|
+
export { _default as default };
|
|
15
|
+
}
|
|
16
|
+
namespace loggableId {
|
|
17
|
+
const type_1: NumberConstructor;
|
|
18
|
+
export { type_1 as type };
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
namespace watch {
|
|
22
|
+
function loggableId(_newId: any, _oldId: any): void;
|
|
23
|
+
}
|
|
24
|
+
namespace methods {
|
|
25
|
+
function getSessionIdFromCookie(): any;
|
|
26
|
+
function initSessionLoop(): void;
|
|
27
|
+
function sessionLoop(): void;
|
|
28
|
+
function updateSessionCookie(): void;
|
|
29
|
+
function initSession(): void;
|
|
30
|
+
function updateSession(): false | undefined;
|
|
31
|
+
}
|
|
32
|
+
function mounted(): void;
|
|
33
|
+
function beforeRouteLeave(to: any, from: any, next: any): void;
|
|
34
|
+
}
|
|
35
|
+
export default _default;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<div v-if="sponsorsArray.length > 0" class="text-grey-800 px-4 py-4" :class="trackSponsorsArray.length > 0 ? 'border-b border-light-grey' : ''">
|
|
4
|
+
<div class="mb-4">
|
|
5
|
+
<!-- Session Sponsors -->
|
|
6
|
+
<h3 class="primary-link text-lg text-center mb-3">Session Sponsors</h3>
|
|
7
|
+
<div class="flex flex-row md:flex-col flex-wrap">
|
|
8
|
+
<div v-for="(sponsor, index) in sponsorsArray" :key="index" class="flex-1 mx-4 my-2 md:mx-0 self-center">
|
|
9
|
+
<a :href="sponsor.website" target="_blank" class="block mx-auto">
|
|
10
|
+
<img :src="sponsor.photo" class="block mx-auto" />
|
|
11
|
+
</a>
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
</div>
|
|
16
|
+
<div v-if="trackSponsorsArray.length > 0" class="text-grey-800 px-4 py-4">
|
|
17
|
+
<div class="mb-4">
|
|
18
|
+
<!-- Session Sponsors -->
|
|
19
|
+
<h3 class="primary-link text-lg text-center mb-3">Track Sponsors</h3>
|
|
20
|
+
<div class="flex flex-row md:flex-col flex-wrap">
|
|
21
|
+
<div v-for="(sponsor, index) in trackSponsorsArray" :key="index" class="flex-1 mx-4 my-2 md:mx-0 self-center">
|
|
22
|
+
<a :href="sponsor.website" target="_blank" class="block mx-auto">
|
|
23
|
+
<img :src="sponsor.photo" class="block mx-auto" />
|
|
24
|
+
</a>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
<div v-if="!sponsorsArray.length && !trackSponsorsArray.length" class="text-grey-800 px-2 py-4">
|
|
30
|
+
<p class="text-base leading-normal font-light">There are no sponsors associated with this presentation.</p>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</template>
|
|
34
|
+
|
|
35
|
+
<script>
|
|
36
|
+
export default {
|
|
37
|
+
data() {
|
|
38
|
+
return {
|
|
39
|
+
sponsorsArray: [],
|
|
40
|
+
trackSponsorsArray: []
|
|
41
|
+
};
|
|
42
|
+
},
|
|
43
|
+
props: {
|
|
44
|
+
sponsorType: {
|
|
45
|
+
type: String
|
|
46
|
+
},
|
|
47
|
+
currentPresentation: {
|
|
48
|
+
type: Object,
|
|
49
|
+
default: () => {
|
|
50
|
+
return {};
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
computed: {
|
|
55
|
+
},
|
|
56
|
+
methods: {
|
|
57
|
+
},
|
|
58
|
+
watch: {
|
|
59
|
+
currentPresentation: {
|
|
60
|
+
immediate: true,
|
|
61
|
+
handler (currentPres) {
|
|
62
|
+
if(currentPres.sponsors) {
|
|
63
|
+
this.sponsorsArray = currentPres.sponsors;
|
|
64
|
+
}
|
|
65
|
+
if(currentPres.tracks) {
|
|
66
|
+
this.trackSponsorsArray = currentPres.tracks[0].sponsors;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
</script>
|
|
73
|
+
|
|
74
|
+
<style scoped>
|
|
75
|
+
.sponsor-grid {
|
|
76
|
+
display: grid;
|
|
77
|
+
grid-template-columns: 1fr 1fr 1fr;
|
|
78
|
+
gap: 10px;
|
|
79
|
+
}
|
|
80
|
+
.sponsor-grid .grid-item {
|
|
81
|
+
align-items: center;
|
|
82
|
+
align-self: center;
|
|
83
|
+
justify-self: center;
|
|
84
|
+
}
|
|
85
|
+
</style>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
declare namespace _default {
|
|
2
|
+
function data(): {
|
|
3
|
+
sponsorsArray: never[];
|
|
4
|
+
trackSponsorsArray: never[];
|
|
5
|
+
};
|
|
6
|
+
namespace props {
|
|
7
|
+
namespace sponsorType {
|
|
8
|
+
const type: StringConstructor;
|
|
9
|
+
}
|
|
10
|
+
namespace currentPresentation {
|
|
11
|
+
const type_1: ObjectConstructor;
|
|
12
|
+
export { type_1 as type };
|
|
13
|
+
function _default(): {};
|
|
14
|
+
export { _default as default };
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
const computed: {};
|
|
18
|
+
const methods: {};
|
|
19
|
+
namespace watch {
|
|
20
|
+
export namespace currentPresentation_1 {
|
|
21
|
+
const immediate: boolean;
|
|
22
|
+
function handler(currentPres: any): void;
|
|
23
|
+
}
|
|
24
|
+
export { currentPresentation_1 as currentPresentation };
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export default _default;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<vue-draggable-resizable
|
|
3
|
+
:w="startSize.width"
|
|
4
|
+
:h="startSize.height"
|
|
5
|
+
:x="startPosition.x"
|
|
6
|
+
:y="startPosition.y"
|
|
7
|
+
:min-width="200"
|
|
8
|
+
:min-height="200"
|
|
9
|
+
:z="zIndex"
|
|
10
|
+
:active="true"
|
|
11
|
+
class-name="pop-window"
|
|
12
|
+
class-name-active="pop-window-active"
|
|
13
|
+
@activated="onActivated"
|
|
14
|
+
@deactivated="onDeActivated"
|
|
15
|
+
class="bg-white shadow-lg cursor-move"
|
|
16
|
+
>
|
|
17
|
+
<div :style="overlayStyle" class="expand-overlay">
|
|
18
|
+
<a @click.prevent="closeClick">
|
|
19
|
+
<i class="fas fa-compress-arrows-alt"></i>
|
|
20
|
+
</a>
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
<div class="outer-container max-h-full p-1">
|
|
24
|
+
<content-area class="h-auto max-h-full" :current-presentation="currentPresentation"></content-area>
|
|
25
|
+
</div>
|
|
26
|
+
</vue-draggable-resizable>
|
|
27
|
+
</template>
|
|
28
|
+
|
|
29
|
+
<script>
|
|
30
|
+
import Vue from "vue";
|
|
31
|
+
import VueDraggableResizable from "vue-draggable-resizable";
|
|
32
|
+
import "vue-draggable-resizable/dist/VueDraggableResizable.css";
|
|
33
|
+
|
|
34
|
+
import ContentTabs from "./ContentTabs";
|
|
35
|
+
import ContentArea from "./ContentArea";
|
|
36
|
+
|
|
37
|
+
Vue.component("vue-draggable-resizable", VueDraggableResizable);
|
|
38
|
+
|
|
39
|
+
export default {
|
|
40
|
+
components: {
|
|
41
|
+
ContentTabs,
|
|
42
|
+
ContentArea
|
|
43
|
+
},
|
|
44
|
+
data() {
|
|
45
|
+
return {
|
|
46
|
+
zIndex: 300,
|
|
47
|
+
active: true
|
|
48
|
+
};
|
|
49
|
+
},
|
|
50
|
+
props: {
|
|
51
|
+
tabArray: {
|
|
52
|
+
type: Array,
|
|
53
|
+
default: []
|
|
54
|
+
},
|
|
55
|
+
startSize: {
|
|
56
|
+
type: Object,
|
|
57
|
+
default: () => {
|
|
58
|
+
return { width: 640, height: 480 };
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
startPosition: {
|
|
62
|
+
type: Object,
|
|
63
|
+
default: () => {
|
|
64
|
+
return { x: 0, y: 0 };
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
currentPresentation: {
|
|
68
|
+
type: Object,
|
|
69
|
+
default: () => {
|
|
70
|
+
return {};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
computed: {
|
|
75
|
+
overlayStyle() {
|
|
76
|
+
return this.active ? "opacity: .7;" : "opacity: 0";
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
methods: {
|
|
80
|
+
closeClick(e) {
|
|
81
|
+
this.$emit("closeClick", this);
|
|
82
|
+
},
|
|
83
|
+
onActivated(e) {
|
|
84
|
+
this.zIndex = 500;
|
|
85
|
+
this.active = true;
|
|
86
|
+
},
|
|
87
|
+
onDeActivated(e) {
|
|
88
|
+
this.zIndex = 100;
|
|
89
|
+
this.active = false;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
</script>
|
|
94
|
+
|
|
95
|
+
<style scoped>
|
|
96
|
+
.outer-container {
|
|
97
|
+
position: relative;
|
|
98
|
+
overflow: auto;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.expand-overlay {
|
|
102
|
+
display: block;
|
|
103
|
+
font-size: 1em;
|
|
104
|
+
line-height: 1em;
|
|
105
|
+
opacity: 0;
|
|
106
|
+
width: 50px;
|
|
107
|
+
height: 50px;
|
|
108
|
+
top: -30px;
|
|
109
|
+
right: 0;
|
|
110
|
+
z-index: 100;
|
|
111
|
+
position: absolute;
|
|
112
|
+
transition: 0.6s ease;
|
|
113
|
+
text-align: right;
|
|
114
|
+
}
|
|
115
|
+
.expand-overlay:hover {
|
|
116
|
+
opacity: 0.7 !important;
|
|
117
|
+
}
|
|
118
|
+
</style>
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
declare namespace _default {
|
|
2
|
+
namespace components {
|
|
3
|
+
export { ContentTabs };
|
|
4
|
+
export { ContentArea };
|
|
5
|
+
}
|
|
6
|
+
function data(): {
|
|
7
|
+
zIndex: number;
|
|
8
|
+
active: boolean;
|
|
9
|
+
};
|
|
10
|
+
namespace props {
|
|
11
|
+
namespace tabArray {
|
|
12
|
+
export const type: ArrayConstructor;
|
|
13
|
+
const _default: never[];
|
|
14
|
+
export { _default as default };
|
|
15
|
+
}
|
|
16
|
+
namespace startSize {
|
|
17
|
+
const type_1: ObjectConstructor;
|
|
18
|
+
export { type_1 as type };
|
|
19
|
+
function _default_1(): {
|
|
20
|
+
width: number;
|
|
21
|
+
height: number;
|
|
22
|
+
};
|
|
23
|
+
export { _default_1 as default };
|
|
24
|
+
}
|
|
25
|
+
namespace startPosition {
|
|
26
|
+
const type_2: ObjectConstructor;
|
|
27
|
+
export { type_2 as type };
|
|
28
|
+
function _default_2(): {
|
|
29
|
+
x: number;
|
|
30
|
+
y: number;
|
|
31
|
+
};
|
|
32
|
+
export { _default_2 as default };
|
|
33
|
+
}
|
|
34
|
+
namespace currentPresentation {
|
|
35
|
+
const type_3: ObjectConstructor;
|
|
36
|
+
export { type_3 as type };
|
|
37
|
+
function _default_3(): {};
|
|
38
|
+
export { _default_3 as default };
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
namespace computed {
|
|
42
|
+
function overlayStyle(): "opacity: .7;" | "opacity: 0";
|
|
43
|
+
}
|
|
44
|
+
namespace methods {
|
|
45
|
+
function closeClick(e: any): void;
|
|
46
|
+
function onActivated(e: any): void;
|
|
47
|
+
function onDeActivated(e: any): void;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export default _default;
|