@chat21/chat21-ionic 3.0.60 → 3.0.61-rc14
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/CHANGELOG.md +93 -0
- package/README.md +2 -0
- package/angular.json +4 -0
- package/config.xml +5 -5
- package/deploy_pre.sh +10 -10
- package/deploy_prod.sh +5 -1
- package/env.sample +3 -1
- package/package.json +13 -7
- package/resources/{Android → android}/icon/drawable-hdpi-icon.png +0 -0
- package/resources/{Android → android}/icon/drawable-ldpi-icon.png +0 -0
- package/resources/{Android → android}/icon/drawable-mdpi-icon.png +0 -0
- package/resources/{Android → android}/icon/drawable-xhdpi-icon.png +0 -0
- package/resources/{Android → android}/icon/drawable-xxhdpi-icon.png +0 -0
- package/resources/{Android → android}/icon/drawable-xxxhdpi-icon.png +0 -0
- package/resources/{Android → android}/icon.png +0 -0
- package/resources/{Android → android}/splash/drawable-land-hdpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-land-ldpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-land-mdpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-land-xhdpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-land-xxhdpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-land-xxxhdpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-port-hdpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-port-ldpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-port-mdpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-port-xhdpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-port-xxhdpi-screen.png +0 -0
- package/resources/{Android → android}/splash/drawable-port-xxxhdpi-screen.png +0 -0
- package/resources/{Android → android}/splash.png +0 -0
- package/src/app/app-routing.module.ts +15 -0
- package/src/app/app.component.html +14 -4
- package/src/app/app.component.scss +18 -1
- package/src/app/app.component.ts +50 -16
- package/src/app/app.module.ts +12 -3
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +23 -5
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.scss +142 -49
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.ts +101 -18
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.html +20 -36
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.scss +10 -0
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts +35 -40
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +7 -2
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +103 -12
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +39 -36
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +7 -1
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.ts +148 -63
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +59 -22
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +32 -9
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +102 -23
- package/src/app/components/ddp-header/ddp-header.component.html +20 -6
- package/src/app/components/ddp-header/ddp-header.component.scss +4 -0
- package/src/app/components/ddp-header/ddp-header.component.ts +104 -10
- package/src/app/components/project-item/project-item.component.html +8 -7
- package/src/app/components/project-item/project-item.component.scss +7 -2
- package/src/app/components/project-item/project-item.component.ts +15 -2
- package/src/app/components/sidebar/sidebar.component.html +275 -0
- package/src/app/components/sidebar/sidebar.component.scss +79 -0
- package/src/app/components/sidebar/sidebar.component.spec.ts +24 -0
- package/src/app/components/sidebar/sidebar.component.ts +539 -0
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.html +117 -0
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.scss +330 -0
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.spec.ts +24 -0
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.ts +490 -0
- package/src/app/pages/conversation-detail/conversation-detail.module.ts +6 -1
- package/src/app/pages/conversation-detail/conversation-detail.page.html +20 -10
- package/src/app/pages/conversation-detail/conversation-detail.page.scss +28 -0
- package/src/app/pages/conversation-detail/conversation-detail.page.ts +1132 -784
- package/src/app/pages/conversations-list/conversations-list.module.ts +2 -1
- package/src/app/pages/conversations-list/conversations-list.page.html +18 -9
- package/src/app/pages/conversations-list/conversations-list.page.scss +9 -1
- package/src/app/pages/conversations-list/conversations-list.page.ts +738 -425
- package/src/app/pages/create-canned-response/create-canned-response-routing.module.ts +17 -0
- package/src/app/pages/create-canned-response/create-canned-response.module.ts +30 -0
- package/src/app/pages/create-canned-response/create-canned-response.page.html +150 -0
- package/src/app/pages/create-canned-response/create-canned-response.page.scss +55 -0
- package/src/app/pages/create-canned-response/create-canned-response.page.spec.ts +24 -0
- package/src/app/pages/create-canned-response/create-canned-response.page.ts +319 -0
- package/src/app/pages/create-requester/create-requester-routing.module.ts +17 -0
- package/src/app/pages/create-requester/create-requester.module.ts +28 -0
- package/src/app/pages/create-requester/create-requester.page.html +67 -0
- package/src/app/pages/create-requester/create-requester.page.scss +30 -0
- package/src/app/pages/create-requester/create-requester.page.spec.ts +24 -0
- package/src/app/pages/create-requester/create-requester.page.ts +138 -0
- package/src/app/pages/create-ticket/create-ticket-routing.module.ts +17 -0
- package/src/app/pages/create-ticket/create-ticket.module.ts +28 -0
- package/src/app/pages/create-ticket/create-ticket.page.html +171 -0
- package/src/app/pages/create-ticket/create-ticket.page.scss +52 -0
- package/src/app/pages/create-ticket/create-ticket.page.spec.ts +24 -0
- package/src/app/pages/create-ticket/create-ticket.page.ts +432 -0
- package/src/app/pages/loader-preview/loader-preview.page.ts +226 -166
- package/src/app/pages/profile-info/profile-info.page.html +4 -4
- package/src/app/pages/profile-info/profile-info.page.scss +13 -2
- package/src/app/pages/profile-info/profile-info.page.ts +23 -21
- package/src/app/services/tiledesk/tiledesk.service.ts +209 -0
- package/src/app/shared/shared.module.ts +14 -1
- package/src/app/utils/scrollbar-theme.directive.ts +58 -24
- package/src/assets/i18n/de.json +69 -13
- package/src/assets/i18n/en.json +62 -6
- package/src/assets/i18n/es.json +61 -5
- package/src/assets/i18n/fr.json +64 -8
- package/src/assets/i18n/it.json +61 -5
- package/src/assets/i18n/pt.json +61 -5
- package/src/assets/i18n/ru.json +62 -6
- package/src/assets/i18n/sr.json +265 -0
- package/src/assets/i18n/tr.json +61 -5
- package/src/assets/images/default-avatar-x-select.png +0 -0
- package/src/assets/images/language_flag/ar.png +0 -0
- package/src/assets/images/language_flag/bg.png +0 -0
- package/src/assets/images/language_flag/ca.png +0 -0
- package/src/assets/images/language_flag/cs.png +0 -0
- package/src/assets/images/language_flag/da.png +0 -0
- package/src/assets/images/language_flag/de.png +0 -0
- package/src/assets/images/language_flag/el.png +0 -0
- package/src/assets/images/language_flag/en.png +0 -0
- package/src/assets/images/language_flag/es.png +0 -0
- package/src/assets/images/language_flag/fa.png +0 -0
- package/src/assets/images/language_flag/fi.png +0 -0
- package/src/assets/images/language_flag/fr.png +0 -0
- package/src/assets/images/language_flag/he.png +0 -0
- package/src/assets/images/language_flag/hi.png +0 -0
- package/src/assets/images/language_flag/hr.png +0 -0
- package/src/assets/images/language_flag/hu.png +0 -0
- package/src/assets/images/language_flag/id.png +0 -0
- package/src/assets/images/language_flag/it.png +0 -0
- package/src/assets/images/language_flag/ja.png +0 -0
- package/src/assets/images/language_flag/ko.png +0 -0
- package/src/assets/images/language_flag/ml-IN.png +0 -0
- package/src/assets/images/language_flag/ne-NP.png +0 -0
- package/src/assets/images/language_flag/nl.png +0 -0
- package/src/assets/images/language_flag/no.png +0 -0
- package/src/assets/images/language_flag/pl.png +0 -0
- package/src/assets/images/language_flag/pt-BR.png +0 -0
- package/src/assets/images/language_flag/pt.png +0 -0
- package/src/assets/images/language_flag/ro.png +0 -0
- package/src/assets/images/language_flag/ru.png +0 -0
- package/src/assets/images/language_flag/sk.png +0 -0
- package/src/assets/images/language_flag/sl.png +0 -0
- package/src/assets/images/language_flag/sr.png +0 -0
- package/src/assets/images/language_flag/sv-SE.png +0 -0
- package/src/assets/images/language_flag/ta.png +0 -0
- package/src/assets/images/language_flag/th.png +0 -0
- package/src/assets/images/language_flag/tr.png +0 -0
- package/src/assets/images/language_flag/uk.png +0 -0
- package/src/assets/images/language_flag/vi.png +0 -0
- package/src/assets/images/language_flag/zh-CN.png +0 -0
- package/src/assets/images/language_flag/zh-TW.png +0 -0
- package/src/assets/images/no_image_user.png +0 -0
- package/src/assets/images/priority_icons/high.svg +3 -0
- package/src/assets/images/priority_icons/high_v2.svg +14 -0
- package/src/assets/images/priority_icons/low.svg +10 -0
- package/src/assets/images/priority_icons/low_v2.svg +14 -0
- package/src/assets/images/priority_icons/medium.svg +16 -0
- package/src/assets/images/priority_icons/medium_v2.svg +11 -0
- package/src/assets/images/priority_icons/urgent.svg +4 -0
- package/src/assets/images/priority_icons/urgent_v2.svg +16 -0
- package/src/assets/tiledesk-solo-logo.png +0 -0
- package/src/chat-config-pre-test.json +3 -1
- package/src/chat-config-template.json +3 -1
- package/src/chat-config.json +4 -2
- package/src/chat21-core/utils/constants.ts +6 -1
- package/src/global.scss +405 -3
- package/src/index.html +7 -0
- package/publish_pre.sh +0 -33
- package/publish_prod.sh +0 -33
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
Component, OnInit, Input, ViewChild, ElementRef, HostListener, AfterViewInit} from '@angular/core'
|
|
3
|
+
import { TYPE_MSG_IMAGE } from 'src/chat21-core/utils/constants'
|
|
4
|
+
import { ModalController } from '@ionic/angular'
|
|
5
|
+
import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser'
|
|
5
6
|
|
|
6
7
|
// Logger
|
|
7
|
-
import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service'
|
|
8
|
-
import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance'
|
|
8
|
+
import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service'
|
|
9
|
+
import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance'
|
|
9
10
|
|
|
10
11
|
@Component({
|
|
11
12
|
selector: 'app-loader-preview',
|
|
@@ -13,103 +14,138 @@ import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance'
|
|
|
13
14
|
styleUrls: ['./loader-preview.page.scss'],
|
|
14
15
|
})
|
|
15
16
|
export class LoaderPreviewPage implements OnInit, AfterViewInit {
|
|
16
|
-
@ViewChild('thumbnailsPreview', { static: false })
|
|
17
|
-
|
|
17
|
+
@ViewChild('thumbnailsPreview', { static: false })
|
|
18
|
+
thumbnailsPreview: ElementRef
|
|
19
|
+
@ViewChild('messageTextArea', { static: false }) messageTextArea: ElementRef
|
|
18
20
|
@ViewChild('imageCaptionTexarea', { static: false }) imageCaptionTexarea: any
|
|
19
21
|
// @Output() eventSendMessage = new EventEmitter<object>();
|
|
20
|
-
@Input() files: [any]
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
public
|
|
25
|
-
public
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
public
|
|
31
|
-
|
|
22
|
+
@Input() files: [any]
|
|
23
|
+
@Input() enableBackdropDismiss: any
|
|
24
|
+
@Input() msg: string
|
|
25
|
+
|
|
26
|
+
public arrayFiles = []
|
|
27
|
+
public fileSelected: any
|
|
28
|
+
public messageString: string
|
|
29
|
+
public heightPreviewArea = '183'
|
|
30
|
+
private selectedFiles: any
|
|
31
|
+
srcData: SafeResourceUrl
|
|
32
|
+
public file_extension: string
|
|
33
|
+
public file_name: string
|
|
34
|
+
public file_name_ellipsis_the_middle: string
|
|
35
|
+
private logger: LoggerService = LoggerInstance.getInstance()
|
|
32
36
|
|
|
33
37
|
constructor(
|
|
34
38
|
public viewCtrl: ModalController,
|
|
35
|
-
private sanitizer: DomSanitizer
|
|
36
|
-
) {
|
|
39
|
+
private sanitizer: DomSanitizer,
|
|
40
|
+
) {}
|
|
37
41
|
|
|
38
42
|
ngOnInit() {
|
|
39
|
-
this.logger.log('[LOADER-PREVIEW-PAGE] Hello!')
|
|
43
|
+
this.logger.log('[LOADER-PREVIEW-PAGE] Hello!')
|
|
40
44
|
// tslint:disable-next-line: prefer-for-of
|
|
41
|
-
this.selectedFiles = this.files
|
|
45
|
+
this.selectedFiles = this.files
|
|
42
46
|
for (let i = 0; i < this.files.length; i++) {
|
|
43
|
-
this.readAsDataURL(this.files[i])
|
|
47
|
+
this.readAsDataURL(this.files[i])
|
|
44
48
|
//this.fileChange(this.files[i]);
|
|
45
49
|
}
|
|
46
50
|
}
|
|
47
51
|
ngAfterViewInit() {
|
|
52
|
+
this.logger.log('[LOADER-PREVIEW-PAGE] this.files', this.files)
|
|
53
|
+
this.logger.log(
|
|
54
|
+
'[LOADER-PREVIEW-PAGE] enableBackdropDismiss',
|
|
55
|
+
this.enableBackdropDismiss,
|
|
56
|
+
)
|
|
57
|
+
this.logger.log('[LOADER-PREVIEW-PAGE] msg', this.msg)
|
|
58
|
+
if (this.msg) {
|
|
59
|
+
this.messageString = this.msg
|
|
60
|
+
}
|
|
61
|
+
|
|
48
62
|
if (this.imageCaptionTexarea) {
|
|
49
63
|
setTimeout(() => {
|
|
50
64
|
// this.logger.log("[CONVS-DETAIL][MSG-TEXT-AREA] set focus on ", this.messageTextArea);
|
|
51
65
|
// Keyboard.show() // for android
|
|
52
|
-
this.logger.log(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
66
|
+
this.logger.log(
|
|
67
|
+
'[CONVS-DETAIL][MSG-TEXT-AREA] ngAfterViewInit this.imageCaptionTexarea ',
|
|
68
|
+
this.imageCaptionTexarea,
|
|
69
|
+
)
|
|
70
|
+
this.imageCaptionTexarea.setFocus()
|
|
71
|
+
}, 1000) //a least 150ms.
|
|
56
72
|
}
|
|
57
73
|
}
|
|
58
74
|
|
|
59
75
|
ionViewDidEnter() {
|
|
60
|
-
this.logger.log(
|
|
61
|
-
|
|
76
|
+
this.logger.log(
|
|
77
|
+
'[LOADER-PREVIEW-PAGE] ionViewDidEnter thumbnailsPreview.nativeElement.offsetHeight',
|
|
78
|
+
this.thumbnailsPreview.nativeElement.offsetHeight,
|
|
79
|
+
)
|
|
80
|
+
this.calculateHeightPreviewArea()
|
|
62
81
|
}
|
|
63
82
|
|
|
64
83
|
readAsDataURL(file: any) {
|
|
65
|
-
this.logger.log('[LOADER-PREVIEW-PAGE] readAsDataURL file', file)
|
|
84
|
+
this.logger.log('[LOADER-PREVIEW-PAGE] readAsDataURL file', file)
|
|
66
85
|
// ---------------------------------------------------------------------
|
|
67
86
|
// USE CASE IMAGE
|
|
68
87
|
// ---------------------------------------------------------------------
|
|
69
|
-
if (file.type.startsWith(
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
88
|
+
if (file.type.startsWith('image') && !file.type.includes('svg')) {
|
|
89
|
+
this.logger.log(
|
|
90
|
+
'[LOADER-PREVIEW-PAGE] - readAsDataURL - USE CASE IMAGE file TYPE',
|
|
91
|
+
file.type,
|
|
92
|
+
)
|
|
93
|
+
const reader = new FileReader()
|
|
73
94
|
reader.onloadend = (evt) => {
|
|
74
|
-
const img = reader.result.toString()
|
|
75
|
-
this.logger.log(
|
|
76
|
-
|
|
95
|
+
const img = reader.result.toString()
|
|
96
|
+
this.logger.log(
|
|
97
|
+
'[LOADER-PREVIEW-PAGE] - readAsDataURL - FileReader success ',
|
|
98
|
+
img,
|
|
99
|
+
)
|
|
100
|
+
this.arrayFiles.push(img)
|
|
77
101
|
if (!this.fileSelected) {
|
|
78
|
-
this.fileSelected = img
|
|
102
|
+
this.fileSelected = img
|
|
79
103
|
}
|
|
80
|
-
}
|
|
104
|
+
}
|
|
81
105
|
|
|
82
|
-
reader.readAsDataURL(file)
|
|
106
|
+
reader.readAsDataURL(file)
|
|
83
107
|
// ---------------------------------------------------------------------
|
|
84
|
-
// USE CASE SVG
|
|
108
|
+
// USE CASE SVG
|
|
85
109
|
// ---------------------------------------------------------------------
|
|
86
|
-
} else if (file.type.startsWith(
|
|
110
|
+
} else if (file.type.startsWith('image') && file.type.includes('svg')) {
|
|
87
111
|
// this.previewFiles(file)
|
|
88
112
|
|
|
89
|
-
this.logger.log(
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
reader
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
113
|
+
this.logger.log(
|
|
114
|
+
'[LOADER-PREVIEW-PAGE] - readAsDataURL file TYPE',
|
|
115
|
+
file.type,
|
|
116
|
+
)
|
|
117
|
+
this.logger.log('[LOADER-PREVIEW-PAGE] - readAsDataURL file ', file)
|
|
118
|
+
const preview = document.querySelector('#img-preview') as HTMLImageElement
|
|
119
|
+
|
|
120
|
+
const reader = new FileReader()
|
|
121
|
+
const that = this
|
|
122
|
+
reader.addEventListener(
|
|
123
|
+
'load',
|
|
124
|
+
function () {
|
|
125
|
+
// convert image file to base64 string
|
|
126
|
+
// const img = reader.result as string;
|
|
127
|
+
const img = reader.result.toString()
|
|
128
|
+
that.logger.log(
|
|
129
|
+
'FIREBASE-UPLOAD USE CASE SVG LoaderPreviewPage readAsDataURL img ',
|
|
130
|
+
img,
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
// that.fileSelected = that.sanitizer.bypassSecurityTrustResourceUrl(img);
|
|
134
|
+
|
|
135
|
+
that.arrayFiles.push(
|
|
136
|
+
that.sanitizer.bypassSecurityTrustResourceUrl(img),
|
|
137
|
+
)
|
|
138
|
+
if (!that.fileSelected) {
|
|
139
|
+
that.fileSelected = that.sanitizer.bypassSecurityTrustResourceUrl(
|
|
140
|
+
img,
|
|
141
|
+
)
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
false,
|
|
145
|
+
)
|
|
109
146
|
|
|
110
147
|
if (file) {
|
|
111
|
-
|
|
112
|
-
reader.readAsDataURL(file);
|
|
148
|
+
reader.readAsDataURL(file)
|
|
113
149
|
}
|
|
114
150
|
|
|
115
151
|
// ---------------------------------------------------------------------
|
|
@@ -117,13 +153,27 @@ export class LoaderPreviewPage implements OnInit, AfterViewInit {
|
|
|
117
153
|
// ---------------------------------------------------------------------
|
|
118
154
|
// } else if (file.type.startsWith("application") || file.type.startsWith("video") || file.type.startsWith("audio") ) {
|
|
119
155
|
} else {
|
|
120
|
-
this.logger.log(
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
156
|
+
this.logger.log(
|
|
157
|
+
'[LOADER-PREVIEW-PAGE] - readAsDataURL - USE CASE FILE - FILE ',
|
|
158
|
+
file,
|
|
159
|
+
)
|
|
160
|
+
this.logger.log(
|
|
161
|
+
'[LOADER-PREVIEW-PAGE] - readAsDataURL - USE CASE FILE - FILE TYPE',
|
|
162
|
+
file.type,
|
|
163
|
+
)
|
|
164
|
+
this.file_extension =
|
|
165
|
+
file.name.substring(file.name.lastIndexOf('.') + 1, file.name.length) ||
|
|
166
|
+
file.name
|
|
167
|
+
this.logger.log(
|
|
168
|
+
'[LOADER-PREVIEW-PAGE] - readAsDataURL - USE CASE FILE - FILE EXTENSION',
|
|
169
|
+
this.file_extension,
|
|
170
|
+
)
|
|
124
171
|
this.file_name = file.name
|
|
125
172
|
this.file_name_ellipsis_the_middle = this.start_and_end(file.name)
|
|
126
|
-
this.logger.log(
|
|
173
|
+
this.logger.log(
|
|
174
|
+
'[LOADER-PREVIEW-PAGE] - readAsDataURL - USE CASE FILE - FILE NAME',
|
|
175
|
+
this.file_name,
|
|
176
|
+
)
|
|
127
177
|
// if (file.type) {
|
|
128
178
|
// const file_type_array = file.type.split('/');
|
|
129
179
|
// this.logger.log('FIREBASE-UPLOAD USE CASE FILE LoaderPreviewPage readAsDataURL file_type_array', file_type_array);
|
|
@@ -132,38 +182,40 @@ export class LoaderPreviewPage implements OnInit, AfterViewInit {
|
|
|
132
182
|
// this.file_type = file.name.substring(file.name.lastIndexOf('.')+1, file.name.length) || file.name;
|
|
133
183
|
|
|
134
184
|
// }
|
|
135
|
-
this.createFile()
|
|
185
|
+
this.createFile()
|
|
136
186
|
}
|
|
137
187
|
}
|
|
138
188
|
|
|
139
189
|
start_and_end(str) {
|
|
140
190
|
if (str.length > 70) {
|
|
141
|
-
return str.substr(0, 20) + '...' + str.substr(str.length - 10, str.length)
|
|
191
|
+
return str.substr(0, 20) + '...' + str.substr(str.length - 10, str.length)
|
|
142
192
|
}
|
|
143
|
-
return str
|
|
193
|
+
return str
|
|
144
194
|
}
|
|
145
195
|
// file-alt-solid.png
|
|
146
196
|
async createFile() {
|
|
147
|
-
let response = await fetch('./assets/images/file-alt-solid.png')
|
|
148
|
-
let data = await response.blob()
|
|
197
|
+
let response = await fetch('./assets/images/file-alt-solid.png')
|
|
198
|
+
let data = await response.blob()
|
|
149
199
|
let metadata = {
|
|
150
|
-
type: 'image/png'
|
|
151
|
-
}
|
|
152
|
-
let file = new File([data],
|
|
153
|
-
this.logger.log('[LOADER-PREVIEW-PAGE] - createFile file - file', file)
|
|
154
|
-
const reader = new FileReader()
|
|
200
|
+
type: 'image/png',
|
|
201
|
+
}
|
|
202
|
+
let file = new File([data], 'test.png', metadata)
|
|
203
|
+
this.logger.log('[LOADER-PREVIEW-PAGE] - createFile file - file', file)
|
|
204
|
+
const reader = new FileReader()
|
|
155
205
|
reader.onloadend = (evt) => {
|
|
156
|
-
const img = reader.result.toString()
|
|
157
|
-
this.logger.log(
|
|
158
|
-
|
|
206
|
+
const img = reader.result.toString()
|
|
207
|
+
this.logger.log(
|
|
208
|
+
'[LOADER-PREVIEW-PAGE] - createFile file - FileReader success img',
|
|
209
|
+
img,
|
|
210
|
+
)
|
|
211
|
+
this.arrayFiles.push(img)
|
|
159
212
|
if (!this.fileSelected) {
|
|
160
|
-
this.fileSelected = img
|
|
213
|
+
this.fileSelected = img
|
|
161
214
|
}
|
|
162
|
-
}
|
|
163
|
-
reader.readAsDataURL(file)
|
|
215
|
+
}
|
|
216
|
+
reader.readAsDataURL(file)
|
|
164
217
|
}
|
|
165
218
|
|
|
166
|
-
|
|
167
219
|
// for svg
|
|
168
220
|
|
|
169
221
|
// previewFiles(file) {
|
|
@@ -174,7 +226,6 @@ export class LoaderPreviewPage implements OnInit, AfterViewInit {
|
|
|
174
226
|
// this.readAndPreview(file, preview)
|
|
175
227
|
// }
|
|
176
228
|
|
|
177
|
-
|
|
178
229
|
// readAndPreview(file, preview) {
|
|
179
230
|
// this.logger.log('LoaderPreviewPage readAsDataURL preview HERE 1');
|
|
180
231
|
// // Make sure `file.name` matches our extensions criteria
|
|
@@ -201,51 +252,52 @@ export class LoaderPreviewPage implements OnInit, AfterViewInit {
|
|
|
201
252
|
|
|
202
253
|
// }
|
|
203
254
|
|
|
204
|
-
|
|
205
|
-
// NOT USED
|
|
255
|
+
// NOT USED
|
|
206
256
|
fileChange(file) {
|
|
207
|
-
this.logger.log('fileChange')
|
|
208
|
-
const that = this
|
|
257
|
+
this.logger.log('fileChange')
|
|
258
|
+
const that = this
|
|
209
259
|
if (file) {
|
|
210
|
-
const nameImg = file.name
|
|
211
|
-
const typeFile = file.type
|
|
212
|
-
this.logger.log('nameImg: ', nameImg)
|
|
213
|
-
this.logger.log('typeFile: ', typeFile)
|
|
214
|
-
|
|
215
|
-
const reader = new FileReader()
|
|
216
|
-
reader.addEventListener(
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
that.
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
260
|
+
const nameImg = file.name
|
|
261
|
+
const typeFile = file.type
|
|
262
|
+
this.logger.log('nameImg: ', nameImg)
|
|
263
|
+
this.logger.log('typeFile: ', typeFile)
|
|
264
|
+
|
|
265
|
+
const reader = new FileReader()
|
|
266
|
+
reader.addEventListener(
|
|
267
|
+
'load',
|
|
268
|
+
function () {
|
|
269
|
+
const img = reader.result.toString()
|
|
270
|
+
that.logger.log('FileReader success')
|
|
271
|
+
that.arrayFiles.push(img)
|
|
272
|
+
if (!that.fileSelected) {
|
|
273
|
+
that.fileSelected = img
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
if (typeFile.indexOf('image') !== -1) {
|
|
277
|
+
const file4Load = new Image()
|
|
278
|
+
file4Load.src = reader.result.toString()
|
|
279
|
+
file4Load.title = nameImg
|
|
280
|
+
file4Load.onload = function () {
|
|
281
|
+
that.logger.log('that.file4Load: ', file4Load)
|
|
282
|
+
//that.arrayFiles.push(file4Load);
|
|
283
|
+
const uid = file4Load.src.substring(file4Load.src.length - 16)
|
|
284
|
+
const metadata = {
|
|
285
|
+
name: file4Load.title,
|
|
286
|
+
src: file4Load.src,
|
|
287
|
+
width: file4Load.width,
|
|
288
|
+
height: file4Load.height,
|
|
289
|
+
type: typeFile,
|
|
290
|
+
uid: uid,
|
|
291
|
+
}
|
|
292
|
+
// const type_msg = 'image';
|
|
293
|
+
// 1 - invio messaggio
|
|
294
|
+
//that.viewCtrl.dismiss({fileSelected: file4Load, messageString: that.messageString});
|
|
295
|
+
//that.addLocalMessage(metadata, type_msg);
|
|
296
|
+
// 2 - carico immagine
|
|
297
|
+
//that.uploadSingle(metadata, type_msg);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
/*
|
|
249
301
|
else if (typeFile.indexOf('application') !== -1) {
|
|
250
302
|
const type_msg = 'file';
|
|
251
303
|
const file = that.selectedFiles.item(0);
|
|
@@ -261,29 +313,34 @@ export class LoaderPreviewPage implements OnInit, AfterViewInit {
|
|
|
261
313
|
that.uploadSingle(metadata, type_msg);
|
|
262
314
|
}
|
|
263
315
|
*/
|
|
264
|
-
|
|
316
|
+
},
|
|
317
|
+
false,
|
|
318
|
+
)
|
|
265
319
|
if (file) {
|
|
266
|
-
reader.readAsDataURL(file)
|
|
320
|
+
reader.readAsDataURL(file)
|
|
267
321
|
}
|
|
268
322
|
}
|
|
269
323
|
}
|
|
270
324
|
|
|
271
325
|
calculateHeightPreviewArea() {
|
|
272
|
-
const heightThumbnailsPreview = this.thumbnailsPreview.nativeElement
|
|
273
|
-
|
|
274
|
-
|
|
326
|
+
const heightThumbnailsPreview = this.thumbnailsPreview.nativeElement
|
|
327
|
+
.offsetHeight
|
|
328
|
+
const heightMessageTextArea = this.messageTextArea.nativeElement
|
|
329
|
+
.offsetHeight
|
|
330
|
+
this.heightPreviewArea = (
|
|
331
|
+
heightMessageTextArea + heightThumbnailsPreview
|
|
332
|
+
).toString()
|
|
275
333
|
// this.logger.log('heightThumbnailsPreview', heightThumbnailsPreview);
|
|
276
334
|
// this.logger.log('heightMessageTextArea', this.messageTextArea);
|
|
277
335
|
// this.logger.log('heightPreviewArea', this.heightPreviewArea);
|
|
278
336
|
}
|
|
279
337
|
|
|
280
|
-
uploadImages() {
|
|
281
|
-
|
|
338
|
+
uploadImages() {}
|
|
282
339
|
|
|
283
340
|
/** */
|
|
284
341
|
onChangeTextArea(e: any) {
|
|
285
|
-
this.logger.log('onChangeTextArea', e.target.clientHeight)
|
|
286
|
-
this.calculateHeightPreviewArea()
|
|
342
|
+
this.logger.log('onChangeTextArea', e.target.clientHeight)
|
|
343
|
+
this.calculateHeightPreviewArea()
|
|
287
344
|
// try {
|
|
288
345
|
// let height: number = e.target.offsetHeight;
|
|
289
346
|
// if (height < 37 ) {
|
|
@@ -297,20 +354,18 @@ export class LoaderPreviewPage implements OnInit, AfterViewInit {
|
|
|
297
354
|
|
|
298
355
|
/** */
|
|
299
356
|
onSelectImage(file: any) {
|
|
300
|
-
this.fileSelected = file
|
|
357
|
+
this.fileSelected = file
|
|
301
358
|
}
|
|
302
359
|
|
|
303
360
|
@HostListener('document:keydown', ['$event'])
|
|
304
361
|
handleKeyboardEvent(event: KeyboardEvent) {
|
|
305
362
|
if (event.key === 'Enter') {
|
|
306
|
-
|
|
307
363
|
this.onSendMessage()
|
|
308
364
|
}
|
|
309
|
-
|
|
310
365
|
}
|
|
311
366
|
|
|
312
367
|
pressedOnKeyboard(e: any, text: string) {
|
|
313
|
-
this.logger.log('[LOADER-PREVIEW-PAGE] pressedOnKeyboard - event:: ', e)
|
|
368
|
+
this.logger.log('[LOADER-PREVIEW-PAGE] pressedOnKeyboard - event:: ', e)
|
|
314
369
|
// const message = e.target.textContent.trim();
|
|
315
370
|
// if (e.inputType === 'insertLineBreak' && message === '') {
|
|
316
371
|
// this.messageString = '';
|
|
@@ -322,32 +377,37 @@ export class LoaderPreviewPage implements OnInit, AfterViewInit {
|
|
|
322
377
|
this.onSendMessage()
|
|
323
378
|
}
|
|
324
379
|
|
|
325
|
-
|
|
326
|
-
|
|
327
380
|
/** */
|
|
328
381
|
onSendMessage() {
|
|
329
|
-
this.logger.log(
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
382
|
+
this.logger.log(
|
|
383
|
+
'[LOADER-PREVIEW-PAGE] onSendMessage messageString:',
|
|
384
|
+
this.messageString,
|
|
385
|
+
)
|
|
386
|
+
let file = this.selectedFiles.item(0)
|
|
387
|
+
const file4Load = new Image()
|
|
388
|
+
const nameImg = file.name
|
|
389
|
+
const typeFile = file.type
|
|
390
|
+
|
|
391
|
+
file4Load.src = this.fileSelected
|
|
392
|
+
file4Load.title = nameImg
|
|
393
|
+
const uid = file4Load.src.substring(file4Load.src.length - 16)
|
|
338
394
|
const metadata = {
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
}
|
|
346
|
-
this.viewCtrl.dismiss({
|
|
347
|
-
|
|
395
|
+
name: file4Load.title,
|
|
396
|
+
src: file4Load.src,
|
|
397
|
+
width: file4Load.width,
|
|
398
|
+
height: file4Load.height,
|
|
399
|
+
type: typeFile,
|
|
400
|
+
uid: uid,
|
|
401
|
+
}
|
|
402
|
+
this.viewCtrl.dismiss({
|
|
403
|
+
fileSelected: file,
|
|
404
|
+
messageString: this.messageString,
|
|
405
|
+
metadata: metadata,
|
|
406
|
+
type: TYPE_MSG_IMAGE,
|
|
407
|
+
})
|
|
348
408
|
}
|
|
349
409
|
|
|
350
410
|
async onClose() {
|
|
351
|
-
this.viewCtrl.dismiss()
|
|
411
|
+
this.viewCtrl.dismiss()
|
|
352
412
|
}
|
|
353
413
|
}
|
|
@@ -55,13 +55,13 @@
|
|
|
55
55
|
</div>
|
|
56
56
|
|
|
57
57
|
<ion-list *ngIf="loggedUser">
|
|
58
|
-
<ion-item lines="none" class="sidebar-items" (click)="onClickArchivedConversation()">
|
|
58
|
+
<!-- <ion-item lines="none" class="sidebar-items" (click)="onClickArchivedConversation()">
|
|
59
59
|
<div tabindex="0"></div>
|
|
60
60
|
<ion-icon name="archive-outline" class="sidebar-icons"></ion-icon>
|
|
61
61
|
<ion-label class="sidebar-labels">
|
|
62
62
|
<h3>{{ 'LABEL_ARCHIVED' | translate }}</h3>
|
|
63
63
|
</ion-label>
|
|
64
|
-
</ion-item>
|
|
64
|
+
</ion-item> -->
|
|
65
65
|
|
|
66
66
|
<ion-item lines="none" class="sidebar-items" (click)="onLogout()">
|
|
67
67
|
<div tabindex="0"></div>
|
|
@@ -77,10 +77,10 @@
|
|
|
77
77
|
|
|
78
78
|
|
|
79
79
|
<ion-footer class="ion-no-border">
|
|
80
|
-
<ion-toolbar>
|
|
80
|
+
<!-- <ion-toolbar style="background-color: #1e2129 !important"> -->
|
|
81
81
|
<div class="content-chat-version">
|
|
82
82
|
<!-- <p class="chat-title">Tiledesk Chat</p> -->
|
|
83
83
|
<p class="chat-version">{{ 'LABEL_VERSION' | translate }} {{version}}</p>
|
|
84
84
|
</div>
|
|
85
|
-
</ion-toolbar>
|
|
85
|
+
<!-- </ion-toolbar> -->
|
|
86
86
|
</ion-footer>
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
.current-user-profile {
|
|
75
75
|
width: 100%;
|
|
76
76
|
height: 100%;
|
|
77
|
-
font-family: "
|
|
77
|
+
font-family: "Poppins";
|
|
78
78
|
--ion-background-color:#2d323e;
|
|
79
79
|
|
|
80
80
|
.buttons-header{
|
|
@@ -114,6 +114,15 @@
|
|
|
114
114
|
margin-top: 15px;
|
|
115
115
|
margin-bottom: 5px;
|
|
116
116
|
}
|
|
117
|
+
|
|
118
|
+
// ion-toolbar {
|
|
119
|
+
// --padding-bottom: 0px;
|
|
120
|
+
// --background: #1e2129 !important;
|
|
121
|
+
// div.toolbar-container {
|
|
122
|
+
// padding: 0px !important;
|
|
123
|
+
// background: #1e2129 !important;
|
|
124
|
+
// }
|
|
125
|
+
// }
|
|
117
126
|
}
|
|
118
127
|
|
|
119
128
|
.avatar-container {
|
|
@@ -250,6 +259,7 @@ ion-footer{
|
|
|
250
259
|
.content-chat-version {
|
|
251
260
|
color: white;
|
|
252
261
|
padding: 20px;
|
|
262
|
+
background-color: #1e2129;
|
|
253
263
|
}
|
|
254
264
|
.chat-title{
|
|
255
265
|
font-size: 14px;
|
|
@@ -261,4 +271,5 @@ ion-footer{
|
|
|
261
271
|
font-weight: 400;
|
|
262
272
|
margin: 0;
|
|
263
273
|
}
|
|
264
|
-
}
|
|
274
|
+
}
|
|
275
|
+
|