vue-wiguet-chatweb 0.1.23 → 0.1.25
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/App.vue.d.ts +2 -0
- package/dist/components/Chat.vue.d.ts +17 -6
- package/dist/components/ChatMessage.vue.d.ts +12 -0
- package/dist/components/DangerIcon.vue.d.ts +1 -1
- package/dist/components/IconAttach.vue.d.ts +2 -0
- package/dist/components/IconChat.vue.d.ts +1 -1
- package/dist/components/IconClose.vue.d.ts +1 -1
- package/dist/components/IconSend.vue.d.ts +1 -1
- package/dist/components/IconTelegram.vue.d.ts +1 -1
- package/dist/components/IconWhatsApp.vue.d.ts +1 -1
- package/dist/components/IconWidget.vue.d.ts +1 -1
- package/dist/components/Loader.vue.d.ts +1 -1
- package/dist/components/MessageList.vue.d.ts +14 -6
- package/dist/components/ODialog/IPropsDialog.d.ts +3 -0
- package/dist/components/ODialog/IPropsSidebar.d.ts +5 -0
- package/dist/components/ODialog/ODialog.vue.d.ts +22 -0
- package/dist/components/Widget.vue.d.ts +10 -6
- package/dist/dto/app.dto.d.ts +9 -1
- package/dist/hooks/useMobile.d.ts +3 -0
- package/dist/index.d.ts +1 -1
- package/dist/store/config.d.ts +1 -1
- package/dist/store/index.d.ts +1 -4
- package/dist/style.css +1 -1
- package/dist/vue-wiguet-chatweb.js +3379 -2759
- package/dist/vue-wiguet-chatweb.umd.cjs +17 -7
- package/package.json +8 -6
- package/src/components/Chat.vue +157 -53
- package/src/components/IconAttach.vue +24 -0
- package/src/components/IconSend.vue +1 -1
- package/src/components/LoadingComponent.vue +111 -0
- package/src/components/MessageList.vue +14 -30
- package/src/components/ODialog/IPropsDialog.ts +4 -0
- package/src/components/ODialog/IPropsSidebar.ts +13 -0
- package/src/components/ODialog/ODialog.vue +85 -0
- package/src/components/Widget.vue +19 -1
@@ -0,0 +1,85 @@
|
|
1
|
+
<template>
|
2
|
+
<div v-if="props.modelValue" class="dialog-overlay" @click="closeDialog">
|
3
|
+
<div class="dialog-content" @click.stop>
|
4
|
+
<div class="header-widget">
|
5
|
+
<h4 class="title-chat">{{ title }}</h4>
|
6
|
+
<button @click="() => closeDialog()" class="btn-close">
|
7
|
+
<IconClose class="pointer" />
|
8
|
+
</button>
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<div>
|
12
|
+
<slot></slot>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
</template>
|
17
|
+
|
18
|
+
<script lang="ts" setup>
|
19
|
+
import IconClose from '../IconClose.vue'
|
20
|
+
import { IPropsDialog } from './IPropsDialog';
|
21
|
+
|
22
|
+
const props = defineProps<IPropsDialog>()
|
23
|
+
|
24
|
+
const emit = defineEmits(['update:modelValue']);
|
25
|
+
|
26
|
+
const closeDialog = () => {
|
27
|
+
emit("update:modelValue", false);
|
28
|
+
};
|
29
|
+
</script>
|
30
|
+
|
31
|
+
<style scoped>
|
32
|
+
.dialog-overlay {
|
33
|
+
position: fixed;
|
34
|
+
top: 0;
|
35
|
+
left: 0;
|
36
|
+
width: 100%;
|
37
|
+
height: 100%;
|
38
|
+
background-color: rgba(0, 0, 0, 0.5);
|
39
|
+
display: flex;
|
40
|
+
justify-content: center;
|
41
|
+
align-items: center;
|
42
|
+
opacity: 0;
|
43
|
+
animation: fadeIn 0.3s forwards;
|
44
|
+
}
|
45
|
+
|
46
|
+
.dialog-content {
|
47
|
+
background-color: white;
|
48
|
+
padding: 15px;
|
49
|
+
border-radius: 8px;
|
50
|
+
text-align: center;
|
51
|
+
animation: slideIn 0.3s ease-out forwards;
|
52
|
+
}
|
53
|
+
|
54
|
+
@keyframes fadeIn {
|
55
|
+
to {
|
56
|
+
opacity: 1;
|
57
|
+
}
|
58
|
+
}
|
59
|
+
|
60
|
+
@keyframes slideIn {
|
61
|
+
from {
|
62
|
+
transform: translateY(-50px);
|
63
|
+
}
|
64
|
+
to {
|
65
|
+
transform: translateY(0);
|
66
|
+
}
|
67
|
+
}
|
68
|
+
|
69
|
+
.dialog-overlay.v-enter-active,
|
70
|
+
.dialog-overlay.v-leave-active {
|
71
|
+
transition: opacity 0.3s;
|
72
|
+
}
|
73
|
+
|
74
|
+
.btn-close {
|
75
|
+
padding: 0;
|
76
|
+
background-color: transparent;
|
77
|
+
border: none;
|
78
|
+
display: flex;
|
79
|
+
align-items: center;
|
80
|
+
border-radius: 50%;
|
81
|
+
&:hover {
|
82
|
+
background-color: rgba(202, 202, 202, 0.534);
|
83
|
+
}
|
84
|
+
}
|
85
|
+
</style>
|
@@ -53,6 +53,24 @@
|
|
53
53
|
@on-qualifying="(args)=> emit('onQualifying', args)"
|
54
54
|
/>
|
55
55
|
</div>
|
56
|
+
|
57
|
+
<Button label="Show" @click="visible = true" />
|
58
|
+
|
59
|
+
<Dialog v-model:visible="visible" modal header="Edit Profile" :style="{ width: '25rem' }">
|
60
|
+
<span class="text-surface-500 dark:text-surface-400 block mb-8">Update your information.</span>
|
61
|
+
<div class="flex items-center gap-4 mb-4">
|
62
|
+
<label for="username" class="font-semibold w-24">Username</label>
|
63
|
+
<InputText id="username" class="flex-auto" autocomplete="off" />
|
64
|
+
</div>
|
65
|
+
<div class="flex items-center gap-4 mb-8">
|
66
|
+
<label for="email" class="font-semibold w-24">Email</label>
|
67
|
+
<InputText id="email" class="flex-auto" autocomplete="off" />
|
68
|
+
</div>
|
69
|
+
<div class="flex justify-end gap-2">
|
70
|
+
<Button type="button" label="Cancel" severity="secondary" @click="visible = false"></Button>
|
71
|
+
<Button type="button" label="Save" @click="visible = false"></Button>
|
72
|
+
</div>
|
73
|
+
</Dialog>
|
56
74
|
</div>
|
57
75
|
</template>
|
58
76
|
|
@@ -65,7 +83,7 @@ import IconWhatsApp from "./IconWhatsApp.vue";
|
|
65
83
|
import IconChat from "./IconChat.vue";
|
66
84
|
|
67
85
|
const emit = defineEmits(["show-toast", "show-confirm", "onQualifying"]);
|
68
|
-
|
86
|
+
const visible = ref(true);
|
69
87
|
const enum MeansCommunication{
|
70
88
|
WHATSAPP,
|
71
89
|
TELEGRAM
|