@icvdeveloper/common-module 0.0.90 → 0.0.92

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 (93) hide show
  1. package/README.md +6 -6
  2. package/dist/module.json +1 -1
  3. package/dist/runtime/assets/svg/answer.svg +14 -14
  4. package/dist/runtime/assets/svg/avatar.svg +1 -1
  5. package/dist/runtime/assets/svg/bell-icon.svg +3 -3
  6. package/dist/runtime/assets/svg/checkmark-icon.svg +1 -1
  7. package/dist/runtime/assets/svg/close-icon.svg +1 -1
  8. package/dist/runtime/assets/svg/icon-avatar.svg +1 -1
  9. package/dist/runtime/assets/svg/icon-chevron.svg +4 -4
  10. package/dist/runtime/assets/svg/icon-circle-plus.svg +1 -1
  11. package/dist/runtime/assets/svg/icon-close.svg +1 -1
  12. package/dist/runtime/assets/svg/icon-info.svg +2 -2
  13. package/dist/runtime/assets/svg/icon-new-window.svg +11 -11
  14. package/dist/runtime/assets/svg/icon-offline.svg +3 -3
  15. package/dist/runtime/assets/svg/icon-online.svg +3 -3
  16. package/dist/runtime/assets/svg/icon-person.svg +2 -2
  17. package/dist/runtime/assets/svg/icon-play.svg +2 -2
  18. package/dist/runtime/assets/svg/icon-star-filled.svg +29 -29
  19. package/dist/runtime/assets/svg/icon-star.svg +24 -24
  20. package/dist/runtime/assets/svg/icon-video-chat.svg +14 -14
  21. package/dist/runtime/assets/svg/icon-website.svg +2 -2
  22. package/dist/runtime/assets/svg/icon-zoom.svg +10 -10
  23. package/dist/runtime/assets/svg/notification-icon.svg +32 -32
  24. package/dist/runtime/assets/svg/offline-icon.svg +1 -1
  25. package/dist/runtime/assets/svg/online-icon.svg +3 -3
  26. package/dist/runtime/assets/svg/peer2peer.svg +3 -3
  27. package/dist/runtime/assets/svg/phone.svg +1 -1
  28. package/dist/runtime/assets/svg/plus-icon.svg +1 -1
  29. package/dist/runtime/assets/svg/red-icon.svg +3 -3
  30. package/dist/runtime/assets/svg/reject.svg +14 -14
  31. package/dist/runtime/assets/svg/search-icon.svg +3 -3
  32. package/dist/runtime/components/affiliates/AffiliatePage.vue +17 -17
  33. package/dist/runtime/components/agenda/AgendaList.vue +243 -243
  34. package/dist/runtime/components/agenda/AgendaTabbed.vue +309 -309
  35. package/dist/runtime/components/agenda/components/AgendaListAccordion.vue +53 -53
  36. package/dist/runtime/components/agenda/components/Calendar.vue +89 -89
  37. package/dist/runtime/components/agenda/components/InfoLink.vue +56 -56
  38. package/dist/runtime/components/agenda/components/PlayIcon.vue +49 -49
  39. package/dist/runtime/components/agenda/components/PresentationLink.vue +137 -137
  40. package/dist/runtime/components/agenda/components/Sponsor.vue +132 -132
  41. package/dist/runtime/components/auth/LoginFullWidth.vue +78 -78
  42. package/dist/runtime/components/auth/PasswordReset.vue +60 -60
  43. package/dist/runtime/components/auth/Registration.vue +27 -27
  44. package/dist/runtime/components/auth/Ucc.vue +81 -79
  45. package/dist/runtime/components/core/Accordion.vue +97 -97
  46. package/dist/runtime/components/core/CountdownTimer.vue +357 -357
  47. package/dist/runtime/components/core/DynamicHtml.vue +1 -1
  48. package/dist/runtime/components/core/Modal.vue +111 -111
  49. package/dist/runtime/components/core/Navbar.vue +154 -154
  50. package/dist/runtime/components/core/SvgIcon.vue +151 -151
  51. package/dist/runtime/components/core/ZoomModal.vue +37 -37
  52. package/dist/runtime/components/events/EventHeader.vue +133 -133
  53. package/dist/runtime/components/events/ListEvents.vue +531 -531
  54. package/dist/runtime/components/forms/AlertBox.vue +21 -21
  55. package/dist/runtime/components/forms/ErrorField.vue +17 -17
  56. package/dist/runtime/components/forms/Message.vue +27 -27
  57. package/dist/runtime/components/forms/SearchInput.vue +38 -38
  58. package/dist/runtime/components/forms/SupportForm.vue +112 -112
  59. package/dist/runtime/components/forms/SwitchInput.vue +42 -42
  60. package/dist/runtime/components/forms/TextArea.vue +26 -26
  61. package/dist/runtime/components/forms/TextInput.vue +28 -28
  62. package/dist/runtime/components/layouts/Accordion.vue +78 -78
  63. package/dist/runtime/components/media/PlayerAndContentContainer.vue +175 -175
  64. package/dist/runtime/components/media/WebcastVideoPlayer.vue +167 -167
  65. package/dist/runtime/components/media/components/AgendaPanel.vue +43 -43
  66. package/dist/runtime/components/media/components/CeCreditNotification.vue +95 -95
  67. package/dist/runtime/components/media/components/ContentAccordion.vue +63 -63
  68. package/dist/runtime/components/media/components/ContentAccordion.vue.d.ts +1 -3
  69. package/dist/runtime/components/media/components/ContentArea.vue +158 -158
  70. package/dist/runtime/components/media/components/ContentTabs.vue +231 -229
  71. package/dist/runtime/components/media/components/DocumentsPanel.vue +31 -31
  72. package/dist/runtime/components/media/components/JsonApi.vue +31 -31
  73. package/dist/runtime/components/media/components/MediaContainer.vue +63 -63
  74. package/dist/runtime/components/media/components/OverviewPanel.vue +52 -52
  75. package/dist/runtime/components/media/components/PresentersPanel.vue +52 -52
  76. package/dist/runtime/components/media/components/SessionReporting.vue +93 -93
  77. package/dist/runtime/components/media/components/SponsorsPanel.vue +71 -71
  78. package/dist/runtime/components/media/components/WindowContent.vue +92 -92
  79. package/dist/runtime/components/media/components/WindowSlide.vue +72 -72
  80. package/dist/runtime/components/presenters/PresenterListing.vue +164 -164
  81. package/dist/runtime/components/presenters/PresenterModal.vue +223 -223
  82. package/dist/runtime/components/profile/Profile.vue +149 -149
  83. package/dist/runtime/components/profile/components/Sidebar.vue +27 -27
  84. package/dist/runtime/components/profile/components/SidebarNavItem.vue +39 -39
  85. package/dist/runtime/components/profile/tabs/Favorites.vue +21 -21
  86. package/dist/runtime/components/profile/tabs/GeneralInformation.vue +122 -122
  87. package/dist/runtime/components/profile/tabs/ProfileImage.vue +75 -75
  88. package/dist/runtime/components/support/FAQAccordion.vue +140 -140
  89. package/dist/runtime/composables/useDateFormat.mjs +1 -1
  90. package/dist/runtime/composables/useUcc.d.ts +6 -2
  91. package/dist/runtime/composables/useUcc.mjs +37 -42
  92. package/dist/runtime/store/conferences.mjs +1 -1
  93. package/package.json +1 -1
