vue-intergrall-plugins 0.0.300 → 0.0.500

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 (41) hide show
  1. package/README.md +185 -185
  2. package/dist/vue-intergrall-plugins.esm.js +818 -427
  3. package/dist/vue-intergrall-plugins.min.js +1 -1
  4. package/dist/vue-intergrall-plugins.ssr.js +788 -457
  5. package/package.json +66 -66
  6. package/src/lib-components/Buttons/IconButton.vue +27 -27
  7. package/src/lib-components/Buttons/SimpleButton.vue +140 -140
  8. package/src/lib-components/Cards/Card.vue +412 -412
  9. package/src/lib-components/Cards/CardCheck.vue +35 -35
  10. package/src/lib-components/Cards/CardFile.vue +157 -157
  11. package/src/lib-components/Chat/AudioSpeedControl.vue +60 -0
  12. package/src/lib-components/Chat/BtnDownloadAllFiles.vue +32 -32
  13. package/src/lib-components/Chat/BtnEmojis.vue +131 -125
  14. package/src/lib-components/Chat/BtnExpand.vue +17 -17
  15. package/src/lib-components/Chat/BtnFiles.vue +415 -415
  16. package/src/lib-components/Chat/BtnMic.vue +60 -60
  17. package/src/lib-components/Chat/BtnScreenShare.vue +32 -32
  18. package/src/lib-components/Chat/BtnStandardMessages.vue +17 -17
  19. package/src/lib-components/Chat/ExpandTextarea.vue +410 -410
  20. package/src/lib-components/Chat/MultipleFilePreview.vue +266 -266
  21. package/src/lib-components/Chat/Picker.vue +405 -368
  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 +245 -245
  26. package/src/lib-components/Chat/TextFooter.vue +1075 -817
  27. package/src/lib-components/Email/EmailFile.vue +125 -125
  28. package/src/lib-components/Email/EmailItem.vue +185 -185
  29. package/src/lib-components/Loader/Loader.vue +78 -78
  30. package/src/lib-components/Messages/AnexoMensagem.vue +458 -385
  31. package/src/lib-components/Messages/CardAttachment.vue +61 -61
  32. package/src/lib-components/Messages/CardMessages.vue +666 -394
  33. package/src/lib-components/Messages/ChatMessages.vue +1077 -573
  34. package/src/lib-components/Messages/InteratividadeBotoes.vue +165 -165
  35. package/src/lib-components/Messages/InteratividadeFormulario.vue +392 -392
  36. package/src/lib-components/Messages/InteratividadePopup.vue +88 -88
  37. package/src/lib-components/Messages/LinkPreview.vue +163 -163
  38. package/src/lib-components/Scroll/ScrollContent.vue +150 -150
  39. package/src/lib-components/Templates/TemplateGenerator.vue +576 -576
  40. package/src/lib-components/Templates/TemplateMessage.vue +83 -83
  41. package/src/lib-components/Templates/TemplateSingle.vue +481 -481
