vue-intergrall-plugins 0.0.293 → 0.0.295

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.
@@ -1,36 +1,58 @@
1
1
  <template>
2
- <div
3
- :class="'mensagem__'+origem" v-if="origem && !erro" :id="`a${messageIndex ? messageIndex : randomizeValue}`"
2
+ <div
3
+ :class="'mensagem__' + origem"
4
+ v-if="origem && !erro"
5
+ :id="`a${messageIndex ? messageIndex : randomizeValue}`"
4
6
  >
5
- <InteratividadeFormulario
6
- v-if="interatividade && validateInterativity()"
7
- :interatividade="interatividade"
8
- :dominio="dominio"
9
- :infoCanal="infoCanalTeste"
10
- :anexos="anexos"
11
- :dictionary="dictionary"
12
- />
13
- <div
14
- v-else
15
- class="mensagem"
16
- :class="{mapa, 'hist-msg' : histMsg, 'max-w-60' : link && !mapa}"
7
+ <InteratividadeFormulario
8
+ v-if="interatividade && validateInterativity()"
9
+ :interatividade="interatividade"
10
+ :dominio="dominio"
11
+ :infoCanal="infoCanalTeste"
12
+ :anexos="anexos"
13
+ :dictionary="dictionary"
14
+ />
15
+ <div
16
+ v-else
17
+ class="mensagem"
18
+ :class="{ mapa, 'hist-msg': histMsg, 'max-w-60': link && !mapa }"
17
19
  >
18
20
  <!-- Estilo da mensagem do tipo reply (que foi respondida) -->
19
- <div v-if="isReply && replyMessage" class="mensagem-reply" :class="`message-reply-${origem}`">
21
+ <div
22
+ v-if="isReply && replyMessage"
23
+ class="mensagem-reply"
24
+ :class="`message-reply-${origem}`"
25
+ >
20
26
  <p v-if="replyMessage" v-html="replyMessage"></p>
21
27
  <span v-else class="mensagem-reply-vazia">
22
28
  <fa-icon :icon="['fas', 'times']" v-if="showReplyIcon" />
23
- {{ defaultReplyMessage ? defaultReplyMessage : dictionary.mensagem_reply_padrao }}
29
+ {{
30
+ defaultReplyMessage ? defaultReplyMessage : dictionary.mensagem_reply_padrao
31
+ }}
24
32
  </span>
25
33
  </div>
26
34
  <!-- Anexos -->
27
35
  <template v-if="anexos && anexos.length">
28
36
  <div class="mensagem-anexo" v-for="(anexo, index) in anexos" :key="index">
29
- <AnexoMensagem :showControlFiles="showControlFiles" :referenceSelector="referenceSelector" :dictionary="dictionary" :anexo="anexo" :origemExterna="origemExterna" :dominio="dominio" @abrir-imagem="abrirImagem" @download-all="$emit('download-all')"/>
37
+ <AnexoMensagem
38
+ :showControlFiles="showControlFiles"
39
+ :referenceSelector="referenceSelector"
40
+ :dictionary="dictionary"
41
+ :anexo="anexo"
42
+ :origemExterna="origemExterna"
43
+ :dominio="dominio"
44
+ @abrir-imagem="abrirImagem"
45
+ @download-all="$emit('download-all')"
46
+ />
30
47
  </div>
31
48
  </template>
32
49
  <!-- sticker -->
33
- <img class="default-stick-size" v-if="urlSticker" :src="urlSticker" :title="urlFileName">
50
+ <img
51
+ class="default-stick-size"
52
+ v-if="urlSticker"
53
+ :src="urlSticker"
54
+ :title="urlFileName"
55
+ />
34
56
  <!-- Mapa -->
35
57
  <div v-if="mapa" class="mensagem-div-mapa">
36
58
  <GmapMap
@@ -39,13 +61,15 @@
39
61
  :center="center"
40
62
  :zoom="17"
41
63
  :options="mapOptions"
42
- >
64
+ >
43
65
  <GmapMarker :position="marker" />
44
66
  </GmapMap>
45
67
  <ul class="info-mapa" v-if="infos.length">
46
68
  <li v-for="(info, index) in infos" :key="index" :class="info.classe">
47
69
  <template v-if="!info.link"> {{ info.value }} </template>
48
- <a v-else :href="info.value" @click.prevent="abrirPopup(info.value)"> {{ info.textLink }} <fa-icon :icon="['fas', 'map-marker-alt']" /> </a>
70
+ <a v-else :href="info.value" @click.prevent="abrirPopup(info.value)">
71
+ {{ info.textLink }} <fa-icon :icon="['fas', 'map-marker-alt']" />
72
+ </a>
49
73
  </li>
50
74
  </ul>
51
75
  </div>
@@ -54,79 +78,254 @@
54
78
  <!-- Mensagem -->
55
79
  <p v-html="validateInterativity() ? '' : formatMsg(message)"></p>
56
80
  <!-- Botoes da interatividade -->
57
- <InteratividadeBotoes
58
- v-if="interatividade"
59
- :interatividade="interatividade"
60
- />
81
+ <InteratividadeBotoes v-if="interatividade" :interatividade="interatividade" />
61
82
  <!-- Horario da mensagem -->
62
83
  <span class="horario-envio" v-text="horario"></span>
63
84
  <!-- Reenviar mensagem -->
64
85
  <transition name="fade" mode="out-in">
65
- <span :class="reply" v-if="hasReply && (status == 'C' || status == 'T' || status == 'ERRO')" v-tippy :content="msgReply ? msgReply : 'Fazer reenvio da mensagem'" @click="$emit('replyMsg')"> <fa-icon :icon="['fas', 'reply']" /> </span>
86
+ <span
87
+ :class="reply"
88
+ v-if="hasReply && (status == 'C' || status == 'T' || status == 'ERRO')"
89
+ v-tippy
90
+ :content="msgReply ? msgReply : 'Fazer reenvio da mensagem'"
91
+ @click="$emit('replyMsg')"
92
+ >
93
+ <fa-icon :icon="['fas', 'reply']" />
94
+ </span>
66
95
  </transition>
67
96
  <!-- ?? -->
68
97
  <transition name="fade" mode="out-in" v-if="validadeSeq">
69
- <span class="star dourado" v-if="iniDialogo > 0" :content="contentTooltipStar" v-tippy key="star-padrao-dourado">
98
+ <span
99
+ class="star dourado"
100
+ v-if="iniDialogo > 0"
101
+ :content="contentTooltipStar"
102
+ v-tippy
103
+ key="star-padrao-dourado"
104
+ >
70
105
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
71
- <path fill="#FFD700" d="M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z"/>
106
+ <path
107
+ fill="#FFD700"
108
+ d="M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z"
109
+ />
72
110
  </svg>
73
111
  </span>
74
- <span class="star cinza" v-if="iniDialogo == 0" :content="contentTooltipStar" v-tippy key="star-padrao-cinza">
112
+ <span
113
+ class="star cinza"
114
+ v-if="iniDialogo == 0"
115
+ :content="contentTooltipStar"
116
+ v-tippy
117
+ key="star-padrao-cinza"
118
+ >
75
119
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
76
- <path fill="#808080" d="M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z"/>
120
+ <path
121
+ fill="#808080"
122
+ d="M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z"
123
+ />
77
124
  </svg>