@@ -1,140 +1,140 @@
1
- <script lang="ts" setup>
2
- import { ref, toRefs, unref } from "vue";
3
- import {
4
- faqAccordionClassObj,
5
- faqAccordionCompObj,
6
- accordionClassObj,
7
- } from "../../@types/components";
8
- import { useClassBinding } from "../../composables/useClassBinding";
9
-
10
- interface Props {
11
- streamTestEnabled?: boolean;
12
- showSupport?: boolean;
13
- showForm?: boolean;
14
- liveSupportUrl?: string;
15
- questionArray?: Array<{ q: string; a: string }>;
16
- classObject?: faqAccordionClassObj;
17
- }
18
-
19
- const props = withDefaults(defineProps<Props>(), {
20
- streamTestEnabled: false,
21
- showSupport: true,
22
- showForm: true,
23
- liveSupportUrl: "",
24
- questionArray: () => [
25
- {
26
- q: "<span class='font-bold'>Q: Have you run the pre-event streaming test?</span>",
27
- a: "<p>The most important step is to visit our <a href='/stream-test'>Pre-Event Test Stream</a> using the computer or device you will use for the live web event, and connecting with the same network connection you will use for the live web event. We begin webcasting a pre-event test stream one week prior to the event.</p><p> If you can see video, and hear the audio, you will most likely be ready for the web event.</p>",
28
- },
29
- {
30
- q: "<span class='font-bold'>Q: What are the browser requirements?</span>",
31
- a: "<div><p><span class='font-bold'>Desktop:</span> Minimum browser versions of the following: </p><ul><li>Chrome 65</li><li>Edge 16</li><li>Firefox 60</li><li>Internet Explorer 11 in Windows 8.1+ only</li><li>Safari 10</li></ul><p><span class='font-bold'>Mobile:</span> Minimum browser versions of the following for Android 4.4+ and iOS 11+:</p><ul><li>Chrome 63</li><li>Safari 10</li></ul></div>",
32
- },
33
- {
34
- q: "<span class='font-bold'>Q: Why am I getting a login error?</span>",
35
- a: "<p>Verify that you are using the same email address you used to register for the event. If you just registered, wait 1-2 minutes to allow us to process your registration, then try again. If you are still unable to log in, please <span v-if='showForm'>contact us via the support form below.</span><span v-else>email<a href='mailto:support@rubiconportals.com'>support@rubiconportals.com</a>.</span></p>",
36
- },
37
- {
38
- q: "<span class='font-bold'>Q: What makes the sound or video stop, skip, cut out, or buffer?</span>",
39
- a: "<div><p>Audio and video stuttering, skipping, stopping and starting, or buffering happens for a few reasons. If you are experiencing these issues, first try refreshing your browser. You can do this a few different ways, depending on your browser and computer or device:</p><ol><li>Clicking the circle-shaped (reload) arrows in or next to the web address bar</li><li> Right-clicking over the webcast the page and choosing 'Reload' or 'Refresh'</li><li>Using the keyboard - Ctrl-R (PC) or Command-R (Mac)</li></ol><p>If refreshing your browser does not work, you may be experiencingone of the following issues:</p><p><span class='font-bold'>Slow Internet Connection:</span> You may nothave a fast enough Internet connection to reliably view the webevent video stream. Your Internet connection should have downloadspeeds of at least 5Mbps. Ideally we recommend an Internetconnection capable of at least 10Mbps.</p><p><span class='font-bold'>Network Traffic:</span> Internet trafficwithin your local network will slow down the delivery of the videostream making it difficult for you to connect and may causebuffering or stopping and starting. If you have repeated issuesconnecting, please notify your in-house IT department; if you are atyour home, contact your Internet service provider. They are oftenable to provide quick fixes for your issue.</p><p><span class='font-bold'>Slow Computer or Tablet:</span> If yourcomputer or tablet is old, it might be too slow to play the webcaststream. Or, if you have other programs open, they may be using somuch processor time and/or RAM that the player is unable to workproperly. Try closing other programs, refreshing your page (seeabove), and viewing the webcast again.</p><p><span class='font-bold'>Local Congestion:</span> Local bandwidth (onyour computer or local network) is shared between all openapplications. other computers, connected devices, mobile phones andthe player. Closing applications and disconnecting other internet ornetwork connected devices may reduce buffering.</p><p><span class='font-bold'>No Sound:</span> Visit<a href='https://youtube.com' target='_blank'>YouTube.com</a> oranother video site and make sure that you can hear those videos playsound. If you hear sound on YouTube, make sure your media playervolume control isn’t muted. If you don’t hear any sound, check theplayer volume, your system volume, and speaker volume, and ensurethat they are all turned on and turned up.</p></div>",
40
- },
41
- {
42
- q: "<span class='font-bold'>Q: Why is my video completely black (or displaying an error)?</span>",
43
- a: "<p>If your webcast does not start playing even after trying the above fixes, the stream may have gone down due to technical issues at thelocation or out on the internet between the location of the event and your computer. If this is the case, everyone else watching the streamwill be having the same issues as you. Send a message to tech supportusing the 'Support' link at the top of the player page. If you do not receive a response within a few minutes, it is likely that the stream is down for everyone and that we are working on getting it back up.</p>",
44
- },
45
- {
46
- q: "<span class='font-bold'>Q: Can I view the live stream on a mobile device?</span>",
47
- a: "<p>You can view the webcast from a mobile device, such as a cell phone, iPad, or tablet. We recommend that you be somewhere where there is fast, reliable WiFi or a strong data connection in order to avoid any interruptions. There are many versions of mobile operating systems onthe market today. We strive to make video playable on all devices, however while we try to create a universally playable stream, some older devices may not be compatible.</p><p>Also, mobile bandwidth can fluctuate extensively from location tolocation. Because this is a live streaming protocol, a consistent sustained data rate is required for the stream to play properly. Unlike video on YouTube and other services, that will progressively download the video, live video is constant, and if bandwidth fluctuates below a minimum data rate, even for a couple of seconds, the stream could be interrupted.</p>",
48
- },
49
- ],
50
- classObject: () => {
51
- return {
52
- components: ref<faqAccordionCompObj>({
53
- accordion: ref<accordionClassObj>({
54
- components: ref<accordionCompObj>({
55
- svgIcon: ref<svgIconClassObj>({}),
56
- }),
57
- }),
58
- }),
59
- };
60
- },
61
- });
62
-
63
- const { classBinding } = useClassBinding();
64
- </script>
65
-
66
- <template>
67
- <section>
68
- <CommonAccordion
69
- v-if="streamTestEnabled"
70
- :class="classBinding(classObject, 'container', '')"
71
- :class-object="classObject.components.accordion"
72
- >
73
- <template #question>
74
- <span class="font-bold"
75
- >Q: Have you run the pre-event streaming test?</span
76
- >
77
- </template>
78
- <template #answer>
79
- <p>
80
- The most important step is to visit our
81
- <a href="/stream-test">Pre-Event Test Stream</a> using the computer or
82
- device you will use for the live web event, and connecting with the
83
- same network connection you will use for the live web event. We begin
84
- webcasting a pre-event test stream one week prior to the event.
85
- </p>
86
- <p>
87
- If you can see video, hear the sound, and see the test slide, you will
88
- most likely be ready for the web event.
89
- </p>
90
- </template>
91
- </CommonAccordion>
92
- <template v-for="(question, index) in questionArray" :key="index">
93
- <CommonAccordion
94
- :class="
95
- classBinding(classObject.components?.accordion, 'container', '')
96
- "
97
- :class-object="classObject.components.accordion"
98
- >
99
- <template #question>
100
- <span v-html="question.q"></span>
101
- </template>
102
- <template #answer>
103
- <span v-html="question.a"></span>
104
- </template>
105
- </CommonAccordion>
106
- </template>
107
- <CommonAccordion
108
- v-if="showSupport"
109
- :class="classBinding(classObject.components?.accordion, 'container', '')"
110
- :class-object="classObject.components.accordion"
111
- >
112
- <template #question>
113
- <span class="font-bold">
114
- Q: Who can I contact if I still need help?
115
- </span>
116
- </template>
117
- <template #answer>
118
- <div>
119
- <div v-if="showForm">
120
- <span class="font-bold">Support Form</span><br />You can email
121
- support using the support form below.
122
- </div>
123
- <div v-else>
124
- <span class="font-bold">Support Email</span><br />You can email
125
- support at
126
- <a href="mailto:support@rubiconportals.com"
127
- >support@rubiconportals.com</a
128
- >.
129
- </div>
130
- <div v-if="liveSupportUrl">
131
- <div class="mt-4 font-bold">Live Support Chat</div>
132
- During the webcast, live support will also be available to
133
- assist.You may request live support by
134
- <a :href="liveSupportUrl" target="_blank">clicking here</a>.
135
- </div>
136
- </div>
137
- </template>
138
- </CommonAccordion>
139
- </section>
140
- </template>
1
+ <script lang="ts" setup>
2
+ import { ref, toRefs, unref } from "vue";
3
+ import {
4
+ faqAccordionClassObj,
5
+ faqAccordionCompObj,
6
+ accordionClassObj,
7
+ } from "../../@types/components";
8
+ import { useClassBinding } from "../../composables/useClassBinding";
9
+
10
+ interface Props {
11
+ streamTestEnabled?: boolean;
12
+ showSupport?: boolean;
13
+ showForm?: boolean;
14
+ liveSupportUrl?: string;
15
+ questionArray?: Array<{ q: string; a: string }>;
16
+ classObject?: faqAccordionClassObj;
17
+ }
18
+
19
+ const props = withDefaults(defineProps<Props>(), {
20
+ streamTestEnabled: false,
21
+ showSupport: true,
22
+ showForm: true,
23
+ liveSupportUrl: "",
24
+ questionArray: () => [
25
+ {
26
+ q: "<span class='font-bold'>Q: Have you run the pre-event streaming test?</span>",
27
+ a: "<p>The most important step is to visit our <a href='/stream-test'>Pre-Event Test Stream</a> using the computer or device you will use for the live web event, and connecting with the same network connection you will use for the live web event. We begin webcasting a pre-event test stream one week prior to the event.</p><p> If you can see video, and hear the audio, you will most likely be ready for the web event.</p>",
28
+ },
29
+ {
30
+ q: "<span class='font-bold'>Q: What are the browser requirements?</span>",
31
+ a: "<div><p><span class='font-bold'>Desktop:</span> Minimum browser versions of the following: </p><ul><li>Chrome 65</li><li>Edge 16</li><li>Firefox 60</li><li>Internet Explorer 11 in Windows 8.1+ only</li><li>Safari 10</li></ul><p><span class='font-bold'>Mobile:</span> Minimum browser versions of the following for Android 4.4+ and iOS 11+:</p><ul><li>Chrome 63</li><li>Safari 10</li></ul></div>",
32
+ },
33
+ {
34
+ q: "<span class='font-bold'>Q: Why am I getting a login error?</span>",
35
+ a: "<p>Verify that you are using the same email address you used to register for the event. If you just registered, wait 1-2 minutes to allow us to process your registration, then try again. If you are still unable to log in, please <span v-if='showForm'>contact us via the support form below.</span><span v-else>email<a href='mailto:support@rubiconportals.com'>support@rubiconportals.com</a>.</span></p>",
36
+ },
37
+ {
38
+ q: "<span class='font-bold'>Q: What makes the sound or video stop, skip, cut out, or buffer?</span>",
39
+ a: "<div><p>Audio and video stuttering, skipping, stopping and starting, or buffering happens for a few reasons. If you are experiencing these issues, first try refreshing your browser. You can do this a few different ways, depending on your browser and computer or device:</p><ol><li>Clicking the circle-shaped (reload) arrows in or next to the web address bar</li><li> Right-clicking over the webcast the page and choosing 'Reload' or 'Refresh'</li><li>Using the keyboard - Ctrl-R (PC) or Command-R (Mac)</li></ol><p>If refreshing your browser does not work, you may be experiencingone of the following issues:</p><p><span class='font-bold'>Slow Internet Connection:</span> You may nothave a fast enough Internet connection to reliably view the webevent video stream. Your Internet connection should have downloadspeeds of at least 5Mbps. Ideally we recommend an Internetconnection capable of at least 10Mbps.</p><p><span class='font-bold'>Network Traffic:</span> Internet trafficwithin your local network will slow down the delivery of the videostream making it difficult for you to connect and may causebuffering or stopping and starting. If you have repeated issuesconnecting, please notify your in-house IT department; if you are atyour home, contact your Internet service provider. They are oftenable to provide quick fixes for your issue.</p><p><span class='font-bold'>Slow Computer or Tablet:</span> If yourcomputer or tablet is old, it might be too slow to play the webcaststream. Or, if you have other programs open, they may be using somuch processor time and/or RAM that the player is unable to workproperly. Try closing other programs, refreshing your page (seeabove), and viewing the webcast again.</p><p><span class='font-bold'>Local Congestion:</span> Local bandwidth (onyour computer or local network) is shared between all openapplications. other computers, connected devices, mobile phones andthe player. Closing applications and disconnecting other internet ornetwork connected devices may reduce buffering.</p><p><span class='font-bold'>No Sound:</span> Visit<a href='https://youtube.com' target='_blank'>YouTube.com</a> oranother video site and make sure that you can hear those videos playsound. If you hear sound on YouTube, make sure your media playervolume control isn’t muted. If you don’t hear any sound, check theplayer volume, your system volume, and speaker volume, and ensurethat they are all turned on and turned up.</p></div>",
40
+ },
41
+ {
42
+ q: "<span class='font-bold'>Q: Why is my video completely black (or displaying an error)?</span>",
43
+ a: "<p>If your webcast does not start playing even after trying the above fixes, the stream may have gone down due to technical issues at thelocation or out on the internet between the location of the event and your computer. If this is the case, everyone else watching the streamwill be having the same issues as you. Send a message to tech supportusing the 'Support' link at the top of the player page. If you do not receive a response within a few minutes, it is likely that the stream is down for everyone and that we are working on getting it back up.</p>",
44
+ },
45
+ {
46
+ q: "<span class='font-bold'>Q: Can I view the live stream on a mobile device?</span>",
47
+ a: "<p>You can view the webcast from a mobile device, such as a cell phone, iPad, or tablet. We recommend that you be somewhere where there is fast, reliable WiFi or a strong data connection in order to avoid any interruptions. There are many versions of mobile operating systems onthe market today. We strive to make video playable on all devices, however while we try to create a universally playable stream, some older devices may not be compatible.</p><p>Also, mobile bandwidth can fluctuate extensively from location tolocation. Because this is a live streaming protocol, a consistent sustained data rate is required for the stream to play properly. Unlike video on YouTube and other services, that will progressively download the video, live video is constant, and if bandwidth fluctuates below a minimum data rate, even for a couple of seconds, the stream could be interrupted.</p>",
48
+ },
49
+ ],
50
+ classObject: () => {
51
+ return {
52
+ components: ref<faqAccordionCompObj>({
53
+ accordion: ref<accordionClassObj>({
54
+ components: ref<accordionCompObj>({
55
+ svgIcon: ref<svgIconClassObj>({}),
56
+ }),
57
+ }),
58
+ }),
59
+ };
60
+ },
61
+ });
62
+
63
+ const { classBinding } = useClassBinding();
64
+ </script>
65
+
66
+ <template>
67
+ <section>
68
+ <CommonAccordion
69
+ v-if="streamTestEnabled"
70
+ :class="classBinding(classObject, 'container', '')"
71
+ :class-object="classObject.components.accordion"
72
+ >
73
+ <template #question>
74
+ <span class="font-bold"
75
+ >Q: Have you run the pre-event streaming test?</span
76
+ >
77
+ </template>
78
+ <template #answer>
79
+ <p>
80
+ The most important step is to visit our
81
+ <a href="/stream-test">Pre-Event Test Stream</a> using the computer or
82
+ device you will use for the live web event, and connecting with the
83
+ same network connection you will use for the live web event. We begin
84
+ webcasting a pre-event test stream one week prior to the event.
85
+ </p>
86
+ <p>
87
+ If you can see video, hear the sound, and see the test slide, you will
88
+ most likely be ready for the web event.
89
+ </p>
90
+ </template>
91
+ </CommonAccordion>
92
+ <template v-for="(question, index) in questionArray" :key="index">
93
+ <CommonAccordion
94
+ :class="
95
+ classBinding(classObject.components?.accordion, 'container', '')
96
+ "
97
+ :class-object="classObject.components.accordion"
98
+ >
99
+ <template #question>
100
+ <span v-html="question.q"></span>
101
+ </template>
102
+ <template #answer>
103
+ <span v-html="question.a"></span>
104
+ </template>
105
+ </CommonAccordion>
106
+ </template>
107
+ <CommonAccordion
108
+ v-if="showSupport"
109
+ :class="classBinding(classObject.components?.accordion, 'container', '')"
110
+ :class-object="classObject.components.accordion"
111
+ >
112
+ <template #question>
113
+ <span class="font-bold">
114
+ Q: Who can I contact if I still need help?
115
+ </span>
116
+ </template>
117
+ <template #answer>
118
+ <div>
119
+ <div v-if="showForm">
120
+ <span class="font-bold">Support Form</span><br />You can email
121
+ support using the support form below.
122
+ </div>
123
+ <div v-else>
124
+ <span class="font-bold">Support Email</span><br />You can email
125
+ support at
126
+ <a href="mailto:support@rubiconportals.com"
127
+ >support@rubiconportals.com</a
128
+ >.
129
+ </div>
130
+ <div v-if="liveSupportUrl">
131
+ <div class="mt-4 font-bold">Live Support Chat</div>
132
+ During the webcast, live support will also be available to
133
+ assist.You may request live support by
134
+ <a :href="liveSupportUrl" target="_blank">clicking here</a>.
135
+ </div>
136
+ </div>
137
+ </template>
138
+ </CommonAccordion>
139
+ </section>
140
+ </template>
@@ -1,7 +1,7 @@
1
1
  import { format as formatTz } from "date-fns-tz";