@@ -1,392 +1,392 @@
1
- <template>
2
- <div class="interatividade">
3
- <div v-if="Object.keys(infoCanal).length > 0">
4
- <!-- CHIPS -->
5
- <div class="d-flex overflow-hidden mt-10 w-100 d-flex flex-wrap">
6
- <div
7
- v-if="situation || deadline.text"
8
- class="d-flex-center flex-column w-100 border-radius-10 border-1 bg-dark-white-2 border-color-gray p-10 mb-10"
9
- :style="`${situation && situation.cor ? `border: 1px solid ${situation.cor}` : ''}`"
10
- >
11
- <div class="d-flex w-100 mb-5">
12
- <strong v-if="situation" class="text-ellipsis text-left fs-_85" v-text="`${dictionary.chip_situacao}:`"></strong>
13
- <span v-if="situation" :style="`color: ${situation.cor}`" class="ml-5 text-left fs-_85 text-shadow" v-text="verificaInfos(situation)"></span>
14
- </div>
15
- <div class="d-flex w-100" v-if="deadline.text">
16
- <strong v-text="`${deadline.title}:`" class="text-ellipsis text-left fs-_75"></strong>
17
- <span class="ml-5 text-nowrap text-left fs-_75" v-text="deadline.text"></span>
18
- </div>
19
- </div>
20
- </div>
21
- </div>
22
- <!-- TABELA INTERATIVIDADE HO -->
23
- <template v-if="informacao.length">
24
- <div class="interatividade-form-header d-flex justify-content-between">
25
- {{dictionary.msg_abertura_reclamacao}}
26
- <span class="d-flex-center">
27
- <fa-icon :icon="['fas', 'calendar']" class="mr-5" />
28
- {{formataDataHora(infoCanal.DATA_ABERTURA)}}
29
- </span>
30
- </div>
31
- <div class="interatividade-form-body">
32
- <div v-for="(form) in informacao" :key="form.TIPO_TEXTO" class="interatividade-info-form">
33
- <p v-if="form.TIPO_TEXTO < 1000" v-text="form.DESC_TIPO_TEXTO" class="interatividade-titulo-form"></p>
34
- <p v-if="form.TIPO_TEXTO < 1000" v-text="form.TEXTO" class="interatividade-description-form"></p>
35
- </div>
36
- <div v-if="informacaoAdicional.length" class="interatividade-form-header">
37
- {{dictionary.msg_info_adicional}}
38
- </div>
39
- <div class="interatividade-form-body">
40
- <div v-for="(form) in informacaoAdicional" :key="form.TIPO_TEXTO" class="interatividade-add-info-form">
41
- <div class="divisor-form-info-aditional">
42
- <div class="info-aditional">
43
- <p v-if="form.TIPO_TEXTO > 999" v-text="form.DESC_TIPO_TEXTO+': '" class="interatividade-titulo-form"></p>
44
- </div>
45
- <div class="info-aditional">
46
- <p v-if="form.TIPO_TEXTO > 999" v-text="form.TEXTO" class="interatividade-description-form"></p>
47
- </div>
48
- </div>
49
- </div>
50
- </div>
51
- <h3 class="m-5 text-bold" v-text="`Anexos`"></h3>
52
- <div class="d-flex flex-wrap align-items-center">
53
- <div v-for="({ name, type, mkuDownload, mku }, fileIndex) in anexos" :key="`file-${fileIndex}`" class="mb-5 mx-5 d-flex">
54
- <img class="box-shadow max-w-75px max-h-75px cursor-pointer" @click="openFile(mku, type)" v-if="!type" :src="`${dominio}/callcenter/docs.php?mku=${mku}`" :alt="name" :title="name" />
55
- <fa-icon v-else :icon="returnCurrentIcon(type)" @click="openFile(mku, type)" :class="returnCurrentClass(type)" :title="name" />
56
- <a class="d-flex align-items-end ml-3 text-dark" :href="`${dominio}/callcenter/docs.php?mku=${mkuDownload}`" :download="`${name}`" target="_blank" rel="noreferrer noopener" :title="`Download ${name}`">
57
- <fa-icon :icon="['fas', 'download']" />
58
- </a>
59
- </div>
60
- </div>
61
- <p v-if="!anexos.length" class="text-center mb-5" v-text="`Sem anexos`"></p>
62
- </div>
63
- </template>
64
- </div>
65
- </template>
66
- <script>
67
- import InteratividadePopup from './InteratividadePopup'
68
- import { formataData, formataDataHora } from '../../services/textFormatting';
69
-
70
- export default {
71
- components: {InteratividadePopup},
72
- data() {
73
- return {
74
- informacaoAdicional: [],
75
- informacao: []
76
- }
77
- },
78
- props: {
79
- interatividade: {
80
- type: Object,
81
- required: true
82
- },
83
- infoCanal: {
84
- type: [Object, Array],
85
- required: false,
86
- default: {}
87
- },
88
- dominio: {
89
- type: String,
90
- required: true
91
- },
92
- dictionary: {
93
- type: Object,
94
- required: true
95
- },
96
- anexos: {
97
- type: Array,
98
- required: false
99
- }
100
- },
101
- computed: {
102
- situation() {
103
- try {
104
- const { SITUACAO } = this.infoCanal
105
- return SITUACAO ? SITUACAO : null
106
- }catch(e) {
107
- console.error("Erro ao gerar a situacao do atendimento")
108
- console.error(e)
109
- }
110
- },
111
- deadline() {
112
- try {
113
- const { PRAZO, NOME_CAMPO_PRAZO } = this.infoCanal
114
- return { text: PRAZO ? formataData(PRAZO) : "---", title: NOME_CAMPO_PRAZO ? NOME_CAMPO_PRAZO : this.dictionary.tit_prazo }
115
- }catch(e) {
116
- console.error("Erro ao gerar o prazo do atendimento")
117
- console.error(e)
118
- return {}
119
- }
120
- },
121
- },
122
- mounted(){
123
- if(this.validateInterativity()){
124
- this.verifyInfoAditional();
125
- }
126
- },
127
- methods: {
128
- returnCurrentClass(isDoc) {
129
- return `fs-2 cursor-pointer ${typeof isDoc == 'string' && isDoc.indexOf('pdf') > -1 ? 'text-red' : 'text-blue'}`
130
- },
131
- returnCurrentIcon(isDoc) {
132
- return typeof isDoc == 'string' && isDoc.indexOf('pdf') > -1 ? ['fas', 'file-pdf'] : ['fas', 'file-alt']
133
- },
134
- openFile(url, isImg) {
135
- const width = window.innerWidth
136
- const height = window.innerHeight
137
- const options = !isImg ? `width=${width},height=${height}` : "width=auto,height=auto"
138
- window.open(`${this.dominio}/callcenter/docs.php?mku=${url}`, "card-file", options)
139
- },
140
- validateInterativity(){
141
- try {
142
- if(this.interatividade.formulario && this.interatividade.formulario.length){
143
- return true;
144
- }
145
- } catch (error) {
146
- return false;
147
- }
148
- },
149
- verifyInfoAditional() {
150
- try {
151
- let { formulario } = this.interatividade
152
- formulario = formulario ? formulario : [];
153
- if(!formulario.length) return
154
- const foundInfosAdd = formulario.filter(f => f.TIPO_TEXTO > 999);
155
- const foundInfos = formulario.filter(f => f.TIPO_TEXTO < 1000);
156
- if(foundInfos){
157
- this.informacao = foundInfos.map(info => {
158
- if(info.TIPO_TEXTO == 1){
159
- info.TEXTO = info.TEXTO == 'S' ? this.dictionary.msg_sim : this.dictionary.msg_nao
160
- }
161
- return info
162
- })
163
- }
164
- if(foundInfosAdd) this.informacaoAdicional = foundInfosAdd;
165
- } catch (e) {
166
- console.error("Erro ao pegar o objeto interatividade formulario")
167
- console.error(e)
168
- }
169
- },
170
- verificaInfos(text){
171
- if(typeof text === 'string'){
172
- return text;
173
- }
174
- if(typeof text === 'object'){
175
- return text.desc;
176
- }
177
- },
178
- formataDataHora(date){
179
- return formataDataHora(date);
180
- }
181
- }
182
- }
183
- </script>
184
-
185
- <style scoped>
186
- .show-x-enter-active,
187
- .show-x-leave-enter {
188
- opacity: 1;
189
- transform: translateX(0);
190
- transition: all 200ms linear;
191
- }
192
- .show-x-enter,
193
- .show-x-leave-to {
194
- opacity: 0;
195
- transform: translateX(5%);
196
- }
197
- .divisor-form-info-aditional {
198
- display: flex;
199
- align-items: center;
200
- justify-content: space-around;
201
- }
202
- .info-aditional {
203
- border-bottom: 1px solid #ccc;
204
- width: 49%;
205
- }
206
- .interatividade-form-header {
207
- background-color: #efefef;
208
- margin-top: 5px;
209
- border-top-right-radius: 10px;
210
- border-top-left-radius: 10px;
211
- padding-left: 10px;
212
- padding-right: 10px;
213
- padding-top: 5px;
214
- padding-bottom: 5px;
215
- justify-content: space-between;
216
- display: flex;
217
- color: #333;
218
- font-weight: 700;
219
- font-size: .9rem;
220
- }
221
- .interatividade-form-body{
222
- padding: 0px 10px;
223
- background: white;
224
- border-right: 1px solid rgb(239, 239, 239);
225
- border-left: 1px solid rgb(239, 239, 239);
226
- border-bottom-left-radius: 10px;
227
- border-bottom-right-radius: 10px;
228
- padding-bottom: 10px;
229
- }
230
- .interatividade {
231
- margin: 10px 0;
232
- }
233
- .interatividade-titulo-form {
234
- white-space: nowrap;
235
- text-overflow: ellipsis;
236
- font-weight: bold;
237
- overflow: hidden;
238
- max-width: 100%;
239
- margin: 0;
240
- padding: 0;
241
- padding-top: 5px;
242
- }
243
- .interatividade-description-form {
244
- overflow: hidden;
245
- max-width: 100%;
246
- margin: 0;
247
- padding: 0;
248
- }
249
-
250
- .interatividade-lista {
251
- width: 100%;
252
- min-width: 200px;
253
- border-radius: 15px;
254
- background-color: #FFF;
255
- color: #333;
256
- margin: 10px 0;
257
- }
258
- .interatividade-lista-conteudo {
259
- padding: 10px;
260
- border-bottom: 1px solid #D7D7D7;
261
- }
262
- .interatividade-lista-titulo {
263
- font-weight: bold;
264
- font-size: 1.2em;
265
- margin-bottom: 10px;
266
- }
267
- .interatividade-lista-rodape {
268
- color: #818181;
269
- margin-top: 5px;
270
- }
271
- .interatividade-lista-link {
272
- width: 100%;
273
- text-align: center;
274
- padding: 10px;
275
- color: rgb(0, 110, 255);
276
- cursor: pointer;
277
- transition: color 200ms ease-in-out;
278
- }
279
- .interatividade-lista-link:hover {
280
- color: rgb(0, 98, 143);
281
- }
282
- .text-blue {
283
- color: #294ED3;
284
- }
285
- .text-red {
286
- color: #E74C3C
287
- }
288
- .text-dark {
289
- color: #333;
290
- }
291
- .ml-3 {
292
- margin-left: 3px;
293
- }
294
- .fs-2 {
295
- font-size: 2rem;
296
- }
297
- .flex-wrap {
298
- flex-wrap: wrap;
299
- }
300
- .align-items-center {
301
- align-items: center;
302
- }
303
- .d-flex {
304
- display: flex;
305
- }
306
- .align-items-end {
307
- align-items: flex-end;
308
- }
309
- .flex-column {
310
- flex-direction: column;
311
- }
312
- .text-bold {
313
- font-weight: bold;
314
- }
315
- .m-5 {
316
- margin: 5px;
317
- }
318
- .mb-5 {
319
- margin-bottom: 5px;
320
- }
321
- .mx-5 {
322
- margin-left: 5px;
323
- margin-right: 5px;
324
- }
325
- .cursor-pointer {
326
- cursor: pointer;
327
- }
328
- .bg-dark-white-2 {
329
- background-color: #f7f7f7;
330
- }
331
- .border-radius-10 {
332
- border-radius: 10px;
333
- }
334
- .w-100 {
335
- width: 100%;
336
- }
337
- .overflow-hidden {
338
- overflow: hidden;
339
- }
340
- .mt-10 {
341
- margin-top: 10px;
342
- }
343
- .flex-wrap {
344
- flex-wrap: wrap;
345
- }
346
- .d-flex {
347
- display: flex;
348
- }
349
- .p-10 {
350
- padding: 10px;
351
- }
352
- .mb-5 {
353
- margin-bottom: 5px;
354
- }
355
- .mb-10 {
356
- margin-bottom: 10px;
357
- }
358
- .mx-10 {
359
- margin-left: 10px;
360
- margin-right: 10px;
361
- }
362
- .d-flex-center {
363
- display: flex;
364
- justify-content: center;
365
- align-items: center;
366
- }
367
- .fs-_85 {
368
- font-size: .85rem;
369
- }
370
- .text-ellipsis {
371
- text-overflow: ellipsis;
372
- }
373
- .text-left {
374
- text-align: left;
375
- }
376
- .text-ellipsis {
377
- white-space: nowrap;
378
- overflow: hidden;
379
- }
380
- .ml-5 {
381
- margin-left: 5px;
382
- }
383
- .text-shadow {
384
- text-shadow: 0 0 #000;
385
- }
386
- .justify-content-between{
387
- justify-content: space-between;
388
- }
389
- .mr-5 {
390
- margin-right: 5px;
391
- }
392
- </style>
1
+ <template>
2
+ <div class="interatividade">
3
+ <div v-if="Object.keys(infoCanal).length > 0">
4
+ <!-- CHIPS -->
5
+ <div class="d-flex overflow-hidden mt-10 w-100 d-flex flex-wrap">
6
+ <div
7
+ v-if="situation || deadline.text"
8
+ class="d-flex-center flex-column w-100 border-radius-10 border-1 bg-dark-white-2 border-color-gray p-10 mb-10"
9
+ :style="`${situation && situation.cor ? `border: 1px solid ${situation.cor}` : ''}`"
10
+ >
11
+ <div class="d-flex w-100 mb-5">
12
+ <strong v-if="situation" class="text-ellipsis text-left fs-_85" v-text="`${dictionary.chip_situacao}:`"></strong>
13
+ <span v-if="situation" :style="`color: ${situation.cor}`" class="ml-5 text-left fs-_85 text-shadow" v-text="verificaInfos(situation)"></span>
14
+ </div>
15
+ <div class="d-flex w-100" v-if="deadline.text">
16
+ <strong v-text="`${deadline.title}:`" class="text-ellipsis text-left fs-_75"></strong>
17
+ <span class="ml-5 text-nowrap text-left fs-_75" v-text="deadline.text"></span>
18
+ </div>
19
+ </div>
20
+ </div>
21
+ </div>
22
+ <!-- TABELA INTERATIVIDADE HO -->
23
+ <template v-if="informacao.length">
24
+ <div class="interatividade-form-header d-flex justify-content-between">
25
+ {{dictionary.msg_abertura_reclamacao}}
26
+ <span class="d-flex-center">
27
+ <fa-icon :icon="['fas', 'calendar']" class="mr-5" />
28
+ {{formataDataHora(infoCanal.DATA_ABERTURA)}}
29
+ </span>
30
+ </div>
31
+ <div class="interatividade-form-body">
32
+ <div v-for="(form) in informacao" :key="form.TIPO_TEXTO" class="interatividade-info-form">
33
+ <p v-if="form.TIPO_TEXTO < 1000" v-text="form.DESC_TIPO_TEXTO" class="interatividade-titulo-form"></p>
34
+ <p v-if="form.TIPO_TEXTO < 1000" v-text="form.TEXTO" class="interatividade-description-form"></p>
35
+ </div>
36
+ <div v-if="informacaoAdicional.length" class="interatividade-form-header">
37
+ {{dictionary.msg_info_adicional}}
38
+ </div>
39
+ <div class="interatividade-form-body">
40
+ <div v-for="(form) in informacaoAdicional" :key="form.TIPO_TEXTO" class="interatividade-add-info-form">
41
+ <div class="divisor-form-info-aditional">
42
+ <div class="info-aditional">
43
+ <p v-if="form.TIPO_TEXTO > 999" v-text="form.DESC_TIPO_TEXTO+': '" class="interatividade-titulo-form"></p>
44
+ </div>
45
+ <div class="info-aditional">
46
+ <p v-if="form.TIPO_TEXTO > 999" v-text="form.TEXTO" class="interatividade-description-form"></p>
47
+ </div>
48
+ </div>
49
+ </div>
50
+ </div>
51
+ <h3 class="m-5 text-bold" v-text="`Anexos`"></h3>
52
+ <div class="d-flex flex-wrap align-items-center">
53
+ <div v-for="({ name, type, mkuDownload, mku }, fileIndex) in anexos" :key="`file-${fileIndex}`" class="mb-5 mx-5 d-flex">
54
+ <img class="box-shadow max-w-75px max-h-75px cursor-pointer" @click="openFile(mku, type)" v-if="!type" :src="`${dominio}/callcenter/docs.php?mku=${mku}`" :alt="name" :title="name" />
55
+ <fa-icon v-else :icon="returnCurrentIcon(type)" @click="openFile(mku, type)" :class="returnCurrentClass(type)" :title="name" />
56
+ <a class="d-flex align-items-end ml-3 text-dark" :href="`${dominio}/callcenter/docs.php?mku=${mkuDownload}`" :download="`${name}`" target="_blank" rel="noreferrer noopener" :title="`Download ${name}`">
57
+ <fa-icon :icon="['fas', 'download']" />
58
+ </a>
59
+ </div>
60
+ </div>
61
+ <p v-if="!anexos.length" class="text-center mb-5" v-text="`Sem anexos`"></p>
62
+ </div>
63
+ </template>
64
+ </div>
65
+ </template>
66
+ <script>
67
+ import InteratividadePopup from './InteratividadePopup'
68
+ import { formataData, formataDataHora } from '../../services/textFormatting';
69
+
70
+ export default {
71
+ components: {InteratividadePopup},
72
+ data() {
73
+ return {
74
+ informacaoAdicional: [],
75
+ informacao: []
76
+ }
77
+ },
78
+ props: {
79
+ interatividade: {
80
+ type: Object,
81
+ required: true
82
+ },
83
+ infoCanal: {
84
+ type: [Object, Array],
85
+ required: false,
86
+ default: {}
87
+ },
88
+ dominio: {
89
+ type: String,
90
+ required: true
91
+ },
92
+ dictionary: {
93
+ type: Object,
94
+ required: true
95
+ },
96
+ anexos: {
97
+ type: Array,
98
+ required: false
99
+ }
100
+ },
101
+ computed: {
102
+ situation() {
103
+ try {
104
+ const { SITUACAO } = this.infoCanal
105
+ return SITUACAO ? SITUACAO : null
106
+ }catch(e) {
107
+ console.error("Erro ao gerar a situacao do atendimento")
108
+ console.error(e)
109
+ }
110
+ },
111
+ deadline() {
112
+ try {
113
+ const { PRAZO, NOME_CAMPO_PRAZO } = this.infoCanal
114
+ return { text: PRAZO ? formataData(PRAZO) : "---", title: NOME_CAMPO_PRAZO ? NOME_CAMPO_PRAZO : this.dictionary.tit_prazo }
115
+ }catch(e) {
116
+ console.error("Erro ao gerar o prazo do atendimento")
117
+ console.error(e)
118
+ return {}
119
+ }
120
+ },
121
+ },
122
+ mounted(){
123
+ if(this.validateInterativity()){
124
+ this.verifyInfoAditional();
125
+ }
126
+ },
127
+ methods: {
128
+ returnCurrentClass(isDoc) {
129
+ return `fs-2 cursor-pointer ${typeof isDoc == 'string' && isDoc.indexOf('pdf') > -1 ? 'text-red' : 'text-blue'}`
130
+ },
131
+ returnCurrentIcon(isDoc) {
132
+ return typeof isDoc == 'string' && isDoc.indexOf('pdf') > -1 ? ['fas', 'file-pdf'] : ['fas', 'file-alt']
133
+ },
134
+ openFile(url, isImg) {
135
+ const width = window.innerWidth
136
+ const height = window.innerHeight
137
+ const options = !isImg ? `width=${width},height=${height}` : "width=auto,height=auto"
138
+ window.open(`${this.dominio}/callcenter/docs.php?mku=${url}`, "card-file", options)
139
+ },
140
+ validateInterativity(){
141
+ try {
142
+ if(this.interatividade.formulario && this.interatividade.formulario.length){
143
+ return true;
144
+ }
145
+ } catch (error) {
146
+ return false;
147
+ }
148
+ },
149
+ verifyInfoAditional() {
150
+ try {
151
+ let { formulario } = this.interatividade
152
+ formulario = formulario ? formulario : [];
153
+ if(!formulario.length) return
154
+ const foundInfosAdd = formulario.filter(f => f.TIPO_TEXTO > 999);
155
+ const foundInfos = formulario.filter(f => f.TIPO_TEXTO < 1000);
156
+ if(foundInfos){
157
+ this.informacao = foundInfos.map(info => {
158
+ if(info.TIPO_TEXTO == 1){
159
+ info.TEXTO = info.TEXTO == 'S' ? this.dictionary.msg_sim : this.dictionary.msg_nao
160
+ }
161
+ return info
162
+ })
163
+ }
164
+ if(foundInfosAdd) this.informacaoAdicional = foundInfosAdd;
165
+ } catch (e) {
166
+ console.error("Erro ao pegar o objeto interatividade formulario")
167
+ console.error(e)
168
+ }
169
+ },
170
+ verificaInfos(text){
171
+ if(typeof text === 'string'){
172
+ return text;
173
+ }
174
+ if(typeof text === 'object'){
175
+ return text.desc;
176
+ }
177
+ },
178
+ formataDataHora(date){
179
+ return formataDataHora(date);
180
+ }
181
+ }
182
+ }
183
+ </script>
184
+
185
+ <style scoped>
186
+ .show-x-enter-active,
187
+ .show-x-leave-enter {
188
+ opacity: 1;
189
+ transform: translateX(0);
190
+ transition: all 200ms linear;
191
+ }
192
+ .show-x-enter,
193
+ .show-x-leave-to {
194
+ opacity: 0;
195
+ transform: translateX(5%);
196
+ }
197
+ .divisor-form-info-aditional {
198
+ display: flex;
199
+ align-items: center;
200
+ justify-content: space-around;
201
+ }
202
+ .info-aditional {
203
+ border-bottom: 1px solid #ccc;
204
+ width: 49%;
205
+ }
206
+ .interatividade-form-header {
207
+ background-color: #efefef;
208
+ margin-top: 5px;
209
+ border-top-right-radius: 10px;
210
+ border-top-left-radius: 10px;
211
+ padding-left: 10px;
212
+ padding-right: 10px;
213
+ padding-top: 5px;
214
+ padding-bottom: 5px;
215
+ justify-content: space-between;
216
+ display: flex;
217
+ color: #333;
218
+ font-weight: 700;
219
+ font-size: .9rem;
220
+ }
221
+ .interatividade-form-body{
222
+ padding: 0px 10px;
223
+ background: white;
224
+ border-right: 1px solid rgb(239, 239, 239);
225
+ border-left: 1px solid rgb(239, 239, 239);
226
+ border-bottom-left-radius: 10px;
227
+ border-bottom-right-radius: 10px;
228
+ padding-bottom: 10px;
229
+ }
230
+ .interatividade {
231
+ margin: 10px 0;
232
+ }
233
+ .interatividade-titulo-form {
234
+ white-space: nowrap;
235
+ text-overflow: ellipsis;
236
+ font-weight: bold;
237
+ overflow: hidden;
238
+ max-width: 100%;
239
+ margin: 0;
240
+ padding: 0;
241
+ padding-top: 5px;
242
+ }
243
+ .interatividade-description-form {
244
+ overflow: hidden;
245
+ max-width: 100%;
246
+ margin: 0;
247
+ padding: 0;
248
+ }
249
+
250
+ .interatividade-lista {
251
+ width: 100%;
252
+ min-width: 200px;
253
+ border-radius: 15px;
254
+ background-color: #FFF;
255
+ color: #333;
256
+ margin: 10px 0;
257
+ }
258
+ .interatividade-lista-conteudo {
259
+ padding: 10px;
260
+ border-bottom: 1px solid #D7D7D7;
261
+ }
262
+ .interatividade-lista-titulo {
263
+ font-weight: bold;
264
+ font-size: 1.2em;
265
+ margin-bottom: 10px;
266
+ }
267
+ .interatividade-lista-rodape {
268
+ color: #818181;
269
+ margin-top: 5px;
270
+ }
271
+ .interatividade-lista-link {
272
+ width: 100%;
273
+ text-align: center;
274
+ padding: 10px;
275
+ color: rgb(0, 110, 255);
276
+ cursor: pointer;
277
+ transition: color 200ms ease-in-out;
278
+ }
279
+ .interatividade-lista-link:hover {
280
+ color: rgb(0, 98, 143);
281
+ }
282
+ .text-blue {
283
+ color: #294ED3;
284
+ }
285
+ .text-red {
286
+ color: #E74C3C
287
+ }
288
+ .text-dark {
289
+ color: #333;
290
+ }
291
+ .ml-3 {
292
+ margin-left: 3px;
293
+ }
294
+ .fs-2 {
295
+ font-size: 2rem;
296
+ }
297
+ .flex-wrap {
298
+ flex-wrap: wrap;
299
+ }
300
+ .align-items-center {
301
+ align-items: center;
302
+ }
303
+ .d-flex {
304
+ display: flex;
305
+ }
306
+ .align-items-end {
307
+ align-items: flex-end;
308
+ }
309
+ .flex-column {
310
+ flex-direction: column;
311
+ }
312
+ .text-bold {
313
+ font-weight: bold;
314
+ }
315
+ .m-5 {
316
+ margin: 5px;
317
+ }
318
+ .mb-5 {
319
+ margin-bottom: 5px;
320
+ }
321
+ .mx-5 {
322
+ margin-left: 5px;
323
+ margin-right: 5px;
324
+ }
325
+ .cursor-pointer {
326
+ cursor: pointer;
327
+ }
328
+ .bg-dark-white-2 {
329
+ background-color: #f7f7f7;
330
+ }
331
+ .border-radius-10 {
332
+ border-radius: 10px;
333
+ }
334
+ .w-100 {
335
+ width: 100%;
336
+ }
337
+ .overflow-hidden {
338
+ overflow: hidden;
339
+ }
340
+ .mt-10 {
341
+ margin-top: 10px;
342
+ }
343
+ .flex-wrap {
344
+ flex-wrap: wrap;
345
+ }
346
+ .d-flex {
347
+ display: flex;
348
+ }
349
+ .p-10 {
350
+ padding: 10px;
351
+ }
352
+ .mb-5 {
353
+ margin-bottom: 5px;
354
+ }
355
+ .mb-10 {
356
+ margin-bottom: 10px;
357
+ }
358
+ .mx-10 {
359
+ margin-left: 10px;
360
+ margin-right: 10px;
361
+ }
362
+ .d-flex-center {
363
+ display: flex;
364
+ justify-content: center;
365
+ align-items: center;
366
+ }
367
+ .fs-_85 {
368
+ font-size: .85rem;
369
+ }
370
+ .text-ellipsis {
371
+ text-overflow: ellipsis;
372
+ }
373
+ .text-left {
374
+ text-align: left;
375
+ }
376
+ .text-ellipsis {
377
+ white-space: nowrap;
378
+ overflow: hidden;
379
+ }
380
+ .ml-5 {
381
+ margin-left: 5px;
382
+ }
383
+ .text-shadow {
384
+ text-shadow: 0 0 #000;
385
+ }
386
+ .justify-content-between{
387
+ justify-content: space-between;
388
+ }
389
+ .mr-5 {
390
+ margin-right: 5px;
391
+ }
392
+ </style>