@icvdeveloper/common-module 0.0.126 → 0.0.127

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 (100) hide show
  1. package/README.md +6 -6
  2. package/dist/module.json +1 -1
  3. package/dist/runtime/@types/components.d.ts +12 -0
  4. package/dist/runtime/assets/svg/answer.svg +14 -14
  5. package/dist/runtime/assets/svg/avatar.svg +1 -1
  6. package/dist/runtime/assets/svg/bell-icon.svg +3 -3
  7. package/dist/runtime/assets/svg/checkmark-icon.svg +1 -1
  8. package/dist/runtime/assets/svg/close-icon.svg +1 -1
  9. package/dist/runtime/assets/svg/icon-avatar.svg +1 -1
  10. package/dist/runtime/assets/svg/icon-chevron.svg +4 -4
  11. package/dist/runtime/assets/svg/icon-circle-plus.svg +1 -1
  12. package/dist/runtime/assets/svg/icon-close.svg +1 -1
  13. package/dist/runtime/assets/svg/icon-info.svg +2 -2
  14. package/dist/runtime/assets/svg/icon-new-window.svg +11 -11
  15. package/dist/runtime/assets/svg/icon-offline.svg +3 -3
  16. package/dist/runtime/assets/svg/icon-online.svg +3 -3
  17. package/dist/runtime/assets/svg/icon-person.svg +2 -2
  18. package/dist/runtime/assets/svg/icon-play.svg +2 -2
  19. package/dist/runtime/assets/svg/icon-star-filled.svg +29 -29
  20. package/dist/runtime/assets/svg/icon-star.svg +24 -24
  21. package/dist/runtime/assets/svg/icon-video-chat.svg +14 -14
  22. package/dist/runtime/assets/svg/icon-website.svg +2 -2
  23. package/dist/runtime/assets/svg/icon-zoom.svg +10 -10
  24. package/dist/runtime/assets/svg/notification-icon.svg +32 -32
  25. package/dist/runtime/assets/svg/offline-icon.svg +1 -1
  26. package/dist/runtime/assets/svg/online-icon.svg +3 -3
  27. package/dist/runtime/assets/svg/peer2peer.svg +3 -3
  28. package/dist/runtime/assets/svg/phone.svg +1 -1
  29. package/dist/runtime/assets/svg/plus-icon.svg +1 -1
  30. package/dist/runtime/assets/svg/red-icon.svg +3 -3
  31. package/dist/runtime/assets/svg/reject.svg +14 -14
  32. package/dist/runtime/assets/svg/search-icon.svg +3 -3
  33. package/dist/runtime/components/affiliates/AffiliatePage.vue +329 -17
  34. package/dist/runtime/components/agenda/AgendaList.vue +259 -259
  35. package/dist/runtime/components/agenda/AgendaTabbed.vue +305 -305
  36. package/dist/runtime/components/agenda/components/AgendaListAccordion.vue +67 -67
  37. package/dist/runtime/components/agenda/components/Calendar.vue +67 -67
  38. package/dist/runtime/components/agenda/components/InfoLink.vue +56 -56
  39. package/dist/runtime/components/agenda/components/PlayIcon.vue +49 -49
  40. package/dist/runtime/components/agenda/components/PresentationLink.vue +137 -137
  41. package/dist/runtime/components/agenda/components/Sponsor.vue +132 -132
  42. package/dist/runtime/components/auth/LoginFullWidth.vue +78 -78
  43. package/dist/runtime/components/auth/PasswordReset.vue +60 -60
  44. package/dist/runtime/components/auth/Registration.vue +27 -27
  45. package/dist/runtime/components/auth/Ucc.vue +129 -129
  46. package/dist/runtime/components/core/Accordion.vue +97 -97
  47. package/dist/runtime/components/core/CountdownTimer.vue +336 -336
  48. package/dist/runtime/components/core/DynamicHtml.vue +1 -1
  49. package/dist/runtime/components/core/Modal.vue +111 -111
  50. package/dist/runtime/components/core/Navbar.vue +154 -154
  51. package/dist/runtime/components/core/SvgIcon.vue +157 -157
  52. package/dist/runtime/components/core/ZoomModal.vue +37 -37
  53. package/dist/runtime/components/events/EventHeader.vue +133 -133
  54. package/dist/runtime/components/events/ListEvents.vue +554 -554
  55. package/dist/runtime/components/forms/AlertBox.vue +21 -21
  56. package/dist/runtime/components/forms/ErrorField.vue +17 -17
  57. package/dist/runtime/components/forms/Message.vue +27 -27
  58. package/dist/runtime/components/forms/SearchInput.vue +38 -38
  59. package/dist/runtime/components/forms/SupportForm.vue +112 -112
  60. package/dist/runtime/components/forms/SwitchInput.vue +42 -42
  61. package/dist/runtime/components/forms/TextArea.vue +26 -26
  62. package/dist/runtime/components/forms/TextInput.vue +28 -28
  63. package/dist/runtime/components/layouts/Accordion.vue +78 -78
  64. package/dist/runtime/components/media/ArchivePlayerAndContentContainer.vue +160 -160
  65. package/dist/runtime/components/media/ArchiveVideoPlayer.vue +186 -186
  66. package/dist/runtime/components/media/PlayerAndContentContainer.vue +183 -183
  67. package/dist/runtime/components/media/WebcastVideoPlayer.vue +140 -140
  68. package/dist/runtime/components/media/components/AgendaPanel.vue +43 -43
  69. package/dist/runtime/components/media/components/ArchiveMediaContainer.vue +91 -91
  70. package/dist/runtime/components/media/components/CeCreditNotification.vue +95 -95
  71. package/dist/runtime/components/media/components/ContentAccordion.vue +63 -63
  72. package/dist/runtime/components/media/components/ContentArea.vue +158 -158
  73. package/dist/runtime/components/media/components/ContentTabs.vue +231 -231
  74. package/dist/runtime/components/media/components/DocumentsPanel.vue +31 -31
  75. package/dist/runtime/components/media/components/JsonApi.vue +31 -31
  76. package/dist/runtime/components/media/components/MediaContainer.vue +63 -63
  77. package/dist/runtime/components/media/components/OverviewPanel.vue +52 -52
  78. package/dist/runtime/components/media/components/PresentersPanel.vue +52 -52
  79. package/dist/runtime/components/media/components/SessionReporting.vue +102 -102
  80. package/dist/runtime/components/media/components/SponsorsPanel.vue +71 -71
  81. package/dist/runtime/components/media/components/WindowContent.vue +92 -92
  82. package/dist/runtime/components/media/components/WindowSlide.vue +72 -72
  83. package/dist/runtime/components/presenters/PresenterListing.vue +164 -164
  84. package/dist/runtime/components/presenters/PresenterModal.vue +223 -223
  85. package/dist/runtime/components/profile/Profile.vue +149 -149
  86. package/dist/runtime/components/profile/components/Sidebar.vue +27 -27
  87. package/dist/runtime/components/profile/components/SidebarNavItem.vue +39 -39
  88. package/dist/runtime/components/profile/tabs/Favorites.vue +21 -21
  89. package/dist/runtime/components/profile/tabs/GeneralInformation.vue +122 -122
  90. package/dist/runtime/components/profile/tabs/ProfileImage.vue +75 -75
  91. package/dist/runtime/components/support/FAQAccordion.vue +140 -140
  92. package/dist/runtime/models/conference.d.ts +24 -0
  93. package/dist/runtime/models/document.d.ts +7 -0
  94. package/dist/runtime/models/link.d.ts +6 -0
  95. package/dist/runtime/models/link.mjs +0 -0
  96. package/dist/runtime/models/video.d.ts +6 -0
  97. package/dist/runtime/models/video.mjs +0 -0
  98. package/package.json +1 -1
  99. package/dist/runtime/models/affiliate.d.ts +0 -1
  100. /package/dist/runtime/models/{affiliate.mjs → document.mjs} +0 -0
