@icvdeveloper/common-module 0.0.75 → 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.
Files changed (41) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/module.mjs +5 -0
  3. package/dist/runtime/@types/components.d.ts +89 -1
  4. package/dist/runtime/components/agenda/AgendaList.vue +149 -19
  5. package/dist/runtime/components/agenda/AgendaTabbed.vue +9 -0
  6. package/dist/runtime/components/agenda/components/AgendaListAccordion.vue +31 -4
  7. package/dist/runtime/components/agenda/components/Calendar.vue +89 -0
  8. package/dist/runtime/components/media/PlayerAndContentContainer.vue +170 -0
  9. package/dist/runtime/components/media/WebcastVideoPlayer.vue +167 -0
  10. package/dist/runtime/components/media/components/AgendaPanel.vue +53 -0
  11. package/dist/runtime/components/media/components/CeCreditNotification.vue +99 -0
  12. package/dist/runtime/components/media/components/CeCreditNotification.vue.d.ts +28 -0
  13. package/dist/runtime/components/media/components/ContentAccordion.vue +65 -0
  14. package/dist/runtime/components/media/components/ContentAccordion.vue.d.ts +29 -0
  15. package/dist/runtime/components/media/components/ContentArea.vue +175 -0
  16. package/dist/runtime/components/media/components/ContentTabs.vue +263 -0
  17. package/dist/runtime/components/media/components/DocumentsPanel.vue +52 -0
  18. package/dist/runtime/components/media/components/DocumentsPanel.vue.d.ts +7 -0
  19. package/dist/runtime/components/media/components/JsonApi.vue +33 -0
  20. package/dist/runtime/components/media/components/JsonApi.vue.d.ts +16 -0
  21. package/dist/runtime/components/media/components/MediaContainer.vue +104 -0
  22. package/dist/runtime/components/media/components/OverviewPanel.vue +51 -0
  23. package/dist/runtime/components/media/components/PresentersPanel.vue +65 -0
  24. package/dist/runtime/components/media/components/PresentersPanel.vue.d.ts +32 -0
  25. package/dist/runtime/components/media/components/SessionReporting.vue +96 -0
  26. package/dist/runtime/components/media/components/SessionReporting.vue.d.ts +35 -0
  27. package/dist/runtime/components/media/components/SponsorsPanel.vue +85 -0
  28. package/dist/runtime/components/media/components/SponsorsPanel.vue.d.ts +27 -0
  29. package/dist/runtime/components/media/components/WindowContent.vue +118 -0
  30. package/dist/runtime/components/media/components/WindowContent.vue.d.ts +50 -0
  31. package/dist/runtime/components/media/components/WindowSlide.vue +92 -0
  32. package/dist/runtime/components/media/components/WindowSlide.vue.d.ts +36 -0
  33. package/dist/runtime/composables/useStream.d.ts +15 -0
  34. package/dist/runtime/composables/useStream.mjs +89 -0
  35. package/dist/runtime/enums/general.d.ts +7 -0
  36. package/dist/runtime/enums/general.mjs +8 -0
  37. package/dist/runtime/models/conference.d.ts +17 -0
  38. package/dist/runtime/models/pagesConfig.d.ts +2 -0
  39. package/dist/runtime/store/presentations.d.ts +11 -0
  40. package/dist/runtime/store/presentations.mjs +10 -0
  41. package/package.json +3 -1
