vue-intergrall-plugins 1.1.90 → 1.2.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +220 -220
- package/dist/dist/vue-intergrall-plugins.css +1 -1
- package/dist/vue-intergrall-plugins.esm.js +223 -89
- package/dist/vue-intergrall-plugins.min.js +11 -11
- package/dist/vue-intergrall-plugins.ssr.js +276 -147
- package/package.json +1 -1
- package/src/lib-components/Buttons/IconButton.vue +27 -27
- package/src/lib-components/Buttons/SimpleButton.vue +140 -140
- package/src/lib-components/Cards/Card.vue +490 -490
- package/src/lib-components/Cards/CardCheck.vue +35 -35
- package/src/lib-components/Cards/CardFile.vue +163 -163
- package/src/lib-components/Chat/BtnDownloadAllFiles.vue +36 -36
- package/src/lib-components/Chat/BtnEmojis.vue +118 -118
- package/src/lib-components/Chat/BtnExpand.vue +17 -17
- package/src/lib-components/Chat/BtnFiles.vue +486 -486
- package/src/lib-components/Chat/BtnMic.vue +60 -60
- package/src/lib-components/Chat/BtnScreenShare.vue +31 -31
- package/src/lib-components/Chat/BtnStandardMessages.vue +17 -17
- package/src/lib-components/Chat/ExpandTextarea.vue +427 -427
- package/src/lib-components/Chat/MultipleFilePreview.vue +291 -291
- package/src/lib-components/Chat/Picker.vue +525 -525
- package/src/lib-components/Chat/RemainingCharacters.vue +28 -28
- package/src/lib-components/Chat/SingleFilePreview.vue +94 -94
- package/src/lib-components/Chat/SkeletonPicker.vue +110 -110
- package/src/lib-components/Chat/StandardMessages.vue +252 -252
- package/src/lib-components/Chat/TextFooter.vue +1007 -1007
- package/src/lib-components/Email/EmailExpanded.vue +270 -270
- package/src/lib-components/Email/EmailFile.vue +192 -192
- package/src/lib-components/Email/EmailFrom.vue +66 -66
- package/src/lib-components/Email/EmailItem.vue +867 -850
- package/src/lib-components/Email/EmailTo.vue +64 -64
- package/src/lib-components/Loader/Loader.vue +78 -78
- package/src/lib-components/Messages/AnexoMensagem.vue +625 -497
- package/src/lib-components/Messages/CardAttachment.vue +61 -61
- package/src/lib-components/Messages/CardMessages.vue +687 -687
- package/src/lib-components/Messages/ChatMessages.vue +259 -78
- package/src/lib-components/Messages/InteratividadeBotoes.vue +197 -197
- package/src/lib-components/Messages/InteratividadeContato.vue +32 -32
- package/src/lib-components/Messages/InteratividadeContatoItem.vue +235 -235
- package/src/lib-components/Messages/InteratividadeFormulario.vue +334 -334
- package/src/lib-components/Messages/InteratividadePopup.vue +95 -95
- package/src/lib-components/Messages/LinkPreview.vue +176 -176
- package/src/lib-components/Scroll/ScrollContent.vue +166 -166
- package/src/lib-components/Templates/TemplateGenerator.vue +640 -640
- package/src/lib-components/Templates/TemplateMessage.vue +83 -83
- package/src/lib-components/Templates/TemplateSingle.vue +478 -478
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<span class="text-footer-actions--btn" :class="{'audio-activated' : isRecording}" @click="toggleAudioRecorder">
|
|
3
|
-
<fa-icon :icon="['fas', 'microphone']" />
|
|
4
|
-
</span>
|
|
5
|
-
</template>
|
|
6
|
-
|
|
7
|
-
<script>
|
|
8
|
-
export default {
|
|
9
|
-
props: {
|
|
10
|
-
dictionary: {
|
|
11
|
-
type: Object,
|
|
12
|
-
required: true
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
data() {
|
|
16
|
-
return {
|
|
17
|
-
isRecording: false,
|
|
18
|
-
mediaRecorder: {}
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
methods: {
|
|
22
|
-
toggleAudioRecorder() {
|
|
23
|
-
if(!this.mediaRecorder.state) return this.initAudioRecorder()
|
|
24
|
-
|
|
25
|
-
this.isRecording = !this.isRecording
|
|
26
|
-
|
|
27
|
-
if(this.isRecording) return this.mediaRecorder.start()
|
|
28
|
-
return this.mediaRecorder.stop()
|
|
29
|
-
},
|
|
30
|
-
initAudioRecorder() {
|
|
31
|
-
navigator.mediaDevices.getUserMedia({ audio: true })
|
|
32
|
-
.then(stream => {
|
|
33
|
-
this.mediaRecorder = new MediaRecorder(stream)
|
|
34
|
-
const audioChunks = []
|
|
35
|
-
this.mediaRecorder.ondataavailable = eventData => { audioChunks.push(eventData.data) }
|
|
36
|
-
this.mediaRecorder.onstop = () => {
|
|
37
|
-
const blob = new Blob(audioChunks, { type: "audio/mpeg" })
|
|
38
|
-
blob.lastModifiedDate = new Date()
|
|
39
|
-
blob.name = `im-audio-file-${parseInt(Math.random() * 50000)}`
|
|
40
|
-
const reader = new FileReader()
|
|
41
|
-
reader.readAsDataURL(blob)
|
|
42
|
-
reader.onloadend = () => {
|
|
43
|
-
this.$emit("set-audio", { audioFile: new File([blob], `${blob.name}.mpeg`, { type: blob.type }), audioSource: reader.result })
|
|
44
|
-
}
|
|
45
|
-
stream.getTracks().forEach(track => track.stop())
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
this.toggleAudioRecorder()
|
|
49
|
-
},
|
|
50
|
-
error => {
|
|
51
|
-
this.$toasted.global.defaultError({ msg: this.dictionary.msg_permitir_audio })
|
|
52
|
-
console.error("error audio recorder: ", error)
|
|
53
|
-
})
|
|
54
|
-
},
|
|
55
|
-
deleteMediaRecorder() {
|
|
56
|
-
this.mediaRecorder = {}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<span class="text-footer-actions--btn" :class="{'audio-activated' : isRecording}" @click="toggleAudioRecorder">
|
|
3
|
+
<fa-icon :icon="['fas', 'microphone']" />
|
|
4
|
+
</span>
|
|
5
|
+
</template>
|
|
6
|
+
|
|
7
|
+
<script>
|
|
8
|
+
export default {
|
|
9
|
+
props: {
|
|
10
|
+
dictionary: {
|
|
11
|
+
type: Object,
|
|
12
|
+
required: true
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
data() {
|
|
16
|
+
return {
|
|
17
|
+
isRecording: false,
|
|
18
|
+
mediaRecorder: {}
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
methods: {
|
|
22
|
+
toggleAudioRecorder() {
|
|
23
|
+
if(!this.mediaRecorder.state) return this.initAudioRecorder()
|
|
24
|
+
|
|
25
|
+
this.isRecording = !this.isRecording
|
|
26
|
+
|
|
27
|
+
if(this.isRecording) return this.mediaRecorder.start()
|
|
28
|
+
return this.mediaRecorder.stop()
|
|
29
|
+
},
|
|
30
|
+
initAudioRecorder() {
|
|
31
|
+
navigator.mediaDevices.getUserMedia({ audio: true })
|
|
32
|
+
.then(stream => {
|
|
33
|
+
this.mediaRecorder = new MediaRecorder(stream)
|
|
34
|
+
const audioChunks = []
|
|
35
|
+
this.mediaRecorder.ondataavailable = eventData => { audioChunks.push(eventData.data) }
|
|
36
|
+
this.mediaRecorder.onstop = () => {
|
|
37
|
+
const blob = new Blob(audioChunks, { type: "audio/mpeg" })
|
|
38
|
+
blob.lastModifiedDate = new Date()
|
|
39
|
+
blob.name = `im-audio-file-${parseInt(Math.random() * 50000)}`
|
|
40
|
+
const reader = new FileReader()
|
|
41
|
+
reader.readAsDataURL(blob)
|
|
42
|
+
reader.onloadend = () => {
|
|
43
|
+
this.$emit("set-audio", { audioFile: new File([blob], `${blob.name}.mpeg`, { type: blob.type }), audioSource: reader.result })
|
|
44
|
+
}
|
|
45
|
+
stream.getTracks().forEach(track => track.stop())
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
this.toggleAudioRecorder()
|
|
49
|
+
},
|
|
50
|
+
error => {
|
|
51
|
+
this.$toasted.global.defaultError({ msg: this.dictionary.msg_permitir_audio })
|
|
52
|
+
console.error("error audio recorder: ", error)
|
|
53
|
+
})
|
|
54
|
+
},
|
|
55
|
+
deleteMediaRecorder() {
|
|
56
|
+
this.mediaRecorder = {}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
</script>
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="text-footer-actions--btn" @click="$emit('toggle-standard-messages')"
|
|
3
|
-
:title="dictionary.title_screen_share">
|
|
4
|
-
<fa-icon :icon="['fas', 'desktop']" />
|
|
5
|
-
<fa-icon :icon="['fas', 'share']" />
|
|
6
|
-
</div>
|
|
7
|
-
</template>
|
|
8
|
-
|
|
9
|
-
<style>
|
|
10
|
-
.text-footer-actions--btn {
|
|
11
|
-
position: relative;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.text-footer-actions--btn>svg:nth-child(2) {
|
|
15
|
-
font-size: 9.6px;
|
|
16
|
-
position: absolute;
|
|
17
|
-
transform: translateY(-1px);
|
|
18
|
-
}
|
|
19
|
-
</style>
|
|
20
|
-
|
|
21
|
-
<script>
|
|
22
|
-
export default {
|
|
23
|
-
props: {
|
|
24
|
-
dictionary: {
|
|
25
|
-
type: Object,
|
|
26
|
-
default: {},
|
|
27
|
-
required: false,
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="text-footer-actions--btn" @click="$emit('toggle-standard-messages')"
|
|
3
|
+
:title="dictionary.title_screen_share">
|
|
4
|
+
<fa-icon :icon="['fas', 'desktop']" />
|
|
5
|
+
<fa-icon :icon="['fas', 'share']" />
|
|
6
|
+
</div>
|
|
7
|
+
</template>
|
|
8
|
+
|
|
9
|
+
<style>
|
|
10
|
+
.text-footer-actions--btn {
|
|
11
|
+
position: relative;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.text-footer-actions--btn>svg:nth-child(2) {
|
|
15
|
+
font-size: 9.6px;
|
|
16
|
+
position: absolute;
|
|
17
|
+
transform: translateY(-1px);
|
|
18
|
+
}
|
|
19
|
+
</style>
|
|
20
|
+
|
|
21
|
+
<script>
|
|
22
|
+
export default {
|
|
23
|
+
props: {
|
|
24
|
+
dictionary: {
|
|
25
|
+
type: Object,
|
|
26
|
+
default: {},
|
|
27
|
+
required: false,
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
</script>
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="text-footer-actions--btn" @click="$emit('toggle-standard-messages')" :title="dictionary.title_msg_formatada">
|
|
3
|
-
<fa-icon :icon="['fas', 'comment']" />
|
|
4
|
-
</div>
|
|
5
|
-
</template>
|
|
6
|
-
|
|
7
|
-
<script>
|
|
8
|
-
export default {
|
|
9
|
-
props: {
|
|
10
|
-
dictionary: {
|
|
11
|
-
type: Object,
|
|
12
|
-
default: {},
|
|
13
|
-
required: false
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="text-footer-actions--btn" @click="$emit('toggle-standard-messages')" :title="dictionary.title_msg_formatada">
|
|
3
|
+
<fa-icon :icon="['fas', 'comment']" />
|
|
4
|
+
</div>
|
|
5
|
+
</template>
|
|
6
|
+
|
|
7
|
+
<script>
|
|
8
|
+
export default {
|
|
9
|
+
props: {
|
|
10
|
+
dictionary: {
|
|
11
|
+
type: Object,
|
|
12
|
+
default: {},
|
|
13
|
+
required: false
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
</script>
|