vue-intergrall-plugins 1.1.89 → 1.2.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.
Files changed (45) hide show
  1. package/README.md +220 -220
  2. package/dist/dist/vue-intergrall-plugins.css +1 -1
  3. package/dist/vue-intergrall-plugins.esm.js +193 -78
  4. package/dist/vue-intergrall-plugins.min.js +7 -7
  5. package/dist/vue-intergrall-plugins.ssr.js +245 -136
  6. package/package.json +61 -61
  7. package/src/lib-components/Buttons/IconButton.vue +27 -27
  8. package/src/lib-components/Buttons/SimpleButton.vue +140 -140
  9. package/src/lib-components/Cards/Card.vue +490 -490
  10. package/src/lib-components/Cards/CardCheck.vue +35 -35
  11. package/src/lib-components/Cards/CardFile.vue +163 -163
  12. package/src/lib-components/Chat/BtnDownloadAllFiles.vue +36 -36
  13. package/src/lib-components/Chat/BtnEmojis.vue +118 -118
  14. package/src/lib-components/Chat/BtnExpand.vue +17 -17
  15. package/src/lib-components/Chat/BtnFiles.vue +486 -486
  16. package/src/lib-components/Chat/BtnMic.vue +60 -60
  17. package/src/lib-components/Chat/BtnScreenShare.vue +31 -31
  18. package/src/lib-components/Chat/BtnStandardMessages.vue +17 -17
  19. package/src/lib-components/Chat/ExpandTextarea.vue +427 -427
  20. package/src/lib-components/Chat/MultipleFilePreview.vue +291 -291
  21. package/src/lib-components/Chat/Picker.vue +525 -525
  22. package/src/lib-components/Chat/RemainingCharacters.vue +28 -28
  23. package/src/lib-components/Chat/SingleFilePreview.vue +94 -94
  24. package/src/lib-components/Chat/SkeletonPicker.vue +110 -110
  25. package/src/lib-components/Chat/StandardMessages.vue +252 -252
  26. package/src/lib-components/Chat/TextFooter.vue +1007 -1007
  27. package/src/lib-components/Email/EmailExpanded.vue +270 -270
  28. package/src/lib-components/Email/EmailFile.vue +192 -192
  29. package/src/lib-components/Email/EmailFrom.vue +66 -66
  30. package/src/lib-components/Email/EmailItem.vue +867 -850
  31. package/src/lib-components/Email/EmailTo.vue +64 -64
  32. package/src/lib-components/Loader/Loader.vue +78 -78
  33. package/src/lib-components/Messages/AnexoMensagem.vue +534 -497
  34. package/src/lib-components/Messages/CardAttachment.vue +61 -61
  35. package/src/lib-components/Messages/CardMessages.vue +687 -687
  36. package/src/lib-components/Messages/InteratividadeBotoes.vue +197 -197
  37. package/src/lib-components/Messages/InteratividadeContato.vue +32 -32
  38. package/src/lib-components/Messages/InteratividadeContatoItem.vue +235 -235
  39. package/src/lib-components/Messages/InteratividadeFormulario.vue +334 -334
  40. package/src/lib-components/Messages/InteratividadePopup.vue +95 -95
  41. package/src/lib-components/Messages/LinkPreview.vue +176 -176
  42. package/src/lib-components/Scroll/ScrollContent.vue +166 -166
  43. package/src/lib-components/Templates/TemplateGenerator.vue +640 -640
  44. package/src/lib-components/Templates/TemplateMessage.vue +83 -83
  45. package/src/lib-components/Templates/TemplateSingle.vue +478 -478