2
2
  import { format, parseISO } from "date-fns";
3
3
  export const useDateFormat = () => {
4
- const formatDate = (date, dateFormat = "MMMM do, Y") => {
4
+ const formatDate = (date, dateFormat = "MMMM d, Y") => {
5
5
  return format(new Date(parseISO(date)), dateFormat);
6
6
  };
7
7
  const formatTimezoneToLocal = (date, dateFormat, timezone) => {
@@ -4,14 +4,18 @@ export type UccFunctions = {
4
4
  * load UCC script
5
5
  */
6
6
  loadUccScript: (conference: Conference, eventPathPrefix: string) => void;
7
+ /**
8
+ * redirect to webcast
9
+ */
10
+ redirectToWebcast: () => void;
7
11
  /**
8
12
  * show UCC Event Sign Up
9
13
  */
10
- uccShowEventSignUp: (conference: Conference) => void;
14
+ uccShowEventSignUp: (email?: string) => void;
11
15
  /**
12
16
  * handle V3 login response
13
17
  */
14
- handleLoginV3Response: (response: object) => void;
18
+ handleLoginV3Response: (response: object, email: string) => void;
15
19
  /**
16
20
  * V3 login by email
17
21
  */
@@ -11,15 +11,18 @@ export const useUcc = () => {
11
11
  const router = useRouter();
12
12
  const loadUccScript = (conference, eventPathPrefix) => {
13
13
  console.log("conference", conference);
14
+ let brandCode = get(conference, "custom1[0].code");
14
15
  const { getConferenceWebcastUrl } = useConferenceHelpers(conference);
15
16
  if (globalConfigValue("ucc_url")) {
16
17
  window.uccMixin = {};
17
18
  window.uccMixin.clientId = globalConfigValue("ucc_client_id");
18
19
  window.uccMixin.conference = {
19
20
  id: conference.id,
20
- state: conference.state
21
+ state: conference.state,
22
+ brandCode
21
23
  };
22
24
  window.uccMixin.webcastUrl = getConferenceWebcastUrl(conference, "/events/");
25
+ window.uccMixin.redirectToWebcast = redirectToWebcast;
23
26
  window.uccMixin.uccShowEventSignUp = uccShowEventSignUp;
24
27
  window.uccMixin.handleUCCCallback = handleUCCCallback;
25
28
  let ucc = document.createElement("script");
@@ -27,7 +30,9 @@ export const useUcc = () => {
27
30
  ucc.onload = () => {
28
31
  console.log("UCC onload");
29
32
  if (window.uccMixin.conference) {
30
- window.uccMixin.uccShowEventSignUp();
33
+ if (window.uccMixin.conference.state !== "live") {
34
+ window.uccMixin.uccShowEventSignUp();
35
+ }
31
36
  }
32
37
  mmsWidgets.init({
33
38
  clientId: window.uccMixin.clientId,
@@ -44,14 +49,12 @@ export const useUcc = () => {
44
49
  },
45
50
  onAuthStateReady: function(ssoEvent) {
46
51
  console.log("UCC auth state ready");
47
- window.uccMixin.handleUCCCallback(ssoEvent);
48
- if (window.uccMixin.conference) {
49
- window.uccMixin.uccShowEventSignUp();
50
- }
51
52
  },
52
53
  onRegistrationSuccess: function(ssoEvent) {
53
54
  console.log("UCC reg success");
54
- window.uccMixin.handleUCCCallback(ssoEvent);
55
+ if (window.uccMixin.conference.state == "live") {
56
+ window.uccMixin.redirectToWebcast();
57
+ }
55
58
  },
56
59
  onLogoutSuccess: function(ssoEvent) {
57
60
  console.log("UCC logout success");
@@ -61,53 +64,45 @@ export const useUcc = () => {
61
64
  document.head.appendChild(ucc);
62
65
  }
63
66
  };
64
- const uccShowEventSignUp = () => {
67
+ const redirectToWebcast = () => {
68
+ router.push(window.uccMixin.webcastUrl);
69
+ };
70
+ const uccShowEventSignUp = (email) => {
65
71
  let _conference = window.uccMixin.conference;
72
+ let eventId = _conference.id;
73
+ let productCode = _conference.brandCode;
74
+ let emailStr = email ? email : "";
66
75
  console.log("uccShowEventSignUp _conference", _conference);
67
76
  console.log("user", user);
68
77
  console.log("isLoggedIn", isLoggedIn);
69
- if (_conference.state !== "live") {
70
- document.getElementById("uccTarget").innerHTML = "";
71
- return new Promise((resolve, reject) => {
72
- const request = useApi();
73
- request(
74
- `conferences/${_conference.id}?with=custom1`
75
- ).then((response) => {
76
- let brandCode = get(response.data, "custom1[0].code");
77
- if (brandCode) {
78
- let mmsResponse = window.mmsWidgets.showEventsSignUp(
79
- "#uccTarget",
80
- `${_conference.id}`,
81
- null,
82
- { productCode: `${brandCode}` }
83
- );
84
- } else {
85
- throw new Error("Missing required parameter");
86
- }
87
- resolve(brandCode);
88
- }).catch((error) => {
89
- document.getElementById("uccTarget").innerHTML = `<div class='border font-bold px-4 py-3 mb-4 rounded relative message-base bg-red-100 border-red-400 text-red-600'>${error}</div>`;
90
- reject(error);
91
- });
92
- });
78
+ document.getElementById("uccTarget").innerHTML = "";
79
+ if (_conference.brandCode) {
80
+ let mmsResponse = window.mmsWidgets.showEventsSignUp(
81
+ "#uccTarget",
82
+ `${eventId}`,
83
+ null,
84
+ {
85
+ productCode: `${productCode}`,
86
+ email: `${emailStr}`
87
+ }
88
+ );
89
+ } else {
90
+ document.getElementById("uccTarget").innerHTML = `<div class='border font-bold px-4 py-3 mb-4 rounded relative message-base bg-red-100 border-red-400 text-red-600'>Missing required productCode.</div>`;
93
91
  }
94
92
  };
95
- const handleLoginV3Response = (response) => {
93
+ const handleLoginV3Response = (response, email) => {
96
94
  console.log("handleLoginV3Response", response);
97
95
  let conferences = get(response, "data.conferences", []);
98
96
  let _conference = window.uccMixin.conference;
99
97
  let hasAccess = find(conferences, { id: _conference.id });
100
98
  console.log("hasAccess", hasAccess);
101
99
  if (hasAccess) {
102
- router.push(window.uccMixin.webcastUrl);
100
+ console.log("isLoggedIn", isLoggedIn);
101
+ redirectToWebcast();
103
102
  } else {
104
- console.log("showing reg?");
105
103
  toggleEmailFormDisplay(false);
106
- window.mmsWidgets.showReg(
107
- "#uccTarget",
108
- `${_conference.id}`,
109
- null
110
- );
104
+ console.log("showing reg?");
105
+ uccShowEventSignUp(email);
111
106
  }
112
107
  };
113
108
  const loginV3 = (options) => {
@@ -117,7 +112,7 @@ export const useUcc = () => {
117
112
  request(
118
113
  `users/email/${options.email}?with=conferences`
119
114
  ).then((response) => {
120
- handleLoginV3Response(response);
115
+ handleLoginV3Response(response, options.email);
121
116
  }).catch((error) => {
122
117
  });
123
118
  });
@@ -125,7 +120,6 @@ export const useUcc = () => {
125
120
  const handleUCCCallback = (ssoEvent) => {
126
121
  console.log("ssoEvent", ssoEvent);
127
122
  if (!ssoEvent.profile) {
128
- return;
129
123
  }
130
124
  var options = {
131
125
  email: ssoEvent.profile.email,
@@ -144,6 +138,7 @@ export const useUcc = () => {
144
138
  };
145
139
  return {
146
140
  loadUccScript,
141
+ redirectToWebcast,
147
142
  uccShowEventSignUp,
148
143
  handleLoginV3Response,
149
144
  loginV3,
@@ -4,7 +4,7 @@ import { useApi } from "../composables/useApi.mjs";
4
4
  import { ConferenceState } from "../models/conference.mjs";
5
5
  import { useTemplateConfigsStore } from "./templateConfigs.mjs";
6
6
  const conferenceDetailsQueryString = () => {
7
- return "affiliates.documents,presenters,days.sponsors,days.tracks.sponsors,days.tracks.presentations.presenters,days.tracks.presentations.sponsors,days.tracks.presentations.documents,days.track_groups.tracks.sponsors,days.track_groups.tracks.presentations.presenters,days.track_groups.tracks.presentations.sponsors,days.track_groups.tracks.presentations.documents,days.groups,days.tracks.groups,groups,template_config";
7
+ return "affiliates.documents,presenters,days.sponsors,days.tracks.sponsors,days.tracks.presentations.presenters,days.tracks.presentations.sponsors,days.tracks.presentations.documents,days.track_groups.tracks.sponsors,days.track_groups.tracks.presentations.presenters,days.track_groups.tracks.presentations.sponsors,days.track_groups.tracks.presentations.documents,days.groups,days.tracks.groups,groups,template_config,custom1";
8
8
  };
9
9
  export const useConferencesStore = defineStore("conferences", {
10
10
  state: () => ({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@icvdeveloper/common-module",
3
- "version": "0.0.90",
3
+ "version": "0.0.92",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "exports": {