@@ -1,45 +1,45 @@
1
- <script lang="ts" setup>
2
- import { ref, toRefs } from "vue";
3
- import { Conference } from "../../../models/conference";
4
- import {
5
- AgendaPanelClassObj,
6
- AgendaPanelCompObj,
7
- AgendaListClassObj,
8
- } from "../../../@types/components";
9
- import { useClassBinding } from "../../../composables/useClassBinding";
10
-
11
- type Props = {
12
- conference: Conference | null;
13
- classObject?: AgendaPanelClassObj;
14
- };
15
-
16
- const props = withDefaults(defineProps<Props>(), {
17
- classObject: () => {
18
- return {
19
- container: "",
20
- components: ref<AgendaPanelCompObj>({
21
- agendaList: ref<AgendaListClassObj>({}),
22
- }),
23
- };
24
- },
25
- });
26
-
27
- const { conference } = toRefs(props);
28
-
29
- const { classBinding } = useClassBinding();
30
- </script>
31
-
32
- <template>
33
- <div :class="classBinding(classObject, 'container', '')">
34
- <CommonAgendaList
35
- :use-calendar="false"
36
- :conference="conference"
37
- :class-object="classObject.components.agendaList"
38
- style="margin-top: 0; margin-bottom: 0; border: none"
39
- />
40
- </div>
41
- </template>
42
-
1
+ <script lang="ts" setup>
2
+ import { ref, toRefs } from "vue";
3
+ import { Conference } from "../../../models/conference";
4
+ import {
5
+ AgendaPanelClassObj,
6
+ AgendaPanelCompObj,
7
+ AgendaListClassObj,
8
+ } from "../../../@types/components";
9
+ import { useClassBinding } from "../../../composables/useClassBinding";
10
+
11
+ type Props = {
12
+ conference: Conference | null;
13
+ classObject?: AgendaPanelClassObj;
14
+ };
15
+
16
+ const props = withDefaults(defineProps<Props>(), {
17
+ classObject: () => {
18
+ return {
19
+ container: "",
20
+ components: ref<AgendaPanelCompObj>({
21
+ agendaList: ref<AgendaListClassObj>({}),
22
+ }),
23
+ };
24
+ },
25
+ });
26
+
27
+ const { conference } = toRefs(props);
28
+
29
+ const { classBinding } = useClassBinding();
30
+ </script>
31
+
32
+ <template>
33
+ <div :class="classBinding(classObject, 'container', '')">
34
+ <CommonAgendaList
35
+ :use-calendar="false"
36
+ :conference="conference"
37
+ :class-object="classObject.components.agendaList"
38
+ style="margin-top: 0; margin-bottom: 0; border: none"
39
+ />
40
+ </div>
41
+ </template>
42
+
43
43
  <style scoped>