@@ -1,334 +1,334 @@
1
- <template>
2
- <div class="interatividade">
3
- <!-- TABELA INTERATIVIDADE HO -->
4
- <template v-if="informacao.length">
5
- <div class="interatividade-form-body">
6
- <div v-for="form in informacao" :key="form.TIPO_TEXTO" class="interatividade-info-form">
7
- <p v-if="form.TIPO_TEXTO < 1000" v-text="form.DESC_TIPO_TEXTO" class="interatividade-titulo-form"></p>
8
- <p v-if="form.TIPO_TEXTO < 1000" v-text="form.TEXTO" class="interatividade-description-form"></p>
9
- </div>
10
- <div v-if="informacaoAdicional.length" class="interatividade-form-header">
11
- {{ dictionary.msg_info_adicional }}
12
- </div>
13
- <div class="interatividade-form-body">
14
- <div v-for="form in informacaoAdicional" :key="form.TIPO_TEXTO" class="interatividade-add-info-form">
15
- <div class="divisor-form-info-aditional">
16
- <div class="info-aditional">
17
- <p v-if="form.TIPO_TEXTO > 999" v-text="form.DESC_TIPO_TEXTO + ': '" class="interatividade-titulo-form">
18
- </p>
19
- </div>
20
- <div class="info-aditional">
21
- <p v-if="form.TIPO_TEXTO > 999" v-text="form.TEXTO" class="interatividade-description-form"></p>
22
- </div>
23
- </div>
24
- </div>
25
- </div>
26
- <h3 class="m-5 text-bold" v-text="`Anexos`"></h3>
27
- <div class="d-flex flex-wrap align-items-center">
28
- <div v-for="({ name, type, mkuDownload, mku }, fileIndex) in anexos" :key="`file-${fileIndex}`"
29
- class="mb-5 mx-5 d-flex">
30
- <img class="box-shadow max-w-75px max-h-75px cursor-pointer" @click="openFile(mku, type)" v-if="!type"
31
- :src="`${dominio}/callcenter/docs.php?mku=${mku}`" :alt="name" :title="name" />
32
- <span v-else style="display: flex; align-items: center; justify-content-center; cursor: pointer;"
33
- @click="openFile(mku, type)" :title="name">
34
-
35
- <fa-icon :icon="returnCurrentIcon(type)" :class="returnCurrentClass(type)" />
36
- </span>
37
- <a class="d-flex align-items-end ml-3 text-dark" :href="`${dominio}/callcenter/docs.php?mku=${mkuDownload}`"
38
- :download="`${name}`" target="_blank" rel="noreferrer noopener" :title="`Download ${name}`">
39
- <fa-icon :icon="['fas', 'download']" />
40
- </a>
41
- </div>
42
- </div>
43
- <p v-if="!anexos.length" class="text-center mb-5" v-text="`Sem anexos`"></p>
44
- </div>
45
- </template>
46
- </div>
47
- </template>
48
- <script>
49
- import InteratividadePopup from "./InteratividadePopup";
50
- import { formataDataHora } from "../../services/textFormatting";
51
-
52
- export default {
53
- components: { InteratividadePopup },
54
- data() {
55
- return {
56
- informacaoAdicional: [],
57
- informacao: [],
58
- };
59
- },
60
- props: {
61
- interatividade: {
62
- type: Object,
63
- required: true,
64
- },
65
- dominio: {
66
- type: String,
67
- required: true,
68
- },
69
- dictionary: {
70
- type: Object,
71
- required: true,
72
- },
73
- anexos: {
74
- type: Array,
75
- required: false,
76
- },
77
- },
78
- mounted() {
79
- if (this.validateInterativity()) {
80
- this.verifyInfoAditional();
81
- }
82
- },
83
- methods: {
84
- returnCurrentClass(isDoc) {
85
- return `fs-2 cursor-pointer ${typeof isDoc == "string" && isDoc.indexOf("pdf") > -1 ? "text-red" : "text-blue"
86
- }`;
87
- },
88
- returnCurrentIcon(isDoc) {
89
- return typeof isDoc == "string" && isDoc.indexOf("pdf") > -1
90
- ? ["fas", "file-pdf"]
91
- : ["fas", "file-alt"];
92
- },
93
- openFile(url, isImg) {
94
- const width = window.innerWidth;
95
- const height = window.innerHeight;
96
- const options = !isImg
97
- ? `width=${width},height=${height}`
98
- : "width=auto,height=auto";
99
- window.open(`${this.dominio}/callcenter/docs.php?mku=${url}`, "card-file", options);
100
- },
101
- validateInterativity() {
102
- try {
103
- if (this.interatividade.formulario && this.interatividade.formulario.length) {
104
- return true;
105
- }
106
- } catch (error) {
107
- return false;
108
- }
109
- },
110
- verifyInfoAditional() {
111
- try {
112
- let { formulario } = this.interatividade;
113
- formulario = formulario ? formulario : [];
114
- if (!formulario.length) return;
115
- const foundInfosAdd = formulario.filter((f) => f.TIPO_TEXTO > 999);
116
- const foundInfos = formulario.filter((f) => f.TIPO_TEXTO < 1000);
117
- if (foundInfos) {
118
- this.informacao = foundInfos.map((info) => {
119
- if (info.TIPO_TEXTO == 1) {
120
- info.TEXTO =
121
- info.TEXTO == "S" ? this.dictionary.msg_sim : this.dictionary.msg_nao;
122
- }
123
- return info;
124
- });
125
- }
126
- if (foundInfosAdd) this.informacaoAdicional = foundInfosAdd;
127
- } catch (e) {
128
- console.error("Erro ao pegar o objeto interatividade formulario");
129
- console.error(e);
130
- }
131
- },
132
- verificaInfos(text) {
133
- if (typeof text === "string") {
134
- return text;
135
- }
136
- if (typeof text === "object") {
137
- return text.desc;
138
- }
139
- },
140
- formataDataHora(date) {
141
- return formataDataHora(date);
142
- },
143
- },
144
- };
145
- </script>
146
-
147
- <style>
148
- .divisor-form-info-aditional {
149
- display: flex;
150
- align-items: center;
151
- justify-content: space-around;
152
- }
153
-
154
- .info-aditional {
155
- border-bottom: 1px solid #ccc;
156
- width: 49%;
157
- }
158
-
159
- .interatividade-form-header {
160
- background-color: #efefef;
161
- margin-top: 5px;
162
- border-top-right-radius: 10px;
163
- border-top-left-radius: 10px;
164
- padding-left: 10px;
165
- padding-right: 10px;
166
- padding-top: 5px;
167
- padding-bottom: 5px;
168
- justify-content: space-between;
169
- display: flex;
170
- color: #333;
171
- font-weight: 700;
172
- font-size: 14.4px;
173
- }
174
-
175
- .interatividade-form-body {
176
- padding: 0px 10px;
177
- background: white;
178
- border-right: 1px solid rgb(239, 239, 239);
179
- border-left: 1px solid rgb(239, 239, 239);
180
- border-bottom-left-radius: 10px;
181
- border-bottom-right-radius: 10px;
182
- padding-bottom: 10px;
183
- }
184
-
185
- .interatividade {
186
- margin: 10px 0;
187
- }
188
-
189
- .interatividade-titulo-form {
190
- white-space: nowrap;
191
- text-overflow: ellipsis;
192
- font-weight: bold;
193
- overflow: hidden;
194
- max-width: 100%;
195
- margin: 0;
196
- padding: 0;
197
- padding-top: 5px;
198
- }
199
-
200
- .interatividade-description-form {
201
- overflow: hidden;
202
- max-width: 100%;
203
- margin: 0;
204
- padding: 0;
205
- }
206
-
207
- .text-dark {
208
- color: #333;
209
- }
210
-
211
- .ml-3 {
212
- margin-left: 3px;
213
- }
214
-
215
- .flex-wrap {
216
- flex-wrap: wrap;
217
- }
218
-
219
- .align-items-center {
220
- align-items: center;
221
- }
222
-
223
- .d-flex {
224
- display: flex;
225
- }
226
-
227
- .align-items-end {
228
- align-items: flex-end;
229
- }
230
-
231
- .flex-column {
232
- flex-direction: column;
233
- }
234
-
235
- .text-bold {
236
- font-weight: bold;
237
- }
238
-
239
- .m-5 {
240
- margin: 5px;
241
- }
242
-
243
- .mb-5 {
244
- margin-bottom: 5px;
245
- }
246
-
247
- .mx-5 {
248
- margin-left: 5px;
249
- margin-right: 5px;
250
- }
251
-
252
- .cursor-pointer {
253
- cursor: pointer;
254
- }
255
-
256
- .bg-dark-white-2 {
257
- background-color: #f7f7f7;
258
- }
259
-
260
- .border-radius-10 {
261
- border-radius: 10px;
262
- }
263
-
264
- .w-100 {
265
- width: 100%;
266
- }
267
-
268
- .overflow-hidden {
269
- overflow: hidden;
270
- }
271
-
272
- .mt-10 {
273
- margin-top: 10px;
274
- }
275
-
276
- .flex-wrap {
277
- flex-wrap: wrap;
278
- }
279
-
280
- .d-flex {
281
- display: flex;
282
- }
283
-
284
- .p-10 {
285
- padding: 10px;
286
- }
287
-
288
- .mb-5 {
289
- margin-bottom: 5px;
290
- }
291
-
292
- .mb-10 {
293
- margin-bottom: 10px;
294
- }
295
-
296
- .d-flex-center {
297
- display: flex;
298
- justify-content: center;
299
- align-items: center;
300
- }
301
-
302
- .fs-_85 {
303
- font-size: 13.6px;
304
- }
305
-
306
- .text-ellipsis {
307
- text-overflow: ellipsis;
308
- }
309
-
310
- .text-left {
311
- text-align: left;
312
- }
313
-
314
- .text-ellipsis {
315
- white-space: nowrap;
316
- overflow: hidden;
317
- }
318
-
319
- .ml-5 {
320
- margin-left: 5px;
321
- }
322
-
323
- .text-shadow {
324
- text-shadow: 0 0 #000;
325
- }
326
-
327
- .justify-content-between {
328
- justify-content: space-between;
329
- }
330
-
331
- .mr-5 {
332
- margin-right: 5px;
333
- }
334
- </style>
1
+ <template>
2
+ <div class="interatividade">
3
+ <!-- TABELA INTERATIVIDADE HO -->
4
+ <template v-if="informacao.length">
5
+ <div class="interatividade-form-body">
6
+ <div v-for="form in informacao" :key="form.TIPO_TEXTO" class="interatividade-info-form">
7
+ <p v-if="form.TIPO_TEXTO < 1000" v-text="form.DESC_TIPO_TEXTO" class="interatividade-titulo-form"></p>
8
+ <p v-if="form.TIPO_TEXTO < 1000" v-text="form.TEXTO" class="interatividade-description-form"></p>
9
+ </div>
10
+ <div v-if="informacaoAdicional.length" class="interatividade-form-header">
11
+ {{ dictionary.msg_info_adicional }}
12
+ </div>
13
+ <div class="interatividade-form-body">
14
+ <div v-for="form in informacaoAdicional" :key="form.TIPO_TEXTO" class="interatividade-add-info-form">
15
+ <div class="divisor-form-info-aditional">
16
+ <div class="info-aditional">
17
+ <p v-if="form.TIPO_TEXTO > 999" v-text="form.DESC_TIPO_TEXTO + ': '" class="interatividade-titulo-form">
18
+ </p>
19
+ </div>
20
+ <div class="info-aditional">
21
+ <p v-if="form.TIPO_TEXTO > 999" v-text="form.TEXTO" class="interatividade-description-form"></p>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ <h3 class="m-5 text-bold" v-text="`Anexos`"></h3>
27
+ <div class="d-flex flex-wrap align-items-center">
28
+ <div v-for="({ name, type, mkuDownload, mku }, fileIndex) in anexos" :key="`file-${fileIndex}`"
29
+ class="mb-5 mx-5 d-flex">
30
+ <img class="box-shadow max-w-75px max-h-75px cursor-pointer" @click="openFile(mku, type)" v-if="!type"
31
+ :src="`${dominio}/callcenter/docs.php?mku=${mku}`" :alt="name" :title="name" />
32
+ <span v-else style="display: flex; align-items: center; justify-content-center; cursor: pointer;"
33
+ @click="openFile(mku, type)" :title="name">
34
+
35
+ <fa-icon :icon="returnCurrentIcon(type)" :class="returnCurrentClass(type)" />
36
+ </span>
37
+ <a class="d-flex align-items-end ml-3 text-dark" :href="`${dominio}/callcenter/docs.php?mku=${mkuDownload}`"
38
+ :download="`${name}`" target="_blank" rel="noreferrer noopener" :title="`Download ${name}`">
39
+ <fa-icon :icon="['fas', 'download']" />
40
+ </a>
41
+ </div>
42
+ </div>
43
+ <p v-if="!anexos.length" class="text-center mb-5" v-text="`Sem anexos`"></p>
44
+ </div>
45
+ </template>
46
+ </div>
47
+ </template>
48
+ <script>
49
+ import InteratividadePopup from "./InteratividadePopup";
50
+ import { formataDataHora } from "../../services/textFormatting";
51
+
52
+ export default {
53
+ components: { InteratividadePopup },
54
+ data() {
55
+ return {
56
+ informacaoAdicional: [],
57
+ informacao: [],
58
+ };
59
+ },
60
+ props: {
61
+ interatividade: {
62
+ type: Object,
63
+ required: true,
64
+ },
65
+ dominio: {
66
+ type: String,
67
+ required: true,
68
+ },
69
+ dictionary: {
70
+ type: Object,
71
+ required: true,
72
+ },
73
+ anexos: {
74
+ type: Array,
75
+ required: false,
76
+ },
77
+ },
78
+ mounted() {
79
+ if (this.validateInterativity()) {
80
+ this.verifyInfoAditional();
81
+ }
82
+ },
83
+ methods: {
84
+ returnCurrentClass(isDoc) {
85
+ return `fs-2 cursor-pointer ${typeof isDoc == "string" && isDoc.indexOf("pdf") > -1 ? "text-red" : "text-blue"
86
+ }`;
87
+ },
88
+ returnCurrentIcon(isDoc) {
89
+ return typeof isDoc == "string" && isDoc.indexOf("pdf") > -1
90
+ ? ["fas", "file-pdf"]
91
+ : ["fas", "file-alt"];
92
+ },
93
+ openFile(url, isImg) {
94
+ const width = window.innerWidth;
95
+ const height = window.innerHeight;
96
+ const options = !isImg
97
+ ? `width=${width},height=${height}`
98
+ : "width=auto,height=auto";
99
+ window.open(`${this.dominio}/callcenter/docs.php?mku=${url}`, "card-file", options);
100
+ },
101
+ validateInterativity() {
102
+ try {
103
+ if (this.interatividade.formulario && this.interatividade.formulario.length) {
104
+ return true;
105
+ }
106
+ } catch (error) {
107
+ return false;
108
+ }
109
+ },
110
+ verifyInfoAditional() {
111
+ try {
112
+ let { formulario } = this.interatividade;
113
+ formulario = formulario ? formulario : [];
114
+ if (!formulario.length) return;
115
+ const foundInfosAdd = formulario.filter((f) => f.TIPO_TEXTO > 999);
116
+ const foundInfos = formulario.filter((f) => f.TIPO_TEXTO < 1000);
117
+ if (foundInfos) {
118
+ this.informacao = foundInfos.map((info) => {
119
+ if (info.TIPO_TEXTO == 1) {
120
+ info.TEXTO =
121
+ info.TEXTO == "S" ? this.dictionary.msg_sim : this.dictionary.msg_nao;
122
+ }
123
+ return info;
124
+ });
125
+ }
126
+ if (foundInfosAdd) this.informacaoAdicional = foundInfosAdd;
127
+ } catch (e) {
128
+ console.error("Erro ao pegar o objeto interatividade formulario");
129
+ console.error(e);
130
+ }
131
+ },
132
+ verificaInfos(text) {
133
+ if (typeof text === "string") {
134
+ return text;
135
+ }
136
+ if (typeof text === "object") {
137
+ return text.desc;
138
+ }
139
+ },
140
+ formataDataHora(date) {
141
+ return formataDataHora(date);
142
+ },
143
+ },
144
+ };
145
+ </script>
146
+
147
+ <style>
148
+ .divisor-form-info-aditional {
149
+ display: flex;
150
+ align-items: center;
151
+ justify-content: space-around;
152
+ }
153
+
154
+ .info-aditional {
155
+ border-bottom: 1px solid #ccc;
156
+ width: 49%;
157
+ }
158
+
159
+ .interatividade-form-header {
160
+ background-color: #efefef;
161
+ margin-top: 5px;
162
+ border-top-right-radius: 10px;
163
+ border-top-left-radius: 10px;
164
+ padding-left: 10px;
165
+ padding-right: 10px;
166
+ padding-top: 5px;
167
+ padding-bottom: 5px;
168
+ justify-content: space-between;
169
+ display: flex;
170
+ color: #333;
171
+ font-weight: 700;
172
+ font-size: 14.4px;
173
+ }
174
+
175
+ .interatividade-form-body {
176
+ padding: 0px 10px;
177
+ background: white;
178
+ border-right: 1px solid rgb(239, 239, 239);
179
+ border-left: 1px solid rgb(239, 239, 239);
180
+ border-bottom-left-radius: 10px;
181
+ border-bottom-right-radius: 10px;
182
+ padding-bottom: 10px;
183
+ }
184
+
185
+ .interatividade {
186
+ margin: 10px 0;
187
+ }
188
+
189
+ .interatividade-titulo-form {
190
+ white-space: nowrap;
191
+ text-overflow: ellipsis;
192
+ font-weight: bold;
193
+ overflow: hidden;
194
+ max-width: 100%;
195
+ margin: 0;
196
+ padding: 0;
197
+ padding-top: 5px;
198
+ }
199
+
200
+ .interatividade-description-form {
201
+ overflow: hidden;
202
+ max-width: 100%;
203
+ margin: 0;
204
+ padding: 0;
205
+ }
206
+
207
+ .text-dark {
208
+ color: #333;
209
+ }
210
+
211
+ .ml-3 {
212
+ margin-left: 3px;
213
+ }
214
+
215
+ .flex-wrap {
216
+ flex-wrap: wrap;
217
+ }
218
+
219
+ .align-items-center {
220
+ align-items: center;
221
+ }
222
+
223
+ .d-flex {
224
+ display: flex;
225
+ }
226
+
227
+ .align-items-end {
228
+ align-items: flex-end;
229
+ }
230
+
231
+ .flex-column {
232
+ flex-direction: column;
233
+ }
234
+
235
+ .text-bold {
236
+ font-weight: bold;
237
+ }
238
+
239
+ .m-5 {
240
+ margin: 5px;
241
+ }
242
+
243
+ .mb-5 {
244
+ margin-bottom: 5px;
245
+ }
246
+
247
+ .mx-5 {
248
+ margin-left: 5px;
249
+ margin-right: 5px;
250
+ }
251
+
252
+ .cursor-pointer {
253
+ cursor: pointer;
254
+ }
255
+
256
+ .bg-dark-white-2 {
257
+ background-color: #f7f7f7;
258
+ }
259
+
260
+ .border-radius-10 {
261
+ border-radius: 10px;
262
+ }
263
+
264
+ .w-100 {
265
+ width: 100%;
266
+ }
267
+
268
+ .overflow-hidden {
269
+ overflow: hidden;
270
+ }
271
+
272
+ .mt-10 {
273
+ margin-top: 10px;
274
+ }
275
+
276
+ .flex-wrap {
277
+ flex-wrap: wrap;
278
+ }
279
+
280
+ .d-flex {
281
+ display: flex;
282
+ }
283
+
284
+ .p-10 {
285
+ padding: 10px;
286
+ }
287
+
288
+ .mb-5 {
289
+ margin-bottom: 5px;
290
+ }
291
+
292
+ .mb-10 {
293
+ margin-bottom: 10px;
294
+ }
295
+
296
+ .d-flex-center {
297
+ display: flex;
298
+ justify-content: center;
299
+ align-items: center;
300
+ }
301
+
302
+ .fs-_85 {
303
+ font-size: 13.6px;
304
+ }
305
+
306
+ .text-ellipsis {
307
+ text-overflow: ellipsis;
308
+ }
309
+
310
+ .text-left {
311
+ text-align: left;
312
+ }
313
+
314
+ .text-ellipsis {
315
+ white-space: nowrap;
316
+ overflow: hidden;
317
+ }
318
+
319
+ .ml-5 {
320
+ margin-left: 5px;
321
+ }
322
+
323
+ .text-shadow {
324
+ text-shadow: 0 0 #000;
325
+ }
326
+
327
+ .justify-content-between {
328
+ justify-content: space-between;
329
+ }
330
+
331
+ .mr-5 {
332
+ margin-right: 5px;
333
+ }
334
+ </style>