vue-wiguet-chatweb 0.0.11 → 0.0.13

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue-wiguet-chatweb",
3
- "version": "0.0.11",
3
+ "version": "0.0.13",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist",
@@ -18,7 +18,7 @@
18
18
  />
19
19
  </div>
20
20
 
21
- <div class="input-message w-full">
21
+ <div class="w-full">
22
22
  <form class="message-send" @submit.prevent="submitMessage">
23
23
  <div class="form-message">
24
24
  <!-- <button type="submit">
@@ -291,7 +291,6 @@ const mantainElementsOnViewport = (scrollHeightBeforeAdd: number) => {
291
291
  </script>
292
292
 
293
293
  <style scoped>
294
- @import url(../style.css);
295
294
  .btn-primary {
296
295
  padding: 10px 12px;
297
296
  &:hover {
@@ -1,42 +1,44 @@
1
1
  <template>
2
2
  <div ref="target" class="target"></div>
3
- <div
4
- v-for="message in props.messages"
5
- :key="message.id"
6
- style="width: 100%"
7
- :class="message.esCliente ? 'message-left' : 'message-right'"
8
- >
9
- <div class="message-container">
10
- <div v-if="message.error && message.esCliente" class="btn-container">
11
- <button
12
- text
13
- rounded
14
- class="btn-danger"
15
- icon="fa-solid fa-circle-exclamation"
16
- aria-label="Cancel"
17
- @click="emit('retry', message)"
18
- >
19
- <DangerIcon />
20
- </button>
21
- </div>
22
- <div class="chat-message">
23
- <div class="bubble" :class="message.esCliente ? 'left' : 'right'">
24
- <div :class="message.esCliente ? 'content-left' : 'content-right'">
25
- <div class="message">
26
- {{ message.message }}
27
- </div>
28
- <div class="detail-message flex justify-content-between">
29
- <span class="mr-5" v-if="message.sender?.nombreCompleto">
30
- {{ message.sender?.nombreCompleto }}
31
- </span>
32
- <span class="mr-5" v-else> </span>
33
- <span>
34
- {{
35
- DateTime.fromISO(message.createdAt).toFormat(
36
- "dd-MM-yyyy HH:mm"
37
- )
38
- }}
39
- </span>
3
+ <div class="messages-container-list">
4
+ <div
5
+ v-for="message in props.messages"
6
+ :key="message.id"
7
+ class="message"
8
+ :class="message.esCliente ? 'message-left' : 'message-right'"
9
+ >
10
+ <div class="message-container">
11
+ <div v-if="message.error && message.esCliente" class="btn-container">
12
+ <button
13
+ text
14
+ rounded
15
+ class="btn-danger"
16
+ icon="fa-solid fa-circle-exclamation"
17
+ aria-label="Cancel"
18
+ @click="emit('retry', message)"
19
+ >
20
+ <DangerIcon />
21
+ </button>
22
+ </div>
23
+ <div class="chat-message">
24
+ <div class="bubble" :class="message.esCliente ? 'left' : 'right'">
25
+ <div :class="message.esCliente ? 'content-left' : 'content-right'">
26
+ <div class="message-text">
27
+ {{ message.message }}
28
+ </div>
29
+ <div class="detail-message flex justify-content-between">
30
+ <span class="mr-5" v-if="message.sender?.nombreCompleto">
31
+ {{ message.sender?.nombreCompleto }}
32
+ </span>
33
+ <span class="mr-5" v-else> </span>
34
+ <span>
35
+ {{
36
+ DateTime.fromISO(message.createdAt).toFormat(
37
+ "dd-MM-yyyy HH:mm"
38
+ )
39
+ }}
40
+ </span>
41
+ </div>
40
42
  </div>
41
43
  </div>
42
44
  </div>
@@ -99,8 +101,7 @@ watch(
99
101
  --t: 30px;
100
102
  /* the size of the tail */
101
103
 
102
- max-width: 50%;
103
- min-width: 250px;
104
+ width: 100%;
104
105
  padding: calc(2 * var(--r) / 3);
105
106
  -webkit-mask: radial-gradient(var(--t) at var(--_d) 0, #0000 98%, #000 102%)
106
107
  var(--_d) 100% / calc(100% - var(--r)) var(--t) no-repeat,
@@ -119,11 +120,11 @@ watch(
119
120
  }
120
121
 
121
122
  .left {
123
+ --_d: 0%;
122
124
  border-left: var(--t) solid #0000;
123
- margin-right: var(--t);
125
+ margin-right: 0;
124
126
  background-color: #fcd7ae;
125
127
  color: #4d4d4d;
126
- place-self: start;
127
128
  }
128
129
 
129
130
  .bubble > .content-left {
@@ -132,11 +133,11 @@ watch(
132
133
  }
133
134
 
134
135
  .right {
136
+ --_d: 100%;
135
137
  border-right: var(--t) solid #0000;
136
- margin-left: var(--t);
138
+ margin-right: 0;
137
139
  background-color: #fdeedb;
138
140
  color: #4d4d4d;
139
- place-self: end;
140
141
  }
141
142
 
142
143
  .bubble > .content-right {
@@ -144,9 +145,7 @@ watch(
144
145
  margin-right: 10px;
145
146
  }
146
147
 
147
- .message {
148
- text-align: initial;
149
- word-break: break-all;
148
+ .message-text {
150
149
  margin-bottom: 10px;
151
150
  }
152
151
  .detail-message {
@@ -157,21 +156,21 @@ watch(
157
156
  }
158
157
 
159
158
  .chat-message {
160
- max-width: 90%;
161
- min-width: 90%;
162
159
  display: flex;
163
160
  flex-direction: column;
164
161
  justify-content: center;
165
162
  margin-bottom: 0.5rem;
166
- /* box-shadow: 0 2px 8px rgba(0, 0, 0, 20%); */
167
163
  }
168
164
 
169
- .message-left {
165
+ .message {
166
+ width: 100%;
170
167
  display: flex;
168
+ }
169
+
170
+ .message-left {
171
171
  justify-content: start;
172
172
  }
173
173
  .message-right {
174
- display: flex;
175
174
  justify-content: end;
176
175
  }
177
176
  .target {
@@ -205,6 +204,11 @@ watch(
205
204
  }
206
205
 
207
206
  .message-container {
208
- display: flex;
207
+ min-width: 80%;
208
+ max-width: 80%;
209
+ }
210
+
211
+ .messages-container-list {
212
+ width: 100%;
209
213
  }
210
214
  </style>
@@ -1,6 +1,14 @@
1
1
  <template>
2
- <div>
3
- <div id="chat-circle" @click="toggleChat" class="widget-container">
2
+ <div
3
+ class="widget-css-reset widget-container"
4
+ :class="isDarkMode ? 'chat-dark-mode' : ''"
5
+ >
6
+ <div
7
+ id="chat-circle"
8
+ @click="toggleChat"
9
+ class="widget-container"
10
+ v-show="!isChatBoxVisible"
11
+ >
4
12
  <div class="new-message-badge" v-if="newMessages">
5
13
  {{ newMessages > 9 ? "9+" : newMessages }}
6
14
  </div>
@@ -46,11 +54,17 @@ defineProps({
46
54
  }>,
47
55
  required: true,
48
56
  },
57
+ isDarkMode: {
58
+ type: Boolean,
59
+ default: false,
60
+ },
49
61
  });
50
62
  </script>
63
+ <style>
64
+ @import url(../style.css);
65
+ </style>
51
66
 
52
67
  <style scoped>
53
- @import url(../style.css);
54
68
  .widget-container {
55
69
  position: relative;
56
70
  }