@icvdeveloper/common-module 1.4.14 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/module.d.mts +1051 -2
  3. package/dist/module.d.ts +1051 -2
  4. package/dist/module.json +1 -1
  5. package/dist/module.mjs +29 -15
  6. package/dist/runtime/@types/components.d.ts +22 -0
  7. package/dist/runtime/@types/configVariables.d.ts +6 -0
  8. package/dist/runtime/analytics.d.ts +1 -6
  9. package/dist/runtime/assets/scss/_agenda.css +1 -0
  10. package/dist/runtime/assets/scss/_animations.css +1 -0
  11. package/dist/runtime/assets/scss/_container_variants.css +1 -0
  12. package/dist/runtime/assets/scss/_custom.css +3 -0
  13. package/dist/runtime/assets/scss/_forms.css +1 -0
  14. package/dist/runtime/assets/scss/_header.css +0 -0
  15. package/dist/runtime/assets/scss/_index_production.css +1 -0
  16. package/dist/runtime/assets/scss/_transitions.css +1 -0
  17. package/dist/runtime/assets/scss/_variables.css +1 -0
  18. package/dist/runtime/assets/scss/_variables2.css +0 -0
  19. package/dist/runtime/assets/scss/_webcast.css +1 -0
  20. package/dist/runtime/assets/scss/index.css +1 -705
  21. package/dist/runtime/assets/svg/icon-minus.svg +6 -0
  22. package/dist/runtime/assets/svg/icon-video.svg +6 -0
  23. package/dist/runtime/components/affiliates/AffiliateModal.vue +66 -0
  24. package/dist/runtime/components/affiliates/AffiliatePage.vue +329 -159
  25. package/dist/runtime/components/agenda/AgendaList.vue +18 -14
  26. package/dist/runtime/components/agenda/AgendaTabbed.vue +60 -54
  27. package/dist/runtime/components/agenda/components/AgendaListAccordion.vue +8 -3
  28. package/dist/runtime/components/agenda/components/Calendar.vue +23 -18
  29. package/dist/runtime/components/agenda/components/Favorite.vue +46 -0
  30. package/dist/runtime/components/agenda/components/InfoLink.vue +15 -5
  31. package/dist/runtime/components/agenda/components/PlayIcon.vue +3 -5
  32. package/dist/runtime/components/agenda/components/PresentationLink.vue +37 -19
  33. package/dist/runtime/components/agenda/components/Sponsor.vue +31 -24
  34. package/dist/runtime/components/auth/PasswordReset.vue +20 -5
  35. package/dist/runtime/components/auth/Registration.vue +14 -4
  36. package/dist/runtime/components/auth/Ucc.vue +44 -27
  37. package/dist/runtime/components/chat/ChatConversationList.vue +108 -0
  38. package/dist/runtime/components/chat/ChatCreateConversation.vue +199 -0
  39. package/dist/runtime/components/chat/ChatCreateGroupConversation.vue +154 -0
  40. package/dist/runtime/components/chat/ChatHeader.vue +97 -0
  41. package/dist/runtime/components/chat/ChatMessage.vue +40 -0
  42. package/dist/runtime/components/chat/ChatShowConversation.vue +76 -0
  43. package/dist/runtime/components/chat/ChatWidget.vue +40 -0
  44. package/dist/runtime/components/chat/ChatWindow.vue +154 -0
  45. package/dist/runtime/components/chat/ChatWindow.vue.d.ts +6 -0
  46. package/dist/runtime/components/chat/MessageInput.vue +27 -0
  47. package/dist/runtime/components/chat/SearchInput.vue +32 -0
  48. package/dist/runtime/components/core/Accordion.vue +12 -12
  49. package/dist/runtime/components/core/AttendeeList.vue +31 -36
  50. package/dist/runtime/components/core/CountdownTimer.vue +68 -52
  51. package/dist/runtime/components/core/DynamicHtml.vue.d.ts +6 -9
  52. package/dist/runtime/components/core/Modal.vue +24 -22
  53. package/dist/runtime/components/core/ModalButton.vue +43 -0
  54. package/dist/runtime/components/core/Navbar.vue +33 -21
  55. package/dist/runtime/components/core/Navigation.vue +286 -0
  56. package/dist/runtime/components/core/SvgIcon.vue +34 -1
  57. package/dist/runtime/components/core/VButton.vue +35 -0
  58. package/dist/runtime/components/core/ZoomModal.vue +9 -3
  59. package/dist/runtime/components/events/EventHeader.vue +14 -4
  60. package/dist/runtime/components/events/ListEvents.vue +21 -22
  61. package/dist/runtime/components/forms/CheckboxGroup.vue +46 -0
  62. package/dist/runtime/components/forms/ErrorField.vue +11 -2
  63. package/dist/runtime/components/forms/Message.vue +1 -1
  64. package/dist/runtime/components/forms/RadioGroup.vue +50 -0
  65. package/dist/runtime/components/forms/SearchInput.vue +8 -2
  66. package/dist/runtime/components/forms/SelectDropDown.vue +47 -0
  67. package/dist/runtime/components/forms/SupportForm.vue +22 -11
  68. package/dist/runtime/components/forms/SwitchInput.vue +50 -30
  69. package/dist/runtime/components/forms/TextArea.vue +1 -1
  70. package/dist/runtime/components/forms/TextInput.vue +1 -1
  71. package/dist/runtime/components/layouts/Accordion.vue +11 -6
  72. package/dist/runtime/components/media/ArchivePlayerAndContentContainer.vue +24 -5
  73. package/dist/runtime/components/media/ArchiveVideoPlayer.vue +19 -23
  74. package/dist/runtime/components/media/PlayerAndContentContainer.vue +4 -1
  75. package/dist/runtime/components/media/WebcastVideoPlayer.vue +6 -18
  76. package/dist/runtime/components/media/components/AgendaPanel.vue +7 -6
  77. package/dist/runtime/components/media/components/ArchiveMediaContainer.vue +17 -15
  78. package/dist/runtime/components/media/components/CeCreditNotification.vue +8 -8
  79. package/dist/runtime/components/media/components/ContentArea.vue +59 -18
  80. package/dist/runtime/components/media/components/ContentTabs.vue +40 -28
  81. package/dist/runtime/components/media/components/DocumentsPanel.vue +19 -17
  82. package/dist/runtime/components/media/components/MediaContainer.vue +11 -13
  83. package/dist/runtime/components/media/components/OverviewPanel.vue +5 -2
  84. package/dist/runtime/components/media/components/PresentersPanel.vue +74 -55
  85. package/dist/runtime/components/media/components/SessionReporting.vue +5 -4
  86. package/dist/runtime/components/media/components/SponsorsPanel.vue +13 -12
  87. package/dist/runtime/components/presenters/PresenterListing.vue +33 -25
  88. package/dist/runtime/components/presenters/PresenterModal.vue +26 -21
  89. package/dist/runtime/components/presenters/Presenters.vue +139 -0
  90. package/dist/runtime/components/profile/Profile.vue +10 -6
  91. package/dist/runtime/components/profile/components/Sidebar.vue +1 -1
  92. package/dist/runtime/components/profile/components/SidebarNavItem.vue +2 -4
  93. package/dist/runtime/components/profile/tabs/Favorites.vue +5 -4
  94. package/dist/runtime/components/profile/tabs/GeneralInformation.vue +26 -16
  95. package/dist/runtime/components/profile/tabs/ProfileImage.vue +7 -6
  96. package/dist/runtime/components/registration/AlreadyRegisteredModal.vue +102 -0
  97. package/dist/runtime/components/registration/PaymentForm.vue +136 -0
  98. package/dist/runtime/components/registration/RegistrationForm.vue +417 -0
  99. package/dist/runtime/components/registration/RegistrationGroupSelect.vue +146 -0
  100. package/dist/runtime/components/registration/StripePaymentForm.vue +121 -0
  101. package/dist/runtime/components/support/FAQAccordion.vue +8 -7
  102. package/dist/runtime/composables/useAdobeLaunch.d.ts +2 -7
  103. package/dist/runtime/composables/useAdobeLaunch.mjs +2 -2
  104. package/dist/runtime/composables/useAgenda.d.ts +13 -1
  105. package/dist/runtime/composables/useAgenda.mjs +125 -25
  106. package/dist/runtime/composables/useApi.d.ts +1 -1
  107. package/dist/runtime/composables/useAuth.d.ts +1 -1
  108. package/dist/runtime/composables/useAuth.mjs +1 -1
  109. package/dist/runtime/composables/useClassBinding.d.ts +3 -1
  110. package/dist/runtime/composables/useConferenceHelpers.d.ts +7 -3
  111. package/dist/runtime/composables/useConferenceHelpers.mjs +26 -15
  112. package/dist/runtime/composables/useEventHooks.d.ts +29 -0
  113. package/dist/runtime/composables/useEventHooks.mjs +21 -0
  114. package/dist/runtime/composables/useEvents.d.ts +17 -1
  115. package/dist/runtime/composables/useEvents.mjs +35 -9
  116. package/dist/runtime/composables/useLogin.mjs +9 -5
  117. package/dist/runtime/composables/useNavigation.d.ts +1 -1
  118. package/dist/runtime/composables/useNavigation.mjs +4 -2
  119. package/dist/runtime/composables/usePresentation.d.ts +2 -2
  120. package/dist/runtime/composables/usePresentation.mjs +8 -7
  121. package/dist/runtime/composables/usePresenter.d.ts +2 -2
  122. package/dist/runtime/composables/usePresenters.d.ts +2 -2
  123. package/dist/runtime/composables/usePusher.d.ts +4 -0
  124. package/dist/runtime/composables/usePusher.mjs +38 -26
  125. package/dist/runtime/composables/useScripts.mjs +1 -1
  126. package/dist/runtime/composables/useStream.d.ts +2 -3
  127. package/dist/runtime/composables/useStream.mjs +8 -2
  128. package/dist/runtime/composables/useUcc.d.ts +1 -1
  129. package/dist/runtime/composables/useUcc.mjs +29 -23
  130. package/dist/runtime/enums/general.d.ts +4 -1
  131. package/dist/runtime/enums/general.mjs +4 -1
  132. package/dist/runtime/models/adobeLaunch.d.ts +6 -0
  133. package/dist/runtime/models/adobeLaunch.mjs +0 -0
  134. package/dist/runtime/models/analytics.d.ts +6 -0
  135. package/dist/runtime/models/analytics.mjs +0 -0
  136. package/dist/runtime/models/attendeeList.d.ts +1 -1
  137. package/dist/runtime/models/conference.d.ts +122 -91
  138. package/dist/runtime/models/conversation.d.ts +11 -13
  139. package/dist/runtime/models/document.d.ts +5 -5
  140. package/dist/runtime/models/globalConfig.d.ts +9 -3
  141. package/dist/runtime/models/group.d.ts +38 -8
  142. package/dist/runtime/models/icons.d.ts +8 -1
  143. package/dist/runtime/models/index.d.ts +20 -0
  144. package/dist/runtime/models/index.mjs +20 -0
  145. package/dist/runtime/models/link.d.ts +4 -4
  146. package/dist/runtime/models/loginParams.d.ts +5 -0
  147. package/dist/runtime/models/loginParams.mjs +0 -0
  148. package/dist/runtime/models/navigationConfig.d.ts +7 -7
  149. package/dist/runtime/models/pagination.d.ts +11 -11
  150. package/dist/runtime/models/portal.d.ts +15 -10
  151. package/dist/runtime/models/templateConfig.d.ts +13 -7
  152. package/dist/runtime/models/ucc.d.ts +22 -0
  153. package/dist/runtime/models/ucc.mjs +0 -0
  154. package/dist/runtime/models/user.d.ts +25 -12
  155. package/dist/runtime/models/vButton.d.ts +7 -0
  156. package/dist/runtime/models/vButton.mjs +0 -0
  157. package/dist/runtime/models/video.d.ts +5 -4
  158. package/dist/runtime/models/virtualPagesConfig.d.ts +223 -0
  159. package/dist/runtime/models/virtualPagesConfig.mjs +0 -0
  160. package/dist/runtime/plugin.mjs +18 -9
  161. package/dist/runtime/store/affiliates.d.ts +4 -1
  162. package/dist/runtime/store/affiliates.mjs +38 -0
  163. package/dist/runtime/store/attendeeList.d.ts +1 -1
  164. package/dist/runtime/store/auth.d.ts +3 -7
  165. package/dist/runtime/store/auth.mjs +6 -0
  166. package/dist/runtime/store/conferences.d.ts +3 -1
  167. package/dist/runtime/store/conferences.mjs +14 -9
  168. package/dist/runtime/store/conversations.d.ts +78 -10
  169. package/dist/runtime/store/conversations.mjs +255 -22
  170. package/dist/runtime/store/modalPlayerConfig.d.ts +27 -0
  171. package/dist/runtime/store/modalPlayerConfig.mjs +58 -0
  172. package/dist/runtime/store/navigationConfig.d.ts +1 -1
  173. package/dist/runtime/store/presentations.d.ts +2 -2
  174. package/dist/runtime/store/templateConfigs.d.ts +7 -6
  175. package/dist/runtime/store/templateConfigs.mjs +7 -6
  176. package/dist/runtime/store/user.mjs +0 -1
  177. package/dist/runtime/v3plusCommonPlugin.d.ts +1 -1
  178. package/dist/types.d.mts +3 -2
  179. package/dist/types.d.ts +3 -2
  180. package/package.json +12 -9
  181. package/dist/runtime/components/media/components/JsonApi.vue +0 -33
  182. package/dist/runtime/components/media/components/JsonApi.vue.d.ts +0 -16
  183. package/dist/runtime/components/media/components/PresentersPanel.vue.d.ts +0 -32
  184. package/dist/runtime/components/media/components/WindowContent.vue +0 -118
  185. package/dist/runtime/components/media/components/WindowContent.vue.d.ts +0 -50
  186. package/dist/runtime/components/media/components/WindowSlide.vue +0 -92
  187. package/dist/runtime/components/media/components/WindowSlide.vue.d.ts +0 -36
  188. package/dist/runtime/models/authUser.d.ts +0 -16
  189. /package/dist/runtime/{models/authUser.mjs → assets/scss/_footer.css} +0 -0