@@ -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;
@@ -0,0 +1,92 @@
1
+ <template>
2
+ <vue-draggable-resizable
3
+ :w="startSize.width"
4
+ :h="startSize.height"
5
+ :x="startPosition.x"
6
+ :y="startPosition.y"
7
+ :handles="['tl','tr','br','bl']"
8
+ :min-width="200"
9
+ :lock-aspect-ratio="true"
10
+ :z="zIndex"
11
+ :active="true"
12
+ class-name="pop-window"
13
+ class-name-active="pop-window-active"
14
+ @activated="onActivated"
15
+ @deactivated="onDeActivated"
16
+ class="bg-white shadow-lg cursor-move"
17
+ >
18
+ <div>
19
+ <div class="expand-overlay">
20
+ <a @click.prevent="closeClick">
21
+ <i class="fas fa-compress-arrows-alt"></i>
22
+ </a>
23
+ </div>
24
+
25
+ <img :src="slide" class="w-full h-auto max-h-full" />
26
+ </div>
27
+ </vue-draggable-resizable>
28
+ </template>
29
+
30
+ <script>
31
+ import Vue from "vue";
32
+ import VueDraggableResizable from "vue-draggable-resizable";
33
+ import "vue-draggable-resizable/dist/VueDraggableResizable.css";
34
+
35
+ Vue.component("vue-draggable-resizable", VueDraggableResizable);
36
+
37
+ export default {
38
+ data() {
39
+ return {
40
+ zIndex: 200
41
+ };
42
+ },
43
+ props: {
44
+ slide: {
45
+ type: String,
46
+ default: ""
47
+ },
48
+ startSize: {
49
+ type: Object,
50
+ default: () => {
51
+ return { width: 640, height: 480 };
52
+ }
53
+ },
54
+ startPosition: {
55
+ type: Object,
56
+ default: () => {
57
+ return { width: 0, height: 0 };
58
+ }
59
+ }
60
+ },
61
+ methods: {
62
+ closeClick(e) {
63
+ this.$emit("closeClick", this);
64
+ },
65
+ onActivated(e) {
66
+ this.zIndex = 500;
67
+ },
68
+ onDeActivated(e) {
69
+ this.zIndex = 100;
70
+ }
71
+ }
72
+ };
73
+ </script>
74
+
75
+ <style scoped>
76
+ .expand-overlay {
77
+ @apply p-2;
78
+ display: block;
79
+ font-size: 1em;
80
+ line-height: 1em;
81
+ opacity: 0;
82
+ width: 100%;
83
+ height: 100%;
84
+ z-index: 100;
85
+ position: absolute;
86
+ transition: 0.6s ease;
87
+ text-align: right;
88
+ }
89
+ .expand-overlay:hover {
90
+ opacity: 0.7;
91
+ }
92
+ </style>
@@ -0,0 +1,36 @@
1
+ declare namespace _default {
2
+ function data(): {
3
+ zIndex: number;
4
+ };
5
+ namespace props {
6
+ namespace slide {
7
+ export const type: StringConstructor;
8
+ const _default: string;
9
+ export { _default as default };
10
+ }
11
+ namespace startSize {
12
+ const type_1: ObjectConstructor;
13
+ export { type_1 as type };
14
+ function _default_1(): {
15
+ width: number;
16
+ height: number;
17
+ };
18
+ export { _default_1 as default };
19
+ }
20
+ namespace startPosition {
21
+ const type_2: ObjectConstructor;
22
+ export { type_2 as type };
23
+ function _default_2(): {
24
+ width: number;
25
+ height: number;
26
+ };
27
+ export { _default_2 as default };
28
+ }
29
+ }
30
+ namespace methods {
31
+ function closeClick(e: any): void;
32
+ function onActivated(e: any): void;
33
+ function onDeActivated(e: any): void;
34
+ }
35
+ }
36
+ export default _default;
@@ -0,0 +1,15 @@
1
+ /// <reference types="node" />
2
+ import { Ref, ComputedRef } from "vue";
3
+ import { Presentation, Stream } from "../models/conference";
4
+ export type UseStreamMethods = {
5
+ currentStreamData: Ref<Stream>;
6
+ currentPresentation: Ref<Presentation>;
7
+ streamLoop: Ref<NodeJS.Timer | null>;
8
+ presentationLoop: Ref<NodeJS.Timer | null>;
9
+ getPresentationJson: () => boolean;
10
+ getStreamJson: () => boolean;
11
+ isStreamTest: ComputedRef<boolean>;
12
+ webcastChannel: ComputedRef<string | string[]>;
13
+ jsonPrefix: ComputedRef<string>;
14
+ };
15
+ export declare const useStream: (_region: string, _prefix: string, _confId: number, _callback: (event: string, value: Presentation) => void) => UseStreamMethods;
@@ -0,0 +1,89 @@
1
+ import { ref, unref } from "vue";
2
+ import { storeToRefs } from "pinia";
3
+ import { useRoute } from "vue-router";
4
+ import { isEqual } from "lodash-es";
5
+ export const useStream = (_region, _prefix, _confId, _callback) => {
6
+ const region = unref(_region);
7
+ const prefix = unref(_prefix);
8
+ const confId = unref(_confId);
9
+ const route = ref(useRoute());
10
+ const { currentPresentation } = storeToRefs(usePresentationsStore());
11
+ const currentStreamData = ref({});
12
+ const streamLoop = ref({});
13
+ const presentationLoop = ref({});
14
+ const getPresentationJson = () => {
15
+ let success = false;
16
+ const url = `${jsonPrefix.value}/presentation.json?_id=${Math.random()}`;
17
+ fetch(url).then((response) => {
18
+ return response.json();
19
+ }).then((data) => {
20
+ const newPresentation = data;
21
+ if (!currentPresentation.value.id || newPresentation.id !== currentPresentation.value.id) {
22
+ if (isStreamTest.value) {
23
+ newPresentation.name = "Webcast Stream Test";
24
+ }
25
+ currentPresentation.value = newPresentation;
26
+ _callback("presentationChanged", newPresentation);
27
+ }
28
+ success = true;
29
+ }).catch((e) => {
30
+ console.log("Presentation JSON does not exist.", e);
31
+ success = false;
32
+ });
33
+ return success;
34
+ };
35
+ const getStreamJson = () => {
36
+ let success = false;
37
+ const url = `${jsonPrefix.value}/stream.json?_id=${Math.random()}`;
38
+ fetch(url).then((response) => {
39
+ return response.json();
40
+ }).then((data) => {
41
+ const newStream = data;
42
+ if (!isEqual(newStream, currentStreamData)) {
43
+ currentStreamData.value = newStream;
44
+ }
45
+ success = true;
46
+ }).catch((e) => {
47
+ console.log("Stream JSON does not exist.", e);
48
+ success = false;
49
+ });
50
+ return success;
51
+ };
52
+ const isStreamTest = computed(() => {
53
+ return String(route.value.name).includes("stream-test");
54
+ });
55
+ const webcastChannel = computed(() => {
56
+ return isStreamTest.value ? "stream-test" : route.value.params.channelid ? route.value.params.channelid : route.value.params.id;
57
+ });
58
+ const jsonPrefix = computed(() => {
59
+ return `https://s3-${region}.amazonaws.com/v3plus-${prefix}/conferences/${confId}/channels/${webcastChannel.value}`;
60
+ });
61
+ onMounted(() => {
62
+ getPresentationJson();
63
+ getStreamJson();
64
+ presentationLoop.value = setInterval(() => {
65
+ getPresentationJson();
66
+ }, 30 * 1e3);
67
+ streamLoop.value = setInterval(() => {
68
+ getStreamJson();
69
+ }, 5 * 60 * 1e3);
70
+ });
71
+ onBeforeUnmount(() => {
72
+ if (ref.mediaPlayer) {
73
+ ref.mediaPlayer.cleanup();
74
+ }
75
+ clearInterval(presentationLoop.value);
76
+ clearInterval(streamLoop.value);
77
+ });
78
+ return {
79
+ currentStreamData,
80
+ currentPresentation,
81
+ streamLoop,
82
+ presentationLoop,
83
+ getPresentationJson,
84
+ getStreamJson,
85
+ isStreamTest,
86
+ webcastChannel,
87
+ jsonPrefix
88
+ };
89
+ };
@@ -5,3 +5,10 @@ export declare enum Position {
5
5
  RIGHT = "right",
6
6
  MIDDLE = "middle"
7
7
  }