44
44
  .sponsor-grid {
45
45
  display: grid;
@@ -51,4 +51,4 @@ const { classBinding } = useClassBinding();
51
51
  align-self: center;
52
52
  justify-self: center;
53
53
  }
54
- </style>
54
+ </style>
@@ -1,93 +1,93 @@
1
- <script lang="ts" setup>
2
- import { ref, toRefs, computed } from "vue";
3
- import { storeToRefs } from "pinia";
4
- import { useTemplateConfigsStore, useAuthStore } from "../../../store";
5
- import { Presentation } from "../../../models/conference";
6
- import {
7
- MediaContainerClassObj,
8
- MediaContainerCompObj,
9
- WebcastPlayerClassObj,
10
- } from "../../../@types/components";
11
- import { useClassBinding } from "../../../composables/useClassBinding";
12
-
13
- type Props = {
14
- presentation: Presentation;
15
- classObject?: MediaContainerClassObj;
16
- };
17
-
18
- const props = withDefaults(defineProps<Props>(), {
19
- classObject: () => {
20
- return {
21
- container: "",
22
- components: ref<MediaContainerCompObj>({
23
- webcastPlayer: ref<WebcastPlayerClassObj>({}),
24
- }),
25
- };
26
- },
27
- });
28
-
29
- const { presentation } = toRefs(props);
30
-
31
- const { classBinding } = useClassBinding();
32
-
33
- const { isLoggedIn } = storeToRefs(useAuthStore());
34
- const { pagesConfigValue } = storeToRefs(useTemplateConfigsStore());
35
-
36
- // emits
37
- const emit = defineEmits(["previewEnded"]);
38
-
39
- // data
40
- let playing = ref<boolean>(true);
41
-
42
- // computed
43
- const isPreview = computed((): boolean => {
44
- const previewEnabled = pagesConfigValue.value(
45
- "archive_player.preview_enabled",
46
- false
47
- );
48
- // @todo add check against conference-level portal configs
49
- // || pagesConfigValue.value("archive_player.preview_enabled", false);
50
- return !isLoggedIn && previewEnabled;
51
- });
52
-
53
- const previewDuration = computed((): number => {
54
- return pagesConfigValue.value("archive_player.preview_duration", 60);
55
- // @todo add check against conference-level portal configs
56
- // || pagesConfigValue.value("archive_player.preview_duration", 60);
57
- });
58
-
59
- // methods
60
- const firePreviewEnded = () => {
61
- playing.value = false;
62
- if (ref.mediaPlayer) {
63
- ref.mediaPlayer.stop();
64
- // @todo ensure emit will suffice
65
- // previewEnded = true;
66
- }
67
- emit("previewEnded");
68
- };
69
-
70
- const checkTime = (_time: Number) => {
71
- // @todo set current time for chapter timings only
72
- // setCurrentTime(_time);
73
- if (isPreview && _time >= previewDuration.value) {
74
- firePreviewEnded();
75
- }
76
- };
77
- </script>
78
-
79
- <template>
80
- <div :class="classBinding(classObject, 'container', 'media-container')">
81
- <CommonArchiveVideoPlayer
82
- ref="mediaPlayer"
83
- :presentation="presentation"
84
- :playing="playing"
85
- :class-object="classObject.components.webcastPlayer"
86
- @time="checkTime"
87
- ></CommonArchiveVideoPlayer>
88
- </div>
89
- </template>
90
-
1
+ <script lang="ts" setup>
2
+ import { ref, toRefs, computed } from "vue";
3
+ import { storeToRefs } from "pinia";
4
+ import { useTemplateConfigsStore, useAuthStore } from "../../../store";
5
+ import { Presentation } from "../../../models/conference";
6
+ import {
7
+ MediaContainerClassObj,
8
+ MediaContainerCompObj,
9
+ WebcastPlayerClassObj,
10
+ } from "../../../@types/components";
11
+ import { useClassBinding } from "../../../composables/useClassBinding";
12
+
13
+ type Props = {
14
+ presentation: Presentation;
15
+ classObject?: MediaContainerClassObj;
16
+ };
17
+
18
+ const props = withDefaults(defineProps<Props>(), {
19
+ classObject: () => {
20
+ return {
21
+ container: "",
22
+ components: ref<MediaContainerCompObj>({
23
+ webcastPlayer: ref<WebcastPlayerClassObj>({}),
24
+ }),
25
+ };
26
+ },
27
+ });
28
+
29
+ const { presentation } = toRefs(props);
30
+
31
+ const { classBinding } = useClassBinding();
32
+
33
+ const { isLoggedIn } = storeToRefs(useAuthStore());
34
+ const { pagesConfigValue } = storeToRefs(useTemplateConfigsStore());
35
+
36
+ // emits
37
+ const emit = defineEmits(["previewEnded"]);
38
+
39
+ // data
40
+ let playing = ref<boolean>(true);
41
+
42
+ // computed
43
+ const isPreview = computed((): boolean => {
44
+ const previewEnabled = pagesConfigValue.value(
45
+ "archive_player.preview_enabled",
46
+ false
47
+ );
48
+ // @todo add check against conference-level portal configs
49
+ // || pagesConfigValue.value("archive_player.preview_enabled", false);
50
+ return !isLoggedIn && previewEnabled;
51
+ });
52
+
53
+ const previewDuration = computed((): number => {
54
+ return pagesConfigValue.value("archive_player.preview_duration", 60);
55
+ // @todo add check against conference-level portal configs
56
+ // || pagesConfigValue.value("archive_player.preview_duration", 60);
57
+ });
58
+
59
+ // methods
60
+ const firePreviewEnded = () => {
61
+ playing.value = false;
62
+ if (ref.mediaPlayer) {
63
+ ref.mediaPlayer.stop();
64
+ // @todo ensure emit will suffice
65
+ // previewEnded = true;
66
+ }
67
+ emit("previewEnded");
68
+ };
69
+
70
+ const checkTime = (_time: Number) => {
71
+ // @todo set current time for chapter timings only
72
+ // setCurrentTime(_time);
73
+ if (isPreview && _time >= previewDuration.value) {
74
+ firePreviewEnded();
75
+ }
76
+ };
77
+ </script>
78
+
79
+ <template>
80
+ <div :class="classBinding(classObject, 'container', 'media-container')">
81
+ <CommonArchiveVideoPlayer
82
+ ref="mediaPlayer"
83
+ :presentation="presentation"
84
+ :playing="playing"
85
+ :class-object="classObject.components.webcastPlayer"
86
+ @time="checkTime"
87
+ ></CommonArchiveVideoPlayer>
88
+ </div>
89
+ </template>
90
+
91
91
  <style scoped>