78
125
  </span>
79
126
  </transition>
80
127
  <!-- Status da mensagem -->
81
128
  <transition name="fade" mode="out-in">
82
- <span class="check" v-if="status == 'D'" :content="contentTooltip" v-tippy key="check-padrao"> <fa-icon :icon="['fas', 'check']" /> </span>
83
- <span class="check cinza" v-else-if="status == 'Q'" :content="contentTooltip" v-tippy key="check-cinza"> <fa-icon :icon="['fas', 'check']" /> </span>
84
- <span class="check preto" v-else-if="status == 'G'" :content="contentTooltip" v-tippy key="check-preto"> <fa-icon :icon="['fas', 'check']" /> </span>
85
- <span class="check preto" v-else-if="status == 'E'" :content="contentTooltip" v-tippy key="double-check-preto"> <fa-icon :icon="['fas', 'check-double']" /> </span>
86
- <span class="check visualizado" v-else-if="status == 'L'" :content="contentTooltip" v-tippy key="double-check-visualizado"> <fa-icon :icon="['fas', 'check-double']" /> </span> <!-- Status finalizador -->
87
- <span class="check vermelho" v-else-if="status == 'C' || status == 'ERRO'" :content="contentTooltip" v-tippy key="times-circle"> <fa-icon :icon="['fas', 'times-circle']" /> </span> <!-- Status finalizador -->
88
- <span class="check vermelho" v-else-if="status == 'T'" :content="contentTooltip" v-tippy key="hourglass"> <fa-icon :icon="['fas', 'hourglass']" /> </span> <!-- Status finalizador -->
89
- <span class="check vermelho" v-else-if="status == 'O'" :content="contentTooltip" v-tippy key="deleted"> <fa-icon :icon="['fas', 'times']" /> </span> <!-- Status de mensagem deletada -->
129
+ <span
130
+ class="check"
131
+ v-if="status == 'D'"
132
+ :content="contentTooltip"
133
+ v-tippy
134
+ key="check-padrao"
135
+ >
136
+ <fa-icon :icon="['fas', 'check']" />
137
+ </span>
138
+ <span
139
+ class="check cinza"
140
+ v-else-if="status == 'Q'"
141
+ :content="contentTooltip"
142
+ v-tippy
143
+ key="check-cinza"
144
+ >
145
+ <fa-icon :icon="['fas', 'check']" />
146
+ </span>
147
+ <span
148
+ class="check preto"
149
+ v-else-if="status == 'G'"
150
+ :content="contentTooltip"
151
+ v-tippy
152
+ key="check-preto"
153
+ >
154
+ <fa-icon :icon="['fas', 'check']" />
155
+ </span>
156
+ <span
157
+ class="check preto"
158
+ v-else-if="status == 'E'"
159
+ :content="contentTooltip"
160
+ v-tippy
161
+ key="double-check-preto"
162
+ >
163
+ <fa-icon :icon="['fas', 'check-double']" />
164
+ </span>
165
+ <span
166
+ class="check visualizado"
167
+ v-else-if="status == 'L'"
168
+ :content="contentTooltip"
169
+ v-tippy
170
+ key="double-check-visualizado"
171
+ >
172
+ <fa-icon :icon="['fas', 'check-double']" />
173
+ </span>
174
+ <!-- Status finalizador -->
175
+ <span
176
+ class="check vermelho"
177
+ v-else-if="status == 'C' || status == 'ERRO'"
178
+ :content="contentTooltip"
179
+ v-tippy
180
+ key="times-circle"
181
+ >
182
+ <fa-icon :icon="['fas', 'times-circle']" />
183
+ </span>
184
+ <!-- Status finalizador -->
185
+ <span
186
+ class="check vermelho"
187
+ v-else-if="status == 'T'"
188
+ :content="contentTooltip"
189
+ v-tippy
190
+ key="hourglass"
191
+ >
192
+ <fa-icon :icon="['fas', 'hourglass']" />
193
+ </span>
194
+ <!-- Status finalizador -->
195
+ <span
196
+ class="check vermelho"
197
+ v-else-if="status == 'O'"
198
+ :content="contentTooltip"
199
+ v-tippy
200
+ key="deleted"
201
+ >
202
+ <fa-icon :icon="['fas', 'times']" />
203
+ </span>
204
+ <!-- Status de mensagem deletada -->
90
205
  </transition>
91
206
  <!-- Autor da mensagem -->
92
207
  <span class="autor-mensagem" v-html="autor"></span>
93
208
  <!-- Menu de opcoes da mensagem -->
94
- <div class="menu-primario" :class="origem" v-if="showMenu">
209
+ <div class="menu-primario" :class="origem" v-if="hasAnyMenu">
95
210
  <!-- <span class="menu-mensagem" @click="toggleIsMenuOpen" v-tippy :content="dictionary.tit_mais_msg">
96
211
  <fa-icon :icon="['fas', 'chevron-down']" />
97
212
  </span> -->
98
- <span class="menu-mensagem" @click="responderMensagemHandler" v-tippy :content="dictionary.tit_responder_msg">
213
+ <span
214
+ class="menu-mensagem"
215
+ @click="responderMensagemHandler"
216
+ v-tippy
217
+ :content="dictionary.tit_responder_msg"
218
+ v-if="showMenu.reply"
219
+ >
99
220
  <fa-icon :icon="['fas', 'reply']" />
100
221
  </span>
222
+ <span
223
+ class="menu-mensagem"
224
+ @click="reagirMensagemHandler"
225
+ v-tippy
226
+ :content="dictionary.tit_reagir_msg"
227
+ v-if="showMenu.reaction"
228
+ >
229
+ <fa-icon :icon="['fas', 'smile']" />
230
+ </span>
231
+ </div>
232
+ <div
233
+ class="emoji-message-container"
234
+ v-if="isEmojisOpen"
235
+ v-on-clickaway="closeEmojis"
236
+ >
237
+ <Picker @insert-emoji="addReaction" />
101
238
  </div>
102
239
  <transition name="fade" mode="out-in" v-if="isMenuOpen">
103
240
  <ul class="menu-flutuante" :class="origem" v-on-clickaway="closeMenu">
104
- <li @click="responderMensagemHandler">
241
+ <li @click="responderMensagemHandler" v-if="showMenu.reply">
105
242
  <span> {{ dictionary.tit_responder_msg }} </span>
106
243
  </li>
244
+ <li @click="reagirMensagemHandler" v-if="showMenu.reaction">
245
+ <span> {{ dictionary.tit_reagir_msg }} </span>
246
+ </li>
107
247
  </ul>
108
248
  </transition>
249
+ <transition name="fade" mode="out-in" v-if="messageReaction">
250
+ <span
251
+ class="reaction"
252
+ v-tippy
253
+ :content="`${dictionary.tit_mensagem_reagida} ${messageReaction.finalEmoji}`"
254
+ >
255
+ <span v-html="messageReaction.finalEmoji"></span>
256
+ </span>
257
+ </transition>
109
258
  </div>