8
+ export declare enum SelectedContent {
9
+ OVERVIEW = "overview",
10
+ AGENDA = "agenda",
11
+ HTML = "html",
12
+ TRACK_HTML = "track_html",
13
+ URL = "url"
14
+ }
@@ -6,3 +6,11 @@ export var Position = /* @__PURE__ */ ((Position2) => {
6
6
  Position2["MIDDLE"] = "middle";
7
7
  return Position2;
8
8
  })(Position || {});
9
+ export var SelectedContent = /* @__PURE__ */ ((SelectedContent2) => {
10
+ SelectedContent2["OVERVIEW"] = "overview";
11
+ SelectedContent2["AGENDA"] = "agenda";
12
+ SelectedContent2["HTML"] = "html";
13
+ SelectedContent2["TRACK_HTML"] = "track_html";
14
+ SelectedContent2["URL"] = "url";
15
+ return SelectedContent2;
16
+ })(SelectedContent || {});
@@ -77,6 +77,7 @@ export type Presentation = {
77
77
  zoom_require_password?: boolean;
78
78
  presenters?: Array<Presenter>;
79
79
  sponsors?: Array<Sponsor>;
80
+ tracks?: Array<Track>;
80
81
  };
81
82
  export type Track = {
82
83
  access?: boolean;
@@ -128,3 +129,19 @@ export type Conference = {
128
129
  sponsors?: Array<Sponsor>;
129
130
  template_config?: object;
130
131
  };
132
+ export type Stream = {
133
+ id: number;
134
+ name: string;
135
+ type: string;
136
+ notes?: string | null;
137
+ hls_url?: string | null;
138
+ embed_html?: string | null;
139
+ created_at: string;
140
+ updated_at?: string | null;
141
+ };
142
+ export type PlayerObj = {
143
+ autostart: boolean;
144
+ format: string;
145
+ playerDiv: string;
146
+ loadCustomStream: Function;
147
+ };