92
92
  .media-container {
93
93
  display: grid;
@@ -133,4 +133,4 @@ const checkTime = (_time: Number) => {
133
133
  opacity: 0.7;
134
134
  }
135
135
  }
136
- </style>
136
+ </style>
@@ -1,99 +1,99 @@
1
- <template>
2
- <transition name="slide-fade">
3
- <div v-if="visible" class="flex bg-yellow-lightest shadow text-grey-darker py-6 px-10">
4
- <div class="flex-1 text-center mx-auto">
5
- <p>
6
- Time Remaining <span :class="timeRemainingClass">{{ displayFor }} seconds </span>
7
- </p>
8
- <p v-text="promptText"></p>
9
- <p>
10
- <button class="btn btn-secondary" @click="acceptClick" v-text="buttonText"></button>
11
- </p>
12
- </div>
13
- </div>
14
- </transition>
15
- </template>
16
-
1
+ <template>
2
+ <transition name="slide-fade">
3
+ <div v-if="visible" class="flex bg-yellow-lightest shadow text-grey-darker py-6 px-10">
4
+ <div class="flex-1 text-center mx-auto">
5
+ <p>
6
+ Time Remaining <span :class="timeRemainingClass">{{ displayFor }} seconds </span>
7
+ </p>
8
+ <p v-text="promptText"></p>
9
+ <p>
10
+ <button class="btn btn-secondary" @click="acceptClick" v-text="buttonText"></button>
11
+ </p>
12
+ </div>
13
+ </div>
14
+ </transition>
15
+ </template>
16
+
17
17
  <script>
