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.
Files changed (35) hide show
  1. package/dist/App.vue.d.ts +2 -0
  2. package/dist/components/Chat.vue.d.ts +17 -6
  3. package/dist/components/ChatMessage.vue.d.ts +12 -0
  4. package/dist/components/DangerIcon.vue.d.ts +1 -1
  5. package/dist/components/IconAttach.vue.d.ts +2 -0
  6. package/dist/components/IconChat.vue.d.ts +1 -1
  7. package/dist/components/IconClose.vue.d.ts +1 -1
  8. package/dist/components/IconSend.vue.d.ts +1 -1
  9. package/dist/components/IconTelegram.vue.d.ts +1 -1
  10. package/dist/components/IconWhatsApp.vue.d.ts +1 -1
  11. package/dist/components/IconWidget.vue.d.ts +1 -1
  12. package/dist/components/Loader.vue.d.ts +1 -1
  13. package/dist/components/MessageList.vue.d.ts +14 -6
  14. package/dist/components/ODialog/IPropsDialog.d.ts +3 -0
  15. package/dist/components/ODialog/IPropsSidebar.d.ts +5 -0
  16. package/dist/components/ODialog/ODialog.vue.d.ts +22 -0
  17. package/dist/components/Widget.vue.d.ts +10 -6
  18. package/dist/dto/app.dto.d.ts +9 -1
  19. package/dist/hooks/useMobile.d.ts +3 -0
  20. package/dist/index.d.ts +1 -1
  21. package/dist/store/config.d.ts +1 -1
  22. package/dist/store/index.d.ts +1 -4
  23. package/dist/style.css +1 -1
  24. package/dist/vue-wiguet-chatweb.js +3379 -2759
  25. package/dist/vue-wiguet-chatweb.umd.cjs +17 -7
  26. package/package.json +8 -6
  27. package/src/components/Chat.vue +157 -53
  28. package/src/components/IconAttach.vue +24 -0
  29. package/src/components/IconSend.vue +1 -1
  30. package/src/components/LoadingComponent.vue +111 -0
  31. package/src/components/MessageList.vue +14 -30
  32. package/src/components/ODialog/IPropsDialog.ts +4 -0
  33. package/src/components/ODialog/IPropsSidebar.ts +13 -0
  34. package/src/components/ODialog/ODialog.vue +85 -0
  35. 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