@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.
- package/CHANGELOG.md +4 -0
- package/dist/module.d.mts +1051 -2
- package/dist/module.d.ts +1051 -2
- package/dist/module.json +1 -1
- package/dist/module.mjs +29 -15
- package/dist/runtime/@types/components.d.ts +22 -0
- package/dist/runtime/@types/configVariables.d.ts +6 -0
- package/dist/runtime/analytics.d.ts +1 -6
- package/dist/runtime/assets/scss/_agenda.css +1 -0
- package/dist/runtime/assets/scss/_animations.css +1 -0
- package/dist/runtime/assets/scss/_container_variants.css +1 -0
- package/dist/runtime/assets/scss/_custom.css +3 -0
- package/dist/runtime/assets/scss/_forms.css +1 -0
- package/dist/runtime/assets/scss/_header.css +0 -0
- package/dist/runtime/assets/scss/_index_production.css +1 -0
- package/dist/runtime/assets/scss/_transitions.css +1 -0
- package/dist/runtime/assets/scss/_variables.css +1 -0
- package/dist/runtime/assets/scss/_variables2.css +0 -0
- package/dist/runtime/assets/scss/_webcast.css +1 -0
- package/dist/runtime/assets/scss/index.css +1 -705
- package/dist/runtime/assets/svg/icon-minus.svg +6 -0
- package/dist/runtime/assets/svg/icon-video.svg +6 -0
- package/dist/runtime/components/affiliates/AffiliateModal.vue +66 -0
- package/dist/runtime/components/affiliates/AffiliatePage.vue +329 -159
- package/dist/runtime/components/agenda/AgendaList.vue +18 -14
- package/dist/runtime/components/agenda/AgendaTabbed.vue +60 -54
- package/dist/runtime/components/agenda/components/AgendaListAccordion.vue +8 -3
- package/dist/runtime/components/agenda/components/Calendar.vue +23 -18
- package/dist/runtime/components/agenda/components/Favorite.vue +46 -0
- package/dist/runtime/components/agenda/components/InfoLink.vue +15 -5
- package/dist/runtime/components/agenda/components/PlayIcon.vue +3 -5
- package/dist/runtime/components/agenda/components/PresentationLink.vue +37 -19
- package/dist/runtime/components/agenda/components/Sponsor.vue +31 -24
- package/dist/runtime/components/auth/PasswordReset.vue +20 -5
- package/dist/runtime/components/auth/Registration.vue +14 -4
- package/dist/runtime/components/auth/Ucc.vue +44 -27
- package/dist/runtime/components/chat/ChatConversationList.vue +108 -0
- package/dist/runtime/components/chat/ChatCreateConversation.vue +199 -0
- package/dist/runtime/components/chat/ChatCreateGroupConversation.vue +154 -0
- package/dist/runtime/components/chat/ChatHeader.vue +97 -0
- package/dist/runtime/components/chat/ChatMessage.vue +40 -0
- package/dist/runtime/components/chat/ChatShowConversation.vue +76 -0
- package/dist/runtime/components/chat/ChatWidget.vue +40 -0
- package/dist/runtime/components/chat/ChatWindow.vue +154 -0
- package/dist/runtime/components/chat/ChatWindow.vue.d.ts +6 -0
- package/dist/runtime/components/chat/MessageInput.vue +27 -0
- package/dist/runtime/components/chat/SearchInput.vue +32 -0
- package/dist/runtime/components/core/Accordion.vue +12 -12
- package/dist/runtime/components/core/AttendeeList.vue +31 -36
- package/dist/runtime/components/core/CountdownTimer.vue +68 -52
- package/dist/runtime/components/core/DynamicHtml.vue.d.ts +6 -9
- package/dist/runtime/components/core/Modal.vue +24 -22
- package/dist/runtime/components/core/ModalButton.vue +43 -0
- package/dist/runtime/components/core/Navbar.vue +33 -21
- package/dist/runtime/components/core/Navigation.vue +286 -0
- package/dist/runtime/components/core/SvgIcon.vue +34 -1
- package/dist/runtime/components/core/VButton.vue +35 -0
- package/dist/runtime/components/core/ZoomModal.vue +9 -3
- package/dist/runtime/components/events/EventHeader.vue +14 -4
- package/dist/runtime/components/events/ListEvents.vue +21 -22
- package/dist/runtime/components/forms/CheckboxGroup.vue +46 -0
- package/dist/runtime/components/forms/ErrorField.vue +11 -2
- package/dist/runtime/components/forms/Message.vue +1 -1
- package/dist/runtime/components/forms/RadioGroup.vue +50 -0
- package/dist/runtime/components/forms/SearchInput.vue +8 -2
- package/dist/runtime/components/forms/SelectDropDown.vue +47 -0
- package/dist/runtime/components/forms/SupportForm.vue +22 -11
- package/dist/runtime/components/forms/SwitchInput.vue +50 -30
- package/dist/runtime/components/forms/TextArea.vue +1 -1
- package/dist/runtime/components/forms/TextInput.vue +1 -1
- package/dist/runtime/components/layouts/Accordion.vue +11 -6
- package/dist/runtime/components/media/ArchivePlayerAndContentContainer.vue +24 -5
- package/dist/runtime/components/media/ArchiveVideoPlayer.vue +19 -23
- package/dist/runtime/components/media/PlayerAndContentContainer.vue +4 -1
- package/dist/runtime/components/media/WebcastVideoPlayer.vue +6 -18
- package/dist/runtime/components/media/components/AgendaPanel.vue +7 -6
- package/dist/runtime/components/media/components/ArchiveMediaContainer.vue +17 -15
- package/dist/runtime/components/media/components/CeCreditNotification.vue +8 -8
- package/dist/runtime/components/media/components/ContentArea.vue +59 -18
- package/dist/runtime/components/media/components/ContentTabs.vue +40 -28
- package/dist/runtime/components/media/components/DocumentsPanel.vue +19 -17
- package/dist/runtime/components/media/components/MediaContainer.vue +11 -13
- package/dist/runtime/components/media/components/OverviewPanel.vue +5 -2
- package/dist/runtime/components/media/components/PresentersPanel.vue +74 -55
- package/dist/runtime/components/media/components/SessionReporting.vue +5 -4
- package/dist/runtime/components/media/components/SponsorsPanel.vue +13 -12
- package/dist/runtime/components/presenters/PresenterListing.vue +33 -25
- package/dist/runtime/components/presenters/PresenterModal.vue +26 -21
- package/dist/runtime/components/presenters/Presenters.vue +139 -0
- package/dist/runtime/components/profile/Profile.vue +10 -6
- package/dist/runtime/components/profile/components/Sidebar.vue +1 -1
- package/dist/runtime/components/profile/components/SidebarNavItem.vue +2 -4
- package/dist/runtime/components/profile/tabs/Favorites.vue +5 -4
- package/dist/runtime/components/profile/tabs/GeneralInformation.vue +26 -16
- package/dist/runtime/components/profile/tabs/ProfileImage.vue +7 -6
- package/dist/runtime/components/registration/AlreadyRegisteredModal.vue +102 -0
- package/dist/runtime/components/registration/PaymentForm.vue +136 -0
- package/dist/runtime/components/registration/RegistrationForm.vue +417 -0
- package/dist/runtime/components/registration/RegistrationGroupSelect.vue +146 -0
- package/dist/runtime/components/registration/StripePaymentForm.vue +121 -0
- package/dist/runtime/components/support/FAQAccordion.vue +8 -7
- package/dist/runtime/composables/useAdobeLaunch.d.ts +2 -7
- package/dist/runtime/composables/useAdobeLaunch.mjs +2 -2
- package/dist/runtime/composables/useAgenda.d.ts +13 -1
- package/dist/runtime/composables/useAgenda.mjs +125 -25
- package/dist/runtime/composables/useApi.d.ts +1 -1
- package/dist/runtime/composables/useAuth.d.ts +1 -1
- package/dist/runtime/composables/useAuth.mjs +1 -1
- package/dist/runtime/composables/useClassBinding.d.ts +3 -1
- package/dist/runtime/composables/useConferenceHelpers.d.ts +7 -3
- package/dist/runtime/composables/useConferenceHelpers.mjs +26 -15
- package/dist/runtime/composables/useEventHooks.d.ts +29 -0
- package/dist/runtime/composables/useEventHooks.mjs +21 -0
- package/dist/runtime/composables/useEvents.d.ts +17 -1
- package/dist/runtime/composables/useEvents.mjs +35 -9
- package/dist/runtime/composables/useLogin.mjs +9 -5
- package/dist/runtime/composables/useNavigation.d.ts +1 -1
- package/dist/runtime/composables/useNavigation.mjs +4 -2
- package/dist/runtime/composables/usePresentation.d.ts +2 -2
- package/dist/runtime/composables/usePresentation.mjs +8 -7
- package/dist/runtime/composables/usePresenter.d.ts +2 -2
- package/dist/runtime/composables/usePresenters.d.ts +2 -2
- package/dist/runtime/composables/usePusher.d.ts +4 -0
- package/dist/runtime/composables/usePusher.mjs +38 -26
- package/dist/runtime/composables/useScripts.mjs +1 -1
- package/dist/runtime/composables/useStream.d.ts +2 -3
- package/dist/runtime/composables/useStream.mjs +8 -2
- package/dist/runtime/composables/useUcc.d.ts +1 -1
- package/dist/runtime/composables/useUcc.mjs +29 -23
- package/dist/runtime/enums/general.d.ts +4 -1
- package/dist/runtime/enums/general.mjs +4 -1
- package/dist/runtime/models/adobeLaunch.d.ts +6 -0
- package/dist/runtime/models/adobeLaunch.mjs +0 -0
- package/dist/runtime/models/analytics.d.ts +6 -0
- package/dist/runtime/models/analytics.mjs +0 -0
- package/dist/runtime/models/attendeeList.d.ts +1 -1
- package/dist/runtime/models/conference.d.ts +122 -91
- package/dist/runtime/models/conversation.d.ts +11 -13
- package/dist/runtime/models/document.d.ts +5 -5
- package/dist/runtime/models/globalConfig.d.ts +9 -3
- package/dist/runtime/models/group.d.ts +38 -8
- package/dist/runtime/models/icons.d.ts +8 -1
- package/dist/runtime/models/index.d.ts +20 -0
- package/dist/runtime/models/index.mjs +20 -0
- package/dist/runtime/models/link.d.ts +4 -4
- package/dist/runtime/models/loginParams.d.ts +5 -0
- package/dist/runtime/models/loginParams.mjs +0 -0
- package/dist/runtime/models/navigationConfig.d.ts +7 -7
- package/dist/runtime/models/pagination.d.ts +11 -11
- package/dist/runtime/models/portal.d.ts +15 -10
- package/dist/runtime/models/templateConfig.d.ts +13 -7
- package/dist/runtime/models/ucc.d.ts +22 -0
- package/dist/runtime/models/ucc.mjs +0 -0
- package/dist/runtime/models/user.d.ts +25 -12
- package/dist/runtime/models/vButton.d.ts +7 -0
- package/dist/runtime/models/vButton.mjs +0 -0
- package/dist/runtime/models/video.d.ts +5 -4
- package/dist/runtime/models/virtualPagesConfig.d.ts +223 -0
- package/dist/runtime/models/virtualPagesConfig.mjs +0 -0
- package/dist/runtime/plugin.mjs +18 -9
- package/dist/runtime/store/affiliates.d.ts +4 -1
- package/dist/runtime/store/affiliates.mjs +38 -0
- package/dist/runtime/store/attendeeList.d.ts +1 -1
- package/dist/runtime/store/auth.d.ts +3 -7
- package/dist/runtime/store/auth.mjs +6 -0
- package/dist/runtime/store/conferences.d.ts +3 -1
- package/dist/runtime/store/conferences.mjs +14 -9
- package/dist/runtime/store/conversations.d.ts +78 -10
- package/dist/runtime/store/conversations.mjs +255 -22
- package/dist/runtime/store/modalPlayerConfig.d.ts +27 -0
- package/dist/runtime/store/modalPlayerConfig.mjs +58 -0
- package/dist/runtime/store/navigationConfig.d.ts +1 -1
- package/dist/runtime/store/presentations.d.ts +2 -2
- package/dist/runtime/store/templateConfigs.d.ts +7 -6
- package/dist/runtime/store/templateConfigs.mjs +7 -6
- package/dist/runtime/store/user.mjs +0 -1
- package/dist/runtime/v3plusCommonPlugin.d.ts +1 -1
- package/dist/types.d.mts +3 -2
- package/dist/types.d.ts +3 -2
- package/package.json +12 -9
- package/dist/runtime/components/media/components/JsonApi.vue +0 -33
- package/dist/runtime/components/media/components/JsonApi.vue.d.ts +0 -16
- package/dist/runtime/components/media/components/PresentersPanel.vue.d.ts +0 -32
- package/dist/runtime/components/media/components/WindowContent.vue +0 -118
- package/dist/runtime/components/media/components/WindowContent.vue.d.ts +0 -50
- package/dist/runtime/components/media/components/WindowSlide.vue +0 -92
- package/dist/runtime/components/media/components/WindowSlide.vue.d.ts +0 -36
- package/dist/runtime/models/authUser.d.ts +0 -16
- /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,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
|
|
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-
|
|
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
|
|
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
|
-
|
|
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="
|
|
252
|
+
:icon="user.online ? 'online' : 'offline'"
|
|
248
253
|
width="0"
|
|
249
254
|
class="w-4 my-0 mr-1 inline-block"
|
|
250
|
-
|
|
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"
|
|
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"
|
|
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
|
-
|
|
344
|
-
|
|
345
|
-
|
|
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
|
-
|
|
370
|
+
>
|
|
371
|
+
<template #no-more>
|
|
372
|
+
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
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-
|
|
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:
|
|
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(
|
|
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
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
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
|
}
|