18
- import Echo from 'laravel-echo';
19
- window.Pusher = require('pusher-js');
20
-
21
- /**
22
- @todo Extract the wsHost and app ID out so that this can run in multiple environments (local, staging, production)
23
- */
24
-
25
- window.Echo = new Echo({
26
- key: '07Ve4MlR6FmN0Il8Wy',
27
- broadcaster: 'pusher',
28
- cluster: 'us2',
29
- wsHost: 'socket.v3plusportal.com',
30
- wsPort: 6001,
31
- wssPort: 6002,
32
- disableStats: false,
33
- encrypted: true,
34
- enabledTransports: ['ws', 'wss'],
35
- });
36
-
37
- export default {
38
- data() {
39
- return {
40
- pusher: null,
41
- channel: null,
42
- displayFor: 0,
43
- promptText: '',
44
- buttonText: '',
45
- visible: false,
46
- countdownLoopId: null,
47
- };
48
- },
49
- computed: {
50
- timeRemainingClass() {
51
- if (this.displayFor > 10) {
52
- return 'font-bold text-green-dark';
53
- }
54
- return 'font-bold text-red';
55
- },
56
- },
57
- props: {
58
- conferenceId: {
59
- type: Number,
60
- required: true,
61
- },
62
- },
63
- methods: {
64
- handleNotification(_conference) {
65
- clearInterval(this.countdownLoopId);
66
- window.scrollTo({ top: 0, behavior: 'smooth' });
67
- this.visible = true;
68
- this.displayFor = parseInt(_conference.ce_credit_config.display_for) || 30;
69
- this.promptText = _conference.ce_credit_config.prompt_text;
70
- this.buttonText = _conference.ce_credit_config.button_text;
71
- this.countdownLoopId = setInterval(this.countdownLoop, 1000);
72
- },
73
- countdownLoop() {
74
- if (this.displayFor > 0) {
75
- this.displayFor--;
76
- } else {
77
- this.closeNotification();
78
- }
79
- },
80
- acceptClick() {
81
- this.closeNotification();
82
- },
83
- closeNotification() {
84
- this.displayFor = 0;
85
- this.visible = false;
86
- clearInterval(this.countdownLoopId);
87
- },
88
- },
89
- created() {
90
- window.Echo.channel(`ce-notification.${this.conferenceId}`).listen('CeCreditNotification', event => {
91
- this.handleNotification(event.conference);
92
- });
93
- },
18
+ import Echo from 'laravel-echo';
19
+ window.Pusher = require('pusher-js');
20
+
21
+ /**
22
+ @todo Extract the wsHost and app ID out so that this can run in multiple environments (local, staging, production)
23
+ */
24
+
25
+ window.Echo = new Echo({
26
+ key: '07Ve4MlR6FmN0Il8Wy',
27
+ broadcaster: 'pusher',
28
+ cluster: 'us2',
29
+ wsHost: 'socket.v3plusportal.com',
30
+ wsPort: 6001,
31
+ wssPort: 6002,
32
+ disableStats: false,
33
+ encrypted: true,
34
+ enabledTransports: ['ws', 'wss'],
35
+ });
36
+
37
+ export default {
38
+ data() {
39
+ return {
40
+ pusher: null,
41
+ channel: null,
42
+ displayFor: 0,
43
+ promptText: '',
44
+ buttonText: '',
45
+ visible: false,
46
+ countdownLoopId: null,
47
+ };
48
+ },
49
+ computed: {
50
+ timeRemainingClass() {
51
+ if (this.displayFor > 10) {
52
+ return 'font-bold text-green-dark';
53
+ }
54
+ return 'font-bold text-red';
55
+ },
56
+ },
57
+ props: {
58
+ conferenceId: {
59
+ type: Number,
60
+ required: true,
61
+ },
62
+ },
63
+ methods: {
64
+ handleNotification(_conference) {
65
+ clearInterval(this.countdownLoopId);
66
+ window.scrollTo({ top: 0, behavior: 'smooth' });
67
+ this.visible = true;
68
+ this.displayFor = parseInt(_conference.ce_credit_config.display_for) || 30;
69
+ this.promptText = _conference.ce_credit_config.prompt_text;
70
+ this.buttonText = _conference.ce_credit_config.button_text;
71
+ this.countdownLoopId = setInterval(this.countdownLoop, 1000);
72
+ },
73
+ countdownLoop() {
74
+ if (this.displayFor > 0) {
75
+ this.displayFor--;
76
+ } else {
77
+ this.closeNotification();
78
+ }
79
+ },
80
+ acceptClick() {
81
+ this.closeNotification();
82
+ },
83
+ closeNotification() {
84
+ this.displayFor = 0;
85
+ this.visible = false;
86
+ clearInterval(this.countdownLoopId);
87
+ },
88
+ },
89
+ created() {
90
+ window.Echo.channel(`ce-notification.${this.conferenceId}`).listen('CeCreditNotification', event => {
91
+ this.handleNotification(event.conference);
92
+ });
93
+ },
94
94
  };
95
- </script>
96
-
95
+ </script>
96
+
97
97
  <style scoped>
98
98
 
99
- </style>
99
+ </style>
@@ -1,65 +1,65 @@
1
- <template>
2
- <div>
3
- <accordion :content-object="currentPresentation" v-for="item in tabArray" :tab-content="item">
4
- <div class="content flex flex-1 accordion-slot overflow-x-hidden">
5
- <overview-panel v-if="item.type == 'overview'"></overview-panel>
6
- <presenters-panel v-if="item.type == 'presenters'" layout-format="PresenterItemCard" item-width="90"></presenters-panel>
7
- <documents-panel v-if="item.type == 'documents'"></documents-panel>
8
- <sponsors-panel v-if="item.type == 'sponsors'"></sponsors-panel>
9
- <chat v-if="item.type == 'chatroom'"></chat>
10
- <dynamic-html v-if="item.type == 'html'" :template="item.content"></dynamic-html>
11
- </div>
12
- </accordion>
13
- </div>
14
- </template>
15
-
1
+ <template>
2
+ <div>
3
+ <accordion :content-object="currentPresentation" v-for="item in tabArray" :tab-content="item">
4
+ <div class="content flex flex-1 accordion-slot overflow-x-hidden">
5
+ <overview-panel v-if="item.type == 'overview'"></overview-panel>
6
+ <presenters-panel v-if="item.type == 'presenters'" layout-format="PresenterItemCard" item-width="90"></presenters-panel>
7
+ <documents-panel v-if="item.type == 'documents'"></documents-panel>
8
+ <sponsors-panel v-if="item.type == 'sponsors'"></sponsors-panel>
9
+ <chat v-if="item.type == 'chatroom'"></chat>
10
+ <dynamic-html v-if="item.type == 'html'" :template="item.content"></dynamic-html>
11
+ </div>
12
+ </accordion>
13
+ </div>
14
+ </template>
15
+
16
16
  <script>
17
- import { mapState } from "vuex";
18
-
19
- import Accordion from '@/components/common/Accordion';
20
- import OverviewPanel from "./OverviewPanel";
21
- import PresentersPanel from "./PresentersPanel";
22
- import DocumentsPanel from "./DocumentsPanel";
23
- import SponsorsPanel from "./SponsorsPanel";
24
- import Chat from "@/components/common/Chat";
25
-
26
- export default {
27
- components: {
28
- Accordion,
29
- OverviewPanel,
30
- PresentersPanel,
31
- DocumentsPanel,
32
- SponsorsPanel,
33
- Chat
34
- },
35
- data() {
36
- return {};
37
- },
38
- props: {
39
- currentPresentation: {
40
- type: Object,
41
- default: () => {
42
- return {};
43
- }
44
- },
45
- tabArray: {
46
- type: Array,
47
- default: () => {
48
- return [];
49
- }
50
- }
51
- },
52
- computed: {
53
- ...mapState("playerConfig", ["selectedContent"])
54
- },
55
- methods: {
56
- }
17
+ import { mapState } from "vuex";
18
+
19
+ import Accordion from '@/components/common/Accordion';
20
+ import OverviewPanel from "./OverviewPanel";
21
+ import PresentersPanel from "./PresentersPanel";
22
+ import DocumentsPanel from "./DocumentsPanel";
23
+ import SponsorsPanel from "./SponsorsPanel";
24
+ import Chat from "@/components/common/Chat";
25
+
26
+ export default {
27
+ components: {
28
+ Accordion,
29
+ OverviewPanel,
30
+ PresentersPanel,
31
+ DocumentsPanel,
32
+ SponsorsPanel,
33
+ Chat
34
+ },
35
+ data() {
36
+ return {};
37
+ },
38
+ props: {
39
+ currentPresentation: {
40
+ type: Object,
41
+ default: () => {
42
+ return {};
43
+ }
44
+ },
45
+ tabArray: {
46
+ type: Array,
47
+ default: () => {
48
+ return [];
49
+ }
50
+ }
51
+ },
52
+ computed: {
53
+ ...mapState("playerConfig", ["selectedContent"])
54
+ },
55
+ methods: {
56
+ }
57
57
  };
58
- </script>
59
-
60
- <style>
61
- .accordion-slot {
62
- max-height: 32rem;
63
- overflow-y: scroll;
64
- }
65
- </style>
58
+ </script>
59
+
60
+ <style>
61
+ .accordion-slot {
62
+ max-height: 32rem;
63
+ overflow-y: scroll;
64
+ }
65
+ </style>