110
259
  </div>
111
260
  </template>
112
261
 
113
262
  <script>
114
- import AnexoMensagem from "./AnexoMensagem"
115
- import InteratividadeBotoes from "./InteratividadeBotoes"
116
- import InteratividadeFormulario from "./InteratividadeFormulario"
117
- import { formataTimezoneData } from "../../services/textFormatting"
118
- import LinkPreview from './LinkPreview'
119
- import { mixin as clickaway } from 'vue-clickaway'
263
+ import AnexoMensagem from "./AnexoMensagem";
264
+ import InteratividadeBotoes from "./InteratividadeBotoes";
265
+ import InteratividadeFormulario from "./InteratividadeFormulario";
266
+ import Picker from "../Chat/Picker";
267
+ import { formataTimezoneData } from "../../services/textFormatting";
268
+ import LinkPreview from "./LinkPreview";
269
+ import { mixin as clickaway } from "vue-clickaway";
120
270
 
121
271
  export default {
122
- components: { AnexoMensagem, InteratividadeBotoes, InteratividadeFormulario, LinkPreview },
123
- props: ["smartchannel", "messageIndex", "dictionary", "autor", "origem", "msg", "link", "anexo", "imgAnexo", "tipoDoc", "docAnexo", "nomeArquivo", "audio", "video", "horario", "status", "logo", "msgTooltip", "seq", "mapa", "histMsg", "erro", "msgErro", "origemExterna", "anexos", "dominio", "corMsg", "interatividade", "msgReply", "hasReply", "iniDialogo", "dialogoId", "dialogoOrigem", "expSessao", "referenceSelector", "replyMessage", "isReply", "defaultReplyMessage", "showReplyIcon", "showControlFiles", "showMenu", "id_ext_msg"],
272
+ components: {
273
+ AnexoMensagem,
274
+ InteratividadeBotoes,
275
+ InteratividadeFormulario,
276
+ LinkPreview,
277
+ Picker,
278
+ },
279
+ props: [
280
+ "smartchannel",
281
+ "messageIndex",
282
+ "dictionary",
283
+ "autor",
284
+ "origem",
285
+ "msg",
286
+ "link",
287
+ "anexo",
288
+ "imgAnexo",
289
+ "tipoDoc",
290
+ "docAnexo",
291
+ "nomeArquivo",
292
+ "audio",
293
+ "video",
294
+ "horario",
295
+ "status",
296
+ "logo",
297
+ "msgTooltip",
298
+ "seq",
299
+ "mapa",
300
+ "histMsg",
301
+ "erro",
302
+ "msgErro",
303
+ "origemExterna",
304
+ "anexos",
305
+ "dominio",
306
+ "corMsg",
307
+ "interatividade",
308
+ "msgReply",
309
+ "hasReply",
310
+ "iniDialogo",
311
+ "dialogoId",
312
+ "dialogoOrigem",
313
+ "expSessao",
314
+ "referenceSelector",
315
+ "replyMessage",
316
+ "isReply",
317
+ "defaultReplyMessage",
318
+ "showReplyIcon",
319
+ "showControlFiles",
320
+ "showMenu",
321
+ "id_ext_msg",
322
+ ],
124
323
  created() {
125
- if(!this.$root.$refs.chatMessages) this.$root.$refs.chatMessages = this
324
+ if (!this.$root.$refs.chatMessages) this.$root.$refs.chatMessages = this;
126
325
  },
127
326
  mixins: [clickaway],
128
- data(){
129
- return{
327
+ data() {
328
+ return {
130
329
  strTooltipAux: "",
131
330
  linkAux: "",
132
331
  urlSticker: "",
@@ -136,7 +335,11 @@ export default {
136
335
  center: {},
137
336
  marker: {},
138
337
  infos: [],
139
- infoCanalTeste: {PRAZO: "2022-05-05", SITUACAO: {cod: "3", desc: "Em analise pelo fornecedor", cor: "#03A64A"}, DATA_ABERTURA: "2022-05-03 09:43:43"},
338
+ infoCanalTeste: {
339
+ PRAZO: "2022-05-05",
340
+ SITUACAO: { cod: "3", desc: "Em analise pelo fornecedor", cor: "#03A64A" },
341
+ DATA_ABERTURA: "2022-05-03 09:43:43",
342
+ },
140
343
  mapOptions: {
141
344
  zoomControl: true,
142
345
  mapTypeControl: false,
@@ -144,72 +347,89 @@ export default {
144
347
  streetViewControl: false,
145
348
  rotateControl: false,
146
349
  fullscreenControl: false,
147
- disableDefaultUI: false
350
+ disableDefaultUI: false,
148
351
  },
149
352
  isMenuOpen: false,
150
- showMenuOptions: false
151
- }
353
+ showMenuOptions: false,
354
+ isEmojisOpen: false,
355
+ messageReaction: "",
356
+ };
152
357
  },
153
358
  computed: {
154
- hrefAnexo(){
155
- if(this.docAnexo){
156
- if(this.tipoDoc == "erro"){
157
- return this.hrefAnexo = "#"
158
- }else{
159
- return this.docAnexo
359
+ hrefAnexo() {
360
+ if (this.docAnexo) {
361
+ if (this.tipoDoc == "erro") {
362
+ return (this.hrefAnexo = "#");
363
+ } else {
364
+ return this.docAnexo;
160
365
  }
161
366
  }
162
367
  },
163
368
  randomizeValue() {
164
- return `${(Math.floor(Math.random() * 7770))}${Date.now()}`
369
+ return `${Math.floor(Math.random() * 7770)}${Date.now()}`;
165
370
  },
166
371
  contentTooltip: {
167
- get(){
168
- if(this.status && !this.msgTooltip){
169
- const msgStatus = "msg_status_"+this.status
170
- return this.strTooltipAux = this.dictionary[msgStatus]
171
- }else if(this.status && this.msgTooltip){
172
- return this.strTooltipAux = this.msgTooltip
372
+ get() {
373
+ if (this.status && !this.msgTooltip) {
374
+ const msgStatus = "msg_status_" + this.status;
375
+ return (this.strTooltipAux = this.dictionary[msgStatus]);
376
+ } else if (this.status && this.msgTooltip) {
377
+ return (this.strTooltipAux = this.msgTooltip);
173
378
  }
174
379
  },
175
- set(msg){
176
- return this.contentTooltip = msg
177
- }
380
+ set(msg) {
381
+ return (this.contentTooltip = msg);
382
+ },
178
383
  },
179
384
  contentTooltipStar() {
180
385
  let tooltipStar = "";
181
- if(this.iniDialogo == 1){
182
- tooltipStar += this.dictionary['ini_sessao']+"<br/>"
183
- }
184
- else {
185
- tooltipStar += this.dictionary['ini_sessao_padrao']+"<br/>"
386
+ if (this.iniDialogo == 1) {
387
+ tooltipStar += this.dictionary["ini_sessao"] + "<br/>";
388
+ } else {
389
+ tooltipStar += this.dictionary["ini_sessao_padrao"] + "<br/>";
186
390
  }
187
- tooltipStar += this.dialogoId ? this.dictionary['id_conversa']+" - "+ this.dialogoId +"<br/>" : ""
188
- tooltipStar += this.dialogoOrigem ? this.dictionary['origem_conversa']+" - "+ this.dialogoOrigem +"<br/>" : ""
189
- tooltipStar += this.expSessao ? this.dictionary['expiracao_sessao']+" - "+ formataTimezoneData(this.expSessao) +"<br/>" : ""
190
- return tooltipStar
391
+ tooltipStar += this.dialogoId
392
+ ? this.dictionary["id_conversa"] + " - " + this.dialogoId + "<br/>"
393
+ : "";
394
+ tooltipStar += this.dialogoOrigem
395
+ ? this.dictionary["origem_conversa"] + " - " + this.dialogoOrigem + "<br/>"
396
+ : "";
397
+ tooltipStar += this.expSessao
398
+ ? this.dictionary["expiracao_sessao"] +
399
+ " - " +
400
+ formataTimezoneData(this.expSessao) +
401
+ "<br/>"
402
+ : "";
403
+ return tooltipStar;
191
404
  },
192
- validadeSeq(){
193
- if(this.seq && this.seq.substring(0, 2) == "HW") return true
194
- this.reply = "reply reply-with-2-icons"
405
+ validadeSeq() {
406
+ if (this.seq && this.seq.substring(0, 2) == "HW") return true;
407
+ this.reply = "reply reply-with-2-icons";
195
408
  return false;
196
- }
409
+ },
410
+ hasAnyMenu() {
411
+ if (!this.showMenu || typeof this.showMenu !== "object") return false;
412
+ for (let key in this.showMenu) {
413
+ if (this.showMenu.hasOwnProperty(key) && this.showMenu[key] === true) return true;
414
+ }
415
+ return false;
416
+ },
197
417
  },
198
418
  mounted() {
199
- if(this.mapa) this.setMap()
200
- if(this.corMsg) this.setCorMsg()
201
- this.validadeUrlToMsg()
419
+ if (this.mapa) this.setMap();
420
+ if (this.corMsg) this.setCorMsg();
421
+ this.validadeUrlToMsg();
202
422
  },
203
423
  methods: {
204
424
  closeMenu() {
205
- this.isMenuOpen = false
425
+ this.isMenuOpen = false;
206
426
  },
207
427
  toggleIsMenuOpen() {
208
- this.isMenuOpen = !this.isMenuOpen
428
+ this.isMenuOpen = !this.isMenuOpen;
209
429
  },
210
430
  responderMensagemHandler() {
211
- if(this.isMenuOpen) this.closeMenu()
212
- this.$emit('responder-mensagem', {
431
+ if (this.isMenuOpen) this.closeMenu();
432
+ this.$emit("responder-mensagem", {
213
433
  messageIndex: this.messageIndex,
214
434
  autor: this.autor,
215
435
  origem: this.origem,
@@ -226,12 +446,37 @@ export default {
226
446
  anexos: this.anexos,
227
447
  interatividade: this.interatividade,
228
448
  referenceSelector: this.referenceSelector,
229
- id_ext_msg: this.id_ext_msg
230
- })
449
+ id_ext_msg: this.id_ext_msg,
450
+ });
451
+ },
452
+ reagirMensagemHandler() {
453
+ if (this.isMenuOpen) this.closeMenu();
454
+ this.isEmojisOpen = !this.isEmojisOpen;
455
+ },
456
+ addReaction(emoji) {
457
+ this.messageReaction =
458
+ this.messageReaction && this.messageReaction.hexa === emoji.hexa
459
+ ? ""
460
+ : { hexa: emoji.hexa, finalEmoji: emoji.finalEmoji };
461
+ this.isEmojisOpen = false;
462
+ this.$emit("reagir-mensagem", {
463
+ emoji,
464
+ seq: this.seq,
465
+ id_ext_msg: this.id_ext_msg,
466
+ hasEmojiReaction: this.messageReaction ? true : false,
467
+ });
468
+ },
469
+ closeEmojis() {
470
+ this.isEmojisOpen = false;
231
471
  },
232
- validateInterativity(){
472
+ validateInterativity() {
233
473
  try {
234
- if(this.interatividade && (this.interatividade.formulario && this.interatividade.formulario.length) || (this.interatividade.list && this.interatividade.tipo == 'listItem')){
474
+ if (
475
+ (this.interatividade &&
476
+ this.interatividade.formulario &&
477
+ this.interatividade.formulario.length) ||
478
+ (this.interatividade.list && this.interatividade.tipo == "listItem")
479
+ ) {
235
480
  return true;
236
481
  }
237
482
  return false;
@@ -239,478 +484,557 @@ export default {
239
484
  return false;
240
485
  }
241
486
  },
242
- validadeUrlToMsg(){
487
+ validadeUrlToMsg() {
243
488
  try {
244
- this.message = this.msg
245
- if(this.validadeIfExistsSticker()){
246
- this.urlSticker = this.getUrlSticker()
247
- this.urlFileName = this.getUrlFileName()
248
- this.message = this.removeUrlStickerByString(this.urlSticker)
489
+ this.message = this.msg;
490
+ if (this.validadeIfExistsSticker()) {
491
+ this.urlSticker = this.getUrlSticker();
492
+ this.urlFileName = this.getUrlFileName();
493
+ this.message = this.removeUrlStickerByString(this.urlSticker);
249
494
  }
250
495
  } catch (error) {
251
- console.error("Error validating url to msg: ", error)
496
+ console.error("Error validating url to msg: ", error);
252
497
  }
253
498
  },
254
- getUrlFileName(){
499
+ getUrlFileName() {
255
500
  let urlRegex = /(?<=\/)[^\/\?#]+(?=[^\/]*$)/;
256
501
  let urlName = this.urlSticker.match(urlRegex)[0];
257
502
  return urlName;
258
503
  },
259
- removeUrlStickerByString(url){
260
- let msg = this.message.replace(`KSTICKERK ${url}`, '')
504
+ removeUrlStickerByString(url) {
505
+ let msg = this.message.replace(`KSTICKERK ${url}`, "");
261
506
  return msg;
262
507
  },
263
- getUrlSticker(){
508
+ getUrlSticker() {
264
509
  let urlRegex = /(https?:\/\/[^ ]*)/;
265
510
  let url = this.message.match(urlRegex)[1];
266
511
  return url;
267
512
  },
268
- validadeIfExistsSticker(){
269
- if(this.message && this.message.indexOf("KSTICKERK https://") === 0) return true
270
- return false
513
+ validadeIfExistsSticker() {
514
+ if (this.message && this.message.indexOf("KSTICKERK https://") === 0) return true;
515
+ return false;
271
516
  },
272
517
  setCorMsg() {
273
518
  try {
274
- const root = document.documentElement
275
- root.style.setProperty('--message-color', this.corMsg)
276
- this.adjustFontColor(this.corMsg)
277
- }catch(e) {
278
- console.error("Erro ao atribuir a cor as mensagens")
279
- console.error(e)
519
+ const root = document.documentElement;
520
+ root.style.setProperty("--message-color", this.corMsg);
521
+ this.adjustFontColor(this.corMsg);
522
+ } catch (e) {
523
+ console.error("Erro ao atribuir a cor as mensagens");
524
+ console.error(e);
280
525
  }
281
526
  },
282
527
  setMap() {
283
- let objMapa = typeof this.mapa === "string" ? JSON.parse(`${this.mapa}`) : this.mapa
284
- if(objMapa.latitude && objMapa.longitude) {
285
- objMapa.latitude = parseFloat(objMapa.latitude)
286
- objMapa.longitude = parseFloat(objMapa.longitude)
528
+ let objMapa =
529
+ typeof this.mapa === "string" ? JSON.parse(`${this.mapa}`) : this.mapa;
530
+ if (objMapa.latitude && objMapa.longitude) {
531
+ objMapa.latitude = parseFloat(objMapa.latitude);
532
+ objMapa.longitude = parseFloat(objMapa.longitude);
287
533
 
288
- this.center.lat = objMapa.latitude
289
- this.center.lng = objMapa.longitude
534
+ this.center.lat = objMapa.latitude;
535
+ this.center.lng = objMapa.longitude;
290
536
 
291
- this.marker.lat = objMapa.latitude
292
- this.marker.lng = objMapa.longitude
537
+ this.marker.lat = objMapa.latitude;
538
+ this.marker.lng = objMapa.longitude;
293
539
 
294
540
  this.infos.push(
295
541
  { classe: "title", value: objMapa.name },
296
542
  { classe: "address", value: objMapa.address },
297
- { classe: "url", value: `https://www.google.com/maps/search/?api=1&query=${this.marker.lat},${this.marker.lng}`, link: true, textLink: this.dictionary.abrir_mapa }
298
- )
543
+ {
544
+ classe: "url",
545
+ value: `https://www.google.com/maps/search/?api=1&query=${this.marker.lat},${this.marker.lng}`,
546
+ link: true,
547
+ textLink: this.dictionary.abrir_mapa,
548
+ }
549
+ );
299
550
  }
300
551
  },
301
552
  abrirPopup(url) {
302
- window.open(url, "map-popup", "width=auto,height=auto")
553
+ window.open(url, "map-popup", "width=auto,height=auto");
303
554
  },
304
555
  abrirImagem(imagem) {
305
- this.$emit("abrir-imagem", imagem)
556
+ this.$emit("abrir-imagem", imagem);
306
557
  },
307
558
  adjustFontColor(cor) {
308
559
  try {
309
560
  var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(cor);
310
561
 
311
- if(!result) return
562
+ if (!result) return;
312
563
 
313
564
  var r = parseInt(result[1], 16);
314
565
  var g = parseInt(result[2], 16);
315
566
  var b = parseInt(result[3], 16);
316
567
 
317
- r /= 255, g /= 255, b /= 255;
318
- var max = Math.max(r, g, b), min = Math.min(r, g, b);
319
- var h, s, l = (max + min) / 2;
568
+ (r /= 255), (g /= 255), (b /= 255);
569
+ var max = Math.max(r, g, b),
570
+ min = Math.min(r, g, b);
571
+ var h,
572
+ s,
573
+ l = (max + min) / 2;
320
574
 
321
- if(max == min){
322
- h = s = 0; // achromatic
575
+ if (max == min) {
576
+ h = s = 0; // achromatic
323
577
  } else {
324
- var d = max - min;
325
- s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
326
- switch(max) {
327
- case r: h = (g - b) / d + (g < b ? 6 : 0); break;
328
- case g: h = (b - r) / d + 2; break;
329
- case b: h = (r - g) / d + 4; break;
330
- }
331
- h /= 6;
578
+ var d = max - min;
579
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
580
+ switch (max) {
581
+ case r:
582
+ h = (g - b) / d + (g < b ? 6 : 0);
583
+ break;
584
+ case g:
585
+ h = (b - r) / d + 2;
586
+ break;
587
+ case b:
588
+ h = (r - g) / d + 4;
589
+ break;
590
+ }
591
+ h /= 6;
332
592
  }
333
593
 
334
- s = s*100;
594
+ s = s * 100;
335
595
  s = Math.round(s);
336
- l = l*100;
596
+ l = l * 100;
337
597
  l = Math.round(l);
338
- h = Math.round(360*h);
339
-
340
- const root = document.documentElement
341
- root.style.setProperty('--text-color', l <= 50 ? "#FFF" : "#111B21")
342
- root.style.setProperty('--files-bg', l <= 50 ? "rgba(255, 255, 255, 0.1)" : "rgba(100, 100, 100, 0.1)")
343
- root.style.setProperty('--files-bg-hover', l <= 50 ? "rgba(255, 255, 255, 0.3)" : "rgba(100, 100, 100, 0.3)")
344
- }catch(e) {
345
- console.error("Erro ao ajustar a cor da mensagem: ", e)
598
+ h = Math.round(360 * h);
599
+
600
+ const root = document.documentElement;
601
+ root.style.setProperty("--text-color", l <= 50 ? "#FFF" : "#111B21");
602
+ root.style.setProperty(
603
+ "--files-bg",
604
+ l <= 50 ? "rgba(255, 255, 255, 0.1)" : "rgba(100, 100, 100, 0.1)"
605
+ );
606
+ root.style.setProperty(
607
+ "--files-bg-hover",
608
+ l <= 50 ? "rgba(255, 255, 255, 0.3)" : "rgba(100, 100, 100, 0.3)"
609
+ );
610
+ } catch (e) {
611
+ console.error("Erro ao ajustar a cor da mensagem: ", e);
346
612
  }
347
613
  },
348
614
  formatMsg(msg) {
349
- if(this.status == 'O') return this.dictionary.msg_excluida ? this.dictionary.msg_excluida : 'MENSAGEM DELETADA'
350
- const regex = /(\n|&nbsp;)/g
351
- if(regex.test(msg)) msg = msg.replace(regex, "<br>")
352
- return msg
615
+ if (this.status == "O")
616
+ return this.dictionary.msg_excluida
617
+ ? this.dictionary.msg_excluida
618
+ : "MENSAGEM DELETADA";
619
+ const regex = /(\n|&nbsp;)/g;
620
+ if (regex.test(msg)) msg = msg.replace(regex, "<br>");
621
+ return msg;
353
622
  },
354
- }
355
- }
623
+ },
624
+ };
356
625
  </script>
357
626
 
358
627
  <style>
359
- :root {
360
- --message-color: #373737;
361
- --text-color: #FFF;
362
- --files-bg: rgba(255, 255, 255, 0.1);
363
- --files-bg-hover: rgba(255, 255, 255, 0.1);
364
-
365
- --light: 80;
366
- --threshold: 60;
367
- }
368
-
369
- .fade-enter-active, .fade-leave-active {
370
- transition: opacity .5s;
371
- }
372
- .fade-enter, .fade-leave-to {
373
- opacity: 0;
374
- }
375
-
376
- .mensagem-reply {
377
- padding: 5px 10px;
378
- font-size: .75rem;
379
- color: #666;
380
- transition: background-color 150ms ease-in-out;
381
- border-radius: 5px;
382
- margin: 5px 0;
383
- overflow: hidden;
384
- max-width: 100%;
385
- }
386
- .mensagem-reply p {
387
- overflow: hidden;
388
- text-overflow: ellipsis;
389
- white-space: nowrap;
390
- }
391
-
392
- .message-reply-principal {
393
- border-left: 3px solid transparent;
394
- background-color: rgba(100, 100, 100, 0.1)
395
- }
396
- .message-reply-principal:hover {
397
- background-color: rgba(100, 100, 100, 0.2);
398
- }
399
-
400
- .message-reply-outros {
401
- background-color: rgb(245, 245, 245);
402
- border-left: 3px solid var(--message-color);
403
- }
404
- .message-reply-outros:hover {
405
- background-color: rgb(235, 235, 235)
406
- }
407
-
408
- .mensagem-reply-vazia {
409
- display: flex;
410
- align-items: center;
411
- }
412
- .mensagem-reply-vazia svg {
413
- margin-right: 5px;
414
- color: #ba181b;
415
- }
416
-
417
- .mensagem {
418
- padding: 20px 7px 14px 7px;
419
- border-radius: 5px;
420
- min-width: 150px;
421
- min-height: 60px;
422
- width: -webkit-fit-content;
423
- width: -moz-fit-content;
424
- width: fit-content;
425
- position: relative;
426
- max-width: 80%;
427
- margin-bottom: 10px;
428
- font-size: .75rem;
429
- word-break: break-word;
430
-
431
- -webkit-box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
432
- -moz-box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
433
- box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
434
- }
435
- .mensagem.max-w-60 {
436
- max-width: 60%;
437
- }
438
- .mensagem.mapa {
439
- width: 100%
440
- }
441
- .mensagem.hist-msg {
442
- animation: show 1s;
443
- }
444
- .mensagem a {
445
- margin-right: 5px;
446
- font-weight: 550;
447
- color: inherit;
448
- text-decoration: none;
449
- }
450
- .mensagem a:hover {
451
- text-decoration: underline;
452
- }
453
- .message p {
454
- white-space: pre-wrap;
455
- }
456
- .mensagem:hover .menu-primario {
457
- visibility: visible;
458
- opacity: 1;
459
- }
460
-
461
- .mensagem-anexo a, .mensagem-div-mapa a {
462
- white-space: nowrap;
463
- text-overflow: ellipsis;
464
- overflow: hidden;
465
- }
466
-
467
- .reply {
468
- cursor: pointer;
469
- position: absolute;
470
- right: 53px;
471
- bottom: 5px;
472
- font-size: .6rem;
473
- color: #67a332;
474
- width: .9rem;
475
- height: .9rem;
476
- display: flex;
477
- justify-content: center;
478
- align-items: center;
479
- border-radius: 50%;
480
- background-color: #FFF;
481
- }
482
- .reply svg {
483
- margin-top: -1px;
484
- margin-right: -1px;
485
- }
486
- .reply-with-2-icons{
487
- right: 30px;
488
- }
489
-
490
- .check{
491
- cursor: pointer;
492
- position: absolute;
493
- right: 10px;
494
- bottom: 2px;
495
- font-size: 0.7rem;
496
- }
497
- .check.visualizado, .check.visualizado svg{
498
- color: #006DAA
499
- }
500
- .check.verde, .check.verde svg{
501
- color: #4f772d
502
- }
503
- .check.vermelho, .check.vermelho svg{
504
- color: #ba181b
505
- }
506
- .check.cinza, .check.cinza svg{
507
- color: #999
508
- }
509
- .check.preto, .check.preto svg{
510
- color: #666
511
- }
512
- .star{
513
- cursor: pointer;
514
- position: absolute;
515
- right: 30px;
516
- bottom: 2px;
517
- font-size: 0.4rem;
518
- width: 11.2px;
519
- }
520
- .default-stick-size{
521
- width: 180px;
522
- height: auto;
523
- }
524
- .horario-envio {
525
- margin-right: 15px;
526
- font-size: 0.7rem;
527
- position: absolute;
528
- left: 10px;
529
- bottom: 2px;
530
- }
531
-
532
- .autor-mensagem {
533
- position: absolute;
534
- font-size: 0.6rem;
535
- white-space: nowrap;
536
- text-overflow: ellipsis;
537
- overflow: hidden;
538
- max-width: 90%;
539
- font-weight: bold;
540
- top: 2px;
541
- }
542
-
543
- .menu-primario {
544
- visibility: hidden;
545
- opacity: 0;
546
- transition: opacity 150ms ease-in-out;
547
- position: absolute;
548
- font-size: 0.7rem;
549
- top: 3px;
550
- display: flex;
551
- gap: 5px;
552
- padding: 2px 4px;
553
- }
554
- .menu-primario.principal {
555
- left: 4px;
556
- color: var(--text-color);
557
- background-color: var(--message-color);
558
- }
559
- .menu-primario.outros {
560
- right: 4px;
561
- color: var(--text-color);
562
- background-color: #FFF;
563
- }
564
-
565
- .menu-primario.outros > span:nth-child(1) {
566
- order: 10;
567
- }
568
-
569
- .menu-mensagem {
570
- cursor: pointer;
571
- padding: 1px;
572
- }
573
-
574
- .menu-flutuante {
575
- background-color: #FFF;
576
- -webkit-box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
577
- -moz-box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
578
- box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
579
- border-radius: 10px;
580
- position: absolute;
581
- top: 20px;
582
- width: 120px;
583
- min-height: 50px;
584
- height: 50px;
585
- max-height: 50px;
586
- overflow-x: hidden;
587
- overflow-y: auto;
588
- margin: 0;
589
- padding: 0;
590
- display: flex;
591
- flex-direction: column;
592
- z-index: 1;
593
- }
594
-
595
- .menu-flutuante.principal {
596
- left: 3px
597
- }
598
-
599
- .menu-flutuante.outros {
600
- right: 3px
601
- }
602
-
603
- .menu-flutuante li {
604
- transition: background-color 300ms ease-in-out;
605
- width: 100%;
606
- cursor: pointer;
607
- padding: 5px 10px;
608
- display: flex;
609
- align-items: center;
610
- }
611
-
612
- .menu-flutuante li:hover {
613
- background-color: #e9e9e9;
614
- }
615
-
616
- /* Principal */
617
- .mensagem__principal {
618
- width: 100%;
619
- display: flex;
620
- justify-content: flex-end;
621
- }
622
- .mensagem__principal > .mensagem::after {
623
- content: "";
624
- width: 0;
625
- height: 0;
626
- position: absolute;
627
- border-left: 10px solid transparent;
628
- border-right: 10px solid transparent;
629
- border-top: 10px solid var(--message-color);
630
- bottom: 5px;
631
- right: -10px;
632
- transform: rotate(-90deg);
633
- }
634
- .mensagem__principal > .mensagem {
635
- background-color: var(--message-color);
636
- color: var(--text-color);
637
- }
638
-
639
- .mensagem__principal > .mensagem .horario-envio {
640
- color: var(--text-color);
641
- }
642
- .mensagem__principal > .mensagem .autor-mensagem {
643
- right: 5px;
644
- color: var(--text-color);
645
- }
646
- /* Outros */
647
- .mensagem__outros {
648
- width: 100%;
649
- display: flex;
650
- }
651
- .mensagem__outros > .mensagem{
652
- background-color: #FFF;
653
- color: #333;
654
- }
655
- .mensagem__outros > .mensagem::after{
656
- content: "";
657
- width: 0;
658
- height: 0;
659
- position: absolute;
660
- border-left: 10px solid transparent;
661
- border-right: 10px solid transparent;
662
- border-top: 10px solid #FFF;
663
- bottom: 5px;
664
- left: -10px;
665
- transform: rotate(90deg);
666
- }
667
- /* .mensagem__outros .check{
628
+ :root {
629
+ --message-color: #373737;
630
+ --text-color: #fff;
631
+ --files-bg: rgba(255, 255, 255, 0.1);
632
+ --files-bg-hover: rgba(255, 255, 255, 0.1);
633
+
634
+ --light: 80;
635
+ --threshold: 60;
636
+ }
637
+
638
+ .fade-enter-active,
639
+ .fade-leave-active {
640
+ transition: opacity 0.5s;
641
+ }
642
+ .fade-enter,
643
+ .fade-leave-to {
644
+ opacity: 0;
645
+ }
646
+
647
+ .mensagem-reply {
648
+ padding: 5px 10px;
649
+ font-size: 0.75rem;
650
+ color: #666;
651
+ transition: background-color 150ms ease-in-out;
652
+ border-radius: 5px;
653
+ margin: 5px 0;
654
+ overflow: hidden;
655
+ max-width: 100%;
656
+ }
657
+ .mensagem-reply p {
658
+ overflow: hidden;
659
+ text-overflow: ellipsis;
660
+ white-space: nowrap;
661
+ }
662
+
663
+ .message-reply-principal {
664
+ border-left: 3px solid transparent;
665
+ background-color: rgba(100, 100, 100, 0.1);
666
+ }
667
+ .message-reply-principal:hover {
668
+ background-color: rgba(100, 100, 100, 0.2);
669
+ }
670
+
671
+ .message-reply-outros {
672
+ background-color: rgb(245, 245, 245);
673
+ border-left: 3px solid var(--message-color);
674
+ }
675
+ .message-reply-outros:hover {
676
+ background-color: rgb(235, 235, 235);
677
+ }
678
+
679
+ .mensagem-reply-vazia {
680
+ display: flex;
681
+ align-items: center;
682
+ }
683
+ .mensagem-reply-vazia svg {
684
+ margin-right: 5px;
685
+ color: #ba181b;
686
+ }
687
+
688
+ .mensagem {
689
+ padding: 20px 7px 14px 7px;
690
+ border-radius: 5px;
691
+ min-width: 150px;
692
+ min-height: 60px;
693
+ width: -webkit-fit-content;
694
+ width: -moz-fit-content;
695
+ width: fit-content;
696
+ position: relative;
697
+ max-width: 80%;
698
+ margin-bottom: 10px;
699
+ font-size: 0.75rem;
700
+ word-break: break-word;
701
+
702
+ -webkit-box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2),
703
+ 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
704
+ -moz-box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2),
705
+ 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
706
+ box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14),
707
+ 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
708
+ }
709
+ .mensagem.max-w-60 {
710
+ max-width: 60%;
711
+ }
712
+ .mensagem.mapa {
713
+ width: 100%;
714
+ }
715
+ .mensagem.hist-msg {
716
+ animation: show 1s;
717
+ }
718
+ .mensagem a {
719
+ margin-right: 5px;
720
+ font-weight: 550;
721
+ color: inherit;
722
+ text-decoration: none;
723
+ }
724
+ .mensagem a:hover {
725
+ text-decoration: underline;
726
+ }
727
+ .message p {
728
+ white-space: pre-wrap;
729
+ }
730
+ .mensagem:hover .menu-primario {
731
+ visibility: visible;
732
+ opacity: 1;
733
+ }
734
+
735
+ .mensagem-anexo a,
736
+ .mensagem-div-mapa a {
737
+ white-space: nowrap;
738
+ text-overflow: ellipsis;
739
+ overflow: hidden;
740
+ }
741
+
742
+ .reply {
743
+ cursor: pointer;
744
+ position: absolute;
745
+ right: 53px;
746
+ bottom: 5px;
747
+ font-size: 0.6rem;
748
+ color: #67a332;
749
+ width: 0.9rem;
750
+ height: 0.9rem;
751
+ display: flex;
752
+ justify-content: center;
753
+ align-items: center;
754
+ border-radius: 50%;
755
+ background-color: #fff;
756
+ }
757
+ .reply svg {
758
+ margin-top: -1px;
759
+ margin-right: -1px;
760
+ }
761
+ .reply-with-2-icons {
762
+ right: 30px;
763
+ }
764
+
765
+ .check {
766
+ cursor: pointer;
767
+ position: absolute;
768
+ right: 10px;
769
+ bottom: 2px;
770
+ font-size: 0.7rem;
771
+ }
772
+ .check.visualizado,
773
+ .check.visualizado svg {
774
+ color: #006daa;
775
+ }
776
+ .check.verde,
777
+ .check.verde svg {
778
+ color: #4f772d;
779
+ }
780
+ .check.vermelho,
781
+ .check.vermelho svg {
782
+ color: #ba181b;
783
+ }
784
+ .check.cinza,
785
+ .check.cinza svg {
786
+ color: #999;
787
+ }
788
+ .check.preto,
789
+ .check.preto svg {
790
+ color: #666;
791
+ }
792
+ .star {
793
+ cursor: pointer;
794
+ position: absolute;
795
+ right: 30px;
796
+ bottom: 2px;
797
+ font-size: 0.4rem;
798
+ width: 11.2px;
799
+ }
800
+ .default-stick-size {
801
+ width: 180px;
802
+ height: auto;
803
+ }
804
+ .horario-envio {
805
+ margin-right: 15px;
806
+ font-size: 0.7rem;
807
+ position: absolute;
808
+ left: 10px;
809
+ bottom: 2px;
810
+ }
811
+
812
+ .autor-mensagem {
813
+ position: absolute;
814
+ font-size: 0.6rem;
815
+ white-space: nowrap;
816
+ text-overflow: ellipsis;
817
+ overflow: hidden;
818
+ max-width: 90%;
819
+ font-weight: bold;
820
+ top: 2px;
821
+ }
822
+
823
+ .menu-primario {
824
+ visibility: hidden;
825
+ opacity: 0;
826
+ transition: opacity 150ms ease-in-out;
827
+ position: absolute;
828
+ font-size: 0.7rem;
829
+ top: 3px;
830
+ display: flex;
831
+ gap: 5px;
832
+ padding: 2px 4px;
833
+ }
834
+ .menu-primario.principal {
835
+ left: 4px;
836
+ color: var(--text-color);
837
+ background-color: var(--message-color);
838
+ }
839
+ .menu-primario.outros {
840
+ right: 4px;
841
+ color: var(--text-color);
842
+ background-color: #fff;
843
+ }
844
+
845
+ .menu-primario.outros > span:nth-child(1) {
846
+ order: 10;
847
+ }
848
+
849
+ .menu-mensagem {
850
+ cursor: pointer;
851
+ padding: 1px;
852
+ }
853
+
854
+ .menu-flutuante {
855
+ background-color: #fff;
856
+ -webkit-box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2),
857
+ 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
858
+ -moz-box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2),
859
+ 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
860
+ box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14),
861
+ 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
862
+ border-radius: 10px;
863
+ position: absolute;
864
+ top: 20px;
865
+ width: 120px;
866
+ min-height: 50px;
867
+ height: 50px;
868
+ max-height: 50px;
869
+ overflow-x: hidden;
870
+ overflow-y: auto;
871
+ margin: 0;
872
+ padding: 0;
873
+ display: flex;
874
+ flex-direction: column;
875
+ z-index: 1;
876
+ }
877
+
878
+ .menu-flutuante.principal {
879
+ left: 3px;
880
+ }
881
+
882
+ .menu-flutuante.outros {
883
+ right: 3px;
884
+ }
885
+
886
+ .menu-flutuante li {
887
+ transition: background-color 300ms ease-in-out;
888
+ width: 100%;
889
+ cursor: pointer;
890
+ padding: 5px 10px;
891
+ display: flex;
892
+ align-items: center;
893
+ }
894
+
895
+ .menu-flutuante li:hover {
896
+ background-color: #e9e9e9;
897
+ }
898
+
899
+ /* Principal */
900
+ .mensagem__principal {
901
+ width: 100%;
902
+ display: flex;
903
+ justify-content: flex-end;
904
+ }
905
+ .mensagem__principal > .mensagem::after {
906
+ content: "";
907
+ width: 0;
908
+ height: 0;
909
+ position: absolute;
910
+ border-left: 10px solid transparent;
911
+ border-right: 10px solid transparent;
912
+ border-top: 10px solid var(--message-color);
913
+ bottom: 5px;
914
+ right: -10px;
915
+ transform: rotate(-90deg);
916
+ }
917
+ .mensagem__principal > .mensagem {
918
+ background-color: var(--message-color);
919
+ color: var(--text-color);
920
+ }
921
+
922
+ .mensagem__principal > .mensagem .horario-envio {
923
+ color: var(--text-color);
924
+ }
925
+ .mensagem__principal > .mensagem .autor-mensagem {
926
+ right: 5px;
927
+ color: var(--text-color);
928
+ }
929
+ /* Outros */
930
+ .mensagem__outros {
931
+ width: 100%;
932
+ display: flex;
933
+ }
934
+ .mensagem__outros > .mensagem {
935
+ background-color: #fff;
936
+ color: #333;
937
+ }
938
+ .mensagem__outros > .mensagem::after {
939
+ content: "";
940
+ width: 0;
941
+ height: 0;
942
+ position: absolute;
943
+ border-left: 10px solid transparent;
944
+ border-right: 10px solid transparent;
945
+ border-top: 10px solid #fff;
946
+ bottom: 5px;
947
+ left: -10px;
948
+ transform: rotate(90deg);
949
+ }
950
+ /* .mensagem__outros .check{
668
951
  display: none
669
952
  } */
670
- .mensagem__outros > .autor-mensagem{
671
- left: 5px;
672
- color: #333;
673
- }
674
- /* Mapa */
675
- .mensagem-div-mapa {
676
- width: 100%;
677
- display: flex;
678
- justify-content: center;
679
- align-items: center;
680
- flex-direction: column;
681
- margin-bottom: 5px;
682
- }
683
-
684
- .msg-mapa {
685
- width: 100%;
686
- min-height: 225px;
687
- height: 100%;
688
- box-sizing: initial;
689
- }
690
- .msg-mapa img {
691
- max-width: none!important;
692
- }
693
-
694
- .info-mapa {
695
- list-style-type: none;
696
- }
697
- .info-mapa li.title {
698
- font-size: .85em
699
- }
700
- .info-mapa li.address, .info-mapa li.url {
701
- font-size: .85em
702
- }
703
- .info-mapa li.url {
704
- font-size: .85em
705
- }
706
-
707
- .tooltip-list {
708
- margin: 0;
709
- padding: 0;
710
- display: flex;
711
- flex-direction: column;
712
- justify-content: center;
713
- align-items: flex-start;
714
- }
953
+ .mensagem__outros > .autor-mensagem {
954
+ left: 5px;
955
+ color: #333;
956
+ }
957
+ /* Mapa */
958
+ .mensagem-div-mapa {
959
+ width: 100%;
960
+ display: flex;
961
+ justify-content: center;
962
+ align-items: center;
963
+ flex-direction: column;
964
+ margin-bottom: 5px;
965
+ }
966
+
967
+ .msg-mapa {
968
+ width: 100%;
969
+ min-height: 225px;
970
+ height: 100%;
971
+ box-sizing: initial;
972
+ }
973
+ .msg-mapa img {
974
+ max-width: none !important;
975
+ }
715
976
 
977
+ .info-mapa {
978
+ list-style-type: none;
979
+ }
980
+ .info-mapa li.title {
981
+ font-size: 0.85em;
982
+ }
983
+ .info-mapa li.address,
984
+ .info-mapa li.url {
985
+ font-size: 0.85em;
986
+ }
987
+ .info-mapa li.url {
988
+ font-size: 0.85em;
989
+ }
990
+
991
+ .tooltip-list {
992
+ margin: 0;
993
+ padding: 0;
994
+ display: flex;
995
+ flex-direction: column;
996
+ justify-content: center;
997
+ align-items: flex-start;
998
+ }
999
+
1000
+ .emoji-message-container {
1001
+ position: absolute;
1002
+ top: 0;
1003
+ left: 0;
1004
+ right: 0;
1005
+ }
1006
+
1007
+ .emoji-message-container .sm-emoji-picker {
1008
+ height: 200px;
1009
+ width: 90% !important;
1010
+ }
1011
+ .emoji-message-container .sm-emoji-picker .sm-emoji-header {
1012
+ overflow-x: auto;
1013
+ overflow-y: hidden;
1014
+ }
1015
+
1016
+ .reaction {
1017
+ position: absolute;
1018
+ bottom: 0;
1019
+ border-radius: 50%;
1020
+ display: flex;
1021
+ justify-content: center;
1022
+ align-items: center;
1023
+ background-color: rgba(100, 100, 100, 0.4);
1024
+ padding: 5px;
1025
+ font-size: 1.3em;
1026
+ }
1027
+
1028
+ .reaction > span {
1029
+ display: block;
1030
+ transform: translateY(-1px);
1031
+ }
1032
+
1033
+ .mensagem__outros .reaction {
1034
+ right: -30px;
1035
+ }
1036
+
1037
+ .mensagem__principal .reaction {
1038
+ left: -30px;
1039
+ }
716
1040
  </style>