@@ -0,0 +1,154 @@
1
+ <script>
2
+ export var MenuOptions = /* @__PURE__ */ ((MenuOptions2) => {
3
+ MenuOptions2["LIST"] = "ChatConversationlist";
4
+ MenuOptions2["CREATE"] = "CreateConversation";
5
+ MenuOptions2["CREATEGROUP"] = "CreateGroupConversation";
6
+ MenuOptions2["SHOW"] = "ShowConversation";
7
+ return MenuOptions2;
8
+ })(MenuOptions || {});
9
+ </script>
10
+
11
+ <script lang="ts" setup>
12
+ import { computed, ref, watch } from 'vue';
13
+ import { storeToRefs } from 'pinia';
14
+ import {
15
+ clearConversationEventHook,
16
+ createConversationEventHook,
17
+ setSelectedConversationEventHook
18
+ } from '../../composables/useEventHooks';
19
+ import { useConversationStore } from '#imports';
20
+ import type { Conversation } from "../../models/conversation";
21
+ import type { User } from "../../models/user";
22
+
23
+ type Menus = {
24
+ [key: string]: {
25
+ conversation?: Conversation;
26
+ header: {
27
+ showCloseButton: boolean;
28
+ showPlusIcon: boolean;
29
+ title: string;
30
+ onAdd: Function;
31
+ onClose: Function;
32
+ }
33
+ }
34
+ }
35
+
36
+ const conversationStore = useConversationStore();
37
+
38
+ const { chatOpen, selectedConversation } = storeToRefs(conversationStore);
39
+
40
+ // data
41
+ const selectedMenu = ref<MenuOptions>(MenuOptions.LIST);
42
+
43
+ const menus: Menus = {
44
+ ChatConversationList: {
45
+ header: {
46
+ showCloseButton: false,
47
+ showPlusIcon: true,
48
+ title: "",
49
+ onAdd: () => {
50
+ selectedMenu.value = MenuOptions.LIST;
51
+ },
52
+ onClose: () => {},
53
+ },
54
+ },
55
+ CreateConversation: {
56
+ header: {
57
+ showCloseButton: true,
58
+ showPlusIcon: false,
59
+ title: "",
60
+ onAdd: () => {},
61
+ onClose: () => {
62
+ selectedMenu.value = MenuOptions.CREATE;
63
+ },
64
+ },
65
+ },
66
+ CreateGroupConversation: {
67
+ header: {
68
+ showCloseButton: true,
69
+ showPlusIcon: false,
70
+ title: "",
71
+ onAdd: () => {},
72
+ onClose: () => {
73
+ selectedMenu.value = MenuOptions.CREATEGROUP;
74
+ },
75
+ },
76
+ },
77
+ ShowConversation: {
78
+ conversation: {},
79
+ header: {
80
+ showCloseButton: true,
81
+ showPlusIcon: false,
82
+ title: "",
83
+ onAdd: () => {},
84
+ onClose: () => {
85
+ clearConversationEventHook.trigger(selectedConversation.value);
86
+ selectedMenu.value = MenuOptions.SHOW;
87
+ },
88
+ },
89
+ },
90
+ };
91
+
92
+ // computed
93
+ const currentMenuConfig = computed(() => {
94
+ return menus[selectedMenu.value];
95
+ });
96
+
97
+ // methods
98
+ const createConversation = (selected: User[]): void => {
99
+ createConversationEventHook.trigger(selected);
100
+ selectedMenu.value = MenuOptions.LIST;
101
+ };
102
+
103
+ const setSelectedConversation = (conversation: Conversation) => {
104
+ setSelectedConversationEventHook.trigger(conversation);
105
+ selectedMenu.value = MenuOptions.SHOW;
106
+ };
107
+
108
+ const setSelectedMenu = (_menu: MenuOptions) => {
109
+ selectedMenu.value = _menu;
110
+ };
111
+
112
+ // watchers
113
+ watch(selectedConversation, (_newConversation, _oldConversation) => {
114
+ selectedConversation.value = _newConversation;
115
+ if (Object.keys(_newConversation as Conversation).length > 0) {
116
+ if (selectedMenu.value !== MenuOptions.SHOW) {
117
+ selectedMenu.value = MenuOptions.SHOW;
118
+ }
119
+ }
120
+ });
121
+ </script>
122
+
123
+
124
+ <template>
125
+ <div
126
+ :class="[{ opened: chatOpen, closed: !chatOpen }, 'chat-window']"
127
+ >
128
+ <CommonChatHeader
129
+ @item-selected="setSelectedMenu"
130
+ />
131
+
132
+ <CommonChatConversationList
133
+ v-if="selectedMenu === MenuOptions.LIST"
134
+ />
135
+
136
+ <CommonChatCreateConversation
137
+ v-if="selectedMenu === MenuOptions.CREATE"
138
+ @on-create="createConversation"
139
+ />
140
+
141
+ <CommonChatCreateGroupConversation
142
+ v-if="selectedMenu === MenuOptions.CREATEGROUP"
143
+ @on-create="createConversation"
144
+ />
145
+
146
+ <CommonChatShowConversation
147
+ v-if="selectedMenu === MenuOptions.SHOW"
148
+ />
149
+ </div>
150
+ </template>
151
+
152
+ <style scoped>
153
+ .chat-window{animation:fadeIn;animation-duration:.3s;animation-timing-function:ease-in-out;background:#fff;border-radius:10px;bottom:100px;box-shadow:0 7px 40px 2px hsla(210,1%,58%,.1);box-sizing:border-box;display:flex;flex-direction:column;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;height:calc(100% - 120px);justify-content:space-between;max-height:590px;position:fixed;right:25px;width:370px;z-index:999}.chat-window.closed{bottom:90px;display:none;opacity:0}@keyframes fadeIn{0%{display:none;opacity:0}to{display:flex;opacity:1}}@media (max-width:450px){.chat-window{border-radius:0;bottom:0;height:100%;max-height:100%;right:0;transition:.1s ease-in-out;width:100%}.chat-window.closed{bottom:0}}
154
+ </style>
@@ -0,0 +1,6 @@
1
+ export declare enum MenuOptions {
2
+ LIST = "ChatConversationlist",
3
+ CREATE = "CreateConversation",
4
+ CREATEGROUP = "CreateGroupConversation",
5
+ SHOW = "ShowConversation"
6
+ }
@@ -0,0 +1,27 @@
1
+ <script lang="ts" setup>
2
+ import { ref } from 'vue';
3
+ const message = ref<string>('');
4
+
5
+ // emits
6
+ const emit = defineEmits<{
7
+ (event: 'sendMessage', value: string): void
8
+ }>();
9
+ </script>
10
+
11
+ <template>
12
+ <form @submit.prevent="[emit('sendMessage', message), message = '']">
13
+ <div class="flex overflow-hidden">
14
+ <input
15
+ v-model="message"
16
+ type="text"
17
+ class="message w-full px-4 py-4 border-l-0 border-b-0 border-r-0"
18
+ style="border-top-width: 1px; border-color: rgba(0,0,0,0.15)"
19
+ placeholder="Type a message..."
20
+ >
21
+ </div>
22
+ </form>
23
+ </template>
24
+
25
+ <style scoped>
26
+ .message{border-bottom-left-radius:9px;border-bottom-right-radius:9px}
27
+ </style>
@@ -0,0 +1,32 @@
1
+ <script lang="ts" setup>
2
+ import { ref } from 'vue';
3
+ const searchValue = ref<string>('');
4
+
5
+ // emits
6
+ const emit = defineEmits<{
7
+ (event: 'clear'): void;
8
+ (event: 'onChange', value: string): void
9
+ }>();
10
+
11
+ // methods
12
+ const clear = (): void => {
13
+ emit('clear');
14
+ };
15
+ </script>
16
+ <template>
17
+ <div class="relative">
18
+ <input
19
+ v-model="searchValue"
20
+ type="text"
21
+ class="w-full pl-2 pr-5 py-3"
22
+ placeholder="Search..."
23
+ @input="emit('onChange', searchValue)"
24
+ >
25
+ <span
26
+ class="pin-r absolute mt-3 mr-5 cursor-pointer"
27
+ @click="clear"
28
+ >
29
+ <CommonSvgIcon icon="close" />
30
+ </span>
31
+ </div>
32
+ </template>
@@ -77,14 +77,17 @@ const toggle = () => {
77
77
  </button>
78
78
  </div>
79
79
 
80
- <transition name="slide" mode="out-in">
80
+ <transition
81
+ name="slide"
82
+ mode="out-in"
83
+ >
81
84
  <div
82
85
  v-show="expanded"
83
86
  :class="
84
87
  classBinding(
85
88
  classObject,
86
89
  'dropdownContainer',
87
- 'rounded px-4 pt-3 pb-1 bg-grey-lighter'
90
+ 'rounded px-4 pt-3 pb-1 bg-gray-200'
88
91
  )
89
92
  "
90
93
  >
@@ -94,13 +97,12 @@ const toggle = () => {
94
97
  </div>
95
98
  </template>
96
99
 
97
- <style scoped>
100
+ <style lang="postcss" scoped>
98
101
  .slide-enter-active,
99
102
  .slide-leave-active {
100
103
  overflow: hidden;
101
104
  transition: all 0.4s ease;
102
105
  }
103
-
104
106
  .slide-enter,
105
107
  .slide-leave-to {
106
108
  transform-origin: top;
@@ -108,18 +110,16 @@ const toggle = () => {
108
110
  opacity: 0;
109
111
  height: -10px;
110
112
  }
111
-
112
113
  .chevron {
113
114
  transition: 0.3s all cubic-bezier(1, 0.25, 0.25, 0.8);
114
115
  will-change: transform;
116
+ &.down {
117
+ transform: rotate(180deg);
118
+ }
119
+ &.normal {
120
+ transform: rotate(0deg);
121
+ }
115
122
  }
116
- .chevron.down {
117
- transform: rotate(180deg);
118
- }
119
- .chevron.normal {
120
- transform: rotate(0deg);
121
- }
122
-
123
123
  .outline-none {
124
124
  outline: none;
125
125
  }
@@ -1,11 +1,11 @@
1
1
  <script lang="ts" setup>
2
- import { ref, onBeforeUnmount } from "vue";
2
+ import { ref, toRefs, onBeforeUnmount, watch } from "vue";
3
3
  import { storeToRefs } from "pinia";
4
4
  import { debounce } from "lodash-es";
5
- import { VueEternalLoading, LoadAction } from "@ts-pro/vue-eternal-loading";
6
- import type { User } from "../../models/user";
5
+ import { VueEternalLoading } from "@ts-pro/vue-eternal-loading";
7
6
  import { PAGE_LENGTH } from "../../models/pagination";
8
7
  import { useAttendeeListStore } from "../../store/attendeeList";
8
+ import { useAuthStore } from "../../store/auth";
9
9
  import { useConversationStore } from "../../store/conversations";
10
10
  import { useUserStore } from "../../store/user";
11
11
  import { usePusher } from "../../composables/usePusher";
@@ -14,6 +14,8 @@ import type {
14
14
  AttendeeListClassObj,
15
15
  AttendeeListCompObj,
16
16
  } from "../../@types/components";
17
+ import type { LoadAction } from "@ts-pro/vue-eternal-loading";
18
+ import type { User } from "../../models/user";
17
19
 
18
20
  type Props = {
19
21
  classObject?: AttendeeListClassObj;
@@ -63,6 +65,7 @@ const filterUsers = debounce(async () => {
63
65
  }, 500);
64
66
 
65
67
  const load = async ({ loaded }: LoadAction): Promise<void> => {
68
+ console.log('loading more!!!!');
66
69
  currentPage.value += 1;
67
70
  const existingList: User[] = loadedUsersRef.value;
68
71
  const loadedItems = await getAttendeeList({
@@ -95,12 +98,12 @@ const resetAll = async () => {
95
98
  };
96
99
 
97
100
  const createChatConversation = async (user: User) => {
98
- const users: User[] = [];
101
+ const users: User[] = [] as User[];
99
102
  users.push(user);
100
103
 
101
104
  await createConversation(users);
102
105
 
103
- if (!chatOpen) {
106
+ if (!chatOpen.value) {
104
107
  toggleChat();
105
108
  }
106
109
  };
@@ -152,7 +155,7 @@ watch(isLoggedIn, () => {
152
155
  "
153
156
  placeholder="Search..."
154
157
  @input="filterUsers"
155
- />
158
+ >
156
159
  <span
157
160
  :class="
158
161
  classBinding(classObject, 'closeContainer', 'ml-2 cursor-pointer')
@@ -162,7 +165,7 @@ watch(isLoggedIn, () => {
162
165
  <CommonSvgIcon
163
166
  icon="close"
164
167
  class="fill-current text-black flex items-center justify-center"
165
- ></CommonSvgIcon>
168
+ />
166
169
  </span>
167
170
  </div>
168
171
  </div>
@@ -212,9 +215,9 @@ watch(isLoggedIn, () => {
212
215
  'w-full max-w-100 aspect-square'
213
216
  )
214
217
  "
215
- :src="user.profile_image"
218
+ :src="user.profile_image as string"
216
219
  alt=""
217
- />
220
+ >
218
221
  </div>
219
222
 
220
223
  <div :class="classBinding(classObject, 'attendeeContentInner', '')">
@@ -230,13 +233,15 @@ watch(isLoggedIn, () => {
230
233
  <span
231
234
  v-if="user.name"
232
235
  :class="classBinding(classObject, 'attendeeNameEmail', 'pl-2')"
233
- >{{ user.name }}</span
234
236
  >
237
+ {{ user.name }}
238
+ </span>
235
239
  <span
236
240
  v-else
237
241
  :class="classBinding(classObject, 'attendeeNameEmail', 'pl-2')"
238
- >{{ user.email }}</span
239
242
  >
243
+ {{ user.email }}
244
+ </span>
240
245
  <span
241
246
  v-if="isLoggedIn"
242
247
  :class="
@@ -244,16 +249,17 @@ watch(isLoggedIn, () => {
244
249
  "
245
250
  >
246
251
  <CommonSvgIcon
247
- :icon="[user.online ? 'online' : 'offline']"
252
+ :icon="user.online ? 'online' : 'offline'"
248
253
  width="0"
249
254
  class="w-4 my-0 mr-1 inline-block"
250
- ></CommonSvgIcon>
255
+ />
251
256
  <span
252
257
  :class="
253
258
  classBinding(classObject, 'statusText', 'inline-block')
254
259
  "
255
- >{{ user.online ? "online" : "offline" }}</span
256
260
  >
261
+ {{ user.online ? "online" : "offline" }}
262
+ </span>
257
263
  </span>
258
264
  </p>
259
265
 
@@ -290,7 +296,7 @@ watch(isLoggedIn, () => {
290
296
  :class="classBinding(classObject, 'socialLink', 'mr-2')"
291
297
  :aria-label="user.name + ` Twitter Page`"
292
298
  >
293
- <span><CommonSvgIcon icon="twitter"></CommonSvgIcon></span>
299
+ <span><CommonSvgIcon icon="twitter" /></span>
294
300
  </a>
295
301
 
296
302
  <a
@@ -300,7 +306,7 @@ watch(isLoggedIn, () => {
300
306
  :class="classBinding(classObject, 'socialLink', 'mr-2')"
301
307
  :aria-label="user.name + ` LinkedIn Page`"
302
308
  >
303
- <span><CommonSvgIcon icon="linkedin"></CommonSvgIcon></span>
309
+ <span><CommonSvgIcon icon="linkedin" /></span>
304
310
  </a>
305
311
  </span>
306
312
  </div>
@@ -340,9 +346,9 @@ watch(isLoggedIn, () => {
340
346
  <button
341
347
  v-if="
342
348
  isLoggedIn &&
343
- user.id !== currentUser.id &&
344
- user.online &&
345
- user.video_chat
349
+ user.id !== currentUser.id &&
350
+ user.online &&
351
+ user.video_chat
346
352
  "
347
353
  :class="
348
354
  classBinding(
@@ -361,26 +367,15 @@ watch(isLoggedIn, () => {
361
367
  <VueEternalLoading
362
368
  v-model:is-initial="isInitial"
363
369
  :load="load"
364
- ></VueEternalLoading>
370
+ >
371
+ <template #no-more>
372
+ &nbsp;
373
+ </template>
374
+ </VueEternalLoading>
365
375
  </div>
366
376
  </div>
367
377
  </template>
368
378
 
369
379
  <style>
370
- .user-container {
371
- max-height: 400px;
372
- height: 400px;
373
- }
374
-
375
- .user-list-item {
376
- border-top: 6px solid rgb(31, 60, 249);
377
- }
378
-
379
- .min-height-paragraph {
380
- min-height: 1em;
381
- }
382
-
383
- .max-w-100 {
384
- max-width: 100px;
385
- }
380
+ .user-container{height:400px;max-height:400px}.user-list-item{border-top:6px solid #1f3cf9}.min-height-paragraph{min-height:1em}.max-w-100{max-width:100px}
386
381
  </style>
@@ -80,7 +80,7 @@ const clockStyle = computed(() => {
80
80
 
81
81
  const fontClass = computed(() => {
82
82
  const fontBase = "font-bold";
83
- return props.isCompact === true
83
+ return props.isCompact
84
84
  ? fontBase + " text-xl lg:text-2xl"
85
85
  : fontBase + " text-2xl lg:text-4xl";
86
86
  });
@@ -139,7 +139,10 @@ onUnmounted(() => {
139
139
  )
140
140
  "
141
141
  >
142
- <div v-if="showStatusText" class="flex-initial">
142
+ <div
143
+ v-if="showStatusText"
144
+ class="flex-initial"
145
+ >
143
146
  <h1
144
147
  :class="
145
148
  classBinding(
@@ -195,7 +198,11 @@ onUnmounted(() => {
195
198
  >
196
199
  {{ days }}
197
200
  </div>
198
- <transition v-if="clockStyle == 'dials'" name="slide" mode="out-in">
201
+ <transition
202
+ v-if="clockStyle == 'dials'"
203
+ name="slide"
204
+ mode="out-in"
205
+ >
199
206
  <div
200
207
  :key="days"
201
208
  :class="[fontClass, classBinding(classObject, 'unit', '')]"
@@ -238,7 +245,11 @@ onUnmounted(() => {
238
245
  >
239
246
  {{ hours }}
240
247
  </div>
241
- <transition v-if="clockStyle == 'dials'" name="slide" mode="out-in">
248
+ <transition
249
+ v-if="clockStyle == 'dials'"
250
+ name="slide"
251
+ mode="out-in"
252
+ >
242
253
  <div
243
254
  :key="hours"
244
255
  :class="[fontClass, classBinding(classObject, 'unit', '')]"
@@ -281,7 +292,11 @@ onUnmounted(() => {
281
292
  >
282
293
  {{ minutes }}
283
294
  </div>
284
- <transition v-if="clockStyle == 'dials'" name="slide" mode="out-in">
295
+ <transition
296
+ v-if="clockStyle == 'dials'"
297
+ name="slide"
298
+ mode="out-in"
299
+ >
285
300
  <div
286
301
  :key="minutes"
287
302
  :class="[fontClass, classBinding(classObject, 'unit', '')]"
@@ -328,7 +343,11 @@ onUnmounted(() => {
328
343
  >
329
344
  {{ seconds }}
330
345
  </div>
331
- <transition v-if="clockStyle == 'dials'" name="slide" mode="out-in">
346
+ <transition
347
+ v-if="clockStyle == 'dials'"
348
+ name="slide"
349
+ mode="out-in"
350
+ >
332
351
  <div
333
352
  :key="seconds"
334
353
  :class="[fontClass, classBinding(classObject, 'unit', '')]"
@@ -343,35 +362,34 @@ onUnmounted(() => {
343
362
  </div>
344
363
  </template>
345
364
 
346
- <style scoped>
347
- .countdown-timer.compact .countdown-container {
348
- @apply pt-0 mx-0;
349
- }
350
- .countdown-timer.compact h1 {
351
- @apply text-xl;
352
- }
353
- .countdown-timer.compact .units-container {
354
- @apply p-4 mt-1;
355
- }
356
- .countdown-timer.compact .unit-container.windows {
357
- width: 60px;
365
+ <style lang="postcss" scoped>
366
+ .countdown-timer.compact {
367
+ .countdown-container {
368
+ @apply pt-0 mx-0;
369
+ }
370
+ h1 {
371
+ @apply text-xl;
372
+ }
373
+ .units-container {
374
+ @apply p-4 mt-1;
375
+ }
376
+ .unit-container.windows {
377
+ width: 60px;
378
+ }
358
379
  }
359
380
 
360
381
  /* label + number container */
361
382
  .item-container {
362
383
  @apply flex flex-col;
363
384
  }
364
-
365
385
  /* days hrs min sec labels */
366
386
  .unit-label-container {
367
387
  @apply text-xs font-light;
368
388
  height: 18px;
369
389
  }
370
-
371
390
  .unit-label-container.windows {
372
- @apply pb-4 uppercase tracking-wide;
391
+ @apply pb-4 uppercase tracking-wider;
373
392
  }
374
-
375
393
  .unit-label-container.dials {
376
394
  @apply mx-0;
377
395
  padding-top: 2px;
@@ -381,7 +399,6 @@ onUnmounted(() => {
381
399
  border-bottom: 1px solid #ddd;
382
400
  background-image: linear-gradient(#fafafa, #efefef, #e6e6e6);
383
401
  }
384
-
385
402
  .unit-label-container.dials.last {
386
403
  width: 67px;
387
404
  }
@@ -390,12 +407,10 @@ onUnmounted(() => {
390
407
  .unit-container {
391
408
  @apply flex text-center items-center justify-center overflow-hidden;
392
409
  }
393
-
394
410
  .unit-container.windows {
395
411
  @apply mx-1 px-2 border-4 rounded-lg shadow-md;
396
412
  width: 70px;
397
413
  }
398
-
399
414
  .unit-container.dials {
400
415
  @apply mx-0 shadow;
401
416
  width: 70px;
@@ -411,66 +426,67 @@ onUnmounted(() => {
411
426
  position: relative;
412
427
  overflow: hidden;
413
428
  }
414
-
415
429
  .dropshade:before,
416
430
  .dropshade:after {
417
431
  content: "";
418
432
  position: absolute;
419
433
  z-index: 1;
420
434
  top: 18px;
421
- bottom: 0px;
435
+ bottom: 0;
422
436
  width: 85px;
423
437
  -webkit-box-shadow: 0 0 3px 1px rgba(0, 0, 0, 0.2);
424
438
  -moz-box-shadow: 0 0 3px 1px rgba(0, 0, 0, 0.2);
425
439
  box-shadow: 0 0 3px 1px rgba(0, 0, 0, 0.2);
426
- -webkit-border-radius: 15px/80px;
427
- -moz-border-radius: 15px/80px;
428
- border-radius: 10px/80px;
429
- background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1));
440
+ -webkit-border-radius: 15px / 80px;
441
+ -moz-border-radius: 15px / 80px;
442
+ border-radius: 10px / 80px;
443
+ background-image: linear-gradient(
444
+ rgba(0, 0, 0, 0),
445
+ rgba(0, 0, 0, 0),
446
+ rgba(0, 0, 0, 0.1)
447
+ );
430
448
  }
431
-
432
449
  .dropshade:before {
433
450
  left: -84px;
434
451
  }
435
-
436
452
  .dropshade:after {
437
453
  left: -14px;
438
454
  }
439
-
440
455
  .dropshade.last:after {
441
456
  left: -18px;
442
457
  }
443
458
 
444
459
  /* lg: dials */
445
460
  @screen lg {
446
- .countdown-timer.fullsize .unit-container.windows,
447
- .countdown-timer.fullsize .unit-container.dials {
448
- width: 80px;
449
- height: 46px;
450
- }
451
- .countdown-timer.fullsize .unit-label-container.dials.last {
452
- width: 77px;
453
- }
454
- .countdown-timer.fullsize .dropshade:before {
455
- left: -84px;
456
- }
457
- .countdown-timer.fullsize .dropshade:after {
458
- left: -4px;
459
- }
460
- .countdown-timer.fullsize .dropshade.last:after {
461
- left: -8px;
461
+ .countdown-timer.fullsize {
462
+ .unit-container.windows,
463
+ .unit-container.dials {
464
+ width: 80px;
465
+ height: 46px;
466
+ }
467
+ .unit-label-container.dials.last {
468
+ width: 77px;
469
+ }
470
+ .dropshade:before {
471
+ left: -84px;
472
+ }
473
+ .dropshade:after {
474
+ left: -4px;
475
+ }
476
+ .dropshade.last:after {
477
+ left: -8px;
478
+ }
462
479
  }
463
480
  }
481
+
464
482
  /* dials transitions */
465
483
  .slide-leave-active,
466
484
  .slide-enter-active {
467
485
  transition: 0.3s;
468
486
  }
469
-
470
487
  .slide-enter {
471
488
  transform: translate(0, -100%);
472
489
  }
473
-
474
490
  .slide-leave-active {
475
491
  transform: translate(0, 100%);
476